跳转至内容

联想 ThinkPad T14s (AMD) Gen 3

来自 ArchWiki
硬件 PCI/USB ID 是否工作?
GPU 1002:1681 存在问题
Wi-Fi 17cb:1103
音频 1022:15e3
TrackPoint
触控板
摄像头 04f2:b74f
指纹识别器 27c6:6594
移动宽带 2c7c:030a
蓝牙 10ab:9309
智能卡读卡器 058f:9540

本文档涵盖了在联想 Thinkpad T14s (AMD) Gen 3 笔记本电脑上安装和配置 Arch Linux。几乎所有功能都已开箱即用。

有关笔记本电脑相关文章和建议的总体概述,请参阅 Laptop

固件

使用 fwupd 工具更新固件,只要 BIOS 中启用了所有相关选项(启用 Windows Update UEFI Update),就可以正常工作。

更新 BIOS 固件还可以修复一些导致 Linux 输出以下错误信息的错误。

[Hardware Error]: Corrected error, no action required.
[Hardware Error]: CPU:0 (19:44:1) MC15_STATUS[Over|CE|MiscV|AddrV|-|-|SyndV|CECC|-|-|-]: 0xdc204000000c011b
[Hardware Error]: Error Addr: 0x00000001faa88180
[Hardware Error]: IPID: 0x0000009600050f00, Syndrome: 0x000001ff0a240700
...
警告 据报道,UEFI 固件 0.1.40 会在此 Thinkpad 上引起问题。请参阅 #笔记本电脑无法挂起/重启/关机

CPU

ACPI-cpufreq 存在一些频率缩放问题,导致内部 GPU 在看似随机的时间重置。这可以通过使用“amd_pstate”(见下文)来解决。GPU 重置不频繁,但如果您打算坚持使用 ACPI-cpufreq 性能缩放驱动程序,则应在购买笔记本电脑之前考虑这一点。重置会导致屏幕变黑,迫使用户通过 登录管理器重启或重新登录。在 GPU 重置期间切换到 TTY 有时是可能的。

要跟踪这些问题,请参阅:

https://bugzilla.kernel.org/show_bug.cgi?id=213145

https://gitlab.freedesktop.org/drm/amd/-/issues/1974

https://gitlab.freedesktop.org/drm/amd/-/issues/2068

https://gitlab.freedesktop.org/drm/amd/-/issues/2443

提供的过压解决方法不会影响 ThinkPad T14s Gen 3 (AMD) 处理器,因为超薄本处理器无法过压。

在内核版本低于 6.5 的情况下,如果不需要 ACPI-cpufreq,可以使用实验性的 amd-pstate 频率缩放驱动程序,方法是在 内核参数中添加 amd_pstate=passive(内核 6.3 之前)或 amd_pstate=active(内核 6.3 及更新版本)。请注意,内核参数仅适用于 5.17 及以上版本的内核。此驱动程序似乎比 ACPI-cpufreq 驱动程序更稳定,不仅减少了 GPU 重置次数,还降低了 CPU 空闲温度。

自 6.5 内核起,AMD P-State EPP 驱动程序默认应用“Active”配置文件,因此通常无需更改。

触控板

触摸板在 Wayland 上运行良好。

但是,有些人在 Xorg 上偶尔会出现 3-4 秒的冻结。

禁用触摸板活动唤醒

使用以下命令禁用由触摸板引起的唤醒事件。请注意,这仅适用于触摸板本身及其底部集成的左右点击按钮,而不适用于其顶部的 3 个按钮或任何其他输入。

/etc/udev/rules.d/99-disable-touchpad-wakeup.rules
KERNEL=="i2c-SYNA8018:00", SUBSYSTEM=="i2c", ATTR{power/wakeup}="disabled"
提示 您可以使用 grep -i touchpad -A 1 /proc/bus/input/devices 找到设备名称。


扬声器

扬声器开箱即用。但是,由于缺少 Dolby Atmos Convolver,它们的音质不如 Windows 下的。

要启用 Dolby Atmos Convolver,请安装 EasyEffects,然后转到 “Effects > Add Convolver > Import Impulse”。

您可以在此处下载“Movie”和“Music”预设:

https://files.bestmail.ws/Arch/T14s_G3_AMD/T14S_G3_Music_Movies.irs

这些预设是在 T14s G3 AMD 笔记本上使用 Windows 10 创建的。

显示

您可以下载一个适用于 400nits IPS 面板的 校准颜色配置文件

一些用户报告了显示器崩溃/问题,尤其是在休眠/挂起后:解决方法是通过将 amdgpu.dcdebugmask=0x10 添加到 内核参数来禁用面板自刷新。

