Updated Realtek NIC drivers missing in PfSense 2.6.0
-
In poking around, I think it is one of your posts, the line about loading the module not necessary? It is automatically, or by default, found anyway?
I did the delete command.
Booted.
Everything gone.
Tried your simple command for pkg install. It wants to install 1.97.
Did the longer command line, had to tell it to ignore the OS, and it installed.I swear earlier I left the "12" in the command line, did not change it to "14" because when trying 14 nothing was found.
Now 12 doesn't work, need 14 but get the OSVersion ?
-
If you just use the driver in our repo you can just 'pkg install' it directly. Currently that's 1.97:
[2.7.0-DEVELOPMENT][admin@cedev.stevew.lan]/root: pkg search realtek realtek-re-kmod-197.00 Kernel driver for Realtek PCIe Ethernet Controllers
You still have to add the loader lines, installing the pkg doesn't do that for you.
Steve
-
1.98 loaded but not being loaded at boot. I’m still using the built in Realtek driver.
re0: <RealTek 8168/8111 B/C/CP/D/DP/E/F/G PCIe Gigabit Ethernet> port 0xe000-0xe0ff mem 0xf7b00000-0xf7b00fff,0xf0000000-0xf0003fff at device 0.0 on pci8
re0: Using 1 MSI-X message
re0: turning off MSI enable bit.
re0: ASPM disabled
re0: Chip rev. 0x4c000000
re0: MAC rev. 0x00000000
miibus0: <MII bus> on re0
rgephy0: <RTL8251/8153 1000BASE-T media interface> PHY 1 on miibus0
rgephy0: none, 10baseT, 10baseT-FDX, 10baseT-FDX-flow, 100baseTX, 100baseTX-FDX, 100baseTX-FDX-flow, 1000baseT-FDX, 1000baseT-FDX-master, 1000baseT-FDX-flow, 1000baseT-FDX-flow-master, auto, auto-flow
re0: Using defaults for TSO: 65518/35/2048
re0: Ethernet address: 64:00:6a:14:be:16
re0: netmap queues/slots: TX 1/256, RX 1/256 -
I deleted 1.98 or 198.00. Installed 1.97 with the simple command line install. It WORKED! Geez. Been hammering 1.98 for a couple of days.
1.98 or 198.00 not ready to install in 2.7?
re0: <Realtek PCIe GbE Family Controller> port 0xe000-0xe0ff mem 0xf7b00000-0xf7b00fff,0xf0000000-0xf0003fff at device 0.0 on pci8
re0: Using Memory Mapping!
re0: Using 1 MSI-X message
re0: ASPM disabled
re0: version:1.97.00
re0: Ethernet address: 64:00:6a:14:be:16
This product is covered by one or more of the following patents:
US6,570,884, US6,115,776, and US6,327,625.
re0: Ethernet address: 64:00:6a:14:be:16 -
If you use any pkg from outside our repo, especially something like a driver, then it must be from an equivalent FreeBSD version. I suspect you were trying to load the module from FreeBSD 12 into pfSense 2.7 which is based on FreeBSD 14.
-
I used the FreeBSD:14 command line.
pkg add https://pkg.freebsd.org/FreeBSD:14:amd64/latest/All/realtek-re-kmod-198.00.pkg
And the information here regarding 1.98 and FreeBSD 14.
https://www.freshports.org/net/realtek-re-kmod/
-
Well like I say drivers are especially required to match the kernel you're trying to load them into.
If you tried to manually load the kernel module I imagine the error would have been a kjernel mismatch.
Just use the pkg from our repo. -
Thanks for your help. Obviously I don’t understand all the lingo but as I read the information on Freshports the 1.98 driver requires the newest port of FreeBSD?
I’m not sure what this means:
“To install the port: cd /usr/ports/net/realtek-re-kmod/ && make install clean”
Nor am I sure where I’d even run that. SSH?
-
There are no build tools in pfSense so you would need to build that in FreeBSD and then move the module or pkg. And that would be at the command line.
The 1.98 driver could be built against any FreeBSD version (within reason) but unless it has some particular update you need that 1.97 doesn't have I wouldn't bother. Except as an exercise perhaps.Steve
-
Thanks again. Now to try the Realtek 2.5gb cards again. Won’t have the space to do so until possibly tomorrow afternoon or Saturday.
Looked a little at the port thing. NOT going there.
A little confusing as to how some folks have 1.98 installed and working.
-
They are doing so in pfSense 2.6 for the most part. Let us know how the test goes.
-
@stephenw10 Sorta figured that but wasn't 100% sure. Which makes sense in a way with the wrong os warning. But I'm accessing the FreeBSD 14 folder. So that part is confusing. If the FreeBSD 12 folder? Okay, I'm trying to install the wrong build/port version. Maybe its not the FreeBSD 14 version in the folder and someone needs to address it? There are several flavors of 1.98 and maybe its not the "right" flavor?
Some dots are not connecting but not likely they're going to and I'm going to watch and wait because my guess is at some point 1.98 is going to work and install.
There's another piece to this Realtek 2.5gb attempt and thats main board architecture. The single port Intel i-225's, having seen any stand alone i-226's yet, are the smaller pci-e slot based cards. Used to be what I'd call pci-e "riser" slots. The dual i-225's are the longer pci-e slot like for video cards but not the longest PCI-e video card slot. Usually white where the very longest go back to black color.
Usually mother boards have just a few slots whether using a NIC or some other card. The real estate limits the options.
Unlike the Intel ones, the Realtek dual cards use the shortest pci-e slot architecture. IF they will work, opens up a few options for anyone with an older PC laying around that could be a PFSense router, has limited pci-e slots, and they need at least two 2.5gb ports. The need is increasing as more ISP's crank speeds up closer to 2gbs instead of 1.
I decided to use this older dell, it was free, because it has quite a few pci-e slots.
Won't be a big deal across the board but for some it'll matter and make their lives easier.
Since I'm already long winded here, I appreciate the work done to be able to have end users add the necessary drivers. Would not be a reasonable expectation on PFSense developers to make everything work out of the box. The way its worked out for the Realtek driver install is a very satisfactory middle ground.
-
The dual port 2.5gbe PCI-e card works great. Will gather a little more information and then do a separate post. My ISP depending on the day/time is 1.2gb or more. Even with other clients hanging on the PFSense box, using the Internet, another client connected to the second port of the NIC, I'm getting 1300-1400 on client connected through the Realtek.
That's pretty dang good.
Also do not have anything disabled in System Advanced Network. Its running with hardware checksum offload, Hardware TCP Segmentation Offloading and Hardware Large Receive Offloading all Enabled. The Intel cards never had any issues with those being enabled. Disabled to make sure the Realtek card would work. Re-enabled and they are fine.
The only frustrating thing is the way PFSense keeps track of the NIC's and the name/number and not the MAC. Pull or add a card, numbering scheme updates, assignments are goofed like for the bridge.
Would be nice if there was a way to keep those cards assigned by MAC and they'd stay in their lane even if a card is pulled or added. Not a deal breaker, just something have to anticipate but still....
re0: <Realtek PCIe 2.5GbE Family Controller>
re0: Using Memory Mapping!
re0: Using 1 MSI-X message
re0: version:1.97.00re1: <Realtek PCIe 2.5GbE Family Controller>
re1: Using Memory Mapping!
re1: Using 1 MSI-X message
re1: version:1.97.00 -
Currently the only thing you can do to keep the in the same order is to use PCI device wiring. However there is no scope for that within pfSense so reinstalling etc would lose anything you set.
There are a few open feature requests for interface numbering tracked by MAC but it's a non-trivial change.Steve
-
@stephenw10 It appears I can see some version reporting behavior from 23.01RC that @JimBob-Indiana also reported. The OS Boot logs don't seem to report driver version number for Realtek adapters after installing the realtek-re-kmod-198.00.pkg from https://pkg.freebsd.org/FreeBSD:14:amd64/latest/All/realtek-re-kmod-198.00.pkg
I proceeded to upload that realtek-re-kmod-198.00.pkg file to /tmp, and install it with the command pkg install -f -y /tmp/realtek-re-kmod-198.00.pkg
The /boot/loader.conf.local file remained intact with the correct entries.
Now the Status > System > Logs > System > OS Boot logs don't show any version numbers associated with re0 and re1. Not the built in driver of 197 (which did previously show in the OS Boot log), nor the newly installed 198 driver...
However...the system appears to work just fine.
Is there now a different command that would reveal the installed and executing driver version?
-
Try loading the realtek module manually from the command line, make sure it loads. It may be the kernel is mismatched sufficiently that the module refuses to load. It should report the version still AFAIK.
Is there something in 1.98 that you need? -
Yeah it won't load in 23.01-RC:
[23.01-RC][admin@6100.stevew.lan]/root: pkg add realtek-re-kmod-198.00.pkg Installing realtek-re-kmod-198.00... Newer FreeBSD version for package realtek-re-kmod: To ignore this error set IGNORE_OSVERSION=yes - package: 1400078 - running kernel: 1400073 Ignore the mismatch and continue? [y/N]: y Extracting realtek-re-kmod-198.00: 100% ===== Message from realtek-re-kmod-198.00: -- Add the following lines to your /boot/loader.conf to override the built-in FreeBSD re(4) driver. if_re_load="YES" if_re_name="/boot/modules/if_re.ko" By default, the size of allocated mbufs is enough to receive the largest Ethernet frame supported by the card. If your memory is highly fragmented, trying to allocate contiguous pages (more than 4096 bytes) may result in driver hangs. For this reason the value is tunable at boot time, e.g. if you don't need Jumbo frames you can lower the memory requirements and avoid this issue with: hw.re.max_rx_mbuf_sz="2048" [23.01-RC][admin@6100.stevew.lan]/root: kldload /boot/modules/if_re.ko kldload: an error occurred while loading module /boot/modules/if_re.ko. Please check dmesg(8) for more details.
Because of the kernel version mismatch:
Feb 5 14:11:34 kernel KLD if_re.ko: depends on kernel - not available or version mismatch Feb 5 14:11:34 kernel linker_load_file: /boot/modules/if_re.ko - unsupported file type
-
@stephenw10 unfortunately, I could not find any errata comparing 197 to 198, to know "officially" IF there was something updated that would be of value. So admittedly there is some (perhaps unfounded) trust that newer is better as it relates to Realtek ethernet driver adapters
I'm inferring you think that I should uninstall the 198 package? Would a package uninstall command in this instance be
pkg delete realtek-re-kmod-198.00.pkg
...and if I do that, should I reissue the command
pkg install realtek-re-kmod
...to bring the 197 "built in" driver back? OR...is there a better way to reinitialize the original "built in" 197 realtek driver package with ver 23.01RC?
-
You can just use:
[23.01-RC][admin@6100.stevew.lan]/root: pkg remove realtek-re-kmod Updating database digests format: 100% Checking integrity... done (0 conflicting) Deinstallation has been requested for the following 1 packages (of 0 packages in the universe): Installed packages to be REMOVED: realtek-re-kmod: 198.00 Number of packages to be removed: 1 Proceed with deinstalling packages? [y/N]: y [1/1] Deinstalling realtek-re-kmod-198.00... [1/1] Deleting files for realtek-re-kmod-198.00: 100%
Then install the 1.97 pkg again.
-
Since Realtek don't seem to publish a change log we can't easily see what they added there. We'd have to just compare the source directly. But we can see the additional fixes in the kmod:
https://github.com/alexdupre/rtl_bsd_drv/commits/v1.98/if_re.c