976|5

274

帖子

8

TA的资源

纯净的硅(初级)

楼主
 

【STM32MP135F-DK】4-自动校时和手动校时 [复制链接]

本帖最后由 manhuami2007 于 2023-12-18 08:24 编辑
设备刚启动的时候,设备的时间肯定是不对的,因此需要进行校时。校时的方式有两种:当设备能够联网之后就可以使用ntp自动校时了,如果没有联网的话,也可以使用手动校时。
NTP自动校时
自动校时要用到ntp服务,系统默认安装了ntpd服务,其它的都没有自动安装,比如ntpq和ntpdate这两个是没有的。

1. 修改ntp.conf文件,增加ntp服务器地址
使用命令timedatectl 可以看出ntp服务已经启动了,而且也联网了,但是系统并没有自动校时。这是因为 /etc/ntp.conf 中还没有设置,如下图所示:


可以看出ntp的server 是127.127.1.0,并不是ntp服务器的地址,因此需要修改这个文件,使用vi命令修改这个文件

vi /etc/ntp.conf

增加 server cn.pool.ntp.org prefer,修改后如下图所示。后面的prefer是在有多个server时,选择一个作为优先选项的作用。

2.重启ntpd服务

因为ntp.conf文件是在系统启动的时候读取的,因此使用vi工具修改了ntp.conf文件之后,需要重启ntp服务,命令为:
systemctl restart ntpd

 

修改后,时间也不是立刻就更新的。这是因为ntpd这个服务修改时间的方式是平滑时间变化,并且系统也不是立马就访问ntp服务器的,因此需要等一会。可以使用date命令查看当前时间。
手动校时
如果想要立刻修改时间,则可以手动设置时间,可以使用 timedatectl 命令。使用 timedatectl 命令可以看到当前的时间状态:

1. 修改时区
我这个已经修改过时区了,所以显示的是上海的时区。默认是UTC的时区,因此需要修改时区。
使用的命令

 timedatectl list-timezones 

列出所有的时区,可以在里面看到 “Asia/Shanghai”。然后使用

timedatectl set-timezone “Asia/Shanghai”

将时区设置为东八区的时间

2. 设置时间

然后就是使用timedatectl set-time命令设置时间,例如:
timedatectl set-time "2023-12-15 15:47:00"

如果直接设置的话,可能会报错,如下图所示。

这是因为ntp服务开启了,是自动校时的模式。因此需要先将ntp关闭,使用命令
timedatectl set-ntp false 
关闭自动校时功能,然后再校时就可以了。
总结
通过上面的2种方式都能够校时,校时也是为了调用apt-get update指令,如果没有校时的话,调用update命令会返回下面的错误
这个错误就是因为系统时间差的太多造成,因此需要校时之后才能成功的更新包的信息。
此帖出自stm32/stm8论坛

最新回复

修改时区的命令应该是 timedatectl set-timezone Asia/Shanghai     详情 回复 发表于 2023-12-17 18:04
点赞 关注
 

回复
举报

6815

帖子

0

TA的资源

五彩晶圆(高级)

沙发
 

系统时间差的太多的原因是什么呢

此帖出自stm32/stm8论坛

点评

开发板刚上电的时候,系统还没有校时。而且在开发板上一开始是没有设置正确的ntp服务器地址的,所以也无法校时。需要设置一下。  详情 回复 发表于 2023-12-17 06:36
 
 

回复

274

帖子

8

TA的资源

纯净的硅(初级)

板凳
 
Jacktang 发表于 2023-12-16 21:03 系统时间差的太多的原因是什么呢

开发板刚上电的时候,系统还没有校时。而且在开发板上一开始是没有设置正确的ntp服务器地址的,所以也无法校时。需要设置一下。

此帖出自stm32/stm8论坛
 
 

回复

88

帖子

3

TA的资源

一粒金砂(高级)

4
 

重启ntpd服务中的指令错啦,应该是

systemctl restart ntpd

 

此帖出自stm32/stm8论坛
 
 
 

回复

88

帖子

3

TA的资源

一粒金砂(高级)

5
 

修改时区的命令应该是

timedatectl set-timezone Asia/Shanghai

 

此帖出自stm32/stm8论坛

点评

你说的对,我这就编辑修改一下,谢谢了  详情 回复 发表于 2023-12-18 08:23
 
 
 

回复

274

帖子

8

TA的资源

纯净的硅(初级)

6
 
不爱胡萝卜的仓鼠 发表于 2023-12-17 18:04 修改时区的命令应该是 timedatectl set-timezone Asia/Shanghai  

你说的对,我这就编辑修改一下,谢谢了

此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/8 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表