This patch requires the ofpath tool which is part of the yaboot package, as both ofpathname (part of powerpc-ibm-utils package) and grub-ofpathname (not available packaged but part of the GRUB source code) do not translate a given device node into a working OF path on type 11,2 and 7,3 G5 Power Macs.
v1 -> v2: - fixed changelog entry and commit message - now only patch the CHRP boot script shipped with the grub-ieee1275-bin package in the future --- debian/changelog | 1 + grub-installer | 29 +++++++++++++++++++++++++++++ 2 files changed, 30 insertions(+) diff --git a/debian/changelog b/debian/changelog index bc21995..1d61497 100644 --- a/debian/changelog +++ b/debian/changelog @@ -5,6 +5,7 @@ grub-installer (1.147) UNRELEASED; urgency=medium * Install hfsutils in-target for powerpc/ppc64 newworld targets * Detect and select newworld bootstrap partitions * Handle HFS file systems (format, mount, unmount, fstab entry) + * Patch the CHRP boot script -- Frank Scheiner <frank.schei...@web.de> Thu, 16 Nov 2017 07:20:38 +0100 diff --git a/grub-installer b/grub-installer index 63e4a03..7d68fb2 100755 --- a/grub-installer +++ b/grub-installer @@ -219,6 +219,27 @@ nw_unmount_offs() return 1 fi } + +nw_patch_boot_script() +{ + local boot_script="$1" + local offs_part="$2" + + local self="nw_patch_boot_script" + + local of_path + + of_path=$( in-target --pass-stdout ofpath $offs_part ) + + if sed -e "s/&device;:&partition;/$of_path/" -i "$boot_script"; then + info "$self: Successfully patched $boot_script." + return 0 + else + error "$self: Patching of $boot_script failed." 1>&2 + return 1 + fi +} + ARCH="$(archdetect)" info "architecture: $ARCH" @@ -728,6 +749,14 @@ fi grub_debian_version="$($chroot $ROOT dpkg-query -W -f '${Version}' $inst_package)" +case $ARCH in + powerpc/powermac_newworld|ppc64/powermac_newworld) + # Patch CHRP boot script with the help of the ofpath tool (which is part + # of yaboot). + nw_patch_boot_script "$ROOT/usr/lib/grub/powerpc-ieee1275/grub.chrp" "$offs_part" || exit 1 + ;; +esac + db_progress STEP 1 db_progress INFO grub-installer/progress/step_os-probe os-prober > /tmp/os-probed || true -- 1.9.1