FreeBSD on the ThinkPad W500


The built-in Ericsson F3507g Mobile Broadband Minicard Composite Device is supported by the umodem(4) driver.

ppp.conf snippet for Vodafone WebSessions (Replace <PIN> with the SIM card's PIN.)

It is also supported by the cdce(4) driver which provides the Ethernet interface ue0 here. This can be used by first powering up the modem, providing PIN and configuration, and then just starting DHCP on ue0:


echo -n "PIN..."
${CHAT} -t 3 "" "AT+CPIN?" "SIM PIN" "AT" "OK" "AT+CPIN=\"$PIN\"" "OK" > $CTLDEV < $CTLDEV
echo -n " power..."
${CHAT} -t 45 "" "AT+CPIN?" "READY" "AT+CFUN=1" "+PACSP0" "AT" "OK" > $CTLDEV < $CTLDEV
echo -n " connection..."
${CHAT} -t 5 "" 'AT+CGDCONT=1,"IP",""' "OK" > $CTLDEV < $CTLDEV
${CHAT} -t 5 "" 'AT*ENAP=1,1' "OK" > $CTLDEV < $CTLDEV
echo -n " DHCP..."
dhclient ${ETHDEV} > /dev/null 2>&1
echo " done."

My chat scripts hang when started the first time after notebook power-on, and seem not to actually enable the device. Starting a second time works then. I have not yet investigated this.


Supported by the umodem(4) driver, just as the GSM/GPRS/UMTS modem. Script for easy handling

astro/gpsd is helpful.

However, the umodem(4) driver seems somewhat attracted by the third serial USB device of this interface (which is called GPS something in its device descriptor), but fails to attach:

umodem0: <Ericsson F3507g Mobile Broadband Minicard Modem> on usbus7
umodem0: data interface 2, has CM over data, has break
umodem1: <Ericsson F3507g Mobile Broadband Minicard Data Modem> on usbus7
umodem1: data interface 4, has CM over data, has break
cdce0: <Ericsson F3507g Mobile Broadband Minicard Network Adapter> on usbus7
ue0: <USB Ethernet> on cdce0
ue0: Ethernet address: 02:80:37:ec:02:00
umodem2: <Ericsson F3507g Mobile Broadband Minicard GPS Port> on usbus7
umodem2: data interface 12, has CM over data, has break
umodem2: no data interface!
device_attach: umodem2 attach returned 6


Is supported as a ng_ubt(4) device. I have written a small program that can be installed setuid root to turn the Bluetooth interface on and off without needing to be root. Source It needs acpi_ibm(4), however.


The 82801IB/IR/IH (ICH9 Family) HD Audio Controller is supported by snd_hda(4).

Useful entry for /boot/device.hints:

hint.hdac.0.cad0.nid22.config="as=1 seq=15 device=Headphones"
hint.hdac.0.cad0.nid26.config="as=1 seq=0 device=Speaker"
hint.hdac.0.cad0.nid24.config="as=2 seq=15"
hint.hdac.0.cad0.nid29.config="as=2 seq=0"


Needs some ports...:


One system-wide key definition file: /usr/local/etc/lineakkb.def, and a configuration file mapping keys to functions like this one in $HOME/.lineak/lineakd.conf. Then, start lineakd on X startup, e.g. in .xinitrc.

The special (Fn+...) keys can be used to generate events evaluated by devd(8), when acpi_ibm(4) is loaded and set to 1. The respective part of /etc/sysctl.conf for me:

dev.acpi_ibm.0.eventmask=7340052 # configure events for acpi_ibm(4)          # turn on ACPI event reporting to devd


I have disabled the ATI graphics card, and turned on the intel interface only. This is my Xorg config.

Acceleration sensor

I have found a source package on the web, which seems similar to what can be found on Sourceforge. I have disabled the magic in hdaps_check_ec() because this made the driver fail to attach - and with this change, the accelerometer works under 8-current as of 22. May 2009:

thinkpad_ec0: <IBM ThinkPad Embedded Controller -[7VHT12WW-1.01    ]-> port 0x1600-0x161f on acpi0
thinkpad_ec0: thinkpad_ec 0.30-FreeBSD loaded.
hdaps: initial mode latch is 0x05
hdaps: setting ec_rate=250, filter_order=2
hdaps: fake_data_mode set to 0
hdaps: device successfully initialized.
hdaps0: <Accelerometer> on thinkpad_ec0
hdaps: driver successfully loaded.

The hdapsmonitor tool, also in the tarball, shows nice graphs when the Thinkpad is moved. However, using games/neverball is a bit weird: The direction information comes out of the joystick device inversed. I have not yet investigated that.


Supported by iwn(4) in 9-CURRENT per UPDATING entry 20091025. Seems to work for the Intel PRO/Wireless 5300 interface in my ThinkPad.

Fingerprint sensor

Not yet supported under any free OS, it seems.

some output