分类:
2008-10-15 16:24:11
很多朋友一听到说编译内核,就觉得很高深莫测,非常头大。其实,通常其它操作系统的内核编译是比较繁琐的。然而,由于Debian强大的dpkg软件包管理系统,使得内核的升级、编译也变得容易很多。如果下面的步骤都注意并执行了,编译内核不是很复杂的事情,我在基于debian的ubuntu系统上第一次编译就成功了。编译过程如下,与各位分享:
修改ubuntu 6.10上的/bin/sh
在ubuntu6.10上,/bin/sh默认是链接到/bin/dash的,当你从源代码编译软件的时候,dash可能会导致一些错误,至少我遇到过 类似问题,因此,我把/bin/sh的连接改为了/bin/bash。(估计中国绝大部分使用者都是用的bash吧)
如果你使用的就是6.10,那么应该这样做:
rm -f /bin/sh
ln -s /bin/bash /bin/sh
安装相关的软件,包括
a、 Dapper Drake 6.06 LTS 首选“软件”,自己想办法安装吧
b、build-essential,里面有gcc,make等东西要用到。
c. kernel-package,里面有make-kpkg要用。
d. qt库,主要是为了用make xconfig图形界面配置,你要安装libqt3-headers,libqt3-mt-dev等
e. libncurses5-dev,主要是用make menuconfig,我就用这个。
f. gtk库,用于make gconfig。安装gtk2.0,相关lib。
源码
到当前最新版的源代码。的分类有p,f等区别,要下f类型的连接,不要下补丁。下好的源代码应该有40多M。然后解压缩源代码。
tar xjvf -2.6.20.tar.bz2 -C /usr/src/-2.6.20
cd /usr/src/linux-2.6.20
补丁
如果需要给内核源代码打补丁,首先下载相对应的补丁,在这里我们以patch.bz2代替。将其放到/usr/src目录下,然后用下来的命令来使其生效:
bzip2 -dc /usr/src/patch.bz2 | patch -p1 –dry-run
bzip2 -dc /usr/src/patch.bz2 | patch -p1
注意!此时,你应该一直处于/usr/src/linux-2.6.20目录下。
第一个命令仅仅是试验性质的,它并不会对你的源代码产生什么变动。如果没有产生什么错误信息,你才能用第二个命令来对源代码产生真正的修补动作,如果第一条指令就出错了,请别继续执行下去,看看错误出在哪里。
同样,你也可以向你的内核提供预补丁,例如,一旦你发现有一个自己需要的特性在2.6.19 rc4中提供,但这个版本的内核并没有发行所有的完整源代码,只有patch-2.6.19-rc4.bz2是可选的。于是,你就可以提供这个patch 到2.6.18的内核中,但不是2.6.8.1,或者2.6.8.2。
创建链接
创建一个指向新内核代码的符号
sudo ln -s /usr/src/linux-2.6.16ck12 linux
然后进入这个目录:
cd /usr/src/linux
[1]