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

发布时间:2024-07-16  

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


文章来源于:电子工程世界    原文链接
本站所有转载文章系出于传递更多信息之目的,且明确注明来源,不希望被转载的媒体或个人可与我们联系,我们将立即进行删除处理。
服务
平台入驻

我们与500+贴片厂合作,完美满足客户的定制需求。为品牌提供定制化的推广方案、专属产品特色页,多渠道推广,SEM/SEO精准营销以及与公众号的联合推广...详细>>

原厂代理商合作

利用葫芦芯平台的卓越技术服务和新产品推广能力,原厂代理能轻松打入消费物联网(IOT)、信息与通信(ICT)、汽车及新能源汽车、工业自动化及工业物联网、装备及功率电子...详细>>

闲置物料合作

充分利用其强大的电子元器件采购流量,创新性地为这些物料提供了一个全新的窗口。我们的高效数字营销技术,不仅可以助你轻松识别与连接到需求方,更能够极大地提高“闲置物料”的处理能力,通过葫芦芯平台...详细>>

生态合作

我们的目标很明确:构建一个全方位的半导体产业生态系统。成为一家全球领先的半导体互联网生态公司。目前,我们已成功打造了智能汽车、智能家居、大健康医疗、机器人和材料等五大生态领域。更为重要的是...详细>>

加工与定制类服务商合作

我们深知加工与定制类服务商的价值和重要性,因此,我们倾力为您提供最顶尖的营销资源。在我们的平台上,您可以直接接触到100万的研发工程师和采购工程师,以及10万的活跃客户群体...详细>>

线上代理合作

凭借我们强大的专业流量和尖端的互联网数字营销技术,我们承诺为原厂提供免费的产品资料推广服务。无论是最新的资讯、技术动态还是创新产品,都可以通过我们的平台迅速传达给目标客户...详细>>

邮件营销及广告服务

我们不止于将线索转化为潜在客户。葫芦芯平台致力于形成业务闭环,从引流、宣传到最终销售,全程跟进,确保每一个potential lead都得到妥善处理,从而大幅提高转化率。不仅如此...详细>>