Reach Ethernet over USB to Nvidia Jetson TK1

In the Reach Docs it suggests once the Reach is partly booted and connected to a Linux machine, a usb0 network interface will be available. This doesn’t seem to be the case with the Jetson TK1. Is there something special I have to do to with the TK1 to get this working? I don’t have a WiFi network available on my application so I need a wired Ethernet connection to the Reach. I’ve also tried a USB to Ethernet converter with no luck.

Could you please post output of lsusb and ifconfig?

Thanks for the response!
Here are the results:

For my setup, I have a USB 3.0 hub connected to the TK1 with 5 Volt power supply. It seems the USB port on the board doesn’t output enough power for the Reach. Also, I have a few other devices that will be connected to the hub (motor controller, imu, and Zed). The only device connected to the hub is the Reach and all firmware is up to date.

You probably need to add usb0 network interface to /etc/network/interfaces and if you want to share the internet with Reach you also have to add a couple of firewall rules. Check this manual.

I’m not sure what distro are you running and what capabilities it has, so the steps may be a bit different. Modern distros like Ubuntu should have this working out-of-the box.

I have Ubuntu 14.04 running on the Jetson. I have added the usb0 interface:

1 # interfaces(5) file used by ifup(8) and ifdown(8) 2 # Include files from /etc/network/interfaces.d: 3 source-directory /etc/network/interfaces.d 4 5 auto eth0 6 iface eth0 inet dhcp 7 iface usb0 inet static 8 address 192.168.2.2 9 netmask 255.255.255.0 10 dns-nameservers 8.8.8.8 8.8.4.4

When running: sudo ifup usb0 Cannot find device "usb0" Failed to bring up usb0.

This is the verbose listing I get from the Reach:

[code]lsusb -d 8087:0a9e -vvv

Bus 001 Device 007: ID 8087:0a9e Intel Corp.
Couldn’t open device, some information will be missing
Device Descriptor:
bLength 18
bDescriptorType 1
bcdUSB 2.10
bDeviceClass 239 Miscellaneous Device
bDeviceSubClass 2 ?
bDeviceProtocol 1 Interface Association
bMaxPacketSize0 64
idVendor 0x8087 Intel Corp.
idProduct 0x0a9e
bcdDevice 3.10
iManufacturer 2
iProduct 3
iSerial 4
bNumConfigurations 1
OTG Descriptor:
bLength 3
bDescriptorType 9
bmAttributes 0x03
SRP (Session Request Protocol)
HNP (Host Negotiation Protocol)
Configuration Descriptor:
bLength 9
bDescriptorType 2
wTotalLength 167
bNumInterfaces 5
bConfigurationValue 1
iConfiguration 5
bmAttributes 0xe0
Self Powered
Remote Wakeup
MaxPower 500mA
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 0
bInterfaceCount 2
bFunctionClass 2 Communications
bFunctionSubClass 6 Ethernet Networking
bFunctionProtocol 0
iFunction 9
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 0
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 255 Vendor Specific (MSFT RNDIS?)
iInterface 7
CDC Header:
bcdCDC 1.10
CDC Call Management:
bmCapabilities 0x00
bDataInterface 1
CDC ACM:
bmCapabilities 0x00
CDC Union:
bMasterInterface 0
bSlaveInterface 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x83 EP 3 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x0008 1x 8 bytes
bInterval 9
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 1
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 8
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x82 EP 2 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x02 EP 2 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Association:
bLength 8
bDescriptorType 11
bFirstInterface 2
bInterfaceCount 2
bFunctionClass 2 Communications
bFunctionSubClass 2 Abstract (modem)
bFunctionProtocol 1 AT-commands (v.25ter)
iFunction 12
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 2
bAlternateSetting 0
bNumEndpoints 1
bInterfaceClass 2 Communications
bInterfaceSubClass 2 Abstract (modem)
bInterfaceProtocol 1 AT-commands (v.25ter)
iInterface 10
CDC Header:
bcdCDC 1.10
CDC Call Management:
bmCapabilities 0x00
bDataInterface 3
CDC ACM:
bmCapabilities 0x02
line coding and serial state
CDC Union:
bMasterInterface 2
bSlaveInterface 3
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x85 EP 5 IN
bmAttributes 3
Transfer Type Interrupt
Synch Type None
Usage Type Data
wMaxPacketSize 0x000a 1x 10 bytes
bInterval 9
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 3
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 10 CDC Data
bInterfaceSubClass 0 Unused
bInterfaceProtocol 0
iInterface 11
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x84 EP 4 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x03 EP 3 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Interface Descriptor:
bLength 9
bDescriptorType 4
bInterfaceNumber 4
bAlternateSetting 0
bNumEndpoints 2
bInterfaceClass 8 Mass Storage
bInterfaceSubClass 6 SCSI
bInterfaceProtocol 80 Bulk-Only
iInterface 1
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x86 EP 6 IN
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 0
Endpoint Descriptor:
bLength 7
bDescriptorType 5
bEndpointAddress 0x04 EP 4 OUT
bmAttributes 2
Transfer Type Bulk
Synch Type None
Usage Type Data
wMaxPacketSize 0x0200 1x 512 bytes
bInterval 1[/code]

