Old:Usare Fotocamere Digitali: differenze tra le versioni

Nessun cambiamento nella dimensione ,  31 ott 2005
m
Riga 1: Riga 1:
In questa guida vedremo come configurare la connessione tra la nostra Debian box ed un cellulare Nokia 7210.
Introduzione


=Premessa=
Una fotocamera digitale pu� essere vista da GNU/Linux, a seconda del modello, come un generico dispositivo di mass storage (come una chiavetta usb o un hd esterno) oppure come una vera e propria fotocamera digitale alla quale possibile accedere tramite la libreria libgphoto.
Sono doverose alcune precisazioni:
* il kernel utilizzato � un vanilla 2.6.13.4, ma vedremo i moduli necessari in modo da poter adattare la guida ad altre versioni;
* il cavo di collegamento USB utilizzato � un '''BeKonnekt BKPIKMM7250''', commercializzato da CellularLine al prezzo di circa 30 euro. Non viene indicata la sua compatibilit� con GNU/Linux e tantomeno viene fornito supporto agli utenti: vedremo come farla in barba al closed-source e goderci il nostro cellulare;
* il software utilizzato gnokii, versione 0.6.9 pacchettizzato Debian (repository di testing).


=Operazioni preliminari=
A seconda del modello, la vostra fotocamera digitale potr� essere usata in uno solo dei due modi oppure (pi� raramente) in entrambi i modi.
==Configurazione del kernel==
Il cavo USB che mette in comunicazione PC e cellulare � dotato di un chip che converte il segnale proveniente dal telefono e lo invia sulla porta USB emulando una connessione seriale.


Da console � facilmente individuabile quale sia il chip utilizzato:
Qualora sia possibile scegliere, consiglio di usare la soluzione con libgphoto perch� in questo caso grazie a software specifici per fotocamere sar� possibile effettuare molto pi� facilmente operazioni di catalogazione ed archiviazione delle fotografie.
<pre>$ lsusb
Bus 005 Device 001: ID 0000:0000
Bus 004 Device 001: ID 0000:0000
Bus 003 Device 001: ID 0000:0000
Bus 002 Device 003: ID 067b:2303 Prolific Technology, Inc. PL2303 Serial Port
Bus 002 Device 002: ID 04b3:310b IBM Corp. Red Wheel Mouse
Bus 002 Device 001: ID 0000:0000
Bus 001 Device 001: ID 0000:0000</pre>
possiamo vedere che il device 003 sul bus 002 corrisponde ad una porta seriale e che il chip � il PL2303 di Prolific Technology. Si tratta di un chip supportato dal kernel linux: tutto quello che dobbiamo fare consiste nell' abilitare almeno come moduli il supporto generico alle connessioni seriali USB e quello specifico per il chip in nostro possesso.


Le voci da abilitare (le trovate nella sezione Device Drivers/USB) sono:
Per coloro che volendo o nolendo vogliono usare l'approccio con tramite usb-storage consiglio quest'ottima guida.


<pre>CONFIG_USB_SERIAL=m
Ricordo inoltre che la seguante guida (ma anche l'altra sull'usb-storage) non sono necessarie per gli utenti di Gnome dal 2.8 in avanti in quanto il riconoscimento delle periferiche usb (chiavette, fotocamere, hard disk esterni, lettori mp3 etc...) avviene automaticamente out of the box.
CONFIG_USB_SERIAL_PL2303=m</pre>
NOTA: Nel seguito i comandi preceduti da un # si intendono eseguiti da root.
Controllate se il vostro kernel � gi� configurato per l' utilizzo di questi moduli:
Installazione Pacchetti
<pre>$ cat /usr/src/linux/.config |grep CONFIG_USB_SERIAL</pre>


se cos� non fosse dovete abilitarli e ricompilare il kernel.
Innanzi tutto installiamo i pacchetti necessari:
# apt-get install usbutils hotplug gphoto2 gtkam


Fatto questo riavviate e proseguiamo.
che installer� rispettivamente: driver usb, sistema hotplug, driver fotocamere, programma grafico per scaricare le foto. Al posto di gtkam, o in aggiunta, potreste volere installare anche gthumb (per Gnome) e/o digikam (per KDE) che a differenza di gtkam (che serve solo per scaricare le foto) permettono anche la gestione completa dell'archivio fotografico.
Configurazione hotplug


