局域网内两台设备时间同步

由于项目需要,需要笔记本和无人车上的tx2在无人车上的路由内组建局域网。但本项目系统是以ROS为框架的,需要两设备时间同步(不然会报各种莫名其妙的错误,笔者困惑了几天才发现…)。

笔记本是Uuntu16.04的系统,移动机器人的TX2也是16.04,二者通过路由器组建局域网,没有与外网连接。下面介绍如何通过ntp来对局域网内的两台电脑进行时间同步。

1、服务器端配置

在笔记本上安装ntp:

$ sudo apt install ntp

编辑配置文件/etc/ntp.conf

sudo vim /etc/ntp.conf

在文件中添加如下内容:

restrict 192.168.1.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/255网段上的机器能和本机进行时间同步;第二行和第三行是为了让本机的硬件时间和本机的ntp服务进行时间同步。

重启ntp服务:

sudo /etc/init.d/ntp restart

2、客户端配置

在笔记本上安装ntp:

sudo apt install ntp

编辑配置文件/etc/ntp.conf

sudo vim /etc/ntp.conf

server 服务器IP prefer

之后

service ntp restart

完成之后重启ntp

使用指令进行时间同步:(非必要)

sudo /usr/sbin/ntpdate 192.168.2.4

为了避免每次时间同步都要输入上述指令,可以在/etc/crontab文件中配置,让树莓派每分钟和笔记本进行一次时间同步。(非必要)

sudo vim /etc/crontab

在文件末尾添加如下内容:

          • /usr/sbin/ntpdate 192.168.1.101;/sbin/hwlocal -w

表示每分钟和局域网内ip为192.168.1.101的主机进行一次时间同步,并将时间写入硬件中。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