使用wifi网卡笔记1----网卡选型、开发环境搭建、内核配置

发布者:快乐舞蹈最新更新时间:2024-07-16 来源: elecfans关键字:开发环境  内核配置 手机看文章 扫描二维码
随时随地手机看文章

1、wifi的STA模式和AP模式

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

 sta模式指的是当做网卡连接路由器上网

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


WIFI模块AP和STA 模式


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


WIFI模块AP和STA模式


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


关键字:开发环境  内核配置 引用地址:使用wifi网卡笔记1----网卡选型、开发环境搭建、内核配置

上一篇:ALSA声卡16_编写ALSA声卡应用程序_学习笔记
下一篇:spi驱动框架全面分析,从master驱动到设备驱动

推荐阅读最新更新时间:2024-11-08 10:54

MSP430在CCS开发环境下的内存分配
用CCS开发环境以及有一年多了,之前写程序,仅仅是停留在写程序的阶段,从来没有想过内存是如何分配的。这次做这个,由于程序的代码量比较大,有40K+,所以在程序整合编译的过程中,遇到了一些之前没有遇到过的问题,在查阅了一些资料之后,解决了这些问题,在这里做一下总结。 首先,我们先抛出遇到的问题。在将程序整合之后,编译报错了,报的错误如下图所示。这个问题是说重定向时,重定向的地址为17位,太大了,超过了16位译码的范围。 这里这个问题我是这样理解的,是这些函数中需要调用一些字符串常量(根据错误定位得出的结论),这时候需要跳转到这个常量所在的地址,但是由于这个地址离当前函数所在的地址“太远了”,所以没有办法跳转到那里执行。
[单片机]
MSP430在CCS<font color='red'>开发环境</font>下的内存分配
STM8单片机启动流程彻底探究--基于IAR开发环境
初学STM8会发现,STM8官方的固件库并没有提供一个.s文件的启动代码,那么她是如何启动然后跳转到main函数执行的呢 首先,我们根据ARM的只是可以推测,STM8也是通过复位向量来启动的,假设流程在复位响亮中完成的,应该首先去复位向量表中间去找,看复位向量又要看存储器映射,一环扣一环 STM8使用的是统一编址技术,以下是存储器编址图 我们可以看到,最大取指空间是0XFFFFFF,也就是说,是16M,这是因为PC的特性决定的 在程序内部,它是将16M分为了256个节(sector),每个节的大小为64K,64*256= 16384K=16M,由图我们可以看到,在SECTOR0区间里面似乎还有些玄妙,之后的就是普通
[单片机]
STM8单片机启动流程彻底探究--基于IAR<font color='red'>开发环境</font>
Nexperia推出能源采集PMIC,以加速开发环境友好型能源自主式低功耗器件
Nexperia推出能源采集PMIC,以加速开发环境友好型能源自主式低功耗器件 电容式DC-DC转换器有助于节省高达90%的BOM成本 奈梅亨,2023年4月7日: 基础半导体器件领域的专家Nexperia今日宣布推出能量采集解决方案,进一步丰富其电源管理IC系列 。该方案可简化低功耗物联网(IoT)及其嵌入式应用,并增强应用性能。NEH2000BY是高性能电源管理集成电路(PMIC),可从环境中收集能源(例如借助光伏电池采集光能),并给电池或储能电容充电。凭借此特性,Nexperia的NEH2000BY可为开发体积更小、更环保的自供电式电子设备提供支持。此外,该能源采集解决方案还有助于减轻每年生产和废弃的数十亿电池
[电源管理]
Nexperia推出能源采集PMIC,以加速<font color='red'>开发环境</font>友好型能源自主式低功耗器件
Silicon Labs推出蓝牙Mesh软硬件开发环境
为了帮助开发人员简化物联网(IoT)网状网络(mesh-networked)设备的设计并加快上市速度,Silicon Labs(亦称“芯科科技”,NASDAQ:SLAB)推出了支持最新Bluetooth®网状网络规范的全套软件和硬件。最新Bluetooth网状网络解决方案得益于Silicon Labs成熟的网状网络专业经验,包括开发工具、软件协议栈和支持Silicon Labs无线片上系统(SoC)设备和已通过认证的模块的移动应用程序。与现有的无线开发工具和技术相比,Silicon Labs专利的网络分析工具和智能手机Bluetooth网状网络协议栈的组合,使得IoT开发人员缩短产品上市时间长达六个月。 Bluetooth网状网络
[物联网]
mac下搭建stm32开发环境
一、STM32CubeMX 1. java环境 直接使用brew安装openjdk 8: brew install openjdk@8 配置jdk环境: sudo ln -sfn /usr/local/opt/openjdk@8/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-8.jdk /usr/libexec/java_home 配置完成后检查java环境: java -version 2. 安装stm32cubemx 官方下载:https://www.st.com/en/development-tools/stm32cubemx.html
[单片机]
mac下搭建stm32<font color='red'>开发环境</font>
使用keil5 搭建2440开发环境
手头有一块TQ2440的开发板,最近由于项目需要,需要用上,官方提供的源码和uboot都是基于ADS,这么老的开发环境当然不想用,当然使用keil了,去keil官网(http://www.keil.com/)发现,keil已经更新到keil5,于是打算鼓捣使用keil5了。 打开官网下载: 为了方便起见,我把相关资料上传到我的百度云: keil521下载: 链接:http://pan.baidu.com/s/1Cl8Ea 密码:f4zx 注册机下载: 链接:http://pan.baidu.com/s/1En2FW 密码:ixid 老版芯片支持包 链接:http://pan.baidu.
[单片机]
使用keil5 搭建2440<font color='red'>开发环境</font>
瑞萨电子推出集成开发环境 无需硬件即可实现ECU级汽车软件开发
9月27日,先进 半导体 解决方案供应商瑞萨电子公司(Renesas Electronics Corporation)推出新的集成开发环境,允许工程师为包含多个硬件设备的汽车ECU(电子控制单元)快速创建软件。该完全集成的环境支持多个SoC(片上系统)和MCU( 微控制器 )上的协同仿真、调试和跟踪、高速仿真和分布式处理软件,且均无需实际硬件。 图片来源:瑞萨 该软件开发环境可以认可了汽车行业不断向“软件优先(Software First)”产品的开发转变,其中汽车的价值越来越多地由其软件定义,并转向“左移(Shift Left)”软件设计方法,即在开发周期早期,也就是硬件可用之前,注重软件验证和确认。目前,第一批开发环
[汽车电子]
瑞萨电子推出集成<font color='red'>开发环境</font> 无需硬件即可实现ECU级汽车软件开发
Qemu搭建ARM vexpress开发环境(一)
嵌入式开发离不开硬件设备比如:开发板、外设等,但是如果只是想学习研究Linux内核,想学习Linux内核的架构,工作模式,需要修改一些代码,重新编译并烧写到开发板中进行验证,这样未必有些复杂。然而Qemu的使用可以避免频繁在开发板上烧写版本,如果进行与外设无关,仅仅是内核方面的调试,Qemu模拟ARM开发环境完全可以完美地胜任。 下面简单介绍下我的Qemu开发环境搭建过程: 1. 环境 由于在开发过程中也需要Windows系统下的一些工具,于是放弃了以前搭建的双系统环境而采用在PC的Windows10系统下通过VirtualBox虚拟机安装Xubuntu系统进行开发,避免了双系统开发中需要不断重启切换PC系统的问题。Xub
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved