Unix & Linux Stack Exchange is a question and answer site for users of Linux, FreeBSD and other Un*x-like operating systems. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to copy some movie files from my Linux PC to my Android phone, however, it is much more easy to copy from Windows to my Android phone.

In Windows, my phone would mount its internal memory card and SD card automatically, allowing me to transfer files between them.

With my Linux distro, it always shows an error whenever I plug my phone in to the PC with a USB cable, then it may take some minutes to mount the internal memory card and SD card. Sometimes it fails to mount them too.

I am wondering is this really a pain to do files transfer in all Linux distros, or if some other distro would perform better. I am using Linux Mint 13 Mate. If a newer distro could make my day easier I might switch over to it. My phone is an HTC One SV without rooting.

P.S. As I remember, the first error message is "Error initializing camera: -60: Could not lock the device". Really it said camera even I am connecting a phone to it. Then I need to wait for some minutes and hope the SD card would mount successfully.

share|improve this question
Which error message do you get? What means “it fails to mount”? Any related messages in the syslog? If mount takes several minutes somthing is definitely wrong. – Marco Aug 22 '13 at 9:38
I think the error message is meaningless. Maybe the problem will solve itself when I switch to a newer linux distro. Anyway I will update the question later when I get home. Thanks. – lamwaiman1988 Aug 22 '13 at 9:47
I'd say that problem lies with hardware, not with software, especially not Linux or your distribution. – Bananguin Aug 22 '13 at 10:47
My ancient Android 2.3-based phone is seen as an USB storage device. What version of Android you're using? – Renan Aug 22 '13 at 13:29
I am using android 4.1 – lamwaiman1988 Aug 22 '13 at 16:41

11 Answers 11

up vote 8 down vote accepted

UPDATE: There are several, better alternatives to Airdroid now. However, it seems most linux distros are now working with MTP fairly well. I know in my experience, Mint (Ubuntu based) works out of the box, as does Manjaro (Arch based). If it doesn't work out of the box or natively, then be sure to search your package manager for an MTP solution.

Newer versions of Android mount storage as an MTP device instead of mass storage. The benefit to this is simultaneous access on the Android device and the PC. Unfortunately, while Windows supports it natively just fine, linux solutions are fairly buggy as of right now. Currently, the most reliable (and it still is a little flaky to get going, but once connected is fine) that I have found is go-mtpfs. Here is a link to help you get it set up. You have to mount/dismount from command line. There is also a unity launcher in that thread if you're on Ubuntu unity, however.

The best option, though, unless you are transferring a lot of data, is to use something like AirDroid. It is a free app in the play store for local network transfers, and provides a web interface to use with your computer's browser. It even provides a drag and drop file interface, as well as even allowing access for sms messaging, call logs, app installs, and many other things.

share|improve this answer
I installed the latest version Linux Mint 15 Olivia as the team stated they made effort into android connection. I tried the usb connection it is working just fine. Much better than Linux Mint 13. So I think it is just problem of linux with MTP transfer and the performance varies between distros. – lamwaiman1988 Sep 6 '13 at 6:30
For increased speed, you can also use adb pull as outlined in this post: vxlabs.com/2014/11/06/… – Stefan van der Walt Nov 6 '14 at 9:54
@lamwaiman1988 I WOULDN'T TRUST AIRDROID. Airdroid app permissions: 1. Device & App History 2. Identity 3. Contacts / Calendar 4. Location 5. SMS 6. Phone 7. Photos/Media/Files 8. Camera/Microphone 9. Wifi Connection Information 10. Device ID & Call Information .... On seeing this huge list, I wanted to find out more about the company. "Sand Studio" is part of "Tongbu Networks" which operates in China. Xiamen Tongbu Networks - Details: "Xiamen Tongbu Networks Ltd; C, Room 3, No.2, Wanghai Road, Software Park II, xia men shi, fu jian, 361000, China, +86.05922179187". – a20 Nov 21 '14 at 9:02
Regarding the above, this PcWorld review was ironic: "This app allows you to take complete control of your Android device via your computer’s Web browser." – a20 Nov 21 '14 at 9:14
AirDroid is now charging now for the local file transfer "feature". – sybind May 1 '15 at 10:09

You could try using the free (gratis) ES File Explorer file manager on your Android phone:


Among a lot of functionality, it has an FTP server. So, if you can network your phone and your computer, you can easily transfer files both ways from your computer. I do it all the time from Ubuntu and Fedora machines (via Thunar).

The FTP server mode in this app is called "Remote Manager", it's under the Tools section.

