tempad
ReadyGo!技术成就梦想 >>Linux >> 虚拟机中RH9 2.4内核升级为2.6内核方法

虚拟机中RH9 2.4内核升级为2.6内核方法

ReadyGo!技术成就梦想 网络搜索 efish 2008-8-31 13:38:29

1.去linux的官方网站上下一个linux 2.6的内核!http://www.kernel.org;

2.安装一个modules-init-tools-3.0.tar.gz工具包,因为2.4.x的modutils工具包已经不适合新的2.6.x内核,必须将它升级到modele-init-tools工具包。

可以到http://www.kernel.org/pub/linux/ ... it-tools-3.0.tar.gz下载

3.安装modele-init-tools工具包

#configure --prefix=/

#make moveold (将原来的工具程序改名,这样还可继续使用原来的2.4.x内核)

#make all install

#./generate-modprobe.conf /etc/modprobe.conf(生成2.6.x内核的新配置文件)

4.安装Mkinitrd 4.1.18-2 工具包,将当前目录切换到mkinitrd-4.1.18-2.i386.rpm、device-mapper-1.00.19-2.i386.rpm和lvm2-2.00.25-1.01.i386.rpm的下载目录(三个文件最好在同一目录)下,依次执行如下命令(注意,这里是有序的执行):

rpm -ivh --nodeps --force device-mapper-1.00.19-2.i386.rpm

rpm -ivh --nodeps --force lvm2-2.00.25-1.01.i386.rpm

rpm -ivh --nodeps --force mkinitrd-4.1.18-2.i386.rpm

5.安装binutils-2.17.tar.gz,(这个是升级虚拟机中的LINUX所必备的),依次执行如下命令:

tar zxf binutils-2.17.tar.gz

cd binutils-2.17

./configure

make

make install

6.在升级之前,还要确定以下一些软件不低于以下的版本:

Name: Minimum version: How to find version:

Gnu C Compiler 2.95.3 gcc--version

Gnu Make 3.78 make--version

binutils 2.12 ld-v

util-linux 2.10o fdformat--version

module-init-tools 0.9.9 depmod-V

procps 2.0.9 ps--version

(参见“Documentation/Change”中的最新更新)

接下来正式开始升级:

#tar xzvf linux-2.6.20.tar.gz /usr/src/

#./configure //生成Makefile文件,如果已经有Makefile这步就没必要了

#make menuconfig //开始配置内核

关于menuconfig中的配置,以下几点值得注意:

o 关于"Loadable Module support"选项, 一定要选上"Module unloading"和"Automatic kernel module loading"这两个选项.

关于"Processor type and features"选项, 一定要选上"Preemptible Kernel"选项, 这是2.6.x内核优于2.4.x内核的重要原因之一.

关于"Device Driver"的主菜单里配置以下内容:

o 关于"Block Devices"的配置, 一定要选上对loopback和ramdisk的支持.

o 关于"Multi-device support(RAID and LVM)", 要选上"device mapper".

o 关于"Input device support", 记得要选上"Keyboards"和"Mice"的支持.

o 关于"Graphics support", 要选上对frame buffer的支持.

o 关于sound选项里,与ALSA有关的, 要选上"OSS API emulation"选项. OSS可以不用了.

o 关于USB, 能选的都选上

o关于文件系统,常用的几种一定要选上,比如

Ext2 extended attributes

Ext2 POSIX Access Control Lists

Ext2 Security Labels

Ext3 journalling file system support

Ext3 extended attributes

Ext3 POSIX Access Control Lists

Ext3 Security Labels

注意1:另外,如果使用虚拟机的一定要把sics的驱动选择上

配制好内核后保存退出(保存的名字推荐使用默认的.config,这样做的好处是在下次再menuconfig时,它会自动自动装载这次.config中的配置), 然后就可以直接编译了, "make dep"这一步在2.6已经不需要了。

接下来可以开始编译了:

# make bzImage

注意2:在这一步快要完成时可能会出现一下错误提示:

....

OBJCOPY arch/i386/boot/compressed/vmlinux.bin

BFD: Warning: Writing section `.bss" to huge (ie negative) file offset 0xc0277000.

objcopy: arch/i386/boot/compressed/vmlinux.bin: File truncated

make: *** Error 1

make: *** Error 2

make: *** Error 2

解决办法:

在arch/i386/Makefile里面做一些修改:

将OBJCOPYFLAGS改成如下的:

OBJCOPYFLAGS := -O binary --change-section-lma .bss-0xc0000000 -R .note -R .comment -S

然后重新make bzImage OK!

# make modules

# make modules_install

# cp /usr/src/linux-2.6.18/drivers/scsi/BusLogic.o /lib/modules/2.6.18/kernel/drivers/scsi

注意3:这一步用于解决SCSI硬盘+VMWARE+REDHAT架构中,因为BusLogic被编译进了内核而不是一个module的形式(2.4内核的Buslogic模块即使静态编译进内核也不行)。解决方式是直接将BusLogic.o文件复制过去.(如果不是SCSI硬盘+VMWARE+REDHAT架构中上面的拷贝可以省略)

# make install

重启系统

到这里内核的编译已经完成,可以重新启动linux系统了

#reboot

(责任编辑:云子)

责任编辑: efish 参与评论 查找更多:
相关文章
高手进阶:Linux系统下驱动程序框架概述 高手进阶:Linux系统下驱动程序框架概述
Linux2.4内核和2.6内核对Initrd处理流程 Linux2.4内核和2.6内核对Initrd处理流程
如何自己动手做一个迷你型Linux操作系统 (1) 如何自己动手做一个迷你型Linux操作系统 (1)
2.6.24内核编译 initrd-2.6.24.img分析 2.6.24内核编译 initrd-2.6.24.img分析
新手学堂:Linux系统下使用net send工具 新手学堂:Linux系统下使用net send工具
Linux系统下如何删除某个目录下大量文件 Linux系统下如何删除某个目录下大量文件
Linux系统Fcitx中文输入法开机启动方法 Linux系统Fcitx中文输入法开机启动方法
Slackware开机 出现lost interrupt错误 Slackware开机 出现lost interrupt错误
Ubuntu Linux设置守护进程时出错的解决 Ubuntu Linux设置守护进程时出错的解决
Fedora Linux系统下挂载U盘和Windows盘 Fedora Linux系统下挂载U盘和Windows盘
2秒记住本站域名

玩过泡泡龙吗?Readygo?Go! 再加上.Com.Cn的后缀,那就是大名小顶的ReadyGo.com.cn

分类导航
ReadyGo!技术成就梦想