|
我中午试了一遍,重新编译了一下,把经验写写吧,不当之处各位指正。
1.下载文件,不用我说了吧?bingle/google都上吧,反正是要找到内核源码,我编译的是最新的2.6.6版本,开始吧
2.随便找个目录,我用/home/huggin/,把内核源码放在里面
3,解压,bz2的就用tar jxvf *.bz2,gz的就用tar zxvf *.tar.gz
4,好,现在进入cd linux-2.6.6,你的内核不一样就是不同的目录
5,先看一下README把,cat README | more,还有Documetation下面的Changes文件都看一看吧,cd Documetation, cat Changes | more
可以发现很多东西哦,最关键的是需要的包的安装,很多新手编译不成功或者编译好了不能用都是因为缺少包,我列在下面了
o Gnu C 2.95.3 # gcc --version
o Gnu make 3.79.1 # make --version
o binutils 2.12 # ld -v
o util-linux 2.10o # fdformat --version
o module-init-tools 0.9.10 # depmod -V
o e2fsprogs 1.29 # tune2fs
o jfsutils 1.1.3 # fsck.jfs -V
o reiserfsprogs 3.6.3 # reiserfsck -V 2>&1|grep reiserfsprogs
o xfsprogs 2.6.0 # xfs_db -V
o pcmcia-cs 3.1.21 # cardmgr -V
o quota-tools 3.09 # quota -V
o PPP 2.4.0 # pppd --version
o isdn4k-utils 3.1pre1 # isdnctrl 2>&1|grep version
o nfs-utils 1.0.5 # showmount --version
o procps 3.2.0 # ps --version
o oprofile 0.5.3 # oprofiled --version
#号后面的命令用来查看你本机这些工具的版本,小于列出的版本就需要升级
再回到我的实际情况中来,我在fedora core 1上编译的,需要升级quota-tools和module-init-tools,当然如果你不用限额之类的东西,不升级quota也无所谓
module-init-tools是一定要升级的,如果不升级,编译好后就会出现很多模块加载不上的错误,呵呵
6,好升级所需要的包,不用再说了吧?bingle/google上啊,我下载了一个module-init-tools-0.9.14.tar.bz2,注意在这里你可能可以搜到2.X.X版本的,这是老版本,一定要module-init-tools-0.9.10版本或者以上,新的0.9.XX版本可以向下兼容老的2.X.X版本
废话少说,装tar jxvf module-init-tools-*.bz2, cd module-init-tools-0.9.14,先看README,它告诉怎么装,好,开始
./configure --prefix=/
make moveold (这步很关键,保存以前的工具,万一失败可以恢复)
make
make install(这个要用root执行)
在make install之后还要有一步
./generate-modprobe.conf /etc/modprobe.conf 用来产生能加载的模块,关键
7.总算把最麻烦的搞定了,回到你的源码解压目录,我的是cd /home/huggin/linux-2.6.6 开始编内核
make mrproper
make O=/home/huggin/build/kernel menuconfig (O为大写的o,不是零,这句的意思是把结果放到/home/huggin/build/kernel/目录下,你用你自己的目录,随便哪都行),选择选项的时候最好多看看help,网上也可以找到很多相应的选项的意思
make O=/home/huggin/build/kernel
make O=/home/huggin/build/kernel modules_install install(这个要用root执行)
其实可以make O=/home/huggin/build/kernel && make O=/home/huggin/build/kernel modules_install install,一个命令把后面的事情都做了,呵呵,偶就是这样然后去吃午饭,睡了一觉再回来一看新内核已经编好了
把make menuconfig,make等的结果用O表示放在别的目录下的好处是不根源码放一块,编译完后不用了你可以直接删了,而且不用make clean
8。修改grub.conf 或者lilo.conf ,其实2.6.X已经很智能话了,我用的是grub,几乎不用该,只需要把kernel /vmlinuz-2.6.6 ro root=LABEL=/改为kernel /vmlinuz-2.6.6 ro root=/dev/hda5就可以了,当然我的根文件系统/是/dev/hda5,你的可能不一样啊,lilo的修改请参考lilo手册!
9,最后reboot,enjoy your new kernel!
10,总结一下,我从来没有编译过2.6.6内核,也没有看任何别人写的经验,今天中午一次成功,要点就是在linux下不管做任何事情,最关键的是要多看README,多看HELP,不行的话就google,发帖子,总之不要想当然。切记切记!!!另外发帖子之前你通过自己的查找是会发现很多问题的,而通过自己花工夫去得来的答案比别人在帖子上告诉你的记忆得更深刻多了!另外最好不要装rpm,因为你跟本就不知道一个rpm -i下去你的系统会怎么样!!!最好什么都用源码,有了源码就不怕他作怪了!
11.最后声明一下,本人不对本编译内核方法的正确性进行担保,如果你出现系统崩酷,硬盘坏掉,电脑爆炸,甚至出门碰上仇人老婆或者女友怀孕等等情况,一概不负责任!
ps:没有排版,斑竹见谅,转载请注明huggin@linuxsir! |
|