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>