基本配置:ubuntu feisty fawn ,linux-2.6.20, gcc 4.1.2
开始~~
1,安装基础工具:
sudo apt-get install flex bison libtool make autoconf gcc libncurses5-dev
sudo apt-get install kernel-package ##用来建立内核镜像的deb安装包(最終命令行脚本为make-kpkg)
2,安装linux内核源代码
sudo apt-get install linux-source
此操作会把内核源码报下载到/usr/src目录下,我这里是/usr/src/linux-source-2.6.20.tar.bz2
3,解压源码包并建立链接
cd /usr/src
sudo tar -xvjf linux-source-2.6.20.tar.bz2
sudo ln -sf linux-source-2.6.20 linux
cd /usr/src/linux
4,配置并编译内核
sudo make menuconfig
#设定自己的内核子版本号“Local version”(/ –>General setup –> Local version - append to kernel release),使用小写字母,在后面的制作deb安装包的时候会用到;
接下来就直接编译内核,有2种方法;
传统的方式:
sudo make clean
sudo make
sudo make modules_install #如果配置中有modules,会安装到 /lib/modules/`uname -r`中,并生成modules.dep
sudo cp arch/i386/boot/bzImage /boot/ #然后配置/boot/grub/menu.lst
debian发行版通用的方式:
sudo make-kpkg clean
sudo make-kpkg --revision xxx –bzimage kernel_image
- xxx为最终生成的deb安装包的子版本号(必须包含数字),另外,make-kpkg工具会读取刚才设定的“Local version”(读取.config文件),如果设定为大写字母,脚本会报错并退出。
- 此种方式编译会生成一个.deb的安装包,位于当前源码目录的上一层目录中,这里即为/usr/src/linux-image-2.6.*.deb,用dpkg安装即可(自动配置grub启动条目,备份.config 文件到/boot,安装内核模块到/lib/modules/)
sudo dpkg -i ../linux-image-2.6.*.deb
#用这种方式编译安装的好处就是编译安装更方便,而且,可以用不同的revision和local version区分不同配置的内核,使用deb安装包更易于管理和移植。
Notes:
- 对于ipw*系列网卡,选择驱动的时候要用模块方式编译,否则应用新内核后会无法加载firmware,ubuntu对于硬件的firmware似乎都是放在/lib/firmware/`uname -r` 里面,可以直接从已有的内核安装里拷贝一份出来,如:
sudo cp -r /lib/firmware/2.6.20-16-generic/ /lib/firmware/`uname -r` - make-pkg 的配置文件:/etc/kernel-img.conf /etc/kernel-pkg.conf
- 参考, man make-kpkg









Latest Comments
RSS