【问题标题】:eth0 interface doesn't connect if the cable is plugged after the boot开机后插网线eth0接口不连接
【发布时间】:2017-11-13 14:08:32
【问题描述】:

我有一个 C# .net 应用程序在我自己的由 buildroot 工具生成的嵌入式自定义 Linux 发行版中运行,我的硬件是 FriendlyArm4412。我使用 eth0 接口将我的应用程序连接到互联网,没有任何问题。问题是:如果我在系统启动之前连接以太网电缆,一切正常,但如果我在系统启动后插入电缆,我的系统无法获得 IP 地址。我看到这是因为我的应用程序在屏幕上显示“ip 地址:127.0.0.1”,这只是我的本地地址。

我已经尝试使用 Connman 网络管理器,它对上述问题非常有效,但我意识到 connman 忽略了我的 /etc/network/interfaces 设置,这很糟糕,因为我的应用程序在这个文件中设置了一些东西,比如静态ip地址、wlan0接口等。

我能做什么?有什么想法吗?

【问题讨论】:

标签: c# linux embedded-linux connman


【解决方案1】:

检查 /etc/connman/main.conf 文件中的 DefaultAutoConnectTechnologies 配置参数。查看以太网是否存在。

Connman 不使用 /etc/network/interfaces 文件。您需要使用 Connman D-Bus API 为您的网络接口设置静态 IP。下载 Connman 源代码并查看 D-Bus API 的 doc/service-api.txt。另请参阅源目录中的 test/set-ipv4-method python 脚本,以获取有关如何使用 D-Bus API 设置静态 IP 的快速代码参考。

如果不想使用 D-Bus API,可以在 connman 启动前编辑 connman 存储目录文件设置静态 IP。但是编辑 connman 存储目录并不是正确的方法。默认的 Connman 存储目录是 /var/lib/connman/ethernet_$mac_address_cable/*。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-17
    • 1970-01-01
    • 1970-01-01
    • 2016-01-06
    • 2017-05-04
    • 2021-06-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多