summaryrefslogtreecommitdiff
path: root/distribution
diff options
context:
space:
mode:
authorManuel Traut <manut@linutronix.de>2015-07-01 16:12:36 +0200
committerManuel Traut <manut@linutronix.de>2015-07-01 16:12:36 +0200
commit1d13e674d7be4bf9aa69139deac6737bf60af17b (patch)
tree5cacf42d37efa861d2487efa4585e4eb3b99d7ae /distribution
parent6723cb895ae583ed95724a5d3d7acab756340263 (diff)
rework elbe training stuff to match current elbe
also delete presentations that are completely outdated and rename presentations to better identify their content Signed-off-by: Manuel Traut <manut@linutronix.de>
Diffstat (limited to 'distribution')
-rw-r--r--distribution/Kconfig8
-rw-r--r--distribution/elbe-adk/Kconfig5
-rw-r--r--distribution/elbe-adk/Makefile1
-rw-r--r--distribution/elbe-adk/mini.xml (renamed from distribution/elbe-example/mini.xml)0
-rw-r--r--distribution/elbe-adk/myapp/AUTHORS (renamed from distribution/elbe-example/myapp/AUTHORS)0
-rw-r--r--distribution/elbe-adk/myapp/ChangeLog (renamed from distribution/elbe-example/myapp/ChangeLog)0
-rw-r--r--distribution/elbe-adk/myapp/Makefile.am (renamed from distribution/elbe-example/myapp/Makefile.am)0
-rw-r--r--distribution/elbe-adk/myapp/NEWS (renamed from distribution/elbe-example/myapp/NEWS)0
-rw-r--r--distribution/elbe-adk/myapp/README (renamed from distribution/elbe-example/myapp/README)0
-rwxr-xr-xdistribution/elbe-adk/myapp/autogen.sh (renamed from distribution/elbe-example/myapp/autogen.sh)0
-rw-r--r--distribution/elbe-adk/myapp/configure.ac (renamed from distribution/elbe-example/myapp/configure.ac)0
-rw-r--r--distribution/elbe-adk/myapp/myapp.c (renamed from distribution/elbe-example/myapp/myapp.c)0
-rw-r--r--distribution/elbe-adk/myrepo/conf/distributions (renamed from distribution/elbe-example/myrepo/conf/distributions)0
-rw-r--r--distribution/elbe-adk/myrepo/conf/updates (renamed from distribution/elbe-example/myrepo/conf/updates)0
-rw-r--r--distribution/elbe-adk/pres_elbe-adk_en.tex (renamed from distribution/elbe-example/pres_elbe-example_en.tex)4
-rw-r--r--distribution/elbe-commands/Kconfig5
-rw-r--r--distribution/elbe-commands/Makefile1
-rw-r--r--distribution/elbe-commands/pres_elbe-commands_en.tex257
-rw-r--r--distribution/elbe-devel/Kconfig5
-rw-r--r--distribution/elbe-example/Kconfig5
-rw-r--r--distribution/elbe-example/Makefile1
-rw-r--r--distribution/elbe-internals/Kconfig5
-rw-r--r--distribution/elbe-internals/Makefile1
-rw-r--r--distribution/elbe-internals/pres_elbe-devel_en.tex602
-rw-r--r--distribution/elbe-marketing/Kconfig (renamed from distribution/elbe/Kconfig)2
-rw-r--r--distribution/elbe-marketing/Makefile1
-rw-r--r--distribution/elbe-marketing/elbe-logo.png (renamed from distribution/elbe/elbe-logo.png)bin9018 -> 9018 bytes
-rw-r--r--distribution/elbe-marketing/pres_elbe-marketing.tex (renamed from distribution/elbe/pres_elbe.tex)0
-rw-r--r--distribution/elbe-overview/pres_elbe-overview_en.tex38
-rw-r--r--distribution/elbe-usage/Kconfig5
-rw-r--r--distribution/elbe-usage/Makefile1
-rw-r--r--distribution/elbe-usage/pres_elbe-usage_en.tex550
-rw-r--r--distribution/elbe/Makefile1
33 files changed, 287 insertions, 1211 deletions
diff --git a/distribution/Kconfig b/distribution/Kconfig
index 9ad9518..1cc108e 100644
--- a/distribution/Kconfig
+++ b/distribution/Kconfig
@@ -2,12 +2,10 @@ menuconfig ELBE
bool "Elbe build system"
if ELBE
- source "distribution/elbe-devel/Kconfig"
- source "distribution/elbe-usage/Kconfig"
+ source "distribution/elbe-commands/Kconfig"
source "distribution/debian/Kconfig"
- source "distribution/elbe/Kconfig"
- source "distribution/elbe-internals/Kconfig"
- source "distribution/elbe-example/Kconfig"
+ source "distribution/elbe-marketing/Kconfig"
+ source "distribution/elbe-adk/Kconfig"
source "distribution/elbe-overview/Kconfig"
endif
diff --git a/distribution/elbe-adk/Kconfig b/distribution/elbe-adk/Kconfig
new file mode 100644
index 0000000..e44a76b
--- /dev/null
+++ b/distribution/elbe-adk/Kconfig
@@ -0,0 +1,5 @@
+config ELBE_ADK
+ bool "ELBE ADK"
+ default y
+ help
+ Example how to use the elbe adk
diff --git a/distribution/elbe-adk/Makefile b/distribution/elbe-adk/Makefile
new file mode 100644
index 0000000..f768656
--- /dev/null
+++ b/distribution/elbe-adk/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_ELBE_ADK) += pres_elbe-adk_en.pdf
diff --git a/distribution/elbe-example/mini.xml b/distribution/elbe-adk/mini.xml
index 956ffc9..956ffc9 100644
--- a/distribution/elbe-example/mini.xml
+++ b/distribution/elbe-adk/mini.xml
diff --git a/distribution/elbe-example/myapp/AUTHORS b/distribution/elbe-adk/myapp/AUTHORS
index e69de29..e69de29 100644
--- a/distribution/elbe-example/myapp/AUTHORS
+++ b/distribution/elbe-adk/myapp/AUTHORS
diff --git a/distribution/elbe-example/myapp/ChangeLog b/distribution/elbe-adk/myapp/ChangeLog
index e69de29..e69de29 100644
--- a/distribution/elbe-example/myapp/ChangeLog
+++ b/distribution/elbe-adk/myapp/ChangeLog
diff --git a/distribution/elbe-example/myapp/Makefile.am b/distribution/elbe-adk/myapp/Makefile.am
index 73ff4e8..73ff4e8 100644
--- a/distribution/elbe-example/myapp/Makefile.am
+++ b/distribution/elbe-adk/myapp/Makefile.am
diff --git a/distribution/elbe-example/myapp/NEWS b/distribution/elbe-adk/myapp/NEWS
index e69de29..e69de29 100644
--- a/distribution/elbe-example/myapp/NEWS
+++ b/distribution/elbe-adk/myapp/NEWS
diff --git a/distribution/elbe-example/myapp/README b/distribution/elbe-adk/myapp/README
index e69de29..e69de29 100644
--- a/distribution/elbe-example/myapp/README
+++ b/distribution/elbe-adk/myapp/README
diff --git a/distribution/elbe-example/myapp/autogen.sh b/distribution/elbe-adk/myapp/autogen.sh
index 9088512..9088512 100755
--- a/distribution/elbe-example/myapp/autogen.sh
+++ b/distribution/elbe-adk/myapp/autogen.sh
diff --git a/distribution/elbe-example/myapp/configure.ac b/distribution/elbe-adk/myapp/configure.ac
index 109e8ea..109e8ea 100644
--- a/distribution/elbe-example/myapp/configure.ac
+++ b/distribution/elbe-adk/myapp/configure.ac
diff --git a/distribution/elbe-example/myapp/myapp.c b/distribution/elbe-adk/myapp/myapp.c
index 4e39438..4e39438 100644
--- a/distribution/elbe-example/myapp/myapp.c
+++ b/distribution/elbe-adk/myapp/myapp.c
diff --git a/distribution/elbe-example/myrepo/conf/distributions b/distribution/elbe-adk/myrepo/conf/distributions
index 9cd8d3b..9cd8d3b 100644
--- a/distribution/elbe-example/myrepo/conf/distributions
+++ b/distribution/elbe-adk/myrepo/conf/distributions
diff --git a/distribution/elbe-example/myrepo/conf/updates b/distribution/elbe-adk/myrepo/conf/updates
index e8df2b1..e8df2b1 100644
--- a/distribution/elbe-example/myrepo/conf/updates
+++ b/distribution/elbe-adk/myrepo/conf/updates
diff --git a/distribution/elbe-example/pres_elbe-example_en.tex b/distribution/elbe-adk/pres_elbe-adk_en.tex
index dd39b24..4e9fc1a 100644
--- a/distribution/elbe-example/pres_elbe-example_en.tex
+++ b/distribution/elbe-adk/pres_elbe-adk_en.tex
@@ -1,6 +1,6 @@
\input{configpres}
-\title{ELBE example}
+\title{ELBE ADK example}
\maketitle
\subsection{What will be done?}
@@ -272,7 +272,7 @@ $ sudo rsync -av --exclude=db --exclude=conf * \
\frametitle{build debian package inside the buildenv}
\begin{lstlisting}
# login to elbe-initvm
-$ make run-con
+$ elbe initvm attach (login: root, password: root)
\end{lstlisting}
change into buildenv and configure apt to use myrepo
\begin{lstlisting}
diff --git a/distribution/elbe-commands/Kconfig b/distribution/elbe-commands/Kconfig
new file mode 100644
index 0000000..4214f92
--- /dev/null
+++ b/distribution/elbe-commands/Kconfig
@@ -0,0 +1,5 @@
+config ELBE_COMMANDS
+ bool "ELBE subcommand overview"
+ default y
+ help
+ Papers about ELBE usage
diff --git a/distribution/elbe-commands/Makefile b/distribution/elbe-commands/Makefile
new file mode 100644
index 0000000..3d44c95
--- /dev/null
+++ b/distribution/elbe-commands/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_ELBE_COMMANDS) += pres_elbe-commands_en.pdf
diff --git a/distribution/elbe-commands/pres_elbe-commands_en.tex b/distribution/elbe-commands/pres_elbe-commands_en.tex
new file mode 100644
index 0000000..4a91e4f
--- /dev/null
+++ b/distribution/elbe-commands/pres_elbe-commands_en.tex
@@ -0,0 +1,257 @@
+\input{configpres}
+
+\title{ELBE - subcommands}
+\maketitle
+
+\subsection{ELBE commands}
+
+\begin{frame}
+\frametitle{Documentation}
+\begin{itemize}
+\item Have a look at /usr/share/doc/elbe/
+\item Please read /usr/share/doc/elbe/elbeoverview-en.html
+\item There are man pages e.g. 'man elbe', 'man elbe-control', \dots
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{create project}
+Create a new project:
+\begin{verbatim}
+$ elbe initvm create \
+ --directory /home/user/elbe-initvm
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{attach/start initvm}
+attach to running vm:
+\begin{verbatim}
+$ elbe initvm attach
+\end{verbatim}
+start the vm (e.g. after host PC reboot):
+\begin{verbatim}
+$ cd /home/user/elbe-initvm
+$ elbe initvm start
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{start build}
+\begin{verbatim}
+$ cp /usr/share/doc/elbe-doc/examples/bbb-jessie.xml.gz .
+$ gunzip bbb-jessie.xml.gz
+$ elbe initvm submit --build-bin --build-sources bbb-jessie.xml
+Build started, waiting till it finishes
+project still busy, waiting
+project still busy, waiting
+...
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{generated files}
+\begin{verbatim}
+$ ls elbe-build-$DATE
+bin-cdrom.iso
+elbe-report.txt
+log.txt
+licence.txt
+sdcard.img
+source.xml
+src-cdrom.iso
+validation.txt
+\end{verbatim}
+\end{frame}
+
+\begin{frame}
+\frametitle{bin-cdrom.iso}
+\begin{itemize}
+\item ISO image that contains all used binary debian packages
+\item it is only created if the --build-bin switch was provided at elbe initvm submit
+\item a rebuild of the initvm and target image can be done with this cdrom and
+ without a connection to a debian repository.
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{elbe-report.txt}
+\begin{itemize}
+\item elbe report containing informations about used packages, finetuning, etc
+\item 'asciidoc elbe-report.txt' generates a html file
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{log.txt}
+\begin{itemize}
+\item logfile from the image build process in asciidoc format
+\item 'asciidoc log.txt' generates a html file
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{licence.txt}
+\begin{itemize}
+\item contains the licence text of all used debian packages
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{sdcard.img}
+\begin{itemize}
+\item Images or archives containing the target RFS
+\item The 'target' section in the XML file describes which image and archive
+ files are created; the 'fstab' section describes their content.
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{source.xml}
+\begin{itemize}
+\item based on the XML file given to 'elbe create'
+\item added a 'fullpkgs' section containing informations about all installed
+ packages and their version
+\item added a 'sources\_list' section that contains the used mirrors
+\item added a 'apt\_prefs' section that contains the pinning settings
+\item added a 'elbe\_version' section that contains the version number of
+ the elbe tool that generated the file
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{src-cdrom.iso}
+\begin{itemize}
+\item ISO image that contains all used source debian packages
+\item it is only created if the --build-source switch was provided at elbe initvm submit
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\frametitle{validation.txt}
+\begin{itemize}
+\item if elbe create was called with a XML file containing a 'fullpkgs' section
+ the file contains informations if a package version differs
+\item if a package in the 'pkg-list' was not found on one of the mirrors this
+ will be logged in this file
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{elbe-setsel usage}
+\begin{enumerate}
+\item Create package list:
+\begin{verbatim}
+# remove all pkgs not wanted on the target
+target$ dpkg --purge vim-nox libxml2-dev
+# export installed package list
+target$ dpkg --get-selections > selections.list
+# copy list to hostpc
+target$ scp selections.list YOURPC:/tmp
+\end{verbatim}
+\item Import the package list to your xml file:
+\begin{verbatim}
+hostpc$ elbe setsel rfs.xml /tmp/selections.list
+\end{verbatim}
+\end{enumerate}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{initvm and target image build from a binary CDROM}
+\begin{verbatim}
+$ elbe initvm create --directory=elbe-from-cd \
+ elbe/elbe-build-$DATE/bin-cdrom.iso
+\end{verbatim}
+This command builds an initvm and the target image without using 'http'
+repositories.
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{elbe-chg\_archive}
+It is possible to include an archive into the xml file, that is unpacked into
+the target RFS before and after the finetuning step:
+\begin{verbatim}
+$ mkdir archive/testd
+$ cd archive
+$ echo 'port = 1234' > archive/testd/myconfig
+$ sudo tar cjf ../archive.tar.bz2 *
+$ cd ..
+$ elbe chg_archive <xmlfile> archive.tar.bz2
+\end{verbatim}
+NOTE: The file must be a bzip2 compressed tar (.tar.bz2)
+
+Take care on access right and owners of the files.
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{elbe-get\_archive}
+It is also possible to extract an archive from an XML file:
+\begin{verbatim}
+$ elbe get_archive <xmlfile> <archive>
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{elbe-show}
+The elbe show command prints out some textual information about an
+ELBE xml file:
+\begin{verbatim}
+$ elbe show --verbose arm-example.xml
+== arm-example.xml: ARMexample - version 08.15 ==
+Debian suite: wheezy/armel
+[...]
+\end{verbatim}
+The '--verbose' parameter shows more informations, like the complete package
+list.
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{elbe-checkupdates}
+Use a source.xml file to check if there are updates available for an existing
+image:
+\begin{verbatim}
+$ elbe check_updates source.xml
+checking /home/user/rfs/build-release/source.xml
+armel
+Reading package lists... Done
+Building dependency tree... Done
+Reading package lists... Done
+Building dependency tree... Done
+adduser 3.113+nmu1 != 3.113+nmu3
+1 updates required
+\end{verbatim}
+This can be used e.g. as cronjob to get notifications if updates are availabe.
+
+Than the person responsible for updates can decide what needs to be done.
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{elbe-diff}
+compares to RFS trees and suggests commands to update the archive tar and a
+'finetuning' section:
+\begin{verbatim}
+$ sudo elbe diff rfs rfs-modified
+suggesting:
+
+<rm>/etc/init.d/mountall-bootclean.sh</rm>
+<rm>/etc/init.d/bootmisc.sh</rm>
+tar rf archive.tar -C build/rfs /sbin/dhclient-script
+tar rf archive.tar -C build/rfs /etc/init.d/mountfstab.sh
+\end{verbatim}
+This can be used if a (nfsroot) filesystem was modified and these modifications
+should be included in an ELBE XML file.
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{elbe-pkgdiff}
+compares to RFS trees and displays the difference of the installed packages
+\begin{verbatim}
+$ sudo elbe pkgdiff `pwd`/rfs `pwd`/rfs-modified
+-<pkg>firmware-ivtv</pkg>
+-<pkg>firmware-ipw2x00</pkg>
+\end{verbatim}
+This can be used if a (nfsroot) filesystem was modified and these modifications
+should be included in an ELBE XML file.
+\end{frame}
+
+\input{tailpres}
diff --git a/distribution/elbe-devel/Kconfig b/distribution/elbe-devel/Kconfig
deleted file mode 100644
index 59cde6d..0000000
--- a/distribution/elbe-devel/Kconfig
+++ /dev/null
@@ -1,5 +0,0 @@
-config ELBE_DEVEL
- bool "ELBE development papers"
- default y
- help
- Papers about ELBE development
diff --git a/distribution/elbe-example/Kconfig b/distribution/elbe-example/Kconfig
deleted file mode 100644
index e70c6d1..0000000
--- a/distribution/elbe-example/Kconfig
+++ /dev/null
@@ -1,5 +0,0 @@
-config ELBE_EXAMPLE
- bool "ELBE example"
- default y
- help
- Example project for ELBE
diff --git a/distribution/elbe-example/Makefile b/distribution/elbe-example/Makefile
deleted file mode 100644
index 26f94cc..0000000
--- a/distribution/elbe-example/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_ELBE_EXAMPLE) += pres_elbe-example_en.pdf
diff --git a/distribution/elbe-internals/Kconfig b/distribution/elbe-internals/Kconfig
deleted file mode 100644
index 7ff8e67..0000000
--- a/distribution/elbe-internals/Kconfig
+++ /dev/null
@@ -1,5 +0,0 @@
-config ELBE_INTERNALS
- bool "Internal information about ELBE"
- default y
- help
- Internal information and technical details about ELBE
diff --git a/distribution/elbe-internals/Makefile b/distribution/elbe-internals/Makefile
deleted file mode 100644
index 3649901..0000000
--- a/distribution/elbe-internals/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_ELBE_INTERNALS) += pres_elbe-devel_en.pdf
diff --git a/distribution/elbe-internals/pres_elbe-devel_en.tex b/distribution/elbe-internals/pres_elbe-devel_en.tex
deleted file mode 100644
index c57ad47..0000000
--- a/distribution/elbe-internals/pres_elbe-devel_en.tex
+++ /dev/null
@@ -1,602 +0,0 @@
-\input{configpres}
-
-\lstset{language=bash}
-
-\title{ELBE internals}
-\maketitle
-
-
-\subsection{source repository}
-
-\begin{frame}[fragile]
-\frametitle{source tree}
-
-ELBE development is hosted on github:
-\begin{lstlisting}
-https://github.com/Linutronix/elbe
-\end{lstlisting}
-
-Use git to retrieve the source:
-\begin{lstlisting}
-git clone git://github.com/Linutronix/elbe.git
-\end{lstlisting}
-
-\begin{lstlisting}
-.
-|-- debian/ # debian packaging
-|-- docs/ # man pages, dia files, overview
-|-- elbe # python script calling several scripts from ./elbepack
-|-- elbepack/ # implementation of elbe subcommands like 'create'
-| |-- mako/ # script and config file templates for the buildenv
-|-- examples/ # example XML files
-|-- Makefile # calls dpkg-buildpackage to generate a debian package
-|-- README # short introduction to ELBE
-+-- setup.py # python typical setup script
-\end{lstlisting}
-
-\end{frame}
-
-\subsection{elbepack/create.py}
-
-\begin{frame}
-\frametitle{create an elbe project}
-\begin{itemize}
-\item the 'elbe create' command is implemented
-
-at elbepack/create.py
-\item create.py has one mandotary parameter:
-
-path and name of an elbe xml file
-\item create.py accepts optional parameters
-
-that are parsed by OptionParser
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{xml validation}
-\begin{itemize}
-\item verifies given xml file against elbepack/dbsfed.xsd
-\item we try to do as much checks as posible with the schema
-\item normaly there are no further checks inside the python code
-\item validation can be skipped by --skip-validation parameter
-\item elbepack/validate.py is used to verify the schema
-\item elbepack/validate.py can be also called directly:
-
-'elbe validate examples/amd64-example.xml'
-\item elbepack/validate.py uses etree from lxml
-
-to verify the schema
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{create build directory}
-\begin{itemize}
-\item creates a directory named 'build'
-
-at the current working directory
-\item name can be overridden by --directory parameter
-\item the buildenvironment will be created inside this directory
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{the debian-installer (d-i)}
-\begin{itemize}
-\item the d-i needs a running linux system
-\item the debian project distributes the d-i in different packages:
- e.g. as a bootable cd or for use with pxeboot
-\item all packages include at least
-\begin{itemize}
-\item one Linux kernel binary
-\item and an initial ramdisk with a minimal rfs and the d-i application
-\end{itemize}
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{d-i common use}
-\begin{itemize}
-\item d-i is started on the system debian should be installed on
-\item d-i does
-\begin{itemize}
-\item disk detection / partitioning
-\item sw installation
-\item system configuration
-\end{itemize}
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{elbe kinitrd packages}
-\begin{itemize}
-\item the elbe project has packaged the d-i used by elbe as binary debian packages
-\begin{lstlisting}
-elbe-bootstrap_0.1_armel
-|- opt
-| +-elbe
-| +-initrd
-| +-initrd-cdrom.gz
-| +-initrd.gz
-| +-vmlinuz
-\end{lstlisting}
-\item the name of the debian package is specified by the 'kinitrd' tag inside the
- xml file
-\item current packages are called elbe-bootstrap and are available at the debian
-repository:
-\begin{lstlisting}
-deb http://debian.linutronix.de/elbe wheezy main
-\end{lstlisting}
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{retrieve kinitrd}
-\begin{itemize}
-\item elbepack/pkgutils.py:copy\_kinitrd()
-
-is called by elbepack/create.py
-\item the pkgutils module uses python virtapt
-
-to retrieve the kinitrd package
-
-from a mirror or cdrom specified in the xml file
-\item virtapt takes care on using
-
-the correct debian architecture and suite
-\item the kinitrd package will be extracted
-
-and copied to the build directory
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}[fragile]
-\frametitle{mako}
-Mako is a template library written in Python.
-
-It can be used to generate files from templates.
-
-It is normally used to generate webpages.
-
-Documentation and more informations can be found on
-\begin{lstlisting}
-http://www.makotemplates.org/
-\end{lstlisting}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{create Makefile, scripts and config files}
-ELBE uses
-\begin{lstlisting}
-d = {"opt": opt,
- "xml": xml,
- "prj": xml.node("/project"),
- "tgt": xml.node("/target"),
- "pkgs": xml.node("/target/pkg-list"),
- "fine": xml.node("/finetuning"),
- "preseed": get_preseed(xml) }
-...
-mako.Template(filename=fname).render(**d)
-\end{lstlisting}
-to insert several values from the XML file into scripts and configfiles.
-\begin{description}
-\item[fname] the function is called for each *.mako file in elbepack/mako
-\item[d] refers to several lxml.etree XML nodes
-\item[xml] is a etree initialized with the ELBE XML file
-\end{description}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{create Makefile, scripts and config files}
-For example a simple txt file including all package names defined in the
-$\langle$pkg-list$\rangle$ tag can be created by (pkg-list.mako):
-\begin{lstlisting}
-% for n in pkgs:
-% if n.tag == "pkg":
-${n.et.text}
-% endif
-% endfor
-\end{lstlisting}
-\end{frame}
-
-
-\begin{frame}
-\frametitle{preseeding}
-Preseeding provides a way to set answers to questions asked during the
-installation process, without having to manually enter the answers while
-the installation is running.
-\end{frame}
-
-\begin{frame}
-\frametitle{preseeding}
-Many pre-seeding rules are generated
-
-from the XML file with mako:
-
-./elbepack/mako/common.cfg.mako
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{preseeding}
-Project specific preseeding rules can be added to the xml file.
-These rules are then included by ./elbepack/mako/custom-preseed.cfg.mako
-\end{frame}
-
-
-\subsection{Makefile (pre-install)}
-
-\begin{frame}
-\frametitle{initrd.gz modification}
-\begin{itemize}
-\item a directory tmp-tree is created
-\item all files and scripts needed inside the installer
-
-are copied to the tmp-tree
-\item ungzip the original initrd.gz
-\item use cpio to append all files of tmp-tree
-
-to the unzipped initrd image
-\item gzip the new initrd image and remove the tmp-tree
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{create buildenv.img}
-\begin{itemize}
-\item qemu-img is used to create a buildenv.img file. This file will be used as
-harddisk of the emulated virtual machine.
-\item The debian-installer will install
-
-a full featured debian on this image.
-\item After the debian-installer was active,
-
-this image can be used as a virtual build-environment.
-\item The target rootfilesystem is normally
-
-just a subset of this image.
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{start emulator}
-\begin{itemize}
-\item the cmdline to start the emulator depends on several specifications made
-in the XML file:
-\begin{lstlisting}
-..
- ${prj.text("buildimage/interpreter")} \
- -M ${prj.text("buildimage/machine")} \
- -drive file=buildenv.img,if=${hd_type},bus=1,unit=0 \
-% if prj.has("mirror/cdrom"):
- -drive file=${prj.text("mirror/cdrom")},if=${cdrom_type},media=cdrom,bus=1,unit=1 \
-% endif
- -kernel vmlinuz \
- -initrd initrd-preseeded.gz \
- -append 'root=/dev/${hd_name} debconf_priority=critical console=${prj.text("buildimage/console")} DEBIAN_FRONTEND=newt' \
- -no-reboot \
- -net nic,vlan=1,model=${prj.text("buildimage/NIC/model")},macaddr="${prj.text('buildimage/NIC/MAC')}" \
- -net user,vlan=1 \
- -m $(MEMSIZE) \
- -usb && reset
-..
-\end{lstlisting}
-\end{itemize}
-\end{frame}
-
-\subsection{debian-installer in emulator}
-
-\begin{frame}
-\frametitle{an ordinary debian installation}
-runs inside the virtual machine:
-\begin{itemize}
-\item the buildenv.img will be partitionated and formated
-\item the root partition will be mounted at
-
-/target inside the debian-installer rfs
-\item a minimal rootfilesystem will be installed to /target
-\item a chroot /target will be executed
-\item all packages will be installed and configured
-\item the /target chroot will be left
-\item the preseed hook
-
-d-i preseed/late\_command string /post-inst.sh
-
-will be executed
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}
-\frametitle{post-inst.sh}
-\begin{description}
-\item [cp-scipts-into-buildenv.sh] copy all (generated) scripts
-
-from the initrd (/)
-
-to the buildenv.img (/target/opt/elbe)
-
-\item [changeroot-into-buildenv.sh] chroot into /target again,
-
-trigger target (/opt/elbe/create-target-rfs.sh)
-
-and cdrom (/opt/elbe/mkcdrom.sh) generation.
-\end{description}
-\end{frame}
-
-\begin{frame}
-\frametitle{target generation (overview)}
-\begin{itemize}
-\item generate file and pkg lists
-\item create /target tree
-\item call dump.py to
-\begin{itemize}
- \item validate packages / write logfile
- \item add fullpkgs list to source.xml
- \item add content of /etc/apt/sources.list to source.xml
- \item add content of /etc/apt/preferences to source.xml
- \item modify /target tree with finetuning.sh
-\end{itemize}
-\item generate licence information file
-\item call part-target.sh to generate images from /target tree
-\item (optional) generate cpio images and tarballs
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}[fragile]
-\frametitle{create /target tree}
-\begin{itemize}
-\item depending on the ELBE mode, the filelist is generated.
-
-E.g. in normal mode:
-\begin{lstlisting}
-ls -A1 / | \
- grep -v target | grep -v proc | grep -v sys | \
- xargs find >> /opt/elbe/filelist
-\end{lstlisting}
-\item all files specified to be stored on the target rfs are copied:
-\begin{lstlisting}
-rsync -a --files-from=/opt/elbe/filelist / /target
-\end{lstlisting}
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}[fragile]
-\frametitle{dump.py - check if all req. packages are installed}
-\begin{itemize}
-\item add lines about missing packages to validation.txt:
-\begin{lstlisting}
- for name in [p.et.text for p in pkgs] + [kinitrd]:
-
- if not name in cache:
- elog.printo( "- package %s does not exist" % name )
- errors += 1
- continue
-
- cp = cache[name]
-
- if not cp.installed and name != kinitrd:
- elog.printo( "- package %s is not installed" % name )
- errors += 1
- continue
-\end{lstlisting}
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}[fragile]
-\frametitle{dump.py - check version of packages used}
-(only done if a fullpkgs tag was specified in the xml file)
-\begin{itemize}
-\item add lines about packages with wrong version to validation.txt:
-\begin{lstlisting}
- for p in fullpkgs:
- name = p.et.text
- ver = p.et.get('version')
- md5 = p.et.get('md5')
- pindex[name] = p
- ...
- if cpi.version != ver:
- elog.printo("pack %s v%s != installed v%s" % (name, ver, cpi.version))
- errors += 1
- continue
-
- if cpi.md5 != md5:
- elog.printo("pack %s md5 %s != installed md5 %s" % (name, md5, cpi.md5) )
- errors += 1
- ...
-\end{lstlisting}
-\item there is also a check for packages that are installed but wasn't specified to be installed
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}[fragile]
-\frametitle{dump.py - write fullpkglist to source.xml}
-\begin{itemize}
-\item all used packages are listed in the source.xml file
-
-(including version and md5sum):
-\begin{lstlisting}
- paktree = xml.ensure_child( 'fullpkgs' )
- paktree.clear()
- pkgs = []
- for p in cache:
- if p.is_installed:
- pkgs.append( (p.name, p.installed.version, p.is_auto_installed, p.installed.md5))
- ...
- for p in pkgs:
- append_pkg_elem( paktree, p[0], p[1], p[2], p[3] )
-\end{lstlisting}
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}
-\frametitle{dump.py - modify /target tree with finetuning.sh}
-\begin{itemize}
-\item the script is executed from /target.
-
- So files can be copied
-
- from the debian rfs to the target rfs
-
- by e.g. 'cp /etc/passwd etc/'
-
-\item the output of the finetuning.sh commands is appended to elbe-report.txt
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}
-\frametitle{dump.py - filelist generation}
-elbe-report.txt includes a filelist that indicates each file in the target rfs
-and its origin
-\begin{itemize}
-\item a time stamp is recorded before and after finetuning.
-\item files that show up with a modification time in that period
-
-can be identified as modified/created by finetuning.sh
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}[fragile]
-\frametitle{generate licence information file}
-all licence informations that are stored in /usr/share/* are collected in one file:
-\begin{lstlisting}
-find /usr/share/doc -name copyright -exec \
- /opt/elbe/print_licence.sh {} \; >> /opt/elbe/licence.txt
-\end{lstlisting}
-\end{frame}
-
-
-\begin{frame}[fragile]
-\frametitle{call part-target.sh to copy /target tree to (different) images}
-currently only UBI image support is functional.
-
-HD images are under development. They will be created by using python bindings
-of libparted and loopback mounts.
-\end{frame}
-
-
-\begin{frame}[fragile]
-\frametitle{build ubifs images}
-\begin{itemize}
-\item mkfs.ubifs -r is used to generate a ubifs image
-
-from a subdirectory
-\item the name of the images is defined
-
-by the label in the fstab tag
-\item the image defined first in the fstab is created first
-\item the files copied to an image
-
-are moved temporarily away from /target:
-\begin{lstlisting}
- /mountA/mountB # mountA shouldn't include files like mountB/test
-\end{lstlisting}
-\item /target is restored as all images were created
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}[fragile]
-\frametitle{(optional) generate cpio images and tarballs}
-\begin{lstlisting}
-% if xml.has("target/package/tar"):
-tar cf /opt/elbe/target.tar -C /target .
-% endif
-
-% if xml.has("target/package/cpio"):
-cd /target
-find . -print | cpio -ov -H newc >/opt/elbe/target.cpio
-% endif
-\end{lstlisting}
-\end{frame}
-
-
-\begin{frame}
-\frametitle{binary cdrom generation}
-An ISO CD image will be created:
-\begin{itemize}
-\item CD should contain all packages
-
-needed to reproduce the current ELBE run
-\item the kinitrd package is installed into the buildenv
-
-to get it added to the cdrom like all other packages
-\item CD needs to be in a debian repository format
-
-otherwise it won't be accepted by d-i
-\item reprepo and genisoimage is used to create the CD
-\end{itemize}
-\end{frame}
-
-
-\begin{frame}[fragile]
-\frametitle{source cdrom generation}
-upon request (by 'elbe create --build-source')
-
-an ISO image containing all debian source packages is created:
-\begin{lstlisting}
-% if opt.buildsources:
- mkdir -p /opt/elbe/source
- dpkg --get-selections | awk '{print $1}' > /opt/elbe/pkg-list.actual
- cd /opt/elbe/source
- awk '{print "apt-get -d source "$1}' /opt/elbe/pkg-list.actual | sh
- cd /opt/elbe
- dpkg-scansources source /dev/null | gzip -9c > source/Sources.gz
- genisoimage -o /opt/elbe/source.iso -J -R source
-% endif
-\end{lstlisting}
-\end{frame}
-
-
-\begin{frame}
-\frametitle{kinitrd package details}
-\begin{itemize}
-\item in xml the cdrom tag can be used instead of a mirror
-\item then d-i needs to load components (udeb) from cdrom instead of web
-\item this is the reason for kinitrd including two versions of the initrd:
-\begin{itemize}
-\item one with the d-i configured to load udebs from a web source
-\item a second with d-i configured to load udebs from a cdrom source
-\end{itemize}
-\item there is a switch in the 'elbe create' path to select the right initrd for
- the project
-\end{itemize}
-\end{frame}
-
-
-\subsection{Makefile (post-install)}
-
-\begin{frame}[fragile]
-\frametitle{copy files to host}
-\begin{itemize}
-\item all files produced by elbe are stored inside buildenv.img:/opt/elbe
-\item they should be transfered into the build dir on the Host PC
-\item the emulator is shutdown,
-
-then e2cp can be used to retrive the files:
-\begin{lstlisting}
-e2cp buildenv.img?offset=32768:/opt/elbe/licence.txt .
-\end{lstlisting}
-\item this is done for all files by the Makefile, e.g:
-\begin{lstlisting}
-% if tgt.has("images"):
-% for mtd in tgt.node("images"):
-% if mtd.has("partitions"):
- e2cp buildenv.img?offset=${loop_offset}:/opt/elbe/${mtd.text("name")} .
-% endif
-% if mtd.has("binary"):
- e2cp buildenv.img?offset=${loop_offset}:${mtd.text("binary")} ${mtd.text("name")}
-\end{lstlisting}
-\end{itemize}
-\end{frame}
-
-
-\input{tailpres}
diff --git a/distribution/elbe/Kconfig b/distribution/elbe-marketing/Kconfig
index ede6465..78292f8 100644
--- a/distribution/elbe/Kconfig
+++ b/distribution/elbe-marketing/Kconfig
@@ -1,5 +1,5 @@
config ELBE_BASICS
- bool "Basic information about the ELBE project"
+ bool "short 'marketing' information about the ELBE project"
default y
help
Overview and basic information about ELBE
diff --git a/distribution/elbe-marketing/Makefile b/distribution/elbe-marketing/Makefile
new file mode 100644
index 0000000..d328362
--- /dev/null
+++ b/distribution/elbe-marketing/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_ELBE_BASICS) = pres_elbe-marketing.pdf
diff --git a/distribution/elbe/elbe-logo.png b/distribution/elbe-marketing/elbe-logo.png
index 1d3c745..1d3c745 100644
--- a/distribution/elbe/elbe-logo.png
+++ b/distribution/elbe-marketing/elbe-logo.png
Binary files differ
diff --git a/distribution/elbe/pres_elbe.tex b/distribution/elbe-marketing/pres_elbe-marketing.tex
index 8c66cb3..8c66cb3 100644
--- a/distribution/elbe/pres_elbe.tex
+++ b/distribution/elbe-marketing/pres_elbe-marketing.tex
diff --git a/distribution/elbe-overview/pres_elbe-overview_en.tex b/distribution/elbe-overview/pres_elbe-overview_en.tex
index 16ef882..0673d4a 100644
--- a/distribution/elbe-overview/pres_elbe-overview_en.tex
+++ b/distribution/elbe-overview/pres_elbe-overview_en.tex
@@ -90,12 +90,11 @@ buildroot
\frametitle{init}
create a new \includegraphics[height=0.7em]{images/elbe-logo.png} \ virtual-machine:
\begin{verbatim}
-$ elbe init example.xml
+$ elbe initvm create --build-bin --build-source example.xml
\end{verbatim}
\pause
\begin{itemize}
-\item creates a project directory and Makefile
-\item downloads the elbe-bootstrap package
+\item creates an elbe initvm and builds the target image and cdroms
\end{itemize}
\end{frame}
@@ -127,23 +126,6 @@ $ elbe init example.xml
\includegraphics[width=\textwidth]{images/elbe-init.png}
\end{frame}
-\section{build project}
-\begin{frame}[fragile]
-\frametitle{buildchroot}
-build a project:
-\begin{verbatim}
-$ elbe buildchroot \
- -t /opt/elbe/build \
- -o /opt/elbe/build.log \
- example.xml
-\end{verbatim}
-\pause
-\begin{itemize}
-\item creates a project directory
-\item builds the project
-\end{itemize}
-\end{frame}
-
\begin{frame}[fragile]
\includegraphics[width=\textwidth]{images/elbe-buildchroot.png}
\end{frame}
@@ -272,11 +254,15 @@ QlpoOTFBWSZTWbr9i8ICOcH//////
\begin{frame}[fragile]
\frametitle{generated files}
\begin{verbatim}
-$ ls
-buildenv.images licence.txt
-elbe-report.txt sdcard.images
-install.iso source.xml
-Makefile validation.txt
+$ ls elbe-build-$DATE
+bin-cdrom.iso
+elbe-report.txt
+log.txt
+licence.txt
+sdcard.img
+source.xml
+src-cdrom.iso
+validation.txt
\end{verbatim}
\end{frame}
@@ -468,8 +454,6 @@ $ aptitude install elbe
\pause
\item (automated) testing
\pause
- \item CDROM generation
- \pause
\item documentation
\end{itemize}
\end{frame}
diff --git a/distribution/elbe-usage/Kconfig b/distribution/elbe-usage/Kconfig
deleted file mode 100644
index e91060e..0000000
--- a/distribution/elbe-usage/Kconfig
+++ /dev/null
@@ -1,5 +0,0 @@
-config ELBE_USAGE
- bool "ELBE user papers"
- default y
- help
- Papers about ELBE usage
diff --git a/distribution/elbe-usage/Makefile b/distribution/elbe-usage/Makefile
deleted file mode 100644
index 73ae625..0000000
--- a/distribution/elbe-usage/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_ELBE_USAGE) += pres_elbe-usage_en.pdf
diff --git a/distribution/elbe-usage/pres_elbe-usage_en.tex b/distribution/elbe-usage/pres_elbe-usage_en.tex
deleted file mode 100644
index 452d678..0000000
--- a/distribution/elbe-usage/pres_elbe-usage_en.tex
+++ /dev/null
@@ -1,550 +0,0 @@
-\input{configpres}
-
-\title{ELBE - Embedded Linux Build Environment}
-\maketitle
-
-\subsection{ELBE usage}
-
-\begin{frame}
-\frametitle{What is ELBE?}
-ELBE is a Debian based system to generate root-filesystems for embedded devices
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{How to install ELBE}
-\begin{verbatim}
-# On a Debian based system
-$ echo 'deb http://debian.linutronix.de/elbe \
-wheezy main' >> /etc/apt/sources.list
-$ aptitude install elbe
-\end{verbatim}
-Or get the latest source from github:
-\begin{verbatim}
-git clone https://github.com/Linutronix/elbe.git
-\end{verbatim}
-\end{frame}
-
-\begin{frame}
-\frametitle{Overview}
-\begin{itemize}
-\item The Elbe system consists of the program elbe which is implemented in Python
-\item Similar to git, it can be called with several sub commands
-\item An Elbe project consists of an xml file that describes the project
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{Documentation}
-\begin{itemize}
-\item Have a look at /usr/share/doc/elbe/
-\item Please read /usr/share/doc/elbe/elbeoverview-en.html
-\item There are man pages e.g. 'man elbe', 'man elbe-create', \dots
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{How ELBE works}
-\begin{figure}[h]
-\centering
-\includegraphics[width=10cm]{images/elbe-process.png}
-\end{figure}
-\end{frame}
-
-\begin{frame}
-\frametitle{How ELBE works}
-\begin{figure}[h]
-\centering
-\includegraphics[width=10cm]{images/emu-process.png}
-\end{figure}
-\end{frame}
-
-\begin{frame}
-\frametitle{The ELBE workflow}
-\begin{enumerate}
-\item Create a XML file
-\item Create a project based on that XML file
-\item Change to the project directory an run make
-\end{enumerate}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{command overview}
-Create a new project:
-\begin{verbatim}
-$ elbe create \
- --directory /home/user/example example.xml
-\end{verbatim}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{start build}
-\begin{verbatim}
-$ cd /home/user/example
-$ ls -a
-. .. .elbe-in Makefile
-$ make
-\end{verbatim}
-.elbe-in contains the files needed inside the virtual build machine
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{generated files}
-\begin{verbatim}
-$ ls -a
-. elbe-report.txt sdcard.img
-.. install.iso source.xml
-buildenv.img licence.txt .stamps
-.elbe-gen Makefile validation.txt
-.elbe-in rootfs.tar.gz
-\end{verbatim}
-\end{frame}
-
-\begin{frame}
-\frametitle{buildenv.img}
-\begin{itemize}
-\item Qemu HD image containing a complete Debian system
-\item was used to generate the RFS for the target
-\item can be used as build environment for own applications
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{.elbe-gen}
-\begin{itemize}
-\item files generated by the Makefile
-\item including the modified initrd that contains the debian-installer
-\item and a list containing the files that are copied from the buildenv to the
-host PC
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{elbe-report.txt}
-\begin{itemize}
-\item logfile of the build process in asciidoc format
-\item 'asciidoc elbe-report.txt' generates a html file
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{install.iso}
-\begin{itemize}
-\item ISO image that contains all used packages
-\item the --skip-cds parameter of 'elbe create' can be used to skip the
- generation of the image
-\item the --build-source parameter of 'elbe create' can be used to also generate
- a cdrom image that contains all Debian source packages
-\item All mirrors configured in an elbe XML file can be replaced by an ISO image
- using the command 'elbe setcdrom'
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{licence.txt}
-\begin{itemize}
-\item contains the licence text of all used debian packages
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{rootfs.tar.gz, sdcard.img}
-\begin{itemize}
-\item Images or archives containing the target RFS
-\item The 'target' section in the XML file describes which image and archive
- files are created; the 'fstab' section describes their content.
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{source.xml}
-\begin{itemize}
-\item based on the XML file given to 'elbe create'
-\item added a 'fullpkgs' section containing informations about all installed
- packages and their version
-\item added a 'sources\_list' section that contains the used mirrors
-\item added a 'apt\_prefs' section that contains the pinning settings
-\item added a 'elbe\_version' section that contains the version number of
- the elbe tool that generated the file
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{.stamps}
-\begin{itemize}
-\item status information used by the Makefile
-\end{itemize}
-\end{frame}
-
-\begin{frame}
-\frametitle{validation.txt}
-\begin{itemize}
-\item if elbe create was called with a XML file containing a 'fullpkgs' section
- the file contains informations if a package version differs
-\item if a package in the 'pkg-list' was not found on one of the mirrors this
- will be logged in this file
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Using the VM}
-\begin{verbatim}
-$ make run
-\end{verbatim}
-A Qemu with the buildenv.img will be started.
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{The ELBE XML format}
-/usr/share/doc/elbe/examples/ contains a couple of examples that can be used
-as templates for an own project:
-\begin{verbatim}
-$ ls /usr/share/doc/elbe/examples/
-amd64-example.xml beaglebone.xml
-arm-complex-example.xml i386-example.xml
-arm-example.xml ppc-example.xml
-arm-wheezy-example.xml x86-example.xml
-\end{verbatim}
-Take a look at the different modes and finetuning sections. Also various
-iamge generation methods are used.
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{The ELBE XML format: Project setup}
-\lstset{language=XML}
-\begin{scriptsize}
-\begin{lstlisting}
-<project>
- <name>ARMexample</name>
- <version>08.15</version>
- <description>
- creates an UBI based target system without debian package management
- tools for version control and package build are added to the buildimage
- </description>
- <buildtype>armel</buildtype>
- ...
-</project>
-\end{lstlisting}
-\end{scriptsize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{The ELBE XML format: Project setup}
-\lstset{language=XML}
-\begin{scriptsize}
-\begin{lstlisting}
-<project>
-...
- <mirror>
- <primary_host>ftp.de.debian.org</primary_host>
- <primary_path>/debian</primary_path>
- <primary_proto>http</primary_proto>
- <url-list>
- <url>
- <binary>http://debian.linutronix.de/elbe wheezy main</binary>
- <source>http://debian.linutronix.de/elbe wheezy main</source>
- </url>
- </url-list>
- </mirror>
- <noauth />
-...
-</project>
-\end{lstlisting}
-\end{scriptsize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{The ELBE XML format: Project setup}
-\lstset{language=XML}
-\begin{scriptsize}
-\begin{lstlisting}
-<project>
-...
- <suite>wheezy</suite>
- <buildimage>
- <kinitrd>elbe-bootstrap</kinitrd>
- <pkg-list>
- <pkg>build-essential</pkg>
- <pkg>debhelper</pkg>
- <pkg>git</pkg>
- </pkg-list>
- </buildimage>
-</project>
-\end{lstlisting}
-\end{scriptsize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{The ELBE XML format: Defining a target}
-\lstset{language=XML}
-\begin{scriptsize}
-\begin{lstlisting}
-<target>
- <hostname>myARM</hostname>
- <domain>tec.linutronix.de</domain>
- <passwd>foo</passwd>
- <console>ttyS0,115200</console>
- <package>
- <tar>
- <name>nfsroot.tar.gz</name>
- </tar>
- </package>
- <finetuning>
- <rm>usr/share/doc</rm> <!-- remove from target -->
- <rm>/usr/share/doc</rm> <!-- remove from buildenv -->
- </finetuning>
- <pkg-list>
- <pkg>bash</pkg>
- </pkg-list>
- </target>
-\end{lstlisting}
-\end{scriptsize}
-\end{frame}
-
-
-\begin{frame}
-\frametitle{ELBE modes}
-\begin{itemize}
-\item norecommend (can be combined with any of the other modes):
- Don't install recommended packages
-\item default: target is a copy of the buildenv
-\item diet: Only copy files referenced in the package management.
- Only use this for small and simple root filesystems!
-\item setsel: The resulting image will just contain dpkg.
- This mode offers a finegrained control on which packages should be installed
-\item tighten: ignore dependencies, this is useful for very minimalistic busybox
- based systems. Normally setsel mode should be used.
-\end{itemize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{ELBE modes: Example}
-\lstset{language=XML}
-\begin{scriptsize}
-\begin{lstlisting}
-<target>
-...
- <diet />
- <norecommend />
- <pkg-list>
- <pkg>bash</pkg>
- </pkg-list>
-...
-</target>
-\end{lstlisting}
-\end{scriptsize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{elbe-setsel usage}
-\begin{enumerate}
-\item Create package list:
-\begin{verbatim}
-hostpc$ make run-con
-# remove all pkgs not wanted on the target
-target$ dpkg --purge vim-nox libxml2-dev
-# export installed package list
-target$ dpkg --get-selections > selections.list
-# copy list to hostpc
-target$ scp selections.list 10.0.2.2:/tmp
-\end{verbatim}
-\item Import the package list to your xml file:
-\begin{verbatim}
-hostpc$ elbe setsel rfs.xml /tmp/selections.list
-\end{verbatim}
-\end{enumerate}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Using a CDROM}
-\begin{itemize}
-\item Each ELBE build will create a CD-ROM image with the packages
- needed for an elbe image build.
-\item this ISO image can be used for future builds:
-\end{itemize}
-\begin{verbatim}
-$ elbe setcdrom rfs.xml \
-/home/user/elbe-test/install.iso
-\end{verbatim}
-This command removes all configured mirrors and additional urls from the XML
-file and sets the given ISO image as the only mirror.
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{elbe-chg\_archive}
-It is possible to include an archive into the xml file, that is unpacked into
-the target RFS before and after the finetuning step:
-\begin{verbatim}
-$ mkdir archive/testd
-$ cd archive
-$ echo 'port = 1234' > archive/testd/myconfig
-$ tar cjf ../archive.tar.bz2 *
-$ cd ..
-$ elbe chg_archive <xmlfile> archive.tar.bz2
-\end{verbatim}
-NOTE: The file must be a bzip2 compressed tar (.tar.bz2)
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{elbe-get\_archive}
-It is also possible to extract an archive from an XML file:
-\begin{verbatim}
-$ elbe get_archive <xmlfile> <archive>
-\end{verbatim}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{elbe-show}
-The elbe show command prints out some textual information about an
-ELBE xml file:
-\begin{verbatim}
-$ elbe show --verbose arm-example.xml
-== arm-example.xml: ARMexample - version 08.15 ==
-Debian suite: wheezy/armel
-[...]
-\end{verbatim}
-The '--verbose' parameter shows more informations, like the complete package
-list.
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{elbe-xsdtoasciidoc}
-Create an asciidoc documentation from an annotated XML Schema file
-\begin{verbatim}
-# Create asciidoc format
-$ elbe xsdtoasciidoc --output=myasciidoc dbsfed.xsd
-# Create HTML doc
-$ asciidoc myasciidoc
-\end{verbatim}
-This is used to create the documentation of the ELBE XML schema.
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{elbe-checkupdates}
-Use a source.xml file to check if there are updates available for an existing
-image:
-\begin{verbatim}
-$ elbe check_updates source.xml
-checking /home/user/rfs/build-release/source.xml
-armel
-Reading package lists... Done
-Building dependency tree... Done
-Reading package lists... Done
-Building dependency tree... Done
-adduser 3.113+nmu1 != 3.113+nmu3
-1 updates required
-\end{verbatim}
-This can be used e.g. as cronjob to get notifications if updates are availabe.
-
-Than the person responsible for updates can decide what needs to be done.
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{elbe-diff}
-compares to RFS trees and suggests commands to update the archive tar and a
-'finetuning' section:
-\begin{verbatim}
-$ sudo elbe diff rfs rfs-modified
-suggesting:
-
-<rm>/etc/init.d/mountall-bootclean.sh</rm>
-<rm>/etc/init.d/bootmisc.sh</rm>
-tar rf archive.tar -C build/rfs /sbin/dhclient-script
-tar rf archive.tar -C build/rfs /etc/init.d/mountfstab.sh
-\end{verbatim}
-This can be used if a (nfsroot) filesystem was modified and these modifications
-should be included in an ELBE XML file.
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{elbe-pkgdiff}
-compares to RFS trees and displays the difference of the installed packages
-\begin{verbatim}
-$ sudo elbe pkgdiff `pwd`/rfs `pwd`/rfs-modified
--<pkg>firmware-ivtv</pkg>
--<pkg>firmware-ipw2x00</pkg>
-\end{verbatim}
-This can be used if a (nfsroot) filesystem was modified and these modifications
-should be included in an ELBE XML file.
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{elbe-validate}
-validates the xmlfile provided, and prints out errors:
-\begin{verbatim}
-$ elbe validate rfs.xml
-rfs.xml:101 error Element 'type': [facet 'enumeration'] The value 'ext5' is
-not an element of the set {'ext2', 'ext3', 'ext4', 'xfs', 'ubifs', 'tmpfs',
-'debugfs', 'configfs', 'proc', 'sysfs', 'vfat'}.
-rfs.xml:101 error Element 'type': 'ext5' is not a valid value of the atomic
-type '{https://www.linutronix.de/projects/Elbe}fs_type'.
-validation failed
-\end{verbatim}
-\dots there is an typo in the XML file line 105: ext5 instead of ext4
-\end{frame}
-
-
-\begin{frame}[fragile]
-\frametitle{Creating UBI images}
-\lstset{language=XML}
-\begin{scriptsize}
-\begin{lstlisting}
-<images>
- <mtd>
- <name>linux.img</name> 1
- <nr>0</nr>
- <size>60MB</size>
- <ubivg>
- <label>nand</label>
- <miniosize>2048</miniosize>
- <maxlogicaleraseblockcount>1533</maxlogicaleraseblockcount>
- <logicaleraseblocksize>126976</logicaleraseblocksize>
- <physicaleraseblocksize>128KiB</physicaleraseblocksize>
- <ubi>
- <type>static</type>
- <label>kernel</label>
- <id>0</id>
- <size>4MiB</size>
- <binary>/boot/vmlinuz</binary>
- </ubi>
- <ubi>
- <type>dynamic</type>
- <label>rfs</label>
- <id>1</id>
- <size>26MiB</size>
- </ubi>
- </mtd>
- </images>
-\end{lstlisting}
-\end{scriptsize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Creating UBI images}
-\lstset{language=XML}
-\begin{scriptsize}
-\begin{lstlisting}
- <fstab>
- <bylabel>
- <label>rfs</label>
- <mountpoint>/</mountpoint>
- <fs>
- <type>ubifs</type>
- <mkfs>-x lzo</mkfs>
- </fs>
- </bylabel>
- </fstab>
-\end{lstlisting}
-\end{scriptsize}
-\end{frame}
-
-\begin{frame}[fragile]
-\frametitle{Future? elbe buildchroot}
-Something like this may be used in the future:
-\begin{lstlisting}
-sudo elbe buildchroot -t build-chroot -o buildchroot.log -n myrfs \
---skip-validation --skip-cdrom --debug --buildtype=armel
-\end{lstlisting}
-Testing and feedback is welcome!
-\end{frame}
-
-\input{tailpres}
diff --git a/distribution/elbe/Makefile b/distribution/elbe/Makefile
deleted file mode 100644
index c054f16..0000000
--- a/distribution/elbe/Makefile
+++ /dev/null
@@ -1 +0,0 @@
-obj-$(CONFIG_ELBE_BASICS) = pres_elbe.pdf