7 de enero de 2008

Webcam Acer Orbicam en Debian Etch

Y sigo con las webcams. Ahora con la que trae incluida mi portátil, modelo Acer 5635 WLMi.

1. Comprobamos si es reconocida:
$ lsusb
Bus 005 Device 003: ID 046d:09b0 Logitech, Inc.
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 002: ID 0458:0007 KYE Systems Corp. (Mouse Systems)
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000

El proyecto que soporta éste driver es el siguiene: http://linux-uvc.berlios.de/


2. Descargamos el código fuente del módulo:
$ su -
password:

# aptitude install subversion
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Leyendo las descripciones de las tareas... Hecho
Construir la base de datos de etiquetas... Hecho
Se instalarán automáticamente los siguientes paquetes NUEVOS:
libapr1 libaprutil1 libneon26 libsvn1
Se instalarán los siguiente paquetes NUEVOS:
libapr1 libaprutil1 libneon26 libsvn1 subversion
0 paquetes actualizados, 5 nuevos instalados, 0 para eliminar y 0 sin actualizar.
Necesito descargar 1916kB de ficheros. Después de desempaquetar se usarán 5452kB.
¿Quiere continuar? [Y/n/?] y
Escribiendo información de estado extendido... Hecho
Des:1 http://ftp.fr.debian.org etch/main libapr1 1.2.7-8.2 [109kB]
Des:2 http://ftp.fr.debian.org etch/main libaprutil1 1.2.7+dfsg-2 [68,5kB]
Des:3 http://ftp.fr.debian.org etch/main libneon26 0.26.2-4 [119kB]
Des:4 http://ftp.fr.debian.org etch/main libsvn1 1.4.2dfsg1-2 [593kB]
Des:5 http://ftp.fr.debian.org etch/main subversion 1.4.2dfsg1-2 [1027kB]
Descargados 1916kB en 20s (93,5kB/s).
Seleccionando el paquete libapr1 previamente no seleccionado.
(Leyendo la base de datos ...
120986 ficheros y directorios instalados actualmente.)
Desempaquetando libapr1 (de .../libapr1_1.2.7-8.2_i386.deb) ...
Seleccionando el paquete libaprutil1 previamente no seleccionado.
Desempaquetando libaprutil1 (de .../libaprutil1_1.2.7+dfsg-2_i386.deb) ...
Seleccionando el paquete libneon26 previamente no seleccionado.
Desempaquetando libneon26 (de .../libneon26_0.26.2-4_i386.deb) ...
Seleccionando el paquete libsvn1 previamente no seleccionado.
Desempaquetando libsvn1 (de .../libsvn1_1.4.2dfsg1-2_i386.deb) ...
Seleccionando el paquete subversion previamente no seleccionado.
Desempaquetando subversion (de .../subversion_1.4.2dfsg1-2_i386.deb) ...
Configurando libapr1 (1.2.7-8.2) ...

Configurando libaprutil1 (1.2.7+dfsg-2) ...

Configurando libneon26 (0.26.2-4) ...

Configurando libsvn1 (1.4.2dfsg1-2) ...

Configurando subversion (1.4.2dfsg1-2) ...


# svn checkout svn://svn.berlios.de/linux-uvc/linux-uvc/trunk linux-uvc
A linux-uvc/uvc_status.c
A linux-uvc/uvc_ctrl.c
A linux-uvc/uvc_queue.c
A linux-uvc/uvc_video.c
A linux-uvc/uvc_isight.c
A linux-uvc/uvc_v4l2.c
A linux-uvc/uvc_compat.h
A linux-uvc/uvc_driver.c
A linux-uvc/uvcvideo.h
A linux-uvc/Makefile
A linux-uvc/dynctrl.txt
Revisión obtenida: 159


3. Compilamos el módulo:
NOTA: Necesitamos tener instaladas éstos paquetes: fuentes del kernel, gcc y make. De lo contrario instalalos con el siguiente comando:
# aptitude install make gcc linux-source-2.6.18

- Accedemos al directorio donde se ha descargado el código fuente:
# cd linux-uvc/