Does this seem to be a driver issue?

I tested Ethernet over USB on a Ubuntu PC and everything seems to work. So I did a before and after “lsmod” to see what modules the Reach is using.

[code]diff lsmod_output1.txt lsmod_output2.txt
1a2,9

nls_iso8859_1 12713 1
rndis_wlan 50281 0
usb_storage 62209 1
rndis_host 14503 1 rndis_wlan
cdc_ether 14351 1 rndis_host
cdc_acm 28803 0
usbnet 43913 3 rndis_host,rndis_wlan,cdc_ether
mii 13934 1 usbnet
56c64
< cfg80211 484040 1 wl


cfg80211 484040 2 wl,rndis_wlan[/code]

Most of these don’t show up when I run the same test on the Jetson TK1. So I’m guessing that’s the problem.

I see in another post , @mikhail.avkhimenia mentions that the Reach can be connected to a network with a USB to Ethernet adapter. I have tried a couple with no luck. Is there an adapter that has worked for someone else?

Reach is configured as cdc_acm device in USB gadget mode, so on the host side you need a kernel (or a module) that supports it.

As for the USB to Ethernet adapters we just tested these two and they seem to work fine:

  • D-Link DUB-E100
  • ThinkPad USB 3.0 Ethernet adapter

Do they require drivers/modules to be installed on the Reach?

No, everything is already there.

I got the D-Link DUB-E100 USB to Ethernet adapter and still can’t ping usb0 on the Reach from my Windows PC. I’m connected directly to the Ethernet port with a static IP of 192.168.2.2. I’m powering the Reach with 5V through one of the DF13 connectors. It seems to boot fine and I can see the usb0 network device with an address 192.168.2.15 when I remote in. I can also see the D-Link device through “lsusb”.

Any ideas?

Try to change the connection on your computer to “Shared to other computers” (or something like that), Reach should obtain an IP address and after that you can find that address with nmap/Zenmap utility.

On Reach usb0 is tied to the interface of USB CDC. Interface of the USB-to-Ethernet adapter will have an auto-generated name.

Perfect. I now see the auto-generated network device under “ifconfig -a”. I assigned it a static IP and it works great with the Jetson. Thanks!

1 Like

i have a question to this:

i have a windows10 laptop with build in 3g internet modem.

i have connected my reach with usb to my laptop using "usb2 ethernet " driver.

reach gets ip 192.168.2.15.

i can connect from my laptop to reach - that is working.

how can i share my internet connection of my laptop with reach?

(i dont like to do a hotspot at my pc)

best regards

Andreas

if your 3g modem shows up in network adapters i suppose it should look like this:

soory it is not that simple…