redhat9 升级内核(2.4.20-8-2.4.37)手顺redhat9 升级内核(2.4.20-8->2.4.37)手顺
zhaoyan
2011-7-29
1、 下载源文件:
http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.37.tar.gz
或者
\\10.167.225.120\software\linux-2.4.37.tar.gz
2、准备gcc3.2.2或者gcc3.2.3
\\10.167.225.120\software\gcc3.2.3.zip
.bashrc里对环境变...
redhat9 升级内核(2.4.20-8->2.4.37)手顺
zhaoyan
2011-7-29
1、 下载源文件:
http://www.kernel.org/pub/linux/kernel/v2.4/linux-2.4.37.tar.gz
或者
\\10.167.225.120\software\linux-2.4.37.tar.gz
2、准备gcc3.2.2或者gcc3.2.3
\\10.167.225.120\software\gcc3.2.3.zip
.bashrc里对环境变量进行设置,例如:
13 export PATH=/usr/src/Tools/gcc322/bin:/usr/src/Tools/gcc3.2.3/lib:$PATH
14 export LD_LIBRARY_PATH=/usr/src/Tools/gcc3.2.3/lib:$LD_LIBRARY_PATH
15 export LIBRARY_PATH=/usr/src/Tools/gcc3.2.3/lib:$LIBRARY_PATH
执行#bash
3、用root账户把源码拷到/usr/src/目录下解压
4、vi Makefile
设置版本额外信息EXTRAVERSION =bigmem
这样编译成的内核名称便为2.4.37bigmem
5、进行原来的内核源文件目录(linux-2.4.20-8),执行make menuconfig
选择菜单的< Save Configuration to an Alternate File> 保存目前配置到/home/zhaoyan/save_20
按Esc键退出
6、进入linux-2.4.37/ 执行make menuconfig
选择菜单的< Load an Alternate Configuration File >载入/home/zhaoyan/save_20
7、进入 File systems ---> 选项
光标到 Ext3 journalling file system support,按“Y”键改为<*> Ext3 journalling file system support 编入内核。
确认选项<*> Second extended fs support
(*表示编入内核,M表示编成模块)
8、进入Processor type and features --->
把(4GB) High Memory Support 改为(64GB) High Memory Support
按ESC连续退出,到最后一项,根据提示“Do you wish to save your new kernel configuration?”选择YES
9、执行 make dep
建立依赖关系
10、执行 make bzImage 编译内核
11、执行 make modules 编译模块
12、执行make module_install 安装模块
13、执行 make install 安装内核。
会在/boot 下生成:
vmlinuz-2.4.37和它的链接vmlinuz
System.map-2.4.37和它的链接System.map
initrd-2.4.37.img(镜像文件,在挂载filesystem之前执行的,它其实就是一个压缩文件)
14、vi /etc/grub.conf
检查是否有:
title Red Hat Linux (2.4.37)
root (hd0,0)
kernel /vmlinuz-2.4.37 ro root=LABEL=/
initrd /initrd-2.4.37.img
保险起见
把root=LABEL=/ 改为 root=/dev/hdc2
/dev/hdc2 为root目录 就是df命令显示的”/”对应的fs
此外:
default=1 默认进入的内核
timeout=10
在内核选择界面停留多久
15、重启机器进入新内核
因为之前我为了升级到2.6
我升级了module-init-tools-3.2.tar.gz。也就是insmod命令,
它是用来加载module的,其中就包括scsi的驱动。
升级之后,原来的/sbin/insmod 变成了/sbin/insmod.old
/sbin/insmod.static 变成了 insmod.static.old
mkinitrd是用来生产.img镜像文件的,
我理解的就是把一些东东预先打包,就是在系统启动之前起引导作用的,你可以根据网上的解压方法,解开后为一些目录
bin lib …..等等
mkinitrd会 /sbin/insmod.static 映射到.img的bin目录下的insmod 文件
可以 vi /sbin/mkinitrd 看到
inst /sbin/insmod.static "$MNTIMAGE/bin/insmod"
但是,因为升级了,实际加载modules的是insmod.old,所以在启动的时候就会报错说找不到insmod.old。
就无法加载scsi的驱动。
只好手动加载
/sbin/insmod /lib/modules/2.4.37/kernel/drivers/message/fusion/mptscsih.o
后来根据一老外的方法,在/sbin/mkinitrd里加一句
inst /sbin/insmod.static.old "$MNTIMAGE/bin/insmod.old"
重新打包img文件。重启 OK
本文档为【redhat9 升级内核(2.4.20-8-2.4.37)手顺】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。