From 6fb0950420424ff27f6aa89429a763409b088ed6 Mon Sep 17 00:00:00 2001 From: Manuel Traut Date: Wed, 26 Jan 2011 18:49:31 +0100 Subject: added kernel devel Signed-off-by: Manuel Traut --- kernel-devel/kernel-build/Makefile | 4 +-- .../kernel-build/handout_kernel-build_de.tex | 29 ++++++++-------------- 2 files changed, 13 insertions(+), 20 deletions(-) (limited to 'kernel-devel/kernel-build') diff --git a/kernel-devel/kernel-build/Makefile b/kernel-devel/kernel-build/Makefile index 4663d52..d641258 100644 --- a/kernel-devel/kernel-build/Makefile +++ b/kernel-devel/kernel-build/Makefile @@ -1,7 +1,7 @@ all: for pdf in `ls -1 *.tex` ; do \ - pdflatex $$pdf; \ - pdflatex $$pdf; \ + TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \ + TEXINPUTS=`pwd`/../..:.:..:$(TEXINPUTS) pdflatex $$pdf; \ done clean: diff --git a/kernel-devel/kernel-build/handout_kernel-build_de.tex b/kernel-devel/kernel-build/handout_kernel-build_de.tex index f0e5fae..bd28a31 100644 --- a/kernel-devel/kernel-build/handout_kernel-build_de.tex +++ b/kernel-devel/kernel-build/handout_kernel-build_de.tex @@ -1,14 +1,8 @@ -\documentclass{lxarticle} -\usepackage{german} -\usepackage[utf8]{inputenc} -\usepackage{lxheaders} -\usepackage{lxextras} +\input{confighandout} -\begin{document} +\subsection{Kernel konfigurieren und kompilieren} -\section*{Kernel konfigurieren und kompilieren} - -\subsection*{Vorarbeiten} +\subsubsection{Vorarbeiten} Bevor man einen Kernel konfigurieren kann, sollte man wissen, was man will. Das hört sich zunächst nach einer trivialen Binsenweisheit an, kann aber @@ -32,7 +26,7 @@ beispielsweise keine Gerätedateien unterstützt. Will man Linux von einem USB-Stick booten, so wird man diesen dazu beispielsweise mit einem ext2-Dateisystem versehen. - \subsection*{Kernel-Konfiguration} +\subsubsection{Kernel-Konfiguration} Mit diesen Informationen versehen, kann man jetzt die Konfiguration beginnen. Dies erfolgt durch Eingabe von @@ -54,7 +48,7 @@ Man sollte bei der Konfiguration zuerst grundlegende Dinge wie den Prozessortyp angeben, da untergeordnete Eigenschaften oder Treiber davon abhängig sein können. -\subsection*{Module, ja oder nein?} +\subsubsection{Module, ja oder nein?} Bei üblichen Kerneln für Desktop-Systeme wird man immer einen Großteil der Treiber als Module kompilieren. Solche Rechner besitzen viele Schnittstellen, über die man später die Hardware erweitern kann, und kann den Kernel bereits @@ -83,7 +77,7 @@ Einzelfall ab. Bei Embedded Systems kommt dies aber durchaus öfter vor. Aus verständlichen Gründen dürfen Treiber, die zum Booten und Mounten des Rootfs benötigt werden, niemals als Module gebaut werden! -\subsection*{initrd} +\subsubsection{initrd} Die Kernel von Distributionen haben das Problem, dass sie auf möglichst vielen unterschiedlichen Rechnern booten müssen. Würde man die Treiber für alle @@ -100,7 +94,7 @@ aus dem Speicher entfernt werden. Dieses Verfahren nennt man \emph{initrd} Wenn man einen Kernel für ein bestimmtes Board selbst kompiliert, braucht man nie eine initrd, da man ja genau die richtigen Treiber fest einkompilieren kann. -\subsection*{initramfs} +\subsubsection{initramfs} Ein anderes Verfahren, bei dem der Kernel zunächst eine RAM-Disk anlegt, ist \emph{initramfs}. Im Unterschied zu initrd wird diese aber nicht aus einem @@ -125,7 +119,7 @@ Eine weitere Anwendung sind Firmware-Updates. So könnten die Startskripte des initramfs beispielsweise auf einem Server nachschauen, ob Updates vorhanden sind, und diese dann anwenden. -\subsection*{Kernel kompilieren} +\subsubsection{Kernel kompilieren} Nach abgeschlossener Kernel-Konfiguration kompiliert man den Kernel einfach durch Eingabe von @@ -168,7 +162,7 @@ Hauptverzeichnis der Kernelquellen, so ergibt sich folgender Aufruf: ./makearm -j3 \end{lstlisting} -\subsection*{Kernel installieren} +\subsubsection{Kernel installieren} Einen Kernel für den lokalen Rechner (also den, auf dem man auch kompiliert hat) installiert man einfach durch Eingabe von @@ -217,7 +211,7 @@ Root-Filesystem per NFS aus diesem Verzeichnis gemountet, so stehen die Module sofort und ohne Reboot zur Verfügung. Diese Vorgehensweise hat sich bei der Entwicklung von Treibern für Embedded Systems sehr bewährt. -\subsection*{Kontrollfragen} +\subsubsection{Kontrollfragen} \begin{enumerate} \item Beschreiben Sie Unterschiede zwischen initrd und initramfs. @@ -226,5 +220,4 @@ Entwicklung von Treibern für Embedded Systems sehr bewährt. \item Nennen Sie eine Anwendung von initramfs. \end{enumerate} - -\end{document} +\input{tailhandout} -- cgit v1.2.3