==Verifica del collegamento==
Adesso configuriamo hotplug in modo che possa trovare i driver non appena venga inserita la fotocamera. Inoltre hotplug dovr� impostare i giusti permessi per consentire l'accesso alla fotocamera ad un normale utente.
Una volta preparato il kernel, verifichiamo che esso rilevi correttamente il cavetto USB.


Apriamo una console e logghiamoci come utente '''root''', in modo da poter controllare i messaggi inviati dal sistema:
Un modo semplice per raggiungere lo scopo � creare un gruppo (ad es. camera) e dare accesso alle fotocamere a tutti gli utenti apparteneti a quel gruppo.


<pre># tail -f /var/log/messages</pre>
Iniziamo creando l'indice delle fotocamere supportate che servir� ad hotplug per riconoscere la periferica:
# /usr/lib/libgphoto2-2/print-usb-usermap > /etc/hotplug/usb/libgphoto2.usermap


Ora colleghiamo il cavello ad una presa USB, dovremmo osservare qualcosa di questo tipo:
Adesso copiamo lo script che dovr� essere eseguito da hotplug una volta riconosciuta la fotocamera:
# cp /usr/share/doc/libgphoto2-2/linux-hotplug/usbcam.group /etc/hotplug/usb/usbcam


<pre>Oct 30 20:12:55 localhost kernel: usb 2-2: new full speed USB device using uhci_hcd and address 4
Controllate che /etc/hotplug/usb/usbcam abbia i permessi di esecuzione, ma dovrebbero essere gi� settati.
Oct 30 20:12:55 localhost kernel: usbcore: registered new driver usbserial
Oct 30 20:12:55 localhost kernel: drivers/usb/serial/usb-serial.c: USB Serial Driver core v2.0
Oct 30 20:12:55 localhost kernel: drivers/usb/serial/usb-serial.c: USB Serial support registered for PL-2303
Oct 30 20:12:55 localhost kernel: pl2303 2-2:1.0: PL-2303 converter detected
Oct 30 20:12:55 localhost kernel: usb 2-2: PL-2303 converter now attached to ttyUSB0
Oct 30 20:12:55 localhost kernel: usbcore: registered new driver pl2303
Oct 30 20:12:55 localhost kernel: drivers/usb/serial/pl2303.c: Prolific PL2303 USB to serial adaptor driver v0.12
Oct 30 20:12:55 localhost usb.agent[6999]:      pl2303: loaded successfully</pre>


