Jetson AGX Xavier not booting after flashing with L4T 34.1.1

Hi all,

I’m trying to flash the Jetson AGX Xavier with the flash.sh script, the jetson was flashed successfully, but i had some weird output like the following :

*** Flashing target device started. ***
/home/uie82142/nvidia/nvidia_sdk/JetPack_5.0.1_DP_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra/bootloader/tegraflash_internal.py:2598: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  while count is not 0 and not check_ismb2():
/home/uie82142/nvidia/nvidia_sdk/JetPack_5.0.1_DP_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra/bootloader/tegraflash_internal.py:2607: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  while count is not 0:
/home/uie82142/nvidia/nvidia_sdk/JetPack_5.0.1_DP_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra/bootloader/tegraflash_impl_t234.py:858: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  while count is not 0 and not self.check_is_mb2applet():
/home/uie82142/nvidia/nvidia_sdk/JetPack_5.0.1_DP_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra/bootloader/tegraflash_impl_t234.py:865: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  while count is not 0:
Welcome to Tegra Flash
version 1.0.0
Type ? or help for help and q or quit to exit
Use ! to execute system commands

The command i’ve used :
sudo ./flash.sh jetson-agx-xavier-devkit mmcblk0p1

I also tried with the commmand, but i had the same issue
sudo ./flash.sh jetson-xavier mmcblk0p1

[ 233.7379 ] Flashing completed

[ 233.7380 ] Coldbooting the device
[ 233.7434 ] tegrarcm_v2 --ismb2
[ 233.8254 ] 
[ 233.8311 ] tegradevflash_v2 --reboot coldboot
[ 233.8348 ] Bootloader version 01.00.0000
[ 233.8653 ] 
*** The target t186ref has been flashed successfully. ***
Reset the board to boot from internal eMMC.

When the flash is completed the jetson doesn’t boot, but it’s frozen with log below


[FAILED] Failed to start Configure USB flashingport for device mode
A start job is running for end-user configuration after initial oem installation

In the attached picture, you can find the the full logs

Thanks

Hi,

Please directly try to use sdkmanager to flash your device instead of manual setup. This is to prevent you corrupt the rootfs by yourself.

Also, please directly use rel-35 instead of rel34.

Hi @WayneWWW

I need to flash it this way to add custom driver.

Thanks

Does your custom driver matter to boot up?

I’ll remove it to test the flash, and i’ll keep you in touch if it worked.

To summarize the flash steps i’m doing :

  • Donwload the sources using source_sync.sh for JetPack 5.0.1 and the sources are from the tag jetson_34.1.1

  • Compile the sources and copy the Image and the dtb in the kernel folder

  • Apply tegra binaries using sudo .apply_binaries

  • Flash the jetson with the flash script

Am i missing something ?

Thanks for support

We can discuss that after you flash with sdkmanager …

After flashing the Jetson with the sdkmanager, the boot was successfully, i guess this means that the roofts folder was corrupted, when i tried to copy the binaries that was cross-compiled using GCC-Linaro, but it’s weird in fact that SDKManager is just a GUI that use the flash.sh script, i’m wondering why the roofts is corrupted in fact i just copied into it the kernel modules.

I tried to flash without the custom module i’ve added before but with the cross-compiling approach, it stucks at the logs below :

[FAILED] Failed to start Firmware update daemon
[FAILED] Failed to start Refresh fwupd metadata and update motd
A start job is running for end-user configuration after initial oem installation

Any idea about what’s corrupt the roofts ?

Thanks

It would be better if you could share what you installed to the rootfs and what is your method to copy it.

Hi,

I dont understand what’s happening, now i’ve used the nvsdkmanager_flash.sh to flash the jetson by the command below :

sudo ./nvsdkmanager_flash.sh --nv-auto-config --username jetson

The jetson boot successfully, but i couldn’t have the accesses to ubuntu desktop, but i’m able to connect into it using ssh from my host.

linuxDev@tsl8746u:~$ ssh jetson@192.168.55.1
jetson@192.168.55.1's password: 
Welcome to Ubuntu 20.04.4 LTS (GNU/Linux 5.10.65-tegra aarch64)

 * Documentation:  https://help.ubuntu.com
 * Management:     https://landscape.canonical.com
 * Support:        https://ubuntu.com/advantage

This system has been minimized by removing packages and content that are
not required on a system that users do not log into.

To restore this content, you can run the 'unminimize' command.

247 updates can be applied immediately.
246 of these updates are standard security updates.
To see these additional updates run: apt list --upgradable

Last login: Tue Nov 22 13:43:33 2022 from 192.168.55.100

Please share the result of your lsmod.

@WayneWWW