有关完整的多显示器支持(通过 USB-C),请参阅 DisplayLink#USB 3.0 DL-6xxx, DL-5xxx, DL-41xx, DL-3xxx Devices

网络 / Wi-Fi

ath11k 模块存在一个已知 bug,可能导致恢复过程阻塞、图形界面冻结并丢失无线网卡接口。手动解决方法是在休眠前禁用 ath11k_pci 模块,并在恢复后重新启用。然而,这个问题应该已经不存在了。

如果您仍然遇到此问题:请参阅 Dell XPS 13 (9310)#Wi-Fi 以获取用于自动化此过程的 systemd 服务。

这可以通过睡眠钩子进行自动化——如果在休眠或挂起之前卸载模块,则模块会立即卸载,没有延迟,并且不会发生恢复内核 bug。

/etc/systemd/system/ath11k-suspend.service
[Unit]
Description=Suspend: rmmod ath11k_pci
Before=sleep.target

[Service]
Type=oneshot
ExecStart=/usr/bin/rmmod ath11k_pci

[Install]
WantedBy=sleep.target
/etc/systemd/system/ath11k-resume.service
[Unit]
Description=Resume: modprobe ath11k_pci
After=suspend.target suspend-then-hibernate.target hibernate.target hybrid-sleep.target

[Service]
Type=oneshot
ExecStart=/usr/bin/modprobe ath11k_pci

[Install]
WantedBy=suspend.target suspend-then-hibernate.target hibernate.target hybrid-sleep.target

您需要启用 ath11k-suspend.serviceath11k-resume.service

此外,可能还需要重启 NetworkManager.service

移动宽带

工作正常。请遵循 Mobile broadband modem 的说明,特别是 FCC unlocking 部分。

智能卡读卡器

似乎工作正常并能读取卡片。请遵循 smartcards 的说明。

指纹识别器

工作正常。请遵循 fprintd 的说明。

电源 management

S3 睡眠 / s2idle

S3 睡眠不支持。然而,s2idle 开箱即用,并且不会导致睡眠/休眠问题。

休眠

工作正常。如果您在休眠后遇到 Wi-Fi 问题,请参阅:网络 / Wi-Fi。

电池阈值

可以使用 TLPKDE / GNOME 电源管理工具,或从命令行正确设置电池充电阈值。

# echo 75 > /sys/class/power_supply/BAT0/charge_start_threshold
# echo 80 > /sys/class/power_supply/BAT0/charge_stop_threshold

AMD P-State EPP

使用 power-profiles-daemon 或此 udev 规则 + 脚本,根据笔记本是使用电池还是充电器运行来应用不同的 AMD P-State EPP 状态。

/etc/udev/rules.d/99-battery.rules
SUBSYSTEM=="power_supply", ATTR{online}=="0", RUN+="/usr/local/bin/on_battery.sh"
SUBSYSTEM=="power_supply", ATTR{online}=="1", RUN+="/usr/local/bin/on_ac.sh"
/usr/local/bin/on_battery.sh
#!/usr/bin/bash

# Change Dirty Writeback Centisecs according to TLP / Powertop
echo '5000' > '/proc/sys/vm/dirty_writeback_centisecs';

# Change AMD Paste EPP energy preference
# Available profiles: performance, balance_performance, balance_power, power
echo 'balance_power' | tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference;

# If required, change cpu scaling governor
# Possible options are: conservative ondemand userspace powersave performance schedutil
#cpupower frequency-set -g powersave;

# Platform Profiles Daemon will do this automatically, based on your settings in KDE / GNOME
# You can how ever, set this manually as well
# Possible profile options are: performance, powersave, low-power
#echo 'powersave' > '/sys/firmware/acpi/platform_profile';

# Radeon AMDGPU DPM switching doesn't seem to be supported.
# Possible options should be: battery, balanced, performance, auto
#echo 'battery' > '/sys/class/drm/card0/device/power_dpm_state'; 

# Should always be auto (TLP default = auto)
# Possible options are: auto, high, low
#echo 'auto' > '/sys/class/drm/card0/device/power_dpm_force_performance_level';

# Runtime PM for PCI Device to auto
find /sys/bus/pci/devices/*/power -name control -exec sh -c 'echo "auto" > "$1"' _ {} \;
for i in $(find /sys/devices/pci0000\:00/0* -maxdepth 3 -name control); do
    echo auto > $i;
done
/usr/local/bin/on_ac.sh
#!/usr/bin/bash

# Change Dirty Writeback Centisecs according to TLP / Powertop
echo '500' > '/proc/sys/vm/dirty_writeback_centisecs';

# Change AMD Paste EPP energy preference
# Available profiles: performance, balance_performance, balance_power, power
echo 'balance_performance' | tee /sys/devices/system/cpu/cpu*/cpufreq/energy_performance_preference;

