TX2 NX Boot problems after flashing kernel-dts

Hello, so I’m testing out TX2 NX and plan to add custom camera driver but I have noticed an issue even before trying to add custom stuff to the kernel.

So I set up the Jetson TX2 NX on Xavier NX Devkit with SDK Manager and everything works fine - display, USB, etc.

Now as a precaution, before adding my custom stuff, I tried to compile and flash completely stock kernel and DTB from L4T 32.6.1 sources. Compiling went without issues but after flashing kernel-dtb the display wasn’t working anymore and the Jetson was stuck on boot (kinda halfway - desktop didn’t work - it was failing on NPModel init and Docker container runtime init) unfortunately I don’t have logs for that part exactly.

   Loaded: loaded (/etc/systemd/system/nvpmodel.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Tue 2021-08-10 11:49:30 EEST; 39min ago
  Process: 5191 ExecStart=/usr/sbin/nvpmodel -f /etc/nvpmodel.conf (code=exited, status=255)
 Main PID: 5191 (code=exited, status=255)

aug 10 11:49:30 test-tx2nx nvpmodel[5191]: NVPM ERROR: failed to write PARAM GPU_POWER_CONTROL_ENABLE: ARG GPU_PWR_CNTL_EN: PATH: /sys/devices/gpu.0/power/control VAL: on
aug 10 11:49:30 test-tx2nx nvpmodel[5191]: NVPM ERROR: Error opening /sys/devices/17000000.gp10b/devfreq/17000000.gp10b/available_frequencies: 2
aug 10 11:49:30 test-tx2nx nvpmodel[5191]: NVPM ERROR: failed to read PARAM GPU: ARG FREQ_TABLE: PATH /sys/devices/17000000.gp10b/devfreq/17000000.gp10b/available_frequencies
aug 10 11:49:30 test-tx2nx nvpmodel[5191]: NVPM ERROR: Error opening /sys/devices/gpu.0/power/control: 2
aug 10 11:49:30 test-tx2nx nvpmodel[5191]: NVPM ERROR: failed to write PARAM GPU_POWER_CONTROL_DISABLE: ARG GPU_PWR_CNTL_DIS: PATH: /sys/devices/gpu.0/power/control VAL: auto
aug 10 11:49:30 test-tx2nx nvpmodel[5191]: NVPM ERROR: failed to set power mode!
aug 10 11:49:30 test-tx2nx nvpmodel[5191]: NVPM ERROR: optMask is 2, no request for power mode
aug 10 11:49:30 test-tx2nx systemd[1]: nvpmodel.service: Main process exited, code=exited, status=255/n/a
aug 10 11:49:30 test-tx2nx systemd[1]: nvpmodel.service: Failed with result 'exit-code'.
aug 10 11:49:30 test-tx2nx systemd[1]: Failed to start nvpmodel service.

Here’s the command I used to flash the device:

sudo ./flash.sh -r -k kernel-dtb -d kernel/dtb/tegra186-p3636-0001-p3509-0000-a01.dtb jetson-xavier-nx-devkit-tx2-nx mmcblk0p1

After that I copied Image file to /boot/ directory

What could be the problem here? Am I doing the flashing wrong?

You should share the dmesg or boot log from uart too.

Okay, I solved the problem myself. I have to flash two times - once kernel-dtb and second time kernel only. Then it works fine. I guess something changed with Jetpack 4.6?

Maybe the first time your kernel does not match your kernel dtb and it gets fixed in the second time after your kernel is updated to the correct one.

Actually, not pretty sure what “kernel only” here. The default kernel does not get loaded from the partition, thus, using flash.sh to flash “kernel” partition is actually flashing a uboot binary to it.

So I’m using these commands:

sudo ./flash.sh -r -k kernel -K kernel/Image jetson-xavier-nx-devkit-tx2-nx mmcblk0p1

sudo ./flash.sh -r -k kernel-dtb -d kernel/dtb/tegra186-p3636-0001-p3509-0000-a01.dtb jetson-xavier-nx-devkit-tx2-nx mmcblk0p1