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建立连接?

Answers:


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_supplicantwpa_cliDBus不具备此功能。确保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不存在。您是否认为这是问题所在?
2014年

1
它是wpa_supplicant在需要时创建的。如果它运行时不存在,那么选项2突然变得更有可能。:)
彼得

好的,但是我真的不知道如何应用您的选项2。您正在谈论“主应用程序”,但是我只是使用我wpa_cliwpa_supplicant和讨论过的命令,而且我不知道如何避免我只能告诉你,这rfkill list也给我带来了错误(如果相关的话)“无法打开RFKILL设备:没有这样的文件或目录” ..我真的迷失了
Val

1
main applicatin = wpa_supplicant-我已修复它,确实有点误导。套接字:检查lsof | grep wpa_supplicant(运行时)-它应显示打开的套接字。至于rfkill-正在/dev/rfkill运行的用户可以访问rfkill吗?
彼得2014年

我尝试了该lsof | grep wpa_supplicant命令,但没有返回结果。顺便说一句,我认为我的问题是wpa_supplicant还没有开始。我尝试了a ps -e | grep wpa,它也是空的。关于rfkill/dev/rfkill不存在我..
瓦尔

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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.