Drivers
wpa_supplicant 無法從配置文件中設置 essid 和其他參數
我無法使用 wpa_supplicant 在無線介面上設置 essid 和其他參數。
使用 -Dwext 拋出
ioctl[SIOCSIWENCODEEXT]
$ sudo wpa_supplicant -B -i wlan0 -Dwext -c universitywpa Successfully initialized wpa_supplicant ioctl[SIOCSIWENCODEEXT]: Invalid argument ioctl[SIOCSIWENCODEEXT]: Invalid argument
並且也無法設置 ESSID:
$ iwconfig wlan0 wlan0 IEEE 802.11abgn ESSID:off/any Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated Tx-Power=15 dBm Retry short limit:7 RTS thr:off Fragment thr:off Power Management:off
如果我使用
-Dnl80211
,則不會引發 IOCTL 錯誤:$ sudo wpa_supplicant -B -i wlan0 -Dnl80211 -c universitywpa Successfully initialized wpa_supplicant
但是 ESSID 仍然關閉/任何:
$ iwconfig wlan0 wlan0 IEEE 802.11abgn ESSID:off/any Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated Tx-Power=15 dBm Retry short limit:7 RTS thr:off Fragment thr:off Power Management:off
我使用 -d (詳細)執行相同的命令以查看可能發生的情況:
$ sudo wpa_supplicant -B -i wlan0 -Dnl80211 -c universitywpa -d wpa_supplicant v2.3 random: Trying to read entropy from /dev/random Successfully initialized wpa_supplicant Initializing interface 'wlan0' conf 'universitywpa' driver 'nl80211' ctrl_interface 'N/A' bridge 'N/A' Configuration file 'universitywpa' -> '/home/my-user/repos/university_connect/universitywpa' Reading configuration file '/home/my-user/repos/university_connect/universitywpa' Priority group 0 id=0 ssid='UNIVERSITY-SECURE' rfkill: initial event: idx=0 type=2 op=0 soft=0 hard=0 rfkill: initial event: idx=1 type=1 op=0 soft=0 hard=0 rfkill: initial event: idx=43 type=2 op=0 soft=0 hard=0 nl80211: Supported cipher 00-0f-ac:1 nl80211: Supported cipher 00-0f-ac:5 nl80211: Supported cipher 00-0f-ac:2 nl80211: Supported cipher 00-0f-ac:4 nl80211: Using driver-based off-channel TX nl80211: interface wlan0 in phy phy0 nl80211: Set mode ifindex 3 iftype 2 (STATION) nl80211: Subscribe to mgmt frames with non-AP handle 0x7ff6aa428fc0 nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=040a nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=2): 04 0a nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=040b nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=2): 04 0b nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=040c nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=2): 04 0c nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=040d nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=2): 04 0d nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=090a nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=2): 09 0a nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=090b nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=2): 09 0b nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=090c nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=2): 09 0c nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=090d nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=2): 09 0d nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=0409506f9a09 nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=6): 04 09 50 6f 9a 09 nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=7f506f9a09 nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=5): 7f 50 6f 9a 09 nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=0801 nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=2): 08 01 nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=06 nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=1): 06 nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=0a07 nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=2): 0a 07 nl80211: Register frame type=0xd0 (WLAN_FC_STYPE_ACTION) nl_handle=0x7ff6aa428fc0 match=0a11 nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame match - hexdump(len=2): 0a 11 nl80211: Failed to register Action frame processing - ignore for now netlink: Operstate: ifindex=3 linkmode=1 (userspace-control), operstate=5 (IF_OPER_DORMANT) nl80211: driver param='(null)' Add interface wlan0 to a new radio phy0 nl80211: Regulatory information - country=00 nl80211: 2402-2472 @ 40 MHz 20 mBm nl80211: 2457-2482 @ 40 MHz 20 mBm (no IR) nl80211: 2474-2494 @ 20 MHz 20 mBm (no OFDM) (no IR) nl80211: 5170-5250 @ 80 MHz 20 mBm (no IR) nl80211: 5250-5330 @ 80 MHz 20 mBm (DFS) (no IR) nl80211: 5490-5730 @ 160 MHz 20 mBm (DFS) (no IR) nl80211: 5735-5835 @ 80 MHz 20 mBm (no IR) nl80211: 57240-63720 @ 2160 MHz 0 mBm nl80211: Added 802.11b mode based on 802.11g information wlan0: Own MAC address: a0:88:b4:98:95:d4 wpa_driver_nl80211_set_key: ifindex=3 (wlan0) alg=0 addr=(nil) key_idx=0 set_tx=0 seq_len=0 key_len=0 wpa_driver_nl80211_set_key: ifindex=3 (wlan0) alg=0 addr=(nil) key_idx=1 set_tx=0 seq_len=0 key_len=0 wpa_driver_nl80211_set_key: ifindex=3 (wlan0) alg=0 addr=(nil) key_idx=2 set_tx=0 seq_len=0 key_len=0 wpa_driver_nl80211_set_key: ifindex=3 (wlan0) alg=0 addr=(nil) key_idx=3 set_tx=0 seq_len=0 key_len=0 wpa_driver_nl80211_set_key: ifindex=3 (wlan0) alg=0 addr=(nil) key_idx=4 set_tx=0 seq_len=0 key_len=0 wpa_driver_nl80211_set_key: ifindex=3 (wlan0) alg=0 addr=(nil) key_idx=5 set_tx=0 seq_len=0 key_len=0 wlan0: RSN: flushing PMKID list in the driver nl80211: Flush PMKIDs wlan0: Setting scan request: 0.100000 sec TDLS: TDLS operation not supported by driver TDLS: Driver uses internal link setup wlan0: WPS: UUID based on MAC address: 886beebd-10cf-544f-bba7-5c23f8ceb3b3 EAPOL: SUPP_PAE entering state DISCONNECTED EAPOL: Supplicant port status: Unauthorized nl80211: Skip set_supp_port(unauthorized) while not associated EAPOL: KEY_RX entering state NO_KEY_RECEIVE EAPOL: SUPP_BE entering state INITIALIZE EAP: EAP entering state DISABLED wlan0: Added interface wlan0 wlan0: State: DISCONNECTED -> DISCONNECTED nl80211: Set wlan0 operstate 0->0 (DORMANT) netlink: Operstate: ifindex=3 linkmode=-1 (no change), operstate=5 (IF_OPER_DORMANT) Daemonize.. $
我注意到這些:
nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Register frame command failed (type=208): ret=-114 (Operation already in progress) nl80211: Failed to register Action frame processing - ignore for now
但我不確定如何解釋這一點。
為什麼沒有設置 ESSID?
如果我手動執行 iwconfig,我可以設置 ESSID:
sudo iwconfig wlan0 essid UNIVERSITY-SECURE $ iwconfig wlan0 wlan0 IEEE 802.11abgn ESSID:"UNIVERSITY-SECURE" Mode:Managed Frequency:2.412 GHz Access Point: Not-Associated Tx-Power=15 dBm Retry short limit:7 RTS thr:off Fragment thr:off Power Management:off $
但顯然,要使連接正常工作,需要的不僅僅是 ESSID。
大學wpa的內容:
network={ ssid="UNIVERSITY-SECURE" scan_ssid=1 key_mgmt=WPA-EAP pairwise=CCMP TKIP group=CCMP TKIP eap=PEAP identity="my-user" password="mypass" ca_cert="university_comodo_cert.pem" phase1="peapver=0" phase2="MSCHAPV2" }
我已經使用這些設置在其他機器上連接而沒有問題。但我一直使用-Dwext,從不使用-Dnl80211。
lshw無線介面:
*-network description: Wireless interface product: Centrino Advanced-N 6205 [Taylor Peak] vendor: Intel Corporation physical id: 0 bus info: pci@0000:03:00.0 logical name: wlan0 version: 34 serial: width: 64 bits clock: 33MHz capabilities: pm msi pciexpress bus_master cap_list ethernet physical wireless configuration: broadcast=yes driver=iwlwifi driverversion=3.16.0-4-amd64 firmware=18.168.6.1 latency=0 link=no multicast=yes wireless=IEEE 802.11abgn
司機是
iwlwifi
。這是 iwlwifi 和 -Dnl80211 之間的問題嗎?如何進一步診斷此問題?
我最終刪除了 -B (在後台執行守護程序)
sudo wpa_supplicant -i wlan0 -c wpaconfig -D nl80211,wext
並意識到我的腳本沒有等待連接完成:
wlan0: CTRL-EVENT-CONNECTED - Connection to 00:11:22:33:44:55 completed [id=0 id_str=]
並且由於沒有看到 essid 而提前中止。似乎沒有選項可以
wpa_supplicant
僅在 CTRL-EVENT-CONNECTED 時以程式方式要求對自身進行守護,因此我可能不得不為此使用期望腳本。