如何在运行Linux的VM上获得/ dev / ptp0 ptp硬件时钟?

时间:2018-07-09 11:42:40

标签: linux linux-device-driver embedded-linux vmware-player ptp

我正在尝试运行需要使用ptp获取硬件时间戳的软件。因此,我需要提供 / dev / ptp0 。我正在VMWare上运行Linux / Ubuntu。

有没有办法在VM上完成这项工作?

谢谢!

3 个答案:

答案 0 :(得分:2)

简单答案VMware不支持模拟ptp设备的linuxptp。 最近的事情是 在this website

上找到它
  

FYI在qemu-kvm上运行linuxptp

     

运行两个用于GM和Slave的虚拟机,并使用最新的Fedora RHEL 6.5 7.0      使用虚拟NIC仿真g e10000(支持软件时间戳)      不要忘记定义适当的防火墙规则以允许多播      不要期望高精度和准确性

答案 1 :(得分:1)

现在是 2021 年,我发现如果您能够编译自己的 Linux 内核,那么已经有一个内置驱动程序了。使用 make menuconfig 启用它:

Device Drivers --> PTP clock support --> KVM virtual PTP clock

在 KVM 来宾中,将出现一个新的 /dev/ptp0 设备,以及以下内核启动日志:

pps_core: LinuxPPS API ver. 1 registered
pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it>
PTP clock support registered

答案 2 :(得分:0)

简而言之: ptp_kvm.ko

# modprobe ptp_kvm
# ls /dev/ptp*
/dev/ptp0  /dev/ptp_kvm

很久:

Red Hat Enterprise Linux 7.5和更高版本提供了虚拟PTP硬件时钟(PHC),使来宾能够以亚微秒的精度与主机同步。

https://access.redhat.com/documentation/en-us/red_hat_enterprise_linux/7/html/virtualization_deployment_and_administration_guide/chap-kvm_guest_timing_management#sect-KVM_guest_timing_management-Host-guest-time-sync(订阅墙?)

要启用PHC设备,请在虚拟机内部执行以下操作

将ptp_kvm模块设置为在重新启动后加载。

# echo ptp_kvm > /etc/modules-load.d/ptp_kvm.conf

添加/ dev / ptp0时钟作为对chrony配置的引用:

# echo "refclock PHC /dev/ptp0 poll 2" >> /etc/chrony.conf

重新启动chrony守护程序:

# systemctl restart chronyd

要验证是否正确配置了主机与客户机之间的时间同步,请在客户机上使用chronyc sources命令。

# chronyc sources
#* PHC0                          0   2   377     4     -6ns[   -6ns] +/-  726ns