[翻譯完成] 樹莓派配置文檔config.txt說明

原文鏈接:http://elinux.org/RPi_config.txt php

因爲樹莓派並無傳統意義上的BIOS, 因此如今各類系統配置參數一般被存在"config.txt"這個文本文件中. html

樹莓派的config.txt文件會在ARM內核初始化以前被GPU讀取. linux

這個文件存在引導分區上的.對於Linux, 路徑一般是/boot/config.txt, 若是是Windows (或者OS X) 它會被識別爲SD卡中可訪問部分的一個普通文件. git

若是想要編輯配置文件, 請查看介紹編輯樹莓派配置文件. github

你可使用下列命令去獲取當前激活的設置: 緩存

vcgencmd get_config <config> - 列出指定的配置參數. 例如: vcgencmd get_config arm_freq
vcgencmd get_config int - 列出全部已設置的整形配置參數(非零)
vcgencmd get_config str - 列出全部已設置的字符型配置參數(非零)

文件格式

當值是整形時格式爲"屬性=值". 每行只指定一個參數. 註釋使用'#'井號做爲一行開頭. 安全

注意: 在新版的樹莓派裏每行都有#註釋, 要想使用該行參數只需移除#. bash

下面是示例文件 app

# Set stdv mode to PAL (as used in Europe) sdtv_mode=2
# Force the monitor to HDMI mode so that sound will be sent over HDMI cable
hdmi_drive=2
# Set monitor mode to DMT
hdmi_group=2
# Set monitor resolution to 1024x768 XGA 60Hz (HDMI_DMT_XGA_60)
hdmi_mode=16
# Make display smaller to stop text spilling off the screen
overscan_left=20
overscan_right=12
overscan_top=10
overscan_bottom=10

這是另外一個示例文件, 包含了各類功能的擴展文檔. ide

內存

disable_l2cache 禁止ARM訪問GPU的二級緩存. 相應的須要在內核中關閉二級緩存. 默認爲0

gpu_mem GPU內存以兆爲單位. 設置ARM和GPU之間的內存分配. ARM會得到剩餘全部內存. 最小設爲16. 默認爲64

gpu_mem_256 對於有256MB內存的樹莓派的GPU內存設置. 512MB的派請忽略. 會覆蓋gpu_mem. 最大設爲192. 默認不設置

gpu_mem_512 對於有512MB內存的樹莓派的GPU內存設置. 256MB的派請忽略.  會覆蓋gpu_mem. 最大設爲448. 默認不設置

disable_pvt 禁止每500毫秒調整一次RAM的刷新率 (RAM溫度測量).

CMA - 動態內存分配

自2012年11月19號, 固件和內核開始支持CMA, 這意味運行時能夠動態管理ARM和GPU之間的內存分配. 這兒有相關config.txt示例.

cma_lwm 當GPU可用內存低於cma_lwm所設值, 將會向ARM請求一些內存.

cma_hwm 當GPU可用內存高於cma_hwm所設值, 將會向ARM釋放一些內存.

要啓用CMA,下面的參數須要添加到cmdline.txt文件裏:

coherent_pool=6M smsc95xx.turbo_mode=N

視頻

視頻模式選項

sdtv_mode 爲複合信號輸出設置視頻制式(默認爲0)

sdtv_mode=0    NTSC
sdtv_mode=1    日本版NTSC – 無基座 
sdtv_mode=2    PAL
sdtv_mode=3    巴西版PAL – 副載波爲525/60而不是625/50

sdtv_aspect 爲複合信號輸出設置寬高比(默認爲1)

sdtv_aspect=1  4:3
sdtv_aspect=2  14:9
sdtv_aspect=3  16:9

sdtv_disable_colourburst 禁止複合信號輸出彩色副載波羣. 圖片會顯示爲單色, 可是可能會更清晰

sdtv_disable_colourburst=1  禁止輸出彩色副載波羣

hdmi_safe 使用"安全模式"的設置去嘗試用HDMI最大兼容性啓動. 這和下面的組合是一個意思: hdmi_force_hotplug=1, config_hdmi_boost=4, hdmi_group=2, hdmi_mode=4, disable_overscan=0

