Building the Live ISO
helloSystem get assembled from upstream FreeBSD components, components in the FreeBSD packages system, and custom components from the helloSystem repositories.
helloSystem is not a derivative (fork) of FreeBSD (like e.g., GhostBSD), but strives to be “real FreeBSD” as far as possible. Hence, helloSystem does not build all source code, but relies on binaries provided by FreeBSD wherever possible.
helloSystem is distributed as an installable Live ISO file. This file gets built by the hello Live ISO builder.
Continuous builds of the ISO get produced automatically on a continuous integration (CI) system for each git commit.
However, it is also possible to build the ISO locally, which is especially handy for testing and development.
System requirements for building
A FreeBSD or helloSystem installed on the computer. The FreeBSD version needs to match the FreeBSD version of the helloSystem ISO being built (e.g.,
13.2-RELEASE
)2 GHz dual core processor
4 GiB RAM (system memory)
50 GB of hard-drive space
Either a CD-RW/DVD-RW drive or a USB port for writing the Live media
A fast internet connection
Building the Live ISO
$ sudo pkg install -y pkg git-lite zsync wget bash zip devel/py-xdg librsvg2 ca_root_nss
$ git clone https://github.com/helloSystem/ISO
$ cd ISO
$ sudo ./build.sh hello
The resulting Live ISO will be located at /usr/local/furybsd/iso/
.
Writing Live Media to USB drive
$ sudo dd if=/usr/local/furybsd/iso/FuryBSD-12.1-XFCE.iso of=/dev/daX bs=4m status=progress
Replace daX
with the respective device name.
Warning
This will overwrite the entire contents of the selected device. Take extra caution when determining the device name.
This operation cannot be undone.
For end users, there is the Create Live Media application that can conveniently download and write Live Media with a graphical user interface.
Burning Live Media to DVD
You can use the cdrecord
command line tool to burn Live Media to DVD.
# pkg install cdrtools
# cdrecord /usr/local/furybsd/iso/<filename>.iso
Customizing the Live ISO
helloSystem is built in a way that makes it trivially easy to apply your own changes to it.
Different desktop environments
Simply replace hello
with the name of one of the supported desktop environments, such as
cinnamon
gnome
kde
openbox
xfce
While the resulting image will be built on the same infrastructure, those will not be helloSystem builds and are not supported by the project. Still, the community may find them useful.
Customizing the set of packages
To add or remove packages, edit settings/packages.<name>
and rebuild the image. Substitute <name>
with hello
or one of the desktop environments mentioned above.
Customizing configuration
Configuration is applied using transient packages that get generated on-the-fly from the contents of the overlays/
directory.
Overlays for the boot disk are stored in
overlays/boot
Overlays for the initial ramdisk are stored in
overlays/ramdisk
Overlays for the main filesystem are stored in
overlays/uzip/<overlay>/files/
. Note that to be included in a build, the overlay called<overlay>
must be listed insettings/overlays.<name>
. Substitute<name>
withhello
or one of the desktop environments mentioned above.
For example, a file that is supposed to appear in /usr/local/bin/app
on the main filesystem could be stored in overlays/uzip/hello/files/usr/local/bin/app
.
Customizing the build script
If a file called settings/script.<name>
exists, then it will be executed during the build. Substitute <name>
with hello
or one of the desktop environments mentioned above. For building helloSystem, settings/script.hello
performs actions such as installing applications that are not coming from FreeBSD packages, setting the wallpaper, installing fonts that are not coming from FreeBSD, and so on.
All desktop-specific build steps should go into this file.