Linux RTターゲットをNTP(Network Time Protocol)サーバと同期する

更新しました Mar 25, 2021

Linux Real-Time OS搭載のデバイス(例:CompactRIO)にてクロックドリフトが起きています。時間をNetwork Time Protocol(NTP)Serverと同期させたいです。どうすればよいですか?

Linux Real-Time OS搭載のデバイスでNTPを使用するには、ターゲットへのSSHセッションを使用して、ターゲットにNTPソフトウェアをインストールして構成する必要があります。これらの手順はすべてのLinux Real-Timeターゲットに適用されますが、cRIO-904xやcRIO-905xなどのTSN対応デバイスを使用している場合は、以下の「追加情報」セクションの注記をお読みください。
  1. Linux Real-Timeターゲットがインターネットに接続されていることを確認します。これを行う簡単な方法は、ホストPCとターゲットの両方をインターネットに接続されているネットワークスイッチに接続することです。
  2. NI Linux Real-Timeデバイスでシェルにアクセスします。
  3. ターゲットへのログインを求められたら、ユーザー名とパスワードを入力します。
  4. SSHセッションがLinuxReal-Timeターゲットに対して開かれたら、次のコマンドラインを入力してNTPソフトウェアをインストールします。
    opkg update
    opkg install ntp ntp-tickadj ntp-utils
  5. これで、NTPソフトウェアがインストールされ、バックグラウンドで実行されます。上記のコマンドの更新またはインストールに失敗した場合は、デバイスがインターネットに接続されていることを確認します。
  6. 次に、選択したNTPサーバーを指すようにNTP構成ファイルを設定する必要があります。ローカルネットワーク上のNTPサーバーを使用することも、公開されているNTPサーバーを使用することもできます。この例では、time.natinst.govサーバーに接続する方法を示します。
    1. セッションが開いていない場合は、ターゲットへの新しいSSHセッションを開きます。
    2. 次のコマンドを実行して、NTP構成ファイルを開きます。
      vi /etc/ntp.conf
  7. ntp.confファイルがLinuxviテキストエディタで開かれます。
  8. iを押し、編集モードに入ります。
  9. キーボードの矢印でカーソルを移動します。 server <サーバーURLまたはIPアドレス>の形式でサーバー名の行を追加します。それぞれを独自の行に配置することにより、このファイルに複数のサーバーを追加できます。 /etc/ntp.confの構成についてさらにヘルプが必要な場合は、Web上に多数のガイドがあります。
  10. ファイルは下記図のようになります。
  11. ESCキーを押して、ファイルの編集モードを終了します。
  12. 次のように入力して、NTP構成ファイルを保存して終了します。
    :wq
  13. Linux Real-Timeターゲットを再起動します。ターゲットは、構成ファイルで指定したサーバーとの同期を開始する必要があります。 NTPは時間をゆっくりと調整するため、ターゲットシステム時間とNTPサーバー時間の間のスキューが最小化されるまでに時間がかかる場合があることに注意してください。
  14. 次のコマンドを実行してサーバーにクエリを実行することにより、NTPサーバーへの接続をテストできます。
    ntpq -p
 

追加情報

  • このソリューションは、Real Timeモジュール14.0以上Linux Real Timeターゲットで動作します。Real Timeモジュール13.1以前のバージョンで動作するには、次のNIフォーラムの投稿に記載されているサードパーティのインストールソースを構成する必要があります: Installing and Configuring NTP on NI Linux Real-Time Devices
  • 構成ファイルはOSレベルで機能するため、Replication and Deployment(RAD)Utility を使用してコピーすると、NTPサーバーのセットアップがRTイメージに含まれます。
  • cRIO-904xや905xなどのTSN対応ターゲットでNTPを使用するには、LinuxOSの時刻をネットワークの時刻と非同期にする必要があります。そうしないと、時間が2つのソースから駆動され、同期品質が低下するか、使用できなくなります。 Linux OSの時刻をネットワーク時刻から非同期にするには、NI-Sync20.1が必要です。同期をオフにする方法の詳細と手順については、こちらのドキュメント の手順に従ってください。