天嵌E9平台下進行USB Wifi模組RT3070驅動的移植,wifirt3070
由於項目工作需要,要在天嵌E9平台下實現wifi的點對點,點對多點的傳輸。
Wifi 模組晶片:雷淩3070晶片
嵌入式平台:E9(ARM)
交叉編譯環境:arm-none-linux-gnueabi
1 首先下載了wifi模組的驅動 2011_0719_RT3070_RT3370_RT5370_RT5372_RT2070_Linux_STA_V2.5.0.3_DPO
2 對驅動進行交叉編譯
a 開啟驅動檔案解壓後的檔案,如果需要WPA等功能,可開啟./os/linux/config.mk進行編,如果不需要直接進入b步
b 開啟驅動檔案根目錄下的Makefile進行修改,首先CHIPSET 改為3070
然後對交叉編譯環境進行配置,預設的PLATFORM = PC,我們對PC那塊代碼進行改動,改動後如下
ifeq ($(PLATFORM),PC)# Linux 2.6LINUX_SRC = /opt/E9_CD/Linux/linux_E9_3.0.35_for_Linux# Linux 2.4 Change to your local setting#LINUX_SRC = /usr/src/linux-2.4LINUX_SRC_MODULE = /opt/E9_CD/Linux/linux_E9_3.0.35_for_Linux/drivers/net/wireless/CROSS_COMPILE = /opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/arm-none-linux-gnueabi-endif
儲存後進行sudo make
其中 linux_E9_3.0.35為linux核心的源碼所在目錄
3 編譯成功後將根目錄下的RT2870STA.dat和./os/linux/目錄下的rt30870.sta.ko拷貝進板子中
mkdir –p /etc/Wireless/RT2870STA/cp RT2870STA.dat / etc/Wireless/RT2870STA/cp rt3070sta.ko /usr
4 載入驅動
insmod /usr/rt3070sta.ko
5 然後可以通過ifconfig -a 可以看到系統已經正確識別網卡,名稱為ra0
6 啟動網卡 ifconfig ra0 up 看到有資料輸出,成功移植
---------------------------------------------------------------------------------------------------------------------------------------------------
可能遇到的問題:
1 rtmp_chip.c:470:error: implicit declaration of function 'RT33xx_Init'
解決:注釋掉chips目錄下rtmp_chip.c中第470行的RT33xx_Init(pAd)
2 insmod的時候出問題
解決:一般這裡的問題都是板子核心版本與交叉編譯時間所用的核心版本不一致導致,可以uname -a查看板子核心版本,modinfo rt3070sta.ko查看產生的驅動版本號碼,看是否一致。我遇到這個問題解決了一上午,發現版本號碼一個armv5一個armv7,最後是先對linux源碼進行了編譯(設定交叉編譯環境後,運行所帶的build.sh),再編譯wifi模組解決的。編譯核心的時候,注意設定交叉編譯環境。
相關博文推薦:
1 http://blog.chinaunix.net/uid-28599023-id-3483821.html
2 http://www.linuxidc.com/Linux/2011-03/33483.htm
3 http://blog.csdn.net/zhuqing_739/article/details/6259686#
usb介面wifi模組3070驅動安裝說明
這個是安裝網卡的驅動步驟啊
1 解壓並進入到你剛才解壓的目錄裡面
2 執行編譯驅動程式之前你要選擇好對應的系統核心版本跟源檔案的路徑
3配置好你的GCC編譯器(LD不知道是什麼東東) 然後還要配置2個參數為y(應該就是預設選擇YES)
4編譯驅動程式 To fix "error: too few arguments to function ˉiwe_stream_add_event"
這個應該是一個 把編譯中的錯誤顯示並寫入日誌
5複製編譯好的驅動到 /etc/Wireless/RT2870STA/RT2870STA.dat
6把驅動添加到系統附加元件裡面 然後啟用網卡
7卸載驅動(先要停止網卡 然後刪除驅動即可)
arm開發板,wifi驅動移植, 我用的友善之臂的mini2440板子,核心linux26322,wifi為rt3070
需要先確認無線網路介面wlan0是否up.
#ifconfig -a (查看所有網路介面狀態)
如果wlan0 為down:
#ifconfig wlan0 up
現在應該就可以搜AP了
#iwlist wlan0 scan