Errore WiFi wpa_supplicant


14

Ho un problema con il wpa_supplicantprogramma.

Il mio problema riguarda l'uso di wpa_cliquali bisogni wpa_supplicant. Errore durante l'esecuzione sudo wpa_cli:

Could not connect to wpa_supplicant

L'avvio manuale di wpa_supplicantmi dà alcuni errori:

sudo wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf

rfkill: Cannot open RFKILL control device
ioctl[SIOCSIWAP]: Operation not permitted
ioctl[SIOCSIWENCODEEXT]: Invalid argument
ioctl[SIOCSIWENCODEEXT]: Invalid argument
wlan0: CTRL-EVENT-DISCONNECTED bssid=00:00:00:00:00:00 reason=0   ### NEW!!!

Config dhcp

## /etc/dhcp/dhcpd.conf
subnet 192.168.2.0 netmask 255.255.255.0 {
   range 192.168.2.2 192.168.2.9;
   option domain-name-servers 192.168.1.1;
   option domain-name "home";
   option routers 192.168.2.1;
}

Config wpa_supplicant

## /etc/wpa_supplicant/wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
# network={
#   ssid="__SSID__"
#   key_mgmt=WPA-PSK
#   psk="__PASS__"
#   id_str="home"
# }

Config hostapd

## /etc/hostapd/hostapd.conf
interface=wlan0
driver=rtl871xdrv
ieee80211n=1
ssid=__SSID__
hw_mode=g
channel=1
macaddr_acl=0
auth_algs=1
ignore_broadcast_ssid=0
wpa=2
wpa_passphrase=__PASS__
wpa_key_mgmt=WPA-PSK
wpa_pairwise=TKIP
rsn_pairwise=CCMP

# EDIT
ctrl_interface=/var/run/hostapd
ctrl_interface_group=0

Risultati di ifconfig/iwconfig

wlan0   Link encap:Ethernet  HWaddr c0:4a:00:17:40:fd
          inet adr:192.168.2.1  Bcast:192.168.2.255  Masque:255.255.255.0
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:14 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 lg file transmission:1000
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

wlan0     IEEE 802.11bgn  ESSID:"__SSID__"  Nickname:"<WIFI@REALTEK>"
          Mode:Master  Frequency:2.412 GHz  Access Point: C0:4A:00:17:40:FD
          Sensitivity:0/0
          Retry:off   RTS thr:off   Fragment thr:off
          Power Management:off
          Link Quality=100/100  Signal level=0 dBm  Noise level=0 dBm
          Rx invalid nwid:0  Rx invalid crypt:0  Rx invalid frag:0
          Tx excessive retries:0  Invalid misc:0   Missed beacon:0

Come posso iniziare wpa_supplicantsenza errori e wpa_cliconnettermi?

Risposte:


8

Gli errori wpa_supplicantprodotti non sono necessariamente correlati al wpa_cliproblema di connessione. Il problema qui è che wpa_clinon è possibile stabilire una connessione con wpa_supplicant- impossibile aprire il socket di controllo. Ciò può avere diverse cause:

  1. l'utente in esecuzione wpa_clinon è in grado di accedere al socket indicato ad es. in wpa_supplicant.conf:

    ctrl_interface=DIR=/var/run/wpa_supplicant
    

    È necessario verificare che i file in quella directory siano accessibili all'utente in cui wpa_cliviene eseguito. Ciò significa che non sono solo i socket rw: tutte le directory sopra devono essere almeno x, l'ultima probabilmente anche rper wpa_cliepoter elencare tutti i socket disponibili.

  2. Diversamente wpa_supplicant, wpa_cliDBus non è in grado. Assicurarsi che wpa_supplicantnon ascolti solo tramite DBus. A giudicare dai file di configurazione, questo probabilmente non è il tuo caso.

  3. wpa_supplicantnon in esecuzione (come da commenti sotto). Ciò indicherebbe che in effetti potrebbe esserci una connessione tra i messaggi di errore emessi wpa_supplicante l'impossibilità di connettersi ad esso. Per assicurarti di eseguirlo in modalità dettagliata ( -do anche -dd) e non daemonizzare (che è l'impostazione predefinita - assicurati solo di non utilizzare l' -Bopzione). Puoi anche fare attenzione alla presa di controllo, ad esempio:

    watch -n 0.1 "ls -al /var/run/wpa_supplicant"
    

    Ricorda che la maggior parte di questi comandi deve essere eseguita con i privilegi di root, quindi per il debug potrebbe essere più semplice semplicemente su - rootpermanentemente anziché aggiungere un prefisso a ciascun comando sudo.


Grazie per la tua risposta. A proposito del tuo primo punto, devo dirti che il file /var/run/wpa_supplicantnon esiste .. Pensi che questo sia il problema?
Val

1
È creato da wpa_supplicantquando necessario. Se non esiste mentre è in esecuzione, allora l'opzione 2 diventa improvvisamente più probabile. :)
peterph

Okay, ma non so davvero come applicare la tua opzione 2 .. Stai cercando una "applicazione principale", ma sto solo usando i comandi di cui ho parlato wpa_clie wpa_supplicant, e non so come evitare solo dbus .. ho dovuto dirti che rfkill listmi dà anche errori (se è correlato) "Impossibile aprire il dispositivo RFKILL: nessun file o directory del genere" .. Sono davvero perso
Val

1
main applicatin = wpa_supplicant- L'ho risolto, era davvero un po 'fuorviante. Socket: controlla lsof | grep wpa_supplicant(quando è in esecuzione) - dovrebbe mostrare il socket aperto. Per quanto riguarda rfkill- è /dev/rfkillaccessibile per l'utente in esecuzione rfkill?
peterph

Ho provato il lsof | grep wpa_supplicantcomando, ma non restituisce un risultato. A proposito, penso che il mio problema sia che wpa_supplicantnon si sta iniziando .. Ho provato un ps -e | grep wpaed è anche vuoto. A proposito rfkill, /dev/rfkillnon esiste per me ..
Val

5

Infine, gli errori scritti non hanno influenzato il sistema.

Il mio /etc/network/interfacesfile sembra (solo parte wlan):

iface wlan0 inet static
    address 192.168.2.1
    netmask 255.255.255.0
    pre-up wpa_supplicant -i wlan0 -c /etc/wpa_supplicant/wpa_supplicant.conf -B

Con questa configurazione, posso usare il sudo wpa_clicomando senza errori!
Grazie comunque a Peter :)!


Lo stavo cercando da ore. L'ultima riga ha risolto il mio problema. Grazie.
Mehrmoudi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.