Ubuntu 12.10 does not support Google Nexus 4 phone in MTP mode

Bug #1092621 reported by Tony Whitmore on 2012-12-20
142
This bug affects 30 people
Affects Status Importance Assigned to Milestone
udev (Ubuntu)
Undecided
Unassigned

Bug Description

I have just bought a Google Nexus 4 phone. The device supports two transfer modes: MTP and PTP. MTP is the default for this phone.

If MTP is selected (the default), the device is not detected. If I connect the device to a PC running Windows 7, a range of directories are accessible, including Music, Downloads, Pictures etc. This was the behaviour I expected to occur on Ubuntu.
If I select PTP, the device is detected as a camera by Ubuntu. The DCIM and Pictures directories are accessible.

Ubuntu appears therefore not to support the Nexus 4 in MTP mode. I will append the output of lsusb and mtp-detect.

Tony Whitmore (tonywhitmore) wrote :
Download full text (24.2 KiB)

lsusb: Bus 001 Device 007: ID 18d1:4ee1 Google Inc.

mtp-detect:
libmtp version: 1.1.4

Listing raw device(s)
Device 0 (VID=18d1 and PID=4ee1) is UNKNOWN.
Please report this VID/PID and the device model to the libmtp development team
   Found 1 device(s):
   18d1:4ee1 @ bus 1, dev 7
Attempting to connect device(s)
PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
LIBMTP libusb: Attempt to reset device
Android device detected, assigning default bug flags
USB low-level info:
   Interface has a kernel driver attached.
   bcdUSB: 512
   bDeviceClass: 0
   bDeviceSubClass: 0
   bDeviceProtocol: 0
   idVendor: 18d1
   idProduct: 4ee1
   IN endpoint maxpacket: 512 bytes
   OUT endpoint maxpacket: 512 bytes
   Raw device info:
      Bus location: 1
      Device number: 7
      Device entry info:
         Vendor: (null)
         Vendor id: 0x18d1
         Product: (null)
         Vendor id: 0x4ee1
         Device flags: 0x08008106
Configuration 0, interface 0, altsetting 0:
   Interface description contains the string "MTP"
   Device recognized as MTP, no further probing.
Device info:
   Manufacturer: LGE
   Model: Nexus 4
   Device version: 1.0
   Serial number: 0026190392c9d63e
   Vendor extension ID: 0x00000006
   Vendor extension description: microsoft.com: 1.0; android.com: 1.0;
   Detected object size: 64 bits
   Extensions:
        microsoft.com: 1.0
        android.com: 1.0
Supported operations:
   1001: get device info
   1002: Open session
   1003: Close session
   1004: Get storage IDs
   1005: Get storage info
   1006: Get number of objects
   1007: Get object handles
   1008: Get object info
   1009: Get object
   100a: Get thumbnail
   100b: Delete object
   100c: Send object info
   100d: Send object
   1014: Get device property description
   1015: Get device property value
   1016: Set device property value
   1017: Reset device property value
   101b: Get partial object
   9801: Get object properties supported
   9802: Get object property description
   9803: Get object property value
   9804: Set object property value
   9805: Get object property list
   9810: Get object references
   9811: Set object references
   95c1: Unknown (95c1)
   95c2: Unknown (95c2)
   95c3: Unknown (95c3)
   95c4: Unknown (95c4)
   95c5: Unknown (95c5)
Events supported:
   0x4002
   0x4003
   0x4004
   0x4005
Device Properties Supported:
   0xd401: Synchronization Partner
   0xd402: Friendly Device Name
   0x5003: Image Size
Playable File (Object) Types and Object Properties Supported:
   3000: Undefined Type
      dc01: Storage ID UINT32 data type ANY 32BIT VALUE form READ ONLY
      dc02: Object Format UINT16 data type ANY 16BIT VALUE form READ ONLY
      dc03: Protection Status UINT16 data type ANY 16BIT VALUE form READ ONLY
      dc04: Object Size UINT64 data type READ ONLY
      dc07: Object File Name STRING data type GET/SET
      dc09: Date Modified STRING data type DATETIME FORM READ ONLY
      dc0b: Parent Object UINT32 data type ANY 32BIT VALUE form READ ONLY
      dc41: Persistant Unique Object Identifier UINT128 data type READ ONLY
      dc44: Name STRING data type READ ONLY
      dc4e: Date Added STRING data ty...

Tried gmtp?

Launchpad Janitor (janitor) wrote :

Status changed to 'Confirmed' because the bug affects multiple users.

Changed in udev (Ubuntu):
status: New → Confirmed
Tony Whitmore (tonywhitmore) wrote :

Thanks for the suggestion. gmtp brings up the correct folder listing, and I have successfully transferred some files to the device using it.

So whatever gmtp is doing should be incorporated into the default behaviour when the device is detected.

Tony Whitmore (tonywhitmore) wrote :

Also, gmtp hangs for ~20 seconds whilst trying to detect the device, before eventually doing so. The console output whilst running gmtp appears to be the same as the output from mtp-detect pasted above.

stu_edgar (stu-edgar) wrote :

gmtp hanging for 20 seconds also occurs on my Galaxy Nexus. Unfortunately I think this is "normal" behaviour under linux for mtp, and not a Nexus 4 specific problem, Agree with Tony's bug that this is an issue.

Dan Näsman (dan-naesman) wrote :

There are ONE POINT THREE million devices activated each day that are not "plug and play" with Ubuntu!

I have been frustrated with the lack of Android 4+ (MTP) plug and play for some time and I have tried gmtp and go-mtpfs but none have been stable. I handle my family's 7 android devices and the proposed workarounds works now and then for some of the devices. Last time that I needed to offload 9 GB of pictures from a Galaxy SII phone I had to revert to a virtual Windows 7:(

I propose to make MTP "Plug & Play" in Ubuntu, current LTS and future releases.

s3niorgato (s3niorgato) wrote :

nexus 4 no luck with ubuntu 12.10!!! in one two years the smartphones will use just mtp!
should be plug an play!

Fabio M. Panico (fbugnon) wrote :

Nexus 4 having a hard time connecting to Ubuntu 12.10

Followed this tutorial with no luck (http://forum.xda-developers.com/showthread.php?t=2004182)

Only way I could transfer files was using gMTP, but is not as easy as auto-mount...

Please give a thought to this issue!

There was recently a change to the adb tool. It now does authentication; the user is prompted to "allow" a new computer when the phone is connected to it. The old adb is not compatible.

This change is probably why it fails, even though MTP on the Samsung Galaxy Nexus previously worked.

I used the new adb (with the authentication) to manually push files. That worked fine. Trying the other forum posts (like changing the udev rules) did not work for me.

It was very aggravating to get the cool new phone (Nexus 4) and then not be able to transfer files to it.

To post a comment you must log in.
This report contains Public information  Edit
Everyone can see this information.

Other bug subscribers