近幾年的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也不行。
http://xxxxxx/Linuxjc/1170256.html TechArticle