我正在构建一个物联网设备,由芯片上的无头 Debain 提供支持(https://getchip.com/),并且可以连接到客户的 WiFi。我正在尝试以一种不需要客户输入密码和用户名的方式构建与客户路由器的 wifi 连接功能。基本上,我希望在 Unix 中具有 WPS 按钮功能。
我已经安装了wpa_cli
,并且一直在修改 wpa_supplicant.conf。然而我很困惑。示例.conf
文档位于这里,说明我们需要提前输入路由器的所有参数。为什么需要这样呢?这是否违背了 WPS 的目的(即 WPS 应该对任何接入点不可见,并且应该与最近打开 WPS 窗口的路由器进行握手)?
答案1
按如下方式编辑您的/etc/wpa_supplicant.conf
配置文件:
至少您需要添加以下行:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1
CONFIG_DRIVER_NL80211=y
您可以启用其他一些支持:
ctrl_interface=/var/run/wpa_supplicant
ctrl_interface_group=0
update_config=1
CONFIG_DRIVER_NL80211=y
CONFIG_WPS=y
CONFIG_WPS2=y
CONFIG_WPS_ER=y
CONFIG_WPS_NFC=y
uuid=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
获取uuid
通过status
命令wpa_cli
连接
- 跑步
wpa_cli
- 在交互模式下,运行
wps_pbc
并按下wps
按钮。 - 连接后运行
dhclient wlan0
(wlan0
用你的wifi接口更改)
答案2
请参阅以下位置的文档:w1.fi/cgit/hostap/plain/wpa_supplicant/README-WPS。
您正在查看的文档显示了 中所有可能的选项wpa_supplicant.conf
,其中包括静态配置选项。
您还需要编写一个脚本,以便在按下设备上的 WPS 按钮时执行wpa_cli wps_pbc
警报 wpa_supplicant。捕获多秒按键并使用它来重置 wpa_supplicant 的配置(允许用户移动您的设备)也是一个好主意。