- ある開発者の覚書 - ソフトウェア開発者が情報処理に関する雑多な話題をジャンルを問わずに書き留めています.未来の私、私と同類のgeekたちへ

2008-10-30

Live Capture

PCに接続したCCDカメラで監視システムを構築するソフトウェアです.非常に高機能です.有償の製品でないことが不思議なくらい.定期的に画像・動画を保存する機能はもちろん,撮影した画像をメール・FTP送信したりもできます.特に秀逸なのは動体検知です.画面内で動くものを検出して撮影してくれます.

2008-10-27

D01NX on SL-C700

「とりあたまさんのおぼえがき」を参考にSL-C700上でD01NXを動作させることに挑戦してみました。以下はその全記録、、、なのですが最終的には敗北してますorz

まずはAngstromをSL-C700にインストール

Angstrom-console-image-glibc-ipk-2007.12-r13-c7x0-installkit.tgz

をダウンロード
本家から落としてきます。
http://www.angstrom-distribution.org/
Downloads -> c7x0です。現時点での最新バージョンが上記ファイル名になります。
展開後、以下のファイルを空のCF(or SD)のルートディレクトリにコピーします。

zImage.bin
initrd.bin
updater.sh

CFをSL-C700に挿してOKボタンを押しながら電源を入れ、メンテナンスメニューを表示させます。
4.アップデート
からアップデートを実行します。
自動再起動後、Angstromが正常にインストールされたことを確認します。

root/パスワードなしでログイン
> uname -a
Linux c7x0 2.6.24 #1 PREEMPT Wed Mar 26 12:56:24 CET 2008 armv5tel unknown

この時点でアウトなのですがそれはのちにわかることです。

とりあたまさんのところではその後、有線LANでネットワークにつないで必要なモジュールをインストールされているのですが、私はSL-C700で使えるネットワークカードは持ち合わせていませんでした。ので、手間はかかりますがモジュールのインストールパッケージを個別に落としてインストールしました。依存性のエラーが出てはそのモジュールを追加でインストール、、、と繰り返して(泣)最終的に以下のパッケージをインストール。

> ipkg install /mnt/cf/kernel-module-cdc-acm_2.6.24-r15_c7x0.ipk

Installing kernel-module-cdc-acm (2.6.24-r15) to root...
Nothing to be done
An error ocurred, return value: 1.
Collected errors:
ERROR: Cannot satisfy the following dependencies for kernel-module-cdc-acm:
kernel-module-usbcore

> ipkg install /mnt/cf/kernel-module-usbcore_2.6.24-r15_c7x0.ipk

Installing kernel-module-usbcore (2.6.24-r15) to root...
Configuring kernel-module-usbcore

> ipkg install /mnt/cf/kernel-module-cdc-acm_2.6.24-r15_c7x0.ipk

Installing kernel-module-cdc-acm (2.6.24-r15) to root...
Configuring kernel-module-cdc-acm

> ipkg install /mnt/cf/cu_1.07-r2_armv5te.ipk

Installing cu (1.07-r2) to root...
Nothing to be done
An error ocurred, return value: 1.
Collected errors:
ERROR: Cannot satisfy the following dependencies for cu:
libc6 (>= 2.6.1)

> ipkg install /mnt/cf/libc6_2.6.1-r6_armv5te.ipk

Upgrading libc6 on root from 2.5-r9 to 2.6.1-r6...
Configuring libc6
Collected errors:
Multiple packages (libc6 and libc6) providing same name marked HOLD or PREFER. Using latest.

> ipkg install /mnt/cf/cu_1.07-r2_armv5te.ipk

Installing cu (1.07-r2) to root...
Configuring cu

ここからはとりあたまさんのところに書かれている手順に従います.

> cp /mnt/cf/vmb_cs.ko /lib/modules/2.6.24/kernel/drivers/
> cp /mnt/cf/vmb_hcd.ko /lib/modules/2.6.24/kernel/drivers/
> depmod -a

