|Previous Post||Top||Next Post|
Let me keep up note on configuring and administrating my ThinkPad T14 Gen 1 (AMD) under Debian GNU/Linux. This is hardware specific tips.
My system has 2 NVMe SSDs:
- AMD Ryzen™ 5 PRO 4650U – 6 cores, 12 threads
- 32GB (PC4-25600 DDR4 SDRAM) – after adding aftermarket Transcend 16GB SDRAM (JM3200HSE-16G [SODIMM DDR4 PC4-25600 16GB])
- WDC PC SN520 SDAPMUW-128G-1001 (20370001) – Original Western Digital 128GB SSD
- TS2TMTE220S (42B8T4EA) – Aftermarket Transcend 2TB SSD
Official Information Sources
- T14 Gen 1 (type 20UD, 20UE) Laptop (ThinkPad) Product Home
- Removal and Replacement Videos - ThinkPad T14 Gen 1
Adding 2TB SSD (2280 both side)
The original Western Digital 128GB PCIe SSD (2242, IC on top side only) is removed and moved with thermal pad to the unused PCIe slot intended for WAN card.
The aftermarket Transcend 2TB PCIe SSD (2280, IC on top and bottom sides) is installed to the original SSD slot.
This is rather heavy high risk mod. It is still working fine in Nov. 2021 with btrfs.
In order to have decent graphics support easily, current testing distribution (bullseye) is used.
$ uname -a Linux goofy 5.9.0-5-amd64 #1 SMP Debian 5.9.15-1 (2020-12-17) x86_64 GNU/Linux
I think we need some non-free drivers.
firmware-iwlwifi— WIFI ?
firmware-realtek— NIC ?
Since there are 2 Ethernet devices (one on right side and one accessible from
docking station), I updated
/etc/network/interfaces as follows to make them
# This file describes the network interfaces available on your system # and how to activate them. For more information, see interfaces(5). source /etc/network/interfaces.d/* # The loopback network interface auto lo iface lo inet loopback # GNOME ### The network interface on normal port allow-hotplug enp2s0 # This is an autoconfigured IPv4 interface iface enp2s0 inet dhcp # This is an autoconfigured IPv6 interface iface enp2s0 inet6 auto ### The network interface on extra port allow-hotplug enp2s0f0 # This is an autoconfigured IPv4 interface iface enp2s0f0 inet dhcp # This is an autoconfigured IPv6 interface iface enp2s0f0 inet6 auto
PC speaker configuration
Beep sound of PC speaker is annoying. Let’s disable it by creating
This disables beep sound for the power down event and Linux virtual console. Sound out put of browser is alive and usable even with this setup. For beep sound in the GNOME terminal, it needs to be disabled from its preference menu.
GUI setting tools provide nice and easy control of the sound system under the normal situation. But it doesn’t provide access to detailed system system settings nor control on them.
The console program
alsamixer gives full control on internal sound devices on
Adjusting sound level with
alsamixer from terminal console to set proper volume:
1 HD-Audio Generic->
Speaker, … with left/right-arrows -> Up-arrows to set to
Mute and unmute sound with
alsamixer from terminal console to mute and unmute:
1 HD-Audio Generic-> Select
Speaker, … with left/right-arrows -> Press-
Sound system regression (Dec-2020)
We experienced a sound system regression of missing analog audio output incident in late-2020 for T14. The root cause seemed to be the mismatch of the kernel version and the udev script.
This problem seems already fixed in Feb-2021. The below are my my workarounds for this issue.
FYI: I also suffered strange muting behavior which required me to use
alsamixer to fix it. (See above)
Workaround (rev. 1: manual)
I run the following from console after installing
pulseaudio-utils once for
every booting manually:
$ pactl load-module module-detect
Workaround (rev. 2: automatic)
Although modifying a distribution provided file as workaround is not my favorite move, I did it anyway to make this workarund automatic.
/etc/pulse/default.pa as follows:
$ cd /etc/pulse/ $ diff -u default.pa.orig default.pa --- default.pa.orig 2020-02-06 11:06:41.000000000 +0900 +++ default.pa 2021-01-08 11:15:09.001167903 +0900 @@ -42,13 +42,14 @@ #load-module module-null-sink #load-module module-pipe-sink +###### All lines lead by 6 #s are workaround to address missing analog output ### Automatically load driver modules depending on the hardware available -.ifexists module-udev-detect.so -load-module module-udev-detect -.else +######.ifexists module-udev-detect.so +######load-module module-udev-detect +######.else ### Use the static hardware detection module (for systems that lack udev support) load-module module-detect -.endif +######.endif ### Automatically connect sink and source if JACK server is present .ifexists module-jackdbus-detect.so
|Previous Post||Top||Next Post|