Can't access Jetson TX1 after upgrade to Ubuntu 16.04. USB, Ethernet not works

Hi,
I just recived new Jetson TX1, and decided to install Ubuntu 16.04 just after unboxing. After installation, USB and Ethernet ports does not work properly.

During boot, Ethernet connection is being established for about 5 seconds, but I can’t do ssh during this time. After that I get error message:

tegra-xhci tegra-xhci: failed to init firmware from filesystem tegra21x_xusb_firmware

Log screen shows, but I cant use USB devices or Ethernet connection.

Any ideas how to access this Jetson?

Was the install to Ubuntu 16.04 started (and completed fully or partially…by JetPack or via command line)? If so, by what method? If not, then are you using wired networking at all, or wireless?

I’m tempted to believe RMA would be justified, but there are a few things to check first which depend on the above questions.

Thanks for quick reaction. I used command line “do-release-upgrade” via ssh using Ethernet connection. There was no errors during installation.

Fortunately I managed to connect keyboard to micro-USB port via adapter, this port was working correctly despite tegra21x_xusb_firmware error. With access to shell I was able to connect to WiFi, and now I’m fixing everything.

You may want to check “sha1sum -c /etc/nv_tegra_release”. I believe using the Ubuntu release upgrade system probably breaks more than just the USB hardware. During a normal flash the “apply_binaries.sh” script overlays the stock Ubuntu with the nVidia-specific hardware access files…upgrading Ubuntu via the native mechanism probably removes all of those nVidia-specific upgrades. I’m wondering if things were really fixed completely.

“sha1sum -c /etc/nv_tegra_release” gives this output:

/usr/lib/arm-linux-gnueabihf/tegra/libnvmmlite_image.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvomx.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvmedia.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvmmlite_utils.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libglx.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libscf.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvexif.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvrm_gpu.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvmm_parser.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvrm.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvmm_contentpipe.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvos.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvtnr.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvavp.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvmmlite_video.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvodm_imager.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvjpeg.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvtvmr.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvdc.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libtegrav4l2.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvmm.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvapputil.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvcameratools.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvcam_imageencoder.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvmmlite_audio.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvmm_utils.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvomxilclient.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvwinsys.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnveglstreamproducer.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvrm_graphics.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvddk_2d_v2.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvtestresults.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvparser.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvddk_vic.so: OK
/usr/lib/arm-linux-gnueabihf/tegra/libnvmmlite.so: OK
/usr/lib/xorg/modules/drivers/nvidia_drv.so: OK
/usr/lib/xorg/modules/extensions/libglx.so: OK

I figured out, that instead of eth0 device, now I have dummy0 device:

lshw -C network:

*-network:1 DISABLED
description: Ethernet interface
physical id: 2
logical name: dummy0
serial: 32:57:f4:98:63:cd
capabilities: ethernet physical
configuration: broadcast=yes

Ifconfig -a shows a lot of (strange for me) interfaces:

ifconfig -a:

dummy0 Link encap:Ethernet HWaddr 32:57:f4:98:63:cd
BROADCAST NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

ip6tnl0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
NOARP MTU:1452 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

rmnetctl Link encap:IPIP Tunnel HWaddr
NOARP MTU:1500 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

sit0 Link encap:IPv6-in-IPv4
NOARP MTU:1480 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

tunl0 Link encap:IPIP Tunnel HWaddr
NOARP MTU:0 Metric:1
RX packets:0 errors:0 dropped:0 overruns:0 frame:0
TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:0 (0.0 B) TX bytes:0 (0.0 B)

I still can’t connect via USB 3.0 and Ethernet. Is there some way to reinstall tegra21x_xusb_firmware?

A dummy interface is a virtual interface to stand in for a real device, possibly on a virtual network or networks where the actual connection may not exist at all times. This should be present on most systems. A real wired ethernet interface would not be removed by the existence of a dummy interface. Note that if a real interface disappears, then there is a chance that this will cause the dummy interface to be needed until a real interface is brought back up.

If firmware is missing on R24.2+, then it may be it was just missing from the initrd file, or the key/value pair in extlinux.conf for this is missing. I do not know why this would be the case after a fresh flash.

I would suggest flashing again with a completely reinstalled rootfs directory (and apply_binaries.sh) to be sure of what is going in.

Thanks for advice, I will do it. As I understand, I should just follow this instruction, right? Or I need to uninstall/remove previous version earlier?

http://developer.download.nvidia.com/embedded/L4T/r23_Release_v1.0/l4t_quick_start_guide.txt

The “flash” step does not need anything special on the Jetson side…it will overwrite what is there already. If the sample rootfs and apply_binaries.sh step have an error, you’d want to delete content in sample rootfs, unpack again with sudo, and apply_binaries.sh again with sudo. If rootfs was ok, you just need to run the flash again. Example:

sudo ./flash.sh -S 14580MiB jetson-tx1 mmcblk0p1

In the case of using JetPack you could delete the whole thing and unpack it again on the host.

Thank you linuxdev, your solution solved problem.

Hi
I have jetson TX1. When I updated ubuntu from 14 to 16 many problems appeared.
I followed the steps to setup the flash but when I ran

sudo ./flash.sh -S 14580MiB jetson-tx1 mmcblk0p1

I get the following error

line 534 ./mksparse: cannot execute binary file: Exec format jetson TX1

What shall I do to solve that?
I tried Tegra210_Linux_R24.2.1_aarch64 and the version 24.2.0 but both show the same error.

Was this run from a desktop PC host? The flash cannot run directly on the Jetson (wrong architecture…it runs on PC with micro-B USB cable connected while the Jetson is in recovery mode). Also, don’t forget the “sudo ./apply_binaries.sh” after unpacking the sample rootfs.

R24.2.1 is indeed the most current and recommended release for a TX1. There is the driver package plus the sample rootfs (the above apply_binaries.sh modifies the rootfs once unpacked), so you will see both a driver package and a sample rootfs. The sample rootfs is purely Ubuntu, the apply_binaries.sh step puts the NVIDIA-specific driver files within that, and the driver package does the flash work over USB.

I was trying to flash it directly on the board. I did not know that I have to connect the board with a host to flash it.
It is ok now. Thank you all!