ユーザ用ツール

サイト用ツール


サイドバー

目次

ホーム










.

knowledge:ptp-linux


LinuxでPTPを使い、正確な時刻にする(ハードウェアタイムスタンプ)

LinuxでPTPを利用する方法

再起は、linuxptp(ptp4l)が一般的に使われています。
RedHatの最近のマニュアルでも詳しく書かれています。

パッケージ名デーモン名 説明
linuxptp ptp4l ハードウェアタイムスタンプ対応
ptpd, ptpd2 ptpd, ptpd2 ハードウェアタイムスタンプ非対応


PTPを利用するための知識

ハードウェアタイムスタンプ

ハードウェアタイムスタンプは、一部の NIC(Network Interface Controller)でサポートされている機能です。
送受信されるパケットの正確なタイムスタンプを提供します。
ハードウェアのタイムスタンプを有効にしていると、パケットがリンク層または物理層に出入りする際に、NIC 独自のクロックを使用してタイムスタンプを生成します。

ハードウェアタイムスタンプのサポートしているNICか確認

~]# ethtool -T eth0

Timestamping parameters for eth0:
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)
        ptpv1-l4-sync         (HWTSTAMP_FILTER_PTP_V1_L4_SYNC)
        ptpv1-l4-delay-req    (HWTSTAMP_FILTER_PTP_V1_L4_DELAY_REQ)
        ptpv2-l4-sync         (HWTSTAMP_FILTER_PTP_V2_L4_SYNC)
        ptpv2-l4-delay-req    (HWTSTAMP_FILTER_PTP_V2_L4_DELAY_REQ)
        ptpv2-l2-sync         (HWTSTAMP_FILTER_PTP_V2_L2_SYNC)
        ptpv2-l2-delay-req    (HWTSTAMP_FILTER_PTP_V2_L2_DELAY_REQ)
        ptpv2-event           (HWTSTAMP_FILTER_PTP_V2_EVENT)
        ptpv2-sync            (HWTSTAMP_FILTER_PTP_V2_SYNC)
        ptpv2-delay-req       (HWTSTAMP_FILTER_PTP_V2_DELAY_REQ)




ptp4l(PTP for Linux)

ptp4lインストール

~]# yum install linuxptp

ptp4l と phc2sysがインストールされます

ptp4l ハードウェアタイムスタンプでは PTP ハードウェアクロックのマスタークロックとの同期に使用され、ソフトウェアタイムスタンプではシステムクロックのマスタークロックとの同期に使用されます。
phc2sys システムクロックを NIC 上の PTP ハードウェアクロック (PHC) と同期するために使用されます。

システムクロックの時間を設定するサービス
システムクロックの時間を設定するサービスは、1つを利用します。

  • phc2sys
  • chronyd
  • ntpd

ptp4lの手動設定

~]# ptp4l -i eth3 -m
~]# ptp4l -i eth3 -m -S   <- -Sで、ソフトウェアタイムスタンプを有効
~]# ptp4l -i eth1 -m -S -s    <-  -s スレーブモード


ptp4l をサービス設定

/usr/lib/systemd/system/ptp4l.serviceで設定する場合

[Unit]
Description=Precision Time Protocol (PTP) service

[Service]
Type=simple
EnvironmentFile=-/etc/sysconfig/ptp4l
ExecStart=/usr/sbin/ptp4l -i eth1 -m
ExecStop=/bin/pkill -f ptp4l

[Install]
WantedBy=multi-user.target


ハードウエアタイムスタンプ機能を利用した従属クロック

/etc/sysconfig/ptp4l

OPTIONS="-f /etc/ptp4l.conf -i ethX"

/etc/ptp4l.conf

OPTIONS="-s eth1 -w"


ソフトウエアタイムスタンプ機能を利用した従属クロック

/etc/sysconfig/ptp4l

OPTIONS="-f /etc/ptp4l.conf -i ethX"

/etc/ptp4l.conf

変更なし


pp4l サービスの起動

~]# systemctl start ptp4l  <- 起動
~]# systemctl enable ptp4l <- OS起動時にptp4lサービスを起動させる




phc2sysによるシステムクロックの同期

phc2sys を使用することで、システムクロックをネットワークカードに搭載された PTP ハードウエアクロック (PHC) に同期させることができます。
システムクロックは スレーブ 、ネットワークカード側は マスター として動作することになります。

phc2sysの手動実行

phc2sys -s eth0 -w

phc2sysサービス

/etc/sysconfig/phc2sy

systemctl disable chronyd
systemctl stop chronyd

systemctl start phc2sys
systemctl enable phc2sys


chronyでハードウェアタイムスタンプを利用

/etc/chrony.conf

hwtimestamp eth0
hwtimestamp eth1

もしくは

hwtimestamp *

1 秒のポーリング間隔を使用してローカルの NTP サーバーを指定

server ntp.local minpoll 0 maxpoll 0


メモ

正確なファイルのタイムスタンプを表示(ls --full-time)

[user1@server log]$ cd /etc
[user1@server etc]$ ls --full-time
合計 1696
-rw-r--r--.  1 root root     5090 2016-02-17 00:08:39.000000000 +0900 DIR_COLORS
-rw-r--r--.  1 root root     5725 2016-02-17 00:08:39.000000000 +0900 DIR_COLORS.256color
-rw-r--r--.  1 root root     4669 2016-02-17 00:08:39.000000000 +0900 DIR_COLORS.lightbgcolor
-rw-r--r--.  1 root root       94 2015-04-29 23:30:23.000000000 +0900 GREP_COLORS
-rw-r--r--   1 root root      842 2014-06-10 07:39:58.000000000 +0900 GeoIP.conf
-rw-r--r--   1 root root      858 2014-06-10 07:39:58.000000000 +0900 GeoIP.conf.default
drwxr-xr-x.  7 root root     4096 2015-12-24 14:03:25.977000000 +0900 NetworkManager
drwxr-xr-x.  5 root root       54 2019-05-06 21:51:45.166047275 +0900 X11
drwxr-xr-x.  3 root root       97 2015-12-24 14:03:21.634000000 +0900 abrt
-rw-r--r--.  1 root root       16 2015-12-24 14:05:52.501000000 +0900 adjtime
-rw-r--r--.  1 root root     1518 2013-06-07 23:31:32.000000000 +0900 aliases
-rw-r--r--.  1 root root    12288 2015-12-24 14:12:21.701000000 +0900 aliases.db
drwxr-xr-x.  2 root root     4096 2016-02-17 13:42:36.459000000 +0900 alternatives
(略)





参考


knowledge/ptp-linux.txt · 最終更新: 2020/08/31 18:33 by kurihara

ページ用ツール