Dispositivi MTP su linux

 

In questo articolo vedremo come collgare un dispositivo multimediale portatile ad un computer con installato una versione del sistema operativo GNU/Linux tramite protocollo MTP. Il protocollo MTP (Media Transfer Protocol) è l'evoluzione del PTP (Picture Transfer Protocol), sviluppato da microsoft, e viene utilizzato per inviare, tramite USB (Universal Serial Bus), immagini, file audio e video ai dispositivi multimediali allegando le informazioni necessarie per la loro gestione sottoforma di metadati, tra cui le informazioni sul DRM dei file trasferiti.
Proprio per i vantaggi sulla tecnica di protezione dei contenuti digitali ha fatto si che le principali aziende produttrici di PMP (Portable Media Player), tra cui Creative con la linea Zen, Samsung, Sandisk, Toshiba, Archos e iRiver, lo utilizzassero come protocollo standard per la comunicazione con i computer.

Attualmente il protocollo MTP è supportato da Windows XP, tramite Windows Media Player 10, Windows Vista, XBox360 e da Mac OS X per mezzo di XNJB, mentre l'utilizzo con linux è permesso dalle librerie libmtp.
Le librerie libmtp, e attualmente (Settembre 2006) alla versione 0.11 sono ancora in beta, ma forniscono già una stabilità sufficiente ada permetterne l'utilizzo. Difficilmente troverete i pacchetti già compilati per la vostra distribuzione, quindi sarà necessario compilarne i sorgenti; vediamo ora come fare.
Innanzitutto sarà necessario procurarsi i sorgendi sacricando l'ultima versione disponibile sul sito. Fatto questo dovremmo decomprimere il pacchetto così ottenuto
$ tar xzf libmtp-0.11.tar
e proseguire con la compilazione tramite i consueti:

$ ./configure
$ make
$ sudo make install

Per la compilazione è necessario avere installato libusb e rendere disponibile i loro sorgenti (solitamente è necessario installare il pacchetto libusb-dev).
Se tutto è andato a buon fine dovreste aver compilato e installato la libreria necessaria, altrimenti vi verrà restituito l'errore che dovrete correggere per proseguire l'installazione.
Ora si deve lanciare lo script
$ ./hotplug.sh
che imposta automaticamente i parametri di accesso, oppure, se la volstra distribuzione utilizza udev è necessario il file /etc/udev/rules.d/libmtp.rules e inserirvi il seguente testo:

SUBSYSTEM!="usb_device", ACTION!="add", GOTO="libmtp_rules_end"
# Creative Zen Vision:M
SYSFS{idVendor}=="<strong>041e</strong>", SYSFS{idProduct}=="<strong>413e</strong>", SYMLINK+="libmtp-%k", MODE="666"
LABEL="libmtp_rules_end"

