移植RT2870无线网卡驱动到s3c2416
公司项目要用到usb无线网卡,芯片是ralink的RT2870.以下是将其驱动移植到s3c2416的步骤。
1.下载驱动源码,雷凌官网的下载地址是:
http://www.ralinktech.com/en/04_support/support.php?sn=501
2.解压2011_0719_RT3070_RT3370_RT5370_RT5372_Linux_STA_V2.5.0.3_DPO.bz2
3.进入目录,修改Makefile
将PLATFORM = PC 注释掉,同时将#PLATFORM =
SMDK的#去掉,即PLATFORM定义为SMDK.
将ifeq ($(PLATFORM),SMDK)这句后面的两句改为:
LINUX_SRC =
/root/下载/linux-2.6.32.2
(这里根据自己的开发板的内核源码路径来定义)
CROSS_COMPILE =
/usr/local/arm/4.4.3/bin/arm-linux-
(交叉编译工具链所在的路径)
先看看内核配置是否把无线给加进去了:进入开发板内核 make
menuconfig
DeviceDrivers
--->
Networkdevice
support
--->
WirelessLAN
(non-hamradio)
--->
[*]Wireless
LAN drivers (non-hamradio) &
WirelessExtensions
[*] Wireless
Extension API
overRtNetlink
--- Obsolete
Wireless cards
support(pre-802.11)
<>
STRIP (Metricom starmode
radioIP)
<>
USB ZD1201 based Wireless
devicesupport
<>
IEEE 802.11 for H
不然你即使编译好了这个模块也不能用
配置好后保存,最好make下!
生成一个新内核,这么做的目的是,完全配置好了所需的一些文件,以免在编译模块时老是报错,开始我居然编译了一个12M的驱动模块,后来成功了,其实是只有800多KB。最后的rt5370sta.ko的大小仅供参考。
注意:如果编译出来模块比较大(10M左右)可以试试一下方法:
用命令:arm-linux-strip -S
****.ko 就能解决了。
原理就是去除调试信息,如果出现错误有可能是你的arm-linux-gcc没指名路径,在前面再加上你的交叉编译路径即可。我的大小为800多K。
第二个值是交叉编译工具的路径。根据你自己的情况修改。
4.执行make
5.下载模块和配置文件
把make生成的在os/linux
目录生成最后的ko文件rt5370sta.ko传送到开发板的/lib/modules/2.6.32.2-FriendlyARM目录下。同时要将源代码根目录的RT2870STA.dat文件传送到/etc/Wireless/RT2870STA/
目录下,没有的话,新建目录即可。
6.安装模块。
insmod rt5370sta.ko
如果出现以下报错,说明你的内核源码错了,按照步骤3的说明重新去处理内核源码。
rt5370sta: version magic '2.6.32.59 mod_unload ARMv4 ' should be
'2.6.32.2-Frie'
insmod: cannot insert 'rt5370sta.ko': invalid module
format
最后就是插入网卡,这个时候ifconfig是看不到网卡的,你要启用网卡,用以下命令:
ifconfig ra0 up
我的情况是这样的:
点击(此处)折叠或打开
- [root@FriendlyARM /]# ifconfig
ra0 up - (Efuse for 3062/3562/3572) Size=0x2d [2d0-2fc]
- -->RTUSBVenderReset
- <</SPAN>--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 = 5 - 2. Phy
Mode = 5 - NVM is Efuse and its
size =2d[2d0-2fc] - phy mode> The
chip does not support
5G band - RTMPSetPhyMode: channel is out
of range, use
first channel=1 - (Efuse for 3062/3562/3572) Size=0x2d [2d0-2fc]
- 3. Phy
Mode = 9 - AntCfgInit: primary/secondary
ant 0/1 - AsicSetRxAnt, switch to main
antenna - MCS Set = ff
00 00 00 01 - <</SPAN>==== rt28xx_init, Status=0
- 0x1300 = 00064300
再次ifconfig,就能看到ra0的网卡了。
如何验证我的无线网卡是否已经可以正常使用了??
请看我的下片文章:RT2870移植到s3c2416后续验证无线网卡:iwconfig的使用方法
最新文章
- Enterprise Achitect使用与类的关系的简单介绍
- java mysql 日期类型
- GridView与CheckBox完美结合
- Notepad++ Shortcuts 快捷键
- bhrs报表年结步骤
- 对话框Dialog
- Python3缩进对逻辑的影响
- 使用脚本管理IIS
- mysql_connect(): The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead in
- Libev学习笔记3
- 多线程面试题系列(5):经典线程同步 关键段CS
- MySQL中的内置系统函数
- 持久化 XSS:ServiceWorkers 利用
- 福利:工作经常用到的Mac软件整理(全)
- python基础知识8---条件和循环
- Rhel6.5 相关操作
- 一 Struts框架(上)
- Mybaits代码生成使用
- 【ASP.NET 插件】Plupload多格式多文件上传实现
- windows下一分钟配置ngnix实现HLS m3u8点播