在Debian上编译linux内核,本质上没什么不同,只是需要生成inittrd相关东西,以下记录debian下标准的编译内核流程
原来参考的帖子是在虚拟机上装的,仅供参考.
1. 准备系统环境
首先从官网下载 最新版的VirtualBox 和Debian Wheezy 7.3.0的32位网络安装版CD镜像文件( debian-7.3.0-i386-netinst.iso )。然后就可以载入光盘开始安装了,安装的时候有几点需要注意:
- 选择语言、地区的时候,最好选择English / Hong Kong,如果选择中文则可能会出现乱码
- 选择安装哪些组件的时候,只要选择“标准系统组件”就行了,其它的都不装
- 如果之后要写到8G的U盘或者CF卡里,最好建立虚拟硬盘的时候就设置得小一些,比如7.2GB,要确保能写得下,否则之后还需要用resize2fs和fdisk重新调整,这就比较麻烦了
2. 下载内核源码,安装必需的软件
Debian Wheezy默认没有提供sudo工具,所以可以先把它装上。
su root...
apt-get install sudo
exit
但是现在还是不能使用sudo,为了能让普通用户能够使用sudo,需要将用户加到/etc/sudoers文件中。
su root... vi /etc/sudoers
再次进入特权模式,找到文件中的下面这一行:
root ALL=(ALL:ALL) ALL
在下面添加一行,变成这样(其中feng32是作者的用户名):
root ALL=(ALL:ALL) ALL
feng32 ALL=(ALL:ALL) ALL
然后退出保存,就可以使用sudo来临时获得管理员权限了。接着安装使用更方便的vim,方便之后的操作:
exit
sudo apt-get install vim
接着安装两个编译内核 真正需要 的软件包:
sudo apt-get install kernel-package
sudo apt-get install libncurses5-dev
最后从kernel.org上下载Linux内核源码。这里我选择的是最新的longterm版本3.12.14。
wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.12.14.tar.xz
3. 解压内核源代码
Debian Wheezy默认就整合了xz工具,所以可以直接解压。
xz -d linux-3.12.14.tar.xz tar xf linux-3.12.14.tar
4. 配置、编译内核
解压得到约520MB的文件,位于当前用户的home目录下。接着从现有的内核中获取配置信息,运行:
cd linux-3.12.14 make oldconfig
配置系统会询问很多新出现的配置选项,直接回车选择默认项即可。然后运行:
make menuconfig
确保你需要的特性都已经包括,按ESC退出配置。最后运行下面的指令开始编译:
make-kpkg clean
fakeroot make-kpkg --initrd --append-to-version=-hlcodel --revision=1.0 kernel_image
在虚拟机中,单线程编译3.12.14内核大约要花费1.5小时。在编译完成之后,home目录下出现了一个deb文件:linux-image-3.12.14-hlcodel_1.0_i386.deb。
5. 安装内核
使用下面的命令安装这个deb包:
dpkg -i linux-image-3.12.14-hlcodel_1.0_i386.deb
完成后重启,然后运行unamr –r,如果出现下面的输出,则代表安装已经完成了:
3.12.14-hlcodel