Usb 3.0 Ethernet Adapter

Hello!

We have Jetson Nano with USB 3.0 and we have need to transfer data faster than 1 Gbit/sec. For this target we bought USB 3.0 adaptor for ethernet wit 2.5 Gbits/sec.

When we connect this adaptor using usb-hub (jetson nano->usb nub->usd adaptor->Ethernet cable) we see that the connection works (pings work), but if we connect this adaptor directly in USB port of Jetson nothing work.

Could you help us to solve this problem? Maybe must we install some additional packages?

The two possibilities are:

  • Power delivery.
  • Signal quality.

Is the USB HUB externally powered? If so, and if it is a power issue, then it makes sense that the NIC works only on the HUB. Incidentally, if the Nano is powered directly via the barrel Jack, then it can deliver more power to USB than if it is itself USB powered. So the method of power for both HUB and Jetson matter.

For signal quality even a technically “correct” wiring can fail at higher bandwidth. Often this will be seen by means of a higher standard bandwidth falling back to a slower standard.

If you monitor “dmesg --follow”, then what new log lines to you see in both cases: Via HUB or via direct connect?

linuxdev, thank you for your explanation!

We have this USB adapter for Ethernet:

Is the USB HUB externally powered?

No… this is device: https://encrypted-tbn0.gstatic.com/images?q=tbn:ANd9GcTUl0X-DPzNgTFIPKeGBP2Vo5sY2Fu8pTnPmg&usqp=CAU

If we remove USB HUB the connection does not work. Maybe does this hub reduce USB 3.0 standart to USB 2.0…?

If you monitor “dmesg --follow”, then what new log lines to you see in both cases: Via HUB or via direct connect?

Tomorrow try to do it!

I couldn’t really see much on the web site. I’d like to see the “dmesg --follow” log upon plugin before talking about what speed is actually used, but a HUB which is not designed for USB3 will still work at slower protocols. Any HUB has hardware which can isolate one device’s signal quality from another device’s signal quality requirements, or vice versa, it might add problems instead of cleaning them up. So far it seems like your adapter is helping with signal quality, but it is possible that it simultaneously reduces to slower USB2 speeds. In addition to the information on plugin log messages you might also want to include the output of “lsusb -t” and “lsusb” when the device shows up under a HUB.

This is with USB-hub (now we have 1 Gib/sec, because on the other hand PC has 1 Gbit/sec.):


But when we remove usb-hub we get a lot of messages:



Would it be possible to get the “lsusb” and “lsusb -t” in both the working and failed case as files? Screenshots are hard to use. If you have serial console, then it is a simple case to get logs or copy and paste from the host PC since the serial console program (e.g., I like gtkterm) runs on the host PC. Files and text can be searched and more easily viewed or copied and pasted, which is difficult from a screenshot.

Example:
lsusb -t 2>&1 | tee log_lsusb-t.txt
lsusb 2>&1 | tee log_lsusb.txt
dmesg | tee dmesg.txt

The one thing that stands out is the cdc_ncm repeating over and over, but looking like it is not an error. There might be a non-USB issue with that adapter, but this is surprising since no error is shown.

Hello! Thank you for your help and advices! I have attached two group of text in files: with USB-hub+Ethernet adapter and without USB-HUB (only adapter, these files have postfix ‘_’).
dmesg.txt (89.0 KB)
dmesg_.txt (88.9 KB)
log_lsusb.txt (456 Bytes)
log_lsusb_.txt (394 Bytes)
log_lsusb-t.txt (727 Bytes)
log_lsusb-t_.txt (657 Bytes)

Of “dmesg.txt” (no underscore “_”) and “dmesg_.txt” (an underscore “_” in log name) it looks like both show a difference in HUBs, so I’m not sure which one is which of those. What condition is different between the two dmesg logs? Can you describe what differs for the two log files? Both do show the same repeating (and definite error, despite not calling it an error) log line:

[  499.995801] cdc_ncm 1-2.3.1:2.0 usb0: 1000 mbit/s downlink 1000 mbit/s uplink

(but the second “dmesg_.txt” does seem to get further)

The “log_lsusb_.txt” (with “_” underscore) shows one fewer device than the other log, that being:
Bus 002 Device 004: ID 0bda:8156 Realtek Semiconductor Corp.

Can I verify which HUB is used for the “lsusb” case with or without the underscore “_”? The tree view with_” runs at USB3.1 gen. 1 speeds, while the tree view without underscore “_” loses signal quality and drops back to USB2 speeds. I’m not sure if signal actually contributes to that repeated line in dmesg logs, but it seems unlikely to be the primary cause. The log does not indicate how or why the device is continuously dropping and reconnecting (there is no disconnect log, only repeated connects).

