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模式)的更多相关文章

  1. 使用wifi网卡笔记2----概念及工具iw(STA模式)

    1.认证和加密的概念 (1)概念 (2)阶段划分 初级版本:认证不需要密码, 传输不需要加密 认证不需要密码, 传输需要加密(用WEP算法) 认证需要密码(用WEP算法), 传输需要加密(用WEP算法 ...

  2. 使用wifi网卡笔记4---工具dhcp及全自动使用wifi

    dhcp : 使得WIFI网卡动态获取IP ·1.源码获取 输入dh看有哪些应用程序,输入dhclient -v查看一下相关信息,源码获取的网址 2.开发环境配置 解压 tar xzf dhcp-4. ...

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

    1.wifi的STA模式和AP模式 Ap(Access Point)模式指的是可以将网卡设置为路由器用来共享流量或有线网络给别人使用, sta模式指的是当做网卡连接路由器上网 (1):AP也就是无线接 ...

  4. 使用wifi网卡笔记5---AP模式

    使用WIFI网卡的AP功能 1.下载源码 hostapd: http://w1.fi/hostapd/ 2.编译.安装(hostapd依赖于libnl库,需要编译.安装此库) tar xzf host ...

  5. WIFI模块AP和STA模式分别是什么意思

    无线AP(Access Point):即无线接入点,它用于无线网络的无线交换机,也是无线网络的核心.无线AP是移动计算机用户进入有线网络的接入点,主要用于宽带家庭.大楼内部以及园区内部,可以覆盖几十米 ...

  6. 使用WIFI网卡 wpa_supplicant

    在上篇文章中,编译了应用程序iw,它使得我们的开发板可以通过usb wifi网卡连接到无线热点,为了方便实验,我们采用了手机设置了无线热点.对手机的热点有4中安全方式:无WEPWPAWPA2使用iw工 ...

  7. 使用WIFI网卡的AP功能

    前几篇博客中,wifi无线网卡都工作于STA模式,那么它能否工作于AP模式.本篇博客就研究使wifi 无线网卡工作于AP模式.使用一个应用程序hostapd,关于它的介绍可以去此网站https://w ...

  8. S5PV210 移植无线wifi网卡 MT7601

    一.准备工作 1.MT7601驱动下载 点击下载 2.插入usb WiFi 启动开发板linux,lsusb查看usb驱动 Bus 001 Device 003: ID 148f:7601看到的是该驱 ...

  9. 3.1 wifi网卡RT3070在S3C2440的移植和使用

    学习目标:熟悉RT3070在S3C2440的移植和使用,以及其中的相关工具的安装和使用: 一.配置内核选择WIFI驱动 1. 将usb wifi插到电脑,在ubuntu使用命令:# lsusb 查看w ...

随机推荐

  1. H.264采集、编码、传输的流程

    转载自H.264采集.编码.传输的流程 1 采集到的原始数据放入buf中 2 转化为yuv格式放入yuv conv.RGB24_to_YV12(buf, yuv,IMAGE_WIDTH, IMAGE_ ...

  2. L148

    You don't know about real loss, because that only occurs when you love something more than you love ...

  3. Makefile.am文件的实例讲解

    Makefile.am是一种比Makefile更高层次的编译规则,可以和configure.in文件一起通过调用automake命令,生成Makefile.in文件,再调用./configure的时候 ...

  4. GNU Autotools的使用方法

    手工写Makefile是一件很有趣的事情,对于比较大型的项目,如果有工具可以代劳,自然是一件好事.在Linux系统开发环境中,GNU Autotools 无疑就充当了这个重要角色.(在Windows系 ...

  5. CUDA Samples: Calculate Histogram(atomicAdd)

    以下CUDA sample是分别用C++和CUDA实现的计算一维直方图,并对其中使用到的CUDA函数进行了解说,code参考了<GPU高性能编程CUDA实战>一书的第九章,各个文件内容如下 ...

  6. 使用strdup 和 _strdup

    在重构旧的C代码里,使用了这个函数, pNew = new OBJECTDESC; sscanf(buf, "%x", &i); pNew->wObjectID = ...

  7. Java堆空间溢出解决方法 Exception in thread "main" java.lang.OutOfMemoryError: Java heap space

    一般通过java -jar filename.jar运行jar包,但是当运行的java程序需要较大的内存时,可能会造成堆空间溢出. 例如,加载了几个G大小的json文件,运行报错: Exception ...

  8. ubuntu安装 tensorflow GPU

    安装支持GPU的tensorflow前提是正确安装好了 CUDA 和 cuDNN. CUDA 和 cuDNN的安装见 Nvidia 官网和各种安装教程,应该很容易,重点是要选准了支持自己GPU的 CU ...

  9. linux下升级svn版本到1.8

    CentOS6.5默认yum安装的svn版本为1.6,有时候遇到比较高级的应用就可能不够使用,这时候就需要升级一下svn的版本,可以升级到的版本为1.8 ====== 完美的分割线 ====== 1. ...

  10. Django的CBV

    CBV CBV(class base views) 就是在视图里使用类处理请求. Python是一个面向对象的编程语言,如果只用函数来开发,有很多面向对象的优点就错失了(继承.封装.多态).所以Dja ...