# make
Building USB Video Class driver...
make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.18-5-686'
CC [M] /root/linux-uvc/uvc_driver.o
CC [M] /root/linux-uvc/uvc_queue.o
CC [M] /root/linux-uvc/uvc_v4l2.o
CC [M] /root/linux-uvc/uvc_video.o
CC [M] /root/linux-uvc/uvc_ctrl.o
CC [M] /root/linux-uvc/uvc_status.o
CC [M] /root/linux-uvc/uvc_isight.o
LD [M] /root/linux-uvc/uvcvideo.o
Building modules, stage 2.
MODPOST 1 modules
CC /root/linux-uvc/uvcvideo.mod.o
LD [M] /root/linux-uvc/uvcvideo.ko
make[1]: se sale del directorio `/usr/src/linux-headers-2.6.18-5-686'


4. Cargamos el módulo:
- Copiamos el módulo compilado con los demás módulos del kernel:
# cp uvcvideo.ko /lib/modules/2.6.18-5-686/kernel/drivers/video/

- Actualizamos el listado de drivers del kernel.
# depmod -a

- Cargamos el módulo:
# modprobe uvcvideo

- Comprobamos que se ha cargado:
# lsmod | grep uvc
uvcvideo 48388 0
compat_ioctl32 1376 1 uvcvideo
videodev 26656 1 uvcvideo
v4l1_compat 12580 2 uvcvideo,videodev
v4l2_common 16672 2 uvcvideo,videodev
usbcore 125096 5 uvcvideo,usbhid,ehci_hcd,uhci_hcd

# tail /var/log/messages
Jan 7 17:27:15 localhost kernel: uvcvideo: Found UVC 1.00 device (046d:09b0)
Jan 7 17:27:15 localhost kernel: usbcore: registered new driver uvcvideo
Jan 7 17:27:15 localhost kernel: USB Video Class driver (v0.1.0)


- Añadimos el módulo al final del fichero "/etc/modules" para que sea cargado al iniciar el sistema:

# vi /etc/modules
...
# WEBCAM ACER ORBICAM
uvcvideo


5. Configuramos la Webcam en el AMSN:
- Abrimos AMSN y vamos al menú:
CUENTA / PREFERENCIAS / PESTAÑA OTRAS / RECUADRO CONFIGURAR AUDIO Y VIDEO

En caso de que en el paso 3 (configurando los ajustes de audio), nos de error comprobando si tenemos cargada la extensión de audio (Snack), seguramente nos falta por instalar la librería “libsnack2”. La instalamos así:

# aptitude search libsnack
p libsnack2 - Sound functionality extension to the Tcl/Tk language
p libsnack2-dev - Snack development files
p libsnack2-doc - Snack documentation

# aptitude install libsnack2
Leyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Leyendo las descripciones de las tareas... Hecho
Construir la base de datos de etiquetas... Hecho
Se instalarán los siguiente paquetes NUEVOS:
libsnack2
0 paquetes actualizados, 1 nuevos instalados, 0 para eliminar y 0 sin actualizar.
Necesito descargar 362kB de ficheros. Después de desempaquetar se usarán 868kB.
Escribiendo información de estado extendido... Hecho
Des:1 http://ftp.fr.debian.org etch/main libsnack2 2.2.9.dfsg-1.1 [362kB]
Descargados 362kB en 11s (31,8kB/s).
Seleccionando el paquete libsnack2 previamente no seleccionado.
(Leyendo la base de datos ...
108130 ficheros y directorios instalados actualmente.)
Desempaquetando libsnack2 (de .../libsnack2_2.2.9.dfsg-1.1_i386.deb) ...
Configurando libsnack2 (2.2.9.dfsg-1.1) ...

Una vez instalado, volvemos a configurar la Webcam en AMSN y listo.


Actualización 02.02.08:
Ésta guía también ha sido probada en el siguiente modelo según comentarios de Facine en éste post:
$ lsusb
Bus 006 Device 004: ID 04f2:b008 Chicony Electronics Co., Ltd


Saludos y suerte.
Domi - Gran Canaria (Islas Canarias)

11 comentarios:

Anónimo dijo...

Gran post, me ha servido para configurar la webcam de mi toshiba a210, una webcam chicony que usa el mismo driver. Gran trabajo, no le cambiaría ni una coma.

Romario dijo...

Hola Adros.
Gracias por tu comentario. Lamento contestar tan tarde. No puedo dedicarle todo el tiempo que me gustaría a éste hobby ;-).
En cuanto a tu Webcam, no estaría mal que me enviaras al mail del blog la salida del comando "lsusb" de tu portátil y el modelo exacto de la Webcam (El modelo del portátil ya lo has comentado). Así lo añado al post por si alguien más necesita configurar ésta cámara, que sepa que estos pasos le ayudarán a ello.

Saludos
Domi

Anónimo dijo...

Te contesto yo que tengo el mismo modelo y tambien me sirvio para configurarla.

# lsusb
Bus 006 Device 004: ID 04f2:b008 Chicony Electronics Co., Ltd

P.D.: ¿Cuando hay cambio de mucha luz a poca se os queda totalmente negra la imagen?

Romario dijo...

Hola Facine.
Gracias por comentar la línea con el modelo de la webcam.
En cuánto a lo que comentas, yo no he notado nada parecido. También es verdad que no la utilizo mucho, pero hasta ahora no he visto nada raro.

Saludos.
Domi

freddyarenas dijo...

cuando ejecute la linea:
aptitude install make gcc linux-source-2.6.18

estos fueron los mensajes:
eyendo lista de paquetes... Hecho
Creando árbol de dependencias... Hecho
Leyendo la información de estado extendido
Inicializando el estado de los paquetes... Hecho
Escribiendo información de estado extendido... Hecho
Leyendo las descripciones de las tareas... Hecho
Construir la base de datos de etiquetas... Hecho
Los siguientes paquetes están ROTOS:
libc6-dev
Se instalarán automáticamente los siguientes paquetes NUEVOS:
binutils bzip2 gcc-4.1 libssp0 linux-kernel-headers
Se han retenido los siguientes paquetes:
linux-image-2.6-686
Se instalarán los siguiente paquetes NUEVOS:
binutils bzip2 gcc gcc-4.1 libssp0 linux-kernel-headers linux-source-2.6.18 make
0 paquetes actualizados, 9 nuevos instalados, 0 para eliminar y 1 sin actualizar.
Necesito descargar 42,2MB/50,5MB de ficheros. Después de desempaquetar se usarán 75,1MB.
No se satisfacen las dependencias de los siguientes paquetes:
libc6-dev: Depende: libc6 (= 2.3.6.ds1-13etch4) pero está instalado 2.3.6.ds1-13etch5.
Resolving dependencies...
Las acciones siguientes resolverán estas dependencias

Desactualizar los paquetes siguientes:
libc6 [2.3.6.ds1-13etch5 (now) -> 2.3.6.ds1-13etch4 (NULL)]
libc6-i686 [2.3.6.ds1-13etch5 (now) -> 2.3.6.ds1-13etch4 (NULL)]

Dejar las siguientes dependencias sin resolver:
gcc-4.1 recomienda libmudflap0-dev (>= 4.1.1-21)
La puntuación es -330

¿Acepta esta solución? [Y/n/q/?]Y
Se instalarán automáticamente los siguientes paquetes NUEVOS:
binutils bzip2 gcc-4.1 libc6-dev libssp0 linux-kernel-headers
Se DESACTUALIZARÁN los siguientes paquetes:
libc6 libc6-i686
Se han retenido los siguientes paquetes:
linux-image-2.6-686
Se instalarán los siguiente paquetes NUEVOS:
binutils bzip2 gcc gcc-4.1 libc6-dev libssp0 linux-kernel-headers linux-source-2.6.18 make
0 paquetes actualizados, 9 nuevos instalados, 2 desactualizados, 0 para eliminar y 1 sin actualizar.
Necesito descargar 42,2MB/56,3MB de ficheros. Después de desempaquetar se usarán 74,7MB.
¿Quiere continuar? [Y/n/?] Y
Escribiendo información de estado extendido... Hecho
Des:1 http://security.debian.org etch/updates/main linux-source-2.6.18 2.6.18.dfsg.1-18etch1 [42,2MB]
Descargados 42,2MB en 7m32s (93,1kB/s).
dpkg - atención: desactualizando libc6 de 2.3.6.ds1-13etch5 a 2.3.6.ds1-13etch4.
(Leyendo la base de datos ...
69692 ficheros y directorios instalados actualmente.)
Preparando para reemplazar libc6 2.3.6.ds1-13etch5 (usando .../libc6_2.3.6.ds1-13etch4_i386.deb) ...
Desempaquetando el reemplazo de libc6 ...
Configurando libc6 (2.3.6.ds1-13etch4) ...

dpkg - atención: desactualizando libc6-i686 de 2.3.6.ds1-13etch5 a 2.3.6.ds1-13etch4.
(Leyendo la base de datos ...
69692 ficheros y directorios instalados actualmente.)
Preparando para reemplazar libc6-i686 2.3.6.ds1-13etch5 (usando .../libc6-i686_2.3.6.ds1-13etch4_i386.deb) ...
Desempaquetando el reemplazo de libc6-i686 ...
Seleccionando el paquete binutils previamente no seleccionado.
Desempaquetando binutils (de .../binutils_2.17-3_i386.deb) ...
Seleccionando el paquete bzip2 previamente no seleccionado.
Desempaquetando bzip2 (de .../b/bzip2/bzip2_1.0.3-6_i386.deb) ...
Seleccionando el paquete libssp0 previamente no seleccionado.
Desempaquetando libssp0 (de .../libssp0_4.1.1-21_i386.deb) ...
Seleccionando el paquete gcc-4.1 previamente no seleccionado.
Desempaquetando gcc-4.1 (de .../gcc-4.1_4.1.1-21_i386.deb) ...
Seleccionando el paquete gcc previamente no seleccionado.
Desempaquetando gcc (de .../gcc_4.1.1-15_i386.deb) ...
Seleccionando el paquete linux-kernel-headers previamente no seleccionado.
Desempaquetando linux-kernel-headers (de .../linux-kernel-headers_2.6.18-7_i386.deb) ...
Seleccionando el paquete libc6-dev previamente no seleccionado.
Desempaquetando libc6-dev (de .../libc6-dev_2.3.6.ds1-13etch4_i386.deb) ...
Seleccionando el paquete linux-source-2.6.18 previamente no seleccionado.
Desempaquetando linux-source-2.6.18 (de .../linux-source-2.6.18_2.6.18.dfsg.1-18etch1_all.deb) ...
Seleccionando el paquete make previamente no seleccionado.
Desempaquetando make (de .../make-dfsg/make_3.81-2_i386.deb) ...
Configurando libc6-i686 (2.3.6.ds1-13etch4) ...

Configurando binutils (2.17-3) ...

Configurando bzip2 (1.0.3-6) ...

Configurando libssp0 (4.1.1-21) ...

Configurando gcc-4.1 (4.1.1-21) ...
Configurando gcc (4.1.1-15) ...

Configurando linux-kernel-headers (2.6.18-7) ...
Configurando libc6-dev (2.3.6.ds1-13etch4) ...
Configurando linux-source-2.6.18 (2.6.18.dfsg.1-18etch1) ...
Configurando make (3.81-2) ...
//--------------------------------------
Cuando ejecuto:
make
me aparece este error:

Building USB Video Class driver...
/bin/sh: line 0: cd: /lib/modules/2.6.18-5-686/build: No existe el fichero o el directorio
make: *** [uvcvideo] Error 1

//---------------------------------
Que podría hacer en este caso?.

Muchas Gracias.

Gonzalo dijo...
Este comentario ha sido eliminado por el autor.
Gonzalo dijo...

Romario,

Excelente post, he logrado configurar la cámara de mi HP dv6720la, mis datos...

Bus 007 Device 003: ID 0408:030c Quanta Computer, Inc.

Gracias,

Gonzalo P.D.:(Sabés que configurando el sonido en mi aMSN y pese a seguir tu consejo de instalar libsnack2 aMSN me sigue anunciando un error en esta parte del asistente de configuración, te ha pasado? Saludos)

Anónimo dijo...

Muchas gracias por tu trabajo. Acabo de configurar la webcam de mi portátil Acer Aspire 5672 AWLMi. El resultado de lsusb es:
Bus 005 Device 002: ID 046d:0896 Logitech, Inc. OrbiCam

Anónimo dijo...

Muchas gracias por el fantastico manual para instalar la webcam.
A mi me ha funcionado a la primera con una

Bus 003 Device 002: ID 046d:0896 Logitech, Inc. OrbiCam

Anónimo dijo...

oigan...tengo una dudisima ..un gran problema ojala puedan ayudarme tengo una laptop con webcam :
Bus 006 Device 004: ID 04f2:b027 Chicony Electronics Co., Ltd
Y pues siguiendo los pasos...a la hora de dar el MAKE me marca un error

Building USB Video Class driver...
make[1]: se ingresa al directorio `/usr/src/linux-headers-2.6.18-6-amd64'
CC [M] /root/linux-uvc/uvc_driver.o
In file included from /root/linux-uvc/uvcvideo.h:7,
from /root/linux-uvc/uvc_driver.c:40:
/root/linux-uvc/uvc_compat.h:273:76: error: missing binary operator before token "("
/root/linux-uvc/uvc_driver.c: In function ‘uvc_parse_control’:
/root/linux-uvc/uvc_driver.c:1139: warning: implicit declaration of function ‘usb_endpoint_is_int_in’
make[2]: *** [/root/linux-uvc/uvc_driver.o] Error 1
make[1]: *** [_module_/root/linux-uvc] Error 2
make[1]: se sale del directorio `/usr/src/linux-headers-2.6.18-6-amd64'
make: *** [uvcvideo] Error 2


Ojala y puedan ayudarme. muchas gracias

Anónimo dijo...

AYUDA

Al cargar el módulo parece que todo es correcto, cuando hago el TAIL no aparece nada de Found UVC Device.... me voy al AMSM y no detecta la cam... POR FAVOR NECESITO AYUDA