# Intel Wireless WiFi Link 3945ABG

## Eisenhorn

Hallo,

Ich habe ein Problem mit dem "Intel Wireless WiFi Link 3945ABG" Modul. Ich habe zur Verwendung der Wirelesskarte in eine WPA2 netzwerk den Treiber iwl3945 direkt mit dem Kernel kompiliert. 

Nun habe ich jedoch das Problem, dass ifconfig kein wlan Interface anzeigt.

ifconfig wlan0 up ergibt folgendes

```

SIOCSIFFLAGS: Datei oder Verzeichnis nicht gefunden

```

dmesg zeigt beüglich des Treibers folgendes an

```
[    0.583941] iwl3945: Intel(R) PRO/Wireless 3945ABG/BG Network Connection driver for Linux, in-tree:s

[    0.584455] iwl3945: Copyright(c) 2003-2010 Intel Corporation

[    0.584773] iwl3945 0000:06:00.0: power state changed by ACPI to D0

[    0.585109] iwl3945 0000:06:00.0: power state changed by ACPI to D0

[    0.585855] iwl3945 0000:06:00.0: PCI INT A -> GSI 17 (level, low) -> IRQ 17

[    0.586186] iwl3945 0000:06:00.0: setting latency timer to 64

[    0.640143] iwl3945 0000:06:00.0: Tunable channels: 13 802.11bg, 23 802.11a channels

[    0.640631] iwl3945 0000:06:00.0: Detected Intel Wireless WiFi Link 3945ABG

[    0.641061] iwl3945 0000:06:00.0: irq 46 for MSI/MSI-X

[   12.794502] iwl3945 0000:06:00.0: iwlwifi-3945-2.ucode firmware file req failed: -2

[   12.795905] iwl3945 0000:06:00.0: iwlwifi-3945-1.ucode firmware file req failed: -2

[   12.795910] iwl3945 0000:06:00.0: Could not read microcode: -2

[ 1221.929645] iwl3945 0000:06:00.0: iwlwifi-3945-2.ucode firmware file req failed: -2

[ 1221.931161] iwl3945 0000:06:00.0: iwlwifi-3945-1.ucode firmware file req failed: -2

[ 1221.931166] iwl3945 0000:06:00.0: Could not read microcode: -2

[ 2135.017775] iwl3945 0000:06:00.0: iwlwifi-3945-2.ucode firmware file req failed: -2

[ 2135.019269] iwl3945 0000:06:00.0: iwlwifi-3945-1.ucode firmware file req failed: -2

[ 2135.019274] iwl3945 0000:06:00.0: Could not read microcode: -2

[ 2144.341002] iwl3945 0000:06:00.0: iwlwifi-3945-2.ucode firmware file req failed: -2

[ 2144.342688] iwl3945 0000:06:00.0: iwlwifi-3945-1.ucode firmware file req failed: -2

[ 2144.342693] iwl3945 0000:06:00.0: Could not read microcode: -2

```

lsmod zeigt nur ein Mpdul an, was ja ok sein sollte, da der iwl3945 in den Kernel kompiliert ist.

```

Module                  Size  Used by

nvidia               9585400  26

```

Zur Verwaltung verwende ich den wpa_supplicant

```
/etc/init.d/wpa_supplicant start

 * Starting WPA Supplicant Daemon ...

Could not set interface wlan0 flags: No such file or directory

Failed to initialize driver interface

 * start-stop-daemon: failed to start `/usr/sbin/wpa_supplicant'

 * Failed to start wpa_supplicant                                                                                                                           [ !! ]

 * ERROR: wpa_supplicant failed to start

```

Kann mir jemand vielleicht einen Hinweis geben was ich übersehne haben könnte?

Mfg

----------

## bas89

Ein simples

```
emerge net-wireless/iwl3945-ucode

```

wird zum Erfolg verhelfen!  :Smile: 

----------

## lukasletitburn

Habe ich getan. Obwohl das schon installiert war und es schonmal ging.

Nun habe ich noch diese Fehlermeldung bekommen.

```
Prozess kann nicht gestartet werden: Keine Verbindung zu Klauncher: Message did not receivce a reply (timeout by message bus)
```

Ich sollte vllt erwähnen das ich meine Subnetzmaske zwischendurch auf 255.255.255.224 von 255.255.255.240 gesetzt habe.

----------

## bas89

Ich würde ja den iwl3945 als Modul lassen, habe ich auf meinem Laptop auch so gemacht. Der NetworkManager wird sich schon um das Modul kümmern und kann dem auch womöglich noch Optionen mitgeben. Das wlan0-Gerät ist jetzt da? Woher kommt die von dir genannte Fehlermeldung? Klingt so, als ob du kein lo-Gerät hast, weshalb dbus sich nicht unterhalten kann. Helfen würde womöglich ein

```
rc-update add net.lo boot
```

und ein anschließender Reboot.

Und wenn man WLAN komfortabel nutzen möchte, lohnt ein Blick in die Installation des NetworkManagers. KDE kommt inzwischen sehr gut mit dem NetworkManager klar (Paket kde-misc/knetworkmanager).

----------

## lukasletitburn

Das habe ich schon alles gemacht.

Wenn ich ein offenes WLAN habe ohne Verschlüsselung geht es.

Sobald es aber verschlüsselt ist und ich den Code eingebe lässt er mich nicht mehr OK drücken.

----------

## lukasletitburn

Also ein Test hat ergeben das er definitiv nur Probleme mit der Verschlüsselung hat.

Er sagte mir auch das er nicht auf

```
 /etc/wpa_supplicant/wpa_supplicant.conf