Modificando il codice idVendor e idProduct visibili, un volta collegato il vostro PMP alla porta USB e digitando:
$ lsusb
a questo punto il nostro dispositivo dovrebbe essere riconosciuto automaticamente una volta collegato (ricordatevi di riavviare udev o tutto il sistema).
Lanciando il seguente comando da shell il nostro dispositivo dovrebbe essere riconosciuto, e dovrebbe mostrare a schermo alcune informazioni sulla tipologia del dispositivo portatile e la sua configurazione:
$ sudo mtp-detect
La libreria mette a disposizione una serie di programmi, già predisposti per l'utilizzo da parte dell'utente per le più comuni operazioni, come il trasferimento di file, creazione di cartella, ... e il cui nome inizia con mtp- .
Il trasferimento di file dal computer al dispositivo portatile può essere effettuato tramite il comando:
$ sudo mtp-sendfile -t mp3 -f "Music" /nome/file.mp3
dove il parametro -t indica la tipologia di file da trasferire, -f la directory di destinazione (opzionale) e di seguto il file che deve essere trasferito.
Il trasferimento di file video può essere effettuato modificando l'opzione -t, per esempio:
$ sudo mtp-sendfile -t avi -f "Video" /nome/file.avi
Ulteriori programmi sono in fase di sviluppo e forniscono una interfaccia grafica che utlizzando le libmtp ci permetta di gestire il dispositivo portatile. Tra di esse meritano di essere citate MTPDude, che attualmente non può essere utilizzato, inquanto lavora solo con la versione 0.6 della libreria libmtp, gnomad2 che è in continua evoluzione e supporta già alcune funzioni di base per l'interfacciamento con dispositivi MTP, inoltre l'ottimo amarok che dalla versione 1.4.3 ha introdotto il supporto ai dispositivi MTP, che però non rivela se utilizzato al di fuori di KDE (ip problema può essere risolto ricompilando AmaroK, se vi interessa provate a seguire questa guida). Io vi consiglio, in ogni caso, la gestione del trasferimento di file da linea di comando, almeno finchè questi software non forniscano un maggior supporto al protocollo MTP.
Ora ci soffermeremo su come ottimizzare i file da trasferire verso il nostro dispositivo portatile, in particolare considereremo il dispositivo Creative Zen Vision:M. La scelta che mi ha portato a considerare questo prodotto, tra tutta la gamma di quelli in commercio è il supporto nativo che esso fornisce verso formati open-source, quali l'xvid e l'ogg, oltre ai formati proprietari come wma e wmv.
La maggior parte dei file audio disponibili in rete è diffuso con formato mp3 e in quanto tale non necessita di conversione, mentre i file video sono diffusi con i formati più disparati, quindi devono essere convertiti verso uno standard che il dispositivo supporti, ovvero xvid. Per la conversione esistono diversi software, ma nessuno è configurabile e flessibile come mencoder, dato che supporta moltissimi formati (tramite i w32codec) e permette l'utilizzo da sola linea di comando (vedremo dopo il perché).
Guide all'installazione di mplayer e mencoder ne esistono a centinaia, quindi sceglietene una e seguitela, altrettanto si può dire per la loro configurazione, oltre all'ottimo manuale visibile consultando:
man mencoder
Ora vedremo le impostazioni fondamentali, ma potrete tranqullamente sbizzarrirvi a modificarle una volta acquuisita un minimo di dimestichezza.
Iniziamo a convertire un semplice filmato adattandolo alla risoluzione nativa del display del nostro dispositivo, ovvero 320x280 e codificandolo con il formato xvid.
mencoder -o fileprodotto.avi -ovc xvid -xvidencopts bitrate=800 -oac mp3lame -vf scale=320:240 -endpos 0:1:0 fileiniziale.avi
Analizziamo ora le varie opzioni scelte:

  • -o Permette di scegliere il nome del file prodotto.
  • -ovc Indica il codec video da utilizzare (xvid)
  • -oac Indica il codec audio da utilizzare (mp3)
  • -xvidencopts Specifica le opzioni per il file video prodotto (in questo caso il bitrate)
  • -vf Indica la risoluzione del video in uscita (320x240)
  • -endpos Indica quando troncare la conversione del file (nel nostro caso dopo un minuto di video, stiamo solo facendo delle prove e non vogliamo aspettare molto)

Ora possiamo trasferire il nostro file sul dispositivo e vedere come viene visualizzato:
sudo mtp-sendfile -t avi -f "TV" fileprodotto.avi
E' possible effettuare più prove per vedere quale è il bitrare ottimale per il nostro video, oppure scegliere di effettuare l'encoding impostando, anzichè il bitrate, l'opzione -xvidencopts pass=2, in modo da lasciare al programma tutte le ottimizzazioni del caso. Poiché l' Zen Vision:M permette anche la trasmissione del videoverso una televisione potrebbe risultare spiacevole avere un video con risoluzione così bassa, quindi sarebbe opportuno usare la risoluzione di 720x576 pari alle specifiche PAL per le televisioni italiane, in modo da avere il miglior risultato per la visione su TV.
A questo punto avremmo a disposizione, tramite pochi comandi, un meccanismo per effettuare la conversione del video e il suo trasferimento verso il dispositivo portatil esclusivamente tramite shell, che quindi potranno essere eseguiti in uno script, che magari faremmo eseguire dal computer di notte per poterci alzare la mattina e avere il nostro filmato pronto per essere visto la mattina seguente mentre stiamo andando a scuola/lavoro sul pullman/treno.
In un prossimo articolo vedremo come impostare una scheda di acquisizione TV per salvare le nostre trasmissioni preferite sul PC e inviarle al dispositivo portatile.

Update

