wpa_supplicant是一个跨平台的无线安全管理软件,这里需要用它来对无线网络进行配置,wpa_supplicant相关工具已经移植好,包含在我们提供的文件系统中。

配置无线网络


wpa_supplicant软件包分为服务端wpa_supplicant和客户端wpa_cli两部分组成。wpa_supplicant为主服务程序,wpa_cli即client的意思,相当于wpa_supplicant的UI。
配置无线网络有两种方式,可以使用wpa_cli客户端手动方式,还可以使用conf配置文件进行自动方式。
wpa_supplicant配置路径:/etc/wpa_supplicant.conf

手动设置

⑴ 启动wpa_supplicant后台服务:
1
# wpa_supplicant -iwlan0 -Dwext -B -c/etc/wpa_supplicant.conf
⑵ 运行客户端程序,进入wpa_cli控制台:

1
# wpa_cli -iwlan0

这时将进入wpa_cli的命令行界面,输入如下命令,扫描并显示无线热点:
> scan
> scan_r
扫描结果将类似如下打印:
bssid / frequency / signal level/ flags / ssid
0a:11:b5:25:d8:cb       2412   -61    [WPA-EAP-CCMP+TKIP][WPA2-EAP-CCMP+TKIP][ESS] CMCC-AUTO
0c:82:68:c7:60:28       2447   -58     [WPA2-PSK-CCMP+TKIP][ESS]MYIR-LINK
bc:d1:77:21:11:72       2437   -60     [WEP][ESS] TP-LINK
00:11:b5:19:d2:86       2412   -61     [ESS] CMCC
00:23:89:03:f8:20       2462   -68     [ESS] ChinaNet
这里显示了附近的无线网络,每个无线网络都有5项参数,分别为MAC地址、频率、信号强度、加密类型、SSID。
频率:单位为Hz,同时也知道了其所在频道。例如2412即2.412GHz,就是频道1,2437即2.437GHz,则是频道6。
信号强度:单位为dbm,一般为负值,数值越大,信号越强,例如-60dbm的CMCC比-61dbm的CMCC-AUTO信号要强。
加密类型:[ESS]表示无加密的无线网络,[WEP]表示WEP加密方式,[WPA2-PSK-CCMP+TKIP]表示WPA2加密方式。
⑶ 增加网络
在连接无线网络之前,需要新建一个网络配置,使用add_network命令增加一个网络,可以使用list_network查看增加的网络信息。在wpa_cli的命令行中输入:

1
2
3
4
5
6
> list_n[/align]network id / ssid / bssid / flags
> add_n
0
> list_n
network id / ssid / bssid / flags
0               any     [DISABLED]

如果之前没有配置过网络,使用“add_n”将返回0号配置,用“add_n <num>”可以建立更多配置。

⑷设定连接

① 无加密无线网络
在wpa_cli的命令行中输入:

1
> set_n 0 ssid "MYIR-LINK"[/align]> set_n 0 key_mgmt NONE
② WEP加密的无线网络

假设key为“12345”在wpa_cli的命令行中输入:

1
2
3
> set_n 0 ssid "MYIR-LINK-WEP"
> set_n 0 key_mgmt NONE
> set_n 0 wep_key0 "12345"

③ WPA-PSK/WPA2-PSK加密的无线网络
假设key为“Make Your Idea Real”,在wpa_cli的命令行中输入:

1
> set_n 0 ssid "MYIR-LINK-WPA2"[/align]> set_n 0 psk "Make Your Idea Real"
⑸ 使能网络连接
使用enable_network命令使能网络连接:

1
> enable_n 0

看到“CTRL-EVENT-CONNECTED”信息,表示连接完成。

自动设置

将当前的网络配置保存到conf文件,方便以后调用,在wpa_cli的命令行中输入:

1
> save_c

最后输入“quit”或“CTRL+C” 退出wpa_cli命令行界面。
通过DHCP获取IP地址:

1
# udhcpc -n -i wlan0

通过ping命令检查网络是否联通,例如:

1
# ping 192.168.1.1


密文保存

前面为了方便介绍,配置文件采用的是明文方式保存,这里介绍如何使用密文方式加密conf文件中的key参数。在开发板中使用wpa_passphrase工具转换连接密码,将明文key转换为密文,如果key中包含空格需使用斜杠转译字符,例如:

1
# wpa_passphrase MYIR-LINK Make\ Your\ Idea\ Real

然后终端上会打印出配置文件的密文参数形式,如下图所示:
network={
ssid="MYIR-LINK"
#psk="Make Your Idea Real"
psk=31bb00abde903c543e774637489c20938652aa13f804b54fbf3f124336ef16ba
}

附录 wpa_cli 命令

