PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ipw2100-1.1.0 und 2.6.13.1: compile error



Akleson
01.10.05, 14:02
Hallo

Ich versuche gerade den ipw2100 Treiber für meinen Laptop zubauen. Mit meinem alten Kernel ging es ohne Probleme nur mit dem neuen 2.6.13.1 habe ich so meine Probleme. Der Kernel als solches läuft einwandfrei. Ich hab (schon zweimal) nachgesehen und es sind alle nötigen Dinge aktiviert für den Treiber. Wenn ich dann nach der Anleitung aus der INSTALL Datei von ipw2100-1.1.0 folge (external build) bekomme ich folgendes:

strider:/usr/src/ipw2100-1.1.0# make
make -C /lib/modules/2.6.13.1-1st/build SUBDIRS=/usr/src/ipw2100-1.1.0 MODVERDIR=/usr/src/ipw2100-1.1.0 modules
make[1]: Entering directory `/usr/src/linux-2.6.13.1'
CC [M] /usr/src/ipw2100-1.1.0/ipw2100.o
In file included from /usr/src/ipw2100-1.1.0/ipw2100.h:43,
from /usr/src/ipw2100-1.1.0/ipw2100.c:167:
/usr/src/ipw2100-1.1.0/ieee80211.h:647: error: redefinition of `is_multicast_ether_addr'
include/linux/etherdevice.h:68: error: `is_multicast_ether_addr' previously defined here
/usr/src/ipw2100-1.1.0/ipw2100.c:3404: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3411: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3418: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3425: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3623: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3663: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3752: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3752: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3786: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3806: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3902: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3945: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:4014: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:4014: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:4056: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:4056: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:4109: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:4109: Warnung: Initialisierung von inkompatiblem Zeigertyp
make[2]: *** [/usr/src/ipw2100-1.1.0/ipw2100.o] Fehler 1
make[1]: *** [_module_/usr/src/ipw2100-1.1.0] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.13.1'
make: *** [modules] Fehler 2
Ich hab schon mal ein bisschen im Web gesucht aber noch nichts gefunden, was das Problem gelöst hätte. Die meisten Dinge, die viel versprechende klingen sind dann für ipw2200. Ich weiss leider auch nicht wie vergleichbar diese beiden sind.

Vielleicht kennt jemand das Probleme schon oder noch besser eine Lösung? Ich möchte ungern anfangen in den Sourcen zu fuschen, da ich mich dort nicht wirklich auskenne.

Gruss Akleson

PS: Wenn mehr Infos nötig sind, bitte nachfragen ich stelle sie dann bereit.

bert2002
01.10.05, 14:51
Beim ipw2200 muss man das aktuelle ieee80211 installieren, wie das jetzt bei dem ipw2100 ist weiss ich nicht, aber hast du das aktuelle? Kernel sourcen installiert?

MfG bert2002

Akleson
01.10.05, 15:02
Hi

Ich nutze ein Debian System mit eigenem Kernel. Die aktuellen Kernelsourcen sind da. Was genau meinst du mit "das aktuelle ieee80211"? Ich konnte kein Paket finden, dass dem entspricht.

Gruss

Akleson
01.10.05, 20:10
Ich hab was gefunden in der ipw2100-devel Mailingliste. Leider ist es eigentlich über den 2200. Es ist auch etwas zu 2100 dabei, aber ich komme damit nicht weiter. Der Link zum Thread über IPW2100 und 2.6.13 (http://sourceforge.net/mailarchive/forum.php?thread_id=8114388&forum_id=38938)

Dort steht
The trouble can be fixed in ieee80211 by including "net/ieee80211.h"
instead of <net/ieee80211.h> in all the c files. Leider komme ich damit nicht weiter. Beziehen die sich auf die Dateien aus ipw2100-1.1.0? Denn dort finde ich keine includes mit <net/ieee80211.h>, die ich ersetzen könnte.
Im Kernel Source Verzeichnis find ich nur eine einzige Datei (net/wireless/orinoco.c), bei der ich es ersetzen könnte. Allerdings glaube ich kaum, dass es etwas bringt.

Kann vielleicht jemand damit was anfangen?
Akleson

pfrei
01.10.05, 20:46
Hallo

Auf jeden Fall brauchst Du die Kernel-Sources für Deinen neuen Kernel. Auch allfällige dazugehörigen Kernel-Sources-Updates sind zwingend notwendig!!

Auch für die ipw2100 benötigst Du seit Version 1.1.1 die ieee80211 (http://ipw2100.sourceforge.net/).

Ich habe für meine ipw2200 folgende Installationsanleitung geschrieben. Vielleicht lässt sie sich auch 1:1 für die ipw2100 übernehmen...


tar -xvzf ieee80211-1.0.2.tgz
tar -xvzf ipw2200-1.0.6.tgz

cd ieee80211-1.0.2/
chmod 755 remove-old
./remove-old

cd ../ipw2200-1.0.6/
chmod 755 remove-old
./remove-old

cd ../ieee80211-1.0.2/
uname -r //Kernel-Version prüfen
make IEEE80211_INC=/lib/modules/2.6.8-24.18-default/include/ install //2.6.8-24.18-default kommt vom Kommando uname -r

cd ../ipw2200-1.0.6/
make
make install

cd ..
tar -xvzfipw2200-fw-2.3.tgz
mv ipw-2.3-* /usr/lib/hotplug/firmware


modprobe ipw2200 //Karte "starten"

Akleson
01.10.05, 22:03
So ich hab mir den aktuellsten stabilen Kernel (2.6.13.2) geholt und wie du vorgeschlagen hast ieee80211. Der Kernel ist ok und läuft.
Aber bei iee80211 tauchen leider die ersten Probleme auf. Das Skript remove-old scheint ein paar Probleme zu haben. Auch gibt es bei ipw2100 kein remove-old Skript. :(

Naja auf jeden Fall komme ich leider auch mit deiner Hilfe nicht weiter. Danke trotzdem.

Gruss Akleson

bert2002
02.10.05, 01:56
Wie waers den mal wenn du uns deine "Fehler" postest" ? Sonst koennen wir auch gleich in die Glaskugel schauen und dir das Wetter von morgen vorher sagen!

MfG bert2002

Akleson
02.10.05, 09:56
Hi

Die erwähnten Probleme konnte ich letzte Nacht noch lösen, aber ohne Erfolg, Ich hab diese Ansatz nicht weiterverfolgt, da er schliesslich ursprünglich auf ipw2200 ausgelegt war.
Im remove-old Skript habe ich in Zeile 62 und 64 den Suchpfad von grep anpassen müssen (siehe auch Zeile 21/24). Also folgendes
62c62
< ( egrep "^(CONFIG_IEEE80211.*)" ${1}/.config || \
---
> ( egrep "^(CONFIG_IEEE80211.*)" ${1}/build/.config || \
64c64
< ${1}/include/linux/autoconf.h ) && \
---
> ${1}/build/include/linux/autoconf.h ) && \
Als nächstes fehlt in ipw2100-1.1.0 ein solches Skript leider völlig. Also überspring ich diesen Teil von pfrei mal. Die Installation von ieee80211 lief mit einer Warnung durch.
strider:/usr/src/ieee80211-1.0.3# make IEEE80211_INC=/lib/modules/2.6.13.2-1st/include/ install
make -C /lib/modules/2.6.13.2-1st/build M=/usr/src/ieee80211-1.0.3 MODVERDIR=/usr/src/iee
e80211-1.0.3 modules
make[1]: Entering directory `/usr/src/linux-2.6.13.2'

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

