ELBE XML Reference

RootFileSystem type: rfs:RootFileSystemType

describes one elbe project. An elbe project contains the creation of a build environemt and the definition of a elbe target rootfilesystem.

TYPE: RootFileSystemType

includes all subelements to define the elbe project

Example

<RootFileSystemType>
  <initvm> rfs:initvm </initvm>
  <project> rfs:project </project>
  <target> rfs:target </target>
  <archive> base64Binary </archive>
  <debootstrappkgs> rfs:fullpkg-list </debootstrappkgs>
  <initvmpkgs> rfs:fullpkg-list </initvmpkgs>
  <initvm_sources_list> string </initvm_sources_list>
  <initvm_apt_prefs> string </initvm_apt_prefs>
  <fullpkgs> rfs:fullpkg-list </fullpkgs>
  <sources_list> string </sources_list>
  <apt_prefs> string </apt_prefs>
  <elbe_version> string </elbe_version>
</RootFileSystemType>

Element description

initvm rfs:initvm optional
Configurations that are used for creating the initvm e.g. the definition of the used debian mirrors, suite and buildtype
project rfs:project optional
Configurations that are used for creating the buildenvironment and the target rootfilesystem. e.g. the definition of the used debian mirrors.
target rfs:target optional
Configurations that are used to create the target rootfilesystem
archive base64Binary optional
tar.bz2 file that contains configuration files for the target rootfilesystem. To alter this node use elbe chg_archive and to get the content of this node elbe get_archive.
debootstrappkgs rfs:fullpkg-list
List of packages installed right after debootstrap
initvmpkgs rfs:fullpkg-list
List of packages installed right after debootstrap
initvm_sources_list string
apt sources list.
initvm_apt_prefs string
apt preferences list
fullpkgs rfs:fullpkg-list
List of packages with their versions installed on the RFS
sources_list string
apt sources list.
apt_prefs string
apt preferences list
elbe_version string
Elbe Version that was used in the last build of this file.

SIMPLE TYPE: revisionNr

is used to decide if your elbe version is compatible with the given xml file

Base Type

integer

Restrictions

minInclusive 6
maxInclusive 6

TYPE: binary-url

e.g. “http://myhost/debian /” or “http://debian.org/debian main”

Example

no sequence

TYPE: url

links to one additional debian mirror

Example

<url>
  <binary> rfs:binary-url </binary>
  <source> string </source>
  <key> string </key>
</url>

Element description

binary rfs:binary-url optional
e.g. “http://myhost/debian /” or “http://debian.org/debian main”
source string optional
e.g. “http://myhost/sources /” or “http://debian.org/debian main”
key string optional
URL of the Public Key used to sign this Repository e.g “http://myhost/key.pub” or “http://debian.linutronix.de/elbe/elbe-repo.pub

TYPE: url-list

links to additional debian mirrors

Example

<url-list>
  <url> rfs:url </url>
</url-list>

Element description

url rfs:url
describes an additional debian mirror

TYPE: mirror

specify main and additional debian mirrors

Example

<mirror>
  <primary_host> string </primary_host>
  <primary_path> string </primary_path>
  <primary_proto> string </primary_proto>
  <primary_proxy> string </primary_proxy>
  <cdrom> string </cdrom>
  <url-list> rfs:url-list </url-list>
</mirror>

Element description

primary_host string
IP address or hostname of the primary debian mirror e.g. “debian.org” without a protocol or any slash
primary_path string
base path to the debian mirror on the given host e.g. “/debian”
primary_proto string
protocol to access the primary debian mirror e.g. “http” or “ftp”
primary_proxy string
proxy to access the debian mirror e.g. “http://me:mypass@myproxy:8080
cdrom string
iso image of a cdrom/dvd with debian packages.
url-list rfs:url-list optional
additional debian repositories, e.g. for own debian packages

TYPE: initvm

describes settings that apply to the creation of the initvm

Example

<initvm>
  <buildtype> string </buildtype>
  <mirror> rfs:mirror </mirror>
  <noauth> string </noauth>
  <preference> rfs:preference </preference>
  <suite> string </suite>
  <pkg-list> rfs:pkg-list </pkg-list>
  <preseed> rfs:preseed </preseed>
  <size> string </size>
  <img> string </img>
  <portforwarding> rfs:portforwarding </portforwarding>
