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

ipw2200 + eigener Kernel 2.6.14.4 nur noch kein WPA Rest OK

Hallo liebe Linux Gemeinde.
Ich kämpfe derzeit mit WIfi-Karte IP2200BG. Vielleicht hat jemand (noch) Lust vor Weihnachten sich das anzuschauen. Wäre seeehr nett!

Ausgangssituation:


Nach erfolgreicher Kernelkompilation (Anleitung von Gimpel) (meine Version ist der kernel-2.6.14.4-default) funktioniert Wifi

Code:
# lspci
01:03.0 Network controller: Intel Corporation PRO/Wireless 2200BG (rev 05)

nicht mehr

Während der Kernelkonfiguration wurde ich nach zcat /proc/config.gz > .config gefragt, ob ipw2200 und ipw2100 mit kompiliert werden sollen (oder war das nur die Möglichkeit, später kompilieren zu können?) - habe ich mit "y" bestätigt. Trotzdem wurde die Wifi nach Neustart im Yast erkannt und konnte in YAST konfiguriert werden, aber nach Speichern existierte trotzdem keine Wlan-Schnittstelle.
Mit

Code:
c16:/home/dm # iwconfig
lo no wireless extensions.

eth0 no wireless extensions.

irda0 no wireless extensions.

ist es ersichtlich.
Somit muss ich wohl den neuen Kernel um die fehlenden ipw-Module und Firmware ergänzen.
Gefolgt bin ich der Intel-Anleitung und HansBauer-Anleitung aus dem Forum. Die drei Quellen sollen zuerst entpackt werden.

Code:
tar xzvf ipw2200-1.0.8.tgz
tar xzvf ieee80211-1.1.6.tgz
tar xzvf ipw2200-fw-2.3.tgz

Einem Thread aus dem Forum habe ich entnommen, dass es Probleme mit der neuesten Firmware 2.4 gibt, deswegen habe ich Firmware v2.3 anstatt v.2.4 heruntergeladen und laut Anleitung in das Verzeichnis /lib/firmware

1) mit

Code:
cp *.fw /lib/firmware

kopiert und geprüft. Die Firmware-Dateien *.fw sind in dem Verzeichnis.

Jetzt ein paar Infos zum Kernel. Wie gesagt, hab ich den selber "gebacken". Der alte ist auch noch dabei (Auswahlmöglichkeit beim Hochfahren)

Situation:
- kernel

Code:
# uname -r
2.6.14.4-default

- source

Code:
# rpm -q kernel-source
kernel-source-2.6.13-15.7

Tja, die "alte" Source ist dabei. Warum? Wahrscheinlich ist das die Ursache???


Ich versuchte trotzdem nach der Anleitung vorzugehen.

2) /pfad/zu/ieee80211-1.1.6 und als root

Code:
# make
Checking in /lib/modules/2.6.14.4-default/build/ for ieee80211 components...

make -C /lib/modules/2.6.14.4-default/build M=/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ieee80211-1.1.6 MODVERDIR=/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ieee80211-1.1.6 modules
make[1]: Entering directory `/usr/src/packages/BUILD/kernel-2.6.14.4default'
Building modules, stage 2.
MODPOST
make[1]: Leaving directory `/usr/src/packages/BUILD/kernel-2.6.14.4default'
c16:/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ieee80211-1.1.6


und

Code:
c16:/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ieee80211-1.1.6 # make install
make -C /lib/modules/2.6.14.4-default/build M=/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ieee80211-1.1.6 MODVERDIR=/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ieee80211-1.1.6 modules
make[1]: Entering directory `/usr/src/packages/BUILD/kernel-2.6.14.4default'
Building modules, stage 2.
MODPOST
make[1]: Leaving directory `/usr/src/packages/BUILD/kernel-2.6.14.4default'
install -d /lib/modules/2.6.14.4-default/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.14.4-default/net/ieee80211/
install -d `echo /lib/modules/2.6.14.4-default/include | grep "/net\$" || echo /lib/modules/2.6.14.4-default/include/net`
install -m 644 -c net/ieee80211.h net/ieee80211_crypt.h net/ieee80211_radiotap.h `echo /lib/modules/2.6.14.4-default/include | grep "/net\$" || echo /lib/modules/2.6.14.4-default/include/net`
mkdir -p /lib/modules/2.6.14.4-default/net/ieee80211.tmp_versions
install -m 644 -c ieee80211.mod ieee80211_crypt.mod ieee80211_crypt_wep.mod ieee80211_crypt_ccmp.mod ieee80211_crypt_tkip.mod /lib/modules/2.6.14.4-default/net/ieee80211.tmp_versions
/sbin/depmod -a
c16:/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ieee80211-1.1.6


