嵌入式开发之工具移植--wpa_suppliant工具的移植和使用
来源:互联网 发布:淘宝网店的店名大全 编辑:程序博客网 时间:2024/05/21 17:38
wpa_suppliant工具的移植和使用
前言:本文主要讲解了wpa_suppliant的两种移植方法,和wpa配置文件的使用,以及wpa_suppliant,wpa_cli参数使用方法,最后讲解了wpa_suppliant如何使用配置文件或使用wpa_cli方式与无线模块进行关联。
目前可以使用wireless-tools 或wpa_supplicant工具来配置无线网络。wireless_tools的缺点是不支持WPA认证,wpa_supplicant支持WPA认证。
一.wpa_suppliant不依赖openssl方式
1.解压缩厂家提供的驱动RS.GENR.LNX.SD.3.2.6.rar,进入到wpa_supplicant目录中.
2.修改.config文件
#cp defconfig .config
#vim .config
首先在第一行添加交叉编译链CC = $(CROSS_COMPILE)gcc然后屏蔽以下选项#CFLAGS +=-I/usr/local/openssl/#CFLAGS +=-I/usr/local/ssl/include/#LIBS +=-L/usr/local/openssl/lib/然后将CONFIG_TLS=openssl修改成 CONFIG_TLS=internalCONFIG_TLS=internal最后将以下注释的语句改为不注释CONFIG_INTERNAL_LIBTOMMATH=yifndef CONFIG_INTERNAL_LIBTOMMATHLTM_PAHT=/usr/src/libtommath-0.39CFLAGS += -I$(LTM_PATH)LIBS += -L$(LTM_) LIBS_p +=-L$(LTM_PATH)endif
3.执行make操作进行编译,生成wpa_suppliant,wpa_cli,wpa_passphrase等可执行工具。
#make
4.使用strip工具,将wap_suppliant,wpa_cli等工具调试信息去掉,减少可执行文件的大小。
#arm-none-linux-gnueabi-strip wpa_suppiant
#arm-none-linux-gnueabi-strip wpa_cli
#arm-none-linux-gnueabi-strip wpa_passphrase
将生成的wpa_supplicant 、wpa_cli和wpa_passphrase复制到根文件系统的/sbin/目录下
二. Wpa_suppliant依赖openssl方式
如果wpa_suppliant使用openssl库时,在进行移植wap_suppliant前,我们先要移植好openssl。
(注意:关于openssl的移植可以参考:http://blog.csdn.net/tigerjibo/article/details/12784871)
1.解压缩厂家提供的驱动RS.GENR.LNX.SD.3.2.6.rar,进入到wpa_supplicant目录中.
2.修改.config文件
#cp defconfig .config
#vim .config
首先在第一行添加交叉编译链CC = $(CROSS_COMPILE)gcc –L/usr/local/ssl/lib/
3.执行make操作进行编译,生成wpa_suppliant,wpa_cli,wpa_passphrase等可执行工具。
#make
4.使用strip工具,将wap_suppliant,wpa_cli等工具调试信息去掉,减少可执行文件的大小。
#arm-none-linux-gnueabi-strip wpa_suppiant
#arm-none-linux-gnueabi-strip wpa_cli
#arm-none-linux-gnueabi-strip wpa_passphrase
将生成的wpa_supplicant 、wpa_cli和wpa_passphrase复制到根文件系统的/sbin/目录下
三.wpa_suppliant配置文件
wpa_suppliant使用wpa.cfg文件对无线模块进行关联设置。其支持无密码验证方式,WEP开放式,WPA-PSK,WPA2-PSK,WPA-PSK/WPA2-PSK配置文件。
开放系统配置方式:
ctrl_interface=/var/run/wpa_supplicantnetwork={ ssid = “tigerjibo” key_mgmt=NONE priority=2}
WEP开放式配置文件
ctrl_interface=/var/run/wpa_supplicantnetwork={ ssid = “tigerjibo” key_mgmt=NONE wep_key0=”123456” wep_tx_keyidx=0 priority=21}
WPA-PSK配置文件
ctrl_interface=/var/run/wpa_supplicantnetwork={ ssid = “tigerjibo” proto=WPA key_mgmt=WPA-PSK pairwise=TKIP group=TKIP psk=”123456” priority=20}
WPA2-PSK配置
ctrl_interface=/var/run/wpa_supplicantnetwork={ ssid = “tigerjibo” proto=WPA2 key_mgmt=WPA-PSK pairwise=TKIP group=TKIP psk=”12345678” priority=20}
WPA-PSK/WPA2-PSK
ctrl_interface=/var/run/wpa_supplicantnetwork={ ssid = “tigerjibo” psk=”12345678” priority=20}
将改好的wpa.cfg放到根文件系统的etc目录下。
Note:
(1)配置文件中的第一行ctrl_interfac不能修改,或删除,否则不能正常进行匹配工作。第二行ctrl_interface_group要屏蔽掉。
ctrl_interface=/var/run/wpa_supplicant#ctrl_interface_group=root
(2)在配置前要创建/var/run目录,因此常把该命令放在启动脚本中执行。
四wpa_suppliant使用方法
1.wpa_suppliant常用参数:
-i<ifname> : 网络接口名称-c<conf>: 配置文件名称-C<ctrl_intf>: 控制接口名称-D<driver>: 驱动名字-p<driver_param>: 驱动参数-P<PID file>:通信文件-b<br_ifname>: 桥接口名称-B :在后台运行 wpa_suppliant等价于在wpa_suppliant命令后加&
2. 使用以下命令即可实现wifi模块与无线路由器的关联。
(1)不加调试信息
# ./wpa_supplicant-iwlan0 -Drsi -c dummy.cfg &
(2)加-dd参数在关联时可以打印出调试信息
# ./wpa_supplicant-iwlan0 -Drsi -c dummy.cfg -dd &
此处使用的是rsi无线驱动。
五.wpa_cli使用方法
wpa_suppliant软件包中包含客户端程序wpa_cli,通过它可以动态设置参数进行无线网络关联,不需要采用静态wpa_suppliant配置文件设置无线网络关联。
1.wpa_cli使用方法:
(1)启动wpa_suppliant
以daemon方式启动wpa_suppliant:
# wpa_supplicant -B –iwlan0 -Drsi -c/etc/wpa.cfg
参数-B代表后台运行, 其中的-i指定无线网卡设备名为wlan0。-D 指定驱动名字,不指定驱动名字,默认为wext。-c指定配置文件是/etc/wpa.cfg,其中不包含要连接的无线网络的配置信息。
(2) wpa.cfg文件“
最简单的配置文件只包含一句配置语句即可:
ctrl_interface=/var/run/wpa_supplicant
(3)启动wpa_cli进行交互配置
//搜索无线网# wpa_cli –iwlan0 scan //显示搜索结果# wpa_cli –iwlan0 scan_results //查看网络连接状态#wpa_cli -iwlan0 status 该命令会返回新增加的网络的ID,一般是0.#wpa_cli -iwlan0 add_network//设置ssid#wpa_cli -iwlan0 set_network netid ssid ‘“tigerjibo”’//设置密码#wpa_cli -iwlan0 set_network netid psk ‘“password”’//设置加密方式#wpa_cli -iwlan0 set_network netid key_mgmt WPA-PSK#wpa_cli -iwlan0 set_network netid pairwise TKIP#wpa_cli -iwlan0 set_network netid group TKIP#wpa_cli -iwlan0 set_network netid proto WPA//使能,进行匹配#wpa_cli -iwlan0 enable_network netid
其他常见无线关联方式使用方法
连接无加密的AP
//搜索无线网# wpa_cli –iwlan0 scan //显示搜索结果# wpa_cli –iwlan0 scan_results //查看网络连接状态#wpa_cli -iwlan0 status 该命令会返回新增加的网络的ID,一般是0.#wpa_cli -iwlan0 add_network//设置ssid#wpa_cli -iwlan0 set_network netid ssid ‘“tigerjibo”’//设置加密方式#wpa_cli -iwlan0 set_network netid key_mgmt NONE//使能,进行匹配#wpa_cli -iwlan0 enable_network netid
连接WEP加密AP
//搜索无线网# wpa_cli –iwlan0 scan //显示搜索结果# wpa_cli –iwlan0 scan_results //查看网络连接状态#wpa_cli -iwlan0 status 该命令会返回新增加的网络的ID,一般是0.#wpa_cli -iwlan0 add_network//设置ssid#wpa_cli -iwlan0 set_network netid ssid ‘“tigerjibo”’//设置加密方式#wpa_cli -iwlan0 set_network netid key_mgmt NONE//设置共享密码#wpa_cli -iwlan0 set_network wep_key0 ‘”123456”’//使能,进行匹配#wpa_cli -iwlan0 enable_network netid
WPA-PAK/WPA2-PSK加密方式
//搜索无线网# wpa_cli –iwlan0 scan //显示搜索结果# wpa_cli –iwlan0 scan_results //查看网络连接状态#wpa_cli -iwlan0 status 该命令会返回新增加的网络的ID,一般是0.#wpa_cli -iwlan0 add_network//设置ssid#wpa_cli -iwlan0 set_network netid ssid ‘“tigerjibo”’//设置密码#wpa_cli -iwlan0 set_network psk ‘”123456”’//使能,进行匹配#wpa_cli -iwlan0 enable_network netid
WPA-PSK加密方式
//搜索无线网# wpa_cli –iwlan0 scan //显示搜索结果# wpa_cli –iwlan0 scan_results //查看网络连接状态#wpa_cli -iwlan0 status 该命令会返回新增加的网络的ID,一般是0.#wpa_cli -iwlan0 add_network//设置ssid#wpa_cli -iwlan0 set_network netid ssid ‘“tigerjibo”’//设置密码#wpa_cli -iwlan0 set_network netid psk ‘“password”’//设置加密方式#wpa_cli -iwlan0 set_network netid key_mgmt WPA-PSK#wpa_cli -iwlan0 set_network netid pairwise TKIP#wpa_cli -iwlan0 set_network netid group TKIP#wpa_cli -iwlan0 set_network netid proto WPA//使能,进行匹配#wpa_cli -iwlan0 enable_network netid
WPA2-PSK加密方式
//搜索无线网# wpa_cli –iwlan0 scan //显示搜索结果# wpa_cli –iwlan0 scan_results //查看网络连接状态#wpa_cli -iwlan0 status 该命令会返回新增加的网络的ID,一般是0.#wpa_cli -iwlan0 add_network//设置ssid#wpa_cli -iwlan0 set_network netid ssid ‘“tigerjibo”’//设置密码#wpa_cli -iwlan0 set_network netid psk ‘“password”’//设置加密方式#wpa_cli -iwlan0 set_network netid key_mgmt WPA-PSK#wpa_cli -iwlan0 set_network netid pairwise TKIP#wpa_cli -iwlan0 set_network netid group TKIP#wpa_cli -iwlan0 set_network netid proto WPA2//使能,进行匹配#wpa_cli -iwlan0 enable_network netid
Note:
如果系统内只有一个无线网卡,则-i wlan0参数可省略,-iwlan0是wpa_cli和wpa_supplicant进行unix方式进行进程间通信的文件名。wpa_supplicant执行时会在/data/system/wpa_supplicant目录下创建eth1文件,所以就能通信了。
ssid后psk后面参数是字符串,在使用的时候不仅要加双引号,还要在添加单引号,否则会提示执行错误。
- 嵌入式开发之工具移植--wpa_suppliant工具的移植和使用
- 嵌入式开发之工具移植---tcpdump移植和使用
- 嵌入式开发之工具移植--iperf移植和使用
- 嵌入式开发之工具移植---tcpdump移植和使用
- 嵌入式开发之工具移植--wireless tools工具的移植和使用
- 嵌入式开发之工具移植--openssl移植
- 嵌入式工具移植之-wireless tools工具的移植和使用
- linux下嵌入式wifi开发工具移植
- wireless tools工具的移植和使用
- 嵌入式Linux截图工具的移植
- 嵌入式Linux截图工具的移植
- WIFI工具移植之IW工具移植
- 嵌入式Qt开发之Qwt的移植
- Wireless工具移植之RTL8188eus驱动移植
- 移植strace工具到嵌入式Linux
- 嵌入式Linux中的wpa_supplicant等工具移植
- 嵌入式Minis3c2440开发板详解之Bootloader下的U-boot移植,内核移植,文件系统移植
- WIFI工具移植之WAP_SUPPLICANT
- iOS开发>>>音频播放
- blueStacks——an Android simulator
- 一篇很全面的freemarker教程
- 将一个升序排列的单链表和一个降序排列的单链表合并成一个升序排列的单链表(优酷土豆2014校园招聘笔试题)
- linux下MMC/SD/SDIO驱动系列之一 ---- 概述
- 嵌入式开发之工具移植--wpa_suppliant工具的移植和使用
- iOS开发>>>定位服务调用
- linux 定时任务 定时执行某脚本 定期爬虫 统计 刷新 crontab -e
-
- iOS开发>>>天气接口的调用
- 内存对齐原理
- Codeforces-356C
- 一个关于移位的问题的多种算法求解
- java提高篇(二)-----理解java的三大特性之继承