Facing compilation error while building SPE Firmware of release 32.5

Hello,
The error is different from former error log.

Why an extra ‘"’ is in the path?
/home/ayyappan/nvidia/SPE/l4t-rt/rt-aux-cpu-demo/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-”gcc

It should call /home/ayyappan/nvidia/SPE/l4t-rt/rt-aux-cpu-demo/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc

Maybe the character changes when copy/paste from browser?
Please check the script.

br
ChenJian

What do you see from:

ls -l /home/ayyappan/nvidia/SPE/l4t-rt/rt-aux-cpu-demo/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-*

I think this extra is coming from the below env set which you gave
export CROSS_COMPILE=${HOME}/nvidia/SPE/l4t-rt/rt-aux-cpu-demo/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-

I see below: for ls -l /home/ayyappan/nvidia/SPE/l4t-rt/rt-aux-cpu-demo/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-*

No.
Correct ‘"’ should not be included in string define.

There are lots of reference in internet, like
Bash Scripting - How to Initialize a String - GeeksforGeeks

You can add some debug code in the script, like echo to check the string. That should not be hard.

br
Chenjian

what is “No. and Correct ‘”’ should not be included in string define" ???

You have suggested the below and I just changed the path.

building-pc:~/Work/jetson_sdk/32.5/spe-fw.orig$ cat spe-firmware-build.sh
#!/bin/bash
set -e
export TOP=“${HOME}/Work/jetson_sdk/32.5/spe-fw.orig/l4t-rt”
export CROSS_COMPILE=“${HOME}/Tools/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-”
export FREERTOS_DIR=${TOP}/FreeRTOSV8.1.2/FreeRTOS/Source
export FREERTOS_COMMON_DIR=${TOP}/freertos-common

To build for Jetson AGX

cd ${TOP}/rt-aux-cpu-demo && make -j8 bin_t19x && make docs

Hello,
You can add some echo to check.
Like the link I listed, the string definition in bash script like:

a=“Hello”

echo $a

The result should be
Hello

Not
Hello"

You can also remove ‘"’ in the script.

br
Chenjian

I removed the “” from the script and check but the problem is same. I think that is not the issue.

Do I need to try this in sudo mode?

You can check the image below:

Hello,
That’s a good start, and at least, makefile is called correct bin.

You can try following:

  1. execute the xxx/xx-gcc directly, and check whether it has the same problem.
  2. run ldd xxx/xxx-gcc to check whether some so is missed.

br
Chenjian

This “gcc-arm-none-eabi-10.3-2021.10” tool chain is not giving the env issue but its throwing the other errors.

arch64-binfmt-P: Could not open ‘/lib/ld-linux-aarch64.so.1’: No such file or directory
aarch64-binfmt-P: Could not open ‘/lib/ld-linux-aarch64.so.1’: No such file or directory
aarch64-binfmt-P: Could not open ‘/lib/ld-linux-aarch64.so.1’: No such file or directory
aarch64-binfmt-P: Could not open ‘/lib/ld-linux-aarch64.so.1’: No such file or directory
aarch64-binfmt-P: Could not open ‘/lib/ld-linux-aarch64.so.1’: No such file or directory
aarch64-binfmt-P: Could not open ‘/lib/ld-linux-aarch64.so.1’: No such file or directory

ayyappan@ubuntu-22:~/nvidia/SPE/l4t-rt/rt-aux-cpu-demo$ ldd /home/ayyappan/nvidia/SPE/l4t-rt/rt-aux-cpu-demo/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc
not a dynamic executable
ayyappan@ubuntu-22:~/nvidia/SPE/l4t-rt/rt-aux-cpu-demo$

what’s the host PC environment?
Mine is Ubuntu 18.04. And I think 20.04 should also be good.

That looks like host PC environment issue, not SPE compiling issue.
Cross toolchain should be able to run first.

