raspberry_pi_kernelprogrammierung:helloworld
Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
raspberry_pi_kernelprogrammierung:helloworld [2024/01/26 15:43] – [1. Kernel-Quellen (auch Kernel-Header genannt) herunterladen] torsten.roehl | raspberry_pi_kernelprogrammierung:helloworld [2024/01/26 15:49] (aktuell) – [3. Testen des "Hallo Welt" Moduls] torsten.roehl | ||
---|---|---|---|
Zeile 148: | Zeile 148: | ||
=== Vom Quellcode zum Modul: === | === Vom Quellcode zum Modul: === | ||
- | Um ein vollständiges Kernel-Modul zu erstellen, | + | Um ein vollständiges Kernel-Modul zu erstellen, |
- | Das Übersetzen (Kompilieren) des Quellcodes (Sourcecode) in ein ausführbares Programm erledigt man am besten mit einer Steuerdatei (Makefile) und dem Programm '' | + | |
+ | |||
< | < | ||
Zeile 176: | Zeile 178: | ||
- | Um das Modul zu testen werden die Modul-Utilities benötigt. Darunter versteht man einen Satz von Hilfsprogrammen, | + | Um das Modul zu testen werden die Modul-Utilities benötigt. Darunter versteht man einen Satz von Hilfsprogrammen, |
+ | |||
+ | Um das Modul zu laden/ | ||
+ | |||
+ | Folgende Programme ('' | ||
+ | |||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | * '' | ||
+ | |||
+ | === Beispiel === | ||
+ | Hier die Ausgabe des '' | ||
+ | |||
+ | < | ||
+ | filename: | ||
+ | description: | ||
+ | author: | ||
+ | license: | ||
+ | srcversion: | ||
+ | depends: | ||
+ | vermagic: | ||
+ | |||
+ | Laden des Moduls: | ||
+ | < | ||
+ | Überprüfen, | ||
+ | |||
+ | < | ||
+ | hello_world | ||
+ | |||
+ | Um die Ausgabe von lsmod nicht zu lang zu machen, können wir mit grep hello_world nach hello_world suchen. Die Ausgabe zeigt an, dass die Suche erfolgreich war, d.h. das Modul korrekt geladen wurde. | ||
- | Um das Modul zu laden/entladen, werden Rootrechte benötigt. | + | Entladen des Moduls: |
+ | < | ||
- | Folgende Programme (modutils) werden verwendet: | + | Lohnend ist auch ein Blick in die Datei ''/ |
- | * modinfo: liefert Informationen über ein Modul | + | < |
- | * insmod: fügt zur Laufzeit Module in den Linux-Kernel ein | + | May 16 16:24:38 kernel: Hello World: init_helloworld |
- | * lsmod: zeigt alle geladenen Module an | + | May 16 16:26:16 kernel: GoodBye World: exit_helloworld</ |
- | * rmmod: entfernt Laufzeitmodule aus dem Kernel | + | |
===== Zusammenfassung ===== | ===== Zusammenfassung ===== |
raspberry_pi_kernelprogrammierung/helloworld.1706283811.txt.gz · Zuletzt geändert: 2024/01/26 15:43 von torsten.roehl