Intro to MTP, PTP, and UMS

D

DevynCJohnson

Guest
Media Transfer Protocol (MTP) is a commonly used method for transferring files between computers and many portable devices. Learning the basics of MTP may help users understand MTP-devices more clearly. Also, it may help some people to know a little about a similar protocol called Picture Transfer Protocol (PTP).

MTP
MTP is an extension of Picture Transfer Protocol (PTP). PTP is used to download pictures from digital cameras. With additional features, the protocol becomes MTP which can transfer any kind of file to and from many portable devices such as iPods, Android phones, MP3 players, PDAs (Personal Digital Assistants), etc. MTP works on USB, which is a commonly used connection method between computers and Android phones.

android-mtp-notification.png


MTP is not a parallel protocol, unlike standard USB. This means only one operation/task can be performed at a time (such as read or write). This means MTP is slower than the standard file-transfer on USB.

Linux support MTP via the libmtp library (http://libmtp.sourceforge.net/). GVFS supports MTP and this allows various GNOME-based applications (like Nautilus) to access MTP volumes. The KDE environment has MTP support via "MTP KIO Slave". "gMTP" is a GUI-based application that provides MTP support (http://gmtp.sourceforge.net/). Many music libraries and players offer MTP support for transferring music to and from iPods and other media devices (usually via libmtp).

nautilus-mtp.png


If your distro lacks MTP support, then try to install the needed libraries and drivers. Remember that Root privileges are needed for installing libraries and drivers.
Debian-based (DEB) - apt-get install mtp-tools mtpfs libmtp9 libmtp-common libmtp-runtime gvfs-backends
RedHat-based (RPM) - yum install gvfs-mtp libmtp fuse-devel libmtp-devel

Alternately, open a GUI-based package manager (like Synaptic) and search for "mtp".

Synaptic-mtp.png


"jmtpfs" is an MTP FUSE filesystem that works well with Android 4.x devices and newer (http://research.jacquette.com/jmtpfs-exchanging-files-between-android-devices-and-linux/).

"mtpfs" is an alternative to jmtpfs. MTPFS is also a FUSE filesystem (http://www.adebenham.com/mtpfs/).

"Go-MTP" is yet another MTP FUSE filesystem (https://github.com/hanwen/go-mtpfs).

"simple-mtpfs" is an additional alternative MTP FUSE filesystem (https://github.com/phatina/simple-mtpfs/).

PTP
Linux still supports Picture Transfer Protocol (PTP). PTP is a very simple image transferring protocol used to download images from cameras. MTP offers many more abilities and features than PTP.

The "gvfs-gphoto2" package provides PTP support, and "kio-mtp" now includes PTP. "libptp2" is a library that provides PTP support (http://libptp.sourceforge.net/). "MMPTP" is a command-line utility for using PTP (http://michaelminn.com/linux/mmptp/).

android-connection-settings.png


USB Mass Storage (UMS)
Many people are familiar with the idea of plugging in a memory card and having direct and full access to everything. This idea is known as USB Mass Storage (UMS). The reason this is not used in many new Android devices is because UMS causes many files to become unaccessible to the Android system. The concept of MTP fixes this problem. There is also another reason. MTP is not filesystem-specific. Therefore, Android can use EXT3/4 while allowing Windows users to still access the storage on the Android device. In other words, MTP makes accessing Android storage more cross-platform.

Further Reading
http://wiki.gentoo.org/wiki/MTP
https://wiki.debian.org/mtp
https://wiki.archlinux.org/index.php/MTP
http://ptp.sourceforge.net/
 

Attachments

  • slide.jpg
    slide.jpg
    27.8 KB · Views: 182,810


Hi,
really interesting article about MTP. Can we share files between linux machines with ext3/4 file system with Windows machines using MTP ?
is there any package that can make this possible ?
 
Hi,
really interesting article about MTP. Can we share files between linux machines with ext3/4 file system with Windows machines using MTP ?
is there any package that can make this possible ?

I do not see why not. Android is a mobile Linux distro and users can transfer files between Windows and Android via MTP.

You can easily use FTP to transfer files between Linux, Windows, OS X, and other operating systems.
 

Members online


Latest posts

Top