Video4Linux Loopback Device Support

EffecTV

EffecTV is a real-time video effector with a lot of effects that's capable of using the output of the vloopback pipes:
$ effectv -vloopback /dev/video1 -channel 1

catch images from /dev/video0 (default) and put in /dev/video1 the output of processed images.
$ ffmpeg -vd /dev/video2 -s 320x240 effect.mpg

make a mpeg video from processed images using /dev/video2

-- MarcoCarvalho - 09 Oct 2004


I have removed the bug reports and uploaded a formal release of vloopback-0.95.

The older 0.92 is still there because this is normally a better choice for old 2.4 kernels.

Note that your kernel should be at least 2.6.8 to work with vloopback device.

Lastest version has a annoying bug that causes a Kernel Panic .

  • Test case
There's already a video devices registered from /dev/video0 to /dev/video4 , video0 ... video3 v4l2 and video4 v4l :

 # modprobe vloopback dev_offset=4

 # dmseg 

/home/motion/motion/drivers/vloopback-0.95/vloopback.c: Video4linux loopback driver v0.95
/home/motion/motion/drivers/vloopback-0.95/vloopback.c: Loopback 0 registered, input: video0,output: video5
 
 rmmod vloopback

 /home/motion/motion/drivers/vloopback-0.95/vloopback.c: Unregistering video4linux loopback devices
 Kernel panic: videodev: bad unregister

Fixed in vloopback-0.96a.tar.gz

-- AngelCarpintero - 10 May 2005

I am trying to compile vloopback on a linux 2.6.14 kernel, but it doesn't work. Is this a know problem? The original kernel sources are installed. Here are the first lines. The same problem with version 0.95.
bash-3.00$ cd vloopback-0.96a
 bash-3.00$ make
 make -C /lib/modules/2.6.14/build SUBDIRS=/home/klaus/programs/webcam/vloopback-0.96a modules
 make[1]: Entering directory `/usr/src/linux-2.6.14'
  CC [M]  /home/klaus/programs/webcam/vloopback-0.96a/vloopback.o
/home/klaus/programs/webcam/vloopback-0.96a/vloopback.c:125:5: warning: "LINUX_VERSION_CODE" is not defined
/home/klaus/programs/webcam/vloopback-0.96a/vloopback.c:125:26: warning: "KERNEL_VERSION" is not defined
/home/klaus/programs/webcam/vloopback-0.96a/vloopback.c:125:40: missing binary operator before token "("
/home/klaus/programs/webcam/vloopback-0.96a/vloopback.c:144:28: linux/wrapper.h: No such file or directory
/home/klaus/programs/webcam/vloopback-0.96a/vloopback.c:198:5: warning: "LINUX_VERSION_CODE" is not defined
....

-- KlausW - 12 Nov 2005


vloopback-0.97-snap1 fix that problem .

-- AngelCarpintero - 14 Nov 2005

vloopback-0.97-snap2 add to examples the option to choose rgb24 or yu420p palette.

-- AngelCarpintero - 19 Dec 2005

I have problem with vloopback-0.97-snap2:

# resize /dev/video1 /dev/video2 320x240 176x144 rgb24 Segmentation fault 
# strace resize /dev/video1 /dev/video2 320x240 176x144 rgb24 
execve("/usr/bin/resize", ["resize", "/dev/video1", "/dev/video2", "320x240", "176x144", "rgb24"], [/* 64 vars */]) = 0 
uname({sys="Linux", node="jirka", ...}) = 0 brk(0) = 0x804b000 
access("/etc/ld.so.preload", R_OK)  = -1 ENOENT (No such file or directory) 
open("/etc/ld.so.cache", O_RDONLY) = 3 
fstat64(3, {st_mode=S_IFREG|0644, st_size=104101, ...}) = 0 
mmap2(NULL, 104101, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fc3000 
close(3)  = 0 
open("/lib/tls/libc.so.6", O_RDONLY)    = 3 
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 P\1\000"..., 512) = 512 
fstat64(3, {st_mode=S_IFREG|0755, st_size=1202680, ...}) = 0 
mmap2(NULL, 1141948, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7eac000
mmap2(0xb7fbd000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x111) = 0xb7fbd000 
mmap2(0xb7fc1000, 7356, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7fc1000 
close(3) = 0 
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7eab000 
mprotect(0xb7fbd000, 4096, PROT_READ)   = 0 
mprotect(0xb7ff2000, 4096, PROT_READ)   = 0 
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7eabaa0, limit:1048575, seg_32bit:1, contents:0, 
read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 
munmap(0xb7fc3000, 104101) = 0 
open("/dev/urandom", O_RDONLY) = 3 
read(3, "\33Qv\332", 4)  = 4 
close(3) = 0 
--- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ 

-- JiriTyr - 31 Dec 2005

I've upload a new tarball that fix some problems in the examples , also added a sysfs support for dummy.c ,

Please give a try.

-- AngelCarpintero - 31 Dec 2005

I have also problem with picture in vloopback-0.96a. If I load vloopback module:

modprobe vloopback 

and run resize of picture:

resize /dev/video1 /dev/video2 320x240 176x144 

and open gnomemeeting (with vloopback device):

gnomemeeting 

then I see picture with bad brightnes.

But if I run spcaview before resize, then brightnes in gnomemeeting is good. The question is, if is possible to do some brightnes optimisation in resize program. Or it is problem of spca5xx?

PS: I have "Logitech QuickCam Communicate STX"

-- JiriTyr - 31 Dec 2005

Example files don't touch any image parameter like brightness, hue , etc ... so the problem come from the driver i guess.

-- AngelCarpintero - 31 Dec 2005

Thank you for your answers. Can you explain me why if I run first spcaview and then resize everything works good? It looks that spcaview do something what make same initialisation of the webcam. The question is if you can do the same in resize or not.

The new tarball have the same bug:

# resize /dev/video1 /dev/video2 320x240 176x144 rbg24 Segmentation fault 
# strace resize /dev/video1 /dev/video2 320x240 176x144 rbg24 
execve("/usr/bin/resize", ["resize", "/dev/video1", "/dev/video2", "320x240", "176x144", "rbg24"], [/* 54 vars */]) = 0 
uname({sys="Linux", node="jirka", ...}) = 0 
brk(0) = 0x804b000 
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory) 
open("/etc/ld.so.cache", O_RDONLY)      = 3 
fstat64(3, {st_mode=S_IFREG|0644, st_size=104101, ...}) = 0 
mmap2(NULL, 104101, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fb0000 
close(3)                                = 0 
open("/lib/tls/libc.so.6", O_RDONLY)    = 3 
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 P\1\000"..., 512) = 512 
fstat64(3, {st_mode=S_IFREG|0755, st_size=1202680, ...}) = 0 
mmap2(NULL, 1141948, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e99000 
mmap2(0xb7faa000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x111) = 0xb7faa000 
mmap2(0xb7fae000, 7356, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7fae000 
close(3)                                = 0 
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e98000 
mprotect(0xb7faa000, 4096, PROT_READ)   = 0 
mprotect(0xb7fdf000, 4096, PROT_READ)   = 0 
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e98aa0, limit:1048575, seg_32bit:1, contents:0, 
read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 
munmap(0xb7fb0000, 104101)              = 0
open("/dev/urandom", O_RDONLY)          = 3 
read(3, "\216\265\232~", 4)             = 4 
close(3)                                = 0 
--- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ 

-- JiriTyr - 01 Jan 2006

I was trying to use a package (libdc1394-2.0.0-pre5 dc1394_vloopback.c) and it looks like it doesn't support current proc formats. It looks like it was based on and old version of vloopback example/dummy.c open_vidpipe. I am working on updating it to use the current version of open_vidpipe.

They had one change in that your current version doesn't have

at around line 311

if (pipe>=0) {
        printf("Input: /dev/%s\n", input);
        printf("Output: /dev/%s\n", output);
        --- break;
}

they added the break line I showed above. This code is in a while loop so looks like it may be able to leave open files if the while loop runs multiple times. Is their any reason you know that you shouldn't stop at the first one that opens sucessfully? Or will only one open successfully so it isn't a problem?

If it is a problem is the other case below ok for the /sys/class/video4linux or does it need a similar change? Since it closes pipe_fd it won't leave open files but is their any reason to continue after the first one?

-- DavidGesswein - 01 Jan 2006


Thanks David !

I've re-upload last version with the "bug/typo" fixed in line 311 and i've added a return instead of break:

-                               if (pipe>=0) {
+                                       if (pipe_fd>=0) {
                                                printf("Input: /dev/%s\n", input);
                                                printf("Output: /dev/%s\n", output);
+                                               return pipe_fd;

-- AngelCarpintero - 05 Jan 2006

Hi,

I am trying to compile vloopback-0.97-snap2 but get the following output:

make -C /lib/modules/2.6.10-1-686/build SUBDIRS=/home/roland/Downloads/vloopback-0.97-snap2 modules
 make[1]: Entering directory `/usr/src/kernel-headers-2.6.10-1-686'
  CC [M]  /home/roland/Downloads/vloopback-0.97-snap2/vloopback.o
  Building modules, stage 2.
  MODPOST
 Warning: could not find versions for .tmp_versions/vloopback.mod
*** Warning: "cleanup_module" [/home/roland/Downloads/vloopback-0.97-snap2/vloopback.ko] undefined!
*** Warning: "init_module" [/home/roland/Downloads/vloopback-0.97-snap2/vloopback.ko] undefined!
  CC      /home/roland/Downloads/vloopback-0.97-snap2/vloopback.mod.o
  LD [M]  /home/roland/Downloads/vloopback-0.97-snap2/vloopback.ko
 make[1]: Leaving directory `/usr/src/kernel-headers-2.6.10-1-686'

Is that what one would expect? Are the error messages about cleanup_module and init_module normal?

Roland

-- RolandGoecke - 09 Jan 2006

Are you using debian , right ?

I googled a bit and i found that people has de same problem with this version of kernel

that belongs to SID , anyway did you try to load the module to see if it's working ?

-- AngelCarpintero - 09 Jan 2006

Is it possible to use vloopback to feed the output from a firewire camcorder to V4L? This would be to allow use of a camcorder as a webcam in applications which only use V4L.

Thanks, Alan

-- AlanPater - 10 Jan 2006

Sure , Coriander does . You just a need an simple application that capture from firewire and feed the vloopback input.

-- AngelCarpintero - 10 Jan 2006

Coriander does not seem able to work with consumer camcorders, it seems aimed at a different type of firewire camera.

-- AlanPater - 14 Jan 2006

Did you try kino or dvgrab to capture from your camcorder ?

To capture with dvgrab there's a nice thread here

-- AngelCarpintero - 14 Jan 2006

Updated vloopback-0.97-snap2.tar.gz , fixed example files and added a new one feed.c .

-- AngelCarpintero - 16 Jan 2006

Vloopback ebuild for gentoo users:
http://bugs.gentoo.org/show_bug.cgi?id=111750

-- JiriTyr - 19 Jan 2006

Anyone had any success in sending the output from a DV camcorder to the vloopbback device?

-- PerArne - 09 Feb 2006

Ok I compiled vloopback for FC5 and when I went to load it "modprobe vloopback" it gave me an error dmesg showed this as the error "vloopback: falsely claims to have parameter spares" So I decided to try and fix it and am puzzeled why my fix works. heres the diff of how I fixed it

 diff -r vloopback-0.97-snap2/vloopback.c
 vloopback-0.97-snap2_mod/vloopback.c
 198,202c198,202
 < static int nr_o_pipes=0;
 < static int pipes=-1;
 < static int spares=0;
 < static int pipesused=0;
 < static int dev_offset=-1;
 ---
 > int nr_o_pipes=0;
 > int pipes=-1;
 > int spares=0;
 > int pipesused=0;
 > int dev_offset=-1;
 

I don't understand why they cant be static globals like they where. This fix allows the vloopback module to be loaded in FC5. I'm not sure if this is a kernel 2.6.16 issue or a gcc 4.1.0 issue or what. I just upgraded. Well I hope this helps others out.

-- JeffSadowski - 23 Apr 2006

Ok , let me check if that is correct and doesn't have any side effects.

-- AngelCarpintero - 27 Apr 2006

The error "vloopback: falsely claims to have parameter spares" has to do with the deprecated kernel interface. All the MODULE_PARM() need to be replaced with module_param() functions.

-- ArekJankowski - 04 Jun 2006

Ok , added module_param() in latest snap vloopback-0.97-snap3.

-- AngelCarpintero - 04 Jun 2006

I don't see any /proc/video/vloopback/vloopbacks support in snap3, is it supposed to be there? At least struct dir_proc_entry *proc_entry; is declared wink

-- FilippoGiunchedi - 15 Jun 2006

0.97-snap3 and 0.95 are versions for kernel 2.6.x series where the use of proc is deprecated and is replaced by sysfs. Thanks report that has no sense to keep that declaration there wink

More info here :

http://lwn.net/Articles/2.6-kernel-api/

http://lwn.net/Articles/driver-porting/

http://lwn.net/Articles/31185/

http://lwn.net/Articles/31220/

-- AngelCarpintero - 16 Jun 2006

The link to snap3 above actually points to snap2

-- AlexOrlovsky - 27 Jun 2006

Fixed. Thanks. You could actually have fixed it. It is a wiki smile -- KennethLavrsen - 27 Jun 2006

The module compÃíles ok, but when I tried to insmod, I had this:

insmod: error inserting './vloopback.ko': -1 Invalid module format

I use kernel 2.6.14-kanotix-6

The "modinfo ./vloopback.ko" output, after compile

filename:       ./vloopback.ko
author:         J.B. Vreeken (pe1rxq@amsat.org)
description:    Video4linux loopback device.
license:        GPL
version:        1.0
vermagic:       2.6.14-kanotix-6 preempt 586 gcc-4.1
depends:        videodev
srcversion:     CA5522D7512924CD540FA42
parm:           dev_offset:Prefered offset for video device numbers (int)
parm:           spares:Nr of spare pipes that should be created (int)
parm:           pipes:Nr of pipes to create (each pipe uses two video devices) (int)

Is the problem the kanotix kernel?

-- ThiagoCordeiro - 29 Jul 2006

I've tried with 2.6.15-25-k7 in ubuntu dapper and others without any problems.

filename:       /lib/modules/2.6.15-25-k7/kernel/drivers/misc/vloopback.ko
author:         J.B. Vreeken (pe1rxq@amsat.org)
description:    Video4linux loopback device.
license:        GPL
version:        1.0
vermagic:       2.6.15-25-k7 SMP preempt K7 gcc-4.0
depends:        videodev
srcversion:     CA5522D7512924CD540FA42
parm:           dev_offset:Prefered offset for video device numbers (int)
parm:           spares:Nr of spare pipes that should be created (int)
parm:           pipes:Nr of pipes to create (each pipe uses two video devices) (int)

I don't think that the problem is your kernel version but other problem ... maybe related to gcc-4.1 ?

Could you try to load the module with modprobe instead ( be sure that videodev is already loaded ) ?

btw any strace debug will help :

strace insmod ./vloopback.ko 

or 

strace modprobe ./vloopback.ko 

-- AngelCarpintero - 08 Aug 2006

/home/MakeRelease_release/trunk/src/drivers/vloopback/vloopback.c: Video4linux loopback driver v0.97-snap3
/home/MakeRelease_release/trunk/src/drivers/vloopback/vloopback.c: Loopback 0 registered, input: video30,output: video31
/home/MakeRelease_release/trunk/src/drivers/vloopback/vloopback.c: error registering device Video loopback 1 input
Unable to handle kernel paging request at virtual address ea4058c0
 printing eip:
e8cb6102
*pde = 2667c067
*pte = 00000000
Oops: 0000 [#1]
SMP
Modules linked in: raw1394 video1394 ohci1394 ieee1394 nfs ide_generic rfcomm l2cap bttv video_buf compat_ioctl32
 i2c_algo_bit btcx_risc ir_common ipt_TCPMSS xt_tcpudp xt_mark xt_state iptable_nat iptable_filter ip_tables x_tables
 nfsd exportfs lockd nfs_acl sunrpc autofs4 nvidia agpgart ipv6 vga16fb vgastate ip_nat_irc ip_nat_ftp ip_nat ip_conntrack_irc
 ip_conntrack_ftp ip_conntrack nfnetlink ide_disk msp3400 saa7115 mousedev tsdev tda9887 tuner v4l2_common ivtv firmware_class
 psmouse v4l1_compat tveeprom i2c_core serio_raw videodev evdev ftdi_sio usbserial snd_hda_intel snd_hda_codec snd_pcm_oss 
snd_mixer_oss snd_pcm snd_timer snd soundcore rtc snd_page_alloc hci_usb bluetooth ext3 jbd mbcache usb_storage ide_cd cdrom
 sd_mod 8139too sata_nv libata scsi_mod forcedeth 8139cp mii generic ehci_hcd amd74xx ide_core ohci_hcd usbcore
CPU:    0
EIP:    0060:[<e8cb6102>]    Tainted: P      VLI
EFLAGS: 00010286   (2.6.16.20-pluto-2-686-smp #1)
EIP is at video_open+0x52/0x1a0 [videodev]
eax: ea4058c0   ebx: e8cb7f00   ecx: d0230e00   edx: d831cc00
esi: d831cc00   edi: 00000000   ebp: e7bee5e0   esp: badc3e94
ds: 007b   es: 007b   ss: 0068
Process ivtv-detect (pid: 3934, threadinfo=badc2000 task=d7e12a90)
Stack: <0>badc2000 b0176e30 000000ff dfc7a440 00000000 e8cb60b0 e7bee5e0 b0176ce6
       e7bee5e0 d831cc00 badc3ec0 0000001e d831cc00 e7bee5e0 b0176c20 badc2000
       b016bb6c e7bee5e0 d831cc00 d831cc00 badc3f24 00000003 badc2000 b016be08
Call Trace:
 [<b0176e30>] exact_match+0x0/0x10
 [<e8cb60b0>] video_open+0x0/0x1a0 [videodev]
 [<b0176ce6>] chrdev_open+0xc6/0x180
 [<b0176c20>] chrdev_open+0x0/0x180
 [<b016bb6c>] __dentry_open+0xbc/0x200
 [<b016be08>] nameidata_to_filp+0x38/0x50
 [<b016bd0c>] do_filp_open+0x5c/0x60
 [<b016c087>] do_sys_open+0x57/0xf0
 [<b016c147>] sys_open+0x27/0x30
 [<b01031a9>] syscall_call+0x7/0xb
Code: 8a 00 00 00 b8 dc 7e cb e8 e8 bb 83 63 c7 8b 0c 9d a0 81 cb e8 85 c9 0f 84 0b 01 00 00 8b 41 34 8b 5e 10 85 c0 0f 84 
f6 00 00 00 <8b> 10 85 d2 74 1f b8 00 e0 ff ff 21 e0 83 3a 02 8b 40 10 0f 84
 <6>/home/MakeRelease_release/trunk/src/drivers/vloopback/vloopback.c: Video4linux loopback driver v0.97-snap3

-- RazvanGavril - 20 Oct 2006

Please upgrade to version 1.0 and try to reproduce again that issue.

btw , what video driver are you using ? seems to me that is ivtv ... which version ?

-- AngelCarpintero - 20 Oct 2006


I'm using a firewire camera (video1394) in conjunction with vloopback so i can provide v4l input for motion.

For generate vloopback input i use a example program from libdc1394(ver:1.0.0) called dc1394_vloopback.

The kernel running there is a 2.6.16.20 vanilla.

A did a diff on my current vloopback.c and the one from version 1.0 and i can't see no difference instead of the version macro smile

-- RazvanGavril - 23 Oct 2006

You're right. looking at you kernel crash, problem was loading the module , right ?

How did you load vloopback ? ( Loopback 0 registered, input: video30,output: video31 ? ).

-- AngelCarpintero - 28 Oct 2006

Hi,

I am trying to compile vloopback-1.0 (for kernel-2.6.9-42.0.3 REDHAT EL4) but get the following output:
$make

make -C /lib/modules/2.6.9-42.0.3.EL.RDPS/build SUBDIRS=/home/adminr/temporal/vloopback-1.0 modules
make[1]: Entering directory `/usr/src/linux-2.6.9'
Makefile:461: .config: No existe el fichero o el directorio
CC [M] /home/adminr/temporal/vloopback-1.0/vloopback.o
/home/adminr/temporal/vloopback-1.0/vloopback.c:135:63: linux/version.h: No existe el fichero o el directorio
En el fichero incluído de /home/adminr/temporal/vloopback-1.0/vloopback.c:136:
include/linux/config.h:4:28: linux/autoconf.h: No existe el fichero o el directorio
En el fichero incluído de /home/adminr/temporal/vloopback-1.0/vloopback.c:137:
include/linux/errno.h:4:23: asm/errno.h: No existe el fichero o el directorio
En el fichero incluído de include/linux/kernel.h:11,
de /home/adminr/temporal/vloopback-1.0/vloopback.c:138:
include/linux/linkage.h:5:25: asm/linkage.h: No existe el fichero o el directorio
En el fichero incluído de include/linux/types.h:13,
de include/linux/kernel.h:13,
de /home/adminr/temporal/vloopback-1.0/vloopback.c:138:
include/linux/posix_types.h:47:29: asm/posix_types.h: No existe el fichero o el directorio
En el fichero incluído de include/linux/kernel.h:13,
de /home/adminr/temporal/vloopback-1.0/vloopback.c:138:
include/linux/types.h:14:23: asm/types.h: No existe el fichero o el directorio
In file included from include/linux/kernel.h:13,
from /home/adminr/temporal/vloopback-1.0/vloopback.c:138:
include/linux/types.h:18: error: error sintáctico antes de "__kernel_dev_t" ... ... 

Any idea?

-- EdwinValencia - 24 Oct 2006

it Seems that you don't have installed kernel-headers for you kernel version, so try to install them and all should run fine.

-- AngelCarpintero - 28 Oct 2006

I'm trying to build vloopback on Debian Sid - 2.6.18. Have everything installed, but can't just 'make', I get:
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c: In function 'vloopback_open':
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c:308: warning: implicit declaration of function 'video_devdata'
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c:308: warning: initialization makes pointer from integer without a cast
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c:309: error: dereferencing pointer to incomplete type
and on and on and on.
home/rick/qc3000/vloopback-0.97-snap3/vloopback.c:1107: error: dereferencing pointer to incomplete type
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c:1109: error: dereferencing pointer to incomplete type
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c: In function 'vloopback_init':
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c:1089: error: dereferencing pointer to incomplete type
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c: In function 'cleanup_vloopback_module':
make[2]: *** [/home/rick/qc3000/vloopback-0.97-snap3/vloopback.o] Error 1
make[1]: *** [_module_/home/rick/qc3000/vloopback-0.97-snap3] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.18-1-686'
make: *** [default] Error 2

