问题标签 [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.

0 投票
1 回答
622 浏览

linux - DHCP 服务器在 DHCP ACK 消息中不包含 NTP 服务器地址

我正在使用 tcpdump 捕获 DHCP 数据包。客户端发送 DHCP 请求,请求 DHCP 配置,其中包含对 NTP 服务器的请求,但在路由器发送的 DHCP ACK 消息中没有 NTP 服务器信息。服务器不应该像使用域名服务器一样使用 NTP 服务器的 IP 来回答吗?我错过了什么?

我附上请求和确认消息的屏幕截图

使用的 tcpdump 命令:

DHCP 请求:

DHCP 请求消息

DHCP 确认:

在 DHCP 确认消息中从服务器接收到的信息

0 投票
1 回答
456 浏览

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 输出:

捕获内存中的对象

0 投票
1 回答
1370 浏览

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”不存在

如您所见,我已将服务应用于命令,这与插入电缆时的服务名称相同。此功能对于需要在到达客户之前进行预编程的设备非常有用。我也研究了这个错误,但找不到与我的情况相同的问题。还阅读了许多博客、文章等...关于尝试实现这一目标而没有任何让我感到惊讶的东西。

...有任何想法吗 ?

0 投票
1 回答
147 浏览

linux - 我需要以编程方式注意 connman 何时处理其配置文件(并且是否设置了 IP)

如何在我的用户空间程序中等待,直到connman在 Linux 启动时完成网络配置?(不幸的是,这不是Wants=connman.service。)

systemd 服务connman启动后,我的用户空间程序通过systemd服务(Wants=network.target connman.service)启动,它想通过 C 函数getifaddrs()(例如ifa->ifa_addrifa->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.0connman 配置文件中的情况)。


插件:我注意到在 Linux 启动期间,只要在控制台上打印“Link is up - 100Mbps/Full - flow control off”,就会设置一个 IP 地址。如何在我的用户程序中检测到它?

0 投票
1 回答
325 浏览

connman - 使用第一个字段而不是第二个字段连接到 connman 服务

给定下表

我希望能够连接到网络,例如OtherNET,使用 stringOtherNET而不是 long wifi_dc85de828967_38303944616e69656c73_managed_psk,因为我不想计算我按下的次数Tab和/或检查wifi_提示中的行是否对应于预期的网络.

只有 connman可以做到这一点吗?还是我真的必须自己写一个包装器?

包含的man页面connmanctl

两者都没有说明输出的格式或命令的使用。

类似地,Arch Linux 上的 wiki将最后一列称为以 .开头的第二个字段wifi_

0 投票
0 回答
190 浏览

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 个关联

0 投票
1 回答
807 浏览

python - 从python访问iwd dbus接口

我正在尝试使用 python3 dbus 包来控制嵌入式 Linux 目标(mips MT7628,如果重要的话)上的无线。

系统很可能设置正确,因为我在这个嵌入式目标上启动并运行了 iwd + dhclient。

我可以通过 eth0 和 wlan0 进行连接。

我也可以通过iwctl控制iwd。到目前为止,一切都很好。

我现在需要从 python3 控制 iwd;具体来说,我需要能够通过串行线发送扫描结果(真正的目标,而不是我的开发板,将是无头的)。

我对dbus接口不知所措。我需要一些例子来开始。

我尝试了一些类似的东西:

这在 WiFi 工作时:

...但我显然错过了一些非常基本的东西。

有人可以指出我正确的方向吗?

0 投票
1 回答
117 浏览

c - 将 RequestInput 函数注册到 ConnMan 的正确方法是什么?

我正在实现 C 应用程序,它应该能够通过 GDbus 使用 ConnMan 连接到外部受 Wi-Fi 保护的接入点。到目前为止,我发现代理必须在“net.connman.Agent”接口上注册 RequestInput 回调,以便在连接到受保护的接入点期间提供密码。我正在像这样注册代理:

我还注册了如下界面:

其中 introspection_data 是从 XML 代码生成的,如下所示:

和 interface_vtable 定义如下:

目前我没有在我的处理程序方法中处理任何输入,只是想看看它被调用了。但是当我在受保护的服务(在“扫描”之后获得)上调用“连接”时,我得到了以下输出:

据我了解,这可能是 RequestInput 签名的问题,但我只看到“oa{sv}”用于输入,“a{sv}”用于通过不同文章/代码示例等提及的输出。

以前有没有人遇到过这样的错误?

任何建议和解决方案将不胜感激。

谢谢。

0 投票
1 回答
274 浏览

qt - Dubs Connman wifi 连接 Qt

我正在研究 imx6,我正在尝试使用 Qt 应用程序通过 Dbus 连接到 wifi 网络。该应用程序通过 Dbus 正确连接到 connman,并且我正确接收了 wifi 服务。问题是,当我尝试连接到 wiif 网络时,我发现了这个错误:

接口“net.connman.Service”上带有签名“ss”的方法“Connect”不存在

我在 Qt 应用程序中用于连接到 wifi 网络的代码是:

当我尝试使用 connmanctl 使用 shell 命令连接到 wifi 网络时,它就像一个魅力。

0 投票
1 回答
140 浏览

c - 使用库 connman(连接管理器)和函数 connman_service_get_type 查找网络连接类型

我想编写 ac 代码来显示 ubuntu 中的网络连接类型。我找到了一个名为 connman(连接管理器)的库,而且我还有一个函数 connman_service_get_type 用于获取连接类型。但我不知道如何在代码中使用该功能。谁能给我看一个使用函数“connman_service_get_type”的示例代码