也许是闲着没事,我突然想编译安装一下Ubuntu 12.04的内核,并打上CK补丁。
CK补丁能够提升桌面性能,YUCOAT的电脑是2G的内存,AMD X4 640的CPU,编译打上CK补丁的内核桌面程序运行速度明显提升。
什么是CK补丁
关于CK补丁,请参考Wikipedia的这个页面
选择一个合适的版本
YUCOAT在发这篇文章的时候,Linux内核的主版本号已经接近4了,但是这里,我仍然不采用最新稳定版的3.8内核。因为我在编译内核的时候会给内核打上一些补丁,而这些补丁不一定适合最新的版本。
你的操作系统未必是Ubuntu 12.04,但是你在选择内核版本的适合建议你尽量选某篇教程上所选用的版本,因为很多情况下某些版本在某些特定的环境下在编译的过程中会出一些大大小小的问题。如果选择有人试过水的版本,风险会少很多。
这里,我选择的版本号为3.3.4
打上合适的补丁
要打四个补丁,前三个是Debian提供的,最后一个就是ck补丁啦,
首先去Kernel.org选择某个本版的Linux内核,然后从下面的网站下载对应版本的补丁
http://kernel.ubuntu.com/~kernel-ppa/mainline/v3.3.4-precise/
#Debian官方的补丁需要这三个
0001-base-packaging.patch
0002-debian-changelog.patch
0003-default-configs.patch
#ck 补丁
http://ck.kolivas.org/patches/3.0/3.3/3.3-ck1/
这个补丁patch-3.3-ck1.bz2
开始打补丁
#把文件一一解压了,可以得到这些文件和目录
linux-3.3.4/
0001-base-packaging.patch
0002-debian-changelog.patch
0003-default-configs.patch
patch-3.3-ck1
#用patch命令打补丁
yucoat@yucoat ~/linux-3.3.4 $ cd linux-3.3.4
yucoat@yucoat ~/linux-3.3.4 $ patch p1 < ../0001-base-packaging.patch
yucoat@yucoat ~/linux-3.3.4 $ patch p1 < ../0002-debian-changelog.patch
yucoat@yucoat ~/linux-3.3.4 $ patch p1 < ../0003-default-configs.patch
yucoat@yucoat ~/linux-3.3.4 $ patch p1 < ../patch-3.3-ck1
配置config文件
如果你不怎么懂内核配置的话,你最好选择用以前版本的旧的配置
yucoat@yucoat ~/linux-3.3.4 $ cp /boot/config-3.2.0-35-generic .config
#开始配置
yucoat@yucoat ~/linux-3.3.4 $ make menuconfig
#如果你什么都不懂的话,最后在进入menuconfig之后保存再退出
#在编译的过程中某个模块出错,导致编译出现语法错误。为了避免这个错误,在编译前执行
yucoat@yucoat ~/linux-3.3.4 $ sed -i s/CONFIG_RTS5139=m/CONFIG_RTS5139=n/ .config
开始编译
需要安装一些工具
sudo apt-get install kernel-package libncurses5-dev
#开始编译
sudo make-kpkg --initrd --append-to-version=-ramki kernel_image kernel_headers -jN
#-jN中的N为cpu的核心数
编译完了之后会有两个文件,用dpkg命令安装这两个文件
sudo dpkg -i linux-image-3.3.4-ck1-ramki_3.3.4-..._amd64.deb
sudo dpkg -i linux-headers-3.3.4-..._amd64.deb
我在安装的过程中出现了一些小错误,是与dkms有关的,但是后来运行正常,所以也没有管它了。
最后一步,更新grub
重启!
本人并不具有丰富的编译内核的经验,对内核了解也比较少,文章难免照顾不周,如果有什么问题,请在下面留言。