Linux/FreeBSD on an IBM ThinkPad X22

The information on this page is largely obsolete, and is retained for historical reasons. I no longer use the ThinkPad or Linux, and cannot answer questions on this subject.

Red Hat Linux 7.2

A few notes from installing Red Hat Linux 7.2 on an IBM ThinkPad X22. The model used is 2662-9DU, which comes with Windows 2000, built in Ethernet, modem and 802.11 network connectionss.

FreeBSD 4.9

I'm now running FreeBSD 4.9-STABLE on this laptop, and it works very well. Resize the partitions as above, install from the CD (leaving the master boot block untouched), and reboot into Windows 2000 to add FreeBSD to the Windows boot menu using bootpart.

The port of XFree86 4.3 works fine, just do "XFree86 -configure" to get a configuration file. The version of XFree86 4.3 that shipped with 4.8-RELEASE does not work properly: the system won't resume from suspend with it installed.

The built-in Ethernet, 802.11, USB, sound, and PCMCIA all work out of the box (you may need to add options PCI_ENABLE_IO_MODES to your kernel config to make sound work, and to access all the USB ports you will need to create /dev/usb1 and /dev/usb2 using MAKEDEV)). IrDA works using the port of birda.

The built-in modem does not work.

APM largely works, except for hibernation. Note that suspend using Fn+F4 doesn't work when the system is on mains power (it seems to give an APM standby event, rather than a suspend in this case: use zzz to suspend when running on mains power). I see occasional crashes when resuming from suspend.