Can't quite figure out the whole kpkg_make thing, I just want to build the freakin module smile This happens with 1.0 and .0.97-snap3.

Thanks

-- RickRomero - 30 Oct 2006

Hmm I think I may have missed something important by not pasting it all, I put it up as a text file on my site: www.havokmon.com/vloopback.error.txt

-- RickRomero - 30 Oct 2006

Compiles fine when I add:

 #include <asm/uaccess.h>
 #include <linux/init.h>
 #include <linux/device.h>
+ #include <media/v4l2-common.h>
+ #include <media/v4l2-dev.h>
#else
 #include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/wrapper.h>
 #include <asm/io.h>
#endif

-- RickRomero - 01 Nov 2006

Yes you are right, i took a look to last stable kernel tree git and from 2.6.18-1 :

video_devdata , video_device_alloc, video_register_device and others has been moved from videodev.h/videodev2.h to v4l2-dev.h .

I think that is enough to include media/v4l2-common.h because it already include media/v4l2-dev.h.

So i'll make a patch to allow compile against last stable version.

Thanks to report it smile

-- AngelCarpintero - 02 Nov 2006

I'm sorry for this kinda offtopic post, but is there any way to use mpeg file as v4l source?

-- IvanSidoroff - 07 Nov 2006

No.

-- AngelCarpintero - 07 Nov 2006

I tried to make vloopback-1.1-rc1 but I get:

[root@tinklebell vloopback-1.1-rc1]# make
make -C /lib/modules/2.6.18-1.2849.fc6/source SUBDIRS=/root/vloopback-1.1-rc1 modules
make[1]: Entering directory `/usr/src/kernels/2.6.18-1.2849.fc6-x86_64'
  CC [M]  /root/vloopback-1.1-rc1/vloopback.o
/root/vloopback-1.1-rc1/vloopback.c:141:75: error: linux/config.h: No such file or directory
make[2]: *** [/root/vloopback-1.1-rc1/vloopback.o] Error 1
make[1]: *** [_module_/root/vloopback-1.1-rc1] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.18-1.2849.fc6-x86_64'
make: *** [all] Error 2
[root@tinklebell vloopback-1.1-rc1]#

even though I installed kernel-headers on my FC6, and "linux/config.h" does not exist on my system. Is it in kernel-source?

-- ChrisJenks - 22 Nov 2006

Stocks kernels include linux/config.h but is just an include to keep backward compatibility, its content is :

#ifndef _LINUX_CONFIG_H
#define _LINUX_CONFIG_H
/* This file is no longer in use and kept only for backward compatibility.
 * autoconf.h is now included via -imacros on the commandline
 */
#include <linux/autoconf.h>

#endif      

Anyway i've upload a new version of 1.1-rc1 that fix that problem.

-- AngelCarpintero - 23 Nov 2006

Hi, I'm having a similar problem to -- ThiagoCordeiro? - 29 Jul 2006. After a successful make, I run "insmod vloopback.ko", but get ...

insmod: error inserting 'vloopback.ko': -1 Unknown symbol in module

Running "modinfo vloopback.ko" gives ...

filename: vloopback.ko
author: J.B. Vreeken (pe1rxq@amsat.org)
description: Video4linux loopback device.
license: GPL
version: 1.0
vermagic: 2.6.16.27-0.6-default 586 REGPARM gcc-4.1
depends: videodev
srcversion: CA5522D7512924CD540FA42
parm: dev_offset:Prefered offset for video device numbers (int)
parm: spares:Nr of spare pipes that should be created (int)
parm: pipes:Nr of pipes to create (each pipe uses two video devices) (int)

Any suggestions?

-- IanDickinson - 04 Jan 2007

OK, looks like I may have found the answer in the README. I need to run "insmod videodev" first. However, where do I find videodev?

-- IanDickinson - 04 Jan 2007

 modprobe videodev
 modprobe vlooopback

-- AngelCarpintero - 04 Jan 2007

I am having problems with compiling vloopback on Eft. Are there any known issues? At present I get

include/asm/mpspec_def.h:78: warning: packed attribute ignored for field of type unsigned char[6]

while doing make. It continues and actually makes vloopback.ko but when I modprobe vloopback.ko I get

[17249398.044000] vloopback: version magic '2.6.15-27-k7 SMP preempt K7 gcc-4.1' should be '2.6.15-27-k7 SMP preempt K7 gcc-4.0

Any help would be greatly appreciated. It works just great on my Dapper box.

-- DavidRepa - 22 Feb 2007

David , Edgy Eft kernel version is 2.6.17-10-generic ( is deprecated to use K7 or so ), well last is 2.6.17-11-X ( where X is i386 or generic ) , so you have an strange kernel version or a stock kernel installed. Anyway i tested in this kernel version without any issue.

Please try to paste the complete output from build process.

-- AngelCarpintero - 28 Feb 2007

Has anyone managed to use dvgrab output as a V4L source? I see there is some talk about the libdc1394 code doing it... so it seems there must be a way to pipe raw dv output from dvgrab to that code, right?

dvgrab --format raw | (?)

Can someone give me something to put in place of the (?) to pipe my camcorder videos to v4l (so I can process them with Motion)? Thanks.

-- KenRushia - 24 Mar 2007

Coriander seems that can pipe from firewire ( using libdc1394 ) to vloopback , so just test it ... i guess it should work fine.

-- AngelCarpintero - 01 Apr 2007

Coriander won't work with some domestic dv camcorders but I created dv2vloopback (https://sourceforge.net/projects/dv2vloopback/) wich willl do the trick, documentation at https://sourceforge.net/docman/display_doc.php?docid=49125&group_id=193697 Still beta!

-- FaltanTornillos - 17 Apr 2007


Thanks !

Added to http://www.lavrsen.dk/twiki/bin/view/Motion/RelatedProjects .

-- AngelCarpintero - 17 Apr 2007

I'm getting a strange error:

root@moe-mac-linux:/home/zac/compiled_packages/vloopback-1.1-rc1# insmod /lib/modules/2.6.20-16-generic/build/usr/vloopback.ko 
insmod: error inserting '/lib/modules/2.6.20-16-generic/build/usr/vloopback.ko': -1 Unknown symbol in module

I've already tried insmod videodev as it suggested in the readme, and that went through without errors, but vloopback.ko gives me the same error. It compiled with no errors. This is on an ubuntu system.

-- ZacWitte - 03 Jun 2007

I've tested with same version of kernel you did in Ubuntu feisty without any problem , so please try to get a more detailed information ( kernel logs / syslog , etc )

-- AngelCarpintero - 04 Jun 2007

is there any way to use vloopback (or other app) as a means of getting a v4l2 device to appear as a v4l device? (much as coriander makes raw1394 appear as v4l)

it seems a common problem, to make newer webcams compatible with all lovely v4l software, but i've yet to find anything re: converting v4l2->v4l.

perhaps community knows of something?

vloopback is wonderful, always works perfectly. thank you !

-- NanoDust - 27 Jun 2007

vloopback version 1.0 does not compile under the kernel 2.6.18 (I am using Debian Etch)

user@dell-debian:~/tmp/vloopback-1.0$ make
make -C /lib/modules/2.6.18-3-686/build SUBDIRS=~/tmp/vloopback-1.0 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.18-3-686'
  CC [M]  ~/tmp/vloopback-1.0/vloopback.o
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_open':
~/tmp/vloopback-1.0/vloopback.c:313: warning: implicit declaration of function 'video_devdata'
~/tmp/vloopback-1.0/vloopback.c:313: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:314: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:339: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:339: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_release':
~/tmp/vloopback-1.0/vloopback.c:355: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:356: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_write':
~/tmp/vloopback-1.0/vloopback.c:398: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:399: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_read':
~/tmp/vloopback-1.0/vloopback.c:444: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:445: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_mmap':
~/tmp/vloopback-1.0/vloopback.c:513: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:514: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_ioctl':
~/tmp/vloopback-1.0/vloopback.c:571: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:572: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:852: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:854: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_poll':
~/tmp/vloopback-1.0/vloopback.c:903: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:904: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:914: error: 'POLLIN' undeclared (first use in this function)
~/tmp/vloopback-1.0/vloopback.c:914: error: (Each undeclared identifier is reported only once
~/tmp/vloopback-1.0/vloopback.c:914: error: for each function it appears in.)
~/tmp/vloopback-1.0/vloopback.c:914: error: 'POLLPRI' undeclared (first use in this function)
~/tmp/vloopback-1.0/vloopback.c:914: error: 'POLLOUT' undeclared (first use in this function)
~/tmp/vloopback-1.0/vloopback.c:914: error: 'POLLRDNORM' undeclared (first use in this function)
~/tmp/vloopback-1.0/vloopback.c: At top level:
~/tmp/vloopback-1.0/vloopback.c:934: error: variable 'vloopback_template' has initializer but incomplete type
~/tmp/vloopback-1.0/vloopback.c:936: error: unknown field 'owner' specified in initializer
~/tmp/vloopback-1.0/vloopback.c:936: warning: excess elements in struct initializer
~/tmp/vloopback-1.0/vloopback.c:936: warning: (near initialization for 'vloopback_template')
~/tmp/vloopback-1.0/vloopback.c:937: error: unknown field 'name' specified in initializer
~/tmp/vloopback-1.0/vloopback.c:937: warning: excess elements in struct initializer
~/tmp/vloopback-1.0/vloopback.c:937: warning: (near initialization for 'vloopback_template')
~/tmp/vloopback-1.0/vloopback.c:938: error: unknown field 'type' specified in initializer
~/tmp/vloopback-1.0/vloopback.c:938: warning: excess elements in struct initializer
~/tmp/vloopback-1.0/vloopback.c:938: warning: (near initialization for 'vloopback_template')
~/tmp/vloopback-1.0/vloopback.c:939: error: unknown field 'fops' specified in initializer
~/tmp/vloopback-1.0/vloopback.c:939: warning: excess elements in struct initializer
~/tmp/vloopback-1.0/vloopback.c:939: warning: (near initialization for 'vloopback_template')
~/tmp/vloopback-1.0/vloopback.c:941: error: unknown field 'release' specified in initializer
~/tmp/vloopback-1.0/vloopback.c:941: error: 'video_device_release' undeclared here (not in a function)
~/tmp/vloopback-1.0/vloopback.c:941: warning: excess elements in struct initializer
~/tmp/vloopback-1.0/vloopback.c:941: warning: (near initialization for 'vloopback_template')
~/tmp/vloopback-1.0/vloopback.c: In function 'create_pipe':
~/tmp/vloopback-1.0/vloopback.c:961: warning: implicit declaration of function 'video_device_alloc'
~/tmp/vloopback-1.0/vloopback.c:961: warning: assignment makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:964: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:965: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:967: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:972: warning: assignment makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:974: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:978: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:979: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:981: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:982: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:988: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:989: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1002: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1003: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1004: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1005: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1006: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1007: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1011: warning: implicit declaration of function 'video_register_device'
~/tmp/vloopback-1.0/vloopback.c:1011: error: 'VFL_TYPE_GRABBER' undeclared (first use in this function)
~/tmp/vloopback-1.0/vloopback.c:1014: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1015: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1017: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1027: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1028: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1029: warning: implicit declaration of function 'video_unregister_device'
~/tmp/vloopback-1.0/vloopback.c:1030: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_init':
~/tmp/vloopback-1.0/vloopback.c:1094: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1094: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'cleanup_vloopback_module':
~/tmp/vloopback-1.0/vloopback.c:1112: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1114: error: dereferencing pointer to incomplete type
make[2]: *** [~/tmp/vloopback-1.0/vloopback.o] Error 1
make[1]: *** [_module_~/tmp/vloopback-1.0] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.18-3-686'
make: *** [all] Error 2

Version vloopback 1.1-rc1 compiles without errors under the same kernel version, but gives a "Segmentation fault" when loading the module (insmod vloopback)

-- BeLioN - 10 Jul 2007

I have just downloaded the code from Subversion, and successfully compiled it, but again when loading the module, I get "Segmentation fault"

-- BeLioN - 10 Jul 2007

I just tested with latest kernel version using Debian Etch :

 uname -a
Linux bridge 2.6.18-5-686 #1 SMP Fri Jun 1 00:47:00 UTC 2007 i686 GNU/Linux



svn co http://www.lavrsen.dk/svn/vloopback/trunk/ vloopback
cd vloopback/
make
sudo make install
sudo /sbin/modprobe videodev 
sudo /sbin/modprobe vloopback

dmesg | tail -n3

Linux video capture interface: v2.00
/home/motion/vloopback/vloopback.c: Video4linux loopback driver v1.1-rc1
/home/motion/vloopback/vloopback.c: Loopback 0 registered, input: video0,output: video1

All working fine without any issues , please recheck installation. If you still get a segfault try to get a core dump or any information about.

-- AngelCarpintero - 10 Jul 2007

I just downloaded the code from subversion and it works. However, I have to do "make install" . If I only compile and then "insmod vloopback.ko" I still get the segmentation fault.

Thanks !!

-- BeLioN - 11 Jul 2007

Is it possible to create a virtual video device to generate a video stream from a given image file?

Thanks, -Chitta

-- ChittaMandal - 15 Jul 2007

Hi, SVN version of 16 Jul 2007 work great with a 2.6.21.3 kernel, but not with the FFmpeg found in Debian Etch. I have to compile FFmpeg from the SVN source code to get a working one.

This vloopback module is very nice. I hope that it will be soon part of the Linus tree. Best Regards,

-- JeanChristianDeRivaz - 16 Jul 2007

Camstream crashes with the following exception whenever I try to connect to the "video loopback 0 input" device. I am using vloopback-1.1-rc1. I am basically trying to use the loopback to get the live stream out of 'motion'. For some reason the mini-http host provided by motion does not quite work as expected:

X Error: BadDevice, invalid or uninitialized input device 154
  Major opcode:  143
  Minor opcode:  3
  Resource id:  0x0
Failed to open device
X Error: BadDevice, invalid or uninitialized input device 154
  Major opcode:  143
  Minor opcode:  3
  Resource id:  0x0
Failed to open device
CVideoDevice::ResetImagesRGB()
CVideoDevice::ResetImagesYUV()
CCamWindow::CCamWindow()
CWebCamViewer::CWebCamViewer(0x80d18a0, 0x0)
CVideoDevice::Init()
Using mmap(), VMBuf.size = -1945173994
CVideoDevice::Init() Failed to mmap/allocate memory!
Trying to find video options for Video loopback 0 input:/dev/video1
searching USB Video Class device
Creating new video options
<!DOCTYPE Configuration>
<config>
 <defaults/>
 <videodevices>
  <videoconfiguration node="" name="USB Video Class device" >
   <basename>snapshot</basename>
   <textfont>system</textfont>
   <textcolor>#ffff00</textcolor>
   <timeinimage>false</timeinimage>
   <fileformat>PNG</fileformat>
   <savetodisk>true</savetodisk>
   <ftptoserver>false</ftptoserver>
   <saveoption>1</saveoption>
   <maxsequence>1000</maxsequence>
   <sequence>0</sequence>
   <ftpserver></ftpserver>
   <ftppath></ftppath>
   <ftpuser></ftpuser>
   <ftppass></ftppass>
   <ftppassive>false</ftppassive>
   <ftpunique>true</ftpunique>
  </videoconfiguration>
  <videoconfiguration name="Video loopback 0 input" >
   <basename>snapshot</basename>
   <textfont>system</textfont>
   <textcolor>#ffff00</textcolor>
   <timeinimage>false</timeinimage>
   <fileformat>PNG</fileformat>
   <savetodisk>true</savetodisk>
   <ftptoserver>false</ftptoserver>
   <saveoption>1</saveoption>
   <maxsequence>1000</maxsequence>
   <sequence>0</sequence>
   <ftpserver></ftpserver>
   <ftppath></ftppath>
   <ftpuser></ftpuser>
   <ftppass></ftppass>
   <ftppassive>false</ftppassive>
   <ftpunique>true</ftpunique>
  </videoconfiguration>
 </videodevices>
</config>

CSnapshotSettingsDlg::CSnapshotSettingsDlg(...)
CVideoSettingsDlg::SizeChanged(0x0)
CVideoSettingsDlg::FramerateChanged(10)
CCamPanel::SetSize(0x0)
CCamPanel::SetImageSize(0x0)
CCamPanel::SetVisibleSize(0x0)
QPainter::begin: Cannot paint null pixmap
QPainter::setPen: Will be reset by begin()
QPainter::setBrush: Will be reset by begin()
QPainter::setBrush: Will be reset by begin()
QPainter::setPen: Will be reset by begin()
QPainter::setPen: Will be reset by begin()
QPainter::end: Missing begin() or begin() failed
CCamPanel::SetSize(0x0)
CCamPanel::SetImageSize(0x0)
CCamPanel::SetVisibleSize(0x0)
RecalcTotalViewSize: resize viewport(0x0)
EnableRGB: +
CVideoDevice::SetPalette picked palette 5 [rgb32]
CVideoDevice::CreateImagesRGB()
 using pre-allocated memory
QGArray::at: Absolute index 0 out of range
Segmentation fault (core dumped)

============ Any ideas? Thanks!

-- PeterNaly - 14 Aug 2007

Peter , you cannot use "video loopback 0 input" to be opened as output, so you have to chose "video loopback output".

in example :

 effectv  -vloopback /dev/video1 -device /dev/video0

Run camstream and select to open "EffecTV vloopback output"

-- AngelCarpintero - 03 Nov 2007

Hi! Svn vloopback module on ubuntu 7.10 compiles and loads with no apparent problems, but camstream cannot (see) open vloopback output, sees only vloopback input. When i use resize from webcam to vloopback input, any access try to vloopback output freezes shell .. camstream refuses to load... how to solve? Kernel is 2.6.22-14-generic

-- SilvijeM - 02 Nov 2007

Hi again... seems my problem is webcam, not vloopback... with another video device it works.. cheers!

-- SilvijeM - 02 Nov 2007

I've tested in ubuntu 7.10 with 2.6.22-14-generic same version of version without problems , so maybe you didn't load videodev first.

x86 or x86_64 ?

lsmod output ?

Those details could help.

-- AngelCarpintero - 17 Nov 2007

Works beautifully on 2.6.24-16 smile

-- RomanGaufman - 18 May 2008

Quick question, what does the spares parameter do? -- I tried to pass it and couldn't see a difference. When I open the vloopback output device from 2 ffmpeg instances, it seems to just loop between 2 frames for a while, then progress to looping 2 other frames frown -- I thought spares will help with this but it doesn't.

-- RomanGaufman - 18 May 2008

I am having trouble getting the vloopback.ko module (v 1.1) inserted into a Ubuntu Hardy Heron box.

When I execute "sudo insmod vloppback.ko", I get this error:

insmod: error inserting 'vloopback.ko': -1 Unknown symbol in module

What am I doing wrong. I would like to get my Apple iSight working as a V4L device. I can get it to work under coriander. But I would like it to show up as a V4L device.

Rob

-- RobK - 28 Jul 2008

Nevermind. I figured it out. You need to "sudo modprobe videodev" first!

Now the "sudo insmod vloopback.ko" worked!

-- RobK - 28 Jul 2008


like README in FAQ section says ...

-- AngelCarpintero - 28 Jul 2008

After playing around with vloopback for the past two hours. I still can't get it to work with an app like Cheese. Coriander says V4L is working and show 30 fps. The V4L output device is /dev/video0.

But dmesg says the input is /dev/video0 and the output is /dev/video1. The iSight is really at /dev/video1394/0

-- RobK - 28 Jul 2008


It explained in FAQ " How can i use vloopback to use my firewire cam as a V4L device ?"

Anyway i think you didn't read how to use vloopback , that is how is working for you setup :

/dev/video1394/0 <-- Coriander --> /dev/video0 ( vloopback input ) --> /dev/video1 ( vloopback ouput ) <-- any V4L application

Vloopback doesn't support V4L2 yet ... it will

-- AngelCarpintero - 28 Jul 2008


Many thanks. I now understand what vloopback is doing. I have set on V4L on the services tab of Coriander (which shows the V4L device as /dev/video0).

Now when I run gstreamer-properties, I can test it. I used Plugin "v4l" and For the Device " Video loopback 0 output" which is the only device other than default in the drop down box. When I click test, I see a video of me but my face is all purple. Very strange. If I test my webcam in coriander, the colour is correct.

I also was able to get the video to work in Ekiga. I use V4L and "Video loopback 0 output". (I assume Video loopback 0 output is really /dev/video1). And the colour is correct!! It is working as it should.

But when I run "Cheese", the webcam does not work. I do not see any preferences to set the video device nor does there appear to be a command line option. I guess I will have to follow up with the "Cheese" developers.

Thanks for a great program. vloopback is great!

-- RobK - 28 Jul 2008

I have been doing some testing with my iSight Firewire camera using coriander and vloopback. Many apps work great (like Ekiga, motion, gqcam, effecttv) but some do not work at all (like Cheese and Skype). After getting some feeback on a bug I filed with Cheese (see http://bugzilla.gnome.org/show_bug.cgi?id=545190 ), I think I know why.

Some apps (like cheese) appear to rely on hal to identify the v4l webcam devices. Unfortunately, when I run "hal-find-by-capability --capability video4linux" nothing is returned. Hal is not detecting my Firewire iSight camera that is being piped through via coriander and vloopback.

I am not sure whether this is a bug relating to hal, coriander or vloopback. Any ideas on what is really the cause and how to fix it?

-- RobK - 01 Aug 2008

Doesn't compile on 2.6.27-rc1-mm1 frown

-- RomanGaufman - 07 Aug 2008


Roman grab latest svn trunc version i added a work around to work with 2.6.27.rc3 .

-- AngelCarpintero - 24 Aug 2008


Hi, I am currently working on a vloopback fork that is compiling with newest kernels.

Have a look in my project: WebcamStudio for GNU/Linux (http://webcamstudio.sourceforge.net)

The source code is available in the Library download section of Sourceforge.net

Current version is 1.1.4.

This fork has input and output reversed for Flash player compatibility.

-- PatrickBalleux - 23 Nov 2008


Patrick, to create a fork you must change the name or people will get confused smile

trunk version works with latest kernel already 2.6.27 ( don't think with 2.6.28-rcX)

-- AngelCarpintero - 24 Nov 2008


HI, Thank you for your good work
But I've a problem using resize:
# ./resize /dev/video0 /dev/video1 320x240 yuv420p
Starting video stream.
You bought vaporware!
Error[Device or resource busy]

dmesg gives me:
em28xx #0: vidioc_s_fmt_vid_cap queue busy

-- ChristopheB - 08 Dec 2008


Christophe ,

you did a typo pasting your resize command ( missing the destination size , it must be smaller than original ).

Are you opening /dev/video0 with other program ? ( /dev/video0 there is real device maybe not support multiple opens )

-- AngelCarpintero - 10 Dec 2008


Thank you for your answer. No other porgram is using /dev/video0 I used motion with "video_pipe" and it works. But with the framerate define in motion.

-- ChristopheB - 10 Dec 2008


I'm confused ... you said no other program is using that but motion ... so :

motion is other program ... motion + resize = 2 applications opening same device

-- AngelCarpintero - 14 Dec 2008

Actually, When I was talking about "no other program is using that", i ensured first that motion wasn't running. So resize was really the only one using /dev/video0.
But what I'm able to do is to use motion on /dev/video0 with video_pipe and then use:
resize /dev/video2 /dev/video3 720x576 320x240 yuv420p

-- ChristopheB - 14 Dec 2008

Doesn't compile on 2.6.28 frown Any patch ?

-- StanislavPopov - 20 Dec 2008


Latest stable is 2.6.27.10 , so probably are you talking about rc9 ... usually is not a good idea until stable is release because changes could still be made in v4l/v4l2 api.

-- AngelCarpintero - 20 Dec 2008


Current trunk revision builds and run ok with 2.6.28-rc9.

-- AngelCarpintero - 22 Dec 2008


thank you! smile

-- StanislavPopov - 23 Dec 2008

hello, I want to make vloopback working with skype, can you give me a glue where to start, and what is missing currently for skype to understand vloopback?

-- VasilyLevin - 01 Feb 2009

Hello,

I tried vloopback but it has failed, at least with mplayer.

The module did compuile and install successfully. Then, in one terminal window: $ ./resize /dev/video0 /dev/video1 768x576 768x576 yuv420p Starting video stream.

In another terminal window:

$ mplayer tv:// -tv driver=v4l2:device=/dev/video2

MPlayer dev-SVN-rUNKNOWN-4.1.2 (C) 2000-2007 MPlayer Team CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (Family: 15, Model: 4, Stepping: 1) CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 Compiled with runtime CPU detection. Can't open joystick device /dev/input/js0: No such file or directory Can't init input joystick mplayer: could not connect to socket mplayer: No such file or directory Failed to open LIRC support. You will not be able to use your remote control.

Playing tv://. TV file format detected. Selected driver: v4l2 name: Video 4 Linux 2 input author: Martin Olschewski comment: first try, more to come wink v4l2: ioctl query capabilities failed: Inappropriate ioctl for device v4l2: ioctl set mute failed: Inappropriate ioctl for device v4l2: 0 frames successfully processed, 0 frames dropped.

-- MikhailRamendik - 04 Feb 2009


Vloopback doesn't support v4l2 , so you must use v4l in mplayer.

-- AngelCarpintero - 14 Feb 2009

Hi,

when I try to compile according to the instructions I get several errors. The first ones are:
make -C /lib/modules/2.6.27.8/source SUBDIRS=/home/juser/tmp/vloopback modules 
make[1]: Entering directory `/usr/src/linux-2.6.27.8' 
CC [M] /home/juser/tmp/vloopback/vloopback.o /home/juser/tmp/vloopback/vloopback.c: In function 'vloopback_read': /home/juser/tmp/vloopback/vloopback.c:567: 
error: storage size of 'vidwin' isn't known /home/juser/tmp/vloopback/vloopback.c:568: 
error: storage size of 'vidmmap' isn't known /home/juser/tmp/vloopback/vloopback.c:569: 
error: storage size of 'vidpic' isn't known /home/juser/tmp/vloopback/vloopback.c:571: 
error: 'VIDIOCGWIN' undeclared (first use in this function) /home/juser/tmp/vloopback/vloopback.c:571: 
error: (Each undeclared identifier is reported only once /home/juser/tmp/vloopback/vloopback.c:571: 
error: for each function it appears in.) /home/juser/tmp/vloopback/vloopback.c:572: 
error: 'VIDIOCGPICT' undeclared (first use in this function) ... ... ... 
make[2]: * [/home/juser/tmp/vloopback/vloopback.o] Error 1 make[1]: * [_module_/home/juser/tmp/vloopback] Error 2 
make[1]: Leaving directory `/usr/src/linux-2.6.27.8' make: * [all] Error 2

Would you help me with this please?

-- HrnanBadino - 05 Mar 2009

Hi i have a fresh and new ubuntu 8.10. Can't insmod the vloopback.ko. # insmod vloopback.ko insmod: error inserting 'vloopback.ko': -1 Unknown symbol in module
# dmesg [63201.368823] vloopback: Unknown symbol v4l_compat_ioctl32 [63201.369157] 
vloopback: Unknown symbol video_devdata [63201.369438] 
vloopback: Unknown symbol video_unregister_device [63201.369631] 
vloopback: Unknown symbol video_device_alloc [63201.369838] 
vloopback: Unknown symbol video_register_device [63201.370111] 
vloopback: Unknown symbol video_device_release 

Any Idea what is wrong?

-- AndreHelwig - 17 Mar 2009

Cannot build vloopback-1.2 on linux 2.6.29.1 on a pentium II.

vloopback.c:1128: error: 'v4l_compat_ioctl32' undeclared here (not in a function)

Looking at the kernel headers, media/v4l2-ioctl.h has:

#ifdef CONFIG_COMPAT /* 32 Bits compatibility layer for 64 bits processors */ extern long v4l2_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg); #endif

Since the PII is a 32bit processor, doesn't that mean v4l2_compat_ioctl32 is not needed and some other function should be used instead?

Thanks for any help

-- AdamFeakin - 09 Apr 2009

Try my patch vloopback-1.3.diff

-- PeterHolik - 17 May 2009

Hey Guys. I am having this issue:

I changed MAX_PIPES to be able to handle 16 loopbacks. The deal is, V4L2 in kernels before 2.6.30 has a limitation of 32 video devices. ( I need the 32 devices that Vloopback uses in my case plus 8 from my SAA7134, that's 40 devices). I tried to compile vloopback with MAX_PIPES changed to 16 in 2.6.30-rc6, but it doesn't compile (Looks like v4l has changed a lot in the last few releases, lot's of activity in GIT). I tried applying vloopback-1.3.diff , but that's not the issue. I can compile it against any 2.6.29 kernel just fine.

The problem seems to be that it's not finding some constants:

VIDIOCGWIN, VIDIOCGPICT, VIDIOCMCAPTURE, VIDIOCSYNC, ... and others. Looks like they are all defined mostly in v4l2-compat-ioctl32.c ....

They seem to be in there, I checked other video drivers that come with this kernel and they compile just fine, and I checked the way they handle video_window struct and they look the same as vloopback ...

I'll keep headbanging my keyboard until it works. If I figure it out, I'll post a patch. , but ... I am no v4l expert ... some help would be greatly appreciated big grin

Any ideas Peter? I would appreciate it if you can point me in the right direction.

Thanks,

Sebastian.

-- SebastianGomez - 23 May 2009

use my patch vloopback-1.4.diff

-- PeterHolik - 25 May 2009

Thanks Peter!

-- SebastianGomez - 25 May 2009

Thanks Peter, I applied patch 1.3 and 1.4 and now it is all working on Linux 2.6.29.1.

-- AdamFeakin - 28 May 2009

Hi, all.

How do you test and work vloopback on 2.6.29.x? I try "effectv -vloopback /dev/video1 -device /dev/video0 " with v4l1 device , but doesn"t work. Ofcource , v4l1 device work fine. Please teach me about your work environment.

-- MikeCernekee - 29 May 2009

Hi, after compiling I tried insmod, but I got a

[176078.570849] vloopback: Unknown symbol v4l_compat_ioctl32 [176078.570970] vloopback: disagrees about version of symbol video_devdata [176078.570972] vloopback: Unknown symbol video_devdata

- do I need compat_ioctl32? ( I am on ubuntu jaunty 32 bit) - what can I do to fix the 'unknown symbol'

Thanks in advance, Dirk

-- DiDek - 08 Jul 2009

Added Peter Holik's patches to trunk with some change . so please try svn trunk , the idea is to realease 1.3 when 2.6.30 is out.
mkdir vloopback-trunk 
cd vloopback-trunk

svn co http://www.lavrsen.dk/svn/vloopback/trunk .

-- AngelCarpintero - 08 Jul 2009

Thanks for the reply!

But I still get the same error ...

uname -r > 2.6.28-13-generic

ls /usr/src > linux-headers-2.6.28-11-generic linux-headers-2.6.28-13-generic linux-headers-2.6.28-11 linux-headers-2.6.28-13 linux-source-2.6.28

So what am I doing wrong?

I very much like to use the vloopback device ...

Best, Dirk

-- DiDek - 10 Jul 2009

Dirk, get svn version and try to build and load with modprobe instead of insmod .

-- AngelCarpintero - 11 Jul 2009

Buenas, he tenido problemas al querer compilar vloopback, probe en Gnu/Debian Lenny y en Squeeze, y las versiones de kernel 2.6.30.2 y 2.6.30.2

Les el mensaje de error.
:~/vloopback-1.2$ make make -C /lib/modules/2.6.30-1-686/build SUBDIRS=/home/usuario/vloopback-1.2 modules 
make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.30-1-686' 
/usr/src/linux-headers-2.6.30-1-common/Makefile:284: 
/usr/src/linux-headers-2.6.30-1-common/scripts/Kbuild.include: No existe el fichero o el directorio 
/bin/sh: line 0: [: -lt: unary operator expected 
make: * nombre de variable vacío. Alto. 
make[3]: * [_module_/home/usuario/vloopback-1.2] Error 2 
make[2]: * [sub-make] Error 2 
make[1]: * [all] Error 2 
make[1]: se sale del directorio `/usr/src/linux-headers-2.6.30-1-686' 
make: * [all] Error 2 

