Linux에서 하드웨어 시계를 프로그래밍 방식으로 어떻게 설정합니까?

StackOverflow https://stackoverflow.com/questions/202116

문제

Linux는 STIME (2) 호출을 제공하여 시스템 시간을 설정합니다. 그러나 시스템 시간이 업데이트되지만 BIOS 하드웨어 시계가 새로운 시스템 시간과 일치하도록 설정하지는 않습니다.

Linux 시스템은 일반적으로 하드웨어 시계를 셧다운시 및 정기 간격으로 시스템 시간과 동기화합니다. 그러나 이러한 자동 동기화 중 하나 전에 기계가 전원 사이클링되면 기계가 다시 시작될 때 시간이 잘못됩니다.

시스템 시간을 설정할 때 하드웨어 시계가 업데이트되도록하려면 어떻게해야합니까?

도움이 되었습니까?

해결책

자세한 내용은 RTC MAN-PAGE를 확인하십시오. 그러나 루트로 로그인 한 경우 다음과 같은 것입니다.

    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) MAN 페이지를 참조하십시오.

HWCLOCK의 소스 코드를 읽는 것으로 시작합니다.

또한 하드웨어 시계가 한 지점에 대해서만 정확하다는 것을 지적하고 싶습니다 (하루에 몇 초 동안 느슨해 지거나 얻는 시스템을 보았습니다).

시계를 시간 서버와 동기화하기 위해 네트워크 시간 데몬 설정을 고려해 보셨습니까?

이 동기화는 데몬이 시작된 후까지 발생하지 않으므로 하드웨어 클록을 동기화하는 경우 전원을 켜고 시간 데몬이 시간 서버와 동기화되는 포인트 사이에 도움이됩니다.

텍스트 편집기가 Kubuntu와는 다른 경우 (Kate는 편집기의 기본값) sudo 터미널에서 명령.

  1. 터미널을 실행하십시오
  2. 이 명령을 복사하여 붙여 넣습니다sudo kate /etc/default/rcS 누르다 입력하다
  3. 사용자 비밀번호를 입력하십시오 (로그인 비밀번호) 누릅니다 입력하다
  4. 텍스트 편집기가 데스크탑에서 열립니다
  5. 선을 변경하십시오 UTC=yes 에게 UTC=no
  6. 저장을 클릭하십시오 (텍스트 편집기 탭 바의 상단)
  7. 재부팅
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top