[Kernel] Debian-ubuntu-kernel-install
第一步 安装必要的工具
首先要安装必要的包。
包有:libncurses5-dev(menuconfig需要的)和essential
sudo apt-get install build-essential kernel-package
sudo apt-get install make
sudo apt-get install gcc
另外,查看系统是否有这样的两个命令
mkinitramfs mkisofs
这两个工具在编译内核时用来生成 *.img文件的。如果没有就需安装。
第二步 下载内核
到www.kernel.org下载新内核到/usr/src
wget http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.5.tar.bz2
我下载的是linux-2.6.30.5.tar.bz2(原来的内核是2.6.24-24-generic)
第三步 编译前的准备
察看当前内核的版本
border@ubuntu:/usr/src$ uname -a
Linux ubuntu 2.6.24-24-generic #1 SMP Tue Jun 30 20:28:53 UTC 2009 i686 GNU/Linux
建议最好下载比当前已安装版本高的内核
解压linux-2.6.30.5.tar.gz到linux-2.6.30.5
cd /usr/src
sudo tar xjvf linux-2.6.30.5.tar.bz2
cd linux-2.6.30.5/
第四步 开始编译
cd /usr/src/linux-2.6.30.5/ //以下所有的工作都在/usr/src/linux-2.6.30.5/下完成
sudo make menuconfig //用menuconfig的话还需要Ncurses,或者用
sudo make xconfig
sudo make menuconfig //一般是用menuconfig
配置完以后保存(系统中保存的一份内核配置文件是在/usr/src/linux-2.6.30.5下名为.config,你也可以自己在别的地方另存一份)
也可以cp原来在/boot目录下的config-2.6.xx 到当前目录下,在make menuconfig是使用这个配置文件。
sudo make clean //清除旧数据 ,新解压的内核源码就不需要这一步了
sudo make –j4 可以分四个线程来进行编译工作
sudo make bzImage //编译内核,将保存到/usr/src/linux-2.6.30.5/arch/i386/boot/下
sudo make modules //编译模块
sudo make modules_install //安装模块,执行完后会显示DEPMOD 2.6.30.5
sudo mkinitramfs -o /boot/initrd.img-2.6.30.5 2.6.30.5 // 2.6.30.5为modules_install 执行完成后显示的DEPMOD 2.6.30.5, 注意: 2.6.30.5 前面有空格
sudo make install //安装内核
如果你想把编译的结果打包为Deb包,可以参考这里 和 这里 .
sudo make-kpkg clean
sudo make-kpkg –revision eee701 kernel_image
sudo dpkg -i linux-image-2.6.30_eee701_i386.deb
安装完后/boot下将增加以下几个文件(用ls -l *30*查看)
border@ubuntu:/boot$ ls -l *30*
-rw-r–r– 1 root root 96237 2009-08-25 17:41 config-2.6.30.5
-rw-r–r– 1 root root 7896051 2009-08-25 17:38 initrd.img-2.6.30.5
-rw-r–r– 1 root root 1095789 2009-08-25 17:41 System.map-2.6.30.5
-rw-r–r– 1 root root 2324720 2009-08-25 17:41 vmlinuz-2.6.30.5
给/boot/grub/menu.lst中添加一个新的启动项,如我的menu.lst增加了如下一段文字
title Ubuntu kernel 2.6.30.5
root (hd0,0)
kernel /boot/vmlinuz-2.6.30.5 vga=794 root=/dev/sda1 ro
initrd /boot/initrd.img-2.6.30.5
quiet
ps: 上面在kernel一行后面的 “vga=794 root=/dev/sda1 ro” 是从你之前的启动项取得的。
重新启动即可。
参考:
1. http://ubuntuforums.org/showthread.php?t=311158
2. “creating a kernel 2.6.30 deb file” http://www.naumann.cc/?p=107
–
Bian Jiang
Blog: http://www.wifihack.net/
Recent Comments