aboutsummaryrefslogtreecommitdiff
path: root/blog/2022-10-04-mtp-linux.org
blob: d2c0543f7effaa5665e9ed391226be61328989f4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
+++
date = 2022-10-04
title = "How to Mount an MTP Mobile Device on Linux"
description = "Learn how to easily mount Android MTP smartphones on Linux using the command line."
+++

I recently ran into trouble attempting to mount my GrapheneOS phone to my laptop 
running Fedora Linux via the [Media Transfer 
Protocol](https://en.wikipedia.org/wiki/Media_transfer_protocol) (MTP) and 
discovered a simple and effective solution.

## Use a USB 3.0 Port

First, ensure that the device was plugged in to the laptop through a 
USB 3.0 port, if possible. From a brief glance online, it seems that USB 2.0 
ports may cause issues with dropped connections over MTP. This is purely 
anecdotal since I don't have any evidence to link showing that USB 2.0 causes 
issues, but I can confirm that switching to a USB 3.0 port seemed to cut out 
most 
of my issues.

## Switch USB Preferences to MTP

Secondly, you need to ensure that the phone's USB preferences/mode is 
changed to MTP or File Transfer once the phone is plugged in. Other modes will 
not allow you to access the phone's file system.

## Install `jmtpfs`

Next, I used the `jmtpfs` package to mount my phone to my laptop. There are 
other packages that exist, but this one worked perfectly for me. On Fedora 
Linux, you can install it like this:

```sh
sudo dnf install jmtpfs -y
```

## Create a Mount Point

Once you have the package installed, you just need to create a folder for the 
device to use as a mount point. In my case, I used `/mnt/pixel`:

```sh
sudo mkdir /mnt/pixel
sudo chown -R $USER:$USER /mnt/pixel
```

## Mount & Access the Phone's File System

Finally, plug-in and mount the device, and you should be able to see all 
storage (internal and external) inside your new folder!

```sh
jmtpfs /mnt/pixel
```

The output should look something like this:

```sh
Device 0 (VID=18d1 and PID=4ee1) is a Google Inc Nexus/Pixel (MTP).
Android device detected, assigning default bug flags
```

Now you are mounted and can do anything you'd like with the device's files:

```sh
cd /mnt/pixel
ls -lha
```

From here, you will be able to see any internal or external storage available on 
the device:

```sh
total 0
drwxr-xr-x.  3 user user  0 Jan  1  1970  .
drwxr-xr-x.  1 root root 10 Oct  4 13:29  ..
drwxr-xr-x. 16 user user  0 Apr 21  4426383 'Internal shared storage'
```