Utilizzare una fotocamera Minolta Dimage 5 con Linux

ArticleCategory: [Choose a category, do not translate this]

SystemAdministration

AuthorImage:[Here we need a little image from you]

[Photo of the Author]

TranslationInfo:[Author + translation history. mailto: or http://homepage]

original in en Guido Socher

en to it Toni Tiveron

AboutTheAuthor:[A small biography about the author]

Guido adora Linux non solo per il fatto che sia divertente scoprire le grandiose possibilità di questo sistema, ma anche per le persone coinvolte nel suo sviluppo.

Abstract:[Here you write a little summary]

Recentemente ho deciso di acquistare una nuova fotocamera digitale. Come sempre ho prima verificato quali fotocamere fossero supportate da Linux. Generalmente io raccomando questa come strategia d'acquisto a tutti, anche se usano un altro sistema operativo. Lascia una più ampia libertà di utilizzo ed una maggiore flessibilità. Non sarete obbligati ad acquistare un nuovo hardware il giorno in cui deciderete di utilizzare Linux. www.gphoto.org mi ha dato la risposta che cercavo: Sì, la Minolta Dimage 5, una delle fotocamere a cui avevo pensato, era completamente supportata.

Ho comprato la Dimage 5 e volevo trasferire le immagini dalla fotocamera nel mio computer, ma.... sorpresa: tutti i siti Linux che parlano della Dimage 5 ti dicono che funziona con Linux, ma nessuno di loro ti spiega come farla funzionare!!

A quel punto ho deciso. Scriverò un breve articolo su Linux e la Minolta Dimage.

ArticleIllustration:[This is the title picture for your article]

[Illustrazione]

ArticleBody:[The article body]

Introduzione

La fotocamera Dimage 5 funziona perfettamente in Linux, ma per far si che funzioni, dovrete configurare il sistema usb-storage. Nella fatttispecie dovrete ricompilare il kernel.

Il mio breve articolo verterà sulla parte di configurazione ed installazione. Non vi spiegherò come vedere, modificare od archiviare le immagini.

L' idea

Le fotocamere Dimage 5 e Dimage 7 utilizzano il sistema di memorizzazione di massa su USB (noto anche come USB mass-storage o usb-storage). Voi potrete copiare, spostare o cancellare le immagini con un qualsiasi filemanager (ad esempio konqueror) o per mezzo di comandi CLI. In parole povere non avrete bisogno di nessun sofotware particolare per gestire le immagini. Tutto quello che vi serve è convincere Linux a "parlare" con la vostra fotocamera.

Passo dopo passo

Ho utilizzato il kernel 2.4.17 per questo articolo. Altri kernel della serie 2.4.x funzioneranno probabilmente bene ma la serie 2.2.x non funzionerà in quanto il sistema usb-mass storage non è stato implementato in questa serie del kernel.

Modificate il file unusual_devs.h presente nella cartella /usr/src/linux/drivers/usb/storage/ ed aggiungete le seguenti due voci:

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 ),

Questa era la parte più complessa! Il resto è una passeggiata. Ho informato il maintainer del file riguardo le modifiche. Probabilmente i nuovi kernel avranno già queste righe aggiunte al succitato file.

Ora ricompilate il kernel e siate sicuri di avere le seguenti opzioni abilitate oltre a tutto quello che normalmente avete abilitato nel vostro kernel affichè tutto funzioni correttamente.

# 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

Potete verificare lo stato di queste opzioni controllanto il file /usr/src/linux/.config. In vero, io non penso che vi servano realmente le opzioni CONFIG_USB_STORAGE_DATAFAB, CONFIG_USB_STORAGE_DPCM, CONFIG_USB_STORAGE_SDDR09 e CONFIG_USB_STORAGE_JUMPSHOT in quanto sono specifiche per alcuni lettori di flash card, ma può essere una buona idea abilitarle quando possedete una fotocamera digitale.

Il supporto per le periferiche SCSI è necessario in quanto la vostra fotocamera verrà gestita come un disco SCSI.

Ora compilate ed installate il kernel. Vi è una grande quantità di documenti su come si debba compilare un kernel (i kernel-HOWTO di www.linuxdoc.org o questo articolo di LinuxFocus). Qui non spiegherò molti dettagli. Essenzialmente avrete bisogno delle seguenti cose:

#create un link in /usr/include:
scsi -> ../src/linux/include/scsi
asm -> ../src/linux/include/asm-i386
linux -> ../src/linux/include/linux

# configuriamo il kernel:
make xconfig
# compiliamo il kernel:
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

#modifichiamo il file /etc/lilo.conf

