在使用从Ubuntu OS 16.04获得的配置文件编译我的内核期间,我注意到我正在编译许多RTC驱动程序,基本上每个可能的驱动程序:
... snip ...
CC [M] drivers/rtc/rtc-bq4802.o
CC [M] drivers/rtc/rtc-da9052.o
CC [M] drivers/rtc/rtc-da9055.o
... more of those ...
...
我想知道是否可以摆脱那么多司机,所以我开始四处寻找如何:
lsmod
我看不到RTC驱动程序lshw
也没有帮助lspci -v
也没有产生太多信息。较低级别检查,显示存在的设备:
$ ls -l /dev/rtc
lrwxrwxrwx 1 root root 4 Dec 18 09:54 /dev/rtc -> rtc0
我得到更多信息的最接近的是/sys/class/rtc/
:
$ sudo cat /sys/class/rtc/rtc0/device/rtc/rtc0/name
rtc_cmos
Doe意味着,我的内核使用的唯一驱动程序是rtc_cmos
?
modinfo rtc_cmos
什么都没有?这是否意味着我不需要所有其他驱动程序?这是否意味着我的笔记本电脑使用CMOS兼容硬件?
确切地说,如果你只关心那个RTC,那么rtc_cmos就是你所需要的。如果你的电脑足够新,rtc-efi可能是一个有效的选择。
另外,为什么modinfo rtc_cmos什么都不返回?
因为驱动程序可能是在内核中静态编译而不是作为模块编译。检查配置中的CONFIG_RTC_DRV_CMOS = y。