无法通过自定义板上的以太网端口 ping 通网络中的其他设备

无法通过自定义板上的以太网端口 ping 通网络中的其他设备

我在嵌入式开发平台上尝试启动以太网并进行 ping 测试。到目前为止,我在 Linux 启动后启动了以太网,但无法 ping 其他系统。我的想法是 phy 配置不正确。我开始使用 ethtool 调查接口。以下是结果。

root@xilinx:~# ethtool eth0
Settings for eth0:
        Supported ports: [ TP    MII ]
        Supported link modes:   10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
                                1000baseX/Full
        Supported pause frame use: Transmit-only
        Supports auto-negotiation: Yes
        Supported FEC modes: Not reported
        Advertised link modes:  10baseT/Half 10baseT/Full
                                100baseT/Half 100baseT/Full
                                1000baseT/Half 1000baseT/Full
                                1000baseX/Full
        Advertised pause frame use: Transmit-only
        Advertised auto-negotiation: Yes
        Advertised FEC modes: Not reported
        Speed: 1000Mb/s
        Duplex: Full
        Auto-negotiation: on
        master-slave cfg: forced master
        master-slave status: resolution error
        Port: MII
        PHYAD: 1
        Transceiver: external
        Link detected: no

驾驶员详细信息

root@xilinx:~# ethtool -i eth0
driver: macb
version: 5.10.0-xilinx-v2021.2
firmware-version:
expansion-rom-version:
bus-info: ff0e0000.ethernet
supports-statistics: yes
supports-test: no
supports-eeprom-access: no
supports-register-dump: yes
supports-priv-flags: no

基本上我所有的统计计数器都是 0

root@xilinx:~# ethtool -S eth0
NIC statistics:
     tx_octets: 0
     tx_frames: 0
     tx_broadcast_frames: 0
     tx_multicast_frames: 0
     tx_pause_frames: 0
     tx_64_byte_frames: 0
     tx_65_127_byte_frames: 0
     tx_128_255_byte_frames: 0
     tx_256_511_byte_frames: 0
     tx_512_1023_byte_frames: 0
     tx_1024_1518_byte_frames: 0
     tx_greater_than_1518_byte_frames: 0
     tx_underrun: 0
     tx_single_collision_frames: 0
     tx_multiple_collision_frames: 0
     tx_excessive_collisions: 0
     tx_late_collisions: 0
     tx_deferred_frames: 0
     tx_carrier_sense_errors: 0
     rx_octets: 0
     rx_frames: 0
     rx_broadcast_frames: 0
     rx_multicast_frames: 0
     rx_pause_frames: 0
     rx_64_byte_frames: 0
     rx_65_127_byte_frames: 0
     rx_128_255_byte_frames: 0
     rx_256_511_byte_frames: 0
     rx_512_1023_byte_frames: 0
     rx_1024_1518_byte_frames: 0
     rx_greater_than_1518_byte_frames: 0
     rx_undersized_frames: 0
     rx_oversize_frames: 0
     rx_jabbers: 0
     rx_frame_check_sequence_errors: 0
     rx_length_field_frame_errors: 0
     rx_symbol_errors: 0
     rx_alignment_errors: 0
     rx_resource_errors: 0
     rx_overruns: 0
     rx_ip_header_checksum_errors: 0
     rx_tcp_checksum_errors: 0
     rx_udp_checksum_errors: 0
     q0_rx_packets: 0
     q0_rx_bytes: 0
     q0_rx_dropped: 0
     q0_tx_packets: 0
     q0_tx_bytes: 0
     q0_tx_dropped: 0
     q1_rx_packets: 0
     q1_rx_bytes: 0
     q1_rx_dropped: 0
     q1_tx_packets: 0
     q1_tx_bytes: 0
     q1_tx_dropped: 0

很乐意接受您的建议以进一步跟踪该问题。

答案1

    master-slave cfg: forced master
    master-slave status: resolution error

这可能是问题所在。主从必须自动协商。forced master可能会破坏协议,禁用链接。

    Supported ports: [ TP    MII ]
    ...
    Port: MII

这可能是另一个问题(可能与上面的问题有关)。如果您想使用双绞线端口,那么您就走错了方向。MII 端口是连接 SFP 模块或用于内部无 PHY 链路的地方。

答案2

检测到链接:否

首先,你的电缆有问题吗?你的接口和交换机上的灯是否闪烁?你使用的是 cat5e 电缆还是更好的电缆?

另一个可以尝试的方法是强制速度和双工,而不是自动协商。您甚至可以尝试回退到 100baseT。

最后,查看以太网驱动程序模块,看看它是否有已知的错误。根据模块的不同,您可能需要更新内核。

哦,还有一件事——“ip link”显示的状态是否为UP?

相关内容