升级 Chuwi GemiBook Pro 上损坏的 ACPI 表

升级 Chuwi GemiBook Pro 上损坏的 ACPI 表

我正在尝试修复 GemiBook Pro 上的 acpi 表。在普通 Linux(任何内核版本)上,我在 dmesg 中收到 ACPI 错误,这导致 i2c 接口根本无法工作。在 ACPI 错误之后,我在 中收到此错误dmesg

[    2.156560] i2c_designware i2c_designware.0: controller timed out

到目前为止我发现问题似乎出在系统上的众多 I2C 控制器之一上。具体来说就是 I2C2。

我找到了一个不太完整的第一个解决方案,即转储和反汇编 ACPI 表并编辑 dsdt.dsl,删除使用 I2C2 的每个引用和代码块。然后使用 Linux 的表升级功能,我最终得到了可以工作的 I2C 总线(I2C2 除外),从而得到了一个可以工作的触摸板。

我的第二次尝试是试图找出到底是什么搞砸了 I2C2,这样我也可以让该总线正常工作。然后我小心翼翼地尝试删除每个 ACPI 错误。最后一步是删除 ssdt7.dsl 中对 TPL1 的引用。现在我陷入困境。系统仍然抱怨找不到 TPL1 符号,但当我通过表的源代码进行 grep 时,我找不到对 TPL1 的更多引用。

这些是我收到的错误:

[    0.196920] ACPI BIOS Error (bug): Could not resolve symbol\[\_SB.PC00.I2C2.TPL1], AE_NOT_FOUND (20220331/dswload2-162)\
[    0.196935] fbcon: Taking over console\
[    0.196946] ACPI Error: AE_NOT_FOUND, During name lookup/catalog (20220331/psobject-220)\
[    0.196951] ACPI: Skipping parse of AML opcode: Scope (0x0010)\
[    0.223686] ACPI: 12 ACPI AML tables successfully acquired and loaded\
[    0.232848] ACPI BIOS Error (bug): Could not resolve symbol\
[\_SB.PC00.I2C2.TPL1.TDX], AE_NOT_FOUND (20220331/psargs-330)\
[    0.232860] No Local Variables are initialized for Method [_INI]\
[    0.232861] No Arguments are initialized for method [_INI]\
[    0.232863] ACPI Error: Aborting method\
_SB.PC00.I2C2._INI due to previous error (AE_NOT_FOUND) (20220331/psparse-529)

根据表格,该设备具有 I2C0 至 I2C5 总线。BIOS 似乎是 12.2022 的,所以它相当新。我的内核版本是 Ubuntu 22.04 上的 5.19.17。

相关内容