You are not logged in.
Hello everyone,
I use an Intel X550-T2 NIC card, which supports 100/1000/2500/5000/10000 modes. For some reasons, 2500 mode is not advertised by default, which means that the card connects to 1000 mode by default.
I use NetworkManager for network config.
If I do :
ethtool -s enp11s0f0 speed 2500 duplex full autoneg on
it does switch the card to 2500 mode, but it's will go away after a reboot.
i haven't found any way to make this permanent in NetworkManager conf
I tried to use systemd-networkd with the following config in /etx/systemd/network/99-default.link
[Match]
MACAddress=<my mac address>
[Link]
Duplex=Full
AutoNegotiation=yes
Advertise=2500basex-full
Name=enp11s0f0 //I had to put this otherwise the eth gets renamed as eth0
I got the syntax here : https://jlk.fjfi.cvut.cz/arch/manpages/ … emd.link.5
After enabling systemd-networkd.service, and rebooting, nothing works.
Any idea how I can make the setting persistant ?
Last edited by Jubijub (2020-12-29 16:55:36)
Offline
This looks like a low level issue that originates long before high level tools like systemd-networkd and NetworkManager play a role.
Please post output of ip addr show and (as root) output of ethtool your-interface .
Also lspci -k so we can see which kernel module your NIC uses.
For clarity : You are running latest firmware for your motherboard, have configured microcode loading and also use linux-firmware ?
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
This looks like a low level issue that originates long before high level tools like systemd-networkd and NetworkManager play a role.
Please post output of ip addr show and (as root) output of ethtool your-interface .
Also lspci -k so we can see which kernel module your NIC uses.
For clarity : You are running latest firmware for your motherboard, have configured microcode loading and also use linux-firmware ?
This is an expected behaviour of X550 intel NIC (cf file:///D:/Downloads/X550_SpecUpdate_Rev2.9.pdf, page 9 point 2. NBASE-T Speed Advertisement : it has to be enabled by the driver, the card by default only advertises 100/1000/10000 )
Basically I know how to enable it ad hoc, using ethtool -s enp11s0f0 speed 2500 duplex full autoneg on . This works, but only for the current session, if I reboot the setting is lost.
What I would like is to enable it permanently.
To your questions
ip addr show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether 18:c0:4d:0b:b9:6b brd ff:ff:ff:ff:ff:ff
3: wlan0: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc noqueue state DOWN group default qlen 1000
link/ether da:da:6a:d7:d4:ff brd ff:ff:ff:ff:ff:ff permaddr a4:b1:c1:d6:75:f9
4: enp11s0f0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
link/ether a0:36:9f:28:75:80 brd ff:ff:ff:ff:ff:ff
inet 192.168.1.120/24 brd 192.168.1.255 scope global dynamic noprefixroute enp11s0f0
valid_lft 86303sec preferred_lft 86303sec
inet6 2a02:1205:34cd:91a0:3ab5:2f73:6892:616f/64 scope global dynamic noprefixroute
valid_lft 292sec preferred_lft 52sec
inet6 fe80::8ec7:2bf5:f1bc:14f6/64 scope link noprefixroute
valid_lft forever preferred_lft forever
5: eth2: <NO-CARRIER,BROADCAST,MULTICAST,UP> mtu 1500 qdisc mq state DOWN group default qlen 1000
link/ether a0:36:9f:28:75:82 brd ff:ff:ff:ff:ff:ff
ehtool enp11s0f0 : note how 2500baseT/Full is Supported, but not Advertised
Settings for enp11s0f0:
Supported ports: [ TP ]
Supported link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: 1000Mb/s
Duplex: Full
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: Unknown
netlink error: Operation not permitted
Current message level: 0x00000007 (7)
drv probe link
Link detected: yes
Same after I have launched
sudo ethtool -s enp11s0f0 speed 2500 duplex full autoneg on
. Note that after this the card operates as 2500Mbps as shown by NetworkManager for instance
Settings for enp11s0f0:
Supported ports: [ TP ]
Supported link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 2500baseT/Full
Advertised pause frame use: Symmetric
Advertised auto-negotiation: Yes
Advertised FEC modes: Not reported
Speed: Unknown!
Duplex: Unknown! (255)
Auto-negotiation: on
Port: Twisted Pair
PHYAD: 0
Transceiver: internal
MDI-X: Unknown
netlink error: Operation not permitted
Current message level: 0x00000007 (7)
drv probe link
Link detected: no
lshw -C network
*-network
description: Wireless interface
product: Wi-Fi 6 AX200
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:05:00.0
logical name: wlan0
version: 1a
serial: da:da:6a:d7:d4:ff
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress msix bus_master cap_list ethernet physical wireless
configuration: broadcast=yes driver=iwlwifi driverversion=5.9.14-arch1-1 firmware=55.d9698065.0 cc-a0-55.ucode latency=0 link=no multicast=yes wireless=IEEE 802.11
resources: irq:146 memory:fc700000-fc703fff
*-network
description: Ethernet interface
product: I211 Gigabit Network Connection
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:06:00.0
logical name: eth0
version: 03
serial: 18:c0:4d:0b:b9:6b
capacity: 1Gbit/s
width: 32 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list ethernet physical tp 10bt 10bt-fd 100bt 100bt-fd 1000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=igb driverversion=5.9.14-arch1-1 firmware=0. 6-1 latency=0 link=no multicast=yes port=twisted pair
resources: irq:24 memory:fc600000-fc61ffff ioport:f000(size=32) memory:fc620000-fc623fff
*-network:0
description: Ethernet interface
product: Ethernet Controller 10G X550T
vendor: Intel Corporation
physical id: 0
bus info: pci@0000:0b:00.0
logical name: enp11s0f0
version: 01
serial: a0:36:9f:28:75:80
capacity: 10Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list rom ethernet physical tp 100bt-fd 1000bt-fd 10000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=ixgbe driverversion=5.9.14-arch1-1 duplex=full firmware=0x8000134e, 1.2829.0 ip=192.168.1.120 latency=0 link=yes multicast=yes port=twisted pair
resources: iomemory:ff0-fef iomemory:ff0-fef irq:144 memory:fff2800000-fff2bfffff memory:fff2c04000-fff2c07fff memory:c0000000-c007ffff memory:c0100000-c01fffff memory:c0200000-c02fffff
*-network:1
description: Ethernet interface
product: Ethernet Controller 10G X550T
vendor: Intel Corporation
physical id: 0.1
bus info: pci@0000:0b:00.1
logical name: eth2
version: 01
serial: a0:36:9f:28:75:82
capacity: 10Gbit/s
width: 64 bits
clock: 33MHz
capabilities: pm msi msix pciexpress bus_master cap_list rom ethernet physical tp 100bt-fd 1000bt-fd 10000bt-fd autonegotiation
configuration: autonegotiation=on broadcast=yes driver=ixgbe driverversion=5.9.14-arch1-1 firmware=0x8000134e, 1.2829.0 latency=0 link=no multicast=yes port=twisted pair
resources: iomemory:ff0-fef iomemory:ff0-fef irq:196 memory:fff2400000-fff27fffff memory:fff2c00000-fff2c03fff memory:c0080000-c00fffff memory:c0300000-c03fffff memory:c0400000-c04fffff
lspci -k
0b:00.0 Ethernet controller: Intel Corporation Ethernet Controller 10G X550T (rev 01)
Subsystem: Intel Corporation Ethernet Converged Network Adapter X550-T2
Kernel driver in use: ixgbe
Kernel modules: ixgbe
0b:00.1 Ethernet controller: Intel Corporation Ethernet Controller 10G X550T (rev 01)
Subsystem: Intel Corporation Ethernet Converged Network Adapter X550-T2
Kernel driver in use: ixgbe
Kernel modules: ixgbe
Latest motherboard firmware : aye, running F31q from December (https://www.gigabyte.com/Motherboard/X570-AORUS-MASTER-rev-11-12/support#support-dl-driver )
Microcode : yep, running amd-ucode 20201218.646f159-1, loaded via initrd /amd-ucode.img in my arch.conf using systemd-bootctl (this is a fresh install from yesterday)
Linux-firmware : yep, running linux-firmware 20201218.646f159-1
Update from my investigations : systemd-networkd does seem to load my config, because all other interfaces got renamed eth*, except the one for which I specified the name. It just seems it either ignores the Speed directive, or I entered the value incorrectly, or something overrides it afterwards. I have no idea how to investigate that.
Last edited by Jubijub (2020-12-28 15:40:02)
Offline
This is an expected behaviour of X550 intel NIC (cf file:///D:/Downloads/X550_SpecUpdate_Rev2.9.pdf, page 9 point 2. NBASE-T Speed Advertisement : it has to be enabled by the driver, the card by default only advertises 100/1000/10000 )
Online i've found the 2.0 revision, but that doesn't seem to mention the issue at all. I'll accept your word for it.
I had hoped the kernel module would allow advertising that speed, but modinfo ixgbe doesn't show an option for that.
network interface naming : systemd-udev uses what they call "Predictable Network Interface Names" by default but you can set them yourself or let the kernel name them.
https://wiki.archlinux.org/index.php/Ne … and_tricks, section 4.1 and 4.2 have more info .
Even if systemd-networkd is able to enable the desired speed if you switch to any other network management tool it will not be set.
That indicates running a specific ethtool command early in boot process is the best solution available.
On archlinux the usual way to achieve that is to write a custom systemd service that executes the command.
(Please change the title to reflect this has to do with writing a systemd service now,)
I am not good with systemd services, but can help to get you started[1] .
Since the service needs to be run before network tools run, it should probably use network-pre.target .
listing network-pre.target as Before and Wants seems to be the way to go.
[2] has more details.
[1] https://wiki.archlinux.org/index.php/Sy … unit_files
[2] https://www.freedesktop.org/wiki/Softwa … orkTarget/
Last edited by Lone_Wolf (2020-12-28 16:20:12)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
clean chroot building not flexible enough ?
Try clean chroot manager by graysky
Offline
Victory ! Thanks Lone_Wolf, the service way works like a charm
I create a service called ethtool@.service in /etc/systemd/system
[Unit]
Description=ethtool configuration to enable 2500mbps speed for the specified card
After=network-online.target
Wants=network-online.target
[Service]
ExecStart=/usr/bin/ethtool -s %i speed 2500 duplex full autoneg on
Type=oneshot
[Install]
WantedBy=multi-user.target
I enabled it with sudo systemctl enable ethtool@enp11s0f0.service
Result :
Settings for enp11s0f0:
Supported ports: [ TP ]
Supported link modes: 100baseT/Full
1000baseT/Full
10000baseT/Full
2500baseT/Full
5000baseT/Full
Supported pause frame use: Symmetric
Supports auto-negotiation: Yes
Supported FEC modes: Not reported
Advertised link modes: 2500baseT/Full
● ethtool@enp11s0f0.service - ethtool configuration to enable 2500mbps speed for the specified card
Loaded: loaded (/etc/systemd/system/ethtool@.service; enabled; vendor preset: disabled)
Active: inactive (dead) since Tue 2020-12-29 17:52:48 CET; 4min 19s ago
Process: 1175 ExecStart=/usr/bin/ethtool -s enp11s0f0 speed 2500 duplex full autoneg on (code=exited, status=0/SUCCESS)
Main PID: 1175 (code=exited, status=0/SUCCESS)
déc 29 17:52:48 fastlearner systemd[1]: Starting ethtool configuration to enable 2500mbps speed for the specified card...
déc 29 17:52:48 fastlearner systemd[1]: ethtool@enp11s0f0.service: Succeeded.
déc 29 17:52:48 fastlearner systemd[1]: Finished ethtool configuration to enable 2500mbps speed for the specified card.
Offline