在linux中,如何查找CMOS电池是否正常工作?[关闭]


1

我想以编程方式确定CMOS电池是否正常工作。在Linux上的我的C ++程序中,如果CMOS电池不存在或不工作,我想连接到互联网并更新系统时间。


你用什么主板?你使用什么Linux Distri?
kockiren 2013年

@kockiren linux发行版是ubuntu。我的程序应该独立于主板工作。实际上我希望我的程序可以在常规桌面和beaglebone上工作。
Necktwi 2013年

我认为如果你是BIOS剂量的,那么就不可能检查cmos电池的容量。你可以在Linux上使用一些工具。
kockiren 2013年

Answers:


3

我相信如果发生校验和错误,BIOS会在CMOS RAM中设置一点。但这是针对每个主板制造商的。

有一件事可行......

  • 在关机时转储CMOS RAM - dd if=/dev/nvram of=cmos_ram.bin可能会这样做。
  • 上电时检索它。
  • 与上次关机时保存的文件进行比较。如果存在不匹配,则CMOS已更改或损坏。系统时间更新也是如此。

老实说,由于许多CMOS时钟的漂移和不准确,你应该在每次启动时更新系统时间。


我想你的回答只适用于CMOS电池故障后立即启动的系统。
Necktwi 2013年

1

吻!

使用NTP始终纠正时间(ntpdate然后是ntpd)。

这样你总能得到正确的时间。这就是没有CMOS或内部时钟的计算机。

没有必要构建任何其他程序(它们已经存在),也没有必要检查CMOS(拥有它是好的,但不是必需的)


0

这可能是可能的,但可能不会是跨平台的(因为你想在PC和BeagleBone上使用它,它们具有截然不同的硬件)。

运行ntp,无论电池状态如何,都会始终保持正确的时间。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.