Most modern file managers will accept the following syntax (remove the spaces because this site wouldn't allow me to post the link without them).

ftp : // phone_ip_address : port

share|improve this answer

Basically this should be as easy as using a memory stick. Unfortunately this is not the case. But like other integrations Linux will catch up.

In the meantime you could use WiFi and sshd on Linux and an sftp-client on the smartphone side.

Or use the Linux adb CLI to use usb-transfers.

share|improve this answer

I agree it's not as easy as it should be. For example, KDE has an implementation of MTP, but it can only read images, not write them (at least in my version).

I found it was far easier to do it over the network. There are multiple ways to do this. Usuario mentioned ES File Explorer.

I used this free and open source Android FTP server and found it straightforward. You specify a username and password, then run the FTP server (it's very clear whether the server is running, and easy to enable/disable).

Then, you simply use any FTP client (there are many graphical clients, e.g. I used Konqueror). I was able to write the files back to the phone easily.

The only downsides are that it's probably a little slower than it would be with an efficient USB protocol, and that FTP is not secure (everything is in cleartext). It should be possible to do the same thing, but with an Android SFTP server; I just haven't personally found one yet.

share|improve this answer

I do this via ftp network created by ES File Explorer:

First of all, make your device as a portable hotspot in settings>>Tethering & portable hotspot>>check "Portable wifi hotspot". And connect your pc to the device with wifi. It makes your connection too faster than connection via central WLAN network. Then, do the following steps:

  1. Open ES File Explorer
  2. Go to Network>>Remote Manager
  3. Press "Turn on" button
  4. In Linix(I use Ubuntu), open its file manager
  5. Click "Connect to Server" in the file manager left side
  6. Enter the address of your device has appeared in ES File Explorer


Now, you can treat with your device like a drive in your PC.

share|improve this answer

Assuming you're using a USB connection, I found it works, but you need to do things in a specific order:

  • Don't plug in the phone to start with.
  • On the phone, go into Settings -> Wireless and Network -> USB Utilities, and click the "Connect store to PC". The phone will say "Connect USB cable to use mass storage".
  • Now plug in the USB cable to the phone. It should show the "green android" icon and USB connected message.

(I think my phone has an older version of Android, hopefully this works in the general case).

share|improve this answer
Unfortunately, newer versions of Android don't support mass storage mode. Only mtp (or ptp in some cases). Linux doesn't support mtp very well. – Edward Falk Jul 2 '15 at 0:20
@Edward: yes, you're right. After I "upgraded" from Galaxy S2 to S3, mass storage mode was no longer available. As Drake says in the accepted answer, I've found MTP to be flakier than mass storage so it's a bit unfortunate, but once you get it to work it's okay I guess. I'm using gMTP as a GUI client which works okay but it's fairly slow. – Ash Jul 2 '15 at 9:45

mtpfs - FUSE filesystem for Media Transfer Protocol devices

apt-get install mtpfs

Done. Works as with Windows in Linux Mint/Ubuntu/etc.

share|improve this answer
sudo apt-get install jmtpfs on jessie – Erik255 Dec 27 '14 at 23:21
it's jmptpfs also on wheezy. – sjas Feb 11 '15 at 20:31

Ash is right, thanks for the tip!, it works fine.

To transfer mp3 files, you have to press (on the mobile) where it says connect to usb; when you do that, rythym box or other program will open. Then you just drag your files from rhythm box to where it says DEVICE in rhythm box. The files will be in your mobile in a folder called Music. You can see the all your folder files on your desktop pressing the icon of your device.

share|improve this answer

Try this command, and restart, it worked for me.

sudo apt-get install libmtp-common mtp-tools libmtp-dev libmtp-runtime libmtp9
share|improve this answer
Is that the extent of the solution? – Jeff Schaller Jul 6 at 12:18
It is what worked for me, literally ran the command, was prompted to restart and once I logged in again I could read/write files on my android device using dolphin file manager. I didn't have to do anything else or change edit files. – Robby Lebotha Jul 6 at 12:51
Im running Xubuntu with KDE Plasma 5 on my Asus ux303 – Robby Lebotha Jul 6 at 12:53

After looking for a bunch of solutions to this problem, I've found Android File Transfer for Linux. This is the best MTP implementation for Linux, it just works.

You can see that this problem has been stated in The List of Major Linux Problems on the Desktop.

Linux doesn't have a reliably working hassle free fast native (directly mountable via the kernel; FUSE doesn't cut it) MTP implementation. In order to work with your MTP devices, like ... Linux based Android phones you'd better use ... Windows or MacOS X. Update: a Russian programmer was so irked by libMTP he wrote his own complete Qt based application which talks to the Linux kernel directly using libusb. Meet Android-File-Transfer-Linux.

share|improve this answer

To see what happen in your phone you can try to use ADB. ADB is a tool with SDK from Android. You can see everything in your phone. And look LogError.

share|improve this answer

Your Answer


By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.