Как я могу получить аппаратные часы /dev/ptp0 ptp на виртуальной машине под управлением Linux?

Я пытаюсь запустить программное обеспечение, которое должно получать временные метки оборудования с помощью ptp. Поэтому мне нужно, чтобы /dev/ptp0 был доступен. Я использую Linux/Ubuntu на VMWare.

Есть ли способ заставить это работать на виртуальной машине?

Спасибо!


person Alessandro Giusa    schedule 09.07.2018    source источник


Ответы (3)


Простой ответ VMware не поддерживает эмуляцию ptp-устройств linuxptp. Ближе всего это можно найти на этом веб-сайте

К вашему сведению Запуск linuxptp на qemu-kvm

Запустите две виртуальные машины для GM и Slave и используйте последнюю версию Fedora, RHEL 6.5 7.0. Используйте эмуляцию виртуальной сетевой карты g e10000 (поддерживает временные метки программного обеспечения). Не забудьте определить соответствующие правила брандмауэра, чтобы разрешить многоадресную рассылку. Не ожидайте высокой точности и аккуратности.

person Devidas    schedule 09.07.2018
comment
Спасибо за ваш ответ. Нет ли способа эмулировать аппаратные часы ptp? Мне это нужно только для тестирования моего приложения. Или есть другой способ получить аппаратные временные метки? - person Alessandro Giusa; 09.07.2018
comment
никогда не пробовал это, но вы можете попробовать это. это репозиторий git, имитирующий часы. может помочь. дайте мне знать, что это сработало. - person Devidas; 09.07.2018
comment
Так что спасибо тебе! Я все еще пытаюсь понять, что он делает... это имитирует аппаратные часы ptp? Потому что это то, что мне нужно... - person Alessandro Giusa; 09.07.2018

короче: 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

Перезапустите демон хрони:

# systemctl restart chronyd

Чтобы убедиться, что синхронизация времени между хостом и гостем настроена правильно, используйте команду chronyc sources для гостя.

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

Сейчас 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 <[email protected]>
PTP clock support registered
person Jesús Zazueta    schedule 28.06.2021