New graphics card breaks network

I have a working Rocky 9.5 but with no GUI (old VGA network card - can only get a text login). I’ve been using it with VNC so far.
I now have a new (well secondhand but new to the PC) PCIe graphics card (Gigabyte, GV-N860G512IA, Nvidia based). When I insert that though I get no network. If I live boot to 9.5 from a USB stick, I do get a network.
How am I able to resolve that? Looking at the “messages” log file, the key difference is that eth0 is renamed “enp3s0” (it was enp2s0).
On both the original card and live boot there are messages regarding “Registering new address record” and an IP address after “enp2s0: link becomes ready”.
But when I fit the new graphics, immediately after “enp3s0: link becomes ready”, I get systemd[1]: Finished Network Manager Wait Online.
What do I need to do to resolve that?

Does the network card have a static IP address or does it get it via DHCP? If you use a static IP and the interface is changing from enp2s0 to enp3s0 then it could be that you need to configure enp3s0 with the IP address that you had before on enp2s0 for the network to work.

Strange though that a graphics card is causing the interface name to shift. I would believe that to be possible if another network card was inserted, just seems strange with the graphics one, unless it has a network port on it as well.

Is the interface name derived from the PCI enumeration? Enumeration for network:
Original graphics:Dec 16 17:54:15 Backup kernel: pci 0000:02:00.0: [10ec:8168] type 00 class 0x020000 PCIe Endpoint
New graphics: Dec 16 17:30:38 Backup kernel: pci 0000:03:00.0: [10ec:8168] type 00 class 0x020000 PCIe Endpoint

I do have it configured as fixed, but DHCP is available (and is used on the live boot). But it didn’t look like I could actually reconfigure it (plus if it were some configuration setting relevant to the name, then I would at least expect the system to change to DHCP if it ignored my static settings).

There is no other ethernet mention in the logs so no I don’t think the graphics has any network (it doesn’t obviously have one but there doesn’t seem to be a hidden one either).

Just had a look at files and there is a file /etc/NetworkManager/system-connections/enp2s0.nmconnection which defines the settings that I configured - I’m wondering whether if I just copy and edit that to a file with the new enumeration if that would satisfy the system?

I just experimented, hoping not to break anything. Copying enp2s0.nmconnection to enp3s0.nmconnection and editing the text in the file to enp3… and the network works. But… VNC no longer connects. I then moved enp2s0.nmconnection to another location (for safe keeping) reboot and VNC also works. so think thats sorted now.

GeForce 8600 GT, launched 2007 …


You can list network devices with:

nmcli d s

connections with:

nmcli c s

summary with:

nmcli

and details of one connection with:

nmcli c s enp3s0

(assuming that the name of connection is ‘enp3s0’)

If the Rocky installer does define a connection for you, it will have:

802-3-ethernet.mac-address:             a0:b1:c2:d3:e4:f5

but if you create connection with nmcli, you have to give name of interface (enp2s0) and that will be stored:

connection.interface-name:              enp2s0

One can afterwards update the connection to have 802-3-ethernet.mac-address and no connection.interface-name.

The connection that has interface-name set does work only for device that has that name.
The connection that has mac-address set does work only for device that has that MAC.
If name can change, then the latter is more persistent.


“VGA” is graphics, not network.

Is it possible that some (old?) motherboard re-enumerates its devices on insertion of PCIe-card?
Hence the kernel would hear a “new tale” …