Correct result should look like:
building-pc:~/Work/jetson_sdk/32.5/spe-fw$ ldd /home/chenjian/Tools/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc
linux-gate.so.1 (0xf7f28000)
libm.so.6 => /lib/i386-linux-gnu/libm.so.6 (0xf7dee000)
libc.so.6 => /lib/i386-linux-gnu/libc.so.6 (0xf7c12000)
/lib/ld-linux.so.2 (0xf7f2a000)

building-pc:~/Work/jetson_sdk/32.5/spe-fw$ ${HOME}/Tools/gcc-arm-none-eabi-4_8-2014q3/bin/arm-none-eabi-gcc
arm-none-eabi-gcc: fatal error: no input files
compilation terminated.

br
ChenJian

I fixed the issue by reading this post:

Now its compiling. :) Thanks for your efforts.

Hi Chen Jian,

What is this below docs error?? Do I really need to build docs or should I remove from makefile?

mkdir -p /home/ayyappan/nvidia/SPE/l4t-rt/rt-aux-cpu-demo/out/docs
DOXYGEN /home/ayyappan/nvidia/SPE/l4t-rt/rt-aux-cpu-demo/doc/doxyfile
make: *** [Makefile:375: /home/ayyappan/nvidia/SPE/l4t-rt/rt-aux-cpu-demo/out/docs/.stamp] Error 127

Regards,
Ayyappan R

You can skip doc building and refer to online SPE doc.

Or you can check why doxygen fails.
Correct result should be:

building-pc:~/Work/jetson_sdk/32.5/spe-fw$ doxygen
error: Doxyfile not found and no input file specified!
Doxygen version 1.8.13
Copyright Dimitri van Heesch 1997-2015

You can use doxygen in a number of ways:

  1. Use doxygen to generate a template configuration file:
    doxygen [-s] -g [configName]

    If - is used for configName doxygen will write to standard output.

  2. Use doxygen to update an old configuration file:
    doxygen [-s] -u [configName]

  3. Use doxygen to generate documentation using an existing configuration file:
    doxygen [configName]

    If - is used for configName doxygen will read from standard input.

  4. Use doxygen to generate a template file controlling the layout of the
    generated documentation:
    doxygen -l [layoutFileName.xml]

  5. Use doxygen to generate a template style sheet file for RTF, HTML or Latex.
    RTF: doxygen -w rtf styleSheetFile
    HTML: doxygen -w html headerFile footerFile styleSheetFile [configFile]
    LaTeX: doxygen -w latex headerFile footerFile styleSheetFile [configFile]

  6. Use doxygen to generate a rtf extensions file
    RTF: doxygen -e rtf extensionsFile

If -s is specified the comments of the configuration items in the config file will be omitted.
If configName is omitted `Doxyfile’ will be used as a default.

-v print version string

br
ChenJian

Mine is Ubuntu 22.04.

We can close this thread. Its compiling now.

BTW, Ubunut 22.04 is good for compiling 32.7.3 BSP?

Though this is solved, I am curious, was this always running in a VM? That would explain a lot when files are present with correct permissions, but they cannot be found…it implies two different environments.

Btw, in theory, if you have the right release of cross tools and libraries to link against (no libraries needed if it is bare metal), then it should work with an Ubuntu 22.04 host PC. However, there is a lot going on, and I would recommend 18.04 if you run into any issues. The cross tools are known to work on 18.04 for the 32.7.3 BSP, but it would be a matter of testing and luck if they can be installed in 22.04 and work as expected.

see this Facing the below errors while building the kernel for Javier NX module - #21 by ayyappan.rathinam thread.

One of nvidia employee mentioned that it wont work as expected in ubuntu 22.04. I believe all nvidia guys are using ubuntu 18.04

YEs. I am using VM always. and nvidia is recommending dual os. I mean ubuntu 18.04

Hi chen Jian,

DOXYGEN errors resolved after install the latest version

gcc error resolved by following the below link

now SPE firmware is compiled without any errors. Plz close this topic

Thanks

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