Помилка WiFi wpa_supplicant


14

У мене проблема з wpa_supplicantпрограмою.

Моя проблема в тому, використання wpa_cliяких потребує wpa_supplicant. Помилка під час виконання sudo wpa_cli:

Could not connect to wpa_supplicant

Ручний запуск wpa_supplicantдає мені деякі помилки:

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!!!

Налаштувати 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;
}

Налаштуйте 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"
# }

Налаштування 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

Результати 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

Як я можу почати wpa_supplicantбез помилок і мати wpa_cliз'єднання?

Відповіді:


8

Виникаючі помилки wpa_supplicantне обов'язково пов'язані з вашою wpa_cliпроблемою підключення. Проблема тут полягає в тому, що wpa_cliне вдається встановити зв'язок із wpa_supplicant- не в змозі відкрити розетку управління. Це може бути декілька причин:

  1. користувач, який працює wpa_cli, не може отримати доступ до сокета, заданого, наприклад, у wpa_supplicant.conf:

    ctrl_interface=DIR=/var/run/wpa_supplicant
    

    Вам потрібно перевірити, чи доступні файли в цьому каталозі користувачеві, під яким wpa_cliпрацює. Це означає, що не тільки розетки rw- всі вище каталоги повинні бути принаймні x, останні, мабуть, також, rщоб wpa_clieперелічити всі наявні сокети.

  2. На відміну wpa_supplicant, wpa_cliне здатний DBus. Переконайтеся, що wpa_supplicantце не прослуховування лише через DBus. Судячи з конфігураційних файлів, це, мабуть, не так.

  3. wpa_supplicantне працює (відповідно до коментарів нижче). Це вказувало б на те, що дійсно може бути зв’язок між повідомленнями про помилки, що випромінюються wpa_supplicantі не мають можливості підключитися до нього. Щоб переконатися, що запустіть його у багатослівному режимі ( -dабо навіть -dd) та не демонізує (що за замовчуванням - просто переконайтеся, що ви не використовуєте -Bпараметр). Ви також можете стежити за розеткою управління, наприклад:

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

    Пам’ятайте, що більшість цих команд потрібно запускати з привілеями root, тому для налагодження може бути простіше просто su - rootназавжди, ніж префіксація кожної команди sudo.


Дякую за вашу відповідь. Щодо вашого першого пункту, я мушу вам сказати, що файл /var/run/wpa_supplicantне існує .. Ви вважаєте, в чому це проблема?
Валь

1
Він створюється за wpa_supplicantпотреби. Якщо його немає під час його запуску, тоді варіант 2 раптом стає більш імовірним. :)
peterph

Добре, але я не знаю , як застосувати ваш варіант 2 .. Ви sepaking про «головному додатку», але я тільки з допомогою команди я говорив про wpa_cliі wpa_supplicant, і я не знаю , як уникнути тільки dbus .. Я повинен був сказати вам, що rfkill listі мені створює помилки (якщо це пов’язано) "Не вдається відкрити пристрій RFKILL: Немає такого файлу чи каталогу". Я дійсно загубився
Val

1
основний аплікатін = wpa_supplicant- Я це виправив, це було дійсно трохи оману. Socket: перевірте lsof | grep wpa_supplicant(коли ви працюєте) - він повинен показувати вам відкриту розетку. Що стосується rfkill- чи /dev/rfkillдоступний користувач, який працює rfkill?
петерф

Я спробував lsof | grep wpa_supplicantкоманду, але результат не повертає. До речі, я думаю, що моя проблема полягає в тому, що wpa_supplicantвона не починається .. Я спробував ps -e | grep wpaі він також порожній. О rfkill, /dev/rfkillне існує для мене ..
Val

5

Нарешті, написані помилки не вплинули на систему.

Мій /etc/network/interfacesфайл має вигляд (лише частина 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

За допомогою цього конфігу я можу користуватися sudo wpa_cliкомандою без помилок!
Завдяки Петерфу все одно :)!


Я шукав це годинами. Останній рядок вирішив мою проблему. Спасибі.
mehrmoudi
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.