![MSI 笔记本电脑触摸板在 Linux 上停止工作](https://linux22.com/image/226848/MSI%20%E7%AC%94%E8%AE%B0%E6%9C%AC%E7%94%B5%E8%84%91%E8%A7%A6%E6%91%B8%E6%9D%BF%E5%9C%A8%20Linux%20%E4%B8%8A%E5%81%9C%E6%AD%A2%E5%B7%A5%E4%BD%9C.png)
我有一台 MSI Prestige 14H B12,七月份买的。我的触摸板遇到问题,在登录屏幕上一段时间后触摸板停止工作。自从我第一次在上面安装 Linux 以来,情况一直是一样的,但场景不同。请注意,我也有 Windows,并且触摸板在所有情况下都可以在此操作系统上正常工作。
我的第一个安装是带有 KDE 的 OpenSUSE Thumbleweed,触摸板会在启动后几秒钟在登录屏幕或桌面上停止工作,具体取决于我验证的速度。在这种情况下,如果笔记本电脑插入交流电源,触摸板就会工作。在更新破坏了 GPU 驱动程序并最终破坏了内核和安装后,我开始测试其他操作系统,试图解决触摸板问题。我发现了不同的情况,例如触摸板根本无法工作,甚至仅在使用电池时才工作,但它会以某种方式损坏。因此,我决定回到 Mint 并安装 Mint 20,这是我手头上的可启动程序。通过此安装,触摸板可以正常工作,但是在升级到 Mint 21 后,它会在启动后停止工作,就像在 Thrumbleweed 中一样,但这一次在 AC 上也不起作用。因此,我又回到了 OpenSUSE(这次是 Leap,以避免之前的事件)并一直留在那里,直到我不得不擦除 Windows 分区,并且在重新安装时,我不小心擦除了 OpenSUSE 的引导分区,并在它已经被覆盖后才发现。
我知道它看起来不太像那样,但这是长话短说,每次我在谷歌、论坛中进行搜索(我什至在 OpenSUSE 论坛中提出了一个问题,你可以找到讨论这里)但我发现的任何内容都解决了问题。我写信给 MSI,他们唯一的答复是他们只会在 Windows 上测试他们的产品。因此,这次我安装了 Mint 21.2 Cinammon Edge(因为我在使用 WiFi 驱动程序时遇到了问题,但从内核 6.1 开始它可以正常工作)并发现了与之前 Mint 尝试非常相似的场景。全新安装后,触摸板在所有情况下都可以正常工作,但是当我进行适当升级时,它最终像以前一样:启动后几秒钟,无论是使用交流电还是电池,它都停止工作。这是我保留的安装,所以我再次尝试解决这个令人头痛的触摸板问题。
这是我的 inxi -Fxz 输出(被要求能够在 Linux Mint 论坛上发布,但稍后您会发现它是相关的):
System:
Kernel: 6.2.0-36-generic x86_64 bits: 64 compiler: N/A
Desktop: Cinnamon 5.8.4 Distro: Linux Mint 21.2 Victoria
base: Ubuntu 22.04 jammy
Machine:
Type: Laptop System: Micro-Star product: Prestige 14H B12UCX v: REV:1.0
serial: <superuser required>
Mobo: Micro-Star model: MS-14F1 v: REV:1.0 serial: <superuser required>
UEFI: American Megatrends LLC. v: E14F1IMS.118 date: 04/28/2023
Battery:
ID-1: BAT1 charge: 56.4 Wh (84.2%) condition: 67.0/70.0 Wh (95.7%)
volts: 16.3 min: 15.4 model: MSI BIF0_9 status: Discharging
CPU:
Info: 10-core (6-mt/4-st) model: 12th Gen Intel Core i7-12650H bits: 64
type: MST AMCP arch: Alder Lake rev: 3 cache: L1: 864 KiB L2: 9.5 MiB
L3: 24 MiB
Speed (MHz): avg: 1860 high: 2700 min/max: 400/4600:4700:3500 cores:
1: 450 2: 2700 3: 491 4: 2700 5: 473 6: 2700 7: 495 8: 2700 9: 2700
10: 2700 11: 460 12: 2700 13: 400 14: 2700 15: 2700 16: 2700
bogomips: 86016
Flags: avx avx2 ht lm nx pae sse sse2 sse3 sse4_1 sse4_2 ssse3 vmx
Graphics:
Device-1: Intel Alder Lake-P GT1 [UHD Graphics] vendor: Micro-Star MSI
driver: i915 v: kernel bus-ID: 00:02.0
Device-2: NVIDIA GA107M [GeForce RTX 2050] vendor: Micro-Star MSI
driver: nouveau v: kernel bus-ID: 01:00.0
Display: x11 server: X.Org v: 1.21.1.4 driver: X: loaded: modesetting
unloaded: fbdev,vesa gpu: i915 resolution: 3072x1920~60Hz
OpenGL: renderer: Mesa Intel Graphics (ADL GT2)
v: 4.6 Mesa 23.0.4-0ubuntu1~22.04.1 direct render: Yes
Audio:
Device-1: Intel Alder Lake PCH-P High Definition Audio
vendor: Micro-Star MSI driver: sof-audio-pci-intel-tgl bus-ID: 00:1f.3
Sound Server-1: ALSA v: k6.2.0-36-generic running: yes
Sound Server-2: PulseAudio v: 15.99.1 running: yes
Sound Server-3: PipeWire v: 0.3.48 running: yes
Network:
Device-1: Intel Alder Lake-P PCH CNVi WiFi vendor: Rivet Networks
driver: iwlwifi v: kernel bus-ID: 00:14.3
IF: wlo1 state: down mac: <filter>
Bluetooth:
Device-1: Intel type: USB driver: btusb v: 0.8 bus-ID: 3-10:3
Report: hciconfig ID: hci0 rfk-id: 0 state: up address: <filter>
Drives:
Local Storage: total: 953.87 GiB used: 258.87 GiB (27.1%)
ID-1: /dev/nvme0n1 vendor: Micron model: 3400 MTFDKBA1T0TFH
size: 953.87 GiB temp: 32.9 C
Partition:
ID-1: / size: 124.94 GiB used: 17.75 GiB (14.2%) fs: ext4
dev: /dev/nvme0n1p6
ID-2: /boot/efi size: 96 MiB used: 32.3 MiB (33.6%) fs: vfat
dev: /dev/nvme0n1p2
Swap:
ID-1: swap-1 type: file size: 2 GiB used: 0 KiB (0.0%) file: /swapfile
Sensors:
System Temperatures: cpu: 43.0 C mobo: N/A
Fan Speeds (RPM): N/A
Info:
Processes: 345 Uptime: 10m Memory: 31.04 GiB used: 1.67 GiB (5.4%)
Init: systemd runlevel: 5 Compilers: gcc: 11.4.0 Packages: 2317 Shell: Bash
v: 5.1.16 inxi: 3.3.13
现在,在获取数据时发生了一件非常奇怪的事情:当运行 inxi -Fxz (使用参数,而不仅仅是 inxi)时,触摸板开始再次工作(使用电池或使用交流电)几秒钟,然后再次停止,某种程度上类似于发生在启动时。我做了一个小实验,设置了一个每 6 秒运行一次 inxi -Fxz 的 bash 脚本,以便在启动时启动,触摸板停止工作然后再次启动,如果我将其设置为每 3 秒一次,它不会停止,所以我不知道inxi叫什么来再次唤醒它。显然,这不是一个非常可行的解决方案,甚至是一个最糟糕的想法,但只是为了研究。我在论坛和社区上发现了关于所发生情况的不同理论(所有关于这台笔记本电脑或 Linux 上的类似型号):
- 触摸板对电压变化很敏感:在其他博客中,我发现有人说,如果未使用 Prestige 的 NVIDIA,他们的触摸板将停止工作,并且在使用 GPU 时会重新启动,但似乎不是我的情况(或者至少是“灵敏度”并不统一)并且在某些情况下它根本不起作用
- 系统设置或桌面环境问题:我的 OpenSUSE 论坛帖子中有人说,这种情况不会发生,因为从登录屏幕开始就会发生这种情况,而且每次在设置中启用触摸板时,这种情况都会发生在不同的桌面上环境、发行版和主要发行版
- 像 TLP 干扰驱动程序或触摸板之类的东西:这是因为有人说这里通过禁用 TLP 上的 PCIe 控制解决了这个问题,但是,除非以前的发行版预安装了它,否则我从未使用过 TLP,并且当前的 Mint 也没有它。自从安装新发行版以来,问题就一直存在
- BIOS级别的问题:我发现了类似的Ask Ubuntu 上的线程从几年前开始,他们说问题是通过使用 acpi=on 标志启动来解决的,但是当我按照步骤进行操作时,我不知道如何正确执行 Mint 只是无法启动
- 缺少驱动程序或特定驱动程序的问题:我认为问题是由于升级后或使用 inxi 后 Mint 上的行为造成的,就像开箱即用的东西在更新时出现故障一样。另外,论坛回复中的某人(我现在找不到链接)说驱动程序无法正常工作并使用了替代方案(我无法命名,因为我没有再次找到该帖子,抱歉)。虽然我无法理解 inxi 及其参数对触摸板工作与否的影响。
拜托,过去 4 个月我一直面临这个问题,这让我发疯
答案1
我最近买了同样的笔记本电脑,遇到了同样的问题,我找到了有人给我指出了正确的方向,但我找不到它在哪里。
由于 PCIe 电源管理配置,触摸板(至少在我的情况下)被禁用。它与 Nvidia GPU 一起关闭。
要尝试您是否遇到同样的情况,您可以尝试安装powertop
.启动后不久,在具有 root 权限的终端中运行它并转到Runtime PM for I2C Adapter i2c-14 (NVIDIA i2c adapter 1 at 1:00.0)
参考资料Bad
部分Tunables
。就我而言,这也会关闭 的 PM Runtime PM for PCI Device NVIDIA Corporation GA107M [GeForce RTX 2050]
。
这允许设备保持开机状态(从而消耗更多电池,尽管根据我的经验,这并不明显),同时触摸板也处于唤醒状态。
为了获得更永久的解决方案,我遵循了 Arch Wiki 中的指南(链接这里)。
我将文件更改/etc/udev/rules.d/pci_pm.rules
如下:
# blacklist for pci runtime power management
SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{device}=="0x25a9", ATTR{power/control}="on", GOTO="pci_pm_end"
SUBSYSTEM=="pci", ATTR{power/control}="auto"
LABEL="pci_pm_end"
您必须检查供应商和设备 ID,以防它们与我的不匹配。
希望这对您有帮助!