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]
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]
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
- Le pagine sull'USB di Linux linux-usb.org
- Le pagine sull'hot-plug in Linux linux-hotplug.sourceforge.net
il sistema hot-plug è un complesso insieme di script che
automaticamente caricano e rimuovono dalla memoria i moduli
relativi alle periferiche. Io preferisco ricorrere ad una
versione statica del caricamento in memoria dei moduli per
mezzo di modprobe negli script di startup aggiungendo delle
voci in /etc/rc.d/rc.local (Redhat/Mandrake), ma questo è a
vostra scelta.
- Una piccola selezione di programmi per vedere le immagini:
gimp (www.gimp.org),
konqueror (www.kde.org),
gphoto (www.gphoto.org)
Non dovete scaricaricare il set di gphoto per vedere le sole
foto, ma potete utilizzarlo per generare in automatico pagine
html che contengano un indice delle foto; direi che vi basta
gqview(gqview.sourceforge.net),
xv (www.trilon.com/xv/xv.html)
Questo programma esiste fin da quando i computer avevano solo
una interfaccia a caratteri, ma si tratta ancora di un ottimo
programma.
- Fotocamera Casio ed i sistemi usb-storage: www.harald-schreiber.de