Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F109635551
D26452.id77183.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
2 KB
Referenced Files
None
Subscribers
None
D26452.id77183.diff
View Options
Index: head/release/arm64/mkisoimages.sh
===================================================================
--- head/release/arm64/mkisoimages.sh
+++ head/release/arm64/mkisoimages.sh
@@ -0,0 +1,93 @@
+#!/bin/sh
+#
+# $FreeBSD$
+#
+# This script is used by release/Makefile to build the (optional) ISO images
+# for a FreeBSD release. It is considered architecture dependent since each
+# platform has a slightly unique way of making bootable CDs. This script is
+# also allowed to generate any number of images since that is more of
+# publishing decision than anything else.
+#
+# Usage:
+#
+# mkisoimages.sh [-b] image-label image-name base-bits-dir [extra-bits-dir]
+#
+# Where -b is passed if the ISO image should be made "bootable" by
+# whatever standards this architecture supports (may be unsupported),
+# image-label is the ISO image label, image-name is the filename of the
+# resulting ISO image, base-bits-dir contains the image contents and
+# extra-bits-dir, if provided, contains additional files to be merged
+# into base-bits-dir as part of making the image.
+
+set -e
+
+scriptdir=$(dirname $(realpath $0))
+. ${scriptdir}/../../tools/boot/install-boot.sh
+
+if [ -z $ETDUMP ]; then
+ ETDUMP=etdump
+fi
+
+if [ -z $MAKEFS ]; then
+ MAKEFS=makefs
+fi
+
+if [ -z $MKIMG ]; then
+ MKIMG=mkimg
+fi
+
+if [ "$1" = "-b" ]; then
+ BASEBITSDIR="$4"
+
+ # Make an EFI system partition.
+ # The ISO file is a special case, in that it only has a maximum of
+ # 800 KB available for the boot code. So make an 800 KB ESP
+ espfilename=$(mktemp /tmp/efiboot.XXXXXX)
+ make_esp_file ${espfilename} 800 ${BASEBITSDIR}/boot/loader.efi
+
+ bootable="-o bootimage=efi;${espfilename} -o no-emul-boot -o platformid=efi"
+
+ shift
+else
+ BASEBITSDIR="$3"
+ bootable=""
+fi
+
+if [ $# -lt 3 ]; then
+ echo "Usage: $0 [-b] image-label image-name base-bits-dir [extra-bits-dir]"
+ exit 1
+fi
+
+LABEL=`echo "$1" | tr '[:lower:]' '[:upper:]'`; shift
+NAME="$1"; shift
+
+publisher="The FreeBSD Project. https://www.FreeBSD.org/"
+echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > "$BASEBITSDIR/etc/fstab"
+$MAKEFS -t cd9660 $bootable -o rockridge -o label="$LABEL" -o publisher="$publisher" "$NAME" "$@"
+rm -f "$BASEBITSDIR/etc/fstab"
+rm -f ${espfilename}
+
+if [ "$bootable" != "" ]; then
+ # Look for the EFI System Partition image we dropped in the ISO image.
+ for entry in `$ETDUMP --format shell $NAME`; do
+ eval $entry
+ # XXX: etdump(8) returns "default" for the initial entry
+ if [ "$et_platform" = "default" ]; then
+ espstart=`expr $et_lba \* 2048`
+ espsize=`expr $et_sectors \* 512`
+ espparam="-p efi::$espsize:$espstart"
+ break
+ fi
+ done
+
+ # Create a GPT image containing the EFI partition.
+ imgsize=`stat -f %z "$NAME"`
+ $MKIMG -s gpt \
+ --capacity $imgsize \
+ $espparam \
+ -o efi.img
+
+ # Drop the GPT into the System Area of the ISO.
+ dd if=efi.img of="$NAME" bs=32k count=1 conv=notrunc
+ rm -f efi.img
+fi
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Sat, Feb 8, 7:13 PM (4 h, 19 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16529295
Default Alt Text
D26452.id77183.diff (2 KB)
Attached To
Mode
D26452: arm64: generate ISO release images
Attached
Detach File
Event Timeline
Log In to Comment