From 6a3afe6924c0885b8c09a5a2b822b9da106af72b Mon Sep 17 00:00:00 2001 From: Glen Barber Date: Mon, 20 Apr 2015 20:06:25 +0000 Subject: [PATCH 1/2] Add support for building arm64/aarch64 virtual machine images. Sponsored by: The FreeBSD Foundation --- release/tools/vmimage.subr | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/release/tools/vmimage.subr b/release/tools/vmimage.subr index 4fd500bbb6f0..9cff4ecbd98a 100644 --- a/release/tools/vmimage.subr +++ b/release/tools/vmimage.subr @@ -29,6 +29,13 @@ write_partition_layout() { -p freebsd-ufs/rootfs:=${VMBASE} \ -o ${VMIMAGE} ;; + arm64:aarch64) + mkimg -s gpt \ + -p efi/efiboot:=${BOOTFILES}/efi/boot1/boot1.efifat \ + ${SWAPOPT} \ + -p freebsd-ufs/rootfs:=${VMBASE} \ + -o ${VMIMAGE} + ;; powerpc:powerpc*) mkimg -s apm \ -p apple-boot/bootfs:=${BOOTFILES}/powerpc/boot1.chrp/boot1.hfs \ From 47a5593e1b400f5c2abeb8d071c7df19c3139fc9 Mon Sep 17 00:00:00 2001 From: Glen Barber Date: Mon, 20 Apr 2015 20:13:02 +0000 Subject: [PATCH 2/2] Copy amd64/make-memstick.sh to arm64/make-memstick.sh for aarch64 memory stick images. Although arm64 does not yet have USB support, the memstick image should be bootable with certain virtualization tools, such as qemu. Sponsored by: The FreeBSD Foundation --- release/arm64/make-memstick.sh | 41 ++++++++++++++++++++++++++++++++++ 1 file changed, 41 insertions(+) create mode 100755 release/arm64/make-memstick.sh diff --git a/release/arm64/make-memstick.sh b/release/arm64/make-memstick.sh new file mode 100755 index 000000000000..09edfad3f057 --- /dev/null +++ b/release/arm64/make-memstick.sh @@ -0,0 +1,41 @@ +#!/bin/sh +# +# This script generates a "memstick image" (image that can be copied to a +# USB memory stick) from a directory tree. Note that the script does not +# clean up after itself very well for error conditions on purpose so the +# problem can be diagnosed (full filesystem most likely but ...). +# +# Usage: make-memstick.sh +# +# $FreeBSD$ +# + +PATH=/bin:/usr/bin:/sbin:/usr/sbin +export PATH + +if [ $# -ne 2 ]; then + echo "make-memstick.sh /path/to/directory /path/to/image/file" + exit 1 +fi + +if [ ! -d ${1} ]; then + echo "${1} must be a directory" + exit 1 +fi + +if [ -e ${2} ]; then + echo "won't overwrite ${2}" + exit 1 +fi + +echo '/dev/ufs/FreeBSD_Install / ufs ro,noatime 1 1' > ${1}/etc/fstab +makefs -B little -o label=FreeBSD_Install ${2}.part ${1} +if [ $? -ne 0 ]; then + echo "makefs failed" + exit 1 +fi +rm ${1}/etc/fstab + +mkimg -s gpt -p efi:=${1}/boot/boot1.efifat -p freebsd-boot:=${1}/boot/gptboot -p freebsd-ufs:=${2}.part -p freebsd-swap::1M -o ${2} +rm ${2}.part +