debian下编译升级新的linux内核方法【转】

        由于项目需要,今天搞了一天的linux内核编译升级,终于成功了。主要参考资料就是下面这一篇内核编译安装的文档,当然,很多细节根据内核的差异有所不同,任何文档只能提供内核编译安装的主要思想,所以我也没必要特意写一份新的linux内核编译心得了,大家可以参考这篇文章。

------------------------------------------------------------------------------------

虚拟机VMware下的Debian etch 2.6.18-6-686,欲升级为2.6.28内核。

首先,修改/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.debian.com/distrib/packages中找到。

然后在http://www.kernel.org/上下载最新的Linux Kernel。

为啥?他娘的,好不容易升级一次,咋还不整个最新的?我升级时,最新内核文件是linux-2.6.28.tar.gz,放到目录/usr/src下,

#cd /usr/src

#tar xzvf linux-2.6.28.tar.gz

#ln -s linux-2.6.28 linux                      //在当前目录下创建linux-2.6.28的链接文件linux

#cd linux

#make xconfig                       

X-Window下的内核配置命令,如果要使用USB摄像头,一定把video4linux(v4l和v4l2的选项选为模块),最好把其中的驱动都选上,比如gspca,spca5xx,zc0301等。另外,还需要选上 。其他的可以用默认选项。然后saveàquit。之后运行

#make dep                               //这步应该是检查依赖关系

#make clean                            //如果是第一次编译新下载的内核,这步可省略

#make bzImage                       //生成新内核的镜像

#make modules                       //编译外挂模块

#make modules_install            //安装模块

#/sbin/depmod –a                    //创建模块的链接

#make install                          

这步创建System.map与vmlinuz。若不成功,需要手动创建,进入/boot文件夹下,执行

#cd /boot

#cp /usr/src/linux/System.map System.map-2.6.28

#cp /usr/src/linux//arch/i386/boot/bzImage vmlinuz-2.6.28

不过,正常情况下,上三步不用执行,make install已经创建好了链接。

接下来,我是这样做的:

#/usr/sbin/mkinitramfs -o /boot/initrd-2.6.28 2.6.28

#cd /boot/grub

#vim menu.lst

在最下面的

#####End Default Options#####

后添加

title Debian GNU/Linux kernel 2.6.28

root (hd0,0)

kernel /boot/vmlinuz-2.6.28 root=/dev/sda1 ro

initrd /boot/initrd.img-2.6.28

savedefault

注意,这里的格式要和原来Kernel的启动设置格式相同,然后确认一下,相应文件是否确实存在,比如/boot/vmlinuz-2.6.28。

这时我重启后,出现错误:

could not load /lib/modules/2.6.28/modules.dep,还好保留有原来的内核,于是又进入原内核,删掉了之前生成的/boot/initrd.img-2.6.28,执行

#cd /usr/src/linux

#update-initramfs –c –k 2.6.28

这样,重新在/boot下创建initrd.img-2.6.28,重启后,进入了新内核,内核编译升级成功。

 

 

你可能感兴趣的:(vmware,linux,Debian,qt,Terminal,linux内核)