FreeBSD on IBM Thinkpad T40

So, you want to run FreeBSD on your IBM Thinkpad T40? Apart from searching the Web and common sense, here are some useful hints, without any warranty of course. (I have model 2379D6U and use 6.0-STABLE - I have also used 5.3-RELEASE and 5.1-RELEASE in the past.).


PC-Card:
6.0-STABLE and 5.3-RELEASE:
The pccard slots are recognized out of the box.
5.1-RELEASE:
Use OLDCARD instead of NEWCARD to have your pccard slots recognized. So put these in your kernel:

nodevice cbb
nodevice pccard
nodevice cardbus
device card 1
device pcic
And set the following variable in /etc/rc.conf:
pccard_enable="YES"
Alternatively, you may have your pccard slots recognized using NEWCARD, by adding the following parameter to /boot/loader.conf:
hw.pci.allow_unsupported_io_range="1"

Power Management:
6.0-STABLE and 5.3-RELEASE:
ACPI works out of the box. If you get the following message when booting: "ACPI autoload failed - no such file or directory", change module_path="/boot/modules" to

module_path="/boot/kernel;/boot/modules"
in /boot/defaults/loader.conf.
5.1-RELEASE:
APM support is more stable than ACPI, so -if you want to use it instead- add the following device in the kernel:
device apm
and the following device hints to /boot/device.hints:
hint.acpi.0.disabled="1"
hint.apm.0.disabled="0"
hint.apm.0.flags="0x20"
and set the following variable in /etc/rc.conf:
apm_enable="YES"	
Suspend/resume works, even if you have X running, as long as you turn to a virtual console when resuming. To avoid getting a blank screen after a period of inactivity and having to switch from X to a virtual console and then back to X, add the following to /etc/sysctl.conf:
 
hw.syscons.sc_no_suspend_vtswitch=1
After a resume the mouse will not work, unless you restart the mouse daemon. To avoid that, you may add the following device hint to /boot/device.hints:
hint.psm.0.flags="0x2000"

Network card:
To be able to use the em0 driver for Intel's GigaBit Ethernet card, put this parameter in /boot/loader.conf:

hw.pci.allow_unsupported_io_range="1"

Sound:
Load the driver as a kernel module on boot time, by putting this in /boot/loader.conf:

snd_ich_load="YES"

X:
In 5.1-RELEASE do not use agp in the kernel, to be able to run X (any resolution you want) on ATI's Radeon Mobility 9000. So comment out device agp or put this in your kernel:

nodevice agp
No need to do that for 6.0-STABLE and 5.3-RELEASE. The trackpoint works with the SysMouse driver. To be able to use the middle button disable the touchpad from the BIOS. (The touchpad works as well.) Quickly produce an XF86Config file with:
XFree86 -configure
You can use:
DefaultDepth     24
To avoid hangs when suspending/resuming do not use the dri module. Here are the modules to have in your XF86Config file:
Section "Module"
#	Load  "dri"
	Load "freetype"
	Load "xtt"
	Load  "dbe"
	Load  "extmod"
	Load  "glx"
	Load  "record"
	Load  "xtrap"
	Load  "speedo"
	Load  "type1"
	Load  "ddc"
	Load  "xaa"
EndSection

Intel's integrated WLAN card (PRO/Wireless 2100):
6.0-STABLE:
Supported out of the box using ipw.
5.3-RELEASE:
Supported, by the NDISulator, aka "Project Evil". Also supported by ipw. To install ipw in 5.3-RELEASE, follow the excellent instructions. To automate the card's configuration at boot time, you can put this in /boot/loader.conf:

if_ipw_load="YES"
and these in /etc/rc.conf:
/usr/sbin/ipwcontrol -i ipw0 -f /usr/local/libdata/if_ipw/ipw2100-1.3.fw
ifconfig_ipw0="DHCP"
Note that the radio transmitter cannot be controlled by Fn+F5, but is switched on automatically when the ipw interface goes up. Also note that the interface cannot obtain an IP address if a firmware binary image has not been downloaded to the adapter (hence the order of the commands in /etc/rc.conf).
5.1-RELEASE:
Not supported.


And that should do it! You can contact me with questions, comments or hints (especially regarding the TV-Out, the IrDA, or the modem). Many thanks to all the FreeBSD hackers for making this possible.

tsr home
cd /home