我有一个C#.net应用程序在我自己的嵌入式自定义Linux发行版中运行,由buildroot工具生成,我的硬件是FriendlyArm4412。我使用eth0接口将我的应用程序连接到互联网,没有任何问题。问题是:如果我在系统启动之前连接以太网电缆一切正常,但如果我在系统启动后插上电缆,我的系统就无法获得IP地址。我看到这是因为我的应用程序在屏幕上显示" ip address:127.0.0.1"这只是我当地的地址。
我已经尝试使用Connman网络管理器,该管理器可以很好地解决上述问题,但我意识到connman忽略了我的/ etc / network / interfaces设置这很糟糕,因为我的应用程序设置了一些东西这个文件,比如静态IP地址,wlan0接口等。
我该怎么办?有什么想法吗?
答案 0 :(得分:0)
检查/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 /*.