CC [M] /usr/src/ieee80211-1.0.3/ieee80211_module.o
CC [M] /usr/src/ieee80211-1.0.3/ieee80211_tx.o
CC [M] /usr/src/ieee80211-1.0.3/ieee80211_rx.o
CC [M] /usr/src/ieee80211-1.0.3/ieee80211_wx.o
CC [M] /usr/src/ieee80211-1.0.3/ieee80211_geo.o
LD [M] /usr/src/ieee80211-1.0.3/ieee80211.o
CC [M] /usr/src/ieee80211-1.0.3/ieee80211_crypt.o
CC [M] /usr/src/ieee80211-1.0.3/ieee80211_crypt_wep.o
CC [M] /usr/src/ieee80211-1.0.3/ieee80211_crypt_ccmp.o
CC [M] /usr/src/ieee80211-1.0.3/ieee80211_crypt_tkip.o
Building modules, stage 2.
MODPOST
CC /usr/src/ieee80211-1.0.3/ieee80211.mod.o
LD [M] /usr/src/ieee80211-1.0.3/ieee80211.ko
CC /usr/src/ieee80211-1.0.3/ieee80211_crypt.mod.o
LD [M] /usr/src/ieee80211-1.0.3/ieee80211_crypt.ko
CC /usr/src/ieee80211-1.0.3/ieee80211_crypt_ccmp.mod.o
LD [M] /usr/src/ieee80211-1.0.3/ieee80211_crypt_ccmp.ko
CC /usr/src/ieee80211-1.0.3/ieee80211_crypt_tkip.mod.o
LD [M] /usr/src/ieee80211-1.0.3/ieee80211_crypt_tkip.ko
CC /usr/src/ieee80211-1.0.3/ieee80211_crypt_wep.mod.o
LD [M] /usr/src/ieee80211-1.0.3/ieee80211_crypt_wep.ko
make[1]: Leaving directory `/usr/src/linux-2.6.13.2'
install -d /lib/modules/2.6.13.2-1st/net/ieee80211/
install -m 644 -c ieee80211.ko ieee80211_crypt.ko ieee80211_crypt_wep.ko ieee80211_crypt_
ccmp.ko ieee80211_crypt_tkip.ko /lib/modules/2.6.13.2-1st/net/ieee80211/
install -d `echo /lib/modules/2.6.13.2-1st/include/ | grep "/net\$" || echo /lib/modules/
2.6.13.2-1st/include//net`
install -m 644 -c net/ieee80211.h net/ieee80211_crypt.h `echo /lib/modules/2.6.13.2-1st/i
nclude/ | grep "/net\$" || echo /lib/modules/2.6.13.2-1st/include//net`
mkdir -p /lib/modules/2.6.13.2-1st/net/ieee80211//.tmp_versions
install -m 644 -c ieee80211.mod ieee80211_crypt.mod ieee80211_crypt_wep.mod ieee80211_cry
pt_ccmp.mod ieee80211_crypt_tkip.mod /lib/modules/2.6.13.2-1st/net/ieee80211//.tmp_versio
ns
/sbin/depmod -a
strider:/usr/src/ieee80211-1.0.3#
Leider klappt das kompilieren von ipw2100 danach immer noch nicht.
strider:/usr/src/ipw2100-1.1.0# make
make -C /lib/modules/2.6.13.2-1st/build SUBDIRS=/usr/src/ipw2100-1.1.0 MODVERDIR=/usr/src/ipw2100-1.1.0 modules
make[1]: Entering directory `/usr/src/linux-2.6.13.2'

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

CC [M] /usr/src/ipw2100-1.1.0/ipw2100.o
In file included from /usr/src/ipw2100-1.1.0/ipw2100.h:43,
from /usr/src/ipw2100-1.1.0/ipw2100.c:167:
/usr/src/ipw2100-1.1.0/ieee80211.h:647: error: redefinition of `is_multicast_ether_addr'
include/linux/etherdevice.h:68: error: `is_multicast_ether_addr' previously defined here
/usr/src/ipw2100-1.1.0/ipw2100.c:3404: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3411: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3418: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3425: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3623: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3663: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3752: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3752: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3786: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3806: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3902: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:3945: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:4014: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:4014: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:4056: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:4056: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:4109: Warnung: Initialisierung von inkompatiblem Zeigertyp
/usr/src/ipw2100-1.1.0/ipw2100.c:4109: Warnung: Initialisierung von inkompatiblem Zeigertyp
make[2]: *** [/usr/src/ipw2100-1.1.0/ipw2100.o] Fehler 1
make[1]: *** [_module_/usr/src/ipw2100-1.1.0] Fehler 2
make[1]: Leaving directory `/usr/src/linux-2.6.13.2'
make: *** [modules] Fehler 2
strider:/usr/src/ipw2100-1.1.0#
Jetzt bin ich immer noch beim gleichen Problem.
Gruss Akleson

