Linux Support on Lenovo ThinkPad Docks
Testing information and Linux support on Lenovo ThinkPad Docks
Testing information and Linux support on Lenovo ThinkPad Docks
Description
Describes the various Lenovo ThinkPad docks that have been tested with various Linux platforms. Information includes:
- Known issues
- Corresponding workarounds
- Solutions
Applicable Systems
- ThinkPad Thunderbolt 4 WorkStation Dock (40B0)
- ThinkPad Universal Thunderbolt 4 Dock (40B0)
- ThinkPad Universal Thunderbolt 4 Smart Dock (40B1)
- ThinkPad Hybrid USB-C with USB-A Dock (40AF)
Notes:
- Testing was performed using Ubuntu 20.04 with 5.14 oem kernel or later.
- Ubuntu 22.04 and a 6.1 or later kernel is recommended
- AMD platforms have had support for Thunderbolt docks added in 2023 to the kernel, and should work, but have not been tested by Lenovo.
- The ThinkPad Hybrid USB-C with USB-A Dock (40AF) was tested with both Intel and AMD platforms from 2022 and 2023.
Known Issues
Display not working after suspend
With Ubuntu 20.04 and the 5.14 kernel occasional issues were seen with external display not working on suspend/resume or hibernate. Updating to Ubuntu 22.04 and a 6.1 kernel fixes this issue.
Display takes more than 15 seconds to work when connecting to dock
Sometimes it requires 15 - 30 seconds for for the external display to start working when the system is connected to the dock. This is a design limitation of the i915 graphics driver. Enable the drivers fastboot option. Do this by adding: options i915 fastboot=1
to /etc/modprobe.d/i915.conf
.
Three monitors in daisy chain mode not displaying
When three monitors are connected in daisy chain mode display may not work.
The dock stations use the MST protocol in which all dock port information is shared by a single channel, the use of energy saving features such as FBC (Frame Buffer Compression) and PSR (Panel Self Refresh) hinders communication to access processor resources. Doing so that the image of the screens connected to dock is lost. To resolve, add: options i915 enable_fbc=0 enable_psr=0
to /etc/modproc.d/i915.conf
.
With Power Button configured to power off, pressing the dock power button does not shut down the system
When the power button is pressed, and configured with Power Off, a dialog box is displayed which waits for user interaction to confirm to turn off, instead of immediately turning off.
This is the expected, default behavior.
To prevent the confirmation dialog box do: gsettings set org.gnome.SessionManager logout-prompt false
MAC Address Pass-thru not working
If the MAC pass-thru mode is enabled in the BIOS the correct MAC should be used by the operating system.
For non-Intel vPro platforms using r8152 driver
This is a known issue with older kernels, and kernel 5.19 or later must be used.
For other network drivers
The Linux kernel maintainers are rejecting any more fixes for MAC pass-thru with the argument that it should be implemented in user space. In the future, new platforms will have to use the new implementation.
From kernel 6.7 there is a sysfs
interface available: /sys/devices/platform/thinkpad_acpi/auxmac
Userspace can retrieve the desired MAC address, if it has been enabled in the BIOS, using this. A udev
rule can be implemented to configure the pass-thru MAC.
Create /etc/udev/rules.d/99-mapt.rules
with:
SUBSYSTEMS=="pci", DRIVERS=="igc", ATTRS{vendor}=="0x8086", RUN+="/etc/udev/rules.d/mapt_script.sh %k"
Create /etc/udev/rules.d/mapt_script.sh
with:
#!/bin/bash
#Extract the mac address of mapt
#cat /sys/firmware/acpi/tables/DSDT > /tmp/dsdt.dat && iasl -va -d /tmp/dsdt.dat macaddr=$(cat /sys/devices/platform/thinkpad_acpi/auxmac | sed 's/\(..\)/\1:/g; s/:$//' | tr '[:upper:]' '[:lower:]') #Verify if exist a tbt4 dock plugged istbt4=$(lspci -mm | grep -E "Intel Corporation.*0b26" | wc -l)
#Get the name of the interface interface=$1
#If it have a tbt4 dock and if macaddr is not empty (cause empty means mapt is not enable in bios), change the dock mac addr if [ "$istbt4" -gt 0 ] && [ -n "$macaddr" ]; then ip link set dev $interface address $macaddr fi
System wakes up when connected/disconnected from dock
When connecting or disconnecting the dock to the host, while it is suspended, the system wakes up automatically.
This is caused by modern standby (S0ix) sleep. The OS wakes when the connect or disconnect happens. The difference is that Windows handles the event and goes immediately back to sleep without turning on the screen.
This functionality is not available in Linux, but can be simulated using the following solution.
Install the pm-utils
package and add this script to /lib/systemd /system-sleep
Ensure it is executable.
.
ThinkPad L15 Gen 3 Intel not able to set refresh rate to 60Hz for DisplayPort or Thunderbolt
This is fixed by BIOS update to version 1.26 or later.
DisplayLink external display not working
The out of tree display link driver is sometimes needed where monitors with DisplayLink are not working. Refer to: Synaptics - Ubuntu Driver Download.
Download the synaptics-repository-keyring.deb
from Synaptics and run:
sudo apt install synaptics-repository-keyring.deb
sudo apt update
sudo apt install displaylink-driver
Restart the system.
Cannot configure NIC parameters on Realtek NIC
The default upstream driver does not have the support for modifying speed, autoneg, flow control and other parameters. If this is required, the out of tree driver is needed:
git clone https://github.com/wget/realtek-r8152-linux
cd realtek-r8152-linux
sudo make all
You may need to update your initramfs. On Ubuntu do:
sudo depmod -a
sudo update-initramfs -u
Wake-on-LAN functionality not working with Thunderbolt 4 dock
The WOL magic packet does not resume the host as expected when suspended or powered off.
When suspended, only Intel vPRO systems are impacted. This is due to them using the Intel network interface in the dock.
One workaround is to disable AMT in the BIOS as this forces the system to use the Realtek NIC interface which works.
Updating the dock firmware to 1.0.16 fixes the issue as well, but note that MAC pass-thru must be disabled.
When the system is powered down (S5) dock firmware 1.0.16 is needed for Intel vPro based platforms. For non-Intel vPro the out of tree Realtek driver is needed. This can be obtained from: [github] realtek-r8152-linux. Version 2.17.1 or later is required.
Refer to the information above in Cannot configure NIC parameters on Realtek NIC on how to build the driver, but edit the Makefile and uncomment EXTRA_CFLAGS += -DRTL8152_S5_WOL
before running the make all command.
Single mode does not work with two or more external monitors
This is a Ubuntu limitation. For Single mode only one external monitor can be connected.
Related Articles
Tilbakemeldingen din bidrar til å forbedre den generelle opplevelsen