2017-12-06 6 views
0

Ich versuche, den v4l2loopback Treiber zu beheben, um mit udev zu arbeiten (zu haben, dass udev automatisch stabile Gerätenamen zuweisen).machen Linux virtuellen Gerätetreiber arbeiten mit udev

Das Problem scheint zu sein, dass der Gerätetreiber nicht ein paar Felder aussetzt, die von udev scheinbar erforderlich sind, richtig mit dem Standard 60-persistent-v4l.rules zu arbeiten, und zwar:

  • ID_BUS
  • ID_SERIAL
  • ID_PATH

auch dann, wenn udevadm test-builtin path_id auf dem Gerät läuft nicht retur n alles (und der Exit-Code ist 1).

Jedes Beispiel, das ich im Netz gefunden habe, geht davon aus, dass ich einen USB-Gerätetreiber schreiben möchte. Leider gilt dies nicht für das Gerät v4l2loopback, bei dem es sich um ein virtual Gerät handelt.

Die Frage ist also:

Wie kann ich hinzufügen PATH, SERIAL und BUS Eigenschaften zu einem virtuellen Gerätetreiber, um udev sie sehen zu machen?

Hinweis: Die Frage zielt wirklich darauf ab, den Gerätetreiber so zu reparieren, dass er gut mit vorhandenen udev-Regeln zusammenpasst (anstatt zwev so zu optimieren, dass er das Gerät richtig erkennt).

Antwort

0

Führen Sie diesen Befehl, alles zu sehen von Linux-Kernel den User-Space udev gesendet:

$ udevadm monitor --environment --udev 

Wenn dies zeigt, was Sie es brauchen dann Datei in der Regel sonst ein Shell-Skript erstellen verwenden, rufen Sie das Skript aus udev Regeldatei und dann vom Shell-Skript parsen Sie sysfs, um Parameter zu erhalten, nach denen Sie suchen. Dies ist eine typische Standardmethode dafür.

Die Umgebungsvariablen werden vom Kernel mit der Funktion add_uevent_var() gesendet. Im Kernel rufen hauptsächlich Core-, Klassen- und Bustreiber Funktionen auf, um uevent zu erstellen und zu senden. Werfen Sie einen Blick auf diese link, um Bus und Klasse-Treiber zu notieren. This link ist auch hilfreich, um mehr darüber zu erkunden.

Ein wichtiger Unterschied zwischen virtuellem und echtem Gerät ist, wenn wir Zugang zu kobject bekommen, auf dem wir Funktionen aufrufen können.

+0

danke; Die Frage war vielmehr darauf ausgerichtet, den Gerätetreiber so zu optimieren, dass er gut mit bestehenden udev-Regeln zusammenspielt. Ich denke, das Q braucht etwas Klärung ... –

Verwandte Themen