[HOWTO] Mount Nexus 4 in Linux - Nexus 4 Android Development

You are unable to just plug in your Nexus 4 in Linux but it is very easy to mount and unmount to move data to/from your sdcard. This is one option that will allow you to utilize Nautilis (or any other file browser) to copy files to/from your Nexus 4. This is written for Ubuntu, but should work the same for other Linux systems. Also, this should work for Nexus 7 and 10.
1. Enable Developer options and enable USB debugging.
2. Install necessary modules to your computer:
sudo apt-get install mtp-tools mtpfs
3. Configure 51-android.rules:
sudo gedit /etc/udev/rules.d/51-android.rules
paste the following at the end of the file (if the file does not exist then just paste):
#LG - Nexus 4
SUBSYSTEM=="usb", ATTR{idVendor}=="1004", MODE="0666"
#Samsung - Nexus 7 & 10
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
Save and exit.
4. Make the file executable:
sudo chmod +x /etc/udev/rules.d/51-android.rules
5. Restart udev
sudo service udev restart
6. Create mount point and permissions (will need to do this for other Nexus' if using for the 7 or 10)
sudo mkdir /media/nexus4
chmod 755 /media/nexus4
7. Plug in the Nexus 4 and make sure MTP is enabled.
8. Mount with the following command:
sudo mtpfs -o allow_other /media/nexus4
9. When you have completed your work you must unmount:
sudo umount /media/nexus4
Now each time you need to copy from/to your Nexus 4 to your Linux computer you only need to plug in and run 8, then 9 when you have completed your work.

Good info! I'll try it out on my Ubuntu laptop later.
Thanks!

Awesome. Thanks
sent from my straight out of limbo 2 Nexus 4 using XDA-premium

This isn't so much a Nexus 4 guide as a general Linux mounting guide, but still cool. Thanks!

First, thanks to the OP! Just wanted to add another way for linux.
Just install and run gMTP plug your phone in and click connect. It is in the Ubuntu software center or for other versions of linux at http://gmtp.sourceforge.net/

I prefer adb+qtadb. Better speed and stability compared to mtp i think.
Sent from my Blade using xda app-developers app

Thanks for that write up. On my gentoo box my galaxy nexus worked flawlessly but the nexus 4 did not. Hopefully this will do it!
Sent from my Nexus 4 using Tapatalk 2

Kaar3l said:
I prefer adb+qtadb. Better speed and stability compared to mtp i think.
Sent from my Blade using xda app-developers app
Click to expand...
Click to collapse
Yes QtADB works very nicely also. It requires a little more setup than gMTP, but you are correct that it is a little faster and stable.

Kaar3l said:
I prefer adb+qtadb. Better speed and stability compared to mtp i think.
Sent from my Blade using xda app-developers app
Click to expand...
Click to collapse
the3dman said:
Yes QtADB works very nicely also. It requires a little more setup than gMTP, but you are correct that it is a little faster and stable.
Click to expand...
Click to collapse
Never heard of that. What is it?
Generating random authentication keys
---------- Post added at 07:48 AM ---------- Previous post was at 07:47 AM ----------
Konsyst said:
This isn't so much a Nexus 4 guide as a general Linux mounting guide, but still cool. Thanks!
Click to expand...
Click to collapse
Haven't gotten my N4 yet but I'm gonna try this on my sIII.
Generating random authentication keys

Thanks for your work! very useful..!

Konsyst said:
This isn't so much a Nexus 4 guide as a general Linux mounting guide, but still cool. Thanks!
Click to expand...
Click to collapse
Not such a general Linux guide as a Debian-derivative guide.
Helpful nonetheless marty331 for the correct udev strings, thanks!

I personally think using sshfs and sshdroid is a much more stable solution. MTP support on Linux is... shoddy to say the least.
Thanks given anyway though.

It seems that mtpfs 1.1 is broken. I downgraded to 1.0 and it worked. However, there is usually lag for some reason whenever the screen is off.

I had MTP/PTP crash several sdcards of mine which required me to format them (no write permissions had no way to get that back.)
Ever since that I just use ADB (Android Debugging Bridge) there are several GUI front-ends available in the default deb/rpm repositories, or if you are comfortable with the terminal (and with ADB it's really really simple to master) you can just get the binary and put it in your bin folder and transfer it via that. Highly reliable, speed is about 2-3mb/s -- but it works.

I gave up on this on Debian Testing. My Galaxy Nexus would not mount no matter what udev rules I used and mtpfs is not a solution. Instead, I just use a ftp server on the phone and ftp things to it or push things using adb. I've also tried airdroid a few times. I would not mind trying the sshfs alternative either. Gonna check that one out.

jamcar said:
Never heard of that. What is it?
Click to expand...
Click to collapse
QtADB is just a GUI for ADB and it works very well. Search QtADB on Google and you will find the download page with instructions.
Sent from my Nexus 4 using xda app-developers app

OP's use of udev inspired me to come up with this solution using ADB.
I'll assume you have ADB installed. There's plenty of indepth guides for that elsewhere.
This tutorial will have you playing around in system directories on your Linux install. I tried to make this guide user friendly but you should have at least SOME knowledge of Unix like OSes before you even try this.
Not for the faint of heart.
Get http://https://play.google.com/store/apps/details?id=berserker.android.apps.sshdroid&hl=en from the play store. Enable USB debugging in the developer options on your phone.
Open SSHDroid on your phone and set your port to something other than 22. I use 2222.
Open a terminal window on your computer and elevate yourself to root (Preferably using su -. Otherwise use sudo su -.).
Now that we got that done, try logging into your phone to make sure everything works. It'll be something like
Code:
ssh -p2222 [email protected][yourPhone'sIP]
. If you get asked a password it probably works. Just hit ^C (Ctrl+C) to exit that password prompt since we don't need to go further yet.
Next you'll need to create a passwordless SSH login. Run
Code:
ssh-keygen -t rsa
. Just hit enter to use the defaults on all the questions, we don't need anything more.
Now run
Code:
scp -P2222 ~/.ssh/id_rsa.pub [email protected][yourPhone'sIP]:/emulated/storage/legacy/
. When it asks for the password just type "admin", though it should tell you that anyway.
If the file copied over successfully you should no be able to type
Code:
ssh -p2222 [email protected][yourPhone'sIP]
again and not be prompted with a password at all. Cool!
At this point it's recommended you go into the SSHDroid settings on your phone and untick the "Enable Password" box, though it's not required, especially if you want to ssh to your phone from other devices/computers.
Run lsusb and look for the line that says Google in it. You want to look out for something like
Code:
Bus 001 Device 070: ID 18d1:4ee2 Google Inc.
Copy the two alphanumeric codes before "Google Inc.". The first is your vendor ID and the second is your device ID. You might want to label them so you remember which is which.
Here's the scary part of the tutorial. Use your favorite text editor (preferably command line based) and create a new file at "/etc/udev/rules.d/85-android_mount.rules". Copy and paste this and edit to fit the IDs you got in the previous command.
Code:
SUBSYSTEMS=="usb", ACTION=="add", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee2", RUN+="/usr/local/sbin/phone-mount -m" SYMLINK+="Nexus_4"
SUBSYSTEMS=="usb", ACTION=="remove", ATTRS{idVendor}=="18d1", ATTRS{idProduct}=="4ee2", RUN+="/usr/local/sbin/phone-mount -u" SYMLINK+="Nexus_4"
It should be obvious where you need to put your Vendor and Device IDs now.
Save it and run these commands.
Code:
chmod +x /etc/udev/rules.d/85-android_mount.rules
chmod 775 /etc/udev/rules.d/85-android_mount.rules
chown root:root /etc/udev/rules.d/85-android_mount.rules
Now we need to create another file at "/usr/local/sbin/phone-mount" and paste this inside.
Code:
#!/bin/bash
export PATH=/opt/android-sdk-update-manager/platform-tools/:$PATH
case "$1" in
-m )
adb wait-for-device
adb forward tcp:2222 tcp:2222
# If you have SSHDroid Pro you just need to add "pro" to the "sshdroid".
adb shell am broadcast -a berserker.android.apps.sshdroid.command.START
sshfs -p2222 -o allow_other,idmap=user [email protected]:/storage/emulated/legacy/ /media/nexus4
exit 0
;;
-u )
umount /media/nexus4
exit 0
;;
esac
We need to modify the permissions for this file too.
Code:
chmod +x /usr/local/sbin/phone-mount
chmod 775 /usr/local/sbin/phone-mount
chown root:root /usr/local/sbin/phone-mount
Almost done. If you don't already have sshfs installed on your Linux install then do so now. You'll also need to enable the "allow_other" option. For my distro it's as simple as editing "/etc/fuse.conf" and uncommenting the "user_allow_other" line. Your results may vary.
Now finally we need to create the actual folder you'll be mounting your Nexus 4 at. If you blindly followed my guide that'll be /media/nexus4.
Code:
mkdir /media/nexus4
chown root:users /media/nexus4
chmod 775 /media/nexus4
Now all we need to do is restart udev. Right now you'll want to make sure the phone is unplugged, then restart your udev daemon. For Debian based distros like Mint, Ubuntu, Debian, Crunchbang, etc. you'd run.
Code:
service udev restart
After it's done restarting you can plug your phone in, wait a few seconds, and hopefully have your phone automount to /media/nexus4 .
You may have to improvise in a few spots because all distros are not the same, especially when you compare something like Gentoo to Debian. If you're having problems with sshfs chances are your answer is on Google. You'll honestly get better help there than having me trying to guess your system.
Also note this is a pretty hacky and dirty way to do things. Don't go yanking your phone's USB cord out without unmounting "/media/nexus4" first. You shouldn't have any problems if you're not reading or writing anything, but there is the potential for data loss and crashing udev.

i got this error at the last step
Code:
Attempting to connect device
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
Listing File Information on Device with name: (NULL)
fuse: bad mount point `/media/nexus4': Transport endpoint is not connected

i dont have a nexus 4 and im not on linux. but dermann made a script for this i think.
http://forum.xda-developers.com/showthread.php?p=33499930#post33499930

I've been using AirDroid. Works great for transferring files.

Related

[GUIDE] ADB/FASTBOOT Ubuntu Maverick 10.10 (N1 only!)

After searching and having a headache for 5+ hours I wanted to make an easy how to for noobs running ubuntu 10.10.
I found a ton of information on a ton of sites, and after a lot of cross post referencing I finally figured it all out, so I will lay this out in as simple a way possible so nobody has to have the same issues I had.
Pre-requisites: latest android sdk, ubuntu 10.10, general knowlege of linux
Step 1. Obtaining and making fastboot/adb executable
Download THIS package containing the fastboot binary and the 70-android.rules file
extract files anywhere (remember for later use)
copy fastboot binary to your /android-sdk-linux_86/tools/ folder
open terminal and execute
Code:
chmod +x <path to>/android-sdk-linux_86/tools/fastboot
chmod +x <path to>/android-sdk-linux_86/platform-tools/adb
Step 2. Adding your tools and platform tools directories to the path
in teminal execute
Code:
gedit .bashrc
at the end of the file insert
Code:
# enable android tools directories in path
export PATH=${PATH}:~<path to>/android-sdk-linux_86/tools
export PATH=${PATH}:~<path to>/android-sdk-linux_86/platform-tools
Step 3. Getting ubuntu to recognize your phone in adb and fastboot
in terminal execute
Code:
sudo cp <path to>/70-android.rules /etc/udev/rules.d/70-android.rules
sudo chmod a+rx /etc/udev/rules.d/70-android.rules
sudo reboot
Step 4. Make sure it works
after reboot open terminal and execute
Code:
adb devices
as long as it returns a device with HTXXXXXXXXXX you should be golden
There's a typo in the Android SDK paths in your message. You're missing the x in _x86. Was wondering why adb wasn't in my path after I copy pasted that into my .bashrc.
Here's the correct forms.
Code:
chmod +x <path to>/android-sdk-linux_x86/tools/fastboot
chmod +x <path to>/android-sdk-linux_x86/platform-tools/adb
Code:
# enable android tools directories in path
export PATH=${PATH}:~<path to>/android-sdk-linux_x86/tools
export PATH=${PATH}:~<path to>/android-sdk-linux_x86/platform-tools
Another thing that puzzled me was that there appears to be a hard coded username in the udev rules file. Should that be edited too?
Yes, you need to update your udev rules:
http://forum.xda-developers.com/showthread.php?t=640158
I cant seem to find the path to /70-android.rules /etc/udev/rules.d/70-android.rules.
Not sure what you mean?
Try this method
Rogoshin said:
I cant seem to find the path to /70-android.rules /etc/udev/rules.d/70-android.rules.
Click to expand...
Click to collapse
Dude, I put these instructions together sometime in 2010, and should be easy enough to follow. Following all those other instructions used to have me trying for hours to set up adb & fastboot, so when I got a little more familiar with Linux I made my own, with root permissions, so you don't have to sudo anything. You can have adb & fastboot up and running in 5 minutes, if you follow the instructions step by step. http://forum.xda-developers.com/showthread.php?t=820122
blas4me said:
Dude, I put these instructions together sometime in 2010, and should be easy enough to follow. Following all those other instructions used to have me trying for hours to set up adb & fastboot, so when I got a little more familiar with Linux I made my own, with root permissions, so you don't have to sudo anything. You can have adb & fastboot up and running in 5 minutes, if you follow the instructions step by step. http://forum.xda-developers.com/showthread.php?t=820122
Click to expand...
Click to collapse
Well it did not work for me. In step 2 when you have to add auto prompt I get this error "Can't create user application configuration folder /home/rogoshin/.local/share/applications: Not a directory".
What i was looking for is the 70 android rules file.
You create the 70 Android rules file yourself...
danger-rat said:
You create the 70 Android rules file yourself...
Click to expand...
Click to collapse
I thought it was in the link, but the link does not work for me.
If I create the file myself, where do I get the content?
Sendt fra min Galaxy Nexus med Tapatalk
Talderon said:
As stated by DEEsx1 the following is correct:
Code:
SUBSYSTEM=="usb", ATTRS{idVendor}=="18d1", MODE="0666"
However, it has been a mystery as to why the following location/file does not work for everyone:
Code:
/etc/udev/rules.d/51-android.rules
I am running Ubuntu 9.10 on my laptop with nothing special, just a straight load. the 51-android.rules code did not work for me.
I searched around on a few linux/android forums and found that some people had luck with creating the following file:
Code:
/etc/udev/rules.d/90-android.rules
However, that did not work for me. I had to create the following file:
Code:
/etc/udev/rules.d/99-android.rules
Now, if you are still getting the error, you don't need to reboot, you just need to restart udev:
Code:
sudo /etc/init.d/udev restart
You may also need to restart the adb daemon:
Code:
adb kill-server
adb start-server
adb devices
Now, worse case that I have seen, make sure the phone is not plugged into the computer, reboot the system AND the phone then try again (I have only seen this once).
Hope these tips help!
Click to expand...
Click to collapse
rotohammer said:
Welcome to Linux!
Actually, the more you use it, you'll find that you'll pickup these bits along the way, just like this.
The files are processed in order of their name so 51-xxx is mid-way through, 99-xx is at the tail end of the processing order. Sometimes, the order is important.
Also, after posting the wrong info to you earlier, I deleted the entry I posted. But, it turns out, the Nexus one poses as both id numbers. While in Android its VendorId=18d1, but in the bootloader (waiting in fastboot usb), the VendorId=0bb4.
So, I put both lines in one file today and all is well again.
I.e:
SUBSYSTEM=="usb", SYSFS{idVendor}=="0bb4", MODE="0666"
SUBSYSTEM=="usb", SYSFS{idVendor}=="18d1", MODE="0666"
and I changed my filename to 99-android.rules
then ran:
sudo restart udev
and now I can access the phone as a non root user again, either from adb or fastboot-linux.
Click to expand...
Click to collapse
This should be sufficient...
The auto script creates it for you, but up must have your phone connected for it to add your device id
Sent from my Nexus One using xda premium
blas4me said:
The auto script creates it for you, but up must have your phone connected for it to add your device id
Sent from my Nexus One using xda premium
Click to expand...
Click to collapse
auto script i am not sure i follow
It's a script that automates the process...
danger-rat said:
It's a script that automates the process...[/QUO
Where is this script?
Sendt fra min Galaxy Nexus med Tapatalk
Click to expand...
Click to collapse
The link is in my first post, pay attention!!!!!!!!!!
Sent from my Nexus One using xda premium
blas4me said:
The link is in my first post, pay attention!!!!!!!!!!
Sent from my Nexus One using xda premium
Click to expand...
Click to collapse
After i have completed all the steps, i tried the last command and got "no such command". I tried android rules 99, but maybe with Ubuntu 11.10 i should try a different number.
Sendt fra min Galaxy Nexus med Tapatalk
Try restarting udev, or enter root session on your fs, and make adb and fastboot executables, then restart udev.
Sent from my Nexus One using xda premium
blas4me said:
Try restarting udev, or enter root session on your fs, and make adb and fastboot executables, then restart udev.
Sent from my Nexus One using xda premium
Click to expand...
Click to collapse
This might be the root of the problem, because in usr/local i cant find adb or fastboot.

[GUIDE] How to transfer files in Linux

Now works on 32bit and 64bit Linux
Just a quick guide on how to configure Linux for file transfers using MTP. I wrote the instructions and config for Ubuntu Natty 32bit and 64bit, though the same process will work on other platforms - the only real difference being the package manager commands and possibly the config file locations.
The attached files are for the Galaxy Tab 10.1v but should work for the 10.1g / 10.1 as well. See the end of the post to learn how to modify this config to work for other devices.
How to configure for gMTP and other Media Sync tools
1) Install aptitude
Code:
sudo apt-get install aptitude
2) Install mtp-tools and mtpfs
Code:
sudo aptitude install mtpfs mtp-tools
3) Download the attached file ( View attachment 98-gtab.zip for 32bit Linux or View attachment 98-gtab.rules-AMD64.zip for 64bit Linux ) to your desktop.
4) Extract the 98-gtab.rules file to your desktop
5) Copy the rules file to /etc/udev/rules.d/
Code:
sudo cp ~/Desktop/98-gtab.rules /etc/udev/rules.d
6) Reboot
7) Connect your Tab
8) Run the following command to confirm it is working:
Code:
ls /dev | grep gtab
...which should return "gtab" if successful. If not, follow the "Modifying" guide below.
9) Download / install gMTP
Code:
sudo apt-get install gmtp
10) Open gMTP and select "connect" from the menu
11) Hit the thanks button
12) Go nuts!
Setting up for Automount (Optional, but recommended)
***You must have completed Steps 1-8 above before proceeding***
1) Edit your fstab file to add your gtab:
Code:
sudo gedit /etc/fstab
2) Add this to the end of the file:
Code:
#gtab
mtpfs /media/gtab fuse user,noauto,allow_other 0 0
3) Save and exit
4) Open fuse.conf for editing:
Code:
sudo gedit /etc/fuse.conf
5) Find the following line and remove the #
Code:
#user_allow_other
6) Save and exit
7) Open and edit the groups file:
Code:
sudo gedit /etc/group
8) Find the details for the group 'fuse' and append your username to the end of the line eg.
Code:
fuse:x:104:<YOUR USER NAME>
9) Save and exit
10) Create the folder to mount your Tab:
Code:
sudo mkdir /media/gtab
11) Take ownership of the folder:
Code:
sudo chown <YOUR USER NAME>:users /media/gtab
12) Reboot
13) Plug in your Tab.
14) Click on the Places menu and click gtab.
15) You're in business!
Modifying for other devices
If the above doesn't work immediately on the 10.1g / 10.1 (I have only tested on the 10.1v), you can easily edit the rules file to support your device.
1) Install lsusb
Code:
sudo apt-get install lsusb
2) Run lsusb
Code:
lsusb
3) Check the output of this command to find your device. The 10.1v is shown like this:
Code:
Bus 001 Device 010: ID 04e8:6860 Samsung Electronics Co., Ltd
4) Make a note of the Vendor and Product IDs. In the example above, the vendor ID is 04e8 and device ID is 6860 (note 04e8:6860 in the output).
5) Open the rules file for editing (if it's not already in /etc/udev/rules.d, copy it there now)
Code:
sudo gedit /etc/udev/rules.d/98-gtab.rules
6) Find this line:
Code:
ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666" SYMLINK+="gtab"
7) Replace the Vendor ID (04e8) and Product ID (6860) with the ones that you got from step 3 above.
8) Save and exit
9) Reboot
10) Follow step 7 onward in the first guide above
11) Hit the thanks button
If you modify it for a particular device, please post the contents of your new 'rules' file here.
32bit RULES FILE:
Code:
ACTION!="add", GOTO="gtab_rules_end"
SUBSYSTEM!="usb|usb_device", GOTO="gtab_usb_end"
ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666" SYMLINK+="gtab"
LABEL="gtab_usb_end"
LABEL="gtab_rules_end"
64bit RULES FILE:
Code:
ACTION!="add", GOTO="gtab_rules_end"
SUBSYSTEM!="usb|usb_device", GOTO="gtab_usb_end"
ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0777" SYMLINK+="gtab"
LABEL="gtab_usb_end"
LABEL="gtab_rules_end"
Tested, walked through the steps to my friend (Skype ). Works 100% on Linux Mint too
Everything worked for me up to the GMTP part - I can grep through /dev and I can see the "gtab" device there. But GMTP insists "Detect: No raw devices found."
I'm still running Maverick, but I added the maverick-backports repo, which has gmtp, so I would think it would work.
This is a Samsung Galaxy Tab 10.1v (from Google I/O). Any ideas?
EDIT: I also tried the automounting option with FUSE. Attempts to cd into it with bash or open it from the Places menu in GNOME both give the message "Transport endpoint is not connected".
EDIT again:
OK, I disabled USB Debugging and now have a different set of problems. mtp-detect sees the device now, but the message upon running it is:
Code:
libmtp version: 1.0.3
Listing raw device(s)
Device 0 (VID=04e8 and PID=6860) is UNKNOWN.
Please report this VID/PID and the device model to the libmtp development team
Found 1 device(s):
04e8:6860 @ bus 2, dev 26
Attempting to connect device(s)
ignoring usb_claim_interface = -16ignoring usb_claim_interface = -22PTP_ERROR_IO: Trying again after re-initializing USB interface
inep: usb_get_endpoint_status(): Device or resource busy
outep: usb_get_endpoint_status(): Device or resource busy
usb_clear_halt() on IN endpoint: Device or resource busy
usb_clear_halt() on OUT endpoint: Device or resource busy
usb_clear_halt() on INTERRUPT endpoint: Device or resource busy
LIBMTP PANIC: Could not open session! (Return code 767)
Try to reset the device.
Unable to open raw device 0
OK.
Konklone said:
Everything worked for me up to the GMTP part - I can grep through /dev and I can see the "gtab" device there. But GMTP insists "Detect: No raw devices found."
I'm still running Maverick, but I added the maverick-backports repo, which has gmtp, so I would think it would work.
This is a Samsung Galaxy Tab 10.1v (from Google I/O). Any ideas?
EDIT: I also tried the automounting option with FUSE. Attempts to cd into it with bash or open it from the Places menu in GNOME both give the message "Transport endpoint is not connected".
Click to expand...
Click to collapse
Can you post the output from 'lsusb' ?
re the "Transport endpoint is not connected" - I just got this same error on 64bit Natty. Will try and see if I can find out why..
Ah, just saw your reply. I edited my post up above, but the gist is - you can't do this while USB Debugging is enabled. The Tab has to be running its "MTP Application".
Now I'm getting the stranger errors above. I'm going to try mounting it with FUSE now to see if that helps for some reason.
EDIT: For the record, I'm using the correct vendor and product IDs in my rules file:
Code:
ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0666" SYMLINK+="gtab"
Konklone said:
I edited my post up above, but the gist is - you can't do this while USB Debugging is enabled.
Click to expand...
Click to collapse
You may be right. When I wrote this guide, I was using a VM. It is possible that the fact that I was using both MTP and ADB at the same time has something to do with how VMWare presents the devices to the guest OS.
Now I am using 'bare metal' Natty 64 bit and have the same problem as you.
I have to go out for a while but will look at it again when I get back.
EDIT: Just tried mtp-detect and it is finding the device. I suspect USB Debug is not the issue, but I'll leave it in your capable hands - really got to go now
EDIT2: See here http://www.usb.org/developers/devclass_docs/MTP_1.0.zip OK - Im really REALLY going now. Back online in a few hours
I couldn't get anywhere until I turned off USB debugging. When USB debugging is enabled, I *can* use adb to get into the shell, see files, install apps, etc. I can even transfer files over adb, through the command line! Can you get MTP to detect it with USB debugging enabled?
With USB debugging off, I have once in a great while (only twice in all my attempts) while gotten mtp-detect to connect to the device and print sane output describing the device. Even when those happened, running the command immediately again didn't connect correctly, and gave me the same error messages I was getting before. Both times I got it to connect, it was soon after plugging in the cable, but it doesn't happen every time.
Intermittent heisenbugs are the worst, yet I don't think I have a busted cable, given that adb works perfectly consistently.
Maybe I should try this again after updating to Natty...I'd been meaning to do it anyhow...
EDIT: One thing I notice is that on the Tab, when the "MTP Application" is running after plugging in, the 5-dot "in progress" animation is extremely choppy, as if the device were very very busy. If the device were very very busy for some reason, this could explain why a successful connection can happen only once in a great while. I'll try rebooting the device, I guess.
EDIT2: I rebooted the device, and I removed the USB extension cord I was using, but neither helped, still getting the same intermittent success. (I got mtp-detect to connect to it a few more times - all soon after plugging in the cable, and none were repeatable without unplugging and replugging it in.) The animation actually wasn't choppy before, that's just how it looks - 5 discrete animation frames, one for each dot.
Something interesting though: this time I had the Tab resting on my knee, and I felt a haptic buzz after running mtp-detect on one occasion. I looked down and saw the MTP Application restart itself. Then I ran mtp-detect again and I felt 3 haptic buzzes in quick succession, followed by a successful detection and output. But when running mtp-detect *again*, no dice.
This is messed up.
Messed up indeed.
Konklone said:
Can you get MTP to detect it with USB debugging enabled?
Click to expand...
Click to collapse
Yes, both work simultaneously on 32bit Natty
Note that you have to unmount the gtab for mtp-detect to work. I compared the output from mtp-detect on the 32bit working VM and the 64bit non-working 'bare metal' machine and the output was identical. I suspect this means that mtpfs is not where the problem is
Re the strange problem with haptic feedback - I have had mine power off all by itself when testing some different parameters in the rules file.
[64bit working]
OK. Problem solved... kind of. There seems to be some kind of bug in fuse which requires the filesystem to mount with higher permissions to run properly (at least on Natty AMD64)
If you use the new 64bit rules file I have attached, it should work. Basically it uses 777 permissions instead of 666. Not great, but working nonetheless.
New rules file for 64bit:
Code:
ACTION!="add", GOTO="gtab_rules_end"
SUBSYSTEM!="usb|usb_device", GOTO="gtab_usb_end"
ATTRS{idVendor}=="04e8", ATTRS{idProduct}=="6860", MODE="0777" SYMLINK+="gtab"
LABEL="gtab_usb_end"
LABEL="gtab_rules_end"
EDIT: If someone wants to experiment with lesser permissions and see what the minimum is and post back, that would be helpful for all.
Sigh, thank you for taking so much time to help me so far, but I wonder if I'm a lost cause.
I spent a bunch of today finishing my upgrade to Natty, including a full wipe and reinstall. (I have a 32-bit machine, btw.) Now I can't even get it to detect my MTP device at all (mtp-detect says "No raw devices found."), with or without debugging enabled.
One possibly important topic - it's really surprising to me that yours works either way, because lsusb shows that a different product ID is exposed to the host, depending on whether debugging is on or not. With debugging disabled, it's 6860, like your example. With debugging enabled, it's 685e. When I run lsusb, only one of those will show up, never both. So if yours is the same device, I have no idea how your rules file could be agnostic to debugging being enabled. If yours is not, then that might explain our different experiences.
Anyway, I've Thanks'd all your posts in this thread, solved or not. I appreciate your help.
Konklone said:
With debugging enabled, it's 685e. When I run lsusb, only one of those will show up, never both
Click to expand...
Click to collapse
You're more than welcome.
I noticed that in Windows, both devices appear in device manager. That is a very strange problem you have discovered.
I just posted instructions and files to give you root access! Might take your mind off the MTP issues for a while
Who knows... the problem might just go away
Konklone said:
One possibly important topic - it's really surprising to me that yours works either way, because lsusb shows that a different product ID is exposed to the host, depending on whether debugging is on or not. With debugging disabled, it's 6860, like your example. With debugging enabled, it's 685e. help.
Click to expand...
Click to collapse
Are you sure? On my device its the other way around. Without debugging its 685e and with debugging its 6860?
ajvogel said:
Are you sure? On my device its the other way around. Without debugging its 685e and with debugging its 6860?
Click to expand...
Click to collapse
Ok I got it working on my device, I switched on usb debugging in settings. lsusb now returns 6860 and I am able to mount the galaxy tab using the process outlined above.
This is craziness. Is my Galaxy Tab a rare mutant piece of hardware who had its USB numbers switched?
Also - I noticed that Ubuntu somehow automounts my tablet and can read/write to its disk, through a Nautilus plugin. But I still get nothing with mtp-detect. I don't understand how the world works.
I've also got an I/O tablet (updated to 3.1) and I followed this tutorial, so thanks for the help you provided! I managed to copy some files to the device but it ended up freezing my computer (running Ubuntu 10.10).
So I unplugged the tablet, and saw that effectively those few pictures and pdf files had been copied to the device successfully. Pictures are in the Gallery, pdf can be read with Aldiko... but the funny thing is that when I mounted again the tablet -using Ubuntu again- it shows all folders as empty!
That is, 0 files in all tablet folders.
I tried "showing all hidden files" with Nautilus. No luck, nothing is shown. Went to the folder using command line, did an ls -la (just in case who knows! maybe it would show something!). No luck either, directories are apparently empty and have "1 January 1970" as modification date... if it helps.
I can see the files inside the folders using ADB but it's obviously not ideal, specially compared with simply using Nautilus.
Does it happen to you too?
Anyone get this working? I'm having the same exact issues as Konklone. I'm on Maverick and tried the different udev rules and it still doesn't work. I'm gonna be pissed if I have to buy the stupid Samsung USB adapter just to get USB mass storage.
[ASK]Noobs need solution
gMTP tells me that there is no device. Any ideas?
I'm having the same issue. First try I was able to plug in and mount to my netbook. Tried to plug into my mac and it didn't work. Hasn't worked since then, i'm considering doing a factory reset.
I'm running Ubuntu 10.10 64-bit. Note that you do have to enable backports to install gmtp.
Edit /etc/apt/sources.list, uncomment the lines with:
Code:
deb (http-url) maverick-backports main restricted universe multiverse
deb-src (http-url) maverick-backports main restricted universe multiverse
Run
Code:
sudo apt-get update && sudo apt-get install gmtp
I had to unplug the device and replug it back in a couple of times before gmtp would connect to it properly. It seems to be pretty flaky.
Wow...........
This is nonsense ..... is there a way to enable USB Mass Storage or are we completely hosed with MTP?

[DEV-ADDON]DS7Ubuntu v1.0 --- Text Based Ubuntu 11.04 running on Dell Streak 7!

First of all, I need to give my thanks to great DevGhostofNet for his excellent work on getting Ubuntu 11.01 running on Xoom. I borrowed his template on this instruction page as I really don't have my template and using this way to show my appreciation to his work.
Second, I figured though I am not big dev by any means, hopefully any time I spent on such things can add some value to owners of either DS7 or Xoom, especially DS7, which really needs any effort on it in addition to testing help.
So I would throw in my two-cent hours/efforts to get this started. I see huge potential in it, though now it is quite WIP, because the non-graphical version is running well but not Gnome sessions.
1.What is working?
Shell Ubuntu 11.04
I modified the installation scripts to mount DS7 partitions correctly and copy some modified script into original image.
2. What is not working?
Gnome Session
I can install necessary components up to a point where the wall paper is loaded, sidebar is loaded but the guest system did not take/register input properly yet.
3. Why we care?
It has huge potential in it. It uses a part of your sdcard to run a guest system, and you can literally install all those great Ubuntu apps in it in future when more dev effort makes this happen.
4. What is the impact to my existing Android OS?
Minimal. The impacts are:
1. there will be ubuntu scripts in /system/bin/
2. Loop7 device will be borrowed while ubuntu is mounted.
3. under /sdcard, there is a folder ubuntu which pretty much contains everything
4. in LOST.DIR of your /sdcard, there may be lots of temp files if you experimented a lot of install/uninstall of this guest system.
If you still want to take a crack now.........
DISCLAIMER: I will not responsible for any bricked device. Please although this experiment won't affect your other files at all, but **** happens all the time, please do backup and understand what you are trying to do before proceed.
[Before Installation:]
1. You should know what you are doing at this step.
2. You have rooted your device already
3. You configured adb and have a terminal apps in your DS7. (Terminal apps can be found in market. Android Terminal seems to work fine)
4. You have a VNC client. (Android-vnc in market seems fine)
[Installation:]
1. Download the DS7Ubuntu files From my post at http://www.OpinionatedFool.com
2. Extract it into /sdcard/ubuntu folder
3. Open a terminal
Code:
su
cd /sdcard/ubuntu
sh ubuntu install
Just click yes when you are asked some questions. This process takes about 5 mins
reboot after installation
NOW after rebooting, you officially are running a text based Ubuntu 11.04
4. Open you terminal
Code:
su
ubuntu start
ubuntu shell
If you are interested to go further, I really encourage to because we need better devs to bring us further. I am willing to try more but it will take longer time as I have been away from Linux for a good 6 years.
5. After you are in Ubuntu Shell environment. you can do
Code:
vi /sbin/installubuntu
6. Inside installubuntu, the following are present:
Code:
#!/bin/sh
/usr/bin/apt-get -y -q update
/usr/bin/apt-get -y -q upgrade
/usr/bin/apt-get -y -q install python-software-properties
#/usr/bin/add-apt-repository ppa:unity-2d-team/unity-2d-daily
/usr/bin/apt-get -y -q update
/usr/bin/apt-get -y -q install tightvncserver xrdp
/usr/bin/apt-get -y -q install ca-certificates desktop-file-utils doc-base eog g
conf-editor gedit ghostscript-x gnome-about gnome-applets gnome-control-center g
nome-media gnome-menus gnome-nettool gnome-panel gnome-session gnome-session-can
berra gnome-system-monitor gnome-system-tools gnome-terminal gnome-themes-select
ed gnome-themes-ubuntu gnome-utils gtk2-engines gtk2-engines-pixbuf gucharmap hu
manity-icon-theme indicator-applet-session inputattach language-selector launchp
ad-integration lftp libgd2-xpm libgnome2-perl libpam-ck-connector libsasl2-modul
es libxp6 nautilus nautilus-sendto notify-osd rarian-compat screen smbclient sof
tware-center synaptic software-properties-gtk ttf-dejavu-core ttf-freefont ubunt
u-artwork ubuntu-extras-keyring ubuntu-sounds unzip update-manager update-notifi
er x-ttcidfont-conf xterm yelp zenity zip maximus
/usr/bin/dpkg-divert --local --rename --add /sbin/initctl
/bin/ln -s /bin/true /sbin/initctl
I am good up to completion of this step in the script above
Code:
/usr/bin/apt-get -y -q install tightvncserver xrdp
Then the following bulk apt-get process will cause issues. The main course is on gconf2 as far as I know.
I tried to install them separately after install gconf2, but it is not stably working.
i.e. sometimes I did install them all correctly, but sometimes I am getting segmentation error, which is annoying and requires wipe ubuntu folder and reinstall ubuntu.
I am too rusty on Linux now that better devs may figure it out easily.
[How to Uninstall it?]
In case you want to get rid of it. Here is how:
Through ADB or Terminal Simulator in your DS7
Code:
adb shell
su
mount -o remount,rw /dev/block/mmcblk3p3 /system
rm /system/bin/ubuntu*
mount -o remount,ro /dev/block/mmcblk3p3 /system
[Next Step]
Install and configure a working copy of Gnome-session on this successfully. Hopefully there will be Kernel Dev to have a Ubuntu kernel specifically for DS7? That will be the best.
We can then
1. Run Apache server and you will access your files through Dell Streak 7 as long as you are tethering in its own LAN. (or a lot more)
2. Run browsers in graphical version of Ubuntu on your DS7 so that you can do whatever with hulu or netflix or anything. Basically you are carrying a freaking DS7 laptop with you. with touch screen and huge mobility
[Notes]
1. pts need to mounted
2. use Unity-2d seems to be better than Unity
3. mtab need to be replace manually with the mtab I included in the zip file
4. kernel is not configured to have shared memory management ...
I'll definitely be following this thread with interest!
native ubuntu would be nicer rather than the crap of chrooted ones, they are just pointless IMHO as the device has to try and manage 2 oses at once, the 7 doesnt realy have the ram to manage that
Any updates on this project ?
Guess not :-(
Quick question to the op
Does wifi work so you can update / install packages?
If so, does it see the wifi cards chipset? I'm looking into getting aircrack-ng set up to tinker with. ( saves me from dragging out my laptop to test security on networks with my job )
Currently I'm using my Mac with kismac which does the job nicely , however, if I can use the ds7 under Ubuntu its one less reason to drag it along.
Can you copy the device information for me or does it act like a LAN card ?
Thanks !!
what is the latest development?
In a few weeks, i will tell my team to look at the cm7.1 things. I hope you will help us? I will send you a pm but remember me
ubuntu
is this still being worked on or attempted? or is there a ubuntu rom out already?
Is this anything like Ubuntu installer...
http://forum.xda-developers.com/showthread.php?t=1390351

[HOWTO] adb / sideloading / superuser access

Hey everyone! I put together some information on how to do a few things on your new Ouya! This info is by no means my own original contributions, but rather just a compilation of several different sources that I discovered through my quest to explore my Ouya. All credit goes to the original authors/brave experimenters.
SDK SETUP:
1. Install the Android SDK
2. Open SDK Manager and install the following packages:
- Tools: Including both Android SDK and Android SDK
- Android 4.1 (API 16): SDK Platform
- Android 4.0 (API 14): SDK Platform
- Extras: Android Support Library, Google USB Driver
3. Navigate to /android-sdk/extras/google/usb_driver
4. Open android_winusb.inf in an editor (I use Notepad++)
5. Add the following lines beneath [Google.NTx86]:
Code:
;OUYA Console
%SingleAdbInterface% = USB_Install, USB\VID_2836&PID_0010
%CompositeAdbInterface% = USB_Install, USB\VID_2836&PID_0010&MI_01
6. Connect your Ouya via micro USB to your computer and turn it on (it needs to be on for adb to work)
7. Open a command window in /android-sdk/platform-tools and run the following commands:
Code:
adb kill-server
echo 0x2836 >> "%USERPROFILE%\.android\adb_usb.ini"
adb start-server
adb devices
8. After 'adb devices' you should see a number, which signifies your connected console
9. You are now ready to use adb to sideload apps
=============================================================================================================
SIDELOADING APPS:
1. Place the desired .apk file to be installed within /android-sdk/platform-tools
2. Connect the Ouya and open a command window in /android-sdk/platform-tools and run the following command:
Code:
adb install [name.of.apk.file.here]
3. Wait for it to complete the installation
4. On the Ouya, navigate to 'Make' and 'Builds' and your app will be there
=============================================================================================================
ADDITIONAL STUFF BELOW
=============================================================================================================
HOW TO SET UP WIRELESS ADB (will allow you to wireless use adb command, without connecting directly to your computer)
1. Connect OUYA console via mini-usb (or using wireless adb) and run the following commands:
Code:
adb shell
su
mount -o rw,remount -t ext4 /dev/block/platform/sdhci-tegra.3/by-name/APP
chmod 666 /system/build.prop
2. Open another terminal (so we can do things locally) and run the following command:
Code:
adb pull /system/build.prop
3. Open build.prop in a text editor, add this line:
Code:
service.adb.tcp.port=5555
4. Return to the second command window and run the following command:
Code:
adb push build.prop /system
5. Now go back to your shell for the OUYA and run the following commands:
Code:
chmod 644 /system/build.prop
(seriously! the console won't boot if you forget this)
Code:
mount -o ro,remount -t ext4 /dev/block/platform/sdhci-tegra.3/by-name/APP
6. Disconnect your OUYA, put it where you want it, reboot it.
7. To wirelessly connect to your OUYA, use the following command:
Code:
adb connect 192.168.xxx.xxx
(your OUYA's ip address)
=============================================================================================================
HOW TO INSTALL BUSYBOX, SUPERUSER, AND SU BINARIES
1. Make sure you have ADB set up and working (wired or wireless).
2. Download and unzip the needed files here.
3. Place unzipped files in /android-sdk/platform-tools
4. Run the following commands to put su in the proper place:
Code:
adb shell
su
mount -o rw,remount -t ext4 /dev/block/platform/sdhci-tegra.3/by-name/APP
exit
exit
adb push su /sdcard/su
adb shell
su
cat /sdcard/su > /system/xbin/su
ln -s /system/xbin/su /system/bin/su
chmod 6755 /system/xbin/su
exit
exit
5. Install SuperUser and BusyBox:
Code:
adb install com.koushikdutta.superuser.apk
adb install stericson.busybox.apk
6. Run SuperUser on the Ouya (from Make > Software) and confirm the update (not in recovery).
=============================================================================================================
Again, this isn't my original content, only slightly edited (since I am OCD about writing).
My only intention is to share this knowledge with other users like me, who don't know much about this sort of thing (yet).
If i stepped on any toes, or did something wrong, I apologize. Let me know if you have any questions or concerns.
Thank you to the following people for their work in contributing to this guide:
WinDroidGuy
elmerohueso
The driver section doesn't seem to work on Windows 8 Pro 64-bit. I don't think the Google driver has been updated for Win8 yet.
You're probably right. I'm on Windows 7. I'll see if I can jump on a buddy's computer to play around with it.
Upon a quick Google search, I found this: http://forum.xda-developers.com/showthread.php?t=1161769
Perhaps give this a try? Please let me know how it goes.
I also tried Koush/ClockwordMod's universal ADB driver (adding in the Ouya section to 32/64) but same results about a bad hash in the driver file.
Well it was worth a try. I'll keep my ears open for a Windows 8 solution.
Did you try setting up adb over wireless by any chance? I don't know much about this stuff, but perhaps that's worth a try as well?
cosine83 said:
The driver section doesn't seem to work on Windows 8 Pro 64-bit. I don't think the Google driver has been updated for Win8 yet.
Click to expand...
Click to collapse
My Ouya was listed twice in Device manager and one of them was a driver problem. I manually selected my Samsung adb drivers from the list and it works fine. the easiest way yo get those is to install KIES. This was with 64 bit Windows 7.
TIP: The micro usb port is extra deep and my samsung cables don't work, fortunately I have a Kodak one that does.
It motivated to set up wireless adb.
Not getting very far, first I downloaded the SDK, which will not run on my system, might be the AV/FW or something else, but it attempts to find java (which is in the path), and then it does nothing. So I try to go the ClockWorkMod way using the Universal driver (as I saw that should work), that is better as I at least have drivers and it finds my device, but it also will not install throwing a message: "hash for the file is not present in the specified catalog. The file is likely the corrupt or the victim of tampering." Well duh, I modified the inf to get it to find the hardware for the OYUA. I'd just use Google's if I could get a copy without installing the SDK since that is obviously not going to working on this system. Any suggestions, so far while adb works fine with the G3 on this system it appears impossible to setup for the OUYA.
Please note: in C:\Java\jdk1.7u21 is the JDK in c:\java\jre is the JRE. So they are both present and up to date. If I open a command prompt and type java -version it is located and works fine, so no understanding of what "SDK Manager.exe" is doing.
Also, yes I followed the thread as best I could, first copying java into c:\android makes no sense, but I tried it (did nothing), second the adb driver does not require any extraction, where is the usb driver, it must be in a zip somewhere in the SDK for it to be installable, so can I just manually extract it?
Thanks,
ERIC
egandt said:
Not getting very far, first I downloaded the SDK, which will not run on my system, might be the AV/FW or something else, but it attempts to find java (which is in the path), and then it does nothing. So I try to go the ClockWorkMod way using the Universal driver (as I saw that should work), that is better as I at least have drivers and it finds my device, but it also will not install throwing a message: "hash for the file is not present in the specified catalog. The file is likely the corrupt or the victim of tampering." Well duh, I modified the inf to get it to find the hardware for the OYUA. I'd just use Google's if I could get a copy without installing the SDK since that is obviously not going to working on this system. Any suggestions, so far while adb works fine with the G3 on this system it appears impossible to setup for the OUYA.
Please note: in C:\Java\jdk1.7u21 is the JDK in c:\java\jre is the JRE. So they are both present and up to date. If I open a command prompt and type java -version it is located and works fine, so no understanding of what "SDK Manager.exe" is doing.
Also, yes I followed the thread as best I could, first copying java into c:\android makes no sense, but I tried it (did nothing), second the adb driver does not require any extraction, where is the usb driver, it must be in a zip somewhere in the SDK for it to be installable, so can I just manually extract it?
Thanks,
ERIC
Click to expand...
Click to collapse
By G3 do you mean Galaxy S3? If so then hopefully you already have Kies installed. When I connected my OUYA and started all of this, it did not install properly. It showed up twice in device manager, it was installed as a portable device, but was also listed as "other device" and not installed. After a lot of searching,I saw that people had been able to get out working by manually selecting the Samsung adb drivers that are included with Kies. It worked for me. You need to manually select the drivers (have disk) and install OUYA as a MTP device.
Regarding the SDK I know nothing. It installed just fine on Windows 7 for me.
Good luck
Sent from my SCH-I535 using Tapatalk 2
I was able to get ADB to work on Windows 7 64bit and Windows 8 64 bit by installing Samsung KIES and forcing it to use that driver.
eatmybiglazer said:
I was able to get ADB to work on Windows 7 64bit and Windows 8 64 bit by installing Samsung KIES and forcing it to use that driver.
Click to expand...
Click to collapse
Try this driver, got it to work, by selecting i from the list and forcing it
ERIC
Sideloading it relatively trivial for this. It is on by default (and can be toggled the usual way, you can access setting at manage->system->advanced-> security).
I used Real APK Leecher to snag ES File Explorer's APK, threw it on a web server, then downloaded it using OUYA's browser (make->software->browser). Installed it from settings (manage->system->advanced->storage->downloads)
The app then shows up under make->software
I have not tried a pen drive yet, but you could probably throw apks on a drive and use the USB port and install in a similar fashion.
I'm trying to do step 7. I input C:\Android\sdk\platform-tools into comand promt but get not regognizable message. What am I doing wrong?
You need to open the command prompt from wherever within platform-tools, or navigate to that folder from your command prompt. You can't run the adb command (which is located in platform-tools) unless your in that directory.
thanks. hopefully i'll get my OUYA soon. only 1 state away.
I dont get a number after adb devices. I editited the google usb file. Im using the 64 version of android sdk is that ok?
@tcollum: Perhaps you should add this to the OP, I tested and it worked. You can add that ;Ouya to the amd64 section of the USB driver, too
FrostyWolf said:
Sideloading it relatively trivial for this. It is on by default (and can be toggled the usual way, you can access setting at manage->system->advanced-> security).
I used Real APK Leecher to snag ES File Explorer's APK, threw it on a web server, then downloaded it using OUYA's browser (make->software->browser). Installed it from settings (manage->system->advanced->storage->downloads)
The app then shows up under make->software
I have not tried a pen drive yet, but you could probably throw apks on a drive and use the USB port and install in a similar fashion.
Click to expand...
Click to collapse
I just find it easier to ADB over Network and install from my laptop.
Sent from my Nexus 10 using XDA Premium HD app
TadeoNYC said:
My Ouya was listed twice in Device manager and one of them was a driver problem. I manually selected my Samsung adb drivers from the list and it works fine. the easiest way yo get those is to install KIES. This was with 64 bit Windows 7.
TIP: The micro usb port is extra deep and my samsung cables don't work, fortunately I have a Kodak one that does.
It motivated to set up wireless adb.
Click to expand...
Click to collapse
This was a great post...I did what you suggested and selected the latest Samsung ADB Interface driver in the windows list (think it was 23/1//2013) and voila. Thanks!
uncynd said:
This was a great post...I did what you suggested and selected the latest Samsung ADB Interface driver in the windows list (think it was 23/1//2013) and voila. Thanks!
Click to expand...
Click to collapse
You can also do the original USB driver edit in the OP and add it under the amd64 section in the inf file. Its how I did it.
dibblebill said:
You can also do the original USB driver edit in the OP and add it under the amd64 section in the inf file. Its how I did it.
Click to expand...
Click to collapse
Ahh, did not see your post that would have been a lot faster, good advice and maybe should be added to OP?

[GUIDE]BackTrack 5 Chroot (Backtop2)

[Project dormant unless someone else picks it up]
NOTE: This is a chroot for the Webtop, not the Android+VNC chroot method.
Hi everyone, this is my first guide (I'm not sure I can call it that yet, or if this is in the right section) so bear with me.
I tried the Debian chroot guide (http://forum.xda-developers.com/showthread.php?t=1093790), and I really liked the idea, but I had too many apt-get issues and it often crashed my Webtop, so I tried building my own Ubuntu Lucid chroot using rootstock, but internet didn't work.
I later saw this: http://forum.xda-developers.com/showthread.php?t=1184161, but the links were dead and the scripts it referenced were out of date. I'll sort of combine the two guides here since Backtrack actually works surprisingly well.
Just on a side note though, I haven't fully tested the Backtrack tools, but the only thing I haven't found to work are the wireless tools.
Let's start!
Required:
-Rooted Atrix (with Blur based ROM)
-LXTerminal installed on Webtop
-Enough free space (around 4 GB just for room)
-7-Zip
-Some Linux/Unix distro native or in a VM
1. Install the easy-signed.zip from the Debian chroot guide:
http://forum.xda-developers.com/showthread.php?t=1093790
but the other files aren't needed.
Make a folder called WebTopMOD (case-sensitive) on either external or internal memory for later.
2. Look here for reference: http://forum.xda-developers.com/showthread.php?t=1184161, but the links are dead. Active links are here:
Part 1: http://www.mediafire.com/?x9cgxzdx84vc6uj
Part 2: http://www.mediafire.com/?xaoidipkg1o7vgo
Part 3: http://www.mediafire.com/?po3nznbxgvdipur
Use 7-Zip to uncompress the three files (called bt.7z.001,002,003) and you'll get a bt.img.
Full bt.img in a zip:
DL from Mega or from Google Drive
3. The image isn't usable in this state yet, since the image is formatted with ext2, and we need ext3.
Copy the image over to your Linux VM or computer on a easy-to-find directory, and open up a Terminal window (usually CTRL+ALT+T).
In Terminal, type this in:
Code:
cd <directory where you put bt.img>
mkdir tmp tmpbt
sudo mount -o loop bt.img tmpbt
dd if=/dev/zero of=linuxdisk count=0 bs=1MB seek=4096 (This is the size of the chroot image you want, in MB)
mkfs.ext3 linuxdisk (just type y when it asks)
sudo mount -o loop linuxdisk tmp
sudo cp -rf tmpbt/* tmp
sudo umount tmp
sudo umount tmpbt
[Sorry, made a mistake twice] Copy the newly made linuxdisk file to a directory named WebTopMOD on your internal memory or sdcard-ext (folder and file names are case-sensitive).
4. Start Webtop, then open LXTerminal, then start the chroot by typing in:
Code:
/usr/sbin/linux
and after it loads for a bit, you'll get an xterm window with the shell for Backtrack!
If you want to quit the Gnome session, closing xterm doesn't work, since by issuing the commands to kill the webtop processes, it also kills the webtop window manager, and if you do close it there's some kind of weird glitch with a small popup window constantly disappearing and reappearing. (It'll be a WIP for now I guess, the only full solution is to reboot your Atrix). It seems to have to do with the way the linux command mounts the chroot disk under loop50, I'll try and make something to fix this later.
-----------------Extras moved below-----------------------
Pictures:
Chromium Running
BT Desktop (Gnome)
BT Desktop with AIW
THANKS TO:
k.taylor89 for the original Backtop Method
SystemR89 for the Debian chroot and scripts to make this work
The original developers of the Backtop chroot image
And any others I may have forgotten!
Extras:
If you want a GUI (Gnome):
k.taylor89 said:
You first need to kill off all the webtop crap do this by typing the following in xterm.
"ps ax|grep awn|awk '{print $1}'|xargs kill"
"ps ax|grep panel|awk '{print $1}'|xargs kill"
Then start gnome by typing "gnome-session" in xterm.
Click to expand...
Click to collapse
If you want to take it step further and start Gnome after bootup, this isn't a full solution yet but you could edit your start-oshwt-1.sh and 2 scripts so that the chroot automatically starts on bootup without anything else in Webtop, and from there start gnome-session. I'm testing that now.
Installing Apps:
Since this is based off of Ubuntu Lucid, you can install anything from the Lucid repos, you just have to fix the sources list since the Backtrack sources don't seem to work.
Code:
sudo cp /etc/apt/sources.list /etc/apt/sources.list.old (Backup just in case)
sudo nano -w /etc/apt/sources.list
Comment out (#) any line with the backtrack servers, and uncomment any line with the Ubuntu repos.
Press Control+X, Y, then Enter, then run apt-get update to update the repos.
Apps like Chromium install and run without a hassle (just run apt-get install chromium-browser), but I actually get the error "Bus error" for some reason when Chromium remains idle, it seems to be an unsolved bug in the version of Chromium for armel devices in the Lucid repos, if anyone else has a fix, please do tell.
First.
I think its only for lapdock ..........
3n3rg1c said:
First.
I think its only for lapdock ..........
Click to expand...
Click to collapse
Oh sorry yeah I forgot to mention that. I mean I guess if you have the mod that lets you use Webtop anywhere, that'll work too.
Hi,
The "Part 3: http://www.mediafire.com/?po3nznbxgvdipu" doesn't work.
Could you fix it.
Thank you.
sintoo said:
Hi,
The "Part 3: http://www.mediafire.com/?po3nznbxgvdipu" doesn't work.
Could you fix it.
Thank you.
Click to expand...
Click to collapse
Oh sorry I copied the link incorrectly, updated in OP.
i've gotten it running on my ubuntop model, when i ran it from the terminal it would not give me any issues when closing it back up. is there a way to only launch the gnome panel? running: gnome-panel in the terminal didn't work
etruj said:
i've gotten it running on my ubuntop model, when i ran it from the terminal it would not give me any issues when closing it back up. is there a way to only launch the gnome panel? running: gnome-panel in the terminal didn't work
Click to expand...
Click to collapse
I'm not sure if there is a way to start just gnome panel because of the way the chroot is implemented, since to run gnome-panel, an X session must already be running within the chroot and I need to figure that out.
My first two times i lUnched the session the wallpaper would flicker and then just the panels would come up. Now i get hit with the errors and loop pop ups. Maybe there is a way to launch the session then kill everything but the panel?
Sent from my MB860 using xda app-developers app
etruj said:
My first two times i lUnched the session the wallpaper would flicker and then just the panels would come up. Now i get hit with the errors and loop pop ups. Maybe there is a way to launch the session then kill everything but the panel?
Sent from my MB860 using xda app-developers app
Click to expand...
Click to collapse
The workaround I found worked so far was to modify the start-oshwt-2 script so that it would run a very slightly modified version of the script that automatically starts gnome-session (gnome-panel alone is really stubborn, still haven't figured that out) and doesn't start whatever window manager in WebTop to avoid flickering errors and panel only errors (but of course you don't have access to anything from the actual WebTop, but you could also have start-oshwt open a Terminal window from WebTop too).
Can you attach the script?
Sent from my MB860 using xda app-developers app
etruj said:
Can you attach the script?
Sent from my MB860 using xda app-developers app
Click to expand...
Click to collapse
Just rename it to linux, and copy it to wherever you like on your Atrix. You can also copy it to a directory within your terminal path.
This isn't my script, it's from the Debian chroot, just modified to automatically start gnome-session (credit to SystemR89)
You might need to chmod +x the file.
Also, if you want to start it automatically from start-oshwt-2.sh, make sure you copy the file to a directory within the terminal path, and add the line
Code:
sfalv -i "linux"
and comment out any other line that starts a different X window manager.
running "sudo gnome-panel" gives me the panel while staying inside the original ubuntop. i think i can just swap out that one line in your script to get it working. thanks! also noticed my chrome crashes after a few minutes, ill post the error code and screen grabs soon but was wondering if you ever experienced anything like it?
etruj said:
running "sudo gnome-panel" gives me the panel while staying inside the original ubuntop. i think i can just swap out that one line in your script to get it working. thanks! also noticed my chrome crashes after a few minutes, ill post the error code and screen grabs soon but was wondering if you ever experienced anything like it?
Click to expand...
Click to collapse
Yes, in fact. It's a bus error, and I tried to fix it, but the fix doesn't work (and it only seems to affect Chromium).
Sorry for bumping such an old thread, but I was wondering if anyone wanted to take this project over, since I don't have an Atrix anymore and don't have anything to work with.
Thanks.

Categories

Resources