/bin/sh: 1: ./scripts/dtc/dtc: Exec format error

In jetson nano, I have this problem when compiling u-boot with aarch64-linux-gnu. I saw that the problem under this link is similar to mine, and I still can’t solve it according to its method

I can’t fully answer, but was this compiled on a Jetson, or was it compiled from a host PC?

The typical reason for seeing this error is that code was compiled for an architecture which is different than where it is being executed, e.g., the Nano is an ARMv8-a architecture, and a desktop PC is either amd64 or x86_64.

The bootloader stage might make things more complicated since most ARM boot stages start out in a 32-bit compatibility mode. That 32-bit compatibility is a superset of the ARMv7-a architecture (all of ARMv7-a is included in the instruction set, but it also has the ability to issue an interrupt that can switch to the native ARMv8-a mode). I forget what the answer was, but there was also a similar error on a kernel module insert which was neither a typical, nor expected reason (I wish I had a bookmark to that topic).

Knowing you’ve compiled with the correct compiler would help. The official documents tend to provide that information, but it is possible on earlier hardware or software releases that might differ from the compiler release used for the main kernel (don’t know, just speculating).

Thank you
I compiled it on jetson nano. I guess it is also caused by different compilation of code and framework, but I don’t know how to modify it yet.

  • Which exact download of source code did you use?
  • What are the exact configurations you set up in the source code?
  • What do you set up for your environment (such as exporting build options in the environment) before compiling?
  • What is your exact compile command?
  • What release of software do you use for the compiler, and where or how did you download it? For example, what do you see from:
    • nvcc --version (this one is irrelevant to non-CUDA compiles, but it might be nice to know)
    • gcc --version
  • What release is your L4T (use “head -n 1 /etc/nv_tegra_release”)?

Basically I’m looking for a way to exactly reproduce your steps.

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