Linux 環境でのデュアル センサー PTP 同期シナリオに焦点を当てたこれまでの説明に基づいて、Linux システムで PTP 精度を最適化するには、カーネル、ドライバ、サービスに対処する必要があります。{0}次の手順に従います。
I. カーネル層の最適化 (基本的な前提条件)
高精度タイマーを有効にする-
カーネル設定で「CONFIG_HIGH_RES_TIMERS=y」と「CONFIG_NO_HZ_IDLE=y」が有効になっていることを確認して、クロック割り込み干渉を減らし、タイムスタンプ マーキングのリアルタイム パフォーマンスを向上させます。-
CPUコアの分離
ブート パラメータ `grub.cfg` に `isolcpus=1` を追加して、PTP サービスを独立した CPU コアにバインドし、他のプロセスがリソースをプリエンプトしてスケジュール遅延を引き起こすのを防ぎます。
II.ドライバーとハードウェア層の適応
専用ドライバーをロードする
一般的なパブリック ドライバをアンインストールし、ネットワーク カード メーカー(Intel IGB など)が提供する PTP{0}} 固有のドライバをインストールします。 `modprobe ptp`を実行してPTPカーネルモジュールをロードします。
ハードウェアノードの検証
「/dev/ptp0」が存在し、「ethtool -T eth0」が「HARDWARE」フィールドを出力して、ハードウェアのタイムスタンプが有効であることを確認します。
Ⅲ. PTP サービスの微調整-
`ptp4l.conf`を編集します
「transportSpecific」を 1 に設定し、「twoStepFlag」を 1 に有効にし、監視のために「logging_level」を 6 に設定し、同期間隔を「logSyncInterval -3」(125ms) に設定します。
システムクロックを同期する
「phc2sys -s /dev/ptp0 -w」を実行して PHC ハードウェア クロックをシステム クロックに同期させ、アプリケーション層が高精度の時刻を取得できるようにします。-
IV.ネットワークスタックの最適化
「sysctl -w net.core.netdev_budget=600」を実行して、ネットワーク パケット処理バジェットを増やし、ソフト割り込みレイテンシを短縮し、同期オフセットをさらに安定させます。

