File: README.md

package info (click to toggle)
v4l2loopback 0.15.1-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 664 kB
  • sloc: ansic: 6,550; sh: 301; makefile: 200
file content (70 lines) | stat: -rw-r--r-- 2,144 bytes parent folder | download | duplicates (3)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
developing v4l2loopback with a VM
=================================

Using `Vagrant` with the `VirtualBox` backend


# SETUP

Use the [`Vagrantfile`](#Vagrantfile) below for a Debian/testing based VM.
Replace the host's `/PATH/TO/v4l2loopback` to the full path to the v4l2loopback sources on your disk.

- The VM needs to have all the goodies (VirtualBox extension pack) for sharing host folders and webcams (if you need that).

      apt install virtualbox-guest-dkms virtualbox-guest-dkms virtualbox-guest-utils

- Make the VM up-to-date `apt update && apt dist-upgrade` or similar
- Drop the unused stuff with `apt autoremove; apt-get clean` or similar
- Make sure that the `vagrant` user will end up in `/vagrant/v4l2loopback` when logging in.
  I did so by adding the following 2 lines at the very end of `~vagrant/.bashrc`:

      cd /vagrant
      test -d v4l2loopback && cd v4l2loopback


- Power the VM off, and create an offline snapshot

- Boot the VM (with the share mounted onto `/vagrant/v4l2loopback`):

      vagrant up

- Create an online snapshot of the running VM
- Leave the VM running

# scripts

You can find a `vbox-restart` script in the `vagrant/` directory of this repository.
Running it (give the UUID of a running VM) will:
- do a hard shutdown of the given VM
- restore the last snapshot of the given VM
- start the running VM
- (optionally) attach the host's webcam to VM

# Workflow

- Open `v4l2loopback.c` in your favourite editor and hack away
- Whenever you feel like testing, do the following in a separate terminal:

~~~
me@host:~/v4l2loopback$ cd vagrant

me@host:~/v4l2loopback/vagrant$ ./vbox-restart -a
me@host:~/v4l2loopback/vagrant$ vagrant ssh
vagrant@/vagrant/v4l2loopback$ make clean
vagrant@/vagrant/v4l2loopback$ make modprobe
vagrant@/vagrant/v4l2loopback$ (do some tests)
~~~

if the machine freezes, or something else really bad happens to it, just
re-run `./vbox-restart` and start anew.

# Resources

## Vagrantfile

~~~vagrant
Vagrant.configure("2") do |config|
  config.vm.box = "debian/contrib-testing64"
  config.vm.synced_folder "/PATH/TO/v4l2loopback", "/vagrant/v4l2loopback"
end
~~~