hdmi_safe=1

hdmi_ignore_edid 若是你的顯示器是天朝產的垃圾貨, 容許系統忽略EDID顯示數據

hdmi_ignore_edid=0xa5000080

hdmi_edid_file 當設爲1時, 將會從edid.dat文件中讀取EDID數據,而不是從顯示器.[1]

hdmi_edid_file=1

hdmi_force_edid_audio 假裝成支持全部音頻格式播放, 即使報告不支持也容許經過DTS/AC3.

hdmi_force_edid_audio=1

hdmi_force_edid_3d 假裝成所有CEA模式都支持3D, 即使EDID並不支持.

hdmi_force_edid_3d=1

avoid_edid_fuzzy_match 禁止去模糊匹配EDID中描述的模式. 即使遮蔽錯誤, 也選用匹配分辨率和最接近幀率的標準模式.

avoid_edid_fuzzy_match=1

hdmi_ignore_cec_init 不發送初始化激活源消息. 避免在重啓時使(啓用CEC)TV結束待機並切換頻道.

hdmi_ignore_cec_init=1

hdmi_ignore_cec 假裝成TV不支持CEC. 將不會支持任何CEC功能.

hdmi_ignore_cec=1

hdmi_force_hotplug 假裝成HDMI熱插拔信號被檢測到, 出現HDMI顯示器被接入

hdmi_force_hotplug=1 即使沒有檢測到HDMI顯示器也要使用HDMI模式

hdmi_ignore_hotplug 假裝成HDMI熱插拔信號沒有被檢測到, 出現HDMI顯示器未接入

hdmi_ignore_hotplug=1 即使檢測到HDMI顯示器也要使用混合模式

hdmi_pixel_encoding 強制像素編碼模式. 默認狀況下會使用EDID請求的模式, 因此不須要修改.

hdmi_pixel_encoding=0 default       (limited for CEA, full for DMT)
 hdmi_pixel_encoding=1 RGB limited   (16-235)
 hdmi_pixel_encoding=2 RGB full      ( 0-255)
 hdmi_pixel_encoding=3 YCbCr limited (16-235)
 hdmi_pixel_encoding=4 YCbCr limited ( 0-255)

hdmi_drive 選擇HDMI仍是DVI模式

hdmi_drive=1 DVI模式 (沒聲音)
 hdmi_drive=2 HDMI模式 (若是支持並已啓用將有聲音輸出)

hdmi_group 設置HDMI類型

不指定組, 或者設爲0, 將會使用EDID報告的首選組.

hdmi_group=1   CEA
hdmi_group=2   DMT

hdmi_mode 設置在CEA或DMT格式下的屏幕分辨率