</initvm>

Element description

buildtype string
Default buildtype like armel, ppc, and in the future armel-virtio
mirror rfs:mirror
used debian mirrors
noauth string optional
allow installation of unsigned debian packages
preference rfs:preference optional
used for pinning of all packages TODO: example?
suite string
name of the debian suite that should be used to generate the initvm. e.g. “lenny”, “squeeze”, “sid”, ..
pkg-list rfs:pkg-list
additional packages that are installed into the initvm.
preseed rfs:preseed
Custom preseeding Values for apt
size string
size of the virtual harddisk used to run the build environment
img string
hd image backend format: raw, qcow, vmdk, …
portforwarding rfs:portforwarding
network ports of the buildenvironment that are forwarded to the host machine

TYPE: project

describes elbe project settings that apply to the creation of the target rootfilesystem and include the definition of the build environment

Example

<project>
  <name> string </name>
  <version> string </version>
  <description> string </description>
  <buildtype> string </buildtype>
  <mirror> rfs:mirror </mirror>
  <noauth> string </noauth>
  <preference> rfs:preference </preference>
  <raw-preference> rfs:raw-preference </raw-preference>
  <suite> string </suite>
  <buildimage> rfs:buildimage </buildimage>
  <preseed> rfs:preseed </preseed>
</project>

Element description

name string optional
name of the project this rootfilesystem is associated with
version string optional
version of the rootfilesystem definition
description string optional
human readable description of the project
buildtype string
Default buildtype like armel, ppc, and in the future armel-virtio
mirror rfs:mirror
used debian mirrors
noauth string optional
allow installation of unsigned debian packages
preference rfs:preference optional
used for pinning of all packages TODO: example?
raw-preference rfs:raw-preference
gets dedented and striped and is then written to /etc/apt/preferences TODO: example?
suite string
name of the debian suite that should be used to generate the buildenvironment and the rootfilesystem. e.g. “lenny”, “squeeze”, “sid”, ..
buildimage rfs:buildimage optional
reference to the buildimage which is used to generate the rootfilesystem
preseed rfs:preseed
Custom preseeding Values for apt

TYPE: preference

describes a global pinning of debian packages

Example

no sequence

TYPE: raw-preference

content is directly written to /etc/apt/preferences.

Example

no sequence

TYPE: buildimage

definition of the build environment

Example

<buildimage>
  <arch> string </arch>
  <size> string </size>
  <mem> rfs:memory </mem>
  <interpreter> string </interpreter>
  <kinitrd> string </kinitrd>
  <console> string </console>
  <machine> string </machine>
  <NIC> rfs:NIC </NIC>
  <portforwarding> rfs:portforwarding </portforwarding>
  <pkgversionlist> string </pkgversionlist>
  <pkg-list> rfs:pkg-list </pkg-list>
</buildimage>

Element description

arch string
architecture of the target system. e.g. “amd64”, “armel”, “ppc”, ..
size string
size of the virtual harddisk used to run the build environment
mem rfs:memory
amount of memory mapped into the virtual build environment
interpreter string
virtual machine interpreter, e.g. “kvm”, “qemu-system-arm”, …
kinitrd string
pkg name of the initrd/kernel package.
console string
serial console of the virtual machine, e.g. “ttyAMA0,115200n1”
machine string
virtual platform to host the build environment, e.g. “versatilepb”
NIC rfs:NIC
network interface emulation
portforwarding rfs:portforwarding
network ports of the buildenvironment that are forwarded to the host machine
pkgversionlist string
create /etc/elbe_pkglist on the target RFS. It includes all packages that include files that are used in the target. The list also contains the versions of the used packages.
pkg-list rfs:pkg-list
additional packages that are only installed into the build environment; not into the target root filesystem.

SIMPLE TYPE: memory

at least 128 MB of memory are needed to run the debian-installer

Base Type

integer

Restrictions

minInclusive 128

TYPE: NIC

describes a virtual network interface

Example

<NIC>
  <model> string </model>
  <MAC> string </MAC>
</NIC>

Element description

model string
hardware emulation of the network interface; e.g. “e1000”
MAC string
mac address of the virtual network interface

SIMPLE TYPE: fw_proto

only tcp and udp are allowed protocols for forwarding

Base Type

string

Restrictions

enumeration tcp
enumeration udp

TYPE: forward

forward a network port from the build environment to the host machine

Example

<forward>
  <proto> rfs:fw_proto </proto>
  <buildenv> integer </buildenv>
  <host> integer </host>
</forward>

Element description

proto rfs:fw_proto
network protocol to forward either “udp” or “tcp”
buildenv integer
port on the buildenvironment, e.g. “22” for ssh
host integer
port on the host machine, e.g. “10022”

TYPE: portforwarding

forward network ports from the build environment to the host machine

Example

<portforwarding>
  <forward> rfs:forward </forward>
</portforwarding>

Element description

forward rfs:forward
describes a single port forward

TYPE: target

configuration of the target rootfilesystem

Example

<target>
  <hostname> string </hostname>
  <domain> string </domain>
  <passwd> string </passwd>
  <console> string </console>
  <package> rfs:package </package>
  <images> rfs:images </images>
  <fstab> rfs:fstab </fstab>
  <tighten> string </tighten>
  <diet> string </diet>
  <setsel> string </setsel>
  <norecommend> string </norecommend>
  <finetuning> rfs:finetuning </finetuning>
  <pkg-list> rfs:pkg-list </pkg-list>
</target>

Element description

hostname string
hostname of the system
domain string
domainname of the network the target system is part of
passwd string
root password
console string
serial console for getty
package rfs:package
package rootfilesystem as a tarball, cpio or a squashfs image
images rfs:images
generate (flashable) images of the rootfilesystem
fstab rfs:fstab
specify which resources should be mounted
tighten string optional
don’t install any dependencies; just the content of the given debian packages
diet string optional
use reverse dependencies of the given debian packages to determine the rootfilesystem content; this is useful to get rid of dpkg/apt.
setsel string optional
Elbe uses dpkg --set-selections to install packages in the target. The rootfs still needs dpkg, and all dependencies need to be specified in the pkg-list. The target will contain all postinst generated scripts.
norecommend string optional
Turn off the installation of recommended Packages.
finetuning rfs:finetuning optional
apply the given commands to the target rootfilesystem
pkg-list rfs:pkg-list
install the given packages into the rootfilesystem

SIMPLE TYPE: ubi_type

a ubi volume can be either static or dynamic

Base Type

string

Restrictions

enumeration static
enumeration dynamic

TYPE: ubi

describes a ubi volume

Example

<ubi>
  <type> rfs:ubi_type </type>
  <label> string </label>
  <id> integer </id>
  <size> rfs:part_size </size>
  <binary> string </binary>
  <empty> string </empty>
</ubi>

Element description

type rfs:ubi_type
type of the ubi volume; either “static” or “dynamic”
label string
human readable name of the ubi volume (also used for mount by label)
id integer
id of the ubi volume
size rfs:part_size
size of the ubi volume
binary string
path and filename of a binary image which will be used as a source for this volume; this can be used for example to store the linux kernel in a static ubi volume
empty string
if binary is used or a label was given that is also available in the fstab this tag can be used to force the creation of an empty ubi volume.

TYPE: ubivg

container for all ubi volumes of a mtd device

Example

<ubivg>
  <label> string </label>
  <miniosize> string </miniosize>
  <maxlogicaleraseblockcount> string </maxlogicaleraseblockcount>
  <logicaleraseblocksize> string </logicaleraseblocksize>
  <physicaleraseblocksize> string </physicaleraseblocksize>
  <subpagesize> string </subpagesize>
</ubivg>

Element description

label string
human readable name; used to generate filename for the flashable image file
miniosize string
flash parameter minimal i/o size
maxlogicaleraseblockcount string
flash parameter maximum logical erase block count
logicaleraseblocksize string
flash parameter logical erase block size
physicaleraseblocksize string
flash parameter physical erase block size
subpagesize string
flash parameter subpagesize

TYPE: mtd

describes a mtd device

Example

<mtd>
  <name> string </name>
  <nr> integer </nr>
  <size> rfs:part_size </size>
  <binary> string </binary>
  <ubivg> rfs:ubivg </ubivg>
</mtd>

Element description

