Temat: Raspberry Pi Desktop

Witam.
Przed zakupem RPI postanowiłem zobaczyć jak to działa i zainstalowałem Raspberry Pi Desktop aby w pełni wykorzystać drukarkę 3D z octoprintem.

Ogólnie wszystko działa poza małym ale...

Do terminala (bo Raspberry Pi Desktop jest na iglu postawione) podłączyłem 2 kamery.

T:  Bus=03 Lev=02 Prnt=02 Port=03 Cnt=01 Dev#=  3 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=045e ProdID=0779 Rev= 1.06
S:  Manufacturer=Microsoft
S:  Product=Microsoft® LifeCam HD-3000
C:* #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=500mA
A:  FirstIf#= 0 IfCount= 2 Cls=0e(video) Sub=03 Prot=00
A:  FirstIf#= 2 IfCount= 2 Cls=01(audio) Sub=02 Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=00 Driver=uvcvideo
E:  Ad=83(I) Atr=03(Int.) MxPS=   8 Ivl=16ms
I:* If#= 1 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
I:  If#= 1 Alt= 1 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS= 128 Ivl=125us
I:  If#= 1 Alt= 2 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS= 256 Ivl=125us
I:  If#= 1 Alt= 3 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS= 512 Ivl=125us
I:  If#= 1 Alt= 4 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS=1024 Ivl=125us
I:  If#= 1 Alt= 5 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS=2048 Ivl=125us
I:  If#= 1 Alt= 6 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS=3072 Ivl=125us
I:* If#= 2 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I:* If#= 3 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:  If#= 3 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E:  Ad=82(I) Atr=05(Isoc) MxPS= 256 Ivl=1ms

i druga

T:  Bus=02 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#=  2 Spd=480  MxCh= 0
D:  Ver= 2.00 Cls=ef(misc ) Sub=02 Prot=01 MxPS=64 #Cfgs=  1
P:  Vendor=043e ProdID=3012 Rev=11.15
S:  Manufacturer=LGE
S:  Product=AN-VC500 Camera
C:* #Ifs= 4 Cfg#= 1 Atr=80 MxPwr=500mA
A:  FirstIf#= 0 IfCount= 2 Cls=0e(video) Sub=03 Prot=00
A:  FirstIf#= 2 IfCount= 2 Cls=01(audio) Sub=02 Prot=00
I:* If#= 0 Alt= 0 #EPs= 1 Cls=0e(video) Sub=01 Prot=00 Driver=uvcvideo
E:  Ad=83(I) Atr=03(Int.) MxPS=  64 Ivl=16ms
I:  If#= 1 Alt= 0 #EPs= 0 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
I:* If#= 1 Alt= 1 #EPs= 1 Cls=0e(video) Sub=02 Prot=00 Driver=uvcvideo
E:  Ad=81(I) Atr=05(Isoc) MxPS=3048 Ivl=125us
I:* If#= 2 Alt= 0 #EPs= 0 Cls=01(audio) Sub=01 Prot=00 Driver=snd-usb-audio
I:* If#= 3 Alt= 0 #EPs= 0 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
I:  If#= 3 Alt= 1 #EPs= 1 Cls=01(audio) Sub=02 Prot=00 Driver=snd-usb-audio
E:  Ad=82(I) Atr=05(Isoc) MxPS= 512 Ivl=1ms

W /etc/udev/rules.d w pliku 99-usb.rules mam taki wpis

SUBSYSTEM=="video4linux", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0779", SYMLINK+="videoMS"
SUBSYSTEM=="video4linux", ATTRS{idVendor}=="043e", ATTRS{idProduct}=="3012", SYMLINK+="videoLG"

Mam dwa skrypty startujące mjpg przy starcie systemu.

Niestety czasami kamery są niedostępne albo zamienione miejscami. Do poprawnego działania całego systemu brakuje mi tylko tego aby po każdym resecie kamera wskakiwała w identyczną nazwę (nie wiem czy dobrze napisałem)
Niestety czasami kamera MS to nie jest video0.

Jak to ogarnąć aby było jak chcę? Cz da się tak?

2

Odp: Raspberry Pi Desktop

Czyli co? Hotplug ci nie działa? Zrobiłeś przecież żeby kamera się unikalnie nazywała.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

3 (edytowany przez palibrzuch 2021-01-03 16:56:29)

Odp: Raspberry Pi Desktop

No tak ale to nie działa, przynajmniej nie za każdym razem jak system startuje.

root@raspberry:/home/pi# /usr/local/bin/mjpg_streamer -i "input_uvc.so -r 1920x1280 -d /dev/videoMS -f 20" -o "output_http.so -p 8081 -w /usr/local/share/mjpg-streamer/www"
MJPG Streamer Version: git rev: 5554f42c352ecfa7edaec6fc51e507afce605a34
 i: Using V4L2 device.: /dev/video3
 i: Desired Resolution: 1920 x 1280
 i: Frames Per Second.: 20
 i: Format............: JPEG
 i: TV-Norm...........: DEFAULT
Unable to set format: 1196444237 res: 1920x1280
Init v4L2 failed !! exit fatal
 i: init_VideoIn failed
root@raspberry:/home/pi# 

Jak ręcznie próbuję odpalić wywala taki błąd.

Rozdzielczość tu chyba nie ma nic do tego

root@raspberry:/home/pi# /usr/local/bin/mjpg_streamer -i "input_uvc.so -r 800x600 -d /dev/videoMS -f 20" -o "output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"
MJPG Streamer Version: git rev: 5554f42c352ecfa7edaec6fc51e507afce605a34
 i: Using V4L2 device.: /dev/video3
 i: Desired Resolution: 800 x 600
 i: Frames Per Second.: 20
 i: Format............: JPEG
 i: TV-Norm...........: DEFAULT
Unable to set format: 1196444237 res: 800x600
Init v4L2 failed !! exit fatal
 i: init_VideoIn failed
root@raspberry:/home/pi# 

4

Odp: Raspberry Pi Desktop

pokaż ls /dev/video*

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

5

Odp: Raspberry Pi Desktop

root@raspberry:/home/pi#  ls /dev/video*
/dev/video0  /dev/video1  /dev/video2  /dev/video3  /dev/videoLG  /dev/videoMS
root@raspberry:/home/pi# 

6

Odp: Raspberry Pi Desktop

I jeszcze

v4l2-ctl --list-formats

Dodaj -y do mjpeg-streamer i zobacz i zobacz czy kamera potrafi tak działać.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

7

Odp: Raspberry Pi Desktop

root@raspberry:/home/pi# v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'YUYV' (YUYV 4:2:2)
    [1]: 'MJPG' (Motion-JPEG, compressed)
    [2]: 'H264' (H.264, compressed)
root@raspberry:/home/pi# 

Kamera ogólnie działa ale jak uruchomię ją z polecenia video2 a nie videoMS

root@raspberry:/home/pi# /usr/local/bin/mjpg_streamer -i "input_uvc.so -r 800x600 -d /dev/video2 -f 20" -o "output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"
MJPG Streamer Version: git rev: 5554f42c352ecfa7edaec6fc51e507afce605a34
 i: Using V4L2 device.: /dev/video2
 i: Desired Resolution: 800 x 600
 i: Frames Per Second.: 20
 i: Format............: JPEG
 i: TV-Norm...........: DEFAULT
UVCIOC_CTRL_ADD - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Mode: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Frequency: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Disable video processing: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Raw bits per pixel: Inappropriate ioctl for device (25)
 o: www-folder-path......: /usr/local/share/mjpg-streamer/www/
 o: HTTP TCP port........: 8080
 o: HTTP Listen Address..: (null)
 o: username:password....: disabled
 o: commands.............: enabled
root@raspberry:/home/pi# /usr/local/bin/mjpg_streamer -i "input_uvc.so -r 800x600 -d /dev/video2 -f 20" -o "output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"
MJPG Streamer Version: git rev: 5554f42c352ecfa7edaec6fc51e507afce605a34
 i: Using V4L2 device.: /dev/video2
 i: Desired Resolution: 800 x 600
 i: Frames Per Second.: 20
 i: Format............: JPEG
 i: TV-Norm...........: DEFAULT
UVCIOC_CTRL_ADD - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Mode: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Frequency: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Disable video processing: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Raw bits per pixel: Inappropriate ioctl for device (25)
 o: www-folder-path......: /usr/local/share/mjpg-streamer/www/
 o: HTTP TCP port........: 8080
 o: HTTP Listen Address..: (null)
 o: username:password....: disabled
 o: commands.............: enabled

Pytanie dlaczego videoMS odwołuje się do video3?

root@raspberry:/home/pi# /usr/local/bin/mjpg_streamer -i "input_uvc.so -r 800x600 -y -d /dev/videoMS -f 20" -o "output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"
MJPG Streamer Version: git rev: 5554f42c352ecfa7edaec6fc51e507afce605a34
 i: Using V4L2 device.: /dev/video3
 i: Desired Resolution: 800 x 600
 i: Frames Per Second.: 20
 i: Format............: YUYV
 i: JPEG Quality......: 80
 i: TV-Norm...........: DEFAULT
Unable to set format: 1448695129 res: 800x600
Init v4L2 failed !! exit fatal
 i: init_VideoIn failed
root@raspberry:/home/pi# 

Jak widać z -y startuje ale z video2

root@raspberry:/home/pi# /usr/local/bin/mjpg_streamer -i "input_uvc.so -r 800x600 -y -d /dev/video2 -f 20" -o "output_http.so -p 8080 -w /usr/local/share/mjpg-streamer/www"
MJPG Streamer Version: git rev: 5554f42c352ecfa7edaec6fc51e507afce605a34
 i: Using V4L2 device.: /dev/video2
 i: Desired Resolution: 800 x 600
 i: Frames Per Second.: 20
 i: Format............: YUYV
 i: JPEG Quality......: 80
 i: TV-Norm...........: DEFAULT
 i: FPS coerced ......: from 20 to 15
UVCIOC_CTRL_ADD - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_ADD - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt (relative): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Pan/tilt Reset: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Focus (absolute): Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Mode: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at LED1 Frequency: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Disable video processing: Inappropriate ioctl for device (25)
UVCIOC_CTRL_MAP - Error at Raw bits per pixel: Inappropriate ioctl for device (25)
 o: www-folder-path......: /usr/local/share/mjpg-streamer/www/
 o: HTTP TCP port........: 8080
 o: HTTP Listen Address..: (null)
 o: username:password....: disabled
 o: commands.............: enabled

8

Odp: Raspberry Pi Desktop

jeszcze raz pokaz l

ls -al /dev/video*

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

9

Odp: Raspberry Pi Desktop

root@raspberry:/home/pi# ls -al /dev/video*
crw-rw----+ 1 root video 81, 0 sty  3 16:13 /dev/video0
crw-rw----+ 1 root video 81, 1 sty  3 16:13 /dev/video1
crw-rw----+ 1 root video 81, 2 sty  3 16:13 /dev/video2
crw-rw----+ 1 root video 81, 3 sty  3 16:13 /dev/video3
lrwxrwxrwx  1 root root      6 sty  3 16:13 /dev/videoLG -> video0
lrwxrwxrwx  1 root root      6 sty  3 16:13 /dev/videoMS -> video3

