|
[问题描述] 笔记本安装完Mandriva2010.0后,每次关机均会停在power down.的提示处,此后电脑一直无响应,需要手动关闭电源。
[电脑配置] CPU: Intel T2050
内存:2G DDRII 金士顿
硬盘:500G WD SATA
显卡:ATI Moblity X1600
声卡:ALC883
主板:Intel 945芯片组
无线网卡:Atheros AR5001 wireless
系统信息:Mandriva 2010(内核版本号:2.6.31.13)
[解决办法]曾经搜索过很多关于Linux电源管理问题方面的资料,但都没有真正解决我本机上出现的问题。最初怀疑是没有启动ACPI,后通过在menu.lst中加入acpi=force也没有解决。后查阅资料,确信应该可以通过编译内核的方法解决该问题(有可能是内核不稳定,也有可能是系统中引入了不稳定的因素?)。下载最新的内核文件linux-2.6.33,参照《鸟哥的Linux私房菜》中的编译内核那一章来重新编译内核。简要步骤如下:
(1)将下载的linux内核原始码解压并放入到/usr/src/kernels/目录下
#tar -zxvf linux-2.6.33.tar.gz -C /usr/src/kernels/
(2)删除中间文件,保持干净原始码(在原始码目录下)
#make clean
(3)配置核心功能(在原始码目录下)
#make menuconfig
在这一步里,我着重配置了“General setup”、“Processor type and features”和“Power management and ACPI options”这三块的功能,对于不明白的选项可以查看帮助,里面会有详细的解释。特别重要的是,有很多的选项是有依赖性的(?),如
Symbol:ACPI[=y]
Depends on: !IA64_HP_SIM[=IA64_HP_SIM] && (IA64[=IA64] || X86[=y])(注:第1项不能选,后两项必须任选一项)
Selects: PNP[=y] && CPU_IDLE[=y]
像选项里的很多功能,如CPU family,AC Adapter,Battery,Thermal Zone,Enable MPS table,Symmetric multi-processing support等等是要特别注意的。
(4)保存配置文件(Save an Alternate Configuration File)
(5)编译核心(在原始码目录下)(第5,6步的时间较长)
#make bzImage
(6)编译模块(在原始码目录下)
#make modules
(7)安装模块(在原始码目录下)
#make modules_install
(8)安装新核心
#cp /usr/src/kernels/linux-2.6.33/arch/x86/boot/bzImage /boot/vmlinuz-2.6.33(...)
(注括号里的省略号表示配置核心功能时区别版本的自定义文字,在General setup里的第2,3项里设置,两者保持一致)
复制配置文件
#cp /usr/src/kernels/linux-2.6.33/.config /boot/config-2.6.33(...)
(9)建立对应的Initial Ram Disk(initrd)
#mkinitrd -v /boot/initrd-2.6.33(...).img 2.6.33(...)
(10)编辑grub(/boot/grub/menu.lst)
这一步里参照已有的配置文件,添加新的启动项。各项配置都要准确,有些不准确的地方也可以正常启动系统,但没有正确加载相应的配置(?)。我在BOOT_IMAGE这一项没有设置正确也可以启动系统,但问题依旧,更改设置后,问题解决。
说明一下,编译内核并不会对系统造成大的影响(除非很多关键设置没有选择正确),编译新内核后可以添加新的启动项来测试新内核的稳定性,旧内核的启动项依然保留。在新内核无法正常启动的情况下,可以通过选择老的内核来启动系统后做相应的修改再测试。可以说编译内核是很安全的。
以上有不正确的地方,请指教。 |
|