Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » C / C++ (GNU/Linux, *NIX, *BSD und Co) » make befehl

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: [ 1 ] > 2 <
010
01.12.2010, 19:13 Uhr
banshee



mhh, scheint als hätte ich tatsächlich den Tab vergessen.

Nun sagt er


Zitat:
ubuntu@ubuntu:~$ make
make -C /usr/src/linux-headers-2.6.35-22 SUBDIRS=/home/ubuntu modules
make[1]: Betrete Verzeichnis '/usr/src/linux-headers-2.6.35-22'

ERROR: Kernel configuration is invalid.
include/generated/autoconf.h or include/config/auto.conf are missing.
Run 'make oldconfig && make prepare' on kernel src to fix it.


WARNING: Symbol version dump /usr/src/linux-headers-2.6.35-22/Module.symvers
is missing; modules will have no dependencies and modversions.

CC [M] /home/ubuntu/hello.o
cc1: fatal error: include/generated/autoconf.h: No such file or directory
compilation terminated.
make[2]: *** [/home/ubuntu/hello.o] Fehler 1
make[1]: *** [_module_/home/ubuntu] Fehler 2
make[1]: Verlasse Verzeichnis '/usr/src/linux-headers-2.6.35-22'
make: *** [default] Fehler 2


Beim googlen finde ich da nur Leute, die Treiberkonflikte oder was in der Richtung haben oder den kernel irgendwie patchen wollen.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
011
01.12.2010, 20:27 Uhr
FloSoft
Medialer Over-Flow
(Administrator)


evtl ließe sich ja der module-assistant (http://wiki.ubuntuusers.de/module-assistant) benutzen um alles herzurichten, bzw dkms? das wär evtl einfacher als alles per hand vorzubereiten.
--
class God : public ChuckNorris { };
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
012
02.12.2010, 00:15 Uhr
Pablo
Supertux
(Operator)


make prepare? Ist das nicht aus 2.4er Zeiten?
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
013
02.12.2010, 13:35 Uhr
banshee



Nix zu machen. Hab es jetzt 5x über den module-assistant probiert, aber ich komm noch nicht mal bis dahin, weil die Maschine am laufenden Band abschmiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
014
04.12.2010, 12:39 Uhr
banshee



Mittlerweile funktioniert es! Ich habe also den module-assistant runtergeladen und per prepare alle erforderlichen Pakete. Nun kommt folgende Fehlermeldung beim maken:


Zitat:
make -C /usr/src/linux-headers-2.6.35-22-generic SUBDIRS=/home/bene modules
make[1]: Betrete Verzeichnis '/usr/src/linux-headers-2.6.35-22-generic'
CC [M] /home/bene/hello.o
/home/bene/hello.c:2: fatal error: linux/config.h: No such file or directory
compilation terminated.
make[2]: *** [/home/bene/hello.o] Fehler 1
make[1]: *** [_module_/home/bene] Fehler 2
make[1]: Verlasse Verzeichnis '/usr/src/linux-headers-2.6.35-22-generic'
make: *** [default] Fehler 2



Welche config.h sucht er denn da ständig?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
015
04.12.2010, 23:22 Uhr
Pablo
Supertux
(Operator)


seltsam, such mal in /usr/src/linux-headers-2.6.35-22-generic ob es die config.h gibt.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
016
05.12.2010, 12:14 Uhr
banshee



Die Lösung war relativ simpel. Man muss einfach das include rausnehmen. Ich habe gelesen, dass es das seit einer 2.6.xy nicht mehr gibt.

Das einzige was mir jetzt noch fehlt, sind die Ausgaben. Wenn ich also obiges Modul kompiliere und per insmod installiere, sollte er ja die Init-Methode ausführen und das Ergebnis irgendwohin schreiben.


Zitat:
#include <linux/module.h>
#include <linux/config.h>
#include <linux/init.h>
MODULE_LICENSE("GPL");
static int __init name_of_initialization_routine(void) {
printk(KERN_ALERT "Hello, world\n");
return 0;
}
static void __exit name_of_cleanup_routine(void) {
printk(KERN_ALERT "Goodbye, cruel world\n");
}
module_init(name_of_initialization_routine);
module_exit(name_of_cleanup_routine);


Im Terminal passiert allerdings nichts. Wird das in irgendeine Logdatei geschrieben? Oder muss ich das Modul erst anderweitig ausführen?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
017
05.12.2010, 15:31 Uhr
Pablo
Supertux
(Operator)


config.h gibt es weiterhin, denn dort sind Makros, die man braucht, um z.b. zu wissen dass das USB System kompiliert wird.


Zitat:

Im Terminal passiert allerdings nichts. Wird das in irgendeine Logdatei geschrieben? Oder muss ich das Modul erst anderweitig ausführen?



Es kommt auf dem Terminal an und wie sie Kernel-Logs ausgegeben. In der Regel solltest du an einer normalen Konsole nichts sehen. Dafür gibt es dmesg. Gib dmesg in der Konsole und dann erscheint dein Text.

Um nicht jedes Mal dmesg aufrufen zu müssen, kannst du auch sowas machen:


Code:
$ tail -f /var/log/message



aber manche Kernel sind paranoid eingestellt und da wird man regelrecht mit Logs überflütet. Normalerweise sehen die Kernel Logs so aus:


Code:
[  204.065156] usb 3-2:1.0: uevent



mit [ Timestamp ] module info

Also könntest du


Code:
tail -f /var/log/messages | grep deinmodulname



und dann siehst du nur deine eigene Logs.

Je nach syslog-Konfiguration wirst du so manche Logs wahrscheinlich nie bekommen oder erst spät.
--
A! Elbereth Gilthoniel!
silivren penna míriel
o menel aglar elenath,
Gilthoniel, A! Elbereth!
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: [ 1 ] > 2 <     [ C / C++ (GNU/Linux, *NIX, *BSD und Co) ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: