Lenovo ThinkPad X1 Nano

From ArchWiki

This article or section does not follow the Laptop page guidelines.

Reason: Still missing an accessibility, firmware and function key table one year after creation. (Discuss in Talk:Lenovo ThinkPad X1 Nano)
Hardware PCI/USB ID Working?
GPU 8086:9a40 Yes
Wireless 8086:a0f0 Yes
Mobile broadband Untested
Audio 8086:a0c8 Yes
TouchPad Yes
TrackPoint Yes
Webcam 04f2:b6ea Yes
Fingerprint reader 06cb:00bd Yes
Bluetooth 8087:0026 Untested

Power management

At least with all current maintained kernel (< 5.13) the laptop will fail to resume after suspension. A workaround is to disable the wake-up for the WAN modem:

# echo 'RP01      S4    *disabled   pci:0000:00:1c.0' >> /proc/acpi/wakeup

To execute at every start you can add a systemd service, for example /etc/systemd/system/wakeup-bug.service

/etc/systemd/system/wakeup-bug.service
[Unit]
Description=something

[Service]
ExecStart=/bin/bash -c "echo 'RP01      S4    *disabled   pci:0000:00:1c.0' >> /proc/acpi/wakeup"

[Install]
WantedBy=multi-user.target

Audio

This laptop requires firmware in order for the sound card to work. See Advanced Linux Sound Architecture#ALSA firmware.

On the headphone jack, a buzz/noise might be audible that even changes with different cpu usage. The fix is to install the alsa-tools package and then run

# hda-verb /dev/snd/hwC0D0 0x1d SET_PIN_WIDGET_CONTROL 0x0

To execute at every start you can add a systemd service:

/etc/systemd/system/hdaverb.service
[Unit]
Description=Thinkpad X1 Nano: Fix crackly audio with headphones
After=sys-devices-pci0000:00-0000:00:1f.3-skl_hda_dsp_generic-sound-card0-controlC0.device
Requires=sys-devices-pci0000:00-0000:00:1f.3-skl_hda_dsp_generic-sound-card0-controlC0.device

[Service]
Type=oneshot
ExecStart=/usr/bin/hda-verb /dev/snd/hwC0D0 0x1d SET_PIN_WIDGET_CONTROL 0x0

[Install]
WantedBy=multi-user.target

Fan control

If you are suffering from overheating or you just want more control you can setup Fan speed control#ThinkPad laptops

Fingerprint reader

The fingerprint reader works out of the box using fprintd. See Fprint.