From 66abaeb80f436576cc0562749480e94d7193856b Mon Sep 17 00:00:00 2001 From: Manuel Traut Date: Mon, 3 Nov 2014 20:06:51 +0100 Subject: add elbe 1.0 overview slides Signed-off-by: Manuel Traut --- distribution/Kconfig | 1 + distribution/elbe-overview/Kconfig | 5 + distribution/elbe-overview/Makefile | 1 + .../elbe-overview/pres_elbe-overview_en.tex | 496 +++++++++++++++++++++ 4 files changed, 503 insertions(+) create mode 100644 distribution/elbe-overview/Kconfig create mode 100644 distribution/elbe-overview/Makefile create mode 100644 distribution/elbe-overview/pres_elbe-overview_en.tex (limited to 'distribution') 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{}} +\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} + + 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} + +\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} + + 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 +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