rt3070无线网卡移植到开发板
Rt3070无线网卡AP功能移植到GEC210
一、平台
开发板:GEC210
无线网卡:RT3070
主机:VMWare--Ubuntu 10.04 LTS
内核版本:linux-2.6.35.7
编译器:arm-linux-gcc-4.5.1
所需源码:2010_0203_RT3070_SoftAP_v2.4.0.1_DPA.bz2 、 linux-2.6.35.7-gec-v2.0.tar.bz2
二、linux内核移植
1、解压内核源码linux-2.6.35.7-gec.bz2到任意目录:
#tar –jxvf linux-3.6.35.7-gec.bz2
2、进入源码目录,复制配置文件:
#cp GEC210_LINUX_CONFIG .config (注意是config前有个‘.’)
3、运行图形化配置内核把ralink支持去掉:
#make menuconfig
Device Driversà
Network device supportà
Wierless LANà
< >Ralink driver support //去掉不要
4、编译内核、制作镜像并烧写(参考烧写手册):
#make
#mkimage –n ‘linux-2.6.35.7-gec’ -A arm -O linux -T kernel -C none -a 0x30008000 -e 0x30008040 -d zImage uImage
(提示:可参考顶层目录的make.sh脚本命令)
二、修改配置无线网卡驱动源码
1、解压2010_0203_RT3070_SoftAP_v2.4.0.1_DPA.bz2压缩包
#tar jxvf 2010_0203_RT3070_SoftAP_v2.4.0.1_DPA.bz2
进入2010_0203_RT3070_SoftAP_v2.4.0.1_DPA目录
#cd 2010_0203_RT3070_SoftAP_v2.4.0.1_DPA
2、修改Makefile文件,修改为IXP平台、指定内核源码路径和编译链。在2010_0203_RT3070_SoftAP_v2.4.0.1_DPA.bz2驱动中,有三个文件夹,分别为MODULE、NETIF、UTIL,在这三个文件中均有Makefile,所有的Makefile都需要如下修改(“-”表示删除的行,“+”表示添加的行):
RT28xx_MODE = AP
TARGET = LINUX
CHIPSET = 3070
-PLATFORM = PC
+PLATFORM = IXP
………
ifeq ($(PLATFORM),IXP)
-Linux_SRC = /project………..
-CROSS_COMPILE = arm-linux-
+LINUX_SRC = /home/gec/linux-2.6.35.7-gec //内核源码绝对路径
+CROSS_COMPILE = arm-linux-
endif
3、修改config.mk文件。把大端模式去掉,改为小端模式。分别修改以下文件:源码顶层目录config.mk、MODULE/os/linux/config.mk、NETIF/os/linux/config.mk、UTIL/os/linux/config.mk。
ifeq ($(PLATFORM),IXP)
5、 WFLAGS += -DRT_BIG_ENDIAN
+#WFLAGS += -DRT_BIG_ENDIAN
endif
………
ifeq ($(PLATFORM),IXP)
CFLAGS := -v –D__KERNEL__ -DMODULE –I$(LINUX_SRC)/include –I$(RT28xx_DIR)/include –Wall –Wstrict-prototypes –Wno-trigraphs –O2 –fno-strict-aliasing –fno-common –Uarm –fno-common –pipe –mapcs-32 –D__LINUX_ARM_ARCH__=5 –mcpu=xscale –mtune=xscale –malignment-traps –msoft-float $(WFLAGS)
#也就是把句末的“-mbig-endian”删除
EXTRA_CFLAGS := -v $(WFLAGS) –I$(RT28xx_DIR)/include
export CFLAGS
endif
4、修改UTIL/os/linux/rt_usb_util.c
因为linux 2.6.35.7内核没有 “usb_buffer_alloc”和“usb_buffer_free”这两函数,会提示错误:
/home/2010_0203_RT3070_SoftAP_v2.4.0.1_DPA/UTIL/os/linux/../../os/linux/rt_usb_util.c:126:2: error: implicit declaration of function ‘usb_buffer_alloc’
/home/2010_0203_RT3070_SoftAP_v2.4.0.1_DPA/UTIL/os/linux/../../os/linux/rt_usb_util.c:136:2: error: implicit declaration of function ‘usb_buffer_free’
故更改函数为:
usb_alloc_coherent(dev,size,mem_flags,dma);
usb_free_coherent(dev,size,addr,dma);
5、修改NETIF/os/linux/usb_main_dev.c
#gedit NETIF/os/linux/usb_main_dev.c
21 MODULE_AUTHOR("Paul Lin <paul_lin@ralinktech.com>");
22 MODULE_DESCRIPTION("RT2870 Wireless Lan Linux Driver");
23 MODULE_LICENSE("GPL");
三、编译驱动代码
1、回到2010_0203_RT3070_SoftAP_v2.4.0.1_DPA目录下,如果只是用#make编译的话,会提示“Fix it to use EXTRA_CFLAGA”错误。正确进行编译:
# make ARCH=arm KBUILD_NOPEDANTIC=1
编译完成之后,便产生了如下文件:
MODULE/os/linux/rt3070ap.ko
NETIF/os/linux/rtnet3070ap.ko
UTIL/os/linux/rtutil3070ap.ko
5、把以下四个文件拷贝到开发板里
MODULE/os/linux/rt3070ap.ko
NETIF/os/linux/rtnet3070ap.ko
UTIL/os/linux/rtutil3070ap.ko
MODULE/RT2870AP.dat(此文件为建立AP的配置文件,如果需要,可以修改一下)
四、使用AP网络
1、创建/etc/Wireless/RT2870AP/和/lib/modules/相应目录(注意大写)
#mkdir -p /etc/Wireless/RT2870AP/
#mkdir /lib/modules/
(1)把RT2870AP.dat拷贝到/etc/Wireless/RT2870AP/,其他的文件拷贝到/lib/modules/
#cp RT2870AP.dat /etc/Wireless/RT2870AP/
#cp rt3070ap.ko /lib/modules/
#cp rtnet3070ap.ko /lib/modules/
#cp rtutil3070ap.ko /lib/modules/
(2)依次插入相应的模块
#cd /lib/modules/
#insmod rtutil3070ap.ko
#insmod rt3070ap.ko
#insmod rtnet3070ap.ko
终端打印信息:
[ 210.682163] rtusb init --->
[ 210.682693]
[ 210.682696]
[ 210.682699] === pAd = e0991000, size = 420792 ===
[ 210.682703]
[ 210.683007] <-- RTMPAllocAdapterBlock, Status=0
[ 210.690004] usbcore: registered new interface driver rt2870
(3)模块都插入成功后,查看网卡
#ifconfig –a
ra0 Link encap:Ethernet HWaddr 00:00:00:00:00:00
BROADCAST MULTICAST MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)
(4)启动路由功能并配置IP(注意不要跟有线网卡冲突了)
#ifconfig ra0 192.168.0.23
[ 405.588942] 1. Phy Mode = 9
[ 405.588971] 2. Phy Mode = 9
[ 405.588999] NVM is Efuse and its size =2d[2d0-2fc]
[ 405.666218] 3. Phy Mode = 9
[ 405.709848] MCS Set = ff 00 00 00 01
[ 405.738218] SYNC - BBP R4 to 20MHz.l
[ 406.141218] SYNC - BBP R4 to 20MHz.l
[ 406.543717] SYNC - BBP R4 to 20MHz.l
[ 406.949843] SYNC - BBP R4 to 20MHz.l
[ 407.352466] SYNC - BBP R4 to 20MHz.l
[ 407.754466] SYNC - BBP R4 to 20MHz.l
[ 408.156841] SYNC - BBP R4 to 20MHz.l
[ 408.559216] SYNC - BBP R4 to 20MHz.l
[ 409.175224] Main bssid = 00:e0:4c:d8:11:5c
[ 409.175265] <==== rt28xx_init, Status=0
[ 409.176845] 0x1300 = 00064320
#iwconfig ra0
ra0 RTWIFI SoftAP ESSID:"RT2860AP" Nickname:""
Mode:Managed Channel=11 Access Point: 00:E0:4C:D8:11:5C
Bit Rate=150 Mb/s
至此,一个默认的名为RT2860AP的网络就建立起来了,相关参数的修改可在RT2860AP.dat文件中完成,只要手机和电脑设置静态IP(同一网段)就可以连上网络了
2、可以通过以下命令卸载模块:
#ifconfig ra0 down
#rmmod rtnet3070ap
#rmmod rt3070ap
#rmmod rtutil3070ap
(提示:如不能卸载,请检查/lib/modules/2.6.35.7-GEC210文件夹是否存在)
相关源码和文件下载链接: http://download.csdn.net/detail/klcf0220/5888185
rt3070无线网卡移植到开发板的更多相关文章
- 【转】Vsftpd-3.0.2服务器arm-linux移植—mini2440开发板
Vsftpd-3.0.2服务器arm-linux移植—mini2440开发板 开发板:mini2440(2011.04.21)环境:ubuntu9.10 为方便的将文件上传到开发板,采用vsftpd, ...
- 四、移植 JZ2440 开发板
4.1 移植第一步 前面已经分析过了 .config 的过程,可以知道移植需要用到的文件: .config 文件 arch/arm/cpu 下的文件 board 目录 .config 文件是根据后面 ...
- qt 移植到开发板
一.准备工作: 1.QT应用程序 2.工具链--->交叉工具链一安装,就会有标准的c库 3.扩展的第三方库(ARM)()触摸屏库(tslib.tar.gz) 4.QT库 二.使用交叉工具链编译t ...
- 飞凌OK6410开发板SDIO无线8189WIFI模块驱动移植
为什么要移植?开发板不是已经提供了无线驱动吗? 貌似是这样的..本来是好用的.加入自己第三方驱动后发现WIFI用不了...最后发现飞凌提供的内核里面没有8189芯片的代码...问售后他们说那边是好的. ...
- iTOP-IMX6UL 实战项目:ssh 服务器移植到 arm 开发板
实验环境:迅为提供的Ubuntu12.04.2 以及虚拟机 编译器:arm-2009q3 编译器 开发板系统:QT系统 开发板使用手册中给Windows 系统安装了 ssh 客户端,给 Ubunt ...
- iTOP-4412开发板-实战教程-ssh服务器移植到arm开发板
本文转自迅为开发板:http://www.topeetboard.com 在前面实战教程中,移植了“串口文件传输工具”,整个移植过程是比较简单的,而且我 们没有做任何协议方面的了解,只是“配置”+“编 ...
- 移植Mplayer到OK6410开发板
移植Mplayer到OK6410开发板 作者:vasage 项目需要,需要将Mplayer移植到开发板上,所以今天花了一下下午成功移植,其中参考很多文档,后发现许多文档陈旧,些许文档有少量错误,所以这 ...
- 加快Qemu Aarch32虚拟开发板的启动速度
软件版本 Qemu: 2.8.0 虚拟开发板: vexpress-ca9 概述 之前的博文介绍了将Python移植到开发板上, 根文件系统采用的是ramdisk, 这个文件系统的缺点是修改的内容重启会 ...
- SQL数据库移植到ARM板步骤
SQL作为一种存储数据的数据结构,具有体积小(能堵存储的数据多),容易移植等优点.例如,在Ubuntu或者ARM开发板上被大量应用.下面就简单说一下SQL移植到ARM板的步骤. 下载源代码 (记得在家 ...
随机推荐
- .net跨防火墙链接oracle连接池链接长时间无通讯数据被断开后报错问题解决
环境: .net 4.0以上使用Oracle.ManagedDataAccess组件链接oracle数据库,应用程序与数据库之间存在硬件防火墙. 症状:应用程序启动后正常访问,如果出现长时间无数据库请 ...
- Windows 服务程序、窗口界面、桌面交互、与远程桌面
昨天用c写了一个windows服务(服务内部带一个gui窗口+系统托盘),在windows xp sp3上测试,启动服务后,系统托盘显示正常. 但在另一台windows 2003 sp2 上测试(通过 ...
- XMind 入门教程
选自:http://www.xmindchina.net/ XMind 是一款非常实用的商业思维导图软件,应用全球最先进的Eclipse RCP 软件架构,全力打造易用.高效的可视化思维软件.对于新手 ...
- ubuntu14安装node0.12.7
1. 官网下载linux系统二进制文件, 链接如下: https://nodejs.org/ 2. 解压到/opt/目录 3. 设置node环境变量 export NODE_HOME=/opt/nod ...
- 基于 Django 2.0.4 的 djcelery 配置
Django Celery 配置实践 所需环境 python 3.5.2 rabbitmq 安装所需的包 pip install -r requirements.txt QuickStart 创建Dj ...
- 移动端自动化测试-Windows-Android-Appium环境搭建
1.安装JDK,并且配置好[JAVA_HOME]和[path]两个环境变量 1.1.JAVA_HOME:指向JDK的安装路径(如:C:\Program Files (x86)\Java\jdk1.7. ...
- bottle框架剖析
bottle框架剖析 使用 源码分析 一.使用 大致有以下几部分 quick start request routing generate contents request Data template ...
- go struct结构体
struct结构体 用来自定义复杂数据结构 struct里面可以包含多个字段(属性),字段可以是任意类型 struct类型可以定义方法,注意和函数的区分 struct类型是值类型 struct类型可以 ...
- js之string操作符
1.字符方法 // 输出索引值的字符 'zhangamie'.charAt(2) // "a" 'zhangamie'[2] //"a" // 输出编码 a的a ...
- GBDT
一.决策树分类 决策树分为两大类,分类树和回归树 分类树用于分类标签值,如晴天/阴天/雾/雨.用户性别.网页是否是垃圾页面 回归树用于预测实数值,如明天的温度.用户的年龄 两者的区别: 分类树的结果不 ...