NetBSDでイメージ系USBデバイスを使ってみる

はじめに

USBでつながるデバイスは多くの種類がありますが、NetBSDでどう使うかと言うと、 あまり解説がない気がします。 ちゃんと動かない状況もあると思っているのですが、多くの人が使って バグを報告しないと良くなって行かないと思うので、私の把握できている 使い方をまとめておきたいと思います。

今回は、フラットベッドイメージスキャナーと、ビデオカメラについて、書きたいと思います。

NetBSDの環境としては、NetBSD/amd64 7.99.2を使います。 pkgsrcは、stable branch (pkgsrc-2014Q3等)ではなくcurrentを使います。

フラットベッドスキャナー

私の自由に使えるフラットベッドスキャナーとしては、EPSON GT-8200U、 Canon CanoScan LiDE 40、Canon CanoScan LiDE 500Fの3台を持っている のですが、今回はEPSON GT-8200Uを使ってみます。 Canonの製品は、いずれもNetBSD/amd64 6.99.xの頃には使っていて、 正常に動作していたのですが、7.99.2では動かなくなっていました…。

基本的には、pkgsrc/graphics/sane-backendsとpkgsrc/graphic/xsaneを使います。 pkgsrc/graphics/sane-frontendsのxscanimageは、EPSON GT-8200Uとの組み合わせでは segfaultして動きませんでした。

どれも古いものですが、中古で非常に安価に買えるので、使い始めには 良いように思います。

カーネルの準備

GENERICカーネルでは、EPSON GT-8200Uは、uscanner(4)なデバイスとして 認識されます。 saneを使うには、ugen(4)として認識される必要があります。 USERCONFで無効にするか、kernel設定ファイルでuscannerで始まる行を コメントアウトして、ビルドし直して起動させます。

ugen0: EPSON EPSON Scanner, rev 1.00/1.10, addr 6
のように認識されるようになります。

認識できるか確認する

scanimage(1)を使って、SANEで 使用できるか確認します。 scanimage(1)は、pkgsrc/graphics/sane-backendsに含まれているので、 インストールします。

$ cd /usr/pkgsrc/graphics/sane-backends
$ make install
このままでは、/dev/usb*と/dev/ugen*が一般ユーザーでは読めないために、 使えません。rootになって自分を所有者にしておきます。 複数人で使うマシンであれば、スキャナーを使えるユーザーの所属するグループ を作成し、そのグループが読み書きできるようにしておけば良いと思います。
# chown YOUR_USERNAME /dev/usb* /dev/ugen*
スキャナーをUSB接続した上で、以下のように実行してみましょう。
$ scanimage -L
device `epson2:libusb:/dev/usb0:/dev/ugen0' is a Epson GT-8200 flatbed scanner
のように表示されます。epson2ドライバーを使っていることが分かります。 以上のように表示されれば、基本的には使えます。

コマンドラインで使ってみる

GUIで操作する前に、コマンドラインで使ってみます。 コマンドラインでも解像度等のいろいろな設定ができるので、 定型のスキャンをするのであれば、一度コマンドラインオプションを しっかり決めて、それを毎回実行するようにすれば、面倒はないと思います。 ここでは、用紙サイズはカードサイズくらい、カラーで、解像度は300 dpi、 出力ファイル形式はTIFFである場合のテストをしてみます。 ファイルにリダイレクトしないとスキャンは実行されません。

$ scanimage --format=tiff --mode Color -x 86 -y 55 --resolution 300 > test.tif
例えば、ImageMagickのdisplay(1)コマンド等でスキャン結果は確認できます。 その他のコマンドラインオプションについては、sane-epson2(5)のman pageに 書かれているので、参照してみてください。

GUIでスキャンする

XSane-0.998は古いですが最新のリリースです。 pkgsrc/graphics/xsaneからインストールできます。 以下のように操作します。
$ cd /usr/pkgsrc/graphics/xsane
$ make install
スキャナーを接続した上で、起動させます。
$ xsane&
検出されたら、条件を選択した上で、「スキャン」ボタンを押してスキャンできます。

GIMPからスキャンする

XSaneはGIMPのプラグインとして 使うことができます。プラグインとすることで、スキャンした画像を GIMP内に自動的に取り込むことができます。 Microsoft Windows等のAdobe Photoshop等でスキャンするのと同じ感じです。 まずは、GIMPからXSaneをプラグインとして登録します。 ホームディレクトリーのGIMPのディレクトリー以下にシンボリックリンクを 作って置きます。

$ ln -s /usr/pkg/bin/xsane ~/.gimp-2.8/plug-ins
その上で、GIMPを起動します。GIMPはpkgsrc/graphics/gimpからインストール できます。 起動させると、 GIMPのファイル→画像の生成→XSane: デバイスダイアログ からXSaneを起動させることができます。

「スキャン」ボタンを押してスキャンが終わると、自動的にGIMPに取り込まれます。

ビデオカメラ

LogicoolのWebcam C300 (V-U0004)と言うカメラを持っています。 ビデオチャット用にUSBオーディオデバイスも内蔵されています。 以下のように認識されます。audio1でplaybackがあるのは違いそうな気もしますが…。 USB Video Classなビデオカメラが使えます。

uvideo0 at uhub1 port 2 configuration 1 interface 0: Logitech product 0805, rev 2.00/0.09, addr 4
video0 at uvideo0: Logitech product 0805, rev 2.00/0.09, addr 4
uaudio0 at uhub1 port 2 configuration 1 interface 2
uaudio0: Logitech product 0805, rev 2.00/0.09, addr 4
uaudio0: audio rev 1.00
audio1 at uaudio0: full duplex, playback, capture, independent
pkgsrc/graphics/ucviewを使えば、複数のビデオカメラを切り替えて参照すること ができます。 pkgsrc/graphics/mplayerで
$ mplayer -tv fps=30 tv://
のようにすれば、参照することができますが、driver=v4l2:...のようなオプションが 効かないようなので、解像度や複数のビデオカメラを扱うことはできませんでした。

0 件のコメント:

コメントを投稿

注: コメントを投稿できるのは、このブログのメンバーだけです。

plgarc/wip/llama.cppでpkgsrcのBLASサポートを探る

この記事は、 NetBSD Advent Calendar 2024 の13日目の記事です。 llama.cppを使ってみる 以前に、 NetBSD/amd64でllama.cppを使ってみる という記事で llama.cpp を使ってみていました。 あれか...