These instructions are meant for a system with EFI, systemd-boot and deb based packages. Adjust them to your needs.
Reference: https://www.kernel.org/doc/Documentation/acpi/initrd_table_override.txt
See also https://github.com/lbschenkel/acer-sf314_43-acpi-patch
ACPICA tools: https://acpica.org/downloads
sudo apt install acpica-tools
Extract the acpi tables
mkdir acpi && cd acpi
sudo acpidump -b
Disassemble the tables
iasl -d dsdt.dat
Modify or patch the tables
vim dsdt.dsl
Assemble the custom tables
iasl -sa dsdt.dsl
Generate the cpio file for initrd
cd ..
mkdir -p kernel/firmware/acpi
cp acpi/dsdt.aml kernel/firmware/acpi/
find kernel | cpio -H newc --create > patched_acpi_tables.cpio
Grub does not require a cpio file, you can directly provide the dsl file.
SSDT tables add missing features to the existing ACPI, without requiring disassembling. They are created using the same tools and procedure.
Assemble the custom tables
iasl -sa ssdt.dsl
Generate the cpio file for initrd
cd ..
mkdir -p kernel/firmware/acpi
cp acpi/ssdt.aml kernel/firmware/acpi/
find kernel | cpio -H newc --create > patched_acpi_tables.cpio
Copy the cpio file with the custom tables where it can be addressed by the EFI boot
sudo mkdir /boot/efi/EFI/acpi
sudo cp patched_acpi_tables.cpio /boot/efi/EFI/acpi/
Edit the entry sudo vim /boot/efi/loader/entries/Pop_OS-current.conf
linux /EFI/...
initrd /EFI/acpi/patched_acpi_tables.cpio
initrd /EFI/Pop_OS-.../initrd.img
options ...
@lamperez, thank you!
It works great this way!
Do you have any idea how to automate it so when GRUB create new entries (install new kernel), it automatically adds cpio.
Thank you in advance!