]> rtime.felk.cvut.cz Git - novaboot.git/blobdiff - README.md
qemu is no longer hardcoded as default target
[novaboot.git] / README.md
index 1e16f59ebdebcc36f43522e34af6607118417896..8551f502c2b7a3c0fd712fdaea490addadc556a9 100644 (file)
--- a/README.md
+++ b/README.md
@@ -39,10 +39,10 @@ file syntax is described in section ["CONFIGURATION FILE"](#configuration-file).
 
 Simple examples of using `novaboot`:
 
-1. Run an OS in Qemu. This is the default action when no other action is
-specified by command line switches. Thus running `novaboot myos` (or
-`./myos` as described above) will run Qemu and make it boot the
-configuration specified in the `myos` script.
+1. Run an OS in Qemu. This is can be specified with the **--qemu** option.
+Thus running `novaboot --qemu myos` (or `./myos --qemu` as described
+above) will run Qemu and make it boot the configuration specified in
+the `myos` script.
 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
@@ -78,24 +78,34 @@ corresponding options follows.
 
 After starting, novaboot reads configuration files. Their content is
 described in section ["CONFIGURATION FILE"](#configuration-file). By default,
-configuration is read from two locations. First from the configuration
-directory and second from `.novaboot` files along the path to the
-current directory. The latter read files override settings from the
-former ones.
-
-Configuration directory is determined by the content of
+configuration is read from multiple locations. First from the system
+configuration directory (`/etc/novaboot.d/`), second from the user
+configuration file (`~/.config/novaboot`) and third from `.novaboot`
+files along the path to the current directory. Alternatively, a single
+configuration file specified with the **-c** switch or with the
+`NOVABOOT_CONFIG` environment variable is read. The latter read files
+override settings from the former ones.
+
+The system configuration directory is determined by the content of
 NOVABOOT\_CONFIG\_DIR environment variable and defaults to
 `/etc/novaboot.d`. Files in this directory with names consisting
 solely of English letters, numbers, dashes '-' and underscores '\_'
 (note that dot '.' is not included) are read in alphabetical order.
 
-Then novaboot searches for files named `.novaboot` starting from the
+Then, the user configuration file is read from
+`$XDG_CONFIG_HOME/novaboot`. If `$XDG_CONFIG_HOME` environemnt
+variable is not set `~/.config/novaboot` is read instead.
+
+Finally, novaboot searches for files named `.novaboot` starting from the
 directory of the novaboot script (or working directory, see bellow)
 and continuing upwards up to the root directory. The found
 configuration files are then read in the opposite order (i.e. from the
-root directory downwards). This allows to have, for example, user
-specific configuration in `~/.novaboot` and project specific one in
-`~/project/.novaboot`.
+root directory downwards). This allows to have, for example, a project
+specific configuration in `~/project/.novaboot`.
+
+Note the difference between `~/.config/novaboot` and `~/.novaboot`.
+The former one is read always, whereas the latter only when novaboot
+script or working directory is under the `$HOME` directory.
 
 In certain cases, the location of the novaboot script cannot be
 determined in this early phase. This happens either when the script is
@@ -122,9 +132,13 @@ instead of the novaboot script directory.
 - -t, --target=_target_
 
     This option serves as a user configurable shortcut for other novaboot
-    options. The effect of this option is the same as the options stored
-    in the `%targets` configuration variable under key _target_. See
-    also ["CONFIGURATION FILE"](#configuration-file).
+    options. The effect of this option is the same as specifying the
+    options stored in the `%targets` configuration variable under key
+    _target_. See also ["CONFIGURATION FILE"](#configuration-file).
+
+    When this option is not given, novaboot tries to determine the target
+    to use from either **NOVABOOT\_TARGET** environment variable or from
+    **$default\_target** configuration file variable.
 
 ## Script preprocessing phase
 
@@ -320,8 +334,15 @@ user/instance.
 
 - --remote-expect=_string_
 
-    Wait for reception of _string_ after establishing the the remote
-    connection before continuing.
+    Wait for reception of _string_ after establishing the remote
+    connection.
+
+- --remote-expect-silent=_string_
+
+    The same as **--remote-expect** except that the remote output is not
+    echoed to stdout while waiting for the _string_. Everything after the
+    matched string is printed to stdout, so you may want to include line
+    end characters in the _string_ as well.
 
 ## File deployment phase
 
@@ -428,7 +449,7 @@ can currently be accomplished by the following options: **--amt**,
 
 - --no-reset, --reset
 
-    Disable/enable reseting of the target.
+    Disable/enable resetting of the target.
 
 ## Interaction with the bootloader on the target
 
@@ -440,6 +461,10 @@ can currently be accomplished by the following options: **--amt**,
     Implementation of this option is currently tied to a particular board
     that we use. It may be subject to changes in the future!
 
+- --no-uboot
+
+    Disable U-Boot interaction previously enabled with **--uboot**.
+
 - --uboot-init
 
     Command(s) to send the U-Boot bootloader before loading the images and
@@ -458,6 +483,21 @@ can currently be accomplished by the following options: **--amt**,
     where name is one of _kernel_, _ramdisk_ or _fdt_ (flattened device
     tree).
 
+    The default addresses are ${_name_\_addr\_r}, i.e. U-Boot environment
+    variables used by convention for this purpose.
+
+- --uboot-cmd=_command_
+
+    Specifies U-Boot command used to execute the OS. If the command
+    contains strings `$kernel_addr`, `$ramdisk_addr`, `$fdt_addr`,
+    these are replaced with the addresses configured with **--uboot-addr**.
+
+    The default value is
+
+        bootm $kernel_addr $ramdisk_addr $fdt_addr
+
+    or the `UBOOT_CMD` variable if defined in the novaboot script.
+
 ## Target interaction phase
 
 In this phase, target's serial output is redirected to stdout and if
@@ -494,6 +534,11 @@ interactive work with the target.
     to the target and does no longer interrupt novaboot. Use "~~."
     sequence to exit novaboot.
 
+- --no-interaction, --interaction
+
+    Skip resp. force target interaction phase. When skipped, novaboot exits
+    immediately when boot is initiated.
+
 - --expect=_string_
 
     When _string_ is received from the target, send the string specified
@@ -640,6 +685,10 @@ The following variables are interpreted in the novaboot script:
 
     Use specific qemu flags (can be overridden with **-q**).
 
+- UBOOT\_CMD
+
+    See ["--uboot-cmd"](#uboot-cmd).
+
 - WVDESC
 
     Description of the WvTest-compliant program.
@@ -654,14 +703,16 @@ The following variables are interpreted in the novaboot script:
 # CONFIGURATION FILE
 
 Novaboot can read its configuration from one or more files. By
-default, novaboot looks for files named `.novaboot` as described in
+default, novaboot looks for files in `/etc/novaboot.d`, file
+`~/.config/novaboot` and files named `.novaboot` as described in
 ["Configuration reading phase"](#configuration-reading-phase). Alternatively, configuration file
 location can be specified with the **-c** switch or with the
 NOVABOOT\_CONFIG environment variable. The configuration file has Perl
-syntax and should set values of certain Perl variables. The current
-configuration can be dumped with the **--dump-config** switch. Some
-configuration variables can be overridden by environment variables
-(see below) or by command line switches.
+syntax (i.e. it is better to put `1;` as the last line) and should set
+values of certain Perl variables. The current configuration can be
+dumped with the **--dump-config** switch. Some configuration variables
+can be overridden by environment variables (see below) or by command
+line switches.
 
 Supported configuration variables include:
 
@@ -673,7 +724,8 @@ Supported configuration variables include:
 - $default\_target
 
     Default target (see below) to use when no target is explicitly
-    specified on command line with the **--target** option.
+    specified with the **--target** command line option or
+    **NOVABOOT\_TARGET** environment variable.
 
 - %targets
 
@@ -705,6 +757,12 @@ override the environment variables.
     Name of the novaboot configuration directory. When not specified
     `/etc/novaboot.d` is used.
 
+- NOVABOOT\_TARGET
+
+    Name of the novaboot target to use. This overrides the value of
+    **$default\_target** from the configuration file and can be overriden
+    with the **--target** command line option.
+
 - NOVABOOT\_BENDER
 
     Defining this variable has the same meaning as **--bender** option.