My device needs to auto-mount to a PC as a USB mass storage device.
I have implemented a partition for user data on my device, formatted it to fat, and launch the g_mass_storage.ko driver:
modprobe g_mass_storage file=/dev/mmcblk2p3 removable=1
The drive successfully mounts as a USB Mass Storage device on some PCs. BUT on some other PCs the device is NOT recognized. I have narrowed down the culprit as a possible HW dependency, here's why:
1) Plug IMX into Windows PC "A". auto-mount is successful
2) Plug IMX into Ubuntu PC "B". auto-mount is successful
3) Plug IMX into Windows PC "C". auto-mount is NOT successful
4) Boot PC "C" into Ubuntu. IMX auto-mount is NOT successful --> Therefore, not a silly Windows driver issue
Now Add a Cheap USB hub in between the PC and IMX (IMX-->USB HUB---> PC)
5) Plug IMX -->USB HUB --> Ubuntu PC "C" . auto-mount is successful !!!
6) Boot PC "C" into Windows again. Plug IMX -->USB HUB --> Windows PC "C" . auto-mount is successful !!!
Here is my IMX output when modprobing:
# modprobe g_mass_storage file=/dev/mmcblk2p3 removable=1
[ 1441.573884] Number of LUNs=8
[ 1441.580845] Mass Storage Function, version: 2009/09/11
[ 1441.586390] LUN: removable file: (no medium)
[ 1441.596948] Number of LUNs=1
[ 1441.603800] LUN: removable file: /dev/mmcblk2p3
[ 1441.609030] Number of LUNs=1
[ 1441.618926] g_mass_storage gadget: Mass Storage Gadget, version: 2009/09/11
[ 1441.626486] g_mass_storage gadget: userspace failed to provide iSerialNumber
[ 1441.634116] g_mass_storage gadget: g_mass_storage ready
The output when it successfully mounts:
[ 2696.409919] g_mass_storage gadget: high-speed config #1: Linux File-Backed Storage
When mounted to PC "A" the VID, PID, Rev are:
VID 0x0525 - driver default
PID 0xA4A5 - driver default
REV 0x0314
I'd like to fix this, but I'm at a loss of how to do this if its a HW dependency.
I can suggest to check precisely the voltage of USB signal.
Possibly the voltage is a bit out of range and some hosts fail to connect but USB hub fixes it.
Have a great day,
Victor
-----------------------------------------------------------------------------------------------------------------------
Note: If this post answers your question, please click the Correct Answer button. Thank you!
-----------------------------------------------------------------------------------------------------------------------
The USB HUB in testing is NOT powered, so I don't think that is the cause