Commit 652cc403 authored by Christian Eckl's avatar Christian Eckl
Browse files

Update Dokumentation.md

parent b6bc1334
......@@ -21,18 +21,18 @@ Linux Kernel geschrieben werden. Verwendet wird hierzu die Sprache C.
Sinn des Kernel-Modules ist es im laufenden Betrieb einen Treiber für ein tempörär
benötigtes Device zu Laden und wenn es nicht gebraucht wird zu entladen. Diese Methode
verbraucht also nur dann System-Resourcen wenn das Modul geladen und benutzt wird.
Ein weiterer Vorteil ist das man das System nach dem Laden des Moduls nicht neustarten muss und
Ein weiterer Vorteil ist, dass man das System nach dem Laden des Moduls nicht neustarten muss und
das Gerät sofort einsatzbereit ist.
Außerdem ist ein LKM leichter zu warten und debuggen als ein in den Kernel kompilierter Treiber
Außerdem ist ein LKM leichter zu warten und debuggen als ein in den Kernel kompilierter Treiber.
## Für was verwendet man ein Kernel-Modul?
Im Großen und Ganzen gibt es 6 Hauptanwedungsgebiete:
- Device driver: Ein Gerätetreiber ist nur für ein spezielles Gerät um mit dem Computer zu kommunizieren.
- Device driver: Ein Gerätetreiber ist nur für ein spezielles Gerät, um mit dem Computer zu kommunizieren.
- Filesystem driver: Ein Dateisystemtreiber interpretiert den Inhalt eines Dateisystems
(das normalerweise der Inhalt eines Laufwerks ist) als Dateien und Verzeichnisse als solche.
- System calls: User-Space Programme verwenden Systemaufrufe um Informationen vom Kernel zu bekommen.
- Network drivers: Ein Netzwerktreiber interpretiert Netzwerkprotkolle.
- Executable interpreter: Linux kann viele Datei vormate ausführen benötigt aber für jedes Format einen executable interpreter.
- Executable interpreter: Linux kann viele Dateivormate ausführen, benötigt aber für jedes Format einen executable interpreter.
Quelle: [Linux Loadable Kernel Module HOWTO] (http://tldp.org/HOWTO/Module-HOWTO/index.html)
......@@ -40,11 +40,11 @@ Quelle: [Linux Loadable Kernel Module HOWTO] (http://tldp.org/HOWTO/Module-HOWTO
Um alles im Überblick zu haben erstellt man zuerst ein Verzeichnis für das Kernelmodul:
> $ mkdir /home/pi/Sevenseg
In dieses Verzeichnis erstellt man als erstes ein Makefile:
In diesem Verzeichnis erstellt man als erstes ein Makefile:
> $ nano Makefile
Man benötigt außerdem den ausfürbaren Code in C in diesem Verzecihnis:
Man benötigt außerdem den ausfürbaren Code in C in diesem Verzeichnis:
> $ nano sevenseg.c
......@@ -60,7 +60,7 @@ clean:
make -C /lib/modules/$(shell uname -r)/build M=$(PWD) clean
```
Da das Modul außserhalb des Kernel-Source-Trees verwaltet und kompieliert werden soll, wird in der ersten Zeile
Da das Modul außserhalb des Kernel-Source-Trees verwaltet und kompiliert werden soll, wird in der ersten Zeile
durch `obj-m := sevenseg.o` ein Makefile im eigenen Source-Tree erstellt.
Außerdem kompiliert der Eintrag `sevenseg.c` in `sevenseg.ko`.
......
Supports Markdown
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment