Sansa Fuze and E200 v2 on Linux with libMTP

Just a quick heads up for people.

There is a known bug with the last released version of libmtp (0.2.6.1) and the E200v2 and Fuze players.  With any luck, the next version released should be a lot more useful.

In the meantime there *is* a work-around, but it’s fairly technical.  If you’re not happy building programs, then leave this.

This may break other players using mtp.

  1. Get libmtp 0.2.6.1 source from  http://libmtp.sourceforge.net/index.php?page=download

  2. Get the stuff you need to build it (sudo apt-get build-dep libmtp )

  3. Edit the source files as follows:

In the file /src/usbglue.c Add #if(0) before the line that contains // First check if we know about the device already.

In the file /src/usbglue.c Add #endif before the line that contains // If we didn’t know it, try probing the “OS Descriptor”.

In the file /src/music-players.h, change the lines in the file relate to your player so that they read like the ones below.

{ “SanDisk”, 0x0781, “Sansa Fuze”, 0x74c0, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },

{ “SanDisk”, 0x0781, “Sansa e280 v2”, 0x7422, DEVICE_FLAG_BROKEN_MTPGETOBJPROPLIST },

If your player is a v2 player and it’s not included above, it may still work provided you edit the line relevant to your player.

  1. Run ./configure then make and make install (as usual)

  2. run ./hotplug.sh and choose “no” to the HAL rules

  3. Create a link: 

cd /usr/lib

ln -s libmtp.so /usr/local/lib/libmtp.so.6

ln -s libmtp.so.6 /usr/local/lib/libmtp.so.6

  1. Your fuze or e200v2 player should work with Rhythmbox, Amarok or whatever else that uses libmtp.

libmtp 3.4 supports sansa fuze “out of the box”. So just install as usual or wait your distribution to release the appropiate packages :slight_smile: