ntpclinet는 unix 비스무리한 컴퓨터의 NTP(RFC-1305) client이다.
xntpd도 좋겠지만 하고자 한것은 시간만 맞추면 되는것이었으므로 우선 이걸로 사용해보았다.
소스 - http://doolittle.icarus.com/ntpclient/
컴파일 순서
- tar -zxvf ntpclient_2003_194.tar.gz
- cd ntpclient
- vi Makefile
- #To cross-compile아래줄의
CC = arm-none-linux-gnueabi-gcc 를 주석처리 및 수정을 함
- #To cross-compile아래줄의
- 그리고 make
- ntpclient를 보드에 카피.
실행
- 보드에서 dns query가 되지 않으므로 time.windows.com hostname에 접근 못하므로 PC에서 ip를 알아왔다.
- ./ntpclient -h 207.46.197.32 -s &
확인
- date
Fri Nov 30 06:39:28 UTC 2007
※ Target Board에서 설정방법
# cat /etc/resolv.conf
nameserver 164.124.101.1
nameserver 164.124.101.2
# export TZ=KST-9 <-Time Zone
# ./ntpclient -h time.windows.com -s
39647 51867.316 173798.0 0.0 145847.3 78994.8 0
# date
Sun Jul 20 23:24:29 KST 2008
#
※ Program에서 활용법
#include <stdio.h>
#include <stdio.h>
int main()
{
char cmd[128];
// Asia/Seoul:출력할 이름, -9 : GMT로 부터 계산법(GMT+9인경우 -9를 해서 시간을 맞춤)
char* TimeZone = "Asia/Seoul-9";
memset( cmd, 0, 129);
sprintf( cmd, "export TZ=%s; ./ntpclient -h time.windows.com -s", TimeZone);
system(cmd);
return 0;
}
{
char cmd[128];
// Asia/Seoul:출력할 이름, -9 : GMT로 부터 계산법(GMT+9인경우 -9를 해서 시간을 맞춤)
char* TimeZone = "Asia/Seoul-9";
memset( cmd, 0, 129);
sprintf( cmd, "export TZ=%s; ./ntpclient -h time.windows.com -s", TimeZone);
system(cmd);
return 0;
}
==> 결과
# date
Mon Jul 21 00:31:33 Asia/Seoul 2008
'공부 이야기 > 컴퓨터 몽땅' 카테고리의 다른 글
| Virtual IP setup (0) | 2008/08/04 |
|---|---|
| Timezone on Linux (2) | 2008/07/21 |
| NTPClient (0) | 2008/07/20 |
| Lightbox JS (0) | 2008/06/18 |
| epoll 서버 샘플 프로그래밍 (0) | 2008/05/29 |
| 공유메모리 관련 (0) | 2008/05/18 |




