打印
[新唐博主]

新唐NUC980配置ntp功能

[复制链接]
407|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
qcliu|  楼主 | 2022-6-21 14:02 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
选择ntp功能
进入内核编译文件夹
$cd ~/NUC970_Buildroot-master


选择ntp功能
$make menuconfig


选择Target packages > Networking applications > ntp

选项中我根据项目要求和调试测试需要选择了ntpd、ntpdate、ntpdc、ntpq。


功能说明
ntpd是平滑同步(微调同步),ntpdate则是直接同步(跳跃同步)。
我个人的理解就是ntpdate会立即,直接的与ntp服务器时间同步,立竿见影,使用date命令可以直接看到时间已被更改,但这样跳跃式的更改可能会对运行中的程序或者服务进程造成影响。
ntpd则是慢慢的进行同步,虽然可能会花费5到10分钟时间完全同步,但对于程序、进程等影响较小,且在NUC980内核编译中已设置为开机启动的守护进程。
因为项目中电路板出厂时需进行时间校对,同时客户日常使用也需使用ntp功能,且若时间相差过大,ntpd功能可以启动但不能正常运行,所以此处选择ntpdate用于出厂时间校对,ntpd作为守护进程保证日常校对。
ntpdc可以查看ntp守护进程状况,更改相关参数。ntpq则是用来查看与ntp服务器连接情况。两功能均用于调试。


配置文件
选择功能完成后,保存后make,编译完成后可在output/build文件夹下发现ntp文件夹,在usr/sbin下可以找到相关命令

不过有可能该文件夹下只有ntpd,可以前往ntp文件夹下将相应命令复制过来即可,如:

output/target/etc文件夹下找到ntp的配置文件ntp.conf,其初始内容如下:


server 0.pool.ntp.org iburst
server 1.pool.ntp.org iburst
server 2.pool.ntp.org iburst
server 3.pool.ntp.org iburst


# Allow only time queries, at a limited rate, sending KoD when in excess.
# Allow all local queries (IPv4, IPv6)
restrict default nomodify nopeer noquery limited kod
restrict 127.0.0.1
restrict [::1]

项目要求暂时为只需此电路板可以同步时间,故仅设置为客户端,直接同网络上的ntp服务器进行同步,不需设置为服务端供其他节点同步时间。修改后如下:
#server 0.pool.ntp.org iburst
#server 1.pool.ntp.org iburst
#server 2.pool.ntp.org iburst
#server 3.pool.ntp.org iburst


server ntp.ntsc.ac.cn prefer
server time1.cloud.tencent.com


# Allow only time queries, at a limited rate, sending KoD when in excess.
# Allow all local queries (IPv4, IPv6)
restrict default nomodify nopeer noquery limited kod
restrict 127.0.0.1
restrict [::1]


ntp.ntsc.ac.cn(114.118.7.161)为中国科学院ntp授时服务器
time1.cloud.tencent.com(139.199.215.251)腾讯云ntp授时服务器


此外,在outout/target/etc/init.d文件夹下可以找到ntp的开机启动文件S49ntp,其中需根据实际情况修改的内容如下:
NAME=ntpd
DAEMON=/usr/sbin/$NAME


# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0


# Read config file if it is present.
if [ -r /etc/default/$NAME ]
then
  . /etc/default/$NAME
fi


可以看到先赋值了NAME和DAEMON用于使用配置文件和开启守护进程。
test -x $DAEMON || exit 0查询在板子环境下/usr/sbin/文件夹下是否存在ntpd命令,可以查看output/target/usr/sbin文件夹进行确认,若无,可根据实际位置修改DAEMON变量。

if [ -r /etc/default/$NAME ]
then
  . /etc/default/$NAME
fi



判断是否存在配置文件,并使用。但此处与我目前实际情况不符:1、配置文件名称为ntp.conf,此处变量NAME为ntpd,我采取修改变量名称的方式处理,也可修改配置文件名。2、配置文件所在文件夹为output/target/etc,即板子环境下的/etc,并无中间文件夹default,我此处选择修改语句,也可增加该中间文件夹。修改后如下:

NAME=ntpd
DAEMON=/usr/sbin/$NAME


# Gracefully exit if the package has been removed.
test -x $DAEMON || exit 0


NAME=ntp
# Read config file if it is present.
if [ -r /etc/$NAME ]
then
  . /etc/$NAME
fi


NAME=ntpd



修改保存后再次make,烧录uimage。


测试
首先测试网络

#ping ntp.ntsc.ac.cn

或者
#ping 114.118.7.161



查看当前时间

使用ntpdate前需要先将ntpd服务停止

重新开启ntpd,并查看连接状态












使用特权

评论回复
沙发
redone| | 2022-7-6 21:04 | 只看该作者
还是不会,重点都忽略了

使用特权

评论回复
板凳
foxsbig| | 2022-7-10 18:47 | 只看该作者
linux有点难

使用特权

评论回复
地板
mutable| | 2022-7-11 20:25 | 只看该作者
感谢分享~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

3317

帖子

4

粉丝