当前位置: 首页 > news >正文

⚡ arm 32位嵌入式 Linux 系统移植 NTP 服务

⏱ 1. NTP 简介

NTP(Network Time Protocol,网络时间协议) 是一种用于在计算机系统之间进行时间同步的协议。
它能够通过网络与远程时间服务器通信,从而使设备的系统时间保持精确一致。
在嵌入式 Linux 系统中,NTP 常用于在系统启动后自动校准时间,以保证日志、通信协议以及加密认证等模块的时间准确性。


🌐 2. NTP 移植

🧊 2.1 配置编译参数

将 NTP 源码包拷贝到合适的位置,并解压

cp ntp-4.2.8p15.tar.gz /opt
cd /opt
tar -xvf ntp-4.2.8p15.tar.gz

进入源码目录后,使用交叉编译工具链配置编译参数:

CC=arm-cortex_a9-linux-gnueabi-gcc \
AR=arm-cortex_a9-linux-gnueabi-ar \
RANLIB=arm-cortex_a9-linux-gnueabi-ranlib \
./configure \
--host=arm-linux \
--prefix=/opt/project/ntp \
--with-yielding-select=yes

配置完成后,请检查生成的 Makefile,确认其中的编译器和链接器变量均为交叉编译工具链。

💽 2.2 编译并安装

执行以下命令进行交叉编译与安装

make
make install

完成后,进入安装目录,确认是否生成以下子目录

并且检查 bin 目录下是否包含核心可执行文件 ntpdate 和 ntpd

在这里插入图片描述

🧱 2.3 单板部署部署

先在单板上创建 NTP 的部署目录

ssh root@192.168.10.29
mkdir /usr/local/ntp/bin /usr/local/ntp/etc /usr/local/ntp/var
exit

然后回到 PC 端将可执行文件复制到单板的 NTP 部署目录中

scp /opt/project/ntp/bin/ntpd root@192.168.10.29:/usr/local/ntp/bin
scp /opt/project/ntp/bin/ntppdate root@192.168.10.29:/usr/local/ntp/bin

再次登录单板,执行以下命令检查 NTP 是否能正常运行

/usr/local/ntp/bin/ntpdate -u cn.pool.ntp.org

若出现以下提示,则说明 NTP 可以正常运行

在这里插入图片描述

随后我们编写 NTP 的开机启动脚本 S03ntp.sh ,使单板在开机的时候自动同步一次时间

#!/bin/shwhile [ ! -d /sys/class/net/ra0 ]; do
sleep 1
done/usr/local/ntp/bin/ntpdate -u cn.pool.ntp.org

然后在系统启动脚本 /etc/init.d/rcS 的最后添加以下行

sh /etc/init.d/S03ntp.sh

最后在 /etc/profile 脚本开头添加时区设置

export TZ=‘CST-8'

至此 NTP 已经完成移植,并且可以开机启动


💊 3. 问题解决

📮 3.1 时区问题

如果你单板启动以后发现系统时间比标准时间早了8个小时,比如这样:
在这里插入图片描述
那么基本上可以确定你的系统中时区没有设置好。一定要确保设置时区的环境变量在 /etc/profile 中导入,这样的话时区设置才会在用户登录的时候生效。如果在 /etc/init.d/S03ntp.sh 或者 /etc/init.d/rcS 中设置了时区的环境变量,在后续的用户登录的时候是不会生效的。

📌 3.2 ./configure 报错

如果你在 ./configure 的时候出现以下报错

在这里插入图片描述
那么说明你配置的 ./configure 交叉编译参数有问题。

在交叉编译环境下,./configure 无法在目标板上运行测试程序,而 configure 又想强制运行测试程序,所以汇报这个错。

所以要解决这个问题,你需要在 ./configure 的时候添加 --with-yeilding-select=yes 告诉 NTP 这时交叉编译,不用检测

http://www.dtcms.com/a/453499.html

相关文章:

  • 抖音,小红书等自媒体平台多开账号如何操作不违规
  • [Java]PTA: jmu-Java-03面向对象基础-Object
  • 【大模型实战篇】基于xiaohongshu-mcp实现对话模式的小红书笔记操作
  • LangChain详解(一)
  • 门户网站建设需求wordpress云主机
  • 【OpenArm|Control】openarm机械臂ROS2仿真控制
  • 网站开发小组百度网页制作网站建设
  • 中小型项目组织架构和职能说明
  • wordpress发表文章更新失败网站标题优化工具
  • C++网络编程(五)socket编程---从socket()到connect()
  • 23-25年总结:23年因为大模型而转型科技,24年起发力具身,25年长沙具身开始一轮轮突飞猛进
  • AI智能体(Agent)大模型入门【7】--构建传统的RAG应用
  • 淮阴区建设局网站网站备案变更公司名称
  • Bittensor 中国巡回 Meetup|上海站
  • S11e Network 商业模型:AI × Web3 × RWA 驱动的实体经济新范式
  • 人脸跟随 ( Channel 实现(缓存5条数据 + 2度过滤 + 平滑移动))
  • 线性表——数组描述
  • 帮客户做网站 没签合同咋办重视网站阵地建设
  • Raven2
  • 面试陷阱:SQL 子查询 vs JOIN 的性能差异
  • 做蛋糕视频的网站非法网站开发
  • 设备管理平台项目部署文档(含自动化脚本)
  • 毕业设计除了网站还可以做啥外贸网站关键词
  • 前端内存泄漏:从原理到实践的全方位解析
  • app手机网站建设黄消防网站模板
  • 成品网站建设咨询怀化最新消息今天
  • 第八章 FPGA 片内 FIFO 读写测试实验
  • 2025年--Lc170--H289. 生命游戏(矩阵)--Java版
  • FC和SFC的原版说明书(扫描的PDF)
  • 网站建设方案文库我们是设计师 网站建设专家