Linux Install Memo

サーバー管理者によるLinux関連ソフトのインストールメモ

Home » □JRC NNN-310TAとgpsdで遊んでみる(Vine5)

□JRC NNN-310TAとgpsdで遊んでみる(Vine5)

http://gazoo.com/G-BLOG/BlogTaikenshitemimas/111324/Article.aspx
http://gazoo.com/G-blog/BlogTaikenshitemimas/112857/Article.aspx

何年か前のハムフェアから数年にわたって、どこかのクラブブース(忘れた)
でJRCのCFスロットに挿すタイプのGPS(GPSTAR NNN-310TA)を売っていて、
これを何個も買って塩漬けにしておいた。

そのうち何かに使えるだろうと思ったらVine5で「gpsd」というそれっぽい
ソフトを見つけたので、いろいろ遊んでみることにする。

まずはgpsd関連のインストール。

> geoclue-gpsd – geoclue 用 gpsd プロバイダ
> gpsd – GPS にアクセスするためのサービスデーモン
> gpsd-clients – gpsd 用クライアント
> gpsd-devel – Client libraries in C and Python for talking to a running gpsd or GPS
> gypsy – A GPS multiplexing daemon

こんなにあるので、とりあえず以下のものをインストール。

apt-get -y install gpsd
apt-get -y install gpsd-clients

で、gpsdを動かすにはデバイスを指定しないといけないのだが、このJRCの
GPSカード(一応COM通信カードみたいな扱いらしい)を挿すとmessagesに

> Jan 26 21:58:36 localhost kernel: pccard: PCMCIA card inserted into slot 1
> Jan 26 21:58:36 localhost kernel: cs: memory probe 0xe8000000-0xefffffff: excluding 0xe8000000-0xefffffff
> Jan 26 21:58:36 localhost kernel: cs: memory probe 0xc0200000-0xcfffffff: excluding 0xc0200000-0xc11fffff 0xc1a00000-0xc21fffff 0xc2a00000-0xc31fffff 0xc3a00000-0xcc1fffff 0xcca00000-0xcd1fffff 0xcda00000-0xce1fffff 0xcea00000-0xcf1fffff 0xcfa00000-0xd01fffff
> Jan 26 21:58:36 localhost kernel: pcmcia: registering new device pcmcia1.0

と、こんな感じでメッセージが出たら、さくっとこのGPSカードの素性を見る。

> # pccardctl info
> PRODID_1=””
> PRODID_2=””
> PRODID_3=””
> PRODID_4=””
> MANFID=0000,0000
> FUNCID=255
> PRODID_1=”JRC”
> PRODID_2=”GPSCard”
> PRODID_3=”1.000″
> PRODID_4=””
> MANFID=0000,0000
> FUNCID=255

と、こんな感じでJRCのGPSCardだってことがわかる。

さて、こいつをVine5で…というよりもKernel2.6系で使うにはかなーり厄介。
とにもかくにもシリアルカードとして認識してもらわないといけないので、
モジュールを作り直さないといけない。

http://bird-memo.seesaa.net/category/805599-1.html

を参照して、とにかくシリアルカードとして認識してもらうために

emacs /usr/src/linux-2.6.27/drivers/serial/serial_cs.c

に、

> PCMCIA_DEVICE_PROD_ID123(“?????”, “?????”, “?????”, 0x?????, 0x?????, 0x?????),

というような行を追加する。

えー、?????に何を書いたらええねん?ということになるんですが、
GPSカードを挿した状態で

grep pcmcia `find / -name modalias`

とすると

> /sys/devices/pci0000:00/0000:00:1e.0/0000:02:00.1/1.0/modalias:pcmcia:m0000c0000f00fn00pfn00pa1A5527EApb65F31EEApc0158AAF4pd00000000

というようにでてきます。

ここまで来ればしめたもの。pa、pb、pcの後のhashデータを拾ってきて、

> PCMCIA_DEVICE_PROD_ID123(“JRC”, “GPSCard”, “1.000”, 0x1A5527EA, 0x65F31EEA, 0x0158AAF4),

という風になるわけですな。

書き直したら

cd /usr/src/linux-2.6.27/
make modules modules_install

として、モジュールだけインストールしなおて、GPSカードを挿しなおしてみる。

うまく認識してくれれば、/var/log/messagesに