Con la nuova relase delle librerie MTP (0.1.2) i comandi da dare per il trasferimento dei file è diventato:
mtp-connect --sendfile FILE_DA_TRASFERIRE DIRECTORY_DI_ARRIVO
Per esempio:

mtp-connect --sendfile freemusic.mp3 freemusic.mp3
mtp-connect --sendfile freevideo.avi freevideo.avi

Dove la prima volta che indichiamo il file è quello da trasferire, mentre la seconda volta il nome che vogliamo dargli sul lettore.

Altri contenuti che potrebbero interessarti

  • FailToBan
    Ebbene sì, capita... non sono un sistemista, ma capita di dover mettere on-line dei server, un server on-line dopo pochi giorni di presenza on-line, e senza ancora essere stato pubblicato (in pratica era una macchina fantasma) inizia a subire attacchi. Boot sparsi in giro per la rete scansionano le...
  • Il sistema che andremo ad utilizare per effettuare il backup della nostra infrastruttura (che sia il nostro PC locale, un server o più di una macchina) si basa sull'utilizzo del tool duplicity. Questo strumento si integra con sistemi di storage quali FTP, SSH, ma -motivo per cui l'ho scelto, Amazon...
  • Questa breve guida si prefigge lo scopo di installare un mailserver per l'invio di posta all'interno di un organizzazione con una serie di utenti che possono accedere sia tramite un qualsiasi client di posta (Outlook, Outlook Express, Thunderbird, Evince, ...) che tramite una webmail ospitata sul...
  • Redmine e Ubuntu
    Quando si lavora (come sviluppatori, ma anche in altre occasioni) in un team è quasi fondamentale avere un sistema per la gestione del codice oltre ad un sistema per la gestione del progetto. Inizialmente avevo utilizzato trac, strumento ottimo, ma con alcuni vincoli, il più evidente: essere...

Commenti

Ritratto di Guido

problemino...

ci sto dentro, tutto molto chiaro, ma...
quando arrivo a

sudo mtp-detect

mi risponde picche! e cioè:

mtp-detect: error while loading shared libraries: libmtp.so.8: cannot open shared object file: No such file or directory

che vuol dire?
ah, ho un creative zen nuovo (2-3 mesi)

grazie mille!!!!
guido

Ritratto di mavimo

Ciao guido,...

Controlla le versioni del software e delle librerie presenti sul tuo PC, probabilmente sono già presenti all'interno di apt/rpm/quello che usi, questa guida era stata pensata quando ancora le libmtp non erano disponibili già pacchettizzate, nel qual caso è preferibile usare le versioni distribuite per evitare di dover gestire e dipendenze a mano.

Se proprio vuoi effettuare l'installazione a mano pare ceh le versioni delle libmtp non sia corretta per il tuo sistema.

Ritratto di Fabiodalex

Samsung yp-u3

Ottimo lavoro...
volevo comunicarti che per il Samsung yp-u3 esiste un modo per trasformarlo in un semplice lettore UMS e quindi universale....Se ti interessa contattami

Ritratto di Anna

samsung YP-U3

ehi ciao, scusa io ho un samsung YP-U3 da qualche anno, ora ho cambiato computer e ho un mac, solo che non riesco ad installarlo... non è che mi portesti dare qualche dritta??? grazie mille...
anna

Ritratto di Poppolo

ums

mi interesserebbe sapere se esiste una guida in italiano per trasformare il yp-u3 mtp in ums.
grazie
Giuseppe

Ritratto di Giovanni

mtp-tools

complimenti per la guida! Una cosa, sapresti indicarmi dove posso trovare una documentazione completa sui tool di mtp? dovrei trasferire un file dal mio lettore al pc e facendolo con gnomad2 mi crasha. Uso una Arch linux e ho provato con man, ma non esiste una guida per mtp-[quellochetipare]. Ciao e grazie!

Ritratto di mavimo

Ciao Giovanni,

prova a lanciare il comando senza nessun parametro, questo ti ritornerà l'errore e una miniguida sul comando, non è molo, lo so,ma è l'unica cosa che ho trovato. In alternativa vai a vedere nei sorgenti, alcune spiegazioni ci sono, ma è molto più difficile trovarle.

Ritratto di Emiliano Grilli

Grande!

