gpsdの長年の疑問解決

gpsdというgpsのデータを流してくれるプログラムがあるのだが、起動オプションに-G を付ければ、あらゆるネットワークインターフェースで受け付けしてくれるはずだった。

しかし、Debian 7あたりから外部から接続できなくなった。
どうやら systemd が余計な事をしてくれていて、ローカルホスト以外を受け付けないように邪魔しているようなのだが、新しく導入されたシステムなので解決方法が分からなかった。

今日、検索してやっと解決方法を見つけた

But we aren’t there yet. gpsd may be listening on all interfaces, but systemd’s hold on the socket means gpsd can’t hear anything on interfaces other than the loopback. We have to tell systemd to allow gpsd to hear other interfaces. We run systemctl edit --full gpsd.socket. Then we can edit it. After editing, the [Socket] stanza looks like so:

When you are done editing, systemctl does what it needs to do internally to preserve your changes from being over-written during upgrades. It also does the equivalent of a systemctl daemon-reload for you.

We now restart both gpsd units like so:

こんなもんわかるかボケ!

これでやっとデスクトップマシンの地図表示プログラムで、サーバーからデータを取得してGPSの現在位置を表示できる。

自宅固定だからほぼ動かないけど、測定誤差でふらふら動くから結構おもしろい。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください