在 Linux 内核 space 中设置系统时间
Set system time in Linux kernel space
很明显,在 Linux 内核模块中设置系统时间应该没有问题。但是,do_settimeofday() 在我为 4.4 内核编写的模块中始终运行 returns EINVAL(无效参数)。我尝试了 this topic 中的示例,得到了相同的 EINVAL(当我打印 do_settimeofday() 的结果时。有趣的是, stime(2) 系统调用在内核中使用相同的 do_settimeofday() 函数,它始终有效。
感谢您的想法和指导!
根据implementation,do_settimeofday returns EINVAL 仅当
其timespec
参数不正确(秒数为负数或纳秒数超出区间[0,1 000 000 000)),或
设置给定的时间值会打破单片时间的性质。请注意,虽然该函数旨在更新 real 时间,但它也会按相同的增量修改 monolitic 时间。
很明显,在 Linux 内核模块中设置系统时间应该没有问题。但是,do_settimeofday() 在我为 4.4 内核编写的模块中始终运行 returns EINVAL(无效参数)。我尝试了 this topic 中的示例,得到了相同的 EINVAL(当我打印 do_settimeofday() 的结果时。有趣的是, stime(2) 系统调用在内核中使用相同的 do_settimeofday() 函数,它始终有效。
感谢您的想法和指导!
根据implementation,do_settimeofday returns EINVAL 仅当
其
timespec
参数不正确(秒数为负数或纳秒数超出区间[0,1 000 000 000)),或设置给定的时间值会打破单片时间的性质。请注意,虽然该函数旨在更新 real 时间,但它也会按相同的增量修改 monolitic 时间。