Modulkompilierung

Welches Modul/Treiber für welche Hardware, Kernel compilieren...
Antworten
Benutzeravatar
opendev
Beiträge: 261
Registriert: 27.08.2003 09:57:14
Wohnort: Nahe Hamburg
Kontaktdaten:

Modulkompilierung

Beitrag von opendev » 17.01.2004 21:09:01

Hallo und Guten Tag!

Vielleicht ist das jetzt zu sehr noobig, aber ich weiß einfach nicht mehr weiter.
Also, ich versuch hier ein Debian auf einer SATA-Platte zu installieren.
Ich habe auf der Controller-Hersteller-Seite ein Zip gefunden mit einer .c und einer .h Datei.
Nun würd ich gern versuchen, daraus ein Kernel-Modul auf einem anderen Rechner zu machen. Dann könnte ich es vielleicht beim Bootvorgang mit angeben, um Woody somit vielleicht installiert zu bekommen (über den bf24 eben das Modul kompilieren und dann für die bf24-Installation zugänglich machen). Weiß jemand, wie ich das machen kann. Suche geben keine Ergebnisse und ich sehe kaum noch andere Möglichkeiten, das System zu installieren.
Wäre dankbar für eine kurze Erklärung.

Grüße
Fear

Torsten
Beiträge: 384
Registriert: 24.09.2002 22:51:07
Kontaktdaten:

Beitrag von Torsten » 18.01.2004 12:43:40

Moinsen,

relativ einfach.

Code entpacken und das Modul zunächst kompilieren.
Sollte eine info-Datei dort rumliegen, dann eventuell erst dort reinschauen. Eventuell gibt es ja was zu beachten. Ansonsten dürfte ein einfaches "make" ausreichend sein.
Nun sollte eine .o - Datei entstehen, welche das Modul darstellt.
Jene kannst Du mittels "insmod modul.o" in den Kernel einfügen. Vorausgesetzt er unterstützt das Laden von Modulen.
Hast Du kein Bock mehr auf das Modul, so kannst Du es mittels "rmmod modul" (ohne .o am Ende) wieder entfernen.

Viel Erfolg

Torsten

Benutzeravatar
opendev
Beiträge: 261
Registriert: 27.08.2003 09:57:14
Wohnort: Nahe Hamburg
Kontaktdaten:

Beitrag von opendev » 18.01.2004 15:36:36

Torsten hat geschrieben:Moinsen,

relativ einfach.

Code entpacken und das Modul zunächst kompilieren.
Sollte eine info-Datei dort rumliegen, dann eventuell erst dort reinschauen. Eventuell gibt es ja was zu beachten. Ansonsten dürfte ein einfaches "make" ausreichend sein.
Nun sollte eine .o - Datei entstehen, welche das Modul darstellt.
Jene kannst Du mittels "insmod modul.o" in den Kernel einfügen. Vorausgesetzt er unterstützt das Laden von Modulen.
Hast Du kein Bock mehr auf das Modul, so kannst Du es mittels "rmmod modul" (ohne .o am Ende) wieder entfernen.

Viel Erfolg

Torsten
Hallo und Guten Tag!

Danke, aber leider ist das nicht die Lösung. Wie gesagt, ausser einer siimage.c und einer siimage.h ist dort keine Datei zu finden. Somit sagt mir ein einfaches make siimage.c (oder eben .h) "make: Für das Ziel siimage.c (oder eben h) ist nichts zu tun" und ein einsames make kommt mir mit der Meldung "make: *** Keine Targets angegeben und keine »make«-Steuerdatei gefunden. Schluss." daher.
Ich müsste eben aus diesen Dingern ein Modul machen, wie auch immer das gehen mag. ???

Grüße
Fear

Indy500
Beiträge: 380
Registriert: 18.04.2003 05:03:40

Beitrag von Indy500 » 18.01.2004 15:48:23

gcc -o siimage.o siimage.c

Torsten
Beiträge: 384
Registriert: 24.09.2002 22:51:07
Kontaktdaten:

Beitrag von Torsten » 18.01.2004 15:48:47

Moinsen,

hmm, dann müsstest Du Dir mal selbst ein Makefile bauen und das austesten.

Etwa nach diesem Schema:

Code: Alles auswählen

CC=gcc
CFLAGS := -I/usr/src/linux/include -O2 -Wall -DCONFIG_KERNELD -DMODULE -D__KERNEL__ -DLINUX

all:    treiber.o

treiber.o: treiber.c /usr/include/linux/version.h
$(CC) $(CFLAGS) -c treiber.c
Torsten

Benutzeravatar
opendev
Beiträge: 261
Registriert: 27.08.2003 09:57:14
Wohnort: Nahe Hamburg
Kontaktdaten:

Beitrag von opendev » 18.01.2004 17:56:35

Hallo und Guten Tag!

Inzwischen hab ich es mit der allerneuesten Beta2 des Debian-Installers hinbekommen. Danke trotzdem an alle. ;)

Grüße
Fear

Antworten