Steuerung des Software Defined Switch der FWA-1012VC-4CA1S per Software unter FreeBSD
Bei dem FWA-1012VC-4CA1S besteht die Möglichkeit softwareseitig den Software Defined Switch (auf der Rückseite des Gerätes) zu steuern.
Damit können Betriebszustände, Dienste und auch eventuell Alarmierungen zusätzlich getriggert werden.
In diesem Artikel zeigen wir, wie Sie diesen Switch unter OPNsense/FreeBSD ansteuern.

Setup des Systems
Folgende Komponenten wurden für den Testaufbau verwendet:
- FWA-1012VC-4CA1S
- OPNsense 24.7.10_2 FreeBSD 14.1-RELEASE-p6 stable/24.7 SMP amd64
devd stoppen
Den Dev Daemon vorübergehend stoppen.
service devd stop

devd im Debug Modus starten
Nun wird der devd Deamon im Debug Modus gestartet.
devd -d -n
ACPI Event erkennen
Jetzt den Button drücken, wird via ACPI Event erkannt, hieraus kann dann das event codeseitig gebaut werden:

Eventsteuerung einrichten
Jetzt wird die Eventsteuerung eingerichtet. Erstellen Sie die Datei /etc/devd/sd-button.conf mit einem Editor Ihrer Wahl:
notify 10 {
match "system" "ACPI";
match "subsystem" "Button";
match "type" "\\_SB_.SLPB";
action "/usr/local/bin/sd-button.sh";
};
Hinweis: Bitte beachten Sie, dass der Backslash (\) in der Regel doppelt geschrieben werden muss (\\), um ihn hier korrekt zu escapen.
Aktion festlegen
Jetzt wird die Aktion festgelegt. Erstellen Sie dazu die Datei /usr/local/bin/sd-button.sh:
#!/bin/sh echo "SD Switch pressed!" /sbin/shutdown -p now
Datei ausführbar machen:
chmod +x /usr/local/bin/sd-button.sh
devd wieder restarten
Nachdem das Event eingepflegt wurde muss der devd wieder gestartet werden:
$ service devd restart
Testen des Buttons
Wenn der Button gedrückt wird, kann bereits jetzt das ACPI Event verarbeitet werden. In diesem Fall: Shutdown des Systems.
* Über den oben abgebildeten Code können jetzt beliebige Aktionen bei Drücken des Buttons gefahren werden.
|
Autor: Wilfried Seifert Wilfried Seifert, tätig in der Abteilung Systems Engineering bei Thomas-Krenn, ist in seinem Arbeitsbereich für die System-/Prototypenentwicklung sowie Softwaredeployment / Rollout zuständig. LPIC 3 zertifiziert, beschäftigt sich u.a. mit Aufbau / Programmierung Embedded Systemen.
|

