redhat9內核替換後不能關機解決
哥是小菜,高手飄過。。。。。。
背景
由於本本不給力,編譯一次linux2.6就要一個多小時(雖然有做精簡,水平有限),只好暫時把內核改動轉到2.4,代碼學習依然用2.6(等攢點錢了換本本-_-#)。把平台換到了redhat9,采用了內核版本為2.4.37.11。
內核在redhat9原有內核基礎上僅開啟了SMP,結果關機不掉電,如圖:
看到這一幕,一頭霧水,腫麼辦?系統出問題了/(ㄒoㄒ)/~~
1、先看看啟動日志找找線索
有一句日志進入我的視線,my god(linux電源管理相關的是apm,直接切入)
有點眉目了,大致知道了原因,可以怎麼解決呢?Linux嘛,看代碼是王道。
2、搜代碼弄死它
直接在代碼裡搜索相關日志,像我這個笨的都會,哈哈
if ((smp_num_cpus > 1) && !power_off && !smp) {
printk(KERN_NOTICE "apm: disabled - APM is not SMP safe.\n");
return -ENODEV;
}
一看就明白了吧,我的CPU有兩個,所有power_off和smp不對,在找這倆的出去,咋不對呢?
在apm_setup中是這樣的:
if (strncmp(str, "smp", 3) == 0) {
smp = !invert;
}
if ((strncmp(str, "power-off", 9) == 0) || (strncmp(str, "power_off", 9) == 0))
power_off = !invert;
invert就是看有沒有前綴no-、no_。
3、解決驗證下
啟動參數加上apm=on,power-off,smp,十幾分鐘搞定O(∩_∩)O哈哈~