IBM Thinkpad X40
From NetBSD Wiki
I just got a used laptop IBM Thinkpad X40 - here are the results of the basic setup so far:
Contents |
Hardware specifications
The IBM Thinkpad X40 is subnotebook with around 1.6 kg of weight. It has a 12.1 TFT Display, 1.2 GHz LV (Low voltage) or ULV (Ultra Low Voltage) Pentium M processor. It uses a Intel Intel 82855GM graphic chipset. Actiontec Electronics bluetooth device, Atheros or Intel Wireless chipset. It's akku power lasts for about 3-4 hours. It's a nifty laptop :)
Xorg
I use modular-x which works out of the box. Just install the packages, run:
X -configure
Copy the resulting xorg.conf.new to /etc/X11/xorg.conf and your are ready to go.
acpi hints
Some users complain about a freeze when they close/open the lid to put the laptop to sleep. Actually it's a bug in the firmware. Tobias Nygren (tnn) has a fix available in his home directory (http://www.netbsd.org/~tnn/NetBSD_on_Thinkpad_x40.html). Note that sysutils/acpi-iasl no longer exists - you'll need sysutils/acpica-utils and sysutils/acpidump.
As I am using -current (aka 4.9.72 built from sources 18th Sep 2008) ACPI Suspend to RAM just works fine. Just enter
sysctl -w machdep.sleep_state=3
to put the laptop to sleep. Due to a bug somehwere you have to wake up your Thinkpad X40 by pressing the power button. It won't work when you use FN+F4.
As for 5.99.11, this functionality appears to be broken. If ACPI is disabled and apm support is included instead, suspend appears to work fine (as does resume, triggered by the screen lid close event).
incessant fan
For some reason, ThinkPads running NetBSD with ACPI enabled seem to run their CPU cooling fans all of the time. Although it's possible to control this via specific embedded controller ACPI registers, NetBSD does not currently support it, so it's easier to just disable ACPI entirely if it's bothersome. In more recent versions of NetBSD, this can be accomplished at boot and made permanent by changing the 'default' field of /boot.cfg.
ath activity led
Try setting hw.ath0.softled=1 in /etc/sysctl.conf if the wifi activity light doesn't work.
ath noise with timeouts
Some users complain about ath timeouts on the console and inside the messages log. See a possible solution here (http://wiki.netbsd.se/ThinkPad_ath0_Problem)
sample custom kernel config
In addition to GENERIC, this features: apm, acpi dsdt override, odcm, drm support
include "arch/i386/conf/GENERIC" # Intel(R) On Demand Clock Modulation (aka ODCM) options INTEL_ONDEMAND_CLOCKMOD options PCIBIOS # PCI BIOS support options PCIBIOSVERBOSE # PCI BIOS verbose info options PCI_ADDR_FIXUP # fixup PCI I/O addresses options PCI_BUS_FIXUP # fixup PCI bus numbering options PCI_INTR_FIXUP # fixup PCI interrupt routing # # repaired X40 ACPI DSDT to fix lid close exception # options ACPI_DSDT_OVERRIDE options ACPI_DSDT_FILE="\"/usr/src/sys/arch/i386/conf/X40.hex\"" i915drm* at vga? # Intel i915, i945 DRM driver apm0 at mainbus0 # Advanced power management
dmesg
Copyright (c) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005,
2006, 2007
The NetBSD Foundation, Inc. All rights reserved.
Copyright (c) 1982, 1986, 1989, 1991, 1993
The Regents of the University of California. All rights reserved.
NetBSD 4.0 (GENERIC_LAPTOP) #0: Sun Dec 16 00:27:57 PST 2007
builds@wb34:/home/builds/ab/netbsd-4-0-RELEASE/i386/200712160005Z-obj/home/builds/ab/netbsd-4-0-RELEASE/src/sys/arch/i386/compile/GENERIC_LAPTOP
total memory = 1014 MB
rbus: rbus_min_start set to 0x40000000
avail memory = 988 MB
timecounter: Timecounters tick every 10.000 msec
timecounter: Timecounter "i8254" frequency 1193182 Hz quality 100 BIOS32 rev. 0 found at 0xfd740
PCI BIOS rev. 2.1 found at 0xfd8c8
pcibios: config mechanism [1][x], special cycles [x][x], last bus 5
PCI IRQ Routing Table rev. 1.0 found at 0xfdeb0, size 256 bytes (14 entries)
PCI Interrupt Router at 000:31:0 (Intel 82371FB (PIIX) PCI-ISA Bridge compatible) ------------------------------------------
device vendor product pin PIRQ IRQ stage
------------------------------------------
000:02:0 0x8086 0x3582 A 0x00 11 0 already assigned
000:29:0 0x8086 0x24c2 A 0x00 11 0 already assigned
000:29:1 0x8086 0x24c4 B 0x03 11 0 already assigned
000:29:2 0x8086 0x24c7 C 0x02 11 0 already assigned
000:29:7 0x8086 0x24cd D 0x07 11 0 already assigned
000:31:1 0x8086 0x24ca A 0x02 11 0 fixed up
000:31:3 0x8086 0x24c3 B 0x01 11 0 already assigned
000:31:5 0x8086 0x24c5 B 0x01 11 0 already assigned
000:31:6 0x8086 0x24c6 B 0x01 11 0 already assigned
002:00:0 0x1180 0x0476 A 0x00 11 0 already assigned
002:00:1 0x1180 0x0822 B 0x01 11 0 already assigned
002:01:0 0x8086 0x1077 A 0x04 11 0 already assigned
002:02:0 0x168c 0x1014 A 0x05 11 0 already assigned
------------------------------------------
mainbus0 (root)
pci_addr_fixup: 000:31:1 0x8086 0x24ca new address 0x00005800
pci_addr_fixup: 000:31:1 0x8086 0x24ca new address 0x00005808
pci_addr_fixup: 000:31:1 0x8086 0x24ca new address 0x00005810
pci_addr_fixup: 000:31:1 0x8086 0x24ca new address 0x0000580c
pci_addr_fixup: 000:31:1 0x8086 0x24ca new address 0x3f700000
cpu0 at mainbus0: apid 0 (boot processor)
cpu0: Intel Pentium M (Banias) (686-class), 598.09 MHz, id 0x695
cpu0: features a7e9fbbf<FPU,VME,DE,PSE,TSC,MSR,MCE,CX8,APIC,SEP,MTRR>
cpu0: features a7e9fbbf<PGE,MCA,CMOV,PAT,CFLUSH,DS,ACPI,MMX>
cpu0: features a7e9fbbf<FXSR,SSE,SSE2,TM,SBF>
cpu0: features2 180<EST,TM2>
cpu0: "Intel(R) Pentium(R) M processor 1200MHz"
cpu0: I-cache 32 KB 64B/line 8-way, D-cache 32 KB 64B/line 8-way
cpu0: using thermal monitor 2
cpu0: Enhanced SpeedStep (956 mV) 600 MHz
cpu0: Enhanced SpeedStep frequencies available (MHz): 1200 1100 1000 900 800 600
ioapic at mainbus0: not configured
acpi0 at mainbus0: Advanced Configuration and Power Interface
acpi0: using Intel ACPI CA subsystem version 20060217
acpi0: X/RSDT: OemId <IBM ,TP-1U ,00002080>, AslId < LTP,00000000>
acpi0: found ECDT, GPE 28
acpi0: SCI interrupting at int 9
acpi0: fixed-feature power button present
timecounter: Timecounter "ACPI-Fast" frequency 3579545 Hz quality 1000
ACPI-Fast 24-bit timer
LNKA: ACPI: Found matching pin for 0.2.INTA at func 0: 11
LNKA: ACPI: Found matching pin for 0.29.INTA at func 0: 11
LNKD: ACPI: Found matching pin for 0.29.INTB at func 1: 11
LNKC: ACPI: Found matching pin for 0.29.INTC at func 2: 11
LNKH: ACPI: Found matching pin for 0.29.INTD at func 7: 11
LNKC: ACPI: Found matching pin for 0.31.INTA at func 1: 11
LNKB: ACPI: Found matching pin for 0.31.INTB at func 3: 11
LNKA: ACPI: Found matching pin for 1.0.INTA at func 0: 11
LNKB: ACPI: Found matching pin for 1.0.INTB at func 1: 11
LNKE: ACPI: Found matching pin for 1.1.INTA at func 0: 11
LNKF: ACPI: Found matching pin for 1.2.INTA at func 0: 11
ACPI Object Type 'Processor' (0x0c) at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C0F at acpi0 not configured
PNP0C01 at acpi0 not configured
acpilid0 at acpi0 (PNP0C0D): ACPI Lid Switch
acpibut0 at acpi0 (PNP0C0E): ACPI Sleep Button
PNP0A03 at acpi0 not configured
PNP0C02 at acpi0 not configured
PNP0000 at acpi0 not configured
PNP0100 at acpi0 not configured
PNP0200 at acpi0 not configured
PNP0800 at acpi0 not configured
PNP0C04 at acpi0 not configured
PNP0B00 at acpi0 not configured
PNP0303 at acpi0 not configured
IBM3780 at acpi0 not configured
IBM0071 at acpi0 not configured
acpiec0 at acpi0 (PNP0C09-0): ACPI Embedded Controller
acpiec0: io 0x62,0x66
ACPI Object Type 'Power' (0x0b) at acpi0 not configured
acpibat0 at acpi0 (PNP0C0A-0): ACPI Battery (Control Method)
acpiacad0 at acpi0 (ACPI0003-0): ACPI AC Adapter
IBM0068 at acpi0 not configured
acpitz0 at acpi0: ACPI Thermal Zone
acpitz0: unable to get polling interval; using default of 30.0s
acpitz0: passive cooling mode only
acpitz0: critical 95.0C passive 43.0C
apm0 at acpi0: Power Management spec V1.2
acpibat0: battery info: SANYO, LION, IBM-92P1002, 759
acpiacad0: AC adapter offline.
pci0 at mainbus0 bus 0: configuration mode 1
pci0: i/o space, memory space enabled, rd/line, rd/mult, wr/inv ok
pchb0 at pci0 dev 0 function 0
pchb0: Intel 82855GM Host-Hub Controller (rev. 0x02)
agp0 at pchb0: detected 8060k stolen memory
agp0: aperture at 0xe0000000, size 0x8000000
Intel 82855GM GMCH Memory Controller (miscellaneous system, revision 0x02) at pci0 dev 0 function 1 not configured
Intel 82855GM GMCH Configuration Process (miscellaneous system, revision 0x02) at pci0 dev 0 function 3 not configured
vga1 at pci0 dev 2 function 0: Intel 82855GM GMCH Integrated Graphics Device (rev. 0x02)
wsdisplay0 at vga1 kbdmux 1: console (80x25, vt100 emulation)
wsmux1: connecting to wsdisplay0
Intel 82855GM GMCH Integrated Graphics Device (miscellaneous display, revision 0x02) at pci0 dev 2 function 1 not configured
uhci0 at pci0 dev 29 function 0: Intel 82801DB USB UHCI Controller (rev. 0x01)
uhci0: interrupting at irq 11
usb0 at uhci0: USB revision 1.0
uhub0 at usb0
uhub0: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub0: 2 ports with 2 removable, self powered
uhci1 at pci0 dev 29 function 1: Intel 82801DB USB UHCI Controller (rev. 0x01)
uhci1: interrupting at irq 11
usb1 at uhci1: USB revision 1.0
uhub1 at usb1
uhub1: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub1: 2 ports with 2 removable, self powered
uhci2 at pci0 dev 29 function 2: Intel 82801DB USB UHCI Controller (rev. 0x01)
uhci2: interrupting at irq 11
usb2 at uhci2: USB revision 1.0
uhub2 at usb2
uhub2: Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1
uhub2: 2 ports with 2 removable, self powered
ehci0 at pci0 dev 29 function 7: Intel 82801DB USB EHCI Controller (rev. 0x01)
ehci0: interrupting at irq 11
ehci0: BIOS has given up ownership
ehci0: EHCI version 1.0
ehci0: companion controllers, 2 ports each: uhci0 uhci1 uhci2
usb3 at ehci0: USB revision 2.0
uhub3 at usb3
uhub3: Intel EHCI root hub, class 9/0, rev 2.00/1.00, addr 1
uhub3: 6 ports with 6 removable, self powered
ppb0 at pci0 dev 30 function 0: Intel 82801BAM Hub-PCI Bridge (rev. 0x81)
pci1 at ppb0 bus 1
pci1: i/o space, memory space enabled
cbb0 at pci1 dev 0 function 0: Ricoh 5C476 PCI-CardBus bridge (rev. 0x8d)
Ricoh product 0x0822 (SD Host Controller system, revision 0x13) at pci1 dev 0
function 1 not configured
wm0 at pci1 dev 1 function 0: Intel i82541GI Mobile 1000BASE-T Ethernet, rev. 0
wm0: interrupting at irq 11
wm0: 32-bit 33MHz PCI bus
wm0: 64 word (6 address bits) MicroWire EEPROM
wm0: Ethernet address 00:0a:e4:26:1e:65
igphy0 at wm0 phy 1: Intel IGP01E1000 Gigabit PHY, rev. 0
igphy0: 10baseT, 10baseT-FDX, 100baseTX, 100baseTX-FDX, 1000baseT, 1000baseT-FDX, auto
ath0 at pci1 dev 2 function 0
ath0: interrupting at irq 11
ath0: 11a rates: 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
ath0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ath0: 11g rates: 1Mbps 2Mbps 5.5Mbps 11Mbps 6Mbps 9Mbps 12Mbps 18Mbps 24Mbps 36Mbps 48Mbps 54Mbps
ath0: mac 5.6 phy 4.1 5 GHz radio 1.7 2 GHz radio 2.3
cbb0: interrupting at irq 11
cardslot0 at cbb0 slot 0 flags 0
cardbus0 at cardslot0: bus 2
pcmcia0 at cardslot0
pcib0 at pci0 dev 31 function 0
pcib0: Intel 82801DB ISA Bridge (rev. 0x01)
piixide0 at pci0 dev 31 function 1
piixide0: Intel 82801DBM IDE Controller (ICH4-M) (rev. 0x01)
piixide0: bus-master DMA support present
piixide0: primary channel configured to compatibility mode
piixide0: primary channel interrupting at irq 14
atabus0 at piixide0 channel 0
piixide0: secondary channel configured to compatibility mode
piixide0: secondary channel interrupting at irq 15
atabus1 at piixide0 channel 1
Intel 82801DB SMBus Controller (SMBus serial bus, revision 0x01) at pci0 dev 31 function 3 not configured
auich0 at pci0 dev 31 function 5: i82801DB/DBM (ICH4/ICH4M) AC-97 Audio
auich0: interrupting at irq 11
auich0: ac97: Analog Devices AD1981B codec; headphone, 20 bit DAC, no 3D stereo
auich0: ac97: ext id 601<AC97_22,AMAP,VRA>
Intel 82801DB AC97 Modem Controller (modem communications, revision 0x01) at pci0 dev 31 function 6 not configured
isa0 at pcib0
com1 at isa0 port 0x2f8-0x2ff irq 3: ns16550a, working fifo
pckbc0 at isa0 port 0x60-0x64
pckbd0 at pckbc0 (kbd slot)
pckbc0: using irq 1 for kbd slot
wskbd0 at pckbd0: console keyboard, using wsdisplay0
pms0 at pckbc0 (aux slot)
pckbc0: using irq 12 for aux slot
wsmouse0 at pms0 mux 0
attimer0 at isa0 port 0x40-0x43: AT Timer
pcppi0 at isa0 port 0x61
pcppi0: children must have an explicit unit
midi0 at pcppi0: PC speaker (CPU-intensive output)
sysbeep0 at pcppi0
isapnp0 at isa0 port 0x279: ISA Plug 'n Play device support
npx0 at isa0 port 0xf0-0xff
npx0: reported by CPUID; using exception 16
pcppi0: attached to attimer0
isapnp0: no ISA Plug 'n Play devices found
WARNING: Callback scheduled before sysmon task queue thread present.
timecounter: Timecounter "clockinterrupt" frequency 100 Hz quality 0
auich0: measured ac97 link rate at 48000 Hz
audio0 at auich0: full duplex, mmap, independent
Kernelized RAIDframe activated
wd0 at atabus0 drive 0: <HITACHI_DK13FA-40B>
wd0: drive supports 16-sector PIO transfers, LBA addressing
wd0: 38154 MB, 77520 cyl, 16 head, 63 sec, 512 bytes/sect x 78140160 sectors
wd0: 32-bit data port
wd0: drive supports PIO mode 4, DMA mode 2, Ultra-DMA mode 5 (Ultra/100)
wd0(piixide0:0:0): using PIO mode 4, Ultra-DMA mode 5 (Ultra/100) (using DMA)
boot device: wd0
root on wd0a dumps on wd0b
root file system type: ffs
wsdisplay0: screen 1 added (80x25, vt100 emulation)
wsdisplay0: screen 2 added (80x25, vt100 emulation)
wsdisplay0: screen 3 added (80x25, vt100 emulation)
wsdisplay0: screen 4 added (80x25, vt100 emulation)
You need to switch on bluetooth manually (FN + F5)
ubt0 at uhub2 port 1 configuration 1 interface 0 ubt0: Actiontec Electronics product 0x2441, rev 1.10/5.46, addr 2 ubt0: at uhub2 port 1 (addr 2) disconnected ubt0 detached
xorg.conf (for reference)
Section "ServerLayout"
Identifier "X.org Configured"
Screen 0 "Screen0" 0 0
InputDevice "Mouse0" "CorePointer"
InputDevice "Keyboard0" "CoreKeyboard"
EndSection
Section "Files"
RgbPath "/usr/pkg/share/X11/rgb"
ModulePath "/usr/pkg/lib/xorg/modules"
FontPath "/usr/pkg/lib/X11/fonts/misc/"
FontPath "/usr/pkg/lib/X11/fonts/TTF/"
FontPath "/usr/pkg/lib/X11/fonts/OTF"
FontPath "/usr/pkg/lib/X11/fonts/Type1/"
FontPath "/usr/pkg/lib/X11/fonts/100dpi/"
FontPath "/usr/pkg/lib/X11/fonts/75dpi/"
EndSection
Section "Module"
Load "extmod"
Load "record"
Load "dbe"
Load "glx"
Load "GLcore"
Load "xtrap"
Load "dri"
Load "freetype"
Load "type1"
EndSection
Section "InputDevice"
Identifier "Keyboard0"
Driver "kbd"
Option "XkbModel" "pc102"
Option "XkbLayout" "de"
EndSection
Section "InputDevice"
Identifier "Mouse0"
Driver "mouse"
Option "Protocol" "wsmouse"
Option "Device" "/dev/wsmouse"
Option "ZAxisMapping" "4 5 6 7"
EndSection
Section "Monitor"
Identifier "Monitor0"
VendorName "Monitor Vendor"
ModelName "Monitor Model"
EndSection
Section "Device"
### Available Driver options are:-
### Values: : integer, <f>: float, <bool>: "True"/"False",
### <string>: "String", <freq>: "<f> Hz/kHz/MHz"
### [arg]: arg optional
#Option "NoAccel" # [<bool>]
#Option "SWcursor" # [<bool>]
#Option "ColorKey" # <i>
#Option "CacheLines" # <i>
#Option "Dac6Bit" # [<bool>]
#Option "DRI" # [<bool>]
#Option "NoDDC" # [<bool>]
#Option "ShowCache" # [<bool>]
#Option "XvMCSurfaces" # <i>
#Option "PageFlip" # [<bool>]
Identifier "Card0"
Driver "intel"
VendorName "Intel Corporation"
BoardName "82852/855GM Integrated Graphics Device"
BusID "PCI:0:2:0"
EndSection
Section "Screen"
Identifier "Screen0"
Device "Card0"
Monitor "Monitor0"
SubSection "Display"
Viewport 0 0
Depth 1
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 4
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 8
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 15
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 16
EndSubSection
SubSection "Display"
Viewport 0 0
Depth 24
EndSubSection
EndSection
