FreeBSD Daily Topics
2010年1月25日 ≪注目≫Video4BSD登場 - Video4Linux Webカメラ対応
heads-up
- Webcam for FreeBSD, Video4BSD and Video4Linux
current - 2010年1月10日
(協定世界時) に9-CURRENTに対して実施されたコミット (r202025) および2010年1月16日 (協定世界時) にPorts Collectionに追加された一連のアプリケーションによって, FreeBSDアプリケーションからVideo4Linuxを使ったアプリケーションが動作するようになりました。 表1 Webカメラ関連Ports
port 内容 multimedia/ video4bsd-kmod /dev/ videoNおよび/dev/ video_ daemonNデバイスを提供するカーネルモジュール multimedia/ webcamd Webカメラデバイスドライバ集。ユーザランドでデーモンとして動作し, /dev/ video_ daemonNおよびlibusbと連系してWebカメラからデータのやりとりを実現する multimedia/ pwcview Webカメラデビューア multimedia/ v4l_ compat Video4Linuxを利用するためのラッパライブラリ multimedia/ libv4l Video4Linuxヘッダファイル video4bsdカーネルモジュールを読み込むと/dev/
videoNと/dev/ video_ daemonNというデバイスファイルが生成されます。/dev/ videoNへのアクセス (mmap, read, write, open, close) は/dev/ video_ daemonNへ転送されます。 /dev/
video_ daemonNはwebcamd(8)に利用されるデバイスファイルです。webcamd(8)はWebカメラのデバイスドライバおよびlibusbを使ったデバイスとのやりとりを実施します。つまり, /dev/ video_ daemonNへ渡ってきた処理はwebcamd(8)で処理され, その結果が/dev/ video_ daemonN→/dev/ videoNを経て, Video4Linuxを利用しているアプリケーションへ戻っていく仕組みになっています。今のところサポートされていないのはpoll処理です。大雑把に処理の流れをたどると次のようになります。 - Video4Linux対応のアプリケーション
- /dev/
videoN - /dev/
video_ daemonN - webcamd(8)
- libusb
- Webカメラ
- libusb
- webcamd(8)
- /dev/
video_ daemonN - /dev/
videoN - Video4Linux対応のアプリケーション
Video4Linuxに対応したカーネルモジュールとデバイスドライバとしてはすでにpwc(4)
(multimedia/ pwcbsd) がありますが, 対応しているデバイスドライバの数に限りがあり, 最近のデバイスは対応していないという状況になります。これと比べて今回新しく追加されたwebcamd (multimedia/ webcamd)は対応しているデバイスが多く, より多くのWebカメラが利用できます。 この機能を試すには,
まず次の条件をみたすFreeBSDが必要です。 表2 Video4FreeBSD / Video4Linuxに対応したFreeBSD
2010年1月10日 (r202025) 以降のFreeBSD 9-CURRENT 2010年1月17日 (r202504) 以降のFreeBSD 8-STABLE 2010年1月16日21時
(協定世界時) 以降のPorts Collectionから次のアプリケーションやライブラリ, カーネルモジュールをインストールします。 - multimedia/
video4bsd-kmod - multimedia/
webcamd - multimedia/
pwcview - multimedia/
v4l_ compat - multimedia/
libv4l
システム起動時にVideo4BSDカーネルモジュールを読み込ませるため,
/boot/ loader. confまたは/boot/ loader. conf. localファイルに次の設定を追加します。 リスト /boot/
loader. confまたは/boot/ loader. conf. localファイルに追加する設定 video4bsd_
load="YES" /dev/
videoNおよび/dev/ video_ daemonNデバイスファイルにアクセスできるように, /etc/ devfs. rulesファイルに次の設定を追加します。ルールセットの部分 ([localrules=10]) は使っているものへ適宜変更してください。なにも設定していなければこの設定を追加します。 なお,
この設定では, Webカメラを利用するユーザはoperatorグループに所属している必要があります。それ以外のユーザでも利用できるようにする場合には, パーミッションを 「0666」 に変更するなど必要に応じて変更します。 リスト /etc/
devfs. rulesファイルに追加するパーミッション設定の例 [localrules=10] # Webcam add path 'video*' mode 0660 group operator
/etc/
devfs. rulesファイルのルールを適用し, さらにwebcamd(8)が起動できるように次の設定を/etc/ rc. confまたは/etc/ rc. conf. localファイルに追加します。ルールセットの部分 ([localrules=10]) は使っているものへ適宜変更してください。何も設定していなければこの設定を追加します。 リスト /etc/
devfs. rulesファイルのルールを適用し, さらにwebcamd(8)が起動できるように/etc/ rc. confまたは/etc/ rc. conf. localに追加する設定 devfs_
system_ ruleset="localrules" webcamd_ enable="YES" ここで一旦システムを再起動するか,
次のようにして手動でカーネルモジュールの読み込みと, devd(8)デーモンの再起動を実施します。 手動でVideo4BSDカーネルモジュールを読み込みdevd(8)を再起動する方法
# kldload video4bsd # service devd restart
Webカメラを差し込むと自動的にwebcamd(8)デーモンが起動するようになります。自動的に起動してこない場合には,
次のように手動で起動します。この例では/dev/ ugen7. 2にWebカメラがささっていることになります。ugenは実際にWebカメラがささっているものを指定してください。 「tail -f /var/ log/ messages」 のようにログファイルを監視しながらWebカメラの挿抜を実施すれば, どのugenファイルが使われているか確認できます。 webcamd(8)を手動で起動する方法
# service webcamd start ugen7.
2 Webカメラが差し込まれた段階での動作は/usr/
local/ etc/ devd/ webcamd. confファイルに記述されています。このファイルを編集すればUnknownデバイスとして認識されるWebカメラでも自動的にwebcamd(8)を起動できるようになります。ここでpwcview(1)を起動すると, Webカメラの撮影している内容が画面に表示されるようになります。 pwcview(1)を起動
% pwcview
Video4Linuxに対応したアプリケーションは再度ビルドすることで,FreeBSD Video4BSDの機能を利用できるようになります。たとえばVLCを再構築するとVideo4BSD経由でWebカメラの映像を補足できるようになります。
CheeseでWebカメラを使うには,
Gstreamerの若干の調整と再構築が必要です。current-mlに報告された内容によれば, 今回追加された機能はVideo4Linuxを利用するすべてのアプリケーションで利用できるようになるとされています。なお, LinuxバイナリであるSkypeからは利用を確認できませんでした。
バックナンバー
FreeBSD Daily Topics
- 2010年1月27日 BSD magazine 無償化,オンラインで毎月提供へ
- 2010年1月25日 ≪注目≫Video4BSD登場 - Video4Linux Webカメラ対応
- 2010年1月22日 BSDライセンス版bc(1)およびdc(1)をベースシステムへマージ
- 2010年1月19日 ラッパコマンドservice(8)追加
- 2010年1月18日 ≪注意≫utmp(5)からutmpxへ切り替え - Ports Collectionからインストールしたアプリケーションは個別に対処が必要
- 2010年1月12日 Softupdatesジャーナル機能のテスト呼びかけ
- 2010年1月8日 セキュリティアドバイザリZFS,ntpd(8),bind(8)および不具合通告FreeBSD-8.0
- 2010年1月7日 OpenJDK7 Ports Collectionに登場,VirtualBox 3.1.2 portのテスター募集
- 2010年1月6日 FreeBSD 6.3,セキュリティサポート終了間近
- 2010年1月5日 SATA on ATAとAHCI to CAMの性能比較