0% found this document useful (0 votes)
2 views

Building the Live ISO — helloSystem documentation

helloSystem is a Live ISO built from FreeBSD components and custom repositories, aiming to be a true FreeBSD experience. It can be built locally or automatically via a CI system, with specific system requirements outlined for the process. Customization options are available for desktop environments, packages, and build scripts to tailor the ISO to user preferences.

Uploaded by

Amar More
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2 views

Building the Live ISO — helloSystem documentation

helloSystem is a Live ISO built from FreeBSD components and custom repositories, aiming to be a true FreeBSD experience. It can be built locally or automatically via a CI system, with specific system requirements outlined for the process. Customization options are available for desktop environments, packages, and build scripts to tailor the ISO to user preferences.

Uploaded by

Amar More
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

 / Building the Live ISO

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 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 in settings/overlays.

<name> . Substitute <name> with hello 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.

You might also like