\input{configpres}
\begin{frame}[fragile]
\includegraphics[width=\textwidth]{images/Dresden_Elbe_Terrassenufer.jpg}
\end{frame}
\title{\includegraphics[width=8cm]{images/elbe-logo.png}}
\subtitle{embedded linux build environment}
\maketitle
\begin{frame}[fragile]
\frametitle{overview}
\begin{block}{1) What is \includegraphics[height=0.8em]{images/elbe-logo.png}?}
\end{block}
\pause
\begin{block}{2) SDCARD Image for Beaglebone Black:}
\begin{itemize}
\item bootloader
\item kernel
\item Debian RFS (wheezy/armhf)
\end{itemize}
\end{block}
\pause
\begin{block}{3) Internals}
\begin{itemize}
\item resources
\item elbe architecture
\item SOAP interface
\end{itemize}
\end{block}
\pause
\begin{block}{4) Roadmap}
\end{block}
\end{frame}
\begin{frame}[fragile]
\frametitle{what is \includegraphics[height=0.7em]{images/elbe-logo.png}?}
\begin{columns}
\begin{column}{.5\linewidth}
\includegraphics[width=4.5cm]{images/distri.jpg}
\end{column}
\begin{column}{.5\linewidth}
\begin{tabular}{cc}
\begin{lstlisting}
open-embedded
eldk
buildroot
ptxdist
yocto
\end{lstlisting}
\end{tabular}
\end{column}
\end{columns}
\pause
\includegraphics[width=2.5cm]{images/elbe-logo.png}
\hspace{2em}uses Debian packages and infrastructure
\end{frame}
\begin{frame}[fragile]
\frametitle{what is \includegraphics[height=0.7em]{images/elbe-logo.png}?}
\begin{block}{highlights}
\begin{itemize}
\item no more cross compiling
\pause
\item security
\pause
\item reproducible target images
\pause
\item cdrom with source code
\pause
\item licence information
\end{itemize}
\end{block}
\end{frame}
\begin{frame}[fragile]
\frametitle{what is \includegraphics[height=0.7em]{images/elbe-logo.png}?}
\includegraphics[height=\textheight]{images/elbe-io-chart.png}
\end{frame}
\section{prepare environment}
\begin{frame}[fragile]
\frametitle{init}
create a new \includegraphics[height=0.7em]{images/elbe-logo.png} \ virtual-machine:
\begin{verbatim}
$ elbe initvm create --build-bin --build-source example.xml
\end{verbatim}
\pause
\begin{itemize}
\item creates an elbe initvm and builds the target image and cdroms
\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{initvm section}
\begin{scriptsize}
\begin{lstlisting}
amd64
ftp.de.debian.org
/debian
http
\end{lstlisting}
\pause
\begin{lstlisting}
http://debian.linutronix.de/elbe-testing wheezy main
wheezy
\end{lstlisting}
\end{scriptsize}
\end{frame}
\begin{frame}[fragile]
\includegraphics[width=\textwidth]{images/elbe-init.png}
\end{frame}
\begin{frame}[fragile]
\includegraphics[width=\textwidth]{images/elbe-buildchroot.png}
\end{frame}
\begin{frame}[fragile]
\frametitle{project section}
\begin{scriptsize}
\begin{lstlisting}
beaglebone-black
armhf
ftp.de.debian.org
/debian
http
\end{lstlisting}
\pause
\begin{lstlisting}
http://debian.linutronix.de/elbe wheezy main
wheezy
\end{lstlisting}
\end{scriptsize}
\end{frame}
\begin{frame}[fragile]
\frametitle{target section [1/3]}
\begin{scriptsize}
\begin{lstlisting}
bbb
foo
ttyS0,115200
\end{lstlisting}
\pause
\begin{lstlisting}
sdcard.images
1900MiB
\end{lstlisting}
\pause
\begin{lstlisting}
100MB
\end{lstlisting}
\pause
\begin{lstlisting}
remain
\end{lstlisting}
\end{scriptsize}
\end{frame}
\begin{frame}[fragile]
\frametitle{target section [2/3]}
\begin{scriptsize}
\begin{lstlisting}
/boot
vfat
\end{lstlisting}
\pause
\begin{lstlisting}
/
ext4
-i 0
\end{lstlisting}
\end{scriptsize}
\end{frame}
\begin{frame}[fragile]
\frametitle{target section [3/3]}
\begin{scriptsize}
\begin{lstlisting}
/var/cache/apt/archives/*.deb
/boot/zImage
\end{lstlisting}
\pause
\begin{lstlisting}
linux-image-3.12.4-rt6
openssh-server
\end{lstlisting}
\pause
\begin{lstlisting}
QlpoOTFBWSZTWbr9i8ICOcH//////
...
\end{lstlisting}
\end{scriptsize}
\end{frame}
\section{result}
\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}
\section{minimal target systems}
\begin{frame}
\includegraphics[height=\textheight]{images/tux-fullblown-beer.jpg}
\end{frame}
\begin{frame}
\frametitle{modes}
are used to strip target-images
\pause
\begin{description}
\item[setsel]
\begin{itemize}
\item automatic dependency resolution
(can be overridden)
\item files from postinst-scripts are on the target
\item dpkg and perl needs to be on the target
\end{itemize}
\pause
\item[diet]
\begin{itemize}
\item reverse dependency resolution
\item postinst-scripts are executed (but may fail)
\end{itemize}
\pause
\item[tighten]
\begin{itemize}
\item no dependency resolution
\item files from postinst-scripts are not on the target
\end{itemize}
\end{description}
\end{frame}
\begin{frame}
\includegraphics[width=\textwidth]{images/slimtux.jpg}
\end{frame}
\section{Internals}
\begin{frame}
\center
\includegraphics[width=10cm]{images/tux-chamber.jpg}
\endcenter
\end{frame}
\begin{frame}[fragile]
\frametitle{Packaging}
\begin{description}
\item[elbe-doc] man-pages, overview, XSD documentation
\pause
\item[elbe-common] shared python modules, XML schema
\pause
\item[elbe] needed on host PC (init, chg\_archive, \dots)
\pause
\item[elbe-buildenv] for virtual machine (buildchroot, db, chroot, \dots)
\pause
\item[elbe-updated] for embedded target to apply update packages
\pause
\item[elbe-daemon] for virtual machine (wsgi server)
\pause
\item[elbe-soap] for virtual machine
implements SOAP interface
\pause
\item[elbe-control] for host PC
controls SOAP interface
\end{description}
\end{frame}
\section{architecture}
\begin{frame}[fragile]
\frametitle{architecture}
\begin{block}{technologies}
\begin{itemize}
\item python
\pause
\item qemu-user
\pause
\item python-apt
\pause
\item python-mako
\pause
\item python-parted
\pause
\item sqlalchemy
\end{itemize}
\end{block}
\end{frame}
\section{SOAP interface / automated testing}
\begin{frame}[fragile]
\frametitle{SOAP interface / automated testing}
\includegraphics[width=\textwidth]{images/tux-testing.jpg}
\end{frame}
\begin{frame}[fragile]
\includegraphics[height=\textheight]{images/testing1.png}
\end{frame}
\begin{frame}[fragile]
\includegraphics[height=\textheight]{images/testing2.png}
\end{frame}
\include{tailpres}