FreeBSD on the Lenovo ThinkPad X200
In this document, I will try to give a comprehensive report on installing FreeBSD on a Lenovo ThinkPad X200 – what I got to work, and how, and what still does not work for me. I provide this information in the hope that it might be useful, but without any implied warranty whatsoever. If you have corrections, additional insight or feedback regarding FreeBSD on the Lenovo ThinkPad X200 to share, please drop me a line.
My Lenovo ThinkPad X200 has type 7458-CD5
.
It currently runs amd64
RELENG_8_0
.
FreeBSD 8.0
Unsupported Devices
- Intel PRO/Wireless 5300 ABGN Wireless Adapter not supported by
if_iwn
:
pci0:3:0:0 class=0x028000 card=0x10118086 chip=0x42368086 rev=0x00 hdr=0x00
Using the updated driver inRELENG_8
works for me, as does using B. Schmidt’s driver from his Subversion repository. Also see Intel PRO Wireless. - Intel ICH9 HD Audio not supported by
snd_ich
:
pci0:0:27:0 class=0x040300 card=0x20f217aa chip=0x293e8086 rev=0x03 hdr=0x00
- Intel Management Engine Interface (simple comms):
pci0:0:3:0 class=0x078000 card=0x20e617aa chip=0x2a448086 rev=0x07 hdr=0x00
- Active Management Technology - SOL (simple comms, UART):
pci0:0:3:0 class=0x070002 card=0x20ec17aa chip=0x2a478086 rev=0x07 hdr=0x00
Partially Supported Devices
- Chicony Electronics Co., Ltd., product 0x480c, class 239/2, rev 2.00/31.34, addr 2 (
ugen
) - AuthenTec Fingerprint Sensor (
ugen
) - Lenovo Computer Corp ThinkPad Bluetooth with Enhanced Data Rate II, class 224/1, rev 2.00/3.99, addr 3 (
ugen
)
Notable Supported Devices
Ericsson F3507g Mobile Broadband Minicard Composite Device (cdce
,ue
)
http://www.thinkwiki.org/wiki/Ericsson_F3507g_Mobile_Broadband_Module
http://projects.thiemo.net/moin.cgi/FreeBSD_on_ThinkPad_W500
This works fine. I use picocom --baud 115200 /dev/cuaU0
with:
AT+CPIN="1234"
AT+CFUN=1
AT+CGDCONT=1,"IP","gprs.swisscom.ch"
AT*ENAP=1,1
And then I run dhclient ue0
to bring the interface up. I plan
to polish this some more in order to have a decent control utility, maybe writing some TTY code (just for fun).
It should be possible to automate this using stty
and chat
.
To disable (disconnect and power-save):
AT*ENAP=0
AT+CFUN=4
Also supported, the SD reader, using 8GB SDHC card:
umass0: <RICOH USB2.0-FLASH Media, class 0/0, rev 2.00/0.01, addr 3> on uhub7
da0 at umass-sim0 bus 0 target 0 lun 0
da0: [RICOH R5U880FlashMedia 0000](RICOH_R5U880FlashMedia_0000) Removable Direct Access SCSI-2 device
da0: 40.000MB/s transfers
da0: 7790MB (15954944 512 byte sectors: 255H 63S/T 993C)
GEOM_LABEL: Label for provider da0s1 is msdosfs/NIKON D60
Loader Configuration
ichsmb_load="YES"
snd_ich_load="YES"
if_iwn_load="YES"
umodem_load="YES"
u3g_load="YES"
Loading snd_ich
does not give sound yet, since ICH9 is not supported yet.
PXE Installation
Old instructions for installing FreeBSD don’t work with FreeBSD 8.0 anymore. The following procedure worked for me:
- On the boot server, copy the installation CD-ROM to
/pxeroot
. - Add the following lines to
/pxeroot/boot/loader.conf
: vfs.root.mountfrom=“ufs:/dev/md0” vfs.root.mountfrom.options=“rw” Note that this ismd0
notmd0c
as stated in outdated documentation. Mounting the root filesystem failed for me when usingmd0c
. - Add the following line to
/etc/inetd.conf
: tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /pxeroot/boot - Add the following line to
/etc/exports
: /pxeroot -alldirs -maproot=root -ro -network 192.0.2.0/24 With192.0.2.0/24
being the address range assigned to your DHCP clients. - Add the following lines to
/usr/local/etc/dhcpd.conf
: host myclient { hardware ethernet 00:11:22:33:44:55; filename “pxeboot”; next-server 192.0.2.1; } This will make the system with the MAC address00:11:22:33:44:55
boot over PXE, getting the boot loader fromtftp://192.0.2.1/pxeboot
. - Start all required services which you don’t start by default: /etc/rc.d/nfsd onestart /etc/rc.d/inetd onestart /usr/local/etc/rc.d/isc-dhcpd onestart And/or restart those which you already run by default to make them pick up your changes: killall -HUP mountd killall -HUP inetd /usr/local/etc/rc.d/isc-dhcpd restart
- Boot your client with PXE. Sysinstall should come up.
When asked which installation media to install from,
enter NFS from
192.0.2.1:/pxeroot
.
If you want an unattended installation, you can modify
install.cfg
within the mfsroot.gz
root filesystem
image under /pxeroot/boot
on the boot server.