Date: 16-Mar-2011
1.编译平台 Vmware_6.0,Redhat9.0(linux-2.4.20-8)
2.获取新内核版本 Linux-2.6.28:http://www.kernel.org/pub/linux/kernel/v2.6/linux-2.6.28.tar.gz
3.升级modutils
1)modutils包含处理内核模块时使用的工具:
depmod //处理可加载内核模块的依赖关系。
genksyms //产生符号的版本信息。
insmod //向正在运行的内核加载模块。
insmod_ksymoops_clean //删除两天内没有被访问的ksyms和模块。
kallsyms //展开所有内核标志用来调试。
kernelversion //报告当前使用内核的主版本号。
ksyms //显示被导出的内核符号。
lsmod //显示当前加载的内核模块信息。
modinfo //检查与内核模块相关联的目标文件,并打印出所有能得到的信息。
modprobe //利用depmod创建的依赖文件来自动加载相关的模块。
rmmod //从当前运行的内核中卸载内核模块。
modutils 依赖于: Bash, Binutils, Bison, Coreutils, Diffutils, Flex, GCC, Glibc, Grep, M4, Make, Sed.
2)查看当前内核使用的modutils版本 rpm –q modutils
3)下载较高版本的modutils-2.4.5-1.src.rpm:http://www.kernel.org/pub/linux/utils/kernel/modutils/v2.4/
4)安装modutils-2.4.5-1.src.rpm
A.升级modutils:rpm –Uvih modutils-2.4.5-1.src.rpm
升级失败!
B.卸载当前的modutils:rpm –e –-nodeps 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(替代/sbin/depmod及其他工具)
1)下载module-init-tools-3.2.2.tar.gz:http://www.kernel.org/pub/linux/utils/kernel/module-init-tools/
2)解压缩并安装
tar –zxpf module-init-tools-3.2.2.tar.gz
cd module-init-tools-3.2.2
./configure –prefix=/sbin
make
make install
./generate-modprobe.conf /etc/modprobe.conf
5.进入/usr/src/linux-2.6.28目录进行内核编译
make mrproper
make menuconfig
make bzImage
6.换一个较低版本的内核linux-2.6.14.1
make mrproper
make menuconfig
make bzImage
make modules
make modules_install
make install
将/usr/src/linux-2.6.14.1/drivers/scsi/BusLogic.o 复制到/lib/modules /2.6.14.1/kernel/drivers/scsi目录下,然后重新make install:
7.编辑启动文件 vi /boot/grub/grub.conf
8. reboot
9.编辑/etc/modules.conf文件vi /etc/modules.conf,将alias scsi hostadapter BusLogic此行注释掉:
make install
重复6
10.reboot
11.编译新内核失败。