• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Logitech C920s einstellen

avd700

Member
Hallo,
hab mir diese Webcam zugelegt und angeschlossen.
Hat auch sofort funktioniert. Aber wenn das Licht Abends
an ist, fängt das Bild an zu flimmern. Mit dem Programm
Webcamoid kann ich die Frequenz ändern auf 50HZ.
dann ist es gut, aber beim nächsten Start ist alles wieder wies
war.
Ich hab ein paar Anleitungen angeschaut wo man über die
Konsole ein script schreiben kann? mit einem nano Editor?
aber ich kriegs einfach nicht hin.
Bei diesem Befehl
v4l2-ctl -d /dev/video0 --list-ctrls
bekomm ich folgende Ausgabe
Code:
 brightness 0x00980900 (int)    : min=0 max=255 step=1 default=128 value=128
                       contrast 0x00980901 (int)    : min=0 max=255 step=1 default=128 value=128
                     saturation 0x00980902 (int)    : min=0 max=255 step=1 default=128 value=128
 white_balance_temperature_auto 0x0098090c (bool)   : default=1 value=1
                           gain 0x00980913 (int)    : min=0 max=255 step=1 default=0 value=72
           power_line_frequency 0x00980918 (menu)   : min=0 max=2 default=2 value=2
      white_balance_temperature 0x0098091a (int)    : min=2000 max=6500 step=1 default=4000 value=4880 flags=inactive
                      sharpness 0x0098091b (int)    : min=0 max=255 step=1 default=128 value=128
         backlight_compensation 0x0098091c (int)    : min=0 max=1 step=1 default=0 value=0
                  exposure_auto 0x009a0901 (menu)   : min=0 max=3 default=3 value=3
              exposure_absolute 0x009a0902 (int)    : min=3 max=2047 step=1 default=250 value=333 flags=inactive
         exposure_auto_priority 0x009a0903 (bool)   : default=0 value=1
                   pan_absolute 0x009a0908 (int)    : min=-36000 max=36000 step=3600 default=0 value=0
                  tilt_absolute 0x009a0909 (int)    : min=-36000 max=36000 step=3600 default=0 value=0
                 focus_absolute 0x009a090a (int)    : min=0 max=250 step=5 default=0 value=30 flags=inactive
                     focus_auto 0x009a090c (bool)   : default=1 value=1
                  zoom_absolute 0x009a090d (int)    : min=100 max=500 step=1 default=100 value=100

Geändert werden müsste diese Zeile
power_line_frequency 0x00980918 (menu) : min=0 max=2 default=2 value=2

auf default =1

Ich wär um eine Anleitung dankbar
 

josef-wien

Ultimate Guru
An Hand von https://blog.christophersmart.com/2017/02/07/fixing-webcam-flicker-in-linux-with-udev/ und https://github.com/teltek/Galicaster-doc/blob/master/GalicasterConfiguration/DeviceModules/Devices/Logitech.md läßt sich eine udev-Regel erstellen. Wenn Du dabei Hilfe brauchst, dann verrate uns mehr über das Gerät (als normaler Benutzer bei angeschlossener Kamera):
Code:
/sbin/udevadm info -a -p $(/sbin/udevadm info -q path -n /dev/video0)
Code:
/sbin/udevadm info -q all -p $(/sbin/udevadm info -q path -n /dev/video0)
Code:
getfacl /dev/video0
Außerdem wollen wir wissen, welche Distribution und welche graphische Oberfläche Du verwendest.
 
OP
A

avd700

Member
Code:
looking at parent device '/devices/pci0000:00/0000:00:14.0':
    KERNELS=="0000:00:14.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x1e31"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="25"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{local_cpus}=="ff"
    ATTRS{msi_bus}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{revision}=="0x04"
    ATTRS{subsystem_device}=="0x5007"
    ATTRS{subsystem_vendor}=="0x1458"
    ATTRS{vendor}=="0x8086"

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

Code:
/sbin/udevadm info -q all -p $(/sbin/udevadm info -q path -n /dev/video0)
P: /devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/video4linux/video0
N: video0
S: v4l/by-id/usb-046d_HD_Pro_Webcam_C920_529FDC1F-video-index0
S: v4l/by-path/pci-0000:00:14.0-usb-0:4:1.0-video-index0
E: DEVLINKS=/dev/v4l/by-path/pci-0000:00:14.0-usb-0:4:1.0-video-index0 /dev/v4l/by-id/usb-046d_HD_Pro_Webcam_C920_529FDC1F-video-index0
E: DEVNAME=/dev/video0
E: DEVPATH=/devices/pci0000:00/0000:00:14.0/usb1/1-4/1-4:1.0/video4linux/video0
E: ID_BUS=usb
E: ID_FOR_SEAT=video4linux-pci-0000_00_14_0-usb-0_4_1_0
E: ID_MODEL=HD_Pro_Webcam_C920
E: ID_MODEL_ENC=HD\x20Pro\x20Webcam\x20C920
E: ID_MODEL_ID=0892
E: ID_PATH=pci-0000:00:14.0-usb-0:4:1.0
E: ID_PATH_TAG=pci-0000_00_14_0-usb-0_4_1_0
E: ID_REVISION=0019
E: ID_SERIAL=046d_HD_Pro_Webcam_C920_529FDC1F
E: ID_SERIAL_SHORT=529FDC1F
E: ID_TYPE=video
E: ID_USB_DRIVER=uvcvideo
E: ID_USB_INTERFACES=:0e0100:0e0200:010100:010200:
E: ID_USB_INTERFACE_NUM=00
E: ID_V4L_CAPABILITIES=:capture:
E: ID_V4L_PRODUCT=HD Pro Webcam C920
E: ID_V4L_VERSION=2
E: ID_VENDOR=046d
E: ID_VENDOR_ENC=046d
E: ID_VENDOR_ID=046d
E: MAJOR=81
E: MINOR=0
E: SUBSYSTEM=video4linux
E: TAGS=:uaccess:seat:
E: USEC_INITIALIZED=3717226

Code:
getfacl /dev/video0
getfacl: Entferne führende '/' von absoluten Pfadnamen
# file: dev/video0
# owner: root
# group: video
user::rw-
user:helmut:rw-
group::rw-
mask::rw-
other::---

Danke schon mal für die Hilfe aber das ist für mich ein spanisches Dorf :???:
was da so rauskommt
 

josef-wien

Ultimate Guru
Die Ausgabe zum ersten Befehl ist unvollständig, der Anfang fehlt. Der letzte Satz harrt auch noch einer Antwort.
 
OP
A

avd700

Member
oh, da hab ich was übersehen bei der ersten Ausgabe :roll:

Code:
helmut@linux-onwv:~> /sbin/udevadm info -a -p $(/sbin/udevadm info -q path -n /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:14.0/usb3/3-4/3-4:1.0/video4linux/video0':
    KERNEL=="video0"
    SUBSYSTEM=="video4linux"
    DRIVER==""
    ATTR{dev_debug}=="0"
    ATTR{index}=="0"
    ATTR{name}=="HD Pro Webcam C920"

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

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3/3-4':
    KERNELS=="3-4"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="ef"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bDeviceSubClass}=="02"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="500mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 4"
    ATTRS{bcdDevice}=="0019"
    ATTRS{bmAttributes}=="80"
    ATTRS{busnum}=="3"
    ATTRS{configuration}==""
    ATTRS{devnum}=="3"
    ATTRS{devpath}=="4"
    ATTRS{idProduct}=="0892"
    ATTRS{idVendor}=="046d"
    ATTRS{ltm_capable}=="no"
    ATTRS{maxchild}=="0"
    ATTRS{product}=="HD Pro Webcam C920"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="removable"
    ATTRS{serial}=="529FDC1F"
    ATTRS{speed}=="480"
    ATTRS{urbnum}=="5263"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0/usb3':
    KERNELS=="usb3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{authorized}=="1"
    ATTRS{authorized_default}=="1"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bDeviceClass}=="09"
    ATTRS{bDeviceProtocol}=="01"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bMaxPacketSize0}=="64"
    ATTRS{bMaxPower}=="0mA"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bNumInterfaces}==" 1"
    ATTRS{bcdDevice}=="0412"
    ATTRS{bmAttributes}=="e0"
    ATTRS{busnum}=="3"
    ATTRS{configuration}==""
    ATTRS{devnum}=="1"
    ATTRS{devpath}=="0"
    ATTRS{idProduct}=="0002"
    ATTRS{idVendor}=="1d6b"
    ATTRS{interface_authorized_default}=="1"
    ATTRS{ltm_capable}=="no"
    ATTRS{manufacturer}=="Linux 4.12.14-lp151.28.32-default xhci-hcd"
    ATTRS{maxchild}=="4"
    ATTRS{product}=="xHCI Host Controller"
    ATTRS{quirks}=="0x0"
    ATTRS{removable}=="unknown"
    ATTRS{serial}=="0000:00:14.0"
    ATTRS{speed}=="480"
    ATTRS{urbnum}=="50"
    ATTRS{version}==" 2.00"

  looking at parent device '/devices/pci0000:00/0000:00:14.0':
    KERNELS=="0000:00:14.0"
    SUBSYSTEMS=="pci"
    DRIVERS=="xhci_hcd"
    ATTRS{broken_parity_status}=="0"
    ATTRS{class}=="0x0c0330"
    ATTRS{consistent_dma_mask_bits}=="64"
    ATTRS{d3cold_allowed}=="1"
    ATTRS{device}=="0x1e31"
    ATTRS{dma_mask_bits}=="64"
    ATTRS{driver_override}=="(null)"
    ATTRS{enable}=="1"
    ATTRS{irq}=="25"
    ATTRS{local_cpulist}=="0-7"
    ATTRS{local_cpus}=="ff"
    ATTRS{msi_bus}=="1"
    ATTRS{numa_node}=="-1"
    ATTRS{revision}=="0x04"
    ATTRS{subsystem_device}=="0x5007"
    ATTRS{subsystem_vendor}=="0x1458"
    ATTRS{vendor}=="0x8086"

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

