Setting of pcmcia lan card for dual home linux box


自宅サーバをデュアルホームゲートウェイとして構成し、ブロードバンドルータ、 ファイヤウォールとして利用できるようにします。

pcmcia設定

その他の設定

NETGEAR 10/100 Mbps Fast Ethernet FA511J CardBus

2008.8にCATVモデムがTerayon製からMotorola製のものに交換に なりました。それを機に8Mbpsのコースから30Mbpsのコースに CATVの契約を変更したので、LANカードも100Mbps対応のものに パワーアップしようと思いました。

最初はカードを差し替えるだけでOKかなぁと思っていたのですが、 結構はまってしまいました。最終的には使えるようになったので すが、その時の設定を記録しておきます。

BIOS update

私のLibretto100のBIOSはVer 6.4だったのですが、この バージョンではCardBusカードが認識できないようです。 東芝のサイト から最新BIOS(Ver 8.10)を取得(EXEファイル)し、これをWindows上で 実行すると出力先を聞いてくるので、MS-DOSの起動フロッピーを指定して ファイルを展開します。とはいえ、今時MS-DOSの起動フロッピーなんて なかなか用意できないと思うのですが、残念ながらFreeDOSの起動フロッピー ではアップデート出来ませんでした。結局 この辺りを参考にMS-DOS起動フロッピーを用意し 対応しました。

で、用意したフロッピーにBIOSアップデートファイルを展開して、フロッピーから 起動すると、懐かしのAUTOEXEC.BATで自動的に更新コマンドが実行されます。 実行中は電源等切断されないようにご注意ください。

BIOSの更新を確認したら、ついでにPCカードスロットのモードを[CardBus/16bit] に変更しておきます(ToPIC95モード)。[AutoSelect](ToPIC97)モードでは カードの認識に失敗しますので必ず変えて下さい。

/etc/pcmcia/config.optsの修正

さて、この状態でFA511を差し込みますと/var/log/messagesに、
Aug xx 18:59:19 lib100 cardmgr[78]: socket 0: NetGear FA511 Fast Ethernet
Aug xx 18:59:19 lib100 kernel: cs: cb_config(bus 18)
Aug xx 18:59:19 lib100 kernel: cs: could not allocate 256 IO ports for CardBus socket 0
Aug xx 18:59:19 lib100 kernel: tulip_cb: RequestIO: Out of resource
みたいな感じでメッセージが記録されます。カード自体は認識されているのですが、 IOポートの検知に失敗してるようです。これはFA511が利用するIOポートが pcmcia-csの検索するIOポートの範囲外にある為のようです。そこで /etc/pcmcia/config.optsに以下の設定を追加し、IOポートの場所をpcmcia-csに教えてあげます。
# Extra port range for NetGear FA511 Fast Ethernet (added by m-ito)
include port 0x4000-0x40ff, port 0x4400-0x44ff, port 0x4800-0x48ff, port 0x4c00-0x4cff
ちなみに上記のIOポート範囲は、linux-2.4.x組み込みのPCMCIA管理機能で動いている別の Libretto100に挿したところたまたま認識したため、cat /proc/ioportsで使用している portを確認し、書き写しました。

いちおう通信できる状態になった時のログが以下のものです。

