一、环境搭建

1、设置VMWARE的网络为桥接,并选择哪一个网卡

2、设置开发板网卡网段和PC不相同

3、根据网卡设备的PID,VID(grep “0x3327” -nR),配置内核以支持所使用的网卡,以及该网卡驱动的依赖。(cd drivers/net/wireless) -> ath9k

4、网卡需要下载固件。把固件htc_9271.fw放到单板/lib/firmware。接上USB网卡, ifconfig wlan0 up

二、使用WiFi网卡

​ 四种应用程序:iw, wpa_supplicant,dhcp

2.1 认证、加密

​ 认证、加密发展史上,有三个版本:

初级版本 open/open

​ open/wep

​ wep/wep

过度版本(WPA) 802.1x/TKIP,WEP

​ PSK/TKIP,WEP

最终版本(WPA2) 802.1x/CCMP(AES-CCMP)

​ PSK/CCMP(AES-CCMP)

对于最终版本:802.1x连接到AP,在通过服务器验证(公司企业);PSK则是连接到AP,根据事先设置好的密码,验证通过皆可使用。

2.2 iw工具的编译使用

​ iw是iwconfig的替代品,可用2种加密认证:open、WEP。但是渐渐被替代,之所以还要使用,是因为IW具有扫描等比较好用的功能。

2.2.1 IW依赖安装

iw依赖于libn13:

tar xzf libnl-3.2.23.tar.gz
cd libnl-3.2.23/
./configure --host=arm-linux --prefix=$PWD/tmp

把编译出来的头文件应该放入:

/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/includecd tmp/include/libnl3
sudo cp netlink -rf /usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/usr/include

把编译出来的库文件应该放入:/usr/local/arm/4.3.2/arm-none-linux-gnueabi/libc/armv4t/lib

把编译出来的库文件应该放入NFS文件系统的lib目录:
/work/nfs_root/fs_mini_mdev_new/lib

2.2.2 IW编译安装

tar xjf iw-3.11.tar.bz2
cd iw-3.11/

修改Makefile:
CC = “arm-linux-gcc”
NL3xFOUND := Y
#LIBS += $(shell $(PKG_CONFIG) --libs $(NLLIBNAME))
#CFLAGS += $(shell $(PKG_CONFIG) --cflags $(NLLIBNAME))

2.2.3 IW使用

​ 此时重启开发板,可以使用iw工具了。

iw list  // 列出WIFI网卡的性能
ifconfig wlan0 up
iw dev wlan0 scan   // 扫描WIFI AP
iw wlan0 connect cscs  // 连接到WIFI AP:cscs (open)

​ 这样就实现了开放网络的连接了。

​ 接下来测试某种加密认证方式的连接。

iw wlan0 connect cscs keys d:0:18380459913 // 连接到WIFI AP:cscs (WEP)d: default, 0: 第0个密码

​ 连接成功,可以通过ping查看连接状态。当需要断开连接时:

iw wlan0 disconnect

​ 可以看到,iw的使用比较简单,但是只适用于open,以及WEP两种加密认证方式,所以实用性很低。

2.3 wpa_supplicant

​ wpa_supplicant可用于上述4种"认证/加密",先编译它的依赖libopenssl,编译过程不多赘述了,接下来重点测试软件的使用。首先,wpa_supplicant需要一个.config文件,用于记录连接的信息,如密码等等,内容如下:

ctrl_interface=/var/run/wpa_supplicant
network={ssid="CSCS"key_mgmt=NONE
}

a、open:

​ CSCS是一个开放网络,key_mgmt代表的是没有密码,下面连接,并查看状态。

wpa_supplicant -B -c/etc/plaintext.conf -iwlan0
wpa_cli -iwlan0 status  // 查看状态
ifconfig wlan0 192.168.1.55
ping 192.168.1.1

b、WEP:

​ cscs通过WEP加密,需要修改.config文件,添加wifi名字和密码:

ctrl_interface=/var/run/wpa_supplicant
network={ssid="dswei"key_mgmt=NONEwep_key0="baiwenwang123"wep_tx_keyidx=0
}

​ 设置完成,可以连接:

wpa_supplicant -B -c/etc/wep.conf  -iwlan0
wpa_cli -iwlan0 status  // 查看状态
ifconfig wlan0 192.168.1.55
ping 192.168.1.1

c、WPA(TKIP)

wpa_supplicant -B -c/etc/wpa-psk-tkip.conf  -iwlan0
wpa_cli -iwlan0 status  // 查看状态
ifconfig wlan0 192.168.1.55
ping 192.168.1.1

​ .config

ctrl_interface=/var/run/wpa_supplicant  # 一个目录,用于wpa_supplicant和wpa_cli的socket通信
network={ssid="cscs"proto=WPA  # proto: list of accepted protocols, 可取WPA,RSN# If not set, this defaults to: WPA RSNkey_mgmt=WPA-PSK # 认证方式# If not set, this defaults to: WPA-PSK WPA-EAPpairwise=TKIP    # If not set, this defaults to: CCMP TKIPgroup=TKIP       # If not set, this defaults to: CCMP TKIP WEP104 WEP40 psk="18380459913"
}

wpa_cli可工作于"命令模式"和"交互模式",并且配置文件里设置多个network:

ctrl_interface=/var/run/wpa_supplicant
network={ssid="cs1"psk="18580413154"
}
network={ssid="cs2"psk="18380459913"
}

若想要连接外网,还需要DNS域名解析,以及路由设置

修改/etc/resolv.conf添加DNS:
nameserver 192.168.1.1设置网关:
route add default gw 192.168.1.1

2.4 dhcp

​ DHCP(动态主机配置协议)是一个局域网的网络协议。指的是由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码。默认情况下,DHCP作为Windows Server的一个服务组件不会被系统自动安装,还需要管理员手动安装并进行必要的配置。

​ 完成编译安装以后,具体研究一下使用:

mkdir -p /var/db
wpa_supplicant -B -c/etc/wpa_wpa2.conf  -iwlan0
dhclient wlan0

​ 此时可以自动分配IP。

​ 一连接上WIFI AP, 就自动执行dhclient的实现,创建脚本:cat /sbin/wpa_action.sh

#!/bin/sh
if [ $ACTION = "add" ];
then                                              wpa_supplicant -B -c/etc/wpa_wpa2.conf  -iwlan0wpa_cli -a/sbin/wpa_action.sh -B
else                     killall wpa_supplicantkillall wpa_cli killall dhclient
fi

Linux网卡应用程序测试相关推荐

  1. linux下串口程序测试

    linux平台下的串口程序网上比比皆是,这里是自己参考资料写的. #include <stdio.h>#include <stdlib.h>#include <strin ...

  2. linux网卡顺序问题,linux网卡绑定及网卡顺序变更测试.docx

    Linux网卡顺序变更导致网卡绑定出错及解决办法测试 2012/2/21 描述:linux中新安装网卡会导致原网卡识别顺序紊乱,影响网络及网卡绑定正常工作,此时可以更改/etc/sysconfig/n ...

  3. linux程序测试工具gprof,gprof-如何在Linux上分析多线程C ++应用程序?

    gprof-如何在Linux上分析多线程C ++应用程序? 我曾经使用gprof进行所有Linux分析. 但是,对于我的多线程应用程序,它的输出似乎不一致. 现在,我将其挖掘出来: [HTTP://S ...

  4. Linux下Sniffer程序的实现

    作者:Gianluca Insolvibile 整理:Seal(永远的FLASH) 出处:http://www.nsfocus.com 日期:2003-04-02 嗅探--Sniffer技术是网络安全 ...

  5. Linux 网卡配置文件设置

    Linux 网卡配置文件设置 配置文件 /etc/hosts(本地主机ip地址映射,可以有多个别名). /etc/services(端口号与标准服务之间的对应关系). /etc/sysconfig/n ...

  6. linux 网卡驱动分析,基于linux下网卡驱动分析及实现技术研究

    摘    要 Linux技术是当前计算机技术中最大的一个热点,在我国以及全世界得到了迅猛的发展,被广泛的应用于嵌入式系统.服务器.网络系统.安全等领域.从而使得掌握在 Linux环境下的开发技术,成为 ...

  7. linux网卡掉包或挂掉解决办法

    最近自己公司网站老出现掉包问题之前以为是网络问题或机房问题,经过N久的排查发现是linux网卡掉包了,下面我来分享我的解决办法. 之前公司的系统由于网卡问题,经常出现掉包(掉包排除攻击的 因素)或者突 ...

  8. linux 网卡的驱动程序,Linux网卡驱动程序代码

    广告 100%的CPU性能,计算能力不会降低!选择最主流的云服务器来满足各种业务需求,有数百种流行的云产品和8888元起价套餐,可帮助行业恢复工作! 获取网卡信息的代码示例. 通过命令获取arp(地址 ...

  9. linux网卡驱动程序的编译与安装,linux网卡驱动程序的编译与安装

    安装实例 linux网卡驱动程序的编译与安装 powered by KindGeorge 一般来说,目前新版的 Linux 预设可以支持的网络卡芯片组数量已经很完备了,很多网络卡芯片都已经被支持, 例 ...

最新文章

  1. Packet Tracer 5.0配置cisco路由器详细说明
  2. 电子科技大学沙河计算机就业,电子科技大学沙河的几个软件工程有什么区别?...
  3. Machine Learning week 5 quiz: programming assignment-Multi-Neural Network Learning
  4. WebRTC端点检测使用中遇到的部分问题汇总
  5. 最优化——单纯形法学习心得
  6. linux efi不要boot目录,linux – 找不到efi目录:grub-install的问题
  7. picturebox与imagelist使用选择图片
  8. 如何在Eclipse中添加Servlet-api.jar的方法
  9. java hibernate 自定义排序_Java hibernate如何对条件查询结果集排序?
  10. h2database源码浅析:TransactionMap、MVMap、MVStore
  11. 研究人员:Intel 的 VISA 漏洞可访问计算机中所有数据
  12. 用java网络编程中的TCP方式上传文本文件及出现的小问题
  13. C#调用Web Service时的身份验证 (转)
  14. 算法与数据结构(基于C语言)中线性表的快速排序快速查找
  15. 2020.10.12--PS--制作图章、抽出滤镜、消失点
  16. php加入到jpg,PHP如何将PNG转换成JPG?
  17. iOS 图片压缩策略
  18. 前端面试总结之长沙五
  19. 人工智能并不像你想象的那么迫在眉睫
  20. 2018_10_24 模拟赛

热门文章

  1. 阿里企业邮箱smtp设置
  2. 奥迪Q5更换初装变速箱油教程
  3. DTI预处理及概率性纤维束追踪
  4. unity 2d地图tilemap滚轮缩放出现缝隙解决办法
  5. DNS劫持、流量劫持,HTTP/HTTPS劫持
  6. 2019年计算机二级获证条件,2019年下半年全国计算机等级考试报考简章
  7. 机器学习(周志华) 第一章 引言
  8. 在Visual Studio上开启自己的C++学习之旅
  9. 运维是不是IT行业里技术含量最低的岗位?
  10. java获取pdf文件首页图片,用来当做封面