Commit Graph

30 Commits

Author SHA1 Message Date
bcran
006825f0e8 Rework UEFI ESP generation
Currently, the installer uses pre-created 800KB FAT12 filesystems that
it dd's onto the ESP partition.
This changeset improves that by having the installer generate a FAT32
filesystem directly onto the ESP using newfs_msdos and then copying
loader.efi into /EFI/freebsd.
For live installs it then runs efibootmgr to add a FreeBSD boot entry
in the BIOS.

Sponsored by:	Netflix
Differential Revision:	https://reviews.freebsd.org/D17947
2018-12-20 19:39:37 +00:00
yuripv
4d06bcb89b mkisoimages.sh: don't use -p flag when copying loader.efi to msdosfs.
This fixes 'cdrom' target in the case when world was built by user,
and not root.

Reviewed by:	imp
Differential revision:	https://reviews.freebsd.org/D18414
2018-12-03 22:31:57 +00:00
emaste
6bf4c0a024 release: set -e to exit on error in iso image scripts
Reviewed by:	gjb
Differential Revision:	https://reviews.freebsd.org/D17651
2018-10-22 19:39:20 +00:00
marius
d07944164c - Once we have shifted arguments up to thrice, base-bits-dir is $1 rather
than $4. Introduce $BASEBITSDIR for clarity and to avoid repeating this
  mistake in the future. Fixing this ensures that we pick up newly built
  boot bits native to the target rather for/from the host.
- Apply some of the argument quoting fixes done in r287635 but missing in
  later revisions.
2018-06-07 18:24:25 +00:00
benno
498102ca2b Allow etdump, makefs and mkimg to be overridden.
Recent changes to makefs and mkimg have led to situations where the
disconnect between this script and the versions installed on the host cause
failures. Provide a way to work around this that doesn't require the
installation of new versions to the host system if that's not desired.

With this change mkisoimages.sh will honour the $ETDUMP, $MAKEFS and $MKIMG
environment variables but fall back to the previous behaviour of finding them
within $PATH.

Reviewed by:	gjb
Sponsored by:	iXsystems, Inc.
Differential Revision:	https://reviews.freebsd.org/D15181
2018-04-25 18:47:52 +00:00
benno
55fb52d3af Generate hybrid ISO images for amd64.
This keeps the existing El Torito entries for BIOS and UEFI boot code and
adds a GPT in the ISO image's System Area containing boot code for BIOS that
will load /boot/loader from the ISO filesystem and execute it. We then use
etdump to find the EFI System Partition image in the El Torito catalog and
add an entry to the GPT that allows EFI to find it.

Reviewed by:	gjb, imp
Sponsored by:	iXsystems, Inc.
Differential Revision:	https://reviews.freebsd.org/D15051
2018-04-17 22:33:41 +00:00
benno
eee4209a63 Fix the position of $bootable so that -o platformid=efi applies correctly.
Sponsored by:	iXsystems, Inc.
Pointy hat to:	benno (again)
2018-04-10 02:49:53 +00:00
benno
d286d66602 Fix makefs invocation after r331843.
Reported by:	gjb
Reviewed by:	gjb
Sponsored by:	iXsystems, Inc.
Pointy hat to:	benno
2018-04-10 02:43:07 +00:00
benno
733307e991 Allow makefs to properly tag UEFI El Torito boot images. Use them in amd64 ISOs.
UEFI booting requires an EFI System Partition (ESP). On most storage devices
this will be in a specific partition type. To allow booting from CD/ISO
filesystems, UEFI will look for an ESP in the form of a FAT filesystem image
embedded in the image. Historically FreeBSD has added one of these to its
amd64 ISO images but marked it as simply another i386 boot image. Luckily for
us most UEFI implementations are rather forgiving and work this out for us.

This change adds the ability to mark a boot image as being a UEFI image. It
also modifies our ISO generation to use this marking for the UEFI image we
embed.

Reported by:	Thomas Schmitt <scdbackup@gmx.net>
Reviewed by:	emaste, imp
MFC after:	1 week
Sponsored by:	iXsystems, Inc.
Differential Revision:	https://reviews.freebsd.org/D14809
2018-03-23 20:56:18 +00:00
eadler
45275e3a26 Update several more URLs
- Primarily http -> https
- Primarily FreeBSD project URLs
2017-10-29 08:17:03 +00:00
emaste
ac2a969f03 mkisoimages.sh: remove obsolete x$var convention
Ancient shells had trouble with empty variables but this has not been
relevant for FreeBSD for a very long time (decades?).
2017-09-04 22:37:28 +00:00
smh
a537473608 Increase efiboot.img size used in ISO creation
Due to recent and upcoming changes to add additional functionality to
the EFI loader its now bigger than the space allocates for efiboot.img
so increase this in line with boot1.efifat.

MFC after:	2 weeks
X-MFC-With:	r293268
Sponsored by:	Multiplay
2016-01-13 14:47:13 +00:00
gjb
b2615ed1dd Merge ^/projects/release-install-debug:
- Rework MANIFEST generation and parsing via bsdinstall(8).
- Allow selecting debugging distribution sets during install.
- Rework bsdinstall(8) to fetch remote debug distribution sets
  when they are not available on the local install medium.
