实战内核编译全过程

1、确定自己内核的版本

uname -r

我的内核版本是 2.6.22-14 ,我下载了对应版本的源码包进行编译

wget ftp://ftp.kernel.org/pub/linux/kernel/v2.6/linux-2.6.22.14.tar.bz2

下载完后,将源代码解压开:

tar xjf linux-2.6.22.14.tar.bz2

安装编译内核所有需要的软件包

sudo aptitude install kernel-package libncurses5-dev

进入源码目录进行操作

cd linux-2.6.22.14

下面开始配置内核,使用现有内核的配置文件作为新内核配置文件的基础,这样 不容易出错。
先复制已经存在的配置文件到当前目录中

cp /boot/config-uname -r ./.config

然后运行

make menuconfig

这将显示出内核配置菜单。在下面选择 “Load an Alternate Configuration File”,再选择你刚才拷贝过来的.config文件作为配置文件,然后确定。当结束后,你选择退出时,会提示问你 “Do you wish to save your new kernel configuration?”选择yes即可。

编译进内核是*号,编译成模块是M号,不编译是空白。

里面复杂的内容参照Linux 2.6.19.x 内核编译配置选项简介

或是参考这里kernel_options.html
配置完后,创建内核,执行下面两个命令:

清理一下

make-kpkg clean

真正开始编译

sudo make-kpkg –initrd –append-to-version kisa747 kernel_image

近一个小时内核的编译终于结束,安装新的内核

cd ..

sudo dpkg -i linux-image-2.6.22.14 (用Tab键补全)

重启就在grub菜单里就看到自己编译的内核的选项。但由于第一次编译内核未能成功,以后有时间多学习希望能编译成功。