Archive for 1月, 2010
□JRC NNN-310TAとgpsdで遊んでみる(Vine5)
by admin on 1月.27, 2010, under MEMO
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のインストール
とりあえず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からインスコしました。そしたら問題なし。
なんだったんだろう!?!?(゜Д゜≡゜Д゜)?
□Adaptec Strage Manager(ASM)のインストール
by admin on 1月.27, 2010, under MEMO
Vine5のx86_64bit版にASMを入れてみる。
Adaptecのサイトでユーザー登録して以下のファイルを取得してインストール。
64bitは asm_linux_x64_v4.30-16038.rpm
ちなみに32bitは asm_linux_v4.30-16038.rpm
libstdc++-libc6.2-2.so.3がないと怒られるので、以下のファイルもとって
きてインストール。(libstdc++-libc6.2-2.so.3をどうしたらいいかでかなり
はまった)
compat-libstdc++-296-2.96-138.i386.rpm
をとってくればいいらしいというところまで判ったけど、既存のライブラリと
ぶつかったり影響がないかを確認。まぁ大丈夫だろうということで、
cd /usr/src/package/
wget http://ftp.riken.jp/Linux/fedora/core/6/i386/os/Fedora/RPMS/compat-libstdc++-296-2.96-138.i386.rpm
rpm –install ./compat-libstdc++-296-2.96-138.i386.rpm
で、はいったら
rpm –install ./asm_linux_x64_v4.30-16038.rpm
で、はいったら
/usr/StorMan/arcconf getconfig 1
とかすると以下のように出てくる。(ちなみにリビルド中)
> Controllers found: 1
>
> ———————————————————————-
> Controller information
> ———————————————————————-
> Controller Status : Optimal
> Channel description : SATA
> Controller Model : IBM Adaptec 2410SA
> Controller Serial Number : BF27C8
> Physical Slot : 1
> Installed memory : 64 MB
> Copyback : Disabled
> Background consistency check : Disabled
> Defunct disk drive count : 0
> Logical devices/Failed/Degraded : 1/0/1
> —————————————————
> Controller Version Information
> —————————————————
> BIOS : 4.1-0 (7235)
> Firmware : 4.1-0 (7235)
> Driver : 1.1-5 (2456)
> Boot Flash : 0.0-0 (0)
> —————————————————
> Controller Battery Information
> —————————————————
> Status : Not Installed
>
> ———————————————————————-
> Logical device information
> ———————————————————————-
> Logical device number 1
> Logical device name : FWNET
> RAID level : 1
> Status of logical device : Degraded
> Size : 476907 MB
> Read-cache mode : Enabled
> Write-cache mode : Enabled (write-back)
> Write-cache setting : Enabled (write-back)
> Partitioned : Yes
> Number of chunks : 2
> Drive(s) (Channel,Device) : 0,1 0,0
>
> ———————————————————————-
> Physical Device information
> ———————————————————————-
> Channel #0:
> Transfer Speed : SATA 1.5 Gb/s
> Device #0
> Device is a Hard drive
> State : Rebuilding
> Supported : Yes
> Transfer Speed : SATA 1.5 Gb/s
> Reported Channel,Device : 0,0
> Vendor : WDC
> Model : WD5001AALS-00L3B
> Firmware : 01.0
> Size : 476940 MB
> Write Cache : Unknown
> FRU : None
> S.M.A.R.T. : No
> Device #1
> Device is a Hard drive
> State : Online
> Supported : Yes
> Transfer Speed : SATA 1.5 Gb/s
> Reported Channel,Device : 0,1
> Vendor : WDC
> Model : WD5001AALS-00L3B
> Firmware : 01.0
> Size : 476940 MB
> Write Cache : Unknown
> FRU : None
> S.M.A.R.T. : No
> Device #2
> Device is a Hard drive
> State : Ready
> Supported : Yes
> Transfer Speed : SATA 1.5 Gb/s
> Reported Channel,Device : 0,2
> Vendor : WDC
> Model : WD5001AALS-00L3B
> Firmware : 01.0
> Size : 476940 MB
> Write Cache : Unknown
> FRU : None
> S.M.A.R.T. : No
>
>
> Command completed successfully.
ちなみに上記のステータスはまだ#2については何にも割り当てていないので
これをホットスペアにする場合には
/usr/StorMan/arcconf SETSTATE 1 DEVICE 0 2 HSP
とすれば、
> Controllers found: 1
>
>
> Command completed successfully.
として、できたらしい。
HSPでなくてDDDだと、ドライブを強制エラーにできるので、リビルド
チェックとかにいいかも。
なんにしてもRAIDの設定をいじったなら、BIOSで確認してみることを薦める。
□Vine5でAdaptec Serial ATA RAID 2410SAを使ってみる
by admin on 1月.19, 2010, under MEMO
使えます。
普通にaacraidとして認識してくれます。
2610も同様でしょう。
CLIについてはインストールが終わったら調査します。
□qdbmを入れてみる
by admin on 1月.12, 2010, under MEMO
参考
http://qdbm.sourceforge.net/
簡単にデータベースを扱いたくなったので、ndbmとかgdbmとかうろうろと
していたら、qdbmというを同胞が強烈に推しているらしい。
ということで、とりあえず入れてみる。:-)
cd /usr/src/package
wget http://qdbm.sourceforge.net/qdbm-1.8.77.tar.gz
cd /usr/src
tar xvzf ./package/qdbm-1.8.77.tar.gz
cd qdbm-1.8.77/
./configure –prefix=/usr –enable-iconv –enable-zlib
make
make install
後はコレをPHPでつかえるようにする。
□いまさらながらeAccelerator
by admin on 1月.08, 2010, under MEMO
参考
http://vine.1-max.net/eAccelerator.html
Zend Optimizerにも対応しているって事で、隣のチームで劇的に性能向上(当社比まじで10倍…笑)といっていたので、入れてみる。
cd /usr/src/package
wget http://bart.eaccelerator.net/source/0.9.6/eaccelerator-0.9.6-rc1.tar.bz2
cd /usr/src
tar xvjf ./package/eaccelerator-0.9.6-rc1.tar.bz2
cd eaccelerator-0.9.6-rc1/
phpize
./configure –enable-eaccelerator=shared –with-php-config=/usr/bin/php-config
make
make install
cp control.php /etc/httpd/html/
mkdir /tmp/eaccelerator
chown apache:apache /tmp/eaccelerator/
emacs /etc/php5/php.ini
[eAccelerator]
zend_extension = “/usr/lib/php5/eaccelerator.so”
eaccelerator.shm_size = “16″
eaccelerator.cache_dir = “/tmp/eaccelerator”
eaccelerator.allowed_admin_path = “/home/httpd/html/control.php”
eaccelerator.optimizer = “1″
eaccelerator.check_mtime = “1″
eaccelerator.debug = “0″
eaccelerator.filter = “”
eaccelerator.shm_max = “0″
eaccelerator.shm_ttl = “0″
eaccelerator.shm_prune_period = “0″
eaccelerator.shm_only = “0″
eaccelerator.compress = “1″
eaccelerator.compress_level = “9″
eaccelerator.keys = “shm_and_disk”
eaccelerator.sessions = “shm_and_disk”
eaccelerator.content = “shm_and_disk”
※ Zend Optimizerを導入する場合の注意
Zend OptimizerのセクションはeAcceleratorの後でロードする必要があり
はやくなった…かな?



