【ARM-Linux开发】Rico Board上编译USB WiFi RT3070驱动

时间:2024-09-03 13:07:08

1.附件中提供了RT3070驱动源码包DPO_RT5572_LinuxSTA_2.6.1.3_20121022.tar.gz和编译好的驱动,这里选择使用taget_file.tar.gz中已经编译好的文件,其中还包括了与驱动相匹配的linux-3.12.10内核镜像。

2.将target_file目录下的RT2870STA.dat和rt3070sta.ko拷贝进Rico Board板子中

1
2
3
4
5
mkdir

–p
/etc/Wireless/RT2870STA/ 
   
cp

RT2870STA.dat
/etc/Wireless/RT2870STA/ 
   
cp

rt3070sta.ko
/home

3.加载驱动

1
2
3
4
5
6
7
root@RicoBoard
home
#
insmod rt3070sta.ko
rtusb
init rt2870 --->
===
pAd = e0936000, size = 512288 ===
<--
RTMPAllocAdapterBlock, Status=0
NVM
is EFUSE
usbcore:
registered new interface driver rt2870

4.然后可以通过ifconfig -a 可以看到系统已经正确识别网卡,名称为ra0

5 启动网卡ifconfig -a

01
02
03
04
05
06
07
08
09
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
root@RicoBoard
home
#
ifconfig ra0 up
NICLoadFirmware:
We need to load firmware
<--
RTMPAllocTxRxRingMemory, Status=0
RTMP_TimerListAdd:
add timer obj e097e0b8!
RTMP_TimerListAdd:
add timer obj e097e0e8!
RTMP_TimerListAdd:
add timer obj e097e118!
RTMP_TimerListAdd:
add timer obj e097e088!
RTMP_TimerListAdd:
add timer obj e097dff8!
RTMP_TimerListAdd:
add timer obj e097e028!
RTMP_TimerListAdd:
add timer obj e094882c!
RTMP_TimerListAdd:
add timer obj e0937d0c!
RTMP_TimerListAdd:
add timer obj e0937d40!
RTMP_TimerListAdd:
add timer obj e09488d0!
RTMP_TimerListAdd:
add timer obj e09487cc!
RTMP_TimerListAdd:
add timer obj e094889c!
-->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
3.
Phy Mode = 9
AntCfgInit:
primary
/secondary

ant 0
/1
MCS
Set = ff 00 00 00 01
<====
rt28xx_init, Status=0
0x1300
= 00064300

注:如果出现ERROR: 256 KiB atomic DMA coherent pool is too small!的错误,请将 coherent_pool=2M,添加在uboot的启动参数qspiargs后面。

6 .配置wpa_supplicant配置文件(wpa_supplicant相关工具已经移植好,包含在我们提供的文件系统中)

1
vi
/etc/wpa_supplicant.conf

编辑如下形式

1
2
3
4
5
6
7
8
9
ctrl_interface=/var/run/wpa_supplicant
network={
        ssid="XXXXXXXX"
        scan_ssid=1
        key_mgmt=WPA-EAP
WPA-PSK IEEE8021X NONE
        pairwise=TKIP
CCMP
        group=CCMP
TKIP WEP104 WEP40
        psk="XXXXXXXX"
}

注:ssid无线网名字,psk为无线网密码,请根据自己具体路由设置进行编辑配置文件

7.连接 wpa_supplicant -Dwext -ira0 -c/etc/wpa_supplicant.conf&

1
2
3
4
5
6
7
8
root@RicoBoard
home
#
wpa_supplicant -Dwext -ira0 -c/etc/wpa_supplicant.conf&
Successfully
initialized wpa_supplicant
===>rt_ioctl_giwscan.
7(7) BSS returned, data->length = 1509
ra0:
Trying to associate with 38:83:45:2c:c8:00 ==>rt_ioctl_siwfreq::SIOCSIWFREQ(Channel=1)
(SSID='TP-LINK-1201'

freq=2412 MHz)
ra0:
Associated with 38:83:45:2c:c8:00
ra0:
WPA: Key negotiation completed with 38:83:45:2c:c8:00 [PTK=CCMP GTK=CCMP]
ra0:
CTRL-EVENT-CONNECTED - Connection to 38:83:45:2c:c8:00 completed [
id=0
id_str=]

8.ping通外网

01
02
03
04
05
06
07
08
09
10
11
12
root@RicoBoard
home
#
ifconfig ra0 192.168.1.24 netmask 255.255.255.0
root@RicoBoard
home
#
route add default gw 192.168.1.1
root@RicoBoard
home
#
ping [url=http://www.baidu.com]www.baidu.com[/url]
PING
[url=http:
//www.baidu.com]www.baidu.com[/url]
(119.75.217.109): 56 data bytes
64
bytes from 119.75.217.109:
seq=0
ttl=53
time=72.089
ms
64
bytes from 119.75.217.109:
seq=1
ttl=53
time=73.024
ms
64
bytes from 119.75.217.109:
seq=2
ttl=53
time=72.862
ms
64
bytes from 119.75.217.109:
seq=3
ttl=53
time=73.278
ms
64
bytes from 119.75.217.109:
seq=4
ttl=53
time=73.044
ms
64
bytes from 119.75.217.109:
seq=5
ttl=53
time=72.439
ms
64
bytes from 119.75.217.109:
seq=6
ttl=53
time=72.777
ms
64
bytes from 119.75.217.109:
seq=7
ttl=53
time=73.292
ms

9.附件



【ARM-Linux开发】Rico Board上编译USB WiFi RT3070驱动 taget_file.rar (6.79
MB, 下载次数: 1160) 

【ARM-Linux开发】Rico Board上编译USB WiFi RT3070驱动 DPO_RT5572_LinuxSTA_2.6.1.3_20121022.rar (5.52
MB, 下载次数: 985)