Utilizando a camera digital Minolta Dimage 5 no Linux
ArticleCategory: [Choose a category, do not translate
this]
SystemAdministration
AuthorImage:[Here we need a little image from you]
TranslationInfo:[Author + translation history. mailto: or
http://homepage]
original in en Guido
Socher
en to pt Bruno
Sousa
AboutTheAuthor:[A small biography about the author]
O Guido gosta do Linux não só pelas excelentes possibilidades deste
sistema, bem como pelas pessoas envolvidas no seu desenho.
Abstract:[Here you write a little summary]
Recentemente, decidi comprar uma nova camera digital. Como já é habitual,
procurei, em primeiro lugar, por cameras suportadas pelo Linux. Nunca compro
hardware novo que não seja suportado pelo Linux. Geralmente, recomendo esta
estratégia a todas as pessoas, mesmo que tenham outro sistema operativo
instalado. Dá-lhe mais liberdade e flexibilidade. Assim, quando um dia se
decidir só pelo Linux, não precisa de comprar hardware novo. O site
www.gphoto.org deu-me a resposta: Sim, a camera Minolta Dimage 5,
uma das que tinha em mente, era totalmente suportada.
Comprei a camera 5 e quis tirar as imagens da camera para o computador mas
surpresa das surpresas: Todos os sites do Linux que falavam acerca da
Dimage 5 diziam que a mesma trabalha com o linux, mas não consegui encontrar
uma só palavra que dissesse como a pôr a trabalhar @!?%!
Foi neste momento que decidi escrever um pequeno artigo acerca do Linux e
da camera Minolta Dimage.
ArticleIllustration:[This is the title picture for your
article]
ArticleBody:[The article body]
Introdução
A camera Dimage 5 trabalha perfeitamente no Linux mas para tal precisa de
configurar o sistema usb-storage. Mais especificamente, precisa de
recompilar o kernel.
Concentrar-me-ei, neste pequeno artigo, somente na parte de instalação e
configuração. Não explicarei como ver, editar ou arquivar as imagens
digitais.
A ideia
As cameras Dimage 5 e Dimage 7 utilizam o sistema USB mass. Ou seja, no
ponto de vista do Linux são um disco rígido. Pode copiar, mover, remover
imagens com o seu gestor de ficheiros (e.g. konqueror) ou com os comandos da
shell. Ou por outras palavras não precisa de fazer nada de especial para
obter as imagens. Só precisa de "convencer" o Linux a falar para a sua
máquina.
Passo a Passo
Para este artigo utilizei o Kernel 2.4.17, outros da série 2.4 poderão,
também, trabalhar contudo os da série 2.2 não trabalharam visto que o
sistema de armazenamento usb mass não foi portado para este série do
kernel.
Edite o ficheiro unusual_devs.h que se encontra em
/usr/src/linux/drivers/usb/storage/ e adicione seguintes 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 é a parte mais difícil! O resto é sempre em frente. Informei o
responsável do ficheiro por estas entradas. Provavelmente algumas versões
futuras do kernel incluíram estas linhas.
Agora recompile o kernel e certifique-se que seleccionou as seguintes
opções, para além de todas as coisas que, normalmente, precisa de
seleccionar para o seu 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
Pode verificar estas opções no ficheiro /usr/src/linux/.config.
Penso que na realidade, não precisa das opções CONFIG_USB_STORAGE_DATAFAB,
CONFIG_USB_STORAGE_DPCM, CONFIG_USB_STORAGE_SDDR09 e
CONFIG_USB_STORAGE_JUMPSHOT mas estas são alguns dispositivos de leitura de
memórias flash, podem-lhe fazer jeito quando adquire uma camera.
O suporte SCSI é preciso porque o usb-storage aparecerá ao utilizador como
disco SCSI.
Agora compile e instale o kernel. Existe imensa documentação acerca da
compilação do kernel (o kernel-HOWTO da www.linuxdoc.org ou este
artigo da Linuxfocus ) por
conseguinte, não explicarei quaisquer detalhes. Basicamente, precisa de fazer
o seguinte:
#crie os links em /usr/include para:
scsi -> ../src/linux/include/scsi
asm -> ../src/linux/include/asm-i386
linux -> ../src/linux/include/linux
# configure:
make xconfig
# compile:
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
#edite /etc/lilo.conf
# corra lilo (ou o grub se o utiliza)
/sbin/lilo
#faça reboot ao computador
Errata:
Obrigado a Seth W. Klein por apontar que já não é melhor criar ligações
simbólicas a partir de /usr/include.
Para uma explicação detalhada veja este mail do Linus.
Ligando a camera
Ligue a camera e configure a ligação usb. Isto está descrito no manual que
acompanha a camera.
Verifique com o comando /sbin/lsmod que tem os módulos usb-storage
e usb-uhci (ou usb-ohci) carregados. Caso contrário, carregue-os com
modprobe usb-uhci
modprobe usb-storage
Abra o ficheiro /proc/bus/usb/devices e verifique que consegue encontrar a
entrada para a camera:
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
O sistema de ficheiros proc usb com o ficheiro de dispositivos em cima é,
normalmente, montado automaticamente mas este não é o caso, assim monte-o
manualmente com o seguinte comando:
mount -t usbdevfs /proc/bus/usb
Para aqueles que estão curiosos com o significado dos números na linha do
driver no ficheiro dos dispositivos aqui vai uma pequena explicação. A
camera diz ao computador que tipo de protocolo fala:
Cls=08(stor.) -> Class usb storage
Sub=06 -> USB sub class 06= transparent SCSI =US_SC_SCSI (veja
protocol.h a partir das fontes do kernel)
Prot=50 -> protocol usb bulk transfer only =US_PR_BULK (veja
transport.h a partir das fontes do kernel)
A camera aparecerá como um disco SCSI. Se já possuir um outro qualquer disco
SCSI então será /dev/sdb1 caso contrário será /dev/sda1. Com o fdisk pode
verificar onde o disco se encontra:
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
Adicione a seguinte linha ao /etc/fstab:
/dev/sda1 /mnt/camera0
vfat rw,noauto,user 0 0
Crie o directório /mnt/camera0 e permita a escrita de todos:
mkdir /mnt/camera0
chmod 777 /mnt/camera0
chmod 666 /dev/sda1
Esta configuração permite que qualquer utilizador de montar e desmontar a
camera sem ter de mudar para root. (Nota que o chmod 777 /mnt/camera0 e
chmod 666 /dev/sda1 não são precisos de o seu comando mount tiver o s-bit
para o root definido, as permissões de ficheiro /sbin/mount é -rwsr-xr-x se
o s-bit estiver configurado sendo a opção user no /etc/fstab suficiente.)
Obtendo as imagens
Terminámos já a configuração e o setup. Agora digite:
mount /mnt/camera0
e obtenha todas as suas imagens a partir da árvore de directório abaixo de /mnt/camera0!
Uma palavra de aviso: Nunca desligue a camera sem a desmontar primeiro
(umount /mnt/camera0). Pode bloquear o seu computador.
Escrevi uma pequena script para, automaticamente, retirar todas as imagens
do cartão de memória Flash da camera. Esta script também monta e desmonta
automaticamente a camera. Deste modo, nunca desliga a camera sem antes a
desmontar. Chamei-lhe cfimageget
(download).
Guarde este ficheiro como cfimageget e torne-o executável com
chmod 755 cfimageget. Para copiar todas as imagens para o directório
corrente (".") corra, simplesmente
cfimageget .
Acerca da camera
Provavelmente, tenciona comprar uma Minolta Dimage e está interessado na
minha experiência com esta camera ?
No geral, posso dizer que é uma camera muito boa, em muitos aspectos excedeu
as minhas espectativas. Opera perfeitamente com o Linux logo que procedeu à
configuração e ao procedimento de compilação do kernel.
Pode obter especificações técnicas acerca da camera em www.dimage.minolta.com.
A camera tem, como muitas outras cameras, um grande problema. Come baterias.
Fiz algumas medidas: Somente com o visor electrónico precisa de 0.6 Amperes
numa voltagem de 6 Volts. Quando procede à auto-focagem e com o pequeno
monitor consome em média 1 Ampere. Isto é uma média de 1 Ampere ! Com picos
até aos 3 Amperes. Com 4 pequenas baterias AA NiMh (1600 mAh) a camera
trabalhará cerca de 1 hora a 1,5 hora numa utilização contínua. A Minolta
diz que pode tirar cerca de 200 fotografias com um par de baterias.
Pessoalmente, penso que tem de tirar estas fotos bastante rápido para não
ficar sem baterias. Isto é assim porque não importa se tira uma fotografia
agora ou não. O que importa é o tempo em que a camera está ligada.
Referências
- As páginas usb do Linux linux-usb.org
- A página hotplug do linux linux-hotplug.sourceforge.net
O hotplug não é mais do que um conjunto, complicado, de scripts para
automaticamente carregar módulos como o usb-storage. Eu prefiro uma simples
entrada modprobe no /etc/rc.d/rc.local (Redhat/Mandrake) mas é consigo.
- Uma selecção de programas para ver as imagens:
gimp (www.gimp.org),
konqueror (www.kde.org),
gphoto (www.gphoto.org) Não tem
necessidade da funcionalidade de descarregamento do gphoto, mas pode
utilizá-lo para pesquisar qualquer directório e gerar páginas índice em
html,
gqview (gqview.sourceforge.net),
xv (www.trilon.com/xv/xv.html)
Este programa já existia quando muitos computadores tinham desktops à base
de texto, mas ainda é bom.
- Cameras Casio e usb-storage: www.harald-schreiber.de