最近须要对Linux的一个内核模块进行调整实验,故决定先在虚拟机中完成编译调试工做,最后再在真实的系统上进行测试。为了防止遗忘,把过程记录于此。html
1. 准备系统环境linux
首先从官网下载最新版的VirtualBox和Debian Wheezy 7.3.0的32位网络安装版CD镜像文件(debian-7.3.0-i386-netinst.iso)。而后就能够载入光盘开始安装了,安装的时候有几点须要注意:vim
2. 下载内核源码,安装必需的软件bash
Debian Wheezy默认没有提供sudo工具,因此能够先把它装上。网络
su root... apt-get install sudo exit
可是如今仍是不能使用sudo,为了能让普通用户可以使用sudo,须要将用户加到/etc/sudoers文件中。app
su root... vi /etc/sudoers
再次进入特权模式,找到文件中的下面这一行:工具
root ALL=(ALL:ALL) ALL
在下面添加一行,变成这样(其中feng32是做者的用户名):测试
root ALL=(ALL:ALL) ALL feng32 ALL=(ALL:ALL) ALL
而后退出保存,就可使用sudo来临时得到管理员权限了。接着安装使用更方便的vim,方便以后的操做:es5
exit sudo apt-get install vim
接着安装两个编译内核真正须要的软件包:spa
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