josef-wien

Ultimate Guru
Erzeuge als root mit einem Dir vertrauten Editor die Datei /etc/udev/rules.d/99-local.rules mit folgendem Inhalt:
Code:
# /etc/udev/rules.d/99-local.rules
#
# udev-Regel zur Einstellung der Bildwiederholfrequenz auf 50 Hz bei "HD Pro Webcam C920"
#
KERNEL=="video[0-9]*", ACTION=="add", SUBSYSTEM=="video4linux", ATTRS{idProduct}=="0892", ATTRS{idVendor}=="046d", PROGRAM="/usr/bin/v4l2-ctl --set-ctrl power_line_frequency=1 --device /dev/%k", SYMLINK+="logitech_c920"
Die Paare mit dem doppelten Gleichheitszeichen sind Abfragen zur Identifkation der Kamera, dann kommen der beim Anschließen auszuführende Befehl und die Erstellung der Verknüpfung /dev/logitech_c920 (denn /dev/video0 wird zwar mit hoher Wahrscheinlichkeit immer so heißen, das muß aber nicht so sein).

Danach führe als root den Befehl
Code:
udevadm control --reload-rules
aus, stecke die Kamera ab und wieder an.

Damit das Ganze auch funktioniert, wenn die Kamera bereits beim Systemstart angeschlossen ist, mußt Du möglicherweise die initrd neu erstellen.

P. S. Da Deine Umgebung offenbar ein Geheimnis bleiben soll, kann man Dich hinsichtlich Editor und initrd nicht unterstützen.
 
OP
A

avd700

Member
Vielen Dank für die Hilfe.

Ich hab vergessen, mein System ist Leap 15.1.
Muß die angelegte Datei im Basisordner in etc liegen?
und initrd neu erstellen sagt mir direkt auch nichts :???:
 

susejunky

Moderator
Teammitglied
Hallo avd700,
avd700 schrieb:
... Muß die angelegte Datei im Basisordner in etc liegen?
Genau wie josef-wien im ersten Kommentar der Datei geschrieben hat:
Code:
# /etc/udev/rules.d/99-local.rules

Speicherort: /etc/udev/rules.d
Dateiname: 99-local.rules

avd700 schrieb:
... initrd neu erstellen sagt mir direkt auch nichts
Dazu als "root" in einer Konsole folgenden Befehl ausführen:
Code:
# dracut -f

Viele Grüße

susejunky
 
OP
A

avd700

Member
hab jetzt alles so wie beschrieben angelegt, funktioniert aber nicht.

mit dem Befehl bekomm ich folgende Ausgabe

