トップ «前の日記(2006年02月27日) 最新 次の日記(2006年03月01日)» 編集
2003|01|02|03|04|05|06|07|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|02|03|04|05|06|07|08|09|10|11|12|
2008|01|02|03|04|05|06|07|08|10|12|
2009|02|03|06|07|10|11|12|
2010|01|02|03|04|07|09|10|11|12|
2011|01|03|04|05|06|07|08|10|
2012|01|06|08|09|10|12|
2013|01|02|03|04|07|09|11|12|
2014|01|03|04|05|06|09|
2015|04|
2016|01|08|
ここは旧えびめもです。えびめも2に移行します(2016/12/1)

2006年02月28日

CAT760

USBホストが動作したので、おもしろがってWebcamで遊んでみた。
# modprobe videodev
# modprobe v4l1_compat
# modprobe v4l2_common
# modprobe ov511.ko packetsize=257
drivers/usb/media/ov511.c: USB OV511+ video device found
drivers/usb/media/ov511.c: model: Creative Labs WebCam 3
drivers/usb/media/ov511.c: Sensor is an OV7620
drivers/usb/media/ov511.c: Device at usb-SH7760 USB-1 registered to minor 0
usbcore: registered new driver ov511
drivers/usb/media/ov511.c: v1.64 for Linux 2.5 : ov511 USB Camera Driver
んで、
# apt-get install streamer netpbm
# streamer -o test.ppm
# ppmtobmp test.ppm > test.bmp
お〜!すばらしいっ。てか SuperHでもapt-get で xawtvとstreamerが取れるところがすごい。
Webcamで取った写真がこれ↓ (WebCam3捨てずに取っといてよかった)

多少チューニングが合っていないが、あのパッチでちゃんとカメラ画像が取得でくるとは。やっぱり俺天才かもしれない(^o^
撮った写真を液晶パネルに出している様子

CATユーザー様 今日のtangoから貴重な情報をいくつかいただきました。ありがとうございました。

CAT760

ちなみに ov511 の packetsize= は drivers/usb/media/ov511.c によると
        if (ov->bridge == BRG_OV511) {
                if (size == 0)
                        alt = OV511_ALT_SIZE_0;
                else if (size == 257)
                        alt = OV511_ALT_SIZE_257;
                else if (size == 513)
                        alt = OV511_ALT_SIZE_513;
                else if (size == 769)
                        alt = OV511_ALT_SIZE_769;
                else if (size == 993)
                        alt = OV511_ALT_SIZE_993;
                else {
                        err("Set packet size: invalid size (%d)", size);
                        return -EINVAL;
                }
        } else if (ov->bridge == BRG_OV511PLUS) {
                if (size == 0)
                        alt = OV511PLUS_ALT_SIZE_0;
                else if (size == 33)
                        alt = OV511PLUS_ALT_SIZE_33;
                else if (size == 129)
                        alt = OV511PLUS_ALT_SIZE_129;
                else if (size == 257)
                        alt = OV511PLUS_ALT_SIZE_257;
                else if (size == 385)
                        alt = OV511PLUS_ALT_SIZE_385;
                else if (size == 513)
                        alt = OV511PLUS_ALT_SIZE_513;
                else if (size == 769)
                        alt = OV511PLUS_ALT_SIZE_769;
                else if (size == 961)
                        alt = OV511PLUS_ALT_SIZE_961;
                else {
                        err("Set packet size: invalid size (%d)", size);
                        return -EINVAL;
                }
        } else {
から選択せよ。。との事らしい(undocumented!!)

CAT760

モジュールを depmod -a するときにワーニングが出る
WARNING: Loop detected: /lib/modules/2.6.15-sh/kernel/drivers/scsi/sd_mod.ko which needs sd_mod.ko again!
WARNING: Module /lib/modules/2.6.15-sh/kernel/drivers/scsi/sd_mod.ko ignored, due to loop
sd_mod.koが自分自身にdependしてloopしている。というワーニングだ。insmodすると正しく動く(depend loopだけだから)。原因が分からなかったが・・iww君の指摘が正しかった。
.h ファイルに EXPORT_SYMBOL(関数名) マクロが入っていて、
.h ファイルが 各地の.cでincludeしてしまうと
各地の .cファイルがシンボルをエクスポートする事になり、
当然自分自身でも関数を持っている事になりloopが発生する。
ビンゴ。その通り。対策は SYMBOL_SYMBOL() は .h に入れてはダメ。.cに入れること。これで直った。

CAT760

というわけで CAT760 の USBホスト対応は
http://www.si-linux.co.jp/wiki/cat/
から、「最新CDROM」に進むと取得できます。公式にはUSBフラッシュメモリへの対応のみですが、24時間エージング通りました。