当尝试将 hw_random 安装到 2.6 内核时,modprobe 在 CentOS 5.7 和 Fedora 15 上都返回严重错误“没有这样的设备”。两者分别使用最新的内核。
.ko 文件存在,并且 config- 包含 CONFIG_RTC=y 和 CONFIG_CRYPTO_RNG=m
两台服务器都是 x86_64 AMD 处理器。
唯一的谷歌搜索结果非常老旧,经常引用内核模块“hw_random”(已被处理器特定模块取代,并且没有提供太多帮助。
有人能安装 hw_random 吗?我在安装模块时是否漏掉了某个步骤?
编辑:
Fedora 15
/lib/modules/2.6.40.6-0.fc15.x86_64/内核/驱动程序/char/hw_random/amd-rng.ko
# uname -r
2.6.40.6-0.fc15.x86_64
# modprobe -v amd-rng
insmod /lib/modules/2.6.40.6-0.fc15.x86_64/kernel/drivers/char/hw_random/amd-rng.ko
严重:插入 amd_rng 时出错(/lib/modules/2.6.40.6-0.fc15.x86_64/kernel/drivers/char/hw_random/amd-rng.ko):没有这样的设备
CentOS 5.7
/lib/modules/2.6.18-274.7.1.el5/内核/驱动程序/char/hw_random/amd-rng.ko
# uname -r
2.6.18-274.7.1.el5
# modprobe -v amd-rng
insmod /lib/modules/2.6.18-274.7.1.el5/kernel/drivers/char/hw_random/amd-rng.ko
严重:插入 amd_rng 时出错(/lib/modules/2.6.18-274.7.1.el5/kernel/drivers/char/hw_random/amd-rng.ko):没有这样的设备
答案1
“没有这样的设备”,例如“您的计算机缺少所需的硬件设备”。
查看 Linux 源代码 amd-rng.c 中的 PCI_VDEVICE(AMD, ...) 以查看 PCI 供应商和设备编号。
例如,amd-rng.c 可能包含:
/*
* Data for PCI driver interface
*
* This data only exists for exporting the supported
* PCI ids via MODULE_DEVICE_TABLE. We do not actually
* register a pci_driver, because someone else might one day
* want to register another driver on the same PCI id.
*/
static const struct pci_device_id pci_tbl[] = {
{ PCI_VDEVICE(AMD, 0x7443), 0, },
{ PCI_VDEVICE(AMD, 0x746b), 0, },
{ 0, }, /* terminate list */
};
这些翻译过来就是:
vendor: 1022 ("Advanced Micro Devices [AMD]"), device: 7443 ("AMD-768 [Opus] ACPI")
vendor: 1022 ("Advanced Micro Devices [AMD]"), device: 746b ("AMD-8111 ACPI")
使用lspci -vnn
将显示您拥有的 PCI 设备。您需要查看1022:7443
或1022:746b
。