我有一个Linux内核模块(设备驱动程序)需要知道通过ktime_get_clocktai()返回的内核时间是否通过NTPd正确规范。
此功能是必需的,因为如果时间在几毫秒内未与基于本地LAN的NTP服务器同步,则模块生成的带时间戳的数据无意义。
我需要在数据流中添加一个标志,以便向远程接收器指示时间戳无效,因此数据质量较差。
目前我在用户线程中运行ntpstat,将结果写入文件,然后在内核模块中读取该文件。
必须有一种更好的方式,不依赖于用户空间计划。
我查看了内核源代码,除了连接到NTPd中的套接字之外,找不到任何方法来获取内核时钟状态。我宁愿不这样做,因为模块是实时的。