ここでD01NXをSL-C700に挿すと

<3>vmb_hcd: version magic '2.6.23 preempt mod_unload ARMv5 ' should be '2.6.24 preempt mod_unload ARMv5 '
<3>vmb_cs: version magic '2.6.23 preempt mod_unload ARMv5 ' should be '2.6.24 preempt mod_unload ARMv5 '

アウト!見事にバージョンチェックで蹴られました.どうやらカーネルバージョン最新ではこのドライバは使用できないようです。

そこで次に、Angstrom旧バージョンのインストールパッケージを使ってみます。
http://www.angstrom-distribution.org/releases/2007.12/images/c7x0/old/
Angstrom-console-image-glibc-ipk-2007.12-c7x0-installkit.gz

上記と同じ手順でアップデート、再起動後にカーネルバージョンをチェックします。

> uname -a
Linux c7x0 2.6.23 #1 PREEMPT Fri Dec 28 11:06:44 CET 2007 armv5tel unknown

今度はしっかり2.6.23であることを確認しました。

上記同様にパッケージをインストールします。

> ipkg install /mnt/cf/kernel-module-usbcore_2.6.23-r27_c7x0.ipk
Installing kernel-module-usbcore (2.6.23-r27) to root...
Configuring kernel-module-usbcore
> ipkg install /mnt/cf/kernel-module-cdc-acm_2.6.23-r27_c7x0.ipk
Installing kernel-module-cdc-acm (2.6.23-r27) to root...
Configuring kernel-module-cdc-acm
> ipkg install /mnt/cf/libc6_2.6.1-r7_armv5te.ipk
Upgrading libc6 on root from 2.5-r8 to 2.6.1-r7...
Configuring libc6
Collected errors:
Multiple packages (libc6 and libc6) providing same name marked HOLD or PREFER. Using latest.
> ipkg install /mnt/cf/cu_1.07-r2_armv5te.ipk
Installing cu (1.07-r2) to root...
Configuring cu

D01NXを挿します。

> dmesg

<5>pccard: PCMCIA card inserted into slot 0
<5>pcmcia: registering new device pcmcia0.0
<6>usbcore: registered new interface driver usbfs
<6>usbcore: registered new interface driver hub
<6>usbcore: registered new device driver usb
<7>pcmcia_request_window: base=2C000000(4096) OK
<6>vmb_hcd vmb_hcd: ELAN VMB Host Controller
<6>vmb_hcd vmb_hcd: new USB bus registered, assigned bus number 1
<6>vmb_hcd vmb_hcd: irq 81, io mem 0x2c000000
<6>usb usb1: configuration #1 chosen from 1 choice
<6>hub 1-0:1.0: USB hub found
<6>hub 1-0:1.0: 2 ports detected
<6>usb 1-1: new full speed USB device using vmb_hcd and address 2
<3>usb 1-1: device descriptor read/64, error -110
<3>usb 1-1: device descriptor read/64, error -110
<6>usb 1-1: new full speed USB device using vmb_hcd and address 3
<3>usb 1-1: device descriptor read/64, error 18
<3>usb 1-1: device descriptor read/64, error -110
<6>usb 1-1: new full speed USB device using vmb_hcd and address 4
<3>usb 1-1: device not accepting address 4, error -110
<6>usb 1-1: new full speed USB device using vmb_hcd and address 5
<3>usb 1-1: device not accepting address 5, error -110

今度は認識はしてくれたようです。モジュールもロードしている模様。

> lsmod

