You are not logged in.
Hey,
I recently acquired a laptop which, due to manufacturer stupidity in designing ACPI tables, disables deep sleep with no means to enable it except from by overriding the DSDT.
My current setup involves me overriding part of the table using a separate initrd file at boot via grub. (so my initrd line looks like :
initrd /boot/acpi_override.img /boot/initrdimage.img.
To further secure my setup I would like to ditch grub, enable secureboot with sbupdate and boot directly from a signed initrd image, but I cannot because I still need to run the override.
My understanding, from the arch wiki, is that this override works because the kernel is compiled to look for it by default in the initrd image, so my first port of call was simply to add the same file structure to the initrd image via a build (install) hook.
I now have a "kernel/firmware/acpi" folder structure at the root of my initrd, containing the compiled override files that i took from my acpi_override.img, but the override doesn't apply...
Is there something I am missing? Has anyone successfully used initrd to apply these overrides, and does anyone have an alternative approach to the issue?
Thanks in advance
Last edited by jman6495 (2021-03-19 16:16:51)
Offline
Most likely the override has to be in an uncompressed image. It should be possible concatenate all initrd files with cat and then sign the result. Or possibly sign each image separately.
If you create a unified kernel image, then use the concatenated file as the initramfs for that.
Edit: sbupdate seems to have INITRD_PREPEND, something like that in your config:
INITRD_PREPEND+=(/secure/path/your_image.img)Last edited by progandy (2021-03-18 11:15:37)
| alias CUTF='LANG=en_XX.UTF-8@POSIX ' | alias ENGLISH='LANG=C.UTF-8 ' |
Offline
INITRD_PREPEND did it for me, thank you very much! I missed this feature!
I will mark this thread as solved!
Offline