May 19, 2008

usl-5pで画像処理したいんだけど・・・

 RAM64MBの環境で画像処理とか、まぁムチャなのかもしれない。でも、どうせ画像処理なんて160*140ぐらいの小さな画像をかけるのが一般的だろうし・・・。

 しっかし、USBカメラをLinuxにつなげるところからうまくイカンのですよ。。


 USBカメラについては、最初は家に転がってた得体の知れないエレコムの(内部チップ:sq930)を何とかならんかと、ドライバ探してきて、色々いじくりながらko作ったんだけど、ダメだった。なんかこんなんなった。
----------
make -C /usr/src/linux-2.6.17.4 M=/home/landisk/usbcam/sq930-dev V=0 modules
make[1]: Entering directory `/usr/src/linux-2.6.17.4'
CC [M] /home/landisk/usbcam/sq930-dev/sq930_core.o
CC [M] /home/landisk/usbcam/sq930-dev/sq930_lz24bp.o
CC [M] /home/landisk/usbcam/sq930-dev/usbcam_dev.o
CC [M] /home/landisk/usbcam/sq930-dev/usbcam_fops.o
CC [M] /home/landisk/usbcam/sq930-dev/usbcam_buf.o
CC [M] /home/landisk/usbcam/sq930-dev/usbcam_util.o
LD [M] /home/landisk/usbcam/sq930-dev/sq930.o
Building modules, stage 2.
MODPOST
WARNING: "videobuf_mmap_free" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_mmap_mapper" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_streamon" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_iolock" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_read_one" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_qbuf" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_querybuf" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_dma_unmap" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_queue_init" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_dqbuf" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_waiton" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_reqbufs" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_dma_free" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_poll_stream" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
WARNING: "videobuf_streamoff" [/home/landisk/usbcam/sq930-dev/sq930.ko] undefined!
CC /home/landisk/usbcam/sq930-dev/sq930.mod.o
LD [M] /home/landisk/usbcam/sq930-dev/sq930.ko
make[1]: Leaving directory `/usr/src/linux-2.6.17.4'
----------

 Linuxど素人だからよく分からんけど、たぶんOSのほうから「videobuf_mmap_free」とかって関数の実装を求められてるんじゃないかな?んで、俺の拾ってきたドライバのソースにはそれがなかった、と。

 そんで、すっぱりあきらめて(実はこれに2ヶ月近くかかってたりする)、このごろの業界標準であるUVC(USB Video Class)を何とかする方向に切り替えました。

 uvcはsubversion使わないとソースをゲット(チェックアウトと言ふ)できないんだけど、usl-5pにsubversionを入れようとすると、トンでもない時間と苦労を強いられることになるので、別PCでやったほうが無難だと思います。
 そんで、makeすることになるんだけど、configureとか必要ないのね〜。ソレはソレで怖いんだけど。
 何もエラー出ずに終了。インストール。

 そして、今日買ってきたバッファローのこれにつなげる。


usb 1-1: new high speed USB device using ehci_hcd and address 2

 お!

usb 1-1: configuration #1 chosen from 1 choice

 お!お!!

Linux video capture interface: v1.00
uvcvideo: Found UVC 1.00 device USB 2.0 Camera (0c45:62c0)

おぉおーーー!!認識したっ!

 ・・・と、思った瞬間に

