Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Jan 2012 09:13:49 +0100
From:      Hans Petter Selasky <hselasky@c2i.net>
To:        Matthias Apitz <guru@unixarea.de>
Cc:        freebsd-multimedia@freebsd.org
Subject:   Re: webcamd/cuse4bsd && Skype
Message-ID:  <201201030913.49508.hselasky@c2i.net>
In-Reply-To: <20120103065140.GA7385@tinyCurrent>
References:  <20120101164408.GA2389@tinyCurrent> <20120102104908.GA1474@tiny> <20120103065140.GA7385@tinyCurrent>

next in thread | previous in thread | raw e-mail | index | archive | help
On Tuesday 03 January 2012 07:51:40 Matthias Apitz wrote:
> El d=C3=ADa Monday, January 02, 2012 a las 11:49:09AM +0100, Matthias Api=
tz=20
escribi=C3=B3:
> > I will compile webcamd(8) with WITH_DEBUG to see what is going on on
> > access by Skype...
> >=20
> > the cam itself 0x0c45:0x62c0 is listed in uvc(4);
>=20
> I have inserted some printf debug statements, see below:
>=20
> # setenv LD_PRELOAD
> /usr/local/lib/libhal.so:/usr/local/lib/libdbus-1.so:/usr/local/lib/libcus
> e4bsd.so # ./work/webcamd-3.1.0.4/webcamd
>=20
> : v3.2:USB Acecad Flair tablet driver
> : v2.3 (May 2, 2007):Aiptek HyperPen USB Tablet Driver (Linux 2.6.x)
> : Bryan W. Headley/Chris Atenasio/Cedric Brun/Rene van Paassen
>=20
> GTCO usb driver version: 2.00.0006: v0.0.2:USB KB Gear JamStudio Tablet
> driver
>=20
> : v1.52:USB Wacom tablet driver
>=20
> lirc_dev: IR Remote Control driver registered, major 14
> IR NEC protocol handler initialized
> IR RC5(x) protocol handler initialized
> IR RC6 protocol handler initialized
> IR JVC protocol handler initialized
> IR Sony protocol handler initialized
> IR RC5 (streamzap) protocol handler initialized
> IR LIRC bridge handler initialized
> Linux video capture interface: v2.00
> em28xx driver loaded
> Em28xx: Initialized (Em28xx dvb Extension) extension
> USBVision USB Video Device Driver for Linux : 0.9.11
> USBVision USB Video Device Driver for Linux : 0.9.11
> pvrusb2: V4L in-tree version:Hauppauge WinTV-PVR-USB2 MPEG2 Encoder/Tuner
> pvrusb2: Debug mask is 31 (0x1f)
> cpia2: V4L-Driver for Vision CPiA2 based cameras v3.0.1
>=20
> : Zoran 364xx
>=20
> au0828 driver loaded
> USB Video Class driver (1.1.1)
>=20
> : 0.4.7:D-Link DSB-R100 USB FM radio driver
> : 0.0.2: A driver for the TEA5764 radio chip for EZX Phones.
>=20
> b2c2-flexcop: B2C2 FlexcopII/II(b)/III digital TV receiver chip loaded
> successfully dib0700: loaded with support for 21 different device-types
> Attached ugen4.2[0] to cuse unit 0
> uvcvideo: Found UVC 1.00 device  (0c45:62c0)
> Creating /dev/video0
>=20
> (now I started Skype in some other session)
>=20
> mydebug: v4b_open
> mydebug: linux_open: handle=3D28c08600
> mydebug: v4b_ioctl: handle=3D28c08600
> mydebug: linux_ioctl returns: error=3Dffffffea
> mydebug: v4b_convert_error: CUSE_ERR_INVALID
> mydebug: v4b_ioctl: handle=3D28c08600
> mydebug: linux_ioctl returns: error=3Dffffffea
> mydebug: v4b_convert_error: CUSE_ERR_INVALID
> mydebug: v4b_close: handle=3D28c08600
>=20
> The mydebug: lines names the function where we are (v4b_*) and
> the values which are important; why linux_ioctl() returns that broken
> value 0xffffffea?
>=20

Because Linux ERROR codes are all negative!

I have another suggestion. Maybe there is a sign error:

printf("arg=3D0x%016llx\n", (long)arg);

If that value is bigger than 32-bit, try to cast it to:

(u32)(long)arg, when passing to IOCTL functions.

=2D-HPS


linux_ioctl(struct cdev_handle *handle, int fflags,
    unsigned int cmd, void *arg)
{
        if (handle =3D=3D NULL)
                return (-EINVAL);

        linux_fix_f_flags(&handle->fixed_file, fflags);

        if (handle->fixed_file.f_op->unlocked_ioctl !=3D NULL)
                return (handle->fixed_file.f_op->unlocked_ioctl(&handle-
>fixed_file,
                    cmd, (long)arg));
        else if (handle->fixed_file.f_op->ioctl !=3D NULL)
                return (handle->fixed_file.f_op->ioctl(&handle->fixed_inode,
                    &handle->fixed_file, cmd, (long)arg));
        else
                return (-EINVAL);
}

> 	matthias



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201201030913.49508.hselasky>