4

I'm using OBS Studio and would like to have a virtual video output saved permanently so that it can be run when the application is launched.

This command creates the virtual output:

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

But I must run the command in console on each boot. How can I make this permanent? The plugin that utilizes the output in OBS Studio is configured to auto start but /dev/video10 is not available after a reboot of the system.

$ 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)
3
  • One on the proper methods was to add the module name to the /etc/modules file . But nowadays the udev subsystem should insert the required drivers automatically . But if you are sure that it doesn't , add the name of the module to the modules file and reboot to check out the result. – Parsa Mousavi May 30 '20 at 15:56
  • There's an /etc/modprobe.d and /etc/modules-load.d but no /etc/modules directory on my system. – Mark Lee May 30 '20 at 16:12
  • @Parsa Mousavi, I had erroneously looked for an /etc/modules folder rather than a file. – Mark Lee May 30 '20 at 22:12
6

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
14
  • I created /etc/modprobe.d/v4l2loopback.conf with the option and rebooted and the loopback seems to have loaded. I'll shut down and restart presently because I noticed that sometimes a reboot comes up with the settings that were present. The result of grep same as before reboot: v4l2loopback 40960 0 videodev 225280 4 videobuf2_v4l2,v4l2loopback,uvcvideo,videobuf2_common – Mark Lee May 30 '20 at 16:48
  • @MarkLee You added the line to /etc/modules, yes? I added an update-initramfs command to my procedure. – heynnema May 30 '20 at 16:51
  • @MarkLee Edit your question and show me modinfo v4l2loopback | grep -i parm. – heynnema May 30 '20 at 17:00
  • There's no /etc/modules on my system. – Mark Lee May 30 '20 at 17:04
  • 1
    @Thor84no Did you add v4l2loopback to /etc/modules, create the .conf file, update-initramfs, and reboot? – heynnema Sep 1 '20 at 15:22
3

Easy way to do it un Ubuntu 20.04 and others:

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

You can restart to check it works!

NOTICE

Be aware of a bug on v4l2loopback-dkms 0.12.3-1ubuntu0.1

More info on this stackoverflow post.

2
  • This is the simple answer, but it will give Permission denied, since sudo applies to echo and not to redirection. You may actually want to pipe echo into sudo tee – renyhp Dec 3 '20 at 8:26
  • Actually: yes, if it used sudo tee this would be the simple way to add the needed configurations. And thank you for the warning about the bug. However, DO NOT FORGET TO DO sudo update-initramfs -c -k $(uname -r) as the other answer reported. I didn't, and I regretted it (keyboard not working; had to run a live Ubuntu to remove the conf files under etc) – renyhp Dec 3 '20 at 9:07

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.