-- DanR - 25 Jul 2009


Ummm linux-image packages for Lenny and Squeeze are 2.6.26 not 2.6.30 .. so i guess you are using stock kernel from ( www.kernel.org ).

I tried latest stable 2.6.30.4 and i had no problem to build it.

-- AngelCarpintero - 04 Aug 2009

El error anterior se solucionÃó instalando " linux-kbuild-2.6.30_2.6.30-1_i386.deb "

#dpkg -i linux-kbuild-2.6.30_2.6.30-1_i386.deb

Pero me arroja el siguiente error
#make && make install make -C /lib/modules/2.6.30-1-686/build SUBDIRS=/home/usuario/vloopback-1.2 modules 
make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.30-1-686' 
CC [M] /home/usuario/vloopback-1.2/vloopback.o /home/usuario/vloopback-1.2/vloopback.c: 
In function ‘vloopback_read’: /home/usuario/vloopback-1.2/vloopback.c:567: 
error: storage size of ‘vidwin’ isn’t known /home/usuario/vloopback-1.2/vloopback.c:568: 
error: storage size of ‘vidmmap’ isn’t known /home/usuario/vloopback-1.2/vloopback.c:569: 
error: storage size of ‘vidpic’ isn’t known /home/usuario/vloopback-1.2/vloopback.c:571:  
[ skipped ] ...

-- DanR - 25 Jul 2009


You have to get latest vloopback from trunk that includes some patches to allow to build against latest kernel version. It's explained how to get it from svn and build above .

-- AngelCarpintero - 04 Aug 2009

Gracias AngelCarpintero?, yo descargue el vloopback de svn como se lo recomendaste en un post anterior.

mkdir vloopback-trunk

cd vloopback-trunk

svn co http://www.lavrsen.dk/svn/vloopback/trunk .

Pero no me funcionÃó, me arrojo el mismo error.

TraducciÃón web por: http://translate.google.co.ve

Thanks AngelCarpintero? I download the svn vloopback as recommended in a previous post.

mkdir-vloopback trunk

cd trunk-vloopback

svn co http://www.lavrsen.dk/svn/vloopback/trunk.

But I do not work, I throw the same error.

-- DanR - 04 Aug 2009


Get 2.6.30.diff patch and apply to svn trunk :

patch < 2.6.30.diff

make ; sudo make install ; sudo modprobe vloopback

-- AngelCarpintero - 05 Aug 2009


hi - i'm running the svn of vloopback and 0.0.2 of vpipe on ubuntu x86_64 (kernel 2.6.24). i've got pool/universe/m/motion/motion_3.2.9-1_amd64.deb installed via apt-get.

i have the following kernel modules loaded:

videodev 30720 2 vloopback v4l2_common 21888 2 compat_ioctl32,videodev v4l1_compat 15492 1 videodev video 23444 0

if i do:

% ffmpeg -i foo.avi -r 8 -f rawvideo - | vpipe -i 0

and then in another window:

% motion

which has been configured to look at /dev/video1,

i get:

[4619671.969284] compat_ioctl32: v4l1 ioctl UNKNOWN, dir=-- (0x000076c1) [4619671.969326] ioctl32(vpipe:15441): Unknown cmd fd(5) cmd(000076c1){t:'v';sz:0} arg(000003fc) on /dev/video0

when motion starts up.

i assume this means that vpipe is executing some ioctl against /dev/video0 that the compat layer can not translate.

any idea of how to fix this?

-- RobPfile - 07 Aug 2009

oh wait a second, it actually does work. i there were some .o files in the vpipe tarball and those got linked into the vpipe binary. also of course you need to set the frame rate to 100 in motion's configuration file.

one strange thing is that the source file is 1280x920, but unless i scale it to 320x240 with ffmpeg, motion decides that it can not determine the color space and just quits.

-- RobPfile - 08 Aug 2009


Please , file a support request and supply related data :

http://www.lavrsen.dk/foswiki/bin/view/Motion/SupportRequests

Notice you are using a very old version of motion so at least use 3.2.11 or even better 3.2.11.1 :

http://www.lavrsen.dk/foswiki/bin/view/Motion/BugFixesToUpgradeVersion

-- AngelCarpintero - 08 Aug 2009

okay, yeah i realize this is the wrong place... let me upgrade motion first. it was just easier to do apt-get on the universe repo.

-- RobPfile - 09 Aug 2009

AngelCarpintero?

El parche esta correcto funcionÃó a la primera pasada ...

TraducciÃón web por: http://translate.google.co.ve

The patch worked to correct this the first pass ...

-- DanR - 11 Aug 2009

Trying to compile under Ubuntu Karmic Koala 9.10 fails. I'm currently running Linux kernel 2.6.31-10-generic. Here is the output I get:
make -C /lib/modules/2.6.31-10-generic/build SUBDIRS=/home/owner/vloopback modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.31-10-generic'
CC [M] /home/owner/vloopback/vloopback.o /home/owner/vloopback/vloopback.c: In function ‘vloopback_read’:
/home/owner/vloopback/vloopback.c:583: error: storage size of ‘vidwin’ isn’t known
/home/owner/vloopback/vloopback.c:584: error: storage size of ‘vidmmap’ isn’t known
/home/owner/vloopback/vloopback.c:585: error: storage size of ‘vidpic’ isn’t known
/home/owner/vloopback/vloopback.c:587: error: ‘VIDIOCGWIN’ undeclared (first use in this function)
/home/owner/vloopback/vloopback.c:587: error: (Each undeclared identifier is reported only once
/home/owner/vloopback/vloopback.c:587: error: for each function it appears in.)
/home/owner/vloopback/vloopback.c:588: error: ‘VIDIOCGPICT’ undeclared (first use in this function)
[snip ... ]
make[2]: * [/home/owner/vloopback/vloopback.o] Error 1
make[1]: * [_module_/home/owner/vloopback] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.31-10-generic'
make: * [all] Error 2 

-- DylanTaylor - 09 Sep 2009


With trunk version and latest patch attached below ( 2.6.30.diff ) ?

Current svn trunk works with kernel version 2.6.31.

-- AngelCarpintero - 09 Sep 2009

Heyho

Thats a fine piece of software - i uses it several months before an it worked - now, another machine, new problems:

System: (DA)Ubuntu 9.04 32 BIt Kernel: Linux schluesselmeister 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:57:59 UTC 2009 i686 GNU/Linux

Problem: I got a Quickcam 3000 so i have to use uvc drivers (works), it brings its own v4l - but when i try to make vloopback, it uses the original kernel headers - so the module doesn't load caused by an incorrect v4l version.

My Question: Is it possible to tell the make file to use the uvc tree for building ? (I got several devices that needs own v4l, eg. mantis dvb card - but thats another problem ... )

Thank you very much

Marcel

-- MarcelEbbrecht - 22 Sep 2009


Makefile uses the current kernel version to match kernel headers / kernel tree , you can replace for any version in.ex your 2.6.28-11-generic :
KVER  := $(shell echo -n "2.6.27-14-generic")
KLINK := $(shell test -e /lib/modules/${KVER}/source/ && echo source || echo "build")
KSRC  := /lib/modules/$(KVER)/$(KLINK)
PWD   := $(shell pwd)
DEST  := /lib/modules/$(KVER)/kernel/drivers/misc

-- AngelCarpintero - 08 Oct 2009

I tried the 1.3 under Ubuntu 9.10 (32 bits) and it works pretty well. I see that you have made it compatible with Flash sites so I won't have to keep a fork of that project anymore. Thank you for your great work.

Note: In my packaging, I have made a vlooback loader that will take care of any kernel update. Have a look.

Patrick Balleux WebcamStudio? for GNU/Linux http://ws4gl.org

-- PatrickBalleux - 04 Oct 2009


Thanks Patrick wink

I'll take a look to your package and include anything useful to svn.

-- AngelCarpintero - 08 Oct 2009

The vloopback module included with WebcamStudio? wonÃôt compile on the ubuntu linux-rt kernel. It throws an "implicit declaration of function init_MUTEX " error on line 1264

-- RobVanDenBerg - 31 Oct 2009


Rob,

Try svn version not the one included in WebcamStudio? or if you find problem in his version, please report to Patrick.

-- AngelCarpintero - 16 Nov 2009

make -C /lib/modules/2.6.32-rc5-git4/source SUBDIRS=/home/malmis/vloopback modules 
make[1]: Entering directory `/usr/src/linux-2.6.32-rc5' 
CC [M] /home/malmis/vloopback/vloopback.o /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_open': /home/malmis/vloopback/vloopback.c:406: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_release': /home/malmis/vloopback/vloopback.c:466: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_write': /home/malmis/vloopback/vloopback.c:520: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_read': /home/malmis/vloopback/vloopback.c:572: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_mmap': /home/malmis/vloopback/vloopback.c:655: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_ioctl': /home/malmis/vloopback/vloopback.c:732: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_poll': /home/malmis/vloopback/vloopback.c:1129: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'create_pipe': /home/malmis/vloopback/vloopback.c:1210: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1213: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1221: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1226: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1229: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1230: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1236: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1237: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1250: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1251: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1269: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1271: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1282: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1284: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'cleanup_vloopback_module': /home/malmis/vloopback/vloopback.c:1395: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1397: 
error: 'struct device' has no member named 'driver_data' 
make[2]: * [/home/malmis/vloopback/vloopback.o] Error 1 
make[1]: * [_module_/home/malmis/vloopback] Error 2 
make[1]: Leaving directory `/usr/src/linux-2.6.32-rc5' 
make: * [all] Error 2 

i get this error with linux-2.6.32, so i guess it's not supported yet..?

-- KristofferM - 01 Nov 2009


Kristoffer ,

There's no stable version of 2.6.32 , still with rc7.

-- AngelCarpintero - 16 Nov 2009

Hello all, I've got problem similiar to DiDek? "with disagrees about version". I loaded videodev. If I try to load vloopback, I get: FATAL: Error inserting vloopback
dmesg: 
vloopback: disagrees about version of symbol video_devdata 
vloopback: Unknown symbol video_devdata 
vloopback: disagrees about version of symbol video_unregister_device 
vloopback: Unknown symbol video_unregister_device 
vloopback: disagrees about version of symbol video_device_alloc 
vloopback: Unknown symbol video_device_alloc 
vloopback: disagrees about version of symbol video_register_device 
vloopback: Unknown symbol video_register_device 
vloopback: disagrees about version of symbol video_device_release 
vloopback: Unknown symbol video_device_release 
vloopback: disagrees about version of symbol video_devdata vloopback: Unknown symbol video_devdata 
vloopback: disagrees about version of symbol video_unregister_device 
vloopback: Unknown symbol video_unregister_device 
vloopback: disagrees about version of symbol video_device_alloc 
vloopback: Unknown symbol video_device_alloc 
vloopback: disagrees about version of symbol video_register_device 
vloopback: Unknown symbol video_register_device 
vloopback: disagrees about version of symbol video_device_release 
vloopback: Unknown symbol video_device_release 

openSuse 11.1, 2.6.27.29-0.1-pae

Could it be cause of compilation gspca? I installed new version yesterday.

-- MattPal - 10 Nov 2009


Matt,

it looks there's some headers that broken somehow vloopback build . I build vloopback until 2.6.31 without issues with svn version of vloopback.

-- AngelCarpintero - 16 Nov 2009

Hi,

I am trying to compile vloopback-1.0 (Linux kernel 2.6.29.1-desktop-4mnb Mandriva 2009.1 in i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GNU/Linux) but get the following output:
$ make make -C /lib/modules/2.6.29.1-desktop-4mnb/source SUBDIRS=/home/jfa/Descargas/vloopback-1.2 modules 
make[1]: se ingresa al directorio `/usr/src/linux-2.6.29.1-desktop-4mnb' 
CC [M] /home/jfa/Descargas/vloopback-1.2/vloopback.o /home/jfa/Descargas/vloopback-1.2/vloopback.c:1128: 
error: ‘v4l_compat_ioctl32’ no se declaró aquí (no en una función) /home/jfa/Descargas/vloopback-1.2/vloopback.c:1141: 
aviso: inicialización desde un tipo de puntero incompatible 
make[2]: * [/home/jfa/Descargas/vloopback-1.2/vloopback.o] Error 1 
make[1]: * [_module_/home/jfa/Descargas/vloopback-1.2] Error 2 
make[1]: se sale del directorio `/usr/src/linux-2.6.29.1-desktop-4mnb' 
make: * [all] Error 2

