WIFI模块RT3070的ARM Linux移植
来源:互联网 发布:阿里云怎么备案域名 编辑:程序博客网 时间:2024/05/01 17:22
软硬件平台:
宿主机:Fedora10 VMware虚拟机
目标版:tiny6410,Linux2.6.38
交叉编译工具:arm-linux- 4.5.1
网卡:Ralink3070模块
步骤:
1、编译驱动的预操作:编译arm版本的内核源码。
从tiny6410的光碟中获取内核源码,此内核源码已经经过友善之臂的移植,可以直接编译移植入tiny6410中。
cp linux-2.6.38-20110718.tar.gz /usr/src/kernels/
cd /usr/src/kernels
tar -zxvf linux-2.6.38-20110718.tar.gz
cd linux-2.6.38
cp config_mini6410_n43 .config
make menuconfig
进入内核配置界面,内核配置中需要做的修改如下:
[*] Networking support --->
[*] Wireless --->
<*> cfg80211 - wireless configuration API
[*] Wireless extensions sysfs files
<*> Generic IEEE 802.11 Networking Stack (mac80211)
Device Drivers --->
[*] Network device support --->
[*] Wireless LAN --->
<*> IEEE 802.11 for Host AP (Prism2/2.5/3 and WEP/TKIP/CCMP)
[*] Support downloading firmware images with Host AP driver
[*] Support for non-volatile firmware download
<M> Ralink driver support --->
<M> Ralink rt27xx/rt28xx/rt30xx (USB) support
然后make,编译通过后会在arch/arm/boot/目录下生成可烧写入开发板的zImage内核镜像。
2、编译rt3070模块的驱动
在雷凌的官网下载linux版本的rt3070驱动2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2,解压后的目录名称太长,所以可以对其做修改方便使用,然后进入到目录中
tar –jxf 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2
mv 2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_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 Network Maganger
HAS_NATIVE_WPA_SUPPLICANT_SUPPORT=y
Makefile也要进行修改,芯片类型改为3070,默认的PLATFORM为PC,那么将后面的ifeq($(PLATFORM),PC)下的内核源码路径指定为上述的交叉编译过的内核源码目录,交叉编译工具指定为arm-linux-,当然之前应该把交叉工具链安装好,这里不再详述。
vim Makefile
ifeq ($(CHIPSET),)
CHIPSET = 3070
endif
……
ifeq ($(PLATFORM),PC)
# Linux 2.6
LINUX_SRC = /usr/src/kernels/linux-2.6.38
# Linux 2.4 Change to your local setting
#LINUX_SRC = /usr/src/linux-2.4
LINUX_SRC_MODULE = /lib/modules/$(shell uname -r)/kernel/drivers/net/wireless/
CROSS_COMPILE = /usr/local/FriendlyARM/toolschain/4.5.1/bin/arm-linux- // DevKit8500D为arm-eabi-;
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'
make[2]: *** [/home/cabbage/Desktop/rt3070/os/linux/../../chips/rtmp_chip.o] Error 1
make[1]: *** [_module_/home/cabbage/Desktop/rt3070/os/linux] Error 2
make[1]: Leaving directory `/usr/src/kernels/linux-2.6.38'
make: *** [LINUX] Error 2
在网上查到似乎是因为改变了CHIPSET所导致的错误。修改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这个文件的大小,居然达到了12m,这是不合理的,原因应该是包含了大量调试信息,用arm-linux-strip可将它的大小裁剪为750k左右。
#arm-linux-strip -S rt3070sta.ko
其中-S参数是必须的,否则在加载驱动的时候会报找不到版本信息的错误。
转自:http://www.linuxidc.com/Linux/2014-03/97630.htm
---------------------------------------------------分割线---------------------------------------------------------
软硬件平台:
宿主机:Ubuntu 12.04LTS
目标版:Devkit8500D,Linux2.6.32
交叉编译工具:arm-eabi- gcc
网卡:Ralink3070模块
经测试,该方法可行!
---------------------------------------------------------------------------------------------------------------------
另附:RT3070无线网卡配置方法
insmod rt3070sta.ko
ifconfig ra0 up
ifconfig ra0 192.168.0.1
iwconfig ra0 mode ad-hoc //设置为ad-hoc模式
- WIFI模块RT3070的ARM Linux移植
- WIFI模块RT3070的ARM Linux移植
- rt3070 wifi arm+linux移植
- rt3070 wifi arm+linux移植
- 在这里,TQ2416系列----wifi模块rt3070的arm+linux移植
- rt3070 wifi arm+linux移植;wifi移植参考资料
- usb wifi模块 RT3070移植
- 基于IMX6 RT3070的USB接口wifi模块移植
- arm-linux 移植无线网卡RT3070驱动
- rt3070 无线wifi模块移植到linux,并连接无线路由上网
- rt3070 wifi驱动移植
- WIFI 驱动 RT3070移植
- 天嵌E9平台下进行USB Wifi模块RT3070驱动的移植
- 在海思3511上面实现wifi模块变成ap站点功能+wifi rt3070驱动的移植
- arm9+Linux fl2440 下的WiFi驱动rt3070的编译移植以及station模式
- Linux总结之Ralink雷凌rt3070驱动的ARM平台移植问题
- 雷凌wifi(RT3070)移植记录
- s3c2440 arm+linux 开发板移植rt3070驱动笔记
- eclipse启动使用JOGL开发的项目时出现loadlibrary failed with error 1114:动态链接库(DLL)初始化例程失败
- js与jQuery 获取父窗、子窗的iframe
- 首字母大写转换
- 09:函数、递归和递推
- ModelSim
- WIFI模块RT3070的ARM Linux移植
- 设置网页的icon图标
- 第十一周—求两个整数的最大公约数和最小公倍数
- 日期妙算星座
- 第十一周OJ(5)求两个整数的最大公约数和最小公倍数
- sum函数求和
- 从中国金融科技50强榜单看中国金融科技发展趋势
- poj 1013 Counterfeit Dollar
- HTTP 请求和响应过程