Linux on the X1 {Carbon Gen7, Yoga Gen4}

Linux on the X1 {Carbon Gen7, Yoga Gen4}

September 24, 2019
Hardware, Linux
Depricated

I’d written [about using the t470s]({{ref 2017-04-14-linux-on-the-t470s}}) a while back, since then jumping to a T480s, T480, and most recently an X1 Yoga Gen4 and X1 Carbon Gen7. These two machines are extremely small and have good manufacturing feel to them. The major downside to them is the limited memory (16G) and the thermal dissipation. Ultimately I’ve become more comfortable with the X1CG7 as there wasn’t a need for me to use the touchscreen/stylus with the X1YG4.

The Tx80x platforms are actually quite good, but the major frustration is Lenovo’s use of the Fibocom L850-GL. This device may never be supported in Linux, there are a lot of threads out there with people trying. We’d just relegated ourselves to stop buying them. To add insult to injury Lenovo makes it not very easy to get around their white list, but some people have come up with methods so that you can use cards from older systems that still work properly with ModemManager.

I’d transitioned from ArchLinux to Debian on my servers and workstations, particularly to be able to run testing/unstable on workstations and stable on servers. So this will all be from the perspective of using unstable(sid).

Both of these {X1CG7, X1YG4} have some complications that need to be overcome:

Touchscreen and Pen are not recognized by default #

reference discussion about issue

vim /usr/share/libwacom/isdv4-51bf.tablet

# This is for the Wacom pen + touchscreen as found in the
# Lenovo ThinkPad X1 Yoga (4th-gen)

[Device]
Name=Wacom ISDv4 X1 Yoga 4th Generation
DeviceMatch=usb:056a:51bf
Class=ISDV4
Width=12.17
Height=6.81
IntegratedIn=Display;System

[Features]
Stylus=true
Touch=true
Buttons=0

“Binary” Audio (max volume or mute) #

vim /usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common

place this block:

[Element Master]
switch = mute
volume = ignore

over the PCM block, like this:

[Element Master]
switch = mute
volume = ignore

[Element PCM]
switch = mute
volume = merge
override-map.1 = all
override-map.2 = all-left,all-right

Wifi sometimes recognized, sometimes not #

This is a harder one. The wifi cards in these are quite new and sometimes work, sometimes don’t work depending on the Kernel (but in weird ways). For older Kernels you’ll need an extremely modern copy of iwlwifi (Debian has an older package, asking for an update doesn’t seem to be working). For newer Kernels you may/may-not have wifi regardless of the firmware. Currently the Debian 5.4.6 Kernel doesn’t seem to work at all, so I’ve been booting into 5.3.x.

Multiple 4K@60Hz Displays #

This has been one to make me extremely bitter, despite what Lenovo has documented I can’t seem to get the “Thinkpad Thunderbolt 3 Dock Gen 2” to drive two 4K@60Hz displays. I’m currently driving one display from the dock and the other display from a USB-C to Displayport adapter. It’s clunky to initially plug in, but ultimately it does work.

Some References #

It’s going to bit of a wild ride, so I’ll leave these links that I found along the way: