On Sun, 4 Jun 2017, Alan Robertson wrote: > Hi > > Apologies for my first post here being a request for help, but after > extensive searching online I've not yet been able to find and answer > and am hopeful the expertise here may be able to help! > > I have a Raspberry Pi Zero W that I'm using in OTG/gadget mode. I've > activated dwc2 USB, partitioned and formatted the file that is to be > used as filesystem and loaded g_mass_storage. > > It is working fine in Windows - I can connect and see the contents, > add/delete files, eject and reconnect seeing changes fine. I can mount > it in Raspbian to check contents and can also attach it to other > devices and interact with it fine. > > However, I've got some devices that are very picky about what USB > devices they will connect to (solely flash drives). The problem is the > OTG mass storage gadget is being identified as "File-Stor Gadget (Rev: > 0404)" for device type, which is causing it to be rejected. > > I can successfully use a USB flash drive in the target devices and > have scraped the vendor/product ID, etc from this flash drive to see > if I can mimic them via g_mass_storage. > > I have adjusted modprobe to the following: > > $ sudo modprobe g_mass_storage file=/home/pi/piusb.bin stall=0 > removable=1 idVendor=0x0781 idProduct=0x5572 bcdDevice=0x011a > iManufacturer="SanDisk" iProduct="Cruzer Switch" > iSerialNumber="123456789012" > > Unfortunately this doesn't seem to have made any difference and it is > still rejected by the target devices. > > As far as I can tell the above parameters are getting passed through correctly > $ ls /sys/module/g_mass_storage/parameters/* > /sys/module/g_mass_storage/parameters/bcdDevice > /sys/module/g_mass_storage/parameters/cdrom > /sys/module/g_mass_storage/parameters/file > /sys/module/g_mass_storage/parameters/idProduct > /sys/module/g_mass_storage/parameters/idVendor > /sys/module/g_mass_storage/parameters/iManufacturer > /sys/module/g_mass_storage/parameters/iProduct > /sys/module/g_mass_storage/parameters/iSerialNumber > /sys/module/g_mass_storage/parameters/luns > /sys/module/g_mass_storage/parameters/nofua > /sys/module/g_mass_storage/parameters/removable > /sys/module/g_mass_storage/parameters/ro > /sys/module/g_mass_storage/parameters/stall > > $ cat /sys/module/g_mass_storage/parameters/* > 282 > /home/pi/piusb.bin > 21874 > 1921 > SanDisk > Cruzer_Switch > 123456789012 > 0 > Y > N > > However when connecting to Windows, here's what the USB mass storage > displays - it appears that the iSerialNumber is making it through, but > nothing else is being altered. My router shows similar issues, > identifying it as "File-Stor Gadget (Rev: 0404)" > > USBSTOR\DISK&VEN_LINUX&PROD_FILE-STOR_GADGET&REV_0404\123456789012&0 > USBSTOR\DiskLinux___File-Stor_Gadget0404 > USBSTOR\DiskLinux___File-Stor_Gadget > USBSTOR\DiskLinux___ > USBSTOR\Linux___File-Stor_Gadget0 > Linux___File-Stor_Gadget0 > USBSTOR\GenDisk > GenDisk > > By comparison, here's what SanDisk shows: > > USBSTOR\DISK&VEN_SANDISK&PROD_CRUZER_SWITCH&REV_1.26\4C532015741508522393&0 > USBSTOR\DiskSanDisk_Cruzer_Switch___1.26 > USBSTOR\DiskSanDisk_Cruzer_Switch___ > USBSTOR\DiskSanDisk_ > USBSTOR\SanDisk_Cruzer_Switch___1 > SanDisk_Cruzer_Switch___1 > USBSTOR\GenDisk > GenDisk Never mind Windows -- if you connect your gadget to a computer running Linux, what does "lsusb -v" show? Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html