=head1 NAME novaboot - Boots a locally compiled operating system on a remote target or in qemu =head1 SYNOPSIS B --help B [option]... [--] script... B<./script> [option]... =head1 DESCRIPTION This program makes booting of a locally compiled operating system (OS) (e.g. NOVA or Linux) on remote targets as simple as running a program locally. It automates things like copying OS images to a TFTP server, generation of bootloader configuration files, resetting of target hardware or redirection of target's serial line to stdin/out. Novaboot is highly configurable and it makes it easy to boot a single image on different targets or different images on a single target. Novaboot operation is controlled by command line options and by a so called novaboot script, which can be thought as a generalization of bootloader configuration files (see L). Typical way of using novaboot is to make the novaboot script executable and set its first line to I<#!/usr/bin/env novaboot>. Then, booting a particular OS configuration becomes the same as executing a local program - the novaboot script. Novaboot uses configuration files to, among other things, define command line options needed for different targets. Users typically use only the B<-t>/B<--target> command line option to select the target. Internally, this option expands to the pre-configured options. Configuration files are searched at multiple places, which allows to have per-system, per-user or per-project configurations. Configuration file syntax is described in section L. Simple examples of using C: =over 3 =item 1. Run an OS in Qemu. This is can be specified with the B<--qemu> option. Thus running C (or C<./myos --qemu> as described above) will run Qemu and make it boot the configuration specified in the F script. =item 2. Create a bootloader configuration file (currently supported bootloaders are GRUB, GRUB2, ISOLINUX, Pulsar and U-Boot) and copy it with all other files needed for booting to a remote boot server. Then use a TCP/IP-controlled relay/serial-to-TCP converter to reset the target and receive its serial output. ./myos --grub2 --server=192.168.1.1:/tftp --iprelay=192.168.1.2 =item 3. Run DHCP and TFTP server on developer's machine to boot the target from it. ./myos --dhcp-tftp This is useful when no network infrastructure is in place and the target is connected directly to developer's box. =item 4. Create bootable ISO image. novaboot --iso -- script1 script2 The created ISO image will have ISOLINUX bootloader installed on it and the boot menu will allow selecting between I and I configurations. =back =head1 PHASES AND OPTIONS Novaboot performs its work in several phases. Each phase can be influenced by several command line options, certain phases can be skipped. The list of phases (in the execution order) is as follows. =over =item 1. L =item 2. L =item 3. L