Я хочу программно определить, работает ли батарея CMOS или нет. В моей программе C++ на linux я хочу подключиться к интернету и обновить системное время, если батарея CMOS отсутствует или не работает.
В linux, как узнать, работает ли CMOS батарея или нет? [закрытый]
3 ответа
Я считаю, биосы немного в CMOS RAM, если где-то произошла ошибка контрольной суммы. Но это характерно для каждого производителя материнской платы.
одна вещь, которая может работать ...
- сброс оперативной памяти CMOS при выключении -
dd if=/dev/nvram of=cmos_ram.bin
вероятно сделаю это. - получить его при включении питания.
- сравнить с сохраненным файлом из последнего завершения работы. Если существует несоответствие, CMOS был изменен или поврежден. Так что системное время обновление.
честно из-за drifiting и неточности многих часов CMOS вы должны обновить системное время на каждой загрузке в любом случае.
поцелуй!
использовать NTP для коррекции времени всегда (ntpdate, а затем ntpd).
таким образом, у вас есть правильное время всегда. Это то, что делает компьютер без CMOS или внутренних часов.
нет необходимости строить какие-либо другие программы (они уже существуют) или проверять CMOS (хорошо иметь его, но не обязательно)
Это может быть возможно, но, скорее всего, не будет кросс-платформенным (так как вы хотите использовать его как на ПК, так и на BeagleBone, у которых совершенно другое оборудование).
запуск ntp, который всегда будет держать ваше время правильно, независимо от состояния батареи.
Постоянная ссылка на данную страницу: [ Скопировать ссылку | Сгенерировать QR-код ]