Lenovo ThinkPad L15 Gen1 AMD

TL;DR: siehe "Fazit" unten.

Hardware

BIOS

Ubuntu 20.04.1 64bit

Die Hardware (Ryzen 4000, L15-AMD Serie an sich) ist noch recht neu, daher braucht man auch einen sehr neuen Kernel, Firmware, usw.

Firmware

amd64-microcode 3.20191218.1ubuntu1 und linux-firmware 1.187.4 sind standardmaessig installiert.

Kernel

Default-Kernel 20.04.1

/!\ Default-Kernel Ubuntu 20.04.1 ist 5.4 und daher relativ alt. Er reicht aber für die Installation, danach sollte man auf >= 5.8 gehen.

Direkt nach Installation: Linux L15 5.4.0-53-generic #59-Ubuntu SMP Wed Oct 21 09:38:44 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

Bald gibt es dann auch 20.04.2 mit Kernel 5.8.

Edge-Kernel

"Edge-Kernel" (kurz: EK): Linux L15 5.8.0-28-generic #30~20.04.1-Ubuntu SMP Thu Nov 5 20:57:40 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux

/!\ Wichtig: Kernel >= 5.8 installieren, z.B. den Edge-Kernel. Dieser ist aus den Standard-APT-Quellen verfügbar als linux-image-generic-hwe-20.04-edge.

selbstgebauter Kernel 5.9.8

Kurz: K598 - beim Installieren des Kernelpakets:

W: Possible missing firmware /lib/firmware/rtl_nic/rtl8125b-2.fw for module r8169

Relevanz unklar, das benutzte Treibermodule fuer Ethernet ist r8169, erkannt wird eth0: RTL8168h/8111h.

Beim Booten mit K598 kommt keine(!) Fehlermeldung wg. fehlender Firmware.

Grafik

Internes Display tut direkt nach Installation (ebenso mit EK).

TODO: Funktioniert ein externes Display / Dual-Head-Setup?

Helligkeits-Regelung tut nicht direkt nach Installation: Tasten heller/dunkler funktionieren, aber die Helligkeit aendert sich nicht. Fix via EK!

glxgears mit EK: 60 fps (durch vsync limitiert), glmark2 Score: 3307

Umschaltung Grafik <-> Console funktioniert problemlos mit EK.

Text-Console scrollt schnell mit EK.

Sound

Sound-Ausgabe Lautsprecher und internes Mikrofon tun direkt nach Installation (ebenso EK).

Sound-Ausgabe auf Kopfhörer via 3.5mm Klinke funktioniert.

/!\ TODO: Funktioniert ein Headset an der 3.5mm-Buchse (sowohl Mikrofon als auch Kopfhörer)?

Webcam

Funktioniert direkt nach Installation, ebenso mit EK (Test mit "cheese").

WiFi

Funktioniert, direkt nach Installation, ebenso mit EK.

LAN

EK und K598: funktioniert (EK598: trotz "fehlende Firmware"-Meldung)

LAN-Buchse: hakelig, keine Link-, keine Activity-LED.

Bluetooth

Funktioniert direkt nach Installation, ebenso mit EK.

WWAN / LTE

/!\ TODO: funktioniert WWAN? (konnte nicht getestet werden, Gerät hat ein WWAN)

USB

USB-A und USB-C Anschlüsse: funktionieren (mit USB-Stick getestet)

TODO: max. Durchsatz USB-C?

Tastatur

Direkt nach Installation (ebenso EK): Fn-Keys Mute (F1) ... Flight Mode (F8): Tastendruck wird erkannt, UI reagiert (HUD-Anzeige).

Direkt nach Installation (ebenso EK): Caps-Lock / Num-Lock LED verhält sich normal (toggle ein/aus)

/!\ Die Spezialfunktionen auf F9 (Notifications), F10 (Answer Call), F11 (Hangup Call) lösen mit xev keinen Tastencode aus.

Spezialfunktions-Tasten "Calculator" und "Suspend" (oberhalb Ziffernblock) funktionieren.

Trackpoint

Direkt nach Installation: tut, aber relativ schnell & zuckelig!? Fix via EK.

Touchpad

Direkt nach Installation: tut, aber zuckelig!? Fix via EK.

SSD

Funktioniert. Da es eine PCIe/NVME-SSD ist, kann man nur mit UEFI booten.

