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:15] – [2. Hallo Welt Modul erstellen und übersetzen (compilieren)] torsten.roehl | raspberry_pi_kernelprogrammierung:helloworld [2024/01/26 15:49] (aktuell) – [3. Testen des "Hallo Welt" Moduls] torsten.roehl | ||
|---|---|---|---|
| Zeile 44: | Zeile 44: | ||
| |Mit '' | |Mit '' | ||
| - | Wir werden deshalb | + | Wir werden deshalb |
| - | Gegen Sie die nachfolgende Zeile auf der Konsole ein: | + | Geben Sie die nachfolgende Zeile auf der Konsole ein: |
| < | < | ||
| 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 | ||
| Box: RPI-SOURCE | Box: RPI-SOURCE | ||
| - | Mehr zum rpi-source Programm: | + | Mehr zum '' |
| Insbesondes wenn Sie die nachfolgende Fehlermeldung bekommen, sollten Sie so vorgehen wie im Link beschrieben, | Insbesondes wenn Sie die nachfolgende Fehlermeldung bekommen, sollten Sie so vorgehen wie im Link beschrieben, | ||
| 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 162: | Zeile 164: | ||
| | | ||
| + | |||
| + | Beim Makefile ist auf einiges zu achten, z.B.: | ||
| + | |||
| + | * Die Datei muss exakt Makefile geschrieben werden. | ||
| + | * Die Zeilen 2, 5, 6 und 9 müssen mit //" | ||
| + | |||
| + | Um nicht an dieser Stelle zu scheitern, empfehle ich, dieses Makefile downzuloaden: | ||
| + | Angenommen, im Verzeichnes '' | ||
| + | < | ||
| + | Damit '' | ||
| ==== 3. Testen des "Hallo Welt" Moduls ==== | ==== 3. Testen des "Hallo Welt" Moduls ==== | ||
| + | |||
| + | 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. | ||
| + | |||
| + | Entladen des Moduls: | ||
| + | < | ||
| + | |||
| + | Lohnend ist auch ein Blick in die Datei ''/ | ||
| + | |||
| + | < | ||
| + | May 16 16: | ||
| + | May 16 16:26:16 kernel: GoodBye World: exit_helloworld</ | ||
| ===== Zusammenfassung ===== | ===== Zusammenfassung ===== | ||
raspberry_pi_kernelprogrammierung/helloworld.1706282143.txt.gz · Zuletzt geändert: von torsten.roehl
