PiにGPSモジュールを接続して、起動時に時刻を合わせる設定を行いました。Pi起動時にGPSで現在時刻を設定(1PPS対応)別の方法として、PPSに対応したNTPデーモンをリビルドする方法を記録しておこうと思います。+マザーボードNTPサーバということで、遅延のない通信が必要になります。Wi-Fiでは正確な時刻の同期が難しいようです。Pi本体は、有線のLAN端子があるものを選択します。GPSモジュールこちらの記事の、GPSモジュールを使用させて頂きました。記事の内容に沿って、GPSを接続し、初期設定を済ませます。Raspbianのインストールから始める場合は、よろしければこちらの記事を御覧ください。Pi+GPSモジュールを窓際など、空が見える位置に設置する必要があります。Piへの電源の供給が可能になります。窓際に電源(コンセント)が無くても設置が可能になります。Piで作成致しました。NTPサーバにPoEによる影響がどの程度及ぶか、jitterやoffset等の数値から評価が可能かと思います。NTPインストール(gpsd共有メモリー版)こちらの記事の「NTPでシステム時刻をGPSと同期」の内容に従い、NTPのインストールを行います。Pi起動時にGPSで現在時刻を設定(1PPS対応)PPSに対応したNTPのビルド直接PPSの入力に対応するため、NTPパッケージをビルドする必要があります。こちらの記事は、apt-srcコマンドを使って、実際にPPSに対応したNTPのビルド手順になります。piにてapt-srcでパッケージをビルドするには手順の5番、ビルド前にdebian/rulesファイルを編集して./configureオプションに「–enable-ATOM」を追加します。ビルド後、ntpdバイナリを/usr/sbinへコピーしました。PPS対応のNTP設定変更/dev/pps0のパーミッション変更ppsのパーミッションは、こちらの記事の内容を参考にさせて頂きました。UserRaspbianのntpデーモンは、ntpユーザ(ntpグループ)権限で実行されるようです。ntpユーザが/dev/pps0を使用できるように、udevのルールファイルを作成しました。/etc/udev/rules.d/10-pps.rulesファイルを作成します。/etc/udev/rules.d/10-pps.rules次の内容になります。MODE=="0660"再起動すると、/dev/pps0デバイスのグループとモードが変わり、ntpグループからアクセス可能になります。ntpd実行ユーザ/グループの確認ntpの実行ユーザ/グループが、/etc/passwdと/etc/groupに合っているか確認しました。113:117オプションで起動しています。ユーザIDが113、グループIDが117のようです。passwdファイルの113:117と、groupファイルの117で整合が取れていれば問題ありません。実は、最初groupファイルは118になっていて、整合が取れていませんでした。117に書き換えて正しいグループでntpdが起動するようにしました。ntp.conf変更ntp.confの内容は、Raspbianフォーラムの内容を参考にさせて頂きました。Forums2点、変更があります。pps付きのgpsd共有メモリー(127.127.28.2)をpreferに設定、さらにNTPサーバとして使用するためristinct行を追加しました。/etc/ntp.conf以下の内容になります。255.255.255.0」の行は、NTPサーバを公開するネットワークに合わせて変更して下さい。enable以上で設定完了です。systemctlにてNTPを再起動しました。ntpstat5秒おきに実行してみました。-crv;"実は、最初はNTPサーバに100msec程度の誤差が生じておりました。/etc/ntp.confを修正し、time1を追加して時刻のズレを補正してみました。その結果、インターネット上の高精度なNTPサーバと同じ桁数までoffsetやjitterが改善されたようです。他のNTPサーバを無効にする設定Raspbian他のNTPサーバを無効にする設定は、Raspbianの場合、/etc/dhcpcd.confを編集しました。ntp_servers」行を無効にしました。29NTPクライアントはFedoraで確認しました。<NTPサーバのIPアドレス>pool行を無効にしました。NTPが同期しない場合どうやら、gpsdよりも先にntpdが起動してしまうと、同期に失敗する場合があるようです。いつまで経っても同期しない場合、ntpを再起動する必要があるようです。ntp改善の余地がありますね。ノイズの影響?※19.4.1追記:何日か動かしていたところ、GPSモジュールが衛星を補足しなくなる場合がありました。GPSの電波がうまく受信できない可能性があるため、次の対策を行いました。Wi-FiとBluetoothをOFF。Pi本体と、GPSモジュールの距離を離す。対策後は再度、衛星を補足するようになりましたが、何かノイズ等の影響が考えられそうです。PiのNTPサーバを構築してみました。PoEにより、窓際への配線がLANケーブル1本で行えるため、手軽に設置することができました。NTPのリビルドが必要でしたが、apt-srcコマンドを使用することで、比較的楽にビルドすることができました。NTPサーバの精度は、最初100msec程度の誤差が生じていましたが、ntp.confに時刻のズレを補正する設定を行い、改善することができました。クロックデバイスとして、NTPをリビルドして直接PPSを使うか、gpsdの共有メモリを使うか、どちらが良いかは、(gpsdにPPSを入力しているため)同じ程度の精度のようです。リビルドは不要かもしれません?NTPパケットによるネットワークの負荷が、どの程度なのかはよくわかりませんが、ネットワーク帯域を消費していることは確かかと思います。Piはファンレスで消費電力も小さいかと思います。家庭用またはインターネットが使用できない環境で、NTPサーバとして使用するのも良い感じが致しました。開発者キットにシリアルコンソールを接続する場合の、配線や設定を記録しておきたいと思います。シリ...記事を読む電動雲台をWebブラウザからウニョウニョ操作するにはサーボモーターを2つ使った、2軸の電動雲台を。3.0接続のHDDを取り付けて、静音・コンパクトなNASを作成しようと思います。※17.12.13記事を更新しました。3でNextcloudサーバを構築したいと思います。Wi-Fiアダプタを挿して、電源ケーブルのみで運用されている方も多いと思いますが。28がリリースされました。最新記事はこちらになります。PiにRocket.Chatサーバをインストールしました。Pi学習リモコンを操作するにはスマートフォンで学習リモコンを操作して、エアコンやスピーカー等の機器をコントロールしたいと思います。コメントをキャンセルメールアドレスが公開されることはありません。*サイト上に表示された文字を入力してください。