45

I'm using the US Model 16GB version of the Samsung Galaxy S3 (I747), however, I cannot mount it to my laptop from some reason. I have tried using both FTP and MTP connections, but neither work.

What should I do?

2
  • 2
    I always had trouble with trying to transfer file using MTP in Ubuntu, AirDroid has been my savior for quite a while.
    – Dan
    Sep 17, 2012 at 17:32
  • 1
    you could just use adb(many posts about it) OR use airdroid app + usb tethering for network
    – user148266
    Apr 10, 2013 at 11:11

17 Answers 17

23

Update: The GVFS-MTP module is included in the default installation since 13.04. For troubleshooting see this anwser.


There have been several projects to bring MTP support to Linux during the recent months. Here is a quick overview:

GVFS

The best solution would be to use GVFS via the recently released GVFS-MTP-backend to mount your Android phone. There are two PPAs with a newer GVFS version.

  1. ppa:langdalepl/gvfs-mtp

        sudo add-apt-repository ppa:langdalepl/gvfs-mtp
        sudo apt-get update && sudo apt-get dist-upgrade
    
  2. ppa:webupd8team/gvfs-libmtp

        sudo add-apt-repository ppa:webupd8team/gvfs-libmtp
        sudo apt-get update && sudo apt-get dist-upgrade
    

Source:


go-mtpfs

You could use go-mtpfs to mount your Android phone.

go-mtpfs screenshot

Install needed packages and get the source:

sudo apt-get install golang-go libmtp-dev
sudo go get github.com/hanwen/go-mtpfs
sudo ln /usr/lib/go/bin/go-mtpfs /usr/local/bin/

Add yourself to the group fuse (after that log out and log in again):

sudo adduser $USER fuse

Create a folder for your Android phone and mount it with go-mtpfs into that folder:

mkdir android
go-mtpfs android

Unmout your Android phone (wait for the end of file operations):

fusermount -u android

Source: https://linuxundich.de/de/android/mit-go-mtpfs-unter-linux-auf-android-handys-via-mtp-zugreifen/


jmtpfs

You could use jmtpfs to mount your Android phone.

jmtpfs screenshot

Download jmtpfs, unpack and change into directory:

cd /tmp
wget http://research.jacquette.com/wp-content/uploads/2012/05/jmtpfs-0.4.tar.gz
tar -xzf jmtpfs-0.4.tar.gz
cd jmtpfs-0.4

Add yourself to the group fuse (after that log out and log in again):

sudo adduser $USER fuse

Install needed packages, compile and install (for checkinstall questions hit enter) jmtpfs:

sudo apt-get install libmtp-dev libfuse-dev libmagic-dev checkinstall build-essential
./configure
make
sudo checkinstall

Create a folder for your Android phone and mount it with jmtpfs into that folder:

mkdir ~/android
jmtpfs ~/android/

Unmout your Android phone (wait for the end of file operations):

fusermount -u ~/android

Source: https://linuxundich.de/de/ubuntu/mit-jmtpfs-mtp-gerate-wie-das-galaxy-nexus-oder-das-samsung-galaxy-siii-in-ubuntu-mounten/

5
  • With the GVFS method I could copy files. However I also got "internal error" messages for gvfsd-mtp.
    – jdthood
    May 2, 2013 at 9:22
  • I found that GVFS couldn't create files on my GT-I747M S3. I initially had this problem using the PPA under 12.04, and later when running the 12.10 amd64 Desktop live DVD. However, go-mtpfs can do writes properly, and speeds are well above 10MB/s for both reads and writes.
    – intuited
    Nov 30, 2013 at 20:32
  • This is almost completely outdated. See scottl's answer below for the easiest approach.
    – wakeup
    Jul 24, 2014 at 0:20
  • using GFVS worked for me, though. running elementaryOS Loki (Ubuntu 16.04) with a Galaxy S5. installed gmtp as suggested by scottl, nonetheless
    – user641246
    Feb 25, 2017 at 2:26
  • On Kubuntu 20.04, installing android-file-transfer with apt and rebooting seems to have solved MTP problem for me. I can now access files via mtp in dolphin.
    – geekley
    Mar 2, 2021 at 22:10
14
+50

