Linux网卡应用程序测试

一、环境搭建

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/include

cd 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=NONE
        wep_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 RSN

        key_mgmt=WPA-PSK # 认证方式
                         # If not set, this defaults to: WPA-PSK WPA-EAP
        pairwise=TKIP    # If not set, this defaults to: CCMP TKIP
        group=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  -iwlan0
   wpa_cli -a/sbin/wpa_action.sh -B
else                     
   killall wpa_supplicant
   killall wpa_cli 
   killall dhclient
fi
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值