當hdmi_group=1 (CEA)時,下列值有效 
hdmi_mode=1    VGA
hdmi_mode=2    480p  60Hz
hdmi_mode=3    480p  60Hz  H
hdmi_mode=4    720p  60Hz
hdmi_mode=5    1080i 60Hz
hdmi_mode=6    480i  60Hz
hdmi_mode=7    480i  60Hz  H
hdmi_mode=8    240p  60Hz
hdmi_mode=9    240p  60Hz  H
hdmi_mode=10   480i  60Hz  4x
hdmi_mode=11   480i  60Hz  4x H
hdmi_mode=12   240p  60Hz  4x
hdmi_mode=13   240p  60Hz  4x H
hdmi_mode=14   480p  60Hz  2x
hdmi_mode=15   480p  60Hz  2x H
hdmi_mode=16   1080p 60Hz
hdmi_mode=17   576p  50Hz
hdmi_mode=18   576p  50Hz  H
hdmi_mode=19   720p  50Hz
hdmi_mode=20   1080i 50Hz
hdmi_mode=21   576i  50Hz
hdmi_mode=22   576i  50Hz  H
hdmi_mode=23   288p  50Hz
hdmi_mode=24   288p  50Hz  H
hdmi_mode=25   576i  50Hz  4x
hdmi_mode=26   576i  50Hz  4x H
hdmi_mode=27   288p  50Hz  4x
hdmi_mode=28   288p  50Hz  4x H
hdmi_mode=29   576p  50Hz  2x
hdmi_mode=30   576p  50Hz  2x H
hdmi_mode=31   1080p 50Hz
hdmi_mode=32   1080p 24Hz
hdmi_mode=33   1080p 25Hz
hdmi_mode=34   1080p 30Hz
hdmi_mode=35   480p  60Hz  4x
hdmi_mode=36   480p  60Hz  4xH
hdmi_mode=37   576p  50Hz  4x
hdmi_mode=38   576p  50Hz  4x H
hdmi_mode=39   1080i 50Hz  reduced blanking
hdmi_mode=40   1080i 100Hz
hdmi_mode=41   720p  100Hz
hdmi_mode=42   576p  100Hz
hdmi_mode=43   576p  100Hz H
hdmi_mode=44   576i  100Hz
hdmi_mode=45   576i  100Hz H
hdmi_mode=46   1080i 120Hz
hdmi_mode=47   720p  120Hz
hdmi_mode=48   480p  120Hz
hdmi_mode=49   480p  120Hz H
hdmi_mode=50   480i  120Hz
hdmi_mode=51   480i  120Hz H
hdmi_mode=52   576p  200Hz
hdmi_mode=53   576p  200Hz H
hdmi_mode=54   576i  200Hz
hdmi_mode=55   576i  200Hz H
hdmi_mode=56   480p  240Hz
hdmi_mode=57   480p  240Hz H
hdmi_mode=58   480i  240Hz
hdmi_mode=59   480i  240Hz H
H表示16:9比例(正常是4:3).
2x表示雙倍像素(即更高的像素時脈, 每一個像素重複兩次)
4x表示四倍像素(即更高的像素時脈, 每一個像素重複四次)
當hdmi_group=2 (DMT)時,下列值有效  
警告: 根據這篇帖子所述
像素時脈是有限制的, 最高支持的模式是1920x1200 @60Hz with reduced blanking.
hdmi_mode=1    640x350   85Hz
hdmi_mode=2    640x400   85Hz
hdmi_mode=3    720x400   85Hz
hdmi_mode=4    640x480   60Hz
hdmi_mode=5    640x480   72Hz
hdmi_mode=6    640x480   75Hz
hdmi_mode=7    640x480   85Hz
hdmi_mode=8    800x600   56Hz
hdmi_mode=9    800x600   60Hz
hdmi_mode=10   800x600   72Hz
hdmi_mode=11   800x600   75Hz
hdmi_mode=12   800x600   85Hz
hdmi_mode=13   800x600   120Hz
hdmi_mode=14   848x480   60Hz
hdmi_mode=15   1024x768  43Hz  DO NOT USE
hdmi_mode=16   1024x768  60Hz
hdmi_mode=17   1024x768  70Hz
hdmi_mode=18   1024x768  75Hz
hdmi_mode=19   1024x768  85Hz
hdmi_mode=20   1024x768  120Hz
hdmi_mode=21   1152x864  75Hz
hdmi_mode=22   1280x768        reduced blanking
hdmi_mode=23   1280x768  60Hz
hdmi_mode=24   1280x768  75Hz
hdmi_mode=25   1280x768  85Hz
hdmi_mode=26   1280x768  120Hz reduced blanking
hdmi_mode=27   1280x800        reduced blanking
hdmi_mode=28   1280x800  60Hz
hdmi_mode=29   1280x800  75Hz
hdmi_mode=30   1280x800  85Hz
hdmi_mode=31   1280x800  120Hz reduced blanking
hdmi_mode=32   1280x960  60Hz
hdmi_mode=33   1280x960  85Hz
hdmi_mode=34   1280x960  120Hz reduced blanking
hdmi_mode=35   1280x1024 60Hz
hdmi_mode=36   1280x1024 75Hz
hdmi_mode=37   1280x1024 85Hz
hdmi_mode=38   1280x1024 120Hz reduced blanking
hdmi_mode=39   1360x768  60Hz
hdmi_mode=40   1360x768  120Hz reduced blanking
hdmi_mode=41   1400x1050       reduced blanking
hdmi_mode=42   1400x1050 60Hz
hdmi_mode=43   1400x1050 75Hz
hdmi_mode=44   1400x1050 85Hz
hdmi_mode=45   1400x1050 120Hz reduced blanking
hdmi_mode=46   1440x900        reduced blanking
hdmi_mode=47   1440x900  60Hz
hdmi_mode=48   1440x900  75Hz
hdmi_mode=49   1440x900  85Hz
hdmi_mode=50   1440x900  120Hz reduced blanking
hdmi_mode=51   1600x1200 60Hz
hdmi_mode=52   1600x1200 65Hz
hdmi_mode=53   1600x1200 70Hz
hdmi_mode=54   1600x1200 75Hz
hdmi_mode=55   1600x1200 85Hz
hdmi_mode=56   1600x1200 120Hz reduced blanking
hdmi_mode=57   1680x1050       reduced blanking
hdmi_mode=58   1680x1050 60Hz
hdmi_mode=59   1680x1050 75Hz
hdmi_mode=60   1680x1050 85Hz
hdmi_mode=61   1680x1050 120Hz reduced blanking
hdmi_mode=62   1792x1344 60Hz
hdmi_mode=63   1792x1344 75Hz
hdmi_mode=64   1792x1344 120Hz reduced blanking
hdmi_mode=65   1856x1392 60Hz
hdmi_mode=66   1856x1392 75Hz
hdmi_mode=67   1856x1392 120Hz reduced blanking
hdmi_mode=68   1920x1200       reduced blanking
hdmi_mode=69   1920x1200 60Hz
hdmi_mode=70   1920x1200 75Hz
hdmi_mode=71   1920x1200 85Hz
hdmi_mode=72   1920x1200 120Hz reduced blanking
hdmi_mode=73   1920x1440 60Hz
hdmi_mode=74   1920x1440 75Hz
hdmi_mode=75   1920x1440 120Hz reduced blanking
hdmi_mode=76   2560x1600       reduced blanking
hdmi_mode=77   2560x1600 60Hz
hdmi_mode=78   2560x1600 75Hz
hdmi_mode=79   2560x1600 85Hz
hdmi_mode=80   2560x1600 120Hz reduced blanking
hdmi_mode=81   1366x768  60Hz
hdmi_mode=82   1080p     60Hz
hdmi_mode=83   1600x900        reduced blanking
hdmi_mode=84   2048x1152       reduced blanking
hdmi_mode=85   720p      60Hz
hdmi_mode=86   1366x768        reduced blanking

