linux 修改时区_从51单片机到Linux 网络时钟(教程12)

2a482c0e6b31276a78e08a3579bb1ded.png

大家好,我是兔子。

是一个嵌入式软硬件工程师。

正在从单片机开发转岗Linux开发。

由于我的开发板上没有RTC时钟。这时,兔子我突然有了一个大胆而神奇的想法。

使用网络。来获取最新的时间。

e67636e7e48075ac4e946af060962aec.gif

我们可以通过date命令,查看当前开发板时间。

6a2e5ba14226ad1fcc1fc41c53663636.png

1.修改开发板时区

开发板默认的时区为+0区。我们可以使用date –R命令中看到。

dda09c5735bb0522ba2f1506ef1753da.png

首先和兔子一起,将开发板的时区修改为+8区。即北京时间。

改动的文件为开发板的/etc/profile

由于开发板的关键文件写保护了。

需要临时解除保护。

输入命令mount –o remount rw / 表示将根目录文件重新挂载一下。

ee673624f7dc722b6bba028ad5d75470.png

然后输入vi /etc/profile,修改内容。

f46750ca2aa531df8524288d902526e5.png

在最后一行,添加export TZ=CST-8后,保存文件。然后重启开发板。

ee4f97dec06005c4b32c4d380484e4ea.png

这个操作,表示添加时区为+8区的环境变量。

重启开发板后,输入date –R指令。可以看到时区已经被调整为+8区。即北京时区。

6c96b8c58ba8b7ff813f4690747b9a64.png

2. 开发板连接外网

为了从网络获取最新时间。我们的开发板就必须连接互联网。

兔子我用网线,将开发板和家里的路由器连接起来

设置开发板的IP为DHCP模式。

即输入udhcpc命令。

6c79d34bbd7e682aa5e52207729fbfdc.png

可以看到开发板根据路由器自动调整了自己的IP地址。

和百度握个手试试。

120b294504db8365e1f4fc47d75dc2b6.png

可以看到,连接成功。至此,开发板已正确连接互联网。

3.NTP简介

NTP是网络时间协议(Network Time Protocol)的简称,它是用来同步网络中各个计算机设备的时间的协议。目前有第三方的代码可以支持NTP。这里,兔子我使用的是ntpclient

ntpclient的下载地址为http://doolittle.icarus.com/ntpclient/

9fb6c592fbc372a1556996813eb7a766.png

兔子我下载的是最近的这个。

虽然是.gz格式的压缩包。但是可以在windows下直接解压。也可以将整个压缩包拷贝到虚拟机里,然后虚拟机里解压。

ae9968a54ed223d8c1e380b7694fb7bd.png

进入该文件夹下的Makefile文件。

将交叉编译工具调整为如图所示。

CC = arm-fsl-linux-gnueabi-gcc

484826963e3c1dbd88d4183cb9f3e6b5.png

后将整个文件夹一起复制到虚拟机里并编译。

fa36ae791ddeb3d0e0b74a7fc6938b33.png

可以看到,编译通过。并生产了ntpclient可执行程序。

d35eb9b2d7320b22c84668c891390b67.png

将可执行文件通过NFS拷贝到开发板中。

(NFS不清楚,可移步教程3)

兔子MCU:从51单片机到Linux 开发板传文件利器-NFS(教程3)​zhuanlan.zhihu.com
6ff7d65a29b181b1d3f69acf1725aeeb.png

兔子我将ntp程序拷贝到开发板的/opt目录下。

e434b0024dd00f038170f75f72d694bc.png

运行程序。

./ntpclient –s –d –c 1 –i 5 –h 202.108.6.95

即可从提供NTP服务器202.108.6.95上获取时间。

d1b8c2f4de583d5d221255feed1d2725.png

可以看到,程序运行成功。

这时,我们再查询一下系统时间。

date –R

867df61a8b90281f6686655fcf6b7b8b.png

这下时间就正确同步了。

7525e81beea50c765fd66f25cee01629.png

这个小技巧,和兔子一起学会了么?

后续兔子还会和大家一起使用网络socket编程。通过网络获取并解析天气预报。

cc1298752688c8d62f8fa18b64731fa9.png
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值