The compiled Xavier NX version doesn't work

I’m using the Xavier NX version downloaded from:

I’m following the building process from that page:

Beside the configuration:
make -C kernel/kernel-4.9/ ARCH=arm64 O=$TEGRA_KERNEL_OUT LOCALVERSION=-tegra CROSS_COMPILE=${TOOLCHAIN_PREFIX} menuconfig

I’m copying the Image and DTB to:
/home/sitshost/nvidia/nvidia_sdk/JetPack_4.6.1_Linux_JETSON_XAVIER_NX_TARGETS/
Which is the version I have programed the first time the board from the SDK manager.
After that I’m using this command to flash the board:
sudo ./flash.sh jetson-xavier-nx-devkit mmcblk0p1

After first configuration of the board: the board doesn’t wake up…

I probably can’t suggest much more if this isn’t it, but did you build target “tegra_defconfig” prior to any target “menuconfig”? It is necessary to start with a base configuration. Also, it will greatly help whoever answers if you provide a serial console boot log for the failed case.

The LOG I got after first configuration is:
[FAILED] Failed to start nvpmodel.service.
See ‘systemctl status nvpmodel.service’ for details.

What you mean by ’ It is necessary to start with a base configuration.’ ?
How do I know what is basic configuration?
When I’m programming via the ‘sdk manager’ it works ok.

A kernel will always fail if you don’t have some base configuration prior to building. For Jetsons, the normal base configuration is reached via “make tegra_defconfig”. No other command should be issued for build until that is in place, or some equivalent. There are other options you might need, but “make tegra_defconfig” is the starting basis.

nvpmodel is unrelated, except that perhaps the kernel feature which nvpmodel manipulates is missing from the kernel. Kernel source is not a single program, it is hundreds or thousands of small kernel programs, and if you don’t configure, then you’ll likely be missing important features, or else building unusable features (e.g., maybe you are building for use of some really expensive fiber channel storage when you don’t have that hardware). The failure of nvpmodel tends to imply the kernel was improperly configured.

There is a document to teach how to build kernel.

https://docs.nvidia.com/jetson/l4t/index.html#page/Tegra%20Linux%20Driver%20Package%20Development%20Guide/kernel_custom.html#

And the reason why your board failed to work is just as linuxdev’s explanation. If you just run menuconfig without having tegra_defconfig, then jetson’s driver is gone. Without jetson driver, lots of function will not work for sure.

I understand the configuration issue but I was expected when I am downloading the version of ‘Xavier NX DEV KIT’ the default base configuration will be the one for that board without required me to config it.
If there is a list some where what I have to config for that board it will help me.

Yes, the list you need is the tegra_defconfig…

OK but my question is if the default setting that I see when running the:
make -C kernel/kernel-4.9/ ARCH=arm64 O=$TEGRA_KERNEL_OUT LOCALVERSION=-tegra CROSS_COMPILE=${TOOLCHAIN_PREFIX} menuconfig
is the one that should work with the NX DEV KIT board and if not (and for me its not working) How should I know what to config in order this board to run after compiling the kernel…

That was why I shared the document to you in previous comment…

No one says the default one that would work is “menuconfig”.

I’m building the kernel according to that document without any change in kernel and still got this error message while init. ([FAILED] Failed to start nvpmodel.service.)

Could you share the commands of what you’ve tried?

Also, the exact commands and path of where you copy these image/dtb to.

I just notice something. Are you using rel-32.6.1 source code to jetpack4.6.1?

My last trial today was trying to download the sources into the ‘sdk manager’ and got the same results.
I have loaded the sources using the:
./source_sync.sh
command from directory:
~/nvidia/nvidia_sdk/JetPack_4.6.1_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra
Using the tag ‘tegra-l4t-r32.6.1’

After setting:
~/nvidia/nvidia_sdk/JetPack_4.6.1_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra/sources as my JETSON_XAVIER_NX_KERNEL_SOURCES

After running the compilation process i did the following copying from:
~/nvidia/nvidia_sdk/JetPack_4.6.1_Linux_JETSON_XAVIER_NX_TARGETS/Linux_for_Tegra
The following:
cp -rfv $JETSON_XAVIER_NX_KERNEL_SOURCES/build/arch/arm64/boot/Image kernel/
cp -rfv $JETSON_XAVIER_NX_KERNEL_SOURCES/build/arch/arm64/boot/dts/* kernel/dtb/
sudo cp -arfv $JETSON_XAVIER_NX_KERNEL_SOURCES/modules/lib rootfs/
And then power the NX in recovery mode and do this command:
sudo ./flash.sh jetson-xavier-nx-devkit mmcblk0p1

After finishing the flash I got the first screen I’m configuring User, PSW, etc and after HW configuration I saw the above log and the board doesn’t wake up.

Hi,

Jetpack4.6.1 is rel-32.7.1 source but not rel-32.6.1.

So the tag I have to enter is:
tegra-l4t-r32.7.1 ?
I’ll try and let you know

Thank you it works!!!

The binary kernel flashed has had tegra_defconfig. Source code has not, and no kernel source will have configuration setup even started. If you refer to the kernel Image itself, then this was configured, but source code should never be assumed to have any configuration needed for a Jetson until it has been set. Config is mandatory.

Just for the next time…
How should I know which release I should put in the TAG?
in the example:
for the L4T 32.4.3 they said to put tegra-l4t-r32.4.3

You need to check the website to know the mapping of l4t version and jetpack version.

https://developer.nvidia.com/embedded/linux-tegra-archive

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