overscan_left 左側跳過像素數

overscan_right 右側跳過像素數

overscan_top 頂部跳過像素數

overscan_bottom 底部跳過像素數

framebuffer_width 控制檯framebuffer寬度, 以像素爲單位. 默認是顯示器寬度減去超出掃描.

framebuffer_height 控制檯framebuffer高度, 以像素爲單位. 默認是顯示器高度減去超出掃描.

framebuffer_depth 控制檯framebuffer深度, 以位爲單位. 默認是16位. 8位也是有效的, 可是默認RGB調色板會致使屏幕不可讀. 24位效果更好 ,可是2012年6月15號發現有顯示混亂問題. 32位沒有混亂問題, 可是須要設置framebuffer_ignore_alpha=1, 並在2012年6月15號發現顏色顯示錯誤.

framebuffer_ignore_alpha 設爲1將禁用alpha通道. 僅對32位有效.

test_mode 容許在啓動時作聲音與圖像測試.

disable_overscan 設爲1將禁用超出掃描.

config_hdmi_boost 設置HDMI接口的信號強度. 默認爲0. 若是出現HDMI干擾問題能夠試試設爲4. 最大爲7.

display_rotate 順時針旋轉屏幕顯示 (默認爲0) 或者翻轉顯示.

display_rotate=0        正常
display_rotate=1        90度
display_rotate=2        180度
display_rotate=3        270度
display_rotate=0x10000  水平翻轉
display_rotate=0x20000  垂直翻轉

