Related
I have 2 questions. I did a search and found that usb devices should work with the gtab, so I'm trying to mount it.
Any idea how I can mount the devices?
I'm trying to mount
1. 500 GB drive
2. Canon Camera with 32 GB SD card
Second question: Can I mount them both at the same time? It looks like the gtab has 2 USB ports, 1 regular, 1 mini
I'm trying to offload the video clips so I can record some more.
Thanks in advance for the help.
Mini is for Slave
Normal is for Host
I think someone found a way to make the Mini a Host, not to sure.
Does this mean I can only use the regular port to connect to a storage device?
I have no need to swap them....just a need to use both to connect to external hard drives:-D
Can I use a usb hub to connect 2 USB devices? (camera and 500 GB drive)
Well, I can tell you this much as least:
If one wanted to connect 2 USB mass storage devices to their g Tab and were hard pressed to find an alternative, the docking station that fits the proprietary plug has an additional USB port as well as an HDMI port and an ethernet port.
Unfortunately I can't tell you anything else with certainty.
scyld said:
Well, I can tell you this much as least:
If one wanted to connect 2 USB mass storage devices to their g Tab and were hard pressed to find an alternative, the docking station that fits the proprietary plug has an additional USB port as well as an HDMI port and an ethernet port.
Unfortunately I can't tell you anything else with certainty.
Click to expand...
Click to collapse
Thanks
I guess I should still get a netbook for this purpose then.
By the way, for the host port (regular USB port). It seems to connect (I have power on the usb device), but the files are not showing up in the file manager (ES file manager) or ifilemanager. Is there anything else I have to do for it to recognize the drive?
TheFlyingPig said:
By the way, for the host port (regular USB port). It seems to connect (I have power on the usb device), but the files are not showing up in the file manager (ES file manager) or ifilemanager. Is there anything else I have to do for it to recognize the drive?
Click to expand...
Click to collapse
We'll have to take things step by step.
First, is the SD card on the camera a removable microSDHC card? If it is, you could just remove it and insert it into the gTablet's microSDHC slot instead of connecting the camera to a USB hub.
Second, have the 2 devices been detected correctly by the kernel? Both individually and then together on a USB-hub?
For example, if I connect my 1TB Maxtor USB HDD to the gTablet, the status bar message informs me that "SD card blank or has unsupported filesystem". This means that the drive was detected, but the NTFS filesystem on it was not recognized, and therefore the drive was not mounted (the vold program which does the mounting only likes ext4 or VFAT filesystems for automounting). I'm assuming that since you have a 500GB drive, it is formatted as NTFS?
If Android does not detect a drive insertion, check the kernel messages. In a Terminal, after I insert a USB drive, I do:
Code:
$ [B]dmesg | tail -n 20[/B]
[144874.547211] usb 1-1.1: New USB device found, idVendor=0d49, idProduct=7410
[144874.554415] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[144874.562368] usb 1-1.1: Product: Basics Desktop
[144874.567435] usb 1-1.1: Manufacturer: Maxtor
[144874.572010] usb 1-1.1: SerialNumber: 2HBEWHZR
[144874.580165] usb 1-1.1: configuration #1 chosen from 1 choice
[144874.589418] scsi0 : SCSI emulation for USB Mass Storage devices
[144874.601098] usb-storage: device found at 3
[144874.601123] usb-storage: waiting for device to settle before scanning
[144879.597766] scsi 0:0:0:0: Direct-Access Maxtor Basics Desktop 0125 PQ: 0 ANSI: 4
[144879.617283] sd 0:0:0:0: Attached scsi generic sg0 type 0
[144879.624170] sd 0:0:0:0: [sda] 1953525168 512-byte logical blocks: (1.00 TB/931 GiB)
[144879.634583] sd 0:0:0:0: [sda] Write Protect is off
[144879.639482] sd 0:0:0:0: [sda] Mode Sense: 2d 08 00 00
[144879.639505] sd 0:0:0:0: [sda] Assuming drive cache: write through
[144879.647662] sd 0:0:0:0: [sda] Assuming drive cache: write through
[144879.653918] sda: sda1
[144879.688927] sd 0:0:0:0: [sda] Assuming drive cache: write through
[144879.695477] sd 0:0:0:0: [sda] Attached SCSI disk
[144879.813410] usb-storage: device scan complete
to check if the drive was detected. I can see by the messages that the Maxtor drive was detected by the kernel and that I can mount it manually by using the /dev/block/sda1 device. If you don't see similar messages, you're out of luck. If the camera is also detected, it may show up as /dev/block/sdbn.
If everything is detected properly, but, just not mounted, you can mount things manually.
For this, you have to know which kernel you're running. There are 2 kernels that are commonly used on the gTablet: clemsyn's and pershoot's. I use pershoot's kernel so my instructions will be for that. The pershoot kernel supports NTFS filesystems, but, this support is not built into the kernel. Support is instead provided using kernel modules which you'll have to download first from the author's website and then load manually.
Download the correct kernel modules file for the running kernel. Find the kernel version first:
Code:
$ [B]uname -a[/B]
Linux localhost 2.6.32.40-cyanogenmod #1 SMP PREEMPT Fri May 13 17:37:53 EDT 2011 armv7l GNU/Linux
The kernel version is 2.6.32.40. I go to http://droidbasement.com/db-blog/ and download the kernel modules file for that kernel version which would be this file for Gingerbased ROMs: lib-2632.40_gb.tar.gz, or, this file for Froyo based ROMS: lib-2632.40.tar.gz. Note the "_gb" suffix. Extract the file on your PC and then transfer these 2 file onto the gTablet: nls_utf8.ko and ntfs.ko. You should, ideally, put them in /system/lib/modules, but, it you can just leave it on the gTablet's SD card.
Load the kernel modules (I'm assuming now that they're on /mnt/sdcard), then mount the HDD:
Code:
$ [B]su[/B]
# [B]insmod /mnt/sdcard/nls_utf8.ko[/B]
# [B]insmod /mnt/sdcard/ntfs.ko[/B]
# [B]mount -t ntfs -o nls=utf8 /dev/block/sda1 /mnt/usbdisk[/B]
The HDD's contents will now be present in /mnt/usbdisk which is a directory that already exists for mounting USB devices. The /dev/block/sda1 device name we determined using the kernel messages. If you have partitions on the HDD, you can mount them individually using their device names which look like /dev/block/sdan, where n is a number. Look in /dev/block/ to see what partitions can be mounted.
To mount the camera, create a new directory somewhere else, let's say /mnt/sdcard/tmp, and then mount it in that directory. I'm assuming here that the camera's SD card was detected as /dev/block/sdb1 and that it has a VFAT (aka FAT32) filesystem on it.
Code:
$ [B]su[/B]
# [B]mount -t vfat /dev/block/sdb1 /mnt/sdcard/tmp[/B]
After you've finished, unmount both devices before you unplug:
Code:
$ [B]su[/B]
# [B]umount /mnt/usbdisk[/B]
# [B]umount /mnt/sdcard/tmp[/B]
TheFlyingPig said:
By the way, for the host port (regular USB port). It seems to connect (I have power on the usb device), but the files are not showing up in the file manager (ES file manager) or ifilemanager. Is there anything else I have to do for it to recognize the drive?
Click to expand...
Click to collapse
The files are in a folder called USBDISK - hunt around, you will find it.
Good day...
Im wanting to connect a USB camera to my ViewSonic G Tablet... I have 3 different USB models. When I plug them in (individually,) I get the /dev/video0 device but I don't seem to be able to use the device...
Why a second camera? I'm thinking I can use my G Tab in my car with a USB camera connected for a Baby Cam (since the baby faces the other way so I can't see and most of my traveling is at night so the normal mirror won't work unless I blind the poor child...) -- In theory, it could be used as a backup camera as well. (Same effect)
The internal camera works, but I don't need to see myself, I'd rather see something behind me.
Ideas?
I've scoured the Forums in more detail... Several ask the questions and someone made it work on the Nook, but it looked Nook specific. =/
Is there a more appropriate place to ask? This would affect all Android Devices that have a USB Host Port...
Now, the G Tablet, VEGAn mod at least... has the UVC Driver for WebCams. When I plug a camera in I get the /dev/video0 device (which doesn't exist until I plug in a camera.) - could it be permissions or is the driver not fully implemented?
The mplayer app that was released sets the root path to /sdcard so I can't point it at /dev/video0... I've tried to use the stream part, but it just exits the video - no error that I can see...
adamsoutherland said:
Now, the G Tablet, VEGAn mod at least... has the UVC Driver for WebCams. When I plug a camera in I get the /dev/video0 device (which doesn't exist until I plug in a camera.) - could it be permissions or is the driver not fully implemented?
Click to expand...
Click to collapse
The device appearing is a good first sign. Can you get me a dmesg output after you've plugged the webcam in? Run a Terminal Emulator app, then type in the window:
Code:
$ [B]dmesg > /mnt/sdcard/dmesg.txt[/B]
The mplayer app that was released sets the root path to /sdcard so I can't point it at /dev/video0... I've tried to use the stream part, but it just exits the video - no error that I can see...
Click to expand...
Click to collapse
Is this app an Android port of the standard mplayer for Linux? If yes, then it will use the V4L (Video 4 Linux) API to grab video frames, and if you can start it on the command line (or supply an input file name), then you can try "tv://" as the input file name.
Run this command first, though, to give everybody read-write access to /dev/video0:
Code:
$ [B]su[/B]
# [B]chmod 666 /dev/video0[/B]
I'm attaching a dmesg prior to plugging in the camera, and one after... I'm also inserting the text of the "diff" in the post...
Code:
[ 189.574313] usb 1-1.1: new high speed USB device using tegra-ehci and address 3
[ 189.657223] usb 1-1.1: New USB device found, idVendor=18ec, idProduct=3299
[ 189.664506] usb 1-1.1: New USB device strings: Mfr=1, Product=2, SerialNumber=0
[ 189.671944] usb 1-1.1: Product: USB2.0 PC CAMERA
[ 189.677125] usb 1-1.1: Manufacturer: ARKMICRO
[ 189.685907] usb 1-1.1: configuration #1 chosen from 1 choice
[ 189.695760] uvcvideo: Found UVC 1.00 device USB2.0 PC CAMERA (18ec:3299)
[ 189.708989] uvcvideo: UVC non compliance - GET_DEF(PROBE) not supported. Enabling workaround.
[ 189.732392] input: USB2.0 PC CAMERA as /devices/platform/tegra-ehci.2/usb1/1-1/1-1.1/1-1.1:1.0/input/input7
[ 190.318832] SO340010: gpio_val=0xc0a50000, button_val = 0xdbaf0002
[ 190.445387] SO340010: gpio_val=0xc0a50000, button_val = 0xdbaf0000
and this:
Code:
/data/data/berserker.android.apps.sshdroid/home # ls -lh /dev/vid*
crw-rw---- 1 0 1006 81, 0 Sep 2 18:22 /dev/video0
I've also done this:
Code:
/data/data/berserker.android.apps.sshdroid/home # chmod 666 /dev/video0
/data/data/berserker.android.apps.sshdroid/home # cat /dev/video0 /mnt/sdcard/test.mpg
cat: read error: No such device
/data/data/berserker.android.apps.sshdroid/home # ls -lh /dev/vid*
crw-rw-rw- 1 0 1006 81, 0 Sep 2 18:22 /dev/video0
/data/data/berserker.android.apps.sshdroid/home #
The mplayer was an APK from someone on the forums... I've opened it up only to find a "mplayer.so" as I thought it might contain the mplayer binary... (I don't have a machine (with sufficient space) to load the Android SDK at the moment...) (It's on my todo list.)
Am I right to try "cat /dev/video0" before I find the proper mplayer or event ffmpeg binary? (It generally works in linux when I do it...)
PS - I have 3 WebCams, I can give you a dmesg of each one if you need it... They all appear to do the same thing (they are by different manufacturers... iMicro, Sabrent and Agama.) -- also note that these 3 web cams work in Linux (each slightly different, but they work.)
adamsoutherland said:
The mplayer was an APK from someone on the forums... I've opened it up only to find a "mplayer.so" as I thought it might contain the mplayer binary... (I don't have a machine (with sufficient space) to load the Android SDK at the moment...) (It's on my todo list.)
Click to expand...
Click to collapse
Attach the APK so I can have a look at it.
Am I right to try "cat /dev/video0" before I find the proper mplayer or event ffmpeg binary? (It generally works in linux when I do it...)
Click to expand...
Click to collapse
I'm surprised that that works even on standard Linux! You have to setup the frame capture parameters first using ioctl()s before you can start reading data from /dev/video0. Even after that, you get raw frame data, and not mpeg video from the device.
PS - I have 3 WebCams, I can give you a dmesg of each one if you need it... They all appear to do the same thing (they are by different manufacturers... iMicro, Sabrent and Agama.) -- also note that these 3 web cams work in Linux (each slightly different, but they work.)
Click to expand...
Click to collapse
Attach all the 3 webcams to your desktop machine, check that each one works and get me a dmesg and a lsmod command output for each one. I want to see what drivers are loaded for each one. We'll have to load the same drivers on the gTablet too after compiling them.
Code:
[I]Attach Camera1 and make sure its working, then,[/I]
desktop$ [B]dmesg > dmesg1.txt[/B]
desktop$ [B]lsmod > lsmod1.txt[/B]
[I]Attach Camera2 and make sure its working, then,[/I]
desktop$ [B]dmesg > dmesg2.txt[/B]
desktop$ [B]lsmod > lsmod2.txt[/B]
[I]Attach Camera3 and make sure its working, then,[/I]
desktop$ [B]dmesg > dmesg3.txt[/B]
desktop$ [B]lsmod > lsmod3.txt[/B]
Caveats: Even if we get all the drivers to load on the gTablet (the V4L drivers, the main camera driver, and, possibly, its support drivers), we still have the problem of displaying the video stream on Android. While I'm happy to write whatever systems code is required, writing the Java UI code for the Android app is beyond my ken. We'll have to ask someone else (try in the main Android development forums on XDA, or, ask user herbert1 here who's helped out before with custom Java apps) once we've checked that we can read data from the V4L device (I'll send you a test prog which'll output .jpg files once every second once we have the drivers sorted out).
It would be great if someone has already ported mplayer for Android.
I'm attaching the APK I found...
Side note:
After looking deeper at 'cat /dev/video0'; it does not work with these webcams... I think this works on my TV Cards that natively displayed mpeg2 video (it's been a while).
See the attached dmesg-*.txt and lsmod-*.txt. Each is named after the company logo on the camera. (I can get the model numbers if the dmesg isn't enough.) Between each dmesg I rebooted the linux box for clarity. (They can all work at once, but I get confused on what is doing what.)
The command I used to test:
Code:
ffmpeg -f alsa -i hw:0,0 -f video4linux2 -s 320x240 -i /dev/video0 test-agama.mpg
(Each of these cameras has audio - The audio is not important for what I am attempting to do...)
About the UI... I've been avoiding this but it maybe time to start work on this =P -- I just realized that the box I'm testing the cameras on has space... I may have to reload linux for 64bit but then I can install the Android SDK and get to UI Development.
All three webcams seem to depend on only 3 kernel modules: uvcvideo, videodev and v4l1_compat.
If all 3 drivers are loaded on the gTablet too, then we should be able to get the video frames from /dev/video0 (or whatever the device).
I'll send you a test program this evening. In the mean time...:
That .apk file contains the application too--the classes.dex file contains the Dalvik executable bytecode. Just install the .apk, then run the app and provide a file name as input. Try "tv://" as the file name once all 3 drivers have been loaded. Do the "chmod 666 /dev/video0" before running the app.
Try the webcam test program in the attachment. The program reads from a user-specified V4L device and outputs JPEG images until you stop it with CTRL-C. Run as:
Code:
$ [B]su[/B] [I]Become superuser[/I]
# [B]mkdir /mnt/sdcard/tmp[/B] [I]Make a tmp dir. for storing imgs[/I]
# [B]./webcam -o /mnt/sdcard/tmp[/B] [I]Capture webcam images until stopped with CTRL-C[/I]
Get usage instructions with "./webcam --help".
EDIT: I actually didn't test the program out because I couldn't locate my webcam. Report if you encounter any bugs.
Quick Update:
I will be trying this tonight... I've been busy trying to get things done. (Little one is going to be born tomorrow!)
Sorry I haven't been able to respond sooner...
rajeevvp said:
Try the webcam test program in the attachment. The program reads from a user-specified V4L device and outputs JPEG images until you stop it with CTRL-C. Run as:
Code:
$ [B]su[/B] [I]Become superuser[/I]
# [B]mkdir /mnt/sdcard/tmp[/B] [I]Make a tmp dir. for storing imgs[/I]
# [B]./webcam -o /mnt/sdcard/tmp[/B] [I]Capture webcam images until stopped with CTRL-C[/I]
Get usage instructions with "./webcam --help".
EDIT: I actually didn't test the program out because I couldn't locate my webcam. Report if you encounter any bugs.
Click to expand...
Click to collapse
I copied it to /mnt/asec (because I can execute things there without remount)
When I run it, i get:
Code:
/mnt/asec # ./webcam -o /mnt/asec/tmp -d /dev/video0
./webcam: error getting video channel info. Invalid argument
I tried without the -d /dev/video0 and got the same result.
(Sorry for the LOOONG delay... Turns out a newborn takes more time and energy than I expected. I'm just now figuring that out... =P It's worth it though.)
Try this simple USB Webcam test app in the attachment which works on VEGAn-Tab 7.1 and GtabComb* (which have the pershoot kernel).
1. Plug the USB webcam in.
Assuming the kernel you're running has the correct USB webcam drivers compiled in--and, most of them do seem to have the V4L subsystem and the UVC camera drivers (which supports a lot of the common USB webcams) built into the kernel--you should see a new /dev/video0 device file pop up.
2. Run these commands to set correct permissions and owners on the device file (some ROMs--eg. GtabCombOver--don't need it):
Code:
$ [B]su[/B]
# [B]chown system.camera /dev/video0[/B]
# [B]chmod 660 /dev/video0[/B]
(Note that if you unplug and replug the webcam, you'll have to re-run the commands on ROMs which don't set the correct permissions and owners.)
3. Now install and run the SimpleWebCam app.
If, for some reason, no /dev/video0 device is created, then your webcam may need different device drivers, which have not been compiled in (or not been written!), in which case you'll have to compile a new kernel with the correct drivers either built-in or as loadable modules. Nothing else described in this post will need change.
adamsoutherland said:
When I run it, i get:
Code:
/mnt/asec # ./webcam -o /mnt/asec/tmp -d /dev/video0
./webcam: error getting video channel info. Invalid argument
I tried without the -d /dev/video0 and got the same result.
Click to expand...
Click to collapse
Looks like I'll have to update the code to make the program use the V4L2 API instead.
Nexus 7
Just tested this on my Google Nexus 7 tablet and it worked fine, I didn't have to modify the permissions either,
PS, it is rooted, of sure if that makes much difference, will test it on my friends stock nexus 7 tomorrow
USB Camera App
I was able to get the app working on my rooted Nexus 7 4.2 and an unrooted Galaxy SIII . How hard would it be to add a video record function to the app?
droidoso said:
How hard would it be to add a video record function to the app?
Click to expand...
Click to collapse
If you want to do that, then it's better to compile a custom native camera-interface library which makes the USB webcam appear as a standard camera (--the rear one, usually). Then, you can use the standard apps to record videos.
See this thread for a precompiled binary and for the source.
Has anyone managed to connect their S2 using MTP when running Ubuntu? Obviously I know that it's a very simple tast to just connect via mass storage instead, but I'm interested to know.
I think that Samsung have some weird implementation of MTP because I was able to connect and copy files when I was running CM9 but not on stock ICS. I always get the error message:
Unable to mount SAMSUNG_Android
Error initialising camera: -60: Could not lock the device
Though it does mount and I can see the root of both SDCards, all the folders are empty and I can't copy any files to the cards from the computer as I get a error message reading:
There was an error copying the file into gphoto2://[usb:001,010]/store_00020002.
The same happens whether I try to use MTP or PTP.
I think the problem lies in that libmtp-1.1.3 contains fixes for the S2 but that version isn't included with 11.10 or 12.04
hint
did you find out,
i got mine working by doing below guide,
think the issue is we have our phones in USB Debugging Mode
ubuntuforums.org/archive/index.php/t-1806119.html
Steps:
1. Go to: Settings ➔ Wireless and network ➔ USB utilities.
2. Connect your phone to your PC using a USB cable.
3. Tap Connect storage to PC.
4. Scroll down from the phone notification bar. Click USB Mass Storage and tap "Connect storage from PC". The android robot will turn from green to orange. (Important step!)
5. From your PC, open the folder to view your files.
6. Copy files between your PC and the memory card.
alpike said:
did you find out,
i got mine working by doing below guide,
think the issue is we have our phones in USB Debugging Mode
ubuntuforums.org/archive/index.php/t-1806119.html
Steps:
1. Go to: Settings ➔ Wireless and network ➔ USB utilities.
2. Connect your phone to your PC using a USB cable.
3. Tap Connect storage to PC.
4. Scroll down from the phone notification bar. Click USB Mass Storage and tap "Connect storage from PC". The android robot will turn from green to orange. (Important step!)
5. From your PC, open the folder to view your files.
6. Copy files between your PC and the memory card.
Click to expand...
Click to collapse
That's connecting via USB mass storage, not mtp. But thanks for trying.
Sent from my GT-I9100 using XDA
Very easy
Code:
cd ~
sudo apt-get install mtpfs
sudo mkdir /mtp
sudo chmod 775 /mtp
sudo mtpfs -o allow_other /mtp
For dismount
Code:
sudo umount mtpfs
You need to have your device rules ( Check how to install adb if you dont )
what I have found out that mtpfs is unable to preserve timestamps of the files at least on my install.
gphoto2 backend worked fine on CM9 now wile testing CM10 its a bit buggy, I can get the list of files but I am unable to read or rename them.
Most likelly it will improve as development of CM10 progresses rapidly.
Mounting my Galaxy S3 when connected via USB to my Ubuntu computer
D4rKn3sSyS said:
Very easy
Code:
cd ~
sudo apt-get install mtpfs
sudo mkdir /mtp
sudo chmod 775 /mtp
sudo mtpfs -o allow_other /mtp
For dismount
Code:
sudo umount mtpfs
You need to have your device rules ( Check how to install adb if you dont )
Click to expand...
Click to collapse
I went through the steps above, except the last: How do I install adb? (device rules ?).
While my phone is so connected, the command:
cd /mtp
produces the result
bash: cd: /mtp: Transport endpoint is not connected
Help greatly appreciated.
Thank you,
-- Saul
slubkin said:
I went through the steps above, except the last: How do I install adb? (device rules ?).
While my phone is so connected, the command:
cd /mtp
produces the result
bash: cd: /mtp: Transport endpoint is not connected
Help greatly appreciated.
Thank you,
-- Saul
Click to expand...
Click to collapse
Ubuntu 13.04 is a drastic improvement for MTP support. I have not got around to trying my S II but I successfully managed a family friends Galaxy TAB 2 with MTP with zero manual modifications to Ubuntu. Everything worked perfect plug and play out of the box.
I have also tried old versions to know how bad they were compared to 13.04.
No luck with S2 and Ubuntu 13.04
I'm on Android 4.1.2 and trying to connect via USB to Ubuntu 13.04. Error I get is that my device is not an MTP device, which it's not as its using USB
Issue is that I don't see the mounted android partitions. To make this worse, it works every now and then. Following is the syslog and the outpu of lsusb
-----------------------------------------------------------------------------------------------------------------------------------------------------------------
Aug 26 23:04:00 ml kernel: [134718.425536] usb 1-5: new high-speed USB device number 11 using ehci-pci
Aug 26 23:04:00 ml kernel: [134718.558636] usb 1-5: New USB device found, idVendor=04e8, idProduct=685b
Aug 26 23:04:00 ml kernel: [134718.558647] usb 1-5: New USB device strings: Mfr=2, Product=3, SerialNumber=4
Aug 26 23:04:00 ml kernel: [134718.558655] usb 1-5: Product: SAMSUNG_Android
Aug 26 23:04:00 ml kernel: [134718.558661] usb 1-5: Manufacturer: SAMSUNG
Aug 26 23:04:00 ml kernel: [134718.558666] usb 1-5: SerialNumber: 001964815b817e
Aug 26 23:04:05 ml kernel: [134723.546077] usb 1-5: can't set config #1, error -110
Aug 26 23:04:05 ml mtp-probe: checking bus 1, device 11: "/sys/devices/pci0000:00/0000:00:12.2/usb1/1-5"
Aug 26 23:04:05 ml mtp-probe: bus: 1, device: 11 was not an MTP device
[email protected]:~$ lsusb
Bus 001 Device 011: ID 04e8:685b Samsung Electronics Co., Ltd GT-I9100 Phone [Galaxy S II] (mass storage mode)
Bus 003 Device 002: ID 046d:c52e Logitech, Inc.
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
I have spent many hours traulling the net, scanning through forums across multiple websites and found no information on how to make my device which in its current software incarnation currently seems to only allow MTP as the option for transferring data via the USB cable to and from my Mac running OSX 1.7.3.
Please note, that that google app for file transfers DOES NOT WORK (for me). I cannot get it to work no matter which god I've prayed to or what kinda dance I did. So I looked for alternatives.
ADB worked, but I got tired of ADB to push files across (which is effective, but not what I would call fun). I came across MacPort, giving us ports of Linux/Unix stuff in the world of OSX. YAY!
Found that the various libraries for MTP and MTP-FS was ported! YAY!
After installing the hell out of macport (found: www macports org) and runing the updates.
Drop to the command line and then run these commands once:
Code:
sudo port install libmtp
sudo port install mtpfs
Every time you load your device:
Code:
sudo mtpfs
Awesome! Progress, plug in the device and run mtpfs. But then I get this:
Code:
bergenmacbook:Applications bergenlarsen$ sudo mtpfs
Listing raw device(s)
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1/S2/GT-N7000/Galaxy Nexus.
Found 1 device(s):
Samsung: GT-P7510/Galaxy Tab 10.1/S2/GT-N7000/Galaxy Nexus (04e8:6860) @ bus 250, dev 6
Attempting to connect device
PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
LIBMTP libusb: Attempt to reset device
inep: usb_get_endpoint_status(): Operation timed out
outep: usb_get_endpoint_status(): Operation timed out
LIBMTP PANIC: failed to open session on second attempt
Unable to open raw device -208647360
I'm running MIUI v4 (2.4.13) with Siyah Kernel (currently 3.1RC5).
Help?
BergenLarsen said:
I have spent many hours traulling the net, scanning through forums across multiple websites and found no information on how to make my device which in its current software incarnation currently seems to only allow MTP as the option for transferring data via the USB cable to and from my Mac running OSX 1.7.3.
Please note, that that google app for file transfers DOES NOT WORK (for me). I cannot get it to work no matter which god I've prayed to or what kinda dance I did. So I looked for alternatives.
ADB worked, but I got tired of ADB to push files across (which is effective, but not what I would call fun). I came across MacPort, giving us ports of Linux/Unix stuff in the world of OSX. YAY!
Found that the various libraries for MTP and MTP-FS was ported! YAY!
After installing the hell out of macport (found: www macports org) and runing the updates.
Drop to the command line and then run these commands once:
Code:
sudo port install libmtp
sudo port install mtpfs
Every time you load your device:
Code:
sudo mtpfs
Awesome! Progress, plug in the device and run mtpfs. But then I get this:
Code:
bergenmacbook:Applications bergenlarsen$ sudo mtpfs
Listing raw device(s)
Device 0 (VID=04e8 and PID=6860) is a Samsung GT-P7510/Galaxy Tab 10.1/S2/GT-N7000/Galaxy Nexus.
Found 1 device(s):
Samsung: GT-P7510/Galaxy Tab 10.1/S2/GT-N7000/Galaxy Nexus (04e8:6860) @ bus 250, dev 6
Attempting to connect device
PTP_ERROR_IO: failed to open session, trying again after resetting USB interface
LIBMTP libusb: Attempt to reset device
inep: usb_get_endpoint_status(): Operation timed out
outep: usb_get_endpoint_status(): Operation timed out
LIBMTP PANIC: failed to open session on second attempt
Unable to open raw device -208647360
I'm running MIUI v4 (2.4.13) with Siyah Kernel (currently 3.1RC5).
Help?
Click to expand...
Click to collapse
Tried installing gvfs-gphoto2 and nautilus?
Read more here:
How To: Fix Samsung Galaxy Nexus MTP File Transfer for Ubuntu GNU/Linux 11.10
Hi guys, i successfully build from scratch a device and vendor tree for my rom, and compile CM13 with no problems.
The roms boots but i get a bootloop when it come into "starting apps". My idea is get adb working on boot proccess.
I was googling but i couldn't get working....
This is my init.qcom.rc: https://drive.google.com/open?id=0ByjBTzGuQ9FIQldHTGxBWjdtczQ
And init.usb.rc generated by CM13: https://drive.google.com/open?id=0ByjBTzGuQ9FIc1ZVNnVpTVExOE0
Thanks
Well guy i was digging around and testing ALOT with no luck. Still can't enable adb at boot.
I try adding this properties on default.prop:
Code:
ro.adb.secure=0
ro.secure=0
ro.debuggable=1
persist.sys.usb.config=mtp,adb
An this in build.prop:
Code:
ro.default_usb_mode=0
persist.service.adb.enable=1
persist.service.debuggable=1
persist.sys.usb.config=mtp,adb
My device is a Forge TV, and it have a single usb port and no sdcard slot, so the only way to get a log is via usb...
In the stock rom, by default, starts in host mode (storage) and you have to go into config to change it into "device mode" to get usb adb working....
Probably i need to manage how the usb port starts at boot, i thought that "ro.default_usb_mode=0" was the solution...but no
Any help will be appreciated!
PS. lsusb doesn't recognize any device....only in fastboot mode
So i found out something interesting...in stock rom if i execute the command echo 0 > /proc/usb_device the device put itself in device mode and i can debug, putting that value to 1 reverts to storage.
I try to put that on init.d, or even on init.qcom.rc in the boot image with no luck....it's so frustating...
Ususally adbd should already be running this late during the boot.
Can you at least get an usb connection during boot? (check lsusb)
If you want to get at least a dmesg output during boot you could try the following:
set this in the build.prop
Code:
debug.sf.nobootanimation=1
set the following in your kernel defconfig
Code:
CONFIG_VGA_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
(not all of them are needed but I forgot which ones are and which ones are not)
add this to the kernel command line
Code:
console=tty1 loglevel=7
This should at least show some output on the phone screen itself.
To run something in the console, you could try to connect an usb keyboard or use something like a scriptable virtual keyboard.
You might need to set loglevel to 1 or 0 if you don't want it to spam your console while working on it.
ruleh said:
Ususally adbd should already be running this late during the boot.
Can you at least get an usb connection during boot? (check lsusb)
If you want to get at least a dmesg output during boot you could try the following:
set this in the build.prop
Code:
debug.sf.nobootanimation=1
set the following in your kernel defconfig
Code:
CONFIG_VGA_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE=y
CONFIG_FRAMEBUFFER_CONSOLE_DETECT_PRIMARY=y
CONFIG_FONT_8x8=y
CONFIG_FONT_8x16=y
(not all of them are needed but I forgot which ones are and which ones are not)
add this to the kernel command line
Code:
console=tty1 loglevel=7
This should at least show some output on the phone screen itself.
To run something in the console, you could try to connect an usb keyboard or use something like a scriptable virtual keyboard.
You might need to set loglevel to 1 or 0 if you don't want it to spam your console while working on it.
Click to expand...
Click to collapse
Hi, thanks alot for your answer! My device is a Razer Forge TV wich is an Android TV device. It's equiped with a single full usb 3.0 port and no sdcard slot. The port works in 2 ways, by default in host mode and device mode (the mode i need to get some debug output). In the stock rom executing "echo 0 > /proc/usb_device" enable this mode and remains on reboot. But doesn't seems to work on CM (i put the command on an init.d script). lsusb reports nothing (equal in stock rom when the port is in host mode).
I test the soluton you provided, but instead of bootanimation i get a black screen then optimizing apps, starting apps and reboot (wich is my main problem)....there's no output on screen...i'm stuck on this like 10 days or more...is so annoying...thanks again
achaw said:
Hi, thanks alot for your answer! My device is a Razer Forge TV wich is an Android TV device. It's equiped with a single full usb 3.0 port and no sdcard slot. The port works in 2 ways, by default in host mode and device mode (the mode i need to get some debug output). In the stock rom executing "echo 0 > /proc/usb_device" enable this mode and remains on reboot. But doesn't seems to work on CM (i put the command on an init.d script). lsusb reports nothing (equal in stock rom when the port is in host mode).
I test the soluton you provided, but instead of bootanimation i get a black screen then optimizing apps, starting apps and reboot (wich is my main problem)....there's no output on screen...i'm stuck on this like 10 days or more...is so annoying...thanks again
Click to expand...
Click to collapse
You could try to insert a usb stick, mount it, and then write dmesg and/or adb output to it using init.rc.
Alternatively you could try to enable adb over tcp and connect that way to it.
Alos try to chose a different tty in the kernel command line.
(btw are the following three lines present in your kernel defconfig?)
Code:
CONFIG_VT_CONSOLE=y
CONFIG_TTY=y
CONFIG_VT=y
ruleh said:
You could try to insert a usb stick, mount it, and then write dmesg and/or adb output to it using init.rc.
Alternatively you could try to enable adb over tcp and connect that way to it.
Alos try to chose a different tty in the kernel command line.
(btw are the following three lines present in your kernel defconfig?)
Code:
CONFIG_VT_CONSOLE=y
CONFIG_TTY=y
CONFIG_VT=y
Click to expand...
Click to collapse
I can't mount usb or enable adb over tcp becasuse the system reboot itself at starting apps...
Right now i'm testing with your new config, switching ttys because i'm still getting black screen instead some output...
Well after some days i remember that the Forge iss equipped with a ethernet port...i feel so stupid lol...
So i was able to debug via adb over tcp.... @ruleh thanks alot for your time!
I think "starting apps" happens when zygote is started.
If it is really the case then it should be possible to mount an usb stick and write the logs to it before everything reboots.
According to the init files I have, init.${ro.hardware}.rc would be the place to do the mount+write.
Ideally /system is mounted and /system/bin is in the path to access tools like logcat and dmesg.
Otherwise you could include them in /sbin which is (in most cases) part of the ramdisk.
It would probably be something like this:
Code:
on early-boot
#mkdir /mnt/usb
mount /dev/(usb_stick) /mnt/usb
exec /system/bin/dmesg > /mnt/usb/dmesg.log
exec /system/bin/logcat > /mnt/usb/logcat.log
(I have never used the init.rc files directly so I am not too sure.)
Also did you try "write /proc/usb_device 0" instead of "echo 0 > /proc/usb_device" in the init.rc files? (preferably before zygote starts...maybe init.usb.rc?)
Or you could try to remove the lines referencing zygote from the init.rc files and see if adbd starts then or not.
---------- Post added at 20:17 ---------- Previous post was at 20:16 ----------
achaw said:
Well after some days i remember that the Forge iss equipped with a ethernet port...i feel so stupid lol...
So i was able to debug via adb over tcp.... @ruleh thanks alot for your time!
Click to expand...
Click to collapse
I wish I read this a bit earlier...... oh well