Lenovo ThinkPad X1 Carbon (Gen 7) - ArchWiki

# Lenovo ThinkPad X1 Carbon (Gen 7)

From ArchWiki
Jump to navigation Jump to search

Related articles

- Lenovo ThinkPad X1 Carbon
- Lenovo ThinkPad X1 Carbon (Gen 2)
- Lenovo ThinkPad X1 Carbon (Gen 3)
- Lenovo ThinkPad X1 Carbon (Gen 4)
- Lenovo ThinkPad X1 Carbon (Gen 5)
- Lenovo ThinkPad X1 Carbon (Gen 6)
- Lenovo ThinkPad X1 Yoga (Gen 3)

Tip: A great resource for thinkpads is https://www.thinkwiki.org/wiki/ThinkWiki

The Lenovo ThinkPad X1 Carbon, 7th generation is an ultrabook introduced in early 2019. It features a 14" screen, 8th-gen Intel Core processors and integrated Intel UHD 620 graphics.

To ensure you have this version, install the package dmidecode and run:

    # sudo dmidecode -s system-version
    ThinkPad X1 Carbon 7th

Device | Working | Modules
Intel graphics | Yes | i915, (intel_agp)
Wireless network | Yes | iwlmvm
Native Ethernet with included dongle | Yes | ?
Mobile broadband Fibocom | No¹ | ?
Audio | Yes | snd_hda_intel
Microphone | Partial⁴ | snd_hda_intel
Touchpad | Yes | psmouse, rmi_smbus, i2c_i801
TrackPoint | Yes | psmouse, rmi_smbus, i2c_i801
Camera | Yes | uvcvideo
Fingerprint reader | No² | ?
Power management | Yes³ | ?
Bluetooth | Yes | btusb
Keyboard backlight | Yes | thinkpad_acpi
Function/Multimedia keys | Yes | ?
No working Linux driver for Fibocom L850-GL. See this thread and this thread for more info. An official driver and a reverse engineered driver are in the works [1] (06cb:00bd). S3 suspend requires changes to BIOS settings, see section on enabling S3. The internal microphone doesn't seem to work, an external microphone connected on the 3.5mm jack does work, see Talk#Microphone.

## Hardware

Additional hardware information from `lsusb` and `lspci` can be found bellow when using the linux kernel 5.2.7:

`lsusb`

    Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
    Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
    Bus 001 Device 003: ID 06cb:00bd Synaptics, Inc.
    Bus 001 Device 002: ID 04f2:b67c Chicony Electronics Co., Ltd
    Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

`lspci`

    00:00.0 Host bridge: Intel Corporation Device 3e34 (rev 0c)
    00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 620 (Whiskey Lake) (rev 02)
    00:04.0 Signal processing controller: Intel Corporation Xeon E3-1200 v5/E3-1500 v5/6th Gen Core Processor Thermal Subsystem (rev 0c)
    00:08.0 System peripheral: Intel Corporation Xeon E3-1200 v5/v6 / E3-1500 v5 / 6th/7th Gen Core Processor Gaussian Mixture Model
    00:12.0 Signal processing controller: Intel Corporation Cannon Point-LP Thermal Controller (rev 11)
    00:14.0 USB controller: Intel Corporation Cannon Point-LP USB 3.1 xHCI Controller (rev 11)
    00:14.2 RAM memory: Intel Corporation Cannon Point-LP Shared SRAM (rev 11)
    00:14.3 Network controller: Intel Corporation Cannon Point-LP CNVi [Wireless-AC] (rev 11)
    00:15.0 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP Serial IO I2C Controller #0 (rev 11)
    00:15.1 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP Serial IO I2C Controller #1 (rev 11)
    00:16.0 Communication controller: Intel Corporation Cannon Point-LP MEI Controller #1 (rev 11)
    00:1d.0 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #9 (rev f1)
    00:1d.4 PCI bridge: Intel Corporation Cannon Point-LP PCI Express Root Port #13 (rev f1)
    00:1f.0 ISA bridge: Intel Corporation Cannon Point-LP LPC Controller (rev 11)
    00:1f.3 Audio device: Intel Corporation Cannon Point-LP High Definition Audio Controller (rev 11)
    00:1f.4 SMBus: Intel Corporation Cannon Point-LP SMBus Controller (rev 11)
    00:1f.5 Serial bus controller [0c80]: Intel Corporation Cannon Point-LP SPI Controller (rev 11)
    00:1f.6 Ethernet controller: Intel Corporation Ethernet Connection (6) I219-V (rev 11)
    03:00.0 Non-Volatile memory controller: Sandisk Corp WD Black 2018/PC SN720 NVMe SSD
    05:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
    06:00.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
    06:01.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
    06:02.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
    06:04.0 PCI bridge: Intel Corporation JHL6540 Thunderbolt 3 Bridge (C step) [Alpine Ridge 4C 2016] (rev 02)
    07:00.0 System peripheral: Intel Corporation JHL6540 Thunderbolt 3 NHI (C step) [Alpine Ridge 4C 2016] (rev 02)
    2d:00.0 USB controller: Intel Corporation JHL6540 Thunderbolt 3 USB Controller (C step) [Alpine Ridge 4C 2016] (rev 02)

## BIOS

The most convenient way to install Arch Linux is by disabling "Secure Boot" `Security -> Secure Boot - Set to "Disabled"`. However it is possible to self-sign your kernel and boot with it enabled. For further information have a look at the Secure Boot article.

In case your `efivars` are not properly set it is most likely due to you not being booted into UEFI. Should the problem persist be sure to consult the UEFI#UEFI variables section.

### Updates

