Jetson eth0 port does not work

Hi all,

We have a Jetson Orin dev kit running Ubuntu 22.04 here. The Jetpack version should be R36 according to the output from $ cat /etc/nv_tegra_release. We are having some problems with the ethernet port (which I assume is the eth0 in ifconfig).

The problem might be the same as this post, where the wifi works but the cabled connection fails, but it is not clear to me how they solved their problem. Our Orin was flashed by the SDK manager.

For our ethernet port, there is no flashing light when we plug in a cable, and it shows cable unplugged in Orin. And not suprisingly we cannot ping any addresses that supposed to be connected to the port.

The output of $ ifconfig -a is in the attachment.
Jetson_Orin_eth0.txt (3.2 KB)

Please let us know if you need further information. Thanks for the help!
J

I see eth0 is listed, so the port is actually functional. What I don’t see is (A) an assigned address, nor do I see (B) bytes of traffic. This means there was no router DHCP activity, and it isn’t directly the port which failed.

Incidentally, I don’t see any bytes of traffic on any interface except for loopback (loopback would always have traffic) and the wireless, but apparently there are also some USB network devices.

Is there anything special about your router? For example, company routers are often secured and won’t provide a DHCP address to MAC addresses it doesn’t know about, although typically you would see some bytes of traffic.

Is your wired ethernet going to a switch, and then the switch to the router? A description of the wiring might help, along with whether or not you might have tried to configure a static address or made other network configuration changes.

Right now we know the driver has loaded, and the network interface is available for traffic, so finding out why the other end did not respond is the next step.

Thanks for your reply. Here are some more details.

The Orin was connected to a KUKA robot controller (basically a static IP address). My ubuntu laptop can ping the KUKA robot controller via the same cable (if I set the correct IP address on my laptop).

Could you please let us know if there are any differences on setting up the ethernet connection between a common ubuntu computer and Jetson? (or what is the proper way to setup a static IP address for Jetson Orin)

Thanks a lot!

Whatever your method of static assignment, that assignment is now gone. It isn’t a case of wired ethernet not working, it is a case of either (A) using a router with DHCP, or else (B) manually setting that static address again. This is entirely a network setup issue and won’t differ between desktop Linux, Windows, or Jetsons.

I can say that your system never tried a DHCP request from any router. There were no bytes sent or received. This means that past configuration changes are causing the ethernet to not attempt automatic assignment.

If you connected the correct USB port from Jetson to a Linux host PC, then that USB will cause the Jetson itself to appear as a router. If the PC accepts this as a router (security might not allow it), then there would be an automatic DHCP assignment by the virtual router on the Jetson such that the host PC has address 192.168.55.100, and the Jetson would have address 192.168.55.1. The host could then ping or communicate with 192.168.55.1. The Jetson could ping or communicate (depending on security) with the host PC at 192.168.55.100. This is 100% over the virtual wired ethernet of USB though, and does not touch the regular ethernet port. However, if you used one of those addresses, and it worked, you can conclude it was due to USB and not wired ethernet.

What IP address did you use? Is there a router involved currently for the wired ethernet? If there is, then you can set it to use DHCP. If not, then you can set a static address, but you need to set it to a subnet of what the host PC ethernet works with. This assumes the host PC’s ethernet is static assignment. If the host PC is itself getting its address via DHCP, then you need to let the same router assign for the Jetson (and skip static assignment as it would probably conflict with the router’s address assignment).

Thanks for your reply! We kind of got a working setup but still there is something unclear to me. Please find our updates below:

For the eth0 (port 6 in the figure below), there was some contradicting issue with the default IP address when connect to our university network, and we got it fixed. Now we can get connection to the university Internet via the port with DHCP setting. However, when I connect port 6 to our Kuka robot controller (a static address), it still cannot recognize the connection (GUI shows cable unplugged, and ifconfig same as above), even with the correct static address.

We tried to use an usb-c to ethernet adapter connected via port 10, and we got eth1 in ifconfig (so eth0 is the physical interface port 6, and eth1 is the usb-c port 10 connected with an ethernet adapter). This eth1 interface worked (connected to the robot controller) straight away.

We are probably good to go with current setup but I am just a bit confused why it works with eth1 but not eth0. If anyone knows the cause please let me know. Thanks!

Cheers,
J

I’ll comment as I read…

eth0 would be the RJ45 connector which is “item 6” in the picture.

I do not know for certain if that RJ45 port can automatically handle a crossover cable versus straight-through. For reference, all ethernet connections on computers can go straight to a switch. The crossover is inside the switch itself, and the cable used is straight-through. If you go directly between the port on the Jetson to the port on another computer (not a switch between), then you technically need a crossover cable.

Some network adapters (if combined with the right driver) can automatically detect the need for a crossover, and can adapt without that crossover cable. Not all adapters have that ability. I think Jetsons work well with that situation, and likely can handle crossover situations without a crossover cable, but I won’t guarantee it.

If a crossover is needed between two computers (without a switch between them), then both ends would likely need to work in that situation. Even if the Jetson works with that situation (without a switch intervening), it might be that the other end does not. An easy test would be to not wire them directly together, but to at least temporarily put a switch between them. If the switch allows them to work, then you would know you need a crossover cable.

If you use some form of container for something like ROS2, then the container might cause a failure of the networks to talk to each other if it is not configured correctly.

What I don’t know is the difference between which port you use and which NIC is involved by saying “eth0” or “eth1”. The numbering depends on the order of enumeration during boot, so I cannot be sure of which one is which. The physical connector is what is important for the topic of crossover cables.

The USB-C port with label 10 is a bit of a twist. You should try with one of these ports, and not with the port label 10: Labels 12 or 7. This is if you are plugging in a USB network adapter, and not if you are using the virtual wired ethernet sometimes available on the USB port shown with label 10. Are you plugging in a USB network adapter and not just a cable? If so, then use the other ports. If not, then some explanation of the virtual wired ethernet you can get on port label 10 is required.

The port with label 10 can make the Jetson itself appear to be one or more devices. Normally a port is configured as a host. A host port can handle devices, e.g., mouse or keyboard or external NIC. When configured as a device, that port makes the Jetson look like a peripheral and not as a computer (e.g., it can look like mass storage to another computer if the port is programmed for that; or it can look like a wired network adapter if programmed for that…and that port is configured to make available a virtual wired network adapter).

The virtual wired ethernet uses the USB cable, and so there is no question of crossover cable. However, that port has a fixed IP address at the Jetson end. That Jetson would be address 192.168.55.1 (the other side would have to allow DHCP setup, not static, and that host would end up with address 192.168.55.100). Actually, it is possible that if that other end is statically configured on the USB virtual address to have address 192.168.55.100, then it might still work. This would be entirely over USB though, and would not involve the concept of a crossover cable (USB-C though is interesting because it uses some fancy wiring tricks to work in either direction and/or mode).

  • If you have NIC, and if that NIC connects via USB, then try it anywhere other than the port with label 10. Check that it configures to the address you want (statically, if that is the desired case).
  • If you are using the port with label 10 directly, as a virtual wired network adapter, then know that the other side needs to have address 192.168.55.100 (which then talks to the Jetson at 192.168.55.1).
  • If you have any kind of container on your robot, then make sure it is set to pass through the correct interface and to use the correct IP address.

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