From 66abaeb80f436576cc0562749480e94d7193856b Mon Sep 17 00:00:00 2001
From: Manuel Traut <manut@linutronix.de>
Date: Mon, 3 Nov 2014 20:06:51 +0100
Subject: add elbe 1.0 overview slides

Signed-off-by: Manuel Traut <manut@linutronix.de>
---
 .../elbe-overview/pres_elbe-overview_en.tex        | 496 +++++++++++++++++++++
 1 file changed, 496 insertions(+)
 create mode 100644 distribution/elbe-overview/pres_elbe-overview_en.tex

(limited to 'distribution/elbe-overview/pres_elbe-overview_en.tex')

diff --git a/distribution/elbe-overview/pres_elbe-overview_en.tex b/distribution/elbe-overview/pres_elbe-overview_en.tex
new file mode 100644
index 0000000..16ef882
--- /dev/null
+++ b/distribution/elbe-overview/pres_elbe-overview_en.tex
@@ -0,0 +1,496 @@
+\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}
+\author[manut]{Manuel Traut \texttt{<manut@linutronix.de>}}
+\institute{Linutronix GmbH}
+
+\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 reproducable target images
+\pause
+\item sourcecode cdrom
+\pause
+\item licence informations
+\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 init example.xml
+\end{verbatim}
+\pause
+\begin{itemize}
+\item creates a project directory and Makefile
+\item downloads the elbe-bootstrap package
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{initvm section}
+\begin{scriptsize}
+\begin{lstlisting}
+<initvm>
+  <buildtype>amd64</buildtype>
+  <mirror>
+    <primary_host>ftp.de.debian.org</primary_host>
+    <primary_path>/debian</primary_path>
+    <primary_proto>http</primary_proto>
+\end{lstlisting}
+\pause
+\begin{lstlisting}
+    <!-- elbe-buildenv -->
+    <url-list> <url> <binary>
+      http://debian.linutronix.de/elbe-testing wheezy main
+    </binary> </url> </url-list>
+  </mirror>
+  <suite>wheezy</suite>
+</initvm>
+\end{lstlisting}
+\end{scriptsize}
+\end{frame}
+
+\begin{frame}[fragile]
+\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}
+
+\begin{frame}[fragile]
+\frametitle{project section}
+\begin{scriptsize}
+\begin{lstlisting}
+<project>
+  <name>beaglebone-black</name>
+  <buildtype>armhf</buildtype>
+  <mirror>
+    <primary_host>ftp.de.debian.org</primary_host>
+    <primary_path>/debian</primary_path>
+    <primary_proto>http</primary_proto>
+\end{lstlisting}
+\pause
+\begin{lstlisting}
+    <!-- kernel -->
+    <url-list><url><binary>
+      http://debian.linutronix.de/elbe wheezy main
+    </binary></url></url-list>
+  </mirror>
+  <noauth />
+  <suite>wheezy</suite>
+</project>
+\end{lstlisting}
+\end{scriptsize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{target section [1/3]}
+\begin{scriptsize}
+\begin{lstlisting}
+<target>
+  <hostname>bbb</hostname>
+  <passwd>foo</passwd>
+  <console>ttyS0,115200</console>
+\end{lstlisting}
+\pause
+\begin{lstlisting}
+  <images>
+    <msdoshd>
+      <name>sdcard.images</name>
+      <size>1900MiB</size>
+\end{lstlisting}
+\pause
+\begin{lstlisting}
+        <partition>
+          <size>100MB</size>
+          <label>boot</label>
+          <bootable />
+        </partition>
+\end{lstlisting}
+\pause
+\begin{lstlisting}
+        <partition>
+          <size>remain</size>
+          <label>rfs</label>
+        </partition>
+    </msdoshd>
+  </images>
+\end{lstlisting}
+\end{scriptsize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{target section [2/3]}
+\begin{scriptsize}
+\begin{lstlisting}
+  <fstab>
+    <bylabel>
+      <label>boot</label>
+      <mountpoint>/boot</mountpoint>
+      <fs>
+        <type>vfat</type>
+      </fs>
+    </bylabel>
+\end{lstlisting}
+\pause
+\begin{lstlisting}
+    <bylabel>
+      <label>rfs</label>
+      <mountpoint>/</mountpoint>
+      <fs>
+        <type>ext4</type>
+        <tune2fs>-i 0</tune2fs>
+      </fs>
+    </bylabel>
+  </fstab>
+\end{lstlisting}
+\end{scriptsize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{target section [3/3]}
+\begin{scriptsize}
+\begin{lstlisting}
+  <finetuning>
+    <rm>/var/cache/apt/archives/*.deb</rm>
+    <mv path="/boot/vmlinuz-3.12.4-rt6-*">
+      /boot/zImage
+    </mv>
+  </finetuning>
+\end{lstlisting}
+\pause
+\begin{lstlisting}
+  <pkg-list>
+    <pkg>linux-image-3.12.4-rt6</pkg>
+    <pkg>openssh-server</pkg>
+  </pkg-list>
+</target>
+\end{lstlisting}
+\pause
+\begin{lstlisting}
+<!-- /boot/[MLO, uboot.images] -->
+<archive>
+QlpoOTFBWSZTWbr9i8ICOcH//////
+...
+</archive>
+\end{lstlisting}
+\end{scriptsize}
+\end{frame}
+
+\section{result}
+\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
+\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}
+
+\begin{frame}
+\includegraphics[width=\textheight]{images/tux-keys.png}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{using the native ADK}
+\begin{itemize}
+\item start the virtual-machine:
+\begin{lstlisting}
+$ make run
+\end{lstlisting}
+\pause
+\item enter the native ADK:
+\begin{lstlisting}
+$ elbe chroot /opt/elbe/build
+\end{lstlisting}
+\pause
+\item build your application like on a native Debian machine
+\pause
+\item package own application as debian package (dh\_make)
+\pause
+\item host debian application in own repository (reprepro)
+\pause
+\item add own packages to XML description, rerun buildchroot
+\end{itemize}
+\end{frame}
+
+\begin{frame}
+\center
+	\includegraphics[width=5cm]{images/happytux.jpg}
+\endcenter
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{resources}
+\begin{description}
+	\item[website] http://elbe-rfs.org/
+\pause
+	\item[mailing-list] https://linutronix.de/mailman/listinfo/elbe-devel
+\pause
+	\item[github] https://github.com/linutronix/elbe
+\end{description}
+\pause
+\begin{verbatim}
+git clone https://github.com/Linutronix/elbe.git
+git checkout -b devel/elbe-1.0 -t devel/elbe-1.0
+\end{verbatim}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{install}
+\begin{verbatim}
+# on a Debian based system
+$ echo 'deb http://debian.linutronix.de/elbe-testing \
+         wheezy main' >> /etc/apt/sources.list
+$ aptitude install elbe
+\end{verbatim}
+\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}
+
+\begin{frame}[fragile]
+\frametitle{architecture}
+	\includegraphics[width=\textwidth]{images/workflow.png}
+\end{frame}
+
+\begin{frame}[fragile]
+	\includegraphics[width=\textwidth]{images/uml-elbepack.png}
+\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}
+
+\section{Roadmap}
+\begin{frame}[fragile]
+\frametitle{open issues for 1.0 release}
+\begin{itemize}
+	\item modify commands to use the project manager
+	\pause
+	\item status reporting
+	\pause
+	\item (automated) testing
+	\pause
+	\item CDROM generation
+	\pause
+	\item documentation
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{Debian integration}
+\begin{itemize}
+	\item with help from Wolfgang Borgert - debacle@debian.org
+	\item http://anonscm.debian.org/gitweb/?p=collab-maint/elbe.git
+\end{itemize}
+\end{frame}
+
+\begin{frame}[fragile]
+\frametitle{ideas?}
+\begin{itemize}
+	\item packaging templates for kernel and bootloader
+	\pause
+	\item improve ADK usage / eclipse plugin?
+	\pause
+	\item ??
+\end{itemize}
+\end{frame}
+
+\include{tailpres}
-- 
cgit v1.2.3

