Ubiquity Fails to Complete After Building JetPack 4.3 (L4T 32.3.1) From Source and Manually Flashing

Attempting to build the newest L4T release (32.3.1) from source and flash to a TX2 on a development kit carrier. I can build flash successfully, but the Ubiquity Installer (version 18.04.14.12) hangs after completing the wizard. Curious to see if any has had similar problems.

Host Setup:

I’m building the kernel within a Docker container based off Ubuntu 18.04 with all of the build requirements installed. I’m able to flash directly from within the container by mounting /dev inside the container and running in privileged mode.

Steps to Reproduce:

I followed the instructions to build and flash the kernel from https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3231/index.html. I tried to keep everything as vanilla as possible to get a minimum working example before modifying the kernel:

  1. Installed cross-compile toolchain to `/opt/gcc-linaro-7.3.1-2018.05-x86_64_aarch64-linux-gnu`.
  2. Used the SDK Manager (v1.0.0.5517) to download and install the JetPack 4.3 SDK to `/usr/src/jetpack/l4t` on my host (all following paths are relative to this SDK path).
  3. Executed `source_sync.sh` to download the sources and checkout tag `tegra-l4t-r32.3.1` for all repositories.
  4. `make O=/usr/src/jetpack/l4t/build/kernel-4.9 -j4 | tee kernel-build.log`
  5. `make O=/usr/src/jetpack/l4t/build/kernel-4.9 INSTALL_MOD_STRIP=1 modules_install INSTALL_MOD_PATH=/usr/src/jetpack/l4t/build/kernel-4.9/modules | tee modules-install.log`
  6. `cp -rf build/kernel-4.9/arch/arm64/boot/Image kernel/Image`
  7. `cp -rf build/kernel-4.9/arch/arm64/boot/dts/* kernel/dtb/`
  8. `sudo cp -rf build/kernel-4.9/modules/lib/modules/* rootfs/lib/modules/`
  9. `./apply_binaries.sh`
  10. Put DevKit into recovery mode.[./]
  11. `sudo ./flash.sh -K kernel/Image jetson-tx2 mmcblk0p1 | tee flash.log`

After flashing, the TX2 boots up (I have an HDMI output hooked up to the dev kit), and I can see the dmesg scroll. The Ubiquity Installer starts and I can enter the account info, but it hangs after completing the wizard. I know from a previous setup that the module is supposed to automatically restart, but I have to manually restart the board after it hangs. After restart the user I created has no root privileges, and I have no way to modify the system.

From what I can see, it looks like the problem occurs after “Configuring Hardware…”

Any hints as to where to look for problems?
screenshots.zip (12.5 MB)

Hi,

I am wondering if using full flash could resolve this issue or not.

Please do not use such parameter “-K kernel/Image”. Try to use “sudo ./flash jetson-tx2 mmcblk0p1”.

Hi Wayne,

What do you mean by “full flash”?

Full flash means using command “sudo ./flash jetson-tx2 mmcblk0p1”.

When you use “-K kernel/Image” you should see the flash process is very fast because it only updates the “kernel” partition on your tegra device.

This step does not update any other files on your device, so your kernel modules or even rootfs are still the old ones.

Just attempted a full flash using sudo ./flash jetson-tx2 mmcblk0p1, but no difference was observed. It doesn’t look like removing “-K kernel/Image” changed the flashing time by much, if at all.

Does anyone know of a good way to debug the Ubiquity process?

Hi,

I think we could try to narrow down this issue first.

You could try to find “fresh” Linux_for_Tegra from jetpack and replace Image under Linux_for_Tegra/kernel/.
Then you run “sudo ./flash jetson-tx2 mmcblk0p1” to see if this would reproduce issue.

Hi Wayne,

Thanks, a fresh download of JetPack 4.3 appears to complete the configuration step correctly, as the board automatically restarts after Ubiquity completes.

Steps for Successful Configuration:

  1. Use SDK Manager (v1.0.0.5517) to download and install the JetPack 4.3 SDK to `/usr/src/jetpack/l4t`
  2. Put DevKit into recovery mode.
  3. `sudo ./flash.sh jetson-tx2 mmcblk0p1 | tee flash.log`

I’m going to attempt to build the kernel and DTB from source without any modifications. I assume that building using the tegra-l4t-r32.3.1 tag for all repositories (and following the build instructions from https://docs.nvidia.com/jetson/archives/l4t-archived/l4t-3231/index.html) should output the same Image and dtb/* binaries as JetPack 4.3.

I’ll update with the results later today.

I found the root of the problem.

I had a bug in my script when installing the SDK from ~/nvidia/nvidia_sdk/Linux_for_Tegra to /usr/src/jetpack/l4t after running the SDK manager. I recursively changed the owner of the SDK directory to root, which appears to be the root cause of the issue I was seeing.

I was able to compile the kernel and flash it to the TX2 device and avoid the issues with Ubiquity.

Thanks for your help WayneWWW!