Friday, June 26, 2009

ArmadilloでWebカメラを使用しようとしているが...

Armadillo300でWebカメラを使用しようとしているが,まだわからないことがたくさんあって,苦労するわ~.疲れるなこの作業...

とりあえずメモしておこう.Qcam Pro 4000を使用する.カーネルの再構築でpwcドライバモジュール,Video for Linuxも入れ,カメラを差し込んだら認識してくれた.ただffmpegを起動するとI/Oエラーが出る...

■ffmpeg-0.4.8はMLでも書いてあったが,gcc 3.xでやらないとダメみたい.下のエラーが出た
make -C libavcodec all
make[1]: ディレクトリ `/tmp/ffmpeg-0.4.8/libavcodec' に入ります
gcc -g -O3 -Wall -DHAVE_AV_CONFIG_H -I.. -D_FILE_OFFSET_BITS=64 \
-D_LARGEFILE_SOURCE -D_GNU_SOURCE -c -o common.o common.c
In file included from avcodec.h:14,
from common.c:27:
common.h:66: error: array type has incomplete element type
common.h:70: error: array type has incomplete element type
make[1]: *** [common.o] エラー 1
make[1]: ディレクトリ `/tmp/ffmpeg-0.4.8/libavcodec' から出ます
make: *** [lib] エラー 2
■で,疲れたのでもう辞めたいだが,一旦全部リセットしてやり直し...ソース取得からやろう.今度はsvnではなくgitで.理由:成功した先行者がいたからだ...意味ない...
$ git clone git://git.mplayerhq.hu/ffmpeg/
$ cd ffmpeg/
$ git clone git://git.mplayerhq.hu/libswscale/
$ ./configure
$ make
ffmpegをコンパイルするとき赤の部分でconfigureする.MLから抜き出した.これ助かるわ~
ファイルの先頭に、configure時に指定したオプションが表示されていませんでしたか?
それを見せて欲しかったです。。

こちらの環境では、以下のようになっています。

config.logの先頭
ffmpeg$ cat config.log | head -10
% ./configure --cross-prefix=arm-linux-gnu- --enable-cross-compile \
--cc=arm-linux-gnu-gcc --arch=arm --logfile=config.log

ARCH_EXT_LIST='
altivec
armv5te
armv6
armvfp
iwmmxt
mmi
mmx
mmx2

config.makの先頭
ffmpeg$ cat config.mak | head -10
# Automatically generated by configure - do not modify!
FFMPEG_CONFIGURATION=--cross-prefix=arm-linux-gnu- --enable-cross-compile \
--cc=arm-linux-gnu-gcc --arch=arm --logfile=config.log
prefix=/usr/local
LIBDIR=$(DESTDIR)${prefix}/lib
SHLIBDIR=$(DESTDIR)${prefix}/lib
INCDIR=$(DESTDIR)${prefix}/include
BINDIR=$(DESTDIR)${prefix}/bin
MANDIR=$(DESTDIR)${prefix}/share/man
CC=arm-linux-gnu-gcc
YASM=arm-linux-gnu-yasm

という感じに、CCにarm-linug-gnu-gccを使うように指定できています。

■で,無事コンパイルできた.特権ユーザでコンパイルする必要がない.

■後Armadilloに移動してやってみるだけ.だけどArmadillo300がない.なぜならコンパイルができたのは家に帰ってからだ.明日続きを...

No comments: