Treiber kompilieren, mit etwas Hilfe

Hallo Forum,

ich würde gern einen Treiber kompilieren und benötige dabei etwas Hilfe, um grobe Fehler zu vermeiden.

Ich habe schon in einem anderen Thread erfahren, dass dazu im YAST das Pattern “Linux-Kernel-Entwicklung” aktiv sein muss (?). An meinem Rechner ist es noch nicht aktiv.
Dann wird im “readme.txt” file verlangt, den Pfad vom “Kernel_Inkludes” auf mein Linux einzustellen.

  1. Review and edit (if need) ‘Makefile’.

Note: Probably you will want to correct in Makefile path to your
local linux kernel header files:

         KERNEL_INCLUDES=/path/to/linux/include

Kann mir jemand sagen, wie der Pfad bei SUSE 12.2 liegt? Ist das “/usr/include” - fehlt da noch was, oder ist der ganz anders?

Wenn ich mir bei den Fragen noch sicher werden kann, könnte ich mal das “Makefile” starten.
Vielen Dank für eure Hilfe!

Du musst den Pfad auf /usr/src/xxx setzen. (Wobei xxx von deiner Kernel-Version abhängt.)

Wenn der Ordner bei dir leer ist, sollest du die Pakete linux-kernel-headers und/order kernel-source installieren.

Hallo,

Bei dem Gerätetreiber handelt es sich um ein funktionsfähiges USB-Modem mit Redhat-Treiber auf CD.
Meine Ziel ist anhand dieser CD zu testen, wie man für Linux ein Programm zum laufen bringt, ohne RPM.

ich hab mal die Pakete nachinstalliert.

In der Datei “Makefile” habe ich die Variable “KERNEL-INKLUDES:= /usr/src/linux-3.4.11-2.16/include” nach dem richtigen Pad und Benennung angepasst.

Nach dem Start von # make install-usb (nach Anweisung von readme.txt) gab es einen Fehler:

ccl: fatal error: /usr/src/llinux-3.4.11-2.16/include/linux/modversions.h: Datei oder Verzeichnis nicht gefunden.
compilation terminated.

Ich habe nachgesehen, der Dateiname ist nicht zu finden.
Ein Treiber für Linux müsste doch generell auf jeder Distibution laufen?
Müssen dafür vielleicht Dateinamen an die spezielle Distribution angepasst werden?
Könnte es sein, dass die fehlende Datei bei SUSE anders heißt?

Vielleicht gibt es eine gute Anleitung “wie kompilliere ich eine Programm?”

Siehe hier:

modversions.h - linuxforen.de – User helfen Usern

Dein Treiber ist zu alt für den aktuellen Kernel.

Hallo,

danke für die Hilfe.

Dann werde ich mir mal einen neueren Geräte-Treiber suchen an dem sich das Kompillieren mal machen lässt.

Ich habe so etwas fast befürchtet, obwohl ich immer gedacht habe, dass es bei Linux nicht so große Probleme mit der Komptibilität gibt wie das so oft bei WIN-MS der Fall ist.