Modinfo、/etc/modules 和 lsmod:输出不连贯?

Modinfo、/etc/modules 和 lsmod:输出不连贯?

我有“但rtc/etc/modules

$ modinfo rtc

输出:

ERROR: modinfo: could not find module rtc

并且lsmod不显示rtc

答案1

传统的实时时钟驱动程序rtc肯定存在:

./linux-3.2.0/drivers/char/rtc.c

但我相信它仅在模块上下文中用作包含,同时为特定 RTC 设备构建模块。例如,以下是适用于 Ubuntu Linux 内核 3.2 的 rtc 驱动程序:

izx@i5:~/src-kernel$ ls /lib/modules/3.2.0-24-generic/kernel/drivers/rtc/
rtc-88pm860x.ko rtc-ds1742.ko rtc-max6900.ko rtc-rs5c372.ko
rtc-ab3100.ko rtc-ds3232.ko rtc-max6902.ko rtc-rv3029c2.ko
rtc-ab8500.ko rtc-ds3234.ko rtc-max8925.ko rtc-rx8025.ko
rtc-bq32k.ko rtc-em3027.ko rtc-max8998.ko rtc-rx8581.ko
rtc-bq4802.ko rtc-fm3130.ko rtc-mc13xxx.ko rtc-s35390a.ko
rtc-ds1286.ko rtc-isl12022.ko rtc-msm6242.ko rtc-stk17ta8.ko
rtc-ds1305.ko rtc-isl1208.ko rtc-pcf2123.ko rtc-v3020.ko
rtc-ds1307.ko rtc-m41t80.ko rtc-pcf50633.ko rtc-wm831x.ko
rtc-ds1374.ko rtc-m41t93.ko rtc-pcf8563.ko rtc-wm8350.ko
rtc-ds1390.ko rtc-m41t94.ko rtc-pcf8583.ko rtc-x1205.ko
rtc-ds1511.ko rtc-m48t35.ko rtc-r9701.ko
rtc-ds1553.ko rtc-m48t59.ko rtc-rp5c01.ko
rtc-ds1672.ko rtc-m48t86.ko rtc-rs5c348.ko

正如 Florian 所问,为什么需要这个模块?你的平台是什么?你使用的是特定的 RTC 设备吗?


/etc/modules用于在启动时加载外部模块——模块(.ko文件)必须首先存在于下/lib/modules/your-kernel-version/....;仅仅拥有它们/etc/modules并不意味着什么。

您可以安全地rtc从 中删除/etc/modules

答案2

没有命名的内核模块rtc,因此无法加载并且lsmod找不到modinfo它。

您认为为什么应该有这样的模块?您想做什么?

答案3

Ubuntu 内核中静态内置了几个 rtc 驱动程序。即 rtc_cmos 和 rtc_m41t80。(顺便说一下,我的 12.04 系统上有 /dev/rtc 和 /dev/rtc0。)rtc_cmos 支持旧式 PC cmos 实时时钟。其他某些 i2c 实时时钟。

每个构建的 Ubuntu 内核的配置文件都与标头和内核映像本身一起放入 /boot,以便您可以看到它是如何设置的。

例如,内置驱动程序不会显示在 lsmod 中。

曾经有一个名为 rtc 的驱动程序,但现在没有了。我建议一些软件包将该名称放在 /etc/modules 中。

Ubuntu 内核源代码是这里

相关内容