更新:我仔细检查了 dmesg,发现每次尝试加载 goodix_ts 模块时都会出现以下情况。
[98756.097733] gpio gpiochip0: (INT3453:00): gpiochip_lock_as_irq: tried to flag a GPIO set as output for IRQ
[98756.097742] gpio gpiochip0: (INT3453:00): unable to lock HW IRQ 26 for IRQ
这看起来好像触摸屏尝试使用的 GPIO 引脚仅设置为输出。我看过一些关于修改 DSDT 表以纠正此类问题的类似帖子,但目前这有点超出我的理解范围。任何帮助都将不胜感激。
原始帖子:我最近在 eBay 上购买了一台预装了 Windows 11 的“无品牌”迷你笔记本电脑。该设备有一个内置鼠标和电容式触摸屏,在 Windows 下运行良好。预装的 Windows 版本未激活,无法激活,所以我怀疑它可能是假冒的。我没有购买 Windows 许可证,而是选择安装 Ubuntu 23.04 以尝试获得最新的硬件支持。除了鼠标左键单击、声音和触摸屏之外,一切都运行良好。我能够通过从 Wayland 切换回 X-Org 并在启动应用程序中使用一些 xkbset 命令来使鼠标左键单击正常工作。我通过创建另一个启动应用程序来发出一些 alsa 命令来更改一些声音级别,从而修复了声音问题。然而,触摸屏给我带来了问题,我不知道如何纠正这个问题。它被检测为 Goodix 触摸屏,并且完全没有反应。
这是我在我的计算机上收集的一些信息,显示了与触摸屏相关的 dmesg 中的错误,以及一些其他相关信息。
root@Frenzy:~# ls /sys/bus/i2c/devices/
i2c-0 i2c-10 i2c-12 i2c-3 i2c-5 i2c-7 i2c-9 i2c-GDIX1002:00
i2c-1 i2c-11 i2c-2 i2c-4 i2c-6 i2c-8 i2c-ESSX8336:00 i2c-HTIX5288:00
root@Frenzy:~# lsmod | grep goodix
goodix_ts 40960 0
root@Frenzy:~# dmesg | grep GDIX
[ 5.989730] Goodix-TS i2c-GDIX1002:00: supply AVDD28 not found, using dummy regulator
[ 6.036549] Goodix-TS i2c-GDIX1002:00: supply VDDIO not found, using dummy regulator
[ 6.039069] Goodix-TS i2c-GDIX1002:00: Unexpected ACPI resources: gpio_count 1, gpio_int_idx 0
[ 6.241191] Goodix-TS i2c-GDIX1002:00: ID 911, version: 1060
[ 6.245656] input: Goodix Capacitive TouchScreen as /devices/pci0000:00/0000:00:17.0/i2c_designware.4/i2c-4/i2c-GDIX1002:00/input/input7
[ 6.258615] genirq: Failed to request resources for GDIX1002:00 (irq 130) on irqchip intel-gpio
[ 6.259842] Goodix-TS i2c-GDIX1002:00: request IRQ failed: -5
[ 6.465325] Goodix-TS: probe of i2c-GDIX1002:00 failed with error -5
root@Frenzy:~# uname -a
Linux Frenzy 6.2.0-32-generic #32-Ubuntu SMP PREEMPT_DYNAMIC Mon Aug 14 10:03:50 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
root@Frenzy:~# modinfo goodix_ts
filename: /lib/modules/6.2.0-32-generic/kernel/drivers/input/touchscreen/goodix_ts.ko
license: GPL v2
description: Goodix touchscreen driver
author: Bastien Nocera <[email protected]>
author: Benjamin Tissoires <[email protected]>
srcversion: B550E8B9ADBD69F9B7F7157
alias: i2c:GDIX1001:00
alias: acpi*:GDIX1002:*
alias: acpi*:GDIX1001:*
depends:
retpoline: Y
intree: Y
name: goodix_ts
vermagic: 6.2.0-32-generic SMP preempt mod_unload modversions
sig_id: PKCS#7
signer: Build time autogenerated kernel key
sig_key: 17:07:5C:D4:CA:8D:0F:C3:00:20:02:47:F9:D1:5A:9A:FF:5C:4B:F5
sig_hashalgo: sha512
signature: 22:93:E1:C3:C5:61:81:63:5B:03:25:A5:F5:A0:C8:07:9A:C5:06:CC:
53:41:1E:C0:45:23:22:58:A3:88:D0:E3:B4:D4:B0:FA:BD:FC:C2:4F:
A8:A8:25:38:8C:7C:BB:85:27:63:06:4C:07:BB:AB:87:08:CD:6D:4A:
53:C5:0A:5F:69:4D:41:A9:99:02:1C:2C:F8:57:9E:30:F5:16:33:AB:
EF:D8:CE:E8:60:36:2D:44:10:5F:78:F0:24:F9:A5:D9:E8:38:96:DE:
74:43:1A:83:DD:C3:24:2E:C7:2F:9F:AE:E7:90:B9:C8:91:2F:FB:40:
7E:CC:93:B2:11:19:E4:78:86:4E:0A:0C:F4:21:1A:7C:E1:6D:52:A7:
79:0C:25:41:81:FF:CA:79:82:D5:55:6C:6A:81:95:2F:52:E3:0D:7F:
11:AF:26:10:CF:03:9B:5D:DE:72:EA:76:36:0B:6F:BC:94:24:C3:A4:
95:ED:AF:42:A7:E3:44:B2:D9:C3:02:09:78:2C:71:B6:3F:A9:B2:0E:
F2:16:45:E6:58:AB:A1:F2:5A:2F:C7:1E:86:B1:98:C2:B3:25:3B:DF:
27:24:3A:94:55:4A:2B:C5:A2:D2:D6:5B:C7:D0:21:78:E2:8A:64:C9:
E7:44:7F:E4:F3:00:A5:FA:09:E7:8A:BD:92:66:AD:F9:27:8A:F4:8B:
6D:71:4E:88:BE:C1:F8:F2:40:5A:EE:91:C3:6C:5D:B3:ED:4C:06:47:
54:0B:1B:27:2C:3A:6D:45:9B:70:B0:FB:7B:42:D0:19:4A:1A:F0:F3:
A3:00:0E:B0:7E:F5:9F:01:D8:51:43:81:97:E4:B4:9A:E4:8D:86:C9:
29:20:92:FA:EC:67:C7:50:4E:82:60:51:BB:00:20:CC:32:C9:69:2C:
F4:42:F8:A1:9D:38:5C:0B:49:8D:6C:D7:26:13:B9:90:3B:14:73:55:
35:56:D9:10:C2:D0:CE:00:9F:A7:2D:08:9C:A9:6E:B2:35:29:C7:60:
96:ED:2F:E6:D1:CE:13:94:93:1F:4A:E6:1E:4F:22:27:19:BA:1B:D7:
96:DA:F0:8A:D3:C7:FD:D8:E1:DF:B5:CD:25:1B:2E:94:CA:C1:0D:C8:
CA:1C:65:CE:67:84:6E:43:02:1E:86:06:43:64:67:A5:04:B7:79:FA:
23:C6:EC:BE:78:BD:35:3C:62:6F:EF:BB:45:C2:26:C4:C7:10:90:64:
FD:25:64:2D:81:26:A9:2C:F5:6E:BA:2D:E3:69:DF:93:3B:67:E9:C5:
2D:23:C1:68:B3:BE:A5:6A:02:D9:E3:47:51:7F:55:73:72:F9:C1:D1:
60:6F:2A:FC:9D:91:C6:4C:4A:55:CA:47
root@Frenzy:~# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3
0: 21 0 0 0 IR-IO-APIC 2-edge timer
1: 0 46 0 0 IR-IO-APIC 1-edge i8042
4: 0 0 0 0 IR-IO-APIC 4-fasteoi idma64.8
5: 0 0 0 0 IR-IO-APIC 5-fasteoi idma64.9
8: 0 0 0 0 IR-IO-APIC 8-fasteoi rtc0
9: 0 49159 0 0 IR-IO-APIC 9-fasteoi acpi
14: 0 0 0 631 IR-IO-APIC 14-fasteoi INT3453:00, INT3453:01, INT3453:03
15: 0 0 0 0 IR-IO-APIC 15-fasteoi INT3453:02
20: 0 0 0 0 IR-IO-APIC 20-fasteoi i801_smbus
27: 0 0 0 0 IR-IO-APIC 27-fasteoi idma64.0, i2c_designware.0
28: 0 0 432 0 IR-IO-APIC 28-fasteoi idma64.1, i2c_designware.1
29: 0 0 0 0 IR-IO-APIC 29-fasteoi idma64.2, i2c_designware.2
30: 0 0 0 0 IR-IO-APIC 30-fasteoi idma64.3, i2c_designware.3
31: 0 191 0 0 IR-IO-APIC 31-fasteoi idma64.4, i2c_designware.4
32: 0 0 0 0 IR-IO-APIC 32-fasteoi idma64.5, i2c_designware.5
33: 0 0 0 0 IR-IO-APIC 33-fasteoi idma64.6, i2c_designware.6
34: 4625 0 0 0 IR-IO-APIC 34-fasteoi idma64.7, i2c_designware.7
35: 0 0 0 0 IR-IO-APIC 35-fasteoi idma64.12, pxa2xx-spi.12
36: 0 0 0 0 IR-IO-APIC 36-fasteoi idma64.13, pxa2xx-spi.13
37: 0 0 0 0 IR-IO-APIC 37-fasteoi idma64.14, pxa2xx-spi.14
39: 52 0 0 0 IR-IO-APIC 39-fasteoi mmc0
42: 0 52 0 0 IR-IO-APIC 42-fasteoi mmc1
120: 0 0 0 0 DMAR-MSI 0-edge dmar0
121: 0 0 0 0 DMAR-MSI 1-edge dmar1
122: 0 0 0 0 IR-PCI-MSI-0000:00:13.0 0-edge PCIe PME
123: 0 0 0 0 IR-PCI-MSI-0000:00:13.2 0-edge PCIe PME
124: 0 0 0 0 IR-PCI-MSI-0000:00:13.3 0-edge PCIe PME
125: 0 0 0 0 IR-PCI-MSI-0000:00:14.0 0-edge PCIe PME
126: 0 0 0 0 IR-PCI-MSI-0000:00:14.1 0-edge PCIe PME
127: 0 758 0 0 IR-PCI-MSI-0000:00:15.0 0-edge xhci_hcd
128: 0 0 121756 0 IR-PCI-MSI-0000:00:12.0 0-edge ahci[0000:00:12.0]
129: 0 0 0 631 intel-gpio 1 HTIX5288:00
131: 0 0 0 68 IR-PCI-MSI-0000:00:0f.0 0-edge mei_me
132: 505 0 0 216042 IR-PCI-MSI-0000:02:00.0 0-edge iwlwifi
133: 0 0 0 0 intel-gpio 20 es8316
134: 0 39378 0 0 IR-PCI-MSI-0000:00:02.0 0-edge i915
135: 0 0 834 0 IR-PCI-MSI-0000:00:0e.0 0-edge AudioDSP
NMI: 302 300 300 299 Non-maskable interrupts
LOC: 7584958 7360618 7150309 7350773 Local timer interrupts
SPU: 0 0 0 0 Spurious interrupts
PMI: 302 300 300 299 Performance monitoring interrupts
IWI: 1404 15620 1361 1226 IRQ work interrupts
RTR: 0 0 0 0 APIC ICR read retries
RES: 57521 49374 49942 49089 Rescheduling interrupts
CAL: 620561 429300 321699 308772 Function call interrupts
TLB: 238258 237364 237152 237993 TLB shootdowns
TRM: 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 Threshold APIC interrupts
DFR: 0 0 0 0 Deferred Error APIC interrupts
MCE: 0 0 0 0 Machine check exceptions
MCP: 148 149 149 149 Machine check polls
ERR: 0
MIS: 0
PIN: 0 0 0 0 Posted-interrupt notification event
NPI: 0 0 0 0 Nested posted-interrupt event
PIW: 0 0 0 0 Posted-interrupt wakeup event
问题似乎是无法为触摸屏分配中断,但我可能理解错了。有人知道我该如何解决这个问题吗