#### Automatic (Linux Vendor Firmware Service)

In August of 2018 Lenovo has joined the Linux Vendor Firmware Service (LVFS) project, which enables firmware updates from within the OS. BIOS updates (and possibly other firmware such as the Thunderbolt controller) can be queried for and installed through fwupd. Currently, there is one small BIOS update available through fwupd.

#### Manual (fwupdmgr)

Lenovo may in the future provide cabinet files that can be directly installed with fwupdmgr. Check for Linux `.cab` files from the Lenovo ThinkPad X1 Carbon (Gen 7) driver website.

1. Make sure the AC adapter is firmly connected to the target computer.
2. Launch Terminal.
3. Move to the directory where the cabinet file was placed.
4. Run `fwupdmgr install xxxxxxxx.cab` to schedule firmware update.
5. Restart the system.
6. The computer will be restarted and the UEFI BIOS will be updated.

### Enabling S3

To enable S3 support, make sure you go into the BIOS configuration, and `Config -> Power -> Sleep State - Set to "Linux"`. This should make S3 available. To verify, after making the changes in the BIOS configuration, boot into Linux, and run the `dmesg` command again to make sure that S3 is now available.

### Verifying S3

To check whether S3 is recognized and usable by Linux, run:

    dmesg | grep -i "acpi: (supports"

and check for `S3` in the list.

### S3 Suspend Bug with Bluetooth Devices

Occasionally your Thinkpad will wake up immediately after suspending with certain bluetooth devices added. To prevent this, remove the devices or disable bluetooth before suspending.

### BIOS configurations

- `Config -> Thunderbolt BIOS Assist Mode - Set to "Enabled"`. When disabled, on Linux, power usage appears to be significantly higher because of a substantial number of CPU wakeups during s2idle.

## Power management/Throttling issues

Due to wrong configured power management registers the CPU may consume a lot less power than under windows and the thermal throttling occurs at 80°C (97°C when using Windows, see T480s throttling bug).

There is a post in the official Lenovo forum to inform Lenovo about this issue.

### Throttling fix

throttled replaces lenovo-throttling-fix-gitAUR[broken link: package not found] used previously. Install throttled, then run

    sudo systemctl enable --now lenovo_fix.service

### Touchpad fix

The touchpad works fine out of the box, except that TLP does not detect that the Synaptics Touchpad is indeed an input device, so it does not exclude it from the USB_AUTOSUSPEND feature. You can tell that this is the issue if the touchpad works for just a moment after waking up from suspend, and then stops working again.

The fix is to add the touchpad to the USB_BLACKLIST in TLP's config:

    USB_BLACKLIST="06cb:00bd" <=========== use lsusb to get the correct UUID

## Microphone

It will works with kernel 5.3 but its new audio driver is also breaking the speakers. (see https://forums.lenovo.com/t5/Ubuntu/ThinkPad-X1-Carbon-7th-Gen-X1C7-mirophone-not-working/td-p/4484156)

## Volume Controls

In order for volume controls to work correctly you must edit `/usr/share/pulseaudio/alsa-mixer/paths/analog-output.conf.common` by adding the following above `[Element PCM]`:

    [Element Master]
    switch = mute
    volume = ignore

A PulseAudio restart is required for this change to take affect. Make sure to increase the "Master" channel volume to 100% for the top-firing speakers to work (using amixer or alsamixer, found in alsa-utils).

### Persistent fix

Upgrading or reinstalling pulseaudio will overwrite this file, and pulseaudio does not offer another way to make this configuration change. To prevent pacman from overwriting the file, add the following line under `[options]` in `/etc/pacman.conf`:

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

## Disabling red LED in ThinkPad logo

To disable the red LED in the ThinkPad logo on the cover:

1. Enable writing to the embedded controller registers by adding the kernel parameter `ec_sys.write_support=1`. If you use UEFI boot, you can add this parameter in `/boot/efi/loader/entries/arch.conf` under "options".

2. Then, you can disable directly the LED with this command:

    # echo -n -e "\x0a" | sudo dd of="/sys/kernel/debug/ec/ec0/io" bs=1 seek=12 count=1 conv=notrunc 2> /dev/null

To disable the LED at startup, you can create a systemd service:

The factual accuracy of this article or section is disputed.

Reason: This command works one time, but the light turns back on after a suspend (even with the systemd service enabled). (Discuss in Talk:Lenovo ThinkPad X1 Carbon (Gen 7)#Disabling red LED in Thinkpad logo stops)

1. Create a sh script (/root/disable_led.sh for instance) and put this :

    #!/bin/bash
    echo -n -e "\x0a" | dd of="/sys/kernel/debug/ec/ec0/io" bs=1 seek=12 count=1 conv=notrunc 2> /dev/null

2. Create a new service unit file in {{ic|/etc/systemd/system} called "led.service", and insert the following:

    Description=Disabling thinkpad led

    [Service]
    ExecStart=/root/disable_led.sh

    [Install]
    WantedBy=multi-user.target

3. Start and enable this service:

    # systemctl start led.service
    # systemctl enable led.service

## Additional resources

- ThinkWiki X1 Carbon 7th Gen page
- Dell XPS 13 9370 quirks: Some pointers on getting Watt usage down to ~2W, Intel video powersaving features might be interesting, see also the Intel graphics page for interesting power-saving options.
- Intel Blog: Best practice to debug Linux* suspend/hibernate issues, including the pm-graph tool to analyze power usage during suspend
- How to fix volume control (ALSA problem) This is where the volume fix came from originally.

Category:

- Lenovo

Hidden categories:

- Pages with broken package links
- Pages or sections flagged with Template:Accuracy