USB to USB communication between Jetson TX1 and other Linux platforms

Hi,

Can anyone help me with USB to USB communication (image file transfers) between Jetson TX1 and any other Linux platform. I’m very new to Linux environment and programming it. Till now what search I have done, tells me that I need to use “usbnet” so that local network can be created over USB connection. Also hardware required for the same would be USB A to USB A host to host cable or cheap method is using PCI which converts USB A to USB B so that both Linux systems start acting as slaves. Does anyone has suggestions on the same or any new solution for this problem?

I have not done this, but some explanation may help clarify. This is under USB2 or older; USB3 cables differ, but technically there is still only a host or device…type-C is a mix of of cables and may be physically interchangeable at each end, but electrically the following still applies.

USB forbids a type-A connector going to another type-A connector. Type-A is defined for host, type-B is defined for device. All communications is controlled by host, the pipe is not symmetric the way ethernet is. One end must have a type-B connector. The micro-OTG port of the Jetson is capable of this (OTG accepts either type-A or type-B, but an ID pin makes one and only one of those configurations available at any moment…non-OTG does not do this under USB2 or older), but not programmed to do so. Customization would be required.

The Linux kernel “gadget” framework is designed to somewhat simplify doing this, and is probably where you should start if you are going to build this yourself. There may already be some third party solutions out there under the gadget framework so the OTG port could look like an ethernet card or look like USB mass storage (the Jetson would be a device, the host would be the other computer using the USB device).

If you just want communications, you may be better off just using ethernet.

Thank you for your answer. A special type of host-to-host communication cable is required for USB to USB communication. I’m not using ethernet due to physical switch size constraints. I would look into the OTG solution given by you. Are there any other thread or tutorials which give detailed explanation of how to configure OTG as device mode?

See:
https://www.kernel.org/doc/Documentation/usb/gadget_configfs.txt
http://www.linux-usb.org/gadget/
https://devtalk.nvidia.com/default/topic/952472/jetson-tx1/jtx1_usb_as-device/post/4937794/#4937794