Lenovo ThinkPad X1 Carbon (Gen 9)
Hardware | PCI/USB ID | Working? |
---|---|---|
Video | 8086:9a49 |
Yes |
Wireless | 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 |
Wireless
For 802.11n connections, maximum speeds are limited to about 25Mbps for downloads and 50Mbps for uploads.
Audio
This laptop requires ALSA firmware in order for the sound card to work (i.e. install sof-firmware).
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 theFILES
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-emitterAUR 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
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.