MediaImporter / RPI / config / 99-rpi-camera-importer.rules
Newer Older
26 lines | 3.808kb
Bogdan Timofte authored 3 weeks ago
1
# Raspberry Pi Camera Importer udev rules
2
# Attach flow mirrors the proven AutoNAS trigger model (systemd attach unit + wrapper for ata bridges).
3

            
4
# USB block devices (only removable, to exclude Pi's own rootfs)
5
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="usb", ATTRS{removable}=="1", RUN+="/bin/systemctl start --no-block rpi-camera-importer-attach@%E{ID_FS_UUID}.service"
6
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="usb", ATTRS{removable}=="1", RUN+="/usr/local/lib/rpi-camera-importer/rpi-camera-disk-handler.sh detach %E{ID_FS_UUID}"
7
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="usb", ATTRS{removable}=="1", RUN+="/bin/systemctl start --no-block rpi-camera-importer-attach@%E{ID_FS_UUID}.service"
8
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="usb", ATTRS{removable}=="1", RUN+="/usr/local/lib/rpi-camera-importer/rpi-camera-disk-handler.sh detach %E{ID_FS_UUID}"
9

            
10
# ATA removable devices (via wrapper, as in AutoNAS)
11
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="ata", ATTRS{removable}=="1", RUN+="/usr/local/lib/rpi-camera-importer/rpi-camera-udev-wrapper.sh attach %E{ID_FS_UUID}"
12
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="ata", ATTRS{removable}=="1", RUN+="/usr/local/lib/rpi-camera-importer/rpi-camera-disk-handler.sh detach %E{ID_FS_UUID}"
13
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="ata", ATTRS{removable}=="1", RUN+="/usr/local/lib/rpi-camera-importer/rpi-camera-udev-wrapper.sh attach %E{ID_FS_UUID}"
14
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="ata", ATTRS{removable}=="1", RUN+="/usr/local/lib/rpi-camera-importer/rpi-camera-disk-handler.sh detach %E{ID_FS_UUID}"
15

            
16
# USB-SATA bridges reported as ATA + ID_USB_TYPE=disk
17
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="ata", ENV{ID_USB_TYPE}=="disk", RUN+="/usr/local/lib/rpi-camera-importer/rpi-camera-udev-wrapper.sh attach %E{ID_FS_UUID}"
18
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ENV{ID_BUS}=="ata", ENV{ID_USB_TYPE}=="disk", RUN+="/usr/local/lib/rpi-camera-importer/rpi-camera-disk-handler.sh detach %E{ID_FS_UUID}"
19
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="ata", ENV{ID_USB_TYPE}=="disk", RUN+="/usr/local/lib/rpi-camera-importer/rpi-camera-udev-wrapper.sh attach %E{ID_FS_UUID}"
20
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ENV{ID_BUS}=="ata", ENV{ID_USB_TYPE}=="disk", RUN+="/usr/local/lib/rpi-camera-importer/rpi-camera-disk-handler.sh detach %E{ID_FS_UUID}"
21

            
22
# Other removable storage
23
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ATTRS{removable}=="1", ENV{ID_BUS}!="usb", RUN+="/bin/systemctl start --no-block rpi-camera-importer-attach@%E{ID_FS_UUID}.service"
24
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="disk", ATTRS{removable}=="1", ENV{ID_BUS}!="usb", RUN+="/usr/local/lib/rpi-camera-importer/rpi-camera-disk-handler.sh detach %E{ID_FS_UUID}"
25
ACTION=="add", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ATTRS{removable}=="1", ENV{ID_BUS}!="usb", RUN+="/bin/systemctl start --no-block rpi-camera-importer-attach@%E{ID_FS_UUID}.service"
26
ACTION=="remove", SUBSYSTEM=="block", ENV{ID_FS_UUID}!="", ENV{DEVTYPE}=="partition", ATTRS{removable}=="1", ENV{ID_BUS}!="usb", RUN+="/usr/local/lib/rpi-camera-importer/rpi-camera-disk-handler.sh detach %E{ID_FS_UUID}"