[RESOLU] iwl3945 + wicd + Debian testing 2.6.24-1-amd64

Hello,

J’ai un problème avec mon wifi (j’ai bien peur que je n’aurai jamais de wifi stable… c’est comme flash :/).

J’ai dernièrement fait l’update sur le noyeau 2.6.24 et le module ipw3945 n’est plus packager pour ce noyau au profit de iwl3945.

J’ai donc installé le firmware iwl et déinstallé tout ce qui touchait à ipw très heureux de m’en débarrasser (la bête n’a jamais été très stable). Mais autant dire que si ipw était instable iwl est inutilisable sur mon portable!

J’ai pourtant bien l’interface qui est détecté:

area42:/home/simon# iwconfig 
lo        no wireless extensions.

eth0      no wireless extensions.

irda0     no wireless extensions.

wmaster0  no wireless extensions.

wlan0     IEEE 802.11g  ESSID:"MyPlace"  
          Mode:Managed  Frequency:2.417 GHz  Access Point: Not-Associated   
          Tx-Power=15 dBm   
          Retry min limit:7   RTS thr:off   Fragment thr=2346 B   
          Encryption key:off
          Link Quality:0  Signal level:0  Noise level:0
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

area42:/home/simon# lsmod | grep iwl
iwl3945                97640  0 
firmware_class         15104  2 pcmcia,iwl3945
mac80211              132236  1 iwl3945

Et sur wicd j’ai eux quelque seconde les réseau wifi détecté… et puis plus rien :frowning:.

Si je fait un rafraîchissement dans wicd de la liste des réseau ma souris freez durant ~20s.

Et surtout dans les log j’ai un nombre impressionnant d’erreurs d’iwl

Apr  2 22:05:15 area42 kernel: iwl3945: Microcode SW error detected.  Restarting 0x82000008.
Apr  2 22:05:15 area42 kernel: iwl3945: Error Reply type 0x00000005 cmd REPLY_TX (0x1C) seq 0x0000 ser 0x0000004B
Apr  2 22:05:15 area42 kernel: iwl3945: Error setting new configuration (-5).
Apr  2 22:05:16 area42 kernel: iwl3945: Can't stop Rx DMA.
Apr  2 22:05:16 area42 kernel: iwl3945: Microcode SW error detected.  Restarting 0x82000008.
Apr  2 22:05:16 area42 kernel: iwl3945: Error Reply type 0x00000005 cmd REPLY_TX (0x1C) seq 0x0000 ser 0x0000004B
Apr  2 22:05:16 area42 kernel: iwl3945: Error setting new configuration (-5).
Apr  2 22:05:17 area42 kernel: iwl3945: Can't stop Rx DMA.

Apparement le bug vient du firmware: intellinuxwireless.org/bugzi … gi?id=1593

Peut être le même problème: forums.debian.net/viewtopic.php? … 5d9267f266

Si quelqu’un à une solution pour faire “simplement” que ça marche se serrait très cool :slightly_smiling:

Merci

une fois que tu as fait : [code]aptitude install firmware-iwlwifi

modprobe iwl3945[/code]il se peut que le wifi ne marche pas.

C’était mon cas : viewtopic.php?f=3&t=12491

si tu as ce genre de réponse à cette commande :# iwlist wlan0 scan wlan0 Interface doesn't support scanning : Network is down
fait # ifconfig wlan0 up
chez moi cela a réglé le problème.

Vérifie aussi que ton wifi est activé manuellement (touche fn +…)

Hello,

Merci de ton aide.

Le module est chargé, je l’ai si je fait un lsmod. Et en plus il me fait ces erreures dans syslog…

Apr 2 22:05:15 area42 kernel: iwl3945: Microcode SW error detected. Restarting 0x82000008. Apr 2 22:05:15 area42 kernel: iwl3945: Error Reply type 0x00000005 cmd REPLY_TX (0x1C) seq 0x0000 ser 0x0000004B Apr 2 22:05:15 area42 kernel: iwl3945: Error setting new configuration (-5). Apr 2 22:05:16 area42 kernel: iwl3945: Can't stop Rx DMA.

L’interface est bien “up” vu que je l’ai dans iwconfig… et là en plus je viens de voir qu’elle était associé à un ESSID quand j’ai fait le post.

Je vais vérifier ce soir si faire couper l’interface et la remonter fonctionne.

Une idée : :bulb:

Quand j’avais mon portable sous sid donc avec driver IWL3945 l’interface réseau se nommait WLAN0 …
J’ai reinstaller une testing donc changement de module (IPW3945) et l’interface est passée à ETH0… c’est peut être le cas chez toi aussi, et tu n’as peut être pas changé l’interface sans fil dans wicd.

C’est surement autre chose mais bon on sait jamais :mrgreen:

Non malheureusement ce n’est pas ça j’ai bien l’interface wifi sur wlan0 lorsque je fait un iwconfig.

harrrg je trouve pas ça m’énerve je viens d’investir dans un nouveau routeur wifi qui marche du tonnerre de dieux et je peux même pas en profiter :frowning: (mais le problème vient pas du routeur… j’ai testé également avec l’ancien et mes autres pc se connectent très bien).

tu as installé coimment tes firmware ?
si c’est avec apt-get install firmware-iwlwifi, sauves le fichier iwl3945*.ucode que tu as dans /lib/firmware, et essayes de mettre à la place celui que tu trouveras dans cette archive là:
intellinuxwireless.org/iwlwifi/d … 14.1.5.tgz
sinon, fais l’inverse, et installes firmware-iwlwifi.

Je ai installé via aptitude install firmware-iwlwifi j’essaie l’autre méthode ce soir.

merci beaucoup pour l’aide

J’ai trouvé… Tout est de ma faute désolé :blush:

Donc en faite j’avais des options sécifiques dans /etc/modprobe.d/iwl3945 qui datait d’un essais d’installation avant le kernel 2.6.42 (je n’avais pas compris alors que mon noyau était incompatible, oui parfois lire la doc c’est trop demandé…).

J’ai entièrement supprimé ce satané fichier et miracle CA FONCTIONNE!

Donc voilà… c’est tout con. Heureusement qu’il reste encore des humains pour faire planter les PC ce serrait presque chiant sur debian autrement :wink:.

Un grand merci à vous tous.

J’étais étonné, je viens d’installer un noyau 2.6.24-1 avec une carte 3945 et je n’ai eu aucun souci. Le WPA marche parfaitement. À titre indicatif, j’ai mis dans mon fichier interfaces

allow-hotplug wlan0 iface wlan0 inet dhcp pre-up iwconfig wlan0 essid ESSID pre-up wpa_supplicant -Dwext -iwlan0 -c/etc/wpa.conf & post-down pkill -TERM wpa_supplicant
et ça roule avec

network={ ssid="ESSID" proto=WPA psk="motdepasse" } dans /etc/wpa.conf

et concrètement ça correspond à quoi ces paramêtres ? :mrgreen:

[quote=“Morphine”]et concrètement ça correspond à quoi ces paramêtres ? :mrgreen:[/quote]A une configuration plus qu’antédiluvienne et super statique du wifi.

Ah bon. :open_mouth:
Ben je fais un 'tit UP et j’ouvre un autre fil, parce que chez moi ça marche pas.

J’ai exactement la même config, le même problème, les mêmes erreurs, et pourtant je n’ai pas de fichier iwl3945 dans /etc/modprobe.d/ :frowning:

J’expose le problème sur ce nouveau fil:
[ul]http://forum.debian-fr.org/viewtopic.php?t=13749[/ul]

Merci !

Sylvain

Tu te moques là non :slightly_smiling:

[Morphine: matt n’a pas tout à fait tort dans le sens où je court-circuite complètement ifup/down dans la gestion de la connexion en faisant tout moi-même. Intérêt: Je sais ce que je fais, et si ça ne marche pas, j’ai une explication claire en général.]

Je conteste le terme «super statique», plus souple, y’a pas!

Tu te moques là non :slightly_smiling:[/quote] Moi ? Jamais.quote=“fran.b”
Je conteste le terme «super statique», plus souple, y’a pas![/quote] Incompatibles avec wicd ou network manager. Tu fais comment du roaming (=> j’arrive au mcDo, je clique, je suis connecté) ?

