局域网内两台ubuntu时间同步
笔记本上安装Uuntu16,移动机器人的树莓派上安装了树莓派安装了Ubuntu16 MATE,通过路由器组建局域网,没有与外网连接。在进行ROS开发的过程中,由于这两个系统时间不同步带来了很多问题。下面介绍如何通过ntp来对局域网内的两台电脑进行时间同步。
由于树莓派断电后没有电池给系统时钟供电,因此将笔记本设置为ntp服务器,树莓派设置为ntp客户端。
(1) 服务器端配置
在笔记本上安装ntp:
$ sudo apt install ntp
编辑配置文件/etc/ntp.conf
$ sudo vim /etc/ntp.conf
在文件中添加如下内容:
restrict 192.168.2.0 mask 255.255.255.0 nomodify notrap
server 127.127.1.0 # local clock
fudge 127.127.1.0 stratum 10
第一行是为了能让192.168.2.0/24网段上的机器能和本机进行时间同步;第二行和第三行是为了让本机的硬件时间和本机的ntp服务进行时间同步。
重启ntp服务:
$ sudo /etc/init.d/ntp restart
(2) 客户端配置
在笔记本上安装ntp:
$ sudo apt install ntp
编辑配置文件/etc/ntp.conf
$ sudo vim /etc/ntp.conf
在文件中添加如下内容:
server 192.168.2.4 # 笔记本的ip地址
重启ntp服务:
$ sudo /etc/init.d/ntp restart
不知什么原因导致ntp服务无法启动,错误信息如下:
因此,只能使用指令进行时间同步:
$ sudo /usr/sbin/ntpdate 192.168.2.4
为了避免每次时间同步都要输入上述指令,可以在/etc/crontab文件中配置,让树莓派每分钟和笔记本进行一次时间同步。
$ sudo vim /etc/crontab
在文件末尾添加如下内容:
* * * * * /usr/sbin/ntpdate 192.168.2.4;/sbin/hwlocal -w
表示每分钟和局域网内ip为192.168.2.4的主机进行一次时间同步,并将时间写入硬件中。
参考文献
[1] https://blog.csdn.net/chagaostu/article/details/47728721
[2] http://hanyingjun318.iteye.com/blog/2260952