Configuration (particulière ?) du WiFi

Je viens de reprendre un vieux Pi (modèle B?) datant de plusieurs années. J’ai effacé la carte mémoire et j’ai fait une image (avec les beaux outils modernes !) avec le dernier Raspbian. J’avais une clé WiFi qui se connectait à mon réseau local, mais maintenant, je n’y arrive plus ! Qu’y a-t-il de particulier ? Le réseau est « protégé » par une clé WEP !

En cherchant bien sur Google, j’ai trouvé que dans le fichier wpa_supplicant.conf, il fallait préciser key_mgmt=NONE, mais mon pi ne se connecte pas.

La configuration de mon point d’accès date d’il y a des années, et je me suis aperçu (par hasard) qu’il était réglé sur la canal 6 : je crois que c’est « interdit » en France, mais tous les machins (téléphones, tablettes, portables) qui ont essayé de s’y connecter ont toujours réussi. Je pense donc que ça n’est qu’une question de paramètres.

Quelqu’un peut-il m’aider .

Voici à quoi ressemble mon wpa_supplicant.conf :
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1

network={
ssid=« MonSSID »
psk=« ma cle secrète (que des chiffres) »
key_mgmt=NONE
}

Merci d’avance.

hello,

https://doc.ubuntu-fr.org/wifi

cette page devrait t’aider à :

  • vérifier que elle est bien connecté sur l usb ( enfin plutôt reconnu par le système via l’ usb )
    (lsusb)
  • qu’elle apparaît et qu’elle est activée
    (rfkill)
  • qu’elle fonctionne ( sudo iw dev wlan0 scan )

le seul truc qui manque ds ton wpa_supplicant.conf c’est la ligne avec le pays ( country=FR ) mais ça devrait fonctionner sans !

si la clé est reconnue par l’usb , il te manque peut être un driver; en cherchant avec la marque le type et/ou les ID usb ( les huit chiffres après « ID » sur la sortie de lsusb style ID 2357:0601 ) ds google ou
ds les paquets (apt-cache search wifi | grep firmware)

bon courage !

Salut, bof, et merci de ta réponse.

J’ai beaucoup à dire : dès que j’ai vu ta réponse, hier, j’ai su que ton hypothèse n’était pas la bonne, car j’ai un autre réseau wifi auquel je me suis déjà connecté.

Pourquoi ne t’ai-je pas dit ça hier soir ? Par ce que je n’ai pas réussi à m’y connecter !

Je pense que j’ai mis une grosse garouille dans mon pi, on va voir ça. Mais en attendant, j’ai pu me connecter à ce réseau, en cherchant sur la toile un modèle de fichier wpa_suppluicant.conf : voici à qui ressemble celui qui marche avec l’autre réseau :

ctrl_interface=/var/run/wpa_supplicant
update_config=1
country=fr

#network={
# ssid="MARCHE-PAS"
# wep_key0="clé faite de 26 chiffres"
# key_mgmt=NONE
# auth_alg=SHARED
# group=WEP104
# group=WEP40
# psk="même clé"
\#}

network=(accolade ouvrante){
ssid="Marche"
# auth_alg=WPA
psk="clé de 20 caractères"
}

On peut voir que j’ai commenté ce qui ne marche pas, et décommenté ce qui marche.

Quant à la garouille, je pense qu’elle vient (au moins en partie) des essais que j’ai faits - et multipliés - en modifiant le wpa_…conf et en testant mes modifs avec la commande suivante (trouvée sur la toile) :

sudo wpa_supplicant -d -c/etc/wpa_supplicant/wpa_supplicant.conf -W -iwlan0

Le « -d » de cette commande liste toutes les actions faites par la routine « wpa_supplicant ». Je n’ai pas compris grand chose à ce que j’ai vu, et le pi ne s’est jamais connecté. Par contre, je pense que ça a laissé plusieurs dizaines de répertoires comme ceci :
/proc/970/task/970/net/dev_snmp6/wlan0
/proc/970/net/dev_snmp6/wlan0
/proc/971/task/971/net/dev_snmp6/wlan0
/proc/971/net/dev_snmp6/wlan0
/proc/987/task/987/net/dev_snmp6/wlan0
/proc/987/net/dev_snmp6/wlan0
/proc/988/task/988/net/dev_snmp6/wlan0
/proc/988/net/dev_snmp6/wlan0