Module                  Size  Used by
fuse                  118784  3
lzo_rle                16384  64
lzo_compress           16384  1 lzo_rle
zram                   32768  8
hid_logitech_hidpp     45056  0
input_leds             16384  0
snd_soc_tegra186_asrc    36864  1
snd_soc_tegra186_dspk    20480  2
snd_soc_tegra210_mvc    20480  2
snd_soc_tegra210_ope    28672  1
snd_soc_tegra186_arad    24576  2 snd_soc_tegra186_asrc
snd_soc_tegra210_iqc    16384  0
snd_soc_tegra210_afc    20480  6
snd_soc_tegra210_dmic    20480  4
snd_soc_tegra210_adx    28672  4
snd_soc_tegra210_i2s    24576  6
snd_soc_tegra210_mixer    45056  1
snd_soc_tegra210_amx    28672  4
snd_soc_tegra210_sfc    57344  4
snd_soc_tegra210_admaif   118784  1
snd_soc_tegra_pcm      16384  1 snd_soc_tegra210_admaif
aes_ce_blk             36864  0
crypto_simd            24576  1 aes_ce_blk
cryptd                 24576  1 crypto_simd
aes_ce_cipher          20480  1 aes_ce_blk
ghash_ce               28672  0
sha2_ce                20480  0
sha256_arm64           28672  1 sha2_ce
sha1_ce                20480  0
hid_logitech_dj        28672  0
loop                   36864  1
snd_soc_tegra_machine_driver    16384  0
pwm_fan                24576  0
snd_soc_spdif_tx       16384  0
max77620_thermal       16384  0
nct1008                24576  0
snd_soc_rt5659        159744  1
snd_soc_rl6231         16384  1 snd_soc_rt5659
ucsi_ccg               28672  0
snd_soc_tegra210_adsp   753664  1
typec_ucsi             32768  1 ucsi_ccg
typec                  40960  1 typec_ucsi
snd_soc_tegra_utils    24576  3 snd_soc_tegra210_admaif,snd_soc_tegra_machine_driver,snd_soc_tegra210_adsp
bluedroid_pm           24576  0
snd_soc_simple_card_utils    24576  1 snd_soc_tegra_utils
snd_hda_codec_hdmi     57344  4
snd_soc_tegra210_ahub  1228800  3 snd_soc_tegra210_ope,snd_soc_tegra210_sfc
nvadsp                106496  1 snd_soc_tegra210_adsp
tegra_bpmp_thermal     16384  0
tegra210_adma          28672  4 snd_soc_tegra210_admaif,snd_soc_tegra210_adsp
ahci                   45056  0
userspace_alert        16384  0
snd_hda_tegra          20480  0
libahci                40960  1 ahci
snd_hda_codec         118784  2 snd_hda_codec_hdmi,snd_hda_tegra
libata                237568  2 libahci,ahci
snd_hda_core           81920  3 snd_hda_codec_hdmi,snd_hda_codec,snd_hda_tegra
spi_tegra114           32768  0
binfmt_misc            24576  1
ina3221                24576  0
ip_tables              36864  0
x_tables               49152  1 ip_tables

Looks like nvgpu driver is not there. Without it, desktop will not show.

@WayneWWW do you have any idea why this latter is not there and how to add it ?

Hi @WayneWWW,

It seems it’s due to the copy i’m doing, there is the step i’m doing to copy the binaries :


# Define paths use to compile and define where to put the different generated files
export JETPACK=$HOME/nvidia/nvidia_sdk/JetPack_5.0.1_DP_Linux_JETSON_AGX_XAVIER_TARGETS/Linux_for_Tegra
export TOOLCHAIN_SRC=bootlin-toolchain-gcc-93 
export KERNEL_SRC=$JETPACK/sources
export KERNEL_DIR=$KERNEL_SRC/kernel/kernel-5.10
export CROSS_COMPILE=$HOME/l4t-gcc/bin/aarch64-buildroot-linux-gnu-
export KERNEL_OUT=$JETPACK/images
export KERNEL_MODULES_OUT=$JETPACK/images/modules

# Build the BSP
cd $KERNEL_SRC && make -C $KERNEL_DIR ARCH=arm64 O=$KERNEL_OUT LOCALVERSION=-tegra CROSS_COMPILE=${CROSS_COMPILE} -j$(nproc) Image && \
make -C $KERNEL_DIR ARCH=arm64 O=$KERNEL_OUT LOCALVERSION=-tegra CROSS_COMPILE=${CROSS_COMPILE} -j$(nproc) dtbs && \
make -C $KERNEL_DIR ARCH=arm64 O=$KERNEL_OUT LOCALVERSION=-tegra CROSS_COMPILE=${CROSS_COMPILE} -j$(nproc) modules

if [[ $? -ne 0 ]]
then
    echo "BSP build failed"
    exit $?
fi
echo "BSP build successfully"

# Install modules
make -C $KERNEL_DIR modules_install ARCH=arm64 O=$KERNEL_OUT LOCALVERSION=-tegra CROSS_COMPILE=$CROSS_COMPILE INSTALL_MOD_PATH=$KERNEL_MODULES_OUT
if [[ $? -ne 0 ]]
then
    echo "Installing modules failed"
    exit $?
fi
echo "Installing modules succeeded"

# Copy the binaries built to the default locations expected by the flashing tool
cd $KERNEL_OUT
echo "Copying binaries..."
sudo cp -rfv ./arch/arm64/boot/Image $JETPACK/kernel/ && \
sudo cp -rfv ./arch/arm64/boot/dts/nvidia/* $JETPACK/kernel/dtb && \
sudo cp -rf $JETPACK/rootfs $JETPACK/rootfs-bk-orig && \
sudo cp -arfv $KERNEL_MODULES_OUT/lib rootfs/ 
echo "Copying binaries done"

if [[ $? -eq 0 ]]
then
    echo "Build and copy done"
    exit $?
fi
echo "Build and copy terminated with fails"


Is there anything missing @WayneWWW ?

Hi all,

The issue was fixed using nvbuild.sh and nvcommon_build.sh to compile the sources, you can get the shell script in public sources in kernel_src archive.

Follow the documentation below to be able to cross -compile the image, dtb and modules and copying it to right paths.
https://docs.nvidia.com/jetson/archives/r35.1/DeveloperGuide/text/SD/Kernel/KernelCustomization.html