Unable to use MTP using USB cable

BUILD ID = OS VERSION: (Pallas-Yllastunturi)
HARDWARE: Xperia 10 plus - Dual SIM


When I plug in a USB cable connected to a PC (Debian Linux or Windows), my phone will only charge, regardless of the chosen USB settings (Always ask | Media transfer (MTP) | Only charge)


No preconditions that I’m aware of.


  1. Connect cable to USB port on phone and PC
  2. Wait


Depends a lot on the USB setting and also on the OS and settings of the connected PC, but I would expect a popup dialogue on the phone to ask me the type of connection required or (if the phone setting is already set to MTP), followed by a dialogue on the PC (or the phone appearing in the file manager) if I choose MTP.


Message on top of screen that says “Charging” (in Dutch) and nothing else.


I’d love to provide a log of some sort, but the reason I need the USB connection is that I don’t have any other connection set up yet. I also don’t know how to get to the relevant logs. What would be the best way to get the log of the phone if needed?

If you have selected “Always ask” and connect usb cable to pc, you should see the mode selection dialog (or, if device is locked, “please unlock…” banner).

What you describe sounds like what might happen if phone detects a charger at the other end instead of a pc.

Has the usb cable you used been working with other devices? Have you tried other cables?

You could first check what kernel thinks there is connected. IIRC in Xperia 10 it would be something like:

grep TYPE= /sys/class/power_supply/usb/uevent

Where that real type = USB -> pc. Whereas charger would show up as USB_DCP, USB_HVDCP, …

I’ve tried the “Always ask” option and also the “MTP” option. The result seems to be identical.

I’ve tried 3 cables yesterday. The cable I’m using right now (one of those three) works fine with another phone.

I get the following output:

grep TYPE= /sys/class/power_supply/usb/uevent

I also noticed a message on Windows along the following lines:
“The USB device that was last connected malfunctioned.”

Reconnecting didn’t result in the same message, so I don’t know the exact wording. I can try again later if it’s necessary to have the exact wording. I think I would have to reboot the PC to get the message again and right now is not a good time to do that.

Does fastbooting work (just to rule out broken data connectors on the phones end of USB)?

Sounds like a good idea to rule that out. I’m not really a developer, so how would I do that exactly?

I have a pc that runs Linux. I also have one that runs Windows, but I don’t have admin privileges on that Windows machine, so if I need to install specific software, I may not be able to use that machine.

Turn off your phone, press and hold the Volume Up -button and insert the USB-cable to the phone. The indicator led should turn blue if succesful.

If you haven’t installed fastboot -tool yet, you should be able to follow or improvise based on this article: https://jolla.com/sailfishx-linux-instructions/

While in fastboot-mode, you can check if the connection between the computer and phone works (for example sudo fastboot getvar all).

1 Like

The difference is of diagnostic nature: “always ask” shows prompt if pc connection is detected vs “mtp” that is handled automatically in background without user intervention -> using “always ask” and not getting a dialog is clearer indication about connection type detection issues than what one gets with “mtp” setting.

Ok. That deals with major portion of possible hw issues…

As MTP is a bit special case among usb modes: have you used developer mode / usb nw tethering? If either one of those works, then it would rule out e.g. phone side usb connector too -> more likely to be some mtp related sw issue.

Kind of confirms suspicions about not detecting pc connection.

There is internal bug about such behavior (xperia 10 + windows + mtp). Except that MTP did work, eventually, possibly after reconnecting cable. But it could still be the same / related thing.

I’ve tried many times, but the LED will first light up red and subsequently white. The phone will then boot SFOS, so I never ended up in fastboot mode.

I don’t know if the timing (of Vol up > insert cable) is extremely critical, but if not, then I guess this is bad news.

I can try, but am not familiar with using those modes. Should I follow this resource https://jolla.zendesk.com/hc/en-us/articles/202011863 and continue with [2] at the bottom of that page?

That should do it. Basically anything that transfers data over usb should mean hw bits are fine. So any of

(That fastboot way has the added benefit that it should not be affected if the problem is somewhere in sailfishos specific parts of usb sw stack.)

Possibly getting pc side info while at it. Like in linux pcs with systemd (e.g. Ubuntu) just run:

journalctl -f

and watch for usb related logging.

You can force the power off by pressing the Power button until the phone vibrates three times and then try holding the Volume Up and insert USB-cable.

If you use Debian KDE, first you must install kio-mtp to access your phone.

1 Like