Problemas con la cámara digital

Un poco de culturilla general antes, ¿no?. Actualmente, todo sistema Linux usa udev, un gestor de dispositivos que maneja los nodos de /dev, el sucesor de devfs. udev se ejecuta en espacio de memoria de usuario y es simplemente un demonio que se queda escuchando mensajes que le envía el kernel (se conecta un dispositivo, se desconecta, etc…) y hace lo que tenga que hacer (de acuerdo a unas reglas que pueden ser configuradas).

Las cámaras digitales, al conectarse por usb, al final son manejadas por udev. Si al conectar la cámara nos encontramos con un problema similar a este:

An error occurred in the io-library (‘Could not claim the USB device’): Could not claim interface 0 (Operation not permitted). Make sure no other program or kernel module (such as sdc2xx, stv680, spca50x) is using the device and you have read/write access to the device.

O, en español:
Se ha producido un error en la biblioteca de entrada-salida (‘No se pudo reclamar el dispositivo USB’): No se pudo reclamar la interfaz 0 (Operación no permitida). Debe asegurarse de tener acceso de lectura/escritura al dispositivo y que ningún otro programa o módulo del núcleo (como sdc2xx, stv680, spca50x) esté utilizándolo.

Puede ser debido a dos cosas, una de ellas que estamos usando ubuntu edgy y hemos actualizado un paquete (libgphoto2-2), el cual, actualmente, tiene un pequeño bug respecto a las reglas udev. Miramos el fichero /etc/udev/rules.d/45-libgphoto2.rules en la linea 3

BUS!=”usb*”, GOTO=”libgphoto2_rules_end”

¡Eso está mal! Puesto que los eventos de las nuevas versiones udev no tienen propiedades BUS, por lo tanto, esa linea hará que todo el contenido del fichero sea inutil. Tenemos que cambiarlo a algo como esto:

SUBSYSTEM!=”usb_device”, GOTO=”libgphoto2_rules_end”

Reiniciamos udev, y ya podremos conectar la cámara sin problemas :).

$ sudo /etc/init.d/udev restart

 
Otro problema que puede surgir (si lo de arriba no te ha sido útil, prueba esto), es que nuestra cámara no esté en el fichero de reglas. Esto se puede solucionar fácilmente. Ejecutamos lo siguiente para saber el IDVendor e IDProduct de nuestra cámara (estando conectada la cámara por usb):

$ lsusb
(…)
Bus 004 Device 005: ID 04a9:30fc Canon, Inc.
(…)

Lo que nos interesa es lo que he marcado en negrita, ese código es el IDVendor:IdProduct respectivamente. Ahora editamos el fichero /etc/udev/rules.d/45-libgphoto2.rules añadiendo una linea (junto con el resto de reglas que aparecen en él) que indique lo siguiente:

SYSFS{idVendor}==”04a9“, SYSFS{idProduct}==”30fc“, MODE=”0660″, GROUP=”plugdev”

Cambiando los Id’s por los que nos hayan salido en el comando anterior. Ahora solo queda reiniciar udev y conectar de nuevo nuestra cámara.

$ sudo /etc/init.d/udev restart

Y fiesta!

8 Thoughts on “Problemas con la cámara digital

  1. ¿Y todo esto para poder usar una cámara?

  2. No, todo eso para arreglar un bug de un paquete de ubuntu-backports que es un repositorio no soportado oficialmente por ubuntu. Si usas ubuntu normalmente, sería enchufar la cámara y te sale un menú directamente para saber qué quieres hacer.

  3. maldita sea y yo pasando las fotos como root xD xD gracias blaxter ^^

    PD: realmente es muy sencillo en Ubuntu, hasta mi mamá se ha quedado sorprendida de lo facil que es aqui vs lo complicado en windows 😉

  4. Alfa989 on 17 March, 2007 at 19:59 said:

    Si la gente usara Mac OS X… Estas cosas no pasarían… xD

  5. Con Windows no tienes esos problemas, 🙂

  6. Con Windows directamente no va y se acabaron los problemas, tienes razón.

  7. Arturo on 16 July, 2007 at 20:06 said:

    Muchas gracias, blaxter. Breve, agudo y preciso.
    Me solventó el problema. Ah! Y ahora desabilité el repositorio “backports”…. siempre da algún problemilla para aquellos que no estamos en la cresta de la ola…

  8. fernando on 24 July, 2007 at 1:16 said:

    Mil gracias,la cámara era el único problema que tenia con guadalinex
    saludos

Post Navigation