P·E·T父母效能训练-读书简记 彼得·林奇的成功投资-读书简记 2015-2020美国居民膳食指南-读书简记 中国居民膳食指南(2016)-读书简记 批判性思维-读书简记 代码大全-读书简记 游戏力-读书简记 成功,动机与目标-读书简记 基因组:人种自传23章-读书简记 YOU身体使用手册-读书简记 登天之梯-读书简记 为什么学生不喜欢上学-读书简记 请停止无效努力-读书简记 麦肯基疗法-读书简记 跟简七学理财-课程简记 指数基金投资指南(2017中信版)-读书简记 指数基金投资指南(2015雪球版)-读书简记 让大脑自由:释放天赋的12条定律-读书简记 养育的选择-读书简记 GPU高性能编程CUDA实战-读书简记 百万富翁快车道-读书简记 原则-读书简记 穷查理宝典-读书简记 C++并发编程实战-读书简记 哲学家们都干了些什么-读书简记 Effective C++-读书简记 通往财富自由之路-读书简记 Linux命令行与Shell脚本编程大全-读书简记 刻意练习-读书简记 写给大家看的设计书-读书简记 习惯的力量-读书简记 好好学习-读书简记 硅谷最受欢迎的情商课-读书简记 富爸爸,穷爸爸-读书简记 如何说孩子才会听,怎么听孩子才会说-读书简记 阻力最小之路-读书简记 ProGit-读书简记 思考:快与慢-读书简记 C语言深度剖析-读书简记 编程珠玑-读书简记 Head First 设计模式-读书简记 反脆弱-读书简记 我的阅读书单 小强升职记-读书简记 观呼吸-读书简记 黑客与画家-读书简记 晨间日记的奇迹-读书简记 如何高效学习-读书简记 即兴的智慧-读书简记 精力管理-读书简记 C++编程思想-读书简记 拖延心理学-读书简记 自控力-读书简记 伟大是熬出来的-读书简记 生命不能承受之轻-读书简记 高效能人士的七个习惯-读书简记 没有任何借口-读书简记 一分钟的你自己-读书简记 人生不设限-读书简记 暗时间-读书简记
P·E·T父母效能训练-读书简记 彼得·林奇的成功投资-读书简记 2015-2020美国居民膳食指南-读书简记 中国居民膳食指南(2016)-读书简记 批判性思维-读书简记 代码大全-读书简记 游戏力-读书简记 成功,动机与目标-读书简记 基因组:人种自传23章-读书简记 YOU身体使用手册-读书简记 登天之梯-读书简记 为什么学生不喜欢上学-读书简记 请停止无效努力-读书简记 麦肯基疗法-读书简记 跟简七学理财-课程简记 指数基金投资指南(2017中信版)-读书简记 指数基金投资指南(2015雪球版)-读书简记 让大脑自由:释放天赋的12条定律-读书简记 养育的选择-读书简记 GPU高性能编程CUDA实战-读书简记 百万富翁快车道-读书简记 原则-读书简记 穷查理宝典-读书简记 C++并发编程实战-读书简记 哲学家们都干了些什么-读书简记 Effective C++-读书简记 通往财富自由之路-读书简记 Linux命令行与Shell脚本编程大全-读书简记 刻意练习-读书简记 写给大家看的设计书-读书简记 习惯的力量-读书简记 好好学习-读书简记 硅谷最受欢迎的情商课-读书简记 富爸爸,穷爸爸-读书简记 如何说孩子才会听,怎么听孩子才会说-读书简记 阻力最小之路-读书简记 ProGit-读书简记 思考:快与慢-读书简记 C语言深度剖析-读书简记 编程珠玑-读书简记 Head First 设计模式-读书简记 反脆弱-读书简记 小强升职记-读书简记 观呼吸-读书简记 黑客与画家-读书简记 晨间日记的奇迹-读书简记 如何高效学习-读书简记 即兴的智慧-读书简记 精力管理-读书简记 C++编程思想-读书简记 拖延心理学-读书简记 自控力-读书简记 伟大是熬出来的-读书简记 生命不能承受之轻-读书简记 高效能人士的七个习惯-读书简记 没有任何借口-读书简记 一分钟的你自己-读书简记 人生不设限-读书简记 暗时间-读书简记

移植Wifi模块RT3070到ARM平台

2014年07月18日

写在前面


由于项目的需要,实现了在Arm平台间实现wifi的点对点,点对多点的传输。

实现时的具体环境:完wifi 模块芯片:雷凌3070芯片;嵌入式平台:E9(ARM);交叉编译环境:arm-none-linux-gnueabi。

下面讲介绍wifi模块移植到Arm的具体步骤。

编译移植


一、首先下载了wifi模块的驱动

搜索2011_0719_RT3070_RT3370_RT5370_RT5372_RT2070_Linux_STA_V2.5.0.3_DPO,进行下载。

二、对驱动进行交叉编译

1 打开驱动文件解压后的文件,如果需要WPA等功能,可打开./os/linux/config.mk进行编,如果不需要直接进入2步;

2 打开驱动文件根目录下的Makefile进行修改,首先CHIPSET 改为3070,然后对交叉编译环境进行配置,默认的PLATFORM = PC,我们对PC那块代码进行改动,改动后如下

ifeq ($(PLATFORM),PC)  
# Linux 2.6  
LINUX_SRC = /opt/E9_CD/Linux/linux_E9_3.0.35_for_Linux  
# Linux 2.4 Change to your local setting  
#LINUX_SRC = /usr/src/linux-2.4  
LINUX_SRC_MODULE = /opt/E9_CD/Linux/linux_E9_3.0.35_for_Linux/drivers/net/wireless/  
CROSS_COMPILE = /opt/Embedsky/gcc-4.6.2-glibc-2.13-linaro-multilib-2011.12/tq-linaro-toolchain/bin/arm-none-linux-gnueabi-  
endif  

保存后进行sudo make。

其中 linux_E9_3.0.35为linux内核的源码所在目录。

三、拷贝到Arm开发板

编译成功后将根目录下的RT2870STA.dat和./os/linux/目录下的rt30870.sta.ko拷贝进板子中。

mkdir –p /etc/Wireless/RT2870STA/  
cp RT2870STA.dat / etc/Wireless/RT2870STA/  
cp rt3070sta.ko /usr  

四、加载并启动

首先进行加载

insmod /usr/rt3070sta.ko   

然后可以通过ifconfig -a 可以看到系统已经正确识别网卡,名称为ra0。

启动网卡

ifconfig ra0 up 

看到有数据输出,成功移植。

常见问题


一、rtmp_chip.c:470:error: implicit declaration of function 'RT33xx_Init'

解决方法:注释掉chips目录下rtmp_chip.c中第470行的RT33xx_Init(pAd)。

二、insmod的时候出问题

解决方法:一般这里的问题都是板子内核版本与交叉编译时所用的内核版本不一致导致,可以uname -a查看板子内核版本,modinfo rt3070sta.ko查看生成的驱动版本号,看是否一致。我遇到这个问题解决了一上午,发现版本号一个armv5,一个armv7,最后是先对linux源码进行了编译(设置交叉编译环境后,运行所带的build.sh),再编译wifi模块解决的。编译内核的时候,注意设置交叉编译环境。

参考文献


[1] http://blog.chinaunix.net/uid-28599023-id-3483821.html

[2] http://www.linuxidc.com/Linux/2011-03/33483.htm

[3] http://blog.csdn.net/zhuqing_739/article/details/6259686#


版权声明:本文为博主原创文章,转载请注明出处 本文总阅读量    次