Bei der Open Source Firewall OPNsense hängt die Unterstützung der Hardware grundsätzlich von den Treibern, die über den FreeBSD Kernel mitgeliefert werden, ab. Es kann vorkommen dass es beim Hersteller neue Treiber gibt die es erst später im FreeBSD Kernel aufgenommen werden. Deshalb ist es bei Problemen möglich den Treiber manuell zu installieren. Dieser Artikel behandelt die Konsolenmeldung "HWRM_CFA_L2_SET_RX_MASK command returned RESOURCE_ALLOC_ERROR error", die beim Einsatz von Broadcom Netzwerkkarten unter OPNsense 25.4 (betrifft auch die Community Edition OPNsense 25.1) auftreten kann. Es wird gezeigt wie Sie den Treiber unter OPNsense Business Edition 25.4 (gilt auch für die Community Edition 25.1) aktualisieren, damit diese Konsolenmeldungen nicht mehr auftreten.

Diese Konsolenmeldung "HWRM_CFA_L2_SET_RX_MASK command returned RESOURCE_ALLOC_ERROR error" tritt beim Einsatz von Broadcom bnxt-Treiber-basierten Netzwerkkarten (also z.B. der Broadcom P225p) beim Einsatz der aktuellen OPNsense Versionen (Community Edition 25.1 und Business Edition 25.4) im Zusammenhang mit VLANs bzw. Link Aggregation auf.
Folgende Komponenten wurde im Laufe der Recherche verwendet um das Problem nachzustellen:
Dieses Problem kann aktuell durch manuelle Kompilierung des aktuellen Treibers gelöst werden, mit der zukünftigen Version OPNsense 25.7 fließen durch eine Aktualisierung des FreeBSD Kernels viele Verbesserungen am bnxt-Treiber ein.
Mit dem anstehenden Release von OPNsense 25.7 soll laut Roadmap der Entwickler auch der Kernel auf FreeBSD 14.3-RELEASE angehoben werden.[1] (opnsense.org) Dieser neue Kernel enthält viele Verbesserungen für bnxt-Treiber basierte Netzwerkkarten.[2] (freebsd.org)
root@OPNsense:~ # opnsense-version OPNsense 25.7.r1 (amd64)
root@OPNsense:~ # freebsd-version -k 14.3-RELEASE-p1
sysctl -a | grep -E 'dev.*.iflib.driver_version' -A 5 [...] dev.bnxt.0.iflib.driver_version: 230.0.133.0 dev.bnxt.0.%iommu: rid=0xc600 dev.bnxt.0.%parent: pci6 dev.bnxt.0.%pnpinfo: vendor=0x14e4 device=0x16d8 subvendor=0x15d9 subdevice=0x16d8 class=0x020000 dev.bnxt.0.%location: slot=0 function=0 dbsf=pci0:198:0:0 handle=\_SB_.S0D0.D0A6.D017 dev.bnxt.0.%driver: bnxt
Der Treiber wurde bisher noch nicht aktualisiert, eine manuelle Aktualisierung ist auch mit der zukünftigen Version OPNsense 25.7 erforderlich.
Eine konkrete Problemlösung zum jetzigen Zeitpunkt lässt sich über eine manuelle Kompilierung des bnxt-Treibers vornehmen.
Der nachfolgende Abschnitt beschreibt die manuelle Komplierung des bxnt-Treibers unter OPNsense Business Edition 25.4, gilt auch für OPNsense 25.1.
Aktivieren Sie bei der OPNsense Firewall SSH. Dies können Sie im Webinterface unter System --> Settings --> Administration vornehmen.
Die folgenden Schritte werden alle über eine SSH-Verbindung zur OPNsense Firewall vorgenommen:
pkg install git cd /usr/ git clone https://github.com/opnsense/src git checkout stable/25.1 (für Business Edition 25.4 passt dies ebenso) cd /root
Laden Sie den Treiber herunter und entpacken Sie ihn mit folgenden Kommandos:
curl -o FreeBSD_Drivers-233.0.174.0.zip https://docs.broadcom.com/docs-and-downloads/ethernet-network-adapters/NXE/BRCM_233.1.135.7/FreeBSD_Drivers-233.0.174.0.zip unzip FreeBSD_Drivers-233.0.174.0.zip cd FreeBSD_Drivers-233.0.174.0 tar xvfz freebsd-bnxt-233.0.174.0.tar.gz cd freebsd-bnxt-233.0.174.0/bnxt_en/
Mit den folgenden Befehlen wird dann der Treiber kompiliert und anstelle des durch den Kernel mitgelieferten Treibers gesetzt.
make cp if_bnxt.ko /boot/kernel/if_bnxt174.ko cd /boot/kernel mv if_bnxt.ko if_bnxt133.ko mv if_bnxt174.ko if_bnxt.ko reboot
Prüfen Sie nach dem erfolgten Neustart noch ob das aktuelle Modul verwendet wird.
sysctl -a | grep dev.bnxt.0.iflib.driver_version dev.bnxt.0.iflib.driver_version: 233.0.174.0
In diesem Fall hat das Update geklappt, die Treiberversion wurde nun von 233.0.133.0 auf 233.0.174.0 angehoben.
|
Autor: Thomas Niedermeier Thomas Niedermeier arbeitet im Product Management Team von Thomas-Krenn. Er absolvierte an der Hochschule Deggendorf sein Studium zum Bachelor Wirtschaftsinformatik. Seit 2013 ist Thomas bei Thomas-Krenn beschäftigt und kümmert sich unter anderem um OPNsense Firewalls, das Thomas-Krenn-Wiki und Firmware Sicherheitsupdates. |