Mi hai salvato :)
Confermo che funziona con un nuovissimo samsung YP-U3 (aquisto compulsivo et incauto, lo so...)

Grazie 1000

emillo

Ritratto di mavimo

Non ci credo...

...ho aiutato il grande Emillo, non sai quanto ho letto le tue guide :)

Ritratto di Andrea

Ciao,
sono interessato

Ciao,
sono interessato all'acquisto dello YP-U3. Volevo sapere se eri riuscito a farlo funzionare anche con amarok sotto ubuntu ricompilato seguendo la guida "Amarok e sipositivi MTP"

Ritratto di mavimo

Personalmente non ho uno

Personalmente non ho uno YP-U3 quindi non lo ho provato in prima persona, ma sul forum di ubuntu mi pare se ne fosse parlato, prova a cercare li. In opgni caso se è un dispositivo MTP dovrebbe funzionare (io uso AmaroK con un dispositivo MTP della Creative).

Ritratto di Barney

Zen Vision

Grande! Ottima guida...anche se l'ho solo provato (e funziona) aspetterò la versione grafica... ma volevo chiederti
tu hai parlato di rockbox... ma non l'ho visto per lo zen...

Ritratto di mavimo

Ciao Barney,

in che senso vuoi un interfaccia grafica? Prova a vedere se le altre guide che ho scritto (MTP+AmaroK o MTP+banshee) possono fare al caso tuo, altrimenti potresti provare con mtpfs (a breve farò una guida anche per quello, ma è abbastanza semplice da usare). Per quanto riguarda RockBox sono ancora in alto mare, sono ancora alla fase di raccolta informazioni (tipo di hardware e specifiche). Cerca sul wiki che avevano inserito un pagina apposita (cercavano anche qualcuno che aiutava, se te la senti..).

Ritratto di Saltatempo

Nautilus Action: sarebbe bello, no?

Hai mai pensato di trasformare questo tutorial in una Nautilus Action?
Non ho molta esperienza, ma si potrebbe provare, che dici?

In questo modo si potrebbe da Nautilus fare operazioni del tipo:
- selezionare un (insieme di) file MP3 > (tasto destro) > trasferisci su Zen

Perlomeno si rendere il supporto al lettore un pochettino più integrato nell'ambiente desktop.

Ritratto di mavimo

Non ci ho mai pensato...

...anche perchè non trasferisco spesso file, comunque è un ottima idea, appena ho un rtetta di tempo ci provo.. quindi tieni d'occhio questo post :P (e grazie per l'idea :D )

Ciao

Ritratto di Saltatempo

Formati supportati

La scelta che mi ha portato a considerare questo prodotto [...] è il supporto nativo che esso fornisce verso formati open-source, quali l'xvid e l'ogg, oltre ai formati proprietari [...]

Davvero supporta OGG vorbis nativamente? Io ho uno Zen Vision:M sul quale ho convertito tutta la mia collezione da OGG a MP3.. vuoi dirmi che non serviva?? O forse occorre aggiornare il firmware?

PS: Complimenti per la guida. Non sai quanto ho cercato sul web qualcosa di vagamente simile.. sei stato molto chiaro (tra l'altro, studio al poli anch'io.. como però)

Ritratto di mavimo

Ho ricontrollato sul sito

Ho ricontrollato sul sito della creative e gli OGG non sono supportati :|
Eppure quando mi ero informato per acquistarlo avevo letto che li supportava, in ogni caso grazie per la segnalazione, correggo subito... comunque se inserisco XviD con audio codificato in quel formato mi pare che si sentisse tutto, magari ricordo male, appena ho un pò di tempo provo.
Una chicca, è uin sviluppo un firmware basato su rockbox e allora si che ci si divertirà, se poi funziona si potranno anche creare programmi appositi (e con la CPU e memoria a disposizione..)!!

Ciao

PS: grazie per i complimenti :D
PPS: Cosa studi?

Ritratto di hayato

Ragazzi sn riuscito facendo

Ragazzi sn riuscito facendo così: sudo mtp-sendfile nomefilesulpc.mp3 nomefilechemiparesullettore.mp3
ho uno zen v plus, ora vorrei passare cartelle intere, idee? non sn riuscito a far funzionare amarok 1.4.4, non mi da l'opzione per aggiungere un lettore mtp

Ritratto di mavimo

Allora....

mtp-sendfile nomefilesulpc.mp3 nomefilechemiparesullettore.mp3
Che è il modo corretto di fare utilizzando le libmtp dalla versione 1.1.3, e come indicato negli update in fondo ;)
Per quanto riguarda il far funzionare AmaroK devi ricompilarlo, trovi una guida sul come farlo in maniera semplice in questo sito alla pagina Amarok e dispositivi MTP. Per l'inviare intere cartelle non ho mai provato, ma puoi farlo con uno script bash semplice semplice, se hai altre domande posta pure :D

Ciao
Mavimo

Ritratto di tristanozero

creative zen

ciao mavi,
continuo qui la, in parte effettuata via mail, conversazione.

dici che amarok nn riconosce gli mtp se nn in una versione da compilarsi da sorgente. sai dove posso trovarla?

ho provato ad installare, partendo da un howto, delle librerie simili a quelle che indichi tu, forse sono le stesse, ed in più una versione di gnomad2 che però nn riesco a finire di installare, dopo make mi da quest'errore:

t-zero@tristanozero:~/gnomad_install/gnomad2-2.8.9$ make
Making all in src
make[1]: Entering directory `/home/t-zero/gnomad_install/gnomad2-2.8.9/src'
gcc  -g -O2   -o gnomad2  id3read.o gnomad2.o prefs.o filenaming.o jukebox.o util.o mp3file.o editmeta.o filesystem.o playlists.o xfer.o data.o player.o metadata.o wmaread.o wavfile.o -pthread -lgthread-2.0 -lnjb -lusb -lgtk-x11-2.0 -lgdk-x11-2.0 -latk-1.0 -lgdk_pixbuf-2.0 -lm - lpangocairo-1.0 -lfontconfig -lXext -lXrender -lXinerama -lXi -lXrandr -lXcursor -lXfixes -lpango-1.0 -lcairo -lX11 -lgobject-2.0 -lgmodule-2.0 -ldl -lglib-2.0 -lid3tag -lz -L/usr/local/lib -lmtp -lusb
jukebox.o: In function `hd2jb_thread':/home/t-zero/gnomad_install/gnomad2- 2.8.9/src/jukebox.c:2011: warning: the use of `tmpnam' is dangerous, better use `mkstemp'
jukebox.o: In function `flush_usage':jukebox.c:(.text+0x20fa): undefined reference to `LIBMTP_Get_Storageinfo'
collect2: ld returned 1 exit status
make[1]: *** [gnomad2] Error 1
make[1]: Leaving directory `/home/t-zero/gnomad_install/gnomad2-2.8.9/src'
make: *** [all-recursive] Error 1

la pagina da cui sn partito è questa, allo stato attuale i miei mp3 languono dentro quel fottuto mp3 player ed io nn sono riuscito ancora a capire come fare per fargli prendere un po' d'aria...

tu chiami il tuo zen v "linux zen" perché gli hai sostituito il firmware o è solo un modo di dire?

grazie e a presto.

Ritratto di mavimo

ciao mavimo

ciao mavimo
Ciao
dici che amarok nn riconosce gli mtp se nn in una versione da compilarsi da sorgente. sai dove posso trovarla?
Usando apt-source in maniera appropriata si riesce a fare, oppure (e dico forse perché non ho ancora provato) mi hanno detto che usando la versione per Kubuntu la cosa si può fare senza la compilazione.
In fondo all'articolo ho inserito come fare, se ti va di provare e darmi conferma :D

ho provato ad installare, partendo da un howto, delle librerie simili a quelle che indichi tu, forse sono le stesse, ed in pi&ugrave; una versione di gnomad2 che per&ograve; nn riesco a finire di installare
Le librerie che dico io sono le libmtp, e credo siano le stesse, in ogni caso per Gnomad2 prova con i repository standard di Ubuntu, dovrebbe andare direttamente, oppure cerca che aveveo letto che esistono dei repo con la versione già compilata per supportare MTP (scusa ma non ricordo l'indirizzo :D )
allo stato attuale i miei mp3 languono dentro quel fottuto mp3 player ed io nn sono riuscito ancora a capire come fare per fargli prendere un po' d'aria...
Strano, a me non ha dato nessun problema (dopo l'installazione delle libmtp (v 0.11)
tu chiami il tuo zen v "linux zen" perch&eacute; gli hai sostituito il firmware o &egrave; solo un modo di dire?
No, frimaware standars della creative (in ogni caso il mio è lo Zen Vision:M e non lo Zen V, ma le cose non dovrebbero cambiare).

Ritratto di mavimo

Guida per l'installazione

Guida per l'installazione di AmaroK con supporto a dispositivi MTP per Ubuntu e Kubuntu la puoi trovare qui.
Se potete provare e dirmi se qualche cosa non è chiaro...

Ciao

Ritratto di tristanozero

mi sono bloccato...

grazie mille per sta guida, veramente chiara!
ad un certo punto mi blocco però, vi lascio l'errore che mi restituisce la shell:

t-zero@tristanozero:~/Desktop$ sudo mtp-sendfile -t mp3 -f "Music" /home/t-zero/Desktop/12.mp3
Autodetected device "Creative Zen V Plus" (VID=041e,PID=4152) is known.
PTP: Opening session
Connected to MTP device.
Sending -t to mp3
-t: stat: No such file or directory
t-zero@tristanozero:~/Desktop$

sarei grato se qualcuno potesse aiutarmi..

[email protected]

buon tutto!

Ritratto di mavimo

tu stai dicendo di passare

tu stai dicendo di passare un file nella cartella music, la cosa che milascia perplesso è che mp3 sia il nome del file, non è che magari è miacazone.mp3 o qualcosa di simile :D
L'alterantiva è che mp3 sia la cartella, in questo caso non va bene, perche non passi un singolo file, potresti provare a farti uno script che processi tutti i file e li invii uno per volta (basta un semplice loop) oppure aspettare qualche giorno che spiego come installare Amarok e fare tutto con quello :D

Ritratto di alberto

complimenti per la

complimenti per la chiarezza, continua così!!

Ritratto di mavimo

Grazie 1000, un p&ograve; di

Grazie 1000, un pò di sostegno fa sempre bene :D
A breve (studio permettendo) una prossima guida su come configurare Amarok per usare dispositivi MTP!

Ritratto di Anonimo

funziona finalmente

Veramente un'ottima guida.
Ora mi resta da capire perché funziona da stringa di comando ma non funziona gnomad2 o programmi affini.
Per caso qualcuno sa come si possono creare le playlist da linea di comando e come si inseriscono le info id3 sempre da linea di comando?
Caricando i file nel lettore con la semplice stringa di invio il file non ha info di alcun tipo e il lettore non riesce neanche a capire quanto è lungo.
Comunque ancora complimenti, finalmente una guida chiara.

Ritratto di mavimo

Veramente un'ottima

Veramente un'ottima guida.

Grazie

Ora mi resta da capire perch&eacute; funziona da stringa di comando ma non funziona gnomad2 o programmi affini.

Sei sicuro di avere una versione di gnomad che supporti le libmtp? solo le ultime versioni sono compilate con l'opzione abilitata, potresti provare a compilarti i sorgenti o ad usare dei repositary alternativi.

Per caso qualcuno sa come si possono creare le playlist da linea di comando e come si inseriscono le info id3 sempre da linea di comando? Caricando i file nel lettore con la semplice stringa di invio il file non ha info di alcun tipo e il lettore non riesce neanche a capire quanto &egrave; lungo.

Sei sicuro? hai controllato se il file di partenza ha i TAG giusti? Con lo Zen Vision:M non mi da nessun problema, riconosce sia file video che audio lunghezza e informazioni dei TAG comprese.

Ritratto di Anonimo

Complimenti, gran bella

Complimenti, gran bella guida...
Non so veramente come avrei fatto senza...

Ritratto di mavimo

Figurati &egrave; stato un

Figurati è stato un piacere!

Invia nuovo commento





  • Elementi HTML permessi: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd> <img> <h2> <h3> <h4> <table> <thead> <tbody> <tr> <th> <td>
  • You may post code using <code>...</code> (generic) or <?php ... ?> (highlighted PHP) tags.
  • Linee e paragrafi vanno a capo automaticamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente

Maggiori informazioni sulle opzioni di formattazione.



Condividi contenuti