Toast
02.10.05, 10:22
ich konnte ipw2100-1.1.2 anfangs auch nicht mit ieee80211-1.0.3 kompilieren.

dafür gibts auf http://ipw2100.sourceforge.net/#patches nen patch: patch (http://ipw2100.sourceforge.net/patches/ipw2100-1.1.2-ieee80211-1.0.3.patch)

vielleicht hilft dir das

edit:
sorry, hab nicht gesehn, dass du ja ipw2100-1.1.0 verwendest

pfrei
02.10.05, 13:05
Na ja, die Kompilierung geht vmtl. nicht, weil Du versuchst, eine alte ipw2100-Version (1.1.0) mit dem ieee zu kompilieren! Bei Version 1.1.0 brauchte man ja den ieee noch nicht separat zu installieren!

Du musst also
- die neuste Version ipw2100-1.1.2 runterladen,
- patchen mit dem Patch wie ihn "Toast" in seinem Beitrag beschrieben hat und
- auch die ieee80211-1.0.3.tgz runterladen.

Anschliessend gehst Du vor, wie in meiner Anleitung beschrieben. Das remove-old kannst Du ja weglassen, falls es das nicht gibt.

Akleson
02.10.05, 13:49
Hi

So jetzt hab ich es geschafft! :) :) :) Vielen Dank !!
Und für alle die es gesammelt haben wollen hier mein Vorgehen.

1) Holt euch folgende Pakete und Dateien:
ipw2100-1.1.2 (http://ipw2100.sourceforge.net/#downloads)
ipw2100 ieee80211 Patch (http://ipw2100.sourceforge.net/#patches)
ieee80211-1.0.3 (http://ieee80211.sourceforge.net/#downloads)
Alles entpacken

2) In den beiden Verzeichnissen jeweils die remove-old Skripte ausführen. Es kann sein, dass es bei ieee80211 zu einer Fehlermeldung kommt, dass er die Dateien .config und include/linux/autoconf.h nicht finden kann. Ist das der Fall diesen Patch anwenden auf remove-old (in ieee80211-1.0.3):
62c62
< ( egrep "^(CONFIG_IEEE80211.*)" ${1}/.config || \
---
> ( egrep "^(CONFIG_IEEE80211.*)" ${1}/build/.config || \
64c64
< ${1}/include/linux/autoconf.h ) && \
---
> ${1}/build/include/linux/autoconf.h ) && \ Das sollte es beheben.

3) Im Verzeichnis ieee80211-1.0.3 ein make install ausführen. Der Zustatz IEEE80211_INC hat bei mir nicht funktioniert und es geht auch ohne.

4) Im Verzeichnis ipw2100-1.1.2 ebenfalls ein make && make install

5) Firmware nicht vergessen

So damit hat es bei geklappt. Viel Erfolg
Akleson