GPS dongle을 이용한 NTP 구축

자체 NTP 서버를 구축해보려고 GPS dongle을 하나 구입했다. GPS 동글이 PPS를 지원해 주면 좀 더 정확한 시간 동기화 및 NTP 시간 제공이 가능하다고 하지만, 일단 동글만 이용해 보기로 한다. 인터넷에서 찾은 여러 기사들을 종합하고 실제로 적용해 보았다.

다음의 패키지들을 설치한다.

sudo apt -y install gpsd gpsd-clients chrony

gpsd 환경 설정 파일을 수정한다. GPS 동글은 ACM0으로 연결되어 있다고 가정하고 있다.

nano /etc/default/gpsd

START_DAEMON="true"
DEVICES="/dev/ttyACM0"
GPSD_OPTIONS="-n"
USBAUTO="true"

chrony.conf 파일에 다음 내용을 추가한다.

refclock SHM 0 offset 0.5 delay 0.2 refid NMEA

gpsd와 chronyd 를 재시작하거나 편하게 시스템 재부팅을 한다.

그런데 회사 유리창이 아무리봐도 전자파차폐유리인 것 같다. 창문을 닫으면 GPS 신호 수신이 안된다. 미약한 신호라도 받기 시작하면 적어도 시각은 이용할 수 있다. 그럴 경우 gpsd 파일에서 다음을 추가하여 준다.

GPSD_OPTIONS="-n -r"

PPS가 지원이 되지 않기 때문에 오차가 크게 제공되는 편이다. 따라서 인터넷 연결이 끊겼을 때는 이용할 수 있으나, 그렇지 않은 경우에는 인터넷을 통한 NTP 동기화를 이용하게 된다.