Tu te moques là non :slightly_smiling:[/quote] Moi ? Jamais.quote=“fran.b”
Je conteste le terme «super statique», plus souple, y’a pas![/quote] Incompatibles avec wicd ou network manager. Tu fais comment du roaming (=> j’arrive au mcDo, je clique, je suis connecté) ?[/quote]
wicd cekoisa? Exact… Au macdo, je fais un iwlist scan et je modifies, c’est pas moderne et user-friendly, ca!? :slightly_smiling:. Bon, tu as raison, j’ai une heure à perdre. Je vais me faire une petite formation ≤le WIFI moderne chez debian». Mais tu sais, je progresse, sur ma nouvelle machine j’ai un s2disk qui marche du feu de Dieu par contre, je me casse les dents sur ces foutus hotkeys! Tiens je vais faire un fil dessus…
[gagarine: dsl pour l’emprunt du fil]
[edit: j’ai oublié, utilises plutôt la syntaxe de Matt, sur le fond il a raison]

J’ai récupéré, je sais plus où, un petit script bash de connection wifi que j’ai arrangé à mon goût. Merci à l’auteur original.

Grosso modo, un script de connexion multi-interfaces /usr/local/bin/myconnect.sh, avec du tunneling optionnel

#!/bin/bash                                                                                                                                
sudo ifconfig wlan0 down
sudo ifconfig eth0 down
sudo ifconfig lo down
sudo ifconfig lo up

if [ $# -lt 1 ]; then
  echo
  echo "Lance une connexion definie dans ~/.ssh/config"
  echo "Usage: ${0##*/} interface [ma_connexion [sleep_before_ssh (sec)]]"
  echo
  echo "Interfaces disponibles : lo eth0 wlan0"
  echo
  echo "Connexions disponibles :"
  egrep "^Host" ~/.ssh/config | cut -f2 -d" " | grep -v "\*"
  echo
else
    test=true;
    case $1 in
        eth0 )
            sudo ifup $1
            ;;
        wlan0 )
            # La ligne suivante, c'est pour les LED wifi réticentes :)
            sudo echo 1 > /proc/acpi/asus/wled
            sudo ifconfig $1 up
            /usr/local/bin/mywificonnect.sh $1
            sudo ifconfig $1 down
            sudo echo 0 > /proc/acpi/asus/wled
            ;;
        * )
            echo "Interface inconnue"
            test=false
            ;;
    esac
    if [ $# -gt 2 ] && [ $test ] ; then sleep $3; fi
    if [ $# -gt 1 ] && [ $test ] ; then ssh $2; fi
fi

et un script de connection spécial wifi /usr/local/bin/mywificonnect.sh, éventuellement appelé du précédent, qui va faire le iwlist puis le iwconfig choisi

#!/bin/bash                                                                                                                                
LOGFILE="/tmp/wifi.log"
TMPFILE="/tmp/essid.tmp"
LSTFILE="/tmp/essid.lst"
Eth=$1

## Detection des essid et des clef qui vont avec dans le fichier LSTFILE                                                                   
sudo iwlist $Eth scan 2>/dev/null | cut -c21- | egrep "^ESSID|^Encryption|^Quality|^Address|^Channel" | cut -d"=" -f2 | cut -d"\"" -f2 | sed -e "s/^Encryption\ key\://" | sed -e "s/^Address\:\ //" | sed -e "s/^Channel\://" | cut -d" " -f1 > $TMPFILE
MaxLst=`wc -l < $TMPFILE`
MaxLst=$(($MaxLst-2))
Hidden=0
echo > $LSTFILE
i=1
j=1
while [ "$i" -le "$MaxLst" ]
do
    Address=`sed -n $i'p' $TMPFILE`
    Ssid=`sed -n $(($i+1))'p' $TMPFILE`
    Channel=`sed -n $(($i+2))'p' $TMPFILE`
    Encrypt=`sed -n $(($i+3))'p' $TMPFILE`
    Quality=`sed -n $(($i+4))'p' $TMPFILE`
    if [ "$Ssid" = "<hidden>" ]; then
        Hidden=$(($Hidden+1))
    else
        echo "$Quality%$Ssid%$Encrypt%$j%$Address%$Channel" >> $LSTFILE
        j=$(($j+1))
    fi
    i=$(($i+5))
done

## Choix du reseau, avec Essid=essid et Key=on/off                                                                                         
echo -e "\nDetection des reseau wifi :"
echo -e "\nNUM\tKEY\tQUALITY\tESSID"
sort -r $LSTFILE | sed -e "s/^\([^%]*\)\%\([^%]*\)\%\([^%]*\)\%\([^%]*\)\%.*/\4\\t\3\\t\1\\t\2/"
echo -en "\nQuel reseau ? [1-$(($j-1))]"
read Choix
Essid=`sed -n $(($Choix+1))'p' $LSTFILE | cut -d'%' -f2`
Key=`sed -n $(($Choix+1))'p' $LSTFILE | cut -d'%' -f3`
Address=`sed -n $(($Choix+1))'p' $LSTFILE | cut -d'%' -f5`
Channel=`sed -n $(($Choix+1))'p' $LSTFILE | cut -d'%' -f6`
echo -e "\nVous avez choisis le reseau $Essid"

## Création du fichier LOGFILE                                                                                                             
echo -e "########## Fichier $LOGFILE ##########" > $LOGFILE
echo -e "\n## Votre interface wifi est $Eth, vous voulez vous connecter au reseau $Essid avec key=$Key ##" >> $LOGFILE
echo -e "\n## Commande iwconfig $Eth essid $Essid channel $Channel ap $Address ##" >> $LOGFILE
sudo iwconfig $Eth essid $Essid channel $Channel ap $Address >> $LOGFILE 2>&1
err=$?
if [ "$err" = 0 ]; then
    case "$Key" in
        on ) echo -e "\nClef wep ?"; read Key; sudo iwconfig $Eth key $Key >> $LOGFILE 2>&1;;
        off ) echo -e "\nPas besoin de clef wep !";;
        * ) echo " ";;
    esac
    echo -e "\n## Commande dhclient (Pour la connexion en Dhcp) ##" >> $LOGFILE
    sudo dhclient $Eth >> $LOGFILE 2>&1
    err=`cat $LOGFILE | grep -c "No DHCPOFFERS"`
