Boot images are built using the build_boot_image command included in the development kit.
build_boot_image
[--help] Display this help and exit.
--boot_image <file> Save boot image in file.
--debug_boot_image <file> Save debug boot image in file.
--rootdisk <file> Save rootdisk in file.
[--non_secure_flash_boot_image <file>] Save non secure boot image in file.
--kernel <file> Save NFS kernel in file.
--config <file> Boot image configuration file listing IIPs.
--source <path> Path to directory containing IIPs.
--toolchain <path> Path to toolchain.
[--info <name> <value>] Set variable name=value in boot image build info.
[--iip <iip>] Include IIP in boot image.
[--architecture <arch>] Architecture to build boot image for in format
<processor>_<hw_comp> (e.g. st40_vip19x0).
[--processor <processor>] Processor (i.e. name of toolchain) to build boot image for
(e.g. st40, bcm74xx). Or specify --architecture.
[--hw_comp <hw_comp>] Hardware variant (i.e. STB model) to build boot image for
(e.g. vip19x3). Or specify --architecture.
[--goldenimage] Build a golden image.
| Parameter | Description |
|---|---|
|
Name of target architecture. Valid values are
|
|
|
Name of target processor. Is equivalent to name of toolchain. Valid values are
|
|
|
Name of hardware variant. Valid values are
|
|
| Path to the KreaTV toolchain. | |
| Build a golden image. |
| Parameter | Description |
|---|---|
| Directories in which build_boot_image can find IIPs. Subdirectories will also be searched. It is possible to specify multiple sources. | |
| IP-STB Installation Package. A more convenient way to specify packages is to use a configuration file instead. | |
| Configuration file containing IIP names and parameters. Blank lines and lines with '#' in the beginning (comments) are ignored. It is also possible to pass information values (see the --info parameter) through the configuration file. A comment line containing $<name>:<value> would be the equivalent of passing "--info <name> <value>" to build_boot_image. |
| Parameter | Description |
|---|---|
| Boot image name. | |
| Debug boot image name. A debug boot image prints information to the screen while the Motorola IP-STB is booting. | |
| Rootdisk name. A rootdisk is usually only used together with a NFS kernel to NFS boot the Motorola IP-STB. | |
| NFS kernel name. An NFS kernel is usually only used together with a rootdisk to NFS boot the Motorola IP-STB. |
| Parameter | Description |
|---|---|
| Information about the boot image. All items are added to the
Information Service using the names config.build.<name>.
It is also possible to pass information values using a configuration file, see the --config parameter. The following items are quaranteed to have a value (set by build_boot_image, but possible to override):
The following items are recommended to set:
|
Below is a description of all valid boot image config syntax constructs. Note that adding a parameter to an IIP that does not have this documented will result in a build error.
# This is a comment. Empty lines and comments are ignored.
# Below is a comment that is the equivalent of passing.
# "--info <name> <value>" to build_boot_image.
# $<name>:<value>$
# Basic format without and with parameters.
iip-name
iip-name:param1=value1,param2=value2
# Include other configs (the two "" are optional).
@include "/absolute/path/to/config"
@include "../relative/this/config"
# Extra directory to search for IIPs, in addition to the ones given to
# build_boot_image with --source. May be given several times.
@search "/external/vendor/latest"
# Instead of writing "iip-name:param1=value1,param2=value2" on a single line,
# it can be split into two lines using "::" instead of ":" the second time.
# The result is that the parameters are concatenated.
iip-name:param1=value1
iip-name::param2=value2
# Remove an IIP by placing a "-" before the IIP name.
-iip-name
# Break long lines with backslash. Spaces before the backslash and at the start
# of the next line are ignored.
iip-name:long-parameter-name=with-a-long-parameter-value- \
that-continues-on-the-next-line
# Environment variables are expanded in IIP parameters and path to include file.
iip-name:user=%USER%
@include "%HOME%/config"
# Environment variables are also expanded in the architecture list. This can be
# used to e.g. conditionally include an IIP based on the environment.
iip-name(%ARCHITECTURE%)
# A specific IIP can be include by using an absolute path.
/external/vendor/iip-name.iip:parameters
# All of the above constructs can be specified for only one or several
# architecture(s) using the syntax (arch1,arch2,...). See examples below.
# Include config only when building for VIP19x0.
@include(vip19x0) "extra/config"
# Include IIP only for VIP19x3.
iip-name(vip19x3)
# Add an extra parameter for VIP19x0 and VIP19x3.
iip-name(vip19x0,vip19x3)::param=value
# Include IIP for all platforms but VIP19x3.
iip-name
-iip-name(vip19x3)
The example below will build a boot image for a Motorola VIP19x0 with a few applications and options. The following simple configuration is used:
The following configuration file (<config>) is used:
#
#
# $configuration:example$
#
# Applications
kreatv-app-webkit-portal::cache=0
kreatv-app-webkit-portal::gfx_pixmap_memory_limit=32
kreatv-app-webkit-portal::http_secure_mode=0
kreatv-app-webkit-portal::ntp_wait_limit=5
kreatv-app-webkit-portal::startinfront
kreatv-app-webkit-portal::sys_pixmap_memory_limit=64
# Keyboard mapping
kreatv-option-kreatvinput-keymaps:pc-en
# Stream clients
kreatv-option-streamclients:basic
# Time zone
kreatv-option-tz:CET-1CEST-2,M3.5.0/02:00:00,M10.5.0/03:00:00
The example assumes that the development kit is installed in <dk>. <toolchain> contains the toolchain path. The following command will then build the boot image:
build_boot_image \
--toolchain <path> \
--source <dk> \
--boot_image ip-stb-bi-example.bin \
--architecture st40_vip19x0 \
--config <config> \
--info version 4.4.test
More boot-image config file examples and complete scripts that build boot images for Motorola IP-STBs can be found in the build_scripts directory of your KreaTV SDK.