ThinkPad 600 で PCMCIA カードが動作しない場合は,Linux 起動時に acpi=off を指定する。
■ ■ ■
ThinkPad 600 に Vine Linux 4.1 (kernel 2.6.16) をインストールした。しかし,PCMCIA ネットワークカードが動作しない。ネットワークカードは,pci 製の FNW-3603-TX で,速度は 10/100 Mbps。CardBus タイプである。
ThinkPad 600 のカードスロットは2つあり,下の方にカードを挿している。/var/log/messages のそれらしい箇所は次の通り。
kernel: ACPI: PCI Interrupt 0000:00:02.0[A] -> Link [LNKA] -> GSI 9 (level, low) -> IRQ 9
kernel: Yenta: CardBus bridge found at 0000:00:02.0 [1014:0092]
kernel: Yenta: Enabling burst memory read transactions
kernel: Yenta: Using CSCINT to route CSC interrupts to PCI
kernel: Yenta: Routing CardBus interrupts to PCI
kernel: Yenta TI: socket 0000:00:02.0, mfunc 0xfba97543, devctl 0x62
kernel: Yenta TI: socket 0000:00:02.0 probing PCI interrupt failed, trying to fix
kernel: Yenta TI: socket 0000:00:02.0 no PCI interrupts. Fish. Please report.
kernel: Yenta: no PCI IRQ, CardBus support disabled for this socket.
kernel: Yenta: check your BIOS CardBus, BIOS IRQ or ACPI settings.
kernel: Yenta: ISA IRQ mask 0x00b8, PCI irq 0
kernel: Socket status: 30000006
kernel: ACPI: PCI Interrupt 0000:00:02.1[B] -> Link [LNKB] -> GSI 9 (level, low) -> IRQ 9
kernel: Yenta: CardBus bridge found at 0000:00:02.1 [1014:0092]
kernel: Yenta: Using CSCINT to route CSC interrupts to PCI
kernel: Yenta: Routing CardBus interrupts to PCI
kernel: Yenta TI: socket 0000:00:02.1, mfunc 0xfba97543, devctl 0x62
kernel: Yenta TI: socket 0000:00:02.1 probing PCI interrupt failed, trying to fix
kernel: Yenta TI: socket 0000:00:02.1 no PCI interrupts. Fish. Please report.
kernel: Yenta: no PCI IRQ, CardBus support disabled for this socket.
kernel: Yenta: check your BIOS CardBus, BIOS IRQ or ACPI settings.
kernel: Yenta: ISA IRQ mask 0x00b8, PCI irq 0
どうやら ACPI が関係しているようだ。そういえば,Vine Linux 2.6 のときにも,そんなことがあった。lilo.conf で acpi=off を指定しなければ LAN カードが動作しなかったのである (nlog(n): kernel 2.4.22-0vl2.11)。ThinPad T22 では,このオプションは不要なので (nlog(n): Vine Linux 3.1 のカーネルのアップグレード),ThinkPad 600 というハードウェアに原因があると思われる。
そこで,/etc/grub.conf で ACPI を OFF にする設定を行うことにした。起動オプションに acpi=off を追加する。Vine Linux 3.2 までのブートローダは lilo だったが,Vine Linux 4.0 からは grub に変わっている。
default=0
timeout=5
title Vine Linux (Current kernel)
root (hd0,0)
kernel /vmlinuz ro root=LABEL=/1 resume2=swap:/dev/hda3 vga=0x314 acpi=off
initrd /initrd.img
title Vine Linux (Previous kernel)
root (hd0,0)
kernel /vmlinuz.old ro root=LABEL=/1 resume2=swap:/dev/hda3 vga=0x314
initrd /initrd.old.img
これで再起動したところ,ブートの途中でネットワークの設定画面が出てきた。LAN カードが認識されたのだ。ネットワークの設定をして完了である。
上のように設定ファイルに書いてしまうのではなく,起動時のブートオプションとして指定するには,次のようにすればよい。
- 電源ボタンを押して起動開始
- grub の画面で「e」キーを押す
- grub.conf と同じ画面が出てくるので,「kernel ...」の行にカーソルを移動して「e」キーを押す
- 行末に acpi=off を追加して「Enter」キーを押す
- 最初の grub の画面になるので「Enter」キーを押すか,数秒待つ
Posted by n at 2007-08-22 23:44 | Edit | Comments (0) | Trackback(0)