arm9+Linux fl2440 下的WiFi驱动rt3070的编译移植以及station模式

---------------------------------------------------------------------------------------------------------------------------------

                                               主机操作系统:centos 6.7

                                               交叉编译器版本:arm-linux-gcc-4.5.4

                                               开发板平台:fl2440

                                               linux内核版本:Linux-3.0

                                               开发 模板:ralink rt3070

                                               Author:  shaocongshuai <[email protected]>

---------------------------------------------------------------------------------------------------------------------------------

实现RT3070无线网卡STA模式并使开发板接入Wifi上网

兼容IEEE 802.11b/g/n三种标准,传输速率150Mbps  

IEEE 802.11b,1999年,物理层补充(11Mbit/s工作在2.4GHz)。IEEE802.11g,2003年,物理层补充(54Mbit/s,工作在2.4GHz)。 IEEE 802.11n,2009年9月通过正式标准,WLAN的传输速率由802.11a802.11g提供的54Mbps、108Mbps,提高到350Mbps甚至到475Mbps。

4针式连接插孔,支持USB2.0(接口)信号输出;

支持64/128/152位WEP数据加密,支持多种无线加密方式

2.412 - 2.484GHz;

RT3070的工作模式分为 STA(station)模式、SoftAP(Access Point)模式两种。

STA模式:笔记本上无线网卡模式,用来连接到无线路由器上上网。通俗点说,就是客户端模式(笔记本)

AP模式:即作为无线路由器,提供其他用户接入 (路由器)

所以我们的驱动有两种,分别支持无来线网卡工作在STA模式AP模式。因为linux3.0以上的内核中已经含有了RT3070的通用mac80211驱动框架,所以我首先直接基于此并借助wpa_suppicant软件来实现Wifi的STA模式

 

一、进入内核配置界面,内核配置中需要做的修改如下:

 [*] Networking support  ---> -*-   Wireless  --->

        <*>   cfg80211 - wireless configuration API

        [*]   Wireless extensions sysfs files

       <*>   Generic IEEE 802.11 Networking Stack (mac80211)

        -*-   Common routines for IEEE802.11 drivers

        [*]     enable powersave by default

        [*]     cfg80211 wireless extensions compatibility


  Device Drivers  --->

       Generic Driver Options  --->

              [*]   Include in-kernel firmware blobs in kernel binary 

       [*] 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

                         [*]   Ralink debug output

nl80211 / cfg80211 / mac80211不再使用的ioctl,他们使用 netlink (译者注:基于 socket 通信)

  • mac80211:是一个Linux内核子系统,是驱动开发者可用于为SoftMAC无线设备写驱动的框架。mac80211在内核空间实现STA模式,在用户空间实现AP模式(hostapd)。
  • cfg80211:用于对无线设备进行配置管理,与FullMAC,mac80211和nl80211一起工作。
  • nl80211:用于对无线设备进行配置管理,它是一个基本Netlink的用户态协议。
  • MLME:即MAC (Media Access Control) Layer Management Entity,它管理物理层MAC状态机。
  • SoftMAC:其MLME由软件实现,mac80211为SoftMAC实现提供了一个API。 即:SoftMAC设备允许对硬件执行更好地控制,允许用软件实现对802.11的帧管理,包括解析和产生802.11无线帧。目前大多数802.11设备为SoftMAC,而FullMAC设备较少。
  • FullMAC:其MLME由硬件管理,当写FullMAC无线驱动时,不需要使用mac80211。
  • wpa_supplicant:是用户空间一个应用程序,主要发起MLME命令,然后处理相关结果。
  • hostpad:是用户空间一个应用程序,主要实现station接入认证管理。

fg80211是Linux 802.11配置API。cfg80211用于代码wext(Wireless-Extensions),nl80211用于配置一个cfg80211设备,且用于kernel与userspace间的通信。wext现处理维护状态,没有新的功能被增加,只是修改bug。如果需要通过wext操作,则需要定义CONFIG_CFG80211_WEXT。

      cfg80211 and nl80211: 基于消息机制,使用netlink接口

    wext: 基于ioctl机制

mac80211

它是一个driver开发者可用于为SoftMAC无线设备写驱动的 框架,mac80211为SoftMAC设备实现了cfg80211回调函数,且mac80211通过cfg80211实现了向网络子系统注册和配置。配置由cfg80211通过nl80211和wext实现。

    mac80211在体系结构中的位置如下图所示:


所以,像 iwhostapd 或 wpa_supplicant 之类的工具使用一些netlink的库(如  libnl 或 libnl-tiny)和netlink 接口通用头文件,当然这是 nl80211.h.

目前并没有多少相关的文档,但我建议你阅读 libnl documentation,和 iw source code (因为iw使用libnl)。



配置完之后

执行make


二:插入RT3070无线网卡并加载新内核启动 

1>内核信息打印部分

usb 1-1.3: new full speed USB device number 3 using s3c2410-ohci
phy0 -> rt2x00_set_chip: Info - Chipset detected - rt: 3070, rf: 0005, rev: 0201.

2>使用lsusb命令查看:

~ >: lsusb
Bus 001 Device 001: ID 1d6b:0001
Bus 001 Device 002: ID 05e3:0606
Bus 001 Device 003: ID 148f:3070

3>如果是热插拔的话会,在插入的那一刻,串口会打印如下信息:

~ >: usb 1-1.3: USB disconnect, device number 3
usb 1-1.2: new full speed USB device number 4 using s3c2410-ohci
phy1 -> rt2x00_set_chip: Info - Chipset detected - rt: 3070, rf: 0005, rev: 0201.

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值