# eseguiamo lilo o grub se lo preferite
/sbin/lilo

#riavviamo il computer

Colleghiamo la fotocamera

Colleghiamo la fotocamera e configuriamo la connessione USB. Questa procedura è descritta nel manuale a corredo della fotocamera.

Controllare con il comando /sbin/lsmod che i moduli usb-storage ed usb-uhci (o usb-ohci), siano stati caricati in memoria. Altrimenti caricateli in menoria con i seguenti comandi:

modprobe usb-uhci
modprobe usb-storage

Visionate il file /proc/bus/usb/devices e controllate che siano presenti le voci inerenti la vostra fotocamera:

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

Il file system proc della sezione usb viene, di norma, automatimenta montato al rilevamenteo di questo tipo di periferica. Se ciò non accadesse potete montarlo voi direttamente con il seguente comando:

mount -t usbdevfs /proc/bus/usb /proc/bus/usb

Per coloro che sono curiosi sul significato dei numeri sulle righe associate al driver nel file dei device, ora vi darò alcune delucidazioni. Queste righe speigano al sistema operativo che protocollo usi la fotocamera:

Cls=08(stor.) -> Classe usb storage
Sub=06 -> USB sub class 06= transparent SCSI =US_SC_SCSI ( controllate protocol.h nei file di sorgente del kernel)
Prot=50 -> protocol usb bulk transfer only =US_PR_BULK (controllate trasnport.h nei file di sorgente del kernel)

La fotocamera vi apparirà come un disco SCSI. Se già possedete un disco SCSI vi apparirà come /dev/sdb1, altrimenti come /dev/sda1 Per mezzo del comando fdisk potete controllolare se stiate utilizzando il device corretto:

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

Se corretto aggiungete la seguente riga al file /etc/fstab:

/dev/sda1     /mnt/camera0     vfat     rw,noauto,user     0 0

Create la cartella /mnt/camera0 e rendetela scrivibile da tutti:

mkdir /mnt/camera0
chmod 777 /mnt/camera0

chmod 666 /dev/sda1

Questa configurazione permetterà a qualsiasi utente di far il mount e l'umont della fotocamera senza aver bisogno di essere root.

Scaricare le fotografie.

Ora siamo pronti ed abbiamo completato la configurazione, digate:

mount /mnt/camera0

e troverete tutte le vostre fografia nella cartella /mnt/camera0

Un piccolo avvertimento: NON scollegate mai la fotocamera senza averla precedenetemente smonatata (umount /dev/camera0). Può bloccare il vostro computer.

Ho scritto un piccolo script che automatizza il processo di recupero dei files presenti sulla card della fotocamera. Qusto script esegue pure il mount e l' umont della fotocamera. In questo modo nessuno di voi potrà scollegare la fotocamera senza che essa su di essa sia stato pratico l'umont. Ho chiamato lo script cfimageget (download).
Salvate questo file col nome di cfimageget e rendetelo eseguible per mezzo del comando
chmod 755 cfimageget. Per copiare tutte le immagini nella cartella corrente (".") semplicimente digate:

cfimageget .

A proposito della fotocamera

Forse potreste essere interessati ad acquistare una fotocamera Minolta Dimage ed esser curiosi riguardo la mia esperienza in merito?

Nel complesso posso dire che si tratta di una ottima fotocamera per svariati aspetti. Si interfaccia perfettamente con il sistema operativo Linux, una volta che avete apportato le corrette modifiche al kernel e lo avete ricompilato.

Potete trovare le specifiche tecniche della fotocamera presso il sito della minolta (www.dimage.minolta.com)

La fotocamera, come molte fotocamere digitali, ha solo un grosso problema. Divora le vostre batterie!. Ho effettuato alcune misure: Con il solo obbiettivo elettronico attivo consuma 0.6 Ampere a 6 Volt. Durante la fase di messa a fuoco la fotocamera ha un consumo medio di circa 1 Ampere! Ho comunque misurato pichi di assorbimento dell'ordine di 3 Ampere. Da questo si può capire che con le normali batterie AA al NickelMetalHidrato (NiMh) (ne usa 4 per la cronaca) essa potrà funzionare per circa 1-1.5 ore, se la tenete costantemente accesa. Minolta dichiara che sarete in gradi di scattare 200 foto con un solo set di batterie, ma ciò, secondo me, significa che dovrete esser velocissimi nel fare questi scatti o resterete senza batterie. Questo, perchè non fa una grande differenza se voi scattate o la lasciate semplicemente accesa. Quelo che fa la vera differenza è quanto a lungo la fotocamera resta accesa.

Riferimenti