10

Odp: Raspberry Pi Desktop

Czym jest w takim razie video1 i video2?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

11 (edytowany przez palibrzuch 2021-01-03 17:33:44)

Odp: Raspberry Pi Desktop

Nie mam pojęcia smile
Do terminala podłączona po usb jest tylko drukarka i dwie kamery.

A może to jakieś pozostałości po mjpg instalowanej ze snapa? Bo później zainstalowałem normalnie.

12

Odp: Raspberry Pi Desktop

Odłączę wszystko i zrobię jeszcze raz polecenia

13 (edytowany przez palibrzuch 2021-01-03 17:51:24)

Odp: Raspberry Pi Desktop

Po restarcie gdy odłączę wszystko

root@raspberry:/home/pi# ls -al /dev/video*
ls: nie ma dostępu do '/dev/video*': Nie ma takiego pliku ani katalogu
root@raspberry:/home/pi# 
root@raspberry:/home/pi# v4l2-ctl --list-formats
Cannot open device /dev/video0, exiting.
root@raspberry:/home/pi# ls /dev/video*
ls: nie ma dostępu do '/dev/video*': Nie ma takiego pliku ani katalogu
root@raspberry:/home/pi# 

Podłączę jedną i zrobię reboot

14

Odp: Raspberry Pi Desktop

Skrypt startowy mam stąd i instalację też tak robiłem jak tu https://github.com/cncjs/cncjs/wiki/Set … -Recording

Podłączyłem jedną kamerę MS HD3000

root@raspberry:/home/pi# ls /dev/video*
/dev/video0  /dev/video1  /dev/videoMS
root@raspberry:/home/pi# v4l2-ctl --list-formats
ioctl: VIDIOC_ENUM_FMT
    Type: Video Capture

    [0]: 'YUYV' (YUYV 4:2:2)
    [1]: 'MJPG' (Motion-JPEG, compressed)
root@raspberry:/home/pi# ls -al /dev/video*
crw-rw----+ 1 root video 81, 0 sty  3 17:52 /dev/video0
crw-rw----+ 1 root video 81, 1 sty  3 17:52 /dev/video1
lrwxrwxrwx  1 root root      6 sty  3 17:52 /dev/videoMS -> video0
root@raspberry:/home/pi# 

15 (edytowany przez Cezary 2021-01-03 18:08:14)

Odp: Raspberry Pi Desktop

Odpal na 2 konsolach

udevadm info --attribute-walk --path=$(udevadm info --query=path --name=/dev/video1)

i

udevadm info --attribute-walk --path=$(udevadm info --query=path --name=/dev/video0)


Odłącz, podłącz kamerę i pokaz co wyszło

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

16

Odp: Raspberry Pi Desktop

root@raspberry:/home/pi# udevadm info --attribute-walk --path=$(udevadm info --query=path --name=/dev/video0)

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '//devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/video4linux/video0':
    KERNEL=="video0"
    SUBSYSTEM=="video4linux"
    DRIVER==""
    ATTR{dev_debug}=="0"
    ATTR{index}=="0"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0':
    KERNELS=="2-1.3:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="uvcvideo"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bInterfaceClass}=="0e"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{iad_bInterfaceCount}=="02"
    ATTRS{iad_bFunctionClass}=="0e"
    ATTRS{iad_bFirstInterface}=="00"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{authorized}=="1"
    ATTRS{iad_bFunctionSubClass}=="03"
    ATTRS{bInterfaceProtocol}=="00"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{iad_bFunctionProtocol}=="00"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3':
    KERNELS=="2-1.3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{urbnum}=="130328"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{rx_lanes}=="1"
    ATTRS{configuration}==""
    ATTRS{bcdDevice}=="0106"
    ATTRS{bDeviceClass}=="ef"
    ATTRS{idProduct}=="0779"
    ATTRS{version}==" 2.00"
    ATTRS{bDeviceSubClass}=="02"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="80"
    ATTRS{devpath}=="1.3"
    ATTRS{busnum}=="2"
    ATTRS{bMaxPower}=="500mA"
    ATTRS{manufacturer}=="Microsoft"
    ATTRS{idVendor}=="045e"
    ATTRS{devnum}=="3"
    ATTRS{tx_lanes}=="1"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 4"
    ATTRS{authorized}=="1"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{ltm_capable}=="no"
    ATTRS{removable}=="removable"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{speed}=="480"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb2/2-1':
    KERNELS=="2-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{idProduct}=="0024"
    ATTRS{tx_lanes}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{authorized}=="1"
    ATTRS{idVendor}=="8087"
    ATTRS{devpath}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{removable}=="fixed"
    ATTRS{rx_lanes}=="1"
    ATTRS{urbnum}=="48"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{maxchild}=="4"
    ATTRS{bcdDevice}=="0000"
    ATTRS{busnum}=="2"
    ATTRS{devnum}=="2"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{quirks}=="0x0"
    ATTRS{version}==" 2.00"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{configuration}==""
    ATTRS{speed}=="480"
    ATTRS{ltm_capable}=="no"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb2':
    KERNELS=="usb2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{idProduct}=="0002"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{idVendor}=="1d6b"
    ATTRS{tx_lanes}=="1"
    ATTRS{serial}=="0000:00:1d.0"
    ATTRS{busnum}=="2"
    ATTRS{rx_lanes}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{quirks}=="0x0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bcdDevice}=="0419"
    ATTRS{removable}=="unknown"
    ATTRS{configuration}==""
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{urbnum}=="24"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{devnum}=="1"
    ATTRS{manufacturer}=="Linux 4.19.0-13-amd64 ehci_hcd"
    ATTRS{authorized_default}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{authorized}=="1"
    ATTRS{maxchild}=="2"
    ATTRS{speed}=="480"
    ATTRS{devpath}=="0"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{ltm_capable}=="no"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0':
    KERNELS=="0000:00:1d.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="ehci-pci"
    ATTRS{ari_enabled}=="0"
    ATTRS{vendor}=="0x8086"
    ATTRS{uframe_periodic_max}=="100"
    ATTRS{device}=="0x1e26"
    ATTRS{msi_bus}=="1"
    ATTRS{revision}=="0x04"
    ATTRS{numa_node}=="-1"
    ATTRS{local_cpus}=="3"
    ATTRS{companion}==""
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{enable}=="1"
    ATTRS{subsystem_vendor}=="0x8086"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{subsystem_device}=="0x1e26"
    ATTRS{irq}=="23"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0320"
    ATTRS{driver_override}=="(null)"
    ATTRS{local_cpulist}=="0-1"

  looking at parent device '//devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

