1、wifi的STA模式和AP模式

 Ap(Access Point)模式指的是可以将网卡设置为路由器用来共享流量或有线网络给别人使用,
 sta模式指的是当做网卡连接路由器上网

(1):AP也就是无线接入点,是一个无线网络的创建者,是网络的中心节点。一般家庭或办公室使用的无线路由器就是一个AP。



(2):STA 站点,每一个连接到无线网络中的终端(如笔记本电脑、 PDA及其它可以联网的用户设备)都可称为一个站点。


2、网卡选型
(1)选型标准:看linux内核是否已支持此款网卡
打开网站http://wireless.kernel.org/en/users里面的Devices列表,里面有linux内核支持的的USB接口设备。
选择时看网卡的VendorID(生产厂商ID)和ProductID(产品ID)是否在上面网站中的USB接口设备列表里面

(2)选购WIFI:

Atheros : VID 0x13D3  PID 0x3327 (成品型号 AR9271)

realtek : VID 0x0bda  PID 0x8176 (成品型号TP-LINK公司TL-WN721N)

市面上大多数ARM 开发板来说,它们的USB口供电能力都不足(会出现一些莫名其妙的问题),需要一条能供电的USB线(有3个口),一端的两个口连接开发板和网卡,另一端的口接到电脑的USB口上取电。

(3)查看网卡的PID和VID

把网卡接到电脑上去,我的电脑——属性——设备管理器——网络适配器——查看增加的网卡——属性——详细信息——设备范例Id里面有VID和PID

3、搭建开发环境

(1)开发板和电脑的连接

a、直接用一条网线把开发板网口和电脑网口连在一起,当开发板上使用的是u-boot时,电脑上的网卡显示为断开,导致PC上的windows和linux间不能传文件

b、用hub或路由器连接电脑和开发板(使用有线网卡)

c、有些电脑没有有线网卡,只有无线网卡,用无线路由器。开发板通过网线接到无线路由器,电脑端用无线网卡进行无线接入路由器。

(2)设置VMWARE的网络为桥接, 并选择使用哪一个网卡(有线网卡还是无线网卡)

(3)把PC windows网卡, vmware linux的网卡、开发板的有线网卡IP设为192.168.7.xxx

   因为以后开发板上USB WIFI网卡将使用192.168.1.xxx

开发板本身有一个有线网卡,现在又有wifi无线网卡,对于同一个系统有多个网卡,这些网卡的IP不能设为同一网段,当我们的wifi网卡连接到无线Ap,Ap里分配的地址一般为192.168.1.xxx.PC windows网卡,
vmware linux的网卡、开发板的有线网卡IP设为另外一个网段

4、 配置内核以支持USB WIFI网卡

(1)打补丁

tar xjf linux-3.4.2.tar.bz2

cd linux-3.4.2

patch -p1 < ../linux-3.4.2_camera_jz2440.patch 

cp config_ok .config





(2)配置内核:

根据网卡的VID/PID确定使用哪一个源码

             打开源码所在目录的Makefile进而确定配置项的名称

             make menuconfig, /名





cd drivers/net/wireless/

grep "0x3327" * -nR    (这里0x3327是ProductID(产品ID)

)

ath/ath9k/hif_usb.c:32: { USB_DEVICE(0x13D3, 0x3327) }, /* Azurewave */

打开ath/ath9k/Makefile查找hif_usb.o可知配置项为 CONFIG_ATH9K_HTC



make menuconfig, /CONFIG_ATH9K_HTC(搜索) 得到下面信息

Symbol: ATH9K_HTC [=n]                                                                     |

  | Type  : tristate                                                                           |

  | Prompt: Atheros HTC based wireless cards support                                           |

  |   Defined at drivers/net/wireless/ath/ath9k/Kconfig:100                                    |

查看依赖(=y或=m表示已经设置好的意思,=n表示还没设置,不用理会.有一个依赖条件设为m的话,那么也只能够配置为m,要想把它配置进内核,找到设置为m的项并把它设置为y)

  |   Depends on: NETDEVICES [=y] && WLAN [=y] && ATH_COMMON [=n] && USB [=y] && MAC80211 [=m] |

|   Location:                                                                                |

  |     -> Device Drivers                                                                      |

  |       -> Network device support (NETDEVICES [=y])                                          |

  |         -> Wireless LAN (WLAN [=y])                                                        |

  |           -> Atheros Wireless Cards (ATH_COMMON [=n])



查找MAC80211

配置:(按h键返回查看搜索结果)

-> Networking support

  -> Wireless 

    <*>   cfg80211 - wireless configuration API

    <*>   Generic IEEE 802.11 Networking Stack (mac80211)

-> Device Drivers

  -> Network device support

    -> Wireless LAN

      -> Atheros Wireless Cards

        <*>   Atheros HTC based wireless cards support         

make uImage





另一款网卡:

cd drivers/net/wireless/

grep "0x8176" * -nR

rtlwifi/rtl8192cu/sw.c:273:     {RTL_USB_DEVICE(USB_VENDER_ID_REALTEK, 0x8176, rtl92cu_hal_cfg)},

打开rtlwifi/rtl8192cu/Makefile确定配置项为  CONFIG_RTL8192CU

make menuconfig, /CONFIG_RTL8192CU





-> General setup

    [*] Prompt for development and/or incomplete code/drivers

-> Device Drivers 

  -> Network device support

    -> Wireless LAN  

    <*>   Realtek RTL8192CU/RTL8188CU USB Wireless Network Adapter        

可以在make menuconfig 后使用  cp .config  config_ok_1把我们配置好的文件更名为config_ok_1,以后可以再次使用

(3)编译内核

make uImage



(4)uboot设置

uboot:

set bootargs console=ttySAC0,115200 root=/dev/nfs nfsroot=192.168.7.124:/work/nfs_root/fs_mini_mdev_new ip=192.168.7.17

set bootcmd 'nfs 32000000 192.168.7.124:/work/nfs_root/uImage_mini2440_wifi; bootm 32000000'

save

boot

5、编译使用固件

需要固件htc_9271.fw,我们wifi网卡可能需要下载一个文件到芯片上面去,

1 把固件htc_9271.fw放到单板/lib/firmware

先建目录:mkdir  /work/nfs_root/lib/firmware

拷贝:cp htc_9271.fw  /work/nfs_root/lib/firmware

接上USB网卡, ifconfig wlan0 up(启用网卡0)



2 对于"realtek : VID 0x0bda  PID 0x8176 (成品型号TP-LINK公司TL-WN721N)"

修改bug:    

http://lkml.indiana.edu/hypermail/linux/kernel/1301.2/00465.html

make uImage

转自:http://blog.csdn.net/qingkongyeyue/article/details/52241485

