feat(deltacast): install 99-wild-dragon-deltacast.rules to create 8 /dev/deltacast symlinks

This commit is contained in:
Zac Gaetano 2026-06-01 13:34:07 -04:00
parent 8f33cbfa86
commit 323d482eab

View file

@ -192,6 +192,7 @@ install_aja() {
install_deltacast() {
if lsmod 2>/dev/null | grep -q 'videomaster' || ls /dev/deltacast* >/dev/null 2>&1; then
log "Deltacast module loaded / device present — already installed"
install_deltacast_udev_rule
return 0
fi
@ -234,11 +235,38 @@ install_deltacast() {
if lsmod 2>/dev/null | grep -q 'videomaster' || ls /dev/deltacast* >/dev/null 2>&1; then
log "Deltacast VideoMaster installed"
fi
# Install our own udev rule that creates 8 /dev/deltacast symlinks (ports 0-7)
# pointing at the single real device node. Kept separate from the SDK's own
# rule so a driver reinstall won't clobber it.
install_deltacast_udev_rule
# First-time VideoMaster installs lay down udev rules + firmware that need a reboot.
warn "Deltacast: a REBOOT is recommended after a first-time VideoMaster install (udev + firmware)"
REBOOT_REQUIRED=1
}
# Copy the repo's 99-wild-dragon-deltacast.rules into /etc/udev/rules.d/ and
# reload. Idempotent. Creates /dev/deltacast0..7 -> /dev/delta-x3700 so the
# node-agent advertises all 8 RX channels.
install_deltacast_udev_rule() {
local rule_src="$REPO_DIR/deploy/udev/99-wild-dragon-deltacast.rules"
local rule_dst="/etc/udev/rules.d/99-wild-dragon-deltacast.rules"
if [ ! -f "$rule_src" ]; then
warn "Deltacast: udev rule $rule_src not found in repo — skipping symlink rule install"
return 0
fi
if [ -f "$rule_dst" ] && cmp -s "$rule_src" "$rule_dst"; then
log "Deltacast: udev rule already up to date at $rule_dst"
else
log "installing Deltacast udev rule -> $rule_dst"
install -D -m 0644 "$rule_src" "$rule_dst" 2>/dev/null \
|| { warn "Deltacast: failed to install udev rule (continuing)"; return 0; }
udevadm control --reload-rules 2>/dev/null || true
udevadm trigger --action=add /dev/delta-x3700 2>/dev/null || true
fi
}
# ===========================================================================
# ndi — copy redistributable runtime libs to /usr/local/lib + ldconfig
# ===========================================================================