相關商品
【創(chuàng)客學堂】樹莓派配置文檔config.txt說明
編輯:Sophie2013-10-09 瀏覽次數:4166
目錄:
- 文件格式
- 內存
- CMA - 動態(tài)內存分配
- 視頻
- 視頻模式選項
- 哪些值對我的顯示器有效?
- 許可的解碼器
- 啟動
- 超頻
- 超頻選項
- force_turbo模式
- 時序關系
- 已測試過的超頻設置
- 超頻時SD卡使用
- 監(jiān)測溫度及電壓
- 超頻穩(wěn)定性測試
原文連接:http://elinux.org/RPi_config.txt
由于樹莓派并沒有傳統(tǒng)意義上的BIOS, 所以現(xiàn)在各種系統(tǒng)配置參數通常被存在"config.txt"這個文本文件中.
樹莓派的config.txt文件會在ARM內核初始化之前被GPU讀取.
這個文件存在引導分區(qū)上的.對于Linux, 路徑通常是/boot/config.txt, 如果是Windows (或者OS X) 它會被識別為SD卡中可訪問部分的一個普通文件.
如果想要編輯配置文件, 請查看介紹編輯樹莓派配置文件.
你可以使用下列命令去獲取當前激活的設置:
vcgencmd get_config <config> - 列出指定的配置參數. 例如: vcgencmd get_config arm_freq vcgencmd get_config int - 列出所有已設置的整形配置參數(非零) vcgencmd get_config str - 列出所有已設置的字符型配置參數(非零)
文件格式
當值是整形時格式為"屬性=值". 每行只指定一個參數. 注釋使用'#'井號作為一行開頭.
注意: 在新版的樹莓派里每行都有#注釋, 要想使用該行參數只需移除#.
下面是示例文件
# 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
這是另一個示例文件, 包含了各種功能的擴展文檔.
內存
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 - 動態(tài)內存分配
自2012年11月19號, 固件和內核開始支持CMA, 這意味運行時可以動態(tài)管理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 如果你的顯示器是天朝產的垃圾貨, 允許系統(tǒng)忽略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 不發(fā)送初始化激活源消息. 避免在重啟時使(啟用CEC)TV結束待機并切換頻道.
hdmi_ignore_cec_init=1
hdmi_ignore_cec 偽裝成TV不支持CEC. 將不會支持任何CEC功能.
hdmi_ignore_cec=1
hdmi_force_hotplug 偽裝成HDMI熱插拔信號被檢測到, 出現(xiàn)HDMI顯示器被接入
hdmi_force_hotplug=1 即便沒有檢測到HDMI顯示器也要使用HDMI模式
hdmi_ignore_hotplug 偽裝成HDMI熱插拔信號沒有被檢測到, 出現(xiàn)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號發(fā)現(xiàn)有顯示混亂問題. 32位沒有混亂問題, 但是需要設置framebuffer_ignore_alpha=1, 并在2012年6月15號發(fā)現(xiàn)顏色顯示錯誤.
framebuffer_ignore_alpha 設為1將禁用alpha通道. 僅對32位有效.
test_mode 允許在啟動時做聲音與圖像測試.
disable_overscan 設為1將禁用超出掃描.
config_hdmi_boost 設置HDMI接口的信號強度. 默認為0. 如果出現(xiàn)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
- 輸入下列命令可以獲取當前設置狀態(tài)
/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來禁用動態(tài)超頻. [3]
當芯片溫度達到85°C運行時會關閉超頻及超壓, 直到冷卻. 即使在25°C環(huán)境溫度下使用最高設置, 也不要讓溫度達到極限. [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 | 不要把鎖相環(huán)用在PWM音頻. 這會略微降低模擬音頻的效果. 空閑的鎖相環(huán)允許從剩余GPU獨立設置core_freq, 這將會比超頻有更多權限. 默認為0 |
sdram_freq | SDRAM頻率,以MHz為單位.默認為400 |
over_voltage | ARM/GPU核心電壓調節(jié). [-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控制器電壓調節(jié). [-16,8]用0.025V步進等同于[0.8V,1.4V]. 默認為0 (1.2V) |
over_voltage_sdram_i | SDRAM I/O電壓調節(jié). [-16,8]用0.025V步進等同于[0.8V,1.4V]. 默認為0 (1.2V) |
over_voltage_sdram_p | SDRAM phy電壓調節(jié). [-16,8]用0.025V步進等同于[0.8V,1.4V]. 默認為0 (1.2V) |
force_turbo | 關閉動態(tài)CPU頻率驅動及下面的最小設置. 開啟h264/v3d/isp超頻. 默認為0. 會設置保修位. |
initial_turbo | 在啟動時以指定秒數 (上限為60) 或者以CPU頻率來開啟急速模式. 如果已經超頻, 能對SD卡錯誤問題有改善. 默認為0 [5] |
arm_freq_min | 設置動態(tài)時序的最小arm_freq. 默認為700 |
core_freq_min | 設置動態(tài)時序的最小core_freq. 默認為250 |
sdram_freq_min | 設置動態(tài)時序的最小sdram_freq. 默認為400 |
over_voltage_min | 設置動態(tài)時序的最小over_voltage. 默認為0 |
temp_limit | 過熱保護. 當芯片達到指定溫度就把時序和電源切換會默認值. 把此值設高于默認值將影響保修. 默認為85 |
current_limit_override | 當設為"0x5A000020"時, 禁止SMPS限流保護. 在超頻過高無法重啟時設置此項會有所幫助. 會設置保修位.[6] |
force_turbo模式
force_turbo=0
開啟對ARM核心,GPU核心和SDRAM的動態(tài)時序及電壓. 在忙的時候ARM頻率會提高到"arm_freq"并在閑的時候降低到"arm_freq_min". "core_freq", "sdram_freq"和"over_voltage"的行為都一樣. "over_voltage"最高為6 (1.35V). h264/v3d/isp部分的非默認值將被忽略.
force_turbo=1
關閉動態(tài)時序, 因此所有頻率和電壓會保持高值. h264/v3d/isp GPU部分的超頻也會開啟, 等同于設置"over_voltage"為8 (1.4V). [7]
時序關系
GPU核心, h264, v3d和isp共享一個鎖相環(huán), 因此需要相關聯(lián)的頻率. ARM, SDRAM和GPU有各自獨有的鎖相環(huán), 因此可以設為沒有關聯(lián)的頻率.[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在超頻上表現(xiàn)不如三星產的RAM的報告.
超頻時SD卡使用
設置SD卡: http://elinux.org/RPi_Easy_SD_Card_Setup
超頻時使用6速或10速的SD卡(SHDC/SHDX)會導致在一些天后樹莓派讀取SD卡文件系統(tǒng)不穩(wěn)定. 不管是ext4 , NTFS 或其他格式都一樣. 不管是哪家SD卡生產商都一樣. 不管是哪個版本的樹莓派都一樣. 這與SD卡容量無關 - 實際驗證出現(xiàn)在16G或更大的SD卡上. ! 關鍵是你何時讓樹莓派功率不足,也就是低于樹莓派的基本設置需求 !
popcornmix發(fā)表在https://github.com/raspberrypi/linux/issues/280:
"超頻會導致SD卡錯誤.這情況往往是與板子相關(就是說有些樹莓派超頻后SD卡沒事,有些不行).
我認為通常都是core_freq導致的SD卡問題(和arm_freq,sdram_freq比)"
在2013年4月寫這個提示的時候在樹莓派官方論壇上一共有137個有關于SD的問題, 絕大部分與超頻有關.
如果你使用6速或10速SD卡, 還想要樹莓派穩(wěn)定運行: 不要嘗試超頻,否則很可能會丟失數據
監(jiān)測溫度及電壓
要檢測樹莓派的溫度, 看: /sys/class/thermal/thermal_zone0/temp
要檢測樹莓派當前的頻率, 看: /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq
要檢測樹莓派電源裝置的電壓, 你需要一個萬用電表, 接上電源測試點, 或者擴展頭.
通常來說要保持核心溫度低于70度, 電壓高于4.8V. (另外請注意, 不要用那種便宜的USB電源, 那基本上是4.2V的, 這是因為那本來就是為充3.7V鋰電池設計的, 根本無法為樹莓派提供穩(wěn)定的5V電壓). 此外, 用散熱片也是個好主意, 尤其是你把樹莓派裝到了殼子里. 一個合適的散熱器是自帶不干膠柵格狀的 14x14x10 mm 散熱片.
超頻穩(wěn)定性測試
大多數超頻問題立馬就會出現(xiàn)啟動問題, 但還是會隨時間而出現(xiàn)文件系統(tǒng)問題. 這是一個對系統(tǒng),特別是SD卡進行壓力測試的腳本. 如果腳本執(zhí)行完成, dmesg中不提示任何錯誤, 你做的超頻設置可能會比較穩(wěn)定.
如果系統(tǒng)崩潰了, 在重啟時按住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."
用戶評價
暫時還沒有任何用戶評論