使用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驱动到设备驱动

推荐阅读最新更新时间:2026-03-25 12:20

迅为-IMX6开发板设备树-Linux内核配置两路can
1、修改Android6 源码的设备树文件imx6qdl-sabresd.dtsi,添加如下图所示的can2节点,蓝色字体是添加的内容。 2、修改完后,保存退出。然后重新编译 Linux 内核,参考第 17.4 章节编译 Linux 内核,编译完成会生成kernel 镜 像 是 “ kernel_imx/arch/arm/boot ” 目 录 下 的 “ zImage”, 生 成 的 设 备 树 镜 像 是“kernel_imx/arch/arm/boot/dts ”目录 下的 “topeet_10.1inch.dtb” 、“topeet_7inch.dtb”和“topeet_9.7inch.dtb” 3、重新烧写设备树
[单片机]
迅为-IMX6开发板设备树-Linux<font color='red'>内核</font><font color='red'>配置</font>两路can
s3c2440上linux-2.6.28.7内核配置及Qtopia文件系统移植和搭建
一、linux-2.6.28.7内核配置过程 1,新编译好的内核下载到FLASH中,启动linux以后报错,说找不到rootfs入口,解决方法是内核编译选项中选中“file system- yaffs2 fs support”,以及 let yaffs to its ecc . 2,烧写好内核及文件系统后,发现无论怎么点击触摸屏,系统都没有反应,可是开发板自带的kernel烧上去后就没有问题,所以,判断问题还是出于内核配置的问题。解决办法是内核配置“device drivers- input device- (*)touchscreen interface并且(*)touchscreen event”, 以及“device
[单片机]
1_5.3.2_内核配置裁剪及启动流程_内核启动流程分析之配置_P
配置结果:生成一个.config文件。 以配置项:CONFIG_DM9000为例。 使用vim打开.config,搜索DM9000,可以看到CONFIG_DM9000=y,表示编译内核时DM9000会被链接,编入内核。 有一些参数等于m,表示编译后作为模块,不编入内核但可以动态加载这个模块。 使用grep “CONFIG_DM9000” * -nwR指令在全部文件中搜索CONFIG_DM9000。 可以看到,在以下四种地方可以搜索到CONFIG_DM9000。 C源码:CONFIG_DM9000(主要是宏,在autoconf.h文件中定义) 子目录Makefile:drivers/net/Makefile
[单片机]
1_5.3.2_<font color='red'>内核</font><font color='red'>配置</font>裁剪及启动流程_<font color='red'>内核</font>启动流程分析之<font color='red'>配置</font>_P
(mini2440)建立交叉编译环境+配置linux内核
系统ubuntu12.04(非虚拟机下) mini2440 CPU型号:S3C2440AL-40 Nandflash型号:K9F1G08 Norflash型号:SST39VF1601 LCD:统宝 240 x 320 $:普通账户 #:root账户 *当shell下输入路径时可使用tab键自动补全 (一)建立交叉编译环境 1.将mini2440光盘中的linux文件夹拷贝到 /home/lianghuiyong 并改名为Linux_share (其中两个文档为我后面添加进去的) 2.Ctrl+Alt+T打开shell 3.$ su - root (切换root权限) 4.# cd /home/lianghuiyong/
[单片机]
(mini2440)建立交叉编译环境+<font color='red'>配置</font>linux<font color='red'>内核</font>
应用调试-----配置内核输出应用程序的段错误信息
arch/arm/mm/fault.c __do_user_fault(struct task_struct *tsk, unsigned long addr, unsigned int fsr, unsigned int sig, int code, struct pt_regs *regs) { struct siginfo si; #ifdef CONFIG_DEBUG_USER // 1. 配置内核 if (user_debug & UDBG_SEGV) { printk(KERN_DEBUG
[单片机]
嵌入式Linux研究-对几种典型的系统的内核配置方案
摘要 本文主要介绍了几种减裁Linux核心的方法,可以用于嵌入式系统、嵌入式服务器的核心配置。 By iamafan 1.对于一般PC的普通内核配置 对于一般的用户而言,对于Linux内核的效率和大小的要求都不高。因此一般不对内核重新配置,因为Linux安装程序会在安装时对大部分设置按照安装的需求和实际的硬件做缺省设置。这样的内核会比实际需要的繁冗,有很多模块加载后根本就没有用到,但是因为现在的PC的内存一般都是上百MB,而一个Linux内核再大也就是几百K,因此对于一般用户而言,无需再重新编译内核了。 在一台P3-566的Dell机器安装Red-Hat7.2,内核版本为2.4.6 以下是一些该机的配置: Loa
[嵌入式]
纷繁标准呼唤创新算法,可配置内核前景看好
对嵌入式CPU内核市场来说,近年来兴起的可配置(configurable)内核技术,随着采用的客户日益增加,已逐渐受到市场的关注。市场研究机构Semico Research公司的技术长Tony Massimini日前表示,对于需要大量数据运算以及标准不断演进的新兴消费性电子产品来说,可配置内核确实有其优势,并预期此一市场将能够持续成长。 回顾嵌入式内核的发展历程,Tony Massimini指出,在1990年代初期,32位嵌入式控制只是非常小的一块市场,直到手机与游戏机产品的兴起,才让ARM、MIPS公司开始崭露头角。到现在,随着消费性电子市场的增温,嵌入式CPU内核也有许多不同的类型以及不同的设计方法,包括ASSP、高
[嵌入式]
迅为RK3588开发环境三步搭建指南:从零到一轻松上手
无需为环境配置而困扰,这份详尽教程将引导你轻松掌握旗舰芯片。 大家好!最近拿到了性能强悍的迅为RK3588开发板,是不是既兴奋又对如何搭建开发环境感到一丝迷茫? 别担心!环境搭建就像是玩新游戏前的“新手教程”,只要跟着正确的步骤走,就能轻松通关。今天,我将为大家带来一份RK3588开发环境搭建“三步曲”,用最清晰的逻辑,带你从零开始,完成整个平台的搭建。 本教程以系统为例(推荐Ubuntu20.04),这是进行最主流和高效的环境。 前言:准备工作 在开始“演奏”三步曲之前,我们需要准备好“乐器”: 1.一台PC:建议安装Ubuntu20.04/22.04LTS(物理机或虚拟机均可,内存建议8G以上)。 2.迅为RK358
[嵌入式]
小广播
最新单片机文章
何立民专栏 单片机及嵌入式宝典

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

厂商技术中心

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

 
机器人开发圈

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