I’d like to see a verbose “lsusb” for this device in the case where it runs at the full USB3.1 speed (you’ll have to use or ignore the HUB based on whichever log shows “5000M” at the end of its description under “lsusb -t”, but I don’t know yet what the HUB setup was):
sudo lsusb -vvv -d 0bda:8156 2>&1 | tee log_verbose.txt

This is likely unrelated, but is the system being shut down cleanly? I see this:
[ 499.158614] FAT-fs (sda1): unable to read boot sector to mark fs as dirty

A side note on USB ID follows, and may not be particularly relevant, but could be of interest to some since it relates to how mature the driver detection might be:



FYI, product ID 0bda is “Realtek” (not a surprise), and within Realtek, device 8156 is not fully described. I’ve seen this ID many times on the forums, so it isn’t new, but the official repository ID list is not yet updated…this in itself might cause issues at times finding a driver, but your system did find cdc_ncm, so that isn’t an issue. There is this comment on IDs (I include because it has been described back in late 2020, and it seems many people have used this adapter since then):

Name: RTL8156 2.5GBASE-T Ethernet Adapter

Not sure if "2.5 Gigabit Ethernet Adapter" would be a better name
Windows names it a "Realtek USB 2.5GbE Family Controller"

Chip is inside a Delock 2.5Gigabit LAN Adapter (66299), Chip name according to manual, I did not break open the plastic case
iProduct 2 USB 10/100/1G/2.5G LAN

Cmdr_Zod

2020-12-31 13:03:01 


Hello!

Thank you for your help!

For the scheme:

Jetson->USB-hub->Ethernet adapter 2.5 Gbit->Ethernet

we have obtained these files:
dmesg.txt
log_lsusb.txt
log_lsusb-t.txt

For the scheme:

Jetson->Ethernet adapter 2.5 Gbit->Ethernet

We have obtained these files:
dmesg_.txt
log_lsusb_.txt
log_lsusb-t_.txt

We have obtained 2 additional files:
log_verbose_with_hub.txt (Jetson->USB-hub->Ethernet adapter 2.5 Gbit->Ethernet )
log_verbose_without_hub (Jetson->Ethernet adapter 2.5 Gbit->Ethernet )

log_verbose_with_hub.txt (9.0 KB)
log_verbose_without_hub.txt (9.3 KB)

With or without the HUB it is correctly passing the USB3 capability. What I need to know, of the lsusb logs using “-t”, which one is with HUB, and which without? I can guess, but I’d rather not, and the log names don’t differentiate. Are there two HUBs? Which port is the HUB plugged into? One is working at USB3 speed, the other has reverted to USB2 speed.

Hello!

The log-file was obtained with USB hub: log_lsusb-t.txt
It looks like this hub had usb 2.0 standard.

This log file was created without usb hub: log_lsusb-t_.txt
But in general case the connection had been destroyed.

I’m still not positive from the description of which was on the HUB or not. The reason I ask is that a USB3 device can throttle back to USB2 if signal quality is insufficient, and because this reroutes from the internal USB3 root HUB to a USB2 root HUB (rather than the USB3 HUB running a USB2 standard) it is possible that a USB3 device on a USB3 HUB can still show as USB2 (I’m trying to determine if the USB2 was due to poor signal quality on a USB3 HUB or port, or if it was truly on a USB2 HUB or USB2 port). Thus, I cannot use the tree view USB2 to determine if the device was actually restricted by port, HUB, or signal quality. Of the logs, which one is considered the failure case, and is that physically using a USB3 HUB or a USB3 port?

In fact we use USB 2.0 HUB and it works on usb 3.0 port (Jetson USB 3.0->USB-hub 2.0->Ethernet adapter 2.5 Gbit USB 3.0->Ethernet).
But it does not work: Jetson USB 3.0->Ethernet adapter 2.5 Gbit USB 3.0->Ethernet.
The failory case is: log_verbose_without_hub.txt

A USB2 HUB will force all downstream devices to become USB2 or slower even if the device itself is USB3. You will need a USB3 HUB or directly plug in to a USB3 port. If plugged in directly to a port, then which port is used?

Do you have a USB3 HUB you can test with using the same port in which the device fails when directly plugged in to a port? I ask because this can help differentiate between other causes of failure and signal quality failures. The intervening HUB can act as a method to clean up some RF signals. The verbose log shows the device can work in USB3 mode.

