diff --git a/release/powerpc/mkisoimages.sh b/release/powerpc/mkisoimages.sh index ef61f9cbb2e7..02e2d58160af 100644 --- a/release/powerpc/mkisoimages.sh +++ b/release/powerpc/mkisoimages.sh @@ -23,31 +23,9 @@ # extra-bits-dir, if provided, contains additional files to be merged # into base-bits-dir as part of making the image. + if [ "$1" = "-b" ]; then - # Apple boot code - uudecode -o /tmp/hfs-boot-block.bz2 "`dirname "$0"`/hfs-boot.bz2.uu" - bzip2 -d /tmp/hfs-boot-block.bz2 - OFFSET=$(hd /tmp/hfs-boot-block | grep 'Loader START' | cut -f 1 -d ' ') - OFFSET=0x$(echo 0x$OFFSET | awk '{printf("%x\n",$1/512);}') - dd if="$4/boot/loader" of=/tmp/hfs-boot-block seek=$OFFSET conv=notrunc - - bootable="-o bootimage=macppc;/tmp/hfs-boot-block -o no-emul-boot" - - # pSeries/PAPR boot code - mkdir -p "$4/ppc/chrp" - cp "$4/boot/loader" "$4/ppc/chrp" - cat > "$4/ppc/bootinfo.txt" << EOF - -FreeBSD Install -FreeBSD -boot &device;:,\ppc\chrp\loader - -EOF - bootable="$bootable -o chrp-boot" - - # Playstation 3 boot code - echo "FreeBSD Install='/boot/loader.ps3'" > "$4/etc/kboot.conf" - + bootable=1 shift else bootable="" @@ -61,6 +39,34 @@ fi LABEL=`echo "$1" | tr '[:lower:]' '[:upper:]'`; shift NAME="$1"; shift +if [ -n "$bootable" ]; then + echo "Building bootable disc" + + # Apple boot code + uudecode -o /tmp/hfs-boot-block.bz2 "`dirname "$0"`/hfs-boot.bz2.uu" + bzip2 -d /tmp/hfs-boot-block.bz2 + OFFSET=$(hd /tmp/hfs-boot-block | grep 'Loader START' | cut -f 1 -d ' ') + OFFSET=0x$(echo 0x$OFFSET | awk '{printf("%x\n",$1/512);}') + dd if="$1/boot/loader" of=/tmp/hfs-boot-block seek=$OFFSET conv=notrunc + + bootable="-o bootimage=macppc;/tmp/hfs-boot-block -o no-emul-boot" + + # pSeries/PAPR boot code + mkdir -p "$1/ppc/chrp" + cp "$1/boot/loader" "$1/ppc/chrp" + cat > "$1/ppc/bootinfo.txt" << EOF + +FreeBSD Install +FreeBSD +boot &device;:,\ppc\chrp\loader + +EOF + bootable="$bootable -o chrp-boot" + + # Petitboot config for PS3/PowerNV + echo FreeBSD Install=\'/boot/kernel/kernel vfs.root.mountfrom=cd9660:/dev/iso9660/$LABEL\' > "$1/etc/kboot.conf" +fi + publisher="The FreeBSD Project. https://www.FreeBSD.org/" echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$1/etc/fstab" makefs -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"