注意: 旋轉90度或者270度額外須要GPU內存, 因此在GPU只分配到16M的時候旋轉會無效. 可能的緣由:

  • Crashes my RPI before Linux boots if set to "1" -- REW 20120913.

哪些值對個人顯示器有效?

你的HDMI顯示器可能只支持一部分設置. 想要找出支持哪些設置, 可使用下面的方法.

  • 把輸出格式設爲VGA 60Hz (hdmi_group=1 hdmi_mode=1) 而後啓動樹莓派
  • 輸入下列命令能夠獲取CEA支持模式的列表
/opt/vc/bin/tvservice -m CEA
  • 輸入下列命令能夠獲取DMT支持模式的列表
/opt/vc/bin/tvservice -m DMT
  • 輸入下列命令能夠獲取當前設置狀態
/opt/vc/bin/tvservice -s
  • 輸入下列命令能夠從顯示器獲取更多詳細信息
/opt/vc/bin/tvservice -d edid.dat /opt/vc/bin/edidparser edid.dat

使用默認HDMI模式去排除問題時, edid.dat文件一樣會提供信息

許可的解碼器

你能夠購買綁定樹莓派CPU序列號的證書來使用額外的硬件解碼器.

decode_MPG2 可開啓MPEG-2硬解的序列號.

decode_MPG2=0x12345678

decode_WVC1 可開啓VC-1硬解的序列號.

decode_WVC1=0x12345678

可在多臺樹莓派間共享SD卡的序列號. 同時最多8個證書.

decode_XXXX=0x12345678,0xabcdabcd,0x87654321,...

啓動

disable_commandline_tags 在啓動內核前, 經過改寫ATAGS (0x100處的內存)來阻止start.elf 

cmdline (string) 命令行參數. 可用來代替cmdline.txt文件

kernel (string) 加載指定名稱的內核鏡像文件啓動內核. 默認爲"kernel.img"

kernel_address 加載kernel.img文件地址

kernel_old (bool) 爲1時, 從0x0處加載內核

ramfsfile (string) 要的加載的ramfs文件

ramfsaddr 要加載的ramfs文件地址

initramfs (string address) 要加載的ramfs文件及其地址 (就是把ramfsfile+ramfsaddr合併爲一項). 

注意: 這項使用與其餘項不一樣的語法 - 不要在這用"="號. 正確示例:

initramfs initramf.gz 0x00800000

device_tree_address 加載device_tree的地址

init_uart_baud 初始化uart波特率. 默認爲115200

init_uart_clock 初始化uart時序. 默認爲3000000 (3Mhz)

init_emmc_clock 初始化emmc時序. 默認爲100000000 (100MHz)

boot_delay 在加載內核前start.elf等待指定秒. 總延遲=1000 * boot_delay + boot_delay_ms. 默認爲1

boot_delay_ms 在加載內核前在start.elf等待指定毫秒. 默認爲0

avoid_safe_mode 若是設爲1, 將不以安全模式啓動. 默認爲0

超頻

注意: 設置任何參數來超頻樹莓派都會在芯片中永久的儲存一個保修位, 用於檢測你的樹莓派是否超頻過. 若是設備超頻過保修就無效了. 自2012年9月19號,你能夠自由超頻而不影響保修了[2]

最新的內核有一個默認開啓"ondemand"調速器的cpu頻率內核驅動. 未開啓超頻並不會有任何影響. 一旦你開超頻, ARM頻率將隨處理器負載而變化. 只有在調速器須要時纔會使用非默認值. 你可使用*_min配置選項來調整最低值, 或者使用force_turbo=1來禁用動態超頻[3]

當芯片溫度達到85°C運行時會關閉超頻及超壓, 直到冷卻. 即便在25°C環境溫度下使用最高設置, 也不要讓溫度達到極限[4]

超頻選項

