HOWTO Instalar una camara digital con UDEV
De Gentoo Linux Wiki
| Kernel & Hardware • Red y Servicios • Portage • Relacionado con el Sistema • Servidor X • Juegos • Misceláneos |
Esta pagina pretende ser una traducción de: http://gentoo-wiki.com/HOWTO_Install_a_digital_camera
Tabla de contenidos |
[editar] Introducción
Conectar una cámara Olympus Camedia D-40 Zoom (puede ver las especificaciones en español aquí)es mas fácil de lo que mucha gente piensa, este modelo en particular utiliza USB 1.1, cualquier persona que tenga esta cámara debería poder hacerla funcionar fácilmente con distribuciones que posean un núcleo 2.6.
A pesar de que este HOWTO sea específico para la cámara Olympus Camedia D-40 Zoom sus instrucciones pueden ser válidas para otras muchas cámaras.
[editar] Breve resumen
¿que es lo que haremos en este howto?
Instalaremos una cámara digital Olympus D-40 ZOON con UDEV.
Que paquetes utilizaremos
Usaremos los paquetes sys-fs/udev y sys-apps/hotplug.
Qué haremos paso a paso
Primero instalaremos los paquetes en el sistema y posteriormente configuraremos UDEV, para todo esto necesitara acceso como usuario root. Le recomiendo que en lugar de usar la cuenta root directamente use el comando su
[editar] Entorno Gentoo
[editar] Entorno del sistema
La cámara Olympus D-40 ZOOM digital ha sido preparada sobre la plataforma x86 usando un kernel 2.6.10. CFLAGS y CHOST son los siguientes:
CFLAGS
-march=athlon-xp -fomit-frame-pointer -pipe -msse -mmmx -m3dnow -O2
CHOST
i686-pc-linux-gnu
Kernel version
2.6.11-ck1
Con este HOWTO asumimos que conoces en profundidad el funcionamiento de gentoo y algun basico conocimiento sobre instalacion de dispositivos.
[editar] Opciones del núcleo
Para usar la cámara digital Olympus D-40 ZOOM el kernel debe estar configurado con soporte para USB, SCSI y el sistema de archivos vfat. Date cuenta de que si activas primero el soporte para USB, SCSI lo hará automáticamente puesto que depende de ello. Sin embargo, verifica que todo esta activado.
Primero, debes saber si necesitas OHCI OR UHCI para USB. Debido a que me placa base tiene el chipset VIA, yo necesito soporte para UHCI. Para comprobarlo, tipea el siguiente comando:
| Código: Run Command |
0000:00:02.0 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4) 0000:00:02.1 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4) 0000:00:02.2 USB Controller: nVidia Corporation nForce2 USB Controller (rev a4) |
Si la salida que obtengas es mas genérica, deberás saber que driver usar visitando la pagina web del controlador USB. (NOTA: Intenta lspci -v primero, puesto que proporciona mucha mas información)
Entonces vamos a dar el soporte para USB, SCSI y vfat en el kernel. Esta cámara digital soporta USB 1.1 por lo que no tendrás que preocuparte si tienes soporte para USB 2.0 a menos que tengas otros dispositivos que puedan usar la tecnología USB 2.0. En este ejemplo, uso OHCI porque es lo que me driver USB requiere.
Prefiero compilar dichos soportes directamente en el kernel y no como modulos. La elección es tuya.
| Código: Required Kernel options |
|
Para soporte USB Device Drivers -> USB Support <*> Support for Host-side USB [*] USB device filesystem <*> EHCI HCD (USB 2.0) support <*> OHCI HCD support <*> USB Mass Storage support Para soporte SCSI Device Drivers -> SCSI device support [*] legacy /proc/scsi/ support <*> SCSI disk support <*> SCSI generic support Para vfat File systems -> DOS/FAT/NT Filesystems <*> MSDOS fs support <*> VFAT (Windows-95) fs support Elimina devfs (con 2.6 viene desactivado por defecto) File systems -> Pseudo filesystems [ ] /dev file system support (OBSOLETE) |
Es necesario que añadas:
File systems -> Partition types [*] PC BIOS (MSDOS partition tables) support
para que el systema lea la particion MSDOS de la cámara.
Debes estar seguro de que al iniciar el sistema se use udev y no devfs. En este ejemplo usamos grub. Un ejemplo de lilo esta disponible despues.
| Archivo: grub.conf |
mount /boot nano /boot/grub/grub.conf |
En los parametros que se le pasa al kernel, añadir: gentoo=nodevfs
kernel (hd0,0)/boot/2.6.10-ck5 ro root=/dev/hda3 gentoo=nodevfs vga=792
No olvides de desmontar la particion /boot antes de reiniciar, si es que dispones de /boot como partición.
Para los usuarios de lilo
| Archivo: lilo.conf |
nano /etc/lilo.conf |
Añade antes de read-only esto:
append = "gentoo=nodevfs"
Acuerdate de ejecutar: "lilo -v" al modificar el archivo
Cuando hayas terminado de recompilar el kernel necesitas reiniciar con el nuevo a menos que hayas compilado como modulo Y ya estes en un kernel con UDEV. En este caso el paquete hotplug cargará los modulos necesarios una vez enchufes la cámara. En el caso de que no los carge automáticamente, deberas hacerlo manualmente de la siguiente manera:
| Código: Load Module |
# modprobe msdos # modprobe vfat # modprobe sd_mod # modprobe sg # modprobe usbcore # modprobe ehci-hcd (para soporte USB 2.0, si lo necesitas) # modprobe ohci-hcd O # modprobe uhci-hcd (dependiendo de cual sea el tuyo) |
NOTA: Debido a que el dispositivo es USB y tiene un sistema de archivos, SCSI debe estar soportado. Todos los sistemas de archivos conectados a un nodo de linux usa una "virtual" interfaz SCSI para proporcionar acceso al driver. Porqué? Realmente lo desconozco
[editar] Verificar la presencia de la camara
Después de reiniciar el ordenador o cargar el modulo correspondiente debe conectar su cámara a un puerto USB para crear el fichero de dispositivo /dev/sgX donde X es el número de dispositivo para saber si el sistema reconoce el dispositivo verifique la salida de dmesg:
| Código: View dmesg output |
# dmesg usb 3-2: new full speed USB device using ohci_hcd and address 10 scsi2 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 10 usb-storage: waiting for device to settle before scanning Vendor: OLYMPUS Model: C-40Z/D-40Z Rev: 1.00 Type: Direct-Access ANSI SCSI revision: 02 SCSI device sdb: 256000 512-byte hdwr sectors (131 MB) sdb: assuming Write Enabled sdb: assuming drive cache: write through SCSI device sdb: 256000 512-byte hdwr sectors (131 MB) sdb: assuming Write Enabled sdb: assuming drive cache: write through sdb: sdb1 Attached scsi removable disk sdb at scsi2, channel 0, id 0, lun 0 Attached scsi generic sg0 at scsi2, channel 0, id 0, lun 0, type 0 usb-storage: device scan complete |
Si la salida es similar a la de arriba puede continuar con el proceso de lo contrario debería verificar la configuración de su núcleo o resolver el problema a nivel de hardware.
[editar] Instalación de paquetes
Este es quizás el paso mas fácil del proceso, para ello se recomienda pasar el parametro pretend a emerge para verificar dependencias aunque esto es recomendable con todos los paquetes. UDEV es un paquete pequeño así que se compilara mas o menos en un minuto, tal vez en máquinas lentas tarde algo mas.
| Código: Install UDEV |
# su Password: # emerge sync # emerge udev hotplug -pv # emerge udev hotplug |
[editar] Configurando UDEV
Ahora necesitara escribir una regla de UDEV. Para ello es necesario obtener la información que tendrá el sistema del dispositivo desde el propio dispositivo. Lo primero es averiguar la dirección del sistema sobre dispositivos.
| Código: udevinfo |
# udevinfo -q path -n /dev/sg0 /class/scsi_generic/sg0 |
Mediante la salida que se muestra abajo podrá obtener el número de serie del dispositivo, necesitara esta información mas adelante para construir la regla de UDEV
# udevinfo -a -p /sys/class/scsi_generic/sg0
BUS="usb"
ID="3-2"
SYSFS{bConfigurationValue}="1"
SYSFS{bDeviceClass}="00"
SYSFS{bDeviceProtocol}="00"
SYSFS{bDeviceSubClass}="00"
SYSFS{bMaxPower}=" 0mA"
SYSFS{bNumConfigurations}="1"
SYSFS{bNumInterfaces}=" 1"
SYSFS{bcdDevice}="0100"
SYSFS{bmAttributes}="c0"
SYSFS{detach_state}="0"
SYSFS{devnum}="10"
SYSFS{idProduct}="0105"
SYSFS{idVendor}="07b4"
SYSFS{manufacturer}="OLYMPUS"
SYSFS{maxchild}="0"
SYSFS{product}="C-40Z/D-40Z"
SYSFS{serial}="000202125180"
SYSFS{speed}="12"
SYSFS{version}=" 1.10"
La línea que esta en negritas es la que nos interesa, no la pierda de vista porque la necesitaremos mas adelante.
Ahora abra en su editor de textos favorito el fichero /etc/udev/rules.d/50-udev.rules y añada la siguiente linea:
BUS="usb", SYSFS{serial}="000202125180", KERNEL="sd?1", NAME="%k", SYMLINK="olympus"
Lo que está en negrita representa la información necesaria de los pasos anteriores. Se añade esta linea en la sección USB por razones obvias.
Cuando haga estos cambios desconecte y vuelva a conectar el dispositivo para que los cambios tengan efecto.
[editar] Pasos finales
A estas alturas su cámara ha de estar conectada, para asegurarse de que hotplug esta funcionando desconecte y vuelva a conectar, el ultimo paso sera editar el fichero fstab, su cámara deberá estar encendida, asegurese de tener batería o un adaptador de corriente alterna, se recomienda usar el adaptador de corriente para ahorrar pilas o mejor usar baterías recargables si es posible.
El ultimo paso es editar el fstab para indicarle al sistema donde tiene que montar el dispositivo:
| Archivo: fstab |
#<fs> <mountpoint> <type> <opts> <dump/pass> /dev/olympus /media/camera vfat noauto,user,exec 0 0 |
A continuación cree el directorio de montaje en este ejemplo se usa /media/camera procure darle el mismo nombre que le dio en el fichero fstab.
La columna <fs> ha de ser /dev/olympus debido a la regla de udev que creamos en /etc/udev/rules/50-udev.rules si cambia el valor en negrita:
BUS="usb", SYSFS{serial}="000202125180", KERNEL="sd?1", NAME="%k", SYMLINK="olympus"
También debería cambiar el parámetro de la columna <fs> en fstab, no olvide ejecutar udevstart si no no usara los nuevos parámetros.
Importante recordar
1. Conectar la cámara 2. Asegurarse de que tiene baterias o esta conectada a la corriente 3. Encender la camara 4. reiniciar si ha recompilado el núcleo
después de editar fstab Personalmente uso KDE y cuando accedo a mi cámara en konqueror en /dev/camera konqueror la monta por mi, posiblemente sea porque tengo compilado automount compilado en el núcleo, si no se monta automáticamente puede probar a hacerlo manualmente
| Código: mount camera |
# su Password: # mount /media/camera # exit |
La camára estará lista para usar
Para recordar
1. Enchufe la cámara 2. Asegurese de tener batería o estar conectado a la corriente electrica 3. Encienda la camara 4. Reinicie si ha recompilado el núcleo
[editar] Tomar fotos en GNOME
Advierta que GNOME puede usar automáticamente una cámara cuando esta esta conectada, para ello es necesario tener el paquete gnome-base/gnome-volume-manager y configurarlo en las preferencias, para mas información puede visitar en ingles HOWTO gnome volume manager. El comando predeterminado para las cámaras es gthumb (media-gfx/gthumb) y se reconocerán las cámaras y su sistema de almacenamiento con soporte en gphoto. Puede usar el guión de David Zeuthen que usara gthum en el directorio donde la cámara guarda las fotos. Se ejecuta de la siguiente forma: /path/to/gvm-gthumb-wrapper %h (nombre del guión) Al montar gnome la cámara preguntara por el directorio de la fotos y podrá usar gthum con el directorio de la cámara
[editar] Notas finales
Recuerde, Hotplug es responsable de saber cuando se conecta el hardware y Udev se encarga de darle el nombre de dispositivo. Para mas información consulte la página de manual de UDEV man udev