root@raspberry:/home/pi# 
root@raspberry:/home/pi# udevadm info --attribute-walk --path=$(udevadm info --query=path --name=/dev/video1)

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '//devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0/video4linux/video1':
    KERNEL=="video1"
    SUBSYSTEM=="video4linux"
    DRIVER==""
    ATTR{dev_debug}=="0"
    ATTR{index}=="1"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3/2-1.3:1.0':
    KERNELS=="2-1.3:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="uvcvideo"
    ATTRS{bInterfaceProtocol}=="00"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{iad_bFunctionClass}=="0e"
    ATTRS{bInterfaceClass}=="0e"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{iad_bFunctionSubClass}=="03"
    ATTRS{iad_bInterfaceCount}=="02"
    ATTRS{authorized}=="1"
    ATTRS{iad_bFirstInterface}=="00"
    ATTRS{iad_bFunctionProtocol}=="00"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb2/2-1/2-1.3':
    KERNELS=="2-1.3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{devnum}=="3"
    ATTRS{quirks}=="0x0"
    ATTRS{speed}=="480"
    ATTRS{bDeviceSubClass}=="02"
    ATTRS{rx_lanes}=="1"
    ATTRS{manufacturer}=="Microsoft"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="ef"
    ATTRS{bMaxPower}=="500mA"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{tx_lanes}=="1"
    ATTRS{maxchild}=="0"
    ATTRS{bmAttributes}=="80"
    ATTRS{removable}=="removable"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{authorized}=="1"
    ATTRS{devpath}=="1.3"
    ATTRS{idProduct}=="0779"
    ATTRS{configuration}==""
    ATTRS{bcdDevice}=="0106"
    ATTRS{bNumInterfaces}==" 4"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{idVendor}=="045e"
    ATTRS{ltm_capable}=="no"
    ATTRS{urbnum}=="128718"
    ATTRS{busnum}=="2"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb2/2-1':
    KERNELS=="2-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{quirks}=="0x0"
    ATTRS{busnum}=="2"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{idProduct}=="0024"
    ATTRS{devpath}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{devnum}=="2"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{tx_lanes}=="1"
    ATTRS{speed}=="480"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{authorized}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bmAttributes}=="e0"
    ATTRS{maxchild}=="4"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bcdDevice}=="0000"
    ATTRS{idVendor}=="8087"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{urbnum}=="48"
    ATTRS{rx_lanes}=="1"
    ATTRS{removable}=="fixed"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb2':
    KERNELS=="usb2"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{manufacturer}=="Linux 4.19.0-13-amd64 ehci_hcd"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{busnum}=="2"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{urbnum}=="24"
    ATTRS{bcdDevice}=="0419"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{maxchild}=="2"
    ATTRS{serial}=="0000:00:1d.0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{configuration}==""
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{tx_lanes}=="1"
    ATTRS{quirks}=="0x0"
    ATTRS{idProduct}=="0002"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{removable}=="unknown"
    ATTRS{idVendor}=="1d6b"
    ATTRS{rx_lanes}=="1"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{ltm_capable}=="no"
    ATTRS{devnum}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{devpath}=="0"
    ATTRS{bmAttributes}=="e0"
    ATTRS{speed}=="480"
    ATTRS{authorized_default}=="1"
    ATTRS{bNumConfigurations}=="1"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0':
    KERNELS=="0000:00:1d.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="ehci-pci"
    ATTRS{irq}=="23"
    ATTRS{local_cpus}=="3"
    ATTRS{uframe_periodic_max}=="100"
    ATTRS{driver_override}=="(null)"
    ATTRS{numa_node}=="-1"
    ATTRS{subsystem_device}=="0x1e26"
    ATTRS{revision}=="0x04"
    ATTRS{companion}==""
    ATTRS{local_cpulist}=="0-1"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x1e26"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{class}=="0x0c0320"
    ATTRS{enable}=="1"
    ATTRS{ari_enabled}=="0"
    ATTRS{msi_bus}=="1"
    ATTRS{subsystem_vendor}=="0x8086"
    ATTRS{broken_parity_status}=="0"
    ATTRS{vendor}=="0x8086"

  looking at parent device '//devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

root@raspberry:/home/pi# 

17

Odp: Raspberry Pi Desktop

Ok, masz ATTR{index}=="1" i ATTR{index}=="0", więc sobie zmodyfikuj reguły na udevie żeby robiło symlink do tego urządzenia którego powinno.

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

18

Odp: Raspberry Pi Desktop

Niestety działa tylko jedna kamera jak tak zrobię. Jednej dałem ATTR{index}=="1" a drugiej ATTR{index}=="0"

Podłączając drugą kamerę wszystkie video łapią  ATTR{index}=="0"