參數 說明
arm_freq ARM頻率,以MHz爲單位. 默認爲700
gpu_freq 同時設置core_freq, h264_freq, isp_freq, v3d_freq. 默認爲250
core_freq GPU處理器核心頻率,以MHz爲單位. 因爲GPU要驅動二級緩存, 對ARM性能會形成影響. 默認爲 250
h264_freq 視頻硬解模塊頻率,以MHz爲單位. 默認爲250
isp_freq 圖像傳感器管道模塊頻率,以MHz爲單位. 默認爲250
v3d_freq 3D模塊頻率,以MHz爲單位. 默認爲250
avoid_pwm_pll 不要把鎖相環用在PWM音頻. 這會略微下降模擬音頻的效果. 空閒的鎖相環容許從剩餘GPU獨立設置core_freq, 這將會比超頻有更多權限. 默認爲0
sdram_freq SDRAM頻率,以MHz爲單位.默認爲400
over_voltage ARM/GPU核心電壓調節. [-16,8]用0.025V步進等同於[0.8V,1.4V]. 默認爲0 (1.2V). 只有在指定 force_turbo或current_limit_override時 (會設置保修位), 才容許數值在6以上
over_voltage_sdram 同時設置over_voltage_sdram_c, over_voltage_sdram_i, over_voltage_sdram_p
over_voltage_sdram_c SDRAM控制器電壓調節. [-16,8]0.025V步進等同於[0.8V,1.4V]. 默認爲0 (1.2V)
over_voltage_sdram_i SDRAM I/O電壓調節. [-16,8]0.025V步進等同於[0.8V,1.4V]. 默認爲0 (1.2V)
over_voltage_sdram_p SDRAM phy電壓調節. [-16,8]0.025V步進等同於[0.8V,1.4V]. 默認爲0 (1.2V)
force_turbo 關閉動態CPU頻率驅動及下面的最小設置. 開啓h264/v3d/isp超頻. 默認爲0. 會設置保修位.
initial_turbo 在啓動時以指定秒數 (上限爲60) 或者以CPU頻率來開啓急速模式. 若是已經超頻, 能對SD卡錯誤問題有改善. 默認爲0 [5]
arm_freq_min 設置動態時序的最小arm_freq. 默認爲700
core_freq_min 設置動態時序的最小core_freq. 默認爲250
sdram_freq_min 設置動態時序的最小sdram_freq. 默認爲400
over_voltage_min 設置動態時序的最小over_voltage. 默認爲0
temp_limit 過熱保護. 當芯片達到指定溫度就把時序和電源切換會默認值. 把此值設高於默認值將影響保修. 默認爲85
current_limit_override 當設爲"0x5A000020"時, 禁止SMPS限流保護. 在超頻太高沒法重啓時設置此項會有所幫助. 會設置保修位.[6]

force_turbo模式

force_turbo=0

開啓對ARM核心,GPU核心和SDRAM的動態時序及電壓. 在忙的時候ARM頻率會提升到"arm_freq"並在閒的時候下降到"arm_freq_min". "core_freq", "sdram_freq"和"over_voltage"的行爲都同樣. "over_voltage"最高爲6 (1.35V). h264/v3d/isp部分的非默認值將被忽略.

force_turbo=1

關閉動態時序, 所以全部頻率和電壓會保持高值. h264/v3d/isp GPU部分的超頻也會開啓, 等同於設置"over_voltage"爲8 (1.4V). [7]

時序關係

GPU核心, h264, v3d和isp共享一個鎖相環, 所以須要相關聯的頻率. ARM, SDRAM和GPU有各自獨有的鎖相環, 所以能夠設爲沒有關聯的頻率.[8]

當設了"avoid_pwm_pll=1"下列設置就不必了.

pll_freq = floor(2400 / (2 * core_freq)) * (2 * core_freq)
gpu_freq = pll_freq / [偶數]

有效的gpu_freq會自動四舍五到到最接近的整型偶數, 因此請求core_freq爲500, gpu_freq爲300,算一下2000/300 = 6.666 => 6 ,結果就是333.33MHz.

已測試過的超頻設置

