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

@ -8,9 +8,9 @@ organisatie per datum en camera-positie (front/back). Draait op de **nextcloud**
```
SD-kaart insteken
→ udev detecteert vendor:product (14cd:1212 of 05e3:0751)
→ systemd-run start /usr/local/bin/dashcam-transfer-mount.sh
→ wacht tot /dev/disk/by-uuid/00D3-7715 verschijnt (max 60s)
→ mount UUID op /mnt/sdcard (uid=1000, exfat)
→ systemd-run start /usr/local/bin/dashcam-transfer-mount %k
→ wacht tot /dev/sdX1 verschijnt (max 60s)
→ mount apparaat dynamisch op /mnt/sdcard (uid=1000, exfat)
→ systemctl start dashcam-transfer.service
→ /usr/local/bin/dashcam-transfer.py
1. Check mounts (/mnt/sdcard, /mnt/ultratouch)
@ -25,10 +25,11 @@ SD-kaart insteken
| Component | Mount | Device | Doel |
|---|---|---|---|
| USB-SSD (4TB, Seagate Ultra Touch) | `/mnt/ultratouch` | `/dev/disk/by-uuid/3027-8ECA` | Opslag |
| SD-kaart (via USB reader) | `/mnt/sdcard` | `/dev/disk/by-uuid/00D3-7715` | Bron |
| SD-kaart (via USB reader) | `/mnt/sdcard` | dynamisch via udev `%k` | Bron |
SSD wordt gemount via systemd `.automount` unit (permanent aangesloten).
SD-kaart wordt gemount door `dashcam-transfer-mount.sh` na udev trigger.
SD-kaart wordt gemount door `dashcam-transfer-mount.sh` na udev trigger, met het
kernel-device (b.v. `sde1`) als argument — zo werkt het ongeacht het filesystem UUID.
## Bestandsstructuur
@ -79,13 +80,16 @@ De container: `docker-compose.yml` in `/home/aiaiaiaiagent/wwebjs-api/`.
### Udev rule (`/etc/udev/rules.d/99-dashcam-trigger.rules`)
```udev
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd*[0-9]", ENV{ID_VENDOR_ID}=="14cd", ENV{ID_MODEL_ID}=="1212", RUN+="/usr/bin/systemd-run --no-block --collect /usr/local/bin/dashcam-transfer-mount"
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd*[0-9]", ENV{ID_VENDOR_ID}=="05e3", ENV{ID_MODEL_ID}=="0751", RUN+="/usr/bin/systemd-run --no-block --collect /usr/local/bin/dashcam-transfer-mount"
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd*[0-9]", ENV{ID_VENDOR_ID}=="14cd", ENV{ID_MODEL_ID}=="1212", RUN+="/usr/bin/systemd-run --no-block --collect /usr/local/bin/dashcam-transfer-mount %k"
ACTION=="add", SUBSYSTEM=="block", KERNEL=="sd*[0-9]", ENV{ID_VENDOR_ID}=="05e3", ENV{ID_MODEL_ID}=="0751", RUN+="/usr/bin/systemd-run --no-block --collect /usr/local/bin/dashcam-transfer-mount %k"
```
`%k` geeft het kernel device (b.v. `sde1`) door aan het mount script.
### Mount script (`/usr/local/bin/dashcam-transfer-mount.sh`)
Wacht tot de UUID beschikbaar is, unmount eventuele stale mounts, mount de SD-kaart en start de service.
Wacht tot het doorgegeven device beschikbaar is, unmount eventuele stale mounts,
mount de SD-kaart en start de service.
### Systemd service (`/etc/systemd/system/dashcam-transfer.service`)