- Allow selecting additional non-GENERIC kernels during install.
  At present, GENERIC is still required, and installed by default.

Tested with:	head@r293203
Sponsored by:	The FreeBSD Foundation
2016-01-05 21:05:17 +00:00
dteske
afdb464727 Fix argument quoting and remove unnecessary braces
MFC after:	3 weeks
X-MFC-to:	stable/10
2015-09-10 22:47:26 +00:00
nwhitehorn
56276a9f52 Now that GENERIC can boot on UEFI systems (r268158), switch the build to use
UEFI-compatible images. These will boot as before on BIOS systems, but will
boot using the UEFI loader on UEFI-aware systems.
2014-07-02 15:23:13 +00:00
hrs
aa08976cf0 - Add CHECKSUM.* support in Makefile[1].
- Use ln -fs to create a symlink.
- Remove pkgadd for docports.
- Use WITHOUT_JADETEX=yes instead of WITH_JADETEX=no.
- Add {WORLD,KERNEL}_FLAGS to [BTWK]MAKE.
- Use makefs(8) and gpart(8) for sparc64 ISO image[2].
- Add publisher option to makefs(8)[2].

Based on work by:	gjb[1]
Discussed with:		marius, nwhitehorn[2]
2013-02-03 10:26:24 +00:00
hrs
adbb26d90e ISO 9660 specification allows only "d-characters" and "a-characters" in the
Volume Descriptor (section 7.4).  In short, upper-case alphanumeric + some
symbols only.  While the makefs utility automatically converts the characters,
$LABEL should be consistent in the scripts.
2013-01-08 21:13:58 +00:00
nwhitehorn
3fa339365c Garbage collect some unused variables and stray debug code.
Submitted by:	marius
2011-05-05 13:55:43 +00:00
nwhitehorn
3a0f89209c Repair release CD generation on PC98 and sun4v after release building
changes, and backport the new logic (ISO images are TARGET dependant, not
TARGET_CPUARCH dependant) to Makefile.sysinstall. While modifying ISO
image scripts, change several archs to use makefs (from base) instead of
mkisofs (from ports) which makes release CD generation both faster and
self-hosting.
2011-05-04 23:41:11 +00:00
nwhitehorn
7e04216c28 Use labels to find release media instead of hard-coded device paths. This
makes booting more reliable (and working at all on USB sticks). While here,
move responsibility for setting up fstab into the various platform mk-*.sh
scripts.

Suggested by:	many
2011-03-22 01:14:53 +00:00
kensmith
4bd08bd2d3 The current version of mkisofs is warning us that the -P option will
be changing with the next version, and we should be using -publisher
instead.

Also warned by:	trhodes
MFC after:	1 week
2005-01-30 21:10:52 +00:00
murray
2bc5ca0db1 Add a publisher variable with the URL for the FreeBSD Project, and put
this into the ISO headers by specifying the -P option to mkisofs.

Obtained from: share/examples/worm/makecdfs.sh
2004-07-15 09:28:03 +00:00
kris
b436785ed4 Set BATCH=yes to avoid bumping into interactivity in the port builds.
XXX /usr/ports is still hardcoded, should be ${PORTSDIR}
2004-07-12 07:59:25 +00:00
marius
0ed9fe99d5 mkisofs(8) is now installed by sysutils/cdrtools.
This will be instantly MFC'ed.
2004-06-02 22:21:15 +00:00
jhb
9f1849779c Switch to using cdboot for booting i386 CD's by default.
Approved by:	murray
2002-04-11 16:39:13 +00:00
murray
3d5a7ba605 Providing long filename support on the Macintosh requires over 30
megabytes of additional space on the install CD.  Given our premium
for space, I don't think this is a wise use of 30MB.  HFS support was
not provided on the FreeBSD 4.4 CDs and I received a grand total of 0
complaints.
2002-01-24 10:44:16 +00:00
obrien
b4610a422a Try to build mkisofs' first, and only pkg_add -r' if you cannot. 2001-09-03 20:29:21 +00:00
obrien
165aca5d8c Fix my backwards logic.
Submitted by:	dirk
2001-09-03 20:23:59 +00:00
obrien
13444b820b + do not hard code where a port may be installed to
+ uses `mkisofs' rather than `mkhybrid' as the new mkisofs is the merger
  of the two
+ checks for `setcdboot's existsance and tries to pkg_add it if needed
+ removes English contraction

Approved by:	jkh
2001-08-20 21:22:33 +00:00
jkh
845119946b Add scripts and Makefile support for building ISO images automatically
as part of the release if MAKE_ISOS is set.  Will also build the
first CD with packages (in addition to the "minimal" CD) if CD_EXTRA_BITS
points to them.  This probably need a bit more work to get fully useful,
but it at least covers the basics for now.
2001-07-23 09:01:46 +00:00