Dies geschieht mit Hilfe von Scripts (.sh), die im fli4l Wurzelverzeichnis zu finden sind.
Das Build-Script erkennt selbständig die unterschiedlichen Bootvarianten.
Der einfachste Aufruf sieht unter Linux so aus:
sh mkfli4l.sh
Die Aktionen des Build-Scripts werden durch drei Mechanismen gesteuert:
An Hand der Konfigurationsvariable BOOT_TYPE entscheidet sich, welche Aktion des Build-Scripts ausgeführt wird:
Die Beschreibung der Variablen der Konfigurationsdatei <config>/mkfli4l.txt finden Sie im Kapitel Steuerungsdatei mkfli4l.txt.
Usage: mkfli4l.sh [options] [config-dir]
-c, --clean cleanup the build-directory
-b, --build <dir> set build-directory to <dir> for the fli4l-files
-h, --help display this usage
--batch don't ask for user input
config-dir set other config-directory - default is "config"
--hdinstallpath <dir> install a pre-install environment directly to
usb/compact flash device mounted or mountable to
directory <dir> in order to start the real installation
process directly from that device
device either has to be mounted and to be writable
for the user or it has to be mountable by the user
Do not use this for regular updates!
*** Remote-Update options
--remoteupdate remote-update via scp, implies "--filesonly"
--remoteremount make /boot writable before copying files and
read only afterwards
--remoteuser <name> user name for remote-update - default is "fli4l"
--remotehost <host> hostname or IP of remote machine - default
is HOSTNAME set in [config-dir]/base.txt
--remotepath <path> pathname on remote maschine - default is "/boot"
--remoteport <portnr> portnumber of the sshd on remote maschine
*** Netboot options (only on Unix/Linux)
--tftpbootpath <path> pathname to tftpboot directory
--tftpbootimage <name> name of the generated bootimage file
--pxesubdir <path> subdirectory for pxe files relative to tftpbootpath
*** Developer options
-u, --update-ver set version to <fli4l_version>-rev<svn revision>
-v, --verbose verbose - some debug-output
-k, --kernel-pkg create a package containing all available kernel
modules and terminate afterwards.
set COMPLETE_KERNEL='yes' in config-directory/_kernel.txt
and run mkfli4l.sh again without -k to finish
--filesonly create only fli4l-files - do not create a boot-media
--no-squeeze don't compress shell scripts
--rebuild rebuild mkfli4l and related tools; needs make, gcc
Eine HD-Vorinstallation einer passend formatierten (FAT16/FAT32) CompactFlash im
USB-Cardreader oder eines USB-Sticks ist über die Option --hdinstallpath <dir> möglich.
Dieses können Sie auf eigenes Risiko zur Installation auf eine CompactFlash oder
einen USB-Stick benutzen.
Hierbei werden auf die angegebene Partition die nötigen Dateien des fli4l kopiert.
Sie rufen dazu zunächst im fli4l-Verzeichnis
sh mkfli4l.sh --hdinstallpath <dir>
Um die nächsten Schritte ausführen zu können, sind folgende Voraussetzungen zu erfüllen:
chmod 777 /dev/brain
syslinux
fdisk
Durch das Script erfolgt eine Kontrolle, ob dieser Datenträger tatsächlich ein USB-Laufwerk ist und die erste Partition eine FAT-Partition ist. Anschliessend werden der Bootloader und die nötigen Dateien auf den angegebenen Datenträger kopiert. Sie erhalten eine Meldung über den Erfolg oder Misserfolg.
Nach dem Build müssen Sie
syslinux --mbr /dev/brain
# make partition bootable using fdisk
# p - print partitions
# a - toggle bootable flag, specify number of fli4l partition
# usually '1'
# w - write changes and quit
fdisk /dev/brain
# install boot loader
syslinux -i /dev/brain
Als letzter Optionsparameter kann ein alternatives Konfigurationverzeichnis übergeben werden. Das normale Konfigurationsverzeichnis heißt config und liegt direkt im fli4l Wurzelverzeichnis. An diesem Ort legen alle fli4l Pakete die Konfigurationsdateien ab. Möchte man mehr als eine Konfiguration verwalten, so erstellt man sich ein weiteres Verzeichnis, z.B. hd.conf, legt dort eine Kopie der Konfigurationsdateien ab und verändert diese den Anforderungen entsprechend. Hier einige Beispiele:
sh mkfli4l.sh --filesonly hd.conf
sh mkfli4l.sh --no-squeeze config.test