(la liste commence à 1, mais il y a des trous…)
Je les ai trouvée en exécutant :

sudo find / -name wlan0

Il me parait évident que je peux les effacer, mais en attendant, je n’avance pas (le réseau auquel je me connecte est celui de ma box, celui que je veux est celui du routeur de mon réseau local).

Merci à ceux qui sont venus jusqu’ici, surtout s’ils peuvent m’aider encore un peu…

AMIcalement.

ok ! donc la clé fonctionne !

pour info le wpa_supplicant est normalement lancé par le systemd (systemd — Wikipédia)
pour voir son état :
sudo systemctl status wpa_supplicant.service

normalement il répond un truc ds le genre :

● wpa_supplicant.service - WPA supplicant
     Loaded: loaded (/lib/systemd/system/wpa_supplicant.service; enabled; vendor preset: enabled)
     Active: active (running) since Fri 2023-01-13 23:37:43 CET; 8min ago
   Main PID: 928 (wpa_supplicant)
      Tasks: 1 (limit: 191)
        CPU: 36ms
     CGroup: /system.slice/wpa_supplicant.service
             └─928 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant

janv. 13 23:37:43 zero2 systemd[1]: wpa_supplicant.service: Succeeded.

sinon
sudo systemctl start wpa_supplicant.service pour le démarrer et surtout
sudo systemctl enable wpa_supplicant.service pour qu’il démarre aux boots suivants.

donc on oublie la commande directe ds une console !

les fichiers du répertoire /proc sont pour partie, temporaire et ne survive pas à un reboot donc inutile de les supprimer manuellement.

pour finir et à mon humble avis le problème doit venir de ton router … là la liste est longue ! une des possibilités c’est qu’il n’accepte les connexions que des adresses MAC connues ( notion de filtrage MAC ) ou bien il n’accepte que le wifi 5 ghz , ou ton Rpi a une adresse fixe et elle ne correspond pas au réseau de ton router, etc. etc…

Encore merci, bof.

En farfouillant sur la toile, j’ai vu l’info pour le répertoire /proc.

Sur mon pauvre petit RPi (c’est un modèle B version 2), j’ai installé le dernier Raspbian en utilisant un portable sous Windows 10 disposant d’un port pour carte mémoire : j’ai donc une version "standard’ dans laquelle WPA_supplicant se lance effectivement au démarrage, mais je n’ai pas su trouver le (les) bon(s) fichier(s) pour voir s’il génère des messages d’installation et d’erreur. Par contre j’avais trouvé cette instruction sur le net, et j’ai vu (merci man) l’option -d qui affiche tout ça (en fait, c’est affreusement verbeux) mais ça ne m’a pas aidé.
Ta suggestion

sudo systemctl status wpa_supplicant.service

répond (sur le routeur qui marche) :

