動作確認環境:RedHatLinux8.0

USBカメラQcamドライバ


USBカメラQcamドライバについて

  • Logicool社のUSB接続カメラ「Qcam Web」を使っています。これは、インターネットで期間限定で購入したもので、現在販売されているQcam Expressと同じものです。Qcam ExpressのLinux用のドライバが、sourceforge.netから出ています。

    Quickcam Express

  • ドライバのREADMEは、こちらです。


ドライバのコンパイル

  • まず、Quickcam Expressのページからドライバのソースファイルをダウンロードします。

    ・qce-ga-0.40c.tar.gz (40KB)

  • 以下の手順でコンパイルします。「mod_quickcam.o」が作成されます。

    $ tar xzf qce-ga-0.40c.tar.gz
    $ cd qce-ga-0.40c
    $ make
    

  • 「mod_quickcam.o」のモジュール情報は、以下の様になりました。

    # /sbin/modinfo ./mod_quickcam.o
    filename:    ./mod_quickcam.o
    description: "Logitech Quickcam Express Webcam driver"
    author:      "see README"
    license:     "GPL"
    parm:        debug int, description "Sets the debug output (1,2,4,8,16,32)"
    parm:        interpolation int, description "Sets the interpolation mode (0-1)"
    parm:        mode int, description "Sets the speed (0-1)"
    parm:        keepexposure int, description "Keep gain settings across one open to another (0-1)"
    parm:        tobgr int, description "Automatic RGB -> BGR conversion"
    parm:        rgain int, description "Initial value of red gain (0-255)"
    parm:        bgain int, description "Initial value of blue gain (0-255)"
    parm:        ggain int, description "Initial value of green gains (0-255)"
    parm:        bright int, description "Initial value for brightness (0-65535)"
    parm:        video_nr int, description "Set videodevice number (/dev/videoX)"
    


ドライバの仮組み込みと確認

  • 次に、展開したディレクトリ「qce-ga-0.40c」にあるシェルスクリプト「quickcam.sh」で組込みます。これは、一時的にドライバを組込むだけで、インストールされる訳ではありません。「mod_quickcam」モジュールがあればOKです。

    $ su
    # ./quickcam.sh
    Using /lib/modules/2.4.18-14/kernel/drivers/media/video/videodev.o
    insmod: a module named videodev already exists
    Using /lib/modules/2.4.18-14/kernel/drivers/usb/usbcore.o
    insmod: a module named usbcore already exists
    Using /lib/modules/2.4.18-14/kernel/drivers/usb/usb-uhci.o
    insmod: a module named usb-uhci already exists
    Using /lib/modules/2.4.18-14/kernel/drivers/usb/usb-ohci.o
    /lib/modules/2.4.18-14/kernel/drivers/usb/usb-ohci.o: init_module: No such device
    Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters.
          You may find more information in syslog or the output from dmesg
    Using /lib/modules/2.4.18-14/kernel/drivers/usb/uhci.o
    /lib/modules/2.4.18-14/kernel/drivers/usb/uhci.o: init_module: No such device
    Hint: insmod errors can be caused by incorrect module parameters, including invalid IO or IRQ parameters.
          You may find more information in syslog or the output from dmesg
    Module                  Size  Used by    Not tainted
    mod_quickcam           42224   0  (unused)
    audio                  43476   0  (unused)
    snd-usb-audio          46144   0  (unused)
    sr_mod                 18136   0  (autoclean)
    snd-pcm-oss            44420   0  (autoclean)
    snd-mixer-oss          15480   0  (autoclean) [snd-pcm-oss]
    bttv                   71424   0  (autoclean)
    tuner                  11456   1  (autoclean)
    msp3400                18636   0  (autoclean) (unused)
    i2c-algo-bit            8840   1  (autoclean) [bttv]
    i2c-core               19236   0  (autoclean) [bttv tuner msp3400 i2c-algo-bit]
    videodev                8288   3  (autoclean) [mod_quickcam bttv]
    snd-emu10k1            80848   0 
    snd-pcm                83328   0  [snd-usb-audio snd-pcm-oss snd-emu10k1]
    snd-timer              15304   0  [snd-pcm]
    snd-hwdep               5888   0  [snd-emu10k1]
    snd-rawmidi            18400   0  [snd-usb-audio snd-emu10k1]
    snd-util-mem            3032   0  [snd-emu10k1]
    snd-seq-device          6176   0  [snd-emu10k1 snd-rawmidi]
    snd-ac97-codec         36100   0  [snd-emu10k1]
    snd                    39404   0  [snd-usb-audio snd-pcm-oss snd-mixer-oss snd-emu10k1 snd-pcm snd-timer snd-hwdep snd-rawmidi snd-util-mem snd-seq-device snd-ac97-codec]
    soundcore               6532   8  [audio snd]
    sg                     36556   0  (unused)
    autofs                 13348   0  (autoclean) (unused)
    ne2k-pci                7296   1 
    8390                    8236   0  [ne2k-pci]
    iptable_filter          2412   0  (autoclean) (unused)
    ip_tables              14936   1  [iptable_filter]
    ide-scsi               10512   0 
    ide-cd                 33608   0 
    cdrom                  33696   0  [sr_mod ide-cd]
    nls_iso8859-1           3516   1  (autoclean)
    nls_cp437               5116   1  (autoclean)
    vfat                   13084   1  (autoclean)
    fat                    38712   0  (autoclean) [vfat]
    mousedev                5524   0  (unused)
    keybdev                 2976   0  (unused)
    hid                    22244   0  (unused)
    input                   5888   0  [mousedev keybdev hid]
    usb-uhci               26188   0  (unused)
    usbcore                77024   1  [mod_quickcam audio snd-usb-audio hid usb-uhci]
    ext3                   70368   1 
    jbd                    52212   1  [ext3]
    ncr53c8xx              61868   0  (unused)
    sd_mod                 13552   0  (unused)
    scsi_mod              107144   5  [sr_mod sg ide-scsi ncr53c8xx sd_mod]
    

  • USBカメラを接続し、認識される事を確認します。

    $ su
    # tail -f /var/log/messages
    ....
    
    【ここでカメラを接続する】
    
    Jan 18 09:57:04 taro kernel: hub.c: USB new device connect on bus1/2, assigned device number 4
    Jan 18 09:57:04 taro kernel: USB Quickcam Class ff SubClass ff idVendor 46d idProduct 850
    Jan 18 09:57:04 taro kernel: USB Quickcam camera found using: $Id: quickcam.c,v 1.102 2002/03/25 22:22:34 jfclere Exp $
    Jan 18 09:57:04 taro kernel: quickcam: probe of HDCS1000 sensor = 00 ae id: 08
    Jan 18 09:57:04 taro kernel: quickcam: probe of BP100 sensor = 00 00 id: 64
    Jan 18 09:57:04 taro kernel: quickcam: probe of VV6410 sensor = 19 00 id: 19
    Jan 18 09:57:04 taro kernel: quickcam: VV6410 sensor detected
    Jan 18 09:57:04 taro kernel: load_vv6410_mod
    Jan 18 09:57:04 taro kernel: USB Quickcam Class 1 SubClass 1 idVendor 46d idProduct 850
    Jan 18 09:57:04 taro kernel: ALSA ../alsa-kernel/usb/usbaudio.c:2187: cannot create a card instance 0
    Jan 18 09:57:04 taro kernel: usbaudio: device 4 audiocontrol interface 1 has 1 input and 0 output AudioStreaming interfaces
    Jan 18 09:57:04 taro kernel: usbaudio: device 4 interface 2 altsetting 0 FORMAT_TYPE descriptor not found
    Jan 18 09:57:04 taro kernel: usbaudio: valid input sample rate 8000
    Jan 18 09:57:04 taro kernel: usbaudio: valid input sample rate 48000
    Jan 18 09:57:04 taro kernel: usbaudio: valid input sample rate 44100
    Jan 18 09:57:04 taro kernel: usbaudio: valid input sample rate 32000
    Jan 18 09:57:04 taro kernel: usbaudio: valid input sample rate 22050
    Jan 18 09:57:04 taro kernel: usbaudio: valid input sample rate 16000
    Jan 18 09:57:04 taro kernel: usbaudio: valid input sample rate 10257
    Jan 18 09:57:04 taro kernel: usbaudio: device 4 interface 2 altsetting 1: format 0x00000010 sratelo 8000 sratehi 48000 attributes 0x01
    Jan 18 09:57:04 taro kernel: usbaudio: registered dsp 14,19
    Jan 18 09:57:04 taro kernel: usbaudio: warning: found 1 of 0 logical channels.
    Jan 18 09:57:04 taro kernel: usbaudio: assuming the channel found is the master channel (got a Philips camera?). Should be fine.
    Jan 18 09:57:04 taro kernel: usbaudio: registered mixer 14,16
    Jan 18 09:57:07 taro /etc/hotplug/usb.agent: Setup mod_quickcam snd-usb-audio audio for USB product 46d/850/100
    



ドライバのインストールと確認

  • 一般的な「make install」でのインストールはできません。そのため、手動で組込みます。まずは、「mod_quickcam.o」をドライバモジュールの格納ディレクトリにコピーします。

    $ su
    # cp ./mod_quickcam.o /lib/modules/2.4.18-14/kernel/drivers/usb
    

  • 次に、「/etc/modules.conf」を編集し、次の一行を追加します。

    alias camera mod_quickcam
    

  • 次に、ライブラリをロードし、エラーメッセージが出ない事を確認します。

    # /sbin/depmod -a
    

  • 「mod_quickcam」モジュールがロードされている事を確認します。

    # /sbin/lsmod | grep mod_quickcam
    mod_quickcam           42224   0 
    videodev                8288   3  (autoclean) [mod_quickcam bttv]
    usbcore                77024   1  [audio snd-usb-audio mod_quickcam hid usb-uhci]
    

  • 「xawtv」のコマンドを使ってビデオデバイスとして認識されている事を確認します。私の場合は、「/dev/video1」として認識されました。ちなみに、「/dev/video0」は、ビデオキャプチャボードGV-BCTV3です。

    $ xawtv -hwscan
    This is xawtv-3.55, running on Linux/i686 (2.4.18-14)
    looking for available devices
    port 55-55
        type : Xvideo, video overlay
        name : video4linux
    /dev/video0: OK
        type : v4l
        name : BT878(GV-BCTV3)
        flags: overlay capture tuner 
    /dev/video1: OK
        type : v4l
        name : Logitech USB Camera
        flags:  capture  
    


参考図書

  • USBカメラとLinuxで作るお手軽ライブカメラシステム:Linuxマガジン2002年11月号


トップへもどる


Copyright (c) 2002-2003 Hiroshi Nakamura. All rights reserved.