name string
human readable name of the mtd device
nr integer
number of the mtd device
size rfs:part_size
size of the mtd device
binary string
path and filename of a binary image which will be used as a source for this mtd device; this can be used for example to store the bootloader in the beginning of the flash (mtd0)
ubivg rfs:ubivg
if the mtd will be used to store ubi volumes, this container is used to define them

TYPE: gpthd

describes a harddisk

Example

<gpthd>
  <name> string </name>
  <size> rfs:part_size </size>
  <grub-install> string </grub-install>
  <partition> rfs:partition </partition>
</gpthd>

Element description

name string
human readable name of the harddisk, this will be used as name for the image file
size rfs:part_size
size of the harddisk
grub-install string
human readable name of the harddisk, this will be used as name for the image file
partition rfs:partition
Partition Entries of this harddisk

TYPE: msdoshd

describes a harddisk

Example

<msdoshd>
  <name> string </name>
  <size> rfs:part_size </size>
  <grub-install> string </grub-install>
  <partition> rfs:partition </partition>
</msdoshd>

Element description

name string
human readable name of the harddisk, this will be used as name for the image file
size rfs:part_size
size of the harddisk
grub-install string
human readable name of the harddisk, this will be used as name for the image file
partition rfs:partition
Partition Entries of this harddisk (max: 4)

TYPE: images

container for all storage devices of the target

Example

<images>
  <mtd> rfs:mtd </mtd>
  <msdoshd> rfs:msdoshd </msdoshd>
  <gpthd> rfs:gpthd </gpthd>
  <passno> string </passno>
</images>

Element description

mtd rfs:mtd
container for all mtd devices of the target
msdoshd rfs:msdoshd
container for Harddisks with msdos Partitionlabel.
gpthd rfs:gpthd
container for Harddisks with GPT Partitionlabel
passno string
passno order for fsck

TYPE: fs

description of a linux filesystem

Example

<fs>
  <type> rfs:fs_type </type>
  <mkfs> string </mkfs>
  <tune2fs> string </tune2fs>
  <passno> string </passno>
</fs>

Element description

type rfs:fs_type
filesystemtype, e.g. “ext3”, “ubifs”, …
mkfs string
options passed to the mkfs command
tune2fs string
options passed to the tune2fs command
passno string
passno order for fsck

TYPE: bylabel

mount storage by the label of the partition or volume

Example

<bylabel>
  <label> string </label>
  <mountpoint> string </mountpoint>
  <fs> rfs:fs </fs>
  <options> string </options>
</bylabel>

Element description

label string
label of the partition/volume to mount
mountpoint string
path in the rootfilesystem where the partition/volume is mounted
fs rfs:fs
filesystem of the partition/volume to mount
options string
options passed to the mount command

TYPE: bydev

mount virtual filesystems or other storage devices device-node

Example

<bydev>
  <source> string </source>
  <mountpoint> string </mountpoint>
  <fs> rfs:fs </fs>
  <options> string </options>
</bydev>

Element description

source string
either a device-node or “none” for virtual filesystems
mountpoint string
path in the rootfilesystem where the device or virtual filesystem is mounted
fs rfs:fs
filesystem of the device or the virtual filesystem name
options string
options passed to the mount command

TYPE: fstab

container for mounts

Example

<fstab>
  <bylabel> rfs:bylabel </bylabel>
  <bydev> rfs:bydev </bydev>
</fstab>

Element description

bylabel rfs:bylabel
describes a mount by a volume or partition label
bydev rfs:bydev
describes a mount based on a device node or a mount of a virtual filesystem like debugfs or tmpfs

TYPE: package

list of packages, each contains the hole rootfilesystem

Example

<package>
  <tar> rfs:tar </tar>
  <cpio> rfs:cpio </cpio>
  <squashfs> rfs:squashfs </squashfs>
</package>

Element description

tar rfs:tar optional
tar package of the rootfilesystem
cpio rfs:cpio optional
cpio package of the rootfilesystem
squashfs rfs:squashfs optional
squashfs image of the rootfilesystem

TYPE: tar

describes a tar package

Example

<tar>
  <name> string </name>
  <options> string </options>
</tar>

Element description

name string optional
filename of the tar package
options string optional
options passed to the tar command

TYPE: cpio

describes a cpio package

Example

<cpio>
  <name> string </name>
</cpio>

Element description

name string optional
filename of the cpio package

TYPE: squashfs

describes a squashfs image

Example

<squashfs>
  <name> string </name>
</squashfs>

Element description

name string optional
filename of the squashfs image

TYPE: partition

describes a partition of a harddisk

Example

<partition>
  <size> rfs:part_size </size>
  <label> string </label>
  <bootable> string </bootable>
  <biosgrub> string </biosgrub>
</partition>

Element description

size rfs:part_size
size of the partition
label string optional
human readable label of the partition used for mount by label and as filename for the flashable image
bootable string optional
Whether this partition is marked bootable.
biosgrub string optional
Whether this partition is marked as biosgrub partition.

SIMPLE TYPE: part_size

format of the partition size

Base Type

string

Restrictions

pa tte rn (d +(k M G kB MB GB kiB MiB GiB )? rem ain )

SIMPLE TYPE: part_nr

allow maximum 4 primary partitions

Base Type

integer

Restrictions

minInclusive 1
maxInclusive 4

SIMPLE TYPE: part_type

list of supported partition types

Base Type

string

Restrictions

enumeration linux
enumeration swap

SIMPLE TYPE: fs_type

list of supported filesystems

Base Type

string

Restrictions

enumeration ext2
enumeration ext3
enumeration ext4
enumeration xfs
enumeration ubifs
enumeration tmpfs
enumeration debugfs
enumeration configfs
enumeration devpts
enumeration proc
enumeration sysfs
enumeration vfat
enumeration btrfs

TYPE: finetuning

container for finetuning commands; these commands are executed in the root of the target filesystem after the target filesystem was created

Example

<finetuning>
</finetuning>

Element description

TYPE: adduser

describes an additional user account, the following parameters are available: shell - the login shell for the user, passwd - the password for the user and groups - a comma separated list of groups the user is member of. The value of the tag describes the login name for the account.

Example

no sequence

TYPE: cpmv

describes a copy or move of an element in the rootfilesystem

Example

no sequence

TYPE: mknod

describes a mknod operaition in finetuning

Example

no sequence

TYPE: git_src

describes a git location of a debian source package

Example

<git_src>
  <url> string </url>
  <tag> string </tag>
</git_src>

Element description

url string
url of the git repository, e.g. “git://myhost/myrepo.git”
tag string
reference to a tag in the git tree

TYPE: svn_src

describes a svn location of a debian source package

Example

<svn_src>
  <url> string </url>
  <rev> integer </rev>
</svn_src>

Element description

url string
url of the svn repository, e.g. “svn://myhost/myrepo/tags/my_tag”
rev integer
svn revision which should be checked out

TYPE: pkg

describes a debian binary package

Example

no sequence

TYPE: pkg-list

container of debian packages

Example

<pkg-list>
  <git-src> rfs:git_src </git-src>
  <svn-src> rfs:svn_src </svn-src>
  <pkg> rfs:pkg </pkg>
</pkg-list>

Element description

git-src rfs:git_src
reference to a git tree hosting a debian source package. The tree will be cloned into the build environment and dpkg-buildpackage will be called. The resulting debian package will be installed into the target rootfilesystem. Take care that all build dependencies needs to be listed inside buildenv/pkg-list at the moment.
svn-src rfs:svn_src
reference to a svn repository hosting a debian source package. The repository will be checked out into the build environment and dpkg-buildpackage will be called. The resulting debian package will be installed into the target rootfilesystem. Take care that all build dependencies needs to be listed inside buildenv/pkg-list at the moment.
pkg rfs:pkg
reference to a binary debian package which will be installed from the given mirrors into the target rootfilesystem.

TYPE: fullpkg-list

List of packages to be validated against the installed list.

Example

<fullpkg-list>
  <pkg> rfs:pkg </pkg>
</fullpkg-list>

Element description

pkg rfs:pkg
Reference to a binary debian package which is supposed to be installed.

TYPE: conf

describes a preseeding entry

Example

no sequence

TYPE: preseed

container of config entries

Example

<preseed>
  <conf> rfs:conf </conf>
</preseed>

Element description

conf rfs:conf
A config entry