Notiamo che viene rilevata una nuova periferica USB seriale e che per essa viene caricato il driver pl2303, relativo al chip del nostro cavetto. La cosa pi� importate consiste nell' identificare quale porta seriale viene assegnata al dispositivo, perch� ci sar� necessaria in seguito. In qusto caso la porta � la '''ttyUSB0'''.
Infine non ci resta che creare il gruppo camera (attenzione deve essere proprio questo il nome altrimenti dovrete modificare il file /etc/hotplug/usb/usbcam) e aggiungere ad esso tutti gli utenti che vogliamo abbiano il permesso di accedere in lettura/scrittura alla fotocamera:
# addgroup camera
# adduser nome_vostro_utente camera
Scaricare le foto


=Utilizzo di gnokii=
Giunti a questo punto, per scaricare le foto potete lanciare uno a scelta tra gthumb, digikam o gtkam (dal vostro utente). Gtkam � il pi� semplice e leggero (permette solo di rinominare le foto e scegliere al posizione prima di scaricarle), mentre gthumb (per Gnome) e digikam (per KDE) sono dei veri e propri programmi programmi per l'archiviazione, la ricerca e la visualizzazione delle foto. Con questi ultimi � infatti possibile associare dei metadati alle foto (tramite commenti oppure inserendo le foto in categorie a scelta) che rendono molto pi� flessibile la ricerca in un grosso archivio di foto. In particolare gthumb ha delle funzionalit� particolarmente avanzate di ricerca che fanno uso di virtual folders (analoghe alle cartelle virtuali di Evolution) e la possibilit� di masterizzare al volo o esportare in html una galleria fotografica.


La comunit� del software libero ha sviluppato un ottimo programma per interagire con il nostro cellulare, che non ci far� rimpiangere la Nokia Data Suite. Si tratta di [http://www.gnokii.org Gnokii], disponibile anche come pacchetto Debian.
Se usate gtkam, al primo avvio dovrete fare riconoscere la vostra fotocamera selezionando il menu Camera -> Add Camera... e premendo il tasto Detect. Dopo di che ad ogni avvio gtkam cercher� sempre di accedere a quella fotocamera, quindi � necessario che hotplug sia in esecuzione e che la fotocamera sia connessa, accesa ed il modalit� play (quella per guardare le foto, non per scattare).
Conclusioni e problemi vari


==Installare Gnokii==
Se avete eseguito correttamente questi passi dovreste poter collegare la fotocamera lanciare gtkam (o un'altro frontend a scelta) e scaricare immediatamente le foto. Ricordate comunque che � assolutamente necessario che hotplug sia gi� in esecuzione (per farlo partire a mano: /etc/init.d/hotplug start) quando collegate o accendete la vostra fotocamera, altrimenti non sar� riconosciuta. Comunque se farete partire hotplug all'avvio, come normalmente avviene installando il pacchetto, non ci saranno di questi problemi.


Prima di tutto installiamo Gnokii:
Cito soltanto il programma gphoto2 che permette di scaricare le foto comodamente da linea di comando. Ad esempio per vedere la lista delle foto basta digitare: gphoto2 -L. Per il resto man gphoto2.


<pre># apt-get install gnokii
Se ancora non riuscite a scaricare le immagini da utente normale, controllate con tail -f /var/log/messages che quando inserite o accendete la fotocamera compaia nel log del kernel:
Lettura della lista dei pacchetti in corso... Fatto
Oct 9 11:45:20 localhost kernel: usb 1-2: new full speed USB device using address 2 Oct 9 11:45:20 localhost usb.agent[1993]: usbcam: loaded successfully
Generazione dell'albero delle dipendenze in corso... Fatto
I seguenti pacchetti verranno inoltre installati:
  libgnokii2
I seguenti pacchetti NUOVI (NEW) saranno installati:
  gnokii libgnokii2</pre>
confermiamo l' installazione e proseguiamo.


==Configurare Gnokii==
se non compare la seconda linea provate a ricontrollare per bene tutti i passaggi di questa guida, e magari a riavviare. Ma se avete ancora problemi non esitate a postare sul forum.


Gnokii necessita di essere configurato prima che sia possibile utilizzarlo. Questa operazione va fatta attraverso la creazione del file ''.gnokiirc'' all' interno della nostra home:
Ulteriori informazioni le trovate in /usr/share/doc/libgphoto2-2/README.Debian.


<pre>$ touch .gnokiirc</pre>
Happy Debian a tutti! ;-)


Ora dobbiamo compilare il file appena creato. Il pacchetto gnokii fornisce alcuni files di esempio. Di seguito ecco cosa inserire all' interno di gnokiirc per il nostro Nokia 7210:
Antonio (The_Noise) Ingargiola - debian _AT_ fastwebnet.it
 
<pre>[global]
port = /dev/ttyUSB0
model =6510
initlength = default
connection = dlr3p
use_locking = yes
serial_baudrate = 19200
smsc_timeout = 10
[gnokiid]
bindir = /usr/local/sbin/
[connect_script]
TELEPHONE = 12345678
[disconnect_script]
[logging]
debug = on
rlpdebug = off
xdebug = off</pre>
 
Gli elementi pi� interessanti del file sono sicuramente
; port = ''che corrisponde alla porta creata dal driver subserial''.
; model = ''che indica quale driver utilizzare per il cellulare. 6510 � quello indicato per il nostro 7210''.
; connection = ''che indica il tipo di cavo utilizzato''.
 
&Egrave; necessario che il device ttyUSB0 sia leggibile e scrivibile da parte del nostro utente. Usbserial crea il dispositivo assegnando i permessi di lettura e scrittura all' utente root ed al gruppo dialout, come possiamo vedere con un ''ls'':
 
<pre>$ ls -l /dev |grep ttyUSB0
crw-rw----  1 root dialout 188,  0 2005-10-30 20:12 ttyUSB0</pre>
 
Se non siamo che il nostro utente appartenga al gruppo dialout, � sufficiente inserirlo:
 
<pre># adduser nome_utente dialout</pre>
 
==Verifica della configurazione==
 
Per verificare che il sistema sia effettivamente in grado di comunicare con il cellulare utilizziamo questa procedura:
 
<pre>$ gnokii --identify
GNOKII Version 0.6.9
LOG: debug mask is 0x1
phone instance config:
model: 6510
port_device: /dev/ttyUSB0
connection_type: 2
init_length: 0
serial_baudrate: 19200
serial_write_usleep: -1
hardware_handshake: 0
require_dcd: 0
smsc_timeout: 100
connect_script:
disconnect_script:
rfcomm_cn: 1
sm_retry: off
Connecting
Serial device: opening device /dev/ttyUSB0
Serial device: setting RTS to low and DTR to low
Serial device: setting RTS to high and DTR to high
Serial device: setting speed to 19200
Serial device: setting speed to 115200
Getting model...
Message sent: 0x1b / 0x0006
00 01 00 07 01 00                              |
[Received Ack of type 1b, seq: 80]
[Sending Ack of type 1b, seq: 4]
Message received: 0x1b / 0x002e
01 31 00 08 00 01 58 28 00 23 56 20 35 2e 35 32 |  1    X( #V 5.52
0a 31 39 2d 30 39 2d 30 33 0a 4e 48 4c 2d 34 0a |  19-09-03 NHL-4
28 63 29 20 4e 6f 6b 69 61 2e 0a 43 00 00      | (c) Nokia. C
Received message type 1b
model length: 5
Received model NHL-4
Identifying...
Message sent: 0x1b / 0x0005
00 01 00 00 41                                  |    A
Message sent: 0x1b / 0x0006
00 01 00 07 01 00                              |
[Received Ack of type 1b, seq:  1]
[Received Ack of type 1b, seq:  2]
[Sending Ack of type 1b, seq: 5]
Message received: 0x1b / 0x001a
01 31 00 01 00 01 41 14 00 10 33 35 32 35 32 32 |  1    A  352522
30 30 33 32 38 34 37 31 35 00                  | 003284715
Received message type 1b
Received imei 352522003284715
[Sending Ack of type 1b, seq: 6]
Message received: 0x1b / 0x002e
01 31 00 08 00 01 58 28 00 23 56 20 35 2e 35 32 |  1    X( #V 5.52
0a 31 39 2d 30 39 2d 30 33 0a 4e 48 4c 2d 34 0a |  19-09-03 NHL-4
28 63 29 20 4e 6f 6b 69 61 2e 0a 43 00 00      | (c) Nokia. C
Received message type 1b
Received revision V 5.52
model length: 5
Received model NHL-4
IMEI        : 352522003284715
Manufacturer : Nokia
Model        : NHL-4
Revision    : V 5.52
Serial device: closing device</pre>
 
Possiamo vedere come il collegamento sia effettivamente attivo.
 
==Uso di Gnokii==
 
Il pacchetto Gnokii fornisce una serie di programmi, il pi� utile dei quali � senzaltro '''xgnokii''', che ci permette di interagire in modo intuitivo e tramite interfaccia grafica con il nostro cellulare.
 
Lanciando xgnokii da console, o utilizzando la voce ad esso relativa presente nel menu, potremo importare, esportare e fare il backup della nostra rubrica, agenda, calendario, messaggi. Potremo anche comporre messaggi SMS e inviarli ad uno o pi� numeri telefonici presenti in rubrica o inseriti manualmente, leggere i messaggi ricevuti, ecc...
 
Ecco alcuni screenshots di xgnokii in azione sul mio portatile.
 
[[Immagine:Interfaccia.png|thumb|left|Interfaccia principale di xgnokii]]
[[Immagine:Calendario.png|thumb|left|Gestione del calendario di xgnokii]]
[[Immagine:Messaggi.png|thumb|left|Gestione dei messaggi di xgnokii]]
[[Immagine:Rubrica.png|thumb|left|Gestione della rubrica di xgnokii]]
1 760

contributi