GPS補足状況を確認しようと思ったので、取り敢えず、2ウインドウ表示して比較。
右がRaspberry Pi Zero 2 W(以下rx7pi)のGPSで、左が、ホームサーバーのRaspberry Pi 4のGPS。
GPSは、TOPGNSS GN803Gという製品で、2つ共同じなのだが、車載のrx7pi の方は、PRN194〜196のQZSSと、PRN300番台のGALILEOが表示されてない。
Ubuntu 20.04の gpsd-3.21 だと、QZSSが表示されているのは確認できているので、rasbian の gpsd-3.17だと対応していない疑惑。
Raspberry Pi 4の方は野良ビルドで、gpsd-3.24 を入れてあるので、rx7pi の方にも入れてやろう。
「Building GPSD from source」を参考にして、
1 2 |
noizumi@rx7pi:~/src $ wget http://download.savannah.gnu.org/releases/gpsd/gpsd-3.24.tar.gz noizumi@rx7pi:~/src $ tar xvzf gpsd-3.24.tar.gz |
If ‘scons’ fails, it is possible that your target system has moved to Python 3 and removed the program ‘python’. Python.org says that if you have an installed Python, there should be a program in your path called ‘python’. This is specified in PEP 394. This rule is not always followed. You can work around this by linking python3 to python like this
1 ln -s /usr/bin/python3 /usr/bin/python
python3 のシンボリックリンクを作成しろとの事だが、要はPATHが通ってる所なら良いので次のようにする。
1 2 3 4 5 6 7 |
noizumi@rx7pi:~/src $ echo $PATH /home/noizumi/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/games:/usr/games noizumi@rx7pi:~/src $ cd ~/bin noizumi@rx7pi:~/bin $ ln -s /usr/bin/python3 python noizumi@rx7pi:~/bin $ which python /home/noizumi/bin/python |
なぜか、 ln -s /usr/bin/python3 /home/noizumi/bin/python で作成できなかったので、ちょっとまだるっこしい事をやっている。
必要な開発用パッケージを入れるけど、gtk3 とか入れるとアホみたいにパッケージが入っちゃうし、gpsd と gpsmon、 cgps のテキストベースで使えれば良いので、次のものを入れた。
1 |
noizumi@rx7pi:~/bin $ apt-get install scons libncurses5-dev libdbus-1-dev libusb-1.0.0-dev |
1 2 |
noizumi@rx7pi:~/bin $ cd ../src/gpsd-3.24/ noizumi@rx7pi:~/src/gpsd-3.24 $ scons gpsd_user=gpsd gpsd_group=dialout |
1 2 3 4 5 6 |
WARNING: xgps and xgpsspeed are missing runtime dependencies Ensure your PYTHONPATH includes /usr/local/lib/python3/dist-packages/ WARNING: AsciiDoctor not found. WARNING: Some documentation and html will not be built. noizumi@rx7pi:~/src/gpsd-3.24 $ sudo ln -s /usr/local/lib/python3.7 /usr/local/lib/python3 |
python のライブラリのPATHは存在しないので、シンボリックリンクを張っておく。
そしてインストール
1 |
noizumi@rx7pi:~/src/gpsd-3.24 $ sudo scons install |
gpsd のビルドのページには、sudo scons udev-install とやれって書いてあるけど、既に gpsd-3.17のパッケージ入ってるし、そのままにしたいので、 install にしている。
一応、念の為、ちゃんと入ってるか確認。
1 2 |
noizumi@rx7pi:~/src/gpsd-3.24 $ which gpsd /usr/local/sbin/gpsd |
既定は prefix=/usr/local なので、全てそこにインストールされている。
1 |
noizumi@rx7pi:~/src/gpsd-3.24 $ sudo systemctl edit --full gpsd.service |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
[Unit] Description=GPS (Global Positioning System) Daemon Requires=gpsd.socket # Needed with chrony SOCK refclock After=chronyd.service [Service] Type=forking EnvironmentFile=-/etc/default/gpsd ExecStartPre=stty -F $DEVICES 115200 ExecStart=/usr/local/sbin/gpsd $GPSD_OPTIONS $DEVICES [Install] WantedBy=multi-user.target Also=gpsd.socket |
ExecStartのPATHを変更。
1 2 |
noizumi@rx7pi:~/src/gpsd-3.24 $ sudo systemctl daemon-reload noizumi@rx7pi:~/src/gpsd-3.24 $ sudo systemctl restart gpsd.service |
GALILEOは補足できてないけど、QZSSが補足できるようになった。
やっぱ、gpsd-3.17はQZSSに対応してなかったんだな。