This is done by using scripts (.sh), which can be found in the fli4l root directory.
The Build Script recognizes the different boot types.
The simplest call on Linux looks like this:
sh mkfli4l.sh
The actions of the build scripts are controlled by three mechanisms:
The variable BOOT_TYPE decides which action of the Build Scripts is executed:
The description of the variables in the configuration file <config>/mkfli4l.txt can be found in Chapter Control file 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
An HD pre-installation of a suitably formatted (FAT16/FAT32) CompactFlash
(in a USB cardreader) or an USB Stick can be done by using the option
--hdinstallpath <dir>
.
You are using this script at your own risk.
The necessary fli4l files will be copied onto the specified partition.
At first, run in the fli4l directory:
sh mkfli4l.sh --hdinstallpath <dir>
To run the next steps, you have to make sure:
chmod 777 /dev/brain
syslinux
fdisk
The script will ensure that this storage device is a FAT-partitioned USB-Drive. After that the boot loader and the files needed will be copied to the disk. You will get notified about success or failure.
After the build you have to execute the following:
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
Now the CF resp. USB-drive should be bootable. Don't forget to unmount the device (via umount).
An alternative configuration directory can be specified by appending its name to the end of the command line. The normal configuration directory is called config and cn be found under the fli4l root directory. This is where all fli4l packages place their configuration files. If you want to maintain more than one configuration, create another directory, i.e. hd.conf, place a copy of the configuration files there and change them according to the requirements. Here are some examples:
sh mkfli4l.sh --filesonly hd.conf sh mkfli4l.sh --no-squeeze config.test