\input{configpres}

\title{Der Linux-Boot-Prozess}
\maketitle

\subsection{Boot Prozess}

\subsubsection{Problematik}
\begin{frame}
\frametitle{Aufgaben des Bootloaders}
\begin{itemize}
\item Low-Level-Initialisierung:
\pause
\item Clocks (CPU, PLLs, Peripherie...)
\pause
\item Speicher (DRAM-Controller, NAND-Controller...)
\pause
\item serielle Schnittstelle
\pause
\end{itemize}
\end{frame}

\subsubsection{Bootloader}
\begin{frame}
\frametitle{Gängige Bootloader}
\begin{itemize}
\item U-Boot
\pause
\item Redboot
\pause
\item Konzept aus IPL+Bootkernel
\end{itemize}
\end{frame}

\subsubsection{Struktur}
\begin{frame}
\frametitle{Ablauf des Bootprozesses}
\begin{itemize}
\item Bootloader initialisiert Hardware
\pause
\item Bootloader lädt Kernel
\pause
\item Bootloader springt Kernel an
\pause
\item Dabei Übergabe von Parametern an Kernel
\pause
\item Kernel initialsiert Hardware, Treiber
\pause
\item Kernel mountet Root-Filesystem
\pause
\item Kernel startet '/sbin/init'
\pause
\item 'init' liest '/etc/inittab', startet Skripte
\end{itemize}
\end{frame}

\subsubsection{Stolperstellen}
\begin{frame}
\frametitle{Bootprobleme: 1. Im Bootloader}
\begin{itemize}
\item Bootloader nicht korrekt ins Flash geschrieben
\pause
\item falsche DRAM/NAND-Timings
\pause
\item Ladeadresse für Kernel nicht korrekt
\pause
\item Bei TFTP-Boot: IP-Adresse nicht korrekt
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Bootprobleme: 2. Im Kernel}
\begin{itemize}
\item Bootloader hinterlässt falsch initialisierte Hardware
\pause
\item Bootloader übergibt falsche Parameter
\pause
\item Treiber für Rootfs nicht im Kernel
\pause
\item Im Rootfs fehlen Device-Nodes
\end{itemize}
\end{frame}

\begin{frame}
\frametitle{Bootprobleme: 3. In den Startskripten}
\begin{itemize}
\item Im Rootfs fehlen Device-Nodes
\pause
\item Im Rootfs fehlen nötige Programme bzw. symlinks
\pause
\item Startskripte können nicht mit jeder Situation umgehen
\end{itemize}
\end{frame}

\input{tailpres}
