Slide 1

Slide 1 text

スマホのGPSを スマホのGPSを Linuxで使いたい Linuxで使いたい Kenichiro Matohara(matoken) 1 / 23

Slide 2

Slide 2 text

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

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

過去の関連しそうな発表 過去の関連しそうな発表 小江戸らぐ第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

Slide 6

Slide 6 text

対象の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

Slide 7

Slide 7 text

GPS Tetherでネットワーク経由で GPS Tetherでネットワーク経由で GPS共有を試みる GPS共有を試みる 「Setting」→「Enable NMEA WiFi Sharing」をOn 「Sharing」→「WiFi Hotspot Sharing」をOn ※WiFi Hotspotとなっているが同じネットワークなら通常のWiFiや USB経由でもOKだった 7 / 23

Slide 8

Slide 8 text

8 / 23

Slide 9

Slide 9 text

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

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

GPSdの導入 GPSdの導入 $ sudo apt install gpsd gpsd-clients gpsd-tools 11 / 23

Slide 12

Slide 12 text

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

Slide 13

Slide 13 text

gpsd 確認 gpsd 確認 13 / 23

Slide 14

Slide 14 text

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

Slide 15

Slide 15 text

gpsmon gpsmon $ gpsmon 15 / 23

Slide 16

Slide 16 text

xgps xgps $ xgps & 16 / 23

Slide 17

Slide 17 text

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

Slide 18

Slide 18 text

ウェブブラウザでも使いたい ウェブブラウザでも使いたい Firefox がGPSd に対応していそうだけどうまく行かない? --enable-gpsd を有効にしてある必要があるよう about:buildconfig を確認すると入っていない(Debian bullseye/sid の esr, Mozilla版 Fx 90 Linux x86_64 binary) 要セルフビルド……disk fullにまた今度 Chromium 不明 18 / 23

Slide 19

Slide 19 text

雑に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

Slide 20

Slide 20 text

別解:拡張機能利用 別解:拡張機能利用 位置情報を大雑把にしたり,固定座標を指定してプライバシー を守る とりあえず自宅付近の座標に固定  Firefox以外でも任意の位置情報を指定するなら gpsfakeでダミ ーデータを指定してgpsdを起動しても良さそう Location Guard – 🦊 Firefox (ja) 向け拡張機能を入手 20 / 23

Slide 21

Slide 21 text

別解:WWAN model + 別解:WWAN model + ModemManager ModemManager GPS対応WWAN モデムがあれば利用できるらしい.手元のマシン には乗っていないので未確認. ウェブブラウザで利用できるかは不明 $ mmcli -m 0 --location-status error: couldn't find modem 21 / 23

Slide 22

Slide 22 text

まとめ まとめ GEO IPだと実際の地理座標と全然違う場所にされたりして辛い Androidの位置情報をネットワーク経由でLinuxへ転送して利用でき た USB等のGPSモジュールでも行けるはず ウェブブラウザのFirefoxではbuildが必要らしいので要確認 とりあえず拡張機能で回避 22 / 23

Slide 23

Slide 23 text

奥付 奥付 発表 20210724(sat) 発表者 利用ソフトウェア ライセンス CC BY-NC-SA 4.0 東海道らぐ 夏みかんオンラインLT大会 Kenichiro Matohara(matoken) Asciidoctor Reveal.js 23 / 23