さて、 先日購入の 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 のパーティションは、 すべてコメントアウトしました。うーん。なんだかなぁ。