Unable to handle kernel NULL pointer dereference at virtual address 00000000
pc = 00000000
*pde = 00000000
Oops: 0000 [#1]

 こんなん言われて、

Pid : 1302, Comm: modprobe
PC is at _stext+0x73ffe000/0x48
PC : 00000000 SP : 8eb77e14 SR : 40008100 TEA : c0154284 Not tainted
R0 : 00000000 R1 : 00000000 R2 : 8eb77dec R3 : 2c000000
R4 : 8e4f0fca R5 : 8e4f0fc9 R6 : 8e4f0fc8 R7 : 13b21a38
R8 : 8e589050 R9 : c0171c78 R10 : 8e4f0fa8 R11 : 00000000
R12 : 8e589050 R13 : 00000000 R14 : 8e489f20
MACH: 00000000 MACL: 00000000 GBR : 29570440 PR : 00000000

Call trace:
[] uvc_probe+0x5a0/0x6cc [uvcvideo]
[<8c1475d8>] usb_probe_interface+0x60/0x90
[] uvc_driver+0x0/0xffffc5dc [uvcvideo]
[<8c0f5ac2>] driver_probe_device+0x56/0xb4
[] uvc_driver+0x24/0xffffc5dc [uvcvideo]
[<8c0f5c7e>] __driver_attach+0x96/0x120
[] uvc_driver+0x24/0xffffc5dc [uvcvideo]
[<8c0f4fec>] bus_for_each_dev+0x34/0x68
[] __this_module+0x0/0xffffb754 [uvcvideo]
[] uvc_driver+0x24/0xffffc5dc [uvcvideo]
[<8c0f5be8>] __driver_attach+0x0/0x120
[<8c0f554a>] bus_add_driver+0x56/0x10c
[] uvc_driver+0x24/0xffffc5dc [uvcvideo]
[<8c0f61a2>] driver_register+0x66/0x8c
[<8c1a3898>] mutex_unlock+0x0/0x40
[] __this_module+0x0/0xffffb754 [uvcvideo]
[] uvc_driver+0x7c/0xffffc5dc [uvcvideo]
[] uvc_driver+0x24/0xffffc5dc [uvcvideo]
[] uvc_ctrls+0x2f8/0xffffba5c [uvcvideo]
[<8c1476f6>] usb_register_driver+0x3e/0xbc
[] uvc_driver+0x0/0xffffc5dc [uvcvideo]
[] uvc_init+0x2c/0x70 [uvcvideo]
[] uvc_init+0x36/0x70 [uvcvideo]
[] __this_module+0xbc/0xffffb754 [uvcvideo]
[<8c024410>] __mutex_init+0x0/0x12
[] uvc_driver+0xc8/0xffffc5dc [uvcvideo]
[<8c027a18>] sys_init_module+0xf80/0x10f4
[] __this_module+0x0/0xffffb754 [uvcvideo]
[] 0xc015f000
[] 0xc0168ff0
[] 0xc0168f30
[] 0xc016bee8
[<8c0051d8>] syscall_call+0xc/0xe
[<8c026a98>] sys_init_module+0x0/0x10f4

 こんなんなった・・・

 あー、えっと、一応swapは512MBも切ってあるんですが。。

 こんなかんじで、なかなかロボット製作まで行き着けないありさまです。にゃーん。


 鈴商のおっちゃんに教えてもらったロボット。風で動いてるんだってさ。

 詳細は以下。
この動きをご覧あれ!風力だけで動く不思議なロボット「Strandbeest(スタンドビースト)」
砂浜動物 テオ・ヤンセン / 風で歩く“生命体”を創る

トラックバックURL

この記事にコメントする

名前:
URL:
  情報を記憶: 評価: 顔   
 
 
 
現状報告
 KiCad解説本の重版が決定しました!ありがとうございます♪.(2016/12/10)

自己紹介
yoneken
logo
 ロボットの研究・開発をしています。

続きを読む

連絡先は
ad

Syndicate this site
 2012年からKiCad日本語版バイナリのメンテナもしています.
来てくれた人たち
  • 今日:
  • 昨日:
  • 累計:

ショップリンク
嬉しいコメント
記事について
 このブログ記事の著作権は全てyonekenに属します。
 転載や個別記事へのリンクはご自由にどうぞ。連絡は必要ありません。
 記事の内容は無保証です。古い記事の内容は当時と状況が変わっている場合があります。
 内容に関する質問はコメント欄でもらえると、他の人にも役立ちます。
記事検索
月別
リア友リンク