It's not worth it. Use something like SSHDroid and then connect over ssh. There are also FTP servers and even Droid NAS that gives CIFS access. MTP does not work well, and likely will continue to not work well for the near future.

If you really want to get MTP working then make sure you set your Nexus to NEVER lock the screen or power off the screen. Locking the screen with "lock" the MTP protocol as well, causing all manor of data loss and connection issues. Powering off the screen in the stock kernel (might even be hardware) will turn the CPU down as much as it can and enable tons of other strong power saving features, that will result in horrid (but still working) transfers.

4
  • Spot on! I don't like the adds that come with SSHDroid, but there are alternatives. Sep 27, 2013 at 12:51
  • Something like SSHDroid... ConnectBot is great, especially with the Hackers Keyboard.
    – Wilf
    Feb 19, 2014 at 13:23
  • 1
    @Wilf. SSHDroid lets you config your phone as an SSH server. ConnectBot lets you use your device as an SSH client. Not the same thing.
    – Octopus
    Jan 14, 2015 at 3:40
  • @Octupus , I realise my comment is not clearly worded :), but what i do is use connectbot to control a Linux machine without a monitor/cloud print so i can transfer the files on to it using sftp or Dropbox/Drive links, and then print using lpr etc. I know they aint the same thing, but can be used in addition to thus quite easily.
    – Wilf
    Jan 14, 2015 at 23:41
8

MTP is a Microsoft technology and is not officially supported on Linux. I've tried Mtp-Tools many times too, without success. If you consider an alternate method though, I've two recommendations:

1
  • I was able to connect it to my work computer mtpfs, but not at home. Could you help me troubleshoot it?
    – Pomario
    Nov 22, 2012 at 20:26
6

This indicates that for Ice Cream Sandwich, Ubuntu file transfer is as simple as ticking the PTP checkbox. In a few seconds you are browsing the filesystem in Nautilus.

Select connection type

Enable PTP connection

Open phone in Nautilus

Pictures taken directly from: Source

5
  • 1
    Works fine for me with the Galaxy S3 and Ubuntu 12.04.
    – El Yobo
    Jan 5, 2013 at 7:13
  • Didn't worked for me. I could copy files to the phone but the copied files didn't show up in Nautilus.
    – jdthood
    May 2, 2013 at 9:20
  • 1
    I am able to see the folders Pictures media and Video but none of the files are visible on the computer.
    – arun
    Jun 22, 2013 at 19:11
  • Ah, got it. The pictures are in DCIM/Camera and not under Pictures
    – arun
    Jun 22, 2013 at 19:12
  • Tried this with ubuntu 12.04.3 + SGH-I747M. Couldn't see files that were not picture-type files (.jpg, .png, etc.). The root of each card (internal & external SD card) contained a bazillion folders, I think a copy of every subfolder in the heirarchy, plus extra ones with weird hexadecimal extensions. Picture files from subdirectories were also displayed at the root, but couldn't be viewed. They could be viewed at their actual location. File transfers to the phone seemed okay, though overwriting a file would a) make its directory look blank and b) create two copies, $FILENAME.dup[01].
    – intuited
    Dec 1, 2013 at 3:45
5

As Dan mentioned, a wireless file transfer app like AirDroid is a good solution.

These apps fall into two subcategories:

  1. ones where you access your files through the browser (AirDroid), and
  2. ones where you FTP into your phone using a FTP client like FileZilla (and FTP Server).

Such an app is fine for small files but for transferring HD movies, you would need hours or days. Max transfer speed on Ubuntu is about up to 260KB/s (for some reason) while on Windows 7 it's about up to 1MB/s.

There's gMTP which is available in the app store, but chances are it won't work for your Galaxy S3 - it doesn't work on mine, most of the time. (You have to wait out the app hanging; it looks like it crashes whenever you interact with the app but if it recovers, then you know it works.)

If you need speed, the best solution is the one posted by BuZZ-dEE, although the original source is English:

http://research.jacquette.com/jmtpfs-exchanging-files-between-android-devices-and-linux/

You'll need to be comfortable with the terminal, compiling programs from source code and editing source code, though. If anyone needs a walkthrough, let me know.

