下载内核源代码:http://www.kernel.org/
安装有关编译程序。安装make ,gcc, make-kpkg,运行menuconfig等等和编译内核相关的工具。
安装不了,请检查/etc/apt/sources.list 文件。有关命令:
$sudo apt-get install build-essential kernel-package libncurses5-dev
二、解压源代码
解压到任何目录上都可以。我放在自己的主目录下的src目录。
$ cd ~
$ mkdir src
然后解压到src中
tar jfx linux-*.tar.bz2 -C src/
现在,源代码就在 ~/src/linux-3.2.33
进入源代码的目录,准备下一步的工作。后面都在这个目录里面进行。
$ cd ~/src/linux-3.2.33
三、开始编译前的准备工作。
首先,清理以前编译时留下的临时文件。如果是刚刚解开的包,不需要执行这步。如果是第二次或者是第n次编译,那么一定要执行。
相关命令如下:
$ sudo make mrproper
网上很多教程上说把现在使用的内核的config拷贝过来参考,据实验,编译后出错。
不过这个思想倒是可以学习一下。当然你可以将以前的配置拷贝过来。
命令:
cp /boot/config-`uname -r` ./.config
四、开始配置内核选项。
从linux-2.6.32开始可以使用make localmodconfig自动精简内核
注意: 该方法会自动去掉一些从开机到当前没用使用的模块(主要是驱动模块),
所以你可以使用一下你的摄像头, 挂载一下iso文件…..
以保证需要的模块不会被精简掉, 否则使用新内核时会发现不能挂载iso文件, 不能使用某些外设等等.
命令如下:
make localmodconfig
如果对这样的配置不满意,可以手动修改
$sudo make menuconfig
例如可以到
General setup ---> () Local version - append to kernel release
这里添加版本表示。我输入的是ll
另外,如果想要找某个参数的配置位置 可以通过/进行查找,有点像vim的查找命令
五、开始编译内核。
ubuntu的工具是make-kpkg,和其他的发行版相比,步骤相对简单。
make-kpkg clean
sudo make-kpkg --initrd kernel_image
如果想要生成头文件用于开发目的用如下命令
sudo make-kpkg --initrd kernel_image kernel-headers
六、安装内核
编译完成就是安装工作。编译好的内核在上一层目录。linux-image-...-i386.deb
安装相关命令:
$ cd ..
$ sudo dpkg -i linux-image-(按tab键)
文件名很长,如果用tab自动补足
安装完成后和老内核比较一下大小
$ ls -l /boot/
七、重新启动验证新内核。
$ sudo reboot
这是我编译的内核
其他相关资料
1.删除 多余内核
查看安装的内核
dpkg --get-selections|grep linux
具体的卸载方法为
sudo apt-get remove linux-image-3.*
2. 查看cpu信息 cat /proc/cpuinfo
3.vim中删除中间某行(竖直方向)
%s/^\(.\{n\}\)\(.\{N\}\)/\1/g 每行会保留行开始的前n个字符然后删除掉接下来的N个字符
参考文献