无法使用dbus与Connman连接,但仅限第一次

问题描述 投票:0回答:1

我一直在尝试使用各种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

最终这是我从界面收到的消息:

没有收到回复。可能的原因包括:远程应用程序未发送回复,消息总线安全策略阻止回复,回复超时过期或网络连接中断

此时我可以确认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连接到网络。有任何想法吗?

python linux dbus connman
1个回答
1
投票

如果您仍在寻找答案:Connman需要代理来回答安全问题(在WPA2中:它是密码)。您可以运行代理并回复Connman问题,也可以使用正确的密钥在/ var / lib / connman中创建文件。见here。创建或删除文件后,Connman将自动采取相应的行动(尝试连接或断开连接)。

基本文件如下所示:

[service_mywificonfig]
Type = wifi
Security = wpa2
Name = myssid
Passphrase = yourpass
© www.soinside.com 2019 - 2024. All rights reserved.