linux 路由表 pps,Linux PPS NTPD

ubuntu 12.04 整合了Linux pps driver。听说和 NTPD 配合能得到很好的系统时间。

于是就在板子上装了个ubuntu server 12.04 试试,参看:

1.安装ubuntu server 12.04

2.Trimble GPS 链接串口/dev/ttyUSB1 9600 8N1 NMEA GGA协议 only

(配置串口:

#stty -F /dev/ttyUSB1 -a (查看)

#stty -F /dev/ttyUSB1 ospeed 4800 ispeed 4800 cs8 -cstopb

-icrnl -icanon -isig -echo -echoe -clocal(设置)

)

(一旦发现设备,串口自动设置:创建文件/etc/udev/rules/10-yourname.rules

# Trimble GPS setting:

# NMEA on ttyUSB1 9600 8n1

SUBSYSTEM=="pps", MODE="0664" GROUP="tty"

KERNEL=="ttyUSB0", RUN+="/bin/stty -F /dev/ttyUSB0 ospeed 9600

ispeed 9600 parenb parodd cs8 -cstopb -icrnl -icanon -isig -echo

-echoe -clocal"

KERNEL=="ttyUSB1", RUN+="/bin/stty -F /dev/ttyUSB1 ospeed 9600

ispeed 9600 -parenb cs8 -cstopb -icrnl -icanon -isig -echo -echoe

-clocal"

KERNEL=="ttyUSB1", SYMLINK+="gps1"

)

3.pps 信号 接 并口ACK。 没串口了,只能用并口。听说并口比串口响应快。

4.载入 Linux pps driver:

# modprobe parport_pc

# modprobe pps_parport clear_wait=0

可使用 modinfo pps_parport 查看模块的参数。 assert

是上升沿,clear是下降沿

#ls /dev 看到设备 /dev/pps0

5. 安装工具ppstool:

解压: #tar -xzvf *.gz

编译安装:#make && make install

(可能你要装Linux头文件包 和编译工具:

#apt-get update

#apt-get upgrade

#apt-get install linux-headers-$(uname

-r)

#apt-get install make gc

)

注意: timepps.h 这个必须有, ntpd需要。不知道Linux kernel怎么搞的,没有此头文件。

检测:#ppstest /dev/pps0

trying PPS source "/dev/pps0"

found PPS source "/dev/pps0"

ok, found 1 source(s), now start fetching data...

source 0 - assert 1333040090.999603804, sequence: 8631 - clear

0.000000000, sequence: 0

source 0 - assert 1333040091.999709923, sequence: 8632 - clear

0.000000000, sequence: 0

source 0 - assert 1333040092.999797692, sequence: 8633 - clear

0.000000000, sequence: 0

source 0 - assert 1333040093.999884565, sequence: 8634 - clear

0.000000000, sequence: 0

6. ntpd编译安装,由于ubuntu的ntpd不带pps,只能自己编译

# ./configure --enable-all-clocks

# make

# make install

注意: config.h 中含有 #define

HAS_PPSAPI 1

7.

conf文件:/etc/ntp.conf

server

127.127.22.0 minpoll 3 maxpoll 3  # PPS ATOM

iburst

fudge

127.127.22.0 flag2 0

server

127.127.20.1 mode 18 prefer minpoll 3 maxpoll 3

fudge

127.127.20.1 time2 0.0000

driftfile

/var/lib/ntp/ntp.drift

8. 产生ntpd 的gps 设备

#ln -s /dev/ttyUSB1

/dev/gps1

9.调整系统时间,使之尽可能准。多运行几次。

#ntpdate

0.ca.pool.ntp.org

9. 运行ntpd

#ntpd -D 2 (debug mode 2) 显示

GGA信息.如果没有,看看串口有没有#cat /dev/ttyUSB1

10. ntptime

显示ok,没有Error

11. ntpq

-p

要有如下结果

# ntpq -pn

remote refid st

t when poll

reach delay offset jitter

==============================================================================

*127.127.20.1 .GPS. 0

l 52 64 377 0.000 0.516 0.011

o127.127.22.0 .PPS. 0

l 3 16 377 0.000 -0.001 0.001

但我就如论如何都没有这么好的结果:

# ntpq -p

remote  refid  st t when poll reach  delay

offset  jitter

==============================================================================

xGPS_NMEA(1)

.GPS.  0 l  44

64  377  0.000  -217.78

22.159

xPPS(0)

.PPS.  0 l  11

16  377  0.000  -177.46

4.882

12. degub:

a)有人说ntpd要运行一段时间才能算好时间。我给它3天,结果更糟。

b)修改conf:

server 127.127.22.0 minpoll 3

maxpoll 3  # PPS ATOM iburst

fudge 127.127.22.0 flag2 0

flag3 1

server 127.127.20.1 mode 18

prefer minpoll 3 maxpoll 3

fudge 127.127.20.1 time2

0.0000

driftfile

/var/lib/ntp/ntp.drift

还是那样糟。

c) 不用

driver 22 , 参照网站linux pps NTPD

修改参数,参照 type20, type22

试过各种参数,不好使。

d)不用ATOM PPS (22), 只用NMEA 内置的pps

修改conf:

server 127.127.20.1 mode 18

prefer minpoll 3 maxpoll 3

fudge 127.127.20.1 time2

0.0000flag1

1flag2

0flag3 1

driftfile

/var/lib/ntp/ntp.drift

结果等明天

还是不好用!

n 天后,不知道哪里出了问题,ntpd

就是不好用。改用chronyd:

详见下一篇

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值