Kesalahan WiFi wpa_supplicant

14

Saya punya masalah dengan wpa_supplicantprogram ini.

Masalah saya adalah tentang penggunaan wpa_clikebutuhan yang mana wpa_supplicant. Kesalahan saat saya mengeksekusi sudo wpa_cli:

Could not connect to wpa_supplicant

Awal manual wpa_supplicantmemberi saya beberapa kesalahan:

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

Konfigurasi 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"
# }

Konfigurasi 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

Hasil dari 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

Bagaimana saya bisa memulai wpa_supplicanttanpa kesalahan dan wpa_cliterhubung?

Val
sumber

Jawaban:

8

Kesalahan yang wpa_supplicantdihasilkan belum tentu terkait dengan wpa_climasalah koneksi Anda . Masalahnya di sini adalah bahwa wpa_clitidak dapat membuat koneksi dengan wpa_supplicant- tidak dapat membuka soket kontrol. Ini dapat memiliki beberapa penyebab:

  1. pengguna yang menjalankan wpa_clitidak dapat mengakses soket yang diberikan misalnya di wpa_supplicant.conf:

    ctrl_interface=DIR=/var/run/wpa_supplicant
    

    Anda perlu memeriksa apakah file dalam direktori tersebut dapat diakses oleh pengguna yang wpa_climenjalankannya. Itu berarti tidak hanya soket yang ada rw- semua direktori di atas harus setidaknya x, yang terakhir mungkin juga rsehingga wpa_cliedapat mencantumkan semua soket yang tersedia.

  2. Berbeda wpa_supplicant, wpa_clibukankah DBus mampu. Pastikan wpa_supplicanttidak mendengarkan melalui DBus saja. Dilihat oleh file konfigurasi Anda, ini mungkin bukan kasus Anda.

  3. wpa_supplicanttidak berjalan (sesuai komentar di bawah). Ini akan menunjukkan, bahwa mungkin memang ada koneksi antara pesan kesalahan yang dipancarkan oleh wpa_supplicantdan tidak dapat terhubung ke sana. Untuk memastikan menjalankannya dalam mode verbose ( -datau bahkan -dd) dan tidak daemonizing (yang merupakan default - pastikan Anda tidak menggunakan -Bopsi). Anda juga dapat mengawasi soket kontrol, misalnya:

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

    Ingat bahwa sebagian besar dari perintah ini harus dijalankan dengan hak akses root, jadi untuk debugging mungkin lebih mudah untuk hanya su - rootsecara permanen daripada mengawali setiap perintah dengan sudo.

peterph
sumber
Terima kasih atas jawaban anda. Tentang poin pertama Anda, saya harus memberi tahu Anda bahwa file /var/run/wpa_supplicanttersebut tidak ada .. Apakah Anda pikir ini masalahnya?
Val
1
Itu dibuat oleh wpa_supplicantsaat dibutuhkan. Jika tidak ada saat sedang berjalan, maka opsi 2 tiba-tiba menjadi lebih mungkin. :)
peterph
Oke, tapi saya tidak benar-benar tahu bagaimana menerapkan pilihan Anda 2 .. Anda bermain tentang "aplikasi utama", tapi saya hanya menggunakan perintah yang saya bicarakan wpa_clidan wpa_supplicant, dan saya tidak tahu cara menghindari dbus saja .. Saya harus memberitahu Anda bahwa rfkill listitu memberi saya kesalahan juga (jika itu terkait) "Tidak dapat membuka perangkat RFKILL: Tidak ada file atau direktori". Saya benar-benar hilang
Val
1
applicatin utama = wpa_supplicant- Saya sudah memperbaikinya, itu memang agak menyesatkan. Socket: centang lsof | grep wpa_supplicant(ketika Anda menjalankannya) - itu akan menunjukkan kepada Anda soket terbuka. Adapun rfkill- apakah /dev/rfkilldapat diakses untuk pengguna yang menjalankan rfkill?
peterph
Saya mencoba lsof | grep wpa_supplicantperintah itu, tetapi tidak memberikan hasil. Btw, saya pikir masalah saya adalah itu wpa_supplicanttidak dimulai .. Saya mencoba ps -e | grep wpadan itu kosong juga. Tentang rfkill, /dev/rfkilltidak ada untuk saya ..
Val
5

Akhirnya, kesalahan tertulis tidak mempengaruhi sistem.

/etc/network/interfacesFile saya terlihat seperti (hanya bagian 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

Dengan konfigurasi ini, saya dapat menggunakan sudo wpa_cliperintah tanpa kesalahan!
Berkat peterph pula :)!

Val
sumber
Saya mencari ini selama berjam-jam. Baris terakhir memperbaiki masalah saya. Terima kasih.
mehrmoudi