公司項目要用到usb無線網卡,芯片是ralink的RT2870.如下是將其驅動移植到s3c2416的步驟。
1.下載驅動源碼,雷凌官網的下載地址是:
http://www.ralinktech.com/en/04_support/support.php?sn=501
2.解壓2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2
3.進入目錄,修改Makefile
將PLATFORM = PC 註釋掉,同時將#PLATFORM = SMDK的#去掉,即PLATFORM定義爲SMDK.
將ifeq ($(PLATFORM),SMDK)這句後面的兩句改成:
LINUX_SRC = /root/下載/linux-2.6.32.2 (這裏根據本身的開發板的內核源碼路徑來定義)
CROSS_COMPILE = /usr/local/arm/4.4.3/bin/arm-linux- (交叉編譯工具鏈所在的路徑)php
先看看內核配置是否把無線給加進去了:進入開發板內核 make menuconfig html
DeviceDrivers ---> linux
Networkdevice support --->web
WirelessLAN (non-hamradio) ---> less
[*]Wireless LAN drivers (non-hamradio) & WirelessExtensions ide
[*] Wireless Extension API overRtNetlink 工具
--- Obsolete Wireless cards support(pre-802.11) spa
<> STRIP (Metricom starmode radioIP) 調試
<> USB ZD1201 based Wireless devicesupport orm
<> IEEE 802.11 for H
否則你即便編譯好了這個模塊也不能用
配置好後保存,最好make下!
生成一個新內核,這麼作的目的是,徹底配置好了所需的一些文件,以避免在編譯模塊時總是報錯,開始我竟然編譯了一個12M的驅動模塊,後來成功了,實際上是隻有800多KB。最後的rt5370sta.ko的大小僅供參考。
注意:若是編譯出來模塊比較大(10M左右)能夠試試一下方法:
用命令:arm-linux-strip -S ****.ko 就能解決了。
原理就是去除調試信息,若是出現錯誤有多是你的arm-linux-gcc沒指名路徑,在前面再加上你的交叉編譯路徑便可。個人大小爲800多K。
第二個值是交叉編譯工具的路徑。根據你本身的狀況修改。
4.執行make
5.下載模塊和配置文件
把make生成的在os/linux 目錄生成最後的ko文件rt5370sta.ko傳送到開發板的/lib/modules/2.6.32.2-FriendlyARM目錄下。同時要將源代碼根目錄的RT2870STA.dat文件傳送到/etc/Wireless/RT2870STA/ 目錄下,沒有的話,新建目錄便可。
6.安裝模塊。
insmod rt5370sta.ko
若是出現如下報錯,說明你的內核源碼錯了,按照步驟3的說明從新去處理內核源碼。
rt5370sta: version magic '2.6.32.59 mod_unload ARMv4 ' should be '2.6.32.2-Frie'
insmod: cannot insert 'rt5370sta.ko': invalid module format
最後就是插入網卡,這個時候ifconfig是看不到網卡的,你要啓用網卡,用如下命令:
ifconfig ra0 up
個人狀況是這樣的:
- [root@FriendlyARM /]# ifconfig ra0 up
- (Efuse for 3062/3562/3572) Size=0x2d [2d0-2fc]
- -->RTUSBVenderReset
- <</SPAN>--RTUSBVenderReset
- Key1Str is Invalid key length(0) or Type(0)
- Key2Str is Invalid key length(0) or Type(0)
- Key3Str is Invalid key length(0) or Type(0)
- Key4Str is Invalid key length(0) or Type(0)
- 1. Phy Mode = 5
- 2. Phy Mode = 5
- NVM is Efuse and its size =2d[2d0-2fc]
- phy mode> The chip does not support 5G band
- RTMPSetPhyMode: channel is out of range, use first channel=1
- (Efuse for 3062/3562/3572) Size=0x2d [2d0-2fc]
- 3. Phy Mode = 9
- AntCfgInit: primary/secondary ant 0/1
- AsicSetRxAnt, switch to main antenna
- MCS Set = ff 00 00 00 01
- <</SPAN>==== rt28xx_init, Status=0
- 0x1300 = 00064300
再次ifconfig,就能看到ra0的網卡了。
如何驗證個人無線網卡是否已經能夠正常使用了??
請看個人下片文章:RT2870移植到s3c2416後續驗證無線網卡:iwconfig的使用方法
http://blog.sina.com.cn/s/blog_7d7e9d0f0101l13k.html