The system is still very new, challenging, and different, but seems to support GNU/Linux reasonably well if you are willing to run a bleeding edge version and/or patch your kernel and if you are not afraid to spend an afternoon or two tweaking things. What follows are my installation notes for Debian testing (jessie) when I installed it in early May 2014. My general impressions about the laptop as a GNU/Linux system — and overall — are at the end of this write-up.

System Description

The X1 Carbon I ordered included the 512GB SSD, the 14.0 inch WQHD (2560×1440) 260 nit touchscreen, and the maximum 8GB of memory. I believe the rest is not particularly negotiable but includes a 720p HD Camera, a 45.2Wh battery, and an Intel Dual Band Wireless 7260AC with Bluetooth 4.0.

BIOS/Firmware

The BIOS firmware is non-free and proprietary as it the case with all ThinkPads and nearly all laptops. According to this thread there is a bug in the default BIOS that means that suspend to RAM is broken in GNU/Linux.

If that’s not an option (e.g., if you’ve already installed GNU/Linux) the best method is to download the bootable CD ISO from the same page. Of course, since the X1 Carbon has no optical media, you have to find another way to boot the CD image. I struggled to get the ISO to boot from USB using the usually reliable dd method. This message suggest that the issue had to do with the El Torito wrapper:

“I had to dump the eltorito image from the ISO they provide, after that I was able to dd the resulting image to a flash drive and the bios update went well, no cdrom needed.”

I updated to version 1.13 of the BIOS which fixes the suspend/resume bug. By the time you read this, there may be newer versions that fix other things so check the Lenovo website.

Installing Debian

I installed Debian testing using the March 19, 2014 “Alpha 1” release of the Debian Installer for Jessie (currently testing). I installed in graphical mode. With the WQHD screen, everything was extremely tiny but it worked flawlessly.

I used the Debian installer wizard to partition and selected “Use entire disk and partition it for LVM and encrypted data” which kept the UEFI partitions around. The system installed with no errors or issues and booted up normally afterward. The grub menu is hilariously narrow on the WQHD screen.

If you want to use the built-in wireless and/or Bluetooth, you will need to install the non-free iwlwifi firmware package. It is very lame that we still have to do this to use hardware we have purchased.

What Works and Doesn’t

The following stuff works the first time I booted into the GNOME 3 desktop and logged in:

The adaptive keyboard — The F1-F12 keys work but the “button” that theoretically lets you switch to different sets of function buttons (e.g., volume, brightness) does nothing.

Disabling the touchpad — There is a BIOS option to disable the touchpad. It works in Windows and does nothing at all in GNU/Linux.

I have not tried:

The fingerprint reader

OneLink Dock

I also ordered the OneLink Dock. It’s pretty cool and plugs into the side of the laptop with a wide plug that includes the the standard power plug inside a big connector for everything else. Everything on the dock worked out of the box including the:

HDMI port

USB hub

USB audio device in the dock

USB Ethernet device in the dock

One thing to note. The HDMI output on the standard OneLink has a maximum resolution of 1920×1080 which is not stated on its material on Lenovo’s website. Moreover, if you plug in the OneLink cable, the laptop HDMI port is disabled. This means if you plug in the dock, you simply cannot drive an external monitor over HDMI at anything higher than 1920×1080. Instead, you will need to find a mini-DisplayPort to DisplayPort cord or adapter which will work. Of course, this will also mean that it’s two connectors instead of one.

Alternatively, you can buy the OneLink Pro dock which apparently works with higher resolutions over its DisplayPort connector. I have exchanged docks but have not received the Pro version so I cannot verify this.

Disabling the touchpad

As a long-term ThinkPad user, I love the TrackPoint pointing stick. If you plan on using this, the built-in touchpad is incredibly aggravating because it is very easy to brush against it while using the TrackPoint.

In BIOS, there is an option to disable the touchpad. Although this works in Windows, it does absolutely nothing in GNU/Linux. Part of the issue is that, unlike the older X1 Carbon and other ThinkPads, there are no TrackPoint buttons. Instead of buttons, there are regions at the top of the touchpad which are configured, in software, to act like buttons. If you want to be able to click, the touchpad can never be truly turned off.

This is not problem unique to the Haswell X1 Carbon and a number of people have been struggling with this issue on other Lenovo laptops. Essentially, what you need to do is configure your touchpad so that the buttons are where you want them and so that it ignores any input for the purposes of cursor movement.

Essentially, the first Option line will create a middle button that is 36% of the width and 42% of the height, and a right button that is 34% of the width and 42% of the height. The synaptics manpage (man synpatics) will give you more detail on the general way this works.

