Как программно установить аппаратные часы в Linux?
Linux предоставляет вызов stime(2) для установки системного времени. Однако, хотя это обновит системное время, оно не устанавливает аппаратные часы BIOS в соответствии с новым системным временем.
Системы Linux обычно синхронизируют аппаратные часы с системным временем при выключении и через определенные промежутки времени. Тем не менее, если устройство выключается и включается перед одной из этих автоматических синхронизаций, время перезапуска будет неправильным.
Как вы обеспечиваете обновление аппаратных часов при установке системного времени?
5 ответов
За подробностями обращайтесь к man-странице rtc, но если вы вошли в систему как root, что-то вроде этого:
struct rtc_time {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday; /* unused */
int tm_yday; /* unused */
int tm_isdst;/* unused */
};
struct rtc_time rt;
/* set your values here */
fd = open("/dev/rtc", O_RDONLY);
ioctl(fd, RTC_SET_TIME, &rt);
close(fd);
После вызова stime() сделайте это:
system("/sbin/hwclock --systohc");
См. Справочную страницу hwclock(8) для получения дополнительной информации.
Я также хотел бы отметить, что аппаратные часы точны только до определенной точки (я видел системы, которые будут терять / набирать пару секунд в день).
Рассматривали ли вы настройку сетевого демона времени для синхронизации ваших часов с сервером времени?
По общему признанию, эта синхронизация не произойдет до тех пор, пока не запустится демон, поэтому синхронизация аппаратных часов также помогает между включением питания и моментом, когда демон времени синхронизируется с сервером времени.
Если текстовый редактор отличается от kubuntu (в редакторе по умолчанию используется kate), используйте свой собственный с sudo
команда в терминале.
- запустить терминал
- скопируйте и вставьте эту команду
sudo kate /etc/default/rcS
нажмите Enter - введите пароль пользователя (ваш логин) нажмите Enter
- текстовый редактор откроется на рабочем столе
- изменить линию
UTC=yes
вUTC=no
- и нажмите Сохранить (вверху панели вкладок текстового редактора)
- перезагружать