連接配接路由器的方式可以有iwconfig或者通過wpa_supplicant,因為大部分路由器的加密方式是WPA,是以因為加密方式為 WPA-PSK 是以得用 wpa_supplicant 而不能使用 iwconfig wlan0 key xxx 形式,iwconfig key方式适用于WEP和不加密的方式。
iwconfig發現wlp1s0 no wireless extensions
root@imx8mqevk:~# iwconfig
wlp1s0 no wireless extensions
解決辦法是在核心中添加相應的支援,如下:
Networking Support
Wireless
cfg80211 wireless extensions compatibility
之後就好了
root@imx8mqevk:~# iwconfig
wlp1s0 IEEE 802.11 ESSID:off/any
Mode:Managed Access Point: Not-Associated Tx-Power=0 dBm
Retry short limit:7 RTS thr:off Fragment thr:off
Encryption key:off
Power Management:on
wpa_supplicant.conf
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev
update_config=1
network={
ssid="External-Internet"
#psk="xxxx"
psk=992194d7a6158009bfa25773108291642f28a0c32a31ab2556a15dee97ef0dbb
}
ctrl_interface指定一個目錄,在這個目錄下wap_supplicant會生成一個wlan0類似的socket檔案,這個socket檔案wpa_cli需要使用到,wpa_cli通過”-p 這個目錄”來找到這個socket檔案
network=是無線接入點的具體配置,這部分内容可以通過
wpa_passphrase <ssid> [passphrase]
生成,例如:
$ wpa_passphrase TPLINK 12345678
network={
ssid="TPLINK"
#psk="12345678"
psk=992194d7a6158009bfa25773108291642f28a0c32a31ab2556a15dee97ef0dbb
}
ssid,接入點名稱
scan_ssid=1,如果無線接入點是隐藏的,這個就必須要
psk,是加密後的密碼
wpa_supplicant連接配接無線網
wpa_supplicant -B -i wlp1s0 -c wpa_supplicant.conf -D nl80211,wext
會出現錯誤”rfkill: Cannot open RFKILL control device”
因為大多數時候核心中沒有配置rfkill,是以就沒有/dev/rfkill裝置節點,解決辦法就是核心中選上CONFIG_RFKILL
root@imx8mqevk:~# wpa_supplicant -B -i wlp1s0 -c wpa_supplicant.conf -D nl80211,wext
Successfully initialized wpa_supplicant
[ 2172.902427] wlp1s0: authenticate with a4:6c:2a:46:cb:9b
[ 2172.976340] wlp1s0: send auth to a4:6c:2a:46:cb:9b (try 1/3)
[ 2172.983279] wlp1s0: authenticated
[ 2172.992765] wlp1s0: associate with a4:6c:2a:46:cb:9b (try 1/3)
[ 2173.070361] wlp1s0: RX AssocResp from a4:6c:2a:46:cb:9b (capab=0x11 status=0 aid=159)
[ 2173.081233] wlp1s0: associated