Rain Geschrieben 23. Dezember 2006 Geschrieben 23. Dezember 2006 Hallo alle miteinander! Ich wende mich an euch, da ich leider keine!! Ahnung mehr habe wie ich weiter vorgehen soll. Ich möchte gerne das Modul Keyboard Leds des Linux Kernel Module Programming Guides (http://tldp.org/LDP/lkmpg/2.6/html/index.html) als Kernel Module kompilieren. Dafür gibt es auch ein Makefile, dass wie folgt aussieht: BUILD=/lib/modules/$(shell uname -r)/build obj-m += kbleds.o all: make -C $(BUILD) M=$(PWD) modules clean: make -C $(BUILD) M=$(PWD) clean Wenn ich nun in dem Verzeichnis wo ich auch die SourceCode Datei liegen habe make ausführe bekomme ich folgende Ausgabe: make -C /lib/modules/2.6.13-15.13-default/build M=/KernelModules/kbleds modules make[1]: Entering directory `/usr/src/linux-2.6.13-15.13-obj/i386/default' make[1]: *** No rule to make target `modules'. Stop. make[1]: Leaving directory `/usr/src/linux-2.6.13-15.13-obj/i386/default' make: *** [all] Error 2 Das Verzeichnis /usr/src/linux-2.6.13-15.13-obj/i386/default (indem es ja anscheinend irgendwas nicht gefunden wird) sieht folgendermaßen aus: linux:/ # ls -l /usr/src/linux-2.6.13-15.13-obj/i386/default/ total 248 drwxr-xr-x 2 root root 152 Dec 23 13:13 . drwxr-xr-x 3 root root 72 Dec 22 12:35 .. -rw-r--r-- 1 root root 251325 Dec 11 01:57 Module.symvers lrwxrwxrwx 1 root root 25 Dec 23 13:13 linux-2.6.13-15 -> /usr/src/linux-2.6.13-15/ lrwxrwxrwx 1 root root 29 Dec 23 13:12 linux-2.6.13-15-obj -> /usr/src/linux-2.6.13-15-obj/ Ich habe mir über den Software Manager die Pakete gcc, g++ und die Kernelsourcen hinzuinstalliert. Mein /usr/src Verzeichnis sieht folgendermaßen aus: Was mich hier wundert - Warum gibt es hier drei verschiedene Verzeichnisse für einen kernel. Für was brauche ich das XX-obj Verzeichnis? linux:/ # ls -l /usr/src/ total 44728 drwxr-xr-x 7 root root 312 Dec 23 14:09 . drwxr-xr-x 12 root root 344 Dec 21 21:54 .. drwxr-xr-x 3 root root 80 Dec 21 21:51 kernel-modules lrwxrwxrwx 1 root root 15 Dec 22 17:55 linux -> linux-2.6.13-15 -rw-r--r-- 1 root root 45755705 Dec 22 14:06 linux-2.6.11.12.tar.gz drwxr-xr-x 19 root root 784 Dec 23 13:18 linux-2.6.13-15 drwxr-xr-x 3 root root 72 Dec 22 17:54 linux-2.6.13-15-obj drwxr-xr-x 3 root root 72 Dec 22 12:35 linux-2.6.13-15.13-obj lrwxrwxrwx 1 root root 19 Dec 22 17:55 linux-obj -> linux-2.6.13-15-obj drwxr-xr-x 7 root root 168 Dec 21 21:56 packages Meine Kernel Version uname -r: 2.6.13-15.13-default meine GCC version gcc --version:linux:/ # gcc --version gcc (GCC) 4.0.2 20050901 (prerelease) (SUSE Linux) Copyright (C) 2005 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. meine Make version:linux:/ # make -version GNU Make 3.80 Copyright (C) 2002 Free Software Foundation, Inc. This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. KANN ES SEIN, DASS ICH NICHT DIE PASSENDEN KERNEL SOURCEN HABE? linux:/ # rpm -qa kernel* kernel-default-2.6.13-15.13 kernel-default-nongpl-2.6.13-15.13 kernel-source-2.6.13-15 kernel-update-tool-0.9-10 Wenn das stimmt, wo bekomme ich die passenden her? Kann mir jemand einen Tipp geben warum das make für das Beispielprogramm nicht funktioniert. Fehler im Beispielprogramm schließe ich aus da ich es schon einmal auf einem anderen Rechner erfolgreich als Kernelmodul kompiliert habe. (Auf diesen habe ich leider jetzt keinen zugriff mehr). Es würde mich sehr freuen Tipps zu bekommen um herauszufinden was da genau nicht zusammenpasst! Vielen Dank im Voraus für eure Antworten, Lg und frohes fest, rain Zitieren
dr.disk Geschrieben 24. Dezember 2006 Geschrieben 24. Dezember 2006 Wechsel mal nach /usr/src/linux und führe folgende Befehle aus: make clean make cloneconfig make prepare-all Versuch's dann nochmal. Klappt's jetzt? Zitieren
Rain Geschrieben 24. Dezember 2006 Autor Geschrieben 24. Dezember 2006 Danke für die Antwort. Aber leider kann ich das make noch immer nicht ausführen. Es kommt immer noch der gleiche Fehler auch wenn ich in usr/src/linux: make clean make cloneconfig make prepare-all ausführe. Bin für jeden Tipp dankbar, rain Zitieren
Rain Geschrieben 24. Dezember 2006 Autor Geschrieben 24. Dezember 2006 In linux:/lib/modules/2.6.13-15.13-default/build findet sich folgendes: linux:/lib/modules/2.6.13-15.13-default/build # ll total 248 drwxr-xr-x 2 root root 152 Dec 23 13:13 . drwxr-xr-x 3 root root 72 Dec 22 12:35 .. -rw-r--r-- 1 root root 251325 Dec 11 01:57 Module.symvers lrwxrwxrwx 1 root root 25 Dec 23 13:13 linux-2.6.13-15 -> /usr/src/linux-2.6.13-15/ lrwxrwxrwx 1 root root 29 Dec 23 13:12 linux-2.6.13-15-obj -> /usr/src/linux-2.6.13-15-obj/ hier mein /boot Verzeichnis: linux:/boot # ll total 6027 drwxr-xr-x 3 root root 496 Dec 24 13:34 . drwxr-xr-x 24 root root 576 Dec 24 2006 .. -rw-r--r-- 1 root root 756843 Dec 11 01:46 System.map-2.6.13-15.13-default -rw------- 1 root root 512 Dec 21 22:00 backup_mbr lrwxrwxrwx 1 root root 1 Dec 21 21:52 boot -> . -rw-r--r-- 1 root root 63905 Dec 11 01:56 config-2.6.13-15.13-default drwxr-xr-x 2 root root 632 Dec 23 11:09 grub lrwxrwxrwx 1 root root 27 Dec 22 12:35 initrd -> initrd-2.6.13-15.13-default -rw-r--r-- 1 root root 1741549 Dec 22 12:35 initrd-2.6.13-15.13-default -rw-r--r-- 1 root root 128000 Dec 21 22:18 message -rw-r--r-- 1 root root 73537 Dec 11 01:57 symvers-2.6.13-15.13-i386-default.gz -rw-r--r-- 1 root root 1840176 Dec 11 01:56 vmlinux-2.6.13-15.13-default.gz lrwxrwxrwx 1 root root 28 Dec 22 12:35 vmlinuz -> vmlinuz-2.6.13-15.13-default -rw-r--r-- 1 root root 1542725 Dec 11 01:46 vmlinuz-2.6.13-15.13-default Ich glaube, dass ich durch in online Update einen neuen Kernel installiert bekommen habe. Also den 2.6.13-15.13-default. Die Kernelsourcen habe ich aber nur für den 2.6.13-15. Kann das der Fehler sein? Wenn ja wie mache ich das Update ruchgängig, oder wie bekomme ich das make hin? Danke, rain Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.