Full command
Short command
Description
status
stat
displays the current connection status
disconnect
disc
prevents wpa_supplicant from connecting to any  access point
quit
q
exits wpa_cli
terminate
term
kills wpa_supplicant
reconfigure
recon
reloads wpa_supplicant with the configuration  file supplied
(-c parameter)
scan
scan
scans for available access points
(only scans it, doesn't display anything)
scan_result
scan_r
displays the results of the last scan
list_networks
list_n
displays a list of configured networks and their  status
(active or not, enabled or disabled)
select_network
select_n
select a network among those defined to initiate  a connection
(ie select_network 0)
enable_network
enable_n
makes a configured network available for  selection
(ie enable_network 0)
disable_network
disable_n
makes a configured network unavailable for  selection
(ie disable_network 0)
remove_network
remove_n
removes a network and its configuration from the  list
(ie remove_network 0)
add_network
add_n
adds a new network to the list. Its id will be  created automatically
set_network
set_n
shows a very short list of available options to  configure a network when supplied with no parameters.
See next section for a list of extremely useful  parameters to be used with set_network and get_network.
get_network
get_n
displays the required parameter for the specified  network. See next section for a list of parameters
save_config
save_c
saves the configuration

转载于:https://www.cnblogs.com/huty/p/8517437.html

【ARM-Linux开发】Wi-Fi 应用工具wpa_supplicant相关推荐

  1. 移植中文TTS(ekho)到ARM linux开发板

    移植ekho到arm linux,实现将中文转换为.wav格式的语音文件. 移植开源库libsndfile到arm linux开发板 1. 下载压缩源码包libsndfile-1.0.28.tar.g ...

  2. Linux开发中的辅助工具

    文章目录 前言 一.add2line 二.strip 三.ar 四.nm 五.objdump 六.size 七.strings 总结 前言 本篇文章我们来介绍一些Linux开发中的辅助工具,有了这些辅 ...

  3. Linux开发5款实用工具推荐

    今天安利给大家5款实用的Linux开发工具,希望对大家工作效率的提升有所帮助. 容器 放眼于现实,现在已经是容器的时代了.容器既及其容易部署,又可以方便地构建开发环境.如果你针对的是特定的平台的开发, ...

  4. 嵌入式开发linux工具,嵌入式Linux开发入门之MfgTool工具的使用

    介绍嵌入式linux开发的环境搭建: 一.PC端环境搭建 2.Ubuntu装好后,在终端安装minicom工具,安装命令:sudo apt-get install minicom 注:该工具在后面烧录 ...

  5. linux下s3c2440开发板,SAMSUNG S3C2440 ARM LINUX 开发板 上手初体验 --开发环境搭建

    1,linux开发环境搭建 2,程序测试 easyOpentag驱动安装,打开连接,选择ARM-linux 1,环境搭建 我的系统版本 root@ubuntu:~# lsb_release -a No ...

  6. 你必须知道的linux开发快捷键,熟知工具快速开发

    前言 节省时间就是提高效率,时间就是金钱,时间就是生命. 鲁迅名言:时间就是生命,无端地空耗别人的时间,其实是无异于谋财害命的.那如果你看到这篇文章不学习不点赞,无异于自杀. 你看了又不转发分享,无异 ...

  7. 嵌入式ARM Linux开发板自启动,跳过输入root用户名和密码

    1. 编译autologin.c程序. autologin.c文件内容 #include <unistd.h> int main() { execlp("login", ...

  8. QEMU搭建ARM linux开发环境

    qemu可以用来模拟嵌入式的开发板,很多的嵌入式开发技巧完全可以抛开开发板来做实验,甚至可以直接调试驱动.内核调试就更加方便了. 主要参考了:https://www.jianshu.com/p/948 ...

  9. 极速搭建周立功IMX283A ARM Linux开发环境(1)

    最近手特别痒,想自己买个开发板玩,由于周立功的imx283a的资料资源特别丰富,所以选择上手,以后会记录学习过程 搭建环境,阅读ARM9,了解接口 i.mx283A和i.mx287A比较 安装完成以后 ...

最新文章

  1. 算法设计思想(3)— 迭代法
  2. 在PyTorch中进行双线性采样:原理和代码详解
  3. Galaxy 生信平台(四):邮件与管理员配置
  4. Python 绘图问题:Matplotlib中plt.rcParams[]使用方法 rcsetup.py matplotlibrc
  5. 算法试题 - 找出字符流中第一个不重复的元素
  6. 从零开始的全栈工程师——js篇2.12(面向对象)
  7. canvas笔记-在canvas中使用其他HTML元素
  8. Python之进程+线程+协程(并发与并行、GIL锁、同步锁、死锁、递归锁)
  9. JAVA锁之可重入锁和递归锁及示例代码
  10. mysql数据表的字段操作
  11. maven中pom文件中scope的作用
  12. 大佬是如何实现本地通讯的?
  13. 浏览器渲染原理 记录备份
  14. leveldb学习:DBimpl
  15. 自定义TxT文档下载
  16. 最新手机号段 归属地数据库(20191210,共439265条,包括最新的号段)
  17. FPGA:异步FIFO
  18. 什么是参数化设计,通过实操了解一下? | SOLIDWORKS 操作视频
  19. 解析SRAM存储容量及基本特点
  20. SpringBoot集成移动云MAS平台(SDK版本)

热门文章

  1. anaconda3对应的python版本_利用SWIG实现Python调用C/C++!速度快就算了,代码量还特少!...
  2. Qt工作笔记-QMap查找时要注意的问题(使用contains)
  3. OpenCV文档阅读笔记-brief Creates a window官方解析及实例
  4. Struts2 访问上下问对象
  5. Java高级语法笔记-语法支持的异常
  6. php js脚本查询php,php结合js实现多条件组合查询
  7. 安装成功后python报错_python安装Graphviz后报错及解决方法
  8. linux跨ip拷贝,Linux的虚拟机拷贝到另外的操作系统时,NAT方式的静态IP无效,一直是获取的DHCP动态地址...
  9. 学python必会英语单词_Python必备常用英语词汇(一)
  10. SQL注入:3、无权读取information_schema库和拒绝union、order by语句