我是一个新手,用linux没两天,因为用red hat5.3 el 内核只是2.6.18,没办法支持intel的5100无线网卡,让我笔记本很不爽,看了很多帖子,决定自己动手升级内核。
其实步骤很多大哥都分享出来了,这里我抱着自我学习的态度,再发一次。
1、下载最新的kernel内核,我下的是linux-2.6.33.tar.gz
解压并拷贝到/usr/src/kernel
[root@local ~]#tar zxvf linux-2.6.33.tar.gz
[root@local ~]#mv linux-2.6.33 /usr/src/kernel *(这里开始我输入的是/usr/src/kernel/ 多了个/就直接把linux- 2.6.31文件夹下的文件移动到kernel文件夹下了,没有
linux-2.6.31这一级目录了,这个没关系。)
[root@local ~]#cd /usr/src/kernel/linux-2.6.33
[root@local linux-2.6.33]#make mrproper (用来消除原来编译的影响,建议使用啦)
[root@local linux-2.6.33]#mkae menuconfig (下面三种模式选择,好像基本都用的menuconfig)
mount: could not find filesystem '/dev/root'
setuproot:moving /dev failed: No such file or directory
setuproot:error mounting /proc: No such file or directory
setuproot:error mounting /sys: No such file or directory
switchroot: mount failed: No such file or directory
Kernel panic - not syncing:Attempted to kill init!
后来找到别人写的升级指南才知道,.config必须修改后才能make,
怎么修改呢,就是gedit .config 编辑.config这个我们定制模块后保存的文件(定制时记得要选中你需要的模块,我是为了使用intel5100的无线网卡才升级的。在DEVICE DRIVER里面找无线的驱动模块就可以了,具体图片,后面有空我截了再放上来)
搜索
CONFIG_SYSFS_DEPRECATED_V2
你会发现它原本是这样
CONFIG_SYSFS_DEPRECATED_V2 is not set
修改成
CONFIG_SYSFS_DEPRECATED_V2=y
保存好,关掉,开始make吧。。。。。
make modules_install
make install
重启又会有问题:
insmod: error inserting ‘/lib/dm-region-hash.ko’: –1 File exits
这个问题呢,就是要修改initrd
我用我的老内核进入系统
然后重新定制,修改.config,编译,然后修改initrd
# cp /boot/initrd-2.6.33.img /tmp
# cd /tmp/
# ls
initrd-2.6.33.img
# mkdir newinitrd
# cd newinitrd/
# zcat ../initrd-2.6.33.img |cpio -i
# ls
bin dev etc init lib proc sbin sys sysroot
b) 编辑init,删掉重复的两行
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
echo "Loading dm-region-hash.ko module"
insmod /lib/dm-region-hash.ko
c) 重新打包initrd
# find .|cpio -c -o > ../initrd
# cd ..
# gzip -9 < initrd > initrd-2.6.33.img
d) 将initrd重新复制到/boot目录下
#cp initrd-2.6.33.img /boot
11) 重新启动
启动成功。
#uname –r
2.6.33
(上面的我就直接抄袭RHEL 升级指南那位老哥的内容)
后面还有iptable 附加模块启动失败,搜了一下,说是清空iptable列表,然后重建创建规则就可以了,我就没试了,因为安装WICD让我很痛苦,所以我就换成ubuntu了。
到此升级就完了,ubuntu挺好的,桌面版,内核都自动升级,不过有空还是自己弄一下,哈哈!