Utilize USB-C for Bulk Storage USB Device

  • I've got a VOXL2, and I need a way to enable it to act as USB Device Mode as bulk storage. Currently have been trying to setup RNDIS, but it is failing when attaching the RNDIS function.

    Is it possible to utilize the USB-C connection used for adb and configure it as a USB bulk storage device?

    This is the setup script I am working against. It is failing here:

    mkdir -p "${func}"
    + mkdir functions/rndis.usb0
    mkdir: cannot create directory ‘functions/rndis.usb0’: No such file or directory

  • Dev Team

    We don't know how to do this immediately, but we'll dig some and see if we can get anywhere.

  • @Chad-Sweet Awesome, thank you!

  • Dev Team

    We have dug into this a bit more, but have not had a chance to try anything. Passing along information in case you want to dig in more

    Note: please be comfortable reflashing a bricked VOXL 2. Changing USB composition could definitely put the board into a state you cannot access it any longer

    Default USB Composition:
    901D - DIAG + ADB

    USB Composition with Mass Storage:
    902B - RNDIS + ADB + Mass Storage
    90AD - DIAG + ADB + MODEM + NMEA + QMI_RMNET + Mass Storage + DPL
    90B0 - DIAG + DUN + NMEA + RMNET + Mass Storage + DPL
    F000 - Mass Storage

    The setting is configured in /sbin/start_usb

    That script though is confusing and we're not really sure which lines are taking effect and what is the right way to set USB composition.

  • No worries, and yeah I've already qdl'd a few things tickering around with trying to get it to work, so comfortable with taking it from bricked to workable is a process I'm comfortable with.

    That bash script is a bit more universal based on a few things, but essentially it is ran on boot and sets up bulk + rndis on a device, and then starts up a little C program as the ffs driver. It's for NVIDIA Tegra, but should be universal as long as the kernel has the modules it needs.

    I didn't know where the usb boot startup stuff on the VOXL2 was, but I'll poke around a bit with that and see if I can get that to work.


    • Nate

Log in to reply