ThinkPad X1 Carbon 3rd Gen

I recently got myself a new machine, a Lenovo ThinkPad X1 Carbon 3rd generation (model 20BS) without touchscreen, but with a WAN card for non-WiFi connectivity.

These are my notes on how I use it, how it works etc. It will be updated as I move along and learn. Newer stuff at the bottom.

Update: There’s a new thread on AskUbuntu which seems promising in bringing together how to get the most out of this machine (via Ubuntu/Linux).

Update 2016-06-25: I’ve used this for a year now, and it’s a great product. There was some early Linux-y hardware support issues, but this is now all gone.
I will replace my 3rd gen Carbon with a 4th gen Carbon after the summer. I expect the same noise-less (completely silent = fan not moving) mode of operations for most developmnt activities (PyCharm from JetBrains, occational maven and gradle builds), excellent build and feel (keyboard), fast SSD (PCIe NVM). Reasons to upgrade: 2K resolution; left-hand side USB port no longer works; I chipped one of the corners of the display lid.

Session 1

Running from USB stick with Ubuntu 14.10. Lots of things works out of the box, but not everything. I expected everything to actually work out of the box: it’s all Intel chipsets through out. That used be a safe sign of “yes, you’ll NOT spend time fiddling with hardware.


The BIOS should probably be updated.

It’s lighter than the MacBook Air I’ve been dragging around for two-three years, just a little wider and in general feels nice.


Initially, I got really annoyed with this. I’ve been a TXXX user for many years, except for the past three years where I’ve mainly used a MacBook Air 5.2. The keyboard on the MacBook was different, but pleasant to me. This keyboard is a move back towards the legendardy ThinkPad laptop keyboards. The keyboard on this is NOT the same as the old ones, and I initially didn’t like the feeling. But as I’m typing away right now, I have to say that it actually feels a lot better than expected. I won’t miss the MacBook Air keyboard. Not yet.

