pfsense: install correct realtek driver
Scope: #
I have pfsense installed on a pc with realtek NICs,
pfsense does not include the driver for those NICs,
Realtek NICs are unusable without the correct drivers.
Captain Hindsight says: #
"you should have bought an hardware with Intel NICs"
Problems encountered: #
My WAN interface disconnected when dealing with moderate/high traffic,
like a speedtest.
Solution: #
install the realtek drivers
UPDATES 2026-03-13 #
I've upgraded to a newer version and on pfsense 2.7.2 you can install the realtek drivers directly from cli:
pkg search Realtek
realtek-re-kmod-198.00_3 Kernel driver for Realtek PCIe Ethernet Controllers
pkg install realtek-re-kmod-198.00_3
Updating pfSense-core repository catalogue...
Fetching meta.conf: 0%
Fetching packagesite.pkg: 0%
pfSense-core repository is up to date.
Updating pfSense repository catalogue...
Fetching meta.conf: 0%
Fetching packagesite.pkg: 0%
pfSense repository is up to date.
All repositories are up to date.
The following 1 package(s) will be affected (of 0 checked):
Installed packages to be UPGRADED:
realtek-re-kmod: v196.04_3 -> 198.00_3 [pfSense]
Number of packages to be upgraded: 1
102 KiB to be downloaded.
Proceed with this action? [y/N]: y
[1/1] Fetching realtek-re-kmod-198.00_3.pkg: 100% 102 KiB 104.6kB/s 00:01
Checking integrity... done (0 conflicting)
[1/1] Upgrading realtek-re-kmod from v196.04_3 to 198.00_3...
[1/1] Extracting realtek-re-kmod-198.00_3: 100%
then reboot and all goes swimmingly
source:
- https://www.reddit.com/r/PFSENSE/comments/1f3ihl7/installation_guide_for_realtek_driver_install_for/
- https://blueprintcoders.com/download/realtek-driver-upgrade-instructions-for-pfsense-2-7-2/
Which version am I running?: #
to understand which version of freebsd you are running look at pfsense homepage under "System Information" --> "Version":
Version 2.6.0-RELEASE (amd64)
built on Mon Jan 31 19:57:53 UTC 2022
FreeBSD 12.3-STABLE
we are running "FreeBSD 12.3-STABLE"
Download the correct realtek driver: #
the download link for our version is:
http://pkg.freebsd.org/FreeBSD:12:amd64/release_3/All/realtek-re-kmod-v196.04_3.pkg
but how to retrieve it?
look at the link: "FreeBSD:12:amd64/release_3" means 12.3
"release 3" is our "3"
you can find the correct package version in the correct release repo following this:
- go in the main package download repo: https://pkg.freebsd.org
- select your arch/version: FreeBSD:12:amd64
(full link: https://pkg.freebsd.org/FreeBSD:12:amd64/) - select your specific release: release_3
(full link: https://pkg.freebsd.org/FreeBSD:12:amd64/release_3/) - since we cannot freely browse /All path, you'll need to download the packagesite.txz and look in the packagesite.yaml for our realtek package by searching "realtek",
or you can use this oneliner:
wget -q -O - https://pkg.freebsd.org/FreeBSD:12:amd64/release_3/packagesite.txz | tar --to-stdout -Jxf - packagesite.yaml | grep realtek | yq -r '.path'
that will output the package path, relative to your position:
"All/realtek-re-kmod-v196.04_3.pkg" - at this point you can combine the two paths:
"https://pkg.freebsd.org/FreeBSD:12:amd64/release_3/" + "All/realtek-re-kmod-v196.04_3.pkg" - finally the complete path: https://pkg.freebsd.org/FreeBSD:12:amd64/release_3/All/realtek-re-kmod-v196.04_3.pkg
Install the driver: #
install the package:
fetch -v http://pkg.freebsd.org/FreeBSD:12:amd64/release_3/All/realtek-re-kmod-v196.04_3.pkg
pkg install realtek-re-kmod-198.00_1.pkg
add the correct lines to load the module on boot,
I've added them to /boot/loader.conf but I've ween suggestions to add the lines to /boot/loader.conf.local
if_re_load="YES"
if_re_name="/boot/modules/if_re.ko"
and then reboot to be safe,
or manually load the module (see Bonus --> Manually load modules) /boot/modules/if_re.ko
Pfsense advanced config: #
in the past I had problems with Hardware Checksum Offload, so I've disabled it:
in PFsense go to: System/Advanced/Networking
and then check "Disable hardware checksum offload"
then reboot
after doing this my system was stable
Bonus: #
Check loaded modules: #
kldstat
and you have to see "if_re.ko":
Id Refs Address Size Name
4 1 0xffffffffxxxxxxxx xxxxxx if_re.ko
Manually load modules: #
kldload module_name.ko
List installed packages: #
pkg info
Remove package: #
pkg remove package_name_version