天嵌 ARM开发社区

 找回密码
 注册
查看: 2046|回复: 0

TQ2440上移植RT3070AP过程

[复制链接]
freewing 发表于 2016-3-21 10:02:06 | 显示全部楼层 |阅读模式

  TQ2440 是由广州天嵌计算机科技有限公司精心打造的一款开发板。以稳定的性能,过硬的质量,丰富的扩展接口,优质的售后服务和技术支持,赢得众多企业的青睐和支持。

  硬件:TQ2440,USB RT3070

  编译环境:ubuntu、TQ提供的EABI-4.3.3、网上下载的2010_0203_RT3070_SoftAP_v2.4.0.1_DPA包

  配置好编译环境,解压2010_0203_RT3070_SoftAP_v2.4.0.1_DPA

  移植过程:

  1、修改配置相关文件

  进入2010_0203_RT3070_SoftAP_v2.4.0.1_DPA

  下面有3个文件夹MODULE、NETIF、UTIL

  分别修改3个Makefile文件

  将PLATFORM = SMDK打开,其他注释掉

  然后配置平台,LINUX_SRC是内核的绝对路径

  ifeq ($(PLATFORM),SMDK)

  LINUX_SRC = /opt/EmbedSky/linux-2.6.30.4

  CROSS_COMPILE = arm-linux-

  endif

  另外需要修改的地方

  NETIF/os/linux/usb_main_dev.c中添加MODULE_LICENSE("GPL");

  MODULE/common/rtmp_init.c中的MODULE_LICENSE("RALINK");改为MODULE_LICENSE("GPL");

  2、编译

  用make或者make ARCH=arm KBUILD_NOPEDANTIC=1编译都行

  但是make编译时没有生成rtnet3070ap.ko

  进入NETIF文件夹直接make也可以生成ko文件

  3、拷到开发板上的文件

  上述三个文件夹的os/linux下的ko文件rtutil3070ap.ko、rt3070ap.ko、rtnet3070ap.ko

  再加一个MODULE下的RT2870AP.dat文件

  四个文件copy到u盘,插到开发板上

  4、开发板配置

  在开发板的/etc/Wireless下创建一个文件夹RT2870AP,将RT2870AP.dat放到此文件夹下

  将另外三个ko文件放到/usr下,这个可以自己定义

  5、加载

  按顺序加载

  #insmod rtutil3070ap.ko

  #insmod rt3070ap.ko

  #insmod rtnet3070ap.ko

  如果不允许加载

  用lsmod查看目前存在的模块

  如果有rt5370就卸载再上述顺序加载,TQ开发板默认安装了这个ko文件,卸载命令rmmod rt5370sta.ko

  6、可能遇到问题

  如果上述一切正常

  下面继续

  问题一:

  [root@EmbedSky /usr]# ifconfig ra0 up

  <-- ERROR in Alloc TX TxContext[3] HTTX_BUFFER !!

  <-- RTMPAllocTxRxRingMemory, Status=3

  ERROR!!! RTMPAllocDMAMemory failed, Status[=0x00000003]

  !!! rt28xx Initialized fail !!!

  ifconfig: SIOCSIFFLAGS: Operation not permitted

  解决:

  修改MODULE NETIF UTIL三个目录下的include/os/rt_linux.h中BULKAGGRE_SIZE参数,将100改为60


  问题二:

  [root@EmbedSky /usr]# ifconfig ra0 up

  <-- RTMPAllocTxRxRingMemory, Status=0

  -->RTUSBVenderReset

  <--RTUSBVenderReset

  RtmpOSFileOpen(): Error 2 opening /etc/Wireless/RT2870AP/RT2870AP.dat

  Open file "/etc/Wireless/RT2870AP/RT2870AP.dat" failed!

  1. Phy Mode = 0

  ERROR!!! RTMPReadParametersHook failed, Status[=0x00000001]

  ---> RTMPFreeTxRxRingMemory

  <--- RTMPFreeTxRxRingMemory

  !!! rt28xx Initialized fail !!!

  ifconfig: SIOCSIFFLAGS: Operation not permitted

  解决:

  应该是没有创建RT2870AP文件夹,创建好再把RT2870AP.dat烤过去,因为我先移植过RT3070STA,所以以为这个RT2870××.dat是通用的

  7、正常工作

  下面是正常打印

  [root@EmbedSky /]# ifconfig ra0 up

  <-- RTMPAllocTxRxRingMemory, Status=0

  -->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 = 9

  2. Phy Mode = 9

  NVM is Efuse and its size =2d[2d0-2fc]

  3. Phy Mode = 9

  MCS Set = ff 00 00 00 01

  SYNC - BBP R4 to 20MHz.l

  SYNC - BBP R4 to 20MHz.l

  SYNC - BBP R4 to 20MHz.l

  SYNC - BBP R4 to 20MHz.l

  SYNC - BBP R4 to 20MHz.l

  SYNC - BBP R4 to 20MHz.l

  SYNC - BBP R4 to 20MHz.l

  SYNC - BBP R4 to 20MHz.l

  Main bssid = 7c:dd:90:56:6d:84

  <==== rt28xx_init, Status=0

  0x1300 = 00064320

  配置IP命令:

  ifconfig ra0 192.168.8.25

  #iwconfig ra0

  ra0 RTWIFI SoftAP ESSID:"RT2860AP" Nickname:""

  Mode:Managed Channel=11 Access Point: 7C:DD:90:56:6D:84

  Bit Rate=150 Mb/s

  用android手里可以查到RT2870AP的wifi信号

  8、关闭模块

  结束后,可以通过以下命令卸载模块:

  #ifconfig ra0 down

  #rmmod rtnet3070ap.ko

  #rmmod rt3070ap.ko

  #rmmod rtutil3070ap.ko

  修改后的源码包可以到下面地址下载,注意内核路径的设置

  http://download.csdn.net/detail/stephen_yu/7179827

  感谢stephen_kl的分享!

  供货情况:

  天嵌科技提供专业嵌入式板卡和行业解决方案。如有需要,可以联系天嵌科技的销售人员。

  销售电话:020-38219416    38373101

  技术支持:020-38219416转807     820

  网址:http://www.embedsky.com


您需要登录后才可以回帖 登录 | 注册

本版积分规则

关闭

i.MX8系列ARM cortex A53 M4 工控板上一条 /1 下一条

Archiver|手机版|小黑屋|天嵌 嵌入式开发社区 ( 粤ICP备11094220号 )

GMT+8, 2024-4-27 00:28 , Processed in 1.078125 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表