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. typescript泛型(学习笔记非干货)

    软件工程中,我们不仅要创建一致的定义良好的API,同时也要考虑可重用性. 组件不仅能够支持当前的数据类型,同时也能支持未来的数据类型, 这在创建大型系统时为你提供了十分灵活的功能. In softwa ...

  2. servlet3.0获取参数与文件上传代码示例

    转: servlet3.0获取参数与文件上传代码示例 2018年08月26日 20:25:35 苏凯勇往直前 阅读数:98   package com.igeek.servlet;   import ...

  3. spring 项目分开发和生产环境

    1.pom 文件修改 <profile> <!-- 本地开发环境 --> <id>dev</id> <properties> <pro ...

  4. 源码研究:php变量

    一:php中的变量类型 1.标量类型:布尔型 bool,整型 int,浮点型 float,字符串型 string2.复杂类型:数组 array,对象 object3.特殊类型:NULL,资源 reso ...

  5. Python全栈问答小技巧_2

    Python全栈测试题(二) 作者:尹正杰 声明:答案如有偏差,欢迎指正!欢迎加入高级运维工程师之路:598432640 本文答题用的Python版本是:Python 3.5.2,请知晓! 1. 计算 ...

  6. 多目标遗传算法 ------ NSGA-II (部分源码解析)目标函数 problemdef.c

    /* Test problem definitions */ # include <stdio.h> # include <stdlib.h> # include <ma ...

  7. 部署支持 https 的 Nginx 服务

    通过 Certbot 为 nginx 开启https支持. 环境 CentOS 7.1 python2.x(这玩意系统里本来就有) 安装Nginx sudo yum install nginx -y ...

  8. javascript 字符串的连接和截取

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  9. GET_WHEEL_DELTA_WPARAM宏在C#

    1.高位字,署名: ((short)(wParam>>16)) 2. 为了获得最大的清晰,我会定义一组这样的函数: internal static class NativeMethods ...

  10. Postfix - Extmail 邮箱系统

    Postfix Dovecot Extmail 邮箱系统早前的内部邮箱系统重新整理下:现在Extmail官方有集成镜像的EMOS_1.6_x86_64免费版:可直接下载安装: 系统环境: linux ...