El teu blog de Linux en català

Arreglant els problemes de la Webcam Hercules Deluxe amb l'Ubuntu 8.10 Intrepid Ibex

Note: The same tutorial can be found in english.

Ja se sap, nova distribució, nous problemes (com el que vàrem solucionar en el post anterior)

Doncs resulta que amb la nova distribució, s’han afegit nosequants més drivers per a moltes webcams. El cas es que la meva webcam Hercules Deluxe n’ha sortida bastant mal parad, ja que el sistema carrega al endollar la webcam uns mòduls que no serveixen per la càmera en qüestió.

Després de llegir-me detingudament la documentació del mòdul de la webcam (driver, pels que venen del sistema privatiu que aquí no anomenaré). He aconseguit tornar a fer funcionar la webcam, i que em corregues en l’Ubuntu 8.10 Intrepid ibex. Eus ací els passos que he fet.

0) PRELIMINAR

Comprovar que el vostre sistema operatiu detecta la webcam. Ho farem usant un programa com el descrit a l’apartat 5).

Sinó el suporta, escriviu amb la webcam connectada a l’ordinador la següent ordre

lsusb

I comproveu en aquesta pàgina web si el resultat que us dona (alguna cosa com 05a9:4519 OmniVision Technologies, Inc) està suportada. Si aquest és el cas, proseguiu a l’apartat 1 d’aquest tutorial. Sinó és el cas, feu al google una cerca amb el resultat que hagueu obtingut i seguit de la paraula linux o ubuntu per trobar com fer-la funcionar.

1) Comprovar que el sistema carrega uns altres mòduls:

Endolla la càmera

lsmod | grep ov

Si s’obté un resultat semblant a això, és que el sistema carrega uns altres mòduls enlloc de carregar el que nosaltres volem instal·lar (ov51x-jpeg)

gspca_ov519 23812 0
gspca_main 29312 1 gspca_ov519
usbcore 148848 8 snd_usb_audio,snd_usb_lib,gspca_ov519,gspca_main,usbhid,ehci_hcd,uhci_hcd

2) Evitar que es carregui el mòdul que no volem que es carregui

2.1) Aquesta opció és la que us recomano. Si tinguessiu qualsevol problema podeu provar l’apartat 2.2, en que en lloc d’evitar que es carregui el mòdul el que es fa és eliminar-lo.

En una terminal escriurem

echo -e "# replaced by ov51x_jpegnblacklist gspca_ov519" | sudo tee -a /etc/modprobe.d/blacklist

Ara hem de desendollar la càmera i tornar-la a endollar i veure si ja no carrega el mòdulgspca_ov519. Aquesta comprovació la farem tal i com s’especifica a l’apartat 1.

2.2) Si l’anterior pas no ens funciona i encara se’ns carrega els mòduls no desitjats, tenim l’opció d’usar la força bruta i eliminar el mòdul que no volem que es carregui

Així, autrem el mòdul gspca_ov519 (fem el que en anglès és diu com unload)

rmmod gspca_ov519

Així busquem on el mòduls que volem eliminar del sistema

find /lib/modules/`uname -r` -name '*ov5*'

I els guardem en una carpeta anomenada ‘backup.modules.webcams’ per ser eliminats posteriorment si l’usuari així ho vol

mkdir ~/backup.modules.webcams
mv /lib/modules/`uname -r`/kernel/ubuntu/misc/media/ov511 ~/backup.modules.webcams
mv /lib/modules/`uname -r`/kernel/drivers/media/video/gspca/ ~/backup.modules.webcams

3) Ara ja podem compilar els nou mòdul ov51x-jpeg

Creem el directori per dur a terme la compilació
mkdir ~/hercules
cd ~/hercules

Descarreguem el codi font i el descomprimim
wget http://www.rastageeks.org/downloads/ov51x-jpeg/ov51x-jpeg-1.5.9.tar.gz
tar -xvf ov51x-jpeg-1.5.9.tar.gz
cd ov51x-jpeg-1.5.9

