заставить драйвер виртуального устройства Linux работать с udev

Я пытаюсь исправить драйвер v4l2loopback для работы с udev (чтобы udev автоматически назначал стабильные имена устройств).

Проблема, по-видимому, в том, что драйвер устройства не предоставляет несколько полей, которые, по-видимому, необходимы udev для правильной работы со стандартным 60-persistent-v4l.rules, а именно:

  • ID_BUS
  • ID_SERIAL
  • ID_PATH

Кроме того, запуск udevadm test-builtin path_id на устройстве ничего не возвращает (и код выхода - 1).

Теперь любой пример, который я нашел в сети, предполагает, что я хочу написать драйвер USB-устройства. К сожалению, это не так для устройства v4l2loopback, которое является устройством virtual.

Итак, вопрос:

Как добавить свойства PATH, SERIAL и BUS в драйвер виртуального устройства, чтобы udev увидел их?

Примечание. Вопрос действительно направлен на исправление драйвера устройства, чтобы он хорошо сочетался с существующими правилами udev (а не на настройку udev, чтобы он правильно распознавал устройство).


person umläute    schedule 06.12.2017    source источник


Ответы (1)


Запустите эту команду, чтобы увидеть все, что отправлено из ядра Linux в пространство пользователя udev:

$ udevadm monitor --environment --udev

Если это показывает, что вам нужно, используйте его в файле правил, в противном случае создайте сценарий оболочки, вызовите этот сценарий из файла правил udev, а затем из сценария оболочки проанализируйте sysfs, чтобы получить параметры, которые вы ищете. Это типичный стандартный способ сделать это.

Переменные среды отправляются из ядра с помощью функции add_uevent_var(). В ядре в основном драйверы ядра, класса и шины вызывают функции для создания и отправки uevent. Взгляните на эту ссылку, чтобы отметить драйвер класса шины и класса . Эта ссылка также поможет вам узнать больше об этом.

Следует отметить одно важное различие между виртуальным и реальным устройством, когда мы получаем доступ к kobject, для которого мы можем вызывать функции.

person Hercules dd    schedule 07.12.2017
comment
Благодарность; вопрос был действительно больше направлен на настройку драйвера устройства, чтобы он хорошо сочетался с существующими правилами udev. я думаю, вопрос нуждается в некотором уточнении... - person umläute; 07.12.2017