使用wpa_supplicant工具配置和連接配接WIFI
實驗版本及下載下傳位址
wpa_supplicant:wpa_supplicant-2.7
連結: [http://w1.fi/wpa_supplicant/]
安裝依賴庫openssl
配置編譯選項./config shared no-asm --prefix=$PWD/tmp
./config表示根據後面的編譯選項生成一Makefile檔案,“shared”表示生成共享庫;“no-asm”表示去掉彙編部分;“–prefix=”後面跟着生成的項目所存放的路徑。
其他配置選項可以輸入./Configure --help檢視
修改Makefile
減号表示原來的代碼,加号表示修改後的代碼
- CROSS_COMPILE=
+ CROSS_COMPILE=arm-linux-
- CNF_CFLAGS=-pthread -m64
- CNF_CXXFLAGS=-std=c++11 -pthread -m64
+ CNF_CFLAGS=-pthread
+ CNF_CXXFLAGS=-std=c++11 -pthread
編譯安裝
執行make編譯和make install安裝指令
最後在目前目錄的tmp目錄下會生成項目檔案
複制庫檔案到跟檔案系統lib目錄下cp *so* -rf -d ~/work/nfs/wifi/lib/
要根據自己的具體情況複制庫檔案到對應的目錄下
編譯安裝wpa_supplicant
建立一個.config檔案
解壓後,cd wpa_supplicant-2.0/wpa_supplicant/進入wpa_supplicant根檔案
複制預設配置為.configcp defconfig .config
修改.config檔案
減号表示原來的代碼,加号表示修改後的代碼
# Additional directories for cross-compilation on Linux host for mingw target
- #CFLAGS += -I/opt/mingw/mingw32/include/ddk
- #LIBS += -L/opt/mingw/mingw32/lib
- #CC=mingw32-gcc
# Additional directories for cross-compilation on Linux host for mingw target
+ CFLAGS += -I/home/zyl/work/project/wifi/openssl-1.1.1b/tmp/include
+ LIBS += -L/home/zyl/work/project/wifi/openssl-1.1.1b/tmp/lib
+ CC=arm-linux-gcc
CFLAGS後面填上一步安裝好的openssl的include目錄
LIBS後面填上一步安裝好的openssl的lib目錄
CC表示編譯工具
3.編譯安裝
編譯make
安裝make DESTDIR=$PWD/tmp install
在後面加上DESTDIR=$PWD/tmp編譯項表示安裝到目前檔案夾下的tmp目錄
然後我們可以在子目錄下看到wpa_cli,wpa_passphrase和wpa_supplicant三個檔案
wpa_supplicant是核心程式,它和wpa_cli的關系就是服務和用戶端的關系
wpa_cli用來搜尋、設定、和連接配接網絡。
wpa_passphrase網絡配置可以使用wpa_passphrase工具自動生成并添加到配置檔案中。
把這三個檔案複制到開發闆的根檔案/bin目錄下就可以使用了
使用wpa_supplicant工具連接配接WIFI
建立配置檔案
wpa_supplicant連接配接WIFI的時候會從配置檔案中讀取賬号和密碼,以及加密方式等, 是以我們再運作wpa_supplicant工具的時候要提前寫好配置檔案。
配置檔案名稱自定,但是要以 .conf 為字尾,并儲存在 /etc/ 目錄下,這邊給出一個配置檔案的例子。
ctrl_interface=/var/run/wpa_supplicant # 一個目錄,用于wpa_supplicant和wpa_cli的socket通信
network={
ssid="dswei"#WIFI名稱
proto=WPA # proto: list of accepted protocols, 可取WPA,RSN
# 如果沒有設定,預設為: WPA RSN
key_mgmt=WPA-PSK # 認證方式
# 如果沒有設定,預設為: WPA-PSK WPA-EAP
pairwise=TKIP # 如果沒有設定,預設為: CCMP TKIP
group=TKIP # 如果沒有設定,預設為: CCMP TKIP WEP104 WEP40
psk="a123654" # WIFI密碼
}
在一般使用中我們隻要設定ssid和psk,其他全部使用預設的,就可以連接配接上WIFI。
建立一個socket通信的目錄mkdir -p /var/run/wpa_supplicant
測試和連接配接WIFIwpa_supplicant -B -c/etc/plaintext.conf -iwlan0
-B為背景運作,-c為配置檔案目錄,plaintext.conf為配置檔案的名稱,根據實際情況填寫。其他配置選項可以看wpa_supplicant-2.7/wpa_supplicant/README,然後我們就可以看到開發闆和手機連接配接上了。
用wpa_cli -iwlan0 status可以檢視網絡連接配接狀态