Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 27 Apr 2014 01:06:02 +0000 (UTC)
From:      Nathan Whitehorn <nwhitehorn@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r264995 - head/release/amd64
Message-ID:  <201404270106.s3R162Ws047659@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: nwhitehorn
Date: Sun Apr 27 01:06:02 2014
New Revision: 264995
URL: http://svnweb.freebsd.org/changeset/base/264995

Log:
  Add script to setup bootable CD ISOs for both BIOS and EFI systems. Tested
  and working on QEMU. Actually using this script as the regular image
  generator, like with the memstick one, will require that the kernel support
  EFI too. In particular, the following two things are required:
  1. vt(9) be the default console driver
  2. vt_efifb and vt_vga be able to coexist usefully in the same kernel
  
  One other note here is that this requires newfs_msdos and mdconfig, which is
  really ugly. NetBSD's makefs at least seems to support FAT now. If that
  actually works, it should be imported and we can get rid of the mdconfig mess.

Added:
  head/release/amd64/mkisoimages-uefi.sh
     - copied, changed from r264979, head/release/amd64/mkisoimages.sh

Copied and modified: head/release/amd64/mkisoimages-uefi.sh (from r264979, head/release/amd64/mkisoimages.sh)
==============================================================================
--- head/release/amd64/mkisoimages.sh	Sat Apr 26 16:58:35 2014	(r264979, copy source)
+++ head/release/amd64/mkisoimages-uefi.sh	Sun Apr 27 01:06:02 2014	(r264995)
@@ -26,6 +26,20 @@
 if [ "x$1" = "x-b" ]; then
 	# This is highly x86-centric and will be used directly below.
 	bootable="-o bootimage=i386;$4/boot/cdboot -o no-emul-boot"
+
+	# Make EFI system partition (should be done with makefs in the future)
+	dd if=/dev/zero of=efiboot.img bs=4k count=100
+	device=`mdconfig -a -t vnode -f efiboot.img`
+	newfs_msdos -F 12 -m 0xf8 /dev/$device
+	mkdir efi
+	mount -t msdosfs /dev/$device efi
+	mkdir -p efi/efi/boot
+	cp ${4}/boot/loader.efi efi/efi/boot/bootx64.efi
+	umount efi
+	rmdir efi
+	mdconfig -d -u $device
+	bootable="-o bootimage=i386;efiboot.img -o no-emul-boot $bootable"
+	
 	shift
 else
 	bootable=""
@@ -43,3 +57,4 @@ publisher="The FreeBSD Project.  http://
 echo "/dev/iso9660/$LABEL / cd9660 ro 0 0" > $1/etc/fstab
 makefs -t cd9660 $bootable -o rockridge -o label=$LABEL -o publisher="$publisher" $NAME $*
 rm $1/etc/fstab
+rm -f efiboot.img



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201404270106.s3R162Ws047659>