Udev Rule, чтобы различить 2 одинаковых веб-камеры на Linux

Время последней модификации каталогов сохраняется с помощью -a , но вы можете увидеть это только после завершения rsync. Он не пытается установить время для каталогов, которые постоянно обновляются новыми файлами.

Вы можете проверить это сами. Создайте каталог и установите для него дату вчера, затем скопируйте его с помощью rsync:

$ mkdir d1 d2
$ ls -ld d1
drwxr-xr-x 2  40 Nov  4 14:41 d1
$ touch -d 'yesterday' d1
$ ls -ld d1
drwxr-xr-x 2  40 Nov  3 14:41 d1
$ rsync -i -avR d1 d2
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  3 14:41 d2/d1/

В каталоге d2 / d1 указана вчерашняя дата. Мы можем переопределить это и посмотреть, исправит ли rsync что-то:

$ touch d2/d1
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  4 14:42 d2/d1/
$ rsync -i -avR d1 d2
.d..t...... d1/
$ ls -ld d1 d2/d1/
drwxr-xr-x 2  40 Nov  3 14:41 d1
drwxr-xr-x 2  40 Nov  3 14:41 d2/d1/

rsync -i показывает, что метка времени неверна на d2 / d1, и исправляет ее.

0
18.02.2018, 03:45
2 ответа

Sus reglas coinciden en el nivel incorrecto en el árbol de dispositivos:SUBSYSTEM=="usb"dice que desea un enlace simbólico a algo que represente el dispositivo USB completo, y no la capa video4linux. Entonces necesitas SUBSYSTEM=video4linux. También necesita ATTRSyKERNELS(con S adicional )en lugar de ATTRy KERNEL, porque desea mucho esos más arriba en el árbol. Ver man udevpara más detalles.

La forma de obtener esta información es obtener udevadmpara escupir todo el camino hasta la raíz del árbol con atributos, etc., con algo como

udevadm info -a -p  $(udevadm info -q path -n /dev/video3)

(ya hiciste la parte interna para la edición de tu pregunta ).

Entonces la regla debería convertirse en algo como

SUBSYSTEM=="video4linux", KERNELS=="1-1.3", ATTRS{idVendor}=="05a3", ATTRS{idProduct}=="9422", SYMLINK+="klastle/vlvid"

o similar, posiblemente dependiendo de lo que vea en la ruta del dispositivo.

2
28.01.2020, 04:30

У меня была аналогичная проблема. 4 одинаковые камеры без серийных номеров. При перезагрузке произошло случайное перераспределение. Мне нужно было подписать фотографии, так что это не сработало.

Решение включает в себя правила udev и некоторый код Python. Вы обращаетесь к камерам как mycam1..4 вместо video0..3. Таким образом, mycam1 всегда является одной и той же камерой, независимо от того, какой номер videox был назначен ей при загрузке.

https://unix.stackexchange.com/a/533464/202850

0
28.01.2020, 04:30

Теги

Похожие вопросы