解决方法如下:
1.编译安装内核及内核模块
make mrproper
make menuconfig
这一步的要点是:
a)在“Block devices”配置节中“RAM disk support”设定为built-in方式("<*>"),这时会出现“Initial RAM disk (initrd) support”选项,选中它("
")。
b)在“SCSI support”配置节中的“SCSI low-level drivers”子配置节中选择相应的SCSI设备(我选择了所有Adaptec的支持,以module方式("<M>"))。
c)选择最下面的“Save Configuration to an Alternate File ”把当前配置保存到一个文件中以便以后的调整和使用。
make bzImage && make modules && make modules_install
在编译和安装模块过程中会出现一些奇怪的问题。重新执行make menuconfig调整一下配置选项即可。
cp arch/i386/boot/bzImage /boot/lfskernel && cp System.map /boot
2.生成initrd映像文件
initrd提供了系统启动时加载一个RAM文件系统的能力,该RAM系统被临时加载为root文件系统,然后载入一些必要的内核模块(如SCSI支持时),一旦最终的root分区被加载,RAM系统即被卸除。详细见内核源码目录下的Documentation/initrd.txt。
因我chroot的LFS系统中无initrd命令,转到宿主系统MDK8.2下
ln -s /lib/modules/2.4.20 $LFS/lib/modules/2.4.20
mkinitrd initrd-lfs.img 2.4.20 && cp initrd-lfs.img $LFS/boot
3.然后修改lilo.conf加入对LFS内核的支持,我的配置如下:
image=/boot/lfskernel
label=lfs
root=/dev/sda2
initrd=/boot/initrd-lfs.img
read-only
然后执行lilo -v
4.一个需注意的地方是:在reboot前必须手工在LFS的root分区中建立一个空目录/initrd供上面生成的initrd-lfs.img在系统boot时挂载用。
5.在$LFS/etc/modules.conf中需加入如下内容:
probeall scsi_hostadapter aic7xxx
alias scsi_hostadapter aic7xxx
我在执行第二步 生成initrd映像文件 的时候遇到了问题 怎么也无法创建img文件 总说什么No module BusLogic found for kernel 2.4.19
我用的红帽8 lfs使用的是lfs-packages-cvs-20021023-1707 我是在vmware里
我就差做img文件支持scsi这一步了 前面都是安文档一步一步做的(包括目录设置)
斑竹还在吗??编译内核的时候我选择了Buslogic了 可是还是出
No module BusLogic found for kernel 2.4.19
lfs里还没有mkinitrd必须转到红帽里
做img文件的时候需要主意什么????
那个2.4.19的目录应该是哪个???/lib/moduls里的还是/mnt/lfs/lib/moduls里的???