Gelöst: Zwei LXC container mit jeweils einer USB Webcam

Jan 12, 2023
21
0
1
Hallo zusammen,

ich habe einen Prusa 3D Drucker + eine USB Webcam den ich mit Octoprint steuere in einem LXC.
In einer 2. LXC läuft Motioneye wo u.A eine USB Webcam mit gestreamt werden soll.
Also 2 USB Webcams von denen jeweils eine in einen LXC soll.

Ich verwende VE 8.2.2

Das Sonderbare ist:
Wenn ich nur einen der beiden Container laufen lasse, dann funktioniert es in dem jeweiligen Container richtig.
Ich kann also das Bild der Webcam sehen.
Wenn beide laufen, hat motioneye scheinbar keinen Zugriff auf seine Webcam und meldet "Unable to open video device" bzw. Octoprint zeigt "no signal".
Wenn ich in motioneye die Kamera lösche, reboote und die Kamera neu anlegem will, wird mir die richtige Kamera zur Auswahl gegeben, aber es kommt danach "Unable to open video device".
Lasse ich Motioneye zuerst laufen, dann ist es umgekehrt.

Nun zur Konfiguration:

lsusb

Code:
Bus 001 Device 017: ID 3443:60bb webcamvendor NexiGo N60 FHD Webcam Audio      (für Motioneye)
Bus 001 Device 019: ID 2c99:0002 Prusa Original Prusa i3 MK3                  
Bus 001 Device 020: ID 1b3f:2247 Generalplus Technology Inc. GENERAL WEBCAM    (für Prusa 3D Drucker)


ls -l /dev/video

Code:
crw-rw-rw- 1 root video 81, 0 May 13 17:38 /dev/video0
crw-rw-rw- 1 root video 81, 1 May 13 17:38 /dev/video1
crw-rw-rw- 1 root video 81, 2 May 13 17:38 /dev/video2
crw-rw-rw- 1 root video 81, 3 May 13 17:38 /dev/video3

nano /etc/udev/rules.d/98-usb-video.rules

Code:
# Webcam : Nexio für Motioneye
SUBSYSTEM=="video4linux", ATTRS{idVendor}=="3443", ATTRS{idProduct}=="60bb", ATTR{index}=="0", MODE="0666", GROUP="video", SYMLINK+="video10"
SUBSYSTEM=="video4linux", ATTRS{idVendor}=="3443", ATTRS{idProduct}=="60bb", ATTR{index}=="1", MODE="0666", GROUP="video", SYMLINK+="video11"

# Webcam : Generalplus Prusa
SUBSYSTEM=="video4linux", ATTRS{idVendor}=="1b3f", ATTRS{idProduct}=="2247", ATTR{index}=="0", MODE="0666", GROUP="video", SYMLINK+="video20"
SUBSYSTEM=="video4linux", ATTRS{idVendor}=="1b3f", ATTRS{idProduct}=="2247", ATTR{index}=="1", MODE="0666", GROUP="video", SYMLINK+="video21"

udevadm trigger
ls -l /dev/video*

Code:
crw-rw-rw- 1 root video 81, 0 May 13 17:38 /dev/video0
crw-rw-rw- 1 root video 81, 1 May 13 17:38 /dev/video1
lrwxrwxrwx 1 root root      6 May 13 17:38 /dev/video10 -> video0
lrwxrwxrwx 1 root root      6 May 13 17:38 /dev/video11 -> video1
crw-rw-rw- 1 root video 81, 2 May 13 17:38 /dev/video2
lrwxrwxrwx 1 root root      6 May 13 17:38 /dev/video20 -> video2
lrwxrwxrwx 1 root root      6 May 13 17:38 /dev/video21 -> video3
crw-rw-rw- 1 root video 81, 3 May 13 17:38 /dev/video3


nano /etc/pve/lxc/108.conf

Code:
## Motioneye LXC
arch: amd64
cores: 2
features: nesting=1
hostname: motioneye
memory: 1024
net0: name=eth0,bridge=vmbr0,gw=192.168.0.1,hwaddr=A2:F2:91:77:C9:0F,ip=192.168.100.7/16,type=veth
onboot: 1
ostype: debian
rootfs: local_zfs_sda:subvol-108-disk-0,size=8G
swap: 512
lxc.cap.drop:
lxc.cgroup2.devices.allow: c 81:* rwm
lxc.mount.entry: /dev/video10 dev/video0 none bind,optional,create=file
lxc.mount.entry: /dev/video11 dev/video1 none bind,optional,create=file

nano /etc/pve/lxc/110.conf

Code:
#Prusa container
arch: amd64
cores: 1
hostname: octoprint
memory: 1024
net0: name=eth0,bridge=vmbr0,hwaddr=BC:24:11:36:9A:6F,ip=dhcp,type=veth
onboot: 1
ostype: debian
rootfs: local_zfs_sda:subvol-110-disk-0,size=8G
swap: 512
lxc.cap.drop:
lxc.cgroup2.devices.allow: c 166:* rwm
lxc.cgroup2.devices.allow: c 81:* rwm
lxc.mount.entry: /dev/ttyPrusa dev/ttyUSB0 none bind,optional,create=file
lxc.mount.entry: /dev/video20 dev/video0 none bind,optional,create=file
lxc.mount.entry: /dev/video21 dev/video1 none bind,optional,create=file

Vielleicht sieht Jemand auf Anhiebe was ich falsch gemacht habe.
Danke.
 
Last edited:
Ich habe es gefunden.
Im Container bei dem es gerade Probleme mit der Kamera gab, habe ich folgendes gemacht:


vi /var/log/messages

Im log habe ich das gefunden: "Not enough bandwidth for new device state"

mit lsusb -t
habe ich mir angeschaut woran die Kameras hingen

Code:
/:  Bus 01.Port 1: Dev 1, Class=root_hub, Driver=xhci_hcd/9p, 480M
    |__ Port 1: Dev 2, If 0, Class=Hub, Driver=hub/4p, 480M
        |__ Port 2: Dev 28, If 3, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 2: Dev 28, If 1, Class=Video, Driver=uvcvideo, 480M
        |__ Port 2: Dev 28, If 2, Class=Audio, Driver=snd-usb-audio, 480M
        |__ Port 2: Dev 28, If 0, Class=Video, Driver=uvcvideo, 480M
        |__ Port 4: Dev 22, If 0, Class=Hub, Driver=hub/4p, 480M
            |__ Port 1: Dev 24, If 3, Class=Audio, Driver=snd-usb-audio, 480M
            |__ Port 1: Dev 24, If 1, Class=Video, Driver=uvcvideo, 480M
            |__ Port 1: Dev 24, If 2, Class=Audio, Driver=snd-usb-audio, 480M
            |__ Port 1: Dev 24, If 0, Class=Video, Driver=uvcvideo, 480M
            |__ Port 2: Dev 23, If 0, Class=Communications, Driver=cdc_acm, 12M
            |__ Port 2: Dev 23, If 1, Class=CDC Data, Driver=cdc_acm, 12M
    |__ Port 6: Dev 3, If 0, Class=Hub, Driver=hub/2p, 480M

Leider am gleichen Gerät. Nach dem Umstecken gehen jetzt beide Kameras parallel.
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!