RT3070 STA移植.docx_第1页
RT3070 STA移植.docx_第2页
RT3070 STA移植.docx_第3页
RT3070 STA移植.docx_第4页
RT3070 STA移植.docx_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

RT3070 wifi arm+linux移植 软硬件平台: 宿主机:ubuntu12.10虚拟机 目标版:TQ2440,linux交叉编译工具:arm-linux-4.3.3网卡:Ralink3070模块 步骤: 1、编译驱动的预操作:编译arm版本的内核源码。 从TQ2440的光碟中获取内核源码,此内核源码已经经过天嵌的移植,可以直接编译移植入TQ2440中,镜像中已经支持USB。2、编译rt3070模块的驱动 在雷凌的官网下载linux版本的rt3070驱动2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V_DPO.bz2,解压后的目录名称太长,所以可以对其做修改方便使用,然后进入到目录中 tar jxf2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V_DPO.bz2 mv 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V_DPO rt3070 cd rt3070 目录中的README_STA_usb文件介绍了编译和加载驱动的一些信息。需要对os/linux/目录下的conf.mk文件进行修改,这里只贴出要修改的部分: vim os/linux/config.mk # Support Wpa_Supplicant HAS_WPA_SUPPLICANT=y # Support Native WpaSupplicant for NetworkMaganger HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y Makefile也要进行修改,芯片类型改为3070,默认的PLATFORM为PC,将其注释掉,而将PLATFORM = SMDK前面的#去掉,那么将后面的ifeq($(PLATFORM),SMDK)下的内核源码路径指定为上述的交叉编译过的内核源码目录,交叉编译工具指定为arm-linux-,当然之前应该把交叉工具链安装好,这里不再详述。 vim Makefile ifeq ($(CHIPSET),)CHIPSET = 3070endif ifeq ($(PLATFORM),SMDK)LINUX_SRC = /home/linux-CROSS_COMPILE = arm-linux-endif然后如果直接make,会报如下错误: /home/cabbage/Desktop/rt3070/os/linux/././chips/rtmp_chip.c:In function RtmpChipOpsHook: /home/cabbage/Desktop/rt3070/os/linux/././chips/rtmp_chip.c:470:error: implicit declaration of function RT33xx_Init make2: */home/cabbage/Desktop/rt3070/os/linux/././chips/rtmp_chip.o Error 1 make1: *_module_/home/cabbage/Desktop/rt3070/os/linux Error 2 make1: Leaving directory/usr/src/kernels/linux-2.6.30 make: * LINUX Error 2 在网上查到似乎是因为改变了CHIPSET所导致的错误。修改chips/目录下的rtmp_chip.c文件,定位到470行,修改后如下: vim chips/rtmp_chip.c +470#ifdef RT30xx if (IS_RT30xx(pAd) if (IS_RT3390(pAd) ;/RT33xx_Init(pAd); else RT30xx_Init(pAd); #endif /* RT30xx */ 然后再make,编译通过后会在os/linux/下生成rt3070sta.ko,这就是模块的驱动。 但是这里我出现了一个情况,查看rt3070sta.ko这个文件的大小,觉得有点大,原因应该是包含了大量调试信息,用arm-linux-strip可将它的大小裁剪为750k左右。 (此处也可以不裁剪直接跳到下一步,不影响驱动使用)arm-linux-strip -s rt3070sta.ko 其中-S参数是必须的,否则在加载驱动的时候会报找不到版本信息的错误。 3、加载驱动 将rt3070sta.ko和驱动源码目录下的RT2870STA.dat两个文件通过nfs或者sd卡下载到开发板中,RT2870STA.dat放入/etc/Wireless/RT2870STA/目录下,rt3070sta.ko放入任意合适的目录,我放在了/home/root/下。 mkdir p /etc/Wireless/RT2870STA/ cp RT2870STA.dat / etc/Wireless/RT2870STA/ cp rt3070sta.ko /home/root/加载驱动 insmod /home/root/rt3070sta.ko rtusb init rt2870 - = pAd = d1502000, size = 513400 = - RTMPAllocTxRxRingMemory, Status=0 RTUSBVenderReset Error! The chip does notsupport 5G band 5! RTMPSetPhyMode: channel is out of range, usefirst channel=1 (Efuse for 3062/3562/3572) Size=0x2d2d0-2fc 3. Phy Mode = 9 AntCfgInit: primary/secondary ant 0/1 MCS Set = ff 00 00 00 01 /etc/wpa.confeofnetwork=ssid=$ssidpsk=$keyeof#start to connect the wpa wifiwpa_supplicant -i$INTERFACE -c /etc/wpa.conf -Dwext -B# -i specify the interface# -c specify the configure file# -D specify the Driver# -B run the program backgroundsleep 3#dynamically require the ip from routerif ! -d /var/state/dhcp ;thenmkdir -p /var/state/dhcpfiif ! -f /var/state/dhcp/dhclient.leases ;thentouch /var/state/dhcp/dhclient.leasestouch /var/state/dhcp/dhclient.leasesfidhclient $INTERFACEfivi wifi.configssid=WO-REHOV(无线的名字)key=WO110119(无线的密码)encrypt=WEP/WPA(类型)wifi.config和auto_connect_wifi.sh放在同一目录下,./ auto_connect_wifi.sh动态分配ip成功后可ping通外网ping Rcv Wcid(1) AddBAReq Start Seq = 00000000 RTMP_TimerListAdd: add timer obj d157a5e4! PING (06): 56 databytes 64 bytes from 06: seq=0 ttl=40time=86.383 ms 64 bytes from 06: seq=1 ttl=40time=84.996 ms 64 bytes from 06: seq=2 ttl=40time=102.010 ms 64 bytes from 7

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论