В linux, как узнать, работает ли CMOS батарея или нет? [закрытый]

Я хочу программно определить, работает ли батарея CMOS или нет. В моей программе C++ на linux я хочу подключиться к интернету и обновить системное время, если батарея CMOS отсутствует или не работает.

5
задан neckTwi
09.03.2023 6:35 Количество просмотров материала 3357
Распечатать страницу

3 ответа

Я считаю, биосы немного в CMOS RAM, если где-то произошла ошибка контрольной суммы. Но это характерно для каждого производителя материнской платы.

одна вещь, которая может работать ...

  • сброс оперативной памяти CMOS при выключении -dd if=/dev/nvram of=cmos_ram.bin вероятно сделаю это.
  • получить его при включении питания.
  • сравнить с сохраненным файлом из последнего завершения работы. Если существует несоответствие, CMOS был изменен или поврежден. Так что системное время обновление.

честно из-за drifiting и неточности многих часов CMOS вы должны обновить системное время на каждой загрузке в любом случае.

3
отвечен LawrenceC 2023-03-10 14:23

поцелуй!

использовать NTP для коррекции времени всегда (ntpdate, а затем ntpd).

таким образом, у вас есть правильное время всегда. Это то, что делает компьютер без CMOS или внутренних часов.

нет необходимости строить какие-либо другие программы (они уже существуют) или проверять CMOS (хорошо иметь его, но не обязательно)

1
отвечен higuita 2023-03-10 16:40

Это может быть возможно, но, скорее всего, не будет кросс-платформенным (так как вы хотите использовать его как на ПК, так и на BeagleBone, у которых совершенно другое оборудование).

запуск ntp, который всегда будет держать ваше время правильно, независимо от состояния батареи.

0
отвечен Renan 2023-03-10 18:57

Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]

Ваш ответ

Опубликуйте как Гость или авторизуйтесь

Имя
Вверх