Upgrade to Pro — share decks privately, control downloads, hide ads and more …

スマホのGPSをLinuxで使いたい

 スマホのGPSをLinuxで使いたい

E567a535ddc7964130dd086f147a7682?s=128

Kenichiro MATOHARA

July 24, 2021
Tweet

Transcript

  1. スマホのGPSを スマホのGPSを Linuxで使いたい Linuxで使いたい Kenichiro Matohara(matoken) <maroken@kagolug.org> 1 / 23

  2. 鹿児島の右の方から参加 好きなLinuxディストリビューションはDebian お仕事募集 mailto:work@matohara.org Kenichiro Matohara(matoken) Kenichiro Matohara(matoken) https://matoken.org https://matoken.org

    2 / 23
  3. 最近の発表とか 最近の発表とか 小江戸らぐ次回 08/14(sat) 鹿児島らぐ次回 08/29(sun) 「NotePC(ThinkPad T430s)の温度を下げたい」 Linuxがメモリ不足で固まるのを回避する 3

    / 23
  4. スマホのGPSをLinuxで使いたい スマホのGPSをLinuxで使いたい ウェブブラウザなどで位置情報が実際の場所とかけ離れた場所に なってしまう 浜松だったり,大阪だったり,東京だったり GEO IP 少し面倒(地図や近いサーバの指定など) Androidの位置情報を参照できないか? 4

    / 23
  5. 過去の関連しそうな発表 過去の関連しそうな発表 小江戸らぐ第64 回(20091113) オフラインのLinuxBoxに電波時計を接続してntpd 小江戸らぐ第71回(20080614) GPSログと写真の連携 Raspberry Pi +

    serial GPS でロギング & Androidで利用 今回はAndroidのGPSをLinuxで使う 「Pukiwiki コメントスパム対策 / 電波時計で NTP」 「GPS で色々遊ぶ」 「技適なBluetooth GNSS/GPSレシーバーをRaspberryPiで作りたい」 東海道らぐ 秋の大阪LT大会 in KOF 20141108 5 / 23
  6. 対象のAndroidスマートフォン 対象のAndroidスマートフォン スマートフォン Rakuten mini(Android 9, 対応衛星?) 位置情報の精度はスマートフォンの中でも悪いらしい アプリケーション 2.1.1(Android

    4.2+) Bluetooth or Network経由でGPSを共有 ※Updated September 14, 2016 と少し古い感じ GPS Tether - Apps on Google Play 6 / 23
  7. GPS Tetherでネットワーク経由で GPS Tetherでネットワーク経由で GPS共有を試みる GPS共有を試みる 「Setting」→「Enable NMEA WiFi Sharing」をOn

    「Sharing」→「WiFi Hotspot Sharing」をOn ※WiFi Hotspotとなっているが同じネットワークなら通常のWiFiや USB経由でもOKだった 7 / 23
  8. 8 / 23

  9. PC側での確認 PC側での確認 NMEAぽいデータは来ていそう $ nc 192.168.68.103 10110 | head 31.2529315:130.8509573:15.436:43.53451:209.1669118826239:0.025754472:1627078102162

    $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSA,A,1,,,,,,,,,,,,,,,*1E $GPGSA,A,1,,,,,,,,,,,,,,,*1E ^C 9 / 23
  10. LinuxでGPSdを利用する LinuxでGPSdを利用する 定番のGPSデーモン.複数のアプリケーションから参照できるように なる.(Firefoxに対応しているよう!) GPSd — Put your GPS on

    the net! Applications that presently use gpsd include Kismet, GpsDrive, gpeGPS, roadmap, roadnav, navit, viking, tangogps, foxtrot, obdgpslogger, geohist, LiveGPS, geoclue, qlandkartegt, gpredict, OpenCPN, gpsd- navigator, gpsd-ais-viewer, and firefox/mozilla. 10 / 23
  11. GPSdの導入 GPSdの導入 $ sudo apt install gpsd gpsd-clients gpsd-tools 11

    / 23
  12. gpsdの設定 gpsdの設定 /etc/default/gpsd の DEVICES にAndroidのアドレスとポートを指定 デーモンを起動し直す DEVICES="tcp://192.168.68.103:10110" $ sudo

    service gpsd stop $ sudo service gpsd start 12 / 23
  13. gpsd 確認 gpsd 確認 13 / 23

  14. gpspipe gpspipe $ gpspipe -w -n 5 {"class":"VERSION","release":"3.22","rev":"3.22","proto_major":3,"proto_minor":14} {"class":"DEVICES","devices":[{"class":"DEVICE","path":"tcp://192.168.68.103:10110","driver":"N {"class":"WATCH","enable":true,"json":true,"nmea":false,"raw":0,"scaled":false,"timing":false,

    {"class":"SKY","device":"tcp://192.168.68.103:10110","hdop":1.20,"nSat":5,"uSat":0,"satellites {"class":"SKY","device":"tcp://192.168.68.103:10110","hdop":1.20,"nSat":6,"uSat":0,"satellites 14 / 23
  15. gpsmon gpsmon $ gpsmon 15 / 23

  16. xgps xgps $ xgps & 16 / 23

  17. 問題 問題 Android画面消灯するとデータが流れなくなる Onにするとデータが流れ出す(GPSd操作不要) USB給電時には画面消灯でも流れる Androidのipアドレスが変わると設定変更が必要 17 / 23

  18. ウェブブラウザでも使いたい ウェブブラウザでも使いたい Firefox がGPSd に対応していそうだけどうまく行かない? --enable-gpsd を有効にしてある必要があるよう about:buildconfig を確認すると入っていない(Debian bullseye/sid

    の esr, Mozilla版 Fx 90 Linux x86_64 binary) 要セルフビルド……disk fullにまた今度 Chromium 不明 18 / 23
  19. 雑にGPSの座標をウェブブラウ 雑にGPSの座標をウェブブラウ ザで確認 ザで確認 $ tpv=$(gpspipe -w -n 100 |

    grep -m 1 TPV | cut -d, -f4,6-8,13) $ latitude=$(echo $tpv | cut -d, -f3 | cut -d: -f2) $ longitude=$(echo $tpv | cut -d, -f4 | cut -d: -f2) $ xdg-open "http://www.openstreetmap.org/#map=9/${longitude}/${latitude}" 19 / 23
  20. 別解:拡張機能利用 別解:拡張機能利用 位置情報を大雑把にしたり,固定座標を指定してプライバシー を守る とりあえず自宅付近の座標に固定  Firefox以外でも任意の位置情報を指定するなら gpsfakeでダミ ーデータを指定してgpsdを起動しても良さそう Location

    Guard – 🦊 Firefox (ja) 向け拡張機能を入手 20 / 23
  21. 別解:WWAN model + 別解:WWAN model + ModemManager ModemManager GPS対応WWAN モデムがあれば利用できるらしい.手元のマシン

    には乗っていないので未確認. ウェブブラウザで利用できるかは不明 $ mmcli -m 0 --location-status error: couldn't find modem 21 / 23
  22. まとめ まとめ GEO IPだと実際の地理座標と全然違う場所にされたりして辛い Androidの位置情報をネットワーク経由でLinuxへ転送して利用でき た USB等のGPSモジュールでも行けるはず ウェブブラウザのFirefoxではbuildが必要らしいので要確認 とりあえず拡張機能で回避 22

    / 23
  23. 奥付 奥付 発表 20210724(sat) 発表者 利用ソフトウェア ライセンス CC BY-NC-SA 4.0

    東海道らぐ 夏みかんオンラインLT大会 Kenichiro Matohara(matoken) Asciidoctor Reveal.js 23 / 23