Comment 15 for bug 1853277

Revision history for this message
Martina (cantappa) wrote :

This is how I got the DSDT ACPI table patched and installed:

1. Disassemple the current dsdt ACPI table (see [1]):
```
mkdir -p /tmp/acpitables
cd /tmp/acpitables
sudo acpidump > acpidump.out
acpixtract -a acpidump.out
iasl -d dsdt.dat
```
In my case the output dsdt.dsl file contained some invalid error output lines at the very beginning which I just removed. Otherwise, the compiling in step 4 results in errors.

3. Apply this patch to dsdt.dsl (see [2]):
```
- Name (_HID, "XXXX0000") // _HID: Hardware ID
+ Name (_HID, "ELAN062F") // _HID: Hardware ID
```

4. Create an assembler source file out of the patched dsdt.dsl:
```
iasl -sa dsdt.dsl
```

5. Create a CPIO archive to be loaded by the bootloader (see [3]):
```
mkdir -p kernel/firmware/acpi
cp dsdt.aml ssdt1.aml kernel/firmware/acpi
find kernel | cpio -H newc --create > acpi_override
sudo cp acpi_override /boot
```

6. Install the patched dsdt file (see [4]):
```
cpio --extract < ./acpi_override
cp kernel/firmware/acpi/dsdt.aml /boot/fixed_dsdt.aml
# Create or update /boot/grub/custom.cfg to contain
acpi /fixed_dsdt.aml
```

Sources:
[1] https://01.org/linux-acpi/utilities
[2] https://github.com/realnickel/lenovo_thinkbook_iml15_touchpad_acpi_fix/commit/de0ca637f7d8de2164c787801b4af9d4ff586d67
[3] https://wiki.archlinux.org/index.php/DSDT#Using_a_CPIO_archive
https://askubuntu.com/questions/1027552/including-a-custom-acpi-dsdt-with-kubuntu-18-04-rc1