Model Number:                       SAMSUNG MZVLB512HBJQ-000L7
Firmware Version:                   4M2QEXF7
...
Supported Power States
St Op     Max   Active     Idle   RL RT WL WT  Ent_Lat  Ex_Lat
 0 +     8.00W       -        -    0  0  0  0        0       0
 1 +     6.30W       -        -    1  1  1  1        0       0
 2 +     3.50W       -        -    2  2  2  2        0       0
 3 -   0.0760W       -        -    3  3  3  3      210    1200
 4 -   0.0050W       -        -    4  4  4  4     2000    8000
...

$ sudo dd if=/dev/nvme0n1p4 of=/dev/null bs=32M count=1000
1000+0 Datensätze ein
1000+0 Datensätze aus
33554432000 Bytes (34 GB, 31 GiB) kopiert, 19,5688 s, 1,7 GB/s

Suspend / Wake-Up

Direkt nach Installation Suspend scheint zu tun, wacht aber nicht korrekt auf: dunkler Bildschirm! Fix via EK.

MicroSD-Kartenleser

Mit EK: funktioniert!

Fingerprint-Sensor

/!\ Tut nicht und laut Lenovo wohl auch nicht geplant.

IMHO ist das kein Problem. Fingerabdrücke sind eh nicht sicher und man hinterlässt sie überall, daher als Passwort-Ersatz eh ungeeignet.

Leistungsaufnahme / Power-Saving

12h im Suspend-Mode und der Akku ist von 100% auf 95% runter.

Mit EK zeigt powertop:

SME / SEV

Anmerkung: TSME kann man im BIOS anschalten, braucht keine Anpassung auf OS-Ebene!

SME:

/etc/default/grub: GRUB_CMDLINE_LINUX_DEFAULT="... mem_encrypt=on kvm_amd.sev=1" - danach update-grub und reboot.

Danach sollte das in dmesg auftauchen:

# dmesg | grep SME
[    1.234567] AMD Secure Memory Encryption (SME) active

# dmesg | grep "SEV supported"
[    7.890123] SVM: SEV supported

/!\ Getestet, tut aber bei einem Gerät mit Ryzen 4500U nicht.

Sieht so aus als ob:

Docking-Stations

TODO: was ist empfehlenswert, was funktioniert, was nicht?

dmesg

