Home | :: | About | :: | Download | :: | Install | :: | Use | :: | Manual | :: | Changes |
There are some assumptions in the build process based on my personal
environment, namely that lots of stuff is present under the directory
/packages/localsrc/Tribblix
which I have as an environment
variable THOME
. You'll need THOME
set for much
of the following to work.
You'll need quite a few repositories checked out. The actual scripts
used for image construction are in the tribblix-build
repo.
cd $THOME git clone https://github.com/tribblix/tribblix-build
You'll also need to have the build
and relevant
overlay
repos.
cd $THOME git clone https://github.com/tribblix/build git clone https://github.com/tribblix/overlays git clone https://github.com/tribblix/overlays.lx git clone https://github.com/tribblix/overlays.sparc
You'll also need to have a set of
illumos and
release packages, and a local set of
packages from the build repo (those are expected to be found in
$THOME/pkgs
). If you don't want to build them yourself, then
look at zap copy-package-repo
.
Constructing an ISO needs quite a lot of things in place, so you will a dry run to validate things.
cd $THOME/tribblix-build ./make-dist -R 36 -N ./make-dist -R 36 -N minimal
Or for omnitribblix, it's:
cd $THOME/tribblix-build ./make-lx-dist -R 36 -N ./make-lx-dist -R 36 -N minimal
The -N
flag is for a dry-run.
The -R
flag specifies the release, which tells it which
illumos and release packages to include. It will always use the most
recent version of all the other packages. The check will print out
the names of all the packages it find, and hopefully it will find
everything. If it doesn't then you'll have to make sure you have
everything; the check should tell you what's missing.
There are possible variant ISO images that can be created. The most common ones are the regular ISO and the minimal/server ISO. You can create others.
The ISO image contains 2 distinct sets of packages. The first is those
installed in the live image. The second is those packages shipped in the
pkgs
directory on the ISO, so that users can install extra
overlays without hauling them over the network.
The starting list of installed packages is the core-tribblix
overlay, which is present in all images. The regular ISO also has the
base-iso
overlay which has a broad selection of device drivers;
you can build a different ISO with base-iso
replaced by another
overlay - typically this might be used to generate cloud images with the
base-cloud
overlay which has a limited set of drivers appropriate
to installation on the much more controlled cloud environment. And the
minimal
image uses base-server
rather than
base-iso
.
In the relevant overlay repo there will be a file overlays.iso
(or overlays.foo.iso
for the foo
variant). This
basically lists the overlays whose packages will be shipped on the ISO, so
to create an ISO with a specific set of overlays you can either modify the
base overlays.iso
or create your own variant.
Once the check is clean, you can build an ISO. This needs to be done
as root. And remember $THOME
won't be inherited by root.
cd /packages/localsrc/Tribblix/tribblix-build mkdir /export/tribblix/dist ./make-dist -R 36 -M 256m
or
cd /packages/localsrc/Tribblix/tribblix-build mkdir /export/tribblix/dist ./make-lx-dist -R 36 -M 252m
or
cd /packages/localsrc/Tribblix/tribblix-build mkdir /export/tribblix/dist.minimal ./make-dist -R 36 -M 276m minimal
or
cd /packages/localsrc/Tribblix/tribblix-build mkdir /export/tribblix/dist.minimal ./make-lx-dist -R 36 -M 272m minimal
What it's doing here is staging everything into
/export/tribblix/dist
or /export/tribblix/dist.minimal
and using that to create the ISO. So you can then look around in
/export/tribblix/dist
to see what it's actually installed.
Obviously, you'll need to remove (or move) an old staging area before each build.
The -M
flag specifies the size of the bootable ramdisk
image. The above values are the ones used for the m36 release. If you
install more or fewer drivers or applications into the live image, this
value will need to be adjusted. You can see it's slightly different for
each image. I try and keep it as small as reasonable to give the best
experience on small systems.
The ISO image should end up in /var/tmp
.
The simplest way of testing the image is to boot it up in bhyve. For example, as root:
zap create-zone -t bhyve \ -z bhyve1 -x 192.168.1.238 \ -I /var/tmp/tribblix-0m36.iso \ -V 8G
and then create a socket so you can see the console
socat TCP-LISTEN:5905,reuseaddr,fork UNIX-CONNECT:/export/zones/bhyve1/root/tmp/vm.vnc
then as yourself start up a vncviewer
vncviewer :5
You should be able to go through the live boot and do an install. Once that's done, you can reboot without the CD present:
zap remove-cd -z bhyve1 -r
and do the socat and vncviewer steps again to see the console as the installed system boots.