如何找到内核加载的RTC模块?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何找到内核加载的RTC模块?相关的知识,希望对你有一定的参考价值。

在使用从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 ...
...

我想知道是否可以摆脱那么多司机,所以我开始四处寻找如何:

  1. 看着lsmod我看不到RTC驱动程序
  2. lshw也没有帮助
  3. 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

  • 这是否意味着我不需要所有其他驱动程序?
  • 这是否意味着我的笔记本电脑使用CMOS兼容硬件?
  • 另外,为什么modinfo rtc_cmos什么都没有?
答案

这是否意味着我不需要所有其他驱动程序?这是否意味着我的笔记本电脑使用CMOS兼容硬件?

确切地说,如果你只关心那个RTC,那么rtc_cmos就是你所需要的。如果你的电脑足够新,rtc-efi可能是一个有效的选择。

另外,为什么modinfo rtc_cmos什么都不返回?

因为驱动程序可能是在内核中静态编译而不是作为模块编译。检查配置中的CONFIG_RTC_DRV_CMOS = y。

以上是关于如何找到内核加载的RTC模块?的主要内容,如果未能解决你的问题,请参考以下文章

内核模块的加载如何在 linux 中工作?

内存中的Linux内核代码检查sha256 sum

如何创建为Android可加载内核模块

玩转 RTC时钟库 DS1302

如何在 Linux 内核模块中找到合适的 DWARF 符号作为地址?

Chrome-Devtools代码片段中的多个JS库