我有一个由buildroot工具生成的嵌入式自定义linux发行版中运行的C# .net应用程序,我的硬件是一个FriendlyArm4412。我使用eth0接口将我的应用程序连接到互联网上,没有任何问题。问题是:如果我在系统启动之前连接以太网电缆,一切正常,但是如果在系统启动后插入电缆,系统就无法获得ip地址。我看到这一点是因为我的应用程序在屏幕上显示"ip地址: 127.0.0.1“,这是我的本地地址。
我已经尝试过使用Connman网络管理器,它可以很好地解决上面的问题,但是我意识到连接会忽略我/ etc /网络/接口的设置,这是不好的,因为我的应用程序在这个文件中设置了一些东西,比如静态ip地址、wlan0接口等等。
我能做些什么?知道吗?
发布于 2017-11-14 03:30:52
检查/etc/connman/main.conf文件中的DefaultAutoConnectTechnologies配置参数。查看以太网是否存在。
Connman不使用/etc/网络/接口文件。您需要使用Connman总线API将静态IP设置为您的网络接口。下载Connman源代码,参见doc/service-api.txt获得D总线API。还请参阅源目录中的test/ set -ipv4 4方法python脚本,以获得关于如何使用D-Bus API设置静态IP的快速代码参考。
如果您不想使用D-Bus API,您可以在开始连接之前编辑connman存储目录文件来设置静态IP。但是,编辑connman存储目录并不是正确的方法。默认的Connman存储目录是/var/lib/connman/ethernet_$mac_address_cable/*.
https://stackoverflow.com/questions/47266233
复制