MTP
Das Media Transfer Protocol, kurz MTP, ist ein Protokoll zum Austausch von Dateien zwischen dem PC und portablen Kleingeräten wie z.B. Kameras, Smartphones und Mediaplayern über USB. MTP findet bei diesen Gerätentypen zunehmend Verbreitung. Dieser Artikel beschreibt die Möglichkeiten, um MTP-Geräte auch unter Debian verwenden zu können.
Grundlegendes: Warum MTP?
Auf den ersten Blick ist der Sinn hinter dem MTP-Protokoll nicht so klar ersichtlich. Schließlich war es ja bisher Standard, dass portable Geräte als Wechseldatenträger eingebunden wurden, der PC hatte also direkten Zugriff auf das Dateisystem des Geräts. Wieso wird dieser altbekannte Mechanismus plötzlich deaktiviert und durch MTP ersetzt?
Eine Grundvoraussetzung für dem Zugriff auf das Dateisystem des Geräts ist natürlich, dass das Betriebssystem des Computers (egal ob Linux, Windows, MacOSX o.ä.) dieses lesen können muss. Andererseits muss natürlich auch das Gerät selbst mit seinem Dateisystem umgehen können. Hier prallen also die Interessen verschiedener Hard-und Softwarehersteller aufeinander und es muss ein Kompromiss gefunden werden. Dieser Kompromiss ist bis heute die Verwendung von FAT32 als Dateisystem. Allerdings ist FAT32 schon ein etwas älterer Standard und hat einige technische Beschränkungen, deren Nachteile zunehmend hervortreten (siehe bei Wikipedia). Die Hersteller möchten verständlicherweise lieber modernere Dateisysteme nutzen. Hierbei konnte sich die Industrie aber bisher nicht auf ein neues Standard-Dateisystem einigen.
Als Lösung für dieses Problem hat sich nun MTP herauskristallisiert. Damit greift der Computer nicht mehr direkt auf das Dateisystem des Geräts zu, sondern nur mehr indirekt über die Protokollschnittstelle. Somit haben die Gerätehersteller nun die volle Freiheit bei der Wahl des Dateisystems, sie müssen nur das MTP-Protokoll implementieren.
MTP-Unterstützung in Debian
In Debian wird MTP bereits unterstützt. Unter Jessie sollte die Verwendung von MTP-Devices bei Standard-Desktopinstallationen kein Problem mehr darstellen. Unter Wheezy sind unter Umständen ein paar Anpassungen notwendig. Hier erfolgt eine kurze Übersicht, welche Pakete für die MTP-Unterstützung notwendig sind.
Die Basispakete
Die Grundlage für die MTP-Unterstützung in Linux ist die Bibliothek libmtp9. Diese Bibliothek implementiert alle nötigen Funktionen des MTP-Protokolls. Alle weiteren hier genannten Programme und Tools sind von dieser Bibliothek abhängig. Da libmtp laufend weiterentwickelt wird, insbesondere hinsichtlich der Unterstützung neuer Geräte, empfiehlt es sich, eine möglichst aktuelle Version dieser Bibliothek zu verwenden. Für Wheezy lohnt es sich also, die Version aus den Wheezy-Backports zu installieren.
Kommandozeilentools für den Dateienaustausch mit MTP-Geräten liefert mtp-tools. Diese Tools sind aber nicht so gut dokumentiert und die Verwendung ist nicht so komfortabel.
jmtpfs: Virtuelles FUSE-Dateisystem
Mit dem Paket jmtpfs lassen sich MTP-Geräte als virtuelle Dateisysteme mit Hilfe von FUSE mounten. Das Paket ist für Wheezy in den Backports verfügbar.
MTP-Geräte werden über den Befehl
user@debian:~$ jmtpfs <Pfad zum Mountpunkt>
gemountet. Der Mount kann danach, wie auch bei anderen FUSE-Dateisystemen üblich, mit dem Befehl
user@debian:~$ fusermount -u <Pfad zum Mountpunkt>
wieder getrennt werden.
Unterstützung in Gnome
Für die Gnome-Arbeitsumgebung ist MTP-Unterstützung in aktuellen Versionen von gvfs-backends implementiert. Leider ist die Unterstützung in Wheezy noch nicht vorhanden. Eine Alternative für Wheezy ist gmtp. Dieses Programm ist zwar laut Eigendefinition speziell für den Dateienaustausch mit MP3-Playern gedacht, funktioniert aber problemlos auch mit sämtlichen anderen Gerätetypen.
Unterstützung in KDE Plasma Workspaces
Für die KDE-Arbeitsumgebung gibt es MTP-Unterstützung mit dem Paket kio-mtp. Mit diesem Paket werden MTP-Geräte automatisch beim Anschließen von der Geräteüberwachung erkannt und man kann über den Adresspräfix "mtp:/" mit Dolphin darauf zuzugreifen.
Leider ist dieses Paket noch nicht in Wheezy verfügbar. Es wurde bereits vor einiger Zeit angefragt, das Paket auch in den Wheezy-Backports bereitzustellen ([1]), was bis zum gegenwärtigen Zeitpunkt (August 2014) nicht geschehen ist. Allerdings lässt sich das Quellcodepaket für Jessie ohne Probleme in Wheezy kompilieren und installieren. Dazu sind folgende Schritte notwendig:
- Man fügt folgende Zeile in /etc/apt/sources.list hinzu:
deb-src http://ftp.de.debian.org/debian/ testing main contrib non-free
- Aktualisieren der Paketlisten, Installation aller Tools und Abhängigkeiten, die zum Bau des Paketes notwendig sind (Root-Rechte notwendig):
root@debian:~# apt-get update && apt-get build-dep kio-mtp
- Nun erstellt man am Besten einen Unterordner, in dem die Quellcodepakete später heruntergeladen werden und wechselt in diesen (keine Root-Rechte erforderlich):
user@debian:~$ mkdir kio-mtp && cd kio-mtp
- Mit diesem Befehl wird das Quellcodepaket heruntergeladen und zu einem deb-Paket gebaut (keine Root-Rechte erforderlich): Das Kompilieren und Bauen des deb-Pakets dauert einige Zeit.
user@debian:~$ apt-get source -b kio-mtp
- Nun liegt das fertige deb-Paket im Ordner, es kann mit installiert werden (Root-Rechte erforderlich, siehe auch die Beschreibungen in Übersicht: Software Verwalten).
root@debian:~# dpkg -i kio-mtp_0.75+git20140304-1_amd64.deb