2.4基于虚拟机的Linux内核编译

今天把Linux的内核重新编译了一下,周折颇多.

我是用vmware虚拟机,Linux是RedHat9.0.

编译的是自带内核2.4.28-8.主要是想把模块加载的选中.

再就是体验下Linux内核编译.

1、  在/usr/src/Linux-2.4.28-8清楚下配置文件make distclean

2、  把arch/x86_64/defconfig 拷贝到Linux-2.4.28-8的目录下配置内核make menuconfig

3、  在第二步里 我把模块加载的一些选项都选上了

4、  编译内核 make bzImage

到了这里并没有提示错误  但是我却找不到编译好的bzImage.很是郁闷

后来发现在arch/i386/boot下面,而不是arch/x86_64/boot下面

5、  init ramdisk的制作  makinitrd initrd-2.4.28-8 2.4.28

6、  然后把内核和ramdisk都拷贝到/boot下面

7、  配置/etc/grub.conf

kernel+内核名

initrd + ramdisk

 

全部完成,开始重启.

进入后发现不行~

error: /bin/insmod exited abnormally!
loading buslogic.o module
/lib/buslogic.o:kernel-module version mismatch
  /lib/buslogic.o was compiled for kernel version 2.4.20-8
  while this kernel is version2.4.20-8custom
error: /bin/insmod exited abnormally!
loading jbd.o module
/lib/jbd.o:kernel-module version mismatch
  /lib/jbd.o was compiled for kernel version 2.4.20-8
  while this kernel is version2.4.20-8custom
error: /bin/insmod exited abnormally!
loading ext3.o module
/lib/ext3.o :kernel-module version mismatch
  /lib/ext3.o was compiled for kernel version 2.4.20-8
  while this kernel is version2.4.20-8custom
error: /bin/insmod exited abnormally!
mounting /proc filesystem
creating block devices
kmod:failed to exec /sbin/modprobe -s -k block-major-8, error = 2

一大堆错误信息.

又是郁闷了好长时间

后来找到了处理办法

回到第2步 配置内核的时候 把buslogic和jbd(ext3)改为内核编译 则可以启动

到现在还没发现什么问题.处子秀总算踉踉跄跄的完结.给自己加加油!!~呵呵