ブログネタ
Android に参加中!
カメラを繋いでみた。
使用したカメラは、
http://buffalo-kokuyo.jp/products/catalog/multimedia/bsw3k01h/
繋がるか不安だったので安い30万画素のやつ。
※UVC対応であれば何でもいけるはず。

使用している環境は、先日立ち上げたやつ。
embinux のがベース。
Android Porting Guide to Beagle Board


今回やったこと。

[1] kernel の再構築
$ cd ~/mydroid/kernel
$ make ARCH=arm CROSS_COMPILE=/opt/arm-2007q3/bin/arm-none-linux-gnueabi- menuconfig

以下の項目にチェックを入れる。
Multimedia devices 以下で、デフォルトでチェックが入っているものは全て外す。
Device Drivers --->
Multimedia devices --->
<*> Video For Linux
[*] Enable Video For Linux API 1 compatible Layer
[*] Video capture adapters --->
[*] Autoselect pertinent encoders/decoders and other helper chips
[*] V4L USB devices --->
<*> USB Video Class (UVC)
[*] UVC input events device support

 kernel をビルド。
$ make ARCH=arm CROSS_COMPILE=/opt/arm-2007q3/bin/arm-none-linux-gnueabi- uImage
$ make ARCH=arm CROSS_COMPILE=/opt/arm-2007q3/bin/arm-none-linux-gnueabi- modules

※コンパイラはここ。
Sourcery G++ Lite 2007q3-51 for ARM GNU/Linux
自分は /opt に展開して使用しています。

[2] init/framework 変更

自前で作る知識が不足してるので、ここを頼りにした。

android-porting

英語はわかり難いので、自分が使ったものをアップします。

mydroid/frameworks/base/camera/libcameraservice
※フォルダ全て
mydroid/system/core/init/devices.c

これらを差し替えて、
$ cd ~/mydroid
$ make

だけで変更したとこをビルドしてくれる。


これで、とりあえずカメラ/ビデオ録画アプリが起動する。
気になるのは2点。

<1つ目>
センサが無いせいか、縦にプレビューされる。
ディスプレイは横(ワイド)なのでちょっとおかしい。

<2つ目>
SD入れろメッセージが出る。
SDにイメージ突っ込んでるが、SD認識させられるものか?
別パーティション作ればOK?

これは明日以降見てみるか。
これ見てて、知っている方いれば教えて欲しいけど。