王雪



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