这个坑爹的问题,在我拿到公司刚配的DELL OptiPlex 790型号的电脑的当天就发现了~当我兴冲冲的安装好最新的Ubuntu 11.04 Natty,打好最新的内核补丁,我发现重启后,机器没反应了。只能强制关机了~
我发现这可能是一个bug,我先是在Ubuntu的邮件列表里面提出了问题,果然很多人有这个问题,不仅仅是DELL OptiPlex 790的问题,还有DELL OptiPlex 的其他64位机型.
之后,我便向ubuntu 提交了这个bug,见:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/819260
等啊等,这个bug一直没有得到修复。直到几天前,一个patch 解决了这个问题。现在只需要下载最新的linux kernel 源码,打入这个patch.编译并安装使用上该内核。重启就不会再假死拉~
下载该patch(感谢Leann Ogasawara),地址:http://ftp.xiazhengxin.name/xzx/patch/0004-UBUNTU-SAUCE-x86-reboot-Make-Dell-Optiplex-790-use-r.patch
下载最新的Linux kernel (3.0.4),地址:http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.4.tar.bz2
解压内核,进入目录:
1.打入重启补丁:
patch arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c /path/to/0004-UBUNTU-SAUCE-x86-reboot-Make-Dell-Optiplex-790-use-r.patch
2.编译内核:
make allyesconfig
生成临时.config 文件。
使用Ubuntu 的.config 文件编译,一般位于/boot/下,如下:
sharl@sharl-laptop:~$ ls /boot/config* -lh
-rw-r--r-- 1 root root 135K 2011-08-30 05:58 /boot/config-2.6.38-11-generic
-rw-r--r-- 1 root root 135K 2011-04-29 05:13 /boot/config-2.6.38-9-generic
复制过来,覆盖
cp /boot/config-X.X.XX-XX-generic ./.config
接来来,开始编译(时间很长~)
make
3.编译完成后,打成debian 包.
首先安装工具包:
sudo apt-get install kernel-package
之后,打包(时间也很长):
fakeroot make-kpkg --initrd --append-to-version=-by-sharl kernel-image kernel-headers
完成之后。就会在源码目录的上层目录里面发现,生成的deb包.
4.安装内核.
依次安装 linux-image、linux-headers包.
dpkg -i linux-image*
dpkg -i linux-headers*
5.关机.(现在重启还没好~)
6.再开机即可。
至此,我的DELL OptiPlex 790 就可以正常的重启拉~
注:
1.如果你不想自己重新编译内核,这里有我编译好的.可供下载.
http://ftp.xiazhengxin.name/xzx/linux-kernel/
2.DELL 其他机型重启内核补丁下载,见:
http://people.canonical.com/~ogasawara/ ... ot-quirks/
3.编译内核时,参考了Ubuntu官方文档,地址:
https://help.ubuntu.com/community/Kernel/Compile
我发现这可能是一个bug,我先是在Ubuntu的邮件列表里面提出了问题,果然很多人有这个问题,不仅仅是DELL OptiPlex 790的问题,还有DELL OptiPlex 的其他64位机型.
之后,我便向ubuntu 提交了这个bug,见:https://bugs.launchpad.net/ubuntu/+source/linux/+bug/819260
等啊等,这个bug一直没有得到修复。直到几天前,一个patch 解决了这个问题。现在只需要下载最新的linux kernel 源码,打入这个patch.编译并安装使用上该内核。重启就不会再假死拉~
下载该patch(感谢Leann Ogasawara),地址:http://ftp.xiazhengxin.name/xzx/patch/0004-UBUNTU-SAUCE-x86-reboot-Make-Dell-Optiplex-790-use-r.patch
下载最新的Linux kernel (3.0.4),地址:http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.0.4.tar.bz2
解压内核,进入目录:
1.打入重启补丁:
patch arch/x86/kernel/reboot.c b/arch/x86/kernel/reboot.c /path/to/0004-UBUNTU-SAUCE-x86-reboot-Make-Dell-Optiplex-790-use-r.patch
2.编译内核:
make allyesconfig
生成临时.config 文件。
使用Ubuntu 的.config 文件编译,一般位于/boot/下,如下:
sharl@sharl-laptop:~$ ls /boot/config* -lh
-rw-r--r-- 1 root root 135K 2011-08-30 05:58 /boot/config-2.6.38-11-generic
-rw-r--r-- 1 root root 135K 2011-04-29 05:13 /boot/config-2.6.38-9-generic
复制过来,覆盖
cp /boot/config-X.X.XX-XX-generic ./.config
接来来,开始编译(时间很长~)
make
3.编译完成后,打成debian 包.
首先安装工具包:
sudo apt-get install kernel-package
之后,打包(时间也很长):
fakeroot make-kpkg --initrd --append-to-version=-by-sharl kernel-image kernel-headers
完成之后。就会在源码目录的上层目录里面发现,生成的deb包.
4.安装内核.
依次安装 linux-image、linux-headers包.
dpkg -i linux-image*
dpkg -i linux-headers*
5.关机.(现在重启还没好~)
6.再开机即可。
至此,我的DELL OptiPlex 790 就可以正常的重启拉~
注:
1.如果你不想自己重新编译内核,这里有我编译好的.可供下载.
http://ftp.xiazhengxin.name/xzx/linux-kernel/
2.DELL 其他机型重启内核补丁下载,见:
http://people.canonical.com/~ogasawara/ ... ot-quirks/
3.编译内核时,参考了Ubuntu官方文档,地址:
https://help.ubuntu.com/community/Kernel/Compile