$ sudo cardctl ident Socket 0: product info: "Adaptec", "APA-1480 SCSI Host Adapter", "Version 1.10 ","" manfid: 0x012f, 0xcb01 function: 8 (SCSI) PCI id: 0x9004, 0x6075
2.2.x カーネルの時には、apa1480.cb というモジュールを作って使えました(使ってました)。
しかし、kernel が 2.4.x になって(2.4.19 あたりからか?)、 このカードが動かなくなり調べたところ、aic7xxx に統合されたようです。 また、注意点として、pcmcia-source パッケージ(PCMCIA module 用ソース)とバッティングするようで、 pcmcia-source を入れずに、全て 2.4 系カーネル同梱の物を使うようです。
このあたりは、ソースを当たって下さい。Debian の場合だと、
file:///usr/src/kernel-source-2.4.20/drivers/scsi/aic7xxx/
あたり、
また、もし、pcmcia-source のソースを持っているなら、
file:///usr/src/modules-pcmcia-cs-tree/README-2.4
あたり、
を参考に。
この aic7xxx というのは、PCI ドライバと共通の物で、 カードの扱いの枠組からして根本的に違うので、注意が必要です。
keyword 的には、
みたいな感じです。
付属のドキュメント(README-2.4)を参照してわかったのですが、 pcmcia-source のモジュールではうまく扱えないようなので、 /usr/src/modules/ 以下から pcmcia-cs のソースを消します。
# apt-get remove --purge pcmcia-source
その上で、カーネル側ドライバで、必要な物を用意する事にします。
hotplug を扱う為には、murasaki もしくは、 hotplug, hotplug-utils を用意しておきます。 今回は、hotplug の方を使ってみました。(特に理由はありません)
# cd /usr/src/kernel-source-2.4.20 # make menuconfig # make-kpkg clean # make-kpkg --revision soleil.1.0 kernel_image # make-kpkg modules_image # cd ../ # dpkg -i kernel-image-2.4.20_soleil.1.0_i386.deb [...]
で、今までのように cardctl eject とかせずに、いきなり抜き差しで良いみたいです。^^;;;
なんかおっかないですが。^^;;
pcmcia-cs パッケージの cardmgr も動いていて、 次にあげるカードをいきなり抜き差しして使える事を確認しています。
Cardbus なカードを差すと、lspci で見えるんですね。^^;; なるほど... pci_hotplug ってこういう事か って妙に納得したりしてます。
たとえば 3com の 3CCFE575CT の場合、
02:00.0 Ethernet controller: 3Com Corporation 3CCFE575CT Cyclone CardBus (rev 10) Subsystem: 3Com Corporation FE575C-3Com 10/100 LAN CardBus-Fast Ethernet Flags: bus master, medium devsel, latency 64, IRQ 9 I/O ports at 4000 [size=128] Memory at 10800000 (32-bit, non-prefetchable) [size=128] Memory at 10800080 (32-bit, non-prefetchable) [size=128] Expansion ROM at 10400000 [size=128K] Capabilities: <available only to root>
で、今回のターゲット APA 1480 の場合、
02:00.0 SCSI storage controller: Adaptec AIC-1480 / APA-1480 (rev 03) Subsystem: Adaptec AIC-1480 / APA-1480 Cardbus Flags: medium devsel, IRQ 9 I/O ports at 4000 [size=256] Memory at 10800000 (32-bit, non-prefetchable) [size=4K] Expansion ROM at 10400000 [size=64K] Capabilities: [dc] Power Management version 1
のように見えます。
現在、この APA-1480B の先につながっているのは、EPSON GT-7600S というスキャナで、 sg モジュールで使えます。
一応、オプション品の透過原稿ユニットも使えていて、gimp1.2, 1.3 + xsane プラグインで、 ポジフィルムを読み込み、処理しています。
GT-7600S の電源を入れた状態で、 APA-1480B を差し込んだ時の /var/log/messages は次のようになります。
kernel: cs: cb_alloc(bus 2): vendor 0x9004, device 0x6075 kernel: PCI: Enabling device 02:00.0 (0000 -> 0003) kernel: ahc_pci:2:0:0: Host Adapter Bios disabled. Using default SCSI device parameters kernel: scsi2 : Adaptec AIC7XXX EISA/VLB/PCI SCSI HBA DRIVER, Rev 6.2.8 kernel: <Adaptec 1480A Ultra SCSI adapter> kernel: aic7860: Ultra Single Channel A, SCSI Id=7, 3/253 SCBs kernel: kernel: Vendor: EPSON Model: SCANNER GT-7600 Rev: 1.03 kernel: Type: Processor ANSI SCSI revision: 02
なお、SCSI 機器の probe には少し時間が必要なようで、 "瞬時に" という訳にはいかないようです。
カードを外した時に、aic7xxx が残ってしまい、 再度カードを差した時に、scanner がうまく見つけられない時があります。
設定ミスの可能性が高いが、どうすればカードを外した時に aic7xxx も外れるのか、 再度差した時に scanner の probe がうまくいくのか、調べる必要がある状態です。
このあたり、何かご存知の方がおられましたら教えて下さい。_o_