[SOLVED] Offline install of Realtek 8168 drivers?

JayB21

New Member
Apr 12, 2025
14
3
3
I'm running ProxMox 8.4.14 on a Gigabyte B550 MB with a single onboard Realtek 8168 NIC and a single PCI slot which is occupied by a video card until I can get the network configured and then I'll add a 10GB Intel dual nic which was installed and working before the swap.

I recently tried to swap the gigabyte for an ASUS board to allow for an additional NIC but ran into PCI passthrough issues causing crashes so reverted to the original board.

The NIC -was- working before the switch but since I switched it back, the NIC isn't working. I assume something I did while trying to configure the new MB borked something.

The card is seen by lspci and lshw

The 8168 is showing as UNCLAIMED and can't be assigned an IP and has no loaded drivers.

Because the drivers aren't working, I've got no network connection and I've had to do what I can via USB with files from my desktop.

I tried to install the latest drivers from Realtek (8.055) but they require dkms 3.2 which isn't apparently compatible with bookworm.

I tried to install the 8.051.02 drivers via dkms on USB and that went fine (no errors at least) but made no apparent difference.

lspci reports the controller at 05:00 and

Code:
find /sys/ | grep drivers.*05:00

returns nothing so no driver?

I've spent the last day & a half trying all the fixes I can find from here as well as elsewhere and nothing has worked..

I've seen that there may be a need for a header update but not sure how to do that via USB.

Thoughts?
 
I have been able to get the NIC to be recognized by lshw and get a logical name enp4s0 by running modprobe r8168

After modprobe r8168, lshw shows DISABLED for the NIC. so that's progress?

However after a reboot it reverts back to UNCLAIMED with no logical name.

modprobe -v r8168 returns a module not found in directory /lib/modules/6/8/12-16-pve (driver not installed I assumed)

So I downloaded r8168-dkms_8.051.02-2_all.deb (the latest 8.055 version isn't compatible apparently) and tried to install it from USB

Which gives a message that Module build for kernel 6.8.12-16-pve was skipped since the kernel headers for this kernel are not installed.

So I downloaded proxmox-headers-6.8.12-1-pve_6.8.12-1_amd64.deb and ran dpkg -i proxmox-headers-6.8.12-1-pve_6.8.12-1_amd64.deb which ended with the message Setting up proxmox-headers-6.8.12-1-pve_6.8.12 and apparently no errors

But after that, rerunning dpkg -i r8168-dkms_8.051.02-2_all.deb still returns module build was skipped.

Also running modprobe -v r8168 still fails with module not found.

What am I doing wrong. I assume it's something with the pve header?

I've seen that the header should normally be dealt with using apt install pve-headers-$(uname -r) but I can't do that as I don't have a network connection. What's the console equivalent? Or is that not the issue.

fwiw I ran proxmox-boot-tool kernel list and got 6,8,12-16-pve and 6.8.12.4-pve
 
Last edited:
Progress.

After I restarted networking, the NIC showed up and I was able to ping 8.8.8.8 and load the webUI.

So that's a big yay.

However, when I reboot, the NIC goes back to UNCLAIMED.

modprobe r8169
systemctl restart networking

brings the card back up to working as normal.

perhaps I need to blacklist the r8168 driver?
 
Fixed it!

I removed the r8168 entry from pve-blacklist.conf that I just added (didn't make any difference)

When this node was in the newer MB, I had tried to use the blacklist r8169 procedure and installed the r8168 dkms. and as part of that install there was a created file in /etc/modprobe.d called r8168-dkms which has 2 pci aliases. I commented those out, saved and rebooted and everything came back up as expected.

That's 3 days of getting back to where I started from. But I did learn a lot so not terrible.