Wifi

WiFi 錯誤 wpa_supplicant

  • February 10, 2014

我的程序有問題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"
# }

配置主機

## /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連接?

最後,寫入的錯誤不會影響系統。

我的/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命令!

無論如何都要感謝彼得:)!

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.

引用自:https://unix.stackexchange.com/questions/114066