Raspberry PiとGPS受信機を使ったNTPサーバが無事に動いたので,
小型衛星の運用局に設置してきました.
自作のublox基板を使う予定だったのですが,ケースに納まるように,
市販のキットを購入しました.
habsupplies: Raspberry Pi GPS Addon Board
2機の小型衛星を同時に運用していますが,運用局サーバはそれぞれ
独立しているため,NTPサーバも2台準備します.
ケースはRSオンラインで購入しました.高さ方向に余裕があり,
GPS受信機基板を納めるのに丁度良いです.
RSオンライン: Raspberry Pi Type B ケース
アンテナのケーブルを通すために,LANとUSBポートの間の仕切りを
カットしました.ケースの素材も柔らかく,加工は簡単です.
SDカードに書き込んだRaspbianのIPアドレスは,デフォルトでDHCPと
なっているので,これを固定IPに変更します.
$ sudo emacs /etc/network/interfaces
設定ファイルのiface eth0 inet dhcpのラインを,例えば以下のように
書き換えます.
iface eth0 inet static
address 192.168.2.15
netmask 255.255.255.0
gateway 192.168.2.1
これでRaspberry Pi側の準備は整いました.運用局のLANに接続します.
ところが,設定した固定IPにSSHでログインしてntpqで動作を確認したところ,
サーバ名の先頭に何も記号が表示されず,いつまで経っても同期しません.
どうやら一旦電源を落としたため,Raspberry Piのクロックが現在時刻とは
大きく異なる値に初期化されているようです.そこで,クライアントの時刻を
dateコマンドで設定し直します.
$ sudo date --set 2014-08-28
$ sudo date --set 15:33:27
ntpdを再起動してしばらく待つと,GPS受信機のNMEAとPPSに同期できました.
同様に,運用局サーバからも,ntpdateで時刻を設定することができました.
$ sudo ntpdate 192.168.2.15
このとき,ntpdが動作しているとthe NTP socket is in use, exitingという
エラーが表示されます.この場合は,一旦ntpdを停止させます.
$ sudo /etc/init.d/ntpd stop
これで運用局サーバでもntpdで時刻同期ができるかと思ったのですが,
どうも上手く動いてくれません.ntp.confの設定がどこか間違っていると
思うのですが,いまのところ原因不明です.
接続しているNTPサーバはどうせ1台なので,デーモンを常駐させるより,
cronで定期的にntpdateを実行した方が良いのかな?
【追記】しかし,habsuppliesのGPS基板は,ちょっと高い.
1ポンドが170円くらいだから,約6,800円.
Aliexpressで格安のNEO-6Mが1,000円以下で購入できるので,
自作した方が安かったな.
NEO-6Mなら,unofficialなコマンドでrawデータも出力できるし,
RTKLIBでも楽しめそうだ.
【追記2】基板を作ることになったら,I2C接続のRTCも搭載しよう.
小型衛星の運用局に設置してきました.
自作のublox基板を使う予定だったのですが,ケースに納まるように,
市販のキットを購入しました.
habsupplies: Raspberry Pi GPS Addon Board
2機の小型衛星を同時に運用していますが,運用局サーバはそれぞれ
独立しているため,NTPサーバも2台準備します.
ケースはRSオンラインで購入しました.高さ方向に余裕があり,
GPS受信機基板を納めるのに丁度良いです.
RSオンライン: Raspberry Pi Type B ケース
アンテナのケーブルを通すために,LANとUSBポートの間の仕切りを
カットしました.ケースの素材も柔らかく,加工は簡単です.
SDカードに書き込んだRaspbianのIPアドレスは,デフォルトでDHCPと
なっているので,これを固定IPに変更します.
$ sudo emacs /etc/network/interfaces
設定ファイルのiface eth0 inet dhcpのラインを,例えば以下のように
書き換えます.
iface eth0 inet static
address 192.168.2.15
netmask 255.255.255.0
gateway 192.168.2.1
これでRaspberry Pi側の準備は整いました.運用局のLANに接続します.
ところが,設定した固定IPにSSHでログインしてntpqで動作を確認したところ,
サーバ名の先頭に何も記号が表示されず,いつまで経っても同期しません.
どうやら一旦電源を落としたため,Raspberry Piのクロックが現在時刻とは
大きく異なる値に初期化されているようです.そこで,クライアントの時刻を
dateコマンドで設定し直します.
$ sudo date --set 2014-08-28
$ sudo date --set 15:33:27
ntpdを再起動してしばらく待つと,GPS受信機のNMEAとPPSに同期できました.
同様に,運用局サーバからも,ntpdateで時刻を設定することができました.
$ sudo ntpdate 192.168.2.15
このとき,ntpdが動作しているとthe NTP socket is in use, exitingという
エラーが表示されます.この場合は,一旦ntpdを停止させます.
$ sudo /etc/init.d/ntpd stop
これで運用局サーバでもntpdで時刻同期ができるかと思ったのですが,
どうも上手く動いてくれません.ntp.confの設定がどこか間違っていると
思うのですが,いまのところ原因不明です.
接続しているNTPサーバはどうせ1台なので,デーモンを常駐させるより,
cronで定期的にntpdateを実行した方が良いのかな?
【追記】しかし,habsuppliesのGPS基板は,ちょっと高い.
1ポンドが170円くらいだから,約6,800円.
Aliexpressで格安のNEO-6Mが1,000円以下で購入できるので,
自作した方が安かったな.
NEO-6Mなら,unofficialなコマンドでrawデータも出力できるし,
RTKLIBでも楽しめそうだ.
【追記2】基板を作ることになったら,I2C接続のRTCも搭載しよう.