SLES15环境下如何使用Meinberg参考时钟?
SLES15环境下如何使用Meinberg参考时钟?
我完全理解你的困扰——好好的Meinberg PZF535 DFC-77时钟在SLES12 SP5上用ntpd跑得好好的,升级到SLES15后因为换成chrony就没法用了,这种“被迫适配”的感觉确实糟心。下面给你几个实际可行的解决思路:
方案一:在SLES15上重新启用ntpd
虽然SUSE默认换成了chrony,但不一定完全移除了ntpd的相关包。你可以先尝试从系统源里找回ntp套件:
zypper search ntp
如果能找到ntp包(通常包含ntpd主程序),直接安装即可:
zypper install ntp
安装完成后,编辑/etc/ntp.conf,把你之前用的Meinberg时钟配置加回去:
server 127.127.8.0 mode 0
接下来停掉并禁用默认的chrony服务,同时启用ntpd:
systemctl stop chronyd systemctl disable chronyd systemctl enable --now ntpd
最后用ntpq -p命令验证时钟是否正常同步。如果系统默认源里没有ntp包,记得去SLES15的Legacy Module(遗留模块)扩展源里找找,SUSE通常会把这类旧版工具放在扩展源中。
方案二:用用户空间工具桥接Meinberg时钟与chrony
chrony虽然没有直接支持Meinberg的硬件驱动,但它支持通过SHM(共享内存)或SOCK(套接字)读取参考时钟数据。你可以借助用户空间工具把Meinberg时钟的时间转换成chrony能识别的格式:
- 先安装Meinberg相关的用户空间工具(比如
mbgtools套件),这类工具通常能直接读取PZF535时钟的时间数据; - 配置工具定期把时钟时间写入到chrony默认监听的SHM段(比如段0);
- 编辑
/etc/chrony.conf,添加SHM类型的参考时钟配置:refclock SHM 0 - 重启chronyd服务,它就能从共享内存中读取Meinberg时钟的时间了。
如果找不到现成的工具,也可以自己写个简单的脚本或小程序,调用Meinberg时钟的驱动接口读取时间,再写入指定的SHM段——这个方法稍显麻烦,但灵活性拉满。
方案三:手动编译安装ntpd
如果上面的方法都走不通,那就自己动手编译ntpd:
- 先安装编译依赖:
zypper install gcc make autoconf libtool pkg-config - 下载ntp官方源码包,解压后进入源码目录;
- 配置编译选项,确保启用所有时钟驱动(包括Meinberg的):
./configure --enable-all-clocks --enable-parse-clocks - 编译并安装:
make make install - 复制你原来的
ntp.conf到合适的位置(比如/usr/local/etc/ntp.conf),添加Meinberg的配置,最后创建systemd服务文件来管理编译好的ntpd进程。
这三个方案里,方案一肯定是最省心的,优先推荐尝试。
备注:内容来源于stack exchange,提问作者U. Windl
相关产品推荐
相关产品推荐

