昨日、 FreeBSD 5.0-DP1/spacr64 を突っ込んでみた Ultra 10 ですが、 インストールが終わってから EEPROM 消滅に気が付くという始末。 MAC アドレスが 0:0:0:0:0:0 だよ。 fxp を突っ込んでお茶を濁せるかと、 Intel PRO/100+ を挿してみることに。
しかしダメ、認識しない。 GENERIC カーネルが fxp を持っていないようだ。 fxp を入れてコンパイルしてみる (ドキュメントには、Big-endian に対応していないドライバだと、 ダメかも知れないよー、と書いてあるけど、ものは試し)。
これでもダメ。 よくみると、pciconf -l した結果にも、 Intel の証し (^^; の 0x8086 がどこにも出ていない。
pcib1@pci0:1:0: class=0x060400 card=0x00000000 chip=0x5000108e rev=0x13 hdr=0x01 pcib3@pci0:1:1: class=0x060400 card=0x00000000 chip=0x5000108e rev=0x13 hdr=0x01 pcib2@pci2:3:0: class=0x060400 card=0x000000dc chip=0x00241011 rev=0x03 hdr=0x01 none0@pci3:0:0: class=0x068000 card=0x00000000 chip=0x1000108e rev=0x01 hdr=0x00 hme0@pci3:0:1: class=0x020000 card=0x00000000 chip=0x1001108e rev=0x01 hdr=0x00 isp0@pci3:4:0: class=0x010000 card=0x00000000 chip=0x10201077 rev=0x05 hdr=0x00 ebus0@pci1:1:0: class=0x068000 card=0x00000000 chip=0x1000108e rev=0x01 hdr=0x00 hme1@pci1:1:1: class=0x020000 card=0x00000000 chip=0x1001108e rev=0x01 hdr=0x00 none1@pci1:2:0: class=0x030000 card=0x00000000 chip=0x47501002 rev=0x5c hdr=0x00 atapci0@pci1:3:0: class=0x01018f card=0x06461095 chip=0x06461095 rev=0x03 hdr=0x00
参考までに、今これを書いている ThinkPad X21 で同じことをすると、
hostb0@pci0:0:0: class=0x060000 card=0x00000000 chip=0x71908086 rev=0x03 hdr=0x00 pcib1@pci0:1:0: class=0x060400 card=0x00000000 chip=0x71918086 rev=0x03 hdr=0x01 isab0@pci0:7:0: class=0x068000 card=0x00000000 chip=0x71108086 rev=0x02 hdr=0x00 atapci0@pci0:7:1: class=0x010180 card=0x00000000 chip=0x71118086 rev=0x01 hdr=0x00 uhci0@pci0:7:2: class=0x0c0300 card=0x00000000 chip=0x71128086 rev=0x01 hdr=0x00 none0@pci0:7:3: class=0x068000 card=0x00000000 chip=0x71138086 rev=0x03 hdr=0x00 pcic0@pci0:8:0: class=0x060700 card=0x01851014 chip=0x04761180 rev=0x80 hdr=0x02 pcic1@pci0:8:1: class=0x060700 card=0x01851014 chip=0x04761180 rev=0x80 hdr=0x02 fxp0@pci0:10:0: class=0x020000 card=0x22058086 chip=0x12298086 rev=0x0c hdr=0x00 none1@pci0:10:1: class=0x070000 card=0x22058086 chip=0x045c11c1 rev=0x01 hdr=0x00 pcm0@pci0:11:0: class=0x040100 card=0x01831014 chip=0x60051013 rev=0x01 hdr=0x00 none2@pci1:0:0: class=0x030000 card=0x01821014 chip=0x4c4d1002 rev=0x64 hdr=0x00
で、fxp0@pci0:10:1 に、chip=0x12298086が出現しています。 なんか、どうも Ultra 10 のコネクタって特殊なのか、 ちょっと挿さりかたが甘い気がするんですよねー。 もしかしてそのせいかな?
あ、そうか、hme はワークステーションの EEPROM から hme に、 ドライバが MAC アドレスをコピーするのかな? 原理的に。 ということはドライバをいじれば適当な MAC アドレスを書き込めるかも (←悪い人)。あ、あった、あった、ここかな? (sys/dev/hme/if_hme.c)
/* Load station MAC address */ ea = sc->sc_arpcom.ac_enaddr; HME_MAC_WRITE_4(sc, HME_MACI_MACADDR0, (ea[0] << 8) | ea[1]); HME_MAC_WRITE_4(sc, HME_MACI_MACADDR1, (ea[2] << 8) | ea[3]); HME_MAC_WRITE_4(sc, HME_MACI_MACADDR2, (ea[4] << 8) | ea[5]);
続きはまた後日。