summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Makefile3
-rw-r--r--flash-memory/ubi/pres_ubi_de.tex3
-rw-r--r--handout_master.tex8
-rw-r--r--kernel-devel/module-basics/pres_module-basics_de.tex26
-rw-r--r--linux-basics/Makefile2
-rw-r--r--linux-basics/boot-process/Makefile4
-rw-r--r--linux-basics/boot-process/handout_boot-process_de.tex22
-rw-r--r--linux-basics/boot-process/pres_boot-process_de.tex28
-rw-r--r--linux-basics/filesystem-structure/Makefile4
-rw-r--r--linux-basics/filesystem-structure/handout_file-system-structure_de.tex18
-rw-r--r--linux-basics/filesystem-structure/pres_file-system-structure_de.tex22
-rw-r--r--linux-basics/filesystems/Makefile4
-rw-r--r--linux-basics/filesystems/pres_filesystems_en.tex58
-rw-r--r--linux-basics/important-tools/Makefile4
-rw-r--r--linux-basics/important-tools/pres_important_tools_de.tex31
-rw-r--r--linux-basics/licenses/Makefile4
-rw-r--r--linux-basics/licenses/pres_licenses_en.tex49
-rw-r--r--linux-basics/linux-processes/Makefile4
-rw-r--r--linux-basics/linux-processes/pres_linux-processes_en.tex54
-rw-r--r--linux-basics/networking/Makefile4
-rw-r--r--linux-basics/networking/pres_networking_en.tex47
-rw-r--r--linux-basics/package-management/Makefile4
-rw-r--r--linux-basics/package-management/pres_packaging_en.tex52
-rw-r--r--linux-basics/section.tex1
-rw-r--r--linux-basics/sh-programming/Makefile4
-rw-r--r--linux-basics/sh-programming/handout_sh-programming_de.tex28
-rw-r--r--linux-basics/sh-programming/pres_sh-programming_de.tex29
-rw-r--r--linux-basics/udev-basics/Makefile4
-rw-r--r--linux-basics/udev-basics/pres_udev_en.tex51
-rw-r--r--linux-basics/what-is-linux/Makefile4
-rw-r--r--linux-basics/what-is-linux/pres_what-is-linux_de.tex26
-rw-r--r--pres_master.tex43
-rw-r--r--protocols/Makefile2
-rw-r--r--protocols/section.tex1
-rw-r--r--protocols/socketcan/Makefile4
-rw-r--r--protocols/socketcan/pres_socketcan_de.tex57
-rw-r--r--realtime/Makefile2
-rw-r--r--realtime/rt-app-basics/Makefile4
-rw-r--r--realtime/rt-app-basics/pres_rt-app-basics_en.tex73
-rw-r--r--realtime/rt-basics/Makefile4
-rw-r--r--realtime/rt-basics/handout_rt-basics_de.tex32
-rw-r--r--realtime/rt-basics/pres_rt-basics_de.tex19
-rw-r--r--realtime/rt-specialties/Makefile4
-rw-r--r--realtime/rt-specialties/handout_rt-specialties_de.tex45
-rw-r--r--realtime/rt-specialties/pres_rt-specialties_de.tex24
-rw-r--r--realtime/section.tex1
46 files changed, 277 insertions, 640 deletions
diff --git a/Makefile b/Makefile
index 6fcc4a6..4d2542f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,5 +1,4 @@
-SUBDIRS = application-devel flash-memory frameworks kernel-devel
-#linux-basics realtime protocols
+SUBDIRS = application-devel flash-memory frameworks kernel-devel linux-basics protocols realtime
default:
make all
diff --git a/flash-memory/ubi/pres_ubi_de.tex b/flash-memory/ubi/pres_ubi_de.tex
index 42e2e49..410b899 100644
--- a/flash-memory/ubi/pres_ubi_de.tex
+++ b/flash-memory/ubi/pres_ubi_de.tex
@@ -21,5 +21,4 @@
\end{itemize}
\end{frame}
-
-\end{document}
+\input{tailpres}
diff --git a/handout_master.tex b/handout_master.tex
index d9fdf1d..68117f2 100644
--- a/handout_master.tex
+++ b/handout_master.tex
@@ -1,6 +1,11 @@
\input{configmasterhandout}
+\chapter{Grundlagen}
+\section{Aufbau}
+\input{./linux-basics/boot-process/handout_boot-process_de.tex}
+\input{./linux-basics/filesystem-structure/handout_file-system-structure_de.tex}
\chapter{Userspace}
\section{Applikationsentwicklung}
+\input{./linux-basics/sh-programming/handout_sh-programming_de.tex}
\input{./application-devel/app-debugging/handout_app-debugging_de.tex}
\input{./application-devel/devel-environment/handout_devel-environment_de.tex}
\section{Frameworks}
@@ -13,4 +18,7 @@
\input{./kernel-devel/kernel-basics/handout_kernel-basics_de.tex}
\input{./kernel-devel/kernel-build/handout_kernel-build_de.tex}
\input{./kernel-devel/uio-driver/handout_uio-driver_de.tex}
+\section{Echtzeit}
+\input{./realtime/rt-basics/handout_rt-basics_de.tex}
+\input{./realtime/rt-specialties/handout_rt-specialties_de.tex}
\input{tailmasterhandout}
diff --git a/kernel-devel/module-basics/pres_module-basics_de.tex b/kernel-devel/module-basics/pres_module-basics_de.tex
index 2adbf59..e303cca 100644
--- a/kernel-devel/module-basics/pres_module-basics_de.tex
+++ b/kernel-devel/module-basics/pres_module-basics_de.tex
@@ -68,7 +68,7 @@ MODULE_VERSION("0815");
\begin{frame}[fragile]
\frametitle{Rumpf Treiber}
\begin{tiny}
-\lstinputlisting{vain/vain.c}
+\lstinputlisting{kernel-devel/module-basics/vain/vain.c}
\end{tiny}
\end{frame}
@@ -76,7 +76,7 @@ MODULE_VERSION("0815");
\begin{frame}[fragile]
\frametitle{Makefile}
\begin{scriptsize}
-\lstinputlisting[language=make]{vain/Makefile}
+\lstinputlisting[language=make]{kernel-devel/module-basics/vain/Makefile}
\end{scriptsize}
\end{frame}
@@ -306,42 +306,42 @@ module_exit(vain_pci_exit);
\begin{frame}[fragile]
\frametitle{PCI Rumpf Treiber}
\begin{tiny}
-\lstinputlisting{vain_pci/vain_pci_1.c}
+\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_1.c}
\end{tiny}
\end{frame}
\begin{frame}[fragile]
\frametitle{PCI Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_pci/vain_pci_2.c}
+\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_2.c}
\end{tiny}
\end{frame}
\begin{frame}[fragile]
\frametitle{PCI Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_pci/vain_pci_3.c}
+\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_3.c}
\end{tiny}
\end{frame}
\begin{frame}[fragile]
\frametitle{PCI Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_pci/vain_pci_4.c}
+\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_4.c}
\end{tiny}
\end{frame}
\begin{frame}[fragile]
\frametitle{PCI Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_pci/vain_pci_5.c}
+\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_5.c}
\end{tiny}
\end{frame}
\begin{frame}[fragile]
\frametitle{PCI Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_pci/vain_pci_6.c}
+\lstinputlisting{kernel-devel/module-basics/vain_pci/vain_pci_6.c}
\end{tiny}
\end{frame}
@@ -488,35 +488,35 @@ static void __exit vain_plat_exit(void)
\begin{frame}[fragile]
\frametitle{Platform Rumpf Treiber}
\begin{tiny}
-\lstinputlisting{vain_plat/vain_plat_1.c}
+\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_1.c}
\end{tiny}
\end{frame}
\begin{frame}[fragile]
\frametitle{Platform Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_plat/vain_plat_2.c}
+\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_2.c}
\end{tiny}
\end{frame}
\begin{frame}[fragile]
\frametitle{Platform Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_plat/vain_plat_3.c}
+\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_3.c}
\end{tiny}
\end{frame}
\begin{frame}[fragile]
\frametitle{Platform Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_plat/vain_plat_4.c}
+\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_4.c}
\end{tiny}
\end{frame}
\begin{frame}[fragile]
\frametitle{Platform Rumpf Treiber (fort.)}
\begin{tiny}
-\lstinputlisting{vain_plat/vain_plat_5.c}
+\lstinputlisting{kernel-devel/module-basics/vain_plat/vain_plat_5.c}
\end{tiny}
\end{frame}
diff --git a/linux-basics/Makefile b/linux-basics/Makefile
index c0c47ad..0a202ea 100644
--- a/linux-basics/Makefile
+++ b/linux-basics/Makefile
@@ -1,4 +1,4 @@
-SUBDIRS = `ls -1 | grep -v *.tex | grep -v Makefile`
+SUBDIRS = `ls -1 | grep -v *.tex | grep -v Makefile | grep -v TODO`
all clean::
for dir in $(SUBDIRS) ; do \
diff --git a/linux-basics/boot-process/Makefile b/linux-basics/boot-process/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/boot-process/Makefile
+++ b/linux-basics/boot-process/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/boot-process/handout_boot-process_de.tex b/linux-basics/boot-process/handout_boot-process_de.tex
index 7f39dc7..0b36a61 100644
--- a/linux-basics/boot-process/handout_boot-process_de.tex
+++ b/linux-basics/boot-process/handout_boot-process_de.tex
@@ -1,14 +1,8 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
+\subsection{Der Linux-Boot-Prozess}
-\section*{Der Linux-Boot-Prozess}
-
-\subsection*{Aufgaben des Bootloaders}
+\subsubsection{Aufgaben des Bootloaders}
Hauptaufgabe des Bootloaders ist die rudimentäre Initialisierung der
Hardware, so dass mindestens das RAM benutzt werden kann. Dazu ist auf den
@@ -39,7 +33,7 @@ zImage steht (natürlich unkomprimiert) der Dekompressor-Code. Der Bootloader
springt diese Adresse an und hat damit seine Arbeit beendet. Alles weitere
läuft im Kernel ab.
-\subsection*{Gängige Bootloader}
+\subsubsection{Gängige Bootloader}
Die Wahl des Bootloaders ist weitgehend eine Geschmacksfrage. Die
verbreiteten Bootloader U-Boot und Redboot bieten im Wesentlichen die gleiche
@@ -72,7 +66,7 @@ Bootkernel sind ausserdem komplexe Aufgaben während des Bootvorgangs,
beispielsweise automatisierte und sichere Firmware-Updates leicht
realisierbar.
-\subsection*{Bootprobleme: Im Bootloader}
+\subsubsection{Bootprobleme: Im Bootloader}
Während der Entwicklungsphase sind Probleme im Bootloader besonders
unangenehm. Falls dieser bereits abstürzt, ehe er die serielle Schnittstelle
@@ -106,7 +100,7 @@ Häufige Problemquellen im Bootloader sind beispielsweise:
falschen IP-Adressen bis hin zu Treiber- oder Hardware-Problemen.
\end{itemize}
-\subsection*{Bootprobleme: Im Kernel}
+\subsubsection{Bootprobleme: Im Kernel}
Bootprobleme im Kernel sind vergleichsweise einfach zu finden, sobald man
eine Konsole auf der seriellen Schnittstelle hat. Der Kernel gibt meist recht
@@ -135,7 +129,7 @@ Fehlermeldung hängen bleibt, anstatt \cmd{/sbin/init} zu starten, dann
liegt dies oft an fehlenden Device-Nodes im Verzeichnis \cmd{/dev}.
Überprüfen Sie dies.
-\subsection*{Bootprobleme: In den Startskripten}
+\subsubsection{Bootprobleme: In den Startskripten}
Wenn der Kernel erfolgreich das Rootfs mounten und \cmd{/sbin/init} starten
konnte, wird letzteres versuchen, die in \cmd{/etc/inittab} angegebenen
@@ -152,4 +146,4 @@ gefunden wurde oder kein Netzwerkkabel eingesteckt ist. Des weiteren sollte
das Skript selber erkennen, wenn über die Netzwerkschnittstelle das Rootfs
per NFS gemountet wurde, und dann eine Neukonfiguration tunlichst unterlassen.
-\end{document}
+\input{tailhandout}
diff --git a/linux-basics/boot-process/pres_boot-process_de.tex b/linux-basics/boot-process/pres_boot-process_de.tex
index 31910d6..722e94d 100644
--- a/linux-basics/boot-process/pres_boot-process_de.tex
+++ b/linux-basics/boot-process/pres_boot-process_de.tex
@@ -1,19 +1,11 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
+\input{configpres}
\title{Der Linux-Boot-Prozess}
-\institute{Linutronix GmbH}
-
-\begin{document}
-
\maketitle
-% ----- Slide ------------------
+\subsection{Boot Prozess}
+
+\subsubsection{Problematik}
\begin{frame}
\frametitle{Aufgaben des Bootloaders}
\begin{itemize}
@@ -28,7 +20,7 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Bootloader}
\begin{frame}
\frametitle{Gängige Bootloader}
\begin{itemize}
@@ -40,7 +32,7 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Struktur}
\begin{frame}
\frametitle{Ablauf des Bootprozesses}
\begin{itemize}
@@ -62,7 +54,7 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Stolperstellen}
\begin{frame}
\frametitle{Bootprobleme: 1. Im Bootloader}
\begin{itemize}
@@ -76,7 +68,6 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{Bootprobleme: 2. Im Kernel}
\begin{itemize}
@@ -90,7 +81,6 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{Bootprobleme: 3. In den Startskripten}
\begin{itemize}
@@ -102,6 +92,4 @@
\end{itemize}
\end{frame}
-
-
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/filesystem-structure/Makefile b/linux-basics/filesystem-structure/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/filesystem-structure/Makefile
+++ b/linux-basics/filesystem-structure/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/filesystem-structure/handout_file-system-structure_de.tex b/linux-basics/filesystem-structure/handout_file-system-structure_de.tex
index ebccec0..bd06c48 100644
--- a/linux-basics/filesystem-structure/handout_file-system-structure_de.tex
+++ b/linux-basics/filesystem-structure/handout_file-system-structure_de.tex
@@ -1,14 +1,8 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
+\subsection{Struktur eines Linux-Dateisystems}
-\section*{Struktur eines Linux-Dateisystems}
-
-\subsection*{Root-Filesystem}
+\subsubsection{Root-Filesystem}
Der Aufbau eines Linux-Systems wird im Wesentlichen durch die
\emph{Linux Standard Base (LSB)} bestimmt. Diese Vorgabe wurde Anfang 2004
@@ -140,7 +134,7 @@ cat /proc/meminfo
cat /proc/interrupts
\end{lstlisting}
-\subsection*{Zugriffsrechte}
+\subsubsection{Zugriffsrechte}
Da Unix vom Design her ein Multiuser-Betriebssystem ist, bestand von Anfang
an die Forderung nach einer Regelung der Benutzerrechte. Jeder Benutzer kann
@@ -163,7 +157,7 @@ angehört.
\newpage
-\subsection*{Kontrollfragen}
+\subsubsection{Kontrollfragen}
\begin{enumerate}
\item Warum ist es wichtig, dass bestimmte Dateien an einem standardisierten
@@ -173,4 +167,4 @@ angehört.
Datei tatsächlich starten dürfen?
\end{enumerate}
-\end{document}
+\input{tailhandout}
diff --git a/linux-basics/filesystem-structure/pres_file-system-structure_de.tex b/linux-basics/filesystem-structure/pres_file-system-structure_de.tex
index f5f4cdf..b4d71f4 100644
--- a/linux-basics/filesystem-structure/pres_file-system-structure_de.tex
+++ b/linux-basics/filesystem-structure/pres_file-system-structure_de.tex
@@ -1,20 +1,10 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
+\input{configpres}
\title{Struktur eines Linux-Dateisystems}
-\institute{Linutronix GmbH}
-
-\begin{document}
-
\maketitle
+\subsection{Struktur des Dateisystems}
-% ----- Slide ------------------
\begin{frame}
\begin{figure}[h]
\centering
@@ -22,7 +12,6 @@
\end{figure}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\begin{itemize}
\item \cmd{/boot}: Dateien des Bootloaders, evtl. Kernel
@@ -53,7 +42,7 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Mounts}
\begin{frame}
\frametitle{Der \cmd{mount}-Befehl}
\begin{itemize}
@@ -69,7 +58,7 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
+\subsubsection{Zugriffsrechte}
\begin{frame}
\frametitle{Zugriffsrechte}
\begin{itemize}
@@ -82,7 +71,6 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
\begin{frame}
\frametitle{Zugriffsrechte}
\begin{figure}[h]
@@ -91,4 +79,4 @@
\end{figure}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/filesystems/Makefile b/linux-basics/filesystems/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/filesystems/Makefile
+++ b/linux-basics/filesystems/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/filesystems/pres_filesystems_en.tex b/linux-basics/filesystems/pres_filesystems_en.tex
index 7dd5f57..5b1149b 100644
--- a/linux-basics/filesystems/pres_filesystems_en.tex
+++ b/linux-basics/filesystems/pres_filesystems_en.tex
@@ -1,51 +1,16 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Filesystems}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
-\frame{ \titlepage }
+\title{Filesystems}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
+\subsection{Filesystems}
+\subsubsection{Types}
\begin{frame}
\frametitle{Filesystem types}
\begin{itemize}
@@ -55,6 +20,7 @@
\end{itemize}
\end{frame}
+\subsubsection{For block devices}
\begin{frame}
\frametitle{Filesystems for block devices}
\begin{itemize}
@@ -65,6 +31,7 @@
\end{itemize}
\end{frame}
+\subsubsection{For flash}
\begin{frame}
\frametitle{Flash filesystems}
\begin{itemize}
@@ -75,6 +42,7 @@
\end{itemize}
\end{frame}
+\subsubsection{Journaling}
\begin{frame}
\frametitle{Journalling Filesystems}
\begin{alertblock}{What is a journalling filesystem?}
@@ -85,6 +53,7 @@ crash or a power failure).
\end{alertblock}
\end{frame}
+\subsubsection{Technical terms}
\begin{frame}
\frametitle{Technical terms}
\begin{itemize}
@@ -96,6 +65,7 @@ size of a filesystem
\end{itemize}
\end{frame}
+\subsubsection{EXT filesystems}
\begin{frame}
\frametitle{EXT2}
\begin{itemize}
@@ -129,6 +99,7 @@ sticks (ext2 minimizes the number of writes)
\end{itemize}
\end{frame}
+\subsubsection{XFS}
\begin{frame}
\frametitle{XFS}
\begin{itemize}
@@ -140,6 +111,7 @@ sticks (ext2 minimizes the number of writes)
\end{itemize}
\end{frame}
+\subsubsection{Flash filesystems}
\begin{frame}
\frametitle{JFFS2}
\begin{itemize}
@@ -173,6 +145,7 @@ of data are stored): XFS
\end{itemize}
\end{frame}
+\subsubsection{Creating and testing filesystems}
\begin{frame}[fragile]
\frametitle{Creating filesystems}
\begin{lstlisting}[keywordstyle=\ttfamily\footnotesize]
@@ -239,7 +212,7 @@ your flash filesystem
\end{itemize}
\end{frame}
-\section*{sources}
+\subsubsection{sources}
\begin{frame}
\begin{thebibliography}{1}
\bibitem{ext2} http://en.wikipedia.org/wiki/Ext2
@@ -249,4 +222,5 @@ your flash filesystem
\bibitem{UBIFS} http://en.wikipedia.org/wiki/UBIFS
\end{thebibliography}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/linux-basics/important-tools/Makefile b/linux-basics/important-tools/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/important-tools/Makefile
+++ b/linux-basics/important-tools/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/important-tools/pres_important_tools_de.tex b/linux-basics/important-tools/pres_important_tools_de.tex
index ec0b979..1835893 100644
--- a/linux-basics/important-tools/pres_important_tools_de.tex
+++ b/linux-basics/important-tools/pres_important_tools_de.tex
@@ -1,26 +1,11 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
-
-\lstset{keywordstyle=\color{blue},commentstyle=\color{orange}}
-
-\title{Block \lq Wichtige Kommandos / Werkzeuge \rq}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
+\title{\lq Wichtige Kommandos / Werkzeuge \rq}
\maketitle
-\begin{frame}
-\frametitle{Übersicht}
-\tableofcontents
-\end{frame}
+\subsection{wichtige Kommandos / Werkzeuge}
-\section{Basiskommandos}
+\subsubsection{Basiskommandos}
\begin{frame}
\frametitle{Grundlegende Kommandos}
\begin{center}
@@ -85,7 +70,7 @@ ln & Link anlegen \\
\end{center}
\end{frame}
-\section{Prozesse überwachen}
+\subsubsection{Prozesse überwachen}
\begin{frame}[containsverbatim]
\frametitle{Prozessliste anzeigen mit ps}
@@ -136,7 +121,7 @@ Swap: 1020088k total, 150524k used, 869564k free, 124764k cached
\end{lstlisting}
\end{frame}
-\section{Arbeiten mit Text}
+\subsubsection{Arbeiten mit Text}
\begin{frame}[containsverbatim]
\frametitle{Suche nach Text}
@@ -214,7 +199,7 @@ tar -tzf linux-2.6.32.tar.gz
\end{lstlisting}
\end{frame}
-\section{diff und patch}
+\subsubsection{diff und patch}
\begin{frame}[containsverbatim]
\frametitle{diff}
\begin{lstlisting}[language=bash]
@@ -238,4 +223,4 @@ bzcat patch-2.6.31.13.bz2 | patch -p1
\end{lstlisting}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/licenses/Makefile b/linux-basics/licenses/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/licenses/Makefile
+++ b/linux-basics/licenses/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/licenses/pres_licenses_en.tex b/linux-basics/licenses/pres_licenses_en.tex
index dfda2b2..0b7ffbc 100644
--- a/linux-basics/licenses/pres_licenses_en.tex
+++ b/linux-basics/licenses/pres_licenses_en.tex
@@ -1,51 +1,17 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Opensource-Licenses}
-\institute{Linutronix GmbH}
+\input{configpres}
-\begin{document}
-
-\frame{ \titlepage }
+\title{Opensource-Licenses}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
+\subsection{Opensource-Licenses}
+
+\subsubsection{GPL}
\begin{frame}
\frametitle{GPL: GNU \textbf{G}eneral \textbf{P}ublic \textbf{L}icense}
You are allowed to:
@@ -91,6 +57,7 @@ its own license
\end{itemize}
\end{frame}
+\subsubsection{Apache, BSD}
\begin{frame}
\frametitle{Apache License}
You are allowed to:
@@ -151,4 +118,4 @@ This means:
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/linux-processes/Makefile b/linux-basics/linux-processes/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/linux-processes/Makefile
+++ b/linux-basics/linux-processes/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/linux-processes/pres_linux-processes_en.tex b/linux-basics/linux-processes/pres_linux-processes_en.tex
index 73582d8..f7774c3 100644
--- a/linux-basics/linux-processes/pres_linux-processes_en.tex
+++ b/linux-basics/linux-processes/pres_linux-processes_en.tex
@@ -1,52 +1,15 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Linux process mangagement / Scheduling / Daemons}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
-\frame{ \titlepage }
+\title{Linux process mangagement / Scheduling / Daemons}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
-\section{Process Management}
+\subsection{Process Management}
\begin{frame}
\frametitle{Process creation}
From the operatings system's point of view, there are basically two steps,
@@ -96,7 +59,7 @@ jan 5416 [...] SNs [...] bash
The first column in the STAT field shows the process state.
\end{frame}
-\section{Scheduling}
+\subsection{Scheduling}
\begin{frame}
\frametitle{The LINUX Scheduler}
\begin{itemize}
@@ -193,7 +156,7 @@ Scheduling policies:
\end{verbatim}
\end{frame}
-\section{Daemons}
+\subsection{Daemons}
\begin{frame}
\frametitle{Daemons}
\begin{alertblock}{What is a Daemon?}
@@ -214,11 +177,12 @@ working directory and so on...)
\end{itemize}
\end{frame}
-\section*{sources}
+\subsection{sources}
\begin{frame}
\begin{thebibliography}{1}
\bibitem{kerisk10} The Linux Programming Interface (Michael Kerisk), no starch
press, ISBN 978-1-59327-220-3
\end{thebibliography}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/linux-basics/networking/Makefile b/linux-basics/networking/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/networking/Makefile
+++ b/linux-basics/networking/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/networking/pres_networking_en.tex b/linux-basics/networking/pres_networking_en.tex
index 2adfc3c..21ac72f 100644
--- a/linux-basics/networking/pres_networking_en.tex
+++ b/linux-basics/networking/pres_networking_en.tex
@@ -1,51 +1,16 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Network configuration}
-\institute{Linutronix GmbH}
+\input{configpres}
-\begin{document}
-
-\frame{ \titlepage }
+\title{Network configuration}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
+\subsection{Network configuration}
+
\begin{frame}[fragile]
\frametitle{ifconfig}
\begin{verbatim}
@@ -148,4 +113,4 @@ SSH-2.0-dropbear_0.48
\end{itemize}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/package-management/Makefile b/linux-basics/package-management/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/package-management/Makefile
+++ b/linux-basics/package-management/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/package-management/pres_packaging_en.tex b/linux-basics/package-management/pres_packaging_en.tex
index 2a402c6..ad5e37e 100644
--- a/linux-basics/package-management/pres_packaging_en.tex
+++ b/linux-basics/package-management/pres_packaging_en.tex
@@ -1,51 +1,17 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Debian Package Management}
-\institute{Linutronix GmbH}
+\input{configpres}
-\begin{document}
-
-\frame{ \titlepage }
+\title{Debian Package Management}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
+\subsection{Debian Package Management}
+
+\subsubsection{Introduction}
\begin{frame}
\frametitle{Package Management}
\begin{itemize}
@@ -64,6 +30,7 @@
\end{itemize}
\end{frame}
+\subsubsection{dpkg}
\begin{frame}[fragile]
\frametitle{Using dpkg}
\begin{verbatim}
@@ -99,6 +66,7 @@ dpkg-reconfigure packagename
\end{verbatim}
\end{frame}
+\subsubsection{APT}
\begin{frame}
\frametitle{The \textbf{A}dvanced \textbf{P}ackaging \textbf{T}oolkit}
\begin{itemize}
@@ -225,6 +193,7 @@ $ apt-get moo
\end{verbatim}
\end{frame}
+\subsubsection{deb packages}
\begin{frame}
\frametitle{The .deb file format}
A Debian archive contains three files:
@@ -292,6 +261,7 @@ rw-r--r-- 0/0 [...] 2011 data.tar.gz
\end{verbatim}
\end{frame}
+\subsubsection{debhelper}
\begin{frame}[fragile]
\frametitle{dh\_make}
dh\_make is a helper to create skeletons for the contents in the DEBIAN/
@@ -309,4 +279,4 @@ $ dh_make -c gpl2 -n -s -e m@mustermann.de
\end{thebibliography}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/section.tex b/linux-basics/section.tex
new file mode 100644
index 0000000..7b2b2b4
--- /dev/null
+++ b/linux-basics/section.tex
@@ -0,0 +1 @@
+\section{Linux}
diff --git a/linux-basics/sh-programming/Makefile b/linux-basics/sh-programming/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/sh-programming/Makefile
+++ b/linux-basics/sh-programming/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/sh-programming/handout_sh-programming_de.tex b/linux-basics/sh-programming/handout_sh-programming_de.tex
index e9c84b4..fd419e7 100644
--- a/linux-basics/sh-programming/handout_sh-programming_de.tex
+++ b/linux-basics/sh-programming/handout_sh-programming_de.tex
@@ -1,15 +1,8 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
-
-\section*{Einführung in die Shell-Programmierung}
-
-\subsection*{Aufbau von Shell-Skripten}
+\subsection{Shell-Programmierung}
+\subsubsection{Aufbau von Shell-Skripten}
\begin{itemize}
\item Syntax: \cmd{\#!/ein/interpreter}
\item Beliebiges Programm als Interpreter möglich
@@ -18,13 +11,12 @@
\end{itemize}
Das übliche \cmd{Hello World} sieht als Shell-Skript etwa so aus:
-
\begin{lstlisting}
#!/bin/sh
echo Hello World
\end{lstlisting}
-\subsection*{Variablen und Parameter}
+\subsubsection{Variablen und Parameter}
\begin{lstlisting}
#!/bin/sh
@@ -41,7 +33,7 @@ Variablen können einfach in der Form \cmd{Name=Wert} geschrieben werden. Sie
haben in Shell-Skripten keinen Typ und werden bei der ersten Verwendung
automatisch angelegt.
-\subsection*{Ausgabe-Umleitung}
+\subsubsection{Ausgabe-Umleitung}
\begin{lstlisting}
#!/bin/sh
@@ -57,7 +49,7 @@ exit 0
\end{lstlisting}
-\subsection*{Bedingte Verzweigungen}
+\subsubsection{Bedingte Verzweigungen}
Allgemeine Form:
@@ -166,7 +158,7 @@ while [ bedingung ] ; do ... ; done
# bedingung wie bei if
\end{lstlisting}
-\subsection*{Funktionen}
+\subsubsection{Funktionen}
\begin{lstlisting}
#!/bin/sh
@@ -180,7 +172,7 @@ error_log() {
error_log "Datei nicht gefunden."
\end{lstlisting}
-\subsection*{Einbinden anderer Skripte}
+\subsubsection{Einbinden anderer Skripte}
\begin{lstlisting}
#!/bin/sh
@@ -193,7 +185,7 @@ my_other_script&
\end{lstlisting}
-\subsection*{Zugriff auf Dateien}
+\subsubsection{Zugriff auf Dateien}
\begin{lstlisting}
#!/bin/sh
@@ -210,4 +202,4 @@ done < dateiliste.txt
\end{lstlisting}
-\end{document}
+\input{tailhandout}
diff --git a/linux-basics/sh-programming/pres_sh-programming_de.tex b/linux-basics/sh-programming/pres_sh-programming_de.tex
index 9334267..9bb1f01 100644
--- a/linux-basics/sh-programming/pres_sh-programming_de.tex
+++ b/linux-basics/sh-programming/pres_sh-programming_de.tex
@@ -1,19 +1,8 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
+\input{configpres}
\title{Einführung in die Shell-Programmierung}
-\institute{Linutronix GmbH}
-
-\begin{document}
-
\maketitle
-% ----- Slide ------------------
\begin{frame}
\frametitle{Aufbau von Shell-Skripten}
\begin{itemize}
@@ -27,7 +16,6 @@
\end{itemize}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Hello World als Shell-Script}
\begin{lstlisting}
@@ -36,7 +24,6 @@ echo Hello World
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Variablen und Parameter}
\begin{lstlisting}
@@ -54,7 +41,6 @@ echo
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Ausgabe-Umleitung}
\begin{lstlisting}
@@ -73,7 +59,6 @@ exit 0
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Bedingte Verzweigungen}
\begin{lstlisting}
@@ -94,7 +79,6 @@ if [ bedingung ] ; then ... ; fi
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Bedingte Verzweigungen}
\begin{lstlisting}
@@ -112,7 +96,6 @@ if [ $string != "hello" ] ; then ...
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Bedingte Verzweigungen}
\begin{lstlisting}
@@ -132,7 +115,6 @@ if [ $string != "hello" ] ; then ...
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Bedingte Verzweigungen}
\begin{lstlisting}
@@ -147,7 +129,6 @@ exit 0
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Bedingte Verzweigungen}
\begin{lstlisting}
@@ -162,7 +143,6 @@ grep Jones addr.txt || echo "No Jones found!"
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Schleifen}
\begin{lstlisting}
@@ -181,7 +161,6 @@ done
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Schleifen}
\begin{lstlisting}
@@ -199,7 +178,6 @@ while [ bedingung ] ; do ... ; done
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Funktionen}
\begin{lstlisting}
@@ -216,7 +194,6 @@ error_log "Datei nicht gefunden."
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Einbinden anderer Skripte}
\begin{lstlisting}
@@ -231,7 +208,6 @@ my_other_script&
\end{lstlisting}
\end{frame}
-% ----- Slide ------------------
\begin{frame}[fragile]
\frametitle{Zugriff auf Dateien}
\begin{lstlisting}
@@ -250,5 +226,4 @@ done < dateiliste.txt
\end{lstlisting}
\end{frame}
-
-\end{document}
+\input{tailpres}
diff --git a/linux-basics/udev-basics/Makefile b/linux-basics/udev-basics/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/udev-basics/Makefile
+++ b/linux-basics/udev-basics/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/udev-basics/pres_udev_en.tex b/linux-basics/udev-basics/pres_udev_en.tex
index 5d8eacc..f08a35a 100644
--- a/linux-basics/udev-basics/pres_udev_en.tex
+++ b/linux-basics/udev-basics/pres_udev_en.tex
@@ -1,51 +1,16 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{The UDEV Daemon}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
-\frame{ \titlepage }
+\title{The UDEV Daemon}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
+\subsection{UDEV}
+
\begin{frame}
\frametitle{What is UDEV?}
\begin{itemize}
@@ -101,6 +66,7 @@ udevadm monitor
\end{verbatim}
\end{frame}
+\subsubsection{UDEV rules}
\begin{frame}
\frametitle{Writing UDEV rules}
\begin{itemize}
@@ -168,11 +134,12 @@ Assignments:
\end{verbatim}
\end{frame}
-\section*{sources}
+\subsubsection{sources}
\begin{frame}
\begin{thebibliography}{1}
\bibitem{udev} http://reactivated.net/writing\_udev\_rules.html
\bibitem{manudev} man udev
\end{thebibliography}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/linux-basics/what-is-linux/Makefile b/linux-basics/what-is-linux/Makefile
index 4663d52..d641258 100644
--- a/linux-basics/what-is-linux/Makefile
+++ b/linux-basics/what-is-linux/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/linux-basics/what-is-linux/pres_what-is-linux_de.tex b/linux-basics/what-is-linux/pres_what-is-linux_de.tex
index 84af466..4283349 100644
--- a/linux-basics/what-is-linux/pres_what-is-linux_de.tex
+++ b/linux-basics/what-is-linux/pres_what-is-linux_de.tex
@@ -1,19 +1,11 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
+\input{configpres}
\title{Was ist Linux?}
-%% \author{Hans-Jürgen Koch}
-\institute{Linutronix GmbH}
-
-\begin{document}
-
\maketitle
-\section{Entstehung}
+\subsection{Was ist Linux?}
+
+\subsubsection{Entstehung}
\begin{frame}
\begin{figure}[h]
\centering
@@ -61,7 +53,7 @@ Linus Torvalds (1991 / Minix newsgroup)
\end{figure}
\end{frame}
-\section{Linux, GNU/Linux, \dots}
+\subsubsection{Linux, GNU/Linux, \dots}
\begin{frame}
\frametitle{Begriffsdefinition}
\begin{itemize}
@@ -94,7 +86,7 @@ GNU seit 1984, bestrebt Entwicklung eines 'UNIX-like OS'
komplette Liste: http://directory.fsf.org/GNU/
\end{frame}
-\section{Benutzerscnittstellen}
+\subsubsection{Benutzerscnittstellen}
\begin{frame}
\begin{description}
\item[textbasiert] bash, zsh, korn-shell, \dots
@@ -147,7 +139,7 @@ komplette Liste: http://directory.fsf.org/GNU/
\end{description}
\end{frame}
-\section{Distributionen}
+\subsubsection{Distributionen}
\begin{frame}
\frametitle{Begriffsdefinition}
Eine klassische Linux Distribution assistiert den Benutzer
@@ -169,7 +161,7 @@ Eine klassische Linux Distribution assistiert den Benutzer
\end{itemize}
\end{frame}
-\section{Linux im Alltag}
+\subsubsection{Linux im Alltag}
\begin{frame}[fragile]
\frametitle{unterstützte Architekturen}
\begin{verbatim}
@@ -193,4 +185,4 @@ x86 m68knommu mn10300 s390 sparc
\end{itemize}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/pres_master.tex b/pres_master.tex
index b0fff19..bfcfa78 100644
--- a/pres_master.tex
+++ b/pres_master.tex
@@ -1,22 +1,47 @@
\input{configmasterpres}
+\input{./linux-basics/section}
+\input{./linux-basics/what-is-linux/pres_what-is-linux_de.tex}
+\input{./linux-basics/important-tools/pres_important_tools_de.tex}
+\input{./linux-basics/linux-processes/pres_linux-processes_en.tex}
+\input{./linux-basics/boot-process/pres_boot-process_de.tex}
+\input{./linux-basics/filesystem-structure/pres_file-system-structure_de.tex}
+\input{./linux-basics/filesystems/pres_filesystems_en.tex}
+\input{./linux-basics/networking/pres_networking_en.tex}
+\input{./linux-basics/package-management/pres_packaging_en.tex}
+\input{./linux-basics/sh-programming/pres_sh-programming_de.tex}
+\input{./linux-basics/udev-basics/pres_udev_en.tex}
+\input{./linux-basics/licenses/pres_licenses_en.tex}
+
\input{./application-devel/section}
-\input{./application-devel/app-debugging/pres_app-debugging_de}
-\input{./application-devel/cross-devel/pres_cross-devel_de}
-\input{./application-devel/cross-devel/pres_cross-devel-ppc-qemu_de}
\input{./application-devel/devel-environment/pres_devel-environment_de.tex}
\input{./application-devel/devel-scenarios/pres_devel_scenarios_de.tex}
\input{./application-devel/embedded-devel/pres_embedded-devel_de.tex}
+\input{./application-devel/app-debugging/pres_app-debugging_de}
+\input{./application-devel/cross-devel/pres_cross-devel_de}
+\input{./application-devel/cross-devel/pres_cross-devel-ppc-qemu_de}
\input{./application-devel/posix-ipc/pres_posix_ipc_de.tex}
-\input{./flash-memory/section}
-\input{./flash-memory/flash-filesystems/pres_flashfilesystems_en.tex}
-\input{./flash-memory/mtd/pres_mtd_de.tex}
-\input{./flash-memory/ubi/pres_ubi_de.tex}
+
\input{./frameworks/section}
\input{./frameworks/middleware/pres_middleware.tex}
+
+\input{./protocols/section}
+\input{./protocols/socketcan/pres_socketcan_de.tex}
+
\input{./kernel-devel/section.tex}
-\input{./kernel-devel/char-device/pres_char-device_de.tex}
\input{./kernel-devel/kernel-basics/pres_kernel-basics_de.tex}
-\input{./kernel-devel/linux-mm-basics/pres_linux-mm-basics_en.tex}
\input{./kernel-devel/module-basics/pres_module-basics_de.tex}
+\input{./kernel-devel/char-device/pres_char-device_de.tex}
+\input{./kernel-devel/linux-mm-basics/pres_linux-mm-basics_en.tex}
\input{./kernel-devel/uio-driver/pres_uio-driver_en.tex}
+
+\input{./flash-memory/section}
+\input{./flash-memory/mtd/pres_mtd_de.tex}
+\input{./flash-memory/flash-filesystems/pres_flashfilesystems_en.tex}
+\input{./flash-memory/ubi/pres_ubi_de.tex}
+
+\input{./realtime/section}
+\input{./realtime/rt-basics/pres_rt-basics_de.tex}
+\input{./realtime/rt-specialties/pres_rt-specialties_de.tex}
+\input{./realtime/rt-app-basics/pres_rt-app-basics_en.tex}
+
\input{tailmasterpres}
diff --git a/protocols/Makefile b/protocols/Makefile
index c0c47ad..0a202ea 100644
--- a/protocols/Makefile
+++ b/protocols/Makefile
@@ -1,4 +1,4 @@
-SUBDIRS = `ls -1 | grep -v *.tex | grep -v Makefile`
+SUBDIRS = `ls -1 | grep -v *.tex | grep -v Makefile | grep -v TODO`
all clean::
for dir in $(SUBDIRS) ; do \
diff --git a/protocols/section.tex b/protocols/section.tex
new file mode 100644
index 0000000..a3a1c82
--- /dev/null
+++ b/protocols/section.tex
@@ -0,0 +1 @@
+\section{Protokolle}
diff --git a/protocols/socketcan/Makefile b/protocols/socketcan/Makefile
index 4663d52..d641258 100644
--- a/protocols/socketcan/Makefile
+++ b/protocols/socketcan/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/protocols/socketcan/pres_socketcan_de.tex b/protocols/socketcan/pres_socketcan_de.tex
index d57d079..16d0002 100644
--- a/protocols/socketcan/pres_socketcan_de.tex
+++ b/protocols/socketcan/pres_socketcan_de.tex
@@ -1,57 +1,16 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[utf8]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\fontsize{7}{9}\selectfont,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Can unter Linux: SocketCAN}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
-\frame{ \titlepage }
+\title{SocketCAN}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
-%\AtBeginSection[]
-%{
-% \begin{frame}<beamer>
-% \tableofcontents[currentsection,currentsubsection]
-% \end{frame}
-%}
+\subsection{SocketCAN}
+
\begin{frame}
\frametitle{Übersicht}
\begin{itemize}
@@ -87,6 +46,7 @@ vcan0 Link encap:UNSPEC Hardware Adresse 00-00-00-00-00
\end{verbatim}
\end{frame}
+\subsubsection{Tools}
\begin{frame}[fragile]
\frametitle{cansend / candump}
cansend:
@@ -131,6 +91,7 @@ cansniffer vcan0:
\end{verbatim}
\end{frame}
+\subsubsection{Programmbeispiel}
\begin{frame}[fragile]
\frametitle{Programmierbeispiel: can example}
\begin{lstlisting}
@@ -182,6 +143,7 @@ Received -> 22
\end{verbatim}
\end{frame}
+\subsubsection{Logger}
\begin{frame}[fragile]
\frametitle{canlogserver}
\begin{verbatim}
@@ -203,4 +165,5 @@ Escape character is '^]'.
(1289664133.692351) vcan0 42A#04
\end{verbatim}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/realtime/Makefile b/realtime/Makefile
index c0c47ad..0a202ea 100644
--- a/realtime/Makefile
+++ b/realtime/Makefile
@@ -1,4 +1,4 @@
-SUBDIRS = `ls -1 | grep -v *.tex | grep -v Makefile`
+SUBDIRS = `ls -1 | grep -v *.tex | grep -v Makefile | grep -v TODO`
all clean::
for dir in $(SUBDIRS) ; do \
diff --git a/realtime/rt-app-basics/Makefile b/realtime/rt-app-basics/Makefile
index 4663d52..d641258 100644
--- a/realtime/rt-app-basics/Makefile
+++ b/realtime/rt-app-basics/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/realtime/rt-app-basics/pres_rt-app-basics_en.tex b/realtime/rt-app-basics/pres_rt-app-basics_en.tex
index 6179851..90b2ce3 100644
--- a/realtime/rt-app-basics/pres_rt-app-basics_en.tex
+++ b/realtime/rt-app-basics/pres_rt-app-basics_en.tex
@@ -1,70 +1,17 @@
-\documentclass[11pt]{beamer}
-
-%\usepackage{ngerman}
-\usepackage{times}
-\usepackage{graphicx}
-\usepackage{pgf,pgfarrows,pgfnodes,pgfautomata,pgfheaps}
-\usepackage{amsmath,amssymb}
-\usepackage[latin1]{inputenc}
-\usepackage{listings,color}
-\definecolor{lbcolor}{RGB}{255,210,150}
-\lstset{
- language=C,
- numbers=left,
- stepnumber=1,
- numbersep=5pt,
- numberstyle=\tiny,
- breaklines=true,
- breakautoindent=true,
- postbreak=\space,
- tabsize=2,
- basicstyle=\ttfamily\footnotesize,
- showspaces=false,
- showstringspaces=false,
- extendedchars=true,
- backgroundcolor=\color{lbcolor},
- keywordstyle=\bf ,
- commentstyle=\color{green},
- stringstyle=\color{red}
-}
-
-\mode<presentation>
-{
- \usetheme{linutronix}
-}
-
% on the following slides, include icon in the left sidebar
\def\lximg{/usr/share/lx/icons/fueller.png}
-\title{Realtime application development using Linux-RT\_PREEMPT}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
-\frame{ \titlepage }
+\title{Realtime application development using Linux-RT\_PREEMPT}
+\maketitle
% stop displaying 'fueller.png' on the following slides
\def\lximg{none}
-%\AtBeginSection[]
-%{
-% \begin{frame}<beamer>
-% \tableofcontents[currentsection,currentsubsection]
-% \end{frame}
-%}
-
-\AtBeginSubsection[]
-{
- \begin{frame}<beamer>
- \tableofcontents[currentsection,currentsubsection]
- \end{frame}
-}
-
-\begin{frame}
- \tableofcontents
-\end{frame}
+\subsection{RT\_PREEMPT Realtime development}
-\section{Basics}
+\subsubsection{Basics}
\begin{frame}[fragile]
\frametitle{Check sched\_rt\_runtime\_us!!}
\begin{verbatim}
@@ -125,7 +72,7 @@ for (i = 0; i < SAVE_STACK_SIZE; i += sysconf(_SC_PAGESIZE))
\end{lstlisting}
\end{frame}
-\section{Clocks and Timers}
+\subsubsection{Clocks and Timers}
\begin{frame}
\frametitle{Clocks: Basic}
@@ -207,7 +154,7 @@ int main(void)
\end{lstlisting}
\end{frame}
-\section{Locking}
+\subsubsection{Locking}
\begin{frame}
\frametitle{Locking}
\begin{itemize}
@@ -237,7 +184,7 @@ pthread_mutex_destroy(&master_lock);
\end{lstlisting}
\end{frame}
-\section{Signalling}
+\subsubsection{Signalling}
\begin{frame}
\frametitle{Signalling mechanisms}
\begin{itemize}
@@ -294,7 +241,7 @@ pthread_mutex_unlock(&mutex);
\end{lstlisting}
\end{frame}
-\section*{sources}
+\subsubsection{sources}
\begin{frame}
\frametitle{sources}
\small
@@ -305,4 +252,4 @@ pthread_mutex_unlock(&mutex);
\end{thebibliography}
\end{frame}
-\end{document}
+\input{tailpres}
diff --git a/realtime/rt-basics/Makefile b/realtime/rt-basics/Makefile
index 4663d52..d641258 100644
--- a/realtime/rt-basics/Makefile
+++ b/realtime/rt-basics/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/realtime/rt-basics/handout_rt-basics_de.tex b/realtime/rt-basics/handout_rt-basics_de.tex
index 8d98ccc..dd775b6 100644
--- a/realtime/rt-basics/handout_rt-basics_de.tex
+++ b/realtime/rt-basics/handout_rt-basics_de.tex
@@ -1,16 +1,10 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
-\begin{document}
+\subsection{Realtime Linux}
-\section*{Realtime Linux}
+\subsubsection{Grundlagen}
-\subsection*{Grundlagen}
-
-\subsubsection*{Was ist Echtzeit?}
+\paragraph{Was ist Echtzeit?}
Vor der Betrachtung verschiedener Ansätze, Linux echtzeitfähig zu machen, ist es
notwendig, einige grundlegende Begrifflichkeiten zur erläutern:
\begin{itemize}
@@ -24,14 +18,14 @@ Auftreten eines Events und der Reaktion auf dieses Event.
\item Jitter: Mit Jitter bezeichnet man die Varianz der Latenzzeit.
\end{itemize}
-\subsubsection*{Anwendungsbereiche}
+\paragraph{Anwendungsbereiche}
Die wohl gängigsten Anwendungsbereiche für Echtzeitsysteme sind die
Steuerungs- und Automatisierungstechnik, Multimediasysteme und die Luft- und
Raumfahrttechnik. Ein weiteres interessantes Einsatzgebiet stellt die
Finanzdienstleistung dar. Hier geht es insbesondere um die zeitgenaue,
zuverlässige Abwicklung von Finanztransaktionen über hochverteilte Systeme.
-\subsubsection*{Anforderungen an ein Echtzeitsystem}
+\paragraph{Anforderungen an ein Echtzeitsystem}
Ein Echtzeitsystem muß in der Lage sein, in einem garantierten Zeitrahmen auf
ein Ereignis zu reagieren. Es muß also möglich sein, in möglichst kurzer Zeit
von einer niederprioren Task auf eine hochpriore Task umzuschalten, falls diese
@@ -53,8 +47,8 @@ Prioritätsgrenze festgelegt. Jede Task, die die Resource belegt, wird auf die
Prioritätsgrenze der Resource angehoben.
\end{itemize}
-\subsection*{Realtime Linux Varianten}
-\subsubsection*{Historisches zu Echtzeitlinux}
+\subsubsection{Realtime Linux Varianten}
+\paragraph{Historisches zu Echtzeitlinux}
Im Gegensatz zu traditionellen Echtzeitsystem wurde Linux ursprünglich nicht als
solches designt. Als General Purpose Operating System wurde Linux auf Fairness
und Durchsatz optimiert. Linux echtzeitfähig zu machen, bedeutet also, ein
@@ -73,7 +67,7 @@ und ist die Variante, die von den Linux Entwicklern zur Integration in den
Hauptzweig von Linux abgenickt wurde.
\end{itemize}
-\subsubsection*{RTAI}
+\paragraph{RTAI}
Das Realtime Application Interface (RTAI) ist eine Entwicklung der Technischen
Universität Mailand und entstand unter der Schirmherrschaft von Professor Paolo
Mantegazza. Oberstes Designziel von RTAI ist und war es, die kleinstmöglichen
@@ -90,7 +84,7 @@ x86\_64 und diverse ARM Plattformen).
RTAI ist ein typischer Vertreter des Dual Kernel Ansatzes. Abbildung
\ref{img:rtai} zeigt die Funktionsweise von RTAI.
-\subsubsection*{Xenomai}
+\paragraph{Xenomai}
Das Xenomai Projekt wurde im Jahre 2001 gegründet. Im Gegensatz zu RTAI erlaubt
Xenomai auch Echtzeit im Userpace (RTAI erlaubt dies nur sehr eingeschränkt).
Die Besonderheit von Xenomai sind die sogenannten Skins, die es vereinfachen sollen,
@@ -124,7 +118,7 @@ Komponenten. Abbildung \ref{img:ipipe} zeigt die Funktionsweise von IPIPE.
\label{img:ipipe}
\end{figure}
-\subsubsection*{Preempt RT}
+\paragraph{Preempt RT}
Der Realtime Preemption Patch entstand ursprünglich aus Arbeiten von Ingo Molnar
und Thomas Gleixner. Beide sind bis zum heutigen Zeitpunkt die treibenden Kräfte
bei der Entwicklung von Preempt RT.
@@ -159,7 +153,7 @@ anderer Projekte haben die Vorzüge von Preempt RT bereits erkannt. Die Roadmap
für Xenomai 3 sieht Preempt RT Support vor. Dies würde den Einsatz von Xenomai
Skins auf Preempt RT Kerneln ermgöglichen.
-\subsection*{Kontrollfragen}
+\subsubsection{Kontrollfragen}
\begin{enumerate}
\item Was sind die wichtigsten Anforderungen an ein Echtzeitsystem?
@@ -170,4 +164,4 @@ beschriebenen Ansätze verfolgen Sie?
spezielle API benötigt?
\end{enumerate}
-\end{document}
+\input{tailhandout}
diff --git a/realtime/rt-basics/pres_rt-basics_de.tex b/realtime/rt-basics/pres_rt-basics_de.tex
index 128b115..66a78eb 100644
--- a/realtime/rt-basics/pres_rt-basics_de.tex
+++ b/realtime/rt-basics/pres_rt-basics_de.tex
@@ -1,20 +1,10 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
+\input{configpres}
\title{Block \lq Realtime Linux\rq}
-\institute{Linutronix GmbH}
-
-\begin{document}
-
\maketitle
+\subtitle{Echtzeit}
-% ----- Slide ------------------
\begin{frame}
\frametitle{Was ist Echtzeit?}
\begin{itemize}
@@ -58,6 +48,7 @@ Nicht Einhalten des korrekten Zeitrahmens führt zu einem Fehler!
\end{itemize}
\end{frame}
+\subsubsection{Priority Inversion}
\begin{frame}
\frametitle{Priority Inversion}
\begin{figure}[h]
@@ -66,6 +57,7 @@ Nicht Einhalten des korrekten Zeitrahmens führt zu einem Fehler!
\end{figure}
\end{frame}
+\subsubsection{Linux und Echtzeit}
\begin{frame}
\frametitle{Linux und Echtzeit}
\begin{figure}[h]
@@ -210,5 +202,4 @@ können. Raw Spinlocks ersetzen die ursprüngliche Spinlock
\end{figure}
\end{frame}
-
-\end{document}
+\input{tailpres}
diff --git a/realtime/rt-specialties/Makefile b/realtime/rt-specialties/Makefile
index 4663d52..d641258 100644
--- a/realtime/rt-specialties/Makefile
+++ b/realtime/rt-specialties/Makefile
@@ -1,7 +1,7 @@
all:
for pdf in `ls -1 *.tex` ; do \
- pdflatex $$pdf; \
- pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
+ TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \
done
clean:
diff --git a/realtime/rt-specialties/handout_rt-specialties_de.tex b/realtime/rt-specialties/handout_rt-specialties_de.tex
index 33dc9b6..54771ca 100644
--- a/realtime/rt-specialties/handout_rt-specialties_de.tex
+++ b/realtime/rt-specialties/handout_rt-specialties_de.tex
@@ -1,13 +1,8 @@
-\documentclass{lxarticle}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{lxheaders}
-\usepackage{lxextras}
+\input{confighandout}
+\subsection{RT\_PREEMPT}
-\begin{document}
-
-\section*{Anwendung des Preempt RT Patches}
-\subsection*{Besorgen und Anwenden des Patches}
+\subsubsection{Anwendung des Preempt RT Patches}
+\paragraph{Besorgen und Anwenden des Patches}
Preempt RT wird als Patch gegen den Mainline Linux Kernel gepflegt.
Unter:\newline
http://www.kernel.org/pub/linux/kernel/projects/rt sind die aktuellsten Patche
@@ -39,7 +34,7 @@ cd linux-2.6.29.5-rt21
ketchup -f --no-gpg 2.6.29.5-rt21
\end{lstlisting}
-\subsection*{Konfigurieren und Übersetzen eines Preempt RT Kernels}
+\paragraph{Konfigurieren und Übersetzen eines Preempt RT Kernels}
Die Konfiguration und das Übersetzen machen keinen Unterschied zu Linux ohne
Preempt RT Patch:
\begin{lstlisting}
@@ -83,8 +78,9 @@ make O=../build modules
make O=../build install
make O=../build modules_install
\end{lstlisting}
-\section*{Testen eines Preempt RT Systems}
-\subsection*{RT Tests}
+
+\subsubsection{Testen eines Preempt RT Systems}
+\paragraph{RT Tests}
Die RT Tests sind eine Sammlung von Programmen, zur Validierung der
Eigenschaften von Echtzeitsystemen. Die RT Tests umfassen folgende Tools:
\begin{itemize}
@@ -104,7 +100,7 @@ git-clone git://git.kernel.org/pub/scm/linux/kernel\
cd rt-tests
make
\end{lstlisting}
-\subsection*{Cyclictest}
+\subparagraph{Cyclictest}
Cyclictest ist die wohl meistgenutzte Testsoftware auf Preempt RT Systemen. Mit
Cyclictest kann eine bestimmte Anzahl von Timertasks mit einem definierten
Interval aufgesetzt werden. Für diese Tasks wird kontinuierlich die Abweichung
@@ -128,7 +124,7 @@ T: 1 ( 2122) P:79 I:2500 C: 1007 Min: 47 Act: 76 Avg: 77 Max: 130
T: 2 ( 2123) P:78 I:3000 C: 841 Min: 54 Act: 76 Avg: 82 Max: 136
T: 3 ( 2124) P:77 I:3500 C: 723 Min: 67 Act: 95 Avg: 96 Max: 177
\end{lstlisting}
-\subsection*{Lastszenarien}
+\paragraph{Lastszenarien}
Um eine Aussage über das Echtzeitverhaltens treffen zu können, interessiert in
der Hauptsache das Verhalten in Worst-Case Szenarien (hohe CPU Last, hohe
Interruptlast). Ein ausgezeichnetes Werkzeug, um CPU Last zu erzeugen, ist
@@ -142,7 +138,7 @@ Rechner erzeugen. Ein Floodping schickt eine große Anzahl von ICMP Paketen in
kurzer Zeit. Dies erzeugt eine hohe Anzahl von Netzwerkinterrupts. Um Floodpings
zu generieren muß das Programm ping mit Rootrechten und mit der Option -f
ausgeführt werden.
-\subsection*{Pitfall}
+\subparagraph{Pitfall}
Ein sehr häufig gemeldetes Phänomen bei Testläufen von Cyclictest mit einem
Floodping als Lastszenario, sind extrem große Ausreißer in der Größenordnung von
50ms. Dies ist auf ein ''Feature'' aktueller Preempt RT Kernel zurückzuführen.
@@ -166,8 +162,8 @@ Zum Deaktivieren dieser Funktion muß Folgendes getan werden:
\begin{lstlisting}
echo -1 > /proc/sys/kernel/sched_rt_runtime_us
\end{lstlisting}
-\section*{Erstellen einer Realtime Task für Preempt RT}
-\subsection*{Schedulingklassen / Prioritäten}
+\subsubsection{Erstellen einer Realtime Task für Preempt RT}
+\paragraph{Schedulingklassen / Prioritäten}
Eine Realtime Applikation auf Preempt RT ist eine POSIX Realtime Applikation.
POSIX sieht für Echtzeitapplikationen folgende Schedulingstrategien vor:
\begin{itemize}
@@ -176,7 +172,7 @@ POSIX sieht für Echtzeitapplikationen folgende Schedulingstrategien vor:
\end{itemize}
Echtzeitpriorität bekommt eine Applikation nur dann, wenn dies explizit
gewünscht wird. Hierzu ist die Funktion sched\_setscheduler() vorgesehen.
-\subsection*{Beispiel einer Echtzeitapplikation}
+\paragraph{Beispiel einer Echtzeitapplikation}
Das folgende Beispiel zeigt eine einfache POSIX Realtimeapplikation:
\begin{lstlisting}
/*
@@ -239,8 +235,8 @@ undeterministisches Zeitverhalten verursachen
Eine Ausgezeichnete Einführung zum Erstellen von Echtzeitapplikationen und zur
Verwendung von Preempt RT findet sich unter:\newline
http://rt.wiki.kernel.org
-\subsection*{Tracing / Latenzen aufspüren}
-\subsubsection*{FTrace}
+\paragraph{Tracing / Latenzen aufspüren}
+\subparagraph{FTrace}
Ein hervorragendes Werkzeug, um kernelseitige Codepfade aufzuspüren, die lange
Latenzzeiten verursachen, ist Ftrace. Ftrace wird über DebugFS, einem virtuellen
Dateisystem, gesteuert und platziert dort auch seine Ausgaben. Die einfachste
@@ -248,7 +244,7 @@ Methode, FTrace zu verwenden ist Cyclictest. Cyclictest biete bereits einige
Optionen, um FTrace zu steuern. Die Option -f schällt Cyclictests Ftrace
Support an, -b <max\_latency> veranlaßt Cyclictest, bei Überschreiten einer
maximalen Latenzzeit, abzubrechen und einen Trace zu triggern.
-\subsubsection*{Kerneloptionen für FTrace}
+\subparagraph{Kerneloptionen für FTrace}
Um FTrace verwenden zu können, müssen beim Konfigurieren des Kernels einige
unter dem Menupunkt ''Kernel hacking-->Tracers'' einige Optionen aktiviert werden:
\begin{itemize}
@@ -257,7 +253,7 @@ unter dem Menupunkt ''Kernel hacking-->Tracers'' einige Optionen aktiviert werde
Tracetyp kann cyclictest über die Commandline mitgegeben werden, siehe
cyclictest -h. Default ist der Event Tracer)
\end{itemize}
-\subsubsection*{Beispiel eines Traces}
+\subparagraph{Beispiel eines Traces}
Das Erstellen eines Traces mit cyclictest läßt sich am Besten mit einem Beispiel
erläutern:
\begin{lstlisting}
@@ -292,7 +288,7 @@ IRQ-129-772 [000] 4154503386.851234: timer_interrupt<-ret_from
[...]
\end{lstlisting}
-\subsection*{Kontrollfragen}
+\paragraph{Kontrollfragen}
\begin{itemize}
\item Welche Optionen sollten beim Übersetzen eines Preempt RT Kernels
mindestens gesetzt sein?
@@ -302,4 +298,5 @@ als Lastszenario? Wie kann dieser umgangen werden?
\item Welche 3 Schritte sind notwendig, um das deterministische Zeitverhalten
einer Applikation zu garantieren?
\end{itemize}
-\end{document}
+
+\input{tailhandout}
diff --git a/realtime/rt-specialties/pres_rt-specialties_de.tex b/realtime/rt-specialties/pres_rt-specialties_de.tex
index 046521d..85cf301 100644
--- a/realtime/rt-specialties/pres_rt-specialties_de.tex
+++ b/realtime/rt-specialties/pres_rt-specialties_de.tex
@@ -1,20 +1,11 @@
-\documentclass{beamer}
-\usetheme{linutronix}
-\usepackage{german}
-\usepackage[utf8]{inputenc}
-\usepackage{pgf}
-\usepackage{graphicx}
-\usepackage{lxextras}
-
-\title{Block \lq Anwendung des Preempt RT Patches\rq}
-\institute{Linutronix GmbH}
-
-\begin{document}
+\input{configpres}
+\title{\lq Anwendung des Preempt RT Patches\rq}
\maketitle
+\subsection{PREEMPT\_RT}
-% ----- Slide ------------------
+\subsubsection{Download und Anwenden}
\begin{frame}[fragile]
\frametitle{Besorgen und Anwenden des Preempt RT Patches}
\begin{lstlisting}
@@ -43,6 +34,7 @@ ketchup -f --no-gpg 2.6.29.5-rt21
\end{lstlisting}
\end{frame}
+\subsubsection{Konfiguration}
\begin{frame}[fragile]
\frametitle{Konfigurieren und Übersetzen eines Preempt RT Kernels}
\begin{overprint}
@@ -88,6 +80,7 @@ make O=../build modules_install
\end{overprint}
\end{frame}
+\subsubsection{Verifikation}
\begin{frame}
\frametitle{Testen eines Preempt RT Systems}
RT Tests:
@@ -133,6 +126,7 @@ cat /proc/sys/kernel/sched_rt_runtime_us
\end{figure}
\end{frame}
+\subsubsection{Applikationsentwicklung}
\begin{frame}
\frametitle{Echtzeitapplikationen mit Preempt RT}
\begin{columns}
@@ -190,6 +184,7 @@ void stack_prefault(void) {
\end{overprint}
\end{frame}
+\subsubsection{Tracing / Latency hunting}
\begin{frame}[fragile]
\frametitle{Tracing / Latency hunting}
\begin{itemize}
@@ -228,4 +223,5 @@ IRQ-129-772 [000] 4154503386.851189: task_setprio<-__rt_mut
[...]
\end{lstlisting}
\end{frame}
-\end{document}
+
+\input{tailpres}
diff --git a/realtime/section.tex b/realtime/section.tex
new file mode 100644
index 0000000..d593283
--- /dev/null
+++ b/realtime/section.tex
@@ -0,0 +1 @@
+\section{Echtzeit}