aboutsummaryrefslogtreecommitdiffsponsor

EFI Sync

Automatically install your kernel and initrd into the EFI when your Slackware system is updated.

Usage: ./efi-sync {install|watch}

    - install: install the kernel and initrd into your EFI.
    - watch: install on updates to your kernel

efi-sync watch watches your kernel path for updates. Your EFI will be updated once one is detected and the package commands have completed.

For systems using an initial ram disk (initrd), efi-sync watch watches /lib/modules and /lib/firmware for updates. Your system is assumed to use one if '/etc/mkinitrd.conf' is present on start. Once changes are detected, the initrd file is recreated using 'mkinitrd' and with the result installed into the EFI.

You will need to manually install the initrd if it was recreated outside of this program.

Project To Do's

Planned improvements and known bugs are listed on the project's todo branch.

Installation

Run the following are root to install this command:

cp efi-sync /usr/local/sbin/efi-sync
chown root:root /usr/local/sbin/efi-sync
chmod +x /usr/local/sbin/efi-sync

The efi-sync will need to be integrated to start automatically on your system.

Configuration

The command looks for configuration at /etc/efi-sync.conf.

Here is an example with the default values:

# The kernel path to watch.
KERNEL=/boot/vmlinuz
# The path to the EFI kernel.
EFI_KERNEL=/boot/efi/Slackware/vmlinuz
# The path for the initial ram disk to install.
INITRD=/boot/initrd.gz
# The path to the EFI's initial ram disk.
EFI_INITRD=/boot/efi/Slackware/initrd.gz

If you want the initial ram disk updated, ensure /etc/mkinitrd.conf exists and is configured correctly.

Testing

To test everything is working correctly:

slackpkg -batch=on -default_answer=y upgrade --reinstall kernel-huge

# You should confirm the recent update with this output.
date -r /boot/efi/EFI/Slackware/vmlinuz

For initrd updates:

slackpkg -batch=on -default_answer=y upgrade --reinstall kernel-firmware

# You should confirm the recent update with this output.
date -r /boot/efi/EFI/Slackware/initrd.gz