viernes, 18 de enero de 2008

Webcam USB en Debian - drivers gspca y spca5xx

En Linux existen varios tipos de controladores para las webcam, evidentemente cada webcam usa un solo controlador, (el problema reside en saber cual es el controlador de nuestra camara web).

Lista de controladores existentes en Debian GNU/Linux

- OV511
- pwc
- qc-usb
- linux-uvc
- spca5xx
- gspca

¿Como sabemos cual es el controlador para nuestra webcam, para no tener que ir probando una a una, hasta dar con nuestro driver?

Para saber cual es el driver de nuestra webcam USB realizamos los siguientes pasos:

1- Conectamos la webcam usb al ordenador
2- abrimos una consola y ejecutamos el comando: lsusb
El cual nos devolverá un listado de todos los periféricos usb conectados en este momento,
en este caso nos dice que mi webcam es:

Bus 001 Device 004: ID 0923:010f IC Media Corp. SIIG MobileCam


El Bus y Device nos informa del conector usb del ordenador en el que he conectado la webcam, si lo cambiamos de conector usb nos dará Bus y Device diferentes como es normal.



ID, corresponde al Vendor (vendedor) y al Product (producto) que nos da la información necesaria para buscar por google o mejor por las lista de controladores de webcam para saber si tiene soporte en linux y que driver usar.

Después de buscar por internet en un par de listas de controladores he encontrado la información relativa a mi webcam, entre en dos paginas web y el resultado fue distinto como es normal cada controlador soporta webcam diferentes.