Module Size Used by
vmb_cs 5092 1
vmb_hcd 49896 1 vmb_cs
usbcore 123392 2 vmb_hcd
uinput 7872 1
g_ether 24140 0
snd_soc_corgi 5292 0
snd_soc_pxa2xx_i2s 3352 1 snd_soc_corgi
snd_soc_wm8731 11248 1 snd_soc_corgi
snd_soc_pxa2xx 4384 1 snd_soc_corgi
snd_soc_core 26144 3 snd_soc_corgi,snd_soc_wm8731,snd_soc_pxa2xx
snd_pcm_oss 48928 0
snd_pcm 81669 3 snd_soc_pxa2xx,snd_soc_core,snd_pcm_oss
snd_timer 21732 1 snd_pcm
snd_page_alloc 6568 1 snd_pcm
snd_mixer_oss 15296 1 snd_pcm_oss
snd 51796 7 snd_soc_corgi,snd_soc_wm8731,snd_soc_core,snd_pcm_oss,snd_pcm,snd_timer,snd_mixer_oss
soundcore 6596 1 snd
rfcomm 36732 0
pcmcia 34164 1 vmb_cs
pxaficp_ir 9088 0
pxa2xx_cs 4132 3
pxa2xx_core 11008 1 pxa2xx_cs
pcmcia_core 31664 3 vmb_cs,pcmcia,pxa2xx_core
ircomm_tty 21448 0
ircomm 11460 1 ircomm_tty
irda 115400 3 pxaficp_ir,ircomm_tty,ircomm
hidp 14944 0
l2cap 21028 10 rfcomm,hidp
bluetooth 51872 5 rfcomm,hidp,l2cap

確かにvmb_csとvmb_hcdがロードされています。しかしデバイスファイル /dev/ttyACM0 は作成されませんでした。一応,手動でデバイスファイル作成を試してみます.

> mknod /dev/ttyACM0 c 166 0
> chmod 666 /dev/ttyACM0

接続してみます.

> cu -l /dev/ttyACM0 -s 115200
cu: open (/dev/ttyACM0): No such device or address
cu: /dev/ttyACM0: Line in use

敗北,,,orz まあ事前にこけてるので無理もない.

dmesgに出力されているエラーは標準出力にも表示されていました.関係ありそう.

<3>usb 1-1: device descriptor read/64, error -110
<3>usb 1-1: device descriptor read/64, error -110
<3>usb 1-1: device descriptor read/64, error 18
<3>usb 1-1: device descriptor read/64, error -110
<3>usb 1-1: device not accepting address 4, error -110
<3>usb 1-1: device not accepting address 5, error -110

考えられる原因を挙げてみます.

1.インストールすべきモジュールが足りていない
2.モジュールのバージョンが違う
3.D01NXのファームウェアが違う
4.D01NX and/or SL-C700がハードウェア的に故障

1.の場合ならそれらしいエラーが吐かれてもよさそうなものです.しかしOS自体がそれほど枯れているというわけでもないので何も吐いてくれなかったとしてもありえる話です.
2.はネットワーク経由のipkgでモジュールをインストールすると依存性解決により適切なモジュールの適切なバージョンが入るが,手動だと別のバージョンをインストールできてしまっている,というパターン.もっともありえる線かと.「ipkg update」はやってないわけですし.もしかしてlibcインストール時のエラー表示がそれ?ipkgでインストールされるモジュール名+バージョンを詳細に知る方法があれば,,
3.はdmesgを見るにD01NX側が何かおかしい?→ファームウェアぐらいしか思いつかない.という発想なんですがまあ可能性としては低いでしょう.
4.はD01NXはlibrettoで正常に動作するしSL-C700はシャープROMで正常に起動しているのでありえないかと.ただしSL-C700のPCMCIA周りに何か故障があって今まで気づいていなかった,という線はあるかもしれません.

2008-10-23

ドライブルート -Yahoo!ドライブ

以前も投稿したネタですなんですが、近々数名でツーリングに行く予定があって計画を立てるのに実際に利用してみました。利用者投稿のルートも増えてきており、経路作成、保存等の機能も充実して非常に面白いです。これでGPSと連携できたらカーナビを凌ぎますね。私が知る限りではドライブルートの提案機能を持つカーナビはきいたことがないので少なくともこのポイントにおいては

