1082c6764SWarner Losh#!/bin/sh 2082c6764SWarner Losh 3082c6764SWarner Losh# $FreeBSD$ 4082c6764SWarner Losh 5082c6764SWarner Losh# 6082c6764SWarner Losh# Builds all the bat-shit crazy combinations we support booting from, 7082c6764SWarner Losh# at least for amd64. It assume you have a ~sane kernel in /boot/kernel 8082c6764SWarner Losh# and copies that into the ~150MB root images we create (we create the du 9082c6764SWarner Losh# size of the kernel + 20MB 10082c6764SWarner Losh# 11082c6764SWarner Losh# Sad panda sez: this runs as root, but could be userland if someone 12082c6764SWarner Losh# creates userland geli and zfs tools. 13082c6764SWarner Losh# 14082c6764SWarner Losh# This assumes an external prograam install-boot.sh which will install 15082c6764SWarner Losh# the appropriate boot files in the appropriate locations. 16082c6764SWarner Losh# 17082c6764SWarner Losh# These images assume ada0 will be the root image. We should likely 18082c6764SWarner Losh# use labels, but we don't. 19082c6764SWarner Losh# 20082c6764SWarner Losh# ASsumes you've already rebuilt... maybe bad? Also maybe bad: the env 21082c6764SWarner Losh# vars should likely be conditionally set to allow better automation. 22082c6764SWarner Losh# 23082c6764SWarner Losh 24082c6764SWarner Loshcpsys() { 25082c6764SWarner Losh src=$1 26082c6764SWarner Losh dst=$2 27082c6764SWarner Losh 28082c6764SWarner Losh # Copy kernel + boot loader 29082c6764SWarner Losh (cd $src ; tar cf - .) | (cd $dst; tar xf -) 30082c6764SWarner Losh} 31082c6764SWarner Losh 32082c6764SWarner Loshmk_nogeli_gpt_ufs_legacy() { 33082c6764SWarner Losh src=$1 34082c6764SWarner Losh img=$2 35082c6764SWarner Losh 36*22cf6021SWarner Losh cat > ${src}/etc/fstab <<EOF 37*22cf6021SWarner Losh/dev/ada0p2 / ufs rw 1 1 38*22cf6021SWarner LoshEOF 39082c6764SWarner Losh makefs -t ffs -B little -s 200m ${img}.p2 ${src} 40082c6764SWarner Losh mkimg -s gpt -b ${src}/boot/pmbr \ 41082c6764SWarner Losh -p freebsd-boot:=${src}/boot/gptboot \ 42082c6764SWarner Losh -p freebsd-ufs:=${img}.p2 -o ${img} 43*22cf6021SWarner Losh rm -f ${src}/etc/fstab 44082c6764SWarner Losh} 45082c6764SWarner Losh 46082c6764SWarner Loshmk_nogeli_gpt_ufs_uefi() { 47082c6764SWarner Losh src=$1 48082c6764SWarner Losh img=$2 49082c6764SWarner Losh 50*22cf6021SWarner Losh cat > ${src}/etc/fstab <<EOF 51*22cf6021SWarner Losh/dev/ada0p2 / ufs rw 1 1 52*22cf6021SWarner LoshEOF 53*22cf6021SWarner Losh# XXX need to make msdos part for this to work XXXX 54*22cf6021SWarner Losh cp ${src}/boot/boot.efifat ${img}.p1 55082c6764SWarner Losh makefs -t ffs -B little -s 200m ${img}.p2 ${src} 56082c6764SWarner Losh mkimg -s gpt -b ${src}/boot/pmbr \ 57*22cf6021SWarner Losh -p efi:=${img}.p1 \ 58082c6764SWarner Losh -p freebsd-ufs:=${img}.p2 -o ${img} 59*22cf6021SWarner Losh rm -f ${src}/etc/fstab 60082c6764SWarner Losh} 61082c6764SWarner Losh 62082c6764SWarner Loshmk_nogeli_gpt_ufs_both() { 63082c6764SWarner Losh src=$1 64082c6764SWarner Losh img=$2 65082c6764SWarner Losh 66*22cf6021SWarner Losh cat > ${src}/etc/fstab <<EOF 67*22cf6021SWarner Losh/dev/ada0p3 / ufs rw 1 1 68*22cf6021SWarner LoshEOF 69*22cf6021SWarner Losh # XXX need to make msdos part for this to work XXXX 70*22cf6021SWarner Losh cp ${src}/boot/boot.efifat ${img}.p1 71082c6764SWarner Losh makefs -t ffs -B little -s 200m ${img}.p3 ${src} 72082c6764SWarner Losh # p1 is boot for uefi, p2 is boot for gpt, p3 is / 73082c6764SWarner Losh mkimg -b ${src}/boot/pmbr -s gpt \ 74082c6764SWarner Losh -p efi:=${src}/boot/boot1.efifat \ 75082c6764SWarner Losh -p freebsd-boot:=${src}/boot/gptboot \ 76082c6764SWarner Losh -p freebsd-ufs:=${img}.p3 \ 77082c6764SWarner Losh -o ${img} 78*22cf6021SWarner Losh rm -f ${src}/etc/fstab 79082c6764SWarner Losh} 80082c6764SWarner Losh 81082c6764SWarner Loshmk_nogeli_gpt_zfs_legacy() { 82082c6764SWarner Losh src=$1 83082c6764SWarner Losh img=$2 84082c6764SWarner Losh mntpt=$3 85082c6764SWarner Losh geli=$4 86082c6764SWarner Losh scheme=$5 87082c6764SWarner Losh fs=$6 88082c6764SWarner Losh bios=$7 89082c6764SWarner Losh pool=nogeli-gpt-zfs-legacy 90082c6764SWarner Losh 91082c6764SWarner Losh dd if=/dev/zero of=${img} count=1 seek=$((200 * 1024 * 1024 / 512)) 92082c6764SWarner Losh md=$(mdconfig -f ${img}) 93082c6764SWarner Losh gpart create -s gpt ${md} 94082c6764SWarner Losh gpart add -t freebsd-boot -s 400k -a 4k ${md} # <= ~540k 95082c6764SWarner Losh gpart add -t freebsd-zfs -l root $md 96082c6764SWarner Losh # install-boot will make this bootable 97082c6764SWarner Losh zpool create -O mountpoint=none -R ${mntpt} ${pool} ${md}p2 98082c6764SWarner Losh zpool set bootfs=${pool} ${pool} 99082c6764SWarner Losh zfs create -o mountpoint=/ ${pool}/ROOT 100082c6764SWarner Losh # NB: The online guides go nuts customizing /var and other mountpoints here, no need 101082c6764SWarner Losh cpsys ${src} ${mntpt} 102082c6764SWarner Losh df 103082c6764SWarner Losh # need to make a couple of tweaks 104082c6764SWarner Losh cat > ${mntpt}/boot/loader.conf <<EOF 105082c6764SWarner Loshzfs_load=YES 106082c6764SWarner Loshopensolaris_load=YES 107082c6764SWarner LoshEOF 108082c6764SWarner Losh cp /boot/kernel/zfs.ko ${mntpt}/boot/kernel/zfs.ko 109082c6764SWarner Losh cp /boot/kernel/opensolaris.ko ${mntpt}/boot/kernel/opensolaris.ko 11016457354SWarner Losh ls -las ${mntpt}/boot 111082c6764SWarner Losh # end tweaks 112082c6764SWarner Losh zfs umount -f ${pool}/ROOT 113082c6764SWarner Losh zfs set mountpoint=none ${pool}/ROOT 114082c6764SWarner Losh zpool set bootfs=${pool}/ROOT ${pool} 115082c6764SWarner Losh zpool set autoexpand=on ${pool} 116082c6764SWarner Losh zpool export ${pool} 117082c6764SWarner Losh ${SRCTOP}/tools/boot/install-boot.sh -g ${geli} -s ${scheme} -f ${fs} -b ${bios} -d ${src} ${md} 118082c6764SWarner Losh mdconfig -d -u ${md} 119082c6764SWarner Losh} 120082c6764SWarner Losh 121082c6764SWarner Loshmk_nogeli_gpt_zfs_uefi() { 122082c6764SWarner Losh} 123082c6764SWarner Losh 124082c6764SWarner Loshmk_nogeli_gpt_zfs_both() { 125082c6764SWarner Losh} 126082c6764SWarner Losh 127082c6764SWarner Loshmk_nogeli_mbr_ufs_legacy() { 128*22cf6021SWarner Losh src=$1 129*22cf6021SWarner Losh img=$2 130*22cf6021SWarner Losh 131*22cf6021SWarner Losh cat > ${src}/etc/fstab <<EOF 132*22cf6021SWarner Losh/dev/ada0s1a / ufs rw 1 1 133*22cf6021SWarner LoshEOF 134*22cf6021SWarner Losh makefs -t ffs -B little -s 200m ${img}.s1a ${src} 135*22cf6021SWarner Losh mkimg -s bsd -b ${src}/boot/boot -p freebsd-ufs:=${img}.s1a -o ${img}.s1 136*22cf6021SWarner Losh mkimg -a 1 ${bootmbr} -s mbr -b ${src}/boot/boot0sio -p freebsd:=${img}.s1 -o ${img} 137*22cf6021SWarner Losh rm -f ${src}/etc/fstab 138082c6764SWarner Losh} 139082c6764SWarner Losh 140082c6764SWarner Loshmk_nogeli_mbr_ufs_uefi() { 141082c6764SWarner Losh} 142082c6764SWarner Losh 143082c6764SWarner Loshmk_nogeli_mbr_ufs_both() { 144082c6764SWarner Losh} 145082c6764SWarner Losh 146082c6764SWarner Loshmk_nogeli_mbr_zfs_legacy() { 147082c6764SWarner Losh} 148082c6764SWarner Losh 149082c6764SWarner Loshmk_nogeli_mbr_zfs_uefi() { 150082c6764SWarner Losh} 151082c6764SWarner Losh 152082c6764SWarner Loshmk_nogeli_mbr_zfs_both() { 153082c6764SWarner Losh} 154082c6764SWarner Losh 155082c6764SWarner Loshmk_geli_gpt_ufs_legacy() { 156082c6764SWarner Losh} 157082c6764SWarner Losh 158082c6764SWarner Loshmk_geli_gpt_ufs_uefi() { 159082c6764SWarner Losh} 160082c6764SWarner Losh 161082c6764SWarner Loshmk_geli_gpt_ufs_both() { 162082c6764SWarner Losh} 163082c6764SWarner Losh 164082c6764SWarner Loshmk_geli_gpt_zfs_legacy() { 165082c6764SWarner Losh} 166082c6764SWarner Losh 167082c6764SWarner Loshmk_geli_gpt_zfs_uefi() { 168082c6764SWarner Losh} 169082c6764SWarner Losh 170082c6764SWarner Loshmk_geli_gpt_zfs_both() { 171082c6764SWarner Losh} 172082c6764SWarner Losh 173082c6764SWarner Loshmk_geli_mbr_ufs_legacy() { 174082c6764SWarner Losh} 175082c6764SWarner Losh 176082c6764SWarner Loshmk_geli_mbr_ufs_uefi() { 177082c6764SWarner Losh} 178082c6764SWarner Losh 179082c6764SWarner Loshmk_geli_mbr_ufs_both() { 180082c6764SWarner Losh} 181082c6764SWarner Losh 182082c6764SWarner Loshmk_geli_mbr_zfs_legacy() { 183082c6764SWarner Losh} 184082c6764SWarner Losh 185082c6764SWarner Loshmk_geli_mbr_zfs_uefi() { 186082c6764SWarner Losh} 187082c6764SWarner Losh 188082c6764SWarner Loshmk_geli_mbr_zfs_both() { 189082c6764SWarner Losh} 190082c6764SWarner Losh 191082c6764SWarner Losh# iso 192082c6764SWarner Losh# pxeldr 193082c6764SWarner Losh# u-boot 194*22cf6021SWarner Losh# powerpc 195*22cf6021SWarner Losh 196*22cf6021SWarner Loshqser="-serial telnet::4444,server -nographic" 197*22cf6021SWarner Losh 198*22cf6021SWarner Losh# https://wiki.freebsd.org/QemuRecipes 199*22cf6021SWarner Losh# aarch64 200*22cf6021SWarner Loshqemu_aarch64_uefi() 201*22cf6021SWarner Losh{ 202*22cf6021SWarner Losh img=$1 203*22cf6021SWarner Losh sh=$2 204*22cf6021SWarner Losh 205*22cf6021SWarner Losh echo "qemu-system-aarch64 -m 4096M -cpu cortex-a57 -M virt \ 206*22cf6021SWarner Losh -bios QEMU_EFI.fd ${qser} \ 207*22cf6021SWarner Losh -drive if=none,file=${img},id=hd0 \ 208*22cf6021SWarner Losh -device virtio-blk-device,drive=hd0" > $sh 209*22cf6021SWarner Losh# https://wiki.freebsd.org/arm64/QEMU also has 210*22cf6021SWarner Losh# -device virtio-net-device,netdev=net0 211*22cf6021SWarner Losh# -netdev user,id=net0 212*22cf6021SWarner Losh} 213*22cf6021SWarner Losh 214*22cf6021SWarner Losh# Amd64 qemu 215*22cf6021SWarner Loshqemu_amd64_legacy() 216*22cf6021SWarner Losh{ 217*22cf6021SWarner Losh img=$1 218*22cf6021SWarner Losh sh=$2 219*22cf6021SWarner Losh 220*22cf6021SWarner Losh echo "qemu-system-x86_64 --drive file=${img},format=raw ${qser}" > $sh 221*22cf6021SWarner Losh} 222*22cf6021SWarner Losh 223*22cf6021SWarner Loshqemu_amd64_uefi() 224*22cf6021SWarner Losh{ 225*22cf6021SWarner Losh img=$1 226*22cf6021SWarner Losh sh=$2 227*22cf6021SWarner Losh 228*22cf6021SWarner Losh echo "qemu-system-x86_64 -bios ~/bios/OVMF-X64.fd --drive file=${img},format=raw ${qser}" > $sh 229*22cf6021SWarner Losh} 230*22cf6021SWarner Losh 231*22cf6021SWarner Loshqemu_amd64_both() 232*22cf6021SWarner Losh{ 233*22cf6021SWarner Losh img=$1 234*22cf6021SWarner Losh sh=$2 235*22cf6021SWarner Losh 236*22cf6021SWarner Losh echo "qemu-system-x86_64 --drive file=${img},format=raw ${qser}" > $sh 237*22cf6021SWarner Losh echo "qemu-system-x86_64 -bios ~/bios/OVMF-X64.fd --drive file=${img},format=raw ${qser}" > $sh 238*22cf6021SWarner Losh} 239*22cf6021SWarner Losh 240*22cf6021SWarner Losh# arm 241*22cf6021SWarner Losh# nothing listed? 242*22cf6021SWarner Losh 243*22cf6021SWarner Losh# i386 244*22cf6021SWarner Loshqemu_i386_legacy() 245*22cf6021SWarner Losh{ 246*22cf6021SWarner Losh img=$1 247*22cf6021SWarner Losh sh=$2 248*22cf6021SWarner Losh 249*22cf6021SWarner Losh echo "qemu-system-i386 --drive file=${img},format=raw ${qser}" > $sh 250*22cf6021SWarner Losh} 251*22cf6021SWarner Losh 252*22cf6021SWarner Losh# Not yet supported 253*22cf6021SWarner Loshqemu_i386_uefi() 254*22cf6021SWarner Losh{ 255*22cf6021SWarner Losh img=$1 256*22cf6021SWarner Losh sh=$2 257*22cf6021SWarner Losh 258*22cf6021SWarner Losh echo "qemu-system-i386 -bios ~/bios/OVMF-X32.fd --drive file=${img},format=raw ${qser}" > $sh 259*22cf6021SWarner Losh} 260*22cf6021SWarner Losh 261*22cf6021SWarner Losh# Needs UEFI to be supported 262*22cf6021SWarner Loshqemu_i386_both() 263*22cf6021SWarner Losh{ 264*22cf6021SWarner Losh img=$1 265*22cf6021SWarner Losh sh=$2 266*22cf6021SWarner Losh 267*22cf6021SWarner Losh echo "qemu-system-i386 --drive file=${img},format=raw ${qser}" > $sh 268*22cf6021SWarner Losh echo "qemu-system-i386 -bios ~/bios/OVMF-X32.fd --drive file=${img},format=raw ${qser}" > $sh 269*22cf6021SWarner Losh} 270*22cf6021SWarner Losh 271*22cf6021SWarner Losh# mips 272*22cf6021SWarner Losh# qemu-system-mips -kernel /path/to/rootfs/boot/kernel/kernel -nographic -hda /path/to/disk.img -m 2048 273*22cf6021SWarner Losh 274*22cf6021SWarner Losh# Powerpc -- doesn't work but maybe it would enough for testing -- needs details 275*22cf6021SWarner Losh# powerpc64 276*22cf6021SWarner Losh# qemu-system-ppc64 -drive file=/path/to/disk.img,format=raw 277*22cf6021SWarner Losh 278*22cf6021SWarner Losh# sparc64 279*22cf6021SWarner Losh# 10.3 works, 12-current (which one?) hangs 280*22cf6021SWarner Losh# qemu-system-sparc64 -drive file=/path/to/disk.img,format=raw 281*22cf6021SWarner Losh 282082c6764SWarner Losh 283082c6764SWarner Losh# Misc variables 284082c6764SWarner LoshSRCTOP=$(make -v SRCTOP) 285082c6764SWarner Loshcd ${SRCTOP}/stand 286082c6764SWarner LoshOBJDIR=$(make -v .OBJDIR) 287082c6764SWarner LoshIMGDIR=${OBJDIR}/boot-images 288082c6764SWarner Loshmkdir -p ${IMGDIR} 289082c6764SWarner LoshMNTPT=$(mktemp -d /tmp/stand-test.XXXXXX) 290082c6764SWarner Losh 291082c6764SWarner Losh# Setup the installed tree... 292082c6764SWarner LoshDESTDIR=${OBJDIR}/boot-tree 293082c6764SWarner Loshrm -rf ${DESTDIR} 294082c6764SWarner Loshmkdir -p ${DESTDIR}/boot/defaults 295082c6764SWarner Loshmkdir -p ${DESTDIR}/boot/kernel 296082c6764SWarner Loshcp /boot/kernel/kernel ${DESTDIR}/boot/kernel 297328884aeSWarner Loshecho -h -D -S115200 > ${DESTDIR}/boot.config 298082c6764SWarner Losh# XXX 299082c6764SWarner Loshcp /boot/device.hints ${DESTDIR}/boot/device.hints 300082c6764SWarner Losh# Assume we're already built 301082c6764SWarner Loshmake install DESTDIR=${DESTDIR} MK_MAN=no MK_INSTALL_AS_USER=yes 302*22cf6021SWarner Losh# Copy init, /bin/sh, minimal libraries and testing /etc/rc 303*22cf6021SWarner Loshmkdir -p ${DESTDIR}/sbin ${DESTDIR}/bin \ 304*22cf6021SWarner Losh ${DESTDIR}/lib ${DESTDIR}/libexec \ 305*22cf6021SWarner Losh ${DESTDIR}/etc ${DESTDIR}/dev 306*22cf6021SWarner Loshfor f in /sbin/halt /sbin/init /bin/sh $(ldd /bin/sh | awk 'NF == 4 { print $3; }') /libexec/ld-elf.so.1; do 307082c6764SWarner Losh cp $f ${DESTDIR}/$f 308082c6764SWarner Loshdone 309*22cf6021SWarner Loshcat > ${DESTDIR}/etc/rc <<EOF 310*22cf6021SWarner Losh#!/bin/sh 311*22cf6021SWarner Losh 312*22cf6021SWarner Loshecho "RC COMMAND RUNNING -- SUCCESS!!!!!" 313*22cf6021SWarner Loshhalt -p 314*22cf6021SWarner LoshEOF 315082c6764SWarner Losh 316082c6764SWarner Losh# OK. Let the games begin 317082c6764SWarner Losh 318*22cf6021SWarner Loshfor arch in amd64; do 319082c6764SWarner Losh for geli in nogeli geli; do 320082c6764SWarner Losh for scheme in gpt mbr; do 321082c6764SWarner Losh for fs in ufs zfs; do 322082c6764SWarner Losh for bios in legacy uefi both; do 323082c6764SWarner Losh # Create sparse file and mount newly created filesystem(s) on it 324*22cf6021SWarner Losh img=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.img 325*22cf6021SWarner Losh sh=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.sh 326082c6764SWarner Losh echo "vvvvvvvvvvvvvvvvvvvvvv Creating $img vvvvvvvvvvvvvvvvvvvvvvv" 327*22cf6021SWarner Losh rm -f ${img}* 328082c6764SWarner Losh eval mk_${geli}_${scheme}_${fs}_${bios} ${DESTDIR} ${img} ${MNTPT} ${geli} ${scheme} ${fs} ${bios} 329*22cf6021SWarner Losh eval qemu_${arch}_${bios} ${img} ${sh} 330*22cf6021SWarner Losh [ -n "${SUDO_USER}" ] && chown ${SUDO_USER} ${img}* 331082c6764SWarner Losh echo "^^^^^^^^^^^^^^^^^^^^^^ Creating $img ^^^^^^^^^^^^^^^^^^^^^^^" 332082c6764SWarner Losh done 333082c6764SWarner Losh done 334082c6764SWarner Losh done 335082c6764SWarner Losh done 336*22cf6021SWarner Loshdone 337082c6764SWarner Losh 338082c6764SWarner Loshrmdir ${MNTPT} 339*22cf6021SWarner Losh 340*22cf6021SWarner Loshexit 0 341*22cf6021SWarner Losh 342*22cf6021SWarner Losh# Notes for the future 343*22cf6021SWarner Losh 344*22cf6021SWarner Loshfor arch in i386; do 345*22cf6021SWarner Losh for geli in nogeli geli; do 346*22cf6021SWarner Losh for scheme in gpt mbr; do 347*22cf6021SWarner Losh for fs in ufs zfs; do 348*22cf6021SWarner Losh for bios in legacy; do 349*22cf6021SWarner Losh # Create sparse file and mount newly created filesystem(s) on it 350*22cf6021SWarner Losh img=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.img 351*22cf6021SWarner Losh sh=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.sh 352*22cf6021SWarner Losh echo "vvvvvvvvvvvvvvvvvvvvvv Creating $img vvvvvvvvvvvvvvvvvvvvvvv" 353*22cf6021SWarner Losh rm -f ${img}* 354*22cf6021SWarner Losh eval mk_${geli}_${scheme}_${fs}_${bios} ${DESTDIR} ${img} ${MNTPT} ${geli} ${scheme} ${fs} ${bios} 355*22cf6021SWarner Losh eval qemu_${arch}_${bios} ${img} ${sh} 356*22cf6021SWarner Losh [ -n "${SUDO_USER}" ] && chown ${SUDO_USER} ${img}* 357*22cf6021SWarner Losh echo "^^^^^^^^^^^^^^^^^^^^^^ Creating $img ^^^^^^^^^^^^^^^^^^^^^^^" 358*22cf6021SWarner Losh done 359*22cf6021SWarner Losh done 360*22cf6021SWarner Losh done 361*22cf6021SWarner Losh done 362*22cf6021SWarner Loshdone 363*22cf6021SWarner Losh 364*22cf6021SWarner Loshfor arch in arm aarch64; do 365*22cf6021SWarner Losh for scheme in gpt mbr; do 366*22cf6021SWarner Losh fs=ufs 367*22cf6021SWarner Losh for bios in uboot efi; do 368*22cf6021SWarner Losh # Create sparse file and mount newly created filesystem(s) on it 369*22cf6021SWarner Losh img=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.img 370*22cf6021SWarner Losh sh=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.sh 371*22cf6021SWarner Losh echo "vvvvvvvvvvvvvvvvvvvvvv Creating $img vvvvvvvvvvvvvvvvvvvvvvv" 372*22cf6021SWarner Losh rm -f ${img}* 373*22cf6021SWarner Losh eval mk_${geli}_${scheme}_${fs}_${bios} ${DESTDIR} ${img} ${MNTPT} ${geli} ${scheme} ${fs} ${bios} 374*22cf6021SWarner Losh eval qemu_${arch}_${bios} ${img} ${sh} 375*22cf6021SWarner Losh [ -n "${SUDO_USER}" ] && chown ${SUDO_USER} ${img}* 376*22cf6021SWarner Losh echo "^^^^^^^^^^^^^^^^^^^^^^ Creating $img ^^^^^^^^^^^^^^^^^^^^^^^" 377*22cf6021SWarner Losh done 378*22cf6021SWarner Losh done 379*22cf6021SWarner Loshdone 380*22cf6021SWarner Losh 381*22cf6021SWarner Loshfor arch in powerpc powerpc64; do 382*22cf6021SWarner Losh for scheme in ppc-wtf; do 383*22cf6021SWarner Losh fs=ufs 384*22cf6021SWarner Losh for bios in ofw uboot chrp; do 385*22cf6021SWarner Losh # Create sparse file and mount newly created filesystem(s) on it 386*22cf6021SWarner Losh img=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.img 387*22cf6021SWarner Losh sh=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.sh 388*22cf6021SWarner Losh echo "vvvvvvvvvvvvvvvvvvvvvv Creating $img vvvvvvvvvvvvvvvvvvvvvvv" 389*22cf6021SWarner Losh rm -f ${img}* 390*22cf6021SWarner Losh eval mk_${geli}_${scheme}_${fs}_${bios} ${DESTDIR} ${img} ${MNTPT} ${geli} ${scheme} ${fs} ${bios} 391*22cf6021SWarner Losh eval qemu_${arch}_${bios} ${img} ${sh} 392*22cf6021SWarner Losh [ -n "${SUDO_USER}" ] && chown ${SUDO_USER} ${img}* 393*22cf6021SWarner Losh echo "^^^^^^^^^^^^^^^^^^^^^^ Creating $img ^^^^^^^^^^^^^^^^^^^^^^^" 394*22cf6021SWarner Losh done 395*22cf6021SWarner Losh done 396*22cf6021SWarner Loshdone 397*22cf6021SWarner Losh 398*22cf6021SWarner Loshfor arch in sparc64; do 399*22cf6021SWarner Losh for scheme in sun; do 400*22cf6021SWarner Losh fs=ufs 401*22cf6021SWarner Losh for bios in ofw; do 402*22cf6021SWarner Losh # Create sparse file and mount newly created filesystem(s) on it 403*22cf6021SWarner Losh img=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.img 404*22cf6021SWarner Losh sh=${IMGDIR}/${arch}-${geli}-${scheme}-${fs}-${bios}.sh 405*22cf6021SWarner Losh echo "vvvvvvvvvvvvvvvvvvvvvv Creating $img vvvvvvvvvvvvvvvvvvvvvvv" 406*22cf6021SWarner Losh rm -f ${img}* 407*22cf6021SWarner Losh eval mk_${geli}_${scheme}_${fs}_${bios} ${DESTDIR} ${img} ${MNTPT} ${geli} ${scheme} ${fs} ${bios} 408*22cf6021SWarner Losh eval qemu_${arch}_${bios} ${img} ${sh} 409*22cf6021SWarner Losh [ -n "${SUDO_USER}" ] && chown ${SUDO_USER} ${img}* 410*22cf6021SWarner Losh echo "^^^^^^^^^^^^^^^^^^^^^^ Creating $img ^^^^^^^^^^^^^^^^^^^^^^^" 411*22cf6021SWarner Losh done 412*22cf6021SWarner Losh done 413*22cf6021SWarner Loshdone 414