andreyv / sbupdate

Generate and sign kernel images for UEFI Secure Boot on Arch Linux
GNU General Public License v3.0
225 stars 20 forks source link

Allow custom `output_name` #60

Open raldone01 opened 1 year ago

raldone01 commented 1 year ago

I use refind and want my /boot to look like this:

[root@Elizabeth ~]# ls /boot/
 EFI                        initramfs-linux-git.img            initramfs-linux-zen.img   vmlinuz-linux           vmlinuz-linux-intel-lts-sriov.efi   vmlinuz-linux-zen
'System Volume Information'         initramfs-linux-intel-lts-sriov-fallback.img   initramfs-linux.img       vmlinuz-linux-drm-tip-git       vmlinuz-linux-intel-lts-sriov.png   vmlinuz-linux-zen.efi
 devtree                    initramfs-linux-intel-lts-sriov.img        intel-ucode.img       vmlinuz-linux-drm-tip-git.efi   vmlinuz-linux-lts           vmlinuz-linux-zen.png
 drivers                    initramfs-linux-lts-fallback.img           linux.efi             vmlinuz-linux-drm-tip-git.png   vmlinuz-linux-lts.efi       vmlinuz-linux.efi
 initramfs-linux-drm-tip-git-fallback.img   initramfs-linux-lts.img            loader            vmlinuz-linux-git           vmlinuz-linux-lts.png       vmlinuz-linux.img
 initramfs-linux-drm-tip-git.img        initramfs-linux-next-git-fallback.img      refind_linux.conf         vmlinuz-linux-git.efi       vmlinuz-linux-next-git      vmlinuz-linux.img.png
 initramfs-linux-fallback.img           initramfs-linux-next-git.img           refind_local.cer      vmlinuz-linux-git.png       vmlinuz-linux-next-git.efi      vmlinuz-linux.png
 initramfs-linux-git-fallback.img       initramfs-linux-zen-fallback.img           rescue.sh             vmlinuz-linux-intel-lts-sriov   vmlinuz-linux-next-git.png      vmlinuz-linux.save.efi

Note: I will move the unsinged files to a secure filesystem soon.

By default sbupdate appends -signed and does not prepend vmlinuz- to fix this I added the following to /etc/sbupdate.conf:

# Return output file path corresponding to an image
#   $1: configuration name
function output_name() {
  echo "${ESP_DIR}/${OUTPUT[$1]:-${OUT_DIR}/vmlinuz-$1.efi}"
}

This workaround works but feels rather hacky. Official naming scheme support would be nice. If my current solution is fine then I can offer to add a section to the readme and document it as a feature.