Mini6410移植RT3070网卡

来源:互联网 发布:我的世界网络联机 编辑:程序博客网 时间:2024/05/29 09:10

Mini6410移植RT3070网卡

 

开发板:MINI6410

开发环境:UBUNTU10.10 

交叉编译工具:arm-linux-gcc-4.5.1

 

参考http://blog.csdn.net/ido158/article/details/6774726

 

RT3070无线网卡分两种驱动,分别是STA模式和软AP模式。现将移植的过程记录下来。

下载 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO.tar.bz2 , 这个是STA模式的RT3070网卡驱动。

# tar jxvf 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO.tar.bz2

#cd 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO.tar.bz2

修改Makefile

#vim Makefile 

 

1.找到

RTMP_SRC_DIR = $(RT28xx_DIR)/RT$(CHIPSET)

#PLATFORM: Target platform 
PLATFORM = PC
#PLATFORM = 5VT
#PLATFORM = IKANOS_V160

红色的 PC 修改成你需要的目标机器,我的目标平台是arm SUMSUNG 2440,所以我们修改成SMDK

2.找到

ifeq ($(PLATFORM),SMDK)
LINUX_SRC =  /root/fuck/linux-2.6.28.7/
CROSS_COMPILE = /usr/local/arm/3.4.1/bin/arm-linux-
endif

红字部分修改成你内核代码的位置,同时指定你的编译器位置。

3. make.

4.rt3070sta.ko加入到文件系统中,在目标板中运行 insmod rt3070sta.ko.

5.如果加载出现一下错误:

#insmod rt3070sta.ko

     insmod: error inserting 'rt3070sta.ko': -1 Unknown symbol in module

[ 2443.154486] rt2070ap: Unknown symbol usb_alloc_urb

[ 2443.154628] rt2070ap: Unknown symbol usb_free_urb

[ 2443.155032] rt2070ap: Unknown symbol usb_register_driver

[ 2443.155324] rt2070ap: Unknown symbol usb_put_dev

[ 2443.155439] rt2070ap: Unknown symbol usb_get_dev

[ 2443.155652] rt2070ap: Unknown symbol usb_submit_urb

[ 2443.156164] rt2070ap: Unknown symbol usb_control_msg

[ 2443.156553] rt2070ap: Unknown symbol usb_deregister

[ 2443.157013] rt2070ap: Unknown symbol usb_kill_urb

[ 2443.157116] rt2070ap: Unknown symbol usb_buffer_free

[ 2443.157443] rt2070ap: Unknown symbol find_vpid

[ 2443.157675] rt2070ap: Unknown symbol usb_buffer_alloc

 

开始我也不知道为什么会出现上面的这些问题,后来在网上找到了遇

到同一问题的一个开发人员,用下面这个办法解决了这个问题。

需要在文件os/linux/usb_main_dev.c文件的开头加上如下一行代码:

 

MODULE_LICENSE(“GPL”);

 

然后重新编译、重新加载,即可得到正确的结果。

 

7.ifconfig ra0 up 

成功加载,不过这个是在你正确的将source目录下的RT2870STA.dat复制到目标文件系统的/etc/Wireless/RT2870STA/目录下。

8.# ifconfig ra0 up
(Efuse for 3062/3562/3572) Size=0x2d [2d0-2fc] 
RTMP_TimerListAdd: add timer obj c48d2288!
RTMP_TimerListAdd: add timer obj c48d22b4!
RTMP_TimerListAdd: add timer obj c48d22e0!
RTMP_TimerListAdd: add timer obj c48d225c!
RTMP_TimerListAdd: add timer obj c48d21d8!
RTMP_TimerListAdd: add timer obj c48d2204!
RTMP_TimerListAdd: add timer obj c489c81c!
RTMP_TimerListAdd: add timer obj c488bf44!
RTMP_TimerListAdd: add timer obj c488bf78!
RTMP_TimerListAdd: add timer obj c489c8b4!
RTMP_TimerListAdd: add timer obj c489c7c4!
RTMP_TimerListAdd: add timer obj c489c884!
-->RTUSBVenderReset
<--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> Error! The chip does not support 5G band 5!
RTMPSetPhyMode: channel is out of range, use first channel=1 
(Efuse for 3062/3562/3572) Size=0x2d [2d0-2fc] 
3. Phy Mode = 9
MCS Set = ff 00 00 00 01
<==== rt28xx_init, Status=0
0x1300 = 00064300

运行结果,默认的RT2870STA.DAT文件设置的一些问题。修改文件即可。

 4. 建立文件夹 /etc/Wireless/RT2870STA/ ,复制RT2870STA.DAT文件到该文件夹中。

总结,RT3070无线网卡的编译折磨了我一整天,收获还是很大的。

无线网卡移植成功后还需要iwconfig工具设置网卡的一些命令。

原创粉丝点击