Date: 28-Mar-2011
1.本文在Vmware-Linux-2.4.20-8的基础上将内核重新编译升级到2.6.14.1
编译平台:Vmware_6.0 + Redhat 9.0(Linux-2.4.20-8)
2.准备相关文件并复制至/tmp目录下
kernel:linux-2.6.14.1.tar.gz
下载地址:www.kernel.org/pub/linux/kernel/v2.6/
modutils:modutils-2.4.5-1.src.rpm (v2.6内核升级需要)
下载地址:www.kernel.org/pub/linux/utils/kernel/modutils/v2.4/
module-init-tools:module-init-tools-3.2.2.tar.gz (depmod insmod lsmod modinfo modprobe rmmod)
下载地址:www.kernel.org/pub/linux/utils/kernel/module-init-tools/
device-mapper:device-mapper-1.00.19-2.i386.rpm
lvm2:lvm2-2.00.25-1.01.i386.rpm
mkinitrd:mkinitrd-4.1.18-2.i386.rpm (mkinitrd依赖device-mapper及lvm2)
下载地址:http://rpm.pbone.net/
binutils:binutils-2.17.tar.gz(虚拟机用文件)
下载地址:http://ftp.gnu.org/gnu/binutils/
3.安装modutils-2.4.5-1.src.rpm
A. 查看当前modutils版本
B. 卸载当前modutils
C.将源代码安装到/usr/src/redhat目录下:rpm –ivh modutils-2.4.5-1.src.rpm
D.进入规范文件目录下:cd /usr/src/redhat/SPECS
E.生成二进制的RPM包:rpmbuild –-bb modutils.spec
F.进入生成的RPM包目录下:cd /usr/src/redhat/RPMS/i386
G.安装RPM包:rpm –ivh modutils*.rpm
H.安装成功
4.解压缩并安装module-init-tools-3.2.2.tar.gz
tar –zxpf module-init-tools-3.2.2.tar.gz
cd module-init-tools-3.2.2
./configure –prefix=/
make moveold
make all install
./generate-modprobe.conf /etc/modprobe.conf
5.安装device-mapper-1.00.19-2.i386.rpm
rpm –ivh device-mapper-1.00.19-2.i386.rpm
6.安装lvm2-2.00.25-1.01.i386.rpm
rpm –ivh lvm2-2.00.25-1.01.i386.rpm
rpm –ivh –-nodeps –-force lvm2-2.00.25-1.01.i386.rpm
7.卸载当前mkinitrd并安装mkinitrd-4.1.18-2.i386.rpm
rpm –e –-nodeps mkinitrd
rpm –ivh mkinitrd-4.1*.rpm
8.解压并安装binutils-2.17.tar.gz
tar –zxpf binutils-2.17.tar.gz
cd binutils-2.17
./configure
make
make install
9.解压linux-2.6.14.1.tar.gz并将linux-2.6.14.1移至/usr/src目录下
tar –zxpf linux-2.6.14.1.tar.gz
mv linux-2.6.14.1 /usr/src
10.进入linux-2.6.14.1目录并编译 cd /usr/src/linux-2.6.14.1
make clean
make mrproper
make menuconfig(暂不作任何改动)
make bzImage
make modules
make modules_install
make install
11.进入/boot目录并编辑grub/grub.conf文件 vi grub/grub.conf
注:安装Redhat9.0时,根目录/安装在/dev/sda3上,fdisk –l
12.reboot
13. 在新内核挂载cdrom mount /mnt/cdrom 出错
暂找不出解决方案。
将vmware-tools源文件复制到/tmp目录下,解压并安装在linux-2.6.14.1内核下,与windows操作系统共享的Shared文件夹可正常工作。但回到linux-2.4.20-8内核后,找不到Shared文件夹。
14. 测试驱动程序
insmod hello.ko
lsmod
rmmod hello
出错
15.配置menuconfig,make menuconfig添加如下选项
16.重新编译
make bzImage
make modules
make modules_install
make install
17.重复第11步
18.reboot 并重新测试rmmod命令
insmod hello.ko
lsmod
rmmod hello
19.可参考文档:http://www.linuxeden.com/html/develop/20080402/53826.html