Package Details: dracut-ukify 10-1

Git Clone URL: https://aur.archlinux.org/dracut-ukify.git (read-only, click to copy)
Package Base: dracut-ukify
Description: Integration layer for dracut and systemd's ukify tool for Arch Linux
Upstream URL: https://aur.archlinux.org/packages/dracut-ukify
Licenses: MIT
Conflicts: dracut-hook-uefi, dracut-uefi-hook
Provides: dracut-hook
Submitter: Prototik
Maintainer: Prototik
Last Packager: Prototik
Votes: 10
Popularity: 0.38
First Submitted: 2023-02-20 21:54 (UTC)
Last Updated: 2025-01-31 12:58 (UTC)

Latest Comments

« First ‹ Previous 1 2 3 4 5

jonas-w commented on 2023-04-15 13:44 (UTC)

If someone wants to use the EFI directly without systemd-boot, I created a patch which installs the efi to EFI/BOOT/BOOTX64.efi if you set it as default kernel package otherwise to EFI/BOOT/BOOTX64-$pkgname.efi. Feel free to use this, but with no warranty.

--- /usr/bin/dracut-ukify   2023-04-15 13:49:56.000000000 +0200
+++ dracut-ukify    2023-04-15 15:43:31.073418694 +0200
@@ -79,7 +79,13 @@
           path="$(grep -lE "^${pkgbase}\$" /usr/lib/modules/*/pkgbase)"
           version=$(basename "${path%/pkgbase}")
           for variant in "${!ukify_variants[@]}"; do
-            IMAGE="${ESP_PATH}/EFI/Linux/$(variant_name "linux-$version-$MACHINE_ID-$BUILD_ID" "$variant").efi"
+
+            if [[ "$pkgbase" == "$default_kernel_package" ]]; then
+              IMAGE="${ESP_PATH}/EFI/BOOT/BOOTX64.efi"
+            else
+              IMAGE="${ESP_PATH}/EFI/BOOT/BOOTX64-${pkgbase}.efi"
+            fi
+            #IMAGE="${ESP_PATH}/EFI/Linux/$(variant_name "linux-$version-$MACHINE_ID-$BUILD_ID" "$variant").efi"
             if [ -f "$IMAGE" ]; then
               echo "==> Removing $IMAGE..."
               rm -f "$IMAGE"
@@ -127,7 +133,14 @@
   vmlinuz="/usr/lib/modules/${version}/vmlinuz"

   for variant in "${!ukify_variants[@]}"; do
-    image="${ESP_PATH}/EFI/Linux/$(variant_name "linux-${version}-${MACHINE_ID}-${BUILD_ID}" "$variant").efi"
+
+
+    if [[ "$pkgbase" == "$default_kernel_package" ]]; then
+      image="${ESP_PATH}/EFI/BOOT/BOOTX64.efi"
+    else
+      image="${ESP_PATH}/EFI/BOOT/BOOTX64-${pkgbase}.efi"
+    fi
+    #image="${ESP_PATH}/EFI/Linux/$(variant_name "linux-${version}-${MACHINE_ID}-${BUILD_ID}" "$variant").efi"
     version_name=$(variant_name "$version" "$variant")

     read -r pkgbase < "$path"
@@ -135,7 +148,7 @@
     initrd=$(mktemp)

     echo "==> Building initrd image $kernel ($version_name)"
-    dracut -q -f --no-hostonly-cmdline --kver "${version}" ${ukify_variants[$variant]} "$initrd"
+    dracut -f --no-hostonly-cmdline --kver "${version}" ${ukify_variants[$variant]} "$initrd"

     os_release=$(mktemp)
     grep -v '^BUILD_ID=' /etc/os-release > "$os_release"
@@ -156,14 +169,6 @@
     rm "$initrd"
     rm "$os_release"
   done
-
-  # Mark image as default if needed
-  if [[ "$pkgbase" == "$default_kernel_package" ]]; then
-    echo "===> Mark linux image $kernel ($version) as default"
-    bootctl set-default "linux-${version}-${MACHINE_ID}-${BUILD_ID}.efi" || {
-       echo "==> Unable to mark linux image $kernel ($version) as default due to error" >&2
-    }
-  fi
 }

 for kernel in "${!kernels[@]}"; do