# If required, change cpu scaling governor
# Possible options are: conservative ondemand userspace powersave performance schedutil
#cpupower frequency-set -g performance;

# Platform Profiles Daemon will do this automatically, based on your settings in KDE / GNOME
# You can how ever, set this manually as well
# Possible profile options are: performance, powersave, low-power
#echo 'performance' > '/sys/firmware/acpi/platform_profile';

# Radeon AMDGPU DPM switching doesn't seem to be supported.
# Possible options should be: battery, balanced, performance, auto
#echo 'performance' > '/sys/class/drm/card0/device/power_dpm_state';

# Should always be auto (TLP default = auto)
# Possible options are: auto, high, low
#echo 'auto' > '/sys/class/drm/card0/device/power_dpm_force_performance_level';

# Runtime PM for PCI Device to on
find /sys/bus/pci/devices/*/power -name control -exec sh -c 'echo "on" > "$1"' _ {} \;
for i in $(find /sys/devices/pci0000\:00/0* -maxdepth 3 -name control); do
    echo on > $i;
done

此外,请使 /usr/local/bin/on_battery.sh/usr/local/bin/on_ac.sh 可执行

Power Profiles Daemon

软件包 power-profiles-daemonKDE#Power managementGNOME#Power modes 的标准电源管理服务。它与 TLP 冲突,原因在此处描述:https://gitlab.freedesktop.org/upower/power-profiles-daemon#why-not

  1. 安装 power-profiles-daemon
  2. 启动/启用 power-profiles-daemon 服务。

麦克风 LED

一些用户报告了麦克风 LED 始终亮起的问题。

这个问题并非总是发生,但如果您遇到此问题,请参阅:Lenovo ThinkPad T14 (AMD) Gen 3#Mute Mic LED always on

功能键

按键 可见?1 有标记?2 效果
Fn XF86WakeUp
Fn+4 XF86Sleep
Fn+Esc 切换 Fn 锁定 带有状态指示灯
Fn+F1 XF86AudioMute 带有状态指示灯
Fn+F2 XF86AudioLowerVolume
Fn+F3 XF86AudioRaiseVolume
Fn+F4 XF86AudioMicMute 带有状态指示灯
Fn+F5 XF86MonBrightnessDown
Fn+F6 XF86MonBrightnessUp
Fn+F7 XF86Display
Fn+F8 XF86WLAN 标记为飞行模式
Fn+F9 XF86Messenger 标记为消息框
Fn+F10 XF86Go 标记为接听电话
Fn+F11 取消 标记为挂断电话
Fn+F12 XF86Favorites
Fn+Left 首页
Fn+Right 结束
Fn+P Pause
Fn+S Sys_Req
Fn+K Scroll_Lock
Fn+B Break
Stamp Print
Fn+Space 更改键盘背光亮度
  1. 该键对 xev 及类似工具可见。
  2. 物理按键上有描述其功能的符号。

故障排除

笔记本电脑无法挂起/重启/关机

如果您的笔记本电脑无法挂起、重启甚至关机,可能是由于 UEFI 固件 0.1.40(于 2024 年 5 月 5 日发布)引起的。据报道,此固件会导致多种问题,例如(但不限于):

  1. 笔记本电脑无法挂起/重启/关机;
  2. TLP 和 fwupdmgr 服务无法启动;
  3. 无法重新生成 initramfs,因为 mkinitcpio 自动检测钩子会无限期挂起。

所有这些问题可能都与 AMD Sensor Fusion HUB 设备的故障有关。运行 dmesg 将显示类似的错误。

[    5.547449] BUG: unable to handle page fault for address: 000000010000003a
[    5.547474] #PF: supervisor read access in kernel mode
[    5.547486] #PF: error_code(0x0000) - not-present page
[    5.547497] PGD 0 P4D 0 
[    5.547509] Oops: Oops: 0000 [#1] PREEMPT SMP NOPTI
[    5.547522] CPU: 13 PID: 466 Comm: (udev-worker) Not tainted 6.10.2-arch1-2 #1 
[    5.547557] RIP: 0010:amd_sfh_get_report+0x1c/0x110 [amd_sfh]
...
[    5.557018] CR2: 000000010000003a
[    5.557524] ---[ end trace 0000000000000000 ]---

要解决此问题,请amd_sfh 内核模块加入黑名单。请注意,由于您无法重新构建 initramfs,因此应首先从引导加载程序中将该模块加入黑名单,然后使其永久生效。另请参阅此处此处

参见