eth0 - no link

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 
已解决

eth0 - no link

跳至解决方案
4,024 次查看
ennebi
Contributor II

I'm working on a port of Android LL (based on L5.0.0_1.0.0-ga) on Solidrun Hummingboard, that makes use of Atheros 8035 ethernet controller. While I can ping correctly under u-boot, I am unable to get the link once Android is started.

I get:

fec 2188000.ethernet eth0: Freescale FEC PHY driver [Atheros 8035 ethernet] (mii_bus:phy_addr=2188000.ethernet:00, irq=-1)

IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready

I tried (with selinux permissive mode enabled)

ifconfig eth0 192.168.1.5

It works, but when pinging an existing address I get Destination Host Unreachable. I cannot exclude I misconfigured the interface (I already checked it several times, but I don't see any mistake).

Do you have advices on the steps I could try to understand where the issue comes from?

In boot log I have:

init: process 'dhcpcd_eth0', pid 125 exited

Logcat extract:

E/dhcpcd  (  125): Android requires an interface

E/dhcpcd  (  125): stop_control: No such file or directory

I/EthernetServiceImpl(  379): Creating EthernetConfigStore

I/EthernetServiceImpl(  379): Read stored IP configuration: IP assignment: DHCP

I/EthernetServiceImpl(  379): Proxy settings: NONE

I/EthernetService(  379): Registering service ethernet

I/SystemServer(  379): Connectivity Service

D/ConnectivityService(  379): ConnectivityService starting up

D/ConnectivityService(  379): wifiOnly=false

E/ConnectivityService(  379): Ignoring protectedNetwork 14

E/ConnectivityService(  379): Ignoring protectedNetwork 15

I/SystemServer(  379): Network Service Discovery Service

D/NsdService(  379): Network service discovery enabled true

D/Ethernet(  379): Registering NetworkFactory

D/ConnectivityService(  379): Got NetworkFactory Messenger for Ethernet

D/EthernetNetworkFactory(  379): Started tracking interface eth0

D/Ethernet(  379): got request NetworkRequest [ id=1, legacyType=-1, [ Capabilities: INTERNET&NOT_RESTRICTED&TRUSTED&NOT_VPN] ] with score 0

D/CommandListener(  119): Setting iface cfg

D/CommandListener(  119): Trying to bring up eth0

D/EthernetNetworkFactory(  379): updateInterface: eth0 link down

D/NetworkManagementService(  379): enabling bandwidth control

Output of IP link:

1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT

    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc pfifo_fast state DOWN mode DEFAULT qlen 1000

    link/ether d0:63:00:00:00:00 brd ff:ff:ff:ff:ff:ff

It seems that I am unable to get the link up.

Do you have any advice on what should I check to understand what is not working?

标签 (3)
1 解答
2,786 次查看
ennebi
Contributor II

Even if we received no answers, it seems that, when the ethernet driver has a reset pin assigned in device tree, it resets the PHY after the phy_fixup functions are called from board mach file, thus the register setup is lost. It seems that the board initialization sequence is wrong. We solved it by relying on phy initialization in u-boot only

在原帖中查看解决方案

0 项奖励
回复
2 回复数
2,786 次查看
adamhuang
Contributor III

It's recommended to add .dts a line that specify explicitly a reset pin. However, I suffer a same issue even if I removed the reset pin from .dts file.

0 项奖励
回复
2,787 次查看
ennebi
Contributor II

Even if we received no answers, it seems that, when the ethernet driver has a reset pin assigned in device tree, it resets the PHY after the phy_fixup functions are called from board mach file, thus the register setup is lost. It seems that the board initialization sequence is wrong. We solved it by relying on phy initialization in u-boot only

0 项奖励
回复