パスワードを忘れた? アカウント作成
645117 journal

T.Fujikiの日記: 2004年 初挑戦

日記 by T.Fujiki
 昨日買った Canon CanoScan D1250U2 を FreeBSD でも使ってみようかと。でも、良く考えてみると、FreeBSD 4.x 系って USB2.0 サポートしてないんだよな…まあ良いや、USB1.1 ででも動けば良いし。

■環境
M/B: ABIT KT7-RAID
CPU: AMD Duron1.3GHz(Morgan)
USB: IODATA USB2-PCI2 (USB2.0/1.1 NEC のチップ)
OS : FreeBSD 4.7-RELEASE-p24

■スキャナ
Canon CanoScan D1250U2

■参考文献
FreeBSD の USB デバイス動作状況 - スキャナ編

■必要な事
  1. まずつなぐ。
  2. FreeBSD 上で USB スキャナ (uscanner) として認識されるか、 ただの USB デバイス (ugen) として認識されるか確認する。
  3. ベンダ ID と、デバイス ID を控える。(4 で必要)
  4. カーネルさんにスキャナを覚えてもらうため、 /usr/src/sys/dev/usb/ にあるソースコードを書き換える。
  5. カーネルの再構築とリブート。
  6. uscanner として認識されれば OK。後は良きに計らう。

■やった事

  1. 箱から出してつなぐ
    なんか箱から出しにくかった。 箱から出した時、畳の上にゴトッと落して鬱。
  2. FreeBSD で認識させる
    カーネルさんのメッセージ。

    ugen0: Canon CanoScan, rev 2.00/2.00, addr 2

    ugen0 という事は、USB デバイスの中の何かって事か。 まだ USB スキャナとしてこの人は認めていないらしい。 ちょっと sane-backends を ports から入れて、 sane-find-scanner を実行してみる。

    # No SCSI scanners found. If you expected something different, make sure that
    # you have loaded a SCSI driver for your SCSI adapter.

    found USB scanner (vendor=0x04a9, product=0x220c) at libusb:/dev/usb0:/dev/ugen0
    # Your USB scanner was (probably) detected. It may or may not be supported by
    # SANE. Try scanimage -L and read the backend's manpage.
    # Scanners connected to the parallel port or other proprietary ports can't be
    # detected by this program.

    要するに USB スキャナっぽいけど使えないよと。

  3. usbdevs でデバイス ID と、ベンダ ID を見る
    つか sane-find-scanner でも確認できてたじゃないか…。 まあ良いか、usbdevs -v を実行。

    Controller /dev/usb0:
    addr 1: self powered, config 1, OHCI root hub(0x0000), NEC(0x0000), rev 1.00
    port 1 addr 2: self powered, config 1, CanoScan(0x220c), Canon(0x04a9), rev 2.00
    port 2 powered
    port 3 powered

    デバイス ID は「0x220c」で、ベンダ ID は「0x04a9」という事が判明。

  4. カーネルソース編集
    /usr/src/sys/dev/usb ディレクトリのソースを編集する。
    編集するファイルは usbdevs と uscanner.c の二つ。

    まずは usbdevs。

    /* Canon, Inc. products */
    product CANON N656U 0x2206 CANOSCAN N656U
    product CANON S10 0x3041 PowerShot S10
    product CANON S100 0x3045 PowerShot S100
    product CANON D1250U2 0x220c CanoScan D1250U2

    同ディレクトリにある FILES によると、 usbdevs.h と usbdevs_data.h は、 usbdevs から生成されるとあるので、 usbdevs の冒頭にある通り、usbdevs 書き換えた後、 以下を実行。

    make -f Makefile.usbdevs

    これで、usbdevs.h とusbdevs_data.h が更新される。 次は uscanner.c。

    /* Canon */
    {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_N656U }, 0 },
    {{ USB_VENDOR_CANON, USB_PRODUCT_CANON_D1250U2 }, 0 },

    定数は usbdevs_data.h とかを参考にした。

  5. カーネルの再構築
    USB 絡みのデバイスのサポートを適当に有効にしとく。 当然、device uscanner は要る。
  6. 再起動
    カーネルさんのメッセージ。

    uscanner0: Canon CanoScan, rev 2.00/2.00, addr 2

    とりあえず ugen0 から uscanner0 となった。

  7. SANE の設定
    /usr/local/etc/sane.d/ にある dll.conf と canon.conf を編集。
    dll.conf は「canon」行以外を # でコメント化して、 canon.conf は「/dev/uscanner0」を追加し、後は # でコメント化。 そして sane-find-scanner を実行してみる。

    # No SCSI scanners found. If you expected something different, make sure that
    # you have loaded a SCSI driver for your SCSI adapter.

    found USB scanner (vendor=0x04a9, product=0x220c) at /dev/uscanner0
    # Your USB scanner was detected. It may or may not be supported by
    # SANE. Try scanimage -L and read the backend's manpage.

    # Scanners connected to the parallel port or other proprietary ports can't be
    # detected by this program.

    # You may want to run this program as root to find all devices. Once you
    # found the scanner devices, be sure to adjust access permissions as
    # necessary.

    ぐは、やっぱり駄目だ…鬱。

  8. SANE のページを見る
    Canon CanoScan D1250U2 はサポートされていないと書いてありました。 うーん、ひとまず SANE では使えない事が判明。

 大人しく WindowsXP で使おう…。

この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。
typodupeerror

※ただしPHPを除く -- あるAdmin

読み込み中...