Raspberry Pi 2で遊ぶ:UVCのパンチルト対応

この記事は「Raspberry Pi記事まとめ」に集約しています。

既に販売終了しているLogicoolのQcam Orbit AFは昔から珍しいパンチルト対応のWebカメラです。

家の監視カメラ用にRPi1に挿して使用している訳ですが、こないだなんとなくアップデートしたらパンチルトが効かなくなっていました。

2009年ごろのUVCドライバから機能を分離したのが原因で、mjpeg-streamerを起動すると以下の様なエラーがずらずらと出ます。

UVCIOC_CTRL_ADD - Error at Pan (relative): Inappropriate ioctl for device (25)

確かにQcam Orbit以降のUSBカメラはパンチルト機能なんてありませんし、外したのもわからなくはないですが…

今回はこのパンチルト機能を復活させた記録です。

あと、まだ検証してませんが、rpi-update(ファームウェアアップデート)をすると元に戻る可能性があります。

参考サイト

パンチルト対応版libwebcamをビルドする

Raspbianのカーネルバージョン確認

$ uname -r
4.1.13+

カーネル4.1のソースをダウンロード

UVCのドライバを作るのにカーネルのソースを一部使う必要があります。

apt-getでは3.18までしかないので、RPiのサイトから拾ってくる必要があります。

$ git clone --depth 1 https://github.com/raspberrypi/linux.git -b rpi-4.1.y

libwebcamのダウンロード

定番ダウンロード先であったquickcamteam.netというサイトはなぜか2010年頃から存在していません。なのでsourceforgeから落とします。

$ wget http://downloads.sourceforge.net/project/libwebcam/source/libwebcam-src-0.2.5.tar.gz
$ tar zxvf libwebcam-src-0.2.5.tar.gz

uvcvideo.hをシンボリックリンク

$ ln -s /home/pi/linux/drivers/media/usb/uvc/uvcvideo.h common/include/uvcvideo.h

必要なソフトウェアをインストール

$ sudo apt-get install cmake gengetopt libxml2-dev

libwebcamのビルド

$ mkdir build
$ cd build
$ cmake ..
$ make
$ sudo make install
$ sudo ldconfig

バージョン確認

0.2.2から0.2.6になりました。

$ uvcdynctrl -h
uvcdynctrl 0.2.6

制御項目確認

パンチルトが追加されているのを確認できます。

$ uvcdynctrl -c
Listing available controls for device video0:
(省略)
Pan (relative)
Tilt (relative)
Pan Reset
Tilt Reset
(省略)

再起動してmjpg-streamerを起動すれば、パンチルトが有効になっているはずです。

RPiの例が少なくて困りましたが、なんとかなってよかったです。

【未解決】ストリーム中、ネットワークが停止する

mjpg-streamerでMotionJPEGのストリーム画面をしばらく流すと、RPiのネットワークが停止する現象が発生しています。タイミングはまちまちで、5分の場合もあれば30分以上流しても問題ないことも。

ネットワーク停止した段階で状況を調べてみると、IPアドレスが「169.254」のローカル扱いに変わっていました。また、ログを見ると「r8188eu : error indicate disassoc」が出ており、このときネットワークが落ちてローカル扱いになったと思われます。恐らくドライバかdhcpcdの不都合かもしれません。

季節柄発熱が原因とも考えにくく、対応方法がわかりません。

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト / 変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト / 変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト / 変更 )

Google+ フォト

Google+ アカウントを使ってコメントしています。 ログアウト / 変更 )

%s と連携中