Einbinden verhindern von USB-Ports für Webcam-Server

Hallo zusammen,

ich habe das Problem, dass ich neben dem Repetier-Server auf dem RPi noch Hyperion laufen habe.
Hyperion benutzt einen USB-Grabber zum einfangen von Bildern um diese zum Ambilight umzuwandeln.

Der Webcam-Server bindet beim starten meine Logitech Webcam und den USB-Grabber ein und blockiert so die Bildübertragung zu Hyperion.
Im Moment behelfe ich mir mit dem löschen der USB ID vom Grabber im Ordner /dev/v4l/by-id/ und neustart des Webcam-Servers.
Allerdings bindet er nach einem RPi Neustart den Grabber wieder ein. Ich lasse mitlerweile ein Skript beim Hochfahren laufen, welches die Grabber-ID löscht.

Gibt es die Möglichkeit das Einbinden des Grabbers zu verhindern ?

Webcam.conf steht auf
WEBCAM_DIR=/dev/v4l/by-id/*

Das Skript sieht wie folgt aus und wird über die rc.local aufgerufen:

#!/bin/bash
rm /dev/v4l/by-id/usb-MACROSIL_AV_TO_USB2.0-video-index0
rm /dev/v4l/by-id/usb-MACROSIL_AV_TO_USB2.0-video-index1

Danke für eure Hilfe

Comments

  • Das ist eine udev rule. Wir haben die Datei /etc/udev/rules.d/11-mjpg_streamer.rules hinzugefügt um jede webcam automatisch mit mjpg_streamer zu verbinden. Datei löschen und neu booten und es werden keine webcams mehr von mjpg_streamer automatisch gestartet. Wenn du eine brauchst must du es dann manuell starten oder anders einbauen.
  • Repetier said:
    Das ist eine udev rule. Wir haben die Datei /etc/udev/rules.d/11-mjpg_streamer.rules hinzugefügt um jede webcam automatisch mit mjpg_streamer zu verbinden. Datei löschen und neu booten und es werden keine webcams mehr von mjpg_streamer automatisch gestartet. Wenn du eine brauchst must du es dann manuell starten oder anders einbauen.

    Hi,
    vielen Dank für den Tipp, so klappt es.
    Allerdings muss ich mein Skript zusätzlich laufen lassen, Hyperion scheint da sehr empfindlich zu sein, was die Grabber ID in /dev/v4l/by-id/ angeht.

  • Versteh das Problem nicht. Wenn du die Datei entfernst und neu startest startet mjpg_streamer nicht durch uns. Danach benutzen wir die webcam nicht und der grabber kann mit der webcam machen was er will.
  • Verstehe ich ehrlich gesagt auch nicht. Als es noch nicht funktionert hat konnte ich als Webcam den Grabber auswählen. Ich habe also quasi als Webcam Bild das TV-Bild gehabt. Dann habe ich aus dem ID Ordner den Grabber gelöscht, s.o. was ich anschließend mit dem Skript beim Systemstart gemacht habe. Als alles hochgefahren war (inkl. Skript oder manuell löschen) musste ich einmal im Browser auf Restart Webcam-Server klicken, danach bei Hyperion den Grabber deaktivieren und wieder aktivieren damit ich ein Bild bekomme.

    Durch deinen Tipp mit dem löschen der rule kann ich tatsächlich den Grabber im Webcam-Server zwar anwählen, bekomme aber kein Bild mehr. Ist also nicht mehr eingebunden bzw aktiviert. Die Webcam funktioniert weiterhin. Soweit so gut, aber auch Hyperion bekommt kein Bild.

    Ich muss dann den Grabber wieder aus dem ID-Ordner löschen und Hyperion bekommt wieder ein Bild.
    Deswegen lass ich das Skript beim Systemstart wieder laufen. Damit hab ich dann das Webcam-Bild bei Repetier und das TV-Bild bei Hyperion.

  • Also willst du eigentlich webcam starten aber nicht grabber device. id wird ja immer wieder neu erstellt. Da würde ich anders vorgehen. Ändere /usr/local/Repetier-Setup/bin/mjpgStart
    füge nach Zeile 5 ein
    if [ "$DEV" == "/dev/v4l/by-id/grabbername" ]; then
    exit 0
    fi
    mit angepasstem pfad für den Grabber. Dann kanst du die rule Datei auch wieder rein nehmen. mjpg_streamer wird dann alles starten mit außnahme dieses gerätes. Falls das Problem dann noch imme rbesteht weiß ich aber auch nicht mehr. Wir haben es ja dann nach dem reboot nicht mal angefasst. Ansonsten ist mit dem neustart klar das er alle geräte testet die gemeldet werden.

  • Hat leider auch nicht funtioniert.
    Ich glaube, dass Problem ist gar nicht, dass der Grabber nicht starten soll, sondern das eigentliche vorhandensein der ID.
    Mit deinem vorgehen bekomme ich auch kein Bild vom Grabber bei Repetier aber auch nicht bei Hyperion.

    Erst nach dem löschen der ID aus dem Ordner überträgt er das Fernsehbild an Hyperion.

    Im Hyperion-Forum habe ich bis heute auch keinen anderen Tipp bekommen, nachdem ich mein Workaround gepostet habe.
    Zumindest funktioniert es ja so.
  • Merkwürdig. Die IDs kommen ja von linux selbst, hat nichts mit uns zu tun. Aber gut das du eine Lösung hast warum auch immer sie funktioniert.
Sign In or Register to comment.