WiFi 錯誤 wpa_supplicant
我的程序有問題
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
——無法打開控制套接字。這可能有幾個原因:
- 執行
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
.