Apparently, there's no need anymore to bother and maually compile network interface drivers for your pfSense router which happens to have Network Interface Chips by Realtek.
If you haven't updated yet to the latest
pfSense 2.5.0 stable version, please do so . In fact, the drivers are now officially included in a package of FreeBSD which is the operating system that pfSense is built on.
From my experience while running my own Homelab and still being involved in the Reddit community for many years on that particular topic.
People have always suffered from Realtek Network Interface Chips because of the poor kernel driver support provided by default on the FreeBSD operating system. Thus, everyone was facing stability issues, and at worst it's leading the ethernet link to be completely out of commission, it's basically unreal.
Alright, so the FreeBSD distribution maintainers now provide that solution by default on the system, that's making it much more convenient for users to install a simple package including the compiled drivers, and we can now count them responsible for updates, maintainance and combatibility.
FreeBSD Realtek Network Driver Stability Issueus
Indeed, the default Realtek Network Drivers that are provided by default on the FreeBSD kernel space is a living hell that's causing all sorts of issues! Let me state the some points showing how broken they are:
- When the ethernet link is under load, it doesn’t respond to the software watchdog in time, and thus it resets with a timeout.
- Ethernet interfaces go down and up in a sudden for no reason.
- You cannot get maximum speed out of the Gigibit link bus.
- Realtek Network Chips by default are difinitely unusable on pfSense.
That's it! Feel free to contribute more in the comment section. Basically, in this tutorial we're going to shift the driver all the way from Kernel Space to be replaced with an User Space module.
Install Official Realtek Network Interface Driver
Here we go, navigate to the command line of any client on the network, please make sure that you know the IP address of the target pfSense router device which is
172.16.1.1 in my case.
If you do not have any client that can run command line shell, you can use Putty SSH Client for Windows instead.
Now, we need to SSH into the FreeBSD operating system that's running pfSense, here's how.
Just enter the password that you use for pfSense web control panel, when authenticated successfully make sure to input number
8 into the dialog so that we can access the shell.
We can now tell the package manager on FreeBSD to install the package for us.
pkg install realtek-re-kmod
Just in case, when it asks for confirmation just input
y for "yes" and be done with it.
Well, I am going to recommend using the web control panel of pfSense instead of the command line for this one, just because it's much easier to use the text editor on gui than command line.
From the browser address bar, navigate to
220.127.116.11 which is serving the web control panel for pfSense in my case.
Okay, now just login and from the menu above navigate to
Diagnostics > Edit File and enter
/boot/loader.conf.local as the path for the file and then click on "Load" so that we can work on it.
There should be a square dialog below we're going to tell pfSense to use the newly installed drivers instead, make sure to input the following:
The final step to finish the configuration process is through clicking on that "Save" button. Now, reboot your pfSense router device which can be done from the menu
Diagnostics > Reboot > Submit or the physical hardware button if you prefer.
After reboot, verify if module is installed through SSH again with the "kldstat" command as shown below.
Id Refs Address Size Name 1 10 0xffffffff80200000 3aea538 kernel 2 1 0xffffffff83cec000 11e230 if_re.ko 3 1 0xffffffff84111000 1000 cpuctl.ko 4 1 0xffffffff84112000 8cd0 aesni.ko 5 1 0xffffffff8411b000 b28 coretemp.ko
Simply, if you can find
if_re.ko in the output, it means the newly released Realtek Network Drivers for FreeBSD are properly installed and working as intended.