Lenovo ThinkPad X1 Carbon (Gen 9)

This article or section does not follow the
Laptop page guidelines
.
Reason:
Missing IDs in the hardware table, an Accessibility, Firmware and Function keys section. (Discuss in
Talk:Lenovo ThinkPad X1 Carbon (Gen 9)
)
Hardware
PCI/USB ID
Working?
Video
8086:9a49
Yes
Wi-Fi
8086:a0f0
Yes
Ethernet
Yes
Mobile broadband
Yes
Audio
8086:a0c8
Yes
TouchPad
06cb:00fc
Yes
TrackPoint
06cb:00fc
Yes
Webcam
174f:2454
Yes
Fingerprint reader
06cb:00fc
Yes
Bluetooth
8087:0026
Yes
NFC
Untested
Wi-Fi
For 802.11n connections, maximum speeds are limited to about 25 Mbit/s for downloads and 50 Mbit/s for uploads.
Audio
This laptop requires
Sound Open Firmware
in order for the sound card to work.
The audio from the built-in speakers may still sound very quiet and "tinny" in comparison to Windows. This laptop requires audio post-processing to achieve an enjoyable audio experience. If you use PipeWire or Wireplumber, install
EasyEffects
and the
EasyEffects presets bundle
. Apply the "Laptop" preset (recommended) or "Advanced Auto Gain" preset as per your preferences.
Microphone
This laptop boast a 4-way microphone.
Dmic0 Front
Dmic0 Rear
Dmic1 2nd Front
Dmic1 2nd Rear
They are individually configurable, but also grouped as a single DMIC and DMIC16kHz.
To get them to properly work, usbcore must register
snd-usb-audio
before the
snd_hda_codecs
are processed. to do that, you'll need your
hwdb.bin
inside your initramfs. follow these steps:
Edit
/etc/mkinitcpio.conf
and add
/etc/udev/hwdb.bin
to the
FILES
array (i.e.
FILES=("/etc/udev/hwdb.bin")
)
Update the hardware database index
Regenerate the initramfs
Then make sure to select the DMIC16kHz as your microphone.
Video
If you are getting laggy/stuttering UI and mouse movements in your desktop environment add
i915.enable_psr=0
to your
kernel parameters
.  However, this can be expensive in terms of power consumption (around 2-3 W), and may be not needed with recent kernels (e.g., 5.14).
Using
intel-media-driver
provides good graphics performance.
Fingerprint reader
The fingerprint reader works out of the box using
fprintd
. See
Fprint
.
IR Camera
See
Howdy
for logging in with the IR camera. The IR emitters can be enabled with
linux-enable-ir-emitter
AUR
if they do not already work.
Mobile broadband
The laptop allows several different WWAN modules, including: Fibocom L860 (Intel based), Quectel EM120 (Qualcomm based) and Foxconn SDX55 (Qualcomm based). All these modules use a direct PCI connection instead of USB, and they are all integrated through the new "wwan" subsystem: the Qualcomm based ones are supported in the kernel since 5.13, and the Intel based ones since 5.14.
The SDX55 model is fully operational with:
kernel 5.13, see
[1]
ModemManager 1.16.6, which includes the FCC unlock operation, see
[2]
and
[3]
Intel VT-D enabled in the laptop bios, see
[4]
.
The EM120 model is fully operation with 5.13 and works after installing and selecting the FCC unlock procedure needed as detailed in
Mobile broadband modem#FCC locking
.
The L860 model should be usable since 5.14, it is possible that L860 model can be unlocked similarly as EM120 model with correct FCC unlock operation. Please open a new issue in ModemManager if that is the case, see
[5]
.
The FCC unlock operations are required in all these WWAN modules because Lenovo wants to make sure that these modules are exclusively used in the certified Lenovo platforms. Without the FCC unlock, the module would be detected by ModemManager, but it would be impossible to put the modem in "online" mode (RF on). At some point Lenovo will publish a proprietary tool to perform this platform check and run the FCC unlock via the tool; but until that tool is published, there is no known way to FCC unlock the L860; so even if the kernel supports them, they would be unusable.
Since release 1.18.4, the ModemManager daemon no longer automatically performs the FCC unlock procedure by default.
[6]
# ln -sft /etc/ModemManager/fcc-unlock.d /usr/share/ModemManager/fcc-unlock.available.d/
<vid>:<pid>
Replace
<vid>:<pid>
with a proper value for the device, that is value in the brackets at the end of the line for the modem:
# lspci -nn
For SDX55 that would be:
# ln -sft /etc/ModemManager/fcc-unlock.d /usr/share/ModemManager/fcc-unlock.available.d/105b:e0ab
Performance modes
Lenovo supports 'platform-profiles' on newer kernels which can either greatly improve performance and throttling, or battery life and thermals.
The default mode is "balanced" however users can switch between these modes using the following keyboard shortcuts.
Fn+l
- Low-power mode
Fn+m
- Balanced mode
Fn+h
- Performance mode
The currently active mode can be checked with the following command:
# cat /sys/firmware/acpi/platform_profile
TrackPoint
Some users may find that the default TrackPoint sensitivity is too low or too high for accurate and comfortable use on Linux. Changing mouse speed from your DE's built-in settings may not fix this problem, as the TrackPoint will still be inaccurate and jumpy. This can be remedied by editing TrackPoint config files.
TrackPoint configuration files are usually located in:
/sys/devices/platform/i8042/serio1/
Some users may find the config files are in a sub-directory named serio2 or serio3. You need to look for a file named 'sensitivity' and change the value to suit your preferences (the value must be between 0 to 255). A recommended starting value is 60 if the user finds the TrackPoint is too sensitive by default.
The setting should take effect immediately after saving changes to the file. For further tweaking, see also the files named 'speed', 'resolution', 'rate' and 'inertia' (these files may not necessarily be present).
Use sysfsutils to make these changes persistent on boot.
Troubleshooting
TrackPoint/Keyboard/Trackpad does not work after booting into the desktop
Note
This issue has been fixed in BIOS 1.52
A workaround is to turn off all pre-desktop authorization options in the UEFI settings. This is located under Security > Fingerprint.
Furthermore, sleep state should be set to "Windows and Linux" (modern/S0ix suspend) in UEFI, as the "Linux S3" sleep state was broken before BIOS 1.52. This is located under Config > Power.