reRouter eth1 running at only 100Mb/s

I’m attempting to use the ReReouter CM4 product running OpenWRT. The eth1 port will not connect to any devices faster than 100Mb/s. I have filed issue in the Github repo but no response, so trying here to see if you have any suggestions.

I have tried:

  • swapping LAN and WAN to see if it was just a problem with the LAN7800 and my modem. No change.
  • after the swap, multiple cables between eth1 and different devices (switch, Macs and PC). Cables are able to run multiple other interfaces at 1000Mb/s no problem, so it’s not cable.
  • multiple builds of OpenWRT (Seeed build from late September 2022, official build of 22.02, recent Seeed build of 22.03 from OneDrive). Always the same problem.

I see this in the system logs:
Sun Apr 9 12:28:06 2023 kern.info kernel: [ 24.310468] lan78xx 2-3:1.0 eth1: Link is Up - 1Gbps/Full - flow control rx/tx

I verify device speed using ethtool but always get this:

root@OpenWrt:~# ethtool eth1
Settings for eth1:
	Supported ports: [ TP	 MII ]
	Supported link modes:   10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Supported pause frame use: Symmetric Receive-only
	Supports auto-negotiation: Yes
	Supported FEC modes: Not reported
	Advertised link modes:  10baseT/Half 10baseT/Full
	                        100baseT/Half 100baseT/Full
	                        1000baseT/Full
	Advertised pause frame use: Symmetric Receive-only
	Advertised auto-negotiation: Yes
	Advertised FEC modes: Not reported
	Link partner advertised link modes:  10baseT/Half 10baseT/Full
	                                     100baseT/Half 100baseT/Full
	Link partner advertised pause frame use: Symmetric Receive-only
	Link partner advertised auto-negotiation: Yes
	Link partner advertised FEC modes: Not reported
	Speed: 100Mb/s
	Duplex: Full
	Auto-negotiation: on
	master-slave cfg: preferred slave
	master-slave status: master
	Port: Twisted Pair
	PHYAD: 1
	Transceiver: internal
	MDI-X: Unknown
	Supports Wake-on: pumbag
	Wake-on: g
        Current message level: 0x00000007 (7)
                               drv probe link
	Link detected: yes

This means that in the end the device is essentially useless as it is unable to route even 10% of my gigabit connection. Please advise how to either get this working, or how to start the RMA process.

Hi, Thanks for reporting, I will check with the Software team about this issue, but seems like the official build openwrt it’s currently 22.03.4, should be working as expected as others have report the similar issues Is it just me? SLOW Throughput · Issue #34 · Seeed-Studio/seeed-linux-openwrt · GitHub, please try again with the latest official build and report back if the issue still persist.

Hi @nengyu, thanks for the reply.

I’m aware of that ticket and AFAICT that was not a problem in negotiating the connection.

Note that I wrote I have tried:

multiple builds of OpenWRT (Seeed build from late September 2022, official build of 22.02, recent Seeed build of 22.03 from OneDrive). Always the same problem.

To be more specific I have used rpiboot and Balena ethcer as suggested in the Seeed Wiki page to flash the CM4 with:

  • the Seeed OpenWRT from September 2022 (last revision before the updates from CI stopped)
  • various official OpenWRT builds and then configuring from scratch based on the config from Seeed OpenWRT builds mentioned in first bullet
  • the latest revision of Seeed’s OpenWRT build (i.e. since the CI was fixed and the images in the OneDrive started to be built daily again)

Each time when I’ve installed any of the above I’ve used the factory image to ensure that the CM4 is basically erased and I start again from scratch. Always the same behavior from the LAN7800 based ethernet port.

I realise it’s not good forum etiquette, but I have spent a few weeks with the OpenWRT folks trying to troubleshoot if this is a software issue in the thread here:

The fact that the problem persists across multiple OpenWRT builds from different sources strongly indicates a hardware problem to me. I have tried multiple cables which all negotiate 1000Mb/s connections between other non-Seeed devices with no problem. So now I’m unsure how to proceed. If you have any other ideas I’d be really glad to get this working after more than 6 months since purchase!

And just to confirm I have done a fresh install of official build of OpenWRT as you suggested:
OpenWrt 22.03.4, r20123-38ccc47687

and the LAN7800 interface still only runs at 100Mb/s.

Interestingly in that build’s dmesg for the first time I saw mention of eth1 running at 1Gbps, but it still then slows down to 100Mb/s according to ethtool:

[ 2590.189589] lan78xx 2-3:1.0 eth1: Link is Up - 1Gbps/Full - flow control rx/tx
[ 2590.196892] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready
[ 2590.541274] lan78xx 2-3:1.0 eth1: Link is Down
[ 2591.329035] 8021q: adding VLAN 0 to HW filter on device eth1
[ 2591.338175] lan78xx 2-3:1.0 eth1: Link is Down
[ 2619.199253] lan78xx 2-3:1.0 eth1: Link is Up - 100Mbps/Full - flow control rx/tx
[ 2619.206733] IPv6: ADDRCONF(NETDEV_CHANGE): eth1: link becomes ready

Further options I have tested:

  • crossover cable to see if it’s a wiring issue
  • bought an Apple USB to Ethernet adapter to test a 4th computer

No change, eth1 always runs at 100Mb/s.

Much as I hate to go on about this, please note that to try and debug my hardware I just spent a day flashing Raspbian and testing your wiki instructions to get the LAN7800 working at 1Gb/s. In the end that fails as well, please see issue64.

So I’m now out of ideas how I can verify if this hardware really is capable of 1Gb/s. Please advise Seeed…