天天看點

【ARM-Linux開發】Rico Board上編譯USB WiFi RT3070驅動

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.加載驅動

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 

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相關工具已經移植好,包含在我們提供的檔案系統中)

vi

/

etc

/

wpa_supplicant.conf

編輯如下形式

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&

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通外網

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) 

繼續閱讀