![如何让 USB 3.0 CDROM 在 Redhat 5 中工作](https://linux22.com/image/156687/%E5%A6%82%E4%BD%95%E8%AE%A9%20USB%203.0%20CDROM%20%E5%9C%A8%20Redhat%205%20%E4%B8%AD%E5%B7%A5%E4%BD%9C.png)
我们的产品软件仍然使用旧的Red Hat(RH)版本5.1、2.6.32内核。我们通过 USB 2.0 CDROM 将软件安装为 iso CD。到目前为止,我们的硬件只有 USB 2.0 端口。我们有新的硬件,它只有 USB 3.0 端口。
不幸的是,RH 5/2.6.32 没有 USB 3 (xHCI) USB 主机适配器仿真支持。仅从 RH 7 开始提供。
作为解决方法,我在内核中启用了 xhci ,并希望添加xhci.ko
模块initrd.img
目录并相应地更新了module-info
, modules.alias
, 。使用 new 创建了 iso ,但我在安装日志(如 xhci 加载等)中没有看到任何差异。modules.dep
pci.ids
initrd.img
我发现init
是/sbin/loader
两个人加载模块,并意识到我必须做出改变“说insmod xhci.ko
”。不幸的是,这些文件是 ELF 文件,而不是其他人在网络搜索中提到的脚本文件。
经过进一步的研究,我发现他们的源文件可以在 anaconda 安装程序中找到。我无法在任何地方找到这个 anaconda 安装程序的来源。
我有两个问题:
使用旧内核/发行版的人们如何仍然支持新硬件?
initrd.img
和init
是/sbin/loader
ELF 文件。有没有办法在不更改这些 init/loader 文件的情况下加载新的驱动程序模块?修改anaconda的源是唯一的选择吗?我在哪里可以找到来源?
答案1
您不能只是将内核模块从较新的内核版本复制到使用较旧内核的系统。有时,您可以将较旧的驱动程序模块与较新的内核一起使用(有某些限制),但反之则不然。
缺乏 USB 3 支持只是您可能遇到的第一个问题:您可能会发现旧的 5.1 内核甚至不支持新硬件上的存储控制器,因此 RHEL 5.1 安装程序将无法安装查看要安装的任何磁盘。
- 使用旧内核/发行版的人们如何仍然支持新硬件?
虚拟化。
您安装支持实际物理硬件的操作系统版本,然后安装可以提供旧硬件模拟版本(例如 USB 2 控制器、存储控制器和虚拟 CDROM 驱动器)的虚拟化层。然后将旧版本的操作系统安装到虚拟机上。
当然,虚拟化会产生一些开销,但由于您将运行一个已有 11 年历史的操作系统,现代硬件应该具有更好的性能,以便您仍然可以在裸机上使用 RHEL 5.1 完成 11 年的所有操作前。
除非您的生产软件明确需要 RHEL 5.1仅有的,请尝试改用 RHEL 5.11。 RedHat 在整个 5.x 生命周期中保持用户空间 ABI 稳定:这就是企业 Linux 发行版的全部要点。除非您的生产软件包含自定义内核模块,否则升级到更高的次要版本应该没有问题。
从 5.1 升级到 5.11,您可以获得 7 年的安全保障和其他错误修复。
如果你的生产软件需要通过互联网访问,那么仍然使用5.11在信息安全方面已经够糟糕的了;今天明确安装新的 RHEL 5.1 用于生产用途是不负责任的。
- 修改anaconda的源是唯一的选择吗?我在哪里可以找到来源?
如果您使用启动选项启动安装程序dd
,它将提示您输入“驱动程序磁盘”。它可以是软盘、CD 或任何其他包含额外驱动程序模块的受支持介质。然后 anaconda 安装程序会自动加载额外的模块并将它们用作安装的一部分。