fix: migrate UNVR init logic

Let's keep ulcmd for the pro only, and move LED stuff elsewhere.
This commit is contained in:
Chris Blake 2024-06-18 19:26:12 -05:00
parent 24d98456e6
commit 6f01afd72b
5 changed files with 26 additions and 29 deletions

View file

@ -1,5 +1,5 @@
[Unit] [Unit]
Description=Unifi LED/ULCMD contoller Description=Unifi ULCMD contoller
Requires=ubnt-init.service Requires=ubnt-init.service
Requires=mock-ubnt-api.service Requires=mock-ubnt-api.service

View file

@ -11,10 +11,18 @@ case "$1" in
# Setup bluetooth hci0 device # Setup bluetooth hci0 device
/usr/lib/init/boot/ubnt-bt.sh hci0 /usr/lib/init/boot/ubnt-bt.sh hci0
# If UNVR, turn on LED
if [ -f "/sys/class/leds/ulogo_ctrl/pattern" ]; then
# Set boot LED to blue
# 2=white, 1=blue, 0=off, needs a value set with :x for ms
echo 1:500 > /sys/class/leds/ulogo_ctrl/pattern
fi
;; ;;
stop) stop)
# Tear down BT # Tear down BT
hciconfig hci0 down hciconfig hci0 down
# LED shutdown on UNVR4 is done via systemd/system-shutdown/unifi-shutdown
;; ;;
*) *)
echo "Invalid command $1" echo "Invalid command $1"

View file

@ -1,29 +1,16 @@
#!/bin/bash #!/bin/bash
# ULCMD wrapper, used to start ulcmd on the UNVR Pro, or setup the status LED on the UNVR-4 # ULCMD wrapper, used to start ulcmd on the UNVR Pro
case "$(ubnteeprom -systeminfo -key shortname)" in # Ensure our tmp file with info is generated for our patched ulcmd
"UNVRPRO") ubnteeprom -systeminfo > /tmp/.ubnthal_system_info
# Ensure our tmp file with info is generated
ubnteeprom -systeminfo > /tmp/.ubnthal_system_info # Is ulcmd running already? if so, assume it was not done via systemd so let's
# Is ulcmd running already? if so, assume it was not done via systemd so let's # kill and respawn as this is our systemd entry script for the service, and we
# kill and respawn as this is our systemd entry script for the service, and we # need to have it foregrounded as we act as the "daemon" here.
# need to have it foregrounded as we act as the "daemon" here. if pidof -q ulcmd; then
if pidof -q ulcmd; then killall ulcmd
killall ulcmd fi
fi
# Restart ulcmd # Start ulcmd
exec ulcmd exec ulcmd
;;
"UNVR4")
# 2=white, 1=blue, 0=off, needs a value set with :x for ms
echo 1:500 > /sys/class/leds/ulogo_ctrl/pattern
# Start our "daemon" loop so systemd stays happy
while true; do
sleep 3600
done
;;
*)
exit 1
;;
esac

View file

@ -21,11 +21,11 @@ apt-mark hold linux-image-* # We do not want these, as we run our own kernel!
# Setup our services # Setup our services
systemctl enable ubnt-init systemctl enable ubnt-init
systemctl enable unvr-fan-daemon systemctl enable unvr-fan-daemon
systemctl enable ulcmd # This runs ubnt-ulcmd.sh!
# Do we have ulcmd? if so, we are UNVRPRO so enable ulcmd services # Do we have ulcmd? if so, we are UNVRPRO so enable ulcmd services
if [ -f "/usr/bin/ulcmd" ]; then if [ -f "/usr/bin/ulcmd" ]; then
systemctl enable mock-ubnt-api systemctl enable mock-ubnt-api
systemctl enable ulcmd
systemctl enable ulcmd-reboot-hook systemctl enable ulcmd-reboot-hook
systemctl enable ulcmd-shutdown-hook systemctl enable ulcmd-shutdown-hook
fi fi

View file

@ -63,12 +63,14 @@ else
# Remove UNVRPRO specific files/services # Remove UNVRPRO specific files/services
rm "${build_path}/rootfs/etc/ld.so.conf.d/ubnt.conf" \ rm "${build_path}/rootfs/etc/ld.so.conf.d/ubnt.conf" \
"${build_path}/rootfs/etc/systemd/system/mock-ubnt-api.service" \ "${build_path}/rootfs/etc/systemd/system/mock-ubnt-api.service" \
"${build_path}/rootfs/etc/systemd/system/ulcmd.service" \
"${build_path}/rootfs/etc/systemd/system/ulcmd-reboot-hook.service" \ "${build_path}/rootfs/etc/systemd/system/ulcmd-reboot-hook.service" \
"${build_path}/rootfs/etc/systemd/system/ulcmd-shutdown-hook.service" \ "${build_path}/rootfs/etc/systemd/system/ulcmd-shutdown-hook.service" \
"${build_path}/rootfs/usr/bin/mock-ubnt-api" \ "${build_path}/rootfs/usr/bin/mock-ubnt-api" \
"${build_path}/rootfs/usr/bin/ubnt-systool" \ "${build_path}/rootfs/usr/bin/ubnt-systool" \
"${build_path}/rootfs/usr/bin/ubnt-tools" \ "${build_path}/rootfs/usr/bin/ubnt-tools" \
"${build_path}/rootfs/usr/bin/ustorage" "${build_path}/rootfs/usr/bin/ustorage" \
"${build_path}/rootfs/usr/lib/init/boot/ubnt-ulcmd.sh"
fi fi
# Copy over bluetooth firmware files # Copy over bluetooth firmware files