Aug xx 19:42:40 lib100 kernel: Linux PCMCIA Card Services 3.2.8
Aug xx 19:42:40 lib100 kernel:   kernel build: 2.4.36.6 #7 Fri Aug 15 00:11:28 JST 2008
Aug xx 19:42:40 lib100 kernel:   options:  [pci] [cardbus] [apm]
Aug xx 19:42:40 lib100 kernel: Intel ISA/PCI/CardBus PCIC probe:
Aug xx 19:42:40 lib100 kernel:   Toshiba ToPIC95-B rev 07 PCI-to-CardBus at slot 00:06, mem 0x10000000
Aug xx 19:42:40 lib100 kernel:     host opts [0]: [slot 0xd0] [ccr 0x11] [cdr 0x86] [rcr 0x02] [pci irq 11] [lat 168/176] [bus 18/18]
Aug xx 19:42:40 lib100 kernel:     host opts [1]: [slot 0xd0] [ccr 0x21] [cdr 0x86] [rcr 0x02] [pci irq 11] [lat 168/176] [bus 19/19]
Aug xx 19:42:40 lib100 kernel:     ISA irqs (default) = 3,4,5,7,10,12,15 PCI status changes
Aug xx 19:42:40 lib100 kernel:   Toshiba ToPIC95-B rev 07 PCI-to-CardBus at slot 00:13, mem 0x10002000
Aug xx 19:42:40 lib100 kernel:     host opts [0]: [slot 0xd0] [ccr 0x11] [cdr 0x86] [rcr 0x02] [pci irq 11] [lat 168/176] [bus 20/20]
Aug xx 19:42:40 lib100 kernel:     host opts [1]: [slot 0xd0] [ccr 0x21] [cdr 0x86] [rcr 0x02] [pci irq 11] [lat 168/176] [bus 21/21]
Aug xx 19:42:40 lib100 kernel:     ISA irqs (default) = 3,4,5,7,10,12,15 PCI status changes
Aug xx 19:42:40 lib100 cardmgr[77]: watching 4 sockets
Aug xx 19:42:41 lib100 kernel: cs: cb_alloc(bus 18): vendor 0x1317, device 0x1985
Aug xx 19:42:41 lib100 kernel: cs: cb_alloc(bus 19): vendor 0x1317, device 0x1985
Aug xx 19:42:41 lib100 cardmgr[78]: socket 0: NetGear FA511 Fast Ethernet
Aug xx 19:42:41 lib100 kernel: cs: cb_config(bus 18)
Aug xx 19:42:41 lib100 kernel: cs: IO port probe 0x0100-0x03af: excluding 0x220-0x22f 0x370-0x37f
Aug xx 19:42:41 lib100 kernel: cs: IO port probe 0x03e0-0x04ff: excluding 0x480-0x48f 0x4d0-0x4d7
Aug xx 19:42:41 lib100 kernel: cs: IO port probe 0x0800-0x080f: clean.
Aug xx 19:42:41 lib100 kernel: cs: IO port probe 0x0820-0x08ff: clean.
Aug xx 19:42:41 lib100 kernel: cs: IO port probe 0x0a00-0x0aff: clean.
Aug xx 19:42:41 lib100 kernel: cs: IO port probe 0x0c00-0x0cff: clean.
Aug xx 19:42:41 lib100 kernel: cs: IO port probe 0x4000-0x40ff: clean.
Aug xx 19:42:41 lib100 kernel: cs: IO port probe 0x4400-0x44ff: clean.
Aug xx 19:42:41 lib100 kernel: cs: IO port probe 0x4800-0x48ff: clean.
Aug xx 19:42:41 lib100 kernel: cs: IO port probe 0x4c00-0x4cff: clean.
Aug xx 19:42:41 lib100 kernel:   fn 0 bar 1: io 0xa00-0xaff
Aug xx 19:42:41 lib100 kernel:   fn 0 bar 2: mem 0x60060000-0x600603ff
Aug xx 19:42:41 lib100 kernel:   fn 0 rom: mem 0x60040000-0x6005ffff
Aug xx 19:42:41 lib100 kernel:   irq 11
Aug xx 19:42:41 lib100 kernel: tulip_attach(device 12:00.0)
Aug xx 19:42:41 lib100 kernel: tulip.c:v0.91g-ppc 7/16/99 becker@scyld.com (modified by danilo@cs.uni-magdeburg.de for XIRCOM CBE, fixed by Doug Ledford)
Aug xx 19:42:41 lib100 kernel: eth0: ADMtek Centaur-C rev 17 at 0xa00, 00:1E:2A:47:E3:EC, IRQ 11.
Aug xx 19:42:41 lib100 udevsend[88]: udevd daemon started
Aug xx 19:42:42 lib100 cardmgr[78]: executing: './network start eth0 2>&1'
Aug xx 19:42:42 lib100 cardmgr[78]: + SIOCSIFNETMASK: Cannot assign requested address
Aug xx 19:42:42 lib100 net.agent[95]: register event not handled
Aug xx 19:42:42 lib100 cardmgr[78]: socket 1: NetGear FA511 Fast Ethernet
Aug xx 19:42:43 lib100 kernel: cs: cb_config(bus 19)
Aug xx 19:42:43 lib100 kernel:   fn 0 bar 1: io 0x4000-0x40ff
Aug xx 19:42:43 lib100 kernel:   fn 0 bar 2: mem 0x60060000-0x600603ff
Aug xx 19:42:43 lib100 kernel:   fn 0 rom: mem 0x60040000-0x6005ffff
Aug xx 19:42:43 lib100 kernel:   irq 11
Aug xx 19:42:43 lib100 kernel: tulip_attach(device 13:00.0)
Aug xx 19:42:43 lib100 kernel: eth1: ADMtek Centaur-C rev 17 at 0x4000, 00:1E:2A:47:E3:EA, IRQ 11.
Aug xx 19:42:43 lib100 cardmgr[78]: executing: './network start eth1 2>&1'
Aug xx 19:42:43 lib100 cardmgr[78]: + ioctl: Operation not supported
何箇所か怪しいメッセージが出ています。それと、起動時のコンソールに
pcilib: Cannot open /proc/bus/pci/12/00.0
pcilib: Cannot open /proc/bus/pci/13/00.0
のメッセージが、わらわらと表示され、lspciを実行した際にも
pcilib: Cannot open /proc/bus/pci/12/00.0
pcilib: Cannot open /proc/bus/pci/13/00.0
Unable to read 64 bytes of configuration space.pcilib: Cannot open /proc/bus/pci/12/00.0
Unable to read 64 bytes of configuration space.00:00.0 Host bridge: Toshiba America Info Systems 601 (rev 2e)
00:04.0 VGA compatible controller: Neomagic Corporation NM2160 [MagicGraph 128XD]
00:06.0 CardBus bridge: Toshiba America Info Systems ToPIC95 (rev 07)
00:06.1 CardBus bridge: Toshiba America Info Systems ToPIC95 (rev 07)
00:0b.0 USB Controller: NEC Corporation USB (rev 02)
00:11.0 Communication controller: Toshiba America Info Systems FIR Port (rev 22)
のように怪しいメッセージがでてます。

が、とりあえず通信は出来てるようです。

その後のNETGEAR FA511J CardBus

やはり怪しいメッセージが出ている状態では安定しないようで、 週に1度ぐらい通信できなくなります。そんな折、ほんの思い付 きでSlackware-11が入った別のlibretto100(こちらはpcmcia-cs のドライバは使わずにカーネルのpcmciaドライバを使っている もの)で試したところ、怪しいメッセージも出ず塩梅がよさそう。

で、Slackware-11からカーネルのconfigを拝借してカーネルをビ ルドし直して、pcmcia-csとはオサラバした。今のところ、この 方法でも怪しいメッセージは出ずに動いていそう。

ただし、/etc/pcmcia/配下でeth0, eth1に設定していた内容は関 係なくなるので、IP等の設定は/etc/rc.d/rc.inet1.confでする ようになりました。


m-ito@myh.no-ip.org

[更新]