我们的产品软件仍然使用旧的Red (RH)版本5.1,2.6.32内核。我们通过USB2.0CDROM将我们的软件安装为iso CD。我们的硬件到目前为止只有USB2.0端口。我们有新的硬件,只有USB3.0端口。
不幸的是,RH 5/2.6.32没有USB3 (xHCI) USB主机适配器仿真支持。只有RH 7才能买到。
作为解决办法,我在内核中启用了xhci,并希望在initrd.img模块目录中添加D1,并相应地更新module-info、modules.alias、modules.dep、pci.ids。使用新的initrd.img创建了iso,但是我没有看到像xhci加载之类的安装日志有什么不同。
我发现init和/sbin/loader是加载模块的两个人,并意识到我必须修改"say insmod xhci.ko“。不幸的是,这些文件是ELF文件,而不是像其他人在网络搜索中提到的脚本文件。
经过进一步的研究,我发现它们的源文件可以在anaconda安装程序中获得。我无法在任何地方找到这个anaconda安装程序的来源。
我有两个问题:
initrd.img's、init和/sbin/loader是ELF文件。有没有办法在不更改init/加载程序文件的情况下加载新的驱动程序模块?发布于 2019-07-08 05:52:21
您不能仅仅使用旧内核将内核模块从更新的内核版本复制到系统。有时,您可以使用具有较新内核(有某些限制)的旧驱动程序模块,但反之亦然。
而缺乏USB 3支持只是您可能遇到的第一个问题:您可能会发现旧的5.1内核甚至不支持新硬件上的存储控制器,因此RHEL 5.1安装程序将看不到安装到的任何磁盘。
虚拟化。
您安装了一个支持实际物理硬件的OS版本,然后是一个虚拟化层,它可以提供较旧硬件的模拟版本(例如,USB 2控制器、存储控制器和虚拟CDROM驱动器)。然后将操作系统的旧版本安装到虚拟机上。
当然,虚拟化会造成一些开销,但是由于您将运行一个已有11年历史的操作系统,现代硬件应该具有更好的性能,所以您仍然可以在11年前在裸金属上使用RHEL 5.1完成所有您可以做的事情。
除非您的生产软件明确要求RHEL 5.1 只有,否则请尝试使用RHEL 5.11。RedHat在整个5.x生命周期中保持了用户空间ABI的稳定:这就是企业Linux发行版的全部要点。除非您的生产软件包括自定义内核模块,否则使用更高的次要版本应该是完全没有问题的。
从5.1到5.11,您将获得7年的安全和其他错误修复。
如果您的生产软件需要从互联网上访问,仍然使用5.11在信息安全方面已经够糟糕的了;今天显式安装一个新的RHEL5.1供生产使用将是不负责任的。
如果您使用dd引导选项引导安装程序,它将提示您输入“驱动程序磁盘”。这可以是软盘,CD或任何其他支持媒体包含额外的驱动模块。然后,anaconda安装程序将自动加载额外的模块,并将它们作为安装的一部分使用。
https://unix.stackexchange.com/questions/528878
复制相似问题