For the failure case without USB3 HUB, is it plugged in to a USB3 port? Which of the lsusb tree view logs corresponds to the failure case?

One additional question: Can you show the output of “lsmod” for both failure case and success case? I’d need to know which lsmod goes with success case and which goes with failure case.

Hello! Thank you for contacting me again!

Try to answer on all questions:

A USB2 HUB will force all downstream devices to become USB2 or slower even if the device itself is USB3. You will need a USB3 HUB or directly plug in to a USB3 port. If plugged in directly to a port, then which port is used?

When we directly plug to USB 3.0 port on Jetson our adapter (USB 3.0, too) nothing work. Yes, now we use USB 2.0 USB Hub and it works. But why does not it work directly?

Do you have a USB3 HUB you can test with using the same port in which the device fails when directly plugged in to a port?

Unfortunatelly - no. But we plan to buy it for testing.

For the failure case without USB3 HUB, is it plugged in to a USB3 port? Which of the lsusb tree view logs corresponds to the failure case?

These files are the failure cases:
dmesg_.txt (88.9 KB)
log_lsusb_.txt (394 Bytes)
log_lsusb-t_.txt (657 Bytes)

One additional question: Can you show the output of “lsmod” for both failure case and success case?

Yes, I have attached these files. “with_hub” is the failure case.
log_lsmod_with_hub.txt (1.0 KB)
log_lsmod_without_hub.txt (1.0 KB)

Presumably signal quality changes (not likely a problem in this case, see below). Very simple issues such as length of cable or minor impedance changes can change how such a high speed cable functions. The current HUB is only operating at USB2, and so it has far lower requirements for quality than does a USB3 signal. Even if the HUB were USB3 it is still possible it would improve signal issues just because of minor changes in capacitance/inductance/cable length. There are also reasons to test with a USB3 HUB even if signal quality is not an issue.

I recommend that if you do get a USB3 HUB that you get one which is externally powered. For testing purposes it is quite often the case that it is power delivery which needs to be first eliminated as a problem (not in your case in particular, but externally powered has a lot of advantage for many forms of testing and can debug power issues in addition to signal issues). Most externally powered USB3 HUBs also work as an ordinary unpowered HUB if the external power is removed, and so such HUBs are flexible in how they are used.

For the record, the device in question has manufacturer::product ID of “0bda:8156”. To list this specific device, and only this device, in brief mode:
lsusb -d 0bda:8156

To list this same device in verbose mode, and only this device, in verbose mode (sudo is required):
sudo lsusb -d 0bda:8156 -vvv

No need to list lsusb again, but it makes it easier to find it later so I list the ID 0bda:8156 now.

According to all logs the USB and driver has correctly loaded cdc_ncm, and any issue is related to other setup. The device should function (if other setup is complete) regardless of whether it operates at the slower USB2 speed or faster USB3 speed. So this does not seem to be a signal quality issue despite wanting to test with a USB3 HUB. It would still be advisable to test with a USB3 HUB, a lot can be gained from seeing if the USB3 mode behaves differently through a HUB version direct to port (mode changes which root_hub runs, and thus there are many different failure points when changing from USB2 to USB3 or back).

The part which also needs to be added to logs now would be what the network software sees. Can you run the commands “ifconfig” and “route” both with and without the adapter connected directly to the USB3 port, as well as when connected through the USB2 HUB? I want to see what network setup sees.

Hello!
Thank you for your continued help!
I have attached 2 couple files with and without USB-hub.
It looks like without hub Jetson does not see USB 3.0 Ethernet adapter.

We tested 2 different USB 3.0 hub with power and get the same result; USB 3.0 Ethernet adapter does not work… Only if we use USB 2.0 hub this strange device works.
ifconfig_with_hub.txt (2.2 KB)
ifconfig_without_hub.txt (2.0 KB)
route_with_hub.txt (339 Bytes)
route_without_hub.txt (262 Bytes)

In the case of a HUB an IP address is assigned to usb0, but no default route. Some bytes of traffic occur, presumably due to DHCP setup. The lack of a gateway implies no traffic will occur outside of the subnet (192.168.1.0/24). Without the HUB all drivers and USB logs still indicate the NIC should work, but no bytes traverse, and no address is assigned (perhaps DHCP never attempted address assignment). Even so, I am surprised there is no gateway or default route assigned. Is this an ordinary router?

In the case of booting with the HUB, and then again without the HUB, what do you see from:

dmesg | egrep -i '(ether|usb0|00.0a.cd.3f.b6.a8)'

Note that I am still interested in what happens with a USB3 HUB (best if externally powered).

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.