else
    break
fi

## Message de réussite ou d'echec                                                                                                          
if [ "$err" = 0 ]; then
    IP=`sudo ifconfig $Eth | grep "inet adr" | cut -d':' -f2 | cut -d'B' -f1` ## On trouve l'adresse ip                                    
    echo -e "\nVous être maintenant connecté à l'essid $Essid avec l'adresse ip $IP"
    echo "Aurevoir !"
else
    while [ "$err" != 0 ]; do
        echo -en "\nIl il y a eu une érreur, voulez vous voir le fichier de log ? [O/N]"
        read log
        case "$log" in
            o | O ) clear; cat $LOGFILE && err=0;;
            n | N ) echo -e "\nAurevoir !" && err=0;;
            * ) echo -e "\nJe n'ai pas compris, vous pouvez répeter ?";;
        esac
    done
fi

## Nettoyage                                                                                                                               
rm $LOGFILE $LSTFILE $TMPFILE

Je suis pas un pro du scripting bash, arrangez à votre sauce :slightly_smiling:

Petit debug pour /usr/local/bin/myconnect.sh
Pour le shutdown initial des services réseaux :

sudo ifdown wlan0
sudo ifconfig wlan0 down
sudo echo 0 > /proc/acpi/asus/wled
sudo ifdown eth0
sudo ifconfig eth0 down
sudo ifdown lo
sudo ifconfig lo down
sudo ifconfig lo up

Pour l’activation Wifi :

      wlan0 )
            # La ligne suivante, c'est pour les LED wifi réticentes :)
            sudo echo 1 > /proc/acpi/asus/wled
            sleep 2
            sudo ifconfig $1 up
            /usr/local/bin/mywificonnect.sh $1
            ;;

Petit debug pour /usr/local/bin/mywificonnect.sh
L’entete de liste correcte :

echo -e "\nNUM\tQUALITY\tKEY\tESSID"

Le champ correct pour la clé :

Key=`sed -n $(($Choix+1))'p' $LSTFILE | cut -d'%' -f1`

Pour la clé WEP, il faut entrer s:lepassword si lepassword est de l’ASCII.
Le WPA ne semble pas marcher directement avec iwconfig, peut-être faut-il étendre le script avec les fonctionnalités wpasupplicant.

J’ai trouvé ce post extrêmement intéressant. Merci beaucoup!
Pret immobilier

pense a mettre la coche plutot que le mot résolu (même si c’est déjà sympa dis avoir pensé)