g_multi Ethernet and Mass Storage on Windows 10

2,123 views
Skip to first unread message

Etienne L.

unread,
Jan 26, 2017, 8:56:41 AM1/26/17
to USB armory
Hello everybody,

I can't get Combined CDC Ethernet and Mass Storage emulation working on Windows 10 with my usbarmory following the documentation... 
Networking works fine using g_ether and g_multi (ACER or IBM driver, with idVendor and idProduct options). But, with g_multi, I can't get an USB mass storage to show up on Windows (8 or 10). Surprisingly, it works exactly as expected on an ubuntu 16.04. Both Network and mass storage interface shows up.

As stated here, I looked for Composite drivers and tried a few with various idVendor and idProduct on g_multi.
Trying in vain to get it to detect the gadget as an USB composite gadget.

I tried these 3 configuration for usbarmory.conf :
  1. options g_ether use_eem=0 dev_addr=1a:55:89:a2:69:41 host_addr=1a:55:89:a2:69:42
    Acert RNDIS Network interface shows up.

  2. options g_multi use_eem=0 dev_addr=1a:55:89:a2:69:41 host_addr=1a:55:89:a2:69:42 file=/root/usbdisk.img
    No Interface, No mass Storage.
    Device shows up as a USB Serial Device with VID_1D6B and PID_0104

  3. options g_multi use_eem=0 dev_addr=1a:55:89:a2:69:41 host_addr=1a:55:89:a2:69:42 idVendor=0x04b3 idProduct=0x4010 file=/root/usbdisk.img
    IBM RNDIS Network interface shows up. No mass Storage

Does someone have any idea on why it don't want to (and how to) recognize it as a USB Mass Storage device and a RDNIS device ? Any guesses or leads ?

Thanks in advance for your help.

Andrea Barisani

unread,
Jan 26, 2017, 9:01:35 AM1/26/17
to Etienne L., USB armory
I haven't personally tried this but these thread might have some tips that are applicable also on Windows 10:


Cheers

--
You received this message because you are subscribed to the Google Groups "USB armory" group.
To unsubscribe from this group and stop receiving emails from it, send an email to usbarmory+unsubscribe@googlegroups.com.
To post to this group, send email to usba...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/usbarmory/f609d8ac-bef4-472f-a92e-384140e28c37%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Etienne L.

unread,
Jan 26, 2017, 1:25:12 PM1/26/17
to USB armory, ela...@gmail.com
Hey,

Thanks for the hint, I spent more time on this thread. That I skipped quickly the first time because it's mostly about MAC OS. 
There is plenty of good readings in it, and according to this (and a few other) :
** Windows host drivers

For the gadget to work under Windows two conditions have to be met:

*** Detecting as composite gadget
[...]
The only thing to worry is that the gadget has to have a single
configuration so a dual RNDIS and CDC ECM gadget won't work unless you
create a proper INF -- and of course, if you do submit it!

It explain why willnix rebuilt g_multi without ecm cdc support (see https://github.com/willnix/usbpoc#usb-gadget)
So the questions are : 
  1. Since willnix is doing it on archlinux, how do i rebuild g_multi on an usbarmory-debian ?
  2. I suppose I can also prep' my own custom bootable microSD image without emc ? using some kernel_conf files to disable it ?
  3. OR option 3 : start over with archlinux... which is an acceptable solution in my case but maybe not for everyone...^^
If someone know an"how to" on option 1 or 2 and make me win some time...

Thanks in advance.

Le jeudi 26 janvier 2017 15:01:35 UTC+1, Andrea Barisani a écrit :
I haven't personally tried this but these thread might have some tips that are applicable also on Windows 10:


Cheers

On Thu, Jan 26, 2017 at 2:56 PM, Etienne L. <ela...@gmail.com> wrote:
Hello everybody,

I can't get Combined CDC Ethernet and Mass Storage emulation working on Windows 10 with my usbarmory following the documentation... 
Networking works fine using g_ether and g_multi (ACER or IBM driver, with idVendor and idProduct options). But, with g_multi, I can't get an USB mass storage to show up on Windows (8 or 10). Surprisingly, it works exactly as expected on an ubuntu 16.04. Both Network and mass storage interface shows up.

As stated here, I looked for Composite drivers and tried a few with various idVendor and idProduct on g_multi.
Trying in vain to get it to detect the gadget as an USB composite gadget.

I tried these 3 configuration for usbarmory.conf :
  1. options g_ether use_eem=0 dev_addr=1a:55:89:a2:69:41 host_addr=1a:55:89:a2:69:42
    Acert RNDIS Network interface shows up.

  2. options g_multi use_eem=0 dev_addr=1a:55:89:a2:69:41 host_addr=1a:55:89:a2:69:42 file=/root/usbdisk.img
    No Interface, No mass Storage.
    Device shows up as a USB Serial Device with VID_1D6B and PID_0104

  3. options g_multi use_eem=0 dev_addr=1a:55:89:a2:69:41 host_addr=1a:55:89:a2:69:42 idVendor=0x04b3 idProduct=0x4010 file=/root/usbdisk.img
    IBM RNDIS Network interface shows up. No mass Storage

Does someone have any idea on why it don't want to (and how to) recognize it as a USB Mass Storage device and a RDNIS device ? Any guesses or leads ?

Thanks in advance for your help.

--
You received this message because you are subscribed to the Google Groups "USB armory" group.
To unsubscribe from this group and stop receiving emails from it, send an email to usbarmory+...@googlegroups.com.

Etienne L.

unread,
Jan 30, 2017, 4:07:10 AM1/30/17
to USB armory, ela...@gmail.com
Hello again, 

Here's way to get g_multi working under W10, and have both RNDIS and MassStorage devices showing up on Windows 10.

As stated before, you have to rebuilt g_multi without ecm-cdc for some Windows Compatibility issues.

To do that, you can prepare your own custom image following the official documentation.
But before compiling the kernel, between these 2 lines :
wget https://raw.githubusercontent.com/inversepath/usbarmory/master/software/kernel_conf/imx53-usbarmory-scc2.dts -O arch/arm/boot/dts/imx53-usbarmory-scc2.dts

make zImage modules imx53-usbarmory.dtb imx53-usbarmory-host.dtb imx53-usbarmory-gpio.dtb imx53-usbarmory-spi.dtb imx53-usbarmory-i2c.dtb imx53-usbarmory-scc2.dtb

You have to do this :

make menuconfig # in the menu disable CDC in the g_multi module
# Or comment CONFIG_USB_G_MULTI_CDC=y in the .config file.

Keep following the procedure in order to build you're own custom image and it should works after that under W10. 
Finally, you may have to set up the iManufacturer, idVendor and idProduct so it get recongnized immediatly by Windows, so it loads up the correct drivers.

That's it,

Thanks for your help on this. @+
Reply all
Reply to author
Forward
0 new messages