Chinaunix首页 | 论坛 | 博客
  • 博客访问: 7893
  • 博文数量: 2
  • 博客积分: 1420
  • 博客等级: 上尉
  • 技术积分: 35
  • 用 户 组: 普通用户
  • 注册时间: 2008-06-04 16:07
文章分类
文章存档

2008年(2)

我的朋友
最近访客

分类: LINUX

2008-06-04 17:37:31

linux 内核编辑实录


转载 作者iamshiyu(七夕银河)
真是颇费周章,不过经过这次内核升级,我对于linux的认识又深入了一层,高兴。
数次升级失败后(大于5次),本来我都没有勇气再升级了,但是每当看到高手们介绍iptables扩展模块的强大
功能,还是令我怦然心动,而且linux的使用者如果不会内核升级,就无法进入新的阶段,于是决定:屡败屡
战,再来一次!
注:凡是输入命令的地方我前面都会加上##,和脚本注释的#加以区别
首先从上下载最新的内核,
这次我下载的是linux-2.6.18.tar.gz   
把这个文件放在/root/目录下
##tar zxvf linux-2.6.18.tar.gz   
生成一个目录linux-2.6.18
##cd linux-2.6.18
##make mrproper
这个命令的作用是清理以前编译内核的痕迹,其实如果是新解压的,不用这个命令应该也可以。你可以对比
看一下make menuconfig的前后,编译完成的前后目录中文件的变化。
我当前运行的是redhat as4 update1,内核版本是2.6.9-11.EL,我对自己的硬件配置并不是特别清楚,所以还是
保留原有配置的好,我想要的只是让我的内核能支持新的netfilter模块功能而已。(查看当前内核版本可以用
这个命令uname -a )所以
##ls -al /boot
能够看到下面有个文件,类似config-2.6.9-11.EL,这就是现在的内核对应的.config文件了,把它考到新内核
所在的目录下
##cp /boot/config-2.6.9-11.EL /root/linux-2.6.18/.config
如果这个目录下已经有.config这个文件了……当然覆盖掉了。然后开始编译
##make menuconfig
make menuconfig 需要安装libcurses5-dev支持,如果是redhat比较新的版本比如as4或者fc4,可能是需要ncurses-5.4- 13.i386.rpm和ncurses-devel-5.4-13.i386.rpm这两个文件,请先确认你已经装上了这两个软件包……
(本来以为不需要说明的,但是看来问的不少,为什么新手们不选择完全安装呢,起码能省我很多事情)
……
进去以后,选择菜单很靠下的选项"Load an Alternate Configuration File"
然后select,会问你是否要提取.config,当然了。
然后你的基本配置信息就已经被保存了,如果没有什么不满意的地方,不用改动了,除非你很清楚你到底改
了什么(比如我修改了Networking  ---> 的部分,增加了很多模块;改了电源管理中的一部分,因为从前的内
核会导致reboot命令不能重启,所有程序关掉后会卡住;改了文件系统中的对ntfs系统的写支持;processor里
面也改了,把原来的Pentium-III/Celeron(Coppermine)/Pentium-III Xeon改成Pentium-4/Celeron(P4-
based)/Pentium-4 M/Xeon,本来我的celeron就是2.1g的么,为什么要工作在奔三的状态下呢,浪费),配置完
成后,选择exit退出,会问你是否保存,当然保存了。这时候就生成了新的.config文件了,可以开始编译内核
了!!!
##make
这个时候如果没有问题,就会开始进行编译了。我感觉,linux下所有的软件(所谓的源文件啦,那种安装包
的比如rpm等等不算)其实都是需要你自己重新配置一遍(编译,或者叫make)以适应你自己的系统,从某
种程度上来说,是你自己为自己的硬件打造了一套系统(虽然大部分的程序都不是你写的而是linus和其他的
linux软件开发者),是不是很神往啊?说这么多费话,当然,实际上这个编译的过程相当的长,你可以在午
饭前输入make命令,等到吃完午饭回来看他好没好,如果你想要检验自己的水平,也可以通过仔细阅读目录
中的README文件来让自己对linux有个更深刻的认识。
make完成后,就要把模块都安装进系统去了!
##make modules_install  
这个时间也挺长,但不如上面那个。新的模块都会放在/lib/modules目录下对应的内核版本目录中,以后如果
你使用这个新编译的内核引导系统,则这个系统所使用的内核模块都在对应这个内核版本的目录中,包括你
的驱动程序啊什么的。
哦?模块安装完了?ok,你想不想开始使用这个内核呢?不想的话,先放这儿好了,以后慢慢来。
如果想要立刻就用,就输入
##make install  
这个时候会把你新编译的内核复制到/boot目录下(这个目录可是专门存放内核镜像和相关文件的地方,所以
安装系统的时候最好把这个目录单独划分为一个分区,不要让其他程序占用这个分区的空间……至少redhat  
as4是这样的),同时还会修改你的grub.conf文件,使得引导菜单会多出一个选项,grub.conf我就不多讲了。
所有的命令都顺利完成了?
##reboot
重启后你会发现启动菜单中(或者说grub引导界面中)多了一个选项,我的就是linux-2.6.18这个选项了,选
择这个选项,你就开始进入新的内核系统了。
shit,为什么启动信息报告我的网卡没有启动?错误的irq?不同的mac地址?什么嘛?
这时候,你的驱动程序其实都在,但是系统会从/etc/modprob.conf里面读取系统的配置
我发现在里面有这样两行
options via-rhine  irq=5
alias eth1 via-rhine
原来是它们在作怪,注释掉,重新启动,哈哈,一切都好了(在此多谢bbs.chinaunix.net上的高手指导)!
现在看看
##uname -a
Linux linuxtest.xxx.xxx.cn 2.6.18 #1 Thu Nov 23 15:34:29 CST 2006 i686 i686 i386 GNU/Linux
hiahiahiahia,成功了!
祝大家好运!
 
感觉咱们网盟新手多,这种需求可能也多些,就不发在CU那样的高手论坛上现眼了,还是发在网盟吧,希望大家用得到!
作者iamshiyu(七夕银河)2006-11-28于网盟bbs.bitscn.com
 
忘了说,以后这个版本的很多东西就都保存在/root/linux-2.6.18里面了,所以不要删除这个目录,除非你确信你要删除掉这个内核……
阅读(854) | 评论(0) | 转发(0) |
0

上一篇:没有了

下一篇:Linux安全支招 加固Linux服务器

给主人留下些什么吧!~~