王雪
摘要:本文介紹了一款無線網(wǎng)卡在嵌入式設(shè)備的移植和應(yīng)用。主要內(nèi)容包括:無線網(wǎng)卡型號的選擇、無線網(wǎng)卡驅(qū)動程序的移植、安全認(rèn)證的配置和使用以及保證網(wǎng)絡(luò)連接的策略方案。
關(guān)鍵詞:NW335;嵌入式Linux移植;WPA
1 背景
當(dāng)今的物聯(lián)網(wǎng)時(shí)代,移動終端設(shè)備的通信得到廣泛的應(yīng)用。各種設(shè)備相繼接入無線網(wǎng)絡(luò),從而實(shí)現(xiàn)更靈活、更方便快速的網(wǎng)絡(luò)通信。
無線網(wǎng)卡模塊是實(shí)現(xiàn)無線網(wǎng)絡(luò)通信的硬件條件,目前來看主要有兩種形式(1)內(nèi)置式無線網(wǎng)卡:即將網(wǎng)卡芯片與主板集成在一起,如手機(jī)、筆記本電腦等;(2)外置式無線網(wǎng)卡:利用USB接口外接USB無線網(wǎng)卡。這兩種方式各有優(yōu)勢,本文主要研究外置式無線網(wǎng)卡的實(shí)際應(yīng)用。
2 無線網(wǎng)卡驅(qū)動程序的配置與移植
2.1 無線網(wǎng)卡的選擇
從技術(shù)角度看,無線網(wǎng)卡的選擇要注意以下幾點(diǎn):
(1)支持802.11b/g/n無線傳輸協(xié)議。
(2)采用主流廠商的無線網(wǎng)卡芯片.
(3)具備外置增益天線。
根據(jù)以上要求,本論文中選用了磊科的NW335型號的無線網(wǎng)卡來進(jìn)行測試操作。
2.2軟硬件平臺
硬件平臺:S3c6410
軟件平臺:linux2.36.2
交叉編譯工具:arm-linux-gcc 4.3.2
2.3 NW335驅(qū)動程序的移植
不同廠商,不同型號的無線網(wǎng)卡的驅(qū)動程序不盡相同。因此,對于無線網(wǎng)卡驅(qū)動程序的移植就必不可少了。下面開始介紹對該款網(wǎng)卡的驅(qū)動程序移植到嵌入式linux操作系統(tǒng)的過程:
(1)登錄realtek官網(wǎng):http://www.realtek.com.tw/Default.aspx,獲取驅(qū)動程序源代碼,rtl8188C_8192C_usb_linux_v3.4.4_4749.20120730.tar.gz
(2)將驅(qū)動程序以共享文件夾的方式移動到ubuntu虛擬機(jī)中,然后解壓縮,運(yùn)行: tar xzvf rtl8188C_8192C_usb_linux_v3.4.4_4749.20120730.tar.gz
(3) 打開解壓后的文件夾,如下圖:
修改Makefile,運(yùn)行g(shù)edit Makefie,打開文件,將原來的代碼
CONFIG_PLATFORM_ANDROID_X86=y
CONFIG_PLATFORM_ARM_S3C6K4 =n
改為:
CONFIG_PLATFORM_ANDROID_X86=n
CONFIG_PLATFORM_ARM_S3C6K4 =y
執(zhí)行make命令,會生成一個.ko文件,這里生成一個8188cu.ko文件。即是我們生成的linux下無線網(wǎng)卡的驅(qū)動程序。將該文件復(fù)制到開發(fā)板存儲器中,執(zhí)行:insmod /8188cu.ko 即可加載該網(wǎng)卡的驅(qū)動程序。
3 安全認(rèn)證與加密
對于無線網(wǎng)絡(luò)來說,由于信號不是在密閉的線路中傳輸,其安全性是必須要考慮的因素,數(shù)據(jù)傳輸過程中的協(xié)議與加密算法是非常重要的。目前主要的加密算法有兩種(1) WEP安全加密方式(2) WPA安全加密方式,其中wpa加密方式是目前最安全的加密技術(shù),其配置過程如下:
一、下載并解壓縮源碼
登錄 http://hostap.epitest.fi/wpa_supplicant/,下載wpa_supplicant-0.7.3.tar.gz (openssl用到0.7.3提供的補(bǔ)?。⑦M(jìn)行解壓縮:
#tar xvfz wpa_supplicant-0.7.3.tar.gz
下載www.openssl.org/source/openssl-0.9.8e.tar.gz,并進(jìn)行解壓縮
#tar zxvf openssl-0.9.8e.tar.gz
二、編譯openssl庫
將wpa_supplicant中的補(bǔ)丁拷貝到openssl中 ,修改配置文件,如下圖所示:
三、編譯wpa_supplicant ,修改配置文件后進(jìn)行編譯,如下圖所示:
經(jīng)過編譯后的wpa_supplicant源程序可以看到兩個主要的可執(zhí)行工具:wpa_supplicant和wpa_cli。 wpa_supplicant是核心程序,它和wpa_cli的關(guān)系就是服務(wù)和客戶端的關(guān)系:后臺運(yùn)行wpa_supplicant,使用wpa_cli 來搜索、設(shè)置、和連接網(wǎng)絡(luò)。
四、配置wpa_supplicant工具
修改wpa_supplicant.conf配置文件,其內(nèi)容如下:
wpa_supplicant -B -i wlan0 -c /mnt/disk/home/wireless/wpa_supplicant.conf
4 保證不斷網(wǎng)的方案
因?yàn)楦鞣N各樣的原因,網(wǎng)絡(luò)有可能會連接不成功。如網(wǎng)絡(luò)設(shè)備故障,斷電,設(shè)備自身重啟,軟件硬件故障等。為了保證網(wǎng)絡(luò)連接的穩(wěn)定性,需要制定的聯(lián)網(wǎng)策略,對斷網(wǎng)情況進(jìn)行修復(fù)處理。
1.啟動時(shí)進(jìn)行網(wǎng)絡(luò)檢測,若不能通過便重新啟動,代碼如下:
2.在運(yùn)行期間每隔一段時(shí)間檢測網(wǎng)絡(luò),若不成功便重新連接網(wǎng)絡(luò):
5 結(jié)論
通過對磊科NW335無線網(wǎng)卡的移植,可以實(shí)現(xiàn)帶有USB接口的LINUX設(shè)備的聯(lián)網(wǎng),實(shí)用效果比較理想。在具備網(wǎng)絡(luò)連接檢測軟件運(yùn)行的情況下,設(shè)備可以實(shí)現(xiàn)不間斷的網(wǎng)絡(luò)通信。
參考文獻(xiàn)
[1] 李俊.嵌入式Linux設(shè)備驅(qū)動開發(fā)詳解[M].北京:人民郵電出版社,2008.126-167
[2] 宋寶華.Linux設(shè)備驅(qū)動開發(fā)詳解[M].北京:人民郵電出版社,2008.477-528
[3] 劉淼.嵌入式系統(tǒng)接口設(shè)計(jì)與Linux驅(qū)動程序開發(fā)[M].北京:航空航天大學(xué)出版社,2006.205-234
[4] 華清遠(yuǎn)見嵌入式培訓(xùn)中心linux設(shè)備驅(qū)動開發(fā)詳解 [M]北京:人民郵電出版社2007
[5] 趙建領(lǐng) 51單片機(jī)開發(fā)與應(yīng)用[M] 電子工業(yè)出版社 2010
[6] 李朱峰 linux2.6嵌入式系統(tǒng)開發(fā)與實(shí)踐 北京航空航天大學(xué)出版社 2010