联想 ThinkPad T14s (AMD) Gen 3
| 硬件 | 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 ...
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.service 和 ath11k-resume.service。
此外,可能还需要重启 NetworkManager.service。
移动宽带
工作正常。请遵循 Mobile broadband modem 的说明,特别是 FCC unlocking 部分。
智能卡读卡器
似乎工作正常并能读取卡片。请遵循 smartcards 的说明。
指纹识别器
工作正常。请遵循 fprintd 的说明。
电源 management
S3 睡眠 / s2idle
S3 睡眠不支持。然而,s2idle 开箱即用,并且不会导致睡眠/休眠问题。
休眠
工作正常。如果您在休眠后遇到 Wi-Fi 问题,请参阅:网络 / Wi-Fi。
电池阈值
可以使用 TLP、KDE / 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-daemon 是 KDE#Power management 和 GNOME#Power modes 的标准电源管理服务。它与 TLP 冲突,原因在此处描述:https://gitlab.freedesktop.org/upower/power-profiles-daemon#why-not
- 安装 power-profiles-daemon。
- 启动/启用
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 |
否 | 是 | 更改键盘背光亮度 |
- 该键对
xev及类似工具可见。 - 物理按键上有描述其功能的符号。
故障排除
笔记本电脑无法挂起/重启/关机
如果您的笔记本电脑无法挂起、重启甚至关机,可能是由于 UEFI 固件 0.1.40(于 2024 年 5 月 5 日发布)引起的。据报道,此固件会导致多种问题,例如(但不限于):
- 笔记本电脑无法挂起/重启/关机;
- TLP 和
fwupdmgr服务无法启动; - 无法重新生成
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,因此应首先从引导加载程序中将该模块加入黑名单,然后使其永久生效。另请参阅此处和此处。