Zum Inhalt

Kernel Follower

os-kernelfollow · System

Baut ein FreeBSD-Kernelmodul von außerhalb des Quellbaums vor dem Neustart für den Kernel neu, den ein OPNsense-Update installiert, damit ein Treiber von außerhalb des OPNsense-Repositorys beim nächsten Start da ist.

Im Menü

  • Mit installiertem os-xgs-npu: XGS: Kernel Follower
  • Ohne os-xgs-npu: System: Kernel Follower
Kernel Follower in der Weboberfläche
Seine Seite in der Weboberfläche, auf Englisch.

Es liest den Kernel, den der nächste Start verwenden wird - einen Kernelsatz, den ein Update bereitgestellt hat, oder /boot/kernel -, aus der Binärdatei, ohne ihn zu booten, und vergleicht ihn mit dem Stempel neben jedem bei ihm registrierten Modul. Ein Modul, das nicht passt, wird für diesen Kernel aus seinen Quellen neu gebaut: aus einem Archiv auf der Maschine oder aus github.com/opnsense/src beim Commit, den der Kernel nennt.

Es läuft aus dem Upgrade-Hook, aus dem Stop-Hook jedes geordneten Neustarts - der den Neustart bis zum Ende des Baus aufhält, höchstens zehn Minuten - und alle fünf Minuten aus Cron. Kann ein Modul, das das Netzwerk braucht, nicht neu gebaut werden, wird der nächste Start einmalig auf /boot/kernel.old gelenkt, zu dem das installierte Modul passt; das wird aufgehoben, sobald das Modul neu gebaut ist.

Ein Plugin registriert sein Modul mit einer Datei in /usr/local/etc/kernelfollow.d/. Auf einer Sophos XGS mit os-xgs-npu folgt os-xgs-npu seinen eigenen zwei Modulen, octep.ko und npuep.ko, mit seinem eigenen Follower: Dieses Plugin überlässt sie ihm und zeigt sie nur an, berührt nextboot nur, um einen selbst gesetzten Rückfall aufzuheben, und überlässt die alten Kernelquellen os-xgs-npu zum Entfernen.

Funktionen

  • Kernel des nächsten Starts gelesen

    Aus der Binärdatei eines bereitgestellten Kernelsatzes oder von /boot/kernel, ohne ihn zu booten, und mit dem Stempel jedes Moduls verglichen.

  • Sauberer Neubau

    Von Grund auf in einem geleerten Verzeichnis gebaut, geprüft, dass jede Quelle mit den Maschinen-Headern dieses Kernels übersetzt wurde, unter einem temporären Namen installiert und an seinen Platz verschoben; der vorige Bau bleibt als .prev mit eigenem Stempel.

  • Läuft, wenn es darauf ankommt

    Der Upgrade-Hook, der Stop-Hook jedes geordneten Neustarts (höchstens zehn Minuten) und Cron alle fünf Minuten. Ist nichts registriert, ist jeder Lauf ein Verzeichnislisting.

  • Rückfall für das Netzwerk

    Ein mit CRITICAL=yes markiertes Modul, das nicht neu gebaut werden kann, lenkt den nächsten Start einmalig mit nextboot -k auf /boot/kernel.old; der Lauf, der es neu baut, hebt das auf.

  • Alte Quellen entfernt

    Die Quellen nicht mehr laufender Kernel werden entfernt, sobald der neue Kernel einen Tag gelaufen ist (eine Einstellung) und jedes Modul zu ihm passt und geladen ist.

  • Check und Follow now

    Die Seite zeigt den laufenden Kernel und den des nächsten Starts, jedes Modul im Vergleich dazu, die Quellen auf der Platte und den letzten Lauf; Check sagt, was ein Lauf tun würde, Follow now führt ihn aus.

Installieren und aktualisieren

Ab dem Release von os-xgs-npu nach 0.1.0-alpha.7.1 steht es in XGS: Updates im Reiter Plugins – eine installierte Kopie wird dort von Hand aktualisiert, eine fehlende dort installiert –, und die fertigen Images aus diesem Release enthalten es; bis dahin wird es wie unten beschrieben installiert und aktualisiert. Der Cron-Eintrag des Plugins führt alle fünf Minuten den Follower aus, nie das Update. Installiert wird es auf einer XGS-Appliance und auf jedem anderen OPNsense als root: aus einem Checkout des Repositorys mit sh install/install.sh, das die Seite mit os-xgs-npu unter XGS und ohne es unter System einordnet und bei erneutem Lauf die Einstellungen behält - Archive von Kernelquellen in kernel-sources/ neben dem Checkout lassen eine Maschine ohne Internet bauen; oder aus dem Paket des Releases, os-kernelfollow-1.0.0.pkg, geprüft gegen SHA256SUMS und mit pkg hinzugefügt. Eine so installierte Kopie wird über ihr eigenes self-update.py aktualisiert. Es ist nicht im Plugin-Repository von OPNsense.

Grenzen, und was noch nicht getestet ist

  • Ein echtes Kernel-Update: ein bereitgestellter Kernelsatz, das Holen der Quellen über das Netzwerk, die Upgrade- und Stop-Hooks.
  • nextboot selbst und das Entfernen alter Quellen.
  • Das Paket, gebaut von tools/make-package.sh und mit pkg hinzugefügt.
  • Eine Installation auf OPNsense ohne os-xgs-npu.
  • Ein Update über den Reiter Plugins oder self-update.py: 1.0.0 ist das erste Release, also war noch keines einer installierten Kopie voraus.

Repository

Erste Veröffentlichung: 2026-10-25

os-kernelfollow Releases