技术标签: wifi 网络 WiFi设置 linux 嵌入式
wpa_supplicant是一个连接、配置WIFI的工具,它主要包含wpa_supplicant与wpa_cli两个程序。wpa_supplicant是服务端,wap_cli是客户端,一般情况下使用wpa_cli就可以操作WiFi。但是它不支持所有的驱动,可以浏览wpa_supplicant网站获得它所支持的驱动列表。另外,wpa_supplicant目前只能连接到那些你已经配置好SSID的无线网络,也就是使用前需要配置好wpa_supplicant的配置文件wpa_supplicant.conf
看下wpa_supplicant的help信息
[root@eufy /oem]$ wpa_supplicant -help
wpa_supplicant v2.6
usage:
wpa_supplicant [-BddhKLqqtvW] [-P<pid file>] [-g<global ctrl>] \
[-G<group>] \
-i<ifname> -c<config file> [-C<ctrl>] [-D<driver>] [-p<driver_param>] \
[-b<br_ifname>] [-e<entropy file>] [-f<debug file>] \
[-o<override driver>] [-O<override ctrl>] \
[-N -i<ifname> -c<conf> [-C<ctrl>] [-D<driver>] \
[-p<driver_param>] [-b<br_ifname>] [-I<config file>] ...]
drivers:
nl80211 = Linux nl80211/cfg80211
wext = Linux wireless extensions (generic)
wired = Wired Ethernet driver
options:
-b = optional bridge interface name
-B = run daemon in the background
-c = Configuration file
-C = ctrl_interface parameter (only used if -c is not)
-d = increase debugging verbosity (-dd even more)
-D = driver name (can be multiple drivers: nl80211,wext)
-e = entropy file
-f = log output to debug file instead of stdout
-g = global ctrl_interface
-G = global ctrl_interface group
-h = show this help text
-i = interface name
-I = additional configuration file
-K = include keys (passwords, etc.) in debug output
-L = show license (BSD)
-M = start describing new matching interface
-N = start describing new interface
-o = override driver parameter for new interfaces
-O = override ctrl_interface parameter for new interfaces
-p = driver parameters
-P = PID file
-q = decrease debugging verbosity (-qq even less)
-t = include timestamp in debug messages
-v = show version
-W = wait for a control interface monitor before starting
example:
wpa_supplicant -Dnl80211 -iwlan0 -c/etc/wpa_supplicant.conf
选项 | 说明 |
---|---|
-b | optional bridge interface name 增加网桥名称 |
-B | run daemon in the background后台执行 |
-c | Configuration file 附加配置文件,即根据配置文件执行操作 |
-C | ctrl_interface parameter (only used if -c is not) 控制网口参数 |
-i | interface name 设定操作的网口 |
-d | increase debugging verbosity (-dd even more)增加调试信息输出 |
-D | driver name (can be multiple drivers: nl80211,wext) 驱动名称 |
-g | global ctrl_interface 全局网口配置 |
-K | include keys (passwords, etc.) in debug output 在debug输出中包含keys |
-t | include timestamp in debug messages 将各个debug信息前输出时间标签 |
-h | show this help text显示帮助信息 |
-L | show license (GPL and BSD) 显示license |
-o | override driver parameter for new interfaces 覆盖driver参数 |
-O | override ctrl_interface parameter for new interfaces 覆盖ctrl_interface参数 |
-p | driver parameters 携带驱动参数 |
-P | PID file进程文件 |
-q | decrease debugging verbosity (-qq even less)在debug 中不输出指定参数 |
-v | show version 显示版本信息 |
-W | wait for a control interface monitor before starting 启动前等待控制接口 |
-N | start describing new interface 启动对新接口的描述 |
-f | log output to debug file instead of stdout log的输出文件 |
wpa_supplicant配置文件wpa_supplicant.conf的可配置选项太多,先了解下常用的配置项。看个例子:
cat wpa_supplicant.conf
ctrl_interface=/var/run/wpa_supplicant
ap_scan=1
network={
scan_ssid=1
ssid="mr112"
psk="123456789"
key_mgmt=WPA-PSK
}
配置项 | 说明 |
---|---|
ctrl_interface | 默认的也是推荐使用的存放套接字的目录,wpa_cli将会在尝试和wpa_supplicant连接时使用它 |
ap_scan | 接入点的扫描和选择 |
scan_ssid | =0不扫描这个通过特定的探测请求帧得到的SSID(默认)=1扫描通过特定探测请求帧得到的SSID(这个可以用于寻找不接受广播的APs或者使用多SSIDs ;这个将会增加扫描延时时间,所以在有必要时才激活此选项) |
ssid | 无线名称 |
psk | 无线密码 |
key_mgmt | 公认的认证密钥管理协议列表,WPA-PSK 预共享密匙 (这需要‘psk’字段) |
另外,如果需要休眠唤醒功能,则加wowlan_triggers=any配置
wpa_supplicant -B -i wlan0 -c /data/cfg/wpa_supplicant.confg -f /tmp/wap.log
选项 | 说明 |
---|---|
scan | 打开后扫描AP |
scan_results或scan_r | 显示扫描结果 |
status | 列出目前的联网状态。 |
list_networks | 列出所有备选网络。目前正连接到的网络会标[CURRENT],禁用的网络会标[DISABLE]。 |
add_network | 增加一个备选网络,输出新网络的号码(这个号码替代下文的[network_id])。注意新网络此时是禁用状态。 |
set_network [network_id] ssid “Your SSID” | 设置无线网的名称(SSID) |
set_network [network_id] key_mgmt WPA-PSK | 设置无线网的加密方式为WPA-PSK/WPA2-PSK |
set_network [network_id] psk “Your Password” | 设置无线网的PSK密码 |
enable_network [network_id] | 启用网络。启用后如果系统搜索到了这个网络,就会尝试连接。 |
disable_network [network_id] | 禁用网络。 |
save_config | 保存配置。 |
[root@eufy /oem]$ wpa_cli scan
Selected interface 'wlan0'
OK
[root@eufy /oem]$ wpa_cli scan_result
Selected interface 'wlan0'
bssid / frequency / signal level / flags / ssid
2a:47:3d:62:21:fb 2462 -16 [WPA2-PSK-CCMP][ESS] mr112
64:6e:97:0c:c9:68 2462 -51 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] LdRobotAp-2.4
f8:8c:21:67:6b:67 2462 -28 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] app\xe7\xbb\x84
80:ea:07:81:24:85 2462 -75 [WPA-PSK-CCMP+TKIP][WPA2-PSK-CCMP+TKIP][ESS] YAKO_2.4G
f8:8c:21:67:6b:69 5785 -32 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] app\xe7\xbb\x84-5G
74:22:bb:89:0c:34 5180 -38 [WPA2-PSK-CCMP][ESS] WFW_5G
2c:15:e1:3d:ba:0d 5745 -37 [WPA2-PSK-CCMP][ESS] ASUS_0B_5G
48:0e:ec:8d:4f:7f 5805 -40 [WPA-PSK-CCMP][WPA2-PSK-CCMP][ESS] TP-LINK_4F7D
[root@eufy /oem]$ wpa_cli status
Selected interface 'wlan0'
bssid=2a:47:3d:62:21:fb
freq=2462
ssid=mr112
id=0
mode=station
pairwise_cipher=CCMP
group_cipher=CCMP
key_mgmt=WPA2-PSK
wpa_state=COMPLETED
ip_address=192.168.191.5
address=20:32:33:38:32:72
文章浏览阅读871次,点赞11次,收藏3次。*单片机设计介绍, 基于51单片机冰箱温度控制器设计。_基于51单片机的智能冰箱控制系统设计
文章浏览阅读4.8k次。一、sftp服务器进入root模式(下面的操作默认都是在root用户下)#安装openssh-serverapt-get install -y openssh-server创建sftp的组和用户#创建sftp-users组groupadd sftp-users#创建sftp用户目录alicemkdir /home/alice#创建sftp用户alice,并且绑定其主目..._ubuntu sftp服务器查看用户和密码
文章浏览阅读5.9k次,点赞9次,收藏16次。解决了在simulink中使用s-function遇到的报错:State derivatives returned by S-function 'demo' in 'test/S-Function' during flag=1 call must be a real vector of length 2 _state derivatives returned by s-function 'pmsm' in 'ipmsm/ipmsm/s-function1
文章浏览阅读3.1k次。1. 打开配置文件Mac 如下图2. 在文件内部添加这段文字,就可以了:"update_check":false _mac sublime text 取消更新提示
文章浏览阅读548次,点赞10次,收藏6次。Linux系统下DNS配置指南_linux 服务器修改网络dns
文章浏览阅读779次,点赞19次,收藏24次。springboot微信小程序的小疾病问诊服务系统的设计与实现。springboot基于spring的物业管理系统的设计与实现。springboot基于Java的高校学生请假系统。ssm基于Android的购物商场APP设计与实现。springboot基于微信小程序的智慧校园系统。ssm基于Android的英语词典的设计与开发。ssm基于SSM+Vue的学生实践管理平台开发。ssm基于android的企业员工考勤系统。ssm基于web的暗香小店系统的设计与实现。ssm基于Web的高等学校公费医疗管理系统。
文章浏览阅读551次,点赞23次,收藏7次。mit6.824的lab1,实现MapReduce_mitmapreduce实现csdn
文章浏览阅读6.6k次,点赞10次,收藏82次。在刚开始学Android开发时,下载好了Android studio,但是不知道如何下手,现在就通过一个简单的小项目熟悉如何使用这个软件进行Android开发。前提:下载好Android studio并配置好相关环境。首先介绍一下Android开发过程中需要修改的三类文件:位于java包下的各类activity文件:实现了用户与软件的交互,主要为java代码实现。位于res包下的.xml文件:在layout包里的为布局文件,即Android界面显示的视图,而drawable里则放置了某个控件的_android studio简单项目
文章浏览阅读3.5k次。一、Bootstrap 弹出框弹出框控件类似于提示框,它在鼠标点击到元素后显示,与提示框不同的是它可以显示更多的内容。注意: 弹出框要写在 jQuery 的初始化代码里: 然后在指定的元素上调用 popover() 方法。1.1 基本弹出框通过向元素添加 data-toggle=“popover” 来来创建弹出框。title 属性的内容为弹出框的标题,data-content 属性..._bootstrap 弹出框
文章浏览阅读226次,点赞2次,收藏3次。本项目设计了一款可以触摸控制的天气显示器。主要由Wemos D1 Mini Pro和TFT显示屏组成,利用Wemos D1 Mini Pro作为设备的主控芯片,发出Wi-Fi信号并接收相应指令,通过调用API将接收到的信息传输到TFT显示屏,TFT显示屏将接收到的信息显示出来。该天气显示器实现对所在地区当前的时间与日期;当日的天气信息,如温度、压力、湿度、降雨量;七天的未来预测等功能的显示。设计采用Wemos D1 Mini Pro,利用API将实时获取的天气信息,通过TFT显示屏显示出来。_arduino wemos d1 mini
文章浏览阅读653次。public void initDiffDisplay() { try { DisplayManager displayManager = (DisplayManager) getSystemService(Context.DISPLAY_SERVICE); Display[] presentationDisplays = displayManager.getDisplays(); if (presentationDi._android service 检测是否双屏
文章浏览阅读530次,点赞23次,收藏10次。springboot+mybatisplus+mysql 用户端 uniapp(vue语法)管理后台 vue+elementUi。后台服务 springboot+mybatisplus+mysql。一、我们技术使用JAVA后台服务 前后端分离。管理后台 vue+elementUi。用户端 uniapp(vue语法)适配小程序+H5+公众号。私信客服获取演示地址。私信客服获取演示地址。