puretears 发表于 2005-4-15 17:30:56

菜鸟升级内核之过程篇

升级Linux内核心得

以前总认为升级内核是个超级危险的行当,稍有不慎就会死掉,可是昨天晚上冒险玩了一回,居然成功了(貌似成功,因为我没遇到什么问题^_^),写点东西,一来希望对想自己升级内核的初学者有所帮助,二来各位论坛的大鸟们,
如果我哪做得不对,各位可得帮我指出来啊,小弟我先谢过了。

昨天在公社的论坛上看到有内核升级的rpm包,忽然来了一种想自己动手编个内核的冲动,大不了玩崩了就重装嘛,反正ML的安装简单而快捷,废话少说,开始:

准备工作
1.到www.kernel.org上下载一份你喜欢的内核,由于昨天没想着成功,所以索性就下载了一个最新的2.6.11.7(不过KDE大大说2.6.3和2.6.9的性能是最好的)的bz2包——linux-2.6.11.7.tar.bz2

2.去看看KDE大大推荐的文章
http://www.linuxfocus.org/ChineseGB/July2002/article252.shtml ,虽然这个文章讲的是2.4版的内核,
不过xconfig的内容是差不多的,只是选项的位置不太一样,可以结合xconfig的帮助看看

配置前的准备
1.首先把/usr/src下面指向源代码目录的符号链接改个名字(之后我们会修改这个链接),保护我们原来源代码的安全,
cd /usr/src
   mv linux linux-2.6.9 (ml默认的内核版本)
2.把下载下来的源码包复制到/usr/src目录下
3.解压缩
tar -jxvf linux-2.6.11.7.tar.bz2
4.之后我们会得到一个目录linux-2.6.11.7,里面就放着内核源代码
5.创建一个新的符号链接指向我们的新内核源码目录
ln -s /usr/src/linux-2.6.11.7 /usr/src/linux
6.进入目录
cd /usr/src/linux

配置内核
要说这应该是最关键的,只可惜我还太菜,不知道如何能够配置出最优化的内核,只是照着上面那篇文章中的指导做的,另外,在Processor type and feature中作了些改动,不过这里我想提一些关于配置内核工具使用的事情,我们有5种方式配置内核
1. make config
    这是一个基于控制台的互动文本程序,系统一个个的问你,你一个个的回
答, 且不能反悔(估计一般人坚持不到最后就退出了)
2. make menuconfig
    这是一个文本模式、菜单驱动的配置程序,有简单的图形界面
上面这两种方法好的地方是不需要X的支持
3. make xconfig
    这是一个用qt写的配置程序,在GUI下配置内核
4. make gconfig
    如果你还是喜欢文章中那样的gtk配置风格,就用它吧,这是我从2.6.11内核目
录中的read me看到的
最后,说一个懒办法
5. make oldconfig
    这是一个非互动性的脚本,用你当前目录下的.config文件的设置作为配置标
   准,所以如果你想用当前的linux配置就这样
   cp /boot/config-2.6.9 /usr/src/.config
   make oldconfig
上面五种方法,任选一种,我用的是make xconfig按照上面提到的文章边看边作的,配置完后,保存推出,系统会在当前目录下(/usr/src/linux)为你创建一个.config文件

另外还有一点要说明的是,如果这不是你第一次配置内核,在执行上面的任何一
中配置工具前,一定要先执行make mrproper,对源代码目录进行清理工作,否则会出现问题。

编译内核
配置完后,编译就很简单了
依次执行
      make bzImage         编译内核,这里要等个10~15分钟的样子,如果
                           成功编译,系统会有提示
    make modules            编译模块,同样要等一阵子
    make modules_install 安装模块
    make install                安装新的内核
之后,下载http://www.magiclinux.org/dev/final/update/RPMS/initscripts-8.0-18mgc.i686.rpm 这个rpm,
安装一下,手工改动的方法让KDE大大给改没了,我昨天是手动改的,主要是usbfs这一块

配置grub
到这里,整个内核的安装就结束了,下面要做的就是让机器能够引导新内核,打开/boot/grub/grub.conf,如果没有
下面的代码,就自己加上
title Magic Linux (2.6.11.7)
root (hd0,10) 注:我把/boot放在了/dev/hda11上所以是(hd0,10)
kernel /vmlinuz-2.6.11.7ro root=/dev/hda13 vga=791
注:我的/分区在/dev/hda13所以这里是/dev/hda13
splash=silent
initrd /initrd-2.6.11.7.img
保存
退出

执行reboot,重新启动,如果一切正常,应该能看到2.6.11.7的启动选项了,当然,各位原来的2.6.9还是可用的 :-)

==============================================================================================
最后,想请教各位大虾一个问题,我在启动的时候,系统在
Bringing up ppp0                        
其他的都是OK,请问这是什么原因阿?要如何改呢?

这个问题我用adsl-config进行正确配置,并关掉了smb和network服务后就解决了。

慕白 发表于 2005-4-15 18:59:38

写了这么多也没人顶一下,汗~~~~~

我是不知不觉的升级至2.6.9了────为了测试KDE大大的USB,赫赫,还不知道已经升级内核了,哈哈哈哈
:mrgreen:

pumbaax10 发表于 2005-4-15 19:18:35

真厉害啊,我还是继续学习学习!!

KDE 发表于 2005-4-16 11:22:21

精彩!

KDE 发表于 2005-4-16 11:28:27

不过编译部分只需要:
makeinstall
make modules_install
应该就行。

haobus 发表于 2005-4-16 11:42:30

加精

magicxu 发表于 2005-4-16 15:18:33

呵呵,我也升了2.6.11.7,比2.6.9.9快多了,也还稳定
问一下:nfoce2 主板 usb驱动那块怎么选择,我就选了echi\ochi、uchi;以前usb按kde的方法能用,现在不行了。另外还有8139网卡?

linky_fan 发表于 2005-4-16 16:07:36


make dep
make clean

2.6的用一句make mrproper就可以了. :mrgreen:

puretears 发表于 2005-4-17 09:18:07

感谢各位前辈的支持,根据大家说的意见,我对上面的内容作了些修改,另外
问下KDE大大,是说编译内核的时候不用make bzImage和make module了,
而直接使用
make install
make modules_install
这两个命令就编译安装一起解决了是吗?
再次向各位表示感谢~~~ ^-^
页: [1]
查看完整版本: 菜鸟升级内核之过程篇