AMIs and Azure VM images. This is particularly helpful for
testing to avoid name collisions, but also useful for cases
where a necessary rebuild is done before the date changes.
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Remove the Azure-local vm_extra_create_disk(), since we no longer
need qemu-img to convert the final VHD image to an Azure-compatible
format.
Although the waagent utility is installed from ports, create the
symlink to /usr/sbin, pending investigation on where this is
hard-coded, so it can be reported upstream. In the meantime, this
is good enough.
MFC after: 3 days
X-MFC-Needs: r284269, r284270, r284271, r284655,
r284656, r284657, r284658, r284659
X-MFC-Note: Required for 10.2-RELEASE, marcel@ has
implicit approval for the required changes
Sponsored by: The FreeBSD Foundation
While 480M is sufficient for 10-STABLE, 11-CURRENT images at
this size fail due to insufficient space.
This commit is solely for the sake of getting updated snapshot
builds out, after which I'll analyze the resulting images to
figure out what a more sane value is, even if the image size
for 11-CURRENT needs to differ from 10-STABLE.
Sponsored by: The FreeBSD Foundation
Since the images are effectively mostly zeros at 1G,
reduce the size to allow installation on smaller SD
cards, such as 512Mb.
While here, stop writing the /boot.txt file on the
WANDBOARD, which isn't used anyway.
Discussed with: imp
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
According to the manual page, '-m' should create the user home
directory, however rigorous testing suggests it does not, and
it is unclear if this is an implementation or expectation issue.
Sponsored by: The FreeBSD Foundation
Disabling soft updates journaling appears to resolve issues
with kernel panics, and may also be generally bad to have
enabled for SD cards.
Requested by: ian
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
pw(8) to set the correct /etc directory for the user/group
files.
Provided by: ian (thanks!)
MFC after: 3 days
X-MFC-with: r283894
Sponsored by: The FreeBSD Foundation
user in the userland for the target image, but creates the
user in the build chroot.
Before this is re-enabled, I want to figure out a clean way
to do this without requiring the overhead of third-party
utilities (such as qemu).
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
Reduce a number of duplicated logic.
As of this commit, this file does exactly what it is needed to do.
MFC after: 3 days
X-MFC-Note: needs all previous changes
Sponsored by: The FreeBSD Foundation
which helps control some of the arm-specific bits a bit more
cleanly (but not really 'clean').
If BOARDNAME is defined (as is in the WANDBOARD configuration
RE uses), do some magic to work with the KERNCONF and BOARDNAME
to rename the file, making it a bit more intuitive for the
consumer to determine which they need.
Yes, it is ugly, that is why there is a big warning at the top.
It is, however, still much cleaner than the now 474-line shell
script, and this Makefile produces the hierarchy needed without
much evil.
MFC after: 1 week
X-MFC-Note: needs all previous Makefile.mirror commits
Sponsored by: The FreeBSD Foundation
to sh(1).
Include xz(1)-compressed images when renaming snapshot
builds.
Use OSRELEASE in place of REVISION-BRANCH for checksum
filenames.
Sponsored by: The FreeBSD Foundation
Without this, AWS rejects subsequent image uploads of a different
architecture because the name conflicts.
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
For RE purposes, we use the default (/R within the chroot), so
this helps avoid copying files multiple times and xz(1)-compressing
additional times when not needed.
Again, this Makefile is not for general consumption.
Sponsored by: The FreeBSD Foundation
a 474-line kludge of a shell script to pre-create the directory
hierarchy on ftp-master.
This is not in any way connected to the build, and there is no
intention to do so. This only intent here is to try to make
things a little bit easier for me. But I've probably just made
things worse.
Sponsored by: The FreeBSD Foundation
Of note:
- This commit adds native FreeBSD/arm release build support without
requiring out-of-tree utilities.
- Part of this merge removes the WANDBOARD-{SOLO,DUAL,QUAD} kernel
configuration files, for which the IMX6 kernel configuration file
should be used instead.
- The resulting images have a 'freebsd' user (password 'freebsd'),
to allow ssh(1) access when console access is not available (VGA
or serial). The default 'root' user password is set to 'root'.
- The /etc/ttys file for arm images now enable both ttyv0 and ttyu0
by default.
Help from: many (boot testing, feedback, etc.)
Sponsored by: The FreeBSD Foundation
since it supports all of these board variants.
While here, remove the WANDBOARD-{QUAD,SOLO,DUAL} kernel
configuration files.
Discussed with: ian
Sponsored by: The FreeBSD Foundation
error:
root@releng2:/ # mount_msdosfs /dev/md5s1 /usr/obj/usr/src/release/WANDBOARD-QUAD/fat
mount_msdosfs: /dev/md5s1: File name too long
Sponsored by: The FreeBSD Foundation
Ian informed me a few months ago that the WANDBOARD-* kernels will
eventually be combined into one that will work across all these
boards, but for now, build them individually.
Sponsored by: The FreeBSD Foundation
standard 'install' location for other architectures), then
compress the image with xz(1), and generate the CHECKSUM
files.
Sponsored by: The FreeBSD Foundation
is necessary.
In arm_install_base(), chroot(8) when installing world
and kernel. Fix paths for fstab(5) and rc.conf(5).
Sponsored by: The FreeBSD Foundation
before attempting to mount(8) devfs. Also, create the
.OBJDIR for the 'release' target, so files end up in the
correct location.
In tools/arm.subr, fix the target device when creating the
gpart partition scheme.
Sponsored by: The FreeBSD Foundation
building arm images. This is similar to tools/vmimage.subr
used for building virtual machine disk images. By default,
only arm_create_disk() and arm_install_base() contain real
functionality here, and arm_install_uboot() must be overridden
in the arm/KERNEL.conf file.
In release.sh, make create_arm_armv6_build_release() do
something now.
In arm/BEAGLEBONE.conf, set IMAGE_SIZE, PART_SCHEME, FAT_SIZE,
FAT_TYPE, and MD_ARGS, as well as make arm_install_uboot()
functional.
Parts of this were taken from disecting a previous BEAGLEBONE
image, and other parts obtained from Crochet sources.
Sponsored by: The FreeBSD Foundation
EMBEDDEDBUILD, EMBEDDED_TARGET, EMBEDDED_TARGET_ARCH,
EMBEDDEDPORTS, and KERNEL.
In release.sh, set TARGET and TARGET_ARCH to the
EMBEDDED_* variants from the configuration file.
Sponsored by: The FreeBSD Foundation
While here, move CHROOT_* and RELEASE_* variables from
env_setup() to env_check() since they may change if
a release.conf file is used.
Sponsored by: The FreeBSD Foundation
clear the workflow:
- env_setup()
- env_check()
- chroot_setup()
- extra_chroot_setup()
- chroot_build_target()
- chroot_build_release()
There should be no functional changes at this point.
Sponsored by: The FreeBSD Foundation
sysutils/u-boot-beaglebone port:
- In arm/BEAGLEBONE.conf, set EMBEDDEDPORTS to the
sysutils/u-boot-beaglebone port.
- In arm/release.sh, remove BEAGLEBONE from setting WANT_UBOOT
- In tools/arm/crochet-BEAGLEBONE.conf, override the
beaglebone_check_uboot(), and set BEAGLEBONE_UBOOT to
/tmp/external/u-boot-beaglebone, and create symlinks to the
u-boot files in /usr/local/share/u-boot-beaglebone and the
uEnv.txt file in crochet/board/Beaglebone/files.
Sponsored by: The FreeBSD Foundation
In release.sh, allow overriding buildenv_setup() before
the handoff to arm/release.sh.
Copy arm/RPI-B.conf -> arm/RPI2.conf, set UBOOT_PORT and
the correct KERNEL, and add the buildenv_setup() override
to install the sysutils/u-boot-rpi2 port/package.
Copy tools/arm/crochet-RPI-B.conf -> tools/arm/crochet-RPI2.conf,
and set the correct entries for the RaspberryPi2 board.
Thanks to: loos@
Sponsored by: The FreeBSD Foundation
to be installed. [1]
For the cw-ec2-portinstall and ec2ami targets, touch the
.TARGET file after completion to prevent duplicate invocations.
Add cw-ec2-portinstall and ec2ami to CLEANFILES.
Submitted by: cperciva[1]
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
GPT scheme. UEFI needs to know the unique partition GUID
with GPT, which changes each time. Specifically, the QEMU
EFI BIOS file has this hard-coded.[1]
Since the GPT labels are now unavailable, unconditionally
label the root filesystem as 'rootfs' with newfs(8), since
it does not hurt anything anywhere else. For the arm64 case,
'/' is mounted from /dev/ufs/rootfs; for all other VM images,
'/' is mounted from /dev/gpt/rootfs.
Unfortunately, since the /dev/gpt/swapfs label is also lost,
set NOSWAP=1 for the arm64/aarch64 images. This is temporary,
until I figure out a scalable solution to this. But, a certain
piece of softare was written "very fast", and ended up living
for 15 years. We can deal with this for a week or so.
Information from: andrew, emaste [1]
Sponsored by: The FreeBSD Foundation
building FreeBSD/arm64 VM images and memstick.img installation
medium:
r281786, r281788, r281792:
r281786:
Add support for building arm64/aarch64 virtual machine images.
r281788:
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.
r281792:
Add a buildenv_setup() prototype, intended to be overridden as
needed.
For example, the arm64/aarch64 build needs devel/aarch64-binutils,
so buildenv_setup() in the release.conf for this architecture
handles the installation of the port before buildworld/buildkernel.
Sponsored by: The FreeBSD Foundation
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
copy the userland from one md(4)-mounted filesystem to a clean
filesystem to prevent remnants of files that were added and
removed from resulting in an unclean filesystem. When newfs(8)
creates the first filesystem with journaled soft-updates enabled,
the /.sujournal file in the new filesystem cannot be overwritten
by the /.sujournal in the original filesystem.
To avoid this particular error case, do not enable journaled
soft-updates when creating the md(4)-backed filesystems, and
instead use tunefs(8) to enable journaled soft-updates after
the new filesystem is populated in vm_copy_base().
While here, fix a long standing bug where the build environment
/boot files were used by mkimg(1) when creating the VM disk
images by using the files in .OBJDIR.
MFC after: 3 days
Sponsored by: The FreeBSD Foundation
* Remove vm_umount_base function which is currently unused.
* Add umount_loop function which loops attempting to unmount one filesystem.
* Replace calls to umount with calls to umount_loop.
* Don't attempt to unmount ${DESTDIR}/dev if it isn't mounted.
The looping is necessary because sometimes umount fails due to filesystems
being busy. The most common cause of such busyness is periodic(8) jobs
running `find / ...`.
Reviewed by: gjb
Call newfs(8) and mount the md(4) device to the target
directory.
Specify DESTDIR for installworld, distribution, and
installkernel targets.
Sponsored by: The FreeBSD Foundation
a new filesystem before packaging it into a disk image. This prevents
"remnants" of deleted files from showing up in the VM images, and reduces
their compressed size (by about 10% for the cloudware images) as a result.
Looks good to: gjb