Some details
  • The spacebar is a bit firmer/stiffer than the rest of the keys. I forgot this the moment I started typing though. I should mention I have a “correct” finger position when typing, although I use qwerty layout.
  • The G key squeaks and will either start to work really soon or I’ll make a complaint and have it replaced. (Having typed away and tried more, I’ll make a phone call tomorrow to have this fixed.
  • The backspace key “clicks” if pressed close to the right. I don’t reach that far when typing, so I didn’t notice until I started my “key investigation around the G key” …

Disk Drive

This is where the NSA, Chinese governement etc put their stuff, I presume? Starting gparted to see what can be done with the disk. I’d like to keep the Windows license and use that in a VirtualBox machine. I notice there’s no “Windows license” sticker on the machine, although there should be one according to the documentation that came with the machine. (My box was marked “No Acc” and the acc adapter came in a plastic bag that weren’t as new as the other bags. The documentation said that the Windows license sticker may be attached to the adapter!)

The driver descriptor says the physical block size is 2048 bytes, but Linux says it is 512 bytes.

gparted images

(parted) print                                                            
Model: ATA SAMSUNG MZHPV256 (scsi)
Disk /dev/sda: 500118192s
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start       End         Size        File system  Name                          Flags
 1      2048s       2050047s    2048000s    ntfs                                       hidden, diag
 2      2050048s    2582527s    532480s     fat32        EFI system partition          boot, esp
 3      2582528s    2844671s    262144s                  Microsoft reserved partition  msftres
 4      2844672s    446922751s  444078080s  ntfs         Basic data partition          msftdata
 5      446922752s  485437439s  38514688s   ntfs                                       hidden, diag
 6      485437440s  500117503s  14680064s                Basic data partition          hidden, irst


I really like the feel of the machine, now that I’ve used it for some time. Will dig into real coding soon. For now, it’s been vim, Chromium and some Docker.


  • Suspend
  • Volume buttons
  • Scrolling
  • Headphones
  • Speakers
  • Screen (apart from dimming)
  • Wifi
  • Touchpad, including two finger scrolling (see Issues)
  • Trackpad
  • Bluetooth
  • Fn+Spacebar to toggle keyboard backlight level
  • Fn+Esc, or FnLk - whether the Fn key needs pressing for F1 through F12 to record F* or special keycode
  • 3G modem, Ericsson Business Mobile Networks BV
  • HDMI port

Doesn’t work

These are things that doesn’t work, at least out of the box with Ubuntu 14.10 run from USB stick.

  • Left, right and middle click buttons (above the mousepad) - left/right scrolls up/down
  • Brightness up and down buttons
  • Mic mute button
  • Wireless radios off button (workaround is to use rfkill)


  • Touchpad gets triggered from resting my left hand (base of my thumb) while typing this text, the pointer moves around …
  • The PrtSc button, positioned to the right of AltGr, I’ve accidentally triggered at least 6 times while typing (mostly when reaching for AltGr + 2 for @ on a Swedish layout).
  • The machine beeps when booting. I’m pretty sure this can be turned off.

Not tested

  • External adapters for VGA (via miniDP), e1000e adapter
  • Hibernate - supposedly doesn’t work according to Canonical’s tests
  • Camera for video conferencing
  • Finger print reader (won’t test this, it worked really well back in 2005 but I didn’t find it useful …)


I’ve heard the fan twice after three hours of light usage.

I’m mostly interested in the WAN adapter as Wifi has been … not unstable, but far from stellar … on the MacBook Air. While it seems to run really fine on the X1, I still expect to use the data modem from time to time. From lsusb:

  idVendor           0x0bdb Ericsson Business Mobile Networks BV
  idProduct          0x193e 
  bcdDevice            0.00
  iManufacturer           1 Lenovo
  iProduct                2 N5321 gw
      iInterface              5 Integrated Camera
      iInterface              5 N5321 gw Mobile Broadband Device
      iInterface              6 N5321 gw Mobile Broadband Modem
      iInterface              7 N5321 gw Mobile Broadband Modem
      iInterface              8 N5321 gw Mobile Broadband Data Modem
      iInterface              9 N5321 gw Mobile Broadband Data Modem
      iInterface             10 N5321 gw Mobile Broadband Device Management
      iInterface             11 Ericsson N5321 gw
      iInterface             14 Ericsson N5321 gw
      iInterface             15 Ericsson N5321 gw
      iInterface             16 N5321 gw Mobile Broadband USIM Port
      iInterface             17 N5321 gw Mobile Broadband GPS Port
      iInterface             18 N5321 gw Mobile Broadband GPS Port

Lacking, Cons

  • I’ve used SD cards quite a lot, mainly to boot Raspberry Pis off, and occasionally to read and clear images and videos from a camera. This laptop/ultrabook doesn’t have a SD card reader.
  • I would really like to have more RAM. I knew this when I bought it, and I don’t expect to use this machine very long - I expect a 16 GB ultrabook to appear soon, and I’ll replace this one for whatever comes.

This ends session 1 with this laptop. So far it’s a nice experience with a few issues: the G key, keypad triggering when writing, screen brightness dimming.

Session 2


I’ve now used the computer for some real work and have made a fix installation.

I started out saving the partition layout using sgdisk and then used dd to copy the Windows related partitions off to an external SSD drive. I used the USB 3 connector and I copied 19 GB of data in what felt like no time at all. Just over 230 MB/s was the speed reported by pv.

After that, I installed Ubuntu 14.10 and used all the disk wiping whatever (spyware) was on there. An aptitude update && aptitude -y upgrade pulled in some 100 new packages and after a reboot, this is the “new” current situation: all the issues (under Doesn’t work) are still there.

Battery wise I’ve not used powertop yet, and get around 5 hours of light usage work on a single charge. That’s with Wifi turned on. Light usage for me is editing HTML, gimping some graphics, running a nginx in Docker and Chromium for inspecting the result (I was editing

New issues

  • rather severe X issues
  • keyboard keys suck up every piece of dirt they can find

The keyboard, which is to be replaced tomorrow, is made of a more plastic material than what you’ll find on T440 and other ThinkPads. The finish and texture is not matte, but “blank” and this makes your fingers leave “trails” of where you’ve been. It doesn’t look very inviting, which isn’t the typical ThinkPad keyboard experience. The left mouse button, I’ve discovered, easily gets stuck. To release the button, I have to give the surounding carbon case a gentle “nudge”.

Just this morning, I got an e-mail from an Alex Conway who provided two fixes:

I was able to find a fix for the latter two that makes them work as expected:

sudo apt-get install tp-smapi-dkms

sudo modprobe thinkpad_acpi force_load=1

But I still can’t change the screen brightness (The buttons do make the brightness indicator change, but the actual brightness stays somewhere around full and even the System Settings brightness slider does nothing), and the physical buttons don’t work.

There’s a thread on Reddis on mouse buttons on the X1 which suggests that: Peter Hutterer is working on it; thinkpad_acpi force_load=1 with some xinput magic should to the trick. (I’ll try this later.)

The X issue

After some time of usage, X stops drawing properly. This usually comes into play with Chromium and right click menu - all I get is an empty box, the outline is drawn but not the content. Another example is that the window decorations aren’t drawn after alt+tabbing to a gnome-terminal. After a while things gets worse and the actual text in gnome-terminal doesn’t update. A Ctrl+L usually does the trick, but hey - this is a serious bug. I went fullscreen yesterday on a YouTube clip with Stephen Fry on God, and I couldn’t get out of it. I resorted to sudo service lightdm restart from TTY 1.

Summary, so far

Performance wise, I’m really happy with this machine. It weighs less than my MacBook Air. The fan has spun up another three times since I got the machine, which is excellent. There are some minor issues with buttons etc, as is to expect with completely new hardware and Linux. There is one major issue with X, not drawing properly. As Alex didn’t report this, I assume it’s a 14.10 (Wayland?) thing and moving back to 14.04 LTS could be an option.

Session 3

Replacing my keyboard was supposed to “take 10 minutes” according to the technician. After completely disassembling my computer, about 3 hours later and two turns to put some money on the meter (for car parking), he left taking my computer with him as it no longer could run without the AC adapter plugged in.
I got it back next day and it’s working as expected now.

The 3G modem works out of the box - I just inserted the micro-SIM card and after a minute or two, I could see the device in the Network Manager menu.

Session 4


The 3G modem works fine, but takes quite some time to get going after waking up from suspend.

Mar 17 09:11:54 fredrik-x1carbon kernel: [36206.977880] ACPI: Low-level resume complete
Mar 17 09:13:02 fredrik-x1carbon ModemManager[935]: <info>  Modem for device at '/sys/devices/pci0000:00/0000:00:14.0/usb2/2-4' successfully created

It’s not that much, but it’s way longer than using wifi and setting up a wifi hotspot on my phone. The X11 issue made me install Ubuntu 14.04.2, hoping that it would rid this issue completely. It didn’t. I’m more and more leaning towards this being a Intel HD 5500 driver issue and will try out deb trusty main. After getting that, I ran intel-linux-graphics-installer which is a graphical program :-(

This is what it did:

    i965-va-driver:amd64 (1.4.0-0intel1)
    libegl1-mesa-drivers:amd64 (10.3.0-0ubuntu2intel1)
    libegl1-mesa:amd64 (10.3.0-0ubuntu2intel1)
    libgl1-mesa-dri:amd64 (10.3.0-0ubuntu2intel1)
    libgl1-mesa-glx:amd64 (10.3.0-0ubuntu2intel1)
    libglapi-mesa:amd64 (10.3.0-0ubuntu2intel1)
    libgles1-mesa:amd64 (10.3.0-0ubuntu2intel1)
    libgles2-mesa:amd64 (10.3.0-0ubuntu2intel1)
    libopenvg1-mesa:amd64 (10.3.0-0ubuntu2intel1)
    libosmesa6:amd64 (10.3.0-0ubuntu2intel1)
    libva-drm1:amd64 (1.4.0-0intel1)
    libva-egl1:amd64 (1.4.0-0intel1)
    libva-glx1:amd64 (1.4.0-0intel1)
    libva-tpi1:amd64 (1.4.0-0intel1)
    libva-wayland1:amd64 (1.4.0-0intel1)
    libva-x11-1:amd64 (1.4.0-0intel1)
    libvdpau1:amd64 (0.7-1)
    libwayland-egl1-mesa:amd64 (10.3.0-0ubuntu2intel1)
    libxatracker2:amd64 (10.3.0-0ubuntu2intel1)
    va-driver-all:amd64 (1.4.0-0intel1)
    vainfo:amd64 (1.4.0-0intel1)
    vdpau-va-driver:amd64 (0.7.3-2ubuntu1.2)
    xserver-xorg-core:amd64 (2:1.15.1-0ubuntu2.7)
    xserver-xorg-input-evdev:amd64 (1:2.8.2-1ubuntu2)
    xserver-xorg-video-intel:amd64 (2:2.99.911-0intel1)
    xserver-xorg:amd64 (1:7.7+1ubuntu8.1)
    libgbm1:amd64 (from 10.1.3-0ubuntu0.3 to 10.3.0-0ubuntu2intel1)
    libegl1-mesa-drivers-lts-utopic:amd64 (was 10.3.2-0ubuntu1~trusty2)
    libegl1-mesa-lts-utopic:amd64 (was 10.3.2-0ubuntu1~trusty2)
    libgbm1-lts-utopic:amd64 (was 10.3.2-0ubuntu1~trusty2)
    libgl1-mesa-dri-lts-utopic:amd64 (was 10.3.2-0ubuntu1~trusty2)
    libgl1-mesa-glx-lts-utopic:amd64 (was 10.3.2-0ubuntu1~trusty2)
    libglapi-mesa-lts-utopic:amd64 (was 10.3.2-0ubuntu1~trusty2)
    libgles1-mesa-lts-utopic:amd64 (was 10.3.2-0ubuntu1~trusty2)
    libgles2-mesa-lts-utopic:amd64 (was 10.3.2-0ubuntu1~trusty2)
    libopenvg1-mesa-lts-utopic:amd64 (was 10.3.2-0ubuntu1~trusty2)
    libwayland-egl1-mesa-lts-utopic:amd64 (was 10.3.2-0ubuntu1~trusty2)
    libxatracker2-lts-utopic:amd64 (was 10.3.2-0ubuntu1~trusty2)
    xserver-xorg-core-lts-utopic:amd64 (was 2:1.16.0-1ubuntu1.2~trusty2)
    xserver-xorg-input-all-lts-utopic:amd64 (was 1:7.7+7ubuntu2~trusty1)
    xserver-xorg-input-evdev-lts-utopic:amd64 (was 1:2.9.0-1ubuntu2~trusty1)
    xserver-xorg-input-mouse-lts-utopic:amd64 (was 1:1.9.0-1build2~trusty1)
    xserver-xorg-input-synaptics-lts-utopic:amd64 (was 1.8.1-1ubuntu1~trusty1)
    xserver-xorg-input-vmmouse-lts-utopic:amd64 (was 1:13.0.0-1build2~trusty1)
    xserver-xorg-input-wacom-lts-utopic:amd64 (was 1:0.25.0-0ubuntu1~trusty1)
    xserver-xorg-lts-utopic:amd64 (was 1:7.7+7ubuntu2~trusty1)
    xserver-xorg-video-all-lts-utopic:amd64 (was 1:7.7+7ubuntu2~trusty1)
    xserver-xorg-video-ati-lts-utopic:amd64 (was 1:7.4.0-2ubuntu2~trusty1)
    xserver-xorg-video-cirrus-lts-utopic:amd64 (was 1:1.5.2-2build1~trusty1)
    xserver-xorg-video-fbdev-lts-utopic:amd64 (was 1:0.4.4-1build2~trusty1)
    xserver-xorg-video-intel-lts-utopic:amd64 (was 2:2.99.914-1~exp1ubuntu4.2~trusty1)
    xserver-xorg-video-mach64-lts-utopic:amd64 (was 6.9.4-2~trusty1)
    xserver-xorg-video-mga-lts-utopic:amd64 (was 1:1.6.3-2build1~trusty1)
    xserver-xorg-video-modesetting-lts-utopic:amd64 (was 0.9.0-1build1~trusty1)
    xserver-xorg-video-neomagic-lts-utopic:amd64 (was 1:1.2.8-1build2~trusty1)
    xserver-xorg-video-nouveau-lts-utopic:amd64 (was 1:1.0.11-1ubuntu2~trusty1)
    xserver-xorg-video-openchrome-lts-utopic:amd64 (was 1:0.3.3-1build2~trusty1)
    xserver-xorg-video-r128-lts-utopic:amd64 (was 6.9.2-1build2~trusty1)
    xserver-xorg-video-radeon-lts-utopic:amd64 (was 1:7.4.0-2ubuntu2~trusty1)
    xserver-xorg-video-savage-lts-utopic:amd64 (was 1:2.3.7-2ubuntu3~trusty1)
    xserver-xorg-video-siliconmotion-lts-utopic:amd64 (was 1:1.7.7-2build2~trusty1)
    xserver-xorg-video-sisusb-lts-utopic:amd64 (was 1:0.9.6-2build2~trusty1)
    xserver-xorg-video-tdfx-lts-utopic:amd64 (was 1:1.4.5-1build2~trusty1)
    xserver-xorg-video-trident-lts-utopic:amd64 (was 1:1.3.6-0ubuntu6~trusty1)
    xserver-xorg-video-vesa-lts-utopic:amd64 (was 1:2.3.3-1build2~trusty1)
    xserver-xorg-video-vmware-lts-utopic:amd64 (was 1:13.0.2-3ubuntu1~trusty1)

Reboot: Now the pointer isn’t drawn. If I click, it’s drawn in the center of the screen, but nowhere else. Feels like 1996. Trying to roll back to a semi-good state.

Session 5


The support forum for the Intel Linux Graphics has a top sticky thread labeled: Do not use with Ubuntu 14.04. It was updated, today, and simply declared the withdrawal (potentially temporary, doesn’t say) of this tool for Ubuntu 14.04.2 LTS.

Next time I get two hours with my laptop, I’ll move 14.10 in again (guess I’ll start using separate partitions as this seems to be a long running story …) with version 1.0.8 of the Intel Linux Graphics Installer.

Update 6


A Felix Gustafsson suggested that the X issues got solved from using newer graphics drivers, available from ppa:oibaf/graphics-drivers. Support for this PPA is on Phoronix’ forum.

As I’m giving a presentation tomorrow from this machine, I’m not very inclined on playing with graphics drivers right now. There are some minor issues (text rendering in GTK apps) with 14.04.2, at least it’s stable and I can use both HDMI and VGA (via DisplayPort adapter) without any issues.

To be continued.

Update 7


I’ve been using Ubuntu 15.10 since it came out, and it just works great now. No issues, everything just works as expected. These are the only issues that have “stayed” with me:

  • the network connection port sits too close to the USB port, preventing wide USB devices to be used at the same time as the network dongle (I very rarely used the network dongle
  • I carry a USB connected SD card reader, since I use that with my Canon camera - an integrated SD card reader is something I would’ve used quite often, and have missed (from my previous T410)
  • the display’s viewing angle has not been that great - I’ve often had to re-adjust the angle simple to get better contrast when coding

I see that a touch screen is also something I very likely would’ve gone used too, but I’ve perfectly managed to live without.

This work by Fredrik Wendt is licensed under CC by-sa.