我有“但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 内核源代码是这里。