私は、以前GPSとしてμpodを購入しました。そして最近(といっても多分二ヶ月ぐらい前)、EMOBILEのD01NXIIを購入しました。
上記二つに関して、気づいた点と相性について記述したいと思います。ただ、記憶を元に記述しているため、間違い等があるかもしれませんがご了承ください。
まずμpodについて気づいたことを記述したいと思います。
μpodをqgmapやZegaで使用したとき、Zegaのページを参考にさせていただきましたが、タイミングによって認識できたりできなかったりしました。
動作報告のあった機器 - Zega (A GPS navigation software for Zaurus)
http://www.h7.dion.ne.jp/~rasiel/zega.html#Reports
デバイスドライバについて詳しくないのですが、自分なりに調べたところ、usbcore, acm, usb_ohci_pxa27xあたりのモジュールをロードし直せば良さそうだったので、上記を行うシェルを作成して対応していました。
(このシェルは残っていません。結果的に下に記述するシェルに修正されました)
とりあえず、認識しないときは繋ぎ直したり、上記シェルを起動したりで対応していました。
次に、D01NXIIを購入したわけですが、これを使用しているとGPSが使用できないことに気づきました。
調べたところ、acmのモジュールをこちらも使用しており、また、D01NXIIのドライバをインストールすると、このファイルが更新されているようでした。そして、CFスロットにD01NXIIが刺さっていると、μpodを繋げてもうまく動作しないようになっていました。CFスロットにD01NXIIが刺さっていなければ問題有りません。
そのため、最終的に、GPSを使用するときは以下のシェルを実行することで対応することにしました。
余談
これらを調査しているときに、「ls -l /dev/ttyACM0」で表示される「166 0」の数字の意味も調べたと思うのですが、よく覚えていません。
気づいたことは、常に記述していった方がいいなと思いました。
また、この記事を記述するにあたり、少しネットで検索していたのですが、もしかするともっとよい方法がありそうな気がしてきました。
(違うかもしれませんが、「depmod」コマンドとか、怪しい気が…と勝手に思っていたりします)
ただ、現状動作していますので、ちゃんと調べたりする機会は、あまりないような気もします。
上記二つに関して、気づいた点と相性について記述したいと思います。ただ、記憶を元に記述しているため、間違い等があるかもしれませんがご了承ください。
まずμpodについて気づいたことを記述したいと思います。
μpodをqgmapやZegaで使用したとき、Zegaのページを参考にさせていただきましたが、タイミングによって認識できたりできなかったりしました。
動作報告のあった機器 - Zega (A GPS navigation software for Zaurus)
http://www.h7.dion.ne.jp/~rasiel/zega.html#Reports
デバイスドライバについて詳しくないのですが、自分なりに調べたところ、usbcore, acm, usb_ohci_pxa27xあたりのモジュールをロードし直せば良さそうだったので、上記を行うシェルを作成して対応していました。
(このシェルは残っていません。結果的に下に記述するシェルに修正されました)
とりあえず、認識しないときは繋ぎ直したり、上記シェルを起動したりで対応していました。
次に、D01NXIIを購入したわけですが、これを使用しているとGPSが使用できないことに気づきました。
調べたところ、acmのモジュールをこちらも使用しており、また、D01NXIIのドライバをインストールすると、このファイルが更新されているようでした。そして、CFスロットにD01NXIIが刺さっていると、μpodを繋げてもうまく動作しないようになっていました。CFスロットにD01NXIIが刺さっていなければ問題有りません。
そのため、最終的に、GPSを使用するときは以下のシェルを実行することで対応することにしました。
#!/bin/bash count=1 maxcount=$1 if [ "$maxcount" = "" ] ; then maxcount=10 fi read -t 1 LINE < /dev/ttyACM0 while [ "$LINE" = "" -a $count -le $maxcount ] ; do echo "try $count" sleep 1 ; sudo cardctl eject 0 sleep 1 ; sudo rmmod acm sudo rmmod usb_ohci_pxa27x sudo rmmod vmb_usb sudo rmmod usbcore sleep 5 ; sudo insmod usbcore sleep 3 ; sudo insmod acm sleep 2 ; sudo insmod usb_ohci_pxa27x sleep 5 ; read -t 1 LINE < /dev/ttyACM0 count=$[$count+1] done if [ "$LINE" = "" ] ; then echo fail fiしばらく経ってしまったため、どう調べたのか、どのサイトを参考にしたのか、よく覚えていません。
余談
これらを調査しているときに、「ls -l /dev/ttyACM0」で表示される「166 0」の数字の意味も調べたと思うのですが、よく覚えていません。
気づいたことは、常に記述していった方がいいなと思いました。
また、この記事を記述するにあたり、少しネットで検索していたのですが、もしかするともっとよい方法がありそうな気がしてきました。
(違うかもしれませんが、「depmod」コマンドとか、怪しい気が…と勝手に思っていたりします)
ただ、現状動作していますので、ちゃんと調べたりする機会は、あまりないような気もします。
※コメント投稿者のブログIDはブログ作成者のみに通知されます