NTPD 의 refclock_nmea 를 이용하여 클럭 동기화를 할려고 합니다.
제 현재 상황이 NMEA 데이터는 UART(/dev/ttyS1) 로 들어오고 있는 상황이고
http://www.ntp.org 의 NTP-4.3.8p3 으로 시도하고 있습니다.
리눅스 3.6.5 버전을 사용하고 있습니다.
소스 수정은
refclock_nmea.c 에서 오픈할 디바이스 설정만
#define DEVICE "/dev/ttyS1"
위와같이 변경해 주었습니다.
ntp.conf 파일은
server 127.127.20.0 prefer
fudge 127.127.20.0 stratum 2
위와같이 설정해서 20번인 NMEA 를 사용하려고 위와같이 만들었습니다.
이후에 컴파일한 ntpd 를 실행할때 인터넷 검색으로 찾아본
.../ntpd start 라는 옵션을 주고 실행해도
bash-2.05a# ./ntpd start
usage: ./ntpd [ -abdgmnqx ] [ -c config_file ] [ -e e_delay ]
[ -f freq_file ] [ -k key_file ] [ -l log_file ]
[ -p pid_file ] [ -r broad_delay ] [ -s statdir ]
[ -t trust_key ] [ -v sys_var ] [ -V default_sysvar ]
[ -P fixed_process_priority ]
이런식으로만 나와서 제가 완전 실수하고 있는거 같은데 전혀 감을 못 잡고 있어서 질문드립니다.
그리고 데몬으로 돌리기 위해 -d 옵션을 줘도
bash-2.05a# ./ntpd -d
ntpd 4.2.0@1.1161-r Mon Sep 7 22:13:22 KST 2015 (44)
addto_syslog: ntpd 4.2.0@1.1161-r Mon Sep 7 22:13:22 KST 2015 (44)
addto_syslog: precision = 24.180 usec
create_sockets(123)
addto_syslog: no IPv6 interfaces found
bind() fd 7, family 2, port 123, addr 0.0.0.0, flags=8
addto_syslog: init_socket_sig: ioctl(I_SETSIG, S_INPUT) failed: Bad address
이런식으로 오류가 나는데 전 UART 만 사용할거고 socket 은 쓸일이 없는데 소켓 부분을 제거하거나
refclock 부분만 사용할 수 있는 방법은 혹시 없을까요?
너무 초보라 질문도 두서없어서 죄송합니다.
좋은 하루되세요.
댓글 달기