06 2月
2005

ThinkPad + FreeBSD 5.3R + NIC(PCカード)

今日はまた宿日直なんですが、ちょっと暇なので、IPv6実験用にということで買ってもらった、
中古のThinkPad へNIC を2枚さして、Etherの口が3つあるルータに仕立て上げる準備をしました。

このNICの追加ですが、なかなか認識せずに苦労しました。とりあえず、やったことをメモっておきます。

カードを刺すと、
cbb0: bad Vcc request. ctrl=0x33, status=0x30000b20
cbb_power: 3V
cbb alloc res fail
cardbus0: Can't get memory for IO ports
cbb alloc res fail
re0: couldn't map ports/memory
(中略)
cardbus0: at device 0.0 (no driver attached)
cbb0: bad Vcc request. ctrl=0x0, status=0x30000b68
cbb_power: 0V
cbb0: CardBus card activation failed
とかいわれる...困った...
いろいろ調査するも、あまり情報あらず。

いろいろみているうちに、pciconf -vl というコマンドがあることを知る。やってみると、
# pciconf -vl
none3@pci2:0:0: class=0x020000 card=0x03261154 chip=0x813910ec rev=0x10 hdr=0x00
vendor = 'Realtek Semiconductor'
device = 'RT8139 (A/B/C/810x/813x/C+) Fast Ethernet Adapter'
class = network
subclass = ethernet
なんか、認識してるっぽいけどなぁ...

sysctl を眺めると、
hw.cardbus.debug: 0
hw.cardbus.cis_debug: 0
なんてのがあったので、こいつらを有効にして試したところ、
なにやらメッセージは出てくるけど、意味わからず...

とあるMLのアーカイブに、
sysctl のhw.cbb.start_memory の値が影響するらしい記述を発見。
そのあたりのsysctl を眺めると、
hw.cbb.start_memory: 2281701376
hw.cbb.start_16_io: 256
hw.cbb.start_32_io: 4096
hw.cbb.debug: 0
CardBus だから、hw.cbb.start_32_io あたりが怪しいのかなぁ、と思い、こいつを
# sysctl hw.cbb.start_32_io=8196
として、もう一度カードを刺してみる...

おぉ、動いた動いた。
2枚目も刺してみよう...おぉ、こっちも動いた。

というわけで、hw.cbb.start_32_io が原因だったようなので、
起動時に値が変わるように、/boot/loader.conf に記述。
# echo "hw.cbb.start_32_io=8196" >> /boot/loader.conf

再起動して確認。うまくいきました。


Posted by tmizuno at 16:59 | Comments (0)
 
Comments
There is no comment.