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无线网卡移植到开发板的更多相关文章

  1. 【转】Vsftpd-3.0.2服务器arm-linux移植—mini2440开发板

    Vsftpd-3.0.2服务器arm-linux移植—mini2440开发板 开发板:mini2440(2011.04.21)环境:ubuntu9.10 为方便的将文件上传到开发板,采用vsftpd, ...

  2. 四、移植 JZ2440 开发板

    4.1 移植第一步 前面已经分析过了 .config 的过程,可以知道移植需要用到的文件: .config 文件 arch/arm/cpu 下的文件 board 目录  .config 文件是根据后面 ...

  3. qt 移植到开发板

    一.准备工作: 1.QT应用程序 2.工具链--->交叉工具链一安装,就会有标准的c库 3.扩展的第三方库(ARM)()触摸屏库(tslib.tar.gz) 4.QT库 二.使用交叉工具链编译t ...

  4. 飞凌OK6410开发板SDIO无线8189WIFI模块驱动移植

    为什么要移植?开发板不是已经提供了无线驱动吗? 貌似是这样的..本来是好用的.加入自己第三方驱动后发现WIFI用不了...最后发现飞凌提供的内核里面没有8189芯片的代码...问售后他们说那边是好的. ...

  5. iTOP-IMX6UL 实战项目:ssh 服务器移植到 arm 开发板

    实验环境:迅为提供的Ubuntu12.04.2 以及虚拟机 编译器:arm-2009q3 编译器 开发板系统:QT系统   开发板使用手册中给Windows 系统安装了 ssh 客户端,给 Ubunt ...

  6. iTOP-4412开发板-实战教程-ssh服务器移植到arm开发板

    本文转自迅为开发板:http://www.topeetboard.com 在前面实战教程中,移植了“串口文件传输工具”,整个移植过程是比较简单的,而且我 们没有做任何协议方面的了解,只是“配置”+“编 ...

  7. 移植Mplayer到OK6410开发板

    移植Mplayer到OK6410开发板 作者:vasage 项目需要,需要将Mplayer移植到开发板上,所以今天花了一下下午成功移植,其中参考很多文档,后发现许多文档陈旧,些许文档有少量错误,所以这 ...

  8. 加快Qemu Aarch32虚拟开发板的启动速度

    软件版本 Qemu: 2.8.0 虚拟开发板: vexpress-ca9 概述 之前的博文介绍了将Python移植到开发板上, 根文件系统采用的是ramdisk, 这个文件系统的缺点是修改的内容重启会 ...

  9. SQL数据库移植到ARM板步骤

    SQL作为一种存储数据的数据结构,具有体积小(能堵存储的数据多),容易移植等优点.例如,在Ubuntu或者ARM开发板上被大量应用.下面就简单说一下SQL移植到ARM板的步骤. 下载源代码 (记得在家 ...

随机推荐

  1. A1060. Are They Equal

    If a machine can save only 3 significant digits, the float numbers 12300 and 12358.9 are considered ...

  2. Python基本数据类型——元组和集合

    元组 tuple tuple和list非常类似,但是tuple一旦初始化就不能修改.元组采用圆括号表示. 例如: >>> tuple = (1,2,3) >>> t ...

  3. 关于使用IsapiRewrite重写,重定向的语句

    早上起床,发现之前的IsapiRewrite写法有改进的地方, 有几个废弃的网址可以使用IsapiRewrite的重定向,转到新的网址上来. 搞了有十分钟的时间,测试老是不重定向. 因为之前已经有一个 ...

  4. git 子模块

    为了方便各个子模块独立开发,或使用第三方不断更新的仓库,可以使用子模块来引用. 子模块对应的源码是子模块仓库的克隆. git submodule 与 subtree对比 git submodule 允 ...

  5. ztree删除某个节点下的全部子节点后,父节点图标还是文件夹

    <script type="text/javascript"> //删除节点 zTree.removeNode(treeNode); //获取删除节点的父节点 var ...

  6. 开启 Hyper-v 后如何使用 Android Emulator?

    如果开启了 Hyper-v 时,当需要使用 Android Studio 中 Android Emulator 时,系统会出现蓝屏代码错误. 使用下面的方法,则可以解决冲突. 首先,你需要确保已经开启 ...

  7. (string高精度)A + B Problem II hdu1002

    A + B Problem II Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) ...

  8. How to get API key (APPID)

    Python爬虫视频教程零基础小白到scrapy爬虫高手-轻松入门 https://item.taobao.com/item.htm?spm=a1z38n.10677092.0.0.482434a6E ...

  9. 因缺失log4j.properties 配置文件导致flume无法正常启动。

    因缺失log4j.properties 配置文件导致flume无法正常启动 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.报错:log4j:WARN No appenders ...

  10. 将web应用部署到Tomcat的三种方式

    Tomcat作为Servlet/JSP容器(服务器)挺不错的,开源免费,需要知道的是Tomcat是一个Web服务器,其符合Servlet/JSP规范,但是却没有实现所有JavaEE规范,所以我们还是应 ...