USB file transfer to Motorola Xoom

Hi there,

I recently got a Xoom and have been loving it. However, I can’t get USB file transfer to work. Apparently the devices is connected by mtp and I’ve got mtp-tools to use from the command line, but they’re not able to mount the device or connect to it in any other way, although they recognize it. I’ve even fiddled around a bit in /etc/udev/rules.d according to the instructions in this thread:
https://supportforums.motorola.com/thread/45977?tstart=0

Didn’t do a thing, sadly, although I wasn’t able to get gnomad to work - it kept on claiming it was missing dependencies, which it wasn’t, as far as I could tell. I’ve got Ubuntu running on another computer, though, and installed gnomad on that. Also no dice, although I hadn’t changed /etc/udev/rules.d on that computer.

Anybody have any tips how I could get USB file transfer running? I’d be really happy if I could stop using FTP to transfer everything :slight_smile:

hi erget

I wonder have you fixed that issue with xoom as I am expecting my one to be delivered :slight_smile:

What operating system is recognized when you connect xoom to opensuse?
Have you tried cat /etc/filesystems and add new filesystem? Editing these file by adding new filesystems helped me when opensuse could see my pendrive but couldnt open it.

Take a try and let me know how you fixed that?

Good Luck

Hi loand,

No, sadly I haven’t gotten it working yet. No answers on any forums either except for yours, I think I might be forum cursed :frowning:

How could I tell what operating system is being recognized when I connect by USB? As far as the file system is concerned, I believe it’s FAT32 or something conventional, although I haven’t been able to verify that… A lot of people have asked why Google chose MTP rather than normal USB storage and it apparently does have some advantages, but I haven’t been able to get it to work so I’m still using my work’s file server to transfer data :wink:

To make a long story short, when I connect the USB cable from the Xoom to the PC, nothing is recognized. The Xoom doesn’t do anything and SUSE doesn’t pop up any kind of message saying that I’ve connected an external device like I’m used to.
If I try to connect using mtp-tools, I can see that the Xoom is recognized, but it doesn’t tell me much more. Here’s the output of mtp-detect:

lee@linux-hr34:~> mtp-detect

libmtp version: 1.0.6

 

Listing raw device(s)

libusb couldn't open USB device /dev/bus/usb/002/005: Permission denied.

libusb requires write access to USB device nodes.

libusb couldn't open USB device /dev/bus/usb/002/006: Permission denied.

libusb requires write access to USB device nodes.

Device 0 (VID=22b8 and PID=70a8) is UNKNOWN.

Please report this VID/PID and the device model to the libmtp development team

   Found 1 device(s):

   22b8:70a8 @ bus 2, dev 9

Attempting to connect device(s)

ignoring usb_claim_interface = -16ignoring usb_claim_interface = -22PTP_ERROR_IO: failed to open session, trying again after resetting USB interface

inep: usb_get_endpoint_status(): Input/output error

outep: usb_get_endpoint_status(): Input/output error

usb_clear_halt() on IN endpoint: Numerical result out of range

usb_clear_halt() on OUT endpoint: Numerical result out of range

usb_clear_halt() on INTERRUPT endpoint: Numerical result out of range

LIBMTP libusb: Attempt to reset device

Segmentation fault

 

And with another tool the same thing:

lee@linux-hr34:~> mtp-connect

libmtp version: 1.0.6

 

libusb couldn't open USB device /dev/bus/usb/002/005: Permission denied.

libusb requires write access to USB device nodes.

libusb couldn't open USB device /dev/bus/usb/002/006: Permission denied.

libusb requires write access to USB device nodes.

Device 0 (VID=22b8 and PID=70a8) is UNKNOWN.

Please report this VID/PID and the device model to the libmtp development team

ignoring usb_claim_interface = -16ignoring usb_claim_interface = -22PTP_ERROR_IO: failed to open session, trying again after resetting USB interface

inep: usb_get_endpoint_status(): Input/output error

outep: usb_get_endpoint_status(): Input/output error

usb_clear_halt() on IN endpoint: Numerical result out of range

usb_clear_halt() on OUT endpoint: Numerical result out of range

usb_clear_halt() on INTERRUPT endpoint: Numerical result out of range

LIBMTP libusb: Attempt to reset device

Segmentation fault

Don’t know if that provides any additional information, but maybe it helps :wink: The device is great, if you manage to get USB transfer working for you I’d love to hear how :stuck_out_tongue:

hi erget, to bad to hear you didn’t do it yet, but you will get it working all right!

Linux is not like windows so we have to forget about windows popping out that new hardware is found :slight_smile:
I am beginner in linux and not a pro yet but I think if the device is not mounted or recognized by system you will not be able to transfer data with mtp, maybe you should try mounting that xoom

