我在android4.0.4上面添加的ethernet支持,做法是按照android-x86的patch来加的。现在出现了网线不能热插拔的问题,第一次热插拔网是通的,从第二次开始网就断了。
以下是开机时候的信息:
V/EthernetStateTracker( 892): Starts...
V/EthernetStateTracker( 892): Successed
V/EthernetStateTracker( 892): start to monitor the ethernet devices
I/EthernetStateTracker( 892): reset device eth0
I/EthernetStateTracker( 892): trigger dhcp for device eth0
D/EthernetStateTracker( 892): DhcpHandler: DHCP request started
I/EthernetStateTracker( 892): reset device eth0
I/EthernetStateTracker( 892): trigger dhcp for device eth0
E/EthernetStateTracker( 892): DhcpHandler: DHCP request failed: Timed out waiting for dhcpcd to start == mzhu property_set( ctl.start ==dhcpcd_eth0==)TOE2: toe2_isr()=>isr(0x00001C23).
D/EthernetStateTracker( 892): DhcpHandler: DHCP request started
I/EthernetStateTracker( 892): report new state DISCONNECTED on dev eth0
V/EthernetStateTracker( 892): update network state tracker
I/EthernetStateTracker( 892): report new state DISCONNECTED on dev eth0
V/EthernetStateTracker( 892): update network state tracker
I/EthernetStateTracker( 892): received disconnected events, stack=false HW=false
I/EthernetStateTracker( 892): received disconnected events, stack=false HW=false
V/EthernetStateTracker( 892): report interface is up for eth0
I/EthernetStateTracker( 892): interface up event, kick off connection request
I/EthernetStateTracker( 892): trigger dhcp for device eth0
I/EthernetStateTracker( 892): report new state CONNECTED on dev eth0
V/EthernetStateTracker( 892): update network state tracker
I/EthernetStateTracker( 892): received HW connected, stack=false HW=false
D/EthernetStateTracker( 892): DhcpHandler: DHCP request succeeded: addr: 192.168.9.192/24 mRoutes: 0.0.0.0/0 -> 192.168.9.254 | dns: 192.168.9.11,192.168.9.10 dhcpServer: 192.168.9.250 leaseDuration: 7200
I/EthernetStateTracker( 892): received configured succeeded, stack=false HW=true
D/EthernetStateTracker( 892): DhcpHandler: DHCP request started
E/EthernetStateTracker( 892): DhcpHandler: DHCP request failed: Timed out waiting for DHCP to finish
以下是第一次热插拔信息。
I/EthernetStateTracker( 892): report new state DISCONNECTED on dev eth0
V/EthernetStateTracker( 892): update network state tracker
I/EthernetStateTracker( 892): received disconnected events, stack=false HW=true
I/EthernetStateTracker( 892): stop dhcp and interface
V/EthernetStateTracker( 892): report interface is up for eth0
I/EthernetStateTracker( 892): interface up event, kick off connection request
I/EthernetStateTracker( 892): trigger dhcp for device eth0
D/EthernetStateTracker( 892): DhcpHandler: DHCP request started
D/EthernetStateTracker( 892): DhcpHandler: DHCP request succeeded: addr: 192.168.9.192/24 mRoutes: 0.0.0.0/0 -> 192.168.9.254 | 0.0.0.0/0 -> 192.168.9.254 | dns: 192.168.9.11,192.168.9.10 dhcpServer: 192.168.9.250 leaseDuration: 7200
I/EthernetStateTracker( 892): received configured succeeded, stack=false HW=false
以下是第二次热插拔信息:
I/EthernetStateTracker( 892): report new state DISCONNECTED on dev eth0
V/EthernetStateTracker( 892): update network state tracker
I/EthernetStateTracker( 892): received disconnected events, stack=true HW=false
V/EthernetStateTracker( 892): report interface is up for eth0
I/EthernetStateTracker( 892): interface up event, kick off connection request
I/EthernetStateTracker( 892): trigger dhcp for device eth0
D/EthernetStateTracker( 892): DhcpHandler: DHCP request started
E/EthernetStateTracker( 892): DhcpHandler: DHCP request failed: Timed out waiting for DHCP to finish
我追了一下源码,发现rundhcp后好像会读到/system/etc/dhcpcd/dhcpcd.conf这个文件,但是我的这个文件只有一下两行:
interface wlan0
option subnet_mask, routers, domain_name_servers
是不是应该在这里加入ethernet的信息?如果是,应该怎么加?
麻烦各位大侠指点下,谢谢
以下是开机时候的信息:
V/EthernetStateTracker( 892): Starts...
V/EthernetStateTracker( 892): Successed
V/EthernetStateTracker( 892): start to monitor the ethernet devices
I/EthernetStateTracker( 892): reset device eth0
I/EthernetStateTracker( 892): trigger dhcp for device eth0
D/EthernetStateTracker( 892): DhcpHandler: DHCP request started
I/EthernetStateTracker( 892): reset device eth0
I/EthernetStateTracker( 892): trigger dhcp for device eth0
E/EthernetStateTracker( 892): DhcpHandler: DHCP request failed: Timed out waiting for dhcpcd to start == mzhu property_set( ctl.start ==dhcpcd_eth0==)TOE2: toe2_isr()=>isr(0x00001C23).
D/EthernetStateTracker( 892): DhcpHandler: DHCP request started
I/EthernetStateTracker( 892): report new state DISCONNECTED on dev eth0
V/EthernetStateTracker( 892): update network state tracker
I/EthernetStateTracker( 892): report new state DISCONNECTED on dev eth0
V/EthernetStateTracker( 892): update network state tracker
I/EthernetStateTracker( 892): received disconnected events, stack=false HW=false
I/EthernetStateTracker( 892): received disconnected events, stack=false HW=false
V/EthernetStateTracker( 892): report interface is up for eth0
I/EthernetStateTracker( 892): interface up event, kick off connection request
I/EthernetStateTracker( 892): trigger dhcp for device eth0
I/EthernetStateTracker( 892): report new state CONNECTED on dev eth0
V/EthernetStateTracker( 892): update network state tracker
I/EthernetStateTracker( 892): received HW connected, stack=false HW=false
D/EthernetStateTracker( 892): DhcpHandler: DHCP request succeeded: addr: 192.168.9.192/24 mRoutes: 0.0.0.0/0 -> 192.168.9.254 | dns: 192.168.9.11,192.168.9.10 dhcpServer: 192.168.9.250 leaseDuration: 7200
I/EthernetStateTracker( 892): received configured succeeded, stack=false HW=true
D/EthernetStateTracker( 892): DhcpHandler: DHCP request started
E/EthernetStateTracker( 892): DhcpHandler: DHCP request failed: Timed out waiting for DHCP to finish
以下是第一次热插拔信息。
I/EthernetStateTracker( 892): report new state DISCONNECTED on dev eth0
V/EthernetStateTracker( 892): update network state tracker
I/EthernetStateTracker( 892): received disconnected events, stack=false HW=true
I/EthernetStateTracker( 892): stop dhcp and interface
V/EthernetStateTracker( 892): report interface is up for eth0
I/EthernetStateTracker( 892): interface up event, kick off connection request
I/EthernetStateTracker( 892): trigger dhcp for device eth0
D/EthernetStateTracker( 892): DhcpHandler: DHCP request started
D/EthernetStateTracker( 892): DhcpHandler: DHCP request succeeded: addr: 192.168.9.192/24 mRoutes: 0.0.0.0/0 -> 192.168.9.254 | 0.0.0.0/0 -> 192.168.9.254 | dns: 192.168.9.11,192.168.9.10 dhcpServer: 192.168.9.250 leaseDuration: 7200
I/EthernetStateTracker( 892): received configured succeeded, stack=false HW=false
以下是第二次热插拔信息:
I/EthernetStateTracker( 892): report new state DISCONNECTED on dev eth0
V/EthernetStateTracker( 892): update network state tracker
I/EthernetStateTracker( 892): received disconnected events, stack=true HW=false
V/EthernetStateTracker( 892): report interface is up for eth0
I/EthernetStateTracker( 892): interface up event, kick off connection request
I/EthernetStateTracker( 892): trigger dhcp for device eth0
D/EthernetStateTracker( 892): DhcpHandler: DHCP request started
E/EthernetStateTracker( 892): DhcpHandler: DHCP request failed: Timed out waiting for DHCP to finish
我追了一下源码,发现rundhcp后好像会读到/system/etc/dhcpcd/dhcpcd.conf这个文件,但是我的这个文件只有一下两行:
interface wlan0
option subnet_mask, routers, domain_name_servers
是不是应该在这里加入ethernet的信息?如果是,应该怎么加?
麻烦各位大侠指点下,谢谢
解决方案 »
- 百度地图API,查询路线的问题
- android怎么实现图片裁剪功能
- 求 有没有人有android通过servlet访问处理mysql获取json格式数据的简单范例或教程
- 求助:android编程怎么读取FTP中的指定TXT文件中的内容?
- 在自定义View中如何引用(或者回调)activity?
- 请教高手怎么保证一个service不被高级任务管理器之类的软件杀死??
- 用百度地图API时,The following classes could not be instantiated
- 关于Android的Basic Authorization的问题
- 什么是表单重复提交,怎么解决
- 求助!安卓sqlite
- new ImageSwitcher.LayoutParams(-1, -1)什么意思?为什么要设置为-1
- 如何避免android的屏幕重力感应导致背景图翻转
按照上面改了之后,waitforevent返回来一个不知道什么东西啊,也不是空值:
V/EthernetMonitor( 892): get event
V/EthernetMonitor( 892): go poll events
网还是不通。请问你有尝试过这样修改吗?
我在没有参照你给的链接修改之前,每次插拔网线都能收到PHY_UP这个事件的,就是收到这个事件之后,现在是前面两次热插拔都能正常,从第三次开始,拔掉网线后,EthernetStateTracker收到EVENT_HW_DISCONNECTED事件后不执行setState这个函数来执行stopInterface去挺到dhcp这个服务了(前面两次热插拔是有执行这些的),再接上网线网就不通了,报E/EthernetStateTracker( 892): DhcpHandler: DHCP request failed: Timed out waiting for DHCP to finish这个错误。但是这个时候如果手动停到dhcp再启动它,网又能正常工作了。非常奇怪的地方是EthernetStateTracker收到EVENT_HW_DISCONNECTED事件后只有执行setState这条路可以走,不晓得它为什么不走了
错了,是有到setState这里的,只是因为mNetworkInfo.isConnected() != state这个条件不成立,所以什么事情都没做