确定EL6的anaconda安装程序使用的SCSI模块?

我试图在旧的Dell Poweredge 800服务器上安装CentOS 6 。 它有一个Intel RAID SRCS14L控制器,提供了一个RAID 5逻辑卷。

我对CentOS 5.x的anaconda识别设备没有任何问题,但是CentOS 6的anaconda没有。

我在某处读取以validation哪些模块在anaconda中加载,如果安装的模块支持RAID控制器,则应该是好的。 但是,安装CentOS 5.x安装模块与安装6安装模块有很大的不同。

我还安装了el6kernel-devel软件包,megaraid驱动程序文件没有明确列出Intel RAID SRCS14L适配器。 但SRC系列中的一些其他英特尔RAID适配器。

如何识别CentOS 5.x的anaconda用于我的SCSI控制器的驱动程序或模块? 如何将Intel RAID SRCS14L支持添加到CentOS 6 anaconda中?

谢谢。

[更新]

我find了模块的来源,但我不明白如何简单地编译一个内核模块,可以在运行时加载到anaconda。 从我正在阅读的内容来看,我不确定这是否是正确的方法。 内核模块是否可以在运行时编译并加载到anaconda? 有没有另一种方法我错过了?

[更新2]

  • 在CentOS 5的安装(anaconda)(按ctrl + alt + f2)期间,我将在控制台中使用lspci -k和/或lspci -nn来确定哪个模块用于访问RAID设备。
  • 然后,我需要将内核模块编译为在anaconda的uname -r中指定的内核源代码。
  • 然后,我需要将它添加到一个initrd.img文件,并在初始化CentOS 6安装时使用这个文件(通过点击“Welcome to CentOS 6.0!”屏幕上的标签)

我关心内核更新,并重新编译每个更新的驱动程序模块。 那么我想,如果我要把驱动程序编译成新的内核,这是唯一的方法。

[更新3]

  • gdth驱动程序/模块源位于从6.0介质(2.6.32-71.el6)加载CentOS时使用的内核的内核源代码中,但它不位于位于该介质上的initrd.img CentOS 6安装媒体
  • 需要设置内核选项CONFIG_SCSI_GDTH [ 请参阅lkddb ],以便在编译内核时通过位于/kernel-2.6.32-71.el6/linux-2.6.32-71.el6.i686/configs/kernel-2.6.32-i686.config的源代码树内的configuration文件来构build模块/kernel-2.6.32-71.el6/linux-2.6.32-71.el6.i686/configs/kernel-2.6.32-i686.config或通过Device Drivers> SCSI device support> SCSI low-level drivers< Intel/ICP (former GDT SCSI Disk Array) RAID Controller support make menuconfig Device Drivers> SCSI device support> SCSI low-level drivers< Intel/ICP (former GDT SCSI Disk Array) RAID Controller support

[更新4]

我已经build议通过ELrepo提交RFE来请求gdth驱动程序,因为它已经在RHEL上游中断了 。

[更新5]

一些ELRepo编译器为gdth 编译了一个驱动程序盘 。

如何识别CentOS 5.x的anaconda用于我的SCSI控制器的驱动程序或模块?

你可以提取initrd镜像文件:

 # mkdir /tmp/initrd # cp /boot/initrd-`uname -r`.img /tmp/initrd # cd /tmp/initrd # gzip -dc initrd-`uname -r`.img | cpio -id 

并看看init文件或lib文件夹:

 # grep scsi init echo "Loading scsi_mod.ko module" insmod /lib/scsi_mod.ko # ls -l lib/ | grep scsi -rw------- 1 root root 294024 Nov 15 16:20 scsi_mod.ko 

如何简单地编译一个可以在运行时加载到anaconda中的内核模块。

我还没有尝试,但我会build议你做下列步骤:

  • 从安装介质中提取initrd
  • 添加模块
  • 并重新包装在一个图像中
  • initrd参数加载新的

请参阅下面的链接了解更多信息:

戴尔已经实施了这个使用DKMS的年龄。 有两种方式来获得一个工作的内核模块:

  1. 下载适用于RedHat 6的Dell-DKMS-SRC,并在你的服务器上安装gcc,在新的内核启动之后启动两次(第一次启动将build立模块并将其放入initrd中,第二次启动将在启动期间激活新模块开机)
  2. 如果你不想在现场服务器上使用gcc:在构build服务器上构buildDKMS模块并将其传送到服务器( dkms ldtarball

更新2011-11-17:因为在安装过程中需要启动过程的驱动程序,所以您应该阅读此部分 。

您可以通过执行命令lsmod来识别当前加载的模块。 不过,我注意到在比较Centos 5和6时,为几乎相同的configuration(至lessVMconfiguration)加载了不同的scsi模块。

一个想法可能是加载内核源码包并检查涉及的驱动程序源。