Point d'accès en Wifi sur carte embarquée

Bonjour à tous,
J’essaye en vain de faire fonctionner une RIoTboard (iMX6 avec Debian Jessie) en point d’accès Wifi. J’utilise pour cela un dongle Wi-Pi (utilisé habituellement sur une RPI). Le SSID est visible sur le réseau, mais lorsque j’essaye de m’y connecter, ça mouline et je n’ai même pas de demande du mot de passe.
Au départ, j’ai suivi ce tutoriel -> https://seravo.fi/2014/create-wireless-access-point-hostapd et recherché sur pas mal d’autres sans succès.
Mon /etc/network/interfaces :

auto wlan0 allow-hotplug wlan0 iface wlan0 inet static pre-up wpa_supplicant -B w -D wext -i wlan0 -c /etc/wpa.conf post-down killall -q wpa_supplicant hostapd /etc/hostapd/hostapd.conf address 192.168.1.1 netmask 255.255.255.0
Les lignes 'pre-up et post-down ont été ajoutées dans un second temps car je me suis aperçu que le service wpa_supplicant n’était pas lancé lorsque j’activait wlan0. J’ai créé, à ce moment le fichier /etc/wpa.conf :

network={ ssid="Example-WLAN" psk=3f1daecad93a6e35919fcb2843f2e67443f0fdccb2d47e1176ddc476b84b87c0 }

Mon /etc/hostapd/hostapd.conf :

interface=wlan0 #logger_syslog=-1 #logger_syslog_level=2 #logger_stdout=-1 #logger_stdout_level=2 #ctrl_interface=/var/run/hostapd #ctrl_interface_group=0 ssid=Example-WLAN #country_code=FR hw_mode=g channel=6 #beacon_int=100 #dtim_period=2 #max_num_sta=8 #rts_threshold=2347 #fragm_threshold=2346 #auth_algs=3 #ignore_broadcast_ssid=0 #wmm_enabled=1 #wmm_ac_bk_cwmin=4 #wmm_ac_bk_cwmax=10 #wmm_ac_bk_aifs=7 #wmm_ac_bk_txop_limit=0 #wmm_ac_bk_acm=0 #wmm_ac_be_aifs=3 #wmm_ac_be_cwmin=4 #wmm_ac_be_cwmax=10 #wmm_ac_be_txop_limit=0 #wmm_ac_be_acm=0 #wmm_ac_vi_aifs=2 #wmm_ac_vi_cwmin=3 #wmm_ac_vi_cwmax=4 #wmm_ac_vi_txop_limit=94 #wmm_ac_vi_acm=0 #wmm_ac_vo_aifs=2 #wmm_ac_vo_cwmin=2 #wmm_ac_vo_cwmax=3 #wmm_ac_vo_txop_limit=47 #wmm_ac_vo_acm=0 #ieee80211n=1 #ht_capab=[HT40+][SHORT-GI-20][SHORT-GI-40] #eapol_key_index_workaround=0 #own_ip_addr=127.0.0.1 wpa=3 wpa_passphrase=************* wpa_key_mgmt=WPA-PSK WPA-EAP WPA-PSK-SHA256 WPA-EAP-SHA256 wpa_pairwise=CCMP #wpa_group_rekey=86400
J’ai d’abord essayé avec toutes les lignes ci-dessus activées, puis j’ai mis en commentaire pas mal de ligne pour avoir un fichier plus basique, en ne gardant que ce qu’il était nécessaire.

Voici le résultat de quelques commandes :[code]# iwconfig wlan0
wlan0 IEEE 802.11bgn Mode:Master Tx-Power=20 dBm
Retry long limit:7 RTS thr:off Fragment thr:off
Power Management:on

ifconfig

eth0 Link encap:Ethernet HWaddr 86:12:34:68:7b:d3
inet adr:192.168.0.222 Bcast:192.168.0.255 Masque:255.255.255.0
adr inet6: fe80::84ec:54ff:fe63:5bd3/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:2054 errors:0 dropped:1 overruns:0 frame:0
TX packets:1003 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:215443 (210.3 KiB) TX bytes:196791 (192.1 KiB)

lo Link encap:Boucle locale
inet adr:127.0.0.1 Masque:255.0.0.0
adr inet6: ::1/128 Scope:Hôte
UP LOOPBACK RUNNING MTU:65536 Metric:1
RX packets:2 errors:0 dropped:0 overruns:0 frame:0
TX packets:2 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:0
RX bytes:190 (190.0 B) TX bytes:190 (190.0 B)

wlan0 Link encap:Ethernet HWaddr 00:0e:33:32:22:c6
inet adr:192.168.1.1 Bcast:192.168.1.255 Masque:255.255.255.0
adr inet6: fe80::20f:13ff:fe39:2c8/64 Scope:Lien
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:12 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 lg file transmission:1000
RX bytes:0 (0.0 B) TX bytes:1152 (1.1 KiB)
[/code]
Avez-vous une idée de ce que j’ai raté ? Et ou allez voir pour connaitre des erreurs éventuelles ?
Ah oui, lorsque je lance la commande ifup wlan0, j’ai ces lignes qui s’affichent :