* wpa_supplicant.service - WPA supplicant
Loaded: loaded (/lib/systemd/system/wpa_supplicant.service; enabled; vendor preset: enabled)
Active: active (running) since Fri 2023-01-13 19:31:20 CET; 16h ago
Main PID: 305 (wpa_supplicant)
Tasks: 1 (limit: 415)
CPU: 310ms
CGroup: /system.slice/wpa_supplicant.service
`-305 /sbin/wpa_supplicant -u -s -O /run/wpa_supplicant

janv. 13 19:31:18 raspberrypi systemd[1]: Starting WPA supplicant…
janv. 13 19:31:19 raspberrypi wpa_supplicant[305]: Successfully initialized wpa_supplicant
janv. 13 19:31:20 raspberrypi systemd[1]: Started WPA supplicant.

Oui, la clé fonctionne sur un autre routeur.

Pour tes suggestions sur le routeur : dans le paramétrage DHCP des adresses réservées, j’ai rentré l’adresse MAC de ma carte (et vérifié mainte fois !).
Un vieux point d’accès (il a plus de 10 ans) qui accepte les clé WEP n’est sans doute pas limité au 5 GHz. Mon téléphone s’y connecte « finger in the nose » et affiche une vitesse de connexion de 54 Mbits/s. Le Rpi attend une adresse DHCP…

Bon, je vais encore chercher (et aussi espérer des lumières par ici…)

Encore merci.

AMIcalement.

Il me semble qu’il faut prendre l’adresse mac de l’adaptateur wifi

Merci Mik91390, de t’intéresser à mon sujet.

Je ne sais pas qui ne comprend pas l’autre, mais, pour être plus précis sur ce que je voulais dire, c’est que j’ai précisé, dans les réglages du DHCP sur le routeur, l’adresse MAC de mon adaptateur, et l’adresse IP que je souhaitais qu’il lui alloue.

J’ai une expérience un peu solide sur Windows, mais je suis débutant sur Unix. Je dirais quand-même, intuitivement, que ma difficulté vient du paramétrage de WPA_supplicant.

Malheureusement, je ne sais pas aller plus loin.

AMIcalement.

less /var/log/syslog
G pour aller au début
<shift>G pour aller a la fin
/wpa pour rechercher wpa…
/wlan0 pour avoir de l’info sur l’interface wlan0
/dhcpcd pour le dhcp

n pour la recherche suivante

ou tail -f /var/log/syslog pour l’avoir en ‹ live ›

Encore merci. Ces commandes sont bien utiles.

Ce que je trouve me surprend absolument. Il y a une vingtaine de blocs de lignes commençant par "wlan0: carrier acquired’, après quoi ça parle d’adresse « 192.168.4.139 » et se terminant par « carier lost ».

Et, au milieu de tout ça, je vois une fois une référence à la clé de mon réseau (qui est une suite de 26 chiffres) et qui dit « Too long WEP key 0 » et "failed to parse wep_key 0’.

Comme c’est le seul message d’erreur explicite que je trouve dans tout ce verbiage, c’est forcément la cause de mon problème, mais Google me dit ceci :

Le protocole WEP (Wired Equivalent Privacy ou Protection Equivalente au Câble) utilise une clé d’une longueur de 64 à 256 bits dont 24 ne sont pas utilisés pour le chiffrement. Cela fait une clé, si on la compare à un mot, d’une longueur de 5 à 29 caractères. La majorité des clés est composée de 13 caractères.

C’est donc une limitation « indue » de Raspbian, mais que puis-je faire : raccourcir la clé, et répercuter sur tous les utilisateurs ? Je ne sais même pas si je saurai encore rentrer dans la configuration du point d’accès…

Peut-on envisager une demande de modification du code de Raspbian ???

AMIcalement, mais perplrexe.

suivant la version WEP supportée par ton router ( il est probable qu’il utilise Une clé WEP de 128 bits soit 13 caractères alphanumérique ou 26 en hexa (00F1D3 etc.) voir moins … puisque une suite de 26 chiffres devrait être assimilée à de l’hexa - si il y en a bien 26 … ou à minima un nombre pair inférieur ou égal à 26) donc la limitation vient plus probablement du router que de raspbian qui lui ne fait que transmettre ce que tu as mis ds la clé et te communiquer la réponse du router ( 2 long key …)
plus d info en source.

Source:

Bonsoir.
Je dois dire que je ne comprends pas ta réponse. D’après ce que je comprends, il y a la clé de 26 caractères que j’ai écrite dans le fichier wpa-supplicant.conf, que le programme dénommé « wpa_supplicant », appartenant à la version actuelle de Raspbian, est en train d’interpréter, et qu’il trouve trop longue pour son goût. Tu me parles d’un « routeur », mais, que je sache, quand mon téléphone, ou ceux de mes enfants ou petits enfants, ou mon portable, se connectent à ce point d’accès, ça marche. En effet, la communication entre ces appareils passe effectivement par le routeur, mais elle abouti à un succès. Là, le programme « wpa_supplicant » de « Raspbian » me dit qu’il est incapable d’interpréter cette clé qu’il trouve trop longue : le routeur n’est pas impliqué dans ce cas. Non ?

Il n’est évidemment pas question ici de la sécurité du codage WEP : c’est une tout autre question.

ben non le message est le résultat d’un échange entre le wpa_supplicant qui transmet « bêtement » la clé et le point d’accès ( en fait un routeur ) qui lui répond « la clé que tu m’envoies est trop longue je suis infoutu d’en faire une clé WEP valide »

« Too long WEP key 0 » et « failed to parse wep_key 0’. »

  • solution en mettre une plus courte … éventuellement la rallonger jusqu’à ce que ça ne fonctionne plus !

peut être en retirant les quotes avant et après la clé ( il est possible qu’avec les quotes le point d’accès reçoit une chaîne de caractère ( qu’il doit limiter à 13 alphanumérique a la place de 26 caractères hexadecimaux que le protocole 128 bits doit accepter ))

le plus simple et le plus sécure étant de ne pas spécifier de protocole dans wpa_supplicant.conf ( donc laisser le router choisir) pour utiliser WAP ou WAP2 , protocole que doivent utiliser les phones de la famille.

mais clairement c’est en se prenant la tête avec ce qui ne fonctionne pas qu’ on comprend mieux un système :wink:

Je ne suis pas d’accord avec ton explication. Entre mon Rpi et le point d’accès WiFi, il y a un (ou plus ?) hub et un routeur, mais ce n’est pas le routeur qui héberge la fonction « wifi », c’est bel et bien un point d’accès, qui est raccordé au hub par un câble RJ45. Or de nombreux téléphones, tablettes et ordinateurs portables utilisent ce code à 26 chiffres. Je ne sais pas comment se déroule le dialogue entre le Rpi et le point d’accès, mais je suppose qu’il se passe entree « carrier acquired » et « carrier lost », donc uniquement en ondes WiFi. S’il se passait bien, (donc aorès que la clé ait été acceptée) le point d’accès entamerait un dialogue DHCP avec le routeur, pour l’attribution de l’adresse.

Je ne sais pas quels modules de programmes assurent ces fonctions dans les téléphones Androïd, Apple ou autres, les tablettes diverses et les portables sous Mac ou Windows, mais, jusqu’à maintenant, tous ont pu se connecter à ce Point d’Accès. Il me paraît tout à fait logique de suspecter Raspbian.

Je vais regarder ton lien.

A +

AMIcalement.

L’essai en supprimant les quotes autour de ma clé dans wpa_supplicant.conf me donne le message (clé modifiée en respectant sa longueur) :
Jan 15 00:15:13 raspberrypi dhcpcd-run-hooks[398]: wlan0: Successfully initialized wpa_supplicant#012Line 12: Invalid PSK ‹ 01234567890123456789012345 ›.#012Line 12: failed to parse psk ‹ 01234567890123456789012345 ›.#012Line 13: failed to parse network block.#012Failed to read or parse configuration ‹ /etc/wpa_supplicant/wpa_supplicant.conf ›.

Pourquoi ne dit-il pas cela à ceux qui arrivent à se connecter ?

là il y ait une erreur de syntaxe dans le fichier wpa_supplicant.conf autour de la ligne 12 …
en fait l’idée de virer les quotes était une ânerie; il semble que la clé doit obligatoirement être entourée de quotes !

Avec ou sans, ça marche pas…

Je me suis trop pris la tête, je ne fais plus rien de bon, ce qui marchait avant ne marche plus…

je me suis aperçu que mon point d’accès routeur Netgear WGR614 V7 supportait WPA et WPA2 !

Je suis allé sur ce site : https://forums.raspberrypi.com/viewtopic.php?t=191061&sid=2ec1ffd65577b6a578bdd7966ccbad16
où il y a plein de trucs sur ce même problème, qui sont contradictoires, et les intervenants se contredisent. Je ne me souviens pas comment j’ai trouvé mon chemin là dedans, et je ne me souviens pas non plus si j’ai fait d’autres modifs, mais maintenant, ça marche, avec ce wpa_supplicant.conf :
country=FR
ctrl_interface=DIR=/var/run/wpa_supplicant
#GROUP=netdev
update_config=1

network={
ssid="SSID"
# auth_alg=WPA
psk="01234567890123456789012345"
}
Et même si c’est commenté ci-dessus, maintenant, le point d’accès WiFi utilise le WPA2.

Merci à tous, et (peut-être) à plus’

AMIcalement.