Code:
linux-onwv:/home/helmut # dracut -f
dracut: Executing: /usr/bin/dracut -f
dracut: *** Including module: bash ***
dracut: *** Including module: systemd ***
dracut: *** Including module: warpclock ***
dracut: *** Including module: systemd-initrd ***
dracut: *** Including module: i18n ***
dracut: Could not find FONT_MAP none!
dracut: *** Including module: drm ***
dracut: *** Including module: plymouth ***
dracut: *** Including module: btrfs ***
dracut: *** Including module: kernel-modules ***
dracut: *** Including module: resume ***
dracut: *** Including module: rootfs-block ***
dracut: *** Including module: suse-btrfs ***
dracut: *** Including module: suse-xfs ***
dracut: *** Including module: terminfo ***
dracut: *** Including module: udev-rules ***
dracut: Skipping udev rule: 40-redhat.rules
dracut: Skipping udev rule: 50-firmware.rules
dracut: Skipping udev rule: 50-udev.rules
dracut: Skipping udev rule: 91-permissions.rules
dracut: Skipping udev rule: 80-drivers-modprobe.rules
dracut: *** Including module: dracut-systemd ***
dracut: *** Including module: haveged ***
dracut: *** Including module: ostree ***
dracut: *** Including module: usrmount ***
dracut: *** Including module: base ***
dracut: *** Including module: fs-lib ***
dracut: *** Including module: shutdown ***
dracut: *** Including module: suse ***
dracut: *** Including modules done ***
dracut: *** Installing kernel module dependencies and firmware ***
dracut: *** Installing kernel module dependencies and firmware done ***
dracut: *** Resolving executable dependencies ***
dracut: *** Resolving executable dependencies done***
dracut: *** Hardlinking files ***
dracut: *** Hardlinking files done ***
dracut: *** Stripping files ***
dracut: *** Stripping files done ***
dracut: *** Generating early-microcode cpio image ***
dracut: *** Constructing GenuineIntel.bin ****
dracut: *** Store current command line parameters ***
dracut: Stored kernel commandline:
dracut:  resume=UUID=f3420459-3fc5-46eb-8014-af356f1bc55d
dracut:  root=UUID=82c86bdf-4c04-402d-a6eb-12d9f1227a2a rootfstype=btrfs rootflags=rw,relatime,ssd,space_cache,subvolid=259,subvol=/@/.snapshots/1/snapshot,subvol=@/.snapshots/1/snapshot
dracut: *** Creating image file '/boot/initrd-4.12.14-lp151.28.32-default' ***
dracut: *** Creating initramfs image file '/boot/initrd-4.12.14-lp151.28.32-default' done ***
linux-onwv:/home/helmut #

dracut: Could not find FONT_MAP none!

fehlt da irgendwas??
 

josef-wien

Ultimate Guru
Schauen wir einmal, was Du gemacht hast. Welche Ergebnisse liefern (als normaler Benutzer bei angeschlossener Kamera):
Code:
/sbin/udevadm info -q all -p $(/sbin/udevadm info -q path -n /dev/video0)
Code:
grep -i "0892.*046d" /etc/udev/rules.d/*


P. S. Die Meldung von dracut ist nicht besorgniserregend, die initrd wurde erfolgreich erstellt.
 

susejunky

Moderator
Teammitglied
Hallo avd700,
avd700 schrieb:
hab jetzt alles so wie beschrieben angelegt, funktioniert aber nicht.

mit dem Befehl bekomm ich folgende Ausgabe

Code:
linux-onwv:/home/helmut # dracut -f
dracut: Executing: /usr/bin/dracut -f
dracut: *** Including module: bash ***
...
dracut: *** Including module: i18n ***
dracut: Could not find FONT_MAP none!
dracut: *** Including module: drm ***
...
dracut: *** Creating image file '/boot/initrd-4.12.14-lp151.28.32-default' ***
dracut: *** Creating initramfs image file '/boot/initrd-4.12.14-lp151.28.32-default' done ***
linux-onwv:/home/helmut #
dracut: Could not find FONT_MAP none!

fehlt da irgendwas??
Hmmm, eigentlich sollte das mit Deinem Problem nichts zu tun haben.

Eine Internet-Suche mit "dracut: Could not find FONT_MAP none!" ergibt als einen der ersten Treffer https://bugzilla.suse.com/show_bug.cgi?id=1013573 und dort steht im Beitrag #13, wie man die Meldung angeblich eliminieren kann.

Übrigens: das initrd sollte trotz allem erstellt worden sein.

Viele Grüße

susejunky
 
OP
A

avd700

Member
Danke schon mal,
ich werd mich am Wochenende noch mal
damit beschäftigen und mich dann wieder melden.
 
OP
A

avd700

Member
Ich hab mir am WE ein File angelegt, das ausführbar ist.

Hier ist mal der Inhalt

Code:
#!/bin/bash
v4l2-ctl -d /dev/video0 --set-ctrl=exposure_auto=1 
v4l2-ctl -d /dev/video0 --set-ctrl=focus_auto=0
v4l2-ctl -d /dev/video0 --set-ctrl=power_line_frequency=1

Wenn ich auf die Datei klicke kommt ein Fenster worin steht
öffnen,ausführen oder abbrechen.
Wähl ich ausführen macht es was es soll.
Wie könnt ich diese Datei dazu bringen das sie beim Rechnerstart
schon aktiviert wird ? :???:
 

suchenn

Newbie
Danke für die Info, habe auch einen C920 und bei mir war es genauso, ich hatte Probleme bei der Einstellung.
 
Oben