```

 zugreifen kann da nicht vorhanden.

Jedoch ging es doch schon. Deshalb verstehe ich nicht wieso er nun nicht mehr geht.

----------

## bas89

Dann könntest du ja mal wpa_supplicant neu bauen...

```
emerge -1 net-wireless/wpa_supplicant 
```

----------

## lukasletitburn

So jetzt habe ich ein noch viel größeres Problem.

er sagt mir 

```
/etc/wpa_supplicant/wpa_cli.sh 
```

muss upgedatet werden.

Ich habe echt Null Plan wie ich das richtig mache.

mit dispatch-conf wäre eine Lösung aber ich weiss nicht was der richtige Weg hier ist.

```
--- /etc/wpa_supplicant/wpa_cli.sh      2011-07-09 10:06:51.000000000 +0000

+++ /etc/wpa_supplicant/._cfg0000_wpa_cli.sh    2011-07-10 19:35:07.000000000 +0000

@@ -3,7 +3,7 @@

 # Written by Roy Marples <uberlord@gentoo.org>

 # Distributed under the terms of the GNU General Public License v2

 # Alternatively, this file may be distributed under the terms of the BSD License

-# $Header: /var/cvsroot/gentoo-x86/net-wireless/wpa_supplicant/files/wpa_cli.sh,v 1.2 2011/07/07 07:54:55 gurligebis Exp $

+# $Header: /var/cvsroot/gentoo-x86/net-wireless/wpa_supplicant/files/wpa_cli.sh,v 1.3 2011/07/08 07:06:21 gurligebis Exp $

 

 if [ -z "$1" -o -z "$2" ]; then

        logger -t wpa_cli "Insufficient parameters"

@@ -29,7 +29,9 @@

                EXEC="${EXEC} start"

                ;;

        DISCONNECTED)

-               EXEC="${EXEC} stop"

+               # Deactivated, since stopping /etc/init.d/net.wlanX

+               # stops the network completly.

+               EXEC="false ${EXEC} stop"

                ;;

        *)

                logger -t wpa_cli "Unknown action ${ACTION}"

@@ -41,6 +43,5 @@

 # stopping the interface and a background process - like wpa_cli - is.

 export IN_BACKGROUND=true

 

-# Removed, since stopping /etc/init.d/net.wlanX stops the network completly.

-#logger -t wpa_cli "interface ${INTERFACE} ${ACTION}"

-#${EXEC} || logger -t wpa_cli "executing '${EXEC}' failed"

+logger -t wpa_cli "interface ${INTERFACE} ${ACTION}"

+${EXEC} || logger -t wpa_cli "executing '${EXEC}' failed"

>> (1 of 1) -- /etc/wpa_supplicant/wpa_cli.sh

>> q quit, h help, n next, e edit-new, z zap-new, u use-new

   m merge, t toggle-merge, l look-merge:  

```

Ich weiss nicht was ich machen soll damit es wieder geht.

----------

## Josef.95

Hmm.. handelt es sich bei Eisenhorn und lukasletitburn um die selbe Person?   :Surprised: 

----------

## lukasletitburn

Nein!

Nur ich weiss wirklich nicht wie ich die Datei richtig update. Ich will ja das mein System danach wieder funktioniert und nicht kaputt ist.

----------

## astaecker

Siehe Gentoo Wiki.

----------

## Eisenhorn

Hi,

Erst einmal Danke für die vielen schnellen Antworten. Und nein ich bin nicht lukasletitburn  :Smile: .

Der erste Tipp hat bei mir gleich geholfen. Jedoch bekomme ich einfach keine IP. Am Router sehe ich meinen Laptop aber auch ohne IP. In Linux nutze ich unter KDE den wpa_supplicant client (der hat root rechte) und bekomme auch keine IP. Genauso logischer weise wenn ich ifconfig verwende.

Das file /etc/conf.d/net

```

# This blank configuration will automatically use DHCP for any net.*

