谁在启动时自动从硬件时钟设置日期/时间?

谁在启动时自动从硬件时钟设置日期/时间?

当Linux启动时,必须从RTC芯片获取当前时间,然后设置为Linux系统日期/时间。我可以通过运行手动执行此操作hwclock --hctosys。但这种情况在启动时到底在哪里自动发生呢?有一个流程可以处理这个问题吗?内核做这个工作吗?

答案1

方法一:Linux内核从RTC芯片加载时间

可以CONFIG_RTC_HCTOSYS在内核配置中进行设置以启用此功能。启用后,Linux 内核将负责读取存储的时间rtc0并将其设置为系统时间。可以随CONFIG_RTC_HCTOSYS_DEVICE="rtc0"设备改变。

为此,必须将相应的 RTC 驱动程序编译为内置模块。

方法2:udev在/dev/rtcX创建后立即调用hwclock

该软件包util-linux提供了一个 udev 规则文件/usr/lib/udev/rules.d/85-hwclock.rules,可以将其复制到/etc/udev/rules.d/./usr/lib/udev/hwclock-set一旦创建 /dev/rtc0,udev 守护进程就会自动调用。如果需要的话你可以rtc085-hwclock.rules

相关内容