RT3070_STA_驱动移植文档
[連載]RT3070STA 驅動移植
移植環境:
???????主機操作系統:Ubantu10.10
???????目標系統:at91sam9m10內核linux-2.6.30
???????交叉編譯器:arm-none-linux-gnueabi-
?
驅動版本:2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO
?
Networkingsupport?
Wireless?
-*-Wirelessextensions
[*]Wirelessextensions sysfs files
DeviceDrivers?
Networkdevice support?
WierlessLAN?
[*]WirelessLAN(IEEE 802.11)
<M>Ralinkdriver support
1.下載RT3070驅動源碼
版本:2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO
download:?下載頁面
選到?T8070/RT3070/RT3370/RT5370/RT5372USB ?這個然后隨便輸入名字和郵箱即可下載。
?
2.RT3070驅動修改
解壓 tar-zxvf 2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO.tar.gz
進入RT3070_Linux_STA目錄,看到有一個README_STA_usb文件,里面介紹了如何加載該驅動,先瀏覽一下
?
2.1?先設好環境變量
exportPATH=/usr/local/arm/arm-2007q1/bin:$PATH
?
2.2?makefile修改?(-為去掉設置,+為新加的設置)
#vimakefile
-#PLATFORM = PC
+ PLATFORM = IXP
#(選用的是IXP)
ifeq($(PLATFORM),IXP)
-LINUX_SRC = /project/stable/Gmtek/snapgear-uclibc/linux-2.6.x
-CROSS_COMPILE = arm-linux-
+ LINUX_SRC = /home/rpf413/at91/linux/linux-2.6.30
+ CROSS_COMPILE = /usr/local/arm/arm-2007q1/bin/arm-none-linux-gnueabi-
endif
2.3?/os/linux/config.mk修改
#cd/os/linux/
#vi config.mk
#Support Wpa_Supplicant
- HAS_WPA_SUPPLICANT=n
+HAS_WPA_SUPPLICANT=y
#Support Native WpaSupplicant for Network Maganger
-HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=n
+HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
ifeq($(PLATFORM),IXP)
- WFLAGS +=-DRT_BIG_ENDIAN
#加這個選項,模塊運行時顯示出錯,CPU不能工作
endif
ifeq($(PLATFORM),IXP)
?-CFLAGS := -v -D__KERNEL__ -DMODULE -I$(LINUX_SRC)/include-I$(RT28xx_DIR)/include -mbig-endian -Wall -Wstrict-prototypes-Wno-trigraphs -O2 -fno-strict-aliasing -fno-common -Uarm -fno-common-pipe -mapcs-32 -D__LINUX_ARM_ARCH__=5 -mcpu=xscale -mtune=xscale-malignment-traps -msoft-float $(WFLAGS)
????????-EXTRA_CFLAGS := -v $(WFLAGS) -I$(RT28xx_DIR)/include -mbig-endian
?+EXTRA_CFLAGS := -v $(WFLAGS) -I$(RT28xx_DIR)/include
?exportCFLAGS???????
endif
?
3、??編譯源碼
make通過,在2011_0107_RT3070_RT3370_Linux_STA_v2.5.0.1_DPO/os/linux目錄下生成了rt3070sta.ko,也就是RT3070的驅動了
?makeKBUILD_NOPEDANTIC=1
4.???拷貝驅動到目標系統
把RT2870STA.dat拷貝到/etc/Wireless/RT2870STA目錄下
把rt3070sta.ko拷貝到/xxx/目錄下xxx自定
?
5.加載驅動模塊
insmod/xxx/rt3070sta.ko
出現以下錯誤
insmod:error inserting 'rt3070sta.ko': -1 Unknown symbol inmodule
rt3070sta: Unknown symbol usb_alloc_urb
rt3070sta:Unknown symbol usb_free_urb
rt3070sta: Unknown symbolusb_register
rt3070sta: Unknown symbol usb_put_dev
rt3070sta:Unknown symbol usb_get_dev
rt3070sta: Unknown symbolusb_submit_urb
rt3070sta: Unknown symbolusb_control_msg
rt3070sta: Unknown symbolusb_deregister
rt3070sta: Unknown symbol usb_kill_urb
rt3070sta:Unknown symbol usb_buffer_free
rt3070sta: Unknown symbolusb_buffer_alloc
insmod: cannot insert `rt3070sta.ko': Unknownsymbol in module (-1): No such file or directory
原因未加載USB驅動
請修改UTIL/os/linux/usb_main_dev.c文件,在文件的開頭加上如下一行程序:
MODULE_LICENSE(“GPL”)
重新編譯:
MakeARCH=armCROSS_COMPILE=/usr/local/arm/arm-2007q1/bin/arm-none-linux-gnueabi-
??
5.3?然后再加載rt3070sta.ko
手動添加:/etc/Wireless/RT2870STA/RT2870STA.dat
insmod/xxx/rt3070sta.ko
顯示
rtusbinit rt2870 --->
===pAd = d1af4000, size = 514424 ===
<--RTMPAllocTxRxRingMemory, Status=0
<-- RTMPAllocAdapterBlock,Status=0
usbcore: registered new driver rt2870
加載成功
#ifconfig-a 可以查看到ra0設備的存在
若無密碼或密碼為WEP加密,則此時可以啟動無線,若密碼為WPA加密,則需移植wpa_supplicant,往后再說移植
?
6.無密碼或密碼為WEP加密:
6.1?啟動無線
#ifconfigra0 up??
(Efusefor 3062/3562/3572) Size=0x2d [2d0-2fc]
RTMP_TimerListAdd: addtimer obj d1b3c620!
RTMP_TimerListAdd: add timer objd1b3c650!
RTMP_TimerListAdd: add timer objd1b3c680!
RTMP_TimerListAdd: add timer objd1b3c5f0!
RTMP_TimerListAdd: add timer objd1b3c560!
RTMP_TimerListAdd: add timer objd1b3c590!
RTMP_TimerListAdd: add timer objd1b06b94!
RTMP_TimerListAdd: add timer objd1af5f54!
RTMP_TimerListAdd: add timer objd1af5f8c!
RTMP_TimerListAdd: add timer objd1b06c38!
RTMP_TimerListAdd: add timer objd1b06b34!
RTMP_TimerListAdd: add timer objd1b06c04!
-->RTUSBVenderReset
<--RTUSBVenderReset
Key1Stris Invalid key length(0) or Type(0)
Key2Str is Invalid keylength(0) or Type(0)
Key3Str is Invalid key length(0) orType(0)
Key4Str is Invalid key length(0) or Type(0)
1. Phy Mode= 5
2. Phy Mode = 5
phy mode> Error! The chip does notsupport 5G band 5!
RTMPSetPhyMode: channel is out of range, usefirst 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
啟動成功
?
6.2?設置ip
#ifconfigra0 192.168.50.166 netmask 255.255.255.0
?
6.3?掃描無線網絡
#iwlistra0 scan
===>rt_ioctl_giwscan.9(9) BSS returned, data->length = 1476
ra0???????Scancompleted :
??????????Cell01 - Address:F0:7D:68:96:A6:C2
????????????????????Protocol:802.11b/g/n
????????????????????ESSID:"dlinktf"
????????????????????Mode:Managed
????????????????????Frequency:2.412GHz (Channel 1)
????????????????????Quality=18/100??Signallevel=-83 dBm??Noise level=-92dBm
????????????????????Encryptionkey:on
????????????????????BitRates:54 Mb/s
??????????Cell02 - Address:F4:EC:38:55:AF:BC
????????????????????Protocol:802.11b/g/n
????????????????????ESSID:"visview"
????????????????????Mode:Managed
????????????????????Frequency:2.427GHz (Channel 4)
????????????????????Quality=18/100??Signallevel=-83 dBm??Noise level=-91dBm
????????????????????Encryptionkey:off
????????????????????BitRates:54 Mb/s
顯示以上信息說明模塊已經正常工作
?
6.4?設置SSID和WEP加密算法
可以參考里面的iwpriv_usage.txt進行配置,
6.4.1?無密碼
ConfigSTA to link with AP which is OPEN/NONE(Authentication/Encryption)
1.iwpriv ra0 set NetworkType=Infra
2. iwpriv ra0 setAuthMode=OPEN
3. iwpriv ra0 set EncrypType=NONE
4. iwpriv ra0set SSID="AP's SSID"
?
6.4.2?WEP加密算法
iwprivra0 set NetworkType=Infra
iwpriv ra0 set AuthMode=SHARED
iwprivra0 set EncrypType=WEP
iwpriv ra0 set DefaultKeyID=1
iwpriv ra0set Key1="AP's wep key"
iwpriv ra0 set SSID="AP'sSSID"
設置完一會,等網絡連接好就可以了。
WPA加密詳見openssl驅動移植,wpa_supplicant驅動移植。
RT3070wifi驅動的相關文章
-
bridge-utils驅動移植(2011-06-0314:54:38)
-
wpa_supplicant驅動移植(2011-06-0314:24:17)
-
Openss驅動移植(2011-06-0314:14:02)
-
wireless_tools移植(2011-06-0313:40:09)
-
[首篇]Linux無線WIFI模塊驅動移植(基于RT3070)(2011-06-0312:00:29)
-
RT3070wifi驅動的全部文章
http://blog168.chinaunix.net/space.php?uid=7406469&do=blog&id=353430
總結
以上是生活随笔為你收集整理的RT3070_STA_驱动移植文档的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: RT2870 5370等移植(ARM,X
- 下一篇: ubuntu10.4安装交叉编译器arm