This ■■■■ happens periodically over years and still not fixed yet!!! After some connection lost or manual connection on/off or other reason NM may slow down network speed to 1-10 Mb/s. After reboot speedtest.net may show 100 Mb/s but I have 1Gb/s connection! And other PC (with Ubuntu NM 1.46.0) shows full speed with the same router and speedtest.net server.
$ sudo NetworkManager --version
1.48.8
My connection is wire and was able to get 1Gb on it previously. How to prevent NM to reduce the speed and get full interface speed?! Tried to switch to Wicked
- it does not rise up any connection to me at all - no network.
I doubt this has to do with the network management framework. Speculating…the driver or link negotiation might be causing some issues here. Show us the results from
inxi -na
/usr/sbin/ethtool <name of interface>
Substitute your actual network device node foe eg eth1
Since you’re using NetworkManager, perhaps worthwhile monitoring related journal events in a terminal as well…
sudo journalctl -fu NetworkManager
Share the output if you find anything of interest occurring there.
1 Like
I’ve set speed to 1Gb/s (or 2.5Gb/s) manually in NM KDE settings and speed is normal now!
Here is your commands output:
> inxi -na
Network:
Device-1: Realtek RTL8125 2.5GbE vendor: Gigabyte driver: r8169 v: kernel
pcie: gen: 2 speed: 5 GT/s lanes: 1 port: f000 bus-ID: 04:00.0
chip-ID: 10ec:8125 class-ID: 0200
IF: enp4s0 state: up speed: 1000 Mbps duplex: full mac: 74:56:3c:48:0c:88
Device-2: MEDIATEK MT7921K Wi-Fi 6E 80MHz driver: mt7921e v: kernel pcie:
gen: 2 speed: 5 GT/s lanes: 1 bus-ID: 05:00.0 chip-ID: 14c3:0608
class-ID: 0280
IF: wlp5s0 state: down mac: ee:3c:3a:86:f7:ba
Info: services: NetworkManager,wpa_supplicant
> /usr/sbin/ethtool enp4s0
Settings for enp4s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/Full
Supported pause frame use: Symmetric Receive-only
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 1000baseT/Full
Advertised pause frame use: Symmetric Receive-only
Advertised auto-negotiation: No
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: off
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
netlink error: Operation not permitted
Link detected: yes
> sudo journalctl -fu NetworkManager
авг 25 03:05:49 Aleksey NetworkManager[1864]: <info> [1724544349.6698] device (enp4s0): carrier: link connected
авг 25 03:05:56 Aleksey NetworkManager[1864]: <info> [1724544356.0470] device (enp4s0): carrier: link connected
авг 25 03:06:21 Aleksey NetworkManager[1864]: <info> [1724544381.4091] device (wlp5s0): set-hw-addr: set MAC address to EE:3C:3A:86:F7:BA (scanning)
авг 25 03:06:21 Aleksey NetworkManager[1864]: <info> [1724544381.4349] device (wlp5s0): supplicant interface state: inactive -> interface_disabled
авг 25 03:06:21 Aleksey NetworkManager[1864]: <info> [1724544381.4349] device (p2p-dev-wlp5s0): supplicant management interface state: inactive -> interface_disabled
авг 25 03:06:21 Aleksey NetworkManager[1864]: <info> [1724544381.4745] device (wlp5s0): supplicant interface state: interface_disabled -> inactive
авг 25 03:06:21 Aleksey NetworkManager[1864]: <info> [1724544381.4745] device (p2p-dev-wlp5s0): supplicant management interface state: interface_disabled -> inactive
авг 25 03:06:54 Aleksey NetworkManager[1864]: <info> [1724544414.2745] audit: op="statistics" interface="enp4s0" ifindex=2 args="2000" pid=2475 uid=1000 result="success"
авг 25 03:07:03 Aleksey NetworkManager[1864]: <info> [1724544423.7289] audit: op="connection-update" uuid="fa26c24f-6892-419f-ae57-3aef9234284e" name="Проводное соединение" args="802-3-ethernet.speed" pid=4443 uid=1000 result="success"
авг 25 03:07:05 Aleksey NetworkManager[1864]: <info> [1724544425.1099] audit: op="statistics" interface="enp4s0" ifindex=2 args="2000" pid=2475 uid=1000 result="success"
авг 25 03:11:21 Aleksey NetworkManager[1864]: <info> [1724544681.6234] audit: op="statistics" interface="enp4s0" ifindex=2 args="2000" pid=2475 uid=1000 result="success"
авг 25 03:11:28 Aleksey NetworkManager[1864]: <info> [1724544688.3749] device (wlp5s0): set-hw-addr: set MAC address to 7A:11:4C:8B:6A:4D (scanning)
авг 25 03:11:28 Aleksey NetworkManager[1864]: <info> [1724544688.4320] device (wlp5s0): supplicant interface state: inactive -> disconnected
авг 25 03:11:28 Aleksey NetworkManager[1864]: <info> [1724544688.4320] device (p2p-dev-wlp5s0): supplicant management interface state: inactive -> disconnected
авг 25 03:11:28 Aleksey NetworkManager[1864]: <info> [1724544688.4371] device (wlp5s0): supplicant interface state: disconnected -> inactive
авг 25 03:11:28 Aleksey NetworkManager[1864]: <info> [1724544688.4371] device (p2p-dev-wlp5s0): supplicant management interface state: disconnected -> inactive
If setting the link speed manually works for you then there is no need to share the output. The output only reflects what you set manually anyway.
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: off
Occasionally network hardware doesn’t play nice with other connected network hardware with respect to auto-negotiation.
The last command was for monitoring purposes, and if your link is now stable, there is no need to continue monitoring. In any case it showed nothing of interest for the period that you ran it.
1 Like
No link is not stable: after today power on speed again at 100 Mb/s while NM setting is still 2.5 Gb/s. Output:
> /usr/sbin/ethtool enp4s0
Settings for enp4s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/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
2500baseT/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: slave
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
netlink error: Operation not permitted
Link detected: yes
> sudo journalctl -fu NetworkManager
[sudo] пароль для aleksey:
авг 25 14:25:12 Aleksey NetworkManager[1871]: <info> [1724585112.8253] device (enp4s0): carrier: link connected
авг 25 14:25:16 Aleksey NetworkManager[1871]: <info> [1724585116.1257] device (enp4s0): carrier: link connected
авг 25 14:25:19 Aleksey NetworkManager[1871]: <info> [1724585119.9049] device (enp4s0): carrier: link connected
авг 25 14:25:22 Aleksey NetworkManager[1871]: <info> [1724585122.4931] device (enp4s0): carrier: link connected
авг 25 14:26:56 Aleksey NetworkManager[1871]: <info> [1724585216.4144] audit: op="statistics" interface="enp4s0" ifindex=2 args="2000" pid=2661 uid=1000 result="success"
авг 25 14:29:25 Aleksey NetworkManager[1871]: <info> [1724585365.8347] device (wlp5s0): set-hw-addr: set MAC address to B6:D6:CD:BA:E0:79 (scanning)
авг 25 14:29:25 Aleksey NetworkManager[1871]: <info> [1724585365.8657] device (wlp5s0): supplicant interface state: inactive -> interface_disabled
авг 25 14:29:25 Aleksey NetworkManager[1871]: <info> [1724585365.8658] device (p2p-dev-wlp5s0): supplicant management interface state: inactive -> interface_disabled
авг 25 14:29:25 Aleksey NetworkManager[1871]: <info> [1724585365.8893] device (wlp5s0): supplicant interface state: interface_disabled -> inactive
авг 25 14:29:25 Aleksey NetworkManager[1871]: <info> [1724585365.8894] device (p2p-dev-wlp5s0): supplicant management interface state: interface_disabled -> inactive
How to make it 1Gb or 2.5GGb/s?!
Now something happened and it occasionally switched back to 1Gb/s for some reason:
> sudo journalctl -fu NetworkManager
авг 25 14:25:12 NetworkManager[1871]: <info> [1724585112.8253] device (enp4s0): carrier: link connected
авг 25 14:25:16 NetworkManager[1871]: <info> [1724585116.1257] device (enp4s0): carrier: link connected
авг 25 14:25:19 NetworkManager[1871]: <info> [1724585119.9049] device (enp4s0): carrier: link connected
авг 25 14:25:22 NetworkManager[1871]: <info> [1724585122.4931] device (enp4s0): carrier: link connected
авг 25 14:26:56 NetworkManager[1871]: <info> [1724585216.4144] audit: op="statistics" interface="enp4s0" ifindex=2 args="2000" pid=2661 uid=1000 result="success"
авг 25 14:29:25 NetworkManager[1871]: <info> [1724585365.8347] device (wlp5s0): set-hw-addr: set MAC address to B6:D6:CD:BA:E0:79 (scanning)
авг 25 14:29:25 NetworkManager[1871]: <info> [1724585365.8657] device (wlp5s0): supplicant interface state: inactive -> interface_disabled
авг 25 14:29:25 NetworkManager[1871]: <info> [1724585365.8658] device (p2p-dev-wlp5s0): supplicant management interface state: inactive -> interface_disabled
авг 25 14:29:25 NetworkManager[1871]: <info> [1724585365.8893] device (wlp5s0): supplicant interface state: interface_disabled -> inactive
авг 25 14:29:25 NetworkManager[1871]: <info> [1724585365.8894] device (p2p-dev-wlp5s0): supplicant management interface state: interface_disabled -> inactive
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.1650] device (enp4s0): state change: activated -> unavailable (reason 'carrier-changed', sys-iface-state: 'managed')
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.1651] dhcp4 (enp4s0): canceled DHCP transaction
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.1652] dhcp4 (enp4s0): activation: beginning transaction (timeout in 45 seconds)
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.1652] dhcp4 (enp4s0): state changed no lease
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.3392] manager: NetworkManager state is now DISCONNECTED
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.4162] device (enp4s0): carrier: link connected
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.4163] device (enp4s0): state change: unavailable -> disconnected (reason 'carrier-changed', sys-iface-state: 'managed')
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.4167] policy: auto-activating connection 'Проводное соединение' (fa26c24f-6892-419f-ae57-3aef9234284e)
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.4169] device (enp4s0): Activation: starting connection 'Проводное соединение' (fa26c24f-6892-419f-ae57-3aef9234284e)
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.4170] device (enp4s0): state change: disconnected -> prepare (reason 'none', sys-iface-state: 'managed')
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.4171] manager: NetworkManager state is now CONNECTING
авг 25 14:30:11 NetworkManager[1871]: <warn> [1724585411.4172] device (enp4s0): set-link: failure to set link negotiation
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.4172] device (enp4s0): state change: prepare -> config (reason 'none', sys-iface-state: 'managed')
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.4304] device (enp4s0): state change: config -> ip-config (reason 'none', sys-iface-state: 'managed')
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.4307] dhcp4 (enp4s0): activation: beginning transaction (timeout in 45 seconds)
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.4710] dhcp4 (enp4s0): state changed new lease, address=192.168.0.112, acd pending
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.6756] dhcp4 (enp4s0): state changed new lease, address=192.168.0.112
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.6758] policy: set 'Проводное соединение' (enp4s0) as default for IPv4 routing and DNS
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.7678] device (enp4s0): state change: ip-config -> ip-check (reason 'none', sys-iface-state: 'managed')
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.7924] device (enp4s0): state change: ip-check -> secondaries (reason 'none', sys-iface-state: 'managed')
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.7925] device (enp4s0): state change: secondaries -> activated (reason 'none', sys-iface-state: 'managed')
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.7927] manager: NetworkManager state is now CONNECTED_SITE
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.7929] device (enp4s0): Activation: successful, device activated.
авг 25 14:30:11 NetworkManager[1871]: <info> [1724585411.9040] manager: NetworkManager state is now CONNECTED_GLOBAL
> /usr/sbin/ethtool enp4s0
Settings for enp4s0:
Supported ports: [ TP MII ]
Supported link modes: 10baseT/Half 10baseT/Full
100baseT/Half 100baseT/Full
1000baseT/Full
2500baseT/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
2500baseT/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: Symmetric Receive-only
Link partner advertised auto-negotiation: Yes
Link partner advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
master-slave cfg: preferred slave
master-slave status: slave
Port: Twisted Pair
PHYAD: 0
Transceiver: external
MDI-X: Unknown
netlink error: Operation not permitted
Link detected: yes
What is going on?!
Have you tried replacing the cable and changing the router port?
The connection has reverted to auto-negotiation. You’d need to show us your NM wired connection definition.
No, wire too long and in separate room. Router port? May try not sure it will help: new modern TP-Link router.
Seems so: and changes to speed in Plasma NM settings has no effect now for some reason.
How, what command? Screenshot?
Well, there is definitely an issue between your PC and the network appliance it is connected to to. This could be due a cable/termination issue, or some problem with a network interface as already mentioned. If the cable is long and not screened sufficiently, there may be an interference problem at play.
I’m not sure how auto-negotiation would be forced if you explicitly set manual negotiation. However, setting the link speed manually is likely masking a real problem with the physical ocnnection that needs addressing.
The active NM connection parameters can be shown with something like
nmcli c show <conneciton-name>
Since we’re only interested in the duplex settings as set by NM we can abbreviate the output with
nmcli c show <connection-name> | grep "ethernet"
Chanege to your actual wired conneciton name.
The system connection profiles are located in /etc/NetworkManager/system-connections/ directory, so you can navigate there and examine with…
sudo cat /etc/NetworkManager//system-connections/<connection-name>
or just show the screenshot of the relevant connection if that is easier.
> nmcli c show "Wire connection" | grep "ethernet"
connection.type: 802-3-ethernet
802-3-ethernet.port: --
802-3-ethernet.speed: 2500
802-3-ethernet.duplex: full
802-3-ethernet.auto-negotiate: no
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-denylist: --
802-3-ethernet.mtu: auto
802-3-ethernet.s390-subchannels: --
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options: --
802-3-ethernet.wake-on-lan: default
802-3-ethernet.wake-on-lan-password: --
802-3-ethernet.accept-all-mac-addresses:-1 (default)
> sudo cat /etc/NetworkManager/system-connections/Wire\ connection.nmconnection
[connection]
id=Wire connection
uuid=fa26c24f-6892-419f-ae57-3aef9234284e
type=ethernet
[ethernet]
duplex=full
speed=2500
[ipv4]
method=auto
[ipv6]
addr-gen-mode=stable-privacy
method=auto
[proxy]
Ok, that shows the applied configuration from the NM perspective at least.
Please also show us
systemctl list-units | egrep -i "network|wicked"
Autonegotiation is mandatory for 1G and above. I have no idea what happens if you try to turn it off. In the best case, driver will ignore it. Or it will fall back to the 100Mb/s which is the highest possible speed with negotiation.
marel
August 26, 2024, 6:24am
15
That could well be the problem.
device (enp4s0): state change: unavailable -> disconnected (reason 'carrier-changed', sys-iface-state: 'managed')
The cable could be running along some other cables that trigger a disturbance or some other hardware problem.
Yes, you will likely be able to fix the speed but the underlying problem will not go away and you might become back saying the network sometimes does not work or has high packet loss.
1 Like
> systemctl list-units | egrep -i "network|wicked"
NetworkManager-wait-online.service loaded active exited Network Manager Wait Online
NetworkManager.service loaded active running Network Manager
network-online.target loaded active active Network is Online
network-pre.target loaded active active Preparation for Network
network.target loaded active active Network
nss-lookup.target loaded active active Host and Network Name Lookups
According to NM UI settings we can set speed limit only if we set negotiation to manual.
marel:
That could well be the problem.
device (enp4s0): state change: unavailable -> disconnected (reason 'carrier-changed', sys-iface-state: 'managed')
The cable could be running along some other cables
True - 1 more cable exists there. So what to do: use more expensive cables with better screening? Also could be bad pin connection - probably need to change it. However after reestablishing connection I think NM should set it back to 2.5 Gb/s - not 100 Mb/s or even several times lower occasionally.
All UI I have seen are limited and do not expose all possible options. Try explicitly setting 802-3-ethernet.auto-negotiate
to yes
.
nmcli c modify "Wire connection" 802-3-ethernet.auto-negotiate yes
?
And how to save that to link configuration? Seems it save this automatically?
> LC_ALL=C nmcli c show "Проводное соединение" | grep "ethernet"
connection.type: 802-3-ethernet
802-3-ethernet.port: --
802-3-ethernet.speed: 2500
802-3-ethernet.duplex: full
802-3-ethernet.auto-negotiate: yes
802-3-ethernet.mac-address: --
802-3-ethernet.cloned-mac-address: --
802-3-ethernet.generate-mac-address-mask:--
802-3-ethernet.mac-address-denylist: --
802-3-ethernet.mtu: auto
802-3-ethernet.s390-subchannels: --
802-3-ethernet.s390-nettype: --
802-3-ethernet.s390-options: --
802-3-ethernet.wake-on-lan: default
802-3-ethernet.wake-on-lan-password: --
802-3-ethernet.accept-all-mac-addresses:-1 (default)
Now UI does not allow to set the speed again.
I am not sure I understand this question. After changing connection profile you need to re-apply it by toggling connection/device down/up or reboot.
I see. I checked the config file - it saved. Please always write the command. Ok found:
nmcli c down "Проводное соединение"
nmcli c up "Проводное соединение"
Works. Now need to understand if it gives any effect.