移植RT5370无线网卡驱动到mini2440

时间:2021-10-27 15:25:41
买到一块usb无线网卡,芯片是ralink的RT5370.以下是将其驱动移植到mini2440的步骤。
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 = /opt/FriendlyARM/toolschain/4.4.3/bin/arm-linux-
第一个值是mini2440光盘中的内核源码所解压的,这个源码对应的是你开发板中的内核,而且有友善配置好的配置文件。使用其他源码会出现各种问题,比如invalid module format和版本不对等。我的做法是,直接解压光盘的源码,然后执行
cp config_mini2440_w35  .config                  #w35是我的LCD型号,按你的具体情况选择配置文件
然后执行
make clean
make zImage
生成一个新内核,这么做的目的是,完全配置好了所需的一些文件,以免在编译模块时老是报错,开始我居然编译了一个12M的驱动模块,后来成功了,其实是只有800多KB。最后的rt5370sta.ko的大小仅供参考。
第二个值是交叉编译工具的路径。根据你自己的情况修改。

4.执行make

5.下载模块和配置文件
把make生成的在os/linux 目录生成最后的ko文件rt5370sta.ko传送到开发板的/lib/modules/2.6.32.2-FriendlyARM目录下。同时要将源代码根目录的RT2870STA.dat文件传送到/etc/Wireless/RT2870STA/ 目录下,没有的话,新建目录即可。

6.安装模块。
依次执行
depmod
modprobe rt5370sta

我的安装情况如下:

点击(此处)折叠或打开

  1. [root@FriendlyARM /]# cp /udisk/rt5370sta.ko /lib/modules/2.6.32.2-FriendlyARM/
  2. [root@FriendlyARM /]# depmod
  3. [root@FriendlyARM /]# modprobe rt5370sta
  4. rtusb init rt2870 --->
  5. usbcore: registered new interface driver rt2870

如果出现以下报错,说明你的内核源码错了,按照步骤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. <--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=
  14. (Efuse for 3062/3562/3572) Size=0x2d [2d0-2fc] 
  15. 3. Phy Mode = 9 
  16. AntCfgInit: primary/secondary ant 0/
  17. AsicSetRxAnt, switch to main antenna 
  18. MCS Set = ff 00 00 00 01 
  19. <==== rt28xx_init, Status=
  20. 0x1300 = 00064300
再次ifconfig,就能看到ra0的网卡了。