我在嵌入式开发平台上尝试启动以太网并进行 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?