下表顯示了一些成功的超頻嘗試, 這些能夠指導你進行超頻. 這些設置不必定能在每臺樹莓派上都成功, 而且會縮短高通芯片的壽命.

arm_freq gpu_freq core_freq h264_freq isp_freq v3d_freq sdram_freq over_voltage over_voltage_sdram
800
900 275 500
900 450 450
930 350 500
1000 500 500 6
1050 6
1150 500 600 8

這是一個代表Hynix產的RAM在超頻上表現不如三星產的RAM的報告.

超頻時SD卡使用

設置SD卡: http://elinux.org/RPi_Easy_SD_Card_Setup
超頻時使用6速或10速的SD卡(SHDC/SHDX)會致使在一些天后樹莓派讀取SD卡文件系統不穩定.
 不論是ext4 , NTFS 或其餘格式都同樣.
 不論是哪家SD卡生產商都同樣.
 不論是哪一個版本的樹莓派都同樣.
 這與SD卡容量無關 - 實際驗證出如今16G或更大的SD卡上.
 ! 關鍵是你什麼時候讓樹莓派功率不足,也就是低於樹莓派的基本設置需求 ! 

popcornmix發表在https://github.com/raspberrypi/linux/issues/280:

"超頻會致使SD卡錯誤.這狀況每每是與板子相關(就是說有些樹莓派超頻後SD卡沒事,有些不行). 

我認爲一般都是core_freq致使的SD卡問題(和arm_freq,sdram_freq比)"

在2013年4月寫這個提示的時候在樹莓派官方論壇上一共有137個有關於SD的問題, 絕大部分與超頻有關.
若是你使用6速或10速SD卡, 還想要樹莓派穩定運行:  不要嘗試超頻,不然極可能會丟失數據 

監測溫度及電壓

要檢測樹莓派的溫度, 看: /sys/class/thermal/thermal_zone0/temp
要檢測樹莓派當前的頻率, 看: /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
要檢測樹莓派電源裝置的電壓, 你須要一個萬用電表, 接上電源測試點, 或者擴展頭.

一般來講要保持核心溫度低於70度, 電壓高於4.8V. (另外請注意, 不要用那種便宜的USB電源, 那基本上是4.2V的, 這是由於那原本就是爲充3.7V鋰電池設計的, 根本沒法爲樹莓派提供穩定的5V電壓). 此外, 用散熱片也是個好主意, 尤爲是你把樹莓派裝到了殼子裏. 一個合適的散熱器是自帶不乾膠柵格狀的 14x14x10 mm 散熱片.

超頻穩定性測試

大多數超頻問題立馬就會出現啓動問題, 但仍是會隨時間而出現文件系統問題. 這是一個對系統,特別是SD卡進行壓力測試的腳本. 若是腳本執行完成, dmesg中不提示任何錯誤, 你作的超頻設置可能會比較穩定.

若是系統崩潰了, 在重啓時按住shift鍵, 這會臨時性關閉全部超頻. 一樣, 注意SD卡問題一般由core_freq形成,不要在raspi-config預設的高速(950 MHz)和超速(1 GHz)裏來個大跳越(從250 MHz飛到500 MHz).

#!/bin/bash
#Simple stress test for system. If it survives this, it's probably stable.
#Free software, GPL2+

echo "Testing overclock stability..."

#Max out the CPU in the background (one core). Heats it up, loads the power-supply. 
nice yes >/dev/null &

#Read the entire SD card 10x. Tests RAM and I/O
for i in `seq 1 10`; do echo reading: $i; sudo dd if=/dev/mmcblk0 of=/dev/null bs=4M; done

#Writes 512 MB test file,  10x.
for i in `seq 1 10`; do echo writing: $i; dd if=/dev/zero of=deleteme.dat bs=1M count=512; sync; done

#Clean up
killall yes
rm deleteme.dat

#Print summary. Anything nasty will appear in dmesg.
echo -n "CPU freq: " ; cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
echo -n "CPU temp: " ; cat /sys/class/thermal/thermal_zone0/temp
dmesg | tail 

echo "Not crashed yet, probably stable."
相關文章
相關標籤/搜索