19

Odp: Raspberry Pi Desktop

A jesteś pewien że indeks drugiej to 0 i 1 a nie 2 i 3? Sprawdzałeś?

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

20

Odp: Raspberry Pi Desktop

Przy takim ustawieniu i startowała MS dobrze a teraz mam na obu portach jedną kamerę.

UBSYSTEM=="video4linux", ATTR{index}=="0", ATTRS{idVendor}=="045e", ATTRS{idProduct}=="0779", SYMLINK+="videoMS"
SUBSYSTEM=="video4linux", ATTRS{idVendor}=="043e", ATTRS{idProduct}=="3012", SYMLINK+="videoLG"

I mam tak

root@raspberry:/etc/udev/rules.d# udevadm info --attribute-walk --path=$(udevadm info --query=path --name=/dev/video0)

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.3/3-1.3:1.0/video4linux/video0':
    KERNEL=="video0"
    SUBSYSTEM=="video4linux"
    DRIVER==""
    ATTR{dev_debug}=="0"
    ATTR{index}=="0"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.3/3-1.3:1.0':
    KERNELS=="3-1.3:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="uvcvideo"
    ATTRS{iad_bFunctionClass}=="0e"
    ATTRS{iad_bFirstInterface}=="00"
    ATTRS{authorized}=="1"
    ATTRS{iad_bInterfaceCount}=="02"
    ATTRS{iad_bFunctionSubClass}=="03"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{bInterfaceProtocol}=="00"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bInterfaceClass}=="0e"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{iad_bFunctionProtocol}=="00"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.3':
    KERNELS=="3-1.3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{manufacturer}=="Microsoft"
    ATTRS{maxchild}=="0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{authorized}=="1"
    ATTRS{configuration}==""
    ATTRS{devnum}=="3"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{rx_lanes}=="1"
    ATTRS{tx_lanes}=="1"
    ATTRS{speed}=="480"
    ATTRS{busnum}=="3"
    ATTRS{bcdDevice}=="0106"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{idVendor}=="045e"
    ATTRS{version}==" 2.00"
    ATTRS{bDeviceClass}=="ef"
    ATTRS{bDeviceSubClass}=="02"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bNumInterfaces}==" 4"
    ATTRS{quirks}=="0x0"
    ATTRS{ltm_capable}=="no"
    ATTRS{devpath}=="1.3"
    ATTRS{idProduct}=="0779"
    ATTRS{removable}=="removable"
    ATTRS{urbnum}=="5337"
    ATTRS{bmAttributes}=="80"
    ATTRS{bMaxPower}=="500mA"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1':
    KERNELS=="3-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{devnum}=="2"
    ATTRS{rx_lanes}=="1"
    ATTRS{devpath}=="1"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{quirks}=="0x0"
    ATTRS{busnum}=="3"
    ATTRS{removable}=="fixed"
    ATTRS{idVendor}=="8087"
    ATTRS{speed}=="480"
    ATTRS{bDeviceClass}=="09"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{configuration}==""
    ATTRS{bConfigurationValue}=="1"
    ATTRS{tx_lanes}=="1"
    ATTRS{authorized}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{idProduct}=="0024"
    ATTRS{maxchild}=="4"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bcdDevice}=="0000"
    ATTRS{urbnum}=="36"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3':
    KERNELS=="usb3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{quirks}=="0x0"
    ATTRS{tx_lanes}=="1"
    ATTRS{speed}=="480"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{idProduct}=="0002"
    ATTRS{authorized}=="1"
    ATTRS{serial}=="0000:00:1d.0"
    ATTRS{devnum}=="1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bmAttributes}=="e0"
    ATTRS{urbnum}=="24"
    ATTRS{bcdDevice}=="0419"
    ATTRS{manufacturer}=="Linux 4.19.0-13-amd64 ehci_hcd"
    ATTRS{busnum}=="3"
    ATTRS{configuration}==""
    ATTRS{ltm_capable}=="no"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{idVendor}=="1d6b"
    ATTRS{removable}=="unknown"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{rx_lanes}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{maxchild}=="2"
    ATTRS{version}==" 2.00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{devpath}=="0"
    ATTRS{bMaxPower}=="0mA"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0':
    KERNELS=="0000:00:1d.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="ehci-pci"
    ATTRS{local_cpus}=="3"
    ATTRS{class}=="0x0c0320"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{subsystem_vendor}=="0x8086"
    ATTRS{companion}==""
    ATTRS{broken_parity_status}=="0"
    ATTRS{local_cpulist}=="0-1"
    ATTRS{vendor}=="0x8086"
    ATTRS{irq}=="23"
    ATTRS{ari_enabled}=="0"
    ATTRS{enable}=="1"
    ATTRS{subsystem_device}=="0x1e26"
    ATTRS{msi_bus}=="1"
    ATTRS{driver_override}=="(null)"
    ATTRS{revision}=="0x04"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x1e26"
    ATTRS{numa_node}=="-1"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{uframe_periodic_max}=="100"

  looking at parent device '//devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

