por Guido Socher (homepage)
Sobre el autor:
A Guido le encanta Linux no sólo porque es divertido descubrir
las grandes posibilidades de este sistema sino también por la gente
involucrada en su diseño.
Taducido al español por:
Carlos Mayo (homepage)
Contenidos:
|
Usando una Minolta Dimage 5 bajo Linux
Resumen:
Recientemente me dicidí a comprar una nueva cámara digital. Como es
normal, primeramente busqué camaras soportadas por Linux. Nunca
compro un hardware si no está soportado por Linux. Generalmente
recomiendo esta estrategia a cualquiera, incluso si tienen otro
sistema operativo instalado. Te da mas libertad y flexibilidad. No
necesitarás comprar nuevo hardware cuando un dia decidas trabajar
solamente con Linux. www.gphoto.org proporciona la respuesta: Sí,
Minolta Dimage 5, una de las cámaras que tenía en mente, estaba
completamente soportada.
Compré la Dimage 5 y quería sacar las imágenes de la cámara
en mi ordenador pero, sorpresa: Todos los sitios de Linux que
hablaban sobre la Dimage 5 decían que funcionaría con Linux pero
no pude encontrar una sola palabra sobre como hacerla funcionar
@!?%!
Este fue el momento en el que decidí escribir este pequeño
artículo sobre Linux y Minolta Dimage.
_________________ _________________ _________________
|
Introducción
La cámara Dimage 5 funciona perfectamente bajo Linux pero para esto
necesitas configurar el sistema usb-storage. Específicamente
necesitas re-compilar el núcleo.
Me concentraré en este pequeño artículo solamente en la parte de
configuración e instalación. No explicaré como ver, editar o
archivar imágenes digitales.
La idea
La cámaras Dimage 5 y Dimage 7 usan el sistema USB mass storage.
Esto significa que desde el punto de vista de Linux ellas parecen
un disco duro. Puedes copiar, mover, eliminar imágenes con cualquier
manejador de ficheros (p.e. konqueror) o con comandos de shell. En
otras palabras, no necesitas nada especial para recuperar las
imágenes. Sólo necesitas convencer a Linux para que "hable" con
tu cámara.
Paso a paso
He usado Kernel 2.4.17 para este artículo, en otros kernels 2.4.x
probablemente funcionará igual pero en los 2.2.x no funcionará
ya que el sistema usb mass storage no ha sido portado a los 2.2.x.
Edita el fichero unusual_devs.h de
/usr/src/linux/drivers/usb/storage/ y añade las siguientes dos
entradas:
UNUSUAL_DEV( 0x0686, 0x4008, 0x0001, 0x0001,
"Minolta",
"Dimage 5",
US_SC_SCSI, US_PR_BULK, NULL, US_FL_START_STOP ),
UNUSUAL_DEV( 0x0686, 0x4006, 0x0001, 0x0001,
"Minolta",
"Dimage 7",
US_SC_SCSI, US_PR_BULK, NULL, US_FL_START_STOP ),
¡Esta fue la parte mas dura!
Informé al responsable del fichero sobre estas entradas. Probablemente
algunas versiones futuras del núcleo tendrán estas lineas incluidas.
Ahora recompila el núcleo y asegúrate que tienes seleccionadas las
siguientes opciones, incluidas las necesarias para tu hardware.
# General setup
CONFIG_HOTPLUG=y
# SCSI support
CONFIG_SCSI=y
CONFIG_BLK_DEV_SD=y
CONFIG_SD_EXTRA_DEVS=40
CONFIG_SR_EXTRA_DEVS=4
CONFIG_CHR_DEV_SG=m
CONFIG_SCSI_CONSTANTS=y
CONFIG_SCSI_LOGGING=y
# File systems
CONFIG_FAT_FS=m
CONFIG_VFAT_FS=m
# USB support
CONFIG_USB=y
CONFIG_USB_DEVICEFS=y
# USB Controllers
CONFIG_USB_UHCI=m
CONFIG_USB_UHCI_ALT=m
CONFIG_USB_OHCI=m
# USB Device Class drivers
CONFIG_USB_STORAGE=m
CONFIG_USB_STORAGE_DATAFAB=y
CONFIG_USB_STORAGE_DPCM=y
CONFIG_USB_STORAGE_SDDR09=y
CONFIG_USB_STORAGE_JUMPSHOT=y
Puedes comprobar estas opciones en el fichero /usr/src/linux/.config.
No creo que necesites realmente las opciones CONFIG_USB_STORAGE_DATAFAB,
CONFIG_USB_STORAGE_DPCM, CONFIG_USB_STORAGE_SDDR09 y
CONFIG_USB_STORAGE_JUMPSHOT pero estas son algunos dispositivos
lectores de tarjetas flash y sería bueno tenerlas cuando poseas
una cámara.
El soporte SCSI se necesita porque el usb-storage aparecerá al
usuario como un disco SCSI.
Ahora compila e instala el núcleo. Hay mucha documentación sobre
cómo compilar el núcleo (Kernel-HOWTO de www.linuxdoc.org o este
artículo de Linuxfocus) Por tanto, no explicaré ningún detalle.
Básicamente necesitas hacer lo siguiente:
#crear links en /usr/include para:
scsi -> ../src/linux/include/scsi
asm -> ../src/linux/include/asm-i386
linux -> ../src/linux/include/linux
# configurar:
make xconfig
# compilar:
make dep
make clean
make bzImage
make modules
make modules_install
cp /usr/src/linux/arch/i386/boot/zbImage /boot/vmlinuz-2.4.17
cp /usr/src/linux/System.map /boot/System.map-2.4.17
cp /boot/System.map-2.4.17 /boot/System.map
cp /usr/src/linux/.config /boot/Config-2.4.17
#editar /etc/lilo.conf
# ejecutar lilo (o grub si lo usas)
/sbin/lilo
#reinicia el ordenador
Errata:
Gracias a Seth W. Klein por indicarme que no es mejor
crear enlaces simbólicos desde /usr/include. Para una explicación
mas detallada ver este email de
Linus.
Conectando la cámara
Conecta la cámara y configura la conexión usb. Esto se describe
en el manual que viene con la cámara.
Comprueba con el comando /sbin/lsmod que tienes cargados los
módulos usb-storage y usb-uhci (o usb-ohci). Si no, cárgalos con
modprobe usb-uhci
modprobe usb-storage
Abre el fichero /proc/bus/usb/devices y comprueba que ves una
entrada para la cámara:
T: Bus=01 Lev=01 Prnt=01 Port=00 Cnt=01 Dev#= 3
Spd=12 MxCh= 0
D: Ver= 1.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS= 8 #Cfgs= 1
P: Vendor=0686 ProdID=4008 Rev= 0.01
S: Manufacturer=MINOLTA DIMAGE CAMERA
S: Product=DIMAGE CAMERA
C:* #Ifs= 1 Cfg#= 1 Atr=40 MxPwr= 0mA
I: If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50
Driver=usb-storage
E: Ad=03(O) Atr=02(Bulk) MxPS= 16 Ivl= 0ms
El sistema de ficheros proc usb con el fichero de dispositivos
de arriba, normalmente se monta automáticamente pero si no es
este el caso, entonces móntalo manualmente con el comando siguiente:
mount -t usbdevfs /proc/bus/usb
Para aquellos que tienen curiosidad sobre el significado de los números
de la linea del driver en el fichero de dispositivos, una pequeña explicación.
La cámara le dice al ordenador que tipo de protocolo habla:
Cls=08(stor.) -> Class usb storage
Sub=06 -> USB sub class 06= transparent SCSI =US_SC_SCSI (ver
protocol.h de las fuentes del núcleo)
Prot=50 -> protocol usb bulk transfer only =US_PR_BULK (ver
transport.h de las fuentes del núcleo)
La cámara aparecerá como un disco SCSI. Si ya tienes algún otro disco
SCSI entonces será /dev/sdb1 sino, /dev/sda1. Con fdisk puedes comprobar
donde esta el disco:
fdisk -l /dev/sda
Disk /dev/sda: 4 heads, 32 sectors, 244 cylinders
Units = cylinders of 128 * 512 bytes
Device Boot Start End Blocks Id System
/dev/sda1 * 1 245 15664 1 FAT12
Añade la siguiente linea a /etc/fstab:
/dev/sda1 � � /mnt/camera0
vfat � � rw,noauto,user � � 0 0
Crea el directorio /mnt/camera0 y permite la escritura a todos:
mkdir /mnt/camera0
chmod 777 /mnt/camera0
chmod 666 /dev/sda1
Esta configuración permitirá a cualquier usuario montar y desmontar la
cámara sin cambiar a root. (Nota que chmod 777 /mnt/camera0 y chmod 666
/dev/sda1 no son necesarios si el comando mount tiene puesto el s-bit para root,
permisos de fichero de /sbin/mount -rwsr-xr-x, si el s-bit esta puesto entonces
la opción user en /etc/fstab es suficiente.)
Obteniendo las imágenes
Ya terminamos con la configuración. Ahora escribe:
mount /mnt/camera0
y obten tus imágenes del arbol de directorios bajo /mnt/camera0!
Un mensaje de aviso: nunca desconectes la cámara sin desmontarla primero
(umount /mnt/camera0). Puede bloquear tu ordenador.
He escrito un pequeño script para recuperar automáticamente todas
las imágenes de la tarjeta CompactFlash de la cámara. Este script también
monta y desmonta automáticamente la cámara. De esto modo nunca desenchufarás
la cámara antes de desmontarla. Llamo al script
cfimageget
(download).
Graba este fichero como cfimageget y hazlo ejecutable con
chmod 755 cfimageget. Para copiar todas las imágenes al directorio actual
(".") simplemente ejecuta
cfimageget .
Sobre la cámara
Quizás intentes comprar una Minolta Dimage y estás interesado
en mi experiencia con esta cámara
Generalmente puedo decir que esta es una muy buena cámara y en
muchos aspectos exceden a mis expectaciones. Interopera perfectamente
con Linux una vez que haya pasado por el proceso de configuración
y re-compilación del Núcleo.
Puedes obtener especificaciones técnicas sobre la cámara en
www.dimage.minolta.com.
La cámara tiene, como muchas cámaras digitales, un gran problema. Consume
muchas baterías. Hice algunas medidas: solamente con el visor
electrónico necesita sobre 0.6 amperios en 6 voltios. Con el autofocus
y el pequeño monitor encendido consume una media de 1 amperio.
¡Una media de 1 amperio! Con unos picos de consumo de 3 amperios.
Con 4 pequeñas pilas AA NiMh (1600 mAh) la cámara puede funcionar
alrededor de 1 a 1.5 horas de uso continuado. Minolta dice que puede
disparar sobre 200 fotos con un conjunto de pilas. Personalmente pienso
que tienes que disparar esas 200 fotos rápidamente para no agotar
las pilas. Esto es así porque no diferencia si realmente toma la
fotografía o no. Lo que cuenta es cuanto tiempo está la cámara
encendida.
Referencias
- Las páginas usb de Linux linux-usb.org
- La página hotplug de Linux linux-hotplug.sourceforge.net
hotplug no es más que un conjunto de shell scripts para cargar automáticamente
módulos como usb-storage. Yo prefiero una simple entrada para modprobe en
/etc/rc.d/rc.local (Redhat/Mandrake).
- Una selección de programas visores de imágenes:
gimp (www.gimp.org),
konqueror (www.kde.org),
gphoto (www.gphoto.org) No
necesitas la función de download de gphoto pero puedes usarlo para
hojear cualquier directorio y generar páginas índice en html,
gqview (gqview.sourceforge.net),
xv (www.trilon.com/xv/xv.html)
Este programa ya existía cuando muchos ordenadores tenían solamente escritorios
basado en texto pero todavía es bueno.
- Cámaras Casio y usb-storage: www.harald-schreiber.de
Formulario de "talkback" para este artículo
Cada artículo tiene su propia página de "talkback". A través de esa página puedes enviar un comentario o consultar los comentarios de otros lectores
2002-12-09, generated by lfparser version 2.34