iceco 发表于 2003-6-17 22:17:38

终于把新内核2.4.21搞定!

最近为了在我的Redhat8.0里用上新内核,搞得我焦头烂额,现在终于搞定,说一下我认为重要的地方。
以前编2.4.20的时候老是有错误,现在有2.4.21稳定版的下载,一下了就可以编译成功。
编译过程一般不会有什么困难,主要是要引导到2.4.21的内核,用lilo的同志们可能没有什么困难,网上文章和README都有详细说明,主要是grub有点不一样。
编译完在/usr/src/linux2.4.21目录里可以找到有关内核的两个文件System.map和bzImage,把它考到/boot下
#cp /usr/src/linux-2.4.21/arch/i386/boot/bzImage /boot/vmlinuz-2.4.21
#cp /usr/src/linux-2.4.21/System.map /boot/System.map-2.4.21
然后用命令:new-kernel-pkg --mkinitrd --depmod --install 2.4.21在/boot下生成新的内核文件initrd-2.4.21.img,并自动修改了grub.conf,但还没完,如果你现在就重启的话一般会说VFS:cannot open root device "XXXX"or 00:00之类的错误,所以还得改一下grub.conf,把kernel /vmlinuz-2.4.21 ro root=LABEL=/ 改成
kernel /vmlinuz-2.4.21 ro root=/dev/hdaX
其中X为你的 / 目录,即你的主目录。
以下为我的grub.conf文件
# grub.conf generated by anaconda
#
# Note that you do not have to rerun grub after making changes to this file
# NOTICE:You have a /boot partition.This means that
#          all kernel and initrd paths are relative to /boot/, eg.
#          root (hd0,5)
#          kernel /vmlinuz-version ro root=/dev/hda8
#          initrd /initrd-version.img
#boot=/dev/hda
default=1
timeout=10
splashimage=(hd0,5)/grub/splash.xpm.gz
title Red Hat Linux (2.4.21)
        root (hd0,5)
        kernel /vmlinuz-2.4.21 ro root=/dev/hda8
        initrd /initrd-2.4.21.img
title Red Hat Linux (2.4.18-14)
        root (hd0,5)
        kernel /vmlinuz-2.4.18-14 ro root=LABEL=/
        initrd /initrd-2.4.18-14.img
title WindowsXP
        rootnoverify (hd0,0)
        chainloader +1

接下来重启,选择2.4.21的内核(你也可以选2.4.18进入原来的旧内核),进入,happy!

Dragonfly 发表于 2003-6-17 22:25:01

some time this LABEL=/ works. and frankly i never meet the situation that it does not work. if u use LABEL, u have to use initrd-xx.img. maybe some exceptions there. or i do not know the real internal. should read grub code or doc more carefully.


too little time and too many things want to do...

llc 发表于 2003-6-21 15:45:25

昨晚我也编译了2.4.21(kernel.org上的),我用grub做管理器的,非常简单,步骤如下,希望对大家有点启示:

1、先在原来的内核源码目录下make xconfig,用那个save config功能,将配置文件导出(因为下一步的操作会连配置文件也清掉,因此先导出,这个工作很有用,建议在别的地方保留一个配置备份)
2、进入2.4.21内核源码存放目录下,执行make mrproper,这步很重要,很多朋友说内核编译时老出现一些莫名其妙的错误,只要先执行这步再编译,就多数没问题了
3、make xconfig,用load config功能,将刚才导出的配置文件重新加载,同时粗略检查一下配置,确认没有错误
4、make dep
5、make bzImage
6、make modules
7、make modules_install
8、make install

然后重起,没错,我直接就重起,可能你会奇怪难道不用拷贝新内核?不用修改grub.conf?答案是不用,因为第8步会自动帮你安装新内核,自动编辑grub.conf,全自动化,直接重起就可以见到新内核的选项了
我记得对于引导器如果是lilo,上面的第8步也是会自动修改的lilo.conf的

我一直觉得奇怪,为何大家编译内核后都喜欢自己拷贝内核,自己做map文件,自己手工编辑grub.conf,一番周折才能启动,其实一步make install就可以搞定了啊

难道没人知道make install这步?我记得以前的帖子里反复说过直接make install就可以了

xdwjack 发表于 2003-6-21 16:32:42

那可能是因为很多人以前用惯了lilo的缘故吧,呵呵 :lol::lol::lol:

cnhnln 发表于 2003-6-21 18:54:43

自己做心理上可靠:mrgreen:

Dragonfly 发表于 2003-6-22 08:08:39

i prefer to do by myself. and sometime i need add some boot paramters. and some time i need not that initrd... anyway, all under control.:mrgreen:

weigp 发表于 2003-6-22 20:49:34

llc,我按照你的方法做好象不行,make xconfig命令之后,save config然后换目录load config再编译完成后,还得改grub.conf,用新核心启动后,不认我的光电鼠标(加载时结果为fail),不认我的intel千兆网卡(提示为“好象不存在”),我试了好几遍,包括手动配核心,打开usb选项,usb鼠标,仍然不行,请问怎么办?????


我用的是rh92.4.20.8

weigp 发表于 2003-6-22 20:58:54

现在鼠标和千兆网卡都好了,但是启动时鼠标加载失败的提示还在,why??

Dragonfly 发表于 2003-6-22 22:56:03

post u error msg here. pls.

iceco 发表于 2003-6-23 10:37:05

难道没人知道make install这步?我记得以前的帖子里反复说过直接make install就可以了
原来用make install还有这种做用,以前我还以为它作用和make bzImage的作用一样。 
哈哈,以后就不用这么麻烦了。

llc 发表于 2003-6-23 17:05:39

llc,我按照你的方法做好象不行,make xconfig命令之后,save config然后换目录load config再编译完成后,还得改grub.conf,用新核心启动后,不认我的光电鼠标(加载时结果为fail),不认我的intel千兆网卡(提示为“好象不存在”),我试了好几遍,包括手动配核心,打开usb选项,usb鼠标,仍然不行,请问怎么办?????


我用的是rh92.4.20.8

make xconfig后,再load原来导出的配置文件,导入后,你保存没有?(save & exit),不保存的话,导入的配置还没有写入当前的config里

m_syb 发表于 2003-6-26 15:31:45

llc
我按你说的做了
可是第一步就卡住了
我用"Store Configration to File"后弹出的对话框中
无法输入文件名!
简直晕死了 :shock:
你们哪里是这样吗?
:x:x:x

cnhnln 发表于 2003-6-26 21:14:36

make mrproper完以后把.config复制到linux目录下,再make xconfig

Dragonfly 发表于 2003-6-26 21:54:52

why not make menuconfig if u xconfig not work?
页: [1]
查看完整版本: 终于把新内核2.4.21搞定!