I’m using the Ethernet on my M2 Zero under Armbian 24.2.1 Jammy - no problems.
I did however not just solder the Ethernet cable directly to the board!
I’ve implemented something called “Transformerless Ethernet”, see also the Texas Instruments paper below. Usually, Ethernet requires transformers, sometimes called magnetics. On short runs, you can get away with using capacitors instead.
TL:DR put 33nF ceramic capacitors inline with each of the 4 conductors!
This seems to run just fine, even over a 2.5m long cable - runs iperf3 like a champ without dropping packets.
my stats before testing
user@banana:~$ netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 481612 0 831 0 591000 0 0 0 BMRU
lo 65536 21509 0 0 0 21509 0 0 0 LRU
wlan0 1500 0 0 0 0 0 0 0 0 BMU
generating plenty of traffic with iperf3, via an old Netgear Gigabit switch, connecting to my PC
user@banana:~$ iperf3 -c 10.0.0.20
Connecting to host 10.0.0.20, port 5201
[ 5] local 10.0.0.3 port 47968 connected to 10.0.0.20 port 5201
[ ID] Interval Transfer Bitrate Retr Cwnd
[ 5] 0.00-1.00 sec 11.8 MBytes 99.0 Mbits/sec 45 189 KBytes
[ 5] 1.00-2.00 sec 11.2 MBytes 93.8 Mbits/sec 0 228 KBytes
[ 5] 2.00-3.00 sec 11.2 MBytes 94.3 Mbits/sec 45 199 KBytes
[ 5] 3.00-4.00 sec 11.2 MBytes 93.8 Mbits/sec 45 170 KBytes
[ 5] 4.00-5.00 sec 11.5 MBytes 96.4 Mbits/sec 0 212 KBytes
[ 5] 5.00-6.00 sec 11.2 MBytes 93.9 Mbits/sec 45 187 KBytes
[ 5] 6.00-7.00 sec 11.2 MBytes 93.8 Mbits/sec 0 223 KBytes
[ 5] 7.00-8.00 sec 11.2 MBytes 93.8 Mbits/sec 45 199 KBytes
[ 5] 8.00-9.00 sec 11.2 MBytes 93.8 Mbits/sec 45 173 KBytes
[ 5] 9.00-10.00 sec 11.2 MBytes 93.8 Mbits/sec 0 212 KBytes
- - - - - - - - - - - - - - - - - - - - - - - - -
[ ID] Interval Transfer Bitrate Retr
[ 5] 0.00-10.00 sec 113 MBytes 94.7 Mbits/sec 270 sender
[ 5] 0.00-10.01 sec 112 MBytes 94.2 Mbits/sec receiver
iperf Done.
my stats after testing - “it works on my box”
user@banana:~$ netstat -i
Kernel Interface table
Iface MTU RX-OK RX-ERR RX-DRP RX-OVR TX-OK TX-ERR TX-DRP TX-OVR Flg
eth0 1500 523841 0 831 0 672527 0 0 0 BMRU
lo 65536 21509 0 0 0 21509 0 0 0 LRU
wlan0 1500 0 0 0 0 0 0 0 0 BMU
the TI paper
EDIT: please post your results - i’m curious whether you’ve been describing symptoms of improper isolation (i don’t have a spare M2 Zero to test it myself)
EDIT2: um actually, there seems to exist some packet loss - i didn’t look at the iperf3
stats in detail before - the Retr
column lists the TCP packet retransmission count. So, there must be some packet loss, indeed. However, these seem to be recoverable TCP retransmits - no actual data loss in the TCP scheme of things (UDP, however, does not implement retransmission - lack of receive ACK). Also, the Retr
value increases drastically when i increase the number of parallel streams; iperf3 -c <server IP> -P5
. However, the direction seems to matter - iperf3 -c <server IP> -R
does not produce any TCP retransmissions. The 33nF capacitor solution should take care of most of the physical layer issues, though. And TCP is kinda robust, with its retransmissions, and all. I’d crack a UDP joke, but i’m worried you wouldn’t get it.
EDIT3: my BPi-M2Z works just fine as THE single DHCP server, in my home LAN, btw.