Linux Crash/Hang on Bay Trail/J1900/N2940


近幾年的linux kernel, 尤其是4.1以后,在Bay Trail平台上會隨機掛起和死機,親測j1900,死機非常頻繁,而且死機前毫無征兆,直接就掛起了,console也沒有相應。

這個問題在bugzilla.kernel.org上已經吵翻了,從2015年年初,一直到現在,仍然沒有徹底解決,臨時方案有幾個,但不保證一定管用。

總結一下自己的j1900測試過的,可能管用的方案。

方案1:

在kernel flag里加上:

intel_idle.max_cstate=1

經測試,在ubuntu 14.04, 15.10上有效,功耗會略微增大,但是在ubuntu 16.04上無效,仍然死機,只是死機間隔變長。

編輯/etc/default/grub,加一行:

GRUB_CMDLINE_LINUX="intel_idle.max_cstate=1"

 

方案2:

kernel flag加上:

processor.max_cstate=1 intel_idle.max_cstate=0

或者

processor.max_cstate=1

沒有經過長期測試,效果未知。參考文檔

 

方案3:

kernel flag:

intel_idle.max_cstate=5

在rc.local加上:

echo 1 > /sys/devices/system/cpu/intel_pstate/no_turbo
echo 1 > /sys/devices/system/cpu/cpu0/cpuidle/state3/disable
echo 1 > /sys/devices/system/cpu/cpu1/cpuidle/state3/disable
echo 1 > /sys/devices/system/cpu/cpu2/cpuidle/state3/disable
echo 1 > /sys/devices/system/cpu/cpu3/cpuidle/state3/disable

禁用state3,正在測試中,效果未知。

cpuidle state似乎沒法在登陸之后更改,總是提示Permission denied,用sudo也不行。

---------------------------

更新:

只禁用state3仍然會死機。大約24小時就會死機。

正在測試禁用state2至state5。

 

 更新2:

在bios中將主板設置成win8模式,內核更新到4.4.0-57,使用intel_idle.max_cstate=1內核參數,似乎是一個解決方案。9天沒有死機。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM