使用 dbus 连接 Connman 时出现问题,但只是第一次
Trouble connecting with Connman using dbus, but only the first time
我一直在尝试使用各种 Python 库来处理 Connman 和 dbus,尤其是这个示例代码:
https://github.com/liamw9534/pyconnman/blob/master/demo/demo.py
我遇到的问题是,当第一次连接到 WPA2 接入点时,我总是会收到超时消息。例如:
CONN> list-services
CONN> agent-start /test/agent ssid=myNetwork passphrase=myPassphrase
CONN> service-connect /net/connman/service/wifi_xxxxx__managed_psk
最终这是我从界面收到的消息:
Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken
此时我可以确认 Connman 没有连接到 wifi 网络或获取 IP 地址。我可以设法让它工作的唯一方法是从 Linux 终端使用 Connman 应用程序本身:
connmanctl
connmanctl> agent on
connmanctl> connect wifi_xxxxx__managed_psk
Agent RequestInput wifi_xxxxx__managed_psk
Passphrase = [ Type=psk, Requirement=mandatory ]
Passphrase? myPassword
connmanctl> Connected wifi_xxxxx__managed_psk
这会在 /var/lib/connman 下为 wifi 网络创建一个设置文件夹。我现在可以使用上面提到的 demo.py 脚本断开连接或重新连接。
Connman 在很多方面对我来说仍然有点神秘,我不确定为什么我必须使用交互式 shell 第一次连接到网络。有什么想法吗?
如果您仍在寻找答案:
Connman 需要一个代理来回答安全问题(在 WPA2 中:它是密码)。您可以 运行 一个代理并回复 Connman 的问题,或者您可以使用正确的键在 /var/lib/connman 中创建一个文件。参见 here。创建或删除文件后,Connman 会自动神奇地采取相应行动(尝试连接或断开连接。
基本文件如下所示:
[service_mywificonfig]
Type = wifi
Security = wpa2
Name = myssid
Passphrase = yourpass
我一直在尝试使用各种 Python 库来处理 Connman 和 dbus,尤其是这个示例代码:
https://github.com/liamw9534/pyconnman/blob/master/demo/demo.py
我遇到的问题是,当第一次连接到 WPA2 接入点时,我总是会收到超时消息。例如:
CONN> list-services
CONN> agent-start /test/agent ssid=myNetwork passphrase=myPassphrase
CONN> service-connect /net/connman/service/wifi_xxxxx__managed_psk
最终这是我从界面收到的消息:
Did not receive a reply. Possible causes include: the remote application did not send a reply, the message bus security policy blocked the reply, the reply timeout expired, or the network connection was broken
此时我可以确认 Connman 没有连接到 wifi 网络或获取 IP 地址。我可以设法让它工作的唯一方法是从 Linux 终端使用 Connman 应用程序本身:
connmanctl
connmanctl> agent on
connmanctl> connect wifi_xxxxx__managed_psk
Agent RequestInput wifi_xxxxx__managed_psk
Passphrase = [ Type=psk, Requirement=mandatory ]
Passphrase? myPassword
connmanctl> Connected wifi_xxxxx__managed_psk
这会在 /var/lib/connman 下为 wifi 网络创建一个设置文件夹。我现在可以使用上面提到的 demo.py 脚本断开连接或重新连接。
Connman 在很多方面对我来说仍然有点神秘,我不确定为什么我必须使用交互式 shell 第一次连接到网络。有什么想法吗?
如果您仍在寻找答案: Connman 需要一个代理来回答安全问题(在 WPA2 中:它是密码)。您可以 运行 一个代理并回复 Connman 的问题,或者您可以使用正确的键在 /var/lib/connman 中创建一个文件。参见 here。创建或删除文件后,Connman 会自动神奇地采取相应行动(尝试连接或断开连接。
基本文件如下所示:
[service_mywificonfig] Type = wifi Security = wpa2 Name = myssid Passphrase = yourpass