En la primera web (http://alpha.dyndns.org/ov511/cameras.html) me dice que NO tiene soporte para mi webcam con su controlador.


En la segunda web (http://mxhaard.free.fr/spca5xx.html) me dice que SI tiene driver para la webcam y ademas me dice cual tengo que utilizar, es este caso el driver es spca5xx.


Ya que tengo la información necesaria solo he de proceder a su instalación.

Instalación.

Paso explicar el proceso de instalación de mi webcam que en la web de controladores gspca / spca5xx me dice que con el driver spca5xx funciona muy bien, pero en mi caso he comprobado que funciona bien con ambos a si que aqui detallo el proceso de instalación de gspca que esta mas actualizado, aunque el proceso es el mismo en ambos driver.

Primero hemos de instalar los cabeceras de nuestro kernel para poder compilarlo, para ellos usamos el siguiente comando en una consola de comandos:

# uname -r

y nos devolverá el kernel que estamos usando.


Ahora con synaptic procedemos a su instalación, he instalamos:
apt-get install linux-headers-2.6.22-2-k7


Seguimos, he instalamos los paquetes necesarios para proceder a automatizar el proceso de instalación, para ello instalamos los siguientes paquetes y las dependencias que nos pida:

# apt-get install module-assistant
# apt-get install gspca-source (si el driver es gspca) este es mi caso
# apt-get install spca5xx-source (si el driver es spca5xx)

Captura de synaptic instalando gspca-source


Captura de synaptic con el driver de spca5xx-source


Ahora que ya tenemos instalado todo lo necesario, hacemos uso del comando module-assistant (m-a) para preparar todo lo necesario del proceso de instalación.

# m-a prepare


lo siguiente es hacer la auto-instalación (a-i) del comando module-assistant (m-a) para instalar el driver de la webcam

# m-a a-i gspca-source

Algunas capturas de pantalla del proceso auto-install





Una vez instalado el controlador (driver) de la webcam, hemos de cargar el modulo de este para que podamos hacer uso de la webcam.

# modprobe gspca


Con esto ya tenemos nuestra webcam bien configurada y preparada para su uso.

Aquí tenemos una captura de pantalla de la configuración de mi webcam en amsn.



Otra captura de pantalla del programa de videoconferencia Ekiga




Si en el próximo reinicio no funciona la webcam el problema seria la carga del modulo gspca, para no tener que andar cargando el modulo manualmente como hicimos antes (# modprobe gspca) editamos el fichero modules que se encuentra de /etc:

/etc/modules

y le añadimos la entrada: gspca




================================================================
Breve explicación de cada driver

OV511

Este driver soporta mas de 100 webcam, podemos ver la lista de todas las que soporta en la siguiente lista:

http://alpha.dyndns.org/ov511/cameras.html

La instalación del driver es bien sencilla, usando el comando modules-asisstant (con el parametro auto-install | a-i) en una consola, previamente descargando el driver desde synaptic:

# m-a a-i ov511



PWC (Philips WebCam)

Este driver solo soporta webcam de la marca Philips y algunas que sean compatibles con esta, podemos ver la lista de todas las que soporta en la siguiente lista:

http://www.lavrsen.dk/twiki/bin/view/PWC/WorkingWebcamsWithPWC

La instalación del driver es bien sencilla, usando el comando modules-asisstant (con el parametro auto-install | a-i) en una consola, previamente descargando el driver desde synaptic:

# m-a a-i pwc



QC (Logitech QuickCam Express y compatibles)

Este módulo actualmente forma parte de linux.

La instalación del driver es bien sencilla, usando el comando modules-asisstant (con el parametro auto-install | a-i) en una consola, previamente descargando el driver desde synaptic::

# m-a a-i qc-usb



Linux UVC (USB Video Class)

Este driver dar soporte genérico USB Video Class, cumple con el estándar de los dispositivos USB de video.

La instalación del driver es bien sencilla, usando el comando modules-asisstant (con el parametro auto-install | a-i) en una consola, previamente descargando el driver desde synaptic::

# m-a a-i linux-uvc



GSPCA / SPCA5XX

Estos dos drivers soporta mas de 200 webcam, los he puesto juntos pues ambos driver son creados por el mismo desarollador, además gspca es mas actualizado y reciente que spca5xx ambos usan la misma lista de controladores, podemos ver la lista de todas las que soporta en el siguiente enlace:

http://mxhaard.free.fr/spca5xx.html

La instalación del driver es bien sencilla, usando el comando modules-asisstant (con el parametro auto-install | a-i) en una consola, previamente descargando el driver desde synaptic:

# m-a a-i gspca
# m-a a-i spca5xx




=====================================================


Enlaces a otros entradas de este blog sobre webcam:

http://usuariodebian.blogspot.com/2009/12/webcam-microdia.htm

http://usuariodebian.blogspot.com/2008/05/webcam-acer-crystal-eye-en-guadalinex.html










.

15 comentarios:

kikuelo dijo...

Muy buen artículo al que he llegado desde http://www.amicsmania.com/amics/blog/?p=181, que al principio había pensado que era suyo ¬.¬

Usuario_Debian dijo...

Hola kikuelo.

Me alegra mucho que te haya gustado mi manual sobre la instalación de cámaras web también llamadas webcam.

Espero que te haya podido servir de ayuda.

Saludos.

Anónimo dijo...

muy buen articulo, pero tengo problemas para compilar el driver gspca-source.
no compila esta es la salida:

dh_testdir
dh_testroot
dh_clean
rm -f *.symvers
/usr/bin/make -C /usr/src/modules/gspca clean
make[1]: se ingresa al directorio `/usr/src/modules/gspca'
rm -r -f *.o decoder/.gspcadecoder.o.cmd decoder/*.o \
.gspca.o.cmd *.o *.ko *.mod.* .[a-z]* core *.i \
Modules.symvers
make[1]: se sale del directorio `/usr/src/modules/gspca'
/usr/bin/make -f debian/rules kdist_clean kdist_config binary-modules
make[1]: se ingresa al directorio `/usr/src/modules/gspca'
dh_testdir
dh_testroot
dh_clean
rm -f *.symvers
/usr/bin/make -C /usr/src/modules/gspca clean
make[2]: se ingresa al directorio `/usr/src/modules/gspca'
rm -r -f *.o decoder/.gspcadecoder.o.cmd decoder/*.o \
.gspca.o.cmd *.o *.ko *.mod.* .[a-z]* core *.i \
Modules.symvers
make[2]: se sale del directorio `/usr/src/modules/gspca'
for templ in ; do \
cp $templ `echo $templ | sed -e 's/_KVERS_/2.6.24-1-686/g'` ; \
done
for templ in `ls debian/*.modules.in` ; do \
test -e ${templ%.modules.in}.backup || cp ${templ%.modules.in} ${templ%.modules.in}.backup 2>/dev/null || true; \
sed -e 's/##KVERS##/2.6.24-1-686/g ;s/#KVERS#/2.6.24-1-686/g ; s/_KVERS_/2.6.24-1-686/g ; s/##KDREV##/2.6.24-7~bpo40+1/g ; s/#KDREV#/2.6.24-7~bpo40+1/g ; s/_KDREV_/2.6.24-7~bpo40+1/g ' < $templ > ${templ%.modules.in}; \
done
dh_testdir
dh_testroot
dh_clean -k
# Build the module
/usr/bin/make -C /usr/src/modules/gspca KERNEL_VERSION=2.6.24-1-686 KERNELDIR=/lib/modules/2.6.24-1-686/build
make[2]: se ingresa al directorio `/usr/src/modules/gspca'
/usr/bin/make -C /lib/modules/2.6.24-1-686/build SUBDIRS=/usr/src/modules/gspca CC=gcc-4.1 modules
make[3]: se ingresa al directorio `/usr/src/linux-headers-2.6.24-1-686'
scripts/Makefile.build:46: *** CFLAGS was changed in "/usr/src/modules/gspca/Makefile". Fix it to use EXTRA_CFLAGS. Alto.
make[3]: *** [_module_/usr/src/modules/gspca] Error 2
make[3]: se sale del directorio `/usr/src/linux-headers-2.6.24-1-686'
make[2]: *** [default] Error 2
make[2]: se sale del directorio `/usr/src/modules/gspca'
make[1]: *** [binary-modules] Error 2
make[1]: se sale del directorio `/usr/src/modules/gspca'
make: *** [kdist_build] Error 2


si pueden ayudarme estaria muy agradecido.

Usuario_Debian dijo...

Hola anonimo.

La verdad no puedo ayudarte. Siempre me a funcionado sin problemas en Debian GNU/Linux, con estos mismo pasos.

Si por casualidad usas una distro distinta basada en Debian, no puedo comentarte, pues no la uso.

Aunque he encontrado la posible solución a tu problema, en un foro, sobre webcam en Xubuntu 8.04

En la siguiente dirección:

http://foro.picandocodigo.net/viewtopic.php?f=16&t=81

Saludos.

Anónimo dijo...

Saludos, muy buen artículo, lo que quiero comentar...es que le dí muchas vueltas al driver que utiliza mi camara ID 046d:08da, este driver no está exactamente en las lista de compatibilidad...sin embargo instale el gspca y funcionó perfectamente, fue instalado en mi notebook IBM thinkpad T41, en Debian Lenny por fin funciona, Muchas Gracias. Sergio Briguez aprendiz de Linux Debian

Usuario_Debian dijo...

Me alegro muchísimo que ya puedas utilizar tu webcam.

Gracias por tu comentario.

Hicks dijo...

Muy bien explicado el articulo, pero tambien tengo el problema de "anonimo", (se sale del directorio). Me he pasado por la pagina que indicas pero está fuera de servicio. Podrias comentar cual era esa solucion?
Gracias por adelantado

Usuario_Debian dijo...

Hola Hicks

Me alegra que te guste el manual.

Con respecto al problema que tienes (se sale del directorio), no te puedo ayudar. (en mi caso las veces que he realizado los pasos de este manual nunca me ha dado problemas), ahora bien si usas otra distribución que no sea Debian ???.

Con respecto al enlace, a mi si me funciona y la solución es para la distribución de Ubuntu (¿cual es la solución?, la verdad, en temas de Ubuntu lo mejor es preguntar en el foro de dicha distribución)

Saludos.

Blog de Joel dijo...

Muy buen tutorial, me sirvirá mucho porque tengo pensado poner una cámara web en mi debian testing; pensé que era igual de fácil que poner mi impresora, pero vi que es un proceso más extenso.

Gracias.

Anónimo dijo...

Gracias por publicar este material, excelente, resolví en cinco minutos algo que me llevaba todo un día.
Alberto de Bs.As.

Roland Pish dijo...

Excelente artículo! Muchas gracias!

No sabes cuánto tiempo he estado tratando de poner a andar mi Genius Webcam Messenger en Debian Lenny para que me funcione con Skype.

Con tu artículo no ha podido ser mejor el resultado. Ya lo creía imposible.

Gracias también por detenerte a explicar tan bien cada paso.

Un aplauso electrónico

PD: ¿Por qué no es necesario ejecutar "modprobe -a gspca" para que el módulo se cargue automáticamente? ¿Cuál es el comando que lo hace "autocargable"?

Anónimo dijo...

hola buen tutorial, tengo una pero tengo una pregunta yo acabo de instalar debian 5.0.4,
segun el tutorial explicas que haz probado instalando tu webcam con gspca y spca5xx

en mi caso tengo una

Bus 001 Device 002: ID 0c45:613c Microdia PC Camera (SN9C120)

que funciona con el driver spca5xx pero cuando yo trato de instalar el driver con

# apt-get install spca5xx-source

me dice que no existe el paquete o referencias a el,he buscado el paquete en synaptic y tampoco existe, mi pregunta es si haz utilizado algun repositorio donde se encuentre este paquete.

y tambien en este paso

# m-a a-i gspca-source

como seria si tengo el driver spca5xx

seria asi? # m-a a-i spca5xx-source

Usuario_Debian dijo...

Hola anónimo.

Pregunta: "me dice que no existe el paquete o referencias a el (spca5xx-source), he buscado el paquete en synaptic y tampoco existe, mi pregunta es si haz utilizado algún repositorio donde se encuentre este paquete."

Respuesta: Cuando yo instale y realice este manual estaba usando la versión estable Etch, y dicho paquete se encuentra en dicho repositorio. He realizado una búsqueda de dicho paquete (spca5xx-source) en la web oficial de Debian GNU/Linux y observo que actualmente solo se encuentra en la antigua estable Etch, por alguna razón que desconozco, no se a migrado a Debian Lenny (la siguiente estable despues de Etch), por eso no lo encuentras.

Para poder instalarlo tan solo tienes que añadir el repositorio de la anterior estable Etch (que estará activo hasta que Squeeze pase a estable)

Los repositorios son:

deb http://ftp.rediris.es/debian/ etch main contrib non-free

deb-src http://ftp.rediris.es/debian/ etch main contrib non-free


Pregunta: "y tambien en este paso

# m-a a-i gspca-source

como seria si tengo el driver spca5xx

seria asi? # m-a a-i spca5xx-source"

Respuesta: Efectivamente si hubieses vuelto a releer con atención el manual observarías como la respuesta a tu pregunta se encontraba en el mismo manual.

Saludos

Sergio dijo...

hola estoy intentandolo todo sin exito, tengo un aspire 5610, con una acer orbicma, estoy en lucid.
Me arranca cheese pero sin funcionar corectament, aparece primero una pantalla negra y luego me devuelbe una pantalla toda verde como imagen.
Un cable porfavor

Usuario_Debian dijo...

Hola Sergio.

Si no te funciona con los métodos de este tutoría, lo único que te puedo decir, es que los actuales kernel ya tienen soporte nativo incluido en el propio kernel para muchísimos tipos de webcam.

Pero claro si el propio fabricante no da la especificaciones de como hacerla funcionar las cosas son muy difíciles.

Saludos