Ubuntu 10.10下成功编译Linux-2.6.38内核,以下是操作步骤,以供参考;
1. 在http://www.kernel.org/ 下载linux-2.6.38,
你可以选择稳定版或者新的测试版,但一定要下载Full source版。
2.安装有关编译程序。安装make ,gcc, make-kpkg,运行xconfig等等和编译内核相关的工具.
执行;
sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot
3.解压源代码
执行;
tar jfx linux-2.6.38.tar.bz2 -C ~/linux
找不到linux目录就创建一个,~/linux可以是任意目录,但是注意,要预留2G以上的空间
4.进入源代码所在目录
执行;
cd ~/linux/linux-2.6.38/
5,清理以前编译留下的临时文件,如果是刚刚解开的源码包,不用执行此步
执行;
make mrproper
6.使用make localmodconfig自动精简内核
执行;
make localmodconfig
自动精简内核完成之后就该自己上场对内核进行相应精简的,因为每个人对内核的要求都不太相同,所以这里也每必要给出所谓的最佳配置文件。不过鉴于有些选项实在晦涩难懂且很难搜索到相应的解释,这里推荐各位TX一本不错的内核编译选项手册,绝大部分的配置选项都能够在上面找到。
7,开始编译内核
执行;
sudo make-kpkg clean
sudo fakeroot make-kpkg --initrd --append-to-version=-siyuantianxia kernel_image
注:其中的“-siyuantianxia”可以改成你自己喜欢的内容,按照我的编译出来的内核名字就是“linux-image-2.6.38-siyuantianxia”
8.安装内核
编译好的内核在上一层目录,可双击安装
or
执行;
cd ..
sudo dpkg -i linux-image-2.6.38-siyuantianxia_2.6.38-siyuantianxia-10.00.Custom_i386.deb
9.安装完成后和老内核比较一下大小:
执行;
ls -l /boot/
10,重启验证内核
sudo reboot
重启后打开终端输入
uname -r
查看版本号,如果是2.6.38就可以安心了
如果发现已经安装的新内核包出现问题不合适,可以在启动Grub中选择原来的内核进入系统,然后删除新内核推到来过
sudo dpkg -P linux-image-2.6.38-siyuantianxia_2.6.38-siyuantianxia
当ubuntu用了一段时间以后,由于系统自动升级内核,系统里会有许多的内核,多了会影响系统的启动,所以把不需要的删除:
首先列出已经安装的内核:
命令如下:
erry@jerry-desktop:~$ dpkg --get-selections|grep linux
libselinux1 install
libselinux1-dev install
linux-generic install
linux-headers-2.6.20-15 install
linux-headers-2.6.20-15-generic install
linux-headers-2.6.20-16 install
linux-headers-2.6.20-16-generic install
linux-headers-generic install
linux-image-2.6.20-15-generic install
linux-image-2.6.20-16-generic install
linux-image-generic install
linux-libc-dev install
linux-restricted-modules-2.6.20-15-generic install
linux-restricted-modules-2.6.20-16-generic install
linux-restricted-modules-common install
linux-restricted-modules-generic install
linux-sound-base install
util-linux install
util-linux-locales install
其中 表中带有image的就是内核文件
然后使用apt-get命令删除不需要的内核:
sudo apt-get remove linux-image-2.6.20-15-generic
这样就会自动删除内核了,还释放空间哦。OK
另外一种方法:
使用前最好先备份
sudo cp /boot/grub/menu.lst /boot/grub/menu.lst_backup
然后
sudo geidt /boot/grub/menu.lst
编辑启动项,把里面不需要的内核项删除。
但这样只是删除启动时的选择项,并不释放空间。
还有一个命令顺便提一下,就是查看当前使用的内核的命令:
uname -a