从linux-2.6.32开始可以使用make localmodconfig自动精简内核, 菜鸟也能轻松精简内核到十几MB
如果想手动精简看3楼

最新NV驱动才能在2.6.34及其以后的内核上使用
ATI官方(受限)显卡驱动无法在最新内核上运行
一、下载源代码和编译软件准备
下载内核源代码:http://www.kernel.org/
注意,点击2.6.34内核的Full source版,即完整版。
如果你懒得去网站点链接,运行下列命令:
代码: 全选
cd ~/
wget http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.34.tar.bz2
有关命令:
代码: 全选
sudo apt-get install build-essential kernel-package libncurses5-dev fakeroot
注意,很多教程上说应该解压到 /usr/src, 但是实际上解压到任何目录上都可以。
/usr/src下面需要root权限反而容易出问题.
代码: 全选
tar jfx linux-2.6.34.tar.bz2 -C ~/linus
注意目录容量要到达1.5G
现在,源代码就在 ~/linus/linux-2.6.34/
进入源代码的目录,准备下一步的工作。后面都在这个目录里面进行。
代码: 全选
cd ~/linus/linux-2.6.34/
首先,清理以前编译时留下的临时文件,如果是刚刚解开的包,据我的实践,不需要执行这步。执行与否,自己考虑。
相关命令如下:
代码: 全选
make mrproper
不过ubntu的config存在很多问题, 建议改用附件中arch的2.6.23的config 里面的config是32位的config, 里面的config.x86_64是64位的config
把kernel26-config.tar.xz里的解压出来, 然后把config和config.x86_64复制到源代码目录, 然后如果你是32位系统
命令如下:
代码: 全选
cp config ./.config
代码: 全选
cp config.x86_64 ./.config
四、开始配置内核选项。
从linux-2.6.32开始可以使用make localmodconfig自动精简内核, 菜鸟也能轻松精简内核到十几MB
首先自动精简内核模块(如果想手动精简看3楼)[/size]
注意: 该方法会自动去掉一些从开机到当前没用使用的模块(主要是驱动模块),
所以你可以使用一下你的摄像头, 挂载一下iso文件.....
以保证需要的模块不会被精简掉, 否则使用新内核时会发现不能挂载iso文件, 不能使用某些外设等等.
命令如下:
代码: 全选
make localmodconfig
也可以再使用qconfig检查一下
相关命令
代码: 全选
sudo aptitude install libqt3-headers libqt3-mt-dev libqt3-compat-headers libqt3-mt#安装xconfig依赖包,
make xconfig
选项意义:圆中点是编译成可以随时加人的模块(以下简称M),方块中一勾是编译进入内核(以下简称Y),空就是不要(简称N)。(如下图) 1、在“General setup”里面,有几项普通用户可以放心的去掉,
分别是:POSIX Message Queues 、Cpuset Support、Create deprecated sysfs files、Kernel->user space relay support (formerly relayfs)
2、在“ Timer frequency ”里,默认是250Hz,最好选择1000Hz以提高gui响应
3、其他的具体看3楼
全部设置完成,请保存设置。按照我的习惯,先在上一层目录保存一个备份,文件名类似 ../config
然后保存到当起目录,文件名 .config
退出设置程序。
五、开始编译内核。
ubuntu的工具是make-kpkg,和其他的发行版相比,步骤相对简单。
相关命令:
代码: 全选
sudo make-kpkg clean #这条命令好像不要超级权限,很多资料上说要,不过这不是原则问题。
fakeroot make-kpkg --initrd --append-to-version=gould0.76 kernel_image
输完上述命令回车之前,建议大家把浏览器还有别的运用程序都关掉,机器开始的工作比较艰苦。我的p4 1.7G机器用了30分钟。
六、安装内核
编译完成就是安装工作。编译好的内核在上一层目录。我的是linux-image-2.6.34gould0.76_2.6.34gould0.76-10.00.Custom_i386.deb
代码: 全选
cd..
sudo dpkg -i linux-image-2.6.34gould0.76_2.6.34gould0.76-10.00.Custom_i386.deb
安装完成后和老内核比较一下大小
代码: 全选
ls -l /boot/
七、重新启动验证新内核。
sudo reboot
八、如果。。。
grub菜单上选用老内核启动机器,推倒重来
附1, 重启后N卡驱动安装
最新NV驱动才能在2.6.34内核上使用
让系统在内核升级时自动安装nvdia驱动的方法:viewtopic.php?t=141431&start=0&postdays ... highlight=
重启后不能直接进入X11,先编译nvidia驱动官方(先删除旧的驱动)
代码: 全选
sudo sh NV******.run
代码: 全选
sudo sh NV******.run --kernel-source-path=你编译内核的目录,
如
sudo sh NV******.run --kernel-source-path=/home/david/linus/linux-2.6.34
附2, 把qconfig改成qt4界面
下载下面的补丁 解压到源码目录, 然后使用命令
代码: 全选
patch -p1 < 2900_xconfig-with-qt4.patch
代码: 全选
sudo make-kpkg clean
安装好qt4编译环境后, 编译命令如下.
代码: 全选
make xconfig
inter显卡和用开源驱动(没装受限驱动)打开特效的ati显卡编译内核后不需要安装驱动
drcom-1.4.8才支持linux-2.6.28以上内核 viewtopic.php?t=115048&start=15&postday ... highlight=
[/size]
补充1:如果编译内核后,只是希望修改某些模块(M)选项,可以不用完全重新编译。
只需要执行
make xconfig
然后之添加或减少模块(M)选项
然后(不要执行make mrproper和sudo make-kpkg clean),
直接执行编译命令如
sudo make-kpkg -initrd --initrd --append-to-version=david0.68 kernel_image #整条命令要和上次编译时一样
make就会在原来编译的基础上,编译新选上的模块(如果有的话),而不会全部重新编译。
这样可以节省大量时间和能源,尤其是你电脑不是很快的话。
欢迎大家提意见
