本章ではLinuxのPCMCIA自体の解説はいたしません。PCMCIA自体に関しては、以下のような日本語文書があります。
David Hinds著. 翻訳: 小島 三弘さん , 播口 陽一さん , 藤原 輝嘉さん. http://www.linux.or.jp/JF/JFdocs/PCMCIA-HOWTO.html
David Hinds著. Kazuyuki Okamoto, Hiroshi Kawashima, Hiro Sugawara 訳. http://www.linux.or.jp/JF/JFdocs/PCMCIA-PROG.html
また、Linux pcmcia-csで使えるPCMCIAカードについては、pcmcia-csの中に SUPPORTED.CARDSというファイルがあるので、そちらを参照してください。ア スキー出版局から「Walking Linux」というノートパソコン用の本がでていま すが(井伊もDHU2にLinuxをインストールした時はお世話になりました)、この 著者メンバーの一人である安達昭仁さんのウェブページ「My Walking Linux HomePage」 http://www.st.rim.or.jp/~adats/WL/SUPPORTED.CARDS.JP.html には、どうしても海外中心の情報になるSUPPORTED.CARDSに 加えて、多くの日本国内で流通しているカードについての動作情報があり、ま たその他にもノートパソコンでLinuxを活用するためのたくさんの情報やリン クが丁寧に整理されています。
さて、比較的最近の98ノート(含エプソン互換機)では普通のAT用パッケージで あるpcmcia-csがそのまま使えます。ただし、設定ファイルであるconfig.opts は変更した方がよいと思われます。AT同様、カーネルをPCMCIA用に再構築する必 要があります。CardBus搭載機ではCardBusが使える可能性があります(未確認) (最近のバージョンのpcmcia-csが必要です)。なお、98固有であるI/O変換機能 は実装されていないので使えないと思います(そのためATでは動くのに98では 動かないカードもあると思われます)。
なお、おくむらさんによると、 「必ずしも再現しなのですが、ちょっと気になっている事として SHIFTを押しながら30行モードでブートするとPCMCIAのprobeのところで ハングしてしまうという症状が出ています。」ということだそうです。
(最新の情報)
/etc/pcmcia/config.opts に exclude memory 0xe0000-0xe7fffという一行を付け足すと、動作しました。(グラフィックVRAM部の除外)
config.opts等の推奨設定をここに出したいので、ユーザの方は是非、 ご自分の設定を教えてください。
とりあえず
IRQ: exclude する対象が AT とは違ってくるはず。 メモリ: DA00-DBFF, +DC00-DFFF, +D000-D7FF しか使えないのかな? I/Oポート: xxD0-xxEF だけ?という風になるのだろうか? しかしこれ以外のメモリ/ポートアドレスで動いてるような気もするなあ。 僕がテストしているのがEPSON互換機だからだろうか? 今でもpcmcia-csがきちんとVRAM領域とかはチェックして(?)外してくれているようだし。
以下の機種で動作が確認されています。
井伊さん
Linux PCMCIA Card Services 3.0.0
kernel build: 2.1.57 #4 Mon Dec 13 02:10:16 GMT+8 2004
options: none
Intel PCIC probe:
Ricoh RF5C296/396 at 0x3e0 ofs 0x00, 2 sockets
host opts [0]: none
host opts [1]: none
ISA irqs (scanned) = 3,5,10,12 status change on irq 10
cs: IO port probe 0x0100-0x03ff: excluding 0x160-0x167 0x260-0x267 0x360-0x367
cs: IO port probe 0x0a00-0x0aff: clean.
cs: memory probe 0x0d0000-0x0dffff: excluding 0xd8000-0xd9fff
cs: memory probe 0x0e0000-0x0effff: excluding 0xe8000-0xeffff
山口さん
Linux PCMCIA Card Services 3.0.0
kernel build 2.1.57 #1109 Tue Mar 24 14:48:19 GMT 1998
options: none
Intel PCIC probe:
Cirrus PD672x at 0x3e0 ofs 0x00, 2 sockets
host opts [0]: [ring] [freq bypass] [65/6/3] [1/15/3]
host opts [1]: [ring] [freq bypass] [65/6/3] [1/15/3]
ISA irqs (default) = 3,4,5,10,11,12,14 status change on irq 14
cs: IO port probe 0x0100-0x03ff: excluding 0x100-0x13f 0x148-0x14f 0x238-0x23f 0
x3b0-0x3cf
cs: IO port probe 0x0a00-0x0aff: excluding 0xa00-0xa07
cs: memory probe 0x0d0000-0x0dffff: excluding 0xd8000-0xdbfff
cs: memory probe 0x0e0000-0x0effff: excluding 0xe8000-0xeffff
おくむらさん
高山さん
佐藤さん
確認済み
未確認,想像
確認済み
未確認,想像
ATで動くものは大抵動くと思います。参考までにbugs@seraphim MLに流れたものを書いておきます。
井伊さん(PC486-NAT)
loading device 'eth0'...
eth0: NE2000 Compatible: port 0x300, irq 5, 10baseT port, hw_addr 00:C0:1B:00:41:02
山口さん(PC-9821 Lavie Nr13),高山さん(PC-9821 Nr15)
井伊さん(PC-486NAT)
loading device 'eth0'...
eth0: NE2000 Compatible: port 0x300, irq 3, hw_addr 00:00:E8:15:28:C6
おくむらさん(PC-9821 Nw133)
井伊さん(PC486-NAT)
Ql: Using preset base address of 230
Ql: Using preset IRQ 3
scsi0 : Qlogicfas Driver version 0.46, chip 50 at 230, IRQ 3, TPdma:1
scsi : 1 host.
qlogic_cs: no SCSI devices found
scsi : 0 hosts.
井伊さん(PC-486NAT): シリアルまわりは最近でもコードが変更されているので、カーネルバージョン によっては動作しないかもしれません。β11で動作を確認。
Serial driver version 4.24 with no serial options enabled
tty02 at 0x03f8 (irq = 3) is a 16550A
高山さん(PC-9821 Nr15):MOが使えているそうです。HDやCD-ROMは未確認だそうです。
高山さん(PC-9821 Nr15): 頻繁にワーニングを吐くので、その部分を消してお使いだそうです。
高山さん(PC-9821 Na12): 全く問題なく使えているそうです。(編追記)MELCO BUFFALO LPC-98E-Tはこれと同じカードです。
佐藤さん(PC-9821 La13): pcmcia-cs 3.0.4 で自アドレスへの ping を確認
佐藤さん(PC-9821 La13): pcmcia-cs 3.0.4 で自アドレスへの ping を確認
佐藤さん(PC-9821 La13): pcmcia-cs 3.0.4 で自アドレスへの ping を確認
佐藤さん(PC-9821 La13): pcmcia-cs 3.0.4 で自アドレスへの ping を確認。/etc/pcmcia/configへの追加が必要
card "corega Ethernet Card" version "corega K.K.", "corega Ether PCC-T" bind "pcnet_cs"
佐藤さん(PC-9821 La13): CD-ROMをマウントして、ls で確認。/etc/pcmcia/configへの追加が必要
card "Future Domain SCSI2GO" version "Future Domain Corporation", "SCSI PCMCIA Credit Card Controller" bind "fdomain_cs"
佐藤さん(PC-9821 La13): CD-ROMをマウントして、ls で確認
佐藤さん(PC-9821 La13): CD-ROMをマウントして、ls で確認
ATで動かなくて98で動くものなんてあるのかなぁ?
ATで動いてるのに98では動いてないものもあります。なお、誤解しないでいただきたいの ですが、以下にあげるカードは単に真面目に設定していないから動作しないだけのものも あると思いますので、下記のカードでも既にお持ちなのでしたら、是非一度トライしてみて ください。
井伊さん(PC-486NAT):タイムアウトでコマンドがアボートしてしまう。何が悪いのかなあ? (注:高山さんのお手許ではこのカードが動いているそうです)。
aha152x: processing commandline: ok
aha152x: BIOS test: passed, detected 1 controller(s)
aha152x0: vital data: PORTBASE=0x340, IRQ=3, SCSI ID=7, reconnect=enabled, parity=enabled, synchronous=disabled, delay=100, extended translation=disabled
aha152x: trying software interrupt, ok.
scsi1 : Adaptec 152x SCSI driver; $Revision: 1.11 $
scsi : 1 host.
scsi : aborting command due to timeout : pid 8, scsi1, channel 0, id 0, lun 0 0x00 00 00 00 00 00
scsi : aborting command due to timeout : pid 8, scsi1, channel 0, id 0, lun 0 0x00 00 00 00 00 00
(以下省略)
井伊さん(PC-486NAT)挿すといきなりLinuxが死んじゃった。実は98パッチの当たったシリアルドライバが悪さをしてるとか。。。? β11で試してみたらどうやろ?動くんちゃうかな。
serial reset
1 offset
Kernel panic: Unknown port requested to 8251
Ugh at c0129e76
寺本さんが認識されないという報告をされています。普通の AT 互換機の Linux では使えるのでしょうか?
まず、モジュールを有効にする必要があります。
また、CardBusではPCIも有効にする必要があります。
ただし,CardBus必須のPCカードはほとんど存在しませんし,98ノートではまだ動作報告がありません。
AT 互換機でも,PCカードの具合が悪いときは BIOS SETUPで PCIC 互換にするのが 常套手段のようです。(PCカードでは 32ビット転送をしないようにする)
個々のハードウェアに対応したドライバをコンパイルする必要はありませんが、 その上位層のEthernet supportとかSCSI support, SCSI disk supportなどを 有効にしてください。
PCMCIAとは関係ないですが、APMを有効にするには、Makefile中のSMP=1をコメ ントアウトしましょう。
ATと同様にしてインストールできます。簡単なのは前節で構築したカーネルで起動し、 pcmcia-cs を展開して、make config, make all, make install すればよいでしょう。 /etc/pcmcia/ に設定ファイルなどが用意されるようです。 必要なら変更してください。