當(dāng)前位置:首頁 > 嵌入式培訓(xùn) > 嵌入式學(xué)習(xí) > 講師博文 > Wifi加密工具移植(FS_4412)
WPA 全名為 Wi-Fi Protected Access,有WPA 和 WPA2兩個(gè)標(biāo)準(zhǔn),是一種保護(hù)無線電腦網(wǎng)絡(luò)(Wi-Fi)安全的系統(tǒng),它是應(yīng)研究者在前一代的系統(tǒng)有線等效加密(WEP)中找到的幾個(gè)嚴(yán)重的弱點(diǎn)而產(chǎn)生的。
OpenSSL 是一個(gè)強(qiáng)大的安全套接字層密碼庫,囊括主要的密碼算法、常用的密鑰和證書封裝管理功能及SSL。 SSL是Secure Sockets Layer(安全套接層協(xié)議)的縮寫,可以在Internet上提供秘密性傳輸。
協(xié)議當(dāng)我們移植好USB-Wifi驅(qū)動(dòng)后,還需要移植wpa_supplicant,移植所需要的源碼在\Cortex-A9\移植部分\Wifi\wifi加密源碼目錄中
1.Openssl移植
將\Cortex-A9\移植部分\Wifi\wifi加密源碼目錄中openssl-0.9.8e.tar和wpa_supplicant-0.7.2.tar拷貝到Ubuntu工作目錄(此文檔以/home/linux/work/4412為工作目錄)
執(zhí)行以下命令解壓源碼
tar xvf wpa_supplicant-0.7.2.tar.gz
tar xvf openssl-0.9.8e.tar.gz
解壓完后可以看到以下兩個(gè)目錄
openssl-0.9.8e和wpa_supplicant-0.7.2
1.1 安裝補(bǔ)丁
penssl源碼編譯需要打wpa_supplicant提供的補(bǔ)丁,我們選擇的openssl版本為openssl-0.9.8e所以我們需要wpa_supplicant-0.7.2/patches/openssl-0.9.8e-tls-extensions.patch拷貝到openssl-0.9.8e源碼目錄下。
執(zhí)行命令
cp wpa_supplicant-0.7.2/patches/openssl-0.9.8e-tls-extensions.patch ./openssl-0.9.8e
進(jìn)入openssl-0.9.8目錄開始打補(bǔ)丁,執(zhí)行以下命令
cd openssl-0.9.8e
patch -p1 < openssl-0.9.8e-tls-extensions.patch
1.2配置編譯安裝
在工作目錄/home/linux/work/4412里創(chuàng)建一個(gè)新的目錄wifi
mkdir /home/linux/work/4412/wifi
配置相關(guān)選項(xiàng),在openssl-0.9.8目錄中執(zhí)行以下命令
./Configure linux-elf-arm -DL_EDNIAN linux:'arm-cortex_a8-linux-gnueabi-gcc' shared
--prefix=/home/linux/work/4412/wifi/
如圖所示
配置命令執(zhí)行后,開始編譯安裝,執(zhí)行以下命令
make
make install
以上步驟成功后,可以在wifi目錄中看到如圖所示的新增目錄
2.移植wpa_supplicant
進(jìn)入wpa_supplicant-0.7.2/wpa_supplicant目錄
cd /home/linux/work/4412/wpa_supplicant-0.7.2/wpa_supplicant
2.1修改Makefile
修改第2行中的CC=gcc 為 CC=arm-cortex_a8-linux-gnueabi-gcc,并且注銷第1行和第3行。如下圖所示
修改為
在
CFLAGS += -I../src
CFLAGS += -I../src/utils
下添加:
CFLAGS += -I/home/linux/work/4412/wifi/include/
修改
LIBS += -lssl
為
LIBS += -lssl -L/home/linux/work/4412/wifi/lib/
修改
LIBS_p += -lcrypto
為
LIBS_p += -lcrypto -L/home/linux/work/4412/wifi/lib/
2.2編譯
在目錄/home/linux/work/4412/wpa_supplicant-0.7.2/wpa_supplicant下執(zhí)行命令
cp defconfig .config
make
編譯完后可以再目錄中發(fā)現(xiàn)以下兩個(gè)文件wpa_supplicant和wpa_cli
將wpa_supplicant和wpa_cli拷貝到開發(fā)板根文件系統(tǒng)的/bin目錄中(注意:此文件系統(tǒng)是開發(fā)板的根文件系統(tǒng))
3.測試
3.1添加文件resolv.conf
在開發(fā)板根文件系統(tǒng)的/etc目錄中添加文件resolv.conf
其內(nèi)容如下
# Generated by NetworkManager
nameserver 202.96.64.68
3.2添加文件wpa-psk-tkip.conf
在開發(fā)板根文件系統(tǒng)的/etc目錄中添加配置文件wpa-psk-tkip.conf
內(nèi)容如下
# WPA-PSK/TKIP
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="XXXX" # XXXX為無線路由的ssid
key_mgmt=WPA-PSK
proto=WPA
pairwise=CCMP
group=CCMP
psk="XXXXXXXX" # XXXXXXXX為對應(yīng)的無線路由密碼
}
3.3創(chuàng)建目錄/var/run/wpa_supplicant
在開發(fā)板根文件系統(tǒng)中穿件目錄/var/run/wpa_supplicant,執(zhí)行以下命令
mkdir /var/run/wpa_supplicant -p
3.4啟動(dòng)開發(fā)板測試
等開發(fā)板內(nèi)核啟動(dòng)完成后,在終端上執(zhí)行以下命令
注意:以下步驟都是在USB-wifi網(wǎng)卡驅(qū)動(dòng)安裝成功后才能正常測試,USB-Wifi驅(qū)動(dòng)安裝請參考《FS_4412平臺(tái)USB-Wifi驅(qū)動(dòng)移植參考文檔》文檔
配置網(wǎng)卡ip,執(zhí)行以下命令
ifconfig wlan0 192.168.1.200 //注意:配置的ip網(wǎng)段要和路由器的網(wǎng)段一致
配置默認(rèn)網(wǎng)關(guān)
route add default gw 192.168.1.1
啟動(dòng)wpa_supplicant連接無線網(wǎng)絡(luò)
wpa_supplicant -B -i wlan0 -c /etc/wpa-psk-tkip.conf
查看連接狀態(tài)
wpa_cli status