Eigene Kernel-Module einbinden

D-Lite

Neuer User
Mitglied seit
1 Jul 2008
Beiträge
3
Punkte für Reaktionen
0
Punkte
0
Hallo,
ich würde gerne einen IO-Warrior24 an meine 7270 anschliessen (www.codemercs.com). Dazu muss ich eine Library und ein Kernel-Modul compilieren. Das mit der Lib habe ich mittlerweile ganz gut hinbekommen (unter make/libs neues .mk-File angelegt und Makefile.in/Config.in geändert). Bei dem Kernel-Modul stehe ich allerdings auf dem Schlauch. Vielelicht kann mir jemand auf die Sprünge helfen, an welchen Schrauben ich da drehen muss, damit das Kernel-Modul sauber compiliert und in das fertige Image eingebunden wird?

Grüß

D-L
 
Zunächst "make kernel-menuconfig" und das Modul aktivieren.
Dann in "kernel/Config.in" einen passenden Eintrag anlegen und auch in der Konfiguration auswählen.
 
Und wenn dann abschließend alles getestet wurde und funktioniert ein svn diff > ~/aenderungen.diff absetzten und evtl. ein Ticket erstellen.
 
Erstmal danke für euere Hilfe, aber:

Zunächst "make kernel-menuconfig" und das Modul aktivieren.

Irgendwie stehe ich jetzt auf dem Schlauch. Ich hab das Modul doch noch garnicht, wie kann ich es dann auswählen? Ich hab bloss den Sourcecode des Moduls und ein Makefile. Ich muss also doch erstmal "irgendwas" machen, bevor ich das Modul überhaupt auswählen kann?
 
Du hast also ein Modul, das nicht zum normalen Kernel gehört? Das macht das Ganze komplizierter.

Zunächst einmal mußt Du herausfinden, ob das Modul überhaupt mit der verwendeten Kernel-Version (2.6.13.1) funktioniert. Wenn nicht, dann wird es sehr schwierig. Dann bleibt allenfalls noch, das Modul für die Kernel Version anzupassen.

Wenn die Versionen zusammen passen, kannst Du entweder versuchen, das Modul in die Kernel-Quellen mit einzubinden, oder Du versuchst, das Modul in einem getrennten Verzeichnis zu erstellen, wobei Du dafür den Pfad zu den Kernel-Quellen und zum richtigen Compiler angeben mußt.
 
Du hast also ein Modul, das nicht zum normalen Kernel gehört? Das macht das Ganze komplizierter.

Wenn's einfach wäre, würd ich nicht fragen ;-). Ich bin auch absoluter Anfänger, was LINUX-Kernel anbetrifft, hab sonst mehr mit anderen NIXen zu tun.

Zunächst einmal mußt Du herausfinden, ob das Modul überhaupt mit der verwendeten Kernel-Version (2.6.13.1) funktioniert.

Ähm, 2.6.19.2 ist das bei mir (FB 7270). Ja, das Modul kann ich "von Hand" crosscompilieren, das klappt schon soweit. Ich dachte nur, es gäbe einen einfachen Weg, das compilieren in die Freetz-Buildumgebung zu integrieren, ähnlich wie das mit den Packages oder Libraries funktioniert. Ich könnte natürlich versuchen, ein Package draus zu machen, aber ich vermute mal, beim Aufruf der Package-Makefiles sind die ENV-Variablen für die Kernel-Sourcen nicht gesetzt .. oder?
Nunja, ich werd mich da mal noch etwas mehr drin vertiefen müssen. Vielen Dank erstmal für die Info, dass es "so einfach" anscheinend nicht geht :)
 
Wenn Du Dich hier etwas umschaust, wirst Du feststellen, daß noch viel einfachere Dinge gefragt werden, und noch dazu immer wieder.

Das Übersetzen von zusätzlichen Kernel-Modulen kam so bisher nicht vor und wird daher nicht speziell unterstützt. Du kannst aber ein Makefile erstellen, mit dem die benötigten Befehle aufgerufen werden. Wenn das Erstellen von Hand funktioniert, dann ist der Schritt zur Automatisierung auch nicht mehr schwer.
 
hallo,

ich versuche auch gerade neue kernel-module einzubinden.

soweit funktioniert es:
- make kernel-menuconfig und module aktivieren
- kernel/Config.in anpassenden
- in der freetz konfiguration auswählen

nach einem make wurden die module auch gebaut, allerdings tauchen
die module bei "installing modules" nicht auf und die image-groesse hat sich auch nicht geaendert, d.h. die module sind offensichtlich nicht im image.

fehlt hier noch irgendetwas?
 
Wie wäre es, wenn Du hier die genauen Änderungen (diff) zeigen würdest, die Du gemacht hast? Erstens könnte man dann tatsächlich schauen, was noch fehlt, und Andere hätten auch noch etwas davon.

PS:
Da es hier anscheind um Module geht, die bereits in den Kernel-Sourcen enthalten sind, schlage ich dafür einan neuen Thread vor.
 
naja, ich bin ja noch nicht soweit... ich werde die aenderungen wie hier beschrieben per svn diff hochladen (wobei diff und svn neuland fuer mich sind - zumindest was das erstellen von aenderungen angeht)

grundsaetzlich war meine frage:
reichen diese schritte normalerweise?
also wenn das so nicht funktioniert habe ich einen fehler gemacht... oder muss evtl. noch eine weitere datei editiert werden? (ich dachte es gibt evtl. noch eine datei, wo drin steht, welche module ins image kopiert werden)

wenn ich weiss was ich bei diff eingeben muss, werde ich das gerne in einem neuen thread posten.
 
Zuletzt bearbeitet:
Normalerweise sollten die Änderungen reichen.
Du schreibst nicht, welche Version Du verwendest, aber wenn Du die mit "svn co ..." ausgescheckt hast, reicht ein einfaches "svn diff", um die Änderungen anzuzeigen. Dabei wirst Du auch sehen, wo die Kernel-config liegt.
Wenn Du nochmal versehentlich Einstellungen änderst, solltest Du die beim Verlassen nicht speichern.
 
Wäre schon gut zu wissen, was du gemacht hast.

Grundsätzlich kommen nur die Module in das Image, die per "FREETZ_MODULE_xy" auch gewählt wurden. Wenn das Modul also im normalen menuconfig von freetz nicht existiert, kommt es nie ins Image. Du musst vermutlich in "kernel/Config.in" noch was nachtragen so wie hier angedeutet, vermute ich...
Code:
config FREETZ_MODULE_wasauchimmer 
	bool "wasauchimmer.ko" 
 	default n 

config FREETZ_MODULE_diesauchnoch 
	bool "diesauchnoch.ko" 
 	default n


Jörg
 
ja, so sieht meine config auch aus...
ich muss das nochmal testen und mache dann einen neuen thread auf
 
Die Module musst du dann halt wählen und sie müssen im "kernel-menuconfigg" gewählt und gebaut worden sein.
(und sie müssen auch genau so heißen, wie das Modul)...
 
Holen Sie sich 3CX - völlig kostenlos!
Verbinden Sie Ihr Team und Ihre Kunden Telefonie Livechat Videokonferenzen

Gehostet oder selbst-verwaltet. Für bis zu 10 Nutzer dauerhaft kostenlos. Keine Kreditkartendetails erforderlich. Ohne Risiko testen.

3CX
Für diese E-Mail-Adresse besteht bereits ein 3CX-Konto. Sie werden zum Kundenportal weitergeleitet, wo Sie sich anmelden oder Ihr Passwort zurücksetzen können, falls Sie dieses vergessen haben.