[chumby]chumbyにUSBカメラをつないでみた
手近にEyeToyがあったので、chumbyに接続してみました。
果敢にも試してみる
以下のファイルをダウンロードします。
素人の仕事ですので、何が起こるか分かりませんというか、実際動作が不安定です。無保証です。
「chumby_eyetoy_set.tar.gz」をダウンロード
scpでchumbyの/pspに転送した後、sshでchumbyにログインして、解凍すれば準備OK。
「192.168.0.4」は、うちのchumbyのIPです。違う場合は読み替えてください。
$ scp chumby_eyetoy_set.tar.gz [email protected]:/psp/ $ ssh -lroot 192.168.0.4 # cd /psp # tar xvzf chumby_eyetoy_set.tar.gz
/pspに以下のファイルが展開されます。
上書きされて困る場合は何も無いディレクトリの中に解凍して、子細検討してください。
rfs1/rcS cjpeg drivers/videodev.ko drivers/ov51x-jpeg.ko capture-V4L libjpeg.so.62 cgi-bin/capture
chumbyの電源を落とし、起動し直します。
EyeToyを接続後、Mac/PCのブラウザから以下のようなURLをブラウズします。
http://192.168.0.4/cgi-bin/custom/capture
すると、こんな感じの画質でブラウザに表示されるはずです(chumbyに接続したEyeToyでchumby自身を撮影)。
ただ、自分のやった範囲ではちょっと不安定で、実用にはなりませんね。
しばらく使っているとストールしてしまいます。
きっちり知識のある方がやらないとダメでしょう。
cgiはstdoutに出力した画像を直接表示していますが、一度ファイルとして書き出してからなら、安定するかもです(それはそれでFlashの寿命うんぬんという話になりますが)。
EyeToyは数百円で入手できるそうですが、このために買うほどではないと思います。
やったことなどメモ
自分は素人なので、間違ったことを書いている可能性があります。
何かありましたらご指摘ください。
ドライバはov51x-jpegを使いました。オリジナルのov51xをビルドしてみたのですが、うまく通らなかったからです。
Kernelのビルドの方法はchumby WikiのBuilding and Installing a new chumby kernelに書いてありますが、自分が使っているubuntu 7.1だと失敗しました。
困って一度はあきらめたのですが、ISHさんのchumby関連のエントリがアップされて救われました。
ISHさんは凄いですね。僕も、chumbyはホームオートメーションセンターとして使うべきだと思います。
ISHさんのブログで紹介されているharadatさんのエントリによると、ubuntuにはKernelのビルドに必要なものが入っていないとのこと。以下の追加インストールが必要だそうで、
- build-essential(これがなくては/usr/includeすらない)
- kernel-package
- libncurses5-dev(make menuconfigを行うために必要。本来kernel-packageに入っていると良いような気がする)
- subversion, subversion-tools(TOMOYOのレポジトリの参照用)
- quilt(もともとはAndrew Mortonが作成したパッチ管理用ツール。自分で使うことはないだろうけれども一応。依存関係でgawkとdiffstatが導入された)
今回はbuild-essential、libncurses5-devをインストールしました。
今回のものには関係無いですが、USB Serialに関連するモジュールを作っておくと便利なので、ISHさんのサイトにある通り、kernelを展開したディレクトリにある.configに以下を追記しました。
.configからはUSB Serialに関する記述が割愛されているので、USB Serial Converter supportの辺りに追記することになります。USB Serial関係のKernel Moduleは「linux-2.6.16-chumby-1.5.0/drivers/usb/serial」にできます。
# # USB Serial Converter support # CONFIG_USB_SERIAL=m CONFIG_USB_SERIAL_CONSOLE=m # CONFIG_USB_SERIAL_GENERIC is not set # CONFIG_USB_SERIAL_AIRPRIME is not set # CONFIG_USB_SERIAL_ANYDATA is not set # CONFIG_USB_SERIAL_BELKIN is not set # CONFIG_USB_SERIAL_WHITEHEAT is not set # CONFIG_USB_SERIAL_DIGI_ACCELEPORT is not set CONFIG_USB_SERIAL_CP2101=m # CONFIG_USB_SERIAL_CYPRESS_M8 is not set # CONFIG_USB_SERIAL_EMPEG is not set CONFIG_USB_SERIAL_FTDI_SIO=m CONFIG_USB_SERIAL_VISOR=m CONFIG_USB_SERIAL_IPAQ=m # CONFIG_USB_SERIAL_IR is not set # CONFIG_USB_SERIAL_EDGEPORT is not set # CONFIG_USB_SERIAL_EDGEPORT_TI is not set # CONFIG_USB_SERIAL_GARMIN is not set # CONFIG_USB_SERIAL_IPW is not set # CONFIG_USB_SERIAL_KEYSPAN_PDA is not set # CONFIG_USB_SERIAL_KEYSPAN is not set # CONFIG_USB_SERIAL_KLSI is not set # CONFIG_USB_SERIAL_KOBIL_SCT is not set # CONFIG_USB_SERIAL_MCT_U232 is not set CONFIG_USB_SERIAL_PL2303=m # CONFIG_USB_SERIAL_HP4X is not set # CONFIG_USB_SERIAL_SAFE is not set # CONFIG_USB_SERIAL_TI is not set # CONFIG_USB_SERIAL_CYBERJACK is not set # CONFIG_USB_SERIAL_XIRCOM is not set # CONFIG_USB_SERIAL_OMNINET is not set
カーネルをビルドしたら、Ov51x JPEG hacked Wikiからソースをもらってきます。
tar xvzf ov51x-jpeg-1.5.8.tar.gz $ cd ov51x-jpeg-1.5.8 $ vi Makefile
MakefileのKDIRをchumbyのカーネルソースを展開したディレクトリに、CCとLDをそれぞれtoolchainのものを指定します。
CC = /usr/arm-linux/bin/gcc LD = /usr/arm-linux/bin/ld KDIR := /path/to/linux-2.6.16-chumby-1.5.0
でもってmake。
$ ARCH=arm CROSS_COMPILE=arm-linux- make
libjpegのソースパッケージをDebianからもらってきます。でもってビルド。.libs/の中に共有ライブラリが出来ます。
$ tar xvzf libjpeg6b_6b.orig.tar.gz $ gzip -d libjpeg6b_6b-13.diff.gz $ patch -p0 <libjpeg6b_6b-13.diff $ cd libjpeg6b-6b $ CC=/usr/arm-linux/bin/gcc ./configure --host=arm-linux $ make
capture-V4Lのソースをもらってきます。Makefileを編集してmake。
$ tar xvzf capture-V4L-v1.2.tgz $ cd capture-V4L $ vi Makefile
CCとCFLAGSを編集します。
CC = /usr/arm-linux/bin/gcc CFLAGS = -O4 -Wall -fsigned-char
makeします。
$ make
キャプチャした画像を出力するcgiを書きます。
詳細はchumby_eyetoy_set.tar.gz内のcgi-bin/captureを参照。
« [chumby]chumbyを各種インターネット共有/WMWifiRouter経由でネットにつなぐ | Main | [iPhone]iPhone 3GのSafariと「マップ / Googleマップ / GMaps.app」の連携:ぐるなびの地図表示地点を「マップ」で表示 »
Recent Comments