summaryrefslogtreecommitdiff
path: root/distribution
diff options
context:
space:
mode:
authorManuel Traut <manut@linutronix.de>2014-11-03 20:06:51 +0100
committerManuel Traut <manut@linutronix.de>2014-11-03 20:06:51 +0100
commit66abaeb80f436576cc0562749480e94d7193856b (patch)
treec144e2f5c0fe4bcea6013541535b6020e08e4462 /distribution
parentde1e8381e43031c2915cc2c9c5795c3142ca3b7b (diff)
add elbe 1.0 overview slides
Signed-off-by: Manuel Traut <manut@linutronix.de>
Diffstat (limited to 'distribution')
-rw-r--r--distribution/Kconfig1
-rw-r--r--distribution/elbe-overview/Kconfig5
-rw-r--r--distribution/elbe-overview/Makefile1
-rw-r--r--distribution/elbe-overview/pres_elbe-overview_en.tex496
4 files changed, 503 insertions, 0 deletions
diff --git a/distribution/Kconfig b/distribution/Kconfig
index 761d6cf..9ad9518 100644
--- a/distribution/Kconfig
+++ b/distribution/Kconfig
@@ -8,6 +8,7 @@ if ELBE
source "distribution/elbe/Kconfig"
source "distribution/elbe-internals/Kconfig"
source "distribution/elbe-example/Kconfig"
+ source "distribution/elbe-overview/Kconfig"
endif
menuconfig YOCTO
diff --git a/distribution/elbe-overview/Kconfig b/distribution/elbe-overview/Kconfig
new file mode 100644
index 0000000..80af2ed
--- /dev/null
+++ b/distribution/elbe-overview/Kconfig
@@ -0,0 +1,5 @@
+config ELBE_OVERVIEW
+ bool "ELBE overview"
+ default y
+ help
+ What's ELBE??
diff --git a/distribution/elbe-overview/Makefile b/distribution/elbe-overview/Makefile
new file mode 100644
index 0000000..8bfc113
--- /dev/null
+++ b/distribution/elbe-overview/Makefile
@@ -0,0 +1 @@
+obj-$(CONFIG_ELBE_OVERVIEW) += pres_elbe-overview_en.pdf
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}