移植RT2870無線網卡驅動到s3c2416

公司項目要用到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
個人狀況是這樣的:

點擊(此處)摺疊或打開

  1. [root@FriendlyARM /]# ifconfig ra0 up 
  2. (Efuse for 3062/3562/3572) Size=0x2d [2d0-2fc] 
  3. -->RTUSBVenderReset 
  4. <</SPAN>--RTUSBVenderReset 
  5. Key1Str is Invalid key length(0) or Type(0) 
  6. Key2Str is Invalid key length(0) or Type(0) 
  7. Key3Str is Invalid key length(0) or Type(0) 
  8. Key4Str is Invalid key length(0) or Type(0) 
  9. 1. Phy Mode = 5 
  10. 2. Phy Mode = 5 
  11. NVM is Efuse and its size =2d[2d0-2fc] 
  12. phy mode> The chip does not support 5G band 
  13. RTMPSetPhyMode: channel is out of range, use first channel=1 
  14. (Efuse for 3062/3562/3572) Size=0x2d [2d0-2fc] 
  15. 3. Phy Mode = 9 
  16. AntCfgInit: primary/secondary ant 0/1 
  17. AsicSetRxAnt, switch to main antenna 
  18. MCS Set = ff 00 00 00 01 
  19. <</SPAN>==== rt28xx_init, Status=0 
  20. 0x1300 = 00064300

再次ifconfig,就能看到ra0的網卡了。

 如何驗證個人無線網卡是否已經能夠正常使用了??

 請看個人下片文章:RT2870移植到s3c2416後續驗證無線網卡:iwconfig的使用方法

http://blog.sina.com.cn/s/blog_7d7e9d0f0101l13k.html 

相關文章
相關標籤/搜索