The output of dmesg is:

    Copyright (c) 1992-2002 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 4.7-RC #0: Sat Sep 28 19:48:31 EDT 2002
    Timecounter "i8254"  frequency 1193182 Hz
    CPU: Pentium III/Pentium III Xeon/Celeron (797.35-MHz 686-class CPU)
          Origin = "GenuineIntel"  Id = 0x6b1  Stepping = 1
    real memory  = 402063360 (392640K bytes)
    avail memory = 386830336 (377764K bytes)
    Preloaded elf kernel "kernel" at 0xc0402000.
    Preloaded userconfig_script "/boot/kernel.conf" at 0xc040209c.
    module_register_init: MOD_LOAD (vesa, c02d3c98, 0) error 6
    Pentium Pro MTRR support enabled
    md0: Malloc disk
    Using $PIR table, 14 entries at 0xc00fdeb0
    apm0: <APM BIOS> on motherboard
    apm: found APM BIOS v1.2, connected at v1.2
    npx0: <math processor> on motherboard
    npx0: INT 16 interface
    pcib0: <Host to PCI bridge> on motherboard
    pci0: <PCI bus> on pcib0
    agp0: <Intel 82830 host to AGP bridge> mem 0xd0000000-0xdfffffff at device 0.0 on pci0
    pcib1: <PCI to PCI bridge (vendor=8086 device=3576)> at device 1.0 on pci0
    pci1: <PCI bus> on pcib1
    pci1: <ATI model 4c59 graphics accelerator> at 0.0 irq 11
    uhci0: <Intel 82801CA/CAM (ICH3) USB controller USB-A> port 0x1800-0x181f irq 11 at device 29.0 on pci0
    uhci0: LegSup = 0x0000003b
    usb0: <Intel 82801CA/CAM (ICH3) USB controller USB-A> 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
    uhci1: <Intel 82801CA/CAM (ICH3) USB controller USB-B> port 0x1820-0x183f irq 11 at device 29.1 on pci0
    uhci1: LegSup = 0x00000010
    usb1: <Intel 82801CA/CAM (ICH3) USB controller USB-B> on uhci1
    usb1: USB revision 1.0
    uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
    uhub1: 2 ports with 2 removable, self powered
    uhci2: <Intel 82801CA/CAM (ICH3) USB controller USB-C> port 0x1840-0x185f irq 11 at device 29.2 on pci0
    usb2: <Intel 82801CA/CAM (ICH3) USB controller USB-C> on uhci2
    usb2: USB revision 1.0
    uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
    uhub2: 2 ports with 2 removable, self powered
    pcib2: <PCI to PCI bridge (vendor=8086 device=2448)> at device 30.0 on pci0
    pci2: <PCI bus> on pcib2
    pcic0: <Ricoh RL5C476 PCI-CardBus Bridge> mem 0x50000000-0x50000fff irq 11 at device 3.0 on pci2
    pccard0: <PC Card 16-bit bus (classic)> on pcic0
    pcic1: <Ricoh RL5C476 PCI-CardBus Bridge> mem 0x50100000-0x50100fff irq 5 at device 3.1 on pci2
    pccard1: <PC Card 16-bit bus (classic)> on pcic1
    wi0: <Intersil Prism2.5> mem 0xf0000000-0xf0000fff irq 11 at device 5.0 on pci2
    wi0: 802.11 address: 00:20:e0:89:cb:be
    wi0: using RF:PRISM2.5 MAC:ISL3874A(Mini-PCI)
    wi0: Intersil Firmware: Primary 1.00.05, Station 1.03.03
    fxp0: <Intel Pro/100 Ethernet> port 0x8000-0x803f mem 0xc0200000-0xc0200fff irq 11 at device 8.0 on pci2
    fxp0: Ethernet address 00:d0:59:84:17:fc
    inphy0: <i82562ET 10/100 media interface> on miibus0
    inphy0:  10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, auto
    isab0: <PCI to ISA bridge (vendor=8086 device=248c)> at device 31.0 on pci0
    isa0: <ISA bus> on isab0
    atapci0: <Intel ICH3 ATA100 controller> port 0x1860-0x186f,0x374-0x377,0x170-0x177,0x3f4-0x3f7,0x1f0-0x1f7 at device 31.1 on pci0
    ata0: at 0x1f0 irq 14 on atapci0
    ata1: at 0x170 irq 15 on atapci0
    ichsmb0: <Intel 82801CA (ICH3) SMBus controller> port 0x1880-0x189f irq 5 at device 31.3 on pci0
    smbus0: <System Management Bus> on ichsmb0
    smb0: <SMBus general purpose I/O> on smbus0
    pcm0: <Intel 82801CA (ICH3)> port 0x18c0-0x18ff,0x1c00-0x1cff irq 5 at device 31.5 on pci0
    pci0: <unknown card> (vendor=0x8086, dev=0x2486) at 31.6 irq 5
    isa0: too many memory ranges
    orm0: <Option ROMs> at iomem 0xc0000-0xcbfff,0xcc000-0xccfff,0xcd000-0xcdfff,0xdc000-0xdffff,0xe0000-0xeffff on isa0
    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
    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
    vga0: <Generic ISA VGA> at port 0x3c0-0x3df iomem 0xa0000-0xbffff on isa0
    sc0: <System console> at flags 0x100 on isa0
    sc0: VGA <16 virtual consoles, flags=0x300>
    sio0 at port 0x3f8-0x3ff irq 4 flags 0x10 on isa0
    sio0: type 16550A
    sio1 at port 0x2f8-0x2ff irq 3 on isa0
    sio1: type 16550A
    ppc0: <Parallel port> at port 0x278-0x27f irq 7 on isa0
    ppc0: SMC-like chipset (ECP/EPP/PS2/NIBBLE) in COMPATIBLE mode
    ppc0: FIFO with 16/16/8 bytes threshold
    lpt0: <Printer> on ppbus0
    lpt0: Interrupt-driven port
    ppi0: <Parallel I/O> on ppbus0
    unknown: <PNP0c01> can't assign resources
    unknown: <PNP0000> can't assign resources
    unknown: <PNP0303> can't assign resources
    unknown: <PNP0c02> can't assign resources
    unknown: <PNP0680> can't assign resources
    unknown: <IBM3780> can't assign resources
    unknown: <PNP0501> can't assign resources
    unknown: <IBM0071> can't assign resources
    unknown: <PNP0700> can't assign resources
    unknown: <PNP0401> can't assign resources
    ad0: 19077MB <IC25N020ATDA04-0> [41344/15/63] at ata0-master UDMA100

Opinions expressed are my own, and do not represent those of my employers or the organisations that fund my research.