fix: mount SD kaart dynamisch via udev %k i.p.v. hardcoded UUID

dashcam-transfer-mount.sh mountte altijd /dev/disk/by-uuid/00D3-7715.
Een geherformatteerde of andere kaart heeft een ander filesystem UUID,
waardoor de mount faalde (TRIGGER ERROR) en de transfer nooit startte.

De udev rule geeft nu het kernel device (%k) door; de helper mount dat
device dynamisch. Werkt ongeacht het FS-UUID van de kaart.
This commit is contained in:
Eddy de Vink 2026-08-06 20:02:48 +02:00
commit 8ef7078ba4
2 changed files with 40 additions and 21 deletions

View file

@ -1,24 +1,39 @@
#!/bin/bash
# Mount SD card by UUID and start dashcam transfer.
# Mount SD card and start dashcam transfer.
# Called by udev rule 99-dashcam-trigger.rules via systemd-run.
# systemd-run is used (not direct udev exec) because udev context
# lacks mount/umount permissions on Fedora with SELinux enforcing.
UUID=/dev/disk/by-uuid/00D3-7715
logger -t dashcam-transfer Trigger: SD card detected
for ((i=0; i<60; i++)); do
if [ -e "$UUID" ]; then
logger -t dashcam-transfer Trigger: device ready after ${i}s
break
fi
sleep 1
done
#
# The udev rule passes the kernel name (e.g. "sde1") as $1 so the
# device is mounted dynamically, independent of its filesystem UUID.
DEV=${1:+/dev/$1}
logger -t dashcam-transfer "Trigger: SD card detected ($DEV)"
if [ -n "$1" ]; then
for ((i=0; i<60; i++)); do
if [ -e "$DEV" ]; then
logger -t dashcam-transfer "Trigger: device ready after ${i}s"
break
fi
sleep 1
done
else
UUID=$(lsblk -rno UUID /dev/sde1 2>/dev/null)
DEV=/dev/disk/by-uuid/$UUID
for ((i=0; i<60; i++)); do
if [ -e "$DEV" ]; then
logger -t dashcam-transfer "Trigger: device ready after ${i}s"
break
fi
sleep 1
done
fi
while mountpoint -q /mnt/sdcard 2>/dev/null; do
umount /mnt/sdcard 2>/dev/null || break
done
mount "$UUID" /mnt/sdcard -o uid=1000,gid=1000,fmask=0000,dmask=0000 2>/dev/null
mount "$DEV" /mnt/sdcard -o uid=1000,gid=1000,fmask=0000,dmask=0000
if [ $? -eq 0 ]; then
logger -t dashcam-transfer Trigger: mounted, starting transfer
logger -t dashcam-transfer "Trigger: mounted, starting transfer"
systemctl start dashcam-transfer
else
logger -t dashcam-transfer TRIGGER ERROR: mount failed
logger -t dashcam-transfer "TRIGGER ERROR: mount failed"
fi