编译并加载Linux
驱动程序和内核模块
到目前为止,当我们建立initramfs,我们没有谈到内核模块的
支持。使用的
硬件驱动程序直接编译到内核中。现在让我们看看initramfs支持内核模块。
编译内核模块
首先,内核
配置应该支持模块,并支持内核模块的自动加载
功能:内核配置菜单中的
激活配置项被编译成内核。
加载模块支持 / /自动加载模块的支持内核加载;
然后,所需的硬件驱动程序配置模块形式,如编译
硬盘驱动器的硬盘
控制器在我的机器上,被选中。
设备驱动程序
| ----> SCSI设备的支持
| ----> SCSI
磁盘支持
| ----- >冗长的SCSI
错误报告(不是必须的,但方便问题定位)
| ----- > SCSI底层驱动
| ---->串行ATA(SATA)的支持
| ---->英特尔piix / ICH SATA支持
将它们配置为模块。
最后,编译内核并将编译后的内核模块
安装在映像
目录中。
使
让install_mod_path = ~ / /图像modules_install initramfs试验
执行命令后,4内核模块
文件安装在图像/ lib /模块/ 2.6.17.13 / / / SCSI驱动程序内核目录:scsi_mod.ko,sd_mod.ko,ata_piix.ko和libata.ko,这是所需的硬盘控制器的驱动程序。
加载内核模块
BusyBox的modprobe命令不
正确执行,和内核模块无法加载。很怀疑BusyBox的modprobe命令配置或编译的问题。否则,司机可以自动加载。首先,在insmod命令加载反过来看看 / / / lib模块2.6.17.13 / modules.dep,明确了这4个模块的依赖关系,然后执行下面的命令加载:
insmod scsi_mod
insmod libata
insmod ata_piix
insmod sd_mod
然后用它
mdev的
控制硬盘的设备文件。你可以安装硬盘分区,并将根文件
系统切换到硬盘分区:
安装 / / / mnt sda8 dev
执行switch_root / / / sbin init MNT
正常
启动系统到CLFS,我们可以安装硬盘分区在initramfs硬盘控制器驱动模块。
最后的初始化文件
分区应该由它自己的分区
替换。
# /斌/ SH!
挂载过程
山- T sysfs sysfs /系统
insmod scsi_mod
insmod libata
insmod ata_piix
insmod sd_mod
mdev的
安装 / / / mnt sda8 dev
执行switch_root / / / sbin init MNT