I have been able to run a script at startup that enables 2.5g on the Intel X550. Here's how :

Create the script that will run at startup

nano /usr/local/bin/x550.sh

Content of x550.sh :

#!/usr/bin/bash sleep 1m ethtool -s eth1 advertise 0x1800000001028 echo `date +%F" "%T` "Startup script worked" >> /root/x550.log

Make the script executable :

chmod +x /usr/local/bin/x550.sh

Create the service that runs the script at startup

nano /etc/systemd/system/x550.service

Content of x550.service :

[Unit] Description=Runs /usr/local/bin/x550.sh [Service] ExecStart=/usr/local/bin/x550.sh [Install] WantedBy=multi-user.target

Enable the service

systemctl enable x550

Reboot and run this command to see if the link speed is 2.5g

ethtool ethX (replace X with yours)

It should show this result :

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 2500baseT/Full 5000baseT/Full Advertised pause frame use: Symmetric Advertised auto-negotiation: Yes Advertised FEC modes: Not reported Speed: 2500Mb/s Duplex: Full Port: Twisted Pair PHYAD: 0 Transceiver: internal Auto-negotiation: on MDI-X: Unknown Supports Wake-on: d Wake-on: d Current message level: 0x00000007 (7) drv probe link Link detected: yes

You can check the log file of your script located at /root/x550.log

I used this article to create everything :
https://www.redhat.com/sysadmin/replacing-rclocal-systemd