ubuntuusers.de

Problem beim kompilieren

Status: Ungelöst | Ubuntu-Version: Nicht spezifiziert
Antworten |

hamsterman

Anmeldungsdatum:
1. November 2007

Beiträge: 17

Ich versuche gerade mir einen devolo dLAN dou adapter anzuschließen und soll jetzt die software auf, die auf der cd ist installieren!
Um das zu tun muss ich das ganze erstmal kompilieren...
ich gebe also den Befehl ./configure im betrefflichen Verzeichnis ein und alles funktioniert wunderbar!
Soblad ich aber make anwende bekomme ich folgenden Fehler:

making all in tool
make[1]: Betrete Verzeichnis '/home/clemens/dLAN-linux-package-2.0/tool'
make[1]: Für das Ziel »all« ist nichts zu tun.
make[1]: Verlasse Verzeichnis '/home/clemens/dLAN-linux-package-2.0/tool'
making all in driver
make[1]: Betrete Verzeichnis '/home/clemens/dLAN-linux-package-2.0/driver'
make -C /lib/modules/2.6.24-19-generic/build SUBDIRS=/home/clemens/dLAN-linux-package-2.0/driver modules
make[2]: Betrete Verzeichnis '/usr/src/linux-headers-2.6.24-19-generic'
  CC [M]  /home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.o
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c:22:26: Fehler: linux/config.h: No such file or directory
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c: In Funktion »devolo_read_bulk_callback«:
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c:135: Fehler: Implizite Deklaration der Funktion »eth_copy_and_sum«
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c:153: Warnung: Übergabe des Arguments 6 von »usb_fill_bulk_urb« von inkompatiblem Zeigertyp
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c: In Funktion »devolo_tx_timeout«:
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c:205: Fehler: »URB_ASYNC_UNLINK« nicht deklariert (erste Benutzung in dieser Funktion)
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c:205: Fehler: (Jeder nicht deklarierte Bezeichner wird nur einmal aufgeführt
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c:205: Fehler: für jede Funktion in der er auftritt.)
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c: In Funktion »devolo_start_xmit«:
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c:249: Warnung: Übergabe des Arguments 6 von »usb_fill_bulk_urb« von inkompatiblem Zeigertyp
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c: In Funktion »devolo_open«:
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c:358: Warnung: Übergabe des Arguments 6 von »usb_fill_bulk_urb« von inkompatiblem Zeigertyp
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c: In Funktion »devolo_probe«:
/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.c:642: Fehler: Implizite Deklaration der Funktion »SET_MODULE_OWNER«
make[3]: *** [/home/clemens/dLAN-linux-package-2.0/driver/devolo_usb.o] Fehler 1
make[2]: *** [_module_/home/clemens/dLAN-linux-package-2.0/driver] Fehler 2
make[2]: Verlasse Verzeichnis '/usr/src/linux-headers-2.6.24-19-generic'
make[1]: *** [default] Fehler 2
make[1]: Verlasse Verzeichnis '/home/clemens/dLAN-linux-package-2.0/driver'
make: *** [all] Fehler 2


damit weiß ich nur leider gar nix anzufangen...
Hat vielleicht einer ne Idee, was da zu tun is?

gruß hamsterman

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
in der datei devolo_usb.c wird auf die Datei /linux/config.h verwiesen.
Diese gehört normalerweise zu den kernel-headern und befindet sich wahrscheinlich in /usr/src/linux-headers-[Kerneversion]/include/config/i2o/

Kopiere die Datei mal nach /linux :

mkdir /`pwd`/linux
cp /usr/src/linux-headers-`uname -r`/include/config/i2o/config.h  /`pwd`/linux

Versuche es nun erneut.

Wenn ich mich recht erinnere, musste noch irgendetwas an den Quelldateien angepasst werden. Einfach mal die Forensuche verwenden und nach Devolo oder dlan suchen.

rosigu

Anmeldungsdatum:
4. August 2008

Beiträge: 12

Wohnort: Berlin

elektronenblitz63 schrieb:

Hallo,
in der datei devolo_usb.c wird auf die Datei /linux/config.h verwiesen.
Diese gehört normalerweise zu den kernel-headern und befindet sich wahrscheinlich in /usr/src/linux-headers-[Kerneversion]/include/config/i2o/

Kopiere die Datei mal nach /linux :

mkdir /`pwd`/linux
cp /usr/src/linux-headers-`uname -r`/include/config/i2o/config.h  /`pwd`/linux

Versuche es nun erneut.

Wenn ich mich recht erinnere, musste noch irgendetwas an den Quelldateien angepasst werden. Einfach mal die Forensuche verwenden und nach Devolo oder dlan suchen.

Hallo Elektronenblitz,

da ich genau das gleiche Problem habe, wie der Threadstarter, hier mal meine Ergebnisse. Für das beseitigen der Fehlermeldungen zur fehlenden config.h habe ich jetzt inzwischen zwei Varianten:

1. eine leere config.h ins Verzeichnis /usr/src/linux-headers-VERSION-generic/include/linux speichern

sudo touch config.h

Das entspricht im Ergebnis Deinem Vorschlag, denn auch die config.h in i2o ist leer.

2. den entsprechenden include-Eintrag in der Datei devolo_usb.c von config.h in configfs.h ändern

Beides führt dazu, dass die Fehlermeldung beim Befehl make nicht mehr erscheint. Bleiben allerdings die zwei Fehlermeldungen zur "Implizierten Deklaration der Funktion (ethcopy and sum bzw. SET_Module_owner) und die zur nichtdeklarierte Funktion. Diese Probleme treten erst seit Ubuntu 8.04 auf, zumindest für 7.04 kann ich sagen, dass die Treiber-Kompilation für den USB-Adapter nach config.h -Ergänzung durchläuft. Ich habe sowohl im Forum als auch im Internet sonst fleißig gesucht, aber immer nur Anleitungen zu älteren Versionen gefunden.

Da derzeit in der Wiki-Baustelle ein Wiki zu dlan entsteht, wäre es schön, wenn ich vielleicht noch einen Tipp von Dir kriegen könnte, was ich noch probieren kann. Es hilft übrigens nichts, die entsprechenden Einträge in der devolo_usb.c auszukommentieren. Das habe ich probiert und make bzw. make install laufen durch. Der Adapter wird aber von der Software nicht mehr erkannt. Auch pppoeconf erkennt ihn dann nicht korrekt.

Viele Grüße

rosigu

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
ich habe aktuell die Version 3 des Treiberpakets für dLan-Duo kompilieren können.
Das Peket libpcap0.8-dev muss installiert werden, und aus den Kernel-Headern wird die Datei config.h benöigt, bzw. die Pfandangabe in der Datei devolo_usb.c muss darauf verweisen > z.B. #include </home/Benutzer/linux/config.h>

Dann sind noch ein paar Stellen in der Datei auszukommentieren um das USB-Treibermodul ohne Fehler kompilieren zu können. Die angepasste Datei befindet sich im Anhang (nach /home/Benutzer/dLAN-linux-package-v3/driver kopieren).

devolo_usb.c.tar.gz (4.5 KiB)
Download devolo_usb.c.tar.gz

rosigu

Anmeldungsdatum:
4. August 2008

Beiträge: 12

Wohnort: Berlin

Hallo elektronenblitz63,

vielen Dank für Deine Hilfe. Ich habe Deine Datei ausprobiert (habe allerdings nur package-v4). Das Kompilieren läuft zwar durch, das Modul wird aber bei der Einrichtung der dlan-Software mit

dlanconfig

immer noch nicht erkannt. Die Fehlermeldung dabei ist die gleiche, wie im

Wiki-Entwurf - dort ganz unten - beschrieben. Ich stelle mir das so vor, dass durch das Auskommentieren wichtige "Einstellungen" nicht vorgenommen werden, die der Adapter aber braucht, um erkannt zu werden. Man müsste - nicht das ich es könnte - die Funktionen im Makefile explizit deklarieren bzw. überhaupt deklarieren, je nach Fehlermeldung (mal ganz naiv ausgedrückt 😉 ). Wäre das logisch? Nur zur Klarstellung: ich verwende Xubuntu 8.04.

Wird das Gerät denn nach dem kompilieren bei Dir auch erkannt?

sudo pppoeconf

funktioniert bei mir ja auch nicht...

ifconfig -a

zeigt dlanusb0 und dlanusb0_avahi, eth0 und eth0_avahi sowie lo. Wenn ich

ifconfig dlanusb0 IP netmask up

eingebe zum einmaligen Test kommt keine Fehlermeldung.

Welche log-Dateien könnten denn hier Hinweise geben? Oder welche Stellschrauben gibt es noch? Fragen über Fragen... ☺

Vielen Dank für jeden Hinweis und viele Grüße rosigu

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
ich besitze keine dLan-Geräte, sonder habe nur die Vorgehensweise beim kompilieren geprüft.
Wurde der Adapter so aktiviert?

sudo /usr/local/sbin/dlanconfig dlanusb0

Es fehlten ein paar Deklarationen in der Datei ~/dLAN-linux-package-v4/driver/devolo_usb.h
Die angepasste Datei ist im Anhang. Der Treiber läßt sich nun ohne Fehlermeldungen kompilieren.

Anpassungen:

/* modifiziert 13.08.2008*/
#define FILL_BULK_URB(URB,DEV,PIPE,TRANSFER_BUFFER,BUFFER_LENGTH,COMPLETE,CONTEXT) 
#define usb_fill_bulk_urb(URB,DEV,PIPE,TRANSFER_BUFFER,BUFFER_LENGTH,COMPLETE,CONTEXT) 
#define eth_copy_and_sum(URB,DEV,PIPE,TRANSFER_BUFFER)
#define SET_MODULE_OWNER(NET)
devolo_usb.h.tar.gz (1.7 KiB)
Download devolo_usb.h.tar.gz

rosigu

Anmeldungsdatum:
4. August 2008

Beiträge: 12

Wohnort: Berlin

Hallo Elektronenblitz63,

hab vielen Dank, dass Du Dir die Dateien nochmal angeschaut hast!

Wurde der Adapter so aktiviert?

sudo /usr/local/sbin/dlanconfig dlanusb0

Ja, habe ich getan. Bei Eingabe diese Befehls wird der Adapter gesucht und es kommt die Fehlermeldung "No local device found, exiting". Das die Meldung kommt, wundert mich insbesondere deshalb, weil Xubuntu den proprietären Treiber erkennt und in der Systemverwaltung als "in Benutzung" bezeichnet. Wie bereits gesagt zeigt

ifconfig -a

dlanusb0 ebenfalls an. Sowohl dlan als auch eth0 tauchen allerdings zwei mal auf, einmal mit dem Zusatz avahi und einmal ohne. Liegt hier vielleicht das Problem?

Deine modifizierte devolo_usb.h habe ich verwendet. Einzige Fehlermeldung war jetzt noch die mit den CFLAGS, die zu EXTRA_FLAGS zu ändern wären. Nachdem ich die Datei Makefile im Verzeichnis driver entsprechend editiert hatte (dort gibt es zwei Einträge CFLAGS) lief

make

tatsächlich durch. Da ich nicht weiß, ob man die Einträge einfach ändern darf (zumal in anderen Dateien wie /driver/Makefile.in CFLAGS ebenfalls vorkommt) scheint mir dass der einzige Ansatzpunkt zu sein, wo ich einen Fehler gemacht habe. Nach dem Editieren liefen dann auch

make install

und

sudo make installboot

fehlerlos.

Ich habe vor den letzten Versuchen ein neues Xubuntu 8.04 vanilla aufgesetzt. "Kompilierreste" von den vorherigen Versuchen gab es also nicht. Auch der Adapter ist in Ordnung, denn auf dem selben Rechner komme ich mit 7.04 und dlan-USB ins Internet.

Ich hoffe, Du hast noch eine Idee, was ich noch anstellen kann, um diesen Adapter über USB ans Laufen zu kriegen?!

Viele Grüße rosigu

update 23:11: Diesen Text schreibe ich von einem frisch installierten Debian (XFCE, 4.0r4a). Hier läuft die Treiberinstallation ohne jede Anpassung durch! Keine config.h, CFLAGS oder Makefile-Probleme. Dieses Debian verwendet Kernel 2.6.18. Ist Ubuntu wegen der Verwendung des unstable-Zweigs von Debian so anders oder wurde Debian für Ubuntu deutlicher verändert, als ich mir das vorgestellt habe?

elektronenblitz63

Avatar von elektronenblitz63

Anmeldungsdatum:
16. Januar 2007

Beiträge: 29307

Wohnort: NRW

Hallo,
deaktiviere mal Avahi wie im Wiki beschrieben. Das geht auch sehr einfach mit rcconf oder sysv-rc-conf. Möglicherweise blockiert der Dienst hier den Verbindungsaufbau bzw. die Konfiguration der Schnittstelle. Siehe Dienste > "GUIs zum Bearbeiten von Diensten"

Die Meldung mit cflags bekomme ich nicht. Meine Vorgehensweise:

In der Datei devolo_usb.c den Eintrag #include <linux/config.h> einfach gelöscht, da die Datei ja leer ist und eh nichts bewirkt.
Anpassen der Datei devolo_usb.h, dann im Terminal:

cd dLAN-linux-package-v4
./configure
make

sudo make install führe ich auf meinem System nicht aus, da ich den Treiber ja nicht in das System einbinden will. Das Kernelmodul wird aber erzeugt.

rosigu

Anmeldungsdatum:
4. August 2008

Beiträge: 12

Wohnort: Berlin

Hallo elektronenblitz63,

leider bin ich erst heute dazu gekommen, Deinen Hinweis auszuprobieren. Leider hat auch die Deaktivierung von avahi-daemon nichts gebracht. Ich habe den Dienst über die GUI deaktiviert. Erstaunlicherweise waren die avahi-Einträge nach

sudo ifconfig -a

immer noch enthalten. Ich habe die Schnittstellen also per Hand mit

sudo ifconfig ... down

"abgeschossen". Nun wurden sie von ifconfig nicht mehr angezeigt. Der Befehl zur Initialisierung des Adapters

sudo /usr/local/sbin/dlanconfig dlanusb0

brachte aber immer noch kein Ergebnis außer "no local device found". Ohne dass dieser Befehl durchläuft, funktioniert auch

sudo pppoeconf

nicht. Ich bin also noch nicht weitergekommen. Vielen Dank trotzdem für Deine Hilfe. So lange kein anderer noch eine zündende Idee hat, kann ich leider auch an dem Wikibeitrag nicht weiterschreiben. Es wäre schade, wenn ich den Beitrag nur auf Feisty beschränken müsste. Von Seiten des Herstellers devolo kommt jedenfalls keine Hilfe für Ubuntu.

Das von Dir beschriebene Vorgehen habe ich genauso gemacht, daran kann es also nicht liegen...

Laut Deiner Signatur bist Du ab heute im Urlaub. Ich wünsche gute Erholung und nach der Rückkehr viele neue Ideen... 😉

Grüße rosigu

Antworten |