さて、 先日購入の ThinkPad X21 の OS をしばらく前に、 FreeBSD 4.3-RELEASE から FreeBSD-current に入れ替えました。 4, 5 ヶ月入院以来忙しくて -current を追っかけていなかったら、 あまりに勝手が違ってちょっとびっくり。 dmesg の結果はこんな感じ。 dmesg もかなり様子が変わっていますね。
Copyright (c) 1992-2001 The FreeBSD Project.
Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994
The Regents of the University of California. All rights reserved.
FreeBSD 5.0-CURRENT #0: Wed Jun 6 23:27:52 JST 2001
root@bougainvillea.FromTo.Cc:/home/current/src/sys/compile/BOUGAINVILLEA
Timecounter "i8254" frequency 1193182 Hz
CPU: Pentium III/Pentium III Xeon/Celeron (696.98-MHz 686-class CPU)
Origin = "GenuineIntel" Id = 0x686 Stepping = 6
Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
real memory = 402587648 (393152K bytes)
avail memory = 386650112 (377588K bytes)
Preloaded elf kernel "kernel" at 0xc04de000.
Pentium Pro MTRR support enabled
Using $PIR table, 11 entries at 0xc00fdee0
apm0: <APM BIOS> on motherboard
apm0: found APM BIOS v1.2, connected at v1.2
npx0: <math processor> on motherboard
npx0: INT 16 interface
pcib0: <Intel 82443BX (440 BX) host to PCI bridge> at pcibus 0 on motherboard
pci0: <PCI bus> on pcib0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
pci1: <display, VGA> at 0.0 (no driver attached)
isab0: <PCI-ISA bridge> at device 7.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX4 ATA33 controller> port 0x1800-0x180f at device 7.1 on pci0
ata0: at 0x1f0 irq 14 on atapci0
ata1: at 0x170 irq 15 on atapci0
uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0x1820-0x183f irq 11 at device 7.2 on pci0
usb0: <Intel 82371AB/EB (PIIX4) USB controller> on uhci0
usb0: USB revision 1.0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
pci0: <bridge, PCI-unknown> at 7.3 (no driver attached)
pcic0: <Ricoh RL5C476 PCI-CardBus Bridge> mem 0x50000000-0x50000fff irq 7 at device 8.0 on pci0
pccard0: <PC Card bus (classic)> on pcic0
pcic1: <Ricoh RL5C476 PCI-CardBus Bridge> mem 0x50100000-0x50100fff irq 7 at device 8.1 on pci0
pccard1: <PC Card bus (classic)> on pcic1
fxp0: <Intel Pro 10/100B/100+ Ethernet> port 0x1840-0x187f mem 0xf4020000-0xf403ffff,0xf4010000-0xf4010fff irq 11 at device 10.0 on pci0
fxp0: Ethernet address 00:03:47:6e:6e:60
inphy0: <i82555 10/100 media interface> on miibus0
inphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
pci0: <simple comms, UART> at 10.1 (no driver attached)
pcm0: <Crystal Semiconductor CS4281> mem 0xf4000000-0xf400ffff,0xf4012000-0xf4012fff irq 7 at device 11.0 on pci0
orm0: <Option ROMs> at iomem 0xc0000-0xccfff,0xcd000-0xce7ff,0xd8000-0xdbfff,0xdc000-0xdcfff on isa0
atkbdc0: <Keyboard controller (i8042)> at port 0x60,0x64 on isa0
atkbd0: <AT Keyboard> flags 0x1 irq 1 on atkbdc0
kbd0 at atkbd0
psm0: <PS/2 Mouse> irq 12 on atkbdc0
psm0: model Generic PS/2 mouse, device ID 0
fdc0: <NEC 72065B or clone> at port 0x3f0-0x3f5,0x3f7 irq 6 drq 2 on isa0
fdc0: FIFO enabled, 8 bytes threshold
fd0: <1440-KB 3.5" drive> on fdc0 drive 0
pmtimer0 on isa0
sc0: <System console> at flags 0x100 on isa0
sc0: VGA <16 virtual consoles, flags=0x300>
sio0: configured irq 4 not in bitmap of probed irqs 0
sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
sio0: type 8250
sio1: configured irq 3 not in bitmap of probed irqs 0
sn0: ioaddr is 0x300
sn0: test1 failed
vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
unknown: <PNP0200> can't assign resources
unknown: <PNP0303> can't assign resources
unknown: <PNP0c02> can't assign resources
unknown: <IBM3780> can't assign resources
unknown: <PNP0680> can't assign resources
unknown: <PNP0700> can't assign resources
IP packet filtering initialized, divert enabled, rule-based forwarding disabled, default to deny, logging disabled
ad0: 28615MB <IC25N030ATDA04-0> [58140/16/63] at ata0-master UDMA33
Mounting root from ufs:/dev/ad0s2a
まずちょっとビビッたのは、devfs が標準になったこと、 っていうより、/dev/MAKEDEV がなくなっている! うーむ。/dev には使うデバイスだけあるんですね。 スライスとかは /etc/fstab に書いた (というか mount でアクセスすると、 デバイスファイルが動的に生成されるみたい)。
bougainvillea% df Filesystem 1K-blocks Used Avail Capacity Mounted on /dev/ad0s2a 26424187 17839055 6471198 73% / devfs 1 1 0 100% /dev /dev/ad0s3e 1208095 365478 745970 33% /var procfs 4 4 0 100% /proc linprocfs 4 4 0 100% /usr/compat/linux/proc bougainvillea% ls /dev ad0 cuaa0 mdctl stdout ttyv7 ad0s2a cuaia0 mem sysmouse ttyv8 ad0s3b cuala0 mixer ttyd0 ttyv9 ad0s3e dsp mixer0 ttyid0 ttyva apm dsp0 null ttyld0 ttyvb apmctl dsp0.0 pci ttyp0 ttyvc ata dsp0.1 psm0 ttyp1 ttyvd audio dspW ptyp0 ttyp2 ttyve audio0 dspW0 ptyp1 ttyp3 ttyvf audio0.0 dspW0.0 ptyp2 ttyp4 urandom audio0.1 dspW0.1 ptyp3 ttyp5 usb bpf0 fd ptyp4 ttyv0 usb0 bpsm0 fd0 ptyp5 ttyv1 vga card0 io random ttyv2 vmmon card1 kbd0 rtc ttyv3 vmnet1 console klog sndstat ttyv4 xpt0 consolectl kmem stderr ttyv5 zero ctty log stdin ttyv6
あとは、src/UPDATE に次のように書いてある、 PCI PC カード (OLDCARD) まわりの件です。
20010604:
pccard support for pci cards has been committed. You must change your /etc/pccard.conf irq lines. It must match the irq used by pcic device. Interrupt storms may result if you fail to do this. Interrupt storms look a lot like a hang.
You must also install a new pccardd, otherwise you will get an interrupt storm at card reset time (just after it tells you what it is).
pccardd_flags="-I" is necessary for the time being. It tells pccardd not to ask the kernel if the interrupt is really free or not before using it. You can either change the /etc/pccard.conf irq lines to match pcic, or add "-i X" to the pccardd_flags.
まずこのため、 BIOS Setup から PC カードコントローラの IRQ を他のデバイスと共有しないようにしてみました。 ThinkPad X21 は、 とにかくデフォルトでは PCI の IRQ は 11 をシェアしていますが、 これにさらに PC カード系の IRQ までシェアさせるのもねぇ、 ということで、 IRQ を 7, 7, 11, 11 にしてみました。 でも結局、サウンドが IRQ を PC カードコントローラとシェアしているのは、 解除不能のようで、あまり意味はなかったかな?
で、/etc/rc.conf には次のように設定しました。
pccard_enable="YES" pccardd_flags="-I" pccard_conf="/etc/defaults/pccard.conf"
これで PC カードは難なく認識しました。
もう一点驚いたのは、fat パーティションにも fsck に行くこと。 それはそうと、 /etc/fstab で noauto に設定したパーティションにも fsck に行ってしまったのは、 ちょっと困りもの。暫定的に、/etc/fstab の noauto のパーティションは、 すべてコメントアウトしました。うーん。なんだかなぁ。