diff options
Diffstat (limited to 'distribution/elbe-overview')
| -rw-r--r-- | distribution/elbe-overview/Kconfig | 5 | ||||
| -rw-r--r-- | distribution/elbe-overview/Makefile | 1 | ||||
| -rw-r--r-- | distribution/elbe-overview/pres_elbe-overview_en.tex | 496 |
3 files changed, 502 insertions, 0 deletions
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} |
