PTP сервер дома. Часть 1

PTP сервер дома. Часть 1

Семён сохраняет полезное_)

Как-то вечером я решил что развлечения с PTP мне не хватает на работе и я хочу его дома в своей домашней стойке. На самом деле это нужно для работы базовой станции дома. Прежде чем строить PTP я решил провести A Proof of Concept (POC) где будет один Grand Master и один потребитель.

С чего же начать? Конечно же с выбора сетевых карт. Из доступных есть карты на базе I210 и I226 от Intel. Позже я нашел статью где описан способ подключения GNSS приёмника к карте напрямую. Статья здесь - https://www.erp5.com/rapidspace-Document.Blog.ORS.PPS.Experiment

Найти карту где выведен SDP не то чтобы просто, обычно это официальные карты от Intel. Стоят они дороже, но это того стоит. Далее заказал GNSS приёмник и NTP сервер в одном корпусе: https://www.ozon.ru/product/v-m-z-d-setevoy-server-vremeni-ntp-dlya-gps-beidou-glonass-eu-plug-1861656135/ это https://fc-ntp-100.toimii.fi/

Далее выведем из него через SMA PPS. Также выводим из карты на SMA разъем SDP1 пин.

И соединяем их sma-sma патчкордом. 

Сам же NTP сервер подключаю в домашную сеть.

На первой машине что будет выступать у нас GM введем следующие команды:

Здесь не будет подробно всех команд, лишь те что дадут общее понимание

sudo ip addr add 192.168.100.1/24 dev enp6s0s

sudo ip link set dev enp6s0 up

sudo ts2phc -c enp6s0 -m -s generic --ts2phc.extts_correction 1 --ts2phc.extts_polarity "both" --ts2phc.pin_index 2 --ts2phc.pulsewidth 100000000 -l 6 &

sudo ptp4l -i enp6s0 -H -m

на второй выполните

sudo ip addr add 192.168.100.2/24 dev enp6s0s

sudo ip link set dev enp6s0 up

ptp_dev=`ethtool -T enp6s0 | awk '/PTP Hardware Clock:/ {print $4}'`

sudo ./testptp -d /dev/ptp$ptp_dev -L 1,2

sudo ./testptp -d /dev/ptp$ptp_dev -l

sudo ./testptp -d /dev/ptp$ptp_dev -p 1000000000

sudo ptp4l -i enp6s0 -s -H -m

На первой машине мы видим

ptp4l[1287.265]: selected /dev/ptp2 as PTP clock

ptp4l[1287.266]: port 1 (enp6s0): INITIALIZING to LISTENING on INIT_COMPLETE

ptp4l[1287.266]: port 0 (/var/run/ptp/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE

ptp4l[1287.266]: port 0 (/var/run/ptp/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE

ptp4l[1294.637]: port 1 (enp6s0): LISTENING to MASTER on ANNOUNCE_RECEIPT_TIMEOUT_EXPIRES

ptp4l[1294.637]: selected local clock 6805ca.fffe.517c3e as best master

ptp4l[1294.637]: port 1 (enp6s0): assuming the grand master role

На второй видим

ptp4l[1267.470]: selected /dev/ptp2 as PTP clock

ptp4l[1267.471]: port 1 (enp6s0): INITIALIZING to LISTENING on INIT_COMPLETE

ptp4l[1267.471]: port 0 (/var/run/ptp4l): INITIALIZING to LISTENING on INIT_COMPLETE

ptp4l[1267.471]: port 0 (/var/run/ptp4lro): INITIALIZING to LISTENING on INIT_COMPLETE

ptp4l[1271.637]: port 1 (enp6s0): new foreign master 6805ca.fffe.517c3e-1

ptp4l[1273.766]: selected local clock c46237.fffe.03168a as best master

ptp4l[1275.637]: selected best master clock 6805ca.fffe.517c3e

ptp4l[1275.637]: port 1 (enp6s0): LISTENING to UNCALIBRATED on RS_SLAVE

ptp4l[1277.637]: master offset -452930968 s0 freq +25567 path delay   -5465

ptp4l[1278.636]: master offset -452906105 s1 freq +50429 path delay   -5465

ptp4l[1279.637]: master offset   -5720 s2 freq +44709 path delay   -5465

ptp4l[1279.637]: port 1 (enp6s0): UNCALIBRATED to SLAVE on MASTER_CLOCK_SELECTED

ptp4l[1280.637]: master offset     -1 s2 freq +48712 path delay   -5465

ptp4l[1281.637]: master offset    -39 s2 freq +48674 path delay   -3706

ptp4l[1282.637]: master offset    1721 s2 freq +50422 path delay   -3706

ptp4l[1283.637]: master offset    -70 s2 freq +49147 path delay   -1912

ptp4l[1284.637]: master offset    540 s2 freq +49736 path delay   -1234

ptp4l[1285.637]: master offset    532 s2 freq +49890 path delay   -537

Строчки ниже о данных "master offset" говорят о успехе. Сделаем запись логов.


Хорошие результаты что не вышли за ± 50 nS

Какие проблемы обнаружил в ходе работ?
Пока о стабильности более 2 часов говорить нельзя. Есть проблемы и их природу я пока выясняю и планирую побороть, а также планирую дальше улучшать стабильность.


Report Page