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