android6.0 以太网口上网无法获取ip的问题

软件版本:android6.0

硬件平台:MTK6797

        近来,遇到了一个问题,板子这边通过以太网上网,一开始能获取ip并且上网,但是一段时间后,网络会断掉,究其原因是ip地址没有了,由于之前接触过dhcp相关的内容,首先查看系统中dhcp的运行状态:

命令行运行:getprop | grep dhcp 查看dhcp相关属性,结果如下:

[dhcp.eth0.result]: [failed]
[init.svc.dhcpcd_eth0]: [stopped]

运行ps | grep dhcpcd  结果为空,说明系统的dhcpcd守护进程挂了。因此没有ip地址很正常。

于是查看init.mt6797.rc中关于dhcpcd的service定义:

service dhcpcd_eth0 /system/bin/dhcpcd -aABDKL
     class late_start

     disabled

     oneshot

    但是在dhcpcd为stopped时,并没有重启,因此没有ip也就正常了,所以需要做一个条件触发监测,在dhcpcd停止之后,重新拉起该服务,因此在此脚本文件末尾添加如下:

扫描二维码关注公众号,回复: 1518353 查看本文章

 on property:init.svc.dhcpcd_eth0=stopped
     start dhcpcd_eth0

意为在dhcpcd停掉之后,重启该服务。

    本想着问题解决了,打算自嗨片刻,结果TM烧录进去一试,还是特码获取不了,而且这次的现象是dhcp虽然是stopped状态,但是一直被拉起,最后却一直拉起失败,所以这次问题应该在这里了。

查看了系统日志:logcat就是init打印的关于start dhcpcd_eth0但是exit with status 1的日志,总之没开启来,由于加了属性触发,一直被start,却从未成功。

dmesg的日志有关于

dhcpcd:Android requires an interface

dhcpcd:stop_control:No such file or directory

发现这个日志是由于dhcpcd需要指定获取IP的网卡,那么在哪里指定呢,依然是init.mt6797.rc

service dhcpcd_eth0 /system/bin/dhcpcd -aABDKL 将这一行改为:

service dhcpcd_eth0 /system/bin/dhcpcd -aABDKL -d eth0

然后编译,烧录,问题解决!!!!



好久不说这俩字了。。。谮棒!!!!!!










猜你喜欢

转载自blog.csdn.net/dkbdkbdkb/article/details/79792255
今日推荐