rfkill: Cannot open RFKILL control device ioctl[SIOCSIWENCODEEXT]: Invalid argument ioctl[SIOCSIWENCODEEXT]: Invalid argument
Visiblement, la première n’est pas bien grave. Par contre, les deux autres, je ne sais pas à quoi elles correspondent.

Bonjour,
avant d’essayer d’en faire un point d’accés, as tu vérifié que le wifi se comportait corectement, par exemple en le testant comme client.

Bonjour et merci pour ta réponse piratebab.
Désolé de ne pas avoir pu répondre plus tôt, j’étais en déplacement. J’ai donc essayé de modifier mon fichier /etc/network/interfaces ainsi :

auto wlan0 allow-hotplug wlan0 iface wlan0 inet dhcp wpa-ssid xxxxxxxxxxxx wpa-psk xxxxxxxxxxxxx wpa-key-mgmt WPA-PSK wpa-ap-scan 1 wpa-scan-ssid 1 wpa-group CCMP TKIP wpa-proto RSN WPA
La commande iwconfig me donne cela :

wlan0 IEEE 802.11bgn ESSID:"xxxxxxxxxxxxx" Mode:Managed Frequency:2.437 GHz Access Point: 00:26:44:FC:13:ED Bit Rate=48 Mb/s Tx-Power=20 dBm Retry long limit:7 RTS thr:off Fragment thr:off Encryption key:off Power Management:on Link Quality=33/70 Signal level=-77 dBm Rx invalid nwid:0 Rx invalid crypt:0 Rx invalid frag:0 Tx excessive retries:3 Invalid misc:7 Missed beacon:0
et ifconfig, ceci :

wlan0 Link encap:Ethernet HWaddr 00:0f:13:39:02:c8 inet adr:192.168.3.37 Bcast:192.168.3.255 Masque:255.255.255.0 adr inet6: fe80::20f:13ff:fe39:2c8/64 Scope:Lien UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:2653 errors:0 dropped:2 overruns:0 frame:0 TX packets:29 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 lg file transmission:1000 RX bytes:246102 (240.3 KiB) TX bytes:3468 (3.3 KiB)
Un sniffer réseau détecte la carte avec l’IP 192.168.3.37, et j’arrive à me connecter en SSH sur cette adresse. Tout semble donc fonctionner, mais uniquement lorsque le câble ethernet est connecté. Dès que je le débranche, terminé, plus aucun accès. Sauf si je désactive l’interface eth0 et wlan0 et que j’active de nouveau wlan0 :

ifdown eth0 // Si je ne désactive pas eth0, cela ne fonctionne pas non plus. ifdown wlan0 ifup wlan0
L’interface eth0 est en adresse statique, différente de l’interface wlan0. Par contre, je ne sais pas si sur une même machine, on peut avoir deux connexions au même réseau, ce qui pourrait expliquer tout cela. Lorsque je désactive l’interface eth0 dans le fichier /etc/network/interfaces, la carte se connecte normalement au réseau wifi à sa mise sous tension.
Est-ce que toute ces explications ont pu vous aider ?

Merci d’avance.

Bonjour,

Pour faire un point d’accès sous Linux, question logiciel, il te faut :

  • Un logiciel qui démarre les interfaces réseau (par défaut sous Debian c’est ifupdown) ou un script fait maison.
  • Hostapd avec un ou plusieurs fichiers de configuration.
  • Des services DHCP / DNS au cas où tu souhaite utiliser du routage plutôt que du bridge/switching.

Wpa_supplicant n’a rien à voir avec le point d’accès. Cela ne concerne que le client.
De même, si tu as d’autres logiciels gérant le réseau sur le système, désactive-les ! Typiquement, networkmanager.

Tu est donc cordialement invité à supprimer de /etc/network/interfaces tout ce qui a trait à wpa_supplicant, sur ton point d’accès.

Il y a aussi quelque-chose que tu ne précises pas : que veux-tu faire de ce point d’accès ?

  • Juste te connecter au point d’accès qui héberge un service genre serveur web ?
  • Pouvoir te connecter à Internet via le point d’accès et une box d’un opérateur grand-public ?
  • Pouvoir te connecter à Internet via le point d’accès, qui sera l’unique point d’accès et un vrai routeur (professionnel ou openwrt mais autre qu’une box) ?
  • Pouvoir te connecter à Internet via plusieurs points d’accès qui forment un Extended Service Set (ESS) avec de l’itinérance (roaming) entre eux ?
  • Pouvoir étendre la couverture d’un réseau WiFi en mettant en place un relais/extender WiFi à l’aide de ta board ?
    (un seul choix)

Et si tu as besoin de plusieurs usages sur ton interface WiFi, ça peut se faire avec des interfaces réseau virtuelles. Comme si on prenait l’interface physique et qu’on la partageait en des sous-interfaces. Une pour chaque usage mais toujours en restant sur la même plage de fréquences, évidemment.
Par exemple une interface virtuelle pour le point d’accès, une autre pour sniffer/voir les paquets qui passent et une autre comme station/client pour un autre point d’accès. ETC


AnonymousCoward

Avant d’en arriver là, il faut déja s’assurer que le chip wifi est bien reconnu par le pilote. Et le plus simple est de tester en tant que client.
il faut y aller par étapes, et valider a chaque fois.