Compilem el programa
make
sudo make install

Instal·lem el mòdul corresponent
sudo depmod -A
sudo modprobe ov51x-jpeg

Fem neteja: eliminem el directori
rm -r ~/hercules

4) Perquè la webcam funcioni amb l’Skype escriure’m el següent paràmetre
echo "options ov51x-jpeg forceblock=1" | sudo tee -a /etc/modprobe.d/options

5) Opcionalment per provar que el modul de la webcam està instal·lat correctament podem instal·lar un programa com el wxcam que ens el podem baixar amb paquet dev des d’aquí.

6) Notes

Cal esmentar que de vegades el mòdul falla i es veu tot verd o negre. Per solucionar aquest problema bastarà en desendollar la webcam i tornar-la a endollar (plug i unplug).

A més a més de fer això, si no ens ha funcionat previament i hem fet servir el mètode d’endollar/desendollar la webcam, caldrà reiniciar l’Skypè perque funcioni.

Tambè cal comentar que normalment, quan s’actualitza a un nou nucli, el mòdul 0v51x-jpeg instal·lat deixa de funcionar i caldrà repetir el procès novament.

    • Chris on 20 de desembre de 2008 at 16:28

    Reply

    Still doesn’t work for me! Driver is installed, but no /dev/video0 was created. So Skype lets me choose: OV519 USB Camera (dev/video0) but the picture stays black.

    lsusb:
    Bus 002 Device 004: ID 05a9:4519 OmniVision Technologies, Inc.

    • guillem on 4 de gener de 2009 at 17:14

    Reply

    hi!
    maybe you should try to plug and unplug it again (do it so many times as needed) and then restart skype. then it should work.

    before you try skype I’d recommend you to try to view yourself with a program like cheese or wxcam (http://wxcam.sourceforge.net/) (i like a lot wxcam)

    hope it helps!

    • tirant on 10 de febrer de 2009 at 20:37

    Reply

    em serviria el mateix per a una càmera trust??

    gràcies

    • guillem on 10 de febrer de 2009 at 20:49

    Reply

    hola tirant, mira si la càmera web es troba en aquesta llista

    http://www.rastageeks.org/ov51x-jpeg/index.php/Working_Webcams

    si hi és, et servirà (està explicat a l’apartat 0 del tutorial)

    • guillem on 8 de març de 2009 at 19:56

    Reply

    Note that this tutorial can be found in english here http://www.rastageeks.org/ov51x-jpeg/index.php/Ov51xJpegHackedInstall#Installation_on_Ubuntu_8.10_Intrepid_Ibex.

    If you have any question you can ask here. Fortunatelly english is understood 🙂

    • Joseka on 15 d'abril de 2009 at 14:58

    Reply

    Antes de nada, gracias por las molestias de haber publicado el tutorial. No conseguí instalar la Hercules Webcam, pero intentando instalar los dispositivos estoy aprendiendo bastante sobre el funcionamiento del Linux (llevo 2 semanas con él, así que aún cojeo bastante).

    A ver si puedes echarme un cable, tío… Antes de instalarle el ov51x_jpeg y borrar los módulos que trae por defecto, muchos de los programas que tengo podían acceder a la webcam (si mando un lsusb, ahí la tengo con el mismo product ID, y vendor ID), pero con la peculiaridad de que la imagen salía con líneas grises intercaladas (en aMSN, en otros ni podían olerla), así que probé a instalar el módulo recomendado.

    Resumiendo:
    Además del módulo gspca_ov519, tenía otros de nombre similar, pero que también los quité, quedándome solo el recomendado (mandando un lsmod, el ov51x_jpeg está presente y está utilizando a “videodev” y “usbcore”, pero nadie lo utiliza a él jajaja (que raro suena xD).

    -¿Qué debería hacer para comprobar que todo está bien instalado y detectado?
    -¿Puede que haya influido en la detección por otras aplicaciones el haber eliminado los módulos por defecto?

    Gracias de antemano, Guillem.
    Un saludo.

    • Joseka on 17 d'abril de 2009 at 15:41

    Reply

    Por cierto, ya no es necesario. He instalado la 8.04 y he conseguido sin esfuerzo alguno que la webcam funcione decentemente.

    • guillem on 21 d'abril de 2009 at 10:08

    Reply

    Hola Joseka, me alegro que se te haya solucionado. La verdad que leí tu comentario y me pareció muy liado. Creo que teu problema se devió a que actualizaron el programa para que fuera compatible con las nuevas versiones del núcleo linux y no se preocuparon de mantener la retrocompativilidad con las otras versiones.

    Si tienes algún otro problema no dudes en contactar con nosotros.

    Un saludo!

    • guillem on 1 de juny de 2009 at 10:12

    Reply

    Segons diuen a la pàgina web del desenvolupament del driver, sembla ser que el suport del driver s’ha interromput.

    Per tant desaconsello a tothom que vulgui tenir funcionant la webcam la instal·lació de cap nucli superior al 2.6.27.

    Tanmateix si us decidiu a instal·lar-vos el nucli 2.6.29, aquí s’explica d’un pedaç per fer-ne funcionar la webcam.

  1. Reply

    Tinc una càmera Hercules Deluxe i he seguit els passos per instal·lar a Ubuntu 9.10, però no he pogut passar perquè en fer “make” em diu

    make -C /lib/modules/2.6.31-17-generic/build M=/home/albert/hercules/ov51x-jpeg-1.5.9 modules
    make[1]: Entering directory `/usr/src/linux-headers-2.6.31-17-generic’
    CC [M] /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.o
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c: In function ‘create_proc_ov511_cam’:
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:677: error: implicit declaration of function ‘info’
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:681: error: ‘struct proc_dir_entry’ has no member named ‘owner’
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:689: error: ‘struct proc_dir_entry’ has no member named ‘owner’
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:700: error: ‘struct proc_dir_entry’ has no member named ‘owner’
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:712: error: ‘struct proc_dir_entry’ has no member named ‘owner’
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c: In function ‘proc_ov511_create’:
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:766: error: ‘struct proc_dir_entry’ has no member named ‘owner’
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c: In function ‘ov51x_clear_snapshot’:
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:1691: error: implicit declaration of function ‘warn’
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c: In function ‘ov51x_v4l1_ioctl’:
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:6386: warning: passing argument 1 of ‘video_usercopy’ from incompatible pointer type
    include/media/v4l2-ioctl.h:298: note: expected ‘struct file *’ but argument is of type ‘struct inode *’
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:6386: warning: passing argument 2 of ‘video_usercopy’ makes integer from pointer without a cast
    include/media/v4l2-ioctl.h:298: note: expected ‘unsigned int’ but argument is of type ‘struct file *’
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:6386: warning: passing argument 4 of ‘video_usercopy’ makes pointer from integer without a cast
    include/media/v4l2-ioctl.h:298: note: expected ‘v4l2_kioctl’ but argument is of type ‘long unsigned int’
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:6386: error: too many arguments to function ‘video_usercopy’
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c: At top level:
    /home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.c:6651: warning: initialization from incompatible pointer type
    make[2]: *** [/home/albert/hercules/ov51x-jpeg-1.5.9/ov51x-jpeg-core.o] Error 1
    make[1]: *** [_module_/home/albert/hercules/ov51x-jpeg-1.5.9] Error 2
    make[1]: Leaving directory `/usr/src/linux-headers-2.6.31-17-generic’
    make: *** [all] Error 2
    albert@albert-desktop:~/hercules/ov51x-jpeg-1.5.9$ ^C
    albert@albert-desktop:~/hercules/ov51x-jpeg-1.5.9$ ^C
    albert@albert-desktop:~/hercules/ov51x-jpeg-1.5.9$

    Què puc fer?
    AH, gràcies per l’ajuda!!!

Deixa un comentari

Your email address will not be published.