2008-10-18

JJS.@ : Software Projects : PSPdisp

PSPをUSB接続してサブディスプレイとして使えるようにするソフトウェアです。いや、私はPSPは持ってないんですがね。単純にこういうの好きなんです。特に実用的でもなく自分で使いもしないでしょうけど。技術的に面白くてわくわくしてしまうんですね。

2008-10-17

PLoP - Bootmanager - Free Boot Manager, builtin usb driver, native usb, boot different operating systems, cdrom, usb, freeware

440BXの古いマシンでUSBメモリからのブートを実現できるブートマネージャです。フロッピーさえついてるマシンなら使用可能。結構使えそうです。

2008-10-15

Google ノートブック

最近よく利用するようになりました。TODO項目の管理に使ってます。
Web上で「テキストのみを気軽に書きとめられる」機能を求めて使い始めました。同様にTODOをWeb上で管理するサービスは数あります。時間を見て試してみたいものです。
Googleノートブックで自分が利点だと思っているポイントは

  • Google Docに容易にエクスポート可能 → 手軽なバックアップ
  • 保存操作が不要

こんなところかな?

2008-10-10

Avesta を Vista で使う

AvestaがVistaで使えないという話題を以前投稿したのですが誤りでした。いくつかの不具合はありますが運用で回避できます。実際に自分は職場でも使ってます。方法は以下のとおり

・avesta.exeのプロパティ→互換性→互換モードでこのプログラムを実行する→WindowsXP
「avesta.dllを初期化できません」のエラーを回避できます。
・詳細表示で何も表示されないときは「カレントのカラム幅を項目にあわせる」等を実行
表示されていないように見えるときは単にカラム幅が異常になっているだけと思われる
表示設定は記憶されるので次回開いたときはすぐに表示されます

ショートカットキーでカラム幅調整できるように設定さえしておけば実用上問題になるほどの不具合ではないです。やはりAvestaの快適な操作性はすばらしい!

2008-10-09

ハードディスク 完全消去

ハードディスクを廃棄するときはデータを完全に消去するための策を講じることが常識となって久しいです。フリーのツールも数ありますが、Unix系OSであればddで0で埋めることができます。最近はWindowsのOS標準のコマンドにもあるらしいですね。
しかしこの手の方法は実際にデータ復旧を試してみないとその性能は測れません。0で埋め尽くす方法では専用デバイスを使えばわずかに残る磁気の振れからデータを復旧できると聞いたことがあります。だからランダムデータの繰り返し書き込みが必要だとか。
最近、盗聴器発見器を購入したです。が、ふと気がついたのは発見器が正常に動作しているか確かめるためには盗聴器が必要だということ。反応しないから安心してたら発見器が壊れていた!(もしくは検出性能が悪すぎた)では意味ないですから。ソフトウェアの単体テストフレームワークでは「最初にわざと一回失敗させる」ことが推奨されているのも同じ理由ですね。

2008-10-08

VMWare ESXi デバイス依存

最近VMWare ESXiをいじってます。古い自作マシンを空けて使おうとしてるのですが先日の投稿でも書いたようにIDEコントローラを認識せず。USBメモリブートなら可能との情報で新たに購入して試してみました。我が家の最新マシンのLibretto U100 君(!)ではブートに成功しましたが、使う予定だった古い自作マシン(440BX PentiumⅢ 666MHz x2 SDRAM 1GB)ではブートパーティションが見えないと怒られて敗北。VMWare ESXiはかなりデバイスを選ぶようなのでここでいったん打ち切り。近い将来に新しいマシンを組んだら試してみようかと。代わりに他のハイパーバイザを使ってみようと思って調べてみたらHyper-Vは64bitのCPUが必要だとのこと、さらに厳しい、、、自分の今の環境では。なので近いうちにXenを使ってみようかと画策中です。

ブログ アーカイブ