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. New Concept English three (23)

    31w 45 People become quite illogical when they try to decide what can be eaten and what cannot be ea ...

  2. 添加机构organizations模块

    startapp organizations models内容: from django.db import models from datetime import datetime # Create ...

  3. Swift 无操作时自动登出

    main.swift中代码: import Foundation import UIKit UIApplicationMain( CommandLine.argc, UnsafeMutableRawP ...

  4. 一张图说明HTTPS 握手过程

  5. Python2、3学习及迁移

    一.Python2.7 Python 2.7教程 - 廖雪峰的官方网站 Python 基础教程 | 菜鸟教程 二.Python3 Python教程 - 廖雪峰的官方网站 Python3 教程 | 菜鸟 ...

  6. C++Builder中的延时函数

    第一种方法: 使用 Sleep(1000) 函数 如果使用Sleep(1000);的时候提示如此错误   [C++ Error] supplierPayment_.cpp(321): E2015 Am ...

  7. 【排序】快速排序,C++实现

    原创博文,转载请注明出处! 本文代码的github地址 # 基本思想 ”快速排序“是对”冒泡排序“的改进. 基本原理:基于分治法,在待排线性表中取一个元素pivot作为枢轴值,通过一趟排序将待排线性表 ...

  8. Windows批处理笔记

    1. 路径类相关代号 %i提取第i个命令选项,例如%1提取第1个option,i可以取值从1到9 %~0: 取文件名(名+扩展名) %~f0:取全路径 %~d0:取驱动器名 %~p0:只取路径(不包驱 ...

  9. jenkins for mac

    Mac环境中Jenkins的停止和启动命令启动sudo launchctl load /Library/LaunchDaemons/org.jenkins-ci.plist停止sudo launchc ...

  10. 关于ehcache缓存的使用(简单对比redis)

    前言 最近在做一个项目,某个接口查询数据到返回数据总计需要7000+毫秒,一直在考虑优化的问题,优化也有原来的一家一家查询到一次查询所有的,在查询不同天数.结果是1500+,虽然优化了不少,但是数据结 ...