3
  • Just commenting, the speed is not that bad, and it's not because of limitation on the OSs. It obviously depends on how fast your Connection is, the faster the better, the shorter the time will be. Nov 27, 2012 at 5:17
  • The SSHDroid app works remarkably well, when I tested with Galaxy Tab 2 7.0. I haven't yet tried to find best solution for USB connectivity.
    – david6
    Dec 15, 2012 at 10:06
  • +1 for AirDroid. Hands-down the easiest to install.
    – E.P.
    Jun 4, 2014 at 12:12
5

gmtp provides a friendly UI to access new mobile devices and I've used it reliably for years.

http://gmtp.sourceforge.net/

GMTP mobile device navigation & synchronization

1
  • Does not work for Ubuntu 14.04 and a Nexus 4. Jul 1, 2015 at 23:34
4

I would recommend 'Go-mtpfs'. There are two ways to use this program that I should explain.

  1. First, install the program using the following commands:

    sudo add-apt-repository ppa:webupd8team/unstable
    sudo apt-get update
    sudo apt-get install go-mtpfs
    

Using the terminal

If you want to use the program via the terminal or if you simply hate unity.

  1. Mount your MTP device

    For mounting your device probably do the following command.

    go-mtpfs /media/MyAndroid`
    

    Leave your terminal open so long you use your device.

  2. For unmounting your MTP device

    Close the terminal or do Ctrl+C for terminate the program.

     fusermount -u /media/MyAndroid
    

Using the custom Unity Launcher

  1. First install the launcher:

    sudo apt-get install go-mtpfs-unity
    
  2. Press the Ubuntu button on the unity launcher. Search for "Mount Android Device". And drag the icon to the unity bar.

  3. Then simply right-click the icon and you should get this:

    enter image description here

Enjoy your android device that now works perfectly on Ubuntu :D.

source

4
  • Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference.
    – RolandiXor
    Apr 10, 2013 at 16:15
  • Oke i will try to make my answer better.
    – Thomas15v
    Apr 10, 2013 at 16:28
  • Niec solution, very helpful for those looking for a round-a-bout mounter for the android fs
    – ehime
    Jun 19, 2013 at 19:37
  • Thanks :p, Note: ubuntu 13:04 do not need this anymore :D. It works more out of the box than windows ;).
    – Thomas15v
    Jun 22, 2013 at 7:31
3

This post is similar to the first one you linked, but the steps are a bit different. It might help to give it a try.

The steps are summarized below for convenience.

Disclaimer

I have not personally tried the following steps. I cannot guarantee their safety or usefulness. Use at your own risk.

Mounting

  1. Install the relevant packages:

    sudo apt-get install mtp-tools mtpfs
    
  2. Create a new udev rule using the following command (requires password):

    gksu gedit /etc/udev/rules.d/51-android.rules
    
  3. Here we will deviate from the posted steps a little based on a comment from the linked post. In a terminal, run lsusb with your Nexus 7 connected via USB. You should see output like the following:

    Bus 001 Device 010: ID 18d1:4e41 Google Inc.
    

    Keep the two colon-separated values after the ID part in mind for the next step. They are what you should set ATTR{idVendor} and ATTR{idProduct} to, respectively.

  4. Type the following text into the file, all in a single line (numerical values used are those from the original posted steps):

    SUBSYSTEM=="usb", ATTR{idVendor}=="04e8", ATTR{idProduct}=="6860", MODE="0666", OWNER="your-username-in-ubuntu"
    

    As an example, using my username and the values from the comment, the line I would enter would be:

    SUBSYSTEM=="usb", ATTR{idVendor}=="18d1", ATTR{idProduct}=="4e41", MODE="0666", OWNER="christopher"
    
  5. Create a mount point for your Nexus 7:

    sudo service udev restart
    sudo mkdir /media/Nexus7
    sudo chmod a+rwx /media/Nexus7
    
  6. If your Nexus 7 is not already plugged in, do so now. Then run the following command on Ubuntu in order to access it:

    sudo mtpfs -o allow_other /media/Nexus7
    

    This should allow you to use Nautilus in order to browse your Nexus 7 and transfer files.

Unmounting

When you are finished with whatever you are transferring, run the following command to unmount your Nexus 7 before unplugging it:

sudo umount mtpfs

And in case that didn't work...

...you can take a look at a supposedly more reliable way to connect here.

2

If your computer and Nexus are on the same wifi network, you can use an app called AirDroid. It's free

https://play.google.com/store/apps/details?id=com.sand.airdroid&feature=nav_result#?t=W251bGwsMSwxLDMsImNvbS5zYW5kLmFpcmRyb2lkIl0.

  1. Open app on device.

  2. Go to web.airdroid.com on computer web browser.

  3. Enter passcode generated on device into the web app.

  4. Automatically connects. You can transfer files, view contacts and many other things. It's great. I use it all the time.

I hope this helps.

1
  • Does this work if the wifi network is a hotspot created by the phone? What about if it's a hotspot created by the PC?
    – intuited
    Dec 1, 2013 at 3:47
1

Add the raring repositories to sources.list and

sudo apt-get -t raring install gvfs

After this I can browse the filesystem on a Samsung Galaxy S3 with Android 4.1.2, using Nautilus.

Note that the apt-get pulls in quite a few packages from Raring including a new libc6.

1

this works great for getting the android 4.2.2 phones to show up in 12.04 Ubuntu.

Edit the /etc/apt/sources.list to add raring then install gvfs. It took a few attempts to get apt to install everything (apt-get -f install). I may have borked something else, but for now this particular problem is resolved.

Keith

0

I followed the steps mentioned on the post u link, and worked fine for me, but i mounted using sudo command before the mount.. another thing i pluged the device before doing all the steps. and now is working fine.. Also check that ur device have enable the option USB computer connection, there i selected Media device (MTP). That's all i have done.. hope u can make it work soon. Regards

1
  • 1
    thank you for your comment, but it did not provide any help in troubleshooting the issue
    – Pomario
    Nov 20, 2012 at 19:51
0

I have an LG P880 and I have created a directory inside "Pictures" and named it "ptp" then I connect my device as PTP, and copy files to pictures/ptp

There's one little problem though, I couldn't see a transfer dialog while copying files, so, I think you need to estimate time.. for me, I compress big files into little piece and wait for them to appear on the other side, then remove device after a while.

Then, of course, open any file manager and move/extract files to desired location. I use this method all the time..

0

Got it working with my Nexus 4 by installing the newest version of libmtp from launchpad. The version for Raring Ringtail works fine on my 12.04 system. The instructions stay the same as in your tutorial.

Edit: Although it works, it's painfully slow... I'm right now copying with 7 kb/s

Edit2: Nvm, it got up to 350 kb/s, which is acceptable I presume.

0

Is your Android device password protected and locked? I found I was getting the error:

Transport endpoint is not connected

because I hadn't entered the password. Once I authenticated on the device, I could connect.

Makes complete sense when you think about it. You shouldn't be able to just grab a device you don't have a password for and connect to it via computer.

0

SSHDroid step-by-step

This was mentioned by https://askubuntu.com/a/222851/52975 but newbs like me need more details:

  1. Connect the phone and PC on a single LAN.

On Android:

  1. Install https://play.google.com/store/apps/details?id=berserker.android.apps.sshdroid on the phone. Other SSH servers should also work.
  2. Start SSHDroid on the phone. If you close the window, and it will keep running on the background.
  3. Inside the app, note the Address: field. E.g.: [email protected]:2222.

In Ubuntu:

  1. sudo apt-get install openssh-client
  2. Open nautilus > File > Connect to server as mentioned at: nautilus connect to server via ssh no longer present in ubuntu 14.04
  3. Use Server address: sftp://[email protected]:2222 and password admin. sftp is a type of FTP over SSH that already comes installed with SSH servers.
  4. When Nautilus connects, you are left in a folder that contains just .bin and .ssh. The address bar is empty because we are actually in a folder called home, and Nautilus hides what comes before as that works well for regular Linux installs. Do Alt + up to go to the parent folder, and we see that we were actually inside: /data/data/berserker.android.apps.sshdroid.

Advantage of this method: you likely already need SSH to log into a shell in the android phone.

Downside: it is less powerful than mounting a network folder. E.g., if you browse to an audio file, and click it, the music player will see the sftp address, and might ask for the password again to open it (if it can handle sftp).

Tested on Ubuntu 15.10, Android 5.1.1.

0

I usually use file transfer app such as Xender 's browser app. It is easy to setup and even easier to use. Plus comes in handy when you do not have a USB cable lying around. You can get it on your phone from here.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .