[连载]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_驱动移植文档相关推荐

  1. MT6739 Camera驱动移植文档

    文章目录 把厂商提供的驱动代码拷贝到对应路径 KERNEL层 HAL层 (1) 修改ProjectConfig.mk配置文件 修改与imgsensor相关的配置信息 修改与lens相关的配置信息 修改 ...

  2. at91sam9260ek开发板linux移植文档,AT91SAM9260EK开发板 Linux 移植 移植 文档

    AT91SAM9260EK开发板 Linux 移植 移植 文档 AT91SAM9260EKAT91SAM9260EKAT91SAM9260EKAT91SAM9260EK 开发板开发板开发板开发板 Li ...

  3. WLAN驱动分析文档_gzc126_新浪博客

    WLAN驱动分析文档 目 录 1 引言 3 1.1 目的 3 1.2 项目背景 3 1.3 参考资料 3 2 预备知识 3 2.1 WLAN技术 3 2.2 802.11协议简述 3 2.2.1 概述 ...

  4. ccs安装多版本编译器离线_CCS6.0教程_ccs 全速运行,ccs6 离线安装缺少100v2 驱动-C文档类资源...

    CCS6.0教程_ccs 全速运行,ccs6 离线安装缺少100v2 驱动-C文档类资源 19c4eb  在  2020-05-12 12:18:33  上传  8.3 MB dsp 帮助初学者了解和 ...

  5. 博远CA移植文档说明

    博远CA移植文档说明201212 为了方便CA在各种不同系统和平台上使用和CA系统的保密性,将CA重要部分做成库. 现在将CA分成如下几个个部分: CA提供给机顶盒函数接口 1.1 BU8  BYCA ...

  6. wifi驱动分析文档

    WLAN驱动分析文档 目 录 1引言 3 1.1目的 3 1.2项目背景 3 1.3参考资料 3 2预备知识 3 2.1WLAN技术 3 2.2802.11协议简述 3 2.2.1概述 3 2.2.2 ...

  7. android 移植 距离感应,Android sensors移植文档

    1  硬件工作原理 1.1 G-sensor主要管脚定义 上图是LIS3DHTR在TD_100中的原理图 l 电压:VDD:sensor的供电电源. VDD_IO:sensor的IO电源. l 中断: ...

  8. 迅为i.MX6ULL开发板-Qt5.7Mplayer 移植文档

    硬件平台:迅为iMX6ULL开发板 84.1 交叉编译 Libmad-0.15.1b 本章节使用的资料已经放到了开发板网盘资料中,路径为:"11_Linux 系统开发进阶\84_章节使用资 ...

  9. LCD framebuffer驱动设计文档

    内容提要: 1. android display相关的名词 2. 调试LCD驱动需要注意的步骤 3. 关于帧缓冲区及I/O内存 ------------------------------------ ...

最新文章

  1. Eclipse里web的依赖工程部署的简便方法
  2. 3D Reconstruction三维重建halcon算子,持续更新
  3. python中如何定义函数的传入参数是option的_python – 当使用@ click.option将命令行参数传递给函数时,如何返回值?...
  4. 第一篇:容易遗忘的“枚举”
  5. python显示代码行数_python实现的代码行数统计代码
  6. 彼聆智能语音机器人_南昌智能语音机器人作用
  7. [USACO13OPEN]What's Up With Gravityp【最短路 / SPFA】
  8. 《HTTP权威指南》读书笔记(1)-HTTP简介与消息结构
  9. pdf拆分成一页一页
  10. Java实现八皇后问题
  11. 计算机网络显示正常 但无法上网怎么办,如何解决显示网络已连接但无法上网...
  12. ListView演练 - 带有组头的汽车品牌展示
  13. Nginx 企业级优化
  14. android平台获取手机IMSI,IMEI ,序列号,和 手机号的方法
  15. 在 Mac 上将 PDF 转换为 Word 的 5 种简单方法
  16. 插入数据时出现Duplicate entry ‘XXX‘ for key ‘XXX‘
  17. 山回路转时时见,世事如棋局局新
  18. MATLAB降维工具箱
  19. QAD事务类型对照表
  20. Spring 官网阅读指南

热门文章

  1. mysql升级回退_Mysql 升级、用户与授权,
  2. android开发实例之minitwitter登录界面 代码,Android实例miniTwitter登录界面
  3. react 文件 md5_从零配置webpack 4+react脚手架(二)
  4. Oracle怎么算开始一个会话,oracle – 随机获取ORA-08177只有一个活动会话
  5. php mssql 新 id,MSSQL获取当前插入数据的id
  6. C 语言的标准输入对象是,《面向对象程序设计C+》期末试卷及标准答案
  7. 资源调度框架YARN
  8. Ubuntu16.04安装jdk8
  9. 再见!妈妈再也不用担心我的计算机基础!
  10. android修改xml变量值,Android中XML的基本操作(增、删、改、查)