summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--application-devel/app-debugging/handout_app-debugging_de.tex70
-rw-r--r--application-devel/app-debugging/pres_app-debugging_de.tex26
-rw-r--r--application-devel/c++/pres_c++-c++98_11.tex2
-rw-r--r--application-devel/c++/pres_c++-stl.tex2
-rw-r--r--application-devel/c++/pres_c++-threads.tex2
-rw-r--r--application-devel/compile-tools/hints_compile-tools_de.tex2
-rw-r--r--application-devel/debugging-tools/pres_debugging-tools_de.tex36
-rw-r--r--application-devel/devel-best-practices/hints_devel-best-practices_de.tex6
-rw-r--r--application-devel/devel-environment/handout_devel-environment_de.tex96
-rw-r--r--application-devel/devel-scenarios/pres_devel_scenarios_de.tex2
-rw-r--r--application-devel/posix-ipc/pres_posix_ipc_de.tex22
-rw-r--r--basics/cpu-arch/pres_cpu-arch.tex30
-rw-r--r--basics/lx-trainer/pres_lx-trainer-vm.tex22
-rw-r--r--distribution/debian/pres_debian.tex10
-rw-r--r--distribution/elbe-adk/pres_elbe-adk_en.tex60
-rw-r--r--distribution/elbe-commands/pres_elbe-commands_en.tex4
-rw-r--r--distribution/elbe-overview/pres_elbe-overview_en.tex26
-rw-r--r--distribution/yocto-advanced/pres_yocto-advanced.tex10
-rw-r--r--distribution/yocto-advanced/yocto-add-simple-application.tex6
-rw-r--r--distribution/yocto-advanced/yocto-distro-definitions.tex18
-rw-r--r--distribution/yocto-advanced/yocto-excercise-build-bbb-img.tex16
-rw-r--r--distribution/yocto-advanced/yocto-img-customization.tex8
-rw-r--r--distribution/yocto-advanced/yocto-layers.tex50
-rw-r--r--distribution/yocto-advanced/yocto-local-conf.tex28
-rw-r--r--distribution/yocto-advanced/yocto-resume.tex14
-rw-r--r--distribution/yocto-advanced/yocto-ti-layer.tex4
-rw-r--r--distribution/yocto-advanced/yocto-wega-layer.tex36
-rw-r--r--distribution/yocto-basic/yocto-adt.tex48
-rw-r--r--distribution/yocto-basic/yocto-imgbuild1.tex6
-rw-r--r--distribution/yocto-basic/yocto-workflow.tex214
-rw-r--r--distribution/yocto-intro/pres_yocto-intro.tex40
-rw-r--r--distribution/yocto-intro/yocto-intro.tex56
-rw-r--r--distribution/yocto-x86/pres_yocto-x86.tex110
-rw-r--r--frameworks/middleware/handout_middleware.tex528
-rw-r--r--frameworks/middleware/pres_middleware.tex2
-rw-r--r--kernel-devel/kernel-basics/hints_kernel-basics_de.tex2
-rw-r--r--kernel-devel/kernel-basics/pres_kernel-basics_de.tex4
-rw-r--r--kernel-devel/kernel-best-practices/handout_kernel-best-practices_en.tex14
-rw-r--r--kernel-devel/kernel-best-practices/hints_kernel-best-practices_de.tex2
-rw-r--r--kernel-devel/kernel-build/handout_kernel-build_de.tex8
-rw-r--r--kernel-devel/kernel-debugging/pres_kernel-debugging_en.tex16
-rw-r--r--linux-basics/boot-process/handout_boot-process_de.tex26
-rw-r--r--linux-basics/boot-process/hints_boot-process_de.tex4
-rw-r--r--linux-basics/filesystem-structure/handout_file-system-structure_de.tex6
-rw-r--r--linux-basics/what-is-linux/handout_what-is-linux_de.tex2
-rw-r--r--linux-basics/what-is-linux/hints_what-is-linux_de.tex8
-rw-r--r--linux-basics/what-is-linux/pres_what-is-linux_de.tex4
-rw-r--r--misc/pres_minicoredumper_en.tex4
-rw-r--r--misc/pres_xml-fasttrack_en.tex2
-rw-r--r--realtime/rt-specialties/handout_rt-specialties_de.tex4
-rw-r--r--realtime/rt-specialties/pres_rt-specialties_de.tex2
51 files changed, 860 insertions, 860 deletions
diff --git a/application-devel/app-debugging/handout_app-debugging_de.tex b/application-devel/app-debugging/handout_app-debugging_de.tex
index b082790..dca0e76 100644
--- a/application-devel/app-debugging/handout_app-debugging_de.tex
+++ b/application-devel/app-debugging/handout_app-debugging_de.tex
@@ -10,11 +10,11 @@ des zu tracenden Programms wird einfach strace vorangestellt:
$ strace /bin/ls
execve("/bin/ls", ["/bin/ls"], [/* 50 vars */]) = 0
brk(0) = 0x2246000
-access("/etc/ld.so.nohwcap", F_OK) =
+access("/etc/ld.so.nohwcap", F_OK) =
-1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE,
MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f32457fe000
-access("/etc/ld.so.preload", R_OK) =
+access("/etc/ld.so.preload", R_OK) =
-1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY) = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=110532, ...}) = 0
@@ -45,14 +45,14 @@ der für alle gängigen Prozessorarchitekturen verfügbar ist. GDB bietet ein
sehr mächtiges Commandlineinterface. Es existieren diverse grafische Frontends
für GDB (z.B. DDD). Eine einfache Debuggingsession stellt sich wie folgt dar:
\begin{lstlisting}[language=c]
- /* hello.c */
- #include <stdio.h>
-
- int main (void)
- {
- printf("Hello world\n");
- return 0;
- }
+ /* hello.c */
+ #include <stdio.h>
+
+ int main (void)
+ {
+ printf("Hello world\n");
+ return 0;
+ }
\end{lstlisting}
Übersetzen des Programms mit Debuginformationen:
\begin{lstlisting}
@@ -62,7 +62,7 @@ Starten der Debugsession:
\begin{lstlisting}
$ gdb ./hello
(gdb) run
-Starting program: /home/jan/work/examples/hello
+Starting program: /home/jan/work/examples/hello
Hello world
Program exited normally.
@@ -71,13 +71,13 @@ Mit dem Kommando ''list'' kann der zugehörige Quellcode angezeigt werden.
Breakpoints werden mit ''break'' gesetzt:
\begin{lstlisting}
(gdb) list
-1 #include <stdio.h>
-2
-3 int main (void)
-4 {
-5 printf("Hello world\n");
-6 return 0;
-7 }
+1 #include <stdio.h>
+2
+3 int main (void)
+4 {
+5 printf("Hello world\n");
+6 return 0;
+7 }
(gdb) break 5
Breakpoint 1 at 0x400528: file hello.c, line 5.
\end{lstlisting}
@@ -85,14 +85,14 @@ Mit ''next'' und ''step'' werden einzelne Codezeilen ausgeführt,
während ''next'' einem step-OVER und ''step'' einem step-IN entspricht:
\begin{lstlisting}
(gdb) run
-Starting program: /home/jan/work/examples/hello
+Starting program: /home/jan/work/examples/hello
Breakpoint 1, main () at hello.c:5
-5 printf("Hello world\n");
+5 printf("Hello world\n");
(gdb) next
Hello world
-6 return 0;
-(gdb) continue
+6 return 0;
+(gdb) continue
Continuing.
\end{lstlisting}
Folgende Tabelle zeigt eine Übersicht der wichtigsten GDB Kommandos:\\
@@ -162,14 +162,14 @@ können hier verwendet werden:
\end{center}
Folgendes Beispiel verdeutlicht die Analyse eines core-Files:
\begin{lstlisting}[language=c]
- /* segfault.c */
- #include <stdio.h>
-
- int main (void)
- {
- char *arthur_dent = NULL;
- printf("%c\n", *arthur_dent);
- return 0;
+ /* segfault.c */
+ #include <stdio.h>
+
+ int main (void)
+ {
+ char *arthur_dent = NULL;
+ printf("%c\n", *arthur_dent);
+ return 0;
}
\end{lstlisting}
Programm übersetzen:
@@ -197,7 +197,7 @@ Loaded symbols for /lib64/ld-linux-x86-64.so.2
Core was generated by `./segfault'.
Program terminated with signal 11, Segmentation fault.
#0 0x0000000000400538 in main () at segfault.c:6
-6 printf("%c\n", *arthur_dent);
+6 printf("%c\n", *arthur_dent);
(gdb) bt
#0 0x0000000000400538 in main () at segfault.c:6
\end{lstlisting}
@@ -351,12 +351,12 @@ int main(void)
{
int *my_array = (int*) malloc(10 * sizeof(int));
int i = 0;
- memset(my_array, 0, 10);
+ memset(my_array, 0, 10);
for(i = 0; i < 11; i++)
printf("%d ", my_array[i]);
- printf("\n");
+ printf("\n");
return 0;
}
\end{lstlisting}
@@ -444,7 +444,7 @@ $ valgrind --leak-check=full ./mem_leak
=5764= Using Valgrind-3.6.0.SVN-Debian and LibVEX;
rerun with -h for copyright info
=5764= Command: ./mem_leak
-=5764=
+=5764=
=5764= HEAP SUMMARY:
=5764= in use at exit: 49 bytes in 49 blocks
=5764= total heap usage: 50 allocs, 1 frees,
@@ -453,7 +453,7 @@ $ valgrind --leak-check=full ./mem_leak
=5764= loss record 1 of 1
=5764= at 0x4C274A8: malloc (vg_replace_malloc.c:236)
=5764= by 0x40058D: main (mem_leak.c:10)
-=5764=
+=5764=
=5764= LEAK SUMMARY:
=5764= definitely lost: 49 bytes in 49 blocks
[...]
diff --git a/application-devel/app-debugging/pres_app-debugging_de.tex b/application-devel/app-debugging/pres_app-debugging_de.tex
index 29e0b9e..7b3a4cc 100644
--- a/application-devel/app-debugging/pres_app-debugging_de.tex
+++ b/application-devel/app-debugging/pres_app-debugging_de.tex
@@ -74,13 +74,13 @@ Program exited normally.
\frametitle{Wichtige GDB Kommandos}
\begin{verbatim}
(gdb) list
-1 #include <stdio.h>
-2
-3 int main (void)
-4 {
-5 printf("Hello world\n");
-6 return 0;
-7 }
+1 #include <stdio.h>
+2
+3 int main (void)
+4 {
+5 printf("Hello world\n");
+6 return 0;
+7 }
(gdb) break 5
Breakpoint 1 at 0x400528: file hello.c, line 5.
\end{verbatim}
@@ -93,10 +93,10 @@ Breakpoint 1 at 0x400528: file hello.c, line 5.
Starting program: /home/jan/work/examples/hello
Breakpoint 1, main () at hello.c:5
-5 printf("Hello world\n");
+5 printf("Hello world\n");
(gdb) next
Hello world
-6 return 0;
+6 return 0;
(gdb) continue
Continuing.
\end{verbatim}
@@ -173,8 +173,8 @@ Loaded symbols for /lib64/ld-linux-x86-64.so.2
Core was generated by `./hello_segfault'.
Program terminated with signal 11, Segmentation fault.
#0 0x0000000000400538 in main () at hello_crash.c:6
-6 printf("Hello segfaulting world %s\n",
- *arthur_dent);
+6 printf("Hello segfaulting world %s\n",
+ *arthur_dent);
(gdb) bt
#0 0x0000000000400538 in main () at hello_crash.c:6
\end{lstlisting}
@@ -376,12 +376,12 @@ int main(void)
{
int *my_array = (int*) malloc(10 * sizeof(int));
int i = 0;
- memset(my_array, 0, 10 * sizeof(int));
+ memset(my_array, 0, 10 * sizeof(int));
for(i = 0; i < 11; i++)
printf("%d ", my_array[i]);
- printf("\n");
+ printf("\n");
return 0;
}
\end{lstlisting}
diff --git a/application-devel/c++/pres_c++-c++98_11.tex b/application-devel/c++/pres_c++-c++98_11.tex
index 93f44eb..6fc449e 100644
--- a/application-devel/c++/pres_c++-c++98_11.tex
+++ b/application-devel/c++/pres_c++-c++98_11.tex
@@ -11,7 +11,7 @@
\def\lximg{none}
%\begin{frame}
-% \tableofcontents
+%\tableofcontents
%\end{frame}
\subsubsection{C++98}
diff --git a/application-devel/c++/pres_c++-stl.tex b/application-devel/c++/pres_c++-stl.tex
index 6bb6fd6..bca5931 100644
--- a/application-devel/c++/pres_c++-stl.tex
+++ b/application-devel/c++/pres_c++-stl.tex
@@ -11,7 +11,7 @@
\def\lximg{none}
%\begin{frame}
-% \tableofcontents
+%\tableofcontents
%\end{frame}
\subsubsection{Standard Library Overview}
diff --git a/application-devel/c++/pres_c++-threads.tex b/application-devel/c++/pres_c++-threads.tex
index a46717a..bbd9c51 100644
--- a/application-devel/c++/pres_c++-threads.tex
+++ b/application-devel/c++/pres_c++-threads.tex
@@ -11,7 +11,7 @@
\def\lximg{none}
%\begin{frame}
-% \tableofcontents
+%\tableofcontents
%\end{frame}
\subsubsection{Threading}
diff --git a/application-devel/compile-tools/hints_compile-tools_de.tex b/application-devel/compile-tools/hints_compile-tools_de.tex
index 80cad60..51f3038 100644
--- a/application-devel/compile-tools/hints_compile-tools_de.tex
+++ b/application-devel/compile-tools/hints_compile-tools_de.tex
@@ -10,7 +10,7 @@
\begin{itemize}
\item Verstehen, was eine Toolchain ist
\item Verstehen der Unterschiede zwischen nativem Kompilieren und
- Cross-Compilieren
+ Cross-Compilieren
\item Kennenlernen von gcc, make, autotools
\end{itemize}
diff --git a/application-devel/debugging-tools/pres_debugging-tools_de.tex b/application-devel/debugging-tools/pres_debugging-tools_de.tex
index 8e5feac..a49d9ee 100644
--- a/application-devel/debugging-tools/pres_debugging-tools_de.tex
+++ b/application-devel/debugging-tools/pres_debugging-tools_de.tex
@@ -324,13 +324,13 @@ Program exited normally.
\frametitle{Wichtige GDB Kommandos}
\begin{verbatim}
(gdb) list
-1 #include <stdio.h>
-2
-3 int main (void)
-4 {
-5 printf("Hello world\n");
-6 return 0;
-7 }
+1 #include <stdio.h>
+2
+3 int main (void)
+4 {
+5 printf("Hello world\n");
+6 return 0;
+7 }
(gdb) break 5
Breakpoint 1 at 0x400528: file hello.c, line 5.
\end{verbatim}
@@ -343,10 +343,10 @@ Breakpoint 1 at 0x400528: file hello.c, line 5.
Starting program: /home/jan/work/examples/hello
Breakpoint 1, main () at hello.c:5
-5 printf("Hello world\n");
+5 printf("Hello world\n");
(gdb) next
Hello world
-6 return 0;
+6 return 0;
(gdb) continue
Continuing.
\end{verbatim}
@@ -427,8 +427,8 @@ Loaded symbols for /lib64/ld-linux-x86-64.so.2
Core was generated by `./hello_segfault'.
Program terminated with signal 11, Segmentation fault.
#0 0x0000000000400538 in main () at hello_crash.c:6
-6 printf("Hello segfaulting world %s\n",
- *arthur_dent);
+6 printf("Hello segfaulting world %s\n",
+ *arthur_dent);
(gdb) bt
#0 0x0000000000400538 in main () at hello_crash.c:6
\end{lstlisting}
@@ -757,12 +757,12 @@ int main(void)
{
int *my_array = (int*) malloc(10 * sizeof(int));
int i = 0;
- memset(my_array, 0, 10 * sizeof(int));
+ memset(my_array, 0, 10 * sizeof(int));
for(i = 0; i < 11; i++)
printf("%d ", my_array[i]);
- printf("\n");
+ printf("\n");
return 0;
}
\end{lstlisting}
@@ -1236,7 +1236,7 @@ Hardware assisted breakpoint 1 at 0x20011c: file main.c, line 68.
(gdb) c
Continuing.
Breakpoint 1, main () at main.c:68
-68 hw_init();
+68 hw_init();
\end{verbatim}
\end{frame}
@@ -1247,14 +1247,14 @@ Breakpoint 1, main () at main.c:68
(gdb) c
Continuing.
Breakpoint 1, main () at main.c:68
-68 hw_init();
+68 hw_init();
(gdb) next
-83 load_nandflash(IMG_ADDRESS, IMG_SIZE, JUMP_ADDR);
+83 load_nandflash(IMG_ADDRESS, IMG_SIZE, JUMP_ADDR);
(gdb) next
-84 dbg_print(">NANDflash ready\r\n");
+84 dbg_print(">NANDflash ready\r\n");
(gdb) step
dbg_print (ptr=0x200e2c ">NANDflash ready\r\n") at driver/debug.c:90
-90 }
+90 }
\end{verbatim}
\end{frame}
diff --git a/application-devel/devel-best-practices/hints_devel-best-practices_de.tex b/application-devel/devel-best-practices/hints_devel-best-practices_de.tex
index 3f7a48f..298ead4 100644
--- a/application-devel/devel-best-practices/hints_devel-best-practices_de.tex
+++ b/application-devel/devel-best-practices/hints_devel-best-practices_de.tex
@@ -9,12 +9,12 @@
\subsection*{Lernziele}
\begin{itemize}
\item Kennenlernen gängiger Techniken (Versionskontrolle, Code-Review,
- Test-Skripte)
+ Test-Skripte)
\item Kennenlernen wichtiger Design-Grundsätze
\item Kennenlernen gängiger Probleme bezüglich Plattform-Unabhängigkeit
- (32/63-Bit, Endianness, Text- statt Binär-Dateien)
+ (32/63-Bit, Endianness, Text- statt Binär-Dateien)
\item Kennenlernen des Unix-Konzepts, Applikationen in mehrere Programme
- aufzuteilen. Trennung Commandline-Programme und GUI.
+ aufzuteilen. Trennung Commandline-Programme und GUI.
\end{itemize}
\subsection*{Unterrichts-Ablauf}
diff --git a/application-devel/devel-environment/handout_devel-environment_de.tex b/application-devel/devel-environment/handout_devel-environment_de.tex
index 1ac1b6f..5ffdcd5 100644
--- a/application-devel/devel-environment/handout_devel-environment_de.tex
+++ b/application-devel/devel-environment/handout_devel-environment_de.tex
@@ -133,12 +133,12 @@ M\"oglichkeit Plugins von so genannten 'update-sites' nach zu installieren.
Freie oder kommerzielle Eclipse Plugins gibt es f\"ur viele Aufgaben:
\begin{itemize}
- \item Versionskontrolle: cvs, git, svn, \dots
- \item Programmiersprachen: java, C, C++, Python, \dots
- \item Workflows: UML, Modelling, bugzilla, JIRA, Remote Target Management,
- \dots
- \item Frameworks: QT, CORBA, Eclipse Plugin Development, \dots
- \item \dots
+\item Versionskontrolle: cvs, git, svn, \dots
+\item Programmiersprachen: java, C, C++, Python, \dots
+\item Workflows: UML, Modelling, bugzilla, JIRA, Remote Target Management,
+\dots
+\item Frameworks: QT, CORBA, Eclipse Plugin Development, \dots
+\item \dots
\end{itemize}
Aus einer Zusammenstellung von Plugins entstehen die sogenannten 'Eclipse
@@ -147,19 +147,19 @@ erhaeltlich sind.
Freie Eclipse basierte IDEs:
\begin{itemize}
- \item Eclipse IDE for JAVA Developers (http://www.eclipse.org/downloads)
- \item Eclipse IDE for C++ Developers (http://www.eclipse.org/downloads)
- \item Eclipse Modeling Tools (http://www.eclipse.org/downloads)
- \item Pydev for Python Developers (http://pydev.sourceforge.net)
+\item Eclipse IDE for JAVA Developers (http://www.eclipse.org/downloads)
+\item Eclipse IDE for C++ Developers (http://www.eclipse.org/downloads)
+\item Eclipse Modeling Tools (http://www.eclipse.org/downloads)
+\item Pydev for Python Developers (http://pydev.sourceforge.net)
\end{itemize}
Kommerzielle Eclipse basierte IDEs:
\begin{itemize}
- \item Windriver Workbench (http://www.windriver.com/products/workbench)
- \item IBM Rational/Websphere Suites (http://www.ibm.com)
- \item Montavista DevRocket
- (http://www.mvista.com/product\_detail\_devrocket.php)
- \item SAP Netweaver (http://www.sap.com/platform/netweaver/index.epx)
+\item Windriver Workbench (http://www.windriver.com/products/workbench)
+\item IBM Rational/Websphere Suites (http://www.ibm.com)
+\item Montavista DevRocket
+ (http://www.mvista.com/product\_detail\_devrocket.php)
+\item SAP Netweaver (http://www.sap.com/platform/netweaver/index.epx)
\end{itemize}
Es besteht auch die M\"oglichkeit, sich eine Eclipse IDE selber zusammen zu
@@ -170,39 +170,39 @@ Die hier n\"ahers vorgestellte Eclispe basierte IDE wurde von Linutronix
speziell f\"ur die embedded Anwendungsentwicklung zusammengestellt und bietet
unterst\"utzung in folgenden Punkten:
\begin{itemize}
- \item Programmiersprachen:
- \begin{itemize}
- \item C
- \item C++
- \item JAVA / Open JDK 1.6
- \end{itemize}
- \item Versionskontrolle:
- \begin{itemize}
- \item Subversion
- \item CVS
- \item git
- \end{itemize}
- \item Profiling mit valgrind:
- \begin{itemize}
- \item memory leak detection
- \item heap analyzation
- \end{itemize}
- \item QT 4.5 Integration
- \item Remote Target Managment
- \begin{itemize}
- \item Target File Explorer
- \item Target Process Viewer
- \item Remote Debugging
- \item Target Monitoring
- \end{itemize}
- \item ARM Device Emulation
- \item Bugzilla Bugtracking Integration
- \item Modelierungswerkzeuge
- \begin{itemize}
- \item UML2
- \item Eclipse Modeling Framework
- \item Graphical Modeling Framework
- \end{itemize}
+\item Programmiersprachen:
+\begin{itemize}
+\item C
+\item C++
+\item JAVA / Open JDK 1.6
+\end{itemize}
+\item Versionskontrolle:
+\begin{itemize}
+\item Subversion
+\item CVS
+\item git
+\end{itemize}
+\item Profiling mit valgrind:
+\begin{itemize}
+\item memory leak detection
+\item heap analyzation
+\end{itemize}
+\item QT 4.5 Integration
+\item Remote Target Managment
+\begin{itemize}
+\item Target File Explorer
+\item Target Process Viewer
+\item Remote Debugging
+\item Target Monitoring
+\end{itemize}
+\item ARM Device Emulation
+\item Bugzilla Bugtracking Integration
+\item Modelierungswerkzeuge
+\begin{itemize}
+\item UML2
+\item Eclipse Modeling Framework
+\item Graphical Modeling Framework
+\end{itemize}
\end{itemize}
\paragraph{Bedienoberf\"ache}
diff --git a/application-devel/devel-scenarios/pres_devel_scenarios_de.tex b/application-devel/devel-scenarios/pres_devel_scenarios_de.tex
index 2033f5b..de01170 100644
--- a/application-devel/devel-scenarios/pres_devel_scenarios_de.tex
+++ b/application-devel/devel-scenarios/pres_devel_scenarios_de.tex
@@ -10,7 +10,7 @@
\def\lximg{none}
\begin{frame}
- \tableofcontents
+\tableofcontents
\end{frame}
\subsection{Enwicklungsszenarien}
diff --git a/application-devel/posix-ipc/pres_posix_ipc_de.tex b/application-devel/posix-ipc/pres_posix_ipc_de.tex
index 9174c17..3c15d8f 100644
--- a/application-devel/posix-ipc/pres_posix_ipc_de.tex
+++ b/application-devel/posix-ipc/pres_posix_ipc_de.tex
@@ -11,7 +11,7 @@
\def\lximg{none}
\begin{frame}
- \tableofcontents
+\tableofcontents
\end{frame}
\subsubsection{Message Queues}
@@ -308,17 +308,17 @@ int shm_unlink(const char *name);
fd = shm_open("my_shm", O_RDWR | O_CREAT, 0777);
if (fd < 0) {
- perror("Can't open Shared Memory\n");
- goto out;
+ perror("Can't open Shared Memory\n");
+ goto out;
}
if (ftruncate(fd, 4096) == -1) {
- perror("ltrunc\n");
- goto out;
+ perror("ltrunc\n");
+ goto out;
}
addr = mmap(0, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if (addr == MAP_FAILED) {
- perror("mmap() failed\n");
- goto out;
+ perror("mmap() failed\n");
+ goto out;
}
ret = 0;
*addr = 'A';
@@ -337,14 +337,14 @@ out:
fd = shm_open("my_shm", O_RDWR, 0777);
if (fd < 0) {
- perror("Can't open Shared Memory\n");
- goto out;
+ perror("Can't open Shared Memory\n");
+ goto out;
}
addr = mmap(0, 4096, PROT_READ | PROT_WRITE, MAP_SHARED, fd, 0);
if (addr == MAP_FAILED) {
- perror("mmap() failed\n");
- goto out;
+ perror("mmap() failed\n");
+ goto out;
}
printf("Reading from SHM -> %c\n", *addr);
ret = 0;
diff --git a/basics/cpu-arch/pres_cpu-arch.tex b/basics/cpu-arch/pres_cpu-arch.tex
index 141c194..b57f3f1 100644
--- a/basics/cpu-arch/pres_cpu-arch.tex
+++ b/basics/cpu-arch/pres_cpu-arch.tex
@@ -27,14 +27,14 @@ Register - Rechenwerk - Befehlsdekoder - Bus - Cache (optional)
\begin{description}
\item[Befehlsdekoder]
- \begin{itemize}
- \item FETCH - Befehl (OPCODE) aus RAM / ROM laden
- (Prefetch - laden mehrere Befehle in ein Prefetch Register)
- \item DECODE - OPCODE in ALU-Schaltinstruktionen wandeln
- \item FETCH - Operanden (OPERANDS) aus RAM / ROM laden
- \item EXECUTE
- \item WRITE BACK - schreiben des Ergebnisses in RAM / ROM (OPCOUNTER++)
- \end{itemize}
+\begin{itemize}
+\item FETCH - Befehl (OPCODE) aus RAM / ROM laden
+ (Prefetch - laden mehrere Befehle in ein Prefetch Register)
+\item DECODE - OPCODE in ALU-Schaltinstruktionen wandeln
+\item FETCH - Operanden (OPERANDS) aus RAM / ROM laden
+\item EXECUTE
+\item WRITE BACK - schreiben des Ergebnisses in RAM / ROM (OPCOUNTER++)
+\end{itemize}
\item[Bus] Adressbus (zentraler Adressdecoder -> Chip Select), Datenbus
\end{description}
\end{frame}
@@ -45,11 +45,11 @@ Register - Rechenwerk - Befehlsdekoder - Bus - Cache (optional)
\begin{description}
\item[Cache] beinhaltet zuletzt verwendete Daten
- \begin{itemize}
- \item L1 im Kern / wenige KB gross / am Schnellsten abrufbar
- \item L2 nicht im Kern / wenige MB gross
- \item L3 von allen Kernen geteilt / einige MB gross
- \end{itemize}
+\begin{itemize}
+\item L1 im Kern / wenige KB gross / am Schnellsten abrufbar
+\item L2 nicht im Kern / wenige MB gross
+\item L3 von allen Kernen geteilt / einige MB gross
+\end{itemize}
\end{description}
\end{frame}
@@ -86,7 +86,7 @@ SI (Sourceindexregister) wird um den Wert eins inkrementiert.
simple.c:
int main(int argc, char **argv)
{
- return argc++;
+ return argc++;
}
$ gcc -o simple.c
@@ -152,7 +152,7 @@ Nachteil: Speicherbedarf Pointer
\item Prozess sieht zusammenh\"angenden, konstanten, virtuellen Speicher
\item Kernel programmiert den TLB (Translation Look-aside Buffer) der MMU
\item Speicherzugriff auf virtuelle Adresse wird von der MMU in tats\"achliche,
- physikalische Adresse \"ubersetzt
+ physikalische Adresse \"ubersetzt
\end{itemize}
\end{frame}
diff --git a/basics/lx-trainer/pres_lx-trainer-vm.tex b/basics/lx-trainer/pres_lx-trainer-vm.tex
index 59e2bc6..e7f09b0 100644
--- a/basics/lx-trainer/pres_lx-trainer-vm.tex
+++ b/basics/lx-trainer/pres_lx-trainer-vm.tex
@@ -24,7 +24,7 @@
\end{itemize}
in case you are not allowed to change the boot order of your system:
\begin{itemize}
- \item ask me, we can also use sth. like vmWare to boot the image
+\item ask me, we can also use sth. like vmWare to boot the image
\end{itemize}
\end{frame}
@@ -32,16 +32,16 @@ in case you are not allowed to change the boot order of your system:
\frametitle{Login}
Login with the following credentials:
\begin{description}
- \item[User] devel
- \item[Password] devel
+\item[User] devel
+\item[Password] devel
\end{description}
don't work as root always, but if needed, use the
\begin{description}
- \item[Password] root
+\item[Password] root
\end{description}
it's better to use 'sudo' if root rights are required
\begin{description}
- \item[Password] devel
+\item[Password] devel
\end{description}
\end{frame}
@@ -50,12 +50,12 @@ it's better to use 'sudo' if root rights are required
The Image is preconfigured with an English Keyboard Layout, if you want to
modify this setting:
\begin{itemize}
- \item 'System', 'Preferences', 'Keyboard'
- \item 'Layouts'
- \item select '+ Add..', choose your prefered 'Country' and 'Variant'
- \item if unsure, select 'Germany' and 'German German (eliminate dead keys)'
- \item 'Add'
- \item select 'English (US)' and click on '-Remove'
+\item 'System', 'Preferences', 'Keyboard'
+\item 'Layouts'
+\item select '+ Add..', choose your prefered 'Country' and 'Variant'
+\item if unsure, select 'Germany' and 'German German (eliminate dead keys)'
+\item 'Add'
+\item select 'English (US)' and click on '-Remove'
\end{itemize}
\end{frame}
diff --git a/distribution/debian/pres_debian.tex b/distribution/debian/pres_debian.tex
index 5736c4e..1771d21 100644
--- a/distribution/debian/pres_debian.tex
+++ b/distribution/debian/pres_debian.tex
@@ -60,11 +60,11 @@ These standards are backed up by
\item automation (wanna\_build, version tracking)
\item documentation (http://debian.org/doc/):
\begin{itemize}
- \item New Maintainer Guide
- \item Debian Policies
- \item Porting Guide
- \item Developer Reference
- \item Securing Debian
+\item New Maintainer Guide
+\item Debian Policies
+\item Porting Guide
+\item Developer Reference
+\item Securing Debian
\end{itemize}
\end{itemize}
All of Debian's key elements are open and visible.
diff --git a/distribution/elbe-adk/pres_elbe-adk_en.tex b/distribution/elbe-adk/pres_elbe-adk_en.tex
index 4e9fc1a..d077696 100644
--- a/distribution/elbe-adk/pres_elbe-adk_en.tex
+++ b/distribution/elbe-adk/pres_elbe-adk_en.tex
@@ -31,39 +31,39 @@ $ make run-con
\end{frame}
\begin{frame}[fragile]
- \frametitle{mini.xml}
- \begin{lstlisting}
- <project>
- <name>mini xml</name>
- <version>1</version>
- <description>
- optimal to use as buildenv
- </description>
- <buildtype>armhf</buildtype>
- <mirror>
- <primary_host>ftp.debian.org</primary_host>
- <primary_path>/debian</primary_path>
- <primary_proto>http</primary_proto>
- </mirror>
- <suite>wheezy</suite>
- </project>
- \end{lstlisting}
+ \frametitle{mini.xml}
+ \begin{lstlisting}
+ <project>
+ <name>mini xml</name>
+ <version>1</version>
+ <description>
+ optimal to use as buildenv
+ </description>
+ <buildtype>armhf</buildtype>
+ <mirror>
+ <primary_host>ftp.debian.org</primary_host>
+ <primary_path>/debian</primary_path>
+ <primary_proto>http</primary_proto>
+ </mirror>
+ <suite>wheezy</suite>
+ </project>
+ \end{lstlisting}
\end{frame}
\begin{frame}[fragile]
- \frametitle{mini.xml}
- \begin{lstlisting}
- <target>
- <hostname>mini</hostname>
- <domain>linutronix</domain>
- <passwd>foo</passwd>
- <finetuning>
- </finetuning>
- <pkg-list>
- <pkg>bash</pkg>
- </pkg-list>
- </target>
- \end{lstlisting}
+ \frametitle{mini.xml}
+ \begin{lstlisting}
+ <target>
+ <hostname>mini</hostname>
+ <domain>linutronix</domain>
+ <passwd>foo</passwd>
+ <finetuning>
+ </finetuning>
+ <pkg-list>
+ <pkg>bash</pkg>
+ </pkg-list>
+ </target>
+ \end{lstlisting}
\end{frame}
\begin{frame}[fragile]
diff --git a/distribution/elbe-commands/pres_elbe-commands_en.tex b/distribution/elbe-commands/pres_elbe-commands_en.tex
index 4a91e4f..f583a26 100644
--- a/distribution/elbe-commands/pres_elbe-commands_en.tex
+++ b/distribution/elbe-commands/pres_elbe-commands_en.tex
@@ -19,7 +19,7 @@
Create a new project:
\begin{verbatim}
$ elbe initvm create \
- --directory /home/user/elbe-initvm
+ --directory /home/user/elbe-initvm
\end{verbatim}
\end{frame}
@@ -70,7 +70,7 @@ validation.txt
\item ISO image that contains all used binary debian packages
\item it is only created if the --build-bin switch was provided at elbe initvm submit
\item a rebuild of the initvm and target image can be done with this cdrom and
- without a connection to a debian repository.
+ without a connection to a debian repository.
\end{itemize}
\end{frame}
diff --git a/distribution/elbe-overview/pres_elbe-overview_en.tex b/distribution/elbe-overview/pres_elbe-overview_en.tex
index 6d935e2..0c078f8 100644
--- a/distribution/elbe-overview/pres_elbe-overview_en.tex
+++ b/distribution/elbe-overview/pres_elbe-overview_en.tex
@@ -1,7 +1,7 @@
\input{configpres}
\begin{frame}[fragile]
- \includegraphics[width=\textwidth]{images/Dresden_Elbe_Terrassenufer.jpg}
+\includegraphics[width=\textwidth]{images/Dresden_Elbe_Terrassenufer.jpg}
\end{frame}
\title{\includegraphics[width=8cm]{images/elbe-logo.png}}
@@ -71,7 +71,7 @@ buildroot
\begin{frame}[fragile]
\frametitle{what is \includegraphics[height=0.7em]{images/elbe-logo.png}?}
- \includegraphics[height=\textheight]{images/elbe-io-chart.png}
+\includegraphics[height=\textheight]{images/elbe-io-chart.png}
\end{frame}
\section{prepare environment}
@@ -288,7 +288,7 @@ are used to strip target-images
\begin{frame}
\center
- \includegraphics[width=10cm]{images/tux-chamber.jpg}
+\includegraphics[width=10cm]{images/tux-chamber.jpg}
\endcenter
\end{frame}
@@ -302,11 +302,11 @@ are used to strip target-images
\item[elbe-updated] for embedded target to apply update packages
\item[elbe-daemon] for virtual machine (wsgi server)
\item[elbe-soap] for virtual machine
-
- implements SOAP interface
+
+ implements SOAP interface
\item[elbe-control] for host PC
-
- controls SOAP interface
+
+ controls SOAP interface
\end{description}
\end{frame}
@@ -315,12 +315,12 @@ are used to strip target-images
\frametitle{architecture}
\begin{block}{technologies}
\begin{itemize}
- \item python
- \item qemu-user
- \item python-apt
- \item python-mako
- \item python-parted
- \item sqlalchemy
+\item python
+\item qemu-user
+\item python-apt
+\item python-mako
+\item python-parted
+\item sqlalchemy
\end{itemize}
\end{block}
\end{frame}
diff --git a/distribution/yocto-advanced/pres_yocto-advanced.tex b/distribution/yocto-advanced/pres_yocto-advanced.tex
index 13b673e..f5e104a 100644
--- a/distribution/yocto-advanced/pres_yocto-advanced.tex
+++ b/distribution/yocto-advanced/pres_yocto-advanced.tex
@@ -7,10 +7,10 @@
\begin{frame}
\frametitle{Agenda}
\begin{itemize}
- \item Using BSP layers
- \item Create layers \& recipes for own applications
- \item Define a distribution
- \item Integrate own Kernel
+\item Using BSP layers
+\item Create layers \& recipes for own applications
+\item Define a distribution
+\item Integrate own Kernel
\end{itemize}
\end{frame}
@@ -50,7 +50,7 @@ TEMPLATECONF=${TEMPLATECONF:-meta-yocto/conf}
\input{yocto-resume}
\begin{frame}
- \frametitle{Application Development Excercise}
+\frametitle{Application Development Excercise}
\begin{itemize}
\item generate a standalone or integrated SDK
\item configure the SDK in eclipse
diff --git a/distribution/yocto-advanced/yocto-add-simple-application.tex b/distribution/yocto-advanced/yocto-add-simple-application.tex
index 18d3130..f5f3ebd 100644
--- a/distribution/yocto-advanced/yocto-add-simple-application.tex
+++ b/distribution/yocto-advanced/yocto-add-simple-application.tex
@@ -1,9 +1,9 @@
\begin{frame}
\frametitle{adding an own application}
\begin{itemize}
- \item recipe already available? check http://layers.openembedded.org
- \item look for a similar recipe
- \item proper bbclass available?
+\item recipe already available? check http://layers.openembedded.org
+\item look for a similar recipe
+\item proper bbclass available?
\end{itemize}
on the next slides, we have a look what is useful for very simple applications,
autotools and cmake based projects and qt applications.
diff --git a/distribution/yocto-advanced/yocto-distro-definitions.tex b/distribution/yocto-advanced/yocto-distro-definitions.tex
index dbd2ec4..bbb5e71 100644
--- a/distribution/yocto-advanced/yocto-distro-definitions.tex
+++ b/distribution/yocto-advanced/yocto-distro-definitions.tex
@@ -13,10 +13,10 @@
\begin{description}
\item[cramfs] CramFS support
\item[ext2] tools for supporting for devices with internal HDD/Microdrive
- for storing files (instead of Flash only devices)
+ for storing files (instead of Flash only devices)
\item[nfs] NFS client support (for mounting NFS exports on device)
\item[smbfs] SMB networks client support
- (for mounting Samba/Microsoft Windows shares on device)
+ (for mounting Samba/Microsoft Windows shares on device)
\end{description}
\end{frame}
@@ -24,7 +24,7 @@
\frametitle{distro features: hardware support}
\begin{description}
\item[alsa] ALSA/sound support
- (OSS compatibility kernel modules installed if available)
+ (OSS compatibility kernel modules installed if available)
\item[bluetooth] bluetooth support (integrated BT only)
\item[irda] IrDA support
\item[wifi] WiFi support (integrated only).
@@ -36,8 +36,8 @@
\frametitle{distro features: grahpics}
\begin{description}
\item[opengl] the Open Graphics Library, which is a cross-language,
- multi-platform application programming interface used for rendering two
- and three-dimensional graphics
+ multi-platform application programming interface used for rendering two
+ and three-dimensional graphics
\item[directfb] DirectFB support
\end{description}
\end{frame}
@@ -58,7 +58,7 @@
\item[pcmcia] PCMCIA/CompactFlash support
\item[usbgadget] USB Gadget Device support (for USB networking/serial/storage)
\item[usbhost] USB Host support
- (allows to connect external keyboard, mouse, storage, network etc)
+ (allows to connect external keyboard, mouse, storage, network etc)
\end{description}
\end{frame}
@@ -66,10 +66,10 @@
\frametitle{distro features: software}
\begin{description}
\item[systemd] support for this init manager, which is a full replacement of
- for init with parallel starting of services, reduced shell overhead,
- and other features. This init manager is used by many distributions
+ for init with parallel starting of services, reduced shell overhead,
+ and other features. This init manager is used by many distributions
\item[wayland] the Wayland display server protocol
- and the library that supports it
+ and the library that supports it
\item[x11] X server and libraries
\end{description}
\end{frame}
diff --git a/distribution/yocto-advanced/yocto-excercise-build-bbb-img.tex b/distribution/yocto-advanced/yocto-excercise-build-bbb-img.tex
index b679a79..1ebaba5 100644
--- a/distribution/yocto-advanced/yocto-excercise-build-bbb-img.tex
+++ b/distribution/yocto-advanced/yocto-excercise-build-bbb-img.tex
@@ -1,12 +1,12 @@
\begin{frame}[fragile]
- \frametitle{Excercise}
- 1) Add sample configs to the meta-foo/mybsp layers providing a valid
- layer configuration and a build configuration that creates a
- debug RFS for our self defined machine, by using our distribution.
- The configus should Use packages in deb format and the shared
- download directory from the poky directory.
+\frametitle{Excercise}
+1) Add sample configs to the meta-foo/mybsp layers providing a valid
+layer configuration and a build configuration that creates a
+debug RFS for our self defined machine, by using our distribution.
+The configus should Use packages in deb format and the shared
+download directory from the poky directory.
- 2) create a new build directory, e.g. build-bbb and build our self
- defined image.
+2) create a new build directory, e.g. build-bbb and build our self
+defined image.
\end{frame}
diff --git a/distribution/yocto-advanced/yocto-img-customization.tex b/distribution/yocto-advanced/yocto-img-customization.tex
index 6bebb56..cdbe53f 100644
--- a/distribution/yocto-advanced/yocto-img-customization.tex
+++ b/distribution/yocto-advanced/yocto-img-customization.tex
@@ -1,13 +1,13 @@
\begin{frame}[fragile]
\frametitle{adding a bootscript}
\begin{itemize}
- \item add 'systemd' to DISTRO\_FEATURES
- \item inherit from systemd.bbclass
- \item your package needs to set SYSTEMD\_SERVICE variable; e.g.
+\item add 'systemd' to DISTRO\_FEATURES
+\item inherit from systemd.bbclass
+\item your package needs to set SYSTEMD\_SERVICE variable; e.g.
\begin{verbatim}
SYSTEMD_SERVICE_${PN} = "connman.service"
\end{verbatim}
- \item to disable the service, set SYSTEMD\_AUTO\_ENABLE to 'disable'
+\item to disable the service, set SYSTEMD\_AUTO\_ENABLE to 'disable'
\end{itemize}
\end{frame}
diff --git a/distribution/yocto-advanced/yocto-layers.tex b/distribution/yocto-advanced/yocto-layers.tex
index 2bd6286..1feab37 100644
--- a/distribution/yocto-advanced/yocto-layers.tex
+++ b/distribution/yocto-advanced/yocto-layers.tex
@@ -20,26 +20,26 @@ meta-mylayer
\end{frame}
\begin{frame}[fragile]
- \frametitle{meta-*/conf/layer.conf}
- each layer needs a configuration file
- \begin{itemize}
- \item add conf and class directories to BBPATH
- \begin{verbatim}BBPATH =. "${LAYERDIR}"\end{verbatim}
- \item add recipe directories to BBFILES
- \begin{verbatim}BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
-${LAYERDIR}/recipes-*/*/*.bbappend"\end{verbatim}
- \item add layer name to BBFILE\_COLLECTIONS
- \begin{verbatim}BBFILE_COLLECTIONS += "mylayer"\end{verbatim}
- \item set root of the layer
- \begin{verbatim}BBFILE_PATTERN_mylayer = "^${LAYERDIR}/"\end{verbatim}
- \item set default priority of the layer
- \begin{verbatim}BBFILE_PRIORITY_mylayer = "5"\end{verbatim}
- \item set version of layer (only increment if dependencies with other
- layers are affected)
- \begin{verbatim}LAYERVERSION_mylayer = "2"\end{verbatim}
- \item set dependencies to other layers
- \begin{verbatim}LAYERDEPENDS_mylayer = "meta-yocto"\end{verbatim}
- \end{itemize}
+\frametitle{meta-*/conf/layer.conf}
+each layer needs a configuration file
+\begin{itemize}
+\item add conf and class directories to BBPATH
+\begin{verbatim}BBPATH =. "${LAYERDIR}"\end{verbatim}
+\item add recipe directories to BBFILES
+\begin{verbatim}BBFILES += "${LAYERDIR}/recipes-*/*/*.bb \
+ ${LAYERDIR}/recipes-*/*/*.bbappend"\end{verbatim}
+\item add layer name to BBFILE\_COLLECTIONS
+\begin{verbatim}BBFILE_COLLECTIONS += "mylayer"\end{verbatim}
+\item set root of the layer
+\begin{verbatim}BBFILE_PATTERN_mylayer = "^${LAYERDIR}/"\end{verbatim}
+\item set default priority of the layer
+\begin{verbatim}BBFILE_PRIORITY_mylayer = "5"\end{verbatim}
+\item set version of layer (only increment if dependencies with other
+ layers are affected)
+\begin{verbatim}LAYERVERSION_mylayer = "2"\end{verbatim}
+\item set dependencies to other layers
+\begin{verbatim}LAYERDEPENDS_mylayer = "meta-yocto"\end{verbatim}
+\end{itemize}
\end{frame}
\begin{frame}
@@ -50,20 +50,20 @@ is useful to debug relations between different layers, options are:
\item [show-recipes] lists available recipes and the layers that provide them.
\item [show-overlayed] lists overlayed recipes
\item [show-appends] lists .bbappend files
- and the recipe files to which they apply
+ and the recipe files to which they apply
\item [show-cross-depends] lists dependency relationships
- between recipes that cross layer boundaries
+ between recipes that cross layer boundaries
\item [flatten] flattens the layer configuration
- into a separate output directory.
+ into a separate output directory.
\end{description}
\end{frame}
\begin{frame}
\frametitle{definitions}
\begin{itemize}
- \item It is possible for a recipe with a lower version number PV in a layer
+\item It is possible for a recipe with a lower version number PV in a layer
that has a higher priority to take precedence.
- \item Also, the layer priority does not currently affect the precedence
+\item Also, the layer priority does not currently affect the precedence
order of .conf or .bbclass files. Future versions of BitBake might address this.
\end{itemize}
\end{frame}
diff --git a/distribution/yocto-advanced/yocto-local-conf.tex b/distribution/yocto-advanced/yocto-local-conf.tex
index 5213a78..ce81abb 100644
--- a/distribution/yocto-advanced/yocto-local-conf.tex
+++ b/distribution/yocto-advanced/yocto-local-conf.tex
@@ -2,20 +2,20 @@
\frametitle{build configuration}
local.conf is used to configure
\begin{itemize}
- \item the target machine
- \item paths
- \item the used distribution
- \item package formats
- \item arch of developer machine
- \item additional image features
- \item use additional classes
- \item enable testing
- \item devshell terminal
- \item patch resolver
- \item disk monitoring
- \item sstate mirrors
- \item qemu configuration
- \item incompatible licenses, e.g. INCOMPATIBLE\_LICENSE = “GPLv3”
+\item the target machine
+\item paths
+\item the used distribution
+\item package formats
+\item arch of developer machine
+\item additional image features
+\item use additional classes
+\item enable testing
+\item devshell terminal
+\item patch resolver
+\item disk monitoring
+\item sstate mirrors
+\item qemu configuration
+\item incompatible licenses, e.g. INCOMPATIBLE\_LICENSE = “GPLv3”
\end{itemize}
\end{frame}
diff --git a/distribution/yocto-advanced/yocto-resume.tex b/distribution/yocto-advanced/yocto-resume.tex
index 1db1e87..3be1e43 100644
--- a/distribution/yocto-advanced/yocto-resume.tex
+++ b/distribution/yocto-advanced/yocto-resume.tex
@@ -1,10 +1,10 @@
\subsection{Resume}
\begin{frame}
- \begin{itemize}
- \item Yocto is a huge collection of tools
- \item Bitbake can be used to describe/build a distribution
- \item The quality of the Images depend on the maintainance of the Layers
- \item Only build your own distribution if you really need to!
- \item Poky can be used as an example / reference.
- \end{itemize}
+\begin{itemize}
+\item Yocto is a huge collection of tools
+\item Bitbake can be used to describe/build a distribution
+\item The quality of the Images depend on the maintainance of the Layers
+\item Only build your own distribution if you really need to!
+\item Poky can be used as an example / reference.
+\end{itemize}
\end{frame}
diff --git a/distribution/yocto-advanced/yocto-ti-layer.tex b/distribution/yocto-advanced/yocto-ti-layer.tex
index 38861de..4ad0c68 100644
--- a/distribution/yocto-advanced/yocto-ti-layer.tex
+++ b/distribution/yocto-advanced/yocto-ti-layer.tex
@@ -34,8 +34,8 @@ poky/build-ti %
\frametitle{overview}
builds are configured using two configuration files
\begin{itemize}
- \item /home/devel/poky/build-ti/conf/bblayers.conf
- \item /home/devel/poky/build-ti/conf/local.conf
+ \item /home/devel/poky/build-ti/conf/bblayers.conf
+ \item /home/devel/poky/build-ti/conf/local.conf
\end{itemize}
\end{frame}
diff --git a/distribution/yocto-advanced/yocto-wega-layer.tex b/distribution/yocto-advanced/yocto-wega-layer.tex
index 3cf83d4..b7c50c7 100644
--- a/distribution/yocto-advanced/yocto-wega-layer.tex
+++ b/distribution/yocto-advanced/yocto-wega-layer.tex
@@ -1,23 +1,23 @@
\begin{frame}[fragile]
\frametitle{create an own layer for your BSP}
this layer typical includes
- \begin{itemize}
- \item machine configuration
- \item kernel
- \item bootloader
- \item wic configuration
- \item other hw specific recipes, or append files
- \end{itemize}
+\begin{itemize}
+\item machine configuration
+\item kernel
+\item bootloader
+\item wic configuration
+\item other hw specific recipes, or append files
+\end{itemize}
\end{frame}
\begin{frame}[fragile]
\frametitle{yocto-bsp create}
- the yocto-bsp command can be used to get a template:
+ the yocto-bsp command can be used to get a template:
\begin{verbatim}
poky % yocto-bsp create wega arm
poky % cd meta-wega
\end{verbatim}
- The following files need to be available inside the layer:
+ The following files need to be available inside the layer:
\begin{verbatim}
recipes-kernel/linux-phytec/linux-phytec_4.4.52.bb
recipes-kernel/linux-phytec/files/wega/defconfig
@@ -33,13 +33,13 @@ conf/layer.conf
\begin{frame}[fragile]
\frametitle{create an own layer for your sw distro}
this layer typical includes
- \begin{itemize}
- \item distro configuration
- \item own applications
- \item append files to customize standard sw from other layers
- \item own classes
- \end{itemize}
- e.g. to create meta-foo use:
+\begin{itemize}
+\item distro configuration
+\item own applications
+\item append files to customize standard sw from other layers
+\item own classes
+\end{itemize}
+ e.g. to create meta-foo use:
\begin{verbatim}
poky % yocto-layer create foo
\end{verbatim}
@@ -58,8 +58,8 @@ poky/build-wega %
\frametitle{overview}
builds are configured using two configuration files
\begin{itemize}
- \item /home/devel/poky/build-ti/conf/bblayers.conf
- \item /home/devel/poky/build-ti/conf/local.conf
+\item /home/devel/poky/build-ti/conf/bblayers.conf
+\item /home/devel/poky/build-ti/conf/local.conf
\end{itemize}
\end{frame}
diff --git a/distribution/yocto-basic/yocto-adt.tex b/distribution/yocto-basic/yocto-adt.tex
index 250f6a9..37680d0 100644
--- a/distribution/yocto-basic/yocto-adt.tex
+++ b/distribution/yocto-basic/yocto-adt.tex
@@ -90,7 +90,7 @@ poky/build % bitbake meta-ide-support
%general configuration
%\begin{description}
%\item[YOCTOADT\_REPO] http repo with rootfs images and ipkg packages.
-% Needs to match the layout from 'http://adtrepo.yoctoproject.org'
+% Needs to match the layout from 'http://adtrepo.yoctoproject.org'
%\item[YOCTOADT\_TARGETS] machine target architectures to setup cross SDKs
%\item[YOCTOADT\_QEMU] install qemu? \[Y/N\]
%\item[YOCTOADT\_NFS\_UTIL] needed for eclipse \[Y/N\]
@@ -105,7 +105,7 @@ poky/build % bitbake meta-ide-support
%\item[YOCTOADT\_ROOTFS\_<arch>] rfs images that should be used, e.g. sato-sdk
%\item[YOCTOADT\_TARGET\_SYSROOT\_<arch>] needs to match above variable
%\item[YOCTOADT\_TARGET\_SYSROOT\_LOC\_<arch>] path where the sysroot will be
-% stored
+% stored
%\end{description}
%\end{frame}
%
@@ -150,39 +150,39 @@ select 'Kepler' as update site and select 'Linux Tools' and
\begin{frame}
\frametitle{configure Eclipse}
\begin{itemize}
- \item select 'Window, Preferences, Yocto Project ADT'
- \item select 'Standalone pre-built toolchain'
- \item set Toolchain Root Location '/home/devel/sdk'
- \item set Sysroot Location '/home/devel/sdk/core-image-minimal'
- \item use 'native' as 'Target Options'
- \item 'Apply' the Settings and close the dialog with 'OK'
+\item select 'Window, Preferences, Yocto Project ADT'
+\item select 'Standalone pre-built toolchain'
+\item set Toolchain Root Location '/home/devel/sdk'
+\item set Sysroot Location '/home/devel/sdk/core-image-minimal'
+\item use 'native' as 'Target Options'
+\item 'Apply' the Settings and close the dialog with 'OK'
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{Hello World example}
\begin{itemize}
- \item select 'File, New, Project\dots'
- \item select 'C/C++, C Project'
- \item select 'Yocto Project ADT Autotools Project, Hello World ANSI C Project'
- \item enter a 'Project name' and select 'Next'
- \item enter 'Basic settings' and select 'Finish'
- \item if opened, close the 'Welcome' window
- \item right click on the root project folder and select 'Reconfigure Project'
- \item right click on the root project folder and select 'Build Project'
+\item select 'File, New, Project\dots'
+\item select 'C/C++, C Project'
+\item select 'Yocto Project ADT Autotools Project, Hello World ANSI C Project'
+\item enter a 'Project name' and select 'Next'
+\item enter 'Basic settings' and select 'Finish'
+\item if opened, close the 'Welcome' window
+\item right click on the root project folder and select 'Reconfigure Project'
+\item right click on the root project folder and select 'Build Project'
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{remote execution and debugging}
\begin{itemize}
- \item switch to 'Remote System Explorer' perspective
- \item create a new 'TCF' connection
- \item switch to 'C/C++' perspective and select 'Run / Debug Configurations'
- \item select the preconfigured 'C/C++ Application' and select the correct
- 'Connection'
- \item set 'Remote Absolute File Path' to sth. like '/usr/bin/<yourapp>'
- \item select 'Apply', 'Debug' - Next time you can use this preconfigured debug
- configuration
+\item switch to 'Remote System Explorer' perspective
+\item create a new 'TCF' connection
+\item switch to 'C/C++' perspective and select 'Run / Debug Configurations'
+\item select the preconfigured 'C/C++ Application' and select the correct
+ 'Connection'
+\item set 'Remote Absolute File Path' to sth. like '/usr/bin/<yourapp>'
+\item select 'Apply', 'Debug' - Next time you can use this preconfigured debug
+ configuration
\end{itemize}
\end{frame}
diff --git a/distribution/yocto-basic/yocto-imgbuild1.tex b/distribution/yocto-basic/yocto-imgbuild1.tex
index 7437ab7..90b1a68 100644
--- a/distribution/yocto-basic/yocto-imgbuild1.tex
+++ b/distribution/yocto-basic/yocto-imgbuild1.tex
@@ -3,11 +3,11 @@
\frametitle{basics}
\begin{itemize}
\item images are constructed using the packages built earlier and put into the
- Package Feeds
+ Package Feeds
\item decisions of what to install on the image is based on the minimum
- defined set of required components in an image recipe
+ defined set of required components in an image recipe
\item this minimum set is then expanded based on dependencies to produce a
- package solution
+ package solution
\item variety of formats (tar.bz2, ext2, ext3, jffs, \dots) are supported
\end{itemize}
\end{frame}
diff --git a/distribution/yocto-basic/yocto-workflow.tex b/distribution/yocto-basic/yocto-workflow.tex
index 3d9651a..efa3a52 100644
--- a/distribution/yocto-basic/yocto-workflow.tex
+++ b/distribution/yocto-basic/yocto-workflow.tex
@@ -74,8 +74,8 @@ layers should be grouped by functionality
\end{frame}
\begin{frame}[fragile]
- \frametitle{directory layout}
- \begin{verbatim}
+\frametitle{directory layout}
+\begin{verbatim}
poky
├── bitbake
├── documentation
@@ -107,8 +107,8 @@ poky
VAR = "value"
\end{verbatim}
\begin{itemize}
- \item normal assignment
- \item values need to be surrounded by double quotes
+\item normal assignment
+\item values need to be surrounded by double quotes
\end{itemize}
\end{frame}
@@ -119,8 +119,8 @@ VAR ?= "1"
VAR ?= "2"
\end{verbatim}
\begin{itemize}
- \item VAR is set to "1" in this example
- \item if there are multiple assignments using ?= the first one is used
+\item VAR is set to "1" in this example
+\item if there are multiple assignments using ?= the first one is used
\end{itemize}
\end{frame}
@@ -131,8 +131,8 @@ VAR ??= "1"
VAR ??= "2"
\end{verbatim}
\begin{itemize}
- \item VAR is set to "2" in this example
- \item if there are multiple assignments using ??= the last one is used
+\item VAR is set to "2" in this example
+\item if there are multiple assignments using ??= the last one is used
\end{itemize}
\end{frame}
@@ -146,8 +146,8 @@ VAR_B ?= "12"
VAR_B ??= "34"
\end{verbatim}
\begin{itemize}
- \item VAR\_A contains "34"
- \item VAR\_B contains "12"
+\item VAR\_A contains "34"
+\item VAR\_B contains "12"
\end{itemize}
\end{frame}
@@ -161,7 +161,7 @@ VAR ?= "78"
VAR ??= "78"
\end{verbatim}
\begin{itemize}
- \item VAR contains "56"
+\item VAR contains "56"
\end{itemize}
\end{frame}
@@ -176,9 +176,9 @@ VAR_A = "33"
echo ${VAR_A} ${VAR_B} ${VAR_C}
\end{verbatim}
\begin{itemize}
- \item 33 B:33 C:22
- \item the content of VAR\_C is expanded immediately on assignment
- \item the content of VAR\_B is expanded on use
+\item 33 B:33 C:22
+\item the content of VAR\_C is expanded immediately on assignment
+\item the content of VAR\_B is expanded on use
\end{itemize}
\end{frame}
@@ -191,9 +191,9 @@ VAR_B = "56"
VAR_B =+ "78"
\end{verbatim}
\begin{itemize}
- \item VAR\_A contains "12 34"
- \item VAR\_B contains "78 56"
- \item there are spaces between the appended values
+\item VAR\_A contains "12 34"
+\item VAR\_B contains "78 56"
+\item there are spaces between the appended values
\end{itemize}
\end{frame}
@@ -206,9 +206,9 @@ VAR_B = "56"
VAR_B =. "78"
\end{verbatim}
\begin{itemize}
- \item VAR\_A contains "1234"
- \item VAR\_B contains "7856"
- \item there are no spaces between the appended values
+\item VAR\_A contains "1234"
+\item VAR\_B contains "7856"
+\item there are no spaces between the appended values
\end{itemize}
\end{frame}
@@ -232,8 +232,8 @@ VAR_append = "56"
VAR_prepend = "12"
\end{verbatim}
\begin{itemize}
- \item VAR contains "123456"
- \item there are no spaces between the appended values
+\item VAR contains "123456"
+\item there are no spaces between the appended values
\end{itemize}
\end{frame}
@@ -245,7 +245,7 @@ VAR = "foo"
VAR_string1 = "bar"
\end{verbatim}
\begin{itemize}
- \item if string1 is listed in OVERRIDES, use "bar" for value of VAR, otherwise use "foo"
+\item if string1 is listed in OVERRIDES, use "bar" for value of VAR, otherwise use "foo"
\end{itemize}
\end{frame}
@@ -255,7 +255,7 @@ VAR_string1 = "bar"
VAR[some_flag]="foo"
\end{verbatim}
\begin{itemize}
- \item associate a subsidiary flag value to a variable
+\item associate a subsidiary flag value to a variable
\end{itemize}
\end{frame}
@@ -268,8 +268,8 @@ B = "2"
A2 = "Y"
\end{verbatim}
\begin{itemize}
- \item Key expansion happens just before BitBake expands overrides.
- \item A2 contains "X"
+\item Key expansion happens just before BitBake expands overrides.
+\item A2 contains "X"
\end{itemize}
\end{frame}
@@ -413,8 +413,8 @@ $ bitbake -e <recipe-name> | grep FILESPATH
\begin{frame}
\frametitle{SRC\_URI patch options}
\begin{itemize}
- \item patches are applied in the order they appear in SRC\_URI
- \item quilt is used to apply the patches
+\item patches are applied in the order they appear in SRC\_URI
+\item quilt is used to apply the patches
\end{itemize}
\begin{description}
\item[apply=no] apply patch or not; default is yes
@@ -497,10 +497,10 @@ Same as include, but returns an error, if include file not found.
\begin{frame}
\frametitle{basics}
\begin{itemize}
- \item are typically used to modify or extend the functionality of the base
- recipe
- \item it's recommended by the Yocto project to use bbappend files instead
- of copying and modyfiing a recipe in an own layer
+\item are typically used to modify or extend the functionality of the base
+ recipe
+\item it's recommended by the Yocto project to use bbappend files instead
+ of copying and modyfiing a recipe in an own layer
\end{itemize}
\end{frame}
@@ -516,8 +516,8 @@ an append file must be named after the base package:
\begin{frame}
\frametitle{basics}
\begin{itemize}
- \item python can be used to write functions
- \item e.g. write your own image generation class
+\item python can be used to write functions
+\item e.g. write your own image generation class
\end{itemize}
\end{frame}
@@ -525,17 +525,17 @@ an append file must be named after the base package:
\begin{frame}
\frametitle{basics}
\begin{itemize}
- \item are defined and ordered in classes
- \item can be overridden by classes and recipes
+\item are defined and ordered in classes
+\item can be overridden by classes and recipes
\end{itemize}
\end{frame}
\begin{frame}
- \frametitle{download \& patch}
+\frametitle{download \& patch}
\begin{description}
\item [do\_checkuri] validates the SRC\_URI value
\item [do\_checkuriall] validates the SRC\_URI value for all recipes required
- to build a target"
+ to build a target"
\item [do\_fetch] fetches the source code
\item [do\_fetchall] fetches all remote sources required to build a target
\item [do\_unpack] unpacks the source code into a working directory
@@ -544,18 +544,18 @@ an append file must be named after the base package:
\end{frame}
\begin{frame}
- \frametitle{configure \& compile}
+\frametitle{configure \& compile}
\begin{description}
\item [do\_configure] configures the source by enabling and disabling any
- build-time and configuration options for the software being built
+ build-time and configuration options for the software being built
\item [do\_configure\_ptest\_base] configures the runtime test suite included
- in the software being built
+ in the software being built
\item [do\_compile] compiles the source in the compilation directory
\item [do\_install] copies files from the compilation directory to a holding
- area
+ area
\item [do\_populate\_sysroot] copies a subset of files installed by
- do\_install into the sysroot in order to make them available to other
- recipes
+ do\_install into the sysroot in order to make them available to other
+ recipes
\end{description}
\end{frame}
@@ -563,34 +563,34 @@ an append file must be named after the base package:
\frametitle{packaging}
\begin{description}
\item [do\_packagedata] creates package metadata used by the build system to
- generate the final packages
+ generate the final packages
\item [do\_package] analyzes the content of the holding area and splits it
- into subsets based on available packages and files
+ into subsets based on available packages and files
\item [do\_package\_write] creates the actual packages and places them in the
- Package Feed area
+ Package Feed area
\item [do\_package\_write\_deb] creates the actual DEB packages and places
- them in the Package Feed area
+ them in the Package Feed area
\item [do\_package\_write\_ipk] creates the actual IPK packages and places
- them in the Package Feed area
+ them in the Package Feed area
\item [do\_package\_write\_rpm] creates the actual RPM packages and places
- them in the Package Feed area
+ them in the Package Feed area
\item [do\_package\_write\_tar] creates tar archives for packages and places
- them in the Package Feed area
+ them in the Package Feed area
\item [do\_package\_index] creates or updates the index in the Package Feed
- area
+ area
\end{description}
\end{frame}
\begin{frame}
- \frametitle{deploy}
+\frametitle{deploy}
\begin{description}
\item [do\_rootfs] creates the root filesystem (file and directory structure)
- for an image
+ for an image
\item [do\_vmdkimg] creates a .vmdk image for use with VMware and compatible
- virtual machine hosts"
+ virtual machine hosts"
\item [do\_deploy] writes deployable output files to the deploy directory
\item [do\_populate\_sdk] creates the file and directory structure for an
- installable SDK
+ installable SDK
\end{description}
\end{frame}
@@ -599,13 +599,13 @@ an append file must be named after the base package:
\begin{description}
\item [do\_clean] removes all output files for a target
\item [do\_cleanall] removes all output files, shared state cache, and
- downloaded source files for a target
+ downloaded source files for a target
\item [do\_cleansstate] removes all output files and shared state cache for a
- target
+ target
\item [do\_rm\_work] removes work files after the build system has finished
- with them
+ with them
\item [do\_rm\_work\_all] top-level task for removing work files after the
- build system has finished with them
+ build system has finished with them
\end{description}
\end{frame}
@@ -613,20 +613,20 @@ an append file must be named after the base package:
\frametitle{kernel}
\begin{description}
\item [do\_kernel\_checkout] checks out source/meta branches for a linux-yocto
- style kernel
+ style kernel
\item [do\_validate\_branches] ensures that the source/meta branches are on
- the locations specified by their SRCREV values for a linux-yocto style
- kernel"
+ the locations specified by their SRCREV values for a linux-yocto style
+ kernel"
\item [do\_kernel\_configme] assembles the kernel configuration for a
- linux-yocto style kernel
+ linux-yocto style kernel
\item [do\_menuconfig] runs 'make menuconfig' for the kernel
\item [do\_diffconfig] compares the old and new config files after running
- do\_menuconfig for the kernel
+ do\_menuconfig for the kernel
\item [do\_savedefconfig] creates a minimal Linux kernel configuration file
\item [do\_kernel\_configcheck] validates the kernel configuration for a
- linux-yocto style kernel
+ linux-yocto style kernel
\item [do\_sizecheck] checks the size of the kernel image against
- KERNEL\_IMAGE\_MAXSIZE (if set)
+ KERNEL\_IMAGE\_MAXSIZE (if set)
\end{description}
\end{frame}
@@ -634,12 +634,12 @@ an append file must be named after the base package:
\frametitle{kernel}
\begin{description}
\item [do\_compile\_kernelmodules] compiles loadable modules for the Linux
- kernel
+ kernel
\item [do\_strip] strips unneeded sections out of the Linux kernel image
\item [do\_kernel\_link\_vmlinux] creates a symbolic link in arch/\$arch/boot
- for vmlinux kernel images
+ for vmlinux kernel images
\item [do\_bundle\_initramfs] combines an initial ramdisk image and kernel
- together to form a single image
+ together to form a single image
\end{description}
\end{frame}
@@ -647,9 +647,9 @@ an append file must be named after the base package:
\frametitle{licenses}
\begin{description}
\item [do\_populate\_lic] writes license information for the recipe that is
- collected later when the image is constructed
+ collected later when the image is constructed
\item [do\_spdx] a build stage that takes the source code and scans it on a
- remote FOSSOLOGY server in order to produce an SPDX document
+ remote FOSSOLOGY server in order to produce an SPDX document
\end{description}
\end{frame}
@@ -657,11 +657,11 @@ an append file must be named after the base package:
\frametitle{special stuff}
\begin{description}
\item [do\_uboot\_mkimage] creates a uImage file from the kernel for the
- U-Boot bootloader
+ U-Boot bootloader
\item [do\_generate\_qt\_config\_file] writes a qt.conf file for building a
- Qt-based application
+ Qt-based application
\item [do\_devshell] starts a shell with the environment set up for
- development/debugging
+ development/debugging
\item [do\_listtasks] lists all defined tasks for a target
\end{description}
\end{frame}
@@ -671,49 +671,49 @@ an append file must be named after the base package:
\frametitle{basics}
a machine config is used to describe a board
\begin{itemize}
- \item machine configs are stored in the layers: conf/machine/*
- \item settings can be splitted in different include *.inc files
- \item e.g. one include for CPU that is used by the SoC inc file,
+\item machine configs are stored in the layers: conf/machine/*
+\item settings can be splitted in different include *.inc files
+\item e.g. one include for CPU that is used by the SoC inc file,
that is used by the Board .conf file
- \item the include files can be stored in different layers
+\item the include files can be stored in different layers
\end{itemize}
\end{frame}
\begin{frame}
- \frametitle{u-boot \& kernel}
+\frametitle{u-boot \& kernel}
\begin{description}
- \item [UBOOT\_MACHINE] value passed on the make command line when building a
- U-Boot image
- \item [UBOOT\_MAKE\_TARGET] target called in the Makefile
- \item [UBOOT\_ENTRYPOINT] entry point for the U-Boot image
- \item [PREFERRED\_PROVIDER\_virtual/kernel] default kernel
- \item [KERNEL\_DEVICETREE] default devicetree
- \item [KERNEL\_IMAGETYPE] type of kernel to build for a device,
- defaults to 'zImage'
+\item [UBOOT\_MACHINE] value passed on the make command line when building a
+ U-Boot image
+\item [UBOOT\_MAKE\_TARGET] target called in the Makefile
+\item [UBOOT\_ENTRYPOINT] entry point for the U-Boot image
+\item [PREFERRED\_PROVIDER\_virtual/kernel] default kernel
+\item [KERNEL\_DEVICETREE] default devicetree
+\item [KERNEL\_IMAGETYPE] type of kernel to build for a device,
+ defaults to 'zImage'
\end{description}
\end{frame}
\begin{frame}
- \frametitle{hardware}
+\frametitle{hardware}
\begin{description}
- \item[SOC\_FAMILY] groups together machines based upon the same family of SOC
- (System On Chip)
- \item [MACHINEOVERRIDES] lists overrides specific to the current machine.
- By default, this list includes the value of MACHINE. This can be used in
- recipes; e.g. MACHINEOVERRIDES =. "mymachine" and in the recipe
- SRC\_URI\_append\_mymachine = "file://mymachine-quirk.patch"
- \item [MACHINE\_FEATURES] list of hardware features the MACHINE supports
- \footnote{acpi, alsa, apm, bluetooth, ext2, irda, keyboard, pci, pcmcia,
- screen, serial, touchscreen, usbgadget, usbhost, wifi}
- \item [MACHINE\_EXTRA\_RRECOMMENDS] list of machine-specific packages to
- install as part of the image being built that are not essential for booting
- the machine. The image being built has no build dependencies on the packages
- in this list.
+\item[SOC\_FAMILY] groups together machines based upon the same family of SOC
+ (System On Chip)
+\item [MACHINEOVERRIDES] lists overrides specific to the current machine.
+ By default, this list includes the value of MACHINE. This can be used in
+ recipes; e.g. MACHINEOVERRIDES =. "mymachine" and in the recipe
+ SRC\_URI\_append\_mymachine = "file://mymachine-quirk.patch"
+\item [MACHINE\_FEATURES] list of hardware features the MACHINE supports
+\footnote{acpi, alsa, apm, bluetooth, ext2, irda, keyboard, pci, pcmcia,
+ screen, serial, touchscreen, usbgadget, usbhost, wifi}
+\item [MACHINE\_EXTRA\_RRECOMMENDS] list of machine-specific packages to
+ install as part of the image being built that are not essential for booting
+ the machine. The image being built has no build dependencies on the packages
+ in this list.
\item [SERIAL\_CONSOLE] speed and device for the serial port used to attach
- the serial console. This variable is given to the kernel as the 'console'
- parameter. After booting occurs, getty is started on that port so remote
- login is possible.
- \end{description}
+ the serial console. This variable is given to the kernel as the 'console'
+ parameter. After booting occurs, getty is started on that port so remote
+ login is possible.
+\end{description}
\end{frame}
\begin{frame}
@@ -733,6 +733,6 @@ that is used by the Board .conf file
\item [PREFERRED\_PROVIDER\_virtual/kernel] recommended kernel
\item [IMAGE\_FSTYPES] formats for the rootfs, e.g. "ext3 tar.bz2"
\item [IMAGE\_CLASSES] list of classes that all images should inherit, default
- is image\_types, e.g. to hook in own image generation code
+ is image\_types, e.g. to hook in own image generation code
\end{description}
\end{frame}
diff --git a/distribution/yocto-intro/pres_yocto-intro.tex b/distribution/yocto-intro/pres_yocto-intro.tex
index dfc7b5e..8b18ead 100644
--- a/distribution/yocto-intro/pres_yocto-intro.tex
+++ b/distribution/yocto-intro/pres_yocto-intro.tex
@@ -7,26 +7,26 @@
\begin{frame}
\frametitle{Agenda}
\begin{itemize}
- \item Intro
- \begin{itemize}
- \item What is Yocto?
- \item History
- \item Yocto compared with other methods
- \end{itemize}
- \item Basics
- \begin{itemize}
- \item Understand the workflow
- \item Build predefined images
- \item Using ADT
- \end{itemize}
- \item Advanced
- \begin{itemize}
- \item Using BSP layers
- \item Create layers \& recipes for own applications
- \item Define a distribution
- \item Create a customized image class
- \item Build images
- \end{itemize}
+\item Intro
+\begin{itemize}
+\item What is Yocto?
+\item History
+\item Yocto compared with other methods
+\end{itemize}
+\item Basics
+\begin{itemize}
+\item Understand the workflow
+\item Build predefined images
+\item Using ADT
+\end{itemize}
+\item Advanced
+\begin{itemize}
+\item Using BSP layers
+\item Create layers \& recipes for own applications
+\item Define a distribution
+\item Create a customized image class
+\item Build images
+\end{itemize}
\end{itemize}
\end{frame}
diff --git a/distribution/yocto-intro/yocto-intro.tex b/distribution/yocto-intro/yocto-intro.tex
index 14cde2d..23cb185 100644
--- a/distribution/yocto-intro/yocto-intro.tex
+++ b/distribution/yocto-intro/yocto-intro.tex
@@ -1,27 +1,27 @@
\begin{frame}
\frametitle{Yocto is \dots}
\begin{itemize}
- \item an Ecosystem (not a single open-source project)
- \item a collection of embedded projects and tooling
- \item a place for Industry to publish BSPs
- \item NOT an embedded Linux distribution
+\item an Ecosystem (not a single open-source project)
+\item a collection of embedded projects and tooling
+\item a place for Industry to publish BSPs
+\item NOT an embedded Linux distribution
\end{itemize}
\dots used to build a Linux system from source in about an hour \footnote{quad i7, 16GB
- RAM, fast disks, needed}
+ RAM, fast disks, needed}
\end{frame}
\begin{frame}
\frametitle{the Yocto project family}
\begin{description}
- \item[Poky] reference build system / distribution
- \begin{description}
- \item[BitBake] build-engine
- \item[Toaster] graphical user interface for BitBake
- \item[meta] shared base layer of recipes and classes
- \item[Example BSPs] for qemux86, mpc8315e-rdb, beaglebone
- \end{description}
- \item[ADT] development environment for user-space applications
- \item[Eclipse IDE Plugin] integration of ADT into the Eclipse IDE
+\item[Poky] reference build system / distribution
+\begin{description}
+\item[BitBake] build-engine
+\item[Toaster] graphical user interface for BitBake
+\item[meta] shared base layer of recipes and classes
+\item[Example BSPs] for qemux86, mpc8315e-rdb, beaglebone
+\end{description}
+\item[ADT] development environment for user-space applications
+\item[Eclipse IDE Plugin] integration of ADT into the Eclipse IDE
\end{description}
\end{frame}
@@ -29,12 +29,12 @@
\frametitle{Poky is \dots}
the Yocto key project; a reference distribution consisting of
\begin{itemize}
- \item a build system for Linux (openembedded + customized busybox,
- psplash, alsa-state and tiny-init)
- \item Yocto Linux kernel
- \item build recipes for common open-source software from openembedded
- \item able to generate toolchains for several architectures
- \item documentation
+\item a build system for Linux (openembedded + customized busybox,
+ psplash, alsa-state and tiny-init)
+\item Yocto Linux kernel
+\item build recipes for common open-source software from openembedded
+\item able to generate toolchains for several architectures
+\item documentation
\end{itemize}
release cycle: about 6 months
\end{frame}
@@ -93,19 +93,19 @@ freescale.com & 159 & 187 & 0,52\% & 0,43\% \\
\begin{frame}
\frametitle{Yocto principles}
\begin{itemize}
- \item poky provides a collection of software build recipes
- \item customize build recipe blueprints for your own needs
- \item distinguishing between app and system developers
- \item layer model for modular development, reuse, and customizations
+\item poky provides a collection of software build recipes
+\item customize build recipe blueprints for your own needs
+\item distinguishing between app and system developers
+\item layer model for modular development, reuse, and customizations
\end{itemize}
\end{frame}
\begin{frame}
\frametitle{cross-build vs. binary distribution}
\begin{itemize}
- \item men-power needed for building an own distribution?
- \item security tracking?
- \item optimizations needed on all binaries?
- \item cross-compile wanted?
+\item men-power needed for building an own distribution?
+\item security tracking?
+\item optimizations needed on all binaries?
+\item cross-compile wanted?
\end{itemize}
\end{frame}
diff --git a/distribution/yocto-x86/pres_yocto-x86.tex b/distribution/yocto-x86/pres_yocto-x86.tex
index b48abee..ccef2e6 100644
--- a/distribution/yocto-x86/pres_yocto-x86.tex
+++ b/distribution/yocto-x86/pres_yocto-x86.tex
@@ -6,47 +6,47 @@
\begin{frame}
\frametitle{Agenda}
\begin{itemize}
- \item Yocto Intro
- \begin{itemize}
- \item What is Yocto/Poky?
- \item Yocto compared with other methods
- \end{itemize}
-
- \item Yocto Feature Tour
- \begin{itemize}
- \item Understand the workflow
- \item Using BSP layers
- \item Extend and build predefined images
- \item Using ADT
- \end{itemize}
-
- \item Autotools
- \begin{itemize}
- \item Autoconf
- \item Automake
- \item Libtool
- \end{itemize}
-
- \item Yocto Customization
- \begin{itemize}
- \item Application Integration
- \item Kernel Integration
- \end{itemize}
+\item Yocto Intro
+\begin{itemize}
+\item What is Yocto/Poky?
+\item Yocto compared with other methods
+\end{itemize}
+
+\item Yocto Feature Tour
+\begin{itemize}
+\item Understand the workflow
+\item Using BSP layers
+\item Extend and build predefined images
+\item Using ADT
+\end{itemize}
+
+\item Autotools
+\begin{itemize}
+\item Autoconf
+\item Automake
+\item Libtool
+\end{itemize}
+
+\item Yocto Customization
+\begin{itemize}
+\item Application Integration
+\item Kernel Integration
+\end{itemize}
\end{itemize}
\end{frame}
\input{../yocto-intro/yocto-intro}
\begin{frame}
- \frametitle{Yocto Feature Tour}
- \begin{itemize}
- \item Workflow
- \item Recipes
- \item Images
- \item ADT
- \item Layers
- \item extend Images
- \end{itemize}
+\frametitle{Yocto Feature Tour}
+\begin{itemize}
+\item Workflow
+\item Recipes
+\item Images
+\item ADT
+\item Layers
+\item extend Images
+\end{itemize}
\end{frame}
\input{../yocto-basic/yocto-workflow}
@@ -60,37 +60,37 @@
\begin{frame}
\frametitle{if we still have (a lot of) time}
- \begin{itemize}
- \item try to build and run the enlightenment window manager
- \item the slides show just the start
- \item you need to fix two build bugs
- \item you need to add some runtime dependencies
- \end{itemize}
+\begin{itemize}
+\item try to build and run the enlightenment window manager
+\item the slides show just the start
+\item you need to fix two build bugs
+\item you need to add some runtime dependencies
+\end{itemize}
\end{frame}
\input{yocto-add-efl}
\begin{frame}
- \frametitle{Autotools}
- \begin{itemize}
- \item Autoconf
- \item Automake
- \item standalone example
- \item Libtool
- \item library example
- \end{itemize}
+\frametitle{Autotools}
+\begin{itemize}
+\item Autoconf
+\item Automake
+\item standalone example
+\item Libtool
+\item library example
+\end{itemize}
\end{frame}
\input{../autotools/autotools.tex}
\subsection{adding own applications}
\begin{frame}
- \frametitle{Yocto Customization}
- \begin{itemize}
- \item Application Integration
- \item Kernel Integration
- \item Yocto Helpers
- \end{itemize}
+\frametitle{Yocto Customization}
+\begin{itemize}
+\item Application Integration
+\item Kernel Integration
+\item Yocto Helpers
+\end{itemize}
\end{frame}
\input{../yocto-advanced/yocto-add-simple-application}
diff --git a/frameworks/middleware/handout_middleware.tex b/frameworks/middleware/handout_middleware.tex
index 44c75f7..7e227fa 100644
--- a/frameworks/middleware/handout_middleware.tex
+++ b/frameworks/middleware/handout_middleware.tex
@@ -10,7 +10,7 @@ There are different kinds of middleware:
\begin{description}
\item[RPC] Remote Procedure Calls are used to trigger a function in e.g. Task\_A
- calls a function of Task\_B
+ calls a function of Task\_B
\item[MOM] Message Orientated Middleware is used the send messages between Taks.
(1:n and 1:1)
\item[ORB] An Object Request Broker is used to host complete objects of an
@@ -91,27 +91,27 @@ possible one of these libraries should be used:
\subparagraph{Terminology}
\begin{description}
\item[bus address] is the name of ther underlying unix socket, e.g.
- \cmd{/tmp/dbus\_lx.socket}
+ \cmd{/tmp/dbus\_lx.socket}
\item[unique bus name] is generated by the daemon for every connection
\item[well-known bus name] must be set by the user for a connection, multiple
- names for one connection are allowed. A well known bus name has a namespace
- and is seperated by dots, e.g. \cmd{de.linutronix.Foo}.
+ names for one connection are allowed. A well known bus name has a namespace
+ and is seperated by dots, e.g. \cmd{de.linutronix.Foo}.
\item[Object] Each Endpoint is called Object. An Object offers services on the
- bus. A client can create multiple Objects.
+ bus. A client can create multiple Objects.
\item[Proxies] are used to access Objects. The use of Proxies and Objects are
- defined by the language binding, to fit best in the schemantics of the
- programming language.
+ defined by the language binding, to fit best in the schemantics of the
+ programming language.
\item[Methods] may require input parameters. Each call returns its output
- parameters or an exception if the action couldn't be performed.
+ parameters or an exception if the action couldn't be performed.
\item[Signals] are used for 1:n message passing. An application needs to be
subscribed for a signal. A filter can be provided during subscription, to get
only signals with certain values in its parameters.
\item[AMI] Asynchronus Method Invocation can be used to make non blocking calls
to Methods.
\item[Activation] A config file can provide the information which objects are
- hosted by an application. The dbus daemon is able, to activate those
- applications on request or by invoking a method of an object in the context
- of the clients well-known bus name.
+ hosted by an application. The dbus daemon is able, to activate those
+ applications on request or by invoking a method of an object in the context
+ of the clients well-known bus name.
\end{description}
\begin{figure}
@@ -186,7 +186,7 @@ calculated values.
\label{img:rtorb}
\end{figure}
-As shown in figure \ref{img:rtorb}, a real-time capable ORB extends a standard
+As shown in figure \ref{img:rtorb}, a real-time capable ORB extends a standard
ORB with the following features: locating objects in constant time,
preallocation of resources, operating system independent priority
handling, priority based scheduling.
@@ -230,13 +230,13 @@ First an IDL for the Ping interface will be created (\cmd{ping.idl}:
\begin{lstlisting}
module Linutronix{
- interface Ping{
- oneway void send(in string payload);
- };
+ interface Ping{
+ oneway void send(in string payload);
+ };
};
\end{lstlisting}
-Then a IDL compiler is used to generater headers and wrappers for client and
+Then a IDL compiler is used to generater headers and wrappers for client and
server and a dummy implementation file:
\cmd{tao\_idl -GI ping.idl}
@@ -280,10 +280,10 @@ Linutronix_Ping_i::~Linutronix_Ping_i (void)
void Linutronix_Ping_i::send (
const char * payload)
{
- // Add your implementation here
- struct timespec time_rx;
- clock_gettime(CLOCK_MONOTONIC, &time_rx);
- std::cout<<time_rx.tv_sec<<":"<<time_rx.tv_nsec/1000<<": "<<payload<<"\n";
+ // Add your implementation here
+ struct timespec time_rx;
+ clock_gettime(CLOCK_MONOTONIC, &time_rx);
+ std::cout<<time_rx.tv_sec<<":"<<time_rx.tv_nsec/1000<<": "<<payload<<"\n";
}
\end{lstlisting}
@@ -300,70 +300,70 @@ implementation:
#include <tao/RTCORBA/RTCORBA.h>
int main(int argc, char* argv[]){
- try{
- // initialize ORB
- CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "ServerORB");
- std::cout<<"ORB initialized"<<std::endl;
-
- // access RT Extensions
- CORBA::Object_var rtorb = orb->resolve_initial_references("RTORB");
- RTCORBA::RTORB_var rt_orb = RTCORBA::RTORB::_narrow(rtorb);
- std::cout<<"RT Extensions OK"<<std::endl;
-
- // obtain root_poa
- CORBA::Object_var poa = orb->resolve_initial_references("RootPOA");
- PortableServer::POA_var root_poa = PortableServer::POA::_narrow(poa.in());
-
- // activate POA Manager
- PortableServer::POAManager_var poa_manager = root_poa->the_POAManager();
- poa_manager->activate();
- std::cout<<"root_poa OK"<<std::endl;
-
- // create Policy
- CORBA::PolicyList ping_policy(1);
- ping_policy.length(1);
- ping_policy[0] = rt_orb->create_priority_model_policy(
- RTCORBA::CLIENT_PROPAGATED, RTCORBA::maxPriority);
-
- // create ObjectAdapter, assign Policy
- PortableServer::POA_var ping_poa =
- root_poa->create_POA("ping_poa", poa_manager.in(), ping_policy);
-
- std::cout<<"Policy assigned"<<std::endl;
-
- // create the servant
- Linutronix_Ping_i ping_i;
-
- // activate servant
- PortableServer::ObjectId_var object_id = ping_poa->activate_object(&ping_i);
- CORBA::Object_var ping_obj = ping_poa->id_to_reference(object_id.in());
- CORBA::String_var ior = orb->object_to_string(ping_obj.in());
- std::cout<<"Servant activated"<<std::endl;
-
- // NameService
- CORBA::Object_var naming_obj =
- orb->resolve_initial_references("NameService");
-
- CosNaming::NamingContext_var naming_context =
- CosNaming::NamingContext::_narrow(naming_obj.in());
-
- CosNaming::Name name(1);
- name.length(1);
- name[0].id = CORBA::string_dup("Receiver");
- naming_context->rebind(name, ping_obj.in());
- std::cout<<"Bound Receiver to NameService"<<std::endl;
-
- // start ORB
- orb->run();
- std::cout<<"ORB ready"<<std::endl;
-
- //destroy
- root_poa->destroy(1,1);
- orb->destroy();
-
- } catch(CORBA::Exception &any) {
- std::cout<<"Exception: "<<any<<std::endl;
- }
+ try{
+ // initialize ORB
+ CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "ServerORB");
+ std::cout<<"ORB initialized"<<std::endl;
+
+ // access RT Extensions
+ CORBA::Object_var rtorb = orb->resolve_initial_references("RTORB");
+ RTCORBA::RTORB_var rt_orb = RTCORBA::RTORB::_narrow(rtorb);
+ std::cout<<"RT Extensions OK"<<std::endl;
+
+ // obtain root_poa
+ CORBA::Object_var poa = orb->resolve_initial_references("RootPOA");
+ PortableServer::POA_var root_poa = PortableServer::POA::_narrow(poa.in());
+
+ // activate POA Manager
+ PortableServer::POAManager_var poa_manager = root_poa->the_POAManager();
+ poa_manager->activate();
+ std::cout<<"root_poa OK"<<std::endl;
+
+ // create Policy
+ CORBA::PolicyList ping_policy(1);
+ ping_policy.length(1);
+ ping_policy[0] = rt_orb->create_priority_model_policy(
+ RTCORBA::CLIENT_PROPAGATED, RTCORBA::maxPriority);
+
+ // create ObjectAdapter, assign Policy
+ PortableServer::POA_var ping_poa =
+ root_poa->create_POA("ping_poa", poa_manager.in(), ping_policy);
+
+ std::cout<<"Policy assigned"<<std::endl;
+
+ // create the servant
+ Linutronix_Ping_i ping_i;
+
+ // activate servant
+ PortableServer::ObjectId_var object_id = ping_poa->activate_object(&ping_i);
+ CORBA::Object_var ping_obj = ping_poa->id_to_reference(object_id.in());
+ CORBA::String_var ior = orb->object_to_string(ping_obj.in());
+ std::cout<<"Servant activated"<<std::endl;
+
+ // NameService
+ CORBA::Object_var naming_obj =
+ orb->resolve_initial_references("NameService");
+
+ CosNaming::NamingContext_var naming_context =
+ CosNaming::NamingContext::_narrow(naming_obj.in());
+
+ CosNaming::Name name(1);
+ name.length(1);
+ name[0].id = CORBA::string_dup("Receiver");
+ naming_context->rebind(name, ping_obj.in());
+ std::cout<<"Bound Receiver to NameService"<<std::endl;
+
+ // start ORB
+ orb->run();
+ std::cout<<"ORB ready"<<std::endl;
+
+ //destroy
+ root_poa->destroy(1,1);
+ orb->destroy();
+
+ } catch(CORBA::Exception &any) {
+ std::cout<<"Exception: "<<any<<std::endl;
+ }
return 0;
}
\end{lstlisting}
@@ -385,69 +385,69 @@ static std::string str;
int main(int argc, char* argv[])
{
- if (argc > 1)
- str = argv[1];
- else
- str = "no argument given";
-
- try{
- // initialize ORB
- CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "ClientORB");
- std::cout<<"ORB ok"<<std::endl;
-
- // get RTORB
- CORBA::Object_var rtorb = orb->resolve_initial_references("RTORB");
- RTCORBA::RTORB_var rt_orb = RTCORBA::RTORB::_narrow(rtorb.in());
- std::cout<<"RTORB ok"<<std::endl;
-
- // NamingService
- CORBA::Object_var naming_obj =
- orb->resolve_initial_references("NameService");
-
- CosNaming::NamingContext_var naming_context =
- CosNaming::NamingContext::_narrow(naming_obj.in());
-
- std::cout<<"NamingService ok"<<std::endl;
-
- CosNaming::Name name(1);
- name.length(1);
- name[0].id = CORBA::string_dup("Receiver");
-
- // receive Object
- CORBA::Object_var ping_obj = naming_context->resolve(name);
- ping = Linutronix::Ping::_narrow(ping_obj.in());
- std::cout<<"TransferOjekt ok"<<std::endl;
-
- // Private Connection Policy
- CORBA::PolicyList pc_policy(1);
- pc_policy.length(1);
- pc_policy[0] = rt_orb->create_private_connection_policy();
-
- CORBA::Object_var new_tran =
- ping->_set_policy_overrides(pc_policy, CORBA::SET_OVERRIDE);
-
- ping = Linutronix::Ping::_narrow(new_tran.in());
- std::cout<<"PrivateConnection ok"<<std::endl;
-
- struct timespec time_tx;
- struct timespec time_done;
-
- for(unsigned int i = 0; i < 100; i++)
- {
- clock_gettime(CLOCK_MONOTONIC, &time_tx);
- ping->send((const char*)str.c_str());
- clock_gettime(CLOCK_MONOTONIC, &time_done);
- std::cout<<time_tx.tv_sec<<":"<<time_tx.tv_nsec/1000<<"\n";
- std::cout<<time_done.tv_sec<<":"<<time_done.tv_nsec/1000<<"\n\n";
- }
-
- // destroy ORB
- orb->destroy();
-
- } catch(CORBA::Exception &any) {
- std::cout<<"Exception occured: "<<any<<std::endl;
- }
- return 0;
+ if (argc > 1)
+ str = argv[1];
+ else
+ str = "no argument given";
+
+ try{
+ // initialize ORB
+ CORBA::ORB_var orb = CORBA::ORB_init(argc, argv, "ClientORB");
+ std::cout<<"ORB ok"<<std::endl;
+
+ // get RTORB
+ CORBA::Object_var rtorb = orb->resolve_initial_references("RTORB");
+ RTCORBA::RTORB_var rt_orb = RTCORBA::RTORB::_narrow(rtorb.in());
+ std::cout<<"RTORB ok"<<std::endl;
+
+ // NamingService
+ CORBA::Object_var naming_obj =
+ orb->resolve_initial_references("NameService");
+
+ CosNaming::NamingContext_var naming_context =
+ CosNaming::NamingContext::_narrow(naming_obj.in());
+
+ std::cout<<"NamingService ok"<<std::endl;
+
+ CosNaming::Name name(1);
+ name.length(1);
+ name[0].id = CORBA::string_dup("Receiver");
+
+ // receive Object
+ CORBA::Object_var ping_obj = naming_context->resolve(name);
+ ping = Linutronix::Ping::_narrow(ping_obj.in());
+ std::cout<<"TransferOjekt ok"<<std::endl;
+
+ // Private Connection Policy
+ CORBA::PolicyList pc_policy(1);
+ pc_policy.length(1);
+ pc_policy[0] = rt_orb->create_private_connection_policy();
+
+ CORBA::Object_var new_tran =
+ ping->_set_policy_overrides(pc_policy, CORBA::SET_OVERRIDE);
+
+ ping = Linutronix::Ping::_narrow(new_tran.in());
+ std::cout<<"PrivateConnection ok"<<std::endl;
+
+ struct timespec time_tx;
+ struct timespec time_done;
+
+ for(unsigned int i = 0; i < 100; i++)
+ {
+ clock_gettime(CLOCK_MONOTONIC, &time_tx);
+ ping->send((const char*)str.c_str());
+ clock_gettime(CLOCK_MONOTONIC, &time_done);
+ std::cout<<time_tx.tv_sec<<":"<<time_tx.tv_nsec/1000<<"\n";
+ std::cout<<time_done.tv_sec<<":"<<time_done.tv_nsec/1000<<"\n\n";
+ }
+
+ // destroy ORB
+ orb->destroy();
+
+ } catch(CORBA::Exception &any) {
+ std::cout<<"Exception occured: "<<any<<std::endl;
+ }
+ return 0;
}
\end{lstlisting}
@@ -456,19 +456,19 @@ appropirate config file (\cmd{ping.idl}) looks like this:
\begin{lstlisting}
project(*Receiver): rt_server, naming {
- requires += exceptions
- Source_Files {
- ping_I.cpp
- Receiver.cpp
- }
+ requires += exceptions
+ Source_Files {
+ ping_I.cpp
+ Receiver.cpp
+ }
}
project(*Supplier): rt_client, naming {
- requires += exceptions
- Source_Files {
- pingC.cpp
- Supplier.cpp
- }
+ requires += exceptions
+ Source_Files {
+ pingC.cpp
+ Supplier.cpp
+ }
}
\end{lstlisting}
@@ -501,71 +501,71 @@ First \cmd{ping-server.c} will be created to host the ping object:
#include <time.h>
static DBusHandlerResult signal_filter
- (DBusConnection *connection, DBusMessage *message, void *user_data);
+ (DBusConnection *connection, DBusMessage *message, void *user_data);
int main(int argc, char **argv)
{
- GMainLoop *loop;
- DBusConnection *bus;
- DBusError error;
-
- loop = g_main_loop_new (NULL, FALSE);
- dbus_error_init (&error);
- bus = dbus_bus_get (DBUS_BUS_SESSION, &error);
-
- if (!bus) {
- g_warning ("Failed to connect to the D-BUS daemon: %s", error.message);
- dbus_error_free (&error);
- return 1;
- }
-
- dbus_connection_setup_with_g_main (bus, NULL);
- /* listening to messages from all objects as no path is specified */
- dbus_bus_add_match (bus, "type='signal',interface='de.linutronix.Ping'",
- &error);
- dbus_connection_add_filter (bus, signal_filter, loop, NULL);
- g_main_loop_run (loop);
-
- return 0;
+ GMainLoop *loop;
+ DBusConnection *bus;
+ DBusError error;
+
+ loop = g_main_loop_new (NULL, FALSE);
+ dbus_error_init (&error);
+ bus = dbus_bus_get (DBUS_BUS_SESSION, &error);
+
+ if (!bus) {
+ g_warning ("Failed to connect to the D-BUS daemon: %s", error.message);
+ dbus_error_free (&error);
+ return 1;
+ }
+
+ dbus_connection_setup_with_g_main (bus, NULL);
+ /* listening to messages from all objects as no path is specified */
+ dbus_bus_add_match (bus, "type='signal',interface='de.linutronix.Ping'",
+ &error);
+ dbus_connection_add_filter (bus, signal_filter, loop, NULL);
+ g_main_loop_run (loop);
+
+ return 0;
}
static DBusHandlerResult signal_filter
- (DBusConnection *connection, DBusMessage *message, void *user_data)
+ (DBusConnection *connection, DBusMessage *message, void *user_data)
{
- /* User data is the event loop we are running in */
- GMainLoop *loop = user_data;
-
- /* A signal from the bus saying we are about to be disconnected */
- if (dbus_message_is_signal(message, "org.freedesktop.Local",
- "Disconnected"))
- {
- /* Tell the main loop to quit */
- g_main_loop_quit (loop);
- /* We have handled this message, don't pass it on */
- return DBUS_HANDLER_RESULT_HANDLED;
- }
- else if (dbus_message_is_signal (message, "de.linutronix.Ping", "Ping"))
- {
- DBusError error;
- char *s;
-
- dbus_error_init (&error);
-
- if (dbus_message_get_args(message, &error, DBUS_TYPE_STRING, &s,
- DBUS_TYPE_INVALID))
- {
- struct timespec rx_time;
- clock_gettime(CLOCK_MONOTONIC, &rx_time);
- g_print("ping received: %s - %d:%d\n", s, rx_time.tv_sec,
- rx_time.tv_nsec/1000);
- // dbus_free (s);
- } else {
- g_print("ping received, but error getting message: %s\n", error.message);
- dbus_error_free (&error);
- }
- return DBUS_HANDLER_RESULT_HANDLED;
- }
- return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
+ /* User data is the event loop we are running in */
+ GMainLoop *loop = user_data;
+
+ /* A signal from the bus saying we are about to be disconnected */
+ if (dbus_message_is_signal(message, "org.freedesktop.Local",
+ "Disconnected"))
+ {
+ /* Tell the main loop to quit */
+ g_main_loop_quit (loop);
+ /* We have handled this message, don't pass it on */
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
+ else if (dbus_message_is_signal (message, "de.linutronix.Ping", "Ping"))
+ {
+ DBusError error;
+ char *s;
+
+ dbus_error_init (&error);
+
+ if (dbus_message_get_args(message, &error, DBUS_TYPE_STRING, &s,
+ DBUS_TYPE_INVALID))
+ {
+ struct timespec rx_time;
+ clock_gettime(CLOCK_MONOTONIC, &rx_time);
+ g_print("ping received: %s - %d:%d\n", s, rx_time.tv_sec,
+ rx_time.tv_nsec/1000);
+ // dbus_free (s);
+ } else {
+ g_print("ping received, but error getting message: %s\n", error.message);
+ dbus_error_free (&error);
+ }
+ return DBUS_HANDLER_RESULT_HANDLED;
+ }
+ return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
\end{lstlisting}
@@ -586,59 +586,59 @@ static const char *v_STRING;
int main (int argc, char **argv)
{
- GMainLoop *loop;
- DBusConnection *bus;
- DBusError error;
-
- if (argc > 1)
- v_STRING = argv[1];
- else
- v_STRING = "no arg given";
-
- /* Create a new event loop to run in */
- loop = g_main_loop_new (NULL, FALSE);
-
- /* Get a connection to the session bus */
- dbus_error_init (&error);
- bus = dbus_bus_get (DBUS_BUS_SESSION, &error);
- if (!bus) {
- g_warning ("Failed to connect to the D-BUS daemon: %s", error.message);
- dbus_error_free (&error);
- return 1;
- }
-
- /* Set up this connection to work in a GLib event loop */
- dbus_connection_setup_with_g_main (bus, NULL);
- /* Every second call send_ping() with the bus as an argument*/
- g_timeout_add (1000, (GSourceFunc)send_ping, bus);
-
- /* Start the event loop */
- g_main_loop_run (loop);
- return 0;
+ GMainLoop *loop;
+ DBusConnection *bus;
+ DBusError error;
+
+ if (argc > 1)
+ v_STRING = argv[1];
+ else
+ v_STRING = "no arg given";
+
+ /* Create a new event loop to run in */
+ loop = g_main_loop_new (NULL, FALSE);
+
+ /* Get a connection to the session bus */
+ dbus_error_init (&error);
+ bus = dbus_bus_get (DBUS_BUS_SESSION, &error);
+ if (!bus) {
+ g_warning ("Failed to connect to the D-BUS daemon: %s", error.message);
+ dbus_error_free (&error);
+ return 1;
+ }
+
+ /* Set up this connection to work in a GLib event loop */
+ dbus_connection_setup_with_g_main (bus, NULL);
+ /* Every second call send_ping() with the bus as an argument*/
+ g_timeout_add (1000, (GSourceFunc)send_ping, bus);
+
+ /* Start the event loop */
+ g_main_loop_run (loop);
+ return 0;
}
static gboolean send_ping (DBusConnection *bus)
{
- DBusMessage *message;
- struct timespec tx_time;
- struct timespec done_time;
-
- message = dbus_message_new_signal ("/de/linutronix/Ping",
- "de.linutronix.Ping", "Ping");
- /* Append the string to the signal */
- dbus_message_append_args (message,
- DBUS_TYPE_STRING, &v_STRING,
- DBUS_TYPE_INVALID);
- clock_gettime(CLOCK_MONOTONIC, &tx_time);
- /* Send the signal */
- dbus_connection_send (bus, message, NULL);
- clock_gettime(CLOCK_MONOTONIC, &done_time);
- g_print("%d:%d\n%d:%d\n\n", tx_time.tv_sec, tx_time.tv_nsec/1000,
- done_time.tv_sec, done_time.tv_nsec/1000);
- /* Free the signal now we have finished with it */
- dbus_message_unref (message);
- /* Return TRUE to tell the event loop we want to be called again */
- return TRUE;
+ DBusMessage *message;
+ struct timespec tx_time;
+ struct timespec done_time;
+
+ message = dbus_message_new_signal ("/de/linutronix/Ping",
+ "de.linutronix.Ping", "Ping");
+ /* Append the string to the signal */
+ dbus_message_append_args (message,
+ DBUS_TYPE_STRING, &v_STRING,
+ DBUS_TYPE_INVALID);
+ clock_gettime(CLOCK_MONOTONIC, &tx_time);
+ /* Send the signal */
+ dbus_connection_send (bus, message, NULL);
+ clock_gettime(CLOCK_MONOTONIC, &done_time);
+ g_print("%d:%d\n%d:%d\n\n", tx_time.tv_sec, tx_time.tv_nsec/1000,
+ done_time.tv_sec, done_time.tv_nsec/1000);
+ /* Free the signal now we have finished with it */
+ dbus_message_unref (message);
+ /* Return TRUE to tell the event loop we want to be called again */
+ return TRUE;
}
\end{lstlisting}
diff --git a/frameworks/middleware/pres_middleware.tex b/frameworks/middleware/pres_middleware.tex
index a658f83..aa283fa 100644
--- a/frameworks/middleware/pres_middleware.tex
+++ b/frameworks/middleware/pres_middleware.tex
@@ -730,7 +730,7 @@ org.freedesktop.DBus.ObjectManager.InterfacesAdded
\begin{itemize}
\item Task A: send messages to Messaging Service (Publisher)
\item Task B: subscribe for messages, e.g. filtered by topic, from the
- Messaging Service
+ Messaging Service
\end{itemize}
\end{itemize}
\end{block}
diff --git a/kernel-devel/kernel-basics/hints_kernel-basics_de.tex b/kernel-devel/kernel-basics/hints_kernel-basics_de.tex
index c81b6f5..23fd5cc 100644
--- a/kernel-devel/kernel-basics/hints_kernel-basics_de.tex
+++ b/kernel-devel/kernel-basics/hints_kernel-basics_de.tex
@@ -12,7 +12,7 @@
\item Verstehen des Entwicklungsprozesses (Patche, Review)
\item Kennenlernen des Buildsystems (make menuconfig)
\item Kennenlerne grundsätzlicher Kernel-Ziele (Skalierbarkeit,
- Plattformunabhängigkeit)
+ Plattformunabhängigkeit)
\end{itemize}
\subsection*{Unterrichts-Ablauf}
diff --git a/kernel-devel/kernel-basics/pres_kernel-basics_de.tex b/kernel-devel/kernel-basics/pres_kernel-basics_de.tex
index 9e53fd5..08f34f4 100644
--- a/kernel-devel/kernel-basics/pres_kernel-basics_de.tex
+++ b/kernel-devel/kernel-basics/pres_kernel-basics_de.tex
@@ -225,9 +225,9 @@ Versionssprünge
\end{frame}
\begin{frame}
- \includegraphics[height=6cm]{images/kernelversions.png}
+\includegraphics[height=6cm]{images/kernelversions.png}
- Quelle: http://article.sapub.org
+Quelle: http://article.sapub.org
\end{frame}
diff --git a/kernel-devel/kernel-best-practices/handout_kernel-best-practices_en.tex b/kernel-devel/kernel-best-practices/handout_kernel-best-practices_en.tex
index bd1140b..ac39c19 100644
--- a/kernel-devel/kernel-best-practices/handout_kernel-best-practices_en.tex
+++ b/kernel-devel/kernel-best-practices/handout_kernel-best-practices_en.tex
@@ -18,7 +18,7 @@ orig/hello.c
\begin{lstlisting}
int main (int argc, char **argv)
{
- return 0;
+ return 0;
}
\end{lstlisting}
@@ -37,8 +37,8 @@ new/hello.c
int main (int argc, char **argv)
{
- printf ("Huhu World\n");
- return 0;
+ printf ("Huhu World\n");
+ return 0;
}
\end{lstlisting}
@@ -110,7 +110,7 @@ orig/hello.c
\begin{lstlisting}
int main (int argc, char **argv)
{
- return 0;
+ return 0;
}
\end{lstlisting}
@@ -129,8 +129,8 @@ your default editor will be opened, make your changes to the source:
int main (int argc, char **argv)
{
- printf ("Huhu World\n");
- return 0;
+ printf ("Huhu World\n");
+ return 0;
}
\end{lstlisting}
@@ -219,7 +219,7 @@ orig/hello.c
\begin{lstlisting}
int main (int argc, char **argv)
{
- return 0;
+ return 0;
}
\end{lstlisting}
diff --git a/kernel-devel/kernel-best-practices/hints_kernel-best-practices_de.tex b/kernel-devel/kernel-best-practices/hints_kernel-best-practices_de.tex
index ce4c69a..57f9c09 100644
--- a/kernel-devel/kernel-best-practices/hints_kernel-best-practices_de.tex
+++ b/kernel-devel/kernel-best-practices/hints_kernel-best-practices_de.tex
@@ -12,7 +12,7 @@
\item Verstehen, warum strikte Coding-Style-Regeln wichtig sind
\item Verstehen, warum man einen aktuellen Kernel verwenden sollte
\item Kennenlernen der Möglichkeiten und Vorteile der Zusammenarbeit
- mit der Community (Mailinglisten, IRC, Wikis...)
+ mit der Community (Mailinglisten, IRC, Wikis...)
\end{itemize}
\subsection*{Unterrichts-Ablauf}
diff --git a/kernel-devel/kernel-build/handout_kernel-build_de.tex b/kernel-devel/kernel-build/handout_kernel-build_de.tex
index bd28a31..0e96858 100644
--- a/kernel-devel/kernel-build/handout_kernel-build_de.tex
+++ b/kernel-devel/kernel-build/handout_kernel-build_de.tex
@@ -174,11 +174,11 @@ make install
Dies führt folgende Aktionen durch (Beispiel für einen Kernel 2.6.30):
\begin{itemize}
\item Falls es im Verzeichnis \cmd{/boot} bereits ein \cmd{vmlinuz-2.6.30}
- gibt, wird es in \cmd{vmlinuz-2.6.30.old} umbenannt
+ gibt, wird es in \cmd{vmlinuz-2.6.30.old} umbenannt
\item Kopieren von \cmd{arch/<Architektur-Name>/boot/zImage} nach
- \cmd{/boot/vmlinuz-2.6.30}
+ \cmd{/boot/vmlinuz-2.6.30}
\item Anlegen eines symbolischen Link \cmd{vmlinuz -> vmlinuz-2.6.30} in
- \cmd{/boot}
+ \cmd{/boot}
\end{itemize}
Anschliessend darf man nicht vergessen, auch die Module des neuen Kernels
@@ -216,7 +216,7 @@ Entwicklung von Treibern für Embedded Systems sehr bewährt.
\begin{enumerate}
\item Beschreiben Sie Unterschiede zwischen initrd und initramfs.
\item Warum braucht man bei selbst kompilierten Kerneln in der Regel keine
- initrd?
+ initrd?
\item Nennen Sie eine Anwendung von initramfs.
\end{enumerate}
diff --git a/kernel-devel/kernel-debugging/pres_kernel-debugging_en.tex b/kernel-devel/kernel-debugging/pres_kernel-debugging_en.tex
index 62624a9..5e9d30f 100644
--- a/kernel-devel/kernel-debugging/pres_kernel-debugging_en.tex
+++ b/kernel-devel/kernel-debugging/pres_kernel-debugging_en.tex
@@ -152,7 +152,7 @@ console=ttyAM0,115200
Kernel commandline:
\begin{verbatim}
netconsole=[src-port]@[src-ip]/[<dev>],
- [tgt-port]@<tgt-ip>/[tgt-macaddr]
+ [tgt-port]@<tgt-ip>/[tgt-macaddr]
\end{verbatim}
src-port defaults to 6665. tgt-port defaults to 6666.
\begin{verbatim}
@@ -301,7 +301,7 @@ Continuing.
Breakpoint 1, start_kernel ()
at linux-2.6.37-rc4/init/main.c:539
-539 smp_setup_processor_id();
+539 smp_setup_processor_id();
\end{verbatim}
\end{frame}
@@ -363,7 +363,7 @@ Remote debugging using localhost:2345
kgdb_breakpoint ()
at linux-2.6.37-rc4/kernel/debug/debug_core.c:959
-959 arch_kgdb_breakpoint();
+959 arch_kgdb_breakpoint();
(gdb)
\end{verbatim}
\end{frame}
@@ -413,8 +413,8 @@ mount your hosts / to /mnt/myhost
\begin{lstlisting}[language=bash]
$ gdb ./linux
(gdb) handle SIGSEGV pass nostop noprint
-Signal Stop Print Pass to program Description
-SIGSEGV No No Yes Segmentation fault
+Signal Stop Print Pass to program Description
+SIGSEGV No No Yes Segmentation fault
(gdb) b start_kernel
Breakpoint 1 at 0x80493ca: file /home/devel/images/linux-2.6.37/init/main.c,
line 539.
@@ -423,14 +423,14 @@ Starting program: /home/devel/images/build_um/linux
Locating the bottom of the address space ... 0x1000
Locating the top of the address space ... 0xc0000000
Core dump limits :
- soft - 0
- hard - NONE
+ soft - 0
+ hard - NONE
[...]
Adding 10047488 bytes to physical memory to account for exec-shield gap
Breakpoint 1, start_kernel () at
/home/devel/images/linux-2.6.37/init/main.c:539
-539 smp_setup_processor_id();
+539 smp_setup_processor_id();
(gdb) c
Continuing.
Linux version 2.6.37 (devel@ltx) (gcc version 4.3.2 (Debian 4.3.2-1.1) )
diff --git a/linux-basics/boot-process/handout_boot-process_de.tex b/linux-basics/boot-process/handout_boot-process_de.tex
index 0b36a61..7c7d937 100644
--- a/linux-basics/boot-process/handout_boot-process_de.tex
+++ b/linux-basics/boot-process/handout_boot-process_de.tex
@@ -82,22 +82,22 @@ Häufige Problemquellen im Bootloader sind beispielsweise:
\begin{itemize}
\item Der Bootloader wurde nicht korrekt ins Flash geschrieben. In einem Fall
- passierte dies beispielsweise, wenn der Compiler ein Binary mit
- ungerader Länge erzeugte. Aber auch falsche Konfiguration des JTAGer
- kann zu solchen Problemen führen.
+ passierte dies beispielsweise, wenn der Compiler ein Binary mit
+ ungerader Länge erzeugte. Aber auch falsche Konfiguration des JTAGer
+ kann zu solchen Problemen führen.
\item Im Bootloader wurden die Timings für Bus-Schnittstellen wie RAM oder
- Flash nicht korrekt eingestellt. Gerade wenn die Timings nicht ganz
- falsch, sondern nur grenzwertig sind, kann es zu schwer
- reproduzierbaren Bootproblemen kommen.
+ Flash nicht korrekt eingestellt. Gerade wenn die Timings nicht ganz
+ falsch, sondern nur grenzwertig sind, kann es zu schwer
+ reproduzierbaren Bootproblemen kommen.
\item Die Ladeadresse für den Kernel ist nicht korrekt. Bei manchen
- Bootloadern kann es leicht zu Verwechslungen zwischen physikalischen
- und virtuellen Adressen kommen. Weder U-Boot noch Redboot melden
- einen Fehler, wenn man den Kernel an eine Adresse lädt, an der
- sich überhaupt kein RAM befindet...
+ Bootloadern kann es leicht zu Verwechslungen zwischen physikalischen
+ und virtuellen Adressen kommen. Weder U-Boot noch Redboot melden
+ einen Fehler, wenn man den Kernel an eine Adresse lädt, an der
+ sich überhaupt kein RAM befindet...
\item Beim Laden des Kernels per TFTP kann es zusätzlich weitere Probleme
- geben, die mit dem Netzwerk zusammenhängen. Diese reichen von falsch
- aufgesetzten TFTP-Servern über falsch konfigurierte DHCP-Server oder
- falschen IP-Adressen bis hin zu Treiber- oder Hardware-Problemen.
+ geben, die mit dem Netzwerk zusammenhängen. Diese reichen von falsch
+ aufgesetzten TFTP-Servern über falsch konfigurierte DHCP-Server oder
+ falschen IP-Adressen bis hin zu Treiber- oder Hardware-Problemen.
\end{itemize}
\subsubsection{Bootprobleme: Im Kernel}
diff --git a/linux-basics/boot-process/hints_boot-process_de.tex b/linux-basics/boot-process/hints_boot-process_de.tex
index e4433ec..4293670 100644
--- a/linux-basics/boot-process/hints_boot-process_de.tex
+++ b/linux-basics/boot-process/hints_boot-process_de.tex
@@ -10,9 +10,9 @@
\begin{itemize}
\item Kennenlernen des Begriffs Bootloader
\item Überblick über die Abfolge Kernelboot, Rootfs-mount, init,
- Startskripte
+ Startskripte
\item Überblick über die Eingriffsmöglichkeiten (Kernelcommandline,
- /etc/inittab, /etc/fstab ...)
+ /etc/inittab, /etc/fstab ...)
\item Kennenlernen von Vorgehensweisen bei Bootproblemen
\end{itemize}
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 bd06c48..0c115b6 100644
--- a/linux-basics/filesystem-structure/handout_file-system-structure_de.tex
+++ b/linux-basics/filesystem-structure/handout_file-system-structure_de.tex
@@ -47,7 +47,7 @@ Die gängigsten Verzeichnisse haben folgende Inhalte:
\item \cmd{/sbin}: wichtige Systembefehle, vorwiegend zur Benutzung durch root
\item \cmd{/tmp}: temporäre Dateien)
\item \cmd{/usr}: 2. Verzeichnisebene, nicht für den Bootvorgang benötigte
- Programme und Dateien
+ Programme und Dateien
\item \cmd{/var}: variable Daten, wie z.B. Log-Dateien
\end{itemize}
@@ -161,10 +161,10 @@ angehört.
\begin{enumerate}
\item Warum ist es wichtig, dass bestimmte Dateien an einem standardisierten
- Platz im Root-Filesystem liegen?
+ Platz im Root-Filesystem liegen?
\item Welche Möglichkeiten zum Mounten von Dateisystemen kennen Sie?
\item Welche Bedingungen müssen erfüllt sein, damit Sie eine ausführbare
- Datei tatsächlich starten dürfen?
+ Datei tatsächlich starten dürfen?
\end{enumerate}
\input{tailhandout}
diff --git a/linux-basics/what-is-linux/handout_what-is-linux_de.tex b/linux-basics/what-is-linux/handout_what-is-linux_de.tex
index 2ae9b03..901fa31 100644
--- a/linux-basics/what-is-linux/handout_what-is-linux_de.tex
+++ b/linux-basics/what-is-linux/handout_what-is-linux_de.tex
@@ -208,7 +208,7 @@ und nicht etwa auf dem Rechner, an dem Sie gerade sitzen.
\item Wie alt ist das Unix-Konzept mittlerweile?
\item Seit wann gibt es den Linux-Kernel?
\item Warum ist die Großrechner-Tradition von Linux auch für Embedded Systems
- von Vorteil?
+ von Vorteil?
\item Was passiert beim Login-Vorgang?
\end{enumerate}
diff --git a/linux-basics/what-is-linux/hints_what-is-linux_de.tex b/linux-basics/what-is-linux/hints_what-is-linux_de.tex
index 3cb39a1..321bb26 100644
--- a/linux-basics/what-is-linux/hints_what-is-linux_de.tex
+++ b/linux-basics/what-is-linux/hints_what-is-linux_de.tex
@@ -10,11 +10,11 @@
\subsection*{Lernziele}
\begin{itemize}
\item Die Teilnehmer lernen, dass sich Unix aus dem Großrechner-Umfeld
- entwickelt hat, und deshalb von Anfang an als Multiuser-System
- geplant wurde.
+ entwickelt hat, und deshalb von Anfang an als Multiuser-System
+ geplant wurde.
\item Kennenlernen des Aufbaus aus Kernel und vielen kleinen
- Kommandozeilen-Tools. Vorteile dieses Aufbaus gegenüber den unter
- Windows üblichen integrierten Mammut-Lösungen.
+ Kommandozeilen-Tools. Vorteile dieses Aufbaus gegenüber den unter
+ Windows üblichen integrierten Mammut-Lösungen.
\item Die Begriffe Multiuser und Login werden verstanden.
\end{itemize}
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 e3e40a7..8abad40 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
@@ -170,9 +170,9 @@ Eine klassische Linux Distribution assistiert den Benutzer
\begin{frame}
- \includegraphics[height=7cm]{images/distro.png}
+\includegraphics[height=7cm]{images/distro.png}
- Quelle: http://www.cyberciti.biz
+Quelle: http://www.cyberciti.biz
\end{frame}
diff --git a/misc/pres_minicoredumper_en.tex b/misc/pres_minicoredumper_en.tex
index 4eed24b..e288faa 100644
--- a/misc/pres_minicoredumper_en.tex
+++ b/misc/pres_minicoredumper_en.tex
@@ -497,7 +497,7 @@ $ gdb-linutronix /.../mycrasher core
Core was generated by `./mycrasher'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00000000004008d2 in main () at mycrasher.c:26
-26 *x = 0;
+26 *x = 0;
(gdb) print s
\verbbf{$1 = 0x11eb010 "my string"}
(gdb) print i
@@ -527,7 +527,7 @@ $ gdb-linutronix /.../mycrasher core
Core was generated by `./mycrasher'.
Program terminated with signal SIGSEGV, Segmentation fault.
#0 0x00000000004008d2 in main () at mycrasher.c:26
-26 *x = 0;
+26 *x = 0;
(gdb) print s
$1 = 0x11eb010 "my string"
(gdb) print i
diff --git a/misc/pres_xml-fasttrack_en.tex b/misc/pres_xml-fasttrack_en.tex
index 35027ee..2e193b9 100644
--- a/misc/pres_xml-fasttrack_en.tex
+++ b/misc/pres_xml-fasttrack_en.tex
@@ -285,7 +285,7 @@ static void cb_characters(void *ctx ATTRIBUTE_UNUSED, const xmlChar *ch, int len
cb_total++;
for (i = 0;(i<len) && (i < 30);i++)
- output[i] = ch[i];
+ output[i] = ch[i];
output[i] = 0;
fprintf(stdout, "SAX.characters(%s, %d)\n", output, len);
diff --git a/realtime/rt-specialties/handout_rt-specialties_de.tex b/realtime/rt-specialties/handout_rt-specialties_de.tex
index 54771ca..8c7faf0 100644
--- a/realtime/rt-specialties/handout_rt-specialties_de.tex
+++ b/realtime/rt-specialties/handout_rt-specialties_de.tex
@@ -219,8 +219,8 @@ int main(int argc, char* argv[])
stack_prefault();
while(1) {
- [...]
- }
+ [...]
+ }
}
\end{lstlisting}
Die oben aufgelistete Applikation zeigt sehr schön, was notwendig ist, um eine
diff --git a/realtime/rt-specialties/pres_rt-specialties_de.tex b/realtime/rt-specialties/pres_rt-specialties_de.tex
index 004a426..f464058 100644
--- a/realtime/rt-specialties/pres_rt-specialties_de.tex
+++ b/realtime/rt-specialties/pres_rt-specialties_de.tex
@@ -153,7 +153,7 @@ struct sched_param param;
param.sched_priority = 80;
if(sched_setscheduler(0, SCHED_FIFO, &param)
- == -1) {
+ == -1) {
perror("sched_setscheduler failed");
exit(-1);
}