> Jan 27 22:53:40 localhost kernel: pccard: card ejected from slot 1
> Jan 27 22:53:43 localhost kernel: pccard: PCMCIA card inserted into slot 1
> Jan 27 22:53:43 localhost kernel: pcmcia: registering new device pcmcia1.0
> Jan 27 22:53:43 localhost kernel: 1.0: ttyS2 at I/O 0x3e8 (irq = 3) is a 16550A

みたいにして出る。(やったー)

で、このカードは垂れ流しのGPSカードなので、取り合えずそのデータを見てみることにする。

minicomとかでこのttyS2を「4800,8,N,1」でみてみると、

> $GPGSA,A,1,00,00,00,00,00,00,00,00,00,00,00,00,00.0,00.0,00.0*00
> $GPGSV,2,1,08,01,00,000,00,24,00,000,00,09,00,000,00,30,00,000,00*7F
> $GPGSV,2,2,08,10,00,000,00,08,00,000,00,22,00,000,00,15,00,000,00*7C
> $GPRMC,004938,V,3600.00000,N,13600.00000,E,000.0,000.,020100,,*3E
> $GPGGA,004939,3600.00000,N,13600.00000,E,0,0,00,+0050,M,+034,M,00,0000*59
> $GPGSA,A,1,00,00,00,00,00,00,00,00,00,00,00,00,00.0,00.0,00.0*00
> $GPGSV,2,1,08,01,00,000,00,24,00,000,00,09,00,000,00,30,00,000,00*7F
> $GPGSV,2,2,08,17,00,000,00,19,00,000,00,22,00,000,00,15,00,000,00*7B
> $GPRMC,004939,V,3600.00000,N,13600.00000,E,000.0,000.,020100,,*3F
> $GPGGA,004940,3600.00000,N,13600.00000,E,0,0,00,+0050,M,+034,M,00,0000*57
> $GPGSA,A,1,00,00,00,00,00,00,00,00,00,00,00,00,00.0,00.0,00.0*00
:
:
と、こんな感じでGPSデータが流れてきている。

さて、これをgpsdに取り込んでみよう。

gpsd /dev/ttyS2

としてgpsdを起動して、しばらく待ってからX-Windowを立ち上げて

telnet localhost gpsd

として、GPSカードがちゃんとGPS信号を拾えているかどうか確認。
DとかPとか打つと、信号が拾えていれば日時とか緯度経度が出てくる。

…うちでは受信できない。。・゜・(ノД`)・゜・。

…だったので、こんなの買ってきました。

ちゃらららっちゃらー、外付けGPSアンテナー♪ ちなみに製品精度がいまいちでコネクタが刺さりにくいが、刺さったらちゃんと使えます。

あとは

xgps

とか

gpsdrive

とかやってみるといいかも?

xgpsだとGPSを捕らえたらこんな風に見えます。

補足:gpsdriveのインストール

http://www.gpsdrive.de/

とりあえずstable版を取ってきてインストールしましょ。

mkdir /usr/src/package/
cd /usr/src/package/
wget http://www.gpsdrive.de/packages/gpsdrive-2.09.tar.gz
cd /usr/src/
tar xvzf ./package/gpsdrive-2.09.tar.gz
cd gpsdrive-2.09/

として、このままだとVine5ではgccが新しすぎて先に進めないので、強引に

emacs ./configure

として

> if $CC -dumpversion|egrep -q “^3\.*”; then
> echo “GCC ok”
> else
> echo “*****************************************”
> echo “You need a gcc >= 3.x!? to compile GpsDrive”
> echo “*****************************************”
> #exit
> fi

というように、gcc4でもexitせずに進むように修正して、

apt-get -y install pcre-devel

としてから、

./configure –disable-garmin
make
make install

今回ガーミンは使いませんので、オプションとしてはずします。

うまく出来れば、こんな感じで表示できます。

で、地図をダウンロードしてみると

なかなかすごいですなー。

補足:あれー、gpsdが落ちるようになっちゃった…

先日ぽちってIO-DATAのCFGPS2を落札したので差し替えて動作確認をしたあとに、またNNN-310TAに戻したら、なぜかgpsdが落ちるようになってしまった。さんざん悩んだけど結局判らなくて、gpsd-2.90をtarからインスコしました。そしたら問題なし。

なんだったんだろう!?!?(゜Д゜≡゜Д゜)?

Name of author

Name: admin

コメントを残す

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

CAPTCHA