Pages

Wednesday 18 May 2011

Réglage de mon webcam avec ubuntu :)


Assalemo alaykom,



Avant de commencer je dois remercier Mohamed Ikbel Boulabiar pour son aide au niveau du diagnostique et Ahmed Sghaier (aka Neo31) pour son aide au niveau de la solution..tout les deux de l'équipe ubuntu-tn :)

Mon webcam n'a pas marché sous natty (même avant elle n'a pas marché sur ubuntu, chaque fois que je veux utiliser skype pour les videos conf je doit basculer à windows! et mnt je veux la régler).
Ma config est:
Laptop Acer Extensa 5620
Système: ubuntu natty (11.04)
webcam: Crystal Eye
J'ai testé avec skype et guvcview et ça ne marche pas dans les deux cas!

En premier lieu j'ai commencé par vérifier que mon ubuntu détecte bien la webcam via les commande suivantes:
kouka@kouka-laptop:~$ lsmod|grep video
uvcvideo               66851  0 
videodev               75143  1 uvcvideo
video                  18951  1 i915

kouka@kouka-laptop:~$ dmesg | grep Crystal
[   28.850754] uvcvideo: Found UVC 1.00 device Acer Crystal Eye webcam (5986:0102)
[   28.951043] input: Acer Crystal Eye webcam as /devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1:1.0/input/input5
[ 2860.564237] uvcvideo: Found UVC 1.00 device Acer Crystal Eye webcam (5986:0102)
[ 2860.626883] input: Acer Crystal Eye webcam as /devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1:1.0/input/input8
[ 3379.284276] uvcvideo: Found UVC 1.00 device Acer Crystal Eye webcam (5986:0102)
[ 3379.347036] input: Acer Crystal Eye webcam as /devices/pci0000:00/0000:00:1a.7/usb1/1-1/1-1:1.0/input/input9
kouka@kouka-laptop:~$ lsusb
Bus 007 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 006 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 005 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 004 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 5986:0102 Acer, Inc Crystal Eye Webcam
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
kouka@kouka-laptop:~$ sudo lsinput
.....
.....
/dev/input/event5
   bustype : BUS_USB
   vendor  : 0x5986
   product : 0x102
   version : 256
   name    : "Acer Crystal Eye webcam"
   phys    : "usb-0000:00:1a.7-1/button"
   bits ev : EV_SYN EV_KEY
.....
.....
kouka@kouka-laptop:~$ ls -l /dev/video0
crw-rw----+ 1 root video 81, 0 2011-05-12 19:28 /dev/video0

Et comme vous pouvez le constater la webcam est détecté avec succès!  
Le device est bien installé et créé. Ainsi j'ai essayé de l'ouvrir avec mplayer:
$ mplayer tv:// device=/dev/video0 et là le résultat a été aussi décevant:
kouka@kouka-laptop:~$ mplayer tv:// device=/dev/video0
MPlayer 1.0rc4-4.5.2 (C) 2000-2010 MPlayer Team
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 <olschewski@zpr.uni-koeln.de>
 comment: first try, more to come ;-)
v4l2: your device driver does not support VIDIOC_G_STD ioctl, VIDIOC_G_PARM was used instead.
Selected device: Acer Crystal Eye webcam
 Capabilites:  video capture  streaming
 supported norms:
 inputs: 0 = Camera 1;
 Current input: 0
 Current format: MJPEG
v4l2: ioctl set format failed: Invalid argument
v4l2: ioctl set format failed: Invalid argument
v4l2: ioctl set format failed: Invalid argument
tv.c: norm_from_string(pal): Bogus norm parameter, setting default.
v4l2: ioctl enum norm failed: Invalid argument
Error: Cannot set norm!
Selected input hasn't got a tuner!
v4l2: ioctl set mute failed: Invalid argument
open: No such file or directory
[MGA] Couldn't open: /dev/mga_vid
open: No such file or directory
[MGA] Couldn't open: /dev/mga_vid
[VO_TDFXFB] Can't open /dev/fb0: Permission denied.
[VO_3DFX] Unable to open /dev/3dfx.
Failed to open VDPAU backend libvdpau_nvidia.so: cannot open shared object file: No such file or directory
[vdpau] Error when calling vdp_device_create_x11: 1
==============================
============================================
Opening video decoder: [raw] RAW Uncompressed Video
Movie-Aspect is undefined - no prescaling applied.
VO: [xv] 640x480 => 640x480 Packed YUY2
Selected video codec: [rawyuy2] vfm: raw (RAW YUY2)
==========================================================================
Audio: no sound
Starting playback...
v4l2: select timeout
v4l2: select timeout ??% ??,?% 0 0
v4l2: select timeout ??% ??,?% 0 0
v4l2: select timeout ??% ??,?% 0 0
v4l2: select timeout ??% ??,?% 0 0
v4l2: select timeout ??% ??,?% 0 0
v4l2: select timeout ??% ??,?% 0 0
v4l2: select timeout ??% ??,?% 0 0
v4l2: select timeout ??% ??,?% 0 0
V:   0.0  17/ 17 ??% ??% ??,?% 0 0

MPlayer interrupted by signal 2 in module: video_read_frame
v4l2: select timeout
v4l2: select timeout ??% ??,?% 0 0
v4l2: ioctl set mute failed: Invalid argument
v4l2: 0 frames successfully processed, 1 frames dropped.

Exiting... (Quit)
En plus la sortie du mplayer a été une interface verte pas plus!

La solution est simplement de lancer le programme que je veux lancer (skype par exemple) en utilisant la commande suivante (après se rassurer de l'existence du package/library v4l1):
LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so skype
Après avoir réussi ce teste je l'ai répété avec mplayer et  guvcview et mon webcam marche bien walhamdolilléh :)

Finalement j'ai configuré l’initialisation de cette variable d'environnement au niveau du démarrage d'une session ubuntu afin d'utiliser mes application d'une façon ordinaire sans recours à préfixer leur nom par "LD_PRELOAD=/usr/lib32/libv4l/v4l1compat.so", j'ai fait ceci en insérant cette ligne à la fin du fichier /etc/environment et puis, après le reboot, tout mes programme utilisant le webcam marchent bien :)

About you!

حمل كتاب أوبنتو ببساطة الآن!

حمل كتاب أوبنتو ببساطة الآن!