• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Modul erstellen

Hallo leute!

ich schreibe zurzeit einen treiber und dabei will ich auf eine lib zugreifen.
meine lib heißt libusb.a und die zugehörige headerdatei hab ich auch.

wenn ich nur ein normales programm kompilieren wöllte müsste der aufruf glaub so sein:

gcc meinprogramm.c -Lpfad -lusb

aber da ich ja ein modul erstellen möchte, muss ich ja auf das makefile des kernelsources zugreifen.

Das ist mein makefile:

TARGET = usb_hilscher-driver
OBJS = usb_hilscher-driver.o

KDIR = /opt/ptxdist/linux-2.6.14
PWD = $(shell pwd)
CROSS = /opt/crosstool/gcc-3.4.5-glibc-2.3.6/arm-softfloat-linux-gnu/bin/arm-softfloat-linux-gnu-

obj-m := $(TARGET).o

default:
make -C $(KDIR) SUBDIRS=$(PWD) modules ARCH=arm CROSS_COMPILE=$(CROSS)


wie kann ich in dem makefile sagen, dass er beim kompilieren die lib mit einbinden soll? geht das überhaupt?
 
Versuch bloß nicht, eine Userspace-Bibliothek in ein Kernelmodul zu prügeln. Auch wenn das technisch geht, muss doch immerhin der Code zusammenpassen, und das tut er meistens nicht.
 
Ach ARM, jetz' seh ich was du vorhast. Eigentlich ganz simpel, so baue ich auch nvidia:
Code:
OBJS = usb_hilscher-driver.o foobar.a
 
danke für die antwort, aber leider bekomme ich immernoch die fehlermeldung:

*** Warning: "usb_init" [/root/Desktop/usb_hilscher/usb_hilscher-driver.ko] undefined!

also findet er nich die implementation der funktion, die doch aber in meiner bibliothek drin is :(
 
Oben