root@raspberry:/etc/udev/rules.d# 
root@raspberry:/home/pi# udevadm info --attribute-walk --path=$(udevadm info --query=path --name=/dev/video1)

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.3/3-1.3:1.0/video4linux/video1':
    KERNEL=="video1"
    SUBSYSTEM=="video4linux"
    DRIVER==""
    ATTR{dev_debug}=="0"
    ATTR{index}=="1"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.3/3-1.3:1.0':
    KERNELS=="3-1.3:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="uvcvideo"
    ATTRS{bInterfaceProtocol}=="00"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{iad_bFunctionProtocol}=="00"
    ATTRS{authorized}=="1"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{iad_bFunctionClass}=="0e"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bInterfaceClass}=="0e"
    ATTRS{iad_bInterfaceCount}=="02"
    ATTRS{iad_bFirstInterface}=="00"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{iad_bFunctionSubClass}=="03"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.3':
    KERNELS=="3-1.3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bcdDevice}=="0106"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{devnum}=="3"
    ATTRS{urbnum}=="5337"
    ATTRS{authorized}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{bDeviceClass}=="ef"
    ATTRS{devpath}=="1.3"
    ATTRS{idProduct}=="0779"
    ATTRS{busnum}=="3"
    ATTRS{bmAttributes}=="80"
    ATTRS{speed}=="480"
    ATTRS{bDeviceSubClass}=="02"
    ATTRS{ltm_capable}=="no"
    ATTRS{removable}=="removable"
    ATTRS{maxchild}=="0"
    ATTRS{rx_lanes}=="1"
    ATTRS{bMaxPower}=="500mA"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bNumInterfaces}==" 4"
    ATTRS{idVendor}=="045e"
    ATTRS{manufacturer}=="Microsoft"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{quirks}=="0x0"
    ATTRS{configuration}==""
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{tx_lanes}=="1"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1':
    KERNELS=="3-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{maxchild}=="4"
    ATTRS{speed}=="480"
    ATTRS{removable}=="fixed"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{version}==" 2.00"
    ATTRS{tx_lanes}=="1"
    ATTRS{idVendor}=="8087"
    ATTRS{idProduct}=="0024"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bcdDevice}=="0000"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{rx_lanes}=="1"
    ATTRS{quirks}=="0x0"
    ATTRS{configuration}==""
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{busnum}=="3"
    ATTRS{devpath}=="1"
    ATTRS{devnum}=="2"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{authorized}=="1"
    ATTRS{bmAttributes}=="e0"
    ATTRS{ltm_capable}=="no"
    ATTRS{urbnum}=="36"
    ATTRS{bDeviceSubClass}=="00"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3':
    KERNELS=="usb3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{tx_lanes}=="1"
    ATTRS{idVendor}=="1d6b"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0419"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{idProduct}=="0002"
    ATTRS{authorized_default}=="1"
    ATTRS{configuration}==""
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{devnum}=="1"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{speed}=="480"
    ATTRS{bDeviceClass}=="09"
    ATTRS{busnum}=="3"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{bmAttributes}=="e0"
    ATTRS{serial}=="0000:00:1d.0"
    ATTRS{authorized}=="1"
    ATTRS{quirks}=="0x0"
    ATTRS{urbnum}=="24"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{rx_lanes}=="1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{maxchild}=="2"
    ATTRS{devpath}=="0"
    ATTRS{version}==" 2.00"
    ATTRS{manufacturer}=="Linux 4.19.0-13-amd64 ehci_hcd"
    ATTRS{removable}=="unknown"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0':
    KERNELS=="0000:00:1d.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="ehci-pci"
    ATTRS{device}=="0x1e26"
    ATTRS{local_cpus}=="3"
    ATTRS{uframe_periodic_max}=="100"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{ari_enabled}=="0"
    ATTRS{msi_bus}=="1"
    ATTRS{driver_override}=="(null)"
    ATTRS{irq}=="23"
    ATTRS{revision}=="0x04"
    ATTRS{class}=="0x0c0320"
    ATTRS{subsystem_vendor}=="0x8086"
    ATTRS{local_cpulist}=="0-1"
    ATTRS{subsystem_device}=="0x1e26"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{broken_parity_status}=="0"
    ATTRS{numa_node}=="-1"
    ATTRS{enable}=="1"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{vendor}=="0x8086"
    ATTRS{companion}==""

  looking at parent device '//devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

root@raspberry:/home/pi# 

