Manually set the Ethernet speed

Hello to all,

is it possible to set the ethernet speed manually in a config file? We have one info-beamer instance which has trouble connecting over ethernet, because of a broken cable.
Pi and Switch want to communicate over Gigabit, but because of a damaged cable inside the wall, Gigabit speed does not work. Sadly the auto fallback to 100 MBit speed does also not working on the Pi.

Currently after every restart of the Pi we have to manually set the network speed again to 100 MBit over the shell with ethtool.

Of course in the long term we want to replace the broken cable but for the moment we need a better workaround then manually ssh into the Pi.

Thanks already for your replies.

Kind Regards
Mario

Well, that’s quite a unique feature request :). Right now there isn’t a way to easily automate this. I’ll see that an option is added to the testing release next Monday. What’s the ethtool option you currently use?

I guess not, but just to be sure: you don’t have to option to force to speed on the other end of the cable?

Currently we use:

sudo ethtool -s eth0 autoneg off speed 100 duplex full

autoneg off: Disable autoneogation of the speed determination
speed 100 duplex full: forces to use 100 Mbit speed which does only requires 4 wires instead of the whole 8 of an ethernet cable.

Good point. Sadly we have no access to the switch on the other side.

Thanks for the info. I’ll see that there’s a way to automate this on Monday.

1 Like

Ready to test:

  • Device > Manage > Activate testing channel > Confirm
  • Wait for it to reboot, then wait a bit longer (a minute or so) for the system to confirm the reboot was actually successful.
  • SSH in as root, then mount /sd -o remount,rw to make /sd writable. Then create /sd/config/ethtool with content:
    autoneg off speed 100 duplex full
    
  • Reboot

It should then apply those settings once eth0 is up. You can confirm in the dashboard by hovering over the IP address on the device’s detail page.

Sadly no luck.
Still using 1000 MBit and autoneg is on (Connected over temporary cable for testing).

Is the testing verision 221027-b28189 testing correct?

Content of /sd/config/ folder and /sd/config/ethtool file

Contents

info-beamer-3960711542 /space/root # ls -l /sd/config
total 4
-rw-rw---- 1 root root 286 Dec 12 13:17 README.html
-rw-rw---- 1 root root 4 Dec 12 13:17 audio
-rw-rw---- 1 root root 10 Dec 12 13:17 customized.txt
-rw-rw---- 1 root root 38 Dec 12 13:17 device-connect-key.txt
-rw-rw---- 1 root root 35 Dec 12 13:34 ethtool
-rw-rw---- 1 root root 0 Dec 12 13:17 p2p
-rw-rw---- 1 root root 256 Dec 12 13:17 random_seed
-rw-rw---- 1 root root 11 Dec 12 13:17 scaling_governor
-rw-rw---- 1 root root 2 Dec 12 13:17 wifi-country
info-beamer-3960711542 /space/root # tail /sd/config/ethtool
autoneg off speed 100 duplex full

info-beamer-3960711542 /space/root #

Results of ethtool eth0:

ethtool eth0 Output

info-beamer-3960711542 /space/root # ethtool eth0
Settings for eth0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Half 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/Half 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
1000baseT/Full
Link partner advertised pause frame use: No
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Port: Twisted Pair
PHYAD: 1
Transceiver: internal
Auto-negotiation: on
MDI-X: Unknown
Supports Wake-on: gs
Wake-on: d
SecureOn password: 00:00:00:00:00:00
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes

We also tried to only put
autoneg off
in the ethtool file and this also does not affect the eth0 settings.

Whoops. My bad. The code from the dev channel was merged but then not release. Fixed now. If you repeat the ‘Activate testing channel’ step it should now update to version 221027-b28189. Sorry about that :frowning:

Now its updating to 221212-1bee14 testing.

And we can confirm that this works now. :+1:
Thanks a lot for your fast help.