# scripts in /etc/init.d.  To create a more complete configuration,

# please review /usr/share/doc/openrc/net.example and save your configuration

# in /etc/conf.d/net (this file :]!).

config_eth0=( "dhcp" )

# wpa_supplicant gegenï¿½ber wireless-tools bevorzugen

modules=( "wpa_supplicant" )

# Es ist wichtig, dass wir wpa_supplicant mitteilen welcher Treiber

# verwendet werden soll, da es nicht sehr gut raten kann.

wpa_suppclient_wlan0="-Diwl3945"

config_wlan0=("dhcp")

```

iwlist Auszug:

```
 Cell 09 - Address: 00:1C:10:12:87:D6

                    Channel:8

                    Frequency:2.447 GHz (Channel 8)

                    Quality=58/70  Signal level=-52 dBm

                    Encryption key:on

                    ESSID:"EISENHORN"

                    Bit Rates:1 Mb/s; 2 Mb/s; 5.5 Mb/s; 11 Mb/s; 18 Mb/s

                              24 Mb/s; 36 Mb/s; 54 Mb/s

                    Bit Rates:6 Mb/s; 9 Mb/s; 12 Mb/s; 48 Mb/s

                    Mode:Master

                    Extra:tsf=000000000c512184

                    Extra: Last beacon: 2988ms ago

                    IE: Unknown: 000947414C4158594E4554

                    IE: Unknown: 010882848B962430486C

                    IE: Unknown: 030108

                    IE: Unknown: 2A0100

                    IE: Unknown: 2F0100

                    IE: IEEE 802.11i/WPA2 Version 1

                        Group Cipher : TKIP

                        Pairwise Ciphers (2) : CCMP TKIP

                        Authentication Suites (1) : PSK

                    IE: Unknown: 32040C121860

                    IE: Unknown: DD06001018020000

                    IE: WPA Version 1

                        Group Cipher : TKIP

                        Pairwise Ciphers (2) : CCMP TKIP

                        Authentication Suites (1) : PSK

```

Das file /etc/wpa_supplicant.conf

```

# Die folgende Zeile nicht ï¿½ndern, sonst wird nichts funktionieren

ctrl_interface=/var/run/wpa_supplicant

# Sicherstellen, dass nur root die WPA Konfiguration lesen kann

ctrl_interface_group=0

# wpa_supplicant soll sich um scannen und AP Auswahl kï¿½mmern

ap_scan=1

network={

        ssid="EISENHORN"

        key_mgmt=WPA-PSK

        proto=WPA2

        pairwise=CCMP

        group=CCMP

        psk="XXXXXXXXXXXXXXXXXXXXXXXXXX"

        }

```

Hmmm jetzt sehe ich gerade 

```
 wpa_supplicant -Diwl3945 -iwlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

Unsupported driver 'iwl3945'.

```

 *Quote:*   

> 
> 
> usage:
> 
>   wpa_supplicant [-BddhKLqqstuvW] [-P<pid file>] [-g<global ctrl>] \
> ...

 

Der iwl3945 ist direkt in den Kernel eingebaut. Bleibt mir jetzt nur die Möglichkeit den ndiswrapper zu verwenden?

LG,

Eisenhorn

----------

## firefly

nein probiers mal mit -Dwext dann sollte es klappen.

mit dem -D parameter von wpa_supplicant gibst du nicht den geräte treiber an, der zur ansteuerung der hardware dient. Sondern einen "Treiber", welche von wpa_supplicant mitgeliefert wird. Dieser Treiber ist kein geräte Treiber sondern legt fest wie wpa_supplicant mit dem wlan device kommunizieren muss, damit WPA und co funktionieren.

----------

## Eisenhorn

Ahh danke für die Erklärung. Klappt jetzt, jedoch habe ich ein 192.168.0 Netz und das Wlan interface bekomm 81.200.64.185 (ist scheinbar eine Britische IP). Mir ist nicht ganz klar woher er die bezieht. 

Eine WAN karte habe ich nicht verbaut. Er erscheint jetzt auch nicht mehr am Router.

```
  Link encap:Ethernet  HWaddr 00:13:02:32:97:c2

          inet addr:81.200.64.185  Bcast:81.255.255.255  Mask:255.0.0.0

          UP BROADCAST MULTICAST  MTU:1500  Metric:1

          RX packets:0 errors:0 dropped:0 overruns:0 frame:0

          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0

          collisions:0 txqueuelen:1000

          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

```

----------

## Eisenhorn

Hmm ich habe jetzt den dhclient installiert. Mit dem bekomme ich jetzt eine IP. Ziehe ich das Kabel kommt er aber nicht ins netzt. 

Könnte mir jemand erkären wie ich am besten vorgeheum lan und wlan parellel zu betreiben?

----------

