Skip to content

Instantly share code, notes, and snippets.

What would you like to do?
compile realtek network driver for pfsense 2.4.x

How to compile and install latest realtek network driver in pfSense 2.4.x (FreeBSD 11.1)

  1. Download FreeBSD 11.1 VMDK and create a VM with it as HDD.

  2. Get FreeBSD source tree for your exact FreeBSD version and uncompress it to /usr/src:

    fetch -o /tmp`uname -s`/releases/`uname -m`/`uname -r | cut -d'-' -f1,2`/src.txz
    tar -C / -xvf /tmp/src.txz
  3. Download latest Realtek network driver (you need to input an email address).

  4. Uncompress driver:

    tar xvzf 0007-rtl_bsd_drv_v194.01.tgz
  5. Make driver:

    cd rtl_bsd_drv_v194.01
    1. If the last command fails, change the following line in file if_re.c

      From: #include <dev/re/if_rereg.h>

      To: #include "if_rereg.h"

  6. Copy the file if_re.ko to the /boot/kernel folder in pfSense device.

    scp if_re.ko root@<pfSense device IP>:/boot/kernel

  7. Change file permissions in if_re.ko file accessing through SSH to pfSense.

    chmod 555 /boot/kernel/if_re.ko

  8. Modify /boot/loader.conf.local file and add the following line at the end of the file: if_re_load="YES"

    • Through console: vi /boot/loader.conf.local
    • Through web: Diagnostics > Edit File and click Load. When finished editing click Save.
  9. Reboot pfSense.

  10. After restart, verify if module is installed through ssh with kldstat. Example execution:

    [2.4.2-RELEASE][root@pfSense.local]/root: kldstat
        Id Refs Address            Size     Name
         1    7 0xffffffff80200000 2c3ea98  kernel
         2    1 0xffffffff82e3f000 80900    if_re.ko
         3    1 0xffffffff83021000 46c6     cryptodev.ko

Based on:

Copy link

jddonovan commented Apr 12, 2021

This guide still works for pfsense 2.5.x. Note that I used Freebsd 12 to build the latest driver available from Realtek.

I didn't try dropping in the previous version built with Freebsd 11. No idea if that would work (when e.g. upgrading from pfsense 2.4.x to 2.5.x).

Copy link

riprip74 commented May 18, 2021

Thanks for the guide.
I did it on pfsense 2.5.1-RELEASE (amd64)built on Mon Apr 12 07:50:14 EDT 2021FreeBSD 12.2-STABLE
Of course, I used a freebsd 12.2 VM and 12.2 source files.
I edited the /boot/loader.conf instead of /boot/loader.conf.local which doesn't exist.
Everything is up and running with the new driver!

Copy link

jddonovan commented Sep 5, 2021

Just as a FYI, the driver is available as a pfsense package. Look for realtek-re-kmod. Might be behind Realtek source or freebsd-freshports though. Current pfsense package version is realtek-re-kmod-v196.04_2, freshports version is _3.

Copy link

jovimon commented Sep 6, 2021

Hello @jddonovan, thank you very much for your find!
I have not tested it, but for everyone else, you have to enter the shell (through SSH or Diagnostics > Command Prompt) and issue this command: pgk search realtek-re-kmod.
Then, issue this command pkg install realtek-re-kmod-<version> with the version number returned in the previous command.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment