Beim Einsatz von Realtek NICs unter FreeBSD berichten manche Anwender von Stabilitätsproblemen. OPNsense bietet daher neben dem in FreeBSD enthaltenen re(4) Treiber zusätzlich einen weiteren Treiber von Realtek an (Vendor Driver[1]). In diesem Wiki Artikel zeigen wir, wie Sie den Vendor Driver durch die Installation des os-realtek-re Plugins einspielen. Informationen zu Treibern für andere Netzwerkkarten finden Sie im Artikel OPNsense Netzwerkkarten-Treiber.
In diesem Beispiel wird ein LESv3 (V2.0) verwendet. Dieser LES hat zwei Realtek RTL8119I 1Gbit/s Netzwerkports. Das Vorgängermodell LESv3 (V1.0) hatte Intel i211 Netzwerkports (der i211 ist jedoch seit 2022 EOL, daher enthalten neue Versionen des LESv3 die beiden Realtek RTL8119I Netzwerkports).
Der Realtek Vendor Driver wurde mit dem Release von OPNsense 17.1.2 im Februar 2017 in OPNsense integriert.[2]
Mit OPNsense 22.1 ist in der Standardinstallation wieder der Treiber, welcher in FreeBSD direkt enthalten ist, installiert. Der Vendor Driver[1] kann über das Plugin os-realtek-re installiert werden.[3]
Bei der Plugin-Installation wird folgende Ausgabe angezeigt:
***GOT REQUEST TO INSTALL*** Currently running OPNsense 22.1.10 (amd64/OpenSSL) at Thu Jul 7 14:08:44 UTC 2022 Updating OPNsense repository catalogue... OPNsense repository is up to date. All repositories are up to date. The following 2 package(s) will be affected (of 0 checked): New packages to be INSTALLED: os-realtek-re: 1.0 realtek-re-kmod: 196.04 Number of packages to be installed: 2 The process will require 1 MiB more space. 101 KiB to be downloaded. [1/2] Fetching os-realtek-re-1.0.pkg: . done [2/2] Fetching realtek-re-kmod-196.04.pkg: .......... done Checking integrity... done (0 conflicting) [1/2] Installing realtek-re-kmod-196.04... [1/2] Extracting realtek-re-kmod-196.04: .... done [2/2] Installing os-realtek-re-1.0... [2/2] Extracting os-realtek-re-1.0: .. done Reloading firmware configuration Writing firmware setting...done. Writing trust files...done. Configuring login behaviour...done. Configuring system logging...done. ===== Message from realtek-re-kmod-196.04: -- 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" Checking integrity... done (0 conflicting) Nothing to do. ***DONE***
Die Einträge in /boot/loader.conf werden automatisch vorgenommen:
root@OPNsense:~ # grep if_re /boot/loader.conf if_re_load="YES" if_re_name="/boot/modules/if_re.ko" root@OPNsense:~ #
Anschließend muss das System neu gestartet werden.
Vor der Installation des Vendor Drivers sind folgende Einträge in sysctl zu finden:
root@OPNsense:~ # sysctl -a | grep -E 'dev.(re)' dev.re.1.wake: 0 dev.re.1.int_rx_mod: 65 dev.re.1.stats: -1 dev.re.1.%parent: pci3 dev.re.1.%pnpinfo: vendor=0x10ec device=0x8168 subvendor=0x10ec subdevice=0x0123 class=0x020000 dev.re.1.%location: slot=0 function=0 dbsf=pci0:4:0:0 handle=\_SB_.PCI0.RP04.PXSX dev.re.1.%driver: re dev.re.1.%desc: RealTek 8168/8111 B/C/CP/D/DP/E/F/G PCIe Gigabit Ethernet dev.re.0.wake: 0 dev.re.0.int_rx_mod: 65 dev.re.0.stats: -1 dev.re.0.%parent: pci2 dev.re.0.%pnpinfo: vendor=0x10ec device=0x8168 subvendor=0x10ec subdevice=0x0123 class=0x020000 dev.re.0.%location: slot=0 function=0 dbsf=pci0:3:0:0 handle=\_SB_.PCI0.RP03.PXSX dev.re.0.%driver: re dev.re.0.%desc: RealTek 8168/8111 B/C/CP/D/DP/E/F/G PCIe Gigabit Ethernet
Nach der Installation des Vendor Drivers und einem anschlißendem Reboot steht in der %desc Variable von sysctl nun jeweils Realtek PCIe GbE Family Controller:
root@OPNsense:~ # sysctl -a | grep -E 'dev.(re)' dev.re.1.wake: 0 dev.re.1.%parent: pci3 dev.re.1.%pnpinfo: vendor=0x10ec device=0x8168 subvendor=0x10ec subdevice=0x0123 class=0x020000 dev.re.1.%location: slot=0 function=0 dbsf=pci0:4:0:0 handle=\_SB_.PCI0.RP04.PXSX dev.re.1.%driver: re dev.re.1.%desc: Realtek PCIe GbE Family Controller dev.re.0.wake: 0 dev.re.0.%parent: pci2 dev.re.0.%pnpinfo: vendor=0x10ec device=0x8168 subvendor=0x10ec subdevice=0x0123 class=0x020000 dev.re.0.%location: slot=0 function=0 dbsf=pci0:3:0:0 handle=\_SB_.PCI0.RP03.PXSX dev.re.0.%driver: re dev.re.0.%desc: Realtek PCIe GbE Family Controller dev.re.%parent:
Autor: Werner Fischer Werner Fischer arbeitet im Product Management Team von Thomas-Krenn. Er evaluiert dabei neueste Technologien und teilt sein Wissen in Fachartikeln, bei Konferenzen und im Thomas-Krenn Wiki. Bereits 2005 - ein Jahr nach seinem Abschluss des Studiums zu Computer- und Mediensicherheit an der FH Hagenberg - heuerte er beim bayerischen Server-Hersteller an. Als Öffi-Fan nutzt er gerne Bus & Bahn und genießt seinen morgendlichen Spaziergang ins Büro.
|