首页 > 代码库 > Linux Crash/Hang on Bay Trail/J1900/N2940

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也不行。

 

Linux Crash/Hang on Bay Trail/J1900/N2940