使用wifi网卡笔记3---工具wpa_supplicant(STA模式)
1、 wpa_supplicant介绍
supplicant是恳求者的意思,是wpa的发起者,是发送认证请求的设备(手机),手机——AP——认证服务器,可用于上述4种"认证/加密"
2、wpa_supplicant应用程序的编译与使用(阅读README文件)
(1) 先编译它的依赖libopenssl
tar xzf openssl-1.0.1d.tar.gz
cd openssl-1.0.1d/
第一类是全局性选项:
- --openssldir=OPENSSLDIR
- 安装目录,默认是 /usr/local/ssl 。
- --prefix=PREFIX
- 设置 lib include bin 目录的前缀,默认为 OPENSSLDIR 目录。
- --install_prefix=DESTDIR
- 设置安装时以此目录作为"根"目录,通常用于打包,默认为空。
- zlib
zlib-dynamic
no-zlib - 使用静态的zlib压缩库、使用动态的zlib压缩库、不使用zlib压缩功能。
- threads
no-threads - 是否编译支持多线程的库。默认支持。
- shared
no-shared - 是否生成动态连接库。
- asm
no-asm - 是否在编译过程中使用汇编代码加快编译过程。
//配置 (shared是指生成动态链接库,因为没加此项前生成的都是静态库文件。no-asm是指不使用里面的汇编代码,里面的汇编代码是给x86特别优化的)./config
shared no-asm --prefix=$PWD/tmp
修改Makefile: (加上sudo权限修改,才能修改成功)
CC= arm-linux-gcc(交叉编译)
AR= arm-linux-ar $(ARFLAGS) r
RANLIB= arm-linux-ranlib
NM= arm-linux-nm
MAKEDEPPROG= arm-linux-gcc
//编译
make
//安装
make install
安装:(把编译处理的头文件和库文件复制到工具链那里)
把编译出来的头文件应该放入:
/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)要有一个配置文件.config
tar xzf wpa_supplicant-2.0.tar.gz
cd wpa_supplicant-2.0/wpa_supplicant/
cp defconfig .config
修改.config加上一行: CONFIG_LIBNL32=y
修改Makefile:
CC=arm-linux-gcc(使用交叉编译)
//编译
make CC=arm-linux-gcc (在我的编译环境下,要指定编译条件,才能编译成arm环境下的文件;韦老师的直接make的方法,在我的环境下行不通,直接使用make,在我的环境下会编译出PC上运行的文件!就算修改makefile文件也不行)
make(make log.txt 2>&1这句话是指编译输出的信息会存入log.txt,错误的信息也会存入第一个文件(log.txt))
//指定安装路径(DESTDIR=$PWD/tmp指目的目录等于当前目录下的tmp)
make DESTDIR=$PWD/tmp install
把生成的应用程序拷贝到网络文件系统的bin目录下面
cp tmp/usr/local/sbin/ work/nfs_root/fs_mini_mdev_new/bin/
启动开发板
3、使用:(查看wpa_supplicant的README文件)
参数使用
这里-p是直接创建相关的目录,如目录run本来是没有的,但是要创建wap_supplicant,这样会先创建run目录,再在run目录下创建wpa_supplicant
mkdir -p /var/run/wpa_supplicant
注意:配置文件来源于/work/projects/wifi/wap_supplicant/wap_supplicant-2.0/wap_supplicant/examples里的.config文件,复制到网络文件系统的/etc目录下
① OPEN
//-B是指应用程序wpa_supplicant运行于后台,-c是指定配置文件, -i是指定网卡接口名
wpa_supplicant -B -c/etc/plaintext.conf -iwlan0
查看网卡wlan0的状态
wpa_cli -iwlan0 status // 查看状态
配置网卡IP
ifconfig wlan0 192.168.1.55
ping网关,若能ping通,表明配置网卡IP成功
ping 192.168.1.1
配置文件/etc/plaintext.conf内容为:
ctrl_interface=/var/run/wpa_supplicant
//network表示连接哪个网络
network={
ssid="dswei" //AP名
key_mgmt=NONE//指认证的方法
}
配置文件的写法是参考 wpa_supplicant-2.0/wpa_supplicant/examples文件夹下面的。
关于配置文件的详细解释,在wpa_supplicant-2.0/wpa_supplicant/ wpa_supplicant.conf 里 有详细介绍。
killall wap_supplicant killall用于杀死指定名字的进程(kill
processes by name)。
ifconfig wlan0 down 关闭网卡0
② WEP/WEP
wpa_supplicant -B -c/etc/wep.conf -iwlan0
wpa_cli -iwlan0 status // 查看状态
ifconfig wlan0 192.168.1.55
ping 192.168.1.1
配置文件/etc/wep.conf:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="dswei"
key_mgmt=NONE //使用open或wep的认证方式
wep_key0="baiwenwang123" //密码(5个字符或13个字符)
wep_tx_keyidx=0 //表示使用哪一个密码,现在使用第0个密码
}
③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
配置文件/etc/wpa-psk-tkip.conf
ctrl_interface=/var/run/wpa_supplicant # 一个目录,用于wpa_supplicant和wpa_cli的socket通信,用作wap_cli查看应用程序wpa_supplicant状态
network={
ssid="dswei"
proto=WPA # proto: list of accepted protocols, 可取WPA,RSN
# If not set, this defaults to: WPA RSN
key_mgmt=WPA-PSK # 认证方式(PSK是指把密码放在无线AP那里)
# 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="baiwenwang12" #密码
}
④ WPA2(AES)
配置文件来源:cp /etc/wpa-psk-tkip.conf /etc/wpa_wpa2.conf
wpa_supplicant -B -c/etc/wpa_wpa2.conf -iwlan0
wpa_cli -iwlan0 status // 查看状态
ifconfig wlan0 192.168.1.55
ping 192.168.1.1
配置文件/etc/wpa_wpa2.conf:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="dswei"
psk="baiwenwang123"
}
另:
wpa_cli可工作于"命令模式"和"交互模式"
命令模式:wpa_cli -iwlan0 status
wpa_cli -iwlan0 scan_results 查看扫描的无线AP结果
交互模式:直接执行wpa_cli命令,可执行其他命令,输入quit命令退出
⑤ 配置文件/etc/wpa_wpa2.conf里设置多个network:
ctrl_interface=/var/run/wpa_supplicant
network={
ssid="dswei"
psk="baiwenwang123"
}
network={
ssid="Programer"
psk="baiwenwang"
}
⑥ 访问外网:
man resolv.conf查看格式,修改/etc/resolv.conf(在服务器上的)添加DNS:(DNS是域名服务器,把网址)
nameserver 192.168.1.1
设置网关:
route add default gw 192.168.1.1
使用wifi网卡笔记3---工具wpa_supplicant(STA模式)的更多相关文章
- 使用wifi网卡笔记2----概念及工具iw(STA模式)
1.认证和加密的概念 (1)概念 (2)阶段划分 初级版本:认证不需要密码, 传输不需要加密 认证不需要密码, 传输需要加密(用WEP算法) 认证需要密码(用WEP算法), 传输需要加密(用WEP算法 ...
- 使用wifi网卡笔记4---工具dhcp及全自动使用wifi
dhcp : 使得WIFI网卡动态获取IP ·1.源码获取 输入dh看有哪些应用程序,输入dhclient -v查看一下相关信息,源码获取的网址 2.开发环境配置 解压 tar xzf dhcp-4. ...
- 使用wifi网卡笔记1----网卡选型、开发环境搭建、内核配置
1.wifi的STA模式和AP模式 Ap(Access Point)模式指的是可以将网卡设置为路由器用来共享流量或有线网络给别人使用, sta模式指的是当做网卡连接路由器上网 (1):AP也就是无线接 ...
- 使用wifi网卡笔记5---AP模式
使用WIFI网卡的AP功能 1.下载源码 hostapd: http://w1.fi/hostapd/ 2.编译.安装(hostapd依赖于libnl库,需要编译.安装此库) tar xzf host ...
- WIFI模块AP和STA模式分别是什么意思
无线AP(Access Point):即无线接入点,它用于无线网络的无线交换机,也是无线网络的核心.无线AP是移动计算机用户进入有线网络的接入点,主要用于宽带家庭.大楼内部以及园区内部,可以覆盖几十米 ...
- 使用WIFI网卡 wpa_supplicant
在上篇文章中,编译了应用程序iw,它使得我们的开发板可以通过usb wifi网卡连接到无线热点,为了方便实验,我们采用了手机设置了无线热点.对手机的热点有4中安全方式:无WEPWPAWPA2使用iw工 ...
- 使用WIFI网卡的AP功能
前几篇博客中,wifi无线网卡都工作于STA模式,那么它能否工作于AP模式.本篇博客就研究使wifi 无线网卡工作于AP模式.使用一个应用程序hostapd,关于它的介绍可以去此网站https://w ...
- S5PV210 移植无线wifi网卡 MT7601
一.准备工作 1.MT7601驱动下载 点击下载 2.插入usb WiFi 启动开发板linux,lsusb查看usb驱动 Bus 001 Device 003: ID 148f:7601看到的是该驱 ...
- 3.1 wifi网卡RT3070在S3C2440的移植和使用
学习目标:熟悉RT3070在S3C2440的移植和使用,以及其中的相关工具的安装和使用: 一.配置内核选择WIFI驱动 1. 将usb wifi插到电脑,在ubuntu使用命令:# lsusb 查看w ...
随机推荐
- git clone 提示输入git@xxx的密码
如下: suse:~/ecox # git clone git@vcs.in.ww-it.cn:ecox/ecox.git 正克隆到 'ecox'... git@vcs.in.ww-it.cn's p ...
- CSS 清除浮动 clear 属性
CSS 清除浮动 clear 属性用于设定元素哪一侧不允许有其他浮动元素(而并非取消元素的浮动). 可能的取值如下: 取值 说明 none 默认值,允许两侧都有浮动元素 left 左侧不允许有其他浮动 ...
- JDBC的步骤
使用jdbc步骤 a.导入数据库厂商提供的驱动程序(导入jar包) b.加载驱动程序 Class.forName("驱动程序类") c.获得连接 Connection conn=D ...
- SPI总线协议介绍
http://blog.csdn.net/ce123_zhouwei/article/details/6897293 https://www.cnblogs.com/yangguang-it/p/71 ...
- 个人Blog小程序开发完毕
今天忙了一天,算是把这个小程序弄好了,包括小程序前端页面.接口对接.后台系统.服务器架 设.域名备案.证书安装(现在阿里云的免费证书怎么审核要这么久啊,到现在还在审核中) 先上截图: 这个背景图片的替 ...
- Unity3D 海水多线程渲染算法实现
笔者介绍:姜雪伟,IT公司技术合伙人,IT高级讲师,CSDN社区专家,特邀编辑,畅销书作者,已出版书籍:<手把手教你架构3D游戏引擎>电子工业出版社和<Unity3D实战核心技术详解 ...
- java List 学习
要学习List<E>接口,首先,我知道它还有一个父接口Collection<E>.而Collection<E>又有一个超级接口Iterable<T>. ...
- 原 the app referencesnon-public selectors in payload
摘要 当我们上传验证的时候,出现了the app referencesnon-public selectors in payload/项目名.app/项目:字符 的警告的解决办法 当我们上传验证的时候 ...
- 创建第一个python程序:‘Hello World!’
安装好python解释器就可以创建第一个仪式程序Helloworld了 1.Python程序的3种运行方式 1.1.Python解释器直接运行 在Windows或者Linux命令行输入python,进 ...
- with异常
with 语句 语法: with 表达式1 [as 变量1], 表达式2 [as 变量2], ...: 语句块 作用: 使用于对资源进行访问的场合,确保使用过程中不管是否发生异常都会执行必要的'清理操 ...