Hi Leute,
ich habe hier ein externes Linuxmodul, welches ich gerne in den Kern fest einbauen möchte. In der Linux Kernelconfig kann man ja immer sagen Y=fest eingebaut, M=Modul, N=not needed. Wie kann ich das für ein externes Modul machen?
Zur Beseitigung der Klarheiten folgendes Szenario: Pfad zum Kernmodul: /home/ich/src/modul Pfad zum Linuxkern: /home/ich/src/linux
Wie kann ich das externe Modul fest in Linux reincompilieren?
Vielen Dank im Voraus, Steffen Liebergeld
Hallo
Steffen Liebergeld wrote:
Hi Leute,
ich habe hier ein externes Linuxmodul, welches ich gerne in den Kern fest einbauen möchte. In der Linux Kernelconfig kann man ja immer sagen Y=fest eingebaut, M=Modul, N=not needed. Wie kann ich das für ein externes Modul machen?
Zur Beseitigung der Klarheiten folgendes Szenario: Pfad zum Kernmodul: /home/ich/src/modul Pfad zum Linuxkern: /home/ich/src/linux
Wir hatten früher den (externen) Treiber für unsere FDDI-Karte auch immmer fest einkompiliert. Dazu müsstest Du dein Treiberverzeichnis in den Kerneltree kopieren und die Dateien Makefile und Kconfig entsprechend erweitern.
Vielleicht findest Du ja unter Documentation/kbuild noch ein paar Tipps.
Viele Grüße, Gregor
Hallo
Steffen Liebergeld wrote:
Hi Leute,
ich habe hier ein externes Linuxmodul, welches ich gerne in den Kern fest einbauen möchte. In der Linux Kernelconfig kann man ja immer sagen Y=fest eingebaut, M=Modul, N=not needed. Wie kann ich das für ein externes Modul machen?
Zur Beseitigung der Klarheiten folgendes Szenario: Pfad zum Kernmodul: /home/ich/src/modul Pfad zum Linuxkern: /home/ich/src/linux
Wir hatten früher den (externen) Treiber für unsere FDDI-Karte auch immmer fest einkompiliert. Dazu müsstest Du dein Treiberverzeichnis in den Kerneltree kopieren und die Dateien Makefile und Kconfig entsprechend erweitern.
Vielleicht findest Du ja unter Documentation/kbuild noch ein paar Tipps.
Viele Grüße, Gregor
Hallo Gregor, hallo Gruppe,
Also damit man hier aus dem Archiv etwas lernen kann, möchte ich einmal meine Lösung vorstellen.
Ich habe in /home/ich/src/modul eine Datei Kbuild angelegt. Darin steht folgendes: ===Kbuild=== obj-y += modul.o ===/Kbuild===
Damit das Kbuild von linux mein Modul mitbaut, habe ich die Datei /home/ich/src/linux/drivers/Makefile wie folgt angepasst:
echo "objy-y += ../../modul/" >> /home/ich/src/linux/drivers/Makefile
Nun wird mein Modul gebaut, und in linux reingelinkt. Kleiner Schönheitsfehler: bei make clean wird die Objektdatei in /home/ich/src/modul nicht belöscht.
Wichtig: die Einsprungpunkte des Moduls müssen mit module_init() und module_exit() gesetzt werden.
Ich bedanke mich bei Gregor für seine Tipps, und hoffe meine Ausführungen helfen jemandem.
Gruß, Steffen
lug-dd@mailman.schlittermann.de