root@raspberry:/home/pi# udevadm info --attribute-walk --path=$(udevadm info --query=path --name=/dev/video2)

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.4/3-1.4:1.0/video4linux/video2':
    KERNEL=="video2"
    SUBSYSTEM=="video4linux"
    DRIVER==""
    ATTR{name}=="AN-VC500 Camera"
    ATTR{dev_debug}=="0"
    ATTR{index}=="0"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.4/3-1.4:1.0':
    KERNELS=="3-1.4:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="uvcvideo"
    ATTRS{iad_bInterfaceCount}=="02"
    ATTRS{authorized}=="1"
    ATTRS{bInterfaceClass}=="0e"
    ATTRS{iad_bFunctionClass}=="0e"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{iad_bFunctionSubClass}=="03"
    ATTRS{bInterfaceProtocol}=="00"
    ATTRS{iad_bFirstInterface}=="00"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{iad_bFunctionProtocol}=="00"
    ATTRS{bAlternateSetting}==" 0"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.4':
    KERNELS=="3-1.4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceClass}=="ef"
    ATTRS{bmAttributes}=="80"
    ATTRS{ltm_capable}=="no"
    ATTRS{busnum}=="3"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{urbnum}=="190922"
    ATTRS{tx_lanes}=="1"
    ATTRS{manufacturer}=="LGE"
    ATTRS{rx_lanes}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{idProduct}=="3012"
    ATTRS{devnum}=="4"
    ATTRS{idVendor}=="043e"
    ATTRS{bcdDevice}=="1115"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{maxchild}=="0"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bMaxPower}=="500mA"
    ATTRS{product}=="AN-VC500 Camera"
    ATTRS{configuration}==""
    ATTRS{devpath}=="1.4"
    ATTRS{quirks}=="0x0"
    ATTRS{speed}=="480"
    ATTRS{removable}=="removable"
    ATTRS{bNumInterfaces}==" 4"
    ATTRS{bDeviceSubClass}=="02"
    ATTRS{authorized}=="1"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1':
    KERNELS=="3-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{quirks}=="0x0"
    ATTRS{devnum}=="2"
    ATTRS{removable}=="fixed"
    ATTRS{version}==" 2.00"
    ATTRS{speed}=="480"
    ATTRS{maxchild}=="4"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{tx_lanes}=="1"
    ATTRS{urbnum}=="36"
    ATTRS{ltm_capable}=="no"
    ATTRS{configuration}==""
    ATTRS{bcdDevice}=="0000"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{idProduct}=="0024"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{rx_lanes}=="1"
    ATTRS{idVendor}=="8087"
    ATTRS{devpath}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bmAttributes}=="e0"
    ATTRS{authorized}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{busnum}=="3"
    ATTRS{bDeviceClass}=="09"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3':
    KERNELS=="usb3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{removable}=="unknown"
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{devnum}=="1"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{authorized}=="1"
    ATTRS{maxchild}=="2"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{ltm_capable}=="no"
    ATTRS{bDeviceClass}=="09"
    ATTRS{idProduct}=="0002"
    ATTRS{quirks}=="0x0"
    ATTRS{busnum}=="3"
    ATTRS{idVendor}=="1d6b"
    ATTRS{tx_lanes}=="1"
    ATTRS{rx_lanes}=="1"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{manufacturer}=="Linux 4.19.0-13-amd64 ehci_hcd"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bmAttributes}=="e0"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{version}==" 2.00"
    ATTRS{urbnum}=="24"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bcdDevice}=="0419"
    ATTRS{devpath}=="0"
    ATTRS{serial}=="0000:00:1d.0"
    ATTRS{speed}=="480"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{authorized_default}=="1"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0':
    KERNELS=="0000:00:1d.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="ehci-pci"
    ATTRS{uframe_periodic_max}=="100"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{subsystem_device}=="0x1e26"
    ATTRS{ari_enabled}=="0"
    ATTRS{numa_node}=="-1"
    ATTRS{msi_bus}=="1"
    ATTRS{enable}=="1"
    ATTRS{driver_override}=="(null)"
    ATTRS{subsystem_vendor}=="0x8086"
    ATTRS{companion}==""
    ATTRS{broken_parity_status}=="0"
    ATTRS{device}=="0x1e26"
    ATTRS{local_cpulist}=="0-1"
    ATTRS{local_cpus}=="3"
    ATTRS{revision}=="0x04"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{irq}=="23"
    ATTRS{class}=="0x0c0320"
    ATTRS{vendor}=="0x8086"
    ATTRS{d3cold_allowed}=="1"

  looking at parent device '//devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

root@raspberry:/home/pi# 

root@raspberry:/home/pi# udevadm info --attribute-walk --path=$(udevadm info --query=path --name=/dev/video3)

Udevadm info starts with the device specified by the devpath and then
walks up the chain of parent devices. It prints for every device
found, all possible attributes in the udev rules key format.
A rule to match, can be composed by the attributes of the device
and the attributes from one single parent device.

  looking at device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.4/3-1.4:1.0/video4linux/video3':
    KERNEL=="video3"
    SUBSYSTEM=="video4linux"
    DRIVER==""
    ATTR{index}=="1"
    ATTR{name}=="AN-VC500 Camera"
    ATTR{dev_debug}=="0"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.4/3-1.4:1.0':
    KERNELS=="3-1.4:1.0"
    SUBSYSTEMS=="usb"
    DRIVERS=="uvcvideo"
    ATTRS{bInterfaceClass}=="0e"
    ATTRS{iad_bFirstInterface}=="00"
    ATTRS{bInterfaceSubClass}=="01"
    ATTRS{bInterfaceNumber}=="00"
    ATTRS{iad_bFunctionClass}=="0e"
    ATTRS{bNumEndpoints}=="01"
    ATTRS{bAlternateSetting}==" 0"
    ATTRS{iad_bFunctionProtocol}=="00"
    ATTRS{authorized}=="1"
    ATTRS{iad_bInterfaceCount}=="02"
    ATTRS{iad_bFunctionSubClass}=="03"
    ATTRS{supports_autosuspend}=="1"
    ATTRS{bInterfaceProtocol}=="00"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1/3-1.4':
    KERNELS=="3-1.4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{devpath}=="1.4"
    ATTRS{bMaxPower}=="500mA"
    ATTRS{tx_lanes}=="1"
    ATTRS{bmAttributes}=="80"
    ATTRS{configuration}==""
    ATTRS{ltm_capable}=="no"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{idVendor}=="043e"
    ATTRS{product}=="AN-VC500 Camera"
    ATTRS{quirks}=="0x0"
    ATTRS{speed}=="480"
    ATTRS{maxchild}=="0"
    ATTRS{idProduct}=="3012"
    ATTRS{authorized}=="1"
    ATTRS{busnum}=="3"
    ATTRS{version}==" 2.00"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{rx_lanes}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bcdDevice}=="1115"
    ATTRS{bDeviceSubClass}=="02"
    ATTRS{devnum}=="4"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bDeviceClass}=="ef"
    ATTRS{manufacturer}=="LGE"
    ATTRS{urbnum}=="195939"
    ATTRS{bNumInterfaces}==" 4"
    ATTRS{removable}=="removable"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3/3-1':
    KERNELS=="3-1"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{bDeviceClass}=="09"
    ATTRS{speed}=="480"
    ATTRS{bmAttributes}=="e0"
    ATTRS{idProduct}=="0024"
    ATTRS{quirks}=="0x0"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{removable}=="fixed"
    ATTRS{devnum}=="2"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{idVendor}=="8087"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{configuration}==""
    ATTRS{bcdDevice}=="0000"
    ATTRS{version}==" 2.00"
    ATTRS{ltm_capable}=="no"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{urbnum}=="36"
    ATTRS{tx_lanes}=="1"
    ATTRS{devpath}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{busnum}=="3"
    ATTRS{maxchild}=="4"
    ATTRS{rx_lanes}=="1"
    ATTRS{authorized}=="1"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0/usb3':
    KERNELS=="usb3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{product}=="EHCI Host Controller"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{speed}=="480"
    ATTRS{authorized_default}=="1"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{configuration}==""
    ATTRS{tx_lanes}=="1"
    ATTRS{idVendor}=="1d6b"
    ATTRS{busnum}=="3"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{devpath}=="0"
    ATTRS{bmAttributes}=="e0"
    ATTRS{maxchild}=="2"
    ATTRS{removable}=="unknown"
    ATTRS{ltm_capable}=="no"
    ATTRS{idProduct}=="0002"
    ATTRS{serial}=="0000:00:1d.0"
    ATTRS{urbnum}=="24"
    ATTRS{bcdDevice}=="0419"
    ATTRS{manufacturer}=="Linux 4.19.0-13-amd64 ehci_hcd"
    ATTRS{version}==" 2.00"
    ATTRS{quirks}=="0x0"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{authorized}=="1"
    ATTRS{devnum}=="1"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{rx_lanes}=="1"
    ATTRS{bDeviceClass}=="09"

  looking at parent device '//devices/pci0000:00/0000:00:1d.0':
    KERNELS=="0000:00:1d.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="ehci-pci"
    ATTRS{ari_enabled}=="0"
    ATTRS{numa_node}=="-1"
    ATTRS{local_cpus}=="3"
    ATTRS{broken_parity_status}=="0"
    ATTRS{device}=="0x1e26"
    ATTRS{consistent_dma_mask_bits}=="32"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{subsystem_vendor}=="0x8086"
    ATTRS{dma_mask_bits}=="32"
    ATTRS{uframe_periodic_max}=="100"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{class}=="0x0c0320"
    ATTRS{companion}==""
    ATTRS{irq}=="23"
    ATTRS{msi_bus}=="1"
    ATTRS{vendor}=="0x8086"
    ATTRS{local_cpulist}=="0-1"
    ATTRS{subsystem_device}=="0x1e26"
    ATTRS{revision}=="0x04"

  looking at parent device '//devices/pci0000:00':
    KERNELS=="pci0000:00"
    SUBSYSTEMS==""
    DRIVERS==""