I found something, check it and let me know if that works, I hope it will help

[Guide] Mount Internal Storage in Ubuntu - xda-developers](http://forum.xda-developers.com/showthread.php?t=981774)

Good Luck

Hi loand,

Yeah, I’ve been using Linux for a while now and I love it, when I have to take care of somebody else’s Windows computer it always seems a bit quirky to me by now, since we use SUSE only at work and I do at home too. Nonetheless, I had hoped that the system would recognize the Xoom like an external HD. Of course, due to the mtp thing that didn’t happen, but it would be nice if I could mount it like in that guide.

I tried out the link - thanks a bunch, by the way, I had stumbled over that one but was nervous to try it because they tell you right at the beginning to install mtpfs, which I couldn’t find for openSUSE - and unfortunately still wasn’t able to get everything running. Added the rules to /etc/udev/rules.d, made the directory /media/xoom, and changed fstab. The only things I wasn’t able to do were:

  1. install mtpfs, see above
  2. edit /etc/fuse.conf, since it wasn’t in /etc
  3. add my username after “fuse” in /etc/group, because /etc/group didn’t have “fuse” in it

Perhaps that’s the problem? I think it’s a little difficult with my limited knowledge of the differences between the SUSE and Ubuntu architectures to duplicate the process, but it was worth a try :stuck_out_tongue:

Hi,

Is the xoom coming with android OS ? I have an android device, but I don’t recall using mtp protocol to connect to it (I have an Archos Internet tablet)… hummmmm. Not sure though. Well, I don’t have any problem to make it work with linux.

I’ll have to check that and tell you later.

EDIT : ok, I recall. it uses something called the “msc” mode. I have to find what it is. I don,t know if you have this mode on the xoom. Fisrt thing to know if it is an android device. :wink:

The xoom uses mtp which needs the mtpfs -o allow_other /{mount_point}.
In tumbleweed command is included. I haven’t tried yet with my xoom.
I have used dropbox and bluetooth but need to try the mtpfs command it
would be a lot faster.
BTW, I’ve had the xoom since launch it almost replaces my laptop. Great device.

Just tried it and it worked, as root run the mtpfs command and the xoom mounted. Now just need to
figure out how to convert my linux journal pdf’s to epub that work.

hi DaaX, yest xoom is on Android Honeycomb OS

hi dwellen, great to hear your xoom connects just fine with opensuse! I am waiting for my one to be delivered and cant wait :slight_smile:
by the chance can you exactly tell how you connect it and make it work with opensuse, please.

Thanks

There are two different methods to transferring data to the xoom via usb, one is with
a program such as Amork but first the device rules need to have a entry for the
xoom. This is done simply by creating a file inside the /etc/udevrule.d/70-motorola-xoom.rules
Shown below. I got this from the Motorola site which handles two different models.
The other method requires the mtpfs command which as far as I know exists in tumbleweed
but not in OpenSuse 11.4. Perhaps the rpm can be dowloaded and installed in 11.4. I don’t
know if the rules file is needed with the mtpfs because I had done this with 11.4 before switching
to tumbleweed.


    # 70-motorola-xoom.rules
    # Put in this file in /etc/udev/rule.d/
    #ATTRS{idVendor}=="22b8" , ATTRS{idProduct}=="70a8" , ENV{ID_MEDIA_PLAYER}="motorola_xoom" , ENV{UDISKS_PRESENTATION_ICON_NAME}="tablet-motorola-xoom"
    #ATTRS{idVendor}=="22b8" , ATTRS{idProduct}=="70a9" , ENV{ID_MEDIA_PLAYER}="motorola_xoom" , ENV{UDISKS_PRESENTATION_ICON_NAME}="tablet-motorola-xoom"

    ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="70a8", ENV{ID_GPHOTO2}="1", ENV{GPHOTO2_DRIVER}="proprietary", ENV{ID_MEDIA_PLAYER}="1", ENV{ID_MTP_DEVICE}="1", MODE="0664", GROUP="audio"

    ATTRS{idVendor}=="22b8", ATTRS{idProduct}=="70a9", ENV{ID_GPHOTO2}="1", ENV{GPHOTO2_DRIVER}="proprietary", ENV{ID_MEDIA_PLAYER}="1", ENV{ID_MTP_DEVICE}="1", MODE="0664", GROUP="audio"

     

    # Motorola Xoom (ID 1)

    #ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a8", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_GPHOTO2}="1", ENV{GPHOTO2_DRIVER}="proprietary", ENV{ID_MEDIA_PLAYER}="1", MODE="664", GROUP="audio"

    # Motorola Xoom (ID 2)

    #ATTR{idVendor}=="22b8", ATTR{idProduct}=="70a9", SYMLINK+="libmtp-%k", ENV{ID_MTP_DEVICE}="1", ENV{ID_GPHOTO2}="1", ENV{GPHOTO2_DRIVER}="proprietary", ENV{ID_MEDIA_PLAYER}="1", MODE="664", GROUP="audio"

I’ve already tried both of those methods with my xoom, both times without success. The rules file from the Motorola page didn’t seem to have any effect, although they were copied into the correct directory, etc.

I don’t have the mtpfs command, though. I’ve looked for any packages with that name on software.opensuse.org and couldn’t find anything for any distribution. Google only gave me a bunch of forum entries and a link to Packman, but the package is as yet unpublished and you can only download a tarball. Am I doing something wrong? As soon as I’m back home I’ll try cnf mtpfs, but I think I’ve done that before.

I do have mtp-tools installed, and they are able to see that the tablet’s connected to the PC, but they can’t mount it or otherwise connect to it, as far as I can tell.

I definitely have to agree with you about the quality of the Xoom, I hardly have a need for my laptop now and with TeamViewer I can even set up harder tasks on the other computer from out and about. I’m using it to write this entry right now :wink:

Alright, back at my normal computer… The rules are saved at /etc/udevrule.d/70-motorola-xoom.rules, I checked them with dwellen’s post. Still nothing.

cnf mtpfs shows “command not found”, I’m using 11.4 but on my work computer I’ve got Tumbleweed and it also can’t find it.

dwellen, how exactly do you connect your Xoom to your PC? Do you use mtpfs or Amarok? Could you describe it exactly, then I’d try to do it exactly that way.

Great news!

This tablet could be reasonably popular and it would be great if one of our users could write a How-To or a Wiki on interfacing one’s Xoom to openSUSE.

I’ll have to check later on my home system. The mtpfs command may be part of another package.
rpm -qf /path/to/mtpfs would show the package the command is from. I don’t think I compiled it from
source.

What does the log files show when the xoom is connected? And also does it show up in the
/dev directory after.

Another part is I tried this after 3.1 was updated on the Xoom and my device is not rooted. Also
the usb have the development mode turned on so that the devel environment can interact with the
xoom.

Okay, another report: I copied over the rules that you posted just to make sure that there weren’t any differences between those and the ones I’d found on the Motorola site and after a restart SUSE recognized the Xoom as soon as I plugged it in - it popped up in the USB devices list labeled as a portable media player.

Now I’ve got the problem that I can’t browse the files though. I can see the folders on the Xoom, but although I can navigate into them with Dolphin they’re shown as being empty. If I try to copy anything over to it using Dolphin it says that “Writing to camera is not supported.”

Amarok’s able to see it and I can even play music from its library, but since Amarok can’t see any videos I’m unable to use it to copy videos onto the Xoom, which would be a great advantage. Is there some other program I could use / something I might still be doing wrong?

I have the feeling to be really close to finding the answer… Thanks so much for the help so far! :slight_smile:

Additional info: Amarok can see songs on the Xoom and play them, but I tried to copy one album onto the Xoom and it got stuck at 47%. It’s been taking more than an hour. Other albums are the same story. The Xoom shows one song that I’ve tried to copy to it, the rest aren’t on there. So I guess Amarok’s not the best bet here, at least not yet.
Restarting Amarok at least killed the process, but now Amarok doesn’t recognize the Xoom at all. Dolphin’s also now no longer able to load any of the folders on the Xoom, and as in the beginning it’s also unable to load any of the content of the folders.

Looks like I got the mtpfs from google at Source Checkout - mtpfs - FUSE Filesystem providing access to MTP devices - Google Project Hosting and compiled it myself. Not all that hard, just the usual configure,
make and make install.

Hi there,

Sorry, I’m really a noob at compiling stuff. It hasn’t worked for me.

I checked out the source with svn, then went into the folder. Instead of a configure file I found a script, autogen.sh. It needed a few dependencies to run, solved them, ran it, solved some more, ran it again, solved some more. Things seemed to be going fine until the package requirements didn’t work out. It wanted fuse and libmtp, both of which are installed with YaST, neither of which I could find with cnf. That really confuses me, I can see them in YaST so I know they’re there.

autogen.sh also wants mad and id3tag, but I’ve installed them as well. I am really, really confused… :frowning:

Do I need to somehow point the script in the right direction, or is it another problem perhaps?

Note if the script is compiling, it may need the development versions of those packages. Ergo, did you install ‘fuse-devel’ and ‘libmtp-devel’ ? If not, do so and try again.