I recently installed FreeBSD 7.2 on my Lenovo Thinkpad X60s. Since the X60s doesn't have any CD-ROM and I don't have any external storage media other than USB sticks, I used PXE booting to install FreeBSD over the network.
I used my setup from FreeBSD on the Lenovo Thinkpad X60s and it worked flawlessly. To recapitulate:
# mdconfig -a -t vnode -f 7.2-RELEASE-i386-bootonly.iso -u 0 # mount -t cd9660 /dev/md0 /mnt # mkdir -p /freebsd # cp -Rp /mnt/boot /freebsd # umount /mnt # mdconfig -d -u 0
vfs.root.mountfrom="ufs:/dev/md0c"
which means that the later booting process will use a ramdisk as root instead of using NFS.
host x60 { hardware ethernet 00:16:d3:21:5a:5a; fixed-address 10.0.0.20; next-server 10.0.0.2; filename "boot/pxeboot"; option root-path "10.0.0.2:/freebsd"; }
where 10.0.0.2 is the server running the TFTP server.
tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /freebsd
# inetd -a 10.0.0.2
/freebsd -ro -network 10.0.0.0 -mask 255.255.255.0
# rpcbind -h 10.0.0.2 # mountd # nfsd -h 10.0.0.2
You might want to read up on the manual pages for those, especially if you're running this on a multi-homed machine, like I did. Look for the "-h" flag. You may not want to accidentally export something to the whole world.
Nota bene: If you're running the NFS server over TCP only (the -t flag), this won't work with PXE.
HW | Out of the box | With patches |
---|---|---|
Intel Core Duo SMP | Yes | |
Intel 82801G audio | Yes | |
Intel 945 graphics | Yes | |
Firewire | Yes | |
Bluetooth | -- | -- |
Modem | No | No |
USB | Yes | |
SATA | Yes | |
SD Card Reader | No | No |
Intel 3945ABG WLAN | Yes | |
Gigabit Ethernet | Yes | |
Suspend/resume | No | No |
Fingerprint reader | No* | No |
* The device is found and is seen as an ugen(4), so it is reachable for experiments.
I haven't tested Bluetooth at all.
See below for dmesg.
The latency problems I reported with the Intel PRO/1000 em(4) in 6.1 and 6.2 are gone. No need to patch anything. Network works fine.
The Intel 3945ABG wireless LAN now works with wpi(4). It is, however, marked as experimental. Add this to /boot/loader.conf:
legal.intel_wpi.license_ack=1 if_wpi_load="YES"
but read /usr/share/doc/legal/intel_wpi/LICENSE before adding anything.
Make sure the hardware radio button on the front of the laptop is in the "on" position.
Reboot to load the driver or do a
# kldload if_wpi
The handrest gets very hot when the wpi is running. I don't know if anything can be done about this.
Graphics acceleration for the Intel 945GM is now supported by the Xorg server.
I initially tried to use an xorg.conf from Xorg -configure
but
didn't get anything at all on the monitor. Instead, I used the
built-in miniconfiguration and expanded that to get it working.
Nota bene: The new Xorg in 7.2 works with HAL and dbus to become aware of hardware changes. This means that on a pristine FreeBSD system, you won't get any mouse or keyboard in X! To get around this, either start HAL and dbus, or add this to your xorg.conf:
Section "ServerFlags" Option "AllowEmptyInput" "false" EndSection
I don't know why this is "true" by default. I was very surprised. See the man page for xorg.conf(5) for the AllowEmptyInput keyword:
Option "AllowEmptyInput" "boolean"
If enabled, don't add the standard keyboard and mouse drivers, if there are no input devices in the config file. Enabled by default if AutoAddDevices and AutoEnableDevices is enabled, otherwise disabled. If AllowEmptyInput is on, devices using the kbd, mouse or vmmouse driver are ignored.
Then define your mouse and keyboard manually. Here's my keyboard and mouse configuration:
Section "InputDevice" Identifier "Keyboard0" Driver "kbd" EndSection Section "InputDevice" Identifier "Mouse0" Driver "mouse" Option "Protocol" "auto" Option "Device" "/dev/sysmouse" Option "ZAxisMapping" "4 5 6 7" EndSection
And, for completeness, the rest of my minimal xorg.conf:
Section "ServerLayout" Identifier "MC config" InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" Screen "Builtin Default intel Screen 0" EndSection Section "Device" Identifier "Builtin Default intel Device 0" Driver "intel" EndSection Section "Screen" Identifier "Builtin Default intel Screen 0" Device "Builtin Default intel Device 0" EndSection
Sound (Intel HDAC) now supported out of the box with snd_hda(4) for both output and input. Add:
snd_hda_load="YES"
in /boot/loader.conf and reboot to load driver or do a
# kldload snd_hda
Use mixer(8) (or install audio/aumix or audio/xmixer) to set volume. Use
/etc/rc.d/mixer stop
to save state for all mixers.
The laptop suspends, but reboots on resume. As before, powerd(8) works fine.
The machine gets rather hot, about 58 degrees around the CPU, after
running a while. To see the temperature, you might want to use the
kernel modules coretemp and acpi_ibm. Add to /boot/loader.conf
:
coretemp_load="YES" acpi_ibm_load="YES"
and reboot, or do a
# kldload coretemp # kldload acpi_ibm
Now you can grep the sysctls for "tempe":
# sysctl -a|grep tempe hw.acpi.thermal.tz0.temperature: 53.0C hw.acpi.thermal.tz1.temperature: 54.0C dev.cpu.0.temperature: 54 dev.cpu.1.temperature: 55
Copyright (c) 1992-2009 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 is a registered trademark of The FreeBSD Foundation. FreeBSD 7.2-RELEASE #0: Fri May 1 08:49:13 UTC 2009 root@walker.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: Genuine Intel(R) CPU L2400 @ 1.66GHz (1662.51-MHz 686-class CPU) Origin = "GenuineIntel" Id = 0x6e8 Stepping = 8 Features=0xbfe9fbff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE> Features2=0xc1a9<SSE3,MON,VMX,EST,TM2,xTPR,PDCM> AMD Features=0x100000<NX> Cores per package: 2 real memory = 527302656 (502 MB) avail memory = 501964800 (478 MB) ACPI APIC Table: <LENOVO TP-7B > FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 ACPI Warning (tbfadt-0505): Optional field "Gpe1Block" has zero address or length: 0 102C/0 [20070320] ioapic0: Changing APIC ID to 1 ioapic0 <Version 2.0> irqs 0-23 on motherboard kbd1 at kbdmux0 acpi0: <LENOVO TP-7B> on motherboard acpi0: [ITHREAD] acpi_ec0: <Embedded Controller: GPE 0x1c, ECDT> port 0x62,0x66 on acpi0 acpi0: Power Button (fixed) acpi0: reservation of 0, a0000 (3) failed acpi0: reservation of 100000, 1ff00000 (3) failed Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000 acpi_timer0: <24-bit timer at 3.579545MHz> port 0x1008-0x100b on acpi0 acpi_hpet0: <High Precision Event Timer> iomem 0xfed00000-0xfed003ff on acpi0 Timecounter "HPET" frequency 14318180 Hz quality 900 acpi_lid0: <Control Method Lid Switch> on acpi0 acpi_button0: <Sleep Button> on acpi0 pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0 pci0: <ACPI PCI bus> on pcib0 vgapci0: <VGA-compatible display> port 0x1800-0x1807 mem 0xee100000-0xee17ffff,0xd0000000-0xdfffffff,0xee200000-0xee23ffff irq 16 at device 2.0 on pci0 agp0: <Intel 82945GM (945GM GMCH) SVGA controller> on vgapci0 agp0: detected 7932k stolen memory agp0: aperture size is 256M vgapci1: <VGA-compatible display> mem 0xee180000-0xee1fffff at device 2.1 on pci0 hdac0: <Intel 82801G High Definition Audio Controller> mem 0xee240000-0xee243fff irq 17 at device 27.0 on pci0 hdac0: HDA Driver Revision: 20090329_0131 hdac0: [ITHREAD] pcib1: <ACPI PCI-PCI bridge> irq 20 at device 28.0 on pci0 pci2: <ACPI PCI bus> on pcib1 em0: <Intel(R) PRO/1000 Network Connection 6.9.6> port 0x2000-0x201f mem 0xee000000-0xee01ffff irq 16 at device 0.0 on pci2 em0: Using MSI interrupt em0: [FILTER] em0: Ethernet address: 00:16:d3:21:5a:5a pcib2: <ACPI PCI-PCI bridge> irq 21 at device 28.1 on pci0 pci3: <ACPI PCI bus> on pcib2 pci3: <network> at device 0.0 (no driver attached) pcib3: <ACPI PCI-PCI bridge> irq 22 at device 28.2 on pci0 pci4: <ACPI PCI bus> on pcib3 pcib4: <ACPI PCI-PCI bridge> irq 23 at device 28.3 on pci0 pci12: <ACPI PCI bus> on pcib4 uhci0: <UHCI (generic) USB controller> port 0x1820-0x183f irq 16 at device 29.0 on pci0 uhci0: [GIANT-LOCKED] uhci0: [ITHREAD] usb0: <UHCI (generic) USB controller> on uhci0 usb0: USB revision 1.0 uhub0: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb0 uhub0: 2 ports with 2 removable, self powered uhci1: <UHCI (generic) USB controller> port 0x1840-0x185f irq 17 at device 29.1 on pci0 uhci1: [GIANT-LOCKED] uhci1: [ITHREAD] usb1: <UHCI (generic) USB controller> on uhci1 usb1: USB revision 1.0 uhub1: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb1 uhub1: 2 ports with 2 removable, self powered uhci2: <UHCI (generic) USB controller> port 0x1860-0x187f irq 18 at device 29.2 on pci0 uhci2: [GIANT-LOCKED] uhci2: [ITHREAD] usb2: <UHCI (generic) USB controller> on uhci2 usb2: USB revision 1.0 uhub2: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb2 uhub2: 2 ports with 2 removable, self powered uhci3: <UHCI (generic) USB controller> port 0x1880-0x189f irq 19 at device 29.3 on pci0 uhci3: [GIANT-LOCKED] uhci3: [ITHREAD] usb3: <UHCI (generic) USB controller> on uhci3 usb3: USB revision 1.0 uhub3: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb3 uhub3: 2 ports with 2 removable, self powered ehci0: <Intel 82801GB/R (ICH7) USB 2.0 controller> mem 0xee444000-0xee4443ff irq 19 at device 29.7 on pci0 ehci0: [GIANT-LOCKED] ehci0: [ITHREAD] usb4: EHCI version 1.0 usb4: companion controllers, 2 ports each: usb0 usb1 usb2 usb3 usb4: <Intel 82801GB/R (ICH7) USB 2.0 controller> on ehci0 usb4: USB revision 2.0 uhub4: <Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1> on usb4 uhub4: 8 ports with 8 removable, self powered pcib5: <ACPI PCI-PCI bridge> at device 30.0 on pci0 pci21: <ACPI PCI bus> on pcib5 cbb0: <RF5C476 PCI-CardBus Bridge> mem 0xe4300000-0xe4300fff irq 16 at device 0.0 on pci21 cardbus0: <CardBus bus> on cbb0 pccard0: <16-bit PCCard bus> on cbb0 cbb0: [ITHREAD] fwohci0: <Ricoh R5C552> mem 0xe4301000-0xe43017ff irq 17 at device 0.1 on pci21 fwohci0: [FILTER] fwohci0: OHCI version 1.0 (ROM=0) fwohci0: No. of Isochronous channels is 4. fwohci0: EUI64 00:0a:e4:06:00:16:20:1b fwohci0: Phy 1394a available S400, 2 ports. fwohci0: Link S400, max_rec 2048 bytes. firewire0: <IEEE1394(FireWire) bus> on fwohci0 fwe0: <Ethernet over FireWire> on firewire0 if_fwe0: Fake Ethernet address: 02:0a:e4:16:20:1b fwe0: Ethernet address: 02:0a:e4:16:20:1b fwip0: <IP over FireWire> on firewire0 fwip0: Firewire address: 00:0a:e4:06:00:16:20:1b @ 0xfffe00000000, S400, maxrec 2048 sbp0: <SBP-2/SCSI over FireWire> on firewire0 dcons_crom0: <dcons configuration ROM> on firewire0 dcons_crom0: bus_addr 0x1184000 fwohci0: Initiate bus reset fwohci0: BUS reset fwohci0: node_id=0xc800ffc0, gen=1, CYCLEMASTER mode pci21: <base peripheral, SD host controller> at device 0.2 (no driver attached) isab0: <PCI-ISA bridge> at device 31.0 on pci0 isa0: <ISA bus> on isab0 atapci0: <Intel ICH7 UDMA100 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0x1810-0x181f at device 31.1 on pci0 ata0: <ATA channel 0> on atapci0 ata0: [ITHREAD] atapci1: <Intel AHCI controller> port 0x18d0-0x18d7,0x18c4-0x18c7,0x18c8-0x18cf,0x18c0-0x18c3,0x18b0-0x18bf mem 0xee444400-0xee4447ff irq 16 at device 31.2 on pci0 atapci1: [ITHREAD] atapci1: AHCI Version 01.10 controller with 4 ports detected ata2: <ATA channel 0> on atapci1 ata2: [ITHREAD] ata3: <ATA channel 1> on atapci1 ata3: port not implemented ata3: [ITHREAD] ata4: <ATA channel 2> on atapci1 ata4: port not implemented ata4: [ITHREAD] ata5: <ATA channel 3> on atapci1 ata5: port not implemented ata5: [ITHREAD] pci0: <serial bus, SMBus> at device 31.3 (no driver attached) acpi_tz0: <Thermal Zone> on acpi0 acpi_tz1: <Thermal Zone> on acpi0 atkbdc0: <Keyboard controller (i8042)> port 0x60,0x64 irq 1 on acpi0 atkbd0: <AT Keyboard> irq 1 on atkbdc0 kbd0 at atkbd0 atkbd0: [GIANT-LOCKED] atkbd0: [ITHREAD] psm0: <PS/2 Mouse> irq 12 on atkbdc0 psm0: [GIANT-LOCKED] psm0: [ITHREAD] psm0: model Generic PS/2 mouse, device ID 0 battery0: <ACPI Control Method Battery> on acpi0 acpi_acad0: <AC Adapter> on acpi0 cpu0: <ACPI CPU> on acpi0 est0: <Enhanced SpeedStep Frequency Control> on cpu0 p4tcc0: <CPU Frequency Thermal Control> on cpu0 cpu1: <ACPI CPU> on acpi0 est1: <Enhanced SpeedStep Frequency Control> on cpu1 p4tcc1: <CPU Frequency Thermal Control> on cpu1 pmtimer0 on isa0 orm0: <ISA Option ROMs> at iomem 0xce800-0xcf7ff,0xcf800-0xd07ff,0xdc000-0xdffff,0xe0000-0xeffff pnpid ORM0000 on isa0 ppc0: parallel port not found. 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: port may not be enabled sio0: configured irq 4 not in bitmap of probed irqs 0 sio0: port may not be enabled sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0 sio0: type 8250 or not responding sio0: [FILTER] sio1: configured irq 3 not in bitmap of probed irqs 0 sio1: port may not be enabled vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0 ugen0: <STMicroelectronics Biometric Coprocessor, class 0/0, rev 1.00/0.01, addr 2> on uhub3 Timecounters tick every 1.000 msec firewire0: 1 nodes, maxhop <= 0, cable IRM = 0 (me) firewire0: bus manager 0 (me) ad4: 76319MB <FUJITSU MHV2080BH 00840028> at ata2-master SATA150 hdac0: HDA Codec #0: Analog Devices AD1981HD hdac0: HDA Codec #1: Conexant (Unknown) pcm0: <HDA Analog Devices AD1981HD PCM #0 Analog> at cad 0 nid 1 on hdac0 pcm1: <HDA Analog Devices AD1981HD PCM #1 Digital> at cad 0 nid 1 on hdac0 GEOM_LABEL: Label for provider ad4s1a is ufsid/4a0d44619adf9d9d. GEOM_LABEL: Label for provider ad4s1d is ufsid/4a0d44651c11690a. GEOM_LABEL: Label for provider ad4s1e is ufsid/4a0d4461e29548a3. GEOM_LABEL: Label for provider ad4s1f is ufsid/4a0d446154f21a39. SMP: AP CPU #1 Launched! Trying to mount root from ufs:/dev/ad4s1a GEOM_LABEL: Label ufsid/4a0d44619adf9d9d removed. GEOM_LABEL: Label for provider ad4s1a is ufsid/4a0d44619adf9d9d. GEOM_LABEL: Label ufsid/4a0d4461e29548a3 removed. GEOM_LABEL: Label for provider ad4s1e is ufsid/4a0d4461e29548a3. GEOM_LABEL: Label ufsid/4a0d446154f21a39 removed. GEOM_LABEL: Label for provider ad4s1f is ufsid/4a0d446154f21a39. GEOM_LABEL: Label ufsid/4a0d44651c11690a removed. GEOM_LABEL: Label for provider ad4s1d is ufsid/4a0d44651c11690a. GEOM_LABEL: Label ufsid/4a0d44619adf9d9d removed. GEOM_LABEL: Label ufsid/4a0d4461e29548a3 removed. GEOM_LABEL: Label ufsid/4a0d446154f21a39 removed. GEOM_LABEL: Label ufsid/4a0d44651c11690a removed.