使用wifi网卡笔记1----网卡选型、开发环境搭建、内核配置的更多相关文章

  1. 【转】android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

    原文网址:http://www.cnblogs.com/zdz8207/archive/2012/11/27/android-ndk-install.html android 最新 NDK r8 在w ...

  2. android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创)

      android 最新 NDK r8 在window下开发环境搭建 安装配置与使用 详细图文讲解,完整实际配置过程记录(原创) 一直想搞NDK开发却一直给其他事情耽搁了,参考了些网上的资料今天终于把 ...

  3. Android NDK r8 Cygwin CDT 在window下开发环境搭建 安装配置与使用 具体图文解说

    版权声明:本博客全部文章均为原创.欢迎交流.欢迎转载:转载请勿篡改内容,而且注明出处,谢谢! https://blog.csdn.net/waldmer/article/details/3272500 ...

  4. STS开发环境搭建与配置

    STS开发环境搭建与配置 (2012-04-11 07:24:51) 转载▼ 1.   环境准备 安装JDK.MAVEN 1.1.        下载 下载sprdfingsource-tool-su ...

  5. Android学习笔记(一)开发环境搭建

    Android开发环境搭建 安装JDK 1.如果你还没有JDK的话,可以去这里http://www.oracle.com/technetwork/java/index.html ,接下来的工作就是安装 ...

  6. angularjs2 学习笔记(一) 开发环境搭建

    开发环境,vs2013 update 5,win7 x64,目前最新angular2版本为beta 17 第一步:安装node.js 安装node.js(https://nodejs.org/en/) ...

  7. 【深度学习笔记】Anaconda及开发环境搭建

    在学习了一段时间台大李宏毅关于deep learning的课程,以及一些其他机器学习的书之后,终于打算开始动手进行一些实践了. 感觉保完研之后散养状态下,学习效率太低了,于是便想白天学习,晚上对白天学 ...

  8. 【Vue 学习笔记 一、Vue开发环境搭建】

    搭建Vue的开发环境 1.首先安装Nodejs  (因为我的系统是Windows的所以就选择第一个了,这个看个人的开发环境) 下载好后,然后一路确定,如果有更改安装目录的需求,就自己切换安装目录,由于 ...

  9. QT 5.1.1 for Android 开发环境搭建与配置【Windows 7】

    前言:本人操作系统为Windows7 64位,用的是32位的安装包,32位系统没有验证. 一.首先下载以下安装包,如果提供的链接失效请自行下载: (1) Android SDK (Windows 32 ...

  10. 【Xamarin】Visual Studio 2013 Xamarin for Android开发环境搭建与配置&Genymotion

    Xamarin Xamarin是基于Mono的平台. Xamarin旨在让开发者可以用C#编写iOS, Android, Mac应用程序,也就是跨平台移动开发. 下载资源 1,进入Xamarin官方网 ...

随机推荐

  1. Http权威指南(cookie以及web认证机制)

    其实对于cookie,想必大家都不陌生,cookie目前主要用于客户端的识别技术. 说到客户端识别技术,就不得不说一个登录态的问题了.登录态顾名思义,用于验证用户的登录与否. 1.登录态 对于PC端网 ...

  2. Http权威指南(服务器、缓存)

    对于web服务器(软件)大家应该不会陌生,常见的web服务器有Apache.IIS.Tomcat.Nginx.Jetty等等. 1.基本功能 几乎所有的web服务器都会执行以下几项同样的任务: 1.建 ...

  3. Java多线程编程实战指南(核心篇)读书笔记(五)

    (尊重劳动成果,转载请注明出处:http://blog.csdn.net/qq_25827845/article/details/76730459冷血之心的博客) 博主准备恶补一番Java高并发编程相 ...

  4. java程序编写需注意的问题

    初学java,免不了很多注意事项 加分号 类名与文件名一致 javac fileName而非javac fileName.class ```java System.out.println(" ...

  5. 【剑指offer】包含min函数的栈,C++实现

    博客文章索引地址 博客文章中代码的github地址 1.题目 定义栈的数据结构,请在该类型中实现一个能够得到栈最小元素的min函数.在该栈中调用push.pop.top.min的时间复杂度都是o(1) ...

  6. 编程技巧:使用整数同时进行多个true|false判断

    情景 : 假设需要判断某银行用户的其中一个账号(profileA),币种(Currency)为人民币(CNY),余额是否大于1,0000,然后进行某业务逻辑处理. 概述: 为了进行这种判断,需要判断/ ...

  7. BJOI 2019 模拟赛 #2 题解

    T1 完美塔防 有一些空地,一些障碍,一些炮台,一些反射镜 障碍会挡住炮台的炮, 反射镜可以 90° 反射炮台的光线,炮台可以选择打他所在的水平一条线或者竖直一条线 求是否有一组方案满足每个空地必须要 ...

  8. Python学习-str与byte类型以及编码

    Python 3最重要的新特性之一是对字符串和二进制数据流做了明确的区分.文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示.Python 3不会以任意隐式的方式混用str和b ...

  9. Nginx配置(需要把nginx的根目录指向ftp上传文件的目录。)

    改成

  10. hashids 了解

    用于隐藏真实的id 原理是从数字经过一个加盐(salted)算法产生一个哈希(hash)字符串.这样算法就是通过混淆使结果具有不可预测性,而唯一性依然由数字本身来达成,从而得到(类似 youtube ...