[    0.000000] Linux version 5.8.0-28-generic (buildd@lcy01-amd64-023) (gcc (Ubuntu 9.3.0-17ubuntu1~20.04) 9.3.0, GNU ld (GNU Binutils for Ubuntu) 2.34) #30~20.04.1-Ubu
ntu SMP Thu Nov 5 20:57:40 UTC 2020 (Ubuntu 5.8.0-28.30~20.04.1-generic 5.8.14)
[    0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-5.8.0-28-generic root=UUID=96f4f98b-0417-4925-95b7-84ad629c9bd6 ro quiet splash vt.handoff=7

[    0.629319] Trying to unpack rootfs image as initramfs...
[    0.731869] Initramfs unpacking failed: Decoding failed

^ Harmlos. Fix: /etc/initramfs-tools/initramfs.conf COMPRESS=lz4 -> COMPRESS=gzip


[    0.741502] pci 0000:00:00.2: AMD-Vi: Unable to read/write to IOMMU perf counter.
[    0.741650] pci 0000:00:00.2: can't derive routing for PCI INT A
[    0.741650] pci 0000:00:00.2: PCI INT A: not connected

^ Ryzen AGESA BIOS Problem!?


[    0.780136] tpm_tis STM0125:00: 2.0 TPM (device-id 0x0, rev-id 78)
[    0.780499] tpm tpm0: tpm_try_transmit: send(): error -5
[    0.780502] tpm tpm0: [Firmware Bug]: TPM interrupt not working, polling instead

^ ignorieren? wenn es dann mit polling tut, ist ja gut. nicht getestet.


[    0.854436] Unstable clock detected, switching default tracing clock to "global"
               If you want to keep using the local clock, then add: "trace_clock=local" on the kernel command line

^ "trace clock" -> braucht man als normal-user nicht -> ignorieren!?


[    1.091764] xhci_hcd 0000:06:00.3: xHCI Host Controller
[    1.091767] xhci_hcd 0000:06:00.3: new USB bus registered, assigned bus number 2
[    1.091768] xhci_hcd 0000:06:00.3: Host supports USB 3.1 Enhanced SuperSpeed
[    1.091778] usb usb2: We don't know the algorithms for LPM for this host, disabling LPM.

[    1.093683] nvme nvme0: missing or invalid SUBNQN field.
[    1.093704] nvme nvme0: Shutdown timeout set to 8 seconds

^ kernel has a dedicated quirk for it NVME_QUIRK_IGNORE_DEV_SUBNQN which (if set) will just ignore it instead of throw a scary warning.
Either way (quirk or warning), it then generate a "fake" subnqn that seem to do the same job save for being generic:

Warning just means those aren't registered to need that quirk yet (in drivers/nvme/host/pci.c), eventually it may just go away
when the list gets updated, end result will be the same. In other words, drives are fine 

also: ignorieren, harmlos.


[    3.154284] ccp 0000:06:00.2: enabling device (0000 -> 0002)
[    3.154523] ccp 0000:06:00.2: ccp: unable to access the device: you might be running a broken BIOS.
[    3.164678] ccp 0000:06:00.2: tee enabled
[    3.164680] ccp 0000:06:00.2: psp enabled

^ Platform security processor related issue. AGESA bug?

normal-user benutzt das nicht, ignorieren.


[    3.308438] [drm] BIOS signature incorrect 0 0



[    4.014564] thermal thermal_zone0: failed to read out thermal zone (-61)

Gleicher Fehler mit K598.


[    4.768931] [drm] Initialized amdgpu 3.38.0 20150101 for 0000:06:00.0 on minor 0
[    4.789015] EDAC amd64: F17h_M60h detected (node 0).
[    4.789067] EDAC amd64: Node 0: DRAM ECC disabled.
[    4.801615] ------------[ cut here ]------------
[    4.801695] WARNING: CPU: 4 PID: 592 at drivers/gpu/drm/amd/amdgpu/../display/dc/core/dc_link.c:2546 dc_link_set_backlight_level+0x92/0xf0 [amdgpu]
[    4.801696] Modules linked in: amd64_edac_mod(-) fjes(-) snd_hda_codec_realtek edac_mce_amd snd_hda_codec_generic snd_hda_codec_hdmi snd_hda_intel snd_intel_dspcfg snd_hda_codec snd_hda_core snd_hwdep snd_pcm thinkpad_acpi nvram ledtrig_audio snd_seq_midi snd_seq_midi_event snd_rawmidi kvm_amd input_leds kvm iwlmvm mac80211 btusb uvcvideo btrtl btbcm serio_raw videobuf2_vmalloc amdgpu videobuf2_memops crct10dif_pclmul videobuf2_v4l2 libarc4 videobuf2_common snd_seq videodev nls_iso8859_1 snd_seq_device btintel ghash_clmulni_intel snd_timer aesni_intel crypto_simd cryptd glue_helper rapl efi_pstore mc bluetooth iwlwifi iommu_v2 gpu_sched ttm wmi_bmof snd ecdh_generic k10temp ecc ucsi_acpi ccp drm_kms_helper snd_rn_pci_acp3x cec snd_pci_acp3x cfg80211 rc_core i2c_algo_bit fb_sys_fops syscopyarea sysfillrect sysimgblt typec_ucsi typec soundcore joydev mac_hid sch_fq_codel parport_pc ppdev lp parport drm ip_tables x_tables autofs4 crc32_pclmul psmouse xhci_pci xhci_pci_renesas r8169 sdhci_pci
[    4.801722]  cqhci sdhci nvme realtek i2c_piix4 nvme_core wmi video i2c_scmi
[    4.801727] CPU: 4 PID: 592 Comm: systemd-backlig Not tainted 5.8.0-28-generic #30~20.04.1-Ubuntu
[    4.801727] Hardware name: LENOVO 20U70006GE/20U70006GE, BIOS R19ET28W (1.12 ) 08/12/2020
[    4.801778] RIP: 0010:dc_link_set_backlight_level+0x92/0xf0 [amdgpu]
[    4.801779] Code: 30 03 00 00 31 c0 48 8d 96 c0 01 00 00 48 8b 0a 48 85 c9 74 06 4c 3b 61 08 74 22 83 c0 01 48 81 c2 c8 04 00 00 83 f8 06 75 e3 <0f> 0b 45 31 ff 5b 44 89 f8 41 5c 41 5d 41 5e 41 5f 5d c3 48 98 48
[    4.801780] RSP: 0018:ffffaf27c080fd98 EFLAGS: 00010246
[    4.801780] RAX: 0000000000000006 RBX: ffff8f8e32c90000 RCX: 0000000000000000
[    4.801781] RDX: ffff8f8e39a01e70 RSI: ffff8f8e39a00000 RDI: 0000000000000004
[    4.801781] RBP: ffffaf27c080fdc0 R08: 00000000000000ff R09: 0000000000000003
[    4.801782] R10: 000000000000000a R11: f000000000000000 R12: ffff8f8e3168e400
[    4.801782] R13: 0000000000000000 R14: 000000000000ffff R15: 000000000000ff01
[    4.801783] FS:  00007f13ba8d5980(0000) GS:ffff8f8e3f700000(0000) knlGS:0000000000000000
[    4.801783] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
[    4.801784] CR2: 00005595c0bd70a8 CR3: 00000003f4faa000 CR4: 0000000000340ee0
[    4.801784] Call Trace:
[    4.801840]  amdgpu_dm_backlight_update_status+0xb9/0xd0 [amdgpu]
[    4.801843]  backlight_device_set_brightness+0x6b/0xd0
[    4.801844]  brightness_store+0x61/0x80
[    4.801846]  dev_attr_store+0x17/0x30
[    4.801848]  sysfs_kf_write+0x3e/0x50
[    4.801849]  kernfs_fop_write+0xda/0x1b0
[    4.801851]  vfs_write+0xc9/0x200
[    4.801853]  ksys_write+0x67/0xe0
[    4.801854]  __x64_sys_write+0x1a/0x20
[    4.801856]  do_syscall_64+0x49/0xc0
[    4.801857]  entry_SYSCALL_64_after_hwframe+0x44/0xa9
[    4.801858] RIP: 0033:0x7f13bb7831e7
[    4.801859] Code: 64 89 02 48 c7 c0 ff ff ff ff eb bb 0f 1f 80 00 00 00 00 f3 0f 1e fa 64 8b 04 25 18 00 00 00 85 c0 75 10 b8 01 00 00 00 0f 05 <48> 3d 00 f0 ff ff 77 51 c3 48 83 ec 28 48 89 54 24 18 48 89 74 24
[    4.801859] RSP: 002b:00007ffdcabf6928 EFLAGS: 00000246 ORIG_RAX: 0000000000000001
[    4.801860] RAX: ffffffffffffffda RBX: 0000000000000004 RCX: 00007f13bb7831e7
[    4.801860] RDX: 0000000000000004 RSI: 00007ffdcabf69e0 RDI: 0000000000000004
[    4.801861] RBP: 00007ffdcabf69e0 R08: 0000000000000004 R09: 0000000000000000
[    4.801861] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000000004
[    4.801861] R13: 00005595c0bc12d0 R14: 0000000000000004 R15: 00007f13bb85e8a0
[    4.801863] ---[ end trace 5a1d42beea055d78 ]---
[    5.532888] [drm] Failed to add display topology, DTM TA is not initialized.

^ backlight code crash. die helligkeitsregelung tut aber spaeter trotzdem...

Ubuntu 20.10

Unklar: Ist 20.10 zu bevorzugen gegenüber 20.04 - besserer HW-Support?

Falls ja: nur wegen neuerem Kernel oder gibt es auch im Userspace Anpassungen?

Solange hier kein wirklicher Vorteil von 20.10 dokumentiert ist, bleibt man wohl lieber bei der 20.04.x LTS - längerer Support == weniger Arbeit mit Updates.

Fazit

Sobald man auf Kernel >= 5.8 geht, funktioniert Ubuntu 20.04.1 prima und ohne großes Gefrickel auf dem ThinkPad L15 AMD Gen1.

Ich hatte nach einer Vorab-Recherche im Internet Schlimmeres erwartet.

Von Lenovo wird die Linux-Kompatibilität / der Ubuntu-Support insbesondere für Geräte mit AMD-CPU auch eher fragwürdig / unzureichend kommuniziert:

LinuxHardware/NoteBooks/Lenovo/ThinkPad_L15_Gen1_AMD (zuletzt geändert am 2020-11-12 22:46:57 durch ThomasWaldmann)