摘 要:本文主要介紹在以研華Freescale i.mx6處理器為核心的硬件平臺和Linux操作系統(tǒng)上,移植EDUP EP-N8508GS無線網(wǎng)卡驅動,并連接上網(wǎng)絡,接受其他無線電子設備的訪問的開發(fā)過程。
關鍵詞: Freescale i.mx6;Linux;EDUP EP-N8508GS;無線網(wǎng)絡
Abstract:This article mainly introduces the process of development to transplant EDUP EP-N8508GS driver and build a network for all kinds of electronic equipment to connect, based on the hardware platform with the core freescale i.mx6 processor and Linux operating system.
Key words: Freescale i.mx6;Linux;EDUP EP-N8508GS;Wireless network
1 引言
由于手機、平板和筆記本電腦等便攜式設備的應用日漸廣泛,用戶在專業(yè)的工作中,如果可以使用便攜式設備查看和分析專業(yè)性設備檢測數(shù)據(jù),生成分析報告,完成工作任務,那樣效率會提高不少,并且也減少對昂貴的專業(yè)性設備非必要的占用。作為專業(yè)性設備的開發(fā)人員,在嵌入式設備的開發(fā)中,引入無線網(wǎng)絡,可以給用戶提供一個便捷的訪問通道,使產(chǎn)品更加人性化,增加產(chǎn)品的市場競爭力。
本文主要介紹在以研華Freescale i.mx6處理器為核心的硬件平臺和Linux操作系統(tǒng)上,移植EDUP EP-N8508GS無線網(wǎng)卡驅動,并連接上網(wǎng)絡,接受其他無線電子設備的訪問的開發(fā)過程。
2 無線網(wǎng)絡環(huán)境搭建基本思路
要在嵌入式設備上使用無線網(wǎng)絡功能,需要以下幾步。首先,需要硬件的支持,本項目是以研華Freescale i.mx6為核心的硬件平臺,無線網(wǎng)卡采用的是EDUP EP-N8508GS。其次,需要在Linux內核里開啟對無線網(wǎng)絡的支持。第三,需要加載EDUP EP-N8508GS無線網(wǎng)卡的驅動。第四,啟動無線網(wǎng)絡,連接路由器。
3 無線網(wǎng)絡環(huán)境搭建具體實現(xiàn)
3.1 內核開啟對無線網(wǎng)絡的支持
在硬件已經(jīng)支持的條件下,要開啟對無線網(wǎng)絡的支持,首先需要內核的支持。在研華廠家提供的Linux3.0.5內核的默認配置下,還需要額外打開“enable usb wifi”的配置,另外在網(wǎng)絡和驅動方面需要配置的內容有:
[*] Networking support --->
[*] Wireless --->
<*> cfg80211 - wireless configuration API
[*] Wireless extensions sysfs files
<*> Generic IEEE 802.11 Networking Stack(mac80211)
Device Drivers --->
[*]Network device support --->
[*] Wireless LAN --->
<*> IEEE 802.11 for Host AP (Prism2/2.5/3 andWEP/TKIP/CCMP)
[*] Support downloading firmware images withHost AP driver
[*] Support for non-volatile firmwaredownload
完成以上配置之后,重新編譯內核后,將新內核燒寫進開發(fā)板即可。
3.2 移植EDUP EP-N8508GS無線網(wǎng)卡驅動
目前,市場上的無線網(wǎng)卡的廠家一般都會提供驅動的源碼。但是由于嵌入式系統(tǒng)的環(huán)境、編譯器和Linux內核版本等各有不同,作為開發(fā)人員,我們還需要將源碼編譯成能在自己開發(fā)的系統(tǒng)上跑的驅動。EDUP EP-N8508GS無線網(wǎng)卡驅動移植大致需要以下幾步。[1]
第一,下載realtek_rtl8192_1024驅動源碼并解壓縮。
第二,修改Makefile文件,使其適用于i.mx6核心板和Linux3.0.5內核。在Makefile文件中需要增加如下內容:
CONFIG_PLATFORM_IMAX6 = y
ifeq ($(CONFIG_PLATFORM_IMAX6), y)
EXTRA_CFLAGS += -DCONFIG_LITTLE_ENDIAN
ARCH := arm
KVER := 3.0.35
KSRC := /home/stndt/Desktop/7420LBV1170/source/linux-3.0.35
CROSS_COMPILE:=/home/stndt/Desktop/7420LBV1170/cross_compiler/fsl-linaro-toolc hain/bin/arm-none-linux-gnueabi-
endif
第三,編譯驅動。
第四,將生成的“8192cu.ko”通過網(wǎng)絡文件系統(tǒng)拷貝到開發(fā)板上/usr目錄下,insmod usr/8192cu.ko,然后通過ifconfig -a便可以看到網(wǎng)絡設備里增加了wlan0這一項。
3.3 wpa_supplicant工具的移植
直到3.2,無線網(wǎng)絡已經(jīng)啟動了。要使其他電子設備能連接到這個無線網(wǎng)絡,還需要將它連接到路由器上,這就需要用到wpa_supplicant工具。wpa_supplicant工具的移植步驟主要包括以下幾步。
第一,下載wpa_supplicant-0.6.10.tar.gz和openssl-0.9.8e.tar.gz工具包源碼并解壓縮;
第二,將wpa_supplicant中的補丁拷貝到openssl中,修改MakeFile如下,使其適合i.mx6+Linux3.0.5平臺,然后make,make install,此時,ssl庫已經(jīng)安裝在虛擬機的/usr/local/ssl目錄下了。
CC=/home/stndt/Desktop/7420LBV1170/cross_compiler/fsl-linaro-toolchain/bin/arm-none- linux-gnueabi-gcc
AR=/home/stndt/Desktop/7420LBV1170/cross_compiler/fsl-linaro-toolchain/bin/arm-none- linux-gnueabi-ar $(ARFLAGS) r
RANLIB=/home/stndt/Desktop/7420LBV1170/cross_compiler/fsl-linaro-toolchain/bin/arm-n one-linux-gnueabi-ranlib
INSTALLTOP=/usr/local/ssl
OPENSSLDIR=/usr/local/ssl
第三,編譯wpa_supplicant。修改.config文件如下,并編譯wpa_supplicant源代碼。
CC=/home/stndt/Desktop/7420LBV1170/cross_compiler/fsl-linaro-toolchain/bin/arm-n one- linux-gnueabi-gcc -L/usr/local/ssl/lib/
CFLAGS += -I/usr/local/ssl/include/
LIBS += -L/usr/local/ssl/lib/
第四,通過第三步后即可看到wpa_supplicant和wpa_cli兩個可執(zhí)行工具。其中,wpa_supplicant是核心程序,它和wpa_cli的關系就是服務和客戶端的關系:后臺運行wpa_supplicant,使用wpa_cli來搜索、設置、和連接網(wǎng)絡。將wpa_supplicant和wpa_cli通過網(wǎng)絡文件系統(tǒng)拷貝到開發(fā)板的/sbin目錄下。將wpa_supplicant.conf文件拷貝到/etc,根據(jù)需要修改文件,增加已知路由器的參數(shù),然后在開發(fā)板上執(zhí)行如下內容,即可以看到wlan0的IP,此時,開發(fā)板已經(jīng)通過無線網(wǎng)絡連接到路由器上了。
#wpa_supplicant -B -iwlan0 -c /etc/wpa_supplicant.conf –Dwext &
#dhclient wlan0
#ifconfig -a
4 應用情景
在實際的應用中,由于專業(yè)的儀器身處的環(huán)境不同,可能需要連接不同的路由器,而客戶不可能像開發(fā)人員一樣手動去系統(tǒng)里面修改配置文件,因此真正要在實際工作上應用無線網(wǎng)絡功能,還需要在設備的應用軟件上開發(fā)網(wǎng)絡設置功能,使用戶可以通過人性化的UI來選擇要連接的路由器,輸入路由器密碼,以及在設備軟件上開啟網(wǎng)絡服務,隨時接收來自其他電子設備的網(wǎng)絡數(shù)據(jù)需求。這樣,一個完整的無線網(wǎng)絡服務器才算真正地完成。而作為專業(yè)儀器廠家,還需要開發(fā)在各類電子設備上的應用軟件,如Windows應用軟件、基于安卓系統(tǒng)的移動設備上使用的App等作為客戶端來訪問儀器。
5 結束語
無線網(wǎng)絡通信的普及,給各行各業(yè)的工作帶來了便捷。usb無線網(wǎng)卡在專業(yè)性設備上的應用,使專業(yè)性儀器可以便捷地連接到網(wǎng)絡上,為各職能的客戶使用和訪問儀器提供便捷,減少客戶對專業(yè)性儀器在數(shù)量上的需求,提高專業(yè)設備的復用性,增加產(chǎn)品的競爭力。作為儀器的開發(fā)人員,應該多站在客戶的角度上思考,把先進的技術,融入到傳統(tǒng)的專業(yè)性的設備上,開發(fā)出更加人性化的產(chǎn)品。
參考文獻
[1]韋東山,嵌入式Linux應用開發(fā)完全手冊 人民郵電出版社,2008,08.
作者簡介
彭斯婷(1986-),女,廣東省汕頭市,助理工程師,學士學位,研究方向:超聲探傷儀設備研發(fā)。