Menu

MTP Daemon

Philipp Schmidt

MTP Daemon

There are efforts to create a system-wide Daemon that will allow access to MTP devices by offering the LIBMTP-API over DBus. This project is lead by Philipp Schmidt with the help of downstream developers from music players to programs offering filesystem-like access.

Intention

The idea behind the daemon is to solve the problem that MTP does not allow for multiple concurrent protocol sessions towards a device. Therefore if a program opens a connection while another program already has an open connection with the device, the first connection will be lost. This can result in file transfers not being completed or music playback stopping. As users have no knowledge of how the protocol works this is seen as a bug.

Another thing is the incorrect implementation of some MTP devices, where the actions stated above will lead to a frozen MTP stack on the device. This can only be fixed by unplugging the device and plugging it back in. Some devices also expect to be connected to shortly after they have been plugged into the computer. An always running daemon can take care of this.

As many devices are only tested against Windows which offers such a daemon functionality, such an approach will most likely lead to less problems with many devices and solve the concurrent access problem as long as all involved programs use it.

Developoment

The project is currently putting the requirements together as well as preparing for the development. Therefore some of the items below are not yet linked, but will be in time.

The requirements are split into two to cover the actual API exposed via DBus and the resulting interface as well as everything that is required for the actual implementation of the daemon in LIBMTP.


Related

Wiki: MTP Daemon - DBus Interface Requirements
Wiki: MTP Daemon - Requirements

Want the latest updates on software, tech news, and AI?
Get latest updates about software, tech news, and AI from SourceForge directly in your inbox once a month.