\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} \begin{block}{2) SDCARD Image for Beaglebone Black:} \begin{itemize} \item bootloader \item kernel \item Debian RFS (wheezy/armhf) \end{itemize} \end{block} \begin{block}{3) Internals} \begin{itemize} \item resources \item elbe architecture \item SOAP interface \end{itemize} \end{block} \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} \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 \item security \item reproducible target images \item cdrom with source code \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} \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} \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} \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} \begin{lstlisting} sdcard.images 1900MiB \end{lstlisting} \begin{lstlisting} 100MB \end{lstlisting} \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} \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} \begin{lstlisting} linux-image-3.12.4-rt6 openssh-server \end{lstlisting} \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 \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} \item[diet] \begin{itemize} \item reverse dependency resolution \item postinst-scripts are executed (but may fail) \end{itemize} \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 \item[elbe-common] shared python modules, XML schema \item[elbe] needed on host PC (init, chg\_archive, \dots) \item[elbe-buildenv] for virtual machine (buildchroot, db, chroot, \dots) \item[elbe-updated] for embedded target to apply update packages \item[elbe-daemon] for virtual machine (wsgi server) \item[elbe-soap] for virtual machine implements SOAP interface \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 \item qemu-user \item python-apt \item python-mako \item python-parted \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}