I have acquired a new laptop/netbook, a Lenovo X201. My initial reactions are positive. It runs Debian better than my old Dell laptop does (see my Debian on Dell Precision M65 writeup). The rest of this article will be devoted to notes and information about running a GNU/Linux system on the Lenovo X201.
First the hardware configuration and quick status summary of how well each piece is working:
CPU | Intel Core i7 620M 2.67GHz | OK |
RAM | Samsung 4GB RAM DDR3 1333 MHz PC3-10600 | OK |
BIOS | Lenovo v1.22 dated 2010-08-23 | OK |
Disk | Seagate Momentus 320GB ST9320423AS | OK |
Graphics | Intel GMA HD integrated | OK |
Screen (internal) | 1200×800 12.1″ WXGA TFT | OK |
Screen (external) | DisplayPort support for at least 1920×1200 | OK |
Webcam | Lenovo/Chicony Camera | OK |
Mouse | UltraNav TrackPoint/TouchPad | OK |
Ethernet | Intel PRO/1000 (e1000) 82577LM | OK |
CD/DVD burner | Matshita DVD-RAM (in Lenovo X200 UltraBase) | OK |
Memory card reader | Generic USB2.0-CRW ID 0bda:0159 | OK |
Bluetooth | Broadcom USB ID 0a5c:217f | OK |
Docking station | Lenovo UltraBase X200 | OK |
Audio | Intel 5 Series/3400 HD-Audio | OK ? |
Fingerprint | Upek USB ID 147e:2016 | ? |
Modem | ? | ? |
Wireless | Intel Centrino Ultimate-N 6300 | Non-free |
3G | Qualcomm Gobi 2000 | Non-free |
GPS | Qualcomm Gobi 2000 | FAIL |
I’m also using a Gemalto GemPC ExpressCard smart card reader, but it was not included in the laptop.
For reference, this laptop was labeled “3323” and “NUSRCMS” from the reseller. It included the UltraBase X200 as a combo.
Installation
The installation was unexciting except for software bugs that were easy to work around and that I expect will be resolved eventually. For more information, see my installation report. It also contains “lsusb” and “lspci” output if you are curious about hardware details.
What works?
Hdparm testing of the hard drive:
Timing cached reads: 9188 MB in 2.00 seconds = 4596.31 MB/sec Timing buffered disk reads: 280 MB in 3.02 seconds = 92.78 MB/sec
The Intel graphics is working fine, both the internal TFT and the external DisplayPort. I’m driving my Dell 2405FPW (DVI) to 1920×1200 without issues. Cycling through monitors with Fn-F7 works out of the box.
Wired ethernet via X200 UltraBase in Gigabit speeds works. The UltraBase do not appear to contain another ethernet card, it is just another ethernet socket for the internal ethernet port. When the machine is docked, the internal ethernet port does not work – ethernet is redirected to the UltraBase ethernet port.
I have tested bluetooth for file browsing and connecting to the Internet via my Nokia N900.
The memory card reader handled a SD card fine, haven’t tested other formats.
The ExpressCard54 slot handles my GemPC Express smart card reader without issues, together with pcscd and GnuPG. However, the mechanical button used to eject cards is poorly made and does not handle the force required to eject the card.
Suspend to RAM+Disk is working fine, and the special keys Fn+F4 to suspend works.
I’m able to hotplug connect to the UltraBase docking station.
Fingerprint reader is not yet tested.
The Intel Audio appears to work, both output (internal speakers) and output (internal microphone). Some applications, e.g., Ekiga, chooses the wrong input/output devices. A few times, audio has not been working, but when I have tried to debug or reproduce the problem, it always mysteriously started to work. The kernel log contains the following, which may or may not be related:
[ 85.017887] hda-intel: IRQ timing workaround is activated for card #0. Suggest a bigger bdl_pos_adj.
Intel Wireless does not work
The built-in Intel Centrino 6300 does not work without non-free software installed.
Workaround: Download the 9.221.4.1 firmware from Intel Linux Wireless and unpack the file to /lib/firmware
. With this installed, it is working reliable and handles suspend fine. An older version of the firmware is available in the firmware-iwlwifi
Debian non-free package.
Qualcomm Gobi 2000 GPS does not work
There is a kernel patch to enable the GPS USB devices. I haven’t tested it.
Qualcomm Gobi 2000 3G does not work
The device requires non-free firmware to be loaded through a firmware loader device (USB 05c6:9204). This is how it looks when I do a cold boot:
Oct 27 17:34:33 latte kernel: [ 2.804850] usb 2-1.4: new high speed USB device using ehci_hcd and address 3 Oct 27 17:34:33 latte kernel: [ 2.898483] usb 2-1.4: config 1 has an invalid interface number: 1 but max is 0 Oct 27 17:34:33 latte kernel: [ 2.898488] usb 2-1.4: config 1 has no interface number 0 Oct 27 17:34:33 latte kernel: [ 2.900352] usb 2-1.4: New USB device found, idVendor=05c6, idProduct=9204 Oct 27 17:34:33 latte kernel: [ 2.900356] usb 2-1.4: New USB device strings: Mfr=3, Product=2, SerialNumber=0 Oct 27 17:34:33 latte kernel: [ 2.900360] usb 2-1.4: Product: Qualcomm Gobi 2000 Oct 27 17:34:33 latte kernel: [ 2.900363] usb 2-1.4: Manufacturer: Qualcomm Incorporated Oct 27 17:34:33 latte kernel: [ 2.900418] usb 2-1.4: configuration #1 chosen from 1 choice Oct 27 17:34:33 latte kernel: [ 6.793914] qcserial 2-1.4:1.1: Qualcomm USB modem converter detected Oct 27 17:34:33 latte kernel: [ 6.793979] usb 2-1.4: Qualcomm USB modem converter now attached to ttyUSB0 Oct 27 17:34:33 latte kernel: [ 6.793992] usbcore: registered new interface driver qcserial
Workaround 1: If I start Windows and then directly reboot the machine into Debian (that is, as opposed to booting Debian directly) the firmware is loaded by Windows and the device works fine for 3G use with network-manager. This is how it looks when I boot Debian after Windows:
Oct 27 17:44:26 latte kernel: [ 2.874072] usb 2-1.4: new high speed USB device using ehci_hcd and address 3 Oct 27 17:44:26 latte kernel: [ 2.984534] usb 2-1.4: New USB device found, idVendor=05c6, idProduct=9205 Oct 27 17:44:26 latte kernel: [ 2.984539] usb 2-1.4: New USB device strings: Mfr=4, Product=3, SerialNumber=0 Oct 27 17:44:26 latte kernel: [ 2.984543] usb 2-1.4: Product: Qualcomm Gobi 2000 Oct 27 17:44:26 latte kernel: [ 2.984546] usb 2-1.4: Manufacturer: Qualcomm Incorporated Oct 27 17:44:26 latte kernel: [ 2.984639] usb 2-1.4: configuration #1 chosen from 1 choice Oct 27 17:44:26 latte kernel: [ 6.440967] USB Serial support registered for Qualcomm USB modem Oct 27 17:44:26 latte kernel: [ 6.442267] qcserial 2-1.4:1.2: Qualcomm USB modem converter detected Oct 27 17:44:26 latte kernel: [ 6.442332] usb 2-1.4: Qualcomm USB modem converter now attached to ttyUSB0 Oct 27 17:44:26 latte kernel: [ 6.442349] usbcore: registered new interface driver qcserial
Workaround 2: Following the hints on ThinkWiki’s Gobi 2000 page (and its talk page) I came up with the following. First copy the firmware from your Windows partition to /lib/firmware/gobi
like this:
mount /dev/sda2 /mnt/ cd /mnt/Program Files/QUALCOMM/Images/Lenovo/ cp UMTS/amss.mbn UMTS/apps.mbn 6/UQCN.mbn /lib/firmware/gobi sha1sum /lib/firmware/gobi/* 7048cf1e41f7402c6166c4126e95ac116a00ae58 /lib/firmware/gobi/amss.mbn 5c362a481e252f91c0631b9c951f44deee38908a /lib/firmware/gobi/apps.mbn a69979fb8d7f04850efe81f90167db2558e282ab /lib/firmware/gobi/UQCN.mbn
Then install the gobi-loader Debian package package from contrib (i.e., ‘apt-get install gobi-loader’) and restart your system. On the next boot, the kernel should print this:
[ 2.813456] usb 2-1.4: new high speed USB device using ehci_hcd and address 3 [ 2.906079] usb 2-1.4: config 1 has an invalid interface number: 1 but max is 0 [ 2.906084] usb 2-1.4: config 1 has no interface number 0 [ 2.907953] usb 2-1.4: New USB device found, idVendor=05c6, idProduct=9204 [ 2.907958] usb 2-1.4: New USB device strings: Mfr=3, Product=2, SerialNumber=0 [ 2.907962] usb 2-1.4: Product: Qualcomm Gobi 2000 [ 2.907965] usb 2-1.4: Manufacturer: Qualcomm Incorporated [ 2.908054] usb 2-1.4: configuration #1 chosen from 1 choice [ 7.150607] USB Serial support registered for Qualcomm USB modem [ 7.150638] qcserial 2-1.4:1.1: Qualcomm USB modem converter detected [ 7.150713] usb 2-1.4: Qualcomm USB modem converter now attached to ttyUSB0 [ 7.150735] usbcore: registered new interface driver qcserial [ 11.918372] usb 2-1.4: USB disconnect, address 3 [ 11.918546] qcserial ttyUSB0: Qualcomm USB modem converter now disconnected from ttyUSB0 [ 11.918574] qcserial 2-1.4:1.1: device disconnected [ 13.397864] usb 2-1.4: new high speed USB device using ehci_hcd and address 5 [ 13.503486] usb 2-1.4: New USB device found, idVendor=05c6, idProduct=9205 [ 13.503492] usb 2-1.4: New USB device strings: Mfr=4, Product=3, SerialNumber=0 [ 13.503496] usb 2-1.4: Product: Qualcomm Gobi 2000 [ 13.503499] usb 2-1.4: Manufacturer: Qualcomm Incorporated [ 13.503611] usb 2-1.4: configuration #1 chosen from 1 choice [ 13.507795] qcserial 2-1.4:1.2: Qualcomm USB modem converter detected [ 13.507881] usb 2-1.4: Qualcomm USB modem converter now attached to ttyUSB0
Now network-manager should automatically detect it and query you for PIN code etc.
Pingback: Debian on Lenovo X201 | Debian-News.net - Your one stop for news about Debian
Awesome stuff dude. It’s too bad that not everything works but I hope that in time this will get fixed. Thanks for the post.
I linked you:
http://www.lenovox201.com/2010/10/debian-os-on-lenovo-x201.html
Jesse B Andersen
I know I am commenting on a 5yrs old article – thanks for writing this. But are you sure the ethernet works without non-free blobs? The following discussion is saying the opposite:
http://trisquel.info/en/forum/replace-ethernet-chipset-thinkpad-x201
I believe they are referring to replacing the firmware stored in persistent storage in the network card — there is no firmware blob coming from Debian userspace to the ethernet device on my laptop, as far as I’m able to tell at least.
/Simon
Pingback: OpenPGP smartcard under GNOME on Debian 9.0 Stretch – Simon Josefsson's blog
Pingback: OpenPGP smartcard under GNOME on Debian 10 Buster – Simon Josefsson's blog
Pingback: OpenPGP smartcard with GNOME on Debian 11 Bullseye – Simon Josefsson's blog
Pingback: How to complicate buying a laptop – Simon Josefsson's blog
Pingback: OpenPGP key on FST-01SZ – Simon Josefsson's blog