PTP通信をするために、linuxptpをUbuntuにインストールしました。
ハードウェアタイムスタンプを使って、PTP通信することが可能です。
またソフトウェアタイムスタンプにも切り替えれる旨を紹介します。
linuxptpをUbuntuにインストールしてみた
Ubuntuにlinuxptpをインストールしました。下記コマンドで対応できます。
1 |
$ sudo apt install linuxptp |
LANカード(NIC)
ハードウェアタイムスタンプが可能なLANカード(NIC)を使用しています。
LANカードを増設!Linuxで認識したか確認してみた
Linux(Ubuntu)のデスクトップにLANカードを増設しました。
増設前と後でifconfigを行い、どのように認識されるのか確認しています。
PCへの取り付け方法含めて紹介します。
PTP Hardware Clock: 0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
$ ethtool -T enp4s0 Time stamping parameters for enp4s0: Capabilities: hardware-transmit (SOF_TIMESTAMPING_TX_HARDWARE) software-transmit (SOF_TIMESTAMPING_TX_SOFTWARE) hardware-receive (SOF_TIMESTAMPING_RX_HARDWARE) software-receive (SOF_TIMESTAMPING_RX_SOFTWARE) software-system-clock (SOF_TIMESTAMPING_SOFTWARE) hardware-raw-clock (SOF_TIMESTAMPING_RAW_HARDWARE) PTP Hardware Clock: 0 Hardware Transmit Timestamp Modes: off (HWTSTAMP_TX_OFF) on (HWTSTAMP_TX_ON) Hardware Receive Filter Modes: none (HWTSTAMP_FILTER_NONE) all (HWTSTAMP_FILTER_ALL) |
ptp4lのオプション
linuxptpをインストールすることで、ptp4lが使えるようになります。
(ptp4l…PTP通信ができるコマンド)
ヘルプのタイムスタンプ(Time Stamping)みると、ハードウェアがデフォルトになっています。
-H HARDWARE (default)
-S SOFTWARE
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
$ ptp4l --help ptp4l: unrecognized option '--help' usage: ptp4l [options] Delay Mechanism -A Auto, starting with E2E -E E2E, delay request-response (default) -P P2P, peer delay mechanism Network Transport -2 IEEE 802.3 -4 UDP IPV4 (default) -6 UDP IPV6 Time Stamping -H HARDWARE (default) -S SOFTWARE -L LEGACY HW Other Options -f [file] read configuration from 'file' -i [dev] interface device to use, for example 'eth0' (may be specified multiple times) -p [dev] PTP hardware clock device to use, default auto (ignored for SOFTWARE/LEGACY HW time stamping) -s slave only mode (overrides configuration file) -l [num] set the logging level to 'num' -m print messages to stdout -q do not print messages to the syslog -v prints the software version and exits -h prints this message and exits |
簡単なptp4lのテスト
LANカード(NIC)には何も接続していない状態です。
link down中ですが、タイムスタンプのオプションの違いを確認してみます。
Hardware Time Stamp
デフォルトのHardware Time Stampでのテストです。
PTPクロックが選択されていることが分かります。
ptp4l[628.972]: selected /dev/ptp0 as PTP clock
1 2 3 4 5 6 7 8 |
$ sudo ptp4l -m -i enp4s0 ptp4l[628.972]: selected /dev/ptp0 as PTP clock ptp4l[628.973]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[628.973]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[628.974]: port 1: link down ptp4l[628.974]: port 1: LISTENING to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED) ptp4l[628.974]: selected local clock 6cb311.fffe.529d82 as best master ptp4l[628.974]: assuming the grand master role |
Software Time Stamp
-Sのオプションを付けた、Software Time Stampでのテストです。
ハードウェアと違い、PTPクロックを選択したメッセージは無いことが分かります
1 2 3 4 5 6 7 |
$ sudo ptp4l -m -i enp4s0 -S ptp4l[912.628]: port 1: INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[912.628]: port 0: INITIALIZING to LISTENING on INIT_COMPLETE ptp4l[912.628]: port 1: link down ptp4l[912.628]: port 1: LISTENING to FAULTY on FAULT_DETECTED (FT_UNSPECIFIED) ptp4l[912.629]: selected local clock 6cb311.fffe.529d82 as best master ptp4l[912.629]: assuming the grand master role |
まとめ
linuxptpをインストールして、タイムスタンプについて少し確認してみました。
下記記事で、PTP対応のLANカードを使用した通信テストを紹介しています。
是非皆さまもPTP通信をテストしてみて下さい。
IEEE-1588/PTP対応のLANカード(NIC)を動かしてみた
IEEE-1588/PTP対応のLANカード(NIC)を動かしてみた
IEEE-1588/PTP対応のLANカード(NIC)を購入してみました。
実際にPCにカードを取り付けて、PTPの動作確認まで実施しています
LANカード(NIC)の選定から、PTP通信までの内容を紹介します。
コメント