Установите v4l2loopback в WSL2

В настоящее время я пытаюсь установить v4l2loopback на WSL2.

Некоторый контекст:

Недавно я прочитал о создать виртуальное видеоустройство в Linux, а затем имитировать его вывод из файла изображения или видео.

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

После некоторого исследования я пришел к выводу, что не хочу использовать настольные приложения, и их может легко запустить даже в CI или подобном, поэтому v4l2loopback выглядит неплохо, но в настоящее время я использую Windows.

Я включил WSL2 на своем компьютере, загрузил репо и попытался выполнить команду make, как в описании репо.

Building v4l2-loopback driver...
make -C /lib/modules/`uname -r`/build M=/home/angel/v4l2loopback modules
make[1]: *** /lib/modules/4.19.84-microsoft-standard/build: No such file or directory.  Stop.
make: *** [Makefile:43: v4l2loopback.ko] Error 2

Я немного погуглил и обнаружил, что проблема на GitHub упомянут аналогичный вывод (для другого инструмента). Там кто-то упомянул, что конфигурация ядра WSL2 можно настроить, чтобы добавить больше модулей (возможно, и, надеюсь, один из них сможет заставить работать v4l2-loopback ???? или, по крайней мере, я так думаю).

Я также погуглил, чтобы проверить пользовательские сборки WSL но я не совсем уверен, что мне нужно, чтобы это работало, и даже если я иду в правильном направлении.

Я что-то упустил, чтобы v4l2loopback заработал?

Что мне делать, если будет работать только пользовательская сборка WSL2?

Заранее спасибо ????


person Angel Fraga Parodi    schedule 28.07.2020    source источник
comment
По крайней мере, вам также понадобятся заголовки для разработки ядра.   -  person Roadowl    schedule 02.08.2020
comment
Привет, @Roadowl, спасибо за ответ, вы имеете в виду, что я должен установить что-то еще в экземпляре WSL2? не могли бы вы немного расширить свой ответ? Я не знаком с ядром Linux.   -  person Angel Fraga Parodi    schedule 02.08.2020
comment
Я не знаком с WSL, но, возможно, это может быть более полезным для вас: github.com/microsoft / WSL / issues / 4128, docs.microsoft.com / ru-ru / windows / wsl / wsl2-kernel.   -  person Roadowl    schedule 02.08.2020
comment
Сначала вам нужно узнать версию Linux, которую вы используете. На кли сделайте uname -a. Для этой версии ядра вам потребуются заголовки разработки ядра. В диспетчере пакетов найдите «заголовки разработки ядра» (или «разработка ядра»). Затем попробуйте собрать модуль v4lloopback.   -  person Roadowl    schedule 02.08.2020
comment
А, похоже, в WSL вообще нет ядра Linux: см. unix.stackexchange.com/questions/594470/. Так что создавать мод v4lloopback бесполезно, поскольку даже если бы вы смогли его собрать, не на что его загружать. Возможно, альтернативой для вас может быть запуск виртуального бокса на вашем компьютере с Windows и загрузка в него настоящего дистрибутива Linux по вашему выбору. Затем соберите мод (после установки заголовков разработки ядра).   -  person Roadowl    schedule 02.08.2020
comment
Итак, вы в пути. Намного элегантнее и проще. Также вы сделаете огромный и важный подъем по лестнице «знакомства с Linux». Я бы пошел на это.   -  person Roadowl    schedule 02.08.2020
comment
@Roadowl, вау, спасибо, я думаю, что сейчас понимаю, что происходит с WSL2 и его модулями. Еще раз спасибо, пожалуйста, суммируйте все свои комментарии как один действительный ответ.   -  person Angel Fraga Parodi    schedule 02.08.2020
comment
@AngelFragaParodi теперь, когда Roadowl опубликовал ответ, пожалуйста, примите его (чтобы вопрос больше не появлялся, поскольку требует внимания)   -  person umläute    schedule 21.09.2020


Ответы (1)


Я не знаком с WSL ...

- А, похоже, в WSL вообще нет ядра Linux: см. https://unix.stackexchange.com/questions/594470/wsl-2-does-not-have-lib-modules. Так что создавать мод v4l2loopback бесполезно; даже если бы вы смогли его собрать, нет ничего, нет ядра, чтобы его загрузить!

Возможно, альтернативой для вас может быть запуск Virtualbox (он бесплатный и доступен для Windows) на вашем компьютере с Windows и загрузка в него настоящего дистрибутива Linux по вашему выбору. Затем соберите модуль v4l2loop, после установки заголовков разработки ядра, установите мод (после сборки, как root do insmod v4l2loop.ko) и поиграйте с ним.

Итак, вы в пути. Намного элегантнее и проще. Также вам будет предложено совершить огромный и важный подъем по лестнице «знакомства с Linux», а также, возможно, познакомиться с виртуальной машиной (?).

Я бы определенно пошел на это.

person Roadowl    schedule 01.08.2020