ThinkPad T14 Gen 1 (AMD)

Date: 2021/01/07 (initial publish), 2022/08/19 (last update)

Source: en/note-00010.md

Previous Post Top Next Post

TOC

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:

Official Information Sources

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.

LINK:

This is rather heavy high risk mod. It is still working fine in Oct. 2022 with btrfs.

Btrfs and submodule

The installation to btrfs is possible with bulleye d-i. It uses @rootfs subvolume in the menu selected (or newly created) btrfs for the / file system destination.

Be careful not to set btrfs subvolume set-default ... for that patrition if you intend to install system to an existing btrfs partition imounted on /btrfs/main where there is no subvolume named @rootfs in there. Also, you should see as below:

$ sudo btrfs subvolume get-default /btrfs/main/
ID 5 (FS_TREE)

Even if you have data in subvolumes such as @osamu in that patition, the installation will proceeds without overwriting them.

Distribution selection

In order to have decent graphics support easily, current testing distribution (bullseye) is used if you chose not to reformat the partition.

$ uname -a
Linux goofy 5.9.0-5-amd64 #1 SMP Debian 5.9.15-1 (2020-12-17) x86_64 GNU/Linux

Non-free firmwares

I think we need some non-free drivers.

Network configuration

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 hot-pluggable.

# 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 takes care these via NM
###### 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 /etc/modprobe.d/nobeep.conf as:

blacklist pcspkr

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.

Audio configuration

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 modern PC.

Adjusting sound level with alsamixer

Use alsamixer from terminal console to set proper volume:

Mute and unmute sound with alsamixer

Use alsamixer from terminal console to mute and unmute:

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)

REFERENCE: https://yoshimemo.com/post-889/

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.

Modify /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

System recovery

I create some RO-snapshots of @rootfs for quick system recovery.

Previous Post Top Next Post