root@raspberry:/home/pi# 

21

Odp: Raspberry Pi Desktop

Coś magicznie ci ten udev działa...

Masz niepotrzebny router, uszkodzony czy nie - chętnie przygarnę go.

22

Odp: Raspberry Pi Desktop

Rozkładam ręce, może jutro wrócę do tego smile
Idę z psem przewietrzyć umysł smile

23

Odp: Raspberry Pi Desktop

U mnie na rulesach mam ustawione ATTR{index}=="0" na wszystkich kamerach (tyle, że na innej Rpi z kamerkami, nie tam co mam kamery przy drukarkach, właśnie na tym Rpi miałem problem z kamerami i indeksami). To jest prawdopodobnie index tego /dev/videoX na danej kamery a nie dla wszystkich kamer (czyli jak kamerka ma /dev/video2 i /dev/video3 to interesuje nas index 0).

U mnie w przypadku Samsunga TC241W wszystko wygląda dokładnie tak:

/etc/udev/rules.d/20-cameras.rules

# Prusa i3
KERNEL=="video*", ATTRS{name}=="Lenovo EasyCamera", SYMLINK+="cameras/prusa"

# Anet A8
KERNEL=="video*", ATTRS{name}=="HP Webcam-101: HP Webcam-101", SYMLINK+="cameras/anet"

/etc/motion/motion.conf

daemon on

process_id_file /var/run/motion/motion.pid

setup_mode off

logfile /var/log/motion/motion.log

log_level 6

log_type all

output_pictures off

stream_maxrate 30

stream_limit 0

stream_localhost off

webcontrol_port 8080

webcontrol_localhost off

webcontrol_html_output on

quiet on

/etc/motion/camera1.conf

camera_id = 1

videodevice /dev/cameras/prusa

input -1

text_left Prusa i3

rotate 180

stream_port 8001

/etc/motion/camera2.conf

camera_id = 2

videodevice /dev/cameras/anet

input -1

text_left Anet A8

rotate 180

stream_port 8002

Jakbyś chciał zainstalować motion to pamiętaj żeby mieć w /etc/default/motion

# set to 'yes' to enable the motion daemon
start_motion_daemon=yes

i potem

service motion restart
WR1043ND v1/v2, R6220, IGEL-H820C, HP T610, HP T510, Wyse DX0D, 3COM 4200G
OpenWRT, Luci, LibreNMS, Domoticz, Nginx, ZeroTier

24

Odp: Raspberry Pi Desktop

A czy oprócz tego masz coś dodane w  /etc/udev/rules.d w pliku 99-usb.rules ?

25

Odp: Raspberry Pi Desktop

Nie mam takiego pliku. Ogólnie z tego co pamiętam, to usb-modeswitch generuje jakiś dodatkowy plik z rulesami, jednak ja go nie posiadam ponieważ nie używam tam żadnego modemu.

WR1043ND v1/v2, R6220, IGEL-H820C, HP T610, HP T510, Wyse DX0D, 3COM 4200G
OpenWRT, Luci, LibreNMS, Domoticz, Nginx, ZeroTier