Debian升级内核到3.2的方法
最近用上华为的3G网卡,型号是E353,可能是设备太新,我的蝶变(Debian)死活不支持,后来google到3.2.0-rc5的kernel changelog,里面有一行说添加了HUAWEI E353的支持,这回妥了,毫不犹豫赶紧上吧!
方法一:(这个方法不推荐)于是,按着网上找到的步骤:
首先,修改/etc/apt/sources.list,如果其中有含cdrom这行,用“#”号注释掉该行。
然后,打开终端Terminal,运行
#apt-get update
#apt-get install build-essential
这步将装上如gcc等的所有基本软件工具,由于打算使用X-Window中的xconfig界面来配置内核,所以,需要安装qt3,运行命令
#apt-get install pkg-config qt3-dev-tools libqt3-headers libqt3-mt-dev qt3-qtconfig qt3-doc
然后在http://www.kernel.org/上下载最新的Linux Kernel。
我升级时,最新内核文件是linux-3.2-rc7.tar.bz2
#tar -jxvf linux-3.2-rc7.tar.bz2
#cd linux-3.2-rc7
#make xconfig
X-Window下的内核配置命令,在出现的页面中,我没有修改任何参数,直接保存&退出 的。网友可以根据自己的实际情况修改,不过一定要确定没有错误。
#make dep //这步应该是检查依赖关系
#make clean //如果是第一次编译新下载的内核,这步可省略
#make bzImage //生成新内核的镜像,这里时间比较长
#make modules //编译外挂模块,这时间最长
#make modules_install //安装模块
#depmod –a //创建模块的链接
-------------------------------------------------------------------------------------------------
#make install //这步创建System.map与vmlinuz。
若不成功,需要手动创建,进入/boot文件夹下,执行
#cd /boot
#cp /usr/src/linux/System.map System.map-2.6.36.2
#cp /usr/src/linux//arch/i386/boot/bzImage vmlinuz-2.6.36.2
不过,正常情况下,上三步不用执行,make install已经创建好了链接。
---------------------------------------------------------------------------------------------------
最后
mkinitramfs -o /boot/initrd.img-2.6.36.2
#sudo update-grub
//如果出现
Generating grub.cfg ...
Found Debian background: linuxdeepin.png
Found linux image: /boot/vmlinuz-2.6.36.2
Found initrd image: /boot/initrd-2.6.36.2.img
Found linux image: /boot/vmlinuz-2.6.35-24-generic-pae
Found initrd image: /boot/initrd.img-2.6.35-24-generic-pae
Found memtest86+ image: /boot/memtest86+.bin
说明成功了。
#sudo reboot //重新启动机器体验新的内核吧!
-----------------------------------------------------------------------
到此为止,整个内核的编译就全部完成啦。
不过也许你重启系统时,虽然启动菜单中增加了新内核2.6.34的启动项,但极可能会启动失败,出现以下提示:
warning:can't open directory /lib/modules/2.6.34/modules.dep,no such files or directory
选择从旧内核启动登录系统,然后执行以下命令(为了避免输入错误,最好复制下面的命令)修改后就能成功启动新内核了。
######################################
sudo su (保证获得root权限,否则会提示权限不够,不能成功完成任务哦)
cd /boot
cp initrd.img-2.6.36 initrd-2.6.36.old (先做一个备份以防万一,哈哈)
depmod -a
update-initramfs -k 2.6.36 -c
cd /tmp
gzip -dc /boot/initrd.img-2.6.36| cpio -id
touch lib/modules/2.6.36/modules.dep
find ./ | cpio -H newc -o > /boot/initrd.img-2.6.36.new
gzip /boot/initrd.img-2.6.36.new
cd /boot
mv initrd.img-2.6.36.new.gz initrd.img-2.6.36
######################################
重新启动后,发现可以成功的进入,不放心的话,可以确定一下:
进入终端
#uname -a 查看结果
按照这个步骤之后,我的内核就编译完成了,其中可能会遇到不能通过uuid识别设备,导致无法挂载到/root的问题,这里再重新mkinitramfs一下就行了。
有些情况是重启后停止在黑屏左上角光标不停闪烁的地方,这个情况大多是因为显卡驱动的问题,你可以进入恢复模式,重装显卡驱动。
装好后,对华为e353的支持几乎完美,个人感觉比在windows下的强多了!爽啊:D
上靓图一张(注意左下角的图标就是连上3G的样子):
方法二:(推荐)
编辑/etc/apt/sources.list文件,然后添加一个向后兼容的源:
deb http://ftp.cn.debian.org/debian-backports squeeze-backports main
然后:
aptitude update
aptitude -t squeeze-backports install linux-image-3.2.0-0.bpo.1-686-pae
如果编译NVDIA的官方驱动的话,还要装:
aptitude -t squeeze-backports install linux-headers-3.2.0-0.bpo.1-686-pae
然后重启安装NV驱动,然后再重启就行了!