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

1、wifi的STA模式和AP模式

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值