Any idea? Any help would be greatly appreciated.

-- OscarBoschini - 24 Nov 2009


Get vloopback 1.3 from http://www.lavrsen.dk/foswiki/bin/view/Motion/VideoFourLinuxLoopbackDevice

-- AngelCarpintero - 26 Nov 2009

-- OscarBoschini - 27 Nov 2009

Thanks for the help! You could install the module, but now when I use it, I get the following error:

FATAL: Error inserting vloopback (/lib/modules/2.6.29.1-desktop-4mnb/kernel/drivers/misc/vloopback.ko): Unknown symbol in module, or unknown parameter (see dmesg

What could it be? How can I fix it?

-- OscarBoschini - 27 Nov 2009

dmesg ouput:
usb 2-1: new full speed USB device using uhci_hcd and address 2 
usb 2-1: New USB device found, idVendor=046d, idProduct=092b 
usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 2-1: Product: Camera usb 2-1: Manufacturer: 
usb 2-1: configuration #1 chosen from 1 choice Linux video capture interface: v2.00 
gspca: main v2.7.0 registered 
gspca: probing 046d:092b gspca: probe ok 
usbcore: registered new interface driver spca561 
spca561: registered 
vloopback: disagrees about version of symbol video_devdata 
vloopback: Unknown symbol video_devdata 
vloopback: disagrees about version of symbol video_unregister_device 
vloopback: Unknown symbol video_unregister_device 
vloopback: disagrees about version of symbol video_device_alloc 
vloopback: Unknown symbol video_device_alloc 
vloopback: disagrees about version of symbol video_register_device 
vloopback: Unknown symbol video_register_device 
vloopback: disagrees about version of symbol video_device_release 
vloopback: Unknown symbol video_device_release 
IRQ 16/nvidia: IRQF_DISABLED is not guaranteed on shared IRQs agpgart-via 
0000:00:00.0: AGP 3.5 bridge agpgart-via 0000:00:00.0: putting AGP V3 device into 8x mode nvidia 
0000:01:00.0: putting AGP V3 device into 8x mode CPU0 attaching NULL sched-domain. 
CPU1 attaching NULL sched-domain. CPU0 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 0 1 
CPU1 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 1 0 CPU0 attaching NULL sched-domain. 
CPU1 attaching NULL sched-domain. CPU0 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 0 1 
CPU1 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 1 0 
vloopback: disagrees about version of symbol video_devdata 
vloopback: Unknown symbol video_devdata 
vloopback: disagrees about version of symbol video_unregister_device 
vloopback: Unknown symbol video_unregister_device 
vloopback: disagrees about version of symbol video_device_alloc 
vloopback: Unknown symbol video_device_alloc 
vloopback: disagrees about version of symbol video_register_device 
vloopback: Unknown symbol video_register_device 
vloopback: disagrees about version of symbol video_device_release 
vloopback: Unknown symbol video_device_release 
vloopback: disagrees about version of symbol video_devdata 
vloopback: Unknown symbol video_devdata 
vloopback: disagrees about version of symbol video_unregister_device 
vloopback: Unknown symbol video_unregister_device 
vloopback: disagrees about version of symbol video_device_alloc 
vloopback: Unknown symbol video_device_alloc 
vloopback: disagrees about version of symbol video_register_device 
vloopback: Unknown symbol video_register_device 
vloopback: disagrees about version of symbol video_device_release 
vloopback: Unknown symbol video_device_release 
IRQ 16/nvidia: IRQF_DISABLED is not guaranteed on shared IRQs agpgart-via 0000:00:00.0: 
AGP 3.5 bridge agpgart-via 0000:00:00.0: putting AGP V3 device into 8x mode nvidia 
0000:01:00.0: putting AGP V3 device into 8x mode CPU0 attaching NULL sched-domain. 
CPU1 attaching NULL sched-domain.
CPU0 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 0 1 
CPU1 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 1 0 CPU0 attaching NULL sched-domain.
 CPU1 attaching NULL sched-domain. CPU0 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 0 1 
CPU1 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 1 0 
vloopback: disagrees about version of symbol video_devdata 
vloopback: Unknown symbol video_devdata 
vloopback: disagrees about version of symbol video_unregister_device 
vloopback: Unknown symbol video_unregister_device 
vloopback: disagrees about version of symbol video_device_alloc 
vloopback: Unknown symbol video_device_alloc 
vloopback: disagrees about version of symbol video_register_device 
vloopback: Unknown symbol video_register_device 
vloopback: disagrees about version of symbol video_device_release 
vloopback: Unknown symbol video_device_release

. .

-- OscarBoschini - 28 Nov 2009

your kernel and headers are differents , so i guess you have somehow installed some custom kernel headers.

-- AngelCarpintero - 28 Nov 2009


I've patched vloopback.c to make it compile with the 2.6.32 kernel. The main change is that in linux/device.h, the driver_data element has been removed from the device struct, and rather than referring to it directly, the video_get_drvdata and video_set_drvdata functions should be used instead. I also had to include linux/sched.h in vloopback.c, not sure why it wasn't necessary before... I've attached the patch as http://www.lavrsen.dk/foswiki/pub/Motion/VideoFourLinuxLoopbackDeviceSupport/1.3-2.6.32.diff, feel free to incorporate it into the trunk if it seems ok.

-- MananTuli - 05 Dec 2009

Manan , Thanks for your patch i've adapted your patch to don't break build with previous kernel versions. It's already commited to svn.

-- AngelCarpintero - 08 Dec 2009


Many thanks for the vloopback support. I have the same problems as Rob, init_MUTEX not available on a rt (realtime) kernel. Commenting this line leads to the following rt_mutex problem (dmesg):
Linux video capture interface: v2.00
[vloopback_init] : video4linux loopback driver v1.3-trunk
[vloopback_init] : Loopback 0 registered, input: video0, output: video1
[vloopback_init] : Loopback 0 , Using 2 buffers
------------[ cut here ]------------
kernel BUG at kernel/rtmutex_common.h:74!
invalid opcode: 0000 [#1] PREEMPT 
last sysfs file: /sys/module/i2c_core/initstate
CPU 0 
Modules linked in: vloopback videodev v4l1_compat v4l2_compat_ioctl32 nls_iso8859_1 nls_cp437 cryptd aes_x86_64 aes_generic af_packet ipv6 binfmt_misc
 loop vfat fat dm_mod nvram udf sbp2 dv1394 rt2500usb snd_hda_codec_si3054 snd_hda_codec_realtek mmc_block snd_hda_intel rt73usb crc_itu_t sdhci_pci rt2x00usb arc4 
rt2x00lib snd_hda_codec sdhci ecb input_polldev iwlagn mmc_core iwlcore snd_hwdep mac80211 snd_seq_dummy ohci1394 rtc_cmos ieee1394 snd_seq_oss snd_seq_midi_event
 uhci_hcd snd_seq iTCO_wdt iTCO_vendor_support snd_seq_device snd_pcm_oss joydev i2c_i801 wmi r8169 mii snd_pcm cfg80211 rfkill pcspkr evdev sg sr_mod thermal processor
 serio_raw ac button led_class ehci_hcd snd_timer battery snd_mixer_oss snd soundcore snd_page_alloc usb_storage usbcore ata_generic ide_pci_generic ide_gd_mod ide_core 
pata_acpi ahci ata_piix sd_mod crc_t10dif i915 drm i2c_algo_bit i2c_core video output [last unloaded: scsi_wait_scan]
Pid: 30191, comm: v4l_id Not tainted 2.6.31.6-1.rt19.1sm #1 
M720R
RIP: 0010:[<ffffffff81076409>] [<ffffffff81076409>] task_blocks_on_rt_mutex+0x219/0x250 RSP: 0018:ffff88000f4e5cf8 EFLAGS: 00010086 RAX: ffff880046f762e8 RBX: ffff88000f4e5dc8 RCX: 0000000000000000 RDX: ffff88000bf81328 RSI: 0000000000000076 RDI: ffff88006e86a300 RBP: ffff88000f4e5d48 R08: 0000000000000282 R09: 0000000000000282 R10: 0000000000000000 R11: 0000000000000001 R12: ffff88000bf81318 R13: ffff880070c92bc2 R14: ffff88006e86a300 R15: 0000000000000000 FS: 00007f9f7d4b56f0(0000) GS:ffffffff81539000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f9f7d040220 CR3: 000000005ce69000 CR4: 00000000000006f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process v4l_id (pid: 30191, threadinfo ffff88000f4e4000, task ffff88006e86a300) Stack: 000000010f4e5d58 0000000000000246 ffff880046f762e8 0000000000000282 <0> ffff88000f4e5da8 ffff88000f4e5dc8 0000000000000004 ffff88000bf81318 <0> 0000000000000004 0000000000000282 ffff88000f4e5d98 ffffffff813701da Call Trace: [<ffffffff813701da>] __rt_mutex_slowlock+0xba/0x150 [<ffffffff8137061f>] rt_mutex_slowlock+0x11f/0x310 [<ffffffff813708b7>] rt_mutex_lock+0x27/0x30 [<ffffffff81076ed0>] rt_down+0x20/0x50 [<ffffffffa04e6ab7>] vloopback_release+0x47/0x230 [vloopback] [<ffffffffa04d88f2>] v4l2_release+0x32/0x50 [videodev] [<ffffffff810e9d9a>] __fput+0xda/0x230 [<ffffffff810e9f0d>] fput+0x1d/0x30 [<ffffffff810e63e8>] filp_close+0x58/0x90 [<ffffffff810e64d1>] sys_close+0xb1/0x110 [<ffffffff81011ebf>] system_call_fastpath+0x16/0x1b Code: 48 83 7d c0 00 0f 85 05 ff ff ff 0f 1f 80 00 00 00 00 31 d2 e9 53 ff ff ff 66 0f 1f 84 00 00 00 00 00 48 89 5d c0 e9 8c fe ff ff <0f> 0b eb fe e8 7e 8d 2f 00 e9 08 ff ff ff 90 e8 73 8d 2f 00 0f RIP [<ffffffff81076409>] task_blocks_on_rt_mutex+0x219/0x250 RSP <ffff88000f4e5cf8> ---[ end trace aeccb28514e5cfd5 ]---

Unfortunately I don't know if this specific function is unavailable on a realtime kernel (i.e. it needs to be implemented differentially) or if an additional include is needed. I have a 2.6.31 rt kernel.

-- ReinhardKatzmann - 26 Dec 2009


I have to figure out how RT kernels implements mutex/semaphores , probably don't use them or implement in other way ... so commeting the init of mutex won't work as vloopback still uses

semaphores with up() and down() functions.

Meanwhile you can test a simple patch that still uses semaphores with RT kernels :

http://www.lavrsen.dk/foswiki/pub/Motion/VideoFourLinuxLoopbackDeviceSupport/rt-init_MUTEX.diff

-- AngelCarpintero - 29 Dec 2009

Hi,

Thanks for your patch. I tested it successfully with my kernel.

The error messages are gone and the basic tests I did work fine for me.

-- ReinhardKatzmann - 05 Jan 2010

Hi, I'm having a lot of problems with using vloopback. Compiling goes fine:

sander@sander-desktop:~/Downloads/vloopback-1.3$ make 
make -C /lib/modules/2.6.31-16-generic/build SUBDIRS=/home/sander/Downloads/vloopback-1.3 modules 
make[1]: Entering directory `/usr/src/linux-headers-2.6.31-16-generic' 
 CC [M] /home/sander/Downloads/vloopback-1.3/vloopback.o 
 Building modules, stage 2. 
 MODPOST 1 modules CC /home/sander/Downloads/vloopback-1.3/vloopback.mod.o 
 LD [M] /home/sander/Downloads/vloopback-1.3/vloopback.ko 
make[1]: Leaving directory `/usr/src/linux-headers-2.6.31-16-generic' 
make -C example 
make[1]: Entering directory `/home/sander/Downloads/vloopback-1.3/example' 
cc -g -Wall invert.c -o invert 
cc -g -Wall resize.c -o resize 
cc -g -Wall feed.c -o feed 
cc -g -Wall dummy.c -o dummy 
make[1]: Leaving directory `/home/sander/Downloads/vloopback-1.3/example'

As you can see, it uses the headers of my current kernel (Linux sander-desktop 2.6.31-16-generic #53-Ubuntu SMP Tue Dec 8 04:01:29 UTC 2009 i686 GNU/Linux ). Installing goes also fine, it installs for my current kernel:
sander@sander-desktop:~/Downloads/vloopback-1.3$ sudo make install 
install -d /lib/modules/2.6.31-16-generic/kernel/drivers/misc 
install -m 644 -c vloopback.ko /lib/modules/2.6.31-16-generic/kernel/drivers/misc 
/sbin/depmod -a 

It gets tough when I try to load the module, it fails with an "unknown symbol" error:
[ 1102.620551] vloopback: disagrees about version of symbol video_devdata 
[ 1102.620723] vloopback: disagrees about version of symbol video_unregister_device 
[ 1102.620727] vloopback: Unknown symbol video_unregister_device
[ 1102.620838] vloopback: disagrees about version of symbol video_device_alloc 
[ 1102.620841] vloopback: Unknown symbol video_device_alloc 
[ 1102.620961] vloopback: disagrees about version of symbol video_register_device 
[ 1102.620964] vloopback: Unknown symbol video_register_device 
[ 1102.621160] vloopback: disagrees about version of symbol video_device_release 
[ 1102.621163] vloopback: Unknown symbol video_device_release


I've rebooted twice which didn't help. I use V4l from trunk (Mercury).

-- SanderPientka - 05 Jan 2010


Sander,

v4l stack from trunk is messing somehow. I guess you have to adapt Makefile to build using v4l stack from trunk too.

-- AngelCarpintero - 07 Jan 2010


I'm trying to capture video from a firewire camcorder using dvgrab, vloopback, and gstreamer's v4lsrc.

vloopback compiles and installs cleanly. it creates two devices /dev/video0 and video1.

vl4-info on video0 works great, but whatever I try on video1 I always receive an "Invalid Argument" error.

What could be causing the output device to not work correctly?

some info: 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux I'm piping the dvgrab output to video0: dvgrab -h hdv - > /dev/video0 I've tried 1.3 and svn trunk.
dmesg:
[ 2535.093069] [cleanup_vloopback_module] : Unregistering video4linux loopback devices 
[ 2638.934289] [vloopback_init] : video4linux loopback driver v1.4-trunk 
[ 2638.934297] [create_pipe] : Video loopback 0 
[ 2638.934452] [vloopback_init] : Loopback 0 registered, input: video0, output: video1 
[ 2638.934458] [vloopback_init] : Loopback 0 , Using 2 buffers 
[ 2638.936166] [vloopback_open] : Video loopback 0 
[ 2638.936173] [vloopback_open] : Current pid 2965 
[ 2638.936183] [vloopback_ioctl] : Video loopback 0 cmd 2154321408 
[ 2638.936192] [vloopback_ioctl] : Video loopback 0 cmd 2151446017 
[ 2638.936243] [vloopback_release] : Video loopback 0

v4l-info:
v4l-info /dev/video1 open /dev/video1: Invalid argument
v4l-info /dev/video0

### video4linux device info [/dev/video0] ### general info VIDIOCGCAP name : 
"Video loopback 0 input" type : 0x0 [] channels : 1 audios : 0 maxwidth : 0 maxheight : 0 minwidth : 20 minheight : 20

channels VIDIOCGCHAN(0) channel : 0 name : "Composite1" tuners : 0 flags : 0x0 [] type : CAMERA norm : 0

tuner VIDIOCGTUNER tuner : 0 name : "Format" rangelow : 0 rangehigh : 0 flags : 0x0 [] mode : AUTO signal : 0

audio ioctl VIDIOCGAUDIO: Invalid argument

picture VIDIOCGPICT brightness : 32768 hue : 32768 colour : 32768 contrast : 32768 
                    whiteness : 32768 depth : 32768 palette : unknown

buffer VIDIOCGFBUF base : (nil) height : 0 width : 0 depth : 0 bytesperline : 0

window VIDIOCGWIN x : 0 y : 0 width : 0 height : 0 chromakey : 0 flags : 0

-- MicahSutton - 02 Apr 2010


I'm trying to compile vloopback-svn on kernel 2.6.33 with rt patch and get this error:
make -C /lib/modules/2.6.33-rt-ice/build 
SUBDIRS=/tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback modules 
make -C example 
make[1]: Entrando no diretório `/tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/example' 
make[1]: Nada a ser feito para `all'. 
make[1]: Saindo do diretório `/tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/example' 
make[1]: Entrando no diretório `/usr/src/linux-2.6.33-rt-ice' 
CC [M] /tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.o 
/tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.c:1329:2: 
#warning "******************" /tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.c:1330:2: 
#warning "Using patch for RT Kernels" /tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.c:1331:2: 
#warning "******************" /tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.c: 
In function ‘create_pipe’: /tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.c:1332: 
error: implicit declaration of function ‘semaphore_init’ 
make[2]: ** [/tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.o] Erro 1 
make[1]: ** [_module_/tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback] Erro 2 
make[1]: Saindo do diretório `/usr/src/linux-2.6.33-rt-ice' 
make: ** [all] Erro 2

-- RafaelEtc - 17 Apr 2010


Try to replace semaphore_init by sema_init.

-- AngelCarpintero - 17 Apr 2010

It was working ok with 2.6.32, but i updated to 2.6.33 and now..

[oso96_2000@shigure vloopback]$ make

make -C /lib/modules/2.6.34-ARCH/build SUBDIRS=/tmp/yaourt-tmp-oso96_2000/aur-vloopback-svn/src/vloopback modules

make[1]: Entering directory `/usr/src/linux-2.6.34-ARCH'

CC [M] /tmp/yaourt-tmp-oso96_2000/aur-vloopback-svn/src/vloopback/vloopback.o

/tmp/yaourt-tmp-oso96_2000/aur-vloopback-svn/src/vloopback/vloopback.c: In function create_pipe:

/tmp/yaourt-tmp-oso96_2000/aur-vloopback-svn/src/vloopback/vloopback.c:1236:5: error: implicit declaration of function kmalloc

/tmp/yaourt-tmp-oso96_2000/aur-vloopback-svn/src/vloopback/vloopback.c:1236:14: warning: assignment makes pointer from integer without a cast

/tmp/yaourt-tmp-oso96_2000/aur-vloopback-svn/src/vloopback/vloopback.c:1249:51: warning: passing argument 2 of video_set_drvdata makes pointer from integer without a cast

include/media/v4l2-dev.h:128:20: note: expected void * but argument is of type int

/tmp/yaourt-tmp-oso96_2000/aur-vloopback-svn/src/vloopback/vloopback.c:1256:9: error: implicit declaration of function kfree

/tmp/yaourt-tmp-oso96_2000/aur-vloopback-svn/src/vloopback/vloopback.c:1275:52: warning: passing argument 2 of video_set_drvdata makes pointer from integer without a cast

include/media/v4l2-dev.h:128:20: note: expected void * but argument is of type int

/tmp/yaourt-tmp-oso96_2000/aur-vloopback-svn/src/vloopback/vloopback.c:1379:26: warning: assignment makes pointer from integer without a cast

/tmp/yaourt-tmp-oso96_2000/aur-vloopback-svn/src/vloopback/vloopback.c:1380:29: warning: assignment makes pointer from integer without a cast

make[2]: * [/tmp/yaourt-tmp-oso96_2000/aur-vloopback-svn/src/vloopback/vloopback.o] Error 1

make[1]: * [_module_/tmp/yaourt-tmp-oso96_2000/aur-vloopback-svn/src/vloopback] Error 2

make[1]: Leaving directory `/usr/src/linux-2.6.34-ARCH'

make: * [all] Error 2

-- EduardoReveles - 20 Jun 2010

To get vloopback module to compile under 2.6.33/34 you need to add this line to the vloopback.c file.
/* Include files common to 2.4 and 2.6 versions */ 
#include <linux/version.h> /* >= 2.6.14 LINUX_VERSION_CODE */ 
#include <linux/errno.h>  
#include <linux/kernel.h> 
#include <linux/slab.h> // <==================== Insert line Here   
#include <linux/module.h>  
#include <linux/pagemap.h>  
#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,32)

hope that helps

-- DonAlex - 25 Jun 2010

I installed the vloopback and it works ok. 2 questions: The command line I use to create the pipes is: /sbin/insmod /usr/local/vloopback/vloopback.ko pipes=4 dev_offset=4 How can I do this automatically, when the system start and before motion starts? I use motion to capture images in time-lapse format and, also, one picture at every 60 seconds. This picture is uploaded to my site and shown in my page (webcam-style) - see at www.ssaguiar.com. At the same time, using the loopback, I see the image from the camera, in real time, using the program zapping. How can I use this system to, also, capture the images using mencoder, in real time?

The script I call, using the motion's on_picture_save is: #!/bin/bash #echo $1 >> /root/emailmovimento.log; cd /root /bin/cp $1 /root/webcam.jpg /usr/bin/ftp -inv www.yoursite.com<<ENDFTP user username password cd public_html/webcam bin put webcam.jpg bye ENDFTP

Sergio

-- SergioAguiar - 20 Oct 2010

I'm having some trouble. My system is CentOS? 5.5 kernel 2.6.18-194.17.4.el5.. Version 1.0 will not build. Newer versions all build fine but won't install, the error is FATAL: Error inserting vloopback (/lib/modules/2.6.18-194.17.4.el5/kernel/drivers/misc/vloopback.ko): Unknown symbol in module, or unknown parameter (see dmesg)

vloopback: disagrees about version of symbol video_devdata vloopback: Unknown symbol video_devdata vloopback: disagrees about version of symbol video_unregister_device vloopback: Unknown symbol video_unregister_device vloopback: disagrees about version of symbol video_device_alloc vloopback: Unknown symbol video_device_alloc vloopback: disagrees about version of symbol video_register_device vloopback: Unknown symbol video_register_device vloopback: disagrees about version of symbol video_device_release vloopback: Unknown symbol video_device_release

-- MattCastelein - 05 Nov 2010

There are some problems compiling vloopback module for RT kernels and kernels >= 2.6.37 I propose this patch to fix them....

-- PhobosK - 06 Feb 2011


Thanks Main.PhobosK !

Commited in trunk your patch.

-- AngelCarpintero - 09 Feb 2011

Any idea on how to fix this? 2.6.38 kernel and it can't find videodev.h.
make -C /lib/modules/2.6.38-8-generic/build SUBDIRS=./Motion/vloopback modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.38-8-generic'
  CC [M]  ./Motion/vloopback/vloopback.o
./Motion/vloopback/vloopback.c:196:2: error: #error "need CONFIG_VIDEO_V4L1_COMPAT"
./Motion/vloopback/vloopback.c:220:28: fatal error: linux/videodev.h: No such file or directory
compilation terminated.
make[2]: *** [./Motion/vloopback/vloopback.o] Error 1
make[1]: *** [_module_./Motion/vloopback] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.38-8-generic'
make: *** [all] Error 2

-- SpaffoNicus - 09 Jun 2011

Do you plan to pure v4l2 implementation of vloopback module? linux-kernel image of most distro made without CONFIG_VIDEO_V4L1_COMPAT now.

-- AndreyZayarny - 18 Jul 2011

Hi I'm trying to compile latest vloopback (from trunk) on a Debian Squeeze machine (kernel 2.6.32-5) but I get the following error:

Error: kernel configuration is invalid include/generated/autoconf.h or include/config/auto.conf are missing Run "make oldconfig && make prepare" on kernel src to fix it

I don't know how to fix this, can you help me? Thank you

-- TuviaSerber - 31 Jan 2012

-- AngelCarpintero - 09 Feb 2011

Video4Linux Loopback Device Support

EffecTV

EffecTV is a real-time video effector with a lot of effects that's capable of using the output of the vloopback pipes:
$ effectv -vloopback /dev/video1 -channel 1
catch images from /dev/video0 (default) and put in /dev/video1 the output of processed images.
$ ffmpeg -vd /dev/video2 -s 320x240 effect.mpg
make a mpeg video from processed images using /dev/video2

-- MarcoCarvalho - 09 Oct 2004


I have removed the bug reports and uploaded a formal release of vloopback-0.95.

The older 0.92 is still there because this is normally a better choice for old 2.4 kernels.

Note that your kernel should be at least 2.6.8 to work with vloopback device.

Lastest version has a annoying bug that causes a Kernel Panic .

  • Test case
There's already a video devices registered from /dev/video0 to /dev/video4 , video0 ... video3 v4l2 and video4 v4l :

 # modprobe vloopback dev_offset=4

 # dmseg 

/home/motion/motion/drivers/vloopback-0.95/vloopback.c: Video4linux loopback driver v0.95
/home/motion/motion/drivers/vloopback-0.95/vloopback.c: Loopback 0 registered, input: video0,output: video5
 
 rmmod vloopback

 /home/motion/motion/drivers/vloopback-0.95/vloopback.c: Unregistering video4linux loopback devices
 Kernel panic: videodev: bad unregister

Fixed in vloopback-0.96a.tar.gz

-- AngelCarpintero - 10 May 2005

I am trying to compile vloopback on a linux 2.6.14 kernel, but it doesn't work. Is this a know problem? The original kernel sources are installed. Here are the first lines. The same problem with version 0.95.
bash-3.00$ cd vloopback-0.96a
 bash-3.00$ make
 make -C /lib/modules/2.6.14/build SUBDIRS=/home/klaus/programs/webcam/vloopback-0.96a modules
 make[1]: Entering directory `/usr/src/linux-2.6.14'
  CC [M]  /home/klaus/programs/webcam/vloopback-0.96a/vloopback.o
/home/klaus/programs/webcam/vloopback-0.96a/vloopback.c:125:5: warning: "LINUX_VERSION_CODE" is not defined
/home/klaus/programs/webcam/vloopback-0.96a/vloopback.c:125:26: warning: "KERNEL_VERSION" is not defined
/home/klaus/programs/webcam/vloopback-0.96a/vloopback.c:125:40: missing binary operator before token "("
/home/klaus/programs/webcam/vloopback-0.96a/vloopback.c:144:28: linux/wrapper.h: No such file or directory
/home/klaus/programs/webcam/vloopback-0.96a/vloopback.c:198:5: warning: "LINUX_VERSION_CODE" is not defined
....
-- KlausW - 12 Nov 2005


vloopback-0.97-snap1 fix that problem .

-- AngelCarpintero - 14 Nov 2005

vloopback-0.97-snap2 add to examples the option to choose rgb24 or yu420p palette.

-- AngelCarpintero - 19 Dec 2005

I have problem with vloopback-0.97-snap2:

# resize /dev/video1 /dev/video2 320x240 176x144 rgb24 Segmentation fault 
# strace resize /dev/video1 /dev/video2 320x240 176x144 rgb24 
execve("/usr/bin/resize", ["resize", "/dev/video1", "/dev/video2", "320x240", "176x144", "rgb24"], [/* 64 vars */]) = 0 
uname({sys="Linux", node="jirka", ...}) = 0 brk(0) = 0x804b000 
access("/etc/ld.so.preload", R_OK)  = -1 ENOENT (No such file or directory) 
open("/etc/ld.so.cache", O_RDONLY) = 3 
fstat64(3, {st_mode=S_IFREG|0644, st_size=104101, ...}) = 0 
mmap2(NULL, 104101, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fc3000 
close(3)  = 0 
open("/lib/tls/libc.so.6", O_RDONLY)    = 3 
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 P\1\000"..., 512) = 512 
fstat64(3, {st_mode=S_IFREG|0755, st_size=1202680, ...}) = 0 
mmap2(NULL, 1141948, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7eac000
mmap2(0xb7fbd000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x111) = 0xb7fbd000 
mmap2(0xb7fc1000, 7356, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7fc1000 
close(3) = 0 
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7eab000 
mprotect(0xb7fbd000, 4096, PROT_READ)   = 0 
mprotect(0xb7ff2000, 4096, PROT_READ)   = 0 
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7eabaa0, limit:1048575, seg_32bit:1, contents:0, 
read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 
munmap(0xb7fc3000, 104101) = 0 
open("/dev/urandom", O_RDONLY) = 3 
read(3, "\33Qv\332", 4)  = 4 
close(3) = 0 
--- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ 

-- JiriTyr - 31 Dec 2005

I've upload a new tarball that fix some problems in the examples , also added a sysfs support for dummy.c ,

Please give a try.

-- AngelCarpintero - 31 Dec 2005

I have also problem with picture in vloopback-0.96a. If I load vloopback module:

modprobe vloopback 

and run resize of picture:

resize /dev/video1 /dev/video2 320x240 176x144 

and open gnomemeeting (with vloopback device):

gnomemeeting 

then I see picture with bad brightnes.

But if I run spcaview before resize, then brightnes in gnomemeeting is good. The question is, if is possible to do some brightnes optimisation in resize program. Or it is problem of spca5xx?

PS: I have "Logitech QuickCam Communicate STX"

-- JiriTyr - 31 Dec 2005

Example files don't touch any image parameter like brightness, hue , etc ... so the problem come from the driver i guess.

-- AngelCarpintero - 31 Dec 2005

Thank you for your answers. Can you explain me why if I run first spcaview and then resize everything works good? It looks that spcaview do something what make same initialisation of the webcam. The question is if you can do the same in resize or not.

The new tarball have the same bug:

# resize /dev/video1 /dev/video2 320x240 176x144 rbg24 Segmentation fault 
# strace resize /dev/video1 /dev/video2 320x240 176x144 rbg24 
execve("/usr/bin/resize", ["resize", "/dev/video1", "/dev/video2", "320x240", "176x144", "rbg24"], [/* 54 vars */]) = 0 
uname({sys="Linux", node="jirka", ...}) = 0 
brk(0) = 0x804b000 
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory) 
open("/etc/ld.so.cache", O_RDONLY)      = 3 
fstat64(3, {st_mode=S_IFREG|0644, st_size=104101, ...}) = 0 
mmap2(NULL, 104101, PROT_READ, MAP_PRIVATE, 3, 0) = 0xb7fb0000 
close(3)                                = 0 
open("/lib/tls/libc.so.6", O_RDONLY)    = 3 
read(3, "\177ELF\1\1\1\0\0\0\0\0\0\0\0\0\3\0\3\0\1\0\0\0 P\1\000"..., 512) = 512 
fstat64(3, {st_mode=S_IFREG|0755, st_size=1202680, ...}) = 0 
mmap2(NULL, 1141948, PROT_READ|PROT_EXEC, MAP_PRIVATE|MAP_DENYWRITE, 3, 0) = 0xb7e99000 
mmap2(0xb7faa000, 16384, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_DENYWRITE, 3, 0x111) = 0xb7faa000 
mmap2(0xb7fae000, 7356, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_FIXED|MAP_ANONYMOUS, -1, 0) = 0xb7fae000 
close(3)                                = 0 
mmap2(NULL, 4096, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0xb7e98000 
mprotect(0xb7faa000, 4096, PROT_READ)   = 0 
mprotect(0xb7fdf000, 4096, PROT_READ)   = 0 
set_thread_area({entry_number:-1 -> 6, base_addr:0xb7e98aa0, limit:1048575, seg_32bit:1, contents:0, 
read_exec_only:0, limit_in_pages:1, seg_not_present:0, useable:1}) = 0 
munmap(0xb7fb0000, 104101)              = 0
open("/dev/urandom", O_RDONLY)          = 3 
read(3, "\216\265\232~", 4)             = 4 
close(3)                                = 0 
--- SIGSEGV (Segmentation fault) @ 0 (0) --- +++ killed by SIGSEGV +++ 

-- JiriTyr - 01 Jan 2006

I was trying to use a package (libdc1394-2.0.0-pre5 dc1394_vloopback.c) and it looks like it doesn't support current proc formats. It looks like it was based on and old version of vloopback example/dummy.c open_vidpipe. I am working on updating it to use the current version of open_vidpipe.

They had one change in that your current version doesn't have

at around line 311

if (pipe>=0) {
        printf("Input: /dev/%s\n", input);
        printf("Output: /dev/%s\n", output);
        --- break;
}

they added the break line I showed above. This code is in a while loop so looks like it may be able to leave open files if the while loop runs multiple times. Is their any reason you know that you shouldn't stop at the first one that opens sucessfully? Or will only one open successfully so it isn't a problem?

If it is a problem is the other case below ok for the /sys/class/video4linux or does it need a similar change? Since it closes pipe_fd it won't leave open files but is their any reason to continue after the first one?

-- DavidGesswein - 01 Jan 2006


Thanks David !

I've re-upload last version with the "bug/typo" fixed in line 311 and i've added a return instead of break:

-                               if (pipe>=0) {
+                                       if (pipe_fd>=0) {
                                                printf("Input: /dev/%s\n", input);
                                                printf("Output: /dev/%s\n", output);
+                                               return pipe_fd;

-- AngelCarpintero - 05 Jan 2006

Hi,

I am trying to compile vloopback-0.97-snap2 but get the following output:

make -C /lib/modules/2.6.10-1-686/build SUBDIRS=/home/roland/Downloads/vloopback-0.97-snap2 modules
 make[1]: Entering directory `/usr/src/kernel-headers-2.6.10-1-686'
  CC [M]  /home/roland/Downloads/vloopback-0.97-snap2/vloopback.o
  Building modules, stage 2.
  MODPOST
 Warning: could not find versions for .tmp_versions/vloopback.mod
*** Warning: "cleanup_module" [/home/roland/Downloads/vloopback-0.97-snap2/vloopback.ko] undefined!
*** Warning: "init_module" [/home/roland/Downloads/vloopback-0.97-snap2/vloopback.ko] undefined!
  CC      /home/roland/Downloads/vloopback-0.97-snap2/vloopback.mod.o
  LD [M]  /home/roland/Downloads/vloopback-0.97-snap2/vloopback.ko
 make[1]: Leaving directory `/usr/src/kernel-headers-2.6.10-1-686'

Is that what one would expect? Are the error messages about cleanup_module and init_module normal?

Roland

-- RolandGoecke - 09 Jan 2006

Are you using debian , right ?

I googled a bit and i found that people has de same problem with this version of kernel

that belongs to SID , anyway did you try to load the module to see if it's working ?

-- AngelCarpintero - 09 Jan 2006

Is it possible to use vloopback to feed the output from a firewire camcorder to V4L? This would be to allow use of a camcorder as a webcam in applications which only use V4L.

Thanks, Alan

-- AlanPater - 10 Jan 2006

Sure , Coriander does . You just a need an simple application that capture from firewire and feed the vloopback input.

-- AngelCarpintero - 10 Jan 2006

Coriander does not seem able to work with consumer camcorders, it seems aimed at a different type of firewire camera.

-- AlanPater - 14 Jan 2006

Did you try kino or dvgrab to capture from your camcorder ?

To capture with dvgrab there's a nice thread here

-- AngelCarpintero - 14 Jan 2006

Updated vloopback-0.97-snap2.tar.gz , fixed example files and added a new one feed.c .

-- AngelCarpintero - 16 Jan 2006

Vloopback ebuild for gentoo users:
http://bugs.gentoo.org/show_bug.cgi?id=111750

-- JiriTyr - 19 Jan 2006

Anyone had any success in sending the output from a DV camcorder to the vloopbback device?

-- PerArne - 09 Feb 2006

Ok I compiled vloopback for FC5 and when I went to load it "modprobe vloopback" it gave me an error dmesg showed this as the error "vloopback: falsely claims to have parameter spares" So I decided to try and fix it and am puzzeled why my fix works. heres the diff of how I fixed it

 diff -r vloopback-0.97-snap2/vloopback.c
 vloopback-0.97-snap2_mod/vloopback.c
 198,202c198,202
 < static int nr_o_pipes=0;
 < static int pipes=-1;
 < static int spares=0;
 < static int pipesused=0;
 < static int dev_offset=-1;
 ---
 > int nr_o_pipes=0;
 > int pipes=-1;
 > int spares=0;
 > int pipesused=0;
 > int dev_offset=-1;
 

I don't understand why they cant be static globals like they where. This fix allows the vloopback module to be loaded in FC5. I'm not sure if this is a kernel 2.6.16 issue or a gcc 4.1.0 issue or what. I just upgraded. Well I hope this helps others out.

-- JeffSadowski - 23 Apr 2006

Ok , let me check if that is correct and doesn't have any side effects.

-- AngelCarpintero - 27 Apr 2006

The error "vloopback: falsely claims to have parameter spares" has to do with the deprecated kernel interface. All the MODULE_PARM() need to be replaced with module_param() functions.

-- ArekJankowski - 04 Jun 2006

Ok , added module_param() in latest snap vloopback-0.97-snap3.

-- AngelCarpintero - 04 Jun 2006

I don't see any /proc/video/vloopback/vloopbacks support in snap3, is it supposed to be there? At least struct dir_proc_entry *proc_entry; is declared wink

-- FilippoGiunchedi - 15 Jun 2006

0.97-snap3 and 0.95 are versions for kernel 2.6.x series where the use of proc is deprecated and is replaced by sysfs. Thanks report that has no sense to keep that declaration there wink

More info here :

http://lwn.net/Articles/2.6-kernel-api/

http://lwn.net/Articles/driver-porting/

http://lwn.net/Articles/31185/

http://lwn.net/Articles/31220/

-- AngelCarpintero - 16 Jun 2006

The link to snap3 above actually points to snap2

-- AlexOrlovsky - 27 Jun 2006

Fixed. Thanks. You could actually have fixed it. It is a wiki smile -- KennethLavrsen - 27 Jun 2006

The module compÃíles ok, but when I tried to insmod, I had this:

insmod: error inserting './vloopback.ko': -1 Invalid module format

I use kernel 2.6.14-kanotix-6

The "modinfo ./vloopback.ko" output, after compile

filename:       ./vloopback.ko
author:         J.B. Vreeken (pe1rxq@amsat.org)
description:    Video4linux loopback device.
license:        GPL
version:        1.0
vermagic:       2.6.14-kanotix-6 preempt 586 gcc-4.1
depends:        videodev
srcversion:     CA5522D7512924CD540FA42
parm:           dev_offset:Prefered offset for video device numbers (int)
parm:           spares:Nr of spare pipes that should be created (int)
parm:           pipes:Nr of pipes to create (each pipe uses two video devices) (int)

Is the problem the kanotix kernel?

-- ThiagoCordeiro - 29 Jul 2006

I've tried with 2.6.15-25-k7 in ubuntu dapper and others without any problems.

filename:       /lib/modules/2.6.15-25-k7/kernel/drivers/misc/vloopback.ko
author:         J.B. Vreeken (pe1rxq@amsat.org)
description:    Video4linux loopback device.
license:        GPL
version:        1.0
vermagic:       2.6.15-25-k7 SMP preempt K7 gcc-4.0
depends:        videodev
srcversion:     CA5522D7512924CD540FA42
parm:           dev_offset:Prefered offset for video device numbers (int)
parm:           spares:Nr of spare pipes that should be created (int)
parm:           pipes:Nr of pipes to create (each pipe uses two video devices) (int)

I don't think that the problem is your kernel version but other problem ... maybe related to gcc-4.1 ?

Could you try to load the module with modprobe instead ( be sure that videodev is already loaded ) ?

btw any strace debug will help :

strace insmod ./vloopback.ko 

or 

strace modprobe ./vloopback.ko 

-- AngelCarpintero - 08 Aug 2006

/home/MakeRelease_release/trunk/src/drivers/vloopback/vloopback.c: Video4linux loopback driver v0.97-snap3
/home/MakeRelease_release/trunk/src/drivers/vloopback/vloopback.c: Loopback 0 registered, input: video30,output: video31
/home/MakeRelease_release/trunk/src/drivers/vloopback/vloopback.c: error registering device Video loopback 1 input
Unable to handle kernel paging request at virtual address ea4058c0
 printing eip:
e8cb6102
*pde = 2667c067
*pte = 00000000
Oops: 0000 [#1]
SMP
Modules linked in: raw1394 video1394 ohci1394 ieee1394 nfs ide_generic rfcomm l2cap bttv video_buf compat_ioctl32
 i2c_algo_bit btcx_risc ir_common ipt_TCPMSS xt_tcpudp xt_mark xt_state iptable_nat iptable_filter ip_tables x_tables
 nfsd exportfs lockd nfs_acl sunrpc autofs4 nvidia agpgart ipv6 vga16fb vgastate ip_nat_irc ip_nat_ftp ip_nat ip_conntrack_irc
 ip_conntrack_ftp ip_conntrack nfnetlink ide_disk msp3400 saa7115 mousedev tsdev tda9887 tuner v4l2_common ivtv firmware_class
 psmouse v4l1_compat tveeprom i2c_core serio_raw videodev evdev ftdi_sio usbserial snd_hda_intel snd_hda_codec snd_pcm_oss 
snd_mixer_oss snd_pcm snd_timer snd soundcore rtc snd_page_alloc hci_usb bluetooth ext3 jbd mbcache usb_storage ide_cd cdrom
 sd_mod 8139too sata_nv libata scsi_mod forcedeth 8139cp mii generic ehci_hcd amd74xx ide_core ohci_hcd usbcore
CPU:    0
EIP:    0060:[<e8cb6102>]    Tainted: P      VLI
EFLAGS: 00010286   (2.6.16.20-pluto-2-686-smp #1)
EIP is at video_open+0x52/0x1a0 [videodev]
eax: ea4058c0   ebx: e8cb7f00   ecx: d0230e00   edx: d831cc00
esi: d831cc00   edi: 00000000   ebp: e7bee5e0   esp: badc3e94
ds: 007b   es: 007b   ss: 0068
Process ivtv-detect (pid: 3934, threadinfo=badc2000 task=d7e12a90)
Stack: <0>badc2000 b0176e30 000000ff dfc7a440 00000000 e8cb60b0 e7bee5e0 b0176ce6
       e7bee5e0 d831cc00 badc3ec0 0000001e d831cc00 e7bee5e0 b0176c20 badc2000
       b016bb6c e7bee5e0 d831cc00 d831cc00 badc3f24 00000003 badc2000 b016be08
Call Trace:
 [<b0176e30>] exact_match+0x0/0x10
 [<e8cb60b0>] video_open+0x0/0x1a0 [videodev]
 [<b0176ce6>] chrdev_open+0xc6/0x180
 [<b0176c20>] chrdev_open+0x0/0x180
 [<b016bb6c>] __dentry_open+0xbc/0x200
 [<b016be08>] nameidata_to_filp+0x38/0x50
 [<b016bd0c>] do_filp_open+0x5c/0x60
 [<b016c087>] do_sys_open+0x57/0xf0
 [<b016c147>] sys_open+0x27/0x30
 [<b01031a9>] syscall_call+0x7/0xb
Code: 8a 00 00 00 b8 dc 7e cb e8 e8 bb 83 63 c7 8b 0c 9d a0 81 cb e8 85 c9 0f 84 0b 01 00 00 8b 41 34 8b 5e 10 85 c0 0f 84 
f6 00 00 00 <8b> 10 85 d2 74 1f b8 00 e0 ff ff 21 e0 83 3a 02 8b 40 10 0f 84
 <6>/home/MakeRelease_release/trunk/src/drivers/vloopback/vloopback.c: Video4linux loopback driver v0.97-snap3

-- RazvanGavril - 20 Oct 2006

Please upgrade to version 1.0 and try to reproduce again that issue.

btw , what video driver are you using ? seems to me that is ivtv ... which version ?

-- AngelCarpintero - 20 Oct 2006


I'm using a firewire camera (video1394) in conjunction with vloopback so i can provide v4l input for motion.

For generate vloopback input i use a example program from libdc1394(ver:1.0.0) called dc1394_vloopback.

The kernel running there is a 2.6.16.20 vanilla.

A did a diff on my current vloopback.c and the one from version 1.0 and i can't see no difference instead of the version macro smile

-- RazvanGavril - 23 Oct 2006

You're right. looking at you kernel crash, problem was loading the module , right ?

How did you load vloopback ? ( Loopback 0 registered, input: video30,output: video31 ? ).

-- AngelCarpintero - 28 Oct 2006

Hi,

I am trying to compile vloopback-1.0 (for kernel-2.6.9-42.0.3 REDHAT EL4) but get the following output:
$make

make -C /lib/modules/2.6.9-42.0.3.EL.RDPS/build SUBDIRS=/home/adminr/temporal/vloopback-1.0 modules
make[1]: Entering directory `/usr/src/linux-2.6.9'
Makefile:461: .config: No existe el fichero o el directorio
CC [M] /home/adminr/temporal/vloopback-1.0/vloopback.o
/home/adminr/temporal/vloopback-1.0/vloopback.c:135:63: linux/version.h: No existe el fichero o el directorio
En el fichero incluído de /home/adminr/temporal/vloopback-1.0/vloopback.c:136:
include/linux/config.h:4:28: linux/autoconf.h: No existe el fichero o el directorio
En el fichero incluído de /home/adminr/temporal/vloopback-1.0/vloopback.c:137:
include/linux/errno.h:4:23: asm/errno.h: No existe el fichero o el directorio
En el fichero incluído de include/linux/kernel.h:11,
de /home/adminr/temporal/vloopback-1.0/vloopback.c:138:
include/linux/linkage.h:5:25: asm/linkage.h: No existe el fichero o el directorio
En el fichero incluído de include/linux/types.h:13,
de include/linux/kernel.h:13,
de /home/adminr/temporal/vloopback-1.0/vloopback.c:138:
include/linux/posix_types.h:47:29: asm/posix_types.h: No existe el fichero o el directorio
En el fichero incluído de include/linux/kernel.h:13,
de /home/adminr/temporal/vloopback-1.0/vloopback.c:138:
include/linux/types.h:14:23: asm/types.h: No existe el fichero o el directorio
In file included from include/linux/kernel.h:13,
from /home/adminr/temporal/vloopback-1.0/vloopback.c:138:
include/linux/types.h:18: error: error sintáctico antes de "__kernel_dev_t" ... ... 
Any idea?

-- EdwinValencia - 24 Oct 2006

it Seems that you don't have installed kernel-headers for you kernel version, so try to install them and all should run fine.

-- AngelCarpintero - 28 Oct 2006

I'm trying to build vloopback on Debian Sid - 2.6.18. Have everything installed, but can't just 'make', I get:
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c: In function 'vloopback_open':
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c:308: warning: implicit declaration of function 'video_devdata'
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c:308: warning: initialization makes pointer from integer without a cast
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c:309: error: dereferencing pointer to incomplete type
and on and on and on.
home/rick/qc3000/vloopback-0.97-snap3/vloopback.c:1107: error: dereferencing pointer to incomplete type
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c:1109: error: dereferencing pointer to incomplete type
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c: In function 'vloopback_init':
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c:1089: error: dereferencing pointer to incomplete type
/home/rick/qc3000/vloopback-0.97-snap3/vloopback.c: In function 'cleanup_vloopback_module':
make[2]: *** [/home/rick/qc3000/vloopback-0.97-snap3/vloopback.o] Error 1
make[1]: *** [_module_/home/rick/qc3000/vloopback-0.97-snap3] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.18-1-686'
make: *** [default] Error 2

Can't quite figure out the whole kpkg_make thing, I just want to build the freakin module smile This happens with 1.0 and .0.97-snap3.

Thanks

-- RickRomero - 30 Oct 2006

Hmm I think I may have missed something important by not pasting it all, I put it up as a text file on my site: www.havokmon.com/vloopback.error.txt

-- RickRomero - 30 Oct 2006

Compiles fine when I add:

 #include <asm/uaccess.h>
 #include <linux/init.h>
 #include <linux/device.h>
+ #include <media/v4l2-common.h>
+ #include <media/v4l2-dev.h>
#else
 #include <linux/mm.h>
 #include <linux/slab.h>
 #include <linux/wrapper.h>
 #include <asm/io.h>
#endif

-- RickRomero - 01 Nov 2006

Yes you are right, i took a look to last stable kernel tree git and from 2.6.18-1 :

video_devdata , video_device_alloc, video_register_device and others has been moved from videodev.h/videodev2.h to v4l2-dev.h .

I think that is enough to include media/v4l2-common.h because it already include media/v4l2-dev.h.

So i'll make a patch to allow compile against last stable version.

Thanks to report it smile

-- AngelCarpintero - 02 Nov 2006

I'm sorry for this kinda offtopic post, but is there any way to use mpeg file as v4l source?

-- IvanSidoroff - 07 Nov 2006

No.

-- AngelCarpintero - 07 Nov 2006

I tried to make vloopback-1.1-rc1 but I get:

[root@tinklebell vloopback-1.1-rc1]# make
make -C /lib/modules/2.6.18-1.2849.fc6/source SUBDIRS=/root/vloopback-1.1-rc1 modules
make[1]: Entering directory `/usr/src/kernels/2.6.18-1.2849.fc6-x86_64'
  CC [M]  /root/vloopback-1.1-rc1/vloopback.o
/root/vloopback-1.1-rc1/vloopback.c:141:75: error: linux/config.h: No such file or directory
make[2]: *** [/root/vloopback-1.1-rc1/vloopback.o] Error 1
make[1]: *** [_module_/root/vloopback-1.1-rc1] Error 2
make[1]: Leaving directory `/usr/src/kernels/2.6.18-1.2849.fc6-x86_64'
make: *** [all] Error 2
[root@tinklebell vloopback-1.1-rc1]#

even though I installed kernel-headers on my FC6, and "linux/config.h" does not exist on my system. Is it in kernel-source?

-- ChrisJenks - 22 Nov 2006

Stocks kernels include linux/config.h but is just an include to keep backward compatibility, its content is :

#ifndef _LINUX_CONFIG_H
#define _LINUX_CONFIG_H
/* This file is no longer in use and kept only for backward compatibility.
 * autoconf.h is now included via -imacros on the commandline
 */
#include <linux/autoconf.h>

#endif      

Anyway i've upload a new version of 1.1-rc1 that fix that problem.

-- AngelCarpintero - 23 Nov 2006

Hi, I'm having a similar problem to -- ThiagoCordeiro? - 29 Jul 2006. After a successful make, I run "insmod vloopback.ko", but get ...

insmod: error inserting 'vloopback.ko': -1 Unknown symbol in module

Running "modinfo vloopback.ko" gives ...

filename: vloopback.ko
author: J.B. Vreeken (pe1rxq@amsat.org)
description: Video4linux loopback device.
license: GPL
version: 1.0
vermagic: 2.6.16.27-0.6-default 586 REGPARM gcc-4.1
depends: videodev
srcversion: CA5522D7512924CD540FA42
parm: dev_offset:Prefered offset for video device numbers (int)
parm: spares:Nr of spare pipes that should be created (int)
parm: pipes:Nr of pipes to create (each pipe uses two video devices) (int)
Any suggestions?

-- IanDickinson - 04 Jan 2007

OK, looks like I may have found the answer in the README. I need to run "insmod videodev" first. However, where do I find videodev?

-- IanDickinson - 04 Jan 2007

 modprobe videodev
 modprobe vlooopback

-- AngelCarpintero - 04 Jan 2007

I am having problems with compiling vloopback on Eft. Are there any known issues? At present I get

include/asm/mpspec_def.h:78: warning: packed attribute ignored for field of type unsigned char[6]

while doing make. It continues and actually makes vloopback.ko but when I modprobe vloopback.ko I get

[17249398.044000] vloopback: version magic '2.6.15-27-k7 SMP preempt K7 gcc-4.1' should be '2.6.15-27-k7 SMP preempt K7 gcc-4.0

Any help would be greatly appreciated. It works just great on my Dapper box.

-- DavidRepa - 22 Feb 2007

David , Edgy Eft kernel version is 2.6.17-10-generic ( is deprecated to use K7 or so ), well last is 2.6.17-11-X ( where X is i386 or generic ) , so you have an strange kernel version or a stock kernel installed. Anyway i tested in this kernel version without any issue.

Please try to paste the complete output from build process.

-- AngelCarpintero - 28 Feb 2007

Has anyone managed to use dvgrab output as a V4L source? I see there is some talk about the libdc1394 code doing it... so it seems there must be a way to pipe raw dv output from dvgrab to that code, right?

dvgrab --format raw | (?)

Can someone give me something to put in place of the (?) to pipe my camcorder videos to v4l (so I can process them with Motion)? Thanks.

-- KenRushia - 24 Mar 2007

Coriander seems that can pipe from firewire ( using libdc1394 ) to vloopback , so just test it ... i guess it should work fine.

-- AngelCarpintero - 01 Apr 2007

Coriander won't work with some domestic dv camcorders but I created dv2vloopback (https://sourceforge.net/projects/dv2vloopback/) wich willl do the trick, documentation at https://sourceforge.net/docman/display_doc.php?docid=49125&group_id=193697 Still beta!

-- FaltanTornillos - 17 Apr 2007


Thanks !

Added to http://www.lavrsen.dk/twiki/bin/view/Motion/RelatedProjects .

-- AngelCarpintero - 17 Apr 2007

I'm getting a strange error:

root@moe-mac-linux:/home/zac/compiled_packages/vloopback-1.1-rc1# insmod /lib/modules/2.6.20-16-generic/build/usr/vloopback.ko 
insmod: error inserting '/lib/modules/2.6.20-16-generic/build/usr/vloopback.ko': -1 Unknown symbol in module

I've already tried insmod videodev as it suggested in the readme, and that went through without errors, but vloopback.ko gives me the same error. It compiled with no errors. This is on an ubuntu system.

-- ZacWitte - 03 Jun 2007

I've tested with same version of kernel you did in Ubuntu feisty without any problem , so please try to get a more detailed information ( kernel logs / syslog , etc )

-- AngelCarpintero - 04 Jun 2007

is there any way to use vloopback (or other app) as a means of getting a v4l2 device to appear as a v4l device? (much as coriander makes raw1394 appear as v4l)

it seems a common problem, to make newer webcams compatible with all lovely v4l software, but i've yet to find anything re: converting v4l2->v4l.

perhaps community knows of something?

vloopback is wonderful, always works perfectly. thank you !

-- NanoDust - 27 Jun 2007

vloopback version 1.0 does not compile under the kernel 2.6.18 (I am using Debian Etch)

user@dell-debian:~/tmp/vloopback-1.0$ make
make -C /lib/modules/2.6.18-3-686/build SUBDIRS=~/tmp/vloopback-1.0 modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.18-3-686'
  CC [M]  ~/tmp/vloopback-1.0/vloopback.o
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_open':
~/tmp/vloopback-1.0/vloopback.c:313: warning: implicit declaration of function 'video_devdata'
~/tmp/vloopback-1.0/vloopback.c:313: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:314: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:339: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:339: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_release':
~/tmp/vloopback-1.0/vloopback.c:355: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:356: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_write':
~/tmp/vloopback-1.0/vloopback.c:398: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:399: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_read':
~/tmp/vloopback-1.0/vloopback.c:444: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:445: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_mmap':
~/tmp/vloopback-1.0/vloopback.c:513: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:514: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_ioctl':
~/tmp/vloopback-1.0/vloopback.c:571: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:572: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:852: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:854: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_poll':
~/tmp/vloopback-1.0/vloopback.c:903: warning: initialization makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:904: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:914: error: 'POLLIN' undeclared (first use in this function)
~/tmp/vloopback-1.0/vloopback.c:914: error: (Each undeclared identifier is reported only once
~/tmp/vloopback-1.0/vloopback.c:914: error: for each function it appears in.)
~/tmp/vloopback-1.0/vloopback.c:914: error: 'POLLPRI' undeclared (first use in this function)
~/tmp/vloopback-1.0/vloopback.c:914: error: 'POLLOUT' undeclared (first use in this function)
~/tmp/vloopback-1.0/vloopback.c:914: error: 'POLLRDNORM' undeclared (first use in this function)
~/tmp/vloopback-1.0/vloopback.c: At top level:
~/tmp/vloopback-1.0/vloopback.c:934: error: variable 'vloopback_template' has initializer but incomplete type
~/tmp/vloopback-1.0/vloopback.c:936: error: unknown field 'owner' specified in initializer
~/tmp/vloopback-1.0/vloopback.c:936: warning: excess elements in struct initializer
~/tmp/vloopback-1.0/vloopback.c:936: warning: (near initialization for 'vloopback_template')
~/tmp/vloopback-1.0/vloopback.c:937: error: unknown field 'name' specified in initializer
~/tmp/vloopback-1.0/vloopback.c:937: warning: excess elements in struct initializer
~/tmp/vloopback-1.0/vloopback.c:937: warning: (near initialization for 'vloopback_template')
~/tmp/vloopback-1.0/vloopback.c:938: error: unknown field 'type' specified in initializer
~/tmp/vloopback-1.0/vloopback.c:938: warning: excess elements in struct initializer
~/tmp/vloopback-1.0/vloopback.c:938: warning: (near initialization for 'vloopback_template')
~/tmp/vloopback-1.0/vloopback.c:939: error: unknown field 'fops' specified in initializer
~/tmp/vloopback-1.0/vloopback.c:939: warning: excess elements in struct initializer
~/tmp/vloopback-1.0/vloopback.c:939: warning: (near initialization for 'vloopback_template')
~/tmp/vloopback-1.0/vloopback.c:941: error: unknown field 'release' specified in initializer
~/tmp/vloopback-1.0/vloopback.c:941: error: 'video_device_release' undeclared here (not in a function)
~/tmp/vloopback-1.0/vloopback.c:941: warning: excess elements in struct initializer
~/tmp/vloopback-1.0/vloopback.c:941: warning: (near initialization for 'vloopback_template')
~/tmp/vloopback-1.0/vloopback.c: In function 'create_pipe':
~/tmp/vloopback-1.0/vloopback.c:961: warning: implicit declaration of function 'video_device_alloc'
~/tmp/vloopback-1.0/vloopback.c:961: warning: assignment makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:964: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:965: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:967: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:972: warning: assignment makes pointer from integer without a cast
~/tmp/vloopback-1.0/vloopback.c:974: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:978: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:979: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:981: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:982: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:988: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:989: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1002: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1003: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1004: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1005: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1006: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1007: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1011: warning: implicit declaration of function 'video_register_device'
~/tmp/vloopback-1.0/vloopback.c:1011: error: 'VFL_TYPE_GRABBER' undeclared (first use in this function)
~/tmp/vloopback-1.0/vloopback.c:1014: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1015: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1017: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1027: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1028: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1029: warning: implicit declaration of function 'video_unregister_device'
~/tmp/vloopback-1.0/vloopback.c:1030: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'vloopback_init':
~/tmp/vloopback-1.0/vloopback.c:1094: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1094: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c: In function 'cleanup_vloopback_module':
~/tmp/vloopback-1.0/vloopback.c:1112: error: dereferencing pointer to incomplete type
~/tmp/vloopback-1.0/vloopback.c:1114: error: dereferencing pointer to incomplete type
make[2]: *** [~/tmp/vloopback-1.0/vloopback.o] Error 1
make[1]: *** [_module_~/tmp/vloopback-1.0] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.18-3-686'
make: *** [all] Error 2

Version vloopback 1.1-rc1 compiles without errors under the same kernel version, but gives a "Segmentation fault" when loading the module (insmod vloopback)

-- BeLioN - 10 Jul 2007

I have just downloaded the code from Subversion, and successfully compiled it, but again when loading the module, I get "Segmentation fault"

-- BeLioN - 10 Jul 2007

I just tested with latest kernel version using Debian Etch :

 uname -a
Linux bridge 2.6.18-5-686 #1 SMP Fri Jun 1 00:47:00 UTC 2007 i686 GNU/Linux



svn co http://www.lavrsen.dk/svn/vloopback/trunk/ vloopback
cd vloopback/
make
sudo make install
sudo /sbin/modprobe videodev 
sudo /sbin/modprobe vloopback

dmesg | tail -n3

Linux video capture interface: v2.00
/home/motion/vloopback/vloopback.c: Video4linux loopback driver v1.1-rc1
/home/motion/vloopback/vloopback.c: Loopback 0 registered, input: video0,output: video1

All working fine without any issues , please recheck installation. If you still get a segfault try to get a core dump or any information about.

-- AngelCarpintero - 10 Jul 2007

I just downloaded the code from subversion and it works. However, I have to do "make install" . If I only compile and then "insmod vloopback.ko" I still get the segmentation fault.

Thanks !!

-- BeLioN - 11 Jul 2007

Is it possible to create a virtual video device to generate a video stream from a given image file?

Thanks, -Chitta

-- ChittaMandal - 15 Jul 2007

Hi, SVN version of 16 Jul 2007 work great with a 2.6.21.3 kernel, but not with the FFmpeg found in Debian Etch. I have to compile FFmpeg from the SVN source code to get a working one.

This vloopback module is very nice. I hope that it will be soon part of the Linus tree. Best Regards,

-- JeanChristianDeRivaz - 16 Jul 2007

Camstream crashes with the following exception whenever I try to connect to the "video loopback 0 input" device. I am using vloopback-1.1-rc1. I am basically trying to use the loopback to get the live stream out of 'motion'. For some reason the mini-http host provided by motion does not quite work as expected:

X Error: BadDevice, invalid or uninitialized input device 154
  Major opcode:  143
  Minor opcode:  3
  Resource id:  0x0
Failed to open device
X Error: BadDevice, invalid or uninitialized input device 154
  Major opcode:  143
  Minor opcode:  3
  Resource id:  0x0
Failed to open device
CVideoDevice::ResetImagesRGB()
CVideoDevice::ResetImagesYUV()
CCamWindow::CCamWindow()
CWebCamViewer::CWebCamViewer(0x80d18a0, 0x0)
CVideoDevice::Init()
Using mmap(), VMBuf.size = -1945173994
CVideoDevice::Init() Failed to mmap/allocate memory!
Trying to find video options for Video loopback 0 input:/dev/video1
searching USB Video Class device
Creating new video options
<!DOCTYPE Configuration>
<config>
 <defaults/>
 <videodevices>
  <videoconfiguration node="" name="USB Video Class device" >
   <basename>snapshot</basename>
   <textfont>system</textfont>
   <textcolor>#ffff00</textcolor>
   <timeinimage>false</timeinimage>
   <fileformat>PNG</fileformat>
   <savetodisk>true</savetodisk>
   <ftptoserver>false</ftptoserver>
   <saveoption>1</saveoption>
   <maxsequence>1000</maxsequence>
   <sequence>0</sequence>
   <ftpserver></ftpserver>
   <ftppath></ftppath>
   <ftpuser></ftpuser>
   <ftppass></ftppass>
   <ftppassive>false</ftppassive>
   <ftpunique>true</ftpunique>
  </videoconfiguration>
  <videoconfiguration name="Video loopback 0 input" >
   <basename>snapshot</basename>
   <textfont>system</textfont>
   <textcolor>#ffff00</textcolor>
   <timeinimage>false</timeinimage>
   <fileformat>PNG</fileformat>
   <savetodisk>true</savetodisk>
   <ftptoserver>false</ftptoserver>
   <saveoption>1</saveoption>
   <maxsequence>1000</maxsequence>
   <sequence>0</sequence>
   <ftpserver></ftpserver>
   <ftppath></ftppath>
   <ftpuser></ftpuser>
   <ftppass></ftppass>
   <ftppassive>false</ftppassive>
   <ftpunique>true</ftpunique>
  </videoconfiguration>
 </videodevices>
</config>

CSnapshotSettingsDlg::CSnapshotSettingsDlg(...)
CVideoSettingsDlg::SizeChanged(0x0)
CVideoSettingsDlg::FramerateChanged(10)
CCamPanel::SetSize(0x0)
CCamPanel::SetImageSize(0x0)
CCamPanel::SetVisibleSize(0x0)
QPainter::begin: Cannot paint null pixmap
QPainter::setPen: Will be reset by begin()
QPainter::setBrush: Will be reset by begin()
QPainter::setBrush: Will be reset by begin()
QPainter::setPen: Will be reset by begin()
QPainter::setPen: Will be reset by begin()
QPainter::end: Missing begin() or begin() failed
CCamPanel::SetSize(0x0)
CCamPanel::SetImageSize(0x0)
CCamPanel::SetVisibleSize(0x0)
RecalcTotalViewSize: resize viewport(0x0)
EnableRGB: +
CVideoDevice::SetPalette picked palette 5 [rgb32]
CVideoDevice::CreateImagesRGB()
 using pre-allocated memory
QGArray::at: Absolute index 0 out of range
Segmentation fault (core dumped)

============ Any ideas? Thanks!

-- PeterNaly - 14 Aug 2007

Peter , you cannot use "video loopback 0 input" to be opened as output, so you have to chose "video loopback output".

in example :

 effectv  -vloopback /dev/video1 -device /dev/video0

Run camstream and select to open "EffecTV vloopback output"

-- AngelCarpintero - 03 Nov 2007

Hi! Svn vloopback module on ubuntu 7.10 compiles and loads with no apparent problems, but camstream cannot (see) open vloopback output, sees only vloopback input. When i use resize from webcam to vloopback input, any access try to vloopback output freezes shell .. camstream refuses to load... how to solve? Kernel is 2.6.22-14-generic

-- SilvijeM - 02 Nov 2007

Hi again... seems my problem is webcam, not vloopback... with another video device it works.. cheers!

-- SilvijeM - 02 Nov 2007

I've tested in ubuntu 7.10 with 2.6.22-14-generic same version of version without problems , so maybe you didn't load videodev first.

x86 or x86_64 ?

lsmod output ?

Those details could help.

-- AngelCarpintero - 17 Nov 2007

Works beautifully on 2.6.24-16 smile

-- RomanGaufman - 18 May 2008

Quick question, what does the spares parameter do? -- I tried to pass it and couldn't see a difference. When I open the vloopback output device from 2 ffmpeg instances, it seems to just loop between 2 frames for a while, then progress to looping 2 other frames frown -- I thought spares will help with this but it doesn't.

-- RomanGaufman - 18 May 2008

I am having trouble getting the vloopback.ko module (v 1.1) inserted into a Ubuntu Hardy Heron box.

When I execute "sudo insmod vloppback.ko", I get this error:

insmod: error inserting 'vloopback.ko': -1 Unknown symbol in module

What am I doing wrong. I would like to get my Apple iSight working as a V4L device. I can get it to work under coriander. But I would like it to show up as a V4L device.

Rob

-- RobK - 28 Jul 2008

Nevermind. I figured it out. You need to "sudo modprobe videodev" first!

Now the "sudo insmod vloopback.ko" worked!

-- RobK - 28 Jul 2008


like README in FAQ section says ...

-- AngelCarpintero - 28 Jul 2008

After playing around with vloopback for the past two hours. I still can't get it to work with an app like Cheese. Coriander says V4L is working and show 30 fps. The V4L output device is /dev/video0.

But dmesg says the input is /dev/video0 and the output is /dev/video1. The iSight is really at /dev/video1394/0

-- RobK - 28 Jul 2008


It explained in FAQ " How can i use vloopback to use my firewire cam as a V4L device ?"

Anyway i think you didn't read how to use vloopback , that is how is working for you setup :

/dev/video1394/0 <-- Coriander --> /dev/video0 ( vloopback input ) --> /dev/video1 ( vloopback ouput ) <-- any V4L application

Vloopback doesn't support V4L2 yet ... it will

-- AngelCarpintero - 28 Jul 2008


Many thanks. I now understand what vloopback is doing. I have set on V4L on the services tab of Coriander (which shows the V4L device as /dev/video0).

Now when I run gstreamer-properties, I can test it. I used Plugin "v4l" and For the Device " Video loopback 0 output" which is the only device other than default in the drop down box. When I click test, I see a video of me but my face is all purple. Very strange. If I test my webcam in coriander, the colour is correct.

I also was able to get the video to work in Ekiga. I use V4L and "Video loopback 0 output". (I assume Video loopback 0 output is really /dev/video1). And the colour is correct!! It is working as it should.

But when I run "Cheese", the webcam does not work. I do not see any preferences to set the video device nor does there appear to be a command line option. I guess I will have to follow up with the "Cheese" developers.

Thanks for a great program. vloopback is great!

-- RobK - 28 Jul 2008

I have been doing some testing with my iSight Firewire camera using coriander and vloopback. Many apps work great (like Ekiga, motion, gqcam, effecttv) but some do not work at all (like Cheese and Skype). After getting some feeback on a bug I filed with Cheese (see http://bugzilla.gnome.org/show_bug.cgi?id=545190 ), I think I know why.

Some apps (like cheese) appear to rely on hal to identify the v4l webcam devices. Unfortunately, when I run "hal-find-by-capability --capability video4linux" nothing is returned. Hal is not detecting my Firewire iSight camera that is being piped through via coriander and vloopback.

I am not sure whether this is a bug relating to hal, coriander or vloopback. Any ideas on what is really the cause and how to fix it?

-- RobK - 01 Aug 2008

Doesn't compile on 2.6.27-rc1-mm1 frown

-- RomanGaufman - 07 Aug 2008


Roman grab latest svn trunc version i added a work around to work with 2.6.27.rc3 .

-- AngelCarpintero - 24 Aug 2008


Hi, I am currently working on a vloopback fork that is compiling with newest kernels.

Have a look in my project: WebcamStudio for GNU/Linux (http://webcamstudio.sourceforge.net)

The source code is available in the Library download section of Sourceforge.net

Current version is 1.1.4.

This fork has input and output reversed for Flash player compatibility.

-- PatrickBalleux - 23 Nov 2008


Patrick, to create a fork you must change the name or people will get confused smile

trunk version works with latest kernel already 2.6.27 ( don't think with 2.6.28-rcX)

-- AngelCarpintero - 24 Nov 2008


HI, Thank you for your good work
But I've a problem using resize:
# ./resize /dev/video0 /dev/video1 320x240 yuv420p
Starting video stream.
You bought vaporware!
Error[Device or resource busy]

dmesg gives me:
em28xx #0: vidioc_s_fmt_vid_cap queue busy

-- ChristopheB - 08 Dec 2008


Christophe ,

you did a typo pasting your resize command ( missing the destination size , it must be smaller than original ).

Are you opening /dev/video0 with other program ? ( /dev/video0 there is real device maybe not support multiple opens )

-- AngelCarpintero - 10 Dec 2008


Thank you for your answer. No other porgram is using /dev/video0 I used motion with "video_pipe" and it works. But with the framerate define in motion.

-- ChristopheB - 10 Dec 2008


I'm confused ... you said no other program is using that but motion ... so :

motion is other program ... motion + resize = 2 applications opening same device

-- AngelCarpintero - 14 Dec 2008

Actually, When I was talking about "no other program is using that", i ensured first that motion wasn't running. So resize was really the only one using /dev/video0.
But what I'm able to do is to use motion on /dev/video0 with video_pipe and then use:
resize /dev/video2 /dev/video3 720x576 320x240 yuv420p

-- ChristopheB - 14 Dec 2008

Doesn't compile on 2.6.28 frown Any patch ?

-- StanislavPopov - 20 Dec 2008


Latest stable is 2.6.27.10 , so probably are you talking about rc9 ... usually is not a good idea until stable is release because changes could still be made in v4l/v4l2 api.

-- AngelCarpintero - 20 Dec 2008


Current trunk revision builds and run ok with 2.6.28-rc9.

-- AngelCarpintero - 22 Dec 2008


thank you! smile

-- StanislavPopov - 23 Dec 2008

hello, I want to make vloopback working with skype, can you give me a glue where to start, and what is missing currently for skype to understand vloopback?

-- VasilyLevin - 01 Feb 2009

Hello,

I tried vloopback but it has failed, at least with mplayer.

The module did compuile and install successfully. Then, in one terminal window: $ ./resize /dev/video0 /dev/video1 768x576 768x576 yuv420p Starting video stream.

In another terminal window:

$ mplayer tv:// -tv driver=v4l2:device=/dev/video2

MPlayer dev-SVN-rUNKNOWN-4.1.2 (C) 2000-2007 MPlayer Team CPU: Intel(R) Pentium(R) 4 CPU 3.00GHz (Family: 15, Model: 4, Stepping: 1) CPUflags: MMX: 1 MMX2: 1 3DNow: 0 3DNow2: 0 SSE: 1 SSE2: 1 Compiled with runtime CPU detection. Can't open joystick device /dev/input/js0: No such file or directory Can't init input joystick mplayer: could not connect to socket mplayer: No such file or directory Failed to open LIRC support. You will not be able to use your remote control.

Playing tv://. TV file format detected. Selected driver: v4l2 name: Video 4 Linux 2 input author: Martin Olschewski comment: first try, more to come wink v4l2: ioctl query capabilities failed: Inappropriate ioctl for device v4l2: ioctl set mute failed: Inappropriate ioctl for device v4l2: 0 frames successfully processed, 0 frames dropped.

-- MikhailRamendik - 04 Feb 2009


Vloopback doesn't support v4l2 , so you must use v4l in mplayer.

-- AngelCarpintero - 14 Feb 2009

Hi,

when I try to compile according to the instructions I get several errors. The first ones are:
make -C /lib/modules/2.6.27.8/source SUBDIRS=/home/juser/tmp/vloopback modules 
make[1]: Entering directory `/usr/src/linux-2.6.27.8' 
CC [M] /home/juser/tmp/vloopback/vloopback.o /home/juser/tmp/vloopback/vloopback.c: In function 'vloopback_read': /home/juser/tmp/vloopback/vloopback.c:567: 
error: storage size of 'vidwin' isn't known /home/juser/tmp/vloopback/vloopback.c:568: 
error: storage size of 'vidmmap' isn't known /home/juser/tmp/vloopback/vloopback.c:569: 
error: storage size of 'vidpic' isn't known /home/juser/tmp/vloopback/vloopback.c:571: 
error: 'VIDIOCGWIN' undeclared (first use in this function) /home/juser/tmp/vloopback/vloopback.c:571: 
error: (Each undeclared identifier is reported only once /home/juser/tmp/vloopback/vloopback.c:571: 
error: for each function it appears in.) /home/juser/tmp/vloopback/vloopback.c:572: 
error: 'VIDIOCGPICT' undeclared (first use in this function) ... ... ... 
make[2]: * [/home/juser/tmp/vloopback/vloopback.o] Error 1 make[1]: * [_module_/home/juser/tmp/vloopback] Error 2 
make[1]: Leaving directory `/usr/src/linux-2.6.27.8' make: * [all] Error 2

Would you help me with this please?

-- HrnanBadino - 05 Mar 2009

Hi i have a fresh and new ubuntu 8.10. Can't insmod the vloopback.ko. # insmod vloopback.ko insmod: error inserting 'vloopback.ko': -1 Unknown symbol in module
# dmesg [63201.368823] vloopback: Unknown symbol v4l_compat_ioctl32 [63201.369157] 
vloopback: Unknown symbol video_devdata [63201.369438] 
vloopback: Unknown symbol video_unregister_device [63201.369631] 
vloopback: Unknown symbol video_device_alloc [63201.369838] 
vloopback: Unknown symbol video_register_device [63201.370111] 
vloopback: Unknown symbol video_device_release 
Any Idea what is wrong?

-- AndreHelwig - 17 Mar 2009

Cannot build vloopback-1.2 on linux 2.6.29.1 on a pentium II.

vloopback.c:1128: error: 'v4l_compat_ioctl32' undeclared here (not in a function)

Looking at the kernel headers, media/v4l2-ioctl.h has:

#ifdef CONFIG_COMPAT /* 32 Bits compatibility layer for 64 bits processors */ extern long v4l2_compat_ioctl32(struct file *file, unsigned int cmd, unsigned long arg); #endif

Since the PII is a 32bit processor, doesn't that mean v4l2_compat_ioctl32 is not needed and some other function should be used instead?

Thanks for any help

-- AdamFeakin - 09 Apr 2009

Try my patch vloopback-1.3.diff

-- PeterHolik - 17 May 2009

Hey Guys. I am having this issue:

I changed MAX_PIPES to be able to handle 16 loopbacks. The deal is, V4L2 in kernels before 2.6.30 has a limitation of 32 video devices. ( I need the 32 devices that Vloopback uses in my case plus 8 from my SAA7134, that's 40 devices). I tried to compile vloopback with MAX_PIPES changed to 16 in 2.6.30-rc6, but it doesn't compile (Looks like v4l has changed a lot in the last few releases, lot's of activity in GIT). I tried applying vloopback-1.3.diff , but that's not the issue. I can compile it against any 2.6.29 kernel just fine.

The problem seems to be that it's not finding some constants:

VIDIOCGWIN, VIDIOCGPICT, VIDIOCMCAPTURE, VIDIOCSYNC, ... and others. Looks like they are all defined mostly in v4l2-compat-ioctl32.c ....

They seem to be in there, I checked other video drivers that come with this kernel and they compile just fine, and I checked the way they handle video_window struct and they look the same as vloopback ...

I'll keep headbanging my keyboard until it works. If I figure it out, I'll post a patch. , but ... I am no v4l expert ... some help would be greatly appreciated big grin

Any ideas Peter? I would appreciate it if you can point me in the right direction.

Thanks,

Sebastian.

-- SebastianGomez - 23 May 2009

use my patch vloopback-1.4.diff

-- PeterHolik - 25 May 2009

Thanks Peter!

-- SebastianGomez - 25 May 2009

Thanks Peter, I applied patch 1.3 and 1.4 and now it is all working on Linux 2.6.29.1.

-- AdamFeakin - 28 May 2009

Hi, all.

How do you test and work vloopback on 2.6.29.x? I try "effectv -vloopback /dev/video1 -device /dev/video0 " with v4l1 device , but doesn"t work. Ofcource , v4l1 device work fine. Please teach me about your work environment.

-- MikeCernekee - 29 May 2009

Hi, after compiling I tried insmod, but I got a

[176078.570849] vloopback: Unknown symbol v4l_compat_ioctl32 [176078.570970] vloopback: disagrees about version of symbol video_devdata [176078.570972] vloopback: Unknown symbol video_devdata

- do I need compat_ioctl32? ( I am on ubuntu jaunty 32 bit) - what can I do to fix the 'unknown symbol'

Thanks in advance, Dirk

-- DiDek - 08 Jul 2009

Added Peter Holik's patches to trunk with some change . so please try svn trunk , the idea is to realease 1.3 when 2.6.30 is out.
mkdir vloopback-trunk 
cd vloopback-trunk

svn co http://www.lavrsen.dk/svn/vloopback/trunk .

-- AngelCarpintero - 08 Jul 2009

Thanks for the reply!

But I still get the same error ...

uname -r > 2.6.28-13-generic

ls /usr/src > linux-headers-2.6.28-11-generic linux-headers-2.6.28-13-generic linux-headers-2.6.28-11 linux-headers-2.6.28-13 linux-source-2.6.28

So what am I doing wrong?

I very much like to use the vloopback device ...

Best, Dirk

-- DiDek - 10 Jul 2009

Dirk, get svn version and try to build and load with modprobe instead of insmod .

-- AngelCarpintero - 11 Jul 2009

Buenas, he tenido problemas al querer compilar vloopback, probe en Gnu/Debian Lenny y en Squeeze, y las versiones de kernel 2.6.30.2 y 2.6.30.2

Les el mensaje de error.
:~/vloopback-1.2$ make make -C /lib/modules/2.6.30-1-686/build SUBDIRS=/home/usuario/vloopback-1.2 modules 
make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.30-1-686' 
/usr/src/linux-headers-2.6.30-1-common/Makefile:284: 
/usr/src/linux-headers-2.6.30-1-common/scripts/Kbuild.include: No existe el fichero o el directorio 
/bin/sh: line 0: [: -lt: unary operator expected 
make: * nombre de variable vacío. Alto. 
make[3]: * [_module_/home/usuario/vloopback-1.2] Error 2 
make[2]: * [sub-make] Error 2 
make[1]: * [all] Error 2 
make[1]: se sale del directorio `/usr/src/linux-headers-2.6.30-1-686' 
make: * [all] Error 2 

-- DanR - 25 Jul 2009


Ummm linux-image packages for Lenny and Squeeze are 2.6.26 not 2.6.30 .. so i guess you are using stock kernel from ( www.kernel.org ).

I tried latest stable 2.6.30.4 and i had no problem to build it.

-- AngelCarpintero - 04 Aug 2009

El error anterior se solucionÃó instalando " linux-kbuild-2.6.30_2.6.30-1_i386.deb "

#dpkg -i linux-kbuild-2.6.30_2.6.30-1_i386.deb

Pero me arroja el siguiente error
#make && make install make -C /lib/modules/2.6.30-1-686/build SUBDIRS=/home/usuario/vloopback-1.2 modules 
make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.30-1-686' 
CC [M] /home/usuario/vloopback-1.2/vloopback.o /home/usuario/vloopback-1.2/vloopback.c: 
In function ‘vloopback_read’: /home/usuario/vloopback-1.2/vloopback.c:567: 
error: storage size of ‘vidwin’ isn’t known /home/usuario/vloopback-1.2/vloopback.c:568: 
error: storage size of ‘vidmmap’ isn’t known /home/usuario/vloopback-1.2/vloopback.c:569: 
error: storage size of ‘vidpic’ isn’t known /home/usuario/vloopback-1.2/vloopback.c:571:  
[ skipped ] ...
-- DanR - 25 Jul 2009


You have to get latest vloopback from trunk that includes some patches to allow to build against latest kernel version. It's explained how to get it from svn and build above .

-- AngelCarpintero - 04 Aug 2009

Gracias AngelCarpintero?, yo descargue el vloopback de svn como se lo recomendaste en un post anterior.

mkdir vloopback-trunk

cd vloopback-trunk

svn co http://www.lavrsen.dk/svn/vloopback/trunk .

Pero no me funcionÃó, me arrojo el mismo error.

TraducciÃón web por: http://translate.google.co.ve

Thanks AngelCarpintero? I download the svn vloopback as recommended in a previous post.

mkdir-vloopback trunk

cd trunk-vloopback

svn co http://www.lavrsen.dk/svn/vloopback/trunk.

But I do not work, I throw the same error.

-- DanR - 04 Aug 2009


Get 2.6.30.diff patch and apply to svn trunk :

patch < 2.6.30.diff

make ; sudo make install ; sudo modprobe vloopback

-- AngelCarpintero - 05 Aug 2009


hi - i'm running the svn of vloopback and 0.0.2 of vpipe on ubuntu x86_64 (kernel 2.6.24). i've got pool/universe/m/motion/motion_3.2.9-1_amd64.deb installed via apt-get.

i have the following kernel modules loaded:

videodev 30720 2 vloopback v4l2_common 21888 2 compat_ioctl32,videodev v4l1_compat 15492 1 videodev video 23444 0

if i do:

% ffmpeg -i foo.avi -r 8 -f rawvideo - | vpipe -i 0

and then in another window:

% motion

which has been configured to look at /dev/video1,

i get:

[4619671.969284] compat_ioctl32: v4l1 ioctl UNKNOWN, dir=-- (0x000076c1) [4619671.969326] ioctl32(vpipe:15441): Unknown cmd fd(5) cmd(000076c1){t:'v';sz:0} arg(000003fc) on /dev/video0

when motion starts up.

i assume this means that vpipe is executing some ioctl against /dev/video0 that the compat layer can not translate.

any idea of how to fix this?

-- RobPfile - 07 Aug 2009

oh wait a second, it actually does work. i there were some .o files in the vpipe tarball and those got linked into the vpipe binary. also of course you need to set the frame rate to 100 in motion's configuration file.

one strange thing is that the source file is 1280x920, but unless i scale it to 320x240 with ffmpeg, motion decides that it can not determine the color space and just quits.

-- RobPfile - 08 Aug 2009


Please , file a support request and supply related data :

http://www.lavrsen.dk/foswiki/bin/view/Motion/SupportRequests

Notice you are using a very old version of motion so at least use 3.2.11 or even better 3.2.11.1 :

http://www.lavrsen.dk/foswiki/bin/view/Motion/BugFixesToUpgradeVersion

-- AngelCarpintero - 08 Aug 2009

okay, yeah i realize this is the wrong place... let me upgrade motion first. it was just easier to do apt-get on the universe repo.

-- RobPfile - 09 Aug 2009

AngelCarpintero?

El parche esta correcto funcionÃó a la primera pasada ...

TraducciÃón web por: http://translate.google.co.ve

The patch worked to correct this the first pass ...

-- DanR - 11 Aug 2009

Trying to compile under Ubuntu Karmic Koala 9.10 fails. I'm currently running Linux kernel 2.6.31-10-generic. Here is the output I get:
make -C /lib/modules/2.6.31-10-generic/build SUBDIRS=/home/owner/vloopback modules
make[1]: Entering directory `/usr/src/linux-headers-2.6.31-10-generic'
CC [M] /home/owner/vloopback/vloopback.o /home/owner/vloopback/vloopback.c: In function ‘vloopback_read’:
/home/owner/vloopback/vloopback.c:583: error: storage size of ‘vidwin’ isn’t known
/home/owner/vloopback/vloopback.c:584: error: storage size of ‘vidmmap’ isn’t known
/home/owner/vloopback/vloopback.c:585: error: storage size of ‘vidpic’ isn’t known
/home/owner/vloopback/vloopback.c:587: error: ‘VIDIOCGWIN’ undeclared (first use in this function)
/home/owner/vloopback/vloopback.c:587: error: (Each undeclared identifier is reported only once
/home/owner/vloopback/vloopback.c:587: error: for each function it appears in.)
/home/owner/vloopback/vloopback.c:588: error: ‘VIDIOCGPICT’ undeclared (first use in this function)
[snip ... ]
make[2]: * [/home/owner/vloopback/vloopback.o] Error 1
make[1]: * [_module_/home/owner/vloopback] Error 2
make[1]: Leaving directory `/usr/src/linux-headers-2.6.31-10-generic'
make: * [all] Error 2 

-- DylanTaylor - 09 Sep 2009


With trunk version and latest patch attached below ( 2.6.30.diff ) ?

Current svn trunk works with kernel version 2.6.31.

-- AngelCarpintero - 09 Sep 2009

Heyho

Thats a fine piece of software - i uses it several months before an it worked - now, another machine, new problems:

System: (DA)Ubuntu 9.04 32 BIt Kernel: Linux schluesselmeister 2.6.28-11-generic #42-Ubuntu SMP Fri Apr 17 01:57:59 UTC 2009 i686 GNU/Linux

Problem: I got a Quickcam 3000 so i have to use uvc drivers (works), it brings its own v4l - but when i try to make vloopback, it uses the original kernel headers - so the module doesn't load caused by an incorrect v4l version.

My Question: Is it possible to tell the make file to use the uvc tree for building ? (I got several devices that needs own v4l, eg. mantis dvb card - but thats another problem ... )

Thank you very much

Marcel

-- MarcelEbbrecht - 22 Sep 2009


Makefile uses the current kernel version to match kernel headers / kernel tree , you can replace for any version in.ex your 2.6.28-11-generic :
KVER  := $(shell echo -n "2.6.27-14-generic")
KLINK := $(shell test -e /lib/modules/${KVER}/source/ && echo source || echo "build")
KSRC  := /lib/modules/$(KVER)/$(KLINK)
PWD   := $(shell pwd)
DEST  := /lib/modules/$(KVER)/kernel/drivers/misc

-- AngelCarpintero - 08 Oct 2009

I tried the 1.3 under Ubuntu 9.10 (32 bits) and it works pretty well. I see that you have made it compatible with Flash sites so I won't have to keep a fork of that project anymore. Thank you for your great work.

Note: In my packaging, I have made a vlooback loader that will take care of any kernel update. Have a look.

Patrick Balleux WebcamStudio? for GNU/Linux http://ws4gl.org

-- PatrickBalleux - 04 Oct 2009


Thanks Patrick wink

I'll take a look to your package and include anything useful to svn.

-- AngelCarpintero - 08 Oct 2009

The vloopback module included with WebcamStudio? wonÃôt compile on the ubuntu linux-rt kernel. It throws an "implicit declaration of function init_MUTEX " error on line 1264

-- RobVanDenBerg - 31 Oct 2009


Rob,

Try svn version not the one included in WebcamStudio? or if you find problem in his version, please report to Patrick.

-- AngelCarpintero - 16 Nov 2009

make -C /lib/modules/2.6.32-rc5-git4/source SUBDIRS=/home/malmis/vloopback modules 
make[1]: Entering directory `/usr/src/linux-2.6.32-rc5' 
CC [M] /home/malmis/vloopback/vloopback.o /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_open': /home/malmis/vloopback/vloopback.c:406: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_release': /home/malmis/vloopback/vloopback.c:466: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_write': /home/malmis/vloopback/vloopback.c:520: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_read': /home/malmis/vloopback/vloopback.c:572: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_mmap': /home/malmis/vloopback/vloopback.c:655: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_ioctl': /home/malmis/vloopback/vloopback.c:732: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'vloopback_poll': /home/malmis/vloopback/vloopback.c:1129: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'create_pipe': /home/malmis/vloopback/vloopback.c:1210: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1213: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1221: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1226: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1229: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1230: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1236: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1237: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1250: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1251: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1269: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1271: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1282: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1284: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c: 
In function 'cleanup_vloopback_module': /home/malmis/vloopback/vloopback.c:1395: 
error: 'struct device' has no member named 'driver_data' /home/malmis/vloopback/vloopback.c:1397: 
error: 'struct device' has no member named 'driver_data' 
make[2]: * [/home/malmis/vloopback/vloopback.o] Error 1 
make[1]: * [_module_/home/malmis/vloopback] Error 2 
make[1]: Leaving directory `/usr/src/linux-2.6.32-rc5' 
make: * [all] Error 2 

i get this error with linux-2.6.32, so i guess it's not supported yet..?

-- KristofferM - 01 Nov 2009


Kristoffer ,

There's no stable version of 2.6.32 , still with rc7.

-- AngelCarpintero - 16 Nov 2009

Hello all, I've got problem similiar to DiDek? "with disagrees about version". I loaded videodev. If I try to load vloopback, I get: FATAL: Error inserting vloopback
dmesg: 
vloopback: disagrees about version of symbol video_devdata 
vloopback: Unknown symbol video_devdata 
vloopback: disagrees about version of symbol video_unregister_device 
vloopback: Unknown symbol video_unregister_device 
vloopback: disagrees about version of symbol video_device_alloc 
vloopback: Unknown symbol video_device_alloc 
vloopback: disagrees about version of symbol video_register_device 
vloopback: Unknown symbol video_register_device 
vloopback: disagrees about version of symbol video_device_release 
vloopback: Unknown symbol video_device_release 
vloopback: disagrees about version of symbol video_devdata vloopback: Unknown symbol video_devdata 
vloopback: disagrees about version of symbol video_unregister_device 
vloopback: Unknown symbol video_unregister_device 
vloopback: disagrees about version of symbol video_device_alloc 
vloopback: Unknown symbol video_device_alloc 
vloopback: disagrees about version of symbol video_register_device 
vloopback: Unknown symbol video_register_device 
vloopback: disagrees about version of symbol video_device_release 
vloopback: Unknown symbol video_device_release 

openSuse 11.1, 2.6.27.29-0.1-pae

Could it be cause of compilation gspca? I installed new version yesterday.

-- MattPal - 10 Nov 2009


Matt,

it looks there's some headers that broken somehow vloopback build . I build vloopback until 2.6.31 without issues with svn version of vloopback.

-- AngelCarpintero - 16 Nov 2009

Hi,

I am trying to compile vloopback-1.0 (Linux kernel 2.6.29.1-desktop-4mnb Mandriva 2009.1 in i686 Intel(R) Pentium(R) 4 CPU 3.00GHz GNU/Linux) but get the following output:
$ make make -C /lib/modules/2.6.29.1-desktop-4mnb/source SUBDIRS=/home/jfa/Descargas/vloopback-1.2 modules 
make[1]: se ingresa al directorio `/usr/src/linux-2.6.29.1-desktop-4mnb' 
CC [M] /home/jfa/Descargas/vloopback-1.2/vloopback.o /home/jfa/Descargas/vloopback-1.2/vloopback.c:1128: 
error: ‘v4l_compat_ioctl32’ no se declaró aquí (no en una función) /home/jfa/Descargas/vloopback-1.2/vloopback.c:1141: 
aviso: inicialización desde un tipo de puntero incompatible 
make[2]: * [/home/jfa/Descargas/vloopback-1.2/vloopback.o] Error 1 
make[1]: * [_module_/home/jfa/Descargas/vloopback-1.2] Error 2 
make[1]: se sale del directorio `/usr/src/linux-2.6.29.1-desktop-4mnb' 
make: * [all] Error 2

Any idea? Any help would be greatly appreciated.

-- OscarBoschini - 24 Nov 2009


Get vloopback 1.3 from http://www.lavrsen.dk/foswiki/bin/view/Motion/VideoFourLinuxLoopbackDevice

-- AngelCarpintero - 26 Nov 2009

-- OscarBoschini - 27 Nov 2009

Thanks for the help! You could install the module, but now when I use it, I get the following error:

FATAL: Error inserting vloopback (/lib/modules/2.6.29.1-desktop-4mnb/kernel/drivers/misc/vloopback.ko): Unknown symbol in module, or unknown parameter (see dmesg

What could it be? How can I fix it?

-- OscarBoschini - 27 Nov 2009

dmesg ouput:
usb 2-1: new full speed USB device using uhci_hcd and address 2 
usb 2-1: New USB device found, idVendor=046d, idProduct=092b 
usb 2-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
usb 2-1: Product: Camera usb 2-1: Manufacturer: 
usb 2-1: configuration #1 chosen from 1 choice Linux video capture interface: v2.00 
gspca: main v2.7.0 registered 
gspca: probing 046d:092b gspca: probe ok 
usbcore: registered new interface driver spca561 
spca561: registered 
vloopback: disagrees about version of symbol video_devdata 
vloopback: Unknown symbol video_devdata 
vloopback: disagrees about version of symbol video_unregister_device 
vloopback: Unknown symbol video_unregister_device 
vloopback: disagrees about version of symbol video_device_alloc 
vloopback: Unknown symbol video_device_alloc 
vloopback: disagrees about version of symbol video_register_device 
vloopback: Unknown symbol video_register_device 
vloopback: disagrees about version of symbol video_device_release 
vloopback: Unknown symbol video_device_release 
IRQ 16/nvidia: IRQF_DISABLED is not guaranteed on shared IRQs agpgart-via 
0000:00:00.0: AGP 3.5 bridge agpgart-via 0000:00:00.0: putting AGP V3 device into 8x mode nvidia 
0000:01:00.0: putting AGP V3 device into 8x mode CPU0 attaching NULL sched-domain. 
CPU1 attaching NULL sched-domain. CPU0 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 0 1 
CPU1 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 1 0 CPU0 attaching NULL sched-domain. 
CPU1 attaching NULL sched-domain. CPU0 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 0 1 
CPU1 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 1 0 
vloopback: disagrees about version of symbol video_devdata 
vloopback: Unknown symbol video_devdata 
vloopback: disagrees about version of symbol video_unregister_device 
vloopback: Unknown symbol video_unregister_device 
vloopback: disagrees about version of symbol video_device_alloc 
vloopback: Unknown symbol video_device_alloc 
vloopback: disagrees about version of symbol video_register_device 
vloopback: Unknown symbol video_register_device 
vloopback: disagrees about version of symbol video_device_release 
vloopback: Unknown symbol video_device_release 
vloopback: disagrees about version of symbol video_devdata 
vloopback: Unknown symbol video_devdata 
vloopback: disagrees about version of symbol video_unregister_device 
vloopback: Unknown symbol video_unregister_device 
vloopback: disagrees about version of symbol video_device_alloc 
vloopback: Unknown symbol video_device_alloc 
vloopback: disagrees about version of symbol video_register_device 
vloopback: Unknown symbol video_register_device 
vloopback: disagrees about version of symbol video_device_release 
vloopback: Unknown symbol video_device_release 
IRQ 16/nvidia: IRQF_DISABLED is not guaranteed on shared IRQs agpgart-via 0000:00:00.0: 
AGP 3.5 bridge agpgart-via 0000:00:00.0: putting AGP V3 device into 8x mode nvidia 
0000:01:00.0: putting AGP V3 device into 8x mode CPU0 attaching NULL sched-domain. 
CPU1 attaching NULL sched-domain.
CPU0 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 0 1 
CPU1 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 1 0 CPU0 attaching NULL sched-domain.
 CPU1 attaching NULL sched-domain. CPU0 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 0 1 
CPU1 attaching sched-domain: domain 0: span 0-1 level SIBLING groups: 1 0 
vloopback: disagrees about version of symbol video_devdata 
vloopback: Unknown symbol video_devdata 
vloopback: disagrees about version of symbol video_unregister_device 
vloopback: Unknown symbol video_unregister_device 
vloopback: disagrees about version of symbol video_device_alloc 
vloopback: Unknown symbol video_device_alloc 
vloopback: disagrees about version of symbol video_register_device 
vloopback: Unknown symbol video_register_device 
vloopback: disagrees about version of symbol video_device_release 
vloopback: Unknown symbol video_device_release

. .

-- OscarBoschini - 28 Nov 2009

your kernel and headers are differents , so i guess you have somehow installed some custom kernel headers.

-- AngelCarpintero - 28 Nov 2009


I've patched vloopback.c to make it compile with the 2.6.32 kernel. The main change is that in linux/device.h, the driver_data element has been removed from the device struct, and rather than referring to it directly, the video_get_drvdata and video_set_drvdata functions should be used instead. I also had to include linux/sched.h in vloopback.c, not sure why it wasn't necessary before... I've attached the patch as http://www.lavrsen.dk/foswiki/pub/Motion/VideoFourLinuxLoopbackDeviceSupport/1.3-2.6.32.diff, feel free to incorporate it into the trunk if it seems ok.

-- MananTuli - 05 Dec 2009

Manan , Thanks for your patch i've adapted your patch to don't break build with previous kernel versions. It's already commited to svn.

-- AngelCarpintero - 08 Dec 2009


Many thanks for the vloopback support. I have the same problems as Rob, init_MUTEX not available on a rt (realtime) kernel. Commenting this line leads to the following rt_mutex problem (dmesg):
Linux video capture interface: v2.00
[vloopback_init] : video4linux loopback driver v1.3-trunk
[vloopback_init] : Loopback 0 registered, input: video0, output: video1
[vloopback_init] : Loopback 0 , Using 2 buffers
------------[ cut here ]------------
kernel BUG at kernel/rtmutex_common.h:74!
invalid opcode: 0000 [#1] PREEMPT 
last sysfs file: /sys/module/i2c_core/initstate
CPU 0 
Modules linked in: vloopback videodev v4l1_compat v4l2_compat_ioctl32 nls_iso8859_1 nls_cp437 cryptd aes_x86_64 aes_generic af_packet ipv6 binfmt_misc
 loop vfat fat dm_mod nvram udf sbp2 dv1394 rt2500usb snd_hda_codec_si3054 snd_hda_codec_realtek mmc_block snd_hda_intel rt73usb crc_itu_t sdhci_pci rt2x00usb arc4 
rt2x00lib snd_hda_codec sdhci ecb input_polldev iwlagn mmc_core iwlcore snd_hwdep mac80211 snd_seq_dummy ohci1394 rtc_cmos ieee1394 snd_seq_oss snd_seq_midi_event
 uhci_hcd snd_seq iTCO_wdt iTCO_vendor_support snd_seq_device snd_pcm_oss joydev i2c_i801 wmi r8169 mii snd_pcm cfg80211 rfkill pcspkr evdev sg sr_mod thermal processor
 serio_raw ac button led_class ehci_hcd snd_timer battery snd_mixer_oss snd soundcore snd_page_alloc usb_storage usbcore ata_generic ide_pci_generic ide_gd_mod ide_core 
pata_acpi ahci ata_piix sd_mod crc_t10dif i915 drm i2c_algo_bit i2c_core video output [last unloaded: scsi_wait_scan]
Pid: 30191, comm: v4l_id Not tainted 2.6.31.6-1.rt19.1sm #1 
M720R
RIP: 0010:[<ffffffff81076409>] [<ffffffff81076409>] task_blocks_on_rt_mutex+0x219/0x250 RSP: 0018:ffff88000f4e5cf8 EFLAGS: 00010086 RAX: ffff880046f762e8 RBX: ffff88000f4e5dc8 RCX: 0000000000000000 RDX: ffff88000bf81328 RSI: 0000000000000076 RDI: ffff88006e86a300 RBP: ffff88000f4e5d48 R08: 0000000000000282 R09: 0000000000000282 R10: 0000000000000000 R11: 0000000000000001 R12: ffff88000bf81318 R13: ffff880070c92bc2 R14: ffff88006e86a300 R15: 0000000000000000 FS: 00007f9f7d4b56f0(0000) GS:ffffffff81539000(0000) knlGS:0000000000000000 CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 CR2: 00007f9f7d040220 CR3: 000000005ce69000 CR4: 00000000000006f0 DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400 Process v4l_id (pid: 30191, threadinfo ffff88000f4e4000, task ffff88006e86a300) Stack: 000000010f4e5d58 0000000000000246 ffff880046f762e8 0000000000000282 <0> ffff88000f4e5da8 ffff88000f4e5dc8 0000000000000004 ffff88000bf81318 <0> 0000000000000004 0000000000000282 ffff88000f4e5d98 ffffffff813701da Call Trace: [<ffffffff813701da>] __rt_mutex_slowlock+0xba/0x150 [<ffffffff8137061f>] rt_mutex_slowlock+0x11f/0x310 [<ffffffff813708b7>] rt_mutex_lock+0x27/0x30 [<ffffffff81076ed0>] rt_down+0x20/0x50 [<ffffffffa04e6ab7>] vloopback_release+0x47/0x230 [vloopback] [<ffffffffa04d88f2>] v4l2_release+0x32/0x50 [videodev] [<ffffffff810e9d9a>] __fput+0xda/0x230 [<ffffffff810e9f0d>] fput+0x1d/0x30 [<ffffffff810e63e8>] filp_close+0x58/0x90 [<ffffffff810e64d1>] sys_close+0xb1/0x110 [<ffffffff81011ebf>] system_call_fastpath+0x16/0x1b Code: 48 83 7d c0 00 0f 85 05 ff ff ff 0f 1f 80 00 00 00 00 31 d2 e9 53 ff ff ff 66 0f 1f 84 00 00 00 00 00 48 89 5d c0 e9 8c fe ff ff <0f> 0b eb fe e8 7e 8d 2f 00 e9 08 ff ff ff 90 e8 73 8d 2f 00 0f RIP [<ffffffff81076409>] task_blocks_on_rt_mutex+0x219/0x250 RSP <ffff88000f4e5cf8> ---[ end trace aeccb28514e5cfd5 ]---

Unfortunately I don't know if this specific function is unavailable on a realtime kernel (i.e. it needs to be implemented differentially) or if an additional include is needed. I have a 2.6.31 rt kernel.

-- ReinhardKatzmann - 26 Dec 2009


I have to figure out how RT kernels implements mutex/semaphores , probably don't use them or implement in other way ... so commeting the init of mutex won't work as vloopback still uses

semaphores with up() and down() functions.

Meanwhile you can test a simple patch that still uses semaphores with RT kernels :

http://www.lavrsen.dk/foswiki/pub/Motion/VideoFourLinuxLoopbackDeviceSupport/rt-init_MUTEX.diff

-- AngelCarpintero - 29 Dec 2009

Hi,

Thanks for your patch. I tested it successfully with my kernel.

The error messages are gone and the basic tests I did work fine for me.

-- ReinhardKatzmann - 05 Jan 2010

Hi, I'm having a lot of problems with using vloopback. Compiling goes fine:

sander@sander-desktop:~/Downloads/vloopback-1.3$ make 
make -C /lib/modules/2.6.31-16-generic/build SUBDIRS=/home/sander/Downloads/vloopback-1.3 modules 
make[1]: Entering directory `/usr/src/linux-headers-2.6.31-16-generic' 
 CC [M] /home/sander/Downloads/vloopback-1.3/vloopback.o 
 Building modules, stage 2. 
 MODPOST 1 modules CC /home/sander/Downloads/vloopback-1.3/vloopback.mod.o 
 LD [M] /home/sander/Downloads/vloopback-1.3/vloopback.ko 
make[1]: Leaving directory `/usr/src/linux-headers-2.6.31-16-generic' 
make -C example 
make[1]: Entering directory `/home/sander/Downloads/vloopback-1.3/example' 
cc -g -Wall invert.c -o invert 
cc -g -Wall resize.c -o resize 
cc -g -Wall feed.c -o feed 
cc -g -Wall dummy.c -o dummy 
make[1]: Leaving directory `/home/sander/Downloads/vloopback-1.3/example'

As you can see, it uses the headers of my current kernel (Linux sander-desktop 2.6.31-16-generic #53-Ubuntu SMP Tue Dec 8 04:01:29 UTC 2009 i686 GNU/Linux ). Installing goes also fine, it installs for my current kernel:
sander@sander-desktop:~/Downloads/vloopback-1.3$ sudo make install 
install -d /lib/modules/2.6.31-16-generic/kernel/drivers/misc 
install -m 644 -c vloopback.ko /lib/modules/2.6.31-16-generic/kernel/drivers/misc 
/sbin/depmod -a 

It gets tough when I try to load the module, it fails with an "unknown symbol" error:
[ 1102.620551] vloopback: disagrees about version of symbol video_devdata 
[ 1102.620723] vloopback: disagrees about version of symbol video_unregister_device 
[ 1102.620727] vloopback: Unknown symbol video_unregister_device
[ 1102.620838] vloopback: disagrees about version of symbol video_device_alloc 
[ 1102.620841] vloopback: Unknown symbol video_device_alloc 
[ 1102.620961] vloopback: disagrees about version of symbol video_register_device 
[ 1102.620964] vloopback: Unknown symbol video_register_device 
[ 1102.621160] vloopback: disagrees about version of symbol video_device_release 
[ 1102.621163] vloopback: Unknown symbol video_device_release

I've rebooted twice which didn't help. I use V4l from trunk (Mercury).

-- SanderPientka - 05 Jan 2010


Sander,

v4l stack from trunk is messing somehow. I guess you have to adapt Makefile to build using v4l stack from trunk too.

-- AngelCarpintero - 07 Jan 2010


I'm trying to capture video from a firewire camcorder using dvgrab, vloopback, and gstreamer's v4lsrc.

vloopback compiles and installs cleanly. it creates two devices /dev/video0 and video1.

vl4-info on video0 works great, but whatever I try on video1 I always receive an "Invalid Argument" error.

What could be causing the output device to not work correctly?

some info: 2.6.31-14-generic #48-Ubuntu SMP Fri Oct 16 14:04:26 UTC 2009 i686 GNU/Linux I'm piping the dvgrab output to video0: dvgrab -h hdv - > /dev/video0 I've tried 1.3 and svn trunk.
dmesg:
[ 2535.093069] [cleanup_vloopback_module] : Unregistering video4linux loopback devices 
[ 2638.934289] [vloopback_init] : video4linux loopback driver v1.4-trunk 
[ 2638.934297] [create_pipe] : Video loopback 0 
[ 2638.934452] [vloopback_init] : Loopback 0 registered, input: video0, output: video1 
[ 2638.934458] [vloopback_init] : Loopback 0 , Using 2 buffers 
[ 2638.936166] [vloopback_open] : Video loopback 0 
[ 2638.936173] [vloopback_open] : Current pid 2965 
[ 2638.936183] [vloopback_ioctl] : Video loopback 0 cmd 2154321408 
[ 2638.936192] [vloopback_ioctl] : Video loopback 0 cmd 2151446017 
[ 2638.936243] [vloopback_release] : Video loopback 0
v4l-info:
v4l-info /dev/video1 open /dev/video1: Invalid argument
v4l-info /dev/video0

### video4linux device info [/dev/video0] ### general info VIDIOCGCAP name : 
"Video loopback 0 input" type : 0x0 [] channels : 1 audios : 0 maxwidth : 0 maxheight : 0 minwidth : 20 minheight : 20

channels VIDIOCGCHAN(0) channel : 0 name : "Composite1" tuners : 0 flags : 0x0 [] type : CAMERA norm : 0

tuner VIDIOCGTUNER tuner : 0 name : "Format" rangelow : 0 rangehigh : 0 flags : 0x0 [] mode : AUTO signal : 0

audio ioctl VIDIOCGAUDIO: Invalid argument

picture VIDIOCGPICT brightness : 32768 hue : 32768 colour : 32768 contrast : 32768 
                    whiteness : 32768 depth : 32768 palette : unknown

buffer VIDIOCGFBUF base : (nil) height : 0 width : 0 depth : 0 bytesperline : 0

window VIDIOCGWIN x : 0 y : 0 width : 0 height : 0 chromakey : 0 flags : 0
-- MicahSutton - 02 Apr 2010


I'm trying to compile vloopback-svn on kernel 2.6.33 with rt patch and get this error:
make -C /lib/modules/2.6.33-rt-ice/build 
SUBDIRS=/tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback modules 
make -C example 
make[1]: Entrando no diretório `/tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/example' 
make[1]: Nada a ser feito para `all'. 
make[1]: Saindo do diretório `/tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/example' 
make[1]: Entrando no diretório `/usr/src/linux-2.6.33-rt-ice' 
CC [M] /tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.o 
/tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.c:1329:2: 
#warning "******************" /tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.c:1330:2: 
#warning "Using patch for RT Kernels" /tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.c:1331:2: 
#warning "******************" /tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.c: 
In function ‘create_pipe’: /tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.c:1332: 
error: implicit declaration of function ‘semaphore_init’ 
make[2]: ** [/tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback/vloopback.o] Erro 1 
make[1]: ** [_module_/tmp/yaourt-tmp-rafael/aur-vloopback-svn/vloopback-svn/src/vloopback] Erro 2 
make[1]: Saindo do diretório `/usr/src/linux-2.6.33-rt-ice' 
make: ** [all] Erro 2

-- RafaelEtc - 17 Apr 2010

-- AngelCarpintero - 11 Sep 2009
Topic attachments
I Attachment Action Size Date Who Comment
1.3-2.6.32.diffdiff 1.3-2.6.32.diff manage 6.9 K 05 Dec 2009 - 18:37 MananTuli To compile vloopback 1.3 with kernel 2.6.32
rt-init_MUTEX.diffdiff rt-init_MUTEX.diff manage 0.5 K 29 Dec 2009 - 21:40 AngelCarpintero for RT kernels
vloopback.c.diffdiff vloopback.c.diff manage 1.5 K 06 Feb 2011 - 10:38 PhobosK A patch to fix compilation problems on RT and kernels >= 2.6.37
Topic revision: 31 Jan 2012, TuviaSerber
 
Motion - Video Four Linux Loopback Device Support
Copyright 1999-2014 by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Please do not email Kenneth for support questions (read why). Use the Support Requests page or join the Mailing List.