Scheint alles OK!!!!?? Keine Fehlermeldungen!!!

3) jetzt weiter pfad/zu/ipw2200-1.0.8 und

Code:
c16:/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8 # make
mkdir -p /home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8/tmp/.tmp_versions
cp /lib/modules/2.6.14.4-default/net/ieee80211/.tmp_versions/*.mod /home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8/tmp/.tmp_versions
make -C /lib/modules/2.6.14.4-default/build M=/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8 MODVERDIR=/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8/tmp/.tmp_versions modules
make[1]: Entering directory `/usr/src/packages/BUILD/kernel-2.6.14.4default'
CC [M] /home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8/ipw2200.o
In file included from include/linux/config.h:4,
from include/linux/module.h:9,
from /home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8/ipw2200.h:32,
from /home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8/ipw2200.c:33:
include/linux/autoconf.h:1529:1: warning: "CONFIG_IPW_DEBUG" redefined
<command line>:1:1: warning: this is the location of the previous definition
Building modules, stage 2.
MODPOST
LD [M] /home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8/ipw2200.ko
make[1]: Leaving directory `/usr/src/packages/BUILD/kernel-2.6.14.4default'
c16:/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8

und

Code:
c16:/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8 # make install
mkdir -p /home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8/tmp/.tmp_versions
cp /lib/modules/2.6.14.4-default/net/ieee80211/.tmp_versions/*.mod /home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8/tmp/.tmp_versions
make -C /lib/modules/2.6.14.4-default/build M=/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8 MODVERDIR=/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8/tmp/.tmp_versions modules
make[1]: Entering directory `/usr/src/packages/BUILD/kernel-2.6.14.4default'
Building modules, stage 2.
MODPOST
make[1]: Leaving directory `/usr/src/packages/BUILD/kernel-2.6.14.4default'
install -d /lib/modules/2.6.14.4-default/kernel/drivers/net/wireless/
install -m 644 -c ipw2200.ko /lib/modules/2.6.14.4-default/kernel/drivers/net/wireless/
/sbin/depmod -a
Don't forget to copy firmware to your hotplug's firmware directory and have the
hotplug tools in place.
See INSTALL for more information.
c16:/home/dm/Documents/LINUX-TOOLS/ipw2200BG/ipw2200-1.0.8


ACHTUNG!!!! > *Don't forget to copy firmware to your hotplug's firmware directory and have the
hotplug tools in place.*

Aus der Anleitung:
Once you have the firmware, unzip the archive. You should find seven
files within it:

LICENSE A copy of the firmware license
ipw--boot.fw Boot strap image
ipw--bss_ucode.fw Used in BSS mode
ipw--bss.fw Used in BSS mode
ipw--ibss_ucode.fw Used in IBSS mode
ipw--ibss.fw Used in IBSS mode
ipw--sniffer.fw Used in Monitor mode
ipw--sniffer_ucode.fw Used in Monitor mode

You need to place all of these files into the hotplug firmware directory,
e.g. /usr/lib/hotplug/firmware/ or /lib/firmware/. Check the contents
of the /etc/hotplug/firmware.agent to determine the specific location for your distribution.

Also nicht nur nach /lib/firmware kopieren sondern auch nach /usr/lib/hotplug/firmware/ (hab ich getan)
RESTART
Weiter nichts

Code:
c16:/home/dm # modprobe ipw2200
WARNING: Error inserting ieee80211 (/lib/modules/2.6.14.4-default/net/ieee80211/ieee80211.ko): Unknown symbol in module, or unknown parameter (see dmesg)
FATAL: Error inserting ipw2200 (/lib/modules/2.6.14.4-default/kernel/drivers/net/wireless/ipw2200.ko): Unknown symbol in module, or unknown parameter (see dmesg)

anschliessend dmesg

Code:
# dmesg
ieee80211: disagrees about version of symbol ieee80211_get_crypto_ops
ieee80211: Unknown symbol ieee80211_get_crypto_ops
ieee80211: disagrees about version of symbol ieee80211_crypt_deinit_entries
ieee80211: Unknown symbol ieee80211_crypt_deinit_entries
ieee80211: disagrees about version of symbol ieee80211_crypt_delayed_deinit
ieee80211: Unknown symbol ieee80211_crypt_delayed_deinit
ipw2200: Unknown symbol ieee80211_wx_get_encodeext
ipw2200: disagrees about version of symbol ieee80211_wx_set_encode
ipw2200: Unknown symbol ieee80211_wx_set_encode
ipw2200: disagrees about version of symbol ieee80211_wx_get_encode
ipw2200: Unknown symbol ieee80211_wx_get_encode
ipw2200: disagrees about version of symbol ieee80211_txb_free
ipw2200: Unknown symbol ieee80211_txb_free
ipw2200: Unknown symbol ieee80211_wx_set_encodeext
ipw2200: disagrees about version of symbol ieee80211_wx_get_scan
ipw2200: Unknown symbol ieee80211_wx_get_scan
ipw2200: disagrees about version of symbol ieee80211_rx
ipw2200: Unknown symbol ieee80211_rx
ipw2200: disagrees about version of symbol ieee80211_rx_mgt
ipw2200: Unknown symbol ieee80211_rx_mgt
ipw2200: disagrees about version of symbol free_ieee80211
ipw2200: Unknown symbol free_ieee80211
ipw2200: disagrees about version of symbol alloc_ieee80211
ipw2200: Unknown symbol alloc_ieee80211

Jetzt bin ich mit meinem Latein am Ende...

Danke für jeden Hinweis!!!
 
Die neuen Kernel haben eine (etwas veraltete) Version des ipw2200-Treibers an Bord. Solltest du mit der nicht zurechtkommen (du brauchst natürlich die dazu passende Firmware, wenn ich mich nicht irre Version 2.2), musst du beim Kernel-Compilieren die ipw2200-Unterstützung explizit ausschalten(!), um danach das Modul wie geschehen von Hand zu erstellen. Sonst kommt es zu den von dir beschriebenen Fehlern.

Greetz, HB
 
OP
dma67
Hallo,
sags bloss nicht, dass ich den Kernel nochmals backen muss:

NOW MAKE SURE THAT THE FOLLOWING CAPABILITIES ARE *NOT* ENABLED!!
NOW MAKE SURE THAT THE FOLLOWING CAPABILITIES ARE *NOT* ENABLED!!
NOW MAKE SURE THAT THE FOLLOWING CAPABILITIES ARE *NOT* ENABLED!!

~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define CONFIG_IEEE80211 1
~~~~~~~~~~~~~~~~~~~~~~~~~~~
If ieee80211 support is built into your kernel (available in 2.6.14 and later),
you must de-configure that capability and rebuild your kernel before
upgrading ieee80211 and ipw2200 drivers. In 2.6.x, this is *dis*abled via
menuconfig (enter n for no):

Networking ->
Networking support (NET [=y]) ->
Generic IEEE 802.11 Networking Stack

NOTE: If ieee80211 is supported as a module (this would show up as
#define CONFIG_IEEE80211_MODULE 1), you do not need to rebuild your kernel,
but you will need to remove the binary module and relevant include files
(see UPGRADING FROM PRIOR VERSIONS, below).


~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define CONFIG_IPW2200 1
~~~~~~~~~~~~~~~~~~~~~~~~~~~
If ipw2200 support is built into your kernel (available in 2.6.14 and later),
you must de-configure that capability and rebuild your kernel before
upgrading ieee80211 and ipw2200 drivers. In 2.6.x, this is *dis*abled via
menuconfig (enter n for no):

Device Drivers ->
Network device support ->
Network device support (NETDEVICES [=y]) ->
Wireless LAN (non-hamradio) ->
Intel PRO/Wireless 2200BG and 2915ABG...

NOTE: If ipw2200 is supported as a module (this would show up as
#define CONFIG_IPW2200_MODULE 1), you do not need to rebuild your kernel,
but you will need to remove the binary module and relevant include files
(see UPGRADING FROM PRIOR VERSIONS, below).

Lässt sich das nicht vermeiden???? Das ist ech S...e. ENDLICH sehe ich meine Akkuanzeige und die Töne habe ich meinem Asus auch entlockt... Was ist mit der Alternative "you do not need to rebuild..."
das verstehe ich nicht. Und ich Dackel habe es mitkompiliert. Andererseits - da muss man ja jedes HowTo von seiner Hardware gelesen haben bevor man da was macht, und das stimmt gar nicht mit dem, was da angeboten wird.... Traurig :-(

gruß
daius

Nachtrag

If ipw2200 is supported as a module jetzt sehe ich das, ich hab es kompiliert, nicht als Modul... Also muss ich von Anfang an alles machen.
 
Keine Sorge, dabei werden unveränderte Teile nicht neu kompiliert sondern übernommen. Es geht also bedeutend schneller als beim ersten Mal. :)

Greetz, HB
 
OP
dma67
Kernel-Compilieren die ipw2200-Unterstützung explizit ausschalten(!),

Hallo, der Kampf geht weiter.
Ich habs neu kompiliert - ohne die besagten Module. Die Karte wurde ebenfalls erkannt, die Schnittstelle tauchte (im Kinternet) endlich auf . Aber die Freude dauerte kurz. Mit WEP oder WPA keine Chance - ohne verschlüsselung gehts.

Code:
eth1      IEEE 802.11g  ESSID:"SeeroseHotSpot"
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:03:C9:7D:5D:85
          Bit Rate=54 Mb/s   Tx-Power=20 dBm
          Retry limit:7   RTS thr:off   Fragment thr:off
          Encryption key:off
          Power Management:off
          Link Quality=91/100  Signal level=-38 dBm  Noise level=-87 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:110   Missed beacon:0

Wireless Tools sind installiert,Schlüssel KORREKT eingegeben etc.

#dmesg liefert

Code:
ieee80211_crypt_wep: disagrees about version of symbol ieee80211_register_crypto_ops
ieee80211_crypt_wep: Unknown symbol ieee80211_register_crypto_ops
ieee80211_crypt_wep: disagrees about version of symbol ieee80211_unregister_crypto_ops
ieee80211_crypt_wep: Unknown symbol ieee80211_unregister_crypto_ops
ieee80211_crypt_wep: disagrees about version of symbol ieee80211_register_crypto_ops
ieee80211_crypt_wep: Unknown symbol ieee80211_register_crypto_ops
ieee80211_crypt_wep: disagrees about version of symbol ieee80211_unregister_crypto_ops
ieee80211_crypt_wep: Unknown symbol ieee80211_unregister_crypto_ops
SFW2-INext-DROP-DEFLT IN=eth0 OUT= MAC= SRC=192.168.2.2 DST=224.0.0.251 LEN=103 TOS=0x00 PREC=0x00 TTL=255 ID=3 DF PROTO=UDP SPT=5353 DPT=5353 LEN=83
ieee80211_crypt_wep: disagrees about version of symbol ieee80211_register_crypto_ops
ieee80211_crypt_wep: Unknown symbol ieee80211_register_crypto_ops
ieee80211_crypt_wep: disagrees about version of symbol ieee80211_unregister_crypto_ops
ieee80211_crypt_wep: Unknown symbol ieee80211_unregister_crypto_ops
ieee80211_crypt_wep: disagrees about version of symbol ieee80211_register_crypto_ops
ieee80211_crypt_wep: Unknown symbol ieee80211_register_crypto_ops
ieee80211_crypt_wep: disagrees about version of symbol ieee80211_unregister_crypto_ops
ieee80211_crypt_wep: Unknown symbol ieee80211_unregister_crypto_ops
ieee80211_crypt_wep: disagrees about version of symbol ieee80211_register_crypto_ops
ieee80211_crypt_wep: Unknown symbol ieee80211_register_crypto_ops
ieee80211_crypt_wep: disagrees about version of symbol ieee80211_unregister_crypto_ops
ieee80211_crypt_wep: Unknown symbol ieee80211_unregister_crypto_ops


Eine Idee?
 
OP
dma67
Code:
~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define CONFIG_CRYPTO 1
#define CONFIG_CRYPTO_ARC4(_MODULE) 1
#define CONFIG_CRC32(_MODULE) 1
~~~~~~~~~~~~~~~~~~~~~~~~~~~
ipw2200 uses the WEP encryption and decryption algorithms provided
by the Linux kernel.  To use WEP you must enable the Crypto library support
(CONFIG_CRYPTO) and the ARC4 cipher algorithm (CONFIG_CRYPTO_ARC4) via:

        Cryptographic options ->
                ARC4 cipher algorithm

You also need to enable the CRC32 (CONFIG_CRC32) algorithm via:

        Library routines ->
                CRC32 functions


~~~~~~~~~~~~~~~~~~~~~~~~~~~
#define CONFIG_CRYPTO_MICHAEL_MIC(_MODULE) 1
#define CONFIG_CRYPTO_AES_586(_MODULE) 1
~~~~~~~~~~~~~~~~~~~~~~~~~~~
If you wish to enable (optional) WPA support, you also need to enable the
following Crypto library modules (in addition to those required for WEP above):

        Cryptographic options ->
                Michael MIC keyed digest algorithm
                AES cipher algorithms (i586)

Ich habe es gecheckt, bevor ich kompilierte. Kann ich das jetzt nachträglich checken, was "drin" ist? Sonst sind aller guten Dinge drei ;-)

Mir fällt noch was auf.
Ich habe mit Suchfunktion nach ieee80211_crypt_wep*.* gesucht.
Es sind im Verzeichnis

/lib/modules/2.6.14.4-default/net/ieee80211
/lib/modules/2.6.14.4-default/kernel/net/ieee80211

verschiedene

ieee80211_crypt.ko
ieee80211_crypt_wep.ko
Im "kernel" verzeichnis sind die von gestern, also die, die ich mitkompiliert habe. Im "net "sind es die neueren.
Darf man die einfach umkopieren?

Wieso eigentlich 2 Mal( dh in 2 Verzeichnissen)?
Ich mach ein screen
wep.png



YEAAAAAHHHHH!!!!!!!! ES LÄUFT!!!!!!!!!!!!!!!!! :-D (mit WEP)


Einfach kopieren die (neueren) Module aus

/lib/modules/2.6.14.4-default/net/ieee80211

nach

/lib/modules/2.6.14.4-default/kernel/net/ieee80211

& Restart


Jetzt nur noch WPA....
 
Woran hapert das?
Das Modul ipw2200 kennt eine Option namens hwcrypto, deren Wert 0 oder 1 sein kann. Je nach diesem Wert wird die Verschlüsselung per Software von der CPU oder direkt per Hardware vom Chip selbst übernommen. Manchmal hilft ein Umstellen (modprobe ipw2200 hwcrypto=0).

Greetz, HB
 
OP
dma67
Code:
# iwconfig

Warning: Driver for device eth1 has been compiled with version 19
of Wireless Extension, while this program supports up to version 18.
Some things may be broken...

eth1      IEEE 802.11g  ESSID:"SeeroseHotSpot"
          Mode:Managed  Frequency:2.462 GHz  Access Point: 00:03:C9:7D:5D:85
          Bit Rate=54 Mb/s   Tx-Power=20 dBm
          Retry limit:7   RTS thr:off   Fragment thr:off
          Encryption key:3132-3334-3536-3738-3971-7765-72   Security mode:open
          Power Management:off
          Link Quality=87/100  Signal level=-42 dBm  Noise level=-88 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Vielleicht da! Wat nu mit den Wireless Extensions....?
 
Der Kernel 2.6.14 enthält WE 19, iwconfig stammt aus einer älteren Version der Wireless Tools, kein Anlass zur Sorge.

Greetz, HB
 
Oben