问题标签 [connman]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
glib - 代理处理程序上的 g_signal_connect 导致回调 GVariant * 数据未初始化
为了在 dbus 上设置 Connman 信号回调,我非常关注https://www.freedesktop.org/software/gstreamer-sdk/data/docs/latest/gio/GDBusProxy.html上的示例,但是在我的回调函数:
我被告知 GVariant * 对象包含的孩子的数量是完全错误的。例如,我的反馈:
on_manager_properties_changed 孩子:139764141513856 on_manager_properties_changed 孩子:145
这两个值都超出了范围,一个比另一个更重要。更重要的是,如果我尝试从 GVariant 对象中解析出值,即使只是尝试调用 g_variant_get_type_string,我最终也会出现段错误。为什么我的回调返回一个垃圾数据指针?似乎如果它什么都没有,它至少应该返回一个空指针。
编辑:源代码 https://drive.google.com/file/d/1E0Kg9JKW54gghUHbVyBJ0ysBIdqBlpVA/view?usp=sharing
还有一些 dbus-monitor --system 输出:
connman - 使用“connmanctl config”设置静态 IP,无需有线连接
我目前正在使用“connmanctl config”通过有线连接设置静态和 DHCP 设置。我很好奇是否有人在拔掉电线的情况下成功应用设置?
我通常会使用 'connmanctl services' 作为服务列表,然后执行 string.match(blah, "ethernet_%w+_cable") 以使用该有线服务名称。现在使用“connmanctl config”时,我已经能够在拔下以太网电缆的情况下找到并应用该服务名称:
connmanctl config ethernet_f8dc7a04ea82_cable --ipv4 手册 192.168.91.108 255.255.255.0 192.168.91.1 --nameservers 8.8.8.8
我收到此错误:
错误 ethernet_f8dc7a04ea82_cable:接口“net.connman.Service”上带有签名“sv”的方法“SetProperty”不存在
如您所见,我已将服务应用于命令,这与插入电缆时的服务名称相同。此功能对于需要在到达客户之前进行预编程的设备非常有用。我也研究了这个错误,但找不到与我的情况相同的问题。还阅读了许多博客、文章等...关于尝试实现这一目标而没有任何让我感到惊讶的东西。
...有任何想法吗 ?
linux - 我需要以编程方式注意 connman 何时处理其配置文件(并且是否设置了 IP)
如何在我的用户空间程序中等待,直到connman
在 Linux 启动时完成网络配置?(不幸的是,这不是Wants=connman.service
。)
systemd 服务connman
启动后,我的用户空间程序通过systemd
服务(Wants=network.target connman.service
)启动,它想通过 C 函数getifaddrs()
(例如ifa->ifa_addr
和ifa->ifa_addr->sa_family
)读取网络配置。现在可能发生两件事,要么从其配置文件中connman
读取明确未配置的网络(IPv4=0.0.0.0/0.0.0.0/0.0.0.0
)或某个网络配置(例如)。IPv4=192.168.0.50/255.255.255.0/0.0.0.0
由于某些原因,我的程序必须在某个代码行上等待,直到connman
用两种情况之一完成设置。我怎么做?
我在systemd
同步可能性中发现的只是connman
服务启动的时间点(Wants=connman.service
),这并不意味着它已经处理了它的配置文件,它在此之前!!!),其次,network-online.target
当一个 IP 地址被配置时(它确实不包括0.0.0.0/0.0.0.0/0.0.0.0
connman 配置文件中的情况)。
插件:我注意到在 Linux 启动期间,只要在控制台上打印“Link is up - 100Mbps/Full - flow control off”,就会设置一个 IP 地址。如何在我的用户程序中检测到它?
connman - 使用第一个字段而不是第二个字段连接到 connman 服务
给定下表
我希望能够连接到网络,例如OtherNET
,使用 stringOtherNET
而不是 long wifi_dc85de828967_38303944616e69656c73_managed_psk
,因为我不想计算我按下的次数Tab和/或检查wifi_
提示中的行是否对应于预期的网络.
只有 connman可以做到这一点吗?还是我真的必须自己写一个包装器?
包含的man
页面connmanctl
和
两者都没有说明输出的格式或命令的使用。
类似地,Arch Linux 上的 wiki将最后一列称为以 .开头的第二个字段wifi_
。
wifi - 切换 WiFi 连接因 dbus 超时而失败
当我们尝试通过 sd_bus_call_method(...) 接口切换 wifi 网络时,调用失败并显示 dbus 超时消息。首先从当前的 wifi 断开并连接确实可以工作,所以这似乎不是我们如何进行连接部分的问题。我们正在使用 Connman 1.37、systemd 2.41 构建 Warrior Yocto。以下是来自失败连接的一些日志:
同样问题的 dbus 跟踪:
我注意到 dbus 跟踪中的 IP 信息似乎不完整,并且 connman 状态永远不会在线。我还注意到在 syslog 中为成功连接添加了额外的路由:
最后一个似乎是“电话回家”IP,用于确定设备在线。它稍后会消失,并且 connman 确实进入了在线状态。
我非常困惑为什么 connman (或 systemd ?)在尝试在没有先断开连接的情况下在 wifi 网络之间切换时表现得那样。任何帮助,将不胜感激。
编辑以下跟踪显示同时进行的 2 个关联
python - 从python访问iwd dbus接口
我正在尝试使用 python3 dbus 包来控制嵌入式 Linux 目标(mips MT7628,如果重要的话)上的无线。
系统很可能设置正确,因为我在这个嵌入式目标上启动并运行了 iwd + dhclient。
我可以通过 eth0 和 wlan0 进行连接。
我也可以通过iwctl控制iwd。到目前为止,一切都很好。
我现在需要从 python3 控制 iwd;具体来说,我需要能够通过串行线发送扫描结果(真正的目标,而不是我的开发板,将是无头的)。
我对dbus接口不知所措。我需要一些例子来开始。
我尝试了一些类似的东西:
这在 WiFi 工作时:
...但我显然错过了一些非常基本的东西。
有人可以指出我正确的方向吗?
c - 将 RequestInput 函数注册到 ConnMan 的正确方法是什么?
我正在实现 C 应用程序,它应该能够通过 GDbus 使用 ConnMan 连接到外部受 Wi-Fi 保护的接入点。到目前为止,我发现代理必须在“net.connman.Agent”接口上注册 RequestInput 回调,以便在连接到受保护的接入点期间提供密码。我正在像这样注册代理:
我还注册了如下界面:
其中 introspection_data 是从 XML 代码生成的,如下所示:
和 interface_vtable 定义如下:
目前我没有在我的处理程序方法中处理任何输入,只是想看看它被调用了。但是当我在受保护的服务(在“扫描”之后获得)上调用“连接”时,我得到了以下输出:
据我了解,这可能是 RequestInput 签名的问题,但我只看到“oa{sv}”用于输入,“a{sv}”用于通过不同文章/代码示例等提及的输出。
以前有没有人遇到过这样的错误?
任何建议和解决方案将不胜感激。
谢谢。
qt - Dubs Connman wifi 连接 Qt
我正在研究 imx6,我正在尝试使用 Qt 应用程序通过 Dbus 连接到 wifi 网络。该应用程序通过 Dbus 正确连接到 connman,并且我正确接收了 wifi 服务。问题是,当我尝试连接到 wiif 网络时,我发现了这个错误:
接口“net.connman.Service”上带有签名“ss”的方法“Connect”不存在
我在 Qt 应用程序中用于连接到 wifi 网络的代码是:
当我尝试使用 connmanctl 使用 shell 命令连接到 wifi 网络时,它就像一个魅力。
c - 使用库 connman(连接管理器)和函数 connman_service_get_type 查找网络连接类型
我想编写 ac 代码来显示 ubuntu 中的网络连接类型。我找到了一个名为 connman(连接管理器)的库,而且我还有一个函数 connman_service_get_type 用于获取连接类型。但我不知道如何在代码中使用该功能。谁能给我看一个使用函数“connman_service_get_type”的示例代码