Reducing power consumption by limiting Ethernet to 100MBit/s on SBCs running Armbian Buster

Most applications on single board computers (SBCs) running Armbian do not need 1GBit/s Ethernet connections. By limiting the connection speed to 100MBit/s around 150mW of power can be saved up thus reducing CPU temperature by 8 Kelvin from 60°C to 52°C on my idling NanoPi Neo2 LTS boards with H5 processor.

Check Ethernet controller capabilities

ethtool eth0

⋮
Supported link modes:   10baseT/Half 10baseT/Full 
                        100baseT/Half 100baseT/Full 
                        1000baseT/Half 1000baseT/Full
⋮
Advertised link modes:  1000baseT/Full 
⋮
Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                     100baseT/Half 100baseT/Full 
                                     1000baseT/Full
⋮
Speed: 1000Mb/s
⋮

Limit Ethernet speed to 100MBit/s - non permanent

ethtool -s eth0 speed 100 duplex full autoneg on

Limit Ethernet speed to 100MBit/s - permanent - by using NetworkManager Command Line Interface (the hard way)

nmcli connection edit type ethernet

goto ethernet
set speed 100
set duplex full
set auto-negotiate on
back
print
save
quit

Limit Ethernet speed to 100MBit/s - permanent - by editing NetworkManager config file (the easy way)

etc/init.d/network-manager stop

Add or change the following lines in the file
/etc/NetworkManager/system-connections/ethernet.nmconnection

[ethernet]
speed=100
duplex=full
auto-negotiate=true

/etc/init.d/network-manager start

Test your changes

Reboot the system
reboot
and check the new 100MBit/s link speed.
ethtool eth0

⋮
Supported link modes:   10baseT/Half 10baseT/Full 
                        100baseT/Half 100baseT/Full 
                        1000baseT/Half 1000baseT/Full 
⋮
Advertised link modes:  100baseT/Full 
⋮
Link partner advertised link modes:  10baseT/Half 10baseT/Full 
                                     100baseT/Half 100baseT/Full
⋮
Speed: 100Mb/s
⋮

Check the temperature of the CPU (milli Celsius)
cat /etc/armbianmonitor/datasources/soctemp
52122