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:42] – torsten.roehl | raspberry_pi_kernelprogrammierung:helloworld [2024/01/26 15:49] (aktuell) – [3. Testen des "Hallo Welt" Moduls] torsten.roehl | ||
|---|---|---|---|
| Zeile 73: | Zeile 73: | ||
| rpi-source </ | rpi-source </ | ||
| - | Die erste Zeile installiert das Programm rpi-source in der zweiten Zeile wird es dann aufgerufen. Im Homeverzeichnis wird ein Verzeichnis linux angelegt. Dieses Verzeichnis ist ein Link auf das Verzeichnis  | + | Die erste Zeile installiert das Programm rpi-source, und in der zweiten Zeile wird es dann aufgerufen. Im Homeverzeichnis wird ein Verzeichnis  | 
| <WRAP center  | <WRAP center  | ||
| 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.1706283748.txt.gz · Zuletzt geändert:  von torsten.roehl
                
                