Fixing the Adaptive Keyboard

The most wild feature of the laptop is the adaptive keyboard strip. The strip is a back-lit LCD that looks almost like E Ink screen and acts as a touchscreen keyboard. The default mode gives you the F1-F12 keys. If you “press” the keys (since they aren’t buttons, you just put your finger on top of them) they act like normal F-keys. You can Ctrl-Alt-F1, etc., to switch to virtual terminals out of the box. There are four modes: “Function” (i.e., normal F-keys), Home, Web, and Chat. The last three overlap quite a bit (e.g., they all have brightness and volume). You can play with an example on the Lenovo homepage.

In Windows, switching programs will apparently change these “keys” so that an appropriate set of buttons is shown for the application you are using. You can also change these keys manually with a big “Fn” button at the far left of the adaptive keyboard strip.

As I write this this, released kernels do not support the adaptive keyboard Fn button which means you cannot use anything other than the F-keys out of the box. I believe it also means that resuming from suspend to RAM breaks these keys.

That said, Shuduo Sang from Canonical has released several versions of a patch to to the thinkpad_acpi kernel module which adds support for the Home mode. The other modes (web and chat) do not seem to be supported. The latest version of the patch is on on the Linux Kernel Mailing List and the relevant commits are:

Although this is not supported in Debian testing at the time of writing, a bug was filed in Debian and quickly fixed by Ben Hutchings in Debian kernel version 3.14.2-1 which is currently in sid/unstable. As a result, if you install the latest version kernel from Debian unstable (3.14.2-1 or later), the adaptive keyboard just works.

If you aren’t using Debian and if kernel you are using does not have support, you might be patching your kernel.

Ethernet in the OneLink Dock

This was not an issue using the latest kernel in Debian but apparently people have struggled with getting the USB Ethernet device in the OneLink dock to work. For example, this bug suggests:

Many new Thinkpad laptops have a dock (Thinkpad OneLink Dock) containing a usb ethernet chip that is supported by the ax88179 driver. However its USB ID is not included in the driver shipped with the 3.13 kernel used in Trusty. A patch to add this ID has been sent to the LKML (see https://lkml.org/lkml/2014/2/24/649 ) and it would be very convenient for all users of the dock if it could be applied to the Trusty kernel.

If your kernel does not support the USB Ethernet device in the dock, and a newer kernel doesn’t fix it, the patch is straightforward.

General Impressions

As I have described in my interview with The Setup, I have been a user of ThinkPad X-series laptops for many years. This is my sixth X-series ThinkPad.

Overall, I quite like the hardware! Once things mature a little bit, I think that this will be a great laptop for running GNU/Linux. That said, I ordered the laptop without realizing that the X1 Carbon had gone through a major revision! The keyboard was quite a suprise. I think that changing a system so radically without changing the model name/number is a very bad move on Lenovo’s part.

There are two remaining issues with the system I’m still struggling with: (1) the keyboard layout is freaky and weird, and (2) the super high resolution screen breaks many things.

The quality of the keyboard itself is great and worthy of the ThinkPad name. That said, there are two ways in which it is strange. The first is the adaptive keyboard strip. Overall, it works surprisingly well and I think it is a clever idea. My sense is that the strip is more annoying in Windows because it changes out from under you all the time. In GNU/Linux, only manual changing of modes is supported. This, in my opinion, is a feature. I do miss the real feedback you get from pressing keys but for F-keys and volume-keys that I don’t use often this isn’t too important. On the downside, I have realized several times that I had been holding down a “button” for several seconds and not noticed.

The more annoying issue with the keyboard is the way that the other keys have moved around. Getting rid of the CapsLock is wonderful! How has this taken so long? Replacing it with a split Home and End keys is nuts. I’ve remapped the Home and End to put Control back where it should be. My right Control to now Home but I still don’t have an End key. The split Backspace and Delete is not a problem for me. The tilde/apostrophe is in a very bad place. There is no Insert, Print Screen/SysRq, Scroll Lock, Pause/Break or NumLock. They are all just gone. Surprisingly, I haven’t missed any of them.

The second issue is the 2560×1440 resolution on the 14 inch screen. I use a 27 inch external monitor with the same native resolution laptop but, by my arithmetic, the pixel density on the laptop is 210 DPI instead 109 DPI on the external monitor. The result is “the scaling problem” and it’s a huge pain that seems mostly unsolved on any operating system.

Fonts and widgets that look good on the laptop look huge on my external monitor. Stuff that looks good on my external monitor looks minuscule on the laptop. I routinely move windows between my laptop screen and my large monitor. Until I find a display system that can handle this kind of scaling effectively, this requires changing font size and zooming all the time. At the moment, I’m shrinking and expanding my font size using the built in hot keys in Emacs, Gnome Terminal, and Firefox/Iceweasel. I love the high resolution screen but the current situation is crazy-making.

Finally, this setup will not get you into the Church of Emacs and it’s not about to find its way onto the FSF’s list of endorsed hardware. For one, I paid the Windows tax. Beyond that, there is the non-free BIOS and the need for non-free firmware to use the wireless and Bluetooth. This is standard for ThinkPads but it isn’t getting any easier to swallow. There are alternatives in the form of Gluglug’s X60 laptops running CoreBoot, Lemote Yeelong laptops, Bunnie Huang’s Novena and others that are better in these regards. I am very excited for these projects but, for a number of reasons, these just weren’t an option for the laptop I use for my research computing.

Update: I’ve changed he configuration option for the synaptics touchpad to match what I’m now actually doing.

Thanks for this guide! I was actually quite impressed with the system description until you got to the keyboard. The lack of an Insert key would drive me mad, since that means no more copying and pasting. (For decades I’ve been using the standard Shift+Del, Ctrl+Ins, and Shift+Ins shortcuts to cut, copy, and paste, respectively. The Ctrl+X/C/V variants are rather QWERTY-centric, and moreover have completely different semantics in command shells and many text applications.)

Sorry for spamming. Am in a hurry. If this does not work, I really have to read that article. Wont post any comment here anymore until I got a finaly solution.
Will not install windows on this beautiful machine.

Because I feel your pain about modifying files in /usr/share, this is what I found in the synaptics man page in a Debian Wheezy:

Option "SoftButtonAreas" "RBL RBR RBT RBB MBL MBR MBT MBB"
This option is only available on ClickPad devices. Enable soft
button click area support on ClickPad devices. The first four
parameters are the left, right, top, bottom edge of the right
button, respectively, the second four parameters are the left,
right, top, bottom edge of the middle button, respectively. Any
of the values may be given as percentage of the touchpad width
or height, whichever applies. If any edge is set to 0, the but‐
ton is assumed to extend to infinity in the given direction.
Setting all values to 0 disables soft button areas. Property:
"Synaptics Soft Button Areas"

In Germany there is some kind of students and research offer by Lenovo where you can avoid the Windows tax. Unfortunately all Carbon X1 models are including Windows but I’ve got a T440S without operating system. There are also X models without OS.

We were able to get some of these new X1 without Windows .. although we did have to make a commitment to buy 10 of them. We had to do the same to the previous version as well (which was a bit more Linux friendly).

Sorry, missed your reply completely. A colleague pointed me to your reply as they were researching getting one of our standard X1s to replacing their failing laptop.

We went through Silicon Systems in Wellington NZ. I assume they’ve been dealing with the local NZ suppliers. I’ll make a note to get a comparison of the Windows vs No Windows cost.

When we had been getting HP laptops without Windows they had been fairly co-operative for a while, but then something changed at their end and we could no longer get the “any business model without Windows for less”. They’d only do them as a special build and more often than not they’d cost more with no OS (or FreeDOS) than with Windows preinstalled.

In a way, taking a hit for buying a machine without Windows has some additional value as it should be being recorded in the supplier’s sales sheets as a sale without Windows, we want to see those numbers increase so that it is a more common option .. .. preferably without a “those open source zealots will pay more for a machine without Windows that for one with .. suckers” attitude from suppliers.

This is standard for ThinkPads but it isn’t getting any easier to swallow. There are alternatives in the form of Gluglug’s X60 laptops running CoreBoot

You know that those X60s are Thinkpads (albeit old ones), right?

…Lemote Yeelong laptops, Bunnie Huang’s Novena and others that are better in these regards.

Google Chromebooks, most of which run coreboot out of the box, are also worth adding to this list.

I am very excited for these projects but, for a number of reasons, these just weren’t an option for the laptop I use for my research computing.

Aren’t you a social scientist? Do they have such demanding hardware needs? My Thinkpad x60 serves me perfectly for computer science. (Of course, its your prerogative to buy whatever hardware you see fit…)

This is interesting but I would really appreciate a longer review of the island keyboard. I have never used one that is anywhere near as good as the old X series keyboard for touch typists. As a long time X series user I would appreciate your views.

I like the keyboard. I prefer the old-style keyboard and this one does take some getting used to. That said, I primarily use an external keyboard anyway. It is really a very good keyboard and I don’t feel limited by it.

Can you point me to a link? I was under the impression that (a) this required Wayland which is not included by default in any distribution and (b) this did not address the problem I currently have which is having two different screens being used at the same time with different pixel densities.

I want to be able to move a window from a 100dpi screen to a 200dpi screen and have it resize elements and fonts dynamically. I have never seen this work on any platform. If GNOME does this, that’s amazing!

Thanks for the post! This motivated me to finally figure out how to create a bootable USB stick from the ISO on Lenovo’s site, since I had already installed Linux before thinking to check for such things.

Did you consider the Chromebook Pixel? Like you, I hate the whole drive towards widescreen in screens, and it has a much nicer 3:2 ratio, with similar DPI (2560×1770). It works quite well with Debian; I added info to the Debian wiki at https://wiki.debian.org/InstallingDebianOn/ChromebookPixel .

It also doesn’t need any nonfree firmware for wifi, and it and runs coreboot, which is nice, and I’m planning to reflash (to remove an annoying “unsecure press ctrl-l to continue” thing that happens on cold boot if you’re not using chromeos (but only when I feel brave enough; it’s rather expensive to brick). The only really bad thing for software freedom is it has some proprietary Intel AMT firmware in it, which apparently could be used as a horribly low-level backdoor.

Dear Mako,
Going all this pain to still end up with a system with non-free and non Verifiable firmare in critical hw components, severely underverified free software relative to complexity and using processors that most likely have remotely – activateable controlling malware. And therefore have not even a remote assurance of not being totally controlled and snooped by NSA and who knows how many other actors.

Maybe the best way is to split our computing: (a) a commercial mostly free software device for everyday computing, and (b) another for VERY minimal but truly privacy & security assured computing device (pre-configured for use by normal humans) .
We are trying (b) at User Verified Social Telematics, come help :-)!

That version of the synaptics driver is in Debian experimental, but weirdly I’ve actually found it a bit harder to configure into a liveable state than the previous driver.

One thing I’m really grumpy about in this laptop is the markedly decreased quality of the nipple mouse. It’s physically different, and nowhere near as good as all previous thinkpad trackpoints. It’s also way slower than the nipple mouse on my external thinkpad USB keyboard. So if I want to use it I’m going to have to figure out how to write a xorg input conf that can tell the difference between the two nipple mice, and sets some crazy acceleration settings for the built-in one :(

Unfortunately, the nipple mouse remains markedly inferior to those on previous thinkpads. The problem appears to be the reduced smoothness and physical responsiveness of the touchpoint at low force levels. As a result, fingers have to work harder to move the mouse around, which is basically a disaster.

Would love to know what the hell happened at Lenovo to cause this mess.

First off – thank you for the excellent guide. My only complaint is that you do not show all commands (but do provide links).

I got mine not too long ago. I think it came with an updated BIOS (>=1.13). However, I still had trouble with resume after suspend.

First off, I opted for “sid” rather than testing (well, testing install image, and then new apt source lines).

The problem was as follows:

A: Run on DC (battery)
B: Close lid and wait for it to suspend.
C: Open lid.
D: The screen would flick the lock screen and then turn black (off)
E: Type in password blindly, 1 of 2 things would happen
1: The screen would turn on an everything is dandy.
2: The screen would stay off

The only out of that conundrum would be to plug in AC (main power), in which case the screen would turn on. Also, if I resumed while connected to AC.

So I did a simultaneous upgrade of GNOME to 3.12, the 3.14-2 kernel, and the BIOS to 1.15, and lo and behold – suspend/resume cycle seems to work also on DC.

The upgrade to GNOME 3.12 also brought “support” for HiDPI displays. Since the X1 packs an impressive 2560×1440 display on a physical screen size of 12.2″x6.9″ it means we have DPI of ~210 in either direction. Since this larger than 2 times 96, GNOME decides that it should apply an overall scaling factor of 2 to _all_ elements (fonts, icons, …). That means the effective screen resolution becomes half that of the display: 1280×720 which is kinda ridiculous for this type of machine. To “fix” it so that GNOME does not apply an overall scaling factor execute *dconf-editor* and change the value of the key org/gnome/desktop/interface/scaling-factor to 1 (unfortunately gnome-tweak-tool doesn’t seem to do the right thing).

Just a quick update. Everything works just fine with the ThinkPad OneLink Pro dock.

That said, I’ve found that if you want to run the video at the highest possible resolutions (2560×1440) you will need a very recent kernel (>3.14). I run the latest Debian kernel in Experimental and everything with the dock runs perfectly fine.

If you run with a lower resolution, everything should work with the latest 3.14 kernels in Debian testing/unstable.

Strangely, using a recent kernel (3.16.1) from Ubuntu devs (I use Ubuntu 14.04) didn’t fix the low resolution issue for me with the OneLink Pro dock. I did check that the 3.16 kernel was booted when I tried. Do you have any idea why this could be or suggestions where I should start digging?

It’s possible that there are patches in the Debian 3.16 kernels that are not in Ubuntu. You might want to try running a kernel from Debian if that is possible. I know this used to be possible but the projects may have diverged enough this that it is not any more.

I’ve only tried one external monitor. Given my previous experience, I think two will work but that you can only have two screen on at the same time (i.e., the laptop screen itself would need to be turned off).

I recently got my 1st ThinkPad (X1 20A7-006KAU), as I expected this ThinkPad to live up to the other models in the range wrt. Linux compatibility (considering Fedora as my 1st choice, Ubuntu/Debian as 2nd).

Unfortunately I’m out of luck for anything more than the most elementary of functionality, such as no NFC, fingerprint-reader, backlight, extra-function keys, etc, and I’m wondering what the power-management will be like.

I’ve contacted IBM/Lenovo, and they seem disinterested to actually do something about this, even though there are some indications that this machine will get certified for some distro’s.

I still think this could be an excellent machine – certainly feels nice – but it just bugs me that I’m not able to make the most of this machine, as I might’ve been able to with a MBA.

I now have one of these with the touchscreen to play with .. or at least it is supposed to have a touchscreen, it was ordered with it. But I can’t seem to get it to ‘just work’ and can’t recognise what would be the screen with lspci, lsusb, lshw, xinput, dmidecode.

I’m hoping that I haven’t wasted a day trying to get it working with Ubuntu because it wasn’t actually delivered with the touchscreen. Do you have some details about the touchscreen hardware and what would actually show me that it really was there?

I am considering switching my awesome X230 for a lighter laptop. And like you I am very fond of Lenovo. Could you please tell me a bit about the battery life you get ? Also what about Wi-fi performances ?
You write about an e1000 ethernet dongle, is it provided with the laptop ?
Many thanks for your answers !

Apparently, Lenovo has released a new X1 Carbon. The keyboard is back to a more normal version which is a huge imporvement, in my opinion. I do not know how the other things have changed.

Battery life varies enormously based on how hard I am using the computer (I often run computationally intense research jobs) but usually lasts for 3-4 hours. The wifi is good but I’m not sure how to quantify it. The Ethernet dongle is provided with the laptop.

I have no idea what the max is. It’s plenty fast. In the rare connection I’m not limited by the speed of my connection to the Internet or the remote server, I will plug into Ethernet so that I can get full gigabit.

Hi, thanks for these indications! I just installed Debian Jessie on a 3rd Gen and seems like the graphics (Broadwell-U Integrated Graphics) are rather slow. As there’s no xorg.conf I was wondering if anyone has a hint at hand on how this could be configured?

Hi Mako, thanks for the lengthy post. I’m pretty sold. My concern is that I’m few magnitudes less proficient than you, in Linux. I’ve used it for years (Debian and Ubuntu), and all my laptops had always some problems. I can live without hibernation, but my beloved Sony Vaio died this evening after 4 years of fierce loyalty, and even with him Ubuntu couldn’t tap the whole capacity of the battery. So, my question: I’m willing to spend some afternoons tweaking and googling, but I don’t think I will mess around with the kernel. Is the X1 still the right choice?

All of the things I mentioned have been address and should work out of the box on my machine.

The big concerns is that I hear that IBM has released a new version of the X1 Carbon! I have no idea how much has changed and what from this this writeup would need to be tweaked. I know other people have GNU/Linux up and running on these machines but I just don’t know the details.

Just started playing with the new 3rd-gen Lenovo (not IBM btw) X1 Carbon. Looks like the main differences from yours are the trackpad and the video board. The trackpad requires a kernel patch, which I’ve now accomplished. But I’m still struggling with getting 3D support for the Broadwell-U (8086:1604) Rev 09 onboard video.

Have you made any progress on the scaling issue. I also have a rather large secondary display (a 30 inch hp monitor at 2560X1600) When I dock the carbon (2015 model) the scaling is all wonky when I drag a window from one side to the other. I can get it to work with this dance of closing the window and reopening it to render first on the secondary display instead of being drug over from the laptop display.