Как автоматически запустить modprobe v4l2loopback при загрузке?

Я использую OBS Studio и хотел бы, чтобы виртуальный видеовыход сохранялся постоянно, чтобы его можно было запускать при запуске приложения.

Эта команда создает виртуальный вывод:

sudo modprobe v4l2loopback video_nr=10 card_label="OBS Video Source" exclusive_caps=1

Но я должен запускать команду в консоли при каждой загрузке. Как я могу сделать это постоянным? Плагин, использующий вывод в OBS Studio, настроен на автоматический запуск, но / dev / video10 недоступен после перезагрузки системы.

$ modinfo v4l2loopback | grep -i parm
parm:           debug:debugging level (higher values == more verbose) (int)
parm:           max_buffers:how many buffers should be allocated (int)
parm:           max_openers:how many users can open loopback device (int)
parm:           devices:how many devices should be created (int)
parm:           video_nr:video device numbers (-1=auto, 0=/dev/video0, etc.) (array of int)
parm:           card_label:card labels for every device (array of charp)
parm:           exclusive_caps:whether to announce OUTPUT/CAPTURE capabilities exclusively or not (array of bool)
parm:           max_width:maximum frame width (int)
parm:           max_height:maximum frame height (int)
1
задан 4 June 2020 в 06:54

2 ответа

Normally kernel modules can be added to /etc/modules for loading at boot time.


Add this to /etc/modules...

v4l2loopback video_nr=10 card_label="OBS Video Source" exclusive_caps=1

However, I don't know if you can pass parameters there. So here's another way to do it.

Add this to /etc/modules...

v4l2loopback

Create /etc/modprobe.d/v4l2loopback.conf

options v4l2loopback video_nr=10 card_label="OBS Video Source" exclusive_caps=1

Then...

sudo update-initramfs -c -k $(uname -r)

reboot

Confirm module loading with...

lsmod | grep -i v4l2loopback
1
ответ дан 19 June 2020 в 21:33

Простой способ сделать это в Ubuntu 20.04 и других:

$ sudo echo "v4l2loopback" > /etc/modules-load.d/v4l2loopback.conf 
$ sudo echo "options v4l2loopback video_nr=10 card_label=\"OBS Video Source\" exclusive_caps=1" > /etc/modprobe.d/v4l2loopback.conf

Вы можете перезапустить, чтобы проверить, работает ли он!

УВЕДОМЛЕНИЕ

Обратите внимание на ошибку в v4l2loopback-dkms 0.12.3-1ubuntu0.1

Дополнительную информацию можно найти в этой записи stackoverflow.

РЕДАКТИРОВАТЬ — Использование tee

Как указал renyhp, лучше использовать команду tee:

$ sudo echo "v4l2loopback" | tee /etc/modules-load.d/v4l2loopback.conf 
$ sudo echo "options v4l2loopback video_nr=10 card_label=\"OBS Video Source\" exclusive_caps=1" | tee /etc/modprobe.d/v4l2loopback.conf

РЕДАКТИРОВАТЬ — Обновить модули

Судя по комментариям, в некоторых системах после перезагрузки могут возникнуть некоторые проблемы. Чтобы этого избежать, всегда рекомендуется обновлять модули:

sudo update-initramfs -c -k $(uname -r)
4
ответ дан 13 November 2020 в 23:26

Другие вопросы по тегам:

Похожие вопросы: