android ethernet网线不能热插拔

Joyce_ZhuRouRou 2012-11-14 12:30:46
我在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的信息?如果是,应该怎么加?
麻烦各位大侠指点下,谢谢
...全文
621 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
ahc2013 2013-08-03
  • 打赏
  • 举报
回复
在4.1.1上按照这个思路修改,测试不可以。Joyce_Qin_1986,到最后搞定了没?
Joyce_ZhuRouRou 2012-11-15
  • 打赏
  • 举报
回复
引用 4 楼 Joyce_Qin_1986 的回复:
引用 3 楼 looooooooop 的回复:是的, 不过我是在 2.3 上做的, 不是4.04, 你还是要看下两者的管理是否有差别。 那个只是一个参考 我在没有参照你给的链接修改之前,每次插拔网线都能收到PHY_UP这个事件的,就是收到这个事件之后,现在是前面两次热插拔都能正常,从第三次开始,拔掉网线后,EthernetStateTracker收到EVENT_H……
错了,是有到setState这里的,只是因为mNetworkInfo.isConnected() != state这个条件不成立,所以什么事情都没做
Joyce_ZhuRouRou 2012-11-15
  • 打赏
  • 举报
回复
引用 3 楼 looooooooop 的回复:
是的, 不过我是在 2.3 上做的, 不是4.04, 你还是要看下两者的管理是否有差别。 那个只是一个参考
我在没有参照你给的链接修改之前,每次插拔网线都能收到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这条路可以走,不晓得它为什么不走了
looooooooop 2012-11-14
  • 打赏
  • 举报
回复
是的, 不过我是在 2.3 上做的, 不是4.04, 你还是要看下两者的管理是否有差别。 那个只是一个参考
Joyce_ZhuRouRou 2012-11-14
  • 打赏
  • 举报
回复
引用 1 楼 looooooooop 的回复:
请参考以下链接的第 八 部分 http://blog.csdn.net/kitty6620/article/details/7986852
按照上面改了之后,waitforevent返回来一个不知道什么东西啊,也不是空值: V/EthernetMonitor( 892): get event V/EthernetMonitor( 892): go poll events 网还是不通。请问你有尝试过这样修改吗?
looooooooop 2012-11-14
  • 打赏
  • 举报
回复
请参考以下链接的第 八 部分 http://blog.csdn.net/kitty6620/article/details/7986852
IEEE标准协会理事会(Standards Association Board)于2018年9月27日批准通过IEEE 802.3bt标准,包括针对LED照明系统应用的一些重要改善。 采用乙太网路供电(power over Ethernet,PoE)技术的LED照明已经问世约六年了,但LED照明产业直到最近才开始关注这项技术。而随著IEEE批准的IEEE 802.3bt-2018乙太网路标准草案第二次修订版:四对网线乙太网路供电(Amendment 2: Power over Ethernet over 4 Pairs)的发布,可能会为整体情况带来变化。 PoE最初应用于思科(Cisco)在2000年开发的专属IP语音(VoIP)系统,每一代新的PoE标准和技术都包含更高的功率规格。在此同时,LED灯具的功效也在逐年演进,到了2017年,现已被取代的IEEE 802.3at标准所规定之25.5W限额,足够为室内近四分之一的灯具供电. 差异化LED照明系统已成为家庭,办公室和工业环境中的要求,这些照明系统可提高能源效率,简化安装并促进数据收集和监控。LED照明的全球认可度也使LED系统成为通过使用传感器作为物联网(IoT)的一部分来增加智能的理想选择。在这样的系统中,低电压(低于60V SELV)操作将有益于电源转换效率和电路复杂性。 ST 意法半导体针对此一时事与潮流, 设计推出因应方案, 除了符合规格与标准,再附加无线蓝芽APP控制功能 增加个人的方便性. STEVAL–POEL45W1以太网供电(PoE)供电的LED驱动器设计提供45 W的功率输出,并使LED调暗至最大亮度的1%,而没有任何闪烁。 该解决方案通过PoE_Lighting Android应用程序(在Google Play上提供)支持通过蓝牙进行的远程调光控制。 LED驱动器的电源能够在37V至57V输入直流电压下工作,最大输出功率为45W。具有数位/ PWM调光功能,PWM调光深度接近1%。 。通过Android应用程序控制LED的智能调光和开/关。待机功耗(空载)消耗符合EnergyStar和EU Ecodesign标准设定的能源目标。在大多数输入电压范围内,转换器效率达到95%。开发的解决方案具有所有保护功能,例如LED开路和短路。尺寸紧凑,以适应现有的市售LED! 意法半导体(STMicroelectronics)的功率转换控制器LED6000用于以恒定电流模式驱动LED。由于LED6000的高频工作,这使得开发具有如此高效率(> 95%)的紧凑型48W解决方案成为可能。该LED6000的特点是用DIM引脚数字调光及EN引脚实现驾驶员开和关。LED驱动器具有内置的保护机制,可在源端和负载端管理故障。 所述SPBTLE-1S是射频(RF)认证BLE从具有蓝牙连接任何Android手机用于无线通信的模块。BLE模块已编程为生成PWM信号,用于调节连接到LED6000的LED灯的亮度。 PM8805用作PoE接口,它嵌入了两个有源桥及其驱动电路,一个电荷泵以驱动高端MOSFET,热插拔MOSFET和符合IEEE 802.3bt的标准单签名接口,包括检测,分类,UVLO和浪涌电流限制。BLE模块的内部管理电源基于VIPer012XS,并以降压拓扑管理辅助SMPS。 您可以使用此设计来开发基于IP的受电设备(PD)的完整的室内网络供电的照明解决方案,而无需其他交流电源基础设施,并将功能扩展到包括通过现有LAN网络进行的远程数据管理。 该参考设计具有高度集成的PM8805,符合IEEE802.3bt标准的受电设备(PD)PoE接口,能够提供多达3个ADC电流的高效LED6000 LED驱动器以及经过认证的,符合BT的SPBTLE-1S蓝牙低功耗模块 规范v4.2和BQE合格。 可通过STSW-BNRG1STLINK实用程序对STSW-POEL45FW程式进行编程。 核心技术优势 数位/ PWM亮度调整精细,而没有任何闪烁  保护机制,符合相关法规!  待机功耗(空载)消耗符合EnergyStar和EU Ecodesign标准设定的能源目标  网络供电, 远程数据管理! 方案规格 符合PoE-PD IEEE 802.3af / at / bt  恒定电流输出,工作在降压拓扑中  输出电流1.4 A,电流调节率<0> 95%  低待机功耗<100 mW  全面的保护措施:  开/空电路保护  短路/过载保护  符合RoHS  符合WEEE 方案来源于大大通。

80,472

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