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 ...
Update: After patching and creating cpio archive from just the single
ssdt*.dsl
-- the numbering of the ssdt files seem to change every acpidump -- file that contained theDevice (SPK1)
block, I was able to reboot and get this output in the log (no longer missing ACPI properties):However, my sound still doesn't work properly and I'm assuming the extra log lines I'm missing when comparing to yours are due to the missing quirks for my laptop model in
linux/sound/pci/hda/patch_realtek.c
. Looks like I'll have to figure out how to make that modification after all. Do you have any knowledge as to where I find the values I will need to replace in this line that exists for the UX3402 (I think specifically just the 2nd parameter)?Thanks again!
EDIT: I believe I've figured out the answer to my question -- the parameters come from the SubVendor and SubDevice ids of my machine:
so the line I'll need to add should be something like: