Jetpack6.2 build oot moudles failed

I’m building jetpack6..2 sources on my host PC. It’s fine to build kernel but when I build oot modules it fails in nvidia-display.
Here is the building log,

csp@csp:/NVME/xinhao/orinnx$ make -C ${TEGRA_KERNEL_OUT} ARCH=arm64 LOCALVERSION="-tegra" CROSS_COMPILE=${CROSS_COMPILE} -j32 --output-sync=target modules
make: Entering directory '/NVME/xinhao/orinnx/out'
================================================================================
make modules - conftest ...
================================================================================
mkdir -p /NVME/xinhao/orinnx/out/out/nvidia-conftest/nvidia;
cp -av /NVME/xinhao/orinnx/out/nvidia-oot/scripts/conftest/* /NVME/xinhao/orinnx/out/out/nvidia-conftest/nvidia/;
'/NVME/xinhao/orinnx/out/nvidia-oot/scripts/conftest/conftest.h' -> '/NVME/xinhao/orinnx/out/out/nvidia-conftest/nvidia/conftest.h'
'/NVME/xinhao/orinnx/out/nvidia-oot/scripts/conftest/conftest.sh' -> '/NVME/xinhao/orinnx/out/out/nvidia-conftest/nvidia/conftest.sh'
'/NVME/xinhao/orinnx/out/nvidia-oot/scripts/conftest/Makefile' -> '/NVME/xinhao/orinnx/out/out/nvidia-conftest/nvidia/Makefile'
make: Leaving directory '/NVME/xinhao/orinnx/out'
make -j 12 ARCH=arm64 \
        src=/NVME/xinhao/orinnx/out/out/nvidia-conftest/nvidia obj=/NVME/xinhao/orinnx/out/out/nvidia-conftest/nvidia \
        CC=/opt/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-gcc LD=/opt/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-ld \
        NV_KERNEL_SOURCES=/NVME/xinhao/orinnx/out/kernel/kernel-jammy-src \
        NV_KERNEL_OUTPUT=/NVME/xinhao/orinnx/out/kernel/kernel-jammy-src \
        -f /NVME/xinhao/orinnx/out/out/nvidia-conftest/nvidia/Makefile
make[1]: Entering directory '/NVME/xinhao/orinnx/out'
make[1]: warning: -jN forced in submake: disabling jobserver mode.
make[1]: Leaving directory '/NVME/xinhao/orinnx/out'
make: Entering directory '/NVME/xinhao/orinnx/out'
================================================================================
make modules - hwpm ...
================================================================================
make: Leaving directory '/NVME/xinhao/orinnx/out'
make -j 12 ARCH=arm64 \
        -C /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src \
        M=/NVME/xinhao/orinnx/out/hwpm/drivers/tegra/hwpm \
        CONFIG_TEGRA_OOT_MODULE=m \
        srctree.hwpm=/NVME/xinhao/orinnx/out/hwpm \
        srctree.nvconftest=/NVME/xinhao/orinnx/out/out/nvidia-conftest \
        modules
make[1]: Entering directory '/NVME/xinhao/orinnx/out/kernel/kernel-jammy-src'
make[1]: warning: -jN forced in submake: disabling jobserver mode.
make[1]: Leaving directory '/NVME/xinhao/orinnx/out/kernel/kernel-jammy-src'
make: Entering directory '/NVME/xinhao/orinnx/out'
================================================================================
make modules - nvidia-oot ...
================================================================================
make: Leaving directory '/NVME/xinhao/orinnx/out'
make -j 12 ARCH=arm64 \
        -C /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src \
        M=/NVME/xinhao/orinnx/out/nvidia-oot \
        CONFIG_TEGRA_OOT_MODULE=m \
        srctree.nvidia-oot=/NVME/xinhao/orinnx/out/nvidia-oot \
        srctree.hwpm=/NVME/xinhao/orinnx/out/hwpm \
        srctree.nvconftest=/NVME/xinhao/orinnx/out/out/nvidia-conftest \
        KBUILD_EXTRA_SYMBOLS=/NVME/xinhao/orinnx/out/hwpm/drivers/tegra/hwpm/Module.symvers \
        modules
make[1]: Entering directory '/NVME/xinhao/orinnx/out/kernel/kernel-jammy-src'
make[1]: warning: -jN forced in submake: disabling jobserver mode.
make[1]: Leaving directory '/NVME/xinhao/orinnx/out/kernel/kernel-jammy-src'
make: Entering directory '/NVME/xinhao/orinnx/out'
if [ ! -d "/NVME/xinhao/orinnx/out/nvgpu" ] ; then \
        echo "Directory nvgpu is not found, exiting.."; \
        false; \
fi
================================================================================
make modules - nvgpu ...
================================================================================
make: Leaving directory '/NVME/xinhao/orinnx/out'
make -j 12 ARCH=arm64 \
        -C /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src \
        M=/NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu \
        CONFIG_TEGRA_OOT_MODULE=m \
        srctree.nvidia=/NVME/xinhao/orinnx/out/nvidia-oot \
        srctree.nvidia-oot=/NVME/xinhao/orinnx/out/nvidia-oot \
        srctree.nvconftest=/NVME/xinhao/orinnx/out/out/nvidia-conftest \
        KBUILD_EXTRA_SYMBOLS=/NVME/xinhao/orinnx/out/nvidia-oot/Module.symvers \
        modules
make[1]: Entering directory '/NVME/xinhao/orinnx/out/kernel/kernel-jammy-src'
make[1]: warning: -jN forced in submake: disabling jobserver mode.
make[1]: Leaving directory '/NVME/xinhao/orinnx/out/kernel/kernel-jammy-src'
make: Entering directory '/NVME/xinhao/orinnx/out'
mkdir -p /NVME/xinhao/orinnx/out/out/nvidia-linux-header
cp -LR /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src/* /NVME/xinhao/orinnx/out/out/nvidia-linux-header
if [ "/NVME/xinhao/orinnx/out/kernel/kernel-jammy-src" != "/NVME/xinhao/orinnx/out/kernel/kernel-jammy-src" ] ; then \
        cp -LR /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src/include/* /NVME/xinhao/orinnx/out/out/nvidia-linux-header/include/ ; \
        cp -LR /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src/arch/arm64/include/* /NVME/xinhao/orinnx/out/out/nvidia-linux-header/arch/arm64/include/ ; \
        cp -LR /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src/scripts/* /NVME/xinhao/orinnx/out/out/nvidia-linux-header/scripts/ ; \
        cp /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src/System.map /NVME/xinhao/orinnx/out/out/nvidia-linux-header/ || true ; \
fi
cp -LR /NVME/xinhao/orinnx/out/nvidia-oot/include/* /NVME/xinhao/orinnx/out/out/nvidia-linux-header/include/
cat /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src/Module.symvers /NVME/xinhao/orinnx/out/nvidia-oot/Module.symvers > \
        /NVME/xinhao/orinnx/out/out/nvidia-linux-header/Module.symvers
make: Leaving directory '/NVME/xinhao/orinnx/out'
make: Entering directory '/NVME/xinhao/orinnx/out'
================================================================================
make modules - nvidia-display ...
================================================================================
make -j 12 ARCH=arm64 TARGET_ARCH=aarch64 -C /NVME/xinhao/orinnx/out/nvdisplay LOCALVERSION= NV_VERBOSE=0 KERNELRELEASE="" SYSSRC=/NVME/xinhao/orinnx/out/out/nvidia-linux-header SYSOUT=/NVME/xinhao/orinnx/out/out/nvidia-linux-header SYSSRCHOST1X=/NVME/xinhao/orinnx/out/nvidia-oot/drivers/gpu/host1x/include CC=/opt/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-gcc LD=/opt/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-ld.bfd AR=/opt/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-ar CXX=/opt/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-g++ OBJCOPY=/opt/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-objcopy modules
make -C src/nvidia
make -C src/nvidia-modeset
make[2]: Entering directory '/NVME/xinhao/orinnx/out/nvdisplay/src/nvidia'
 [ nvidia            ]  CC           generated/g_traceable_nvoc.c
make[2]: Leaving directory '/NVME/xinhao/orinnx/out/nvdisplay/src/nvidia'
make[2]: *** write jobserver: Bad file descriptor.  Stop.
Makefile:34: recipe for target 'src/nvidia/_out/Linux_aarch64/nv-kernel.o' failed
make[1]: *** [src/nvidia/_out/Linux_aarch64/nv-kernel.o] Error 2
make[1]: *** write jobserver: Bad file descriptor.  Stop.
make[1]: *** Waiting for unfinished jobs....
make[2]: Entering directory '/NVME/xinhao/orinnx/out/nvdisplay/src/nvidia-modeset'
 [ nvidia-modeset    ]  CC           ../common/softfloat/source/8086-SSE/s_f32UIToCommonNaN.c
make[2]: Leaving directory '/NVME/xinhao/orinnx/out/nvdisplay/src/nvidia-modeset'
Makefile:46: recipe for target 'src/nvidia-modeset/_out/Linux_aarch64/nv-modeset-kernel.o' failed
make[1]: *** [src/nvidia-modeset/_out/Linux_aarch64/nv-modeset-kernel.o] Error 2
make[1]: *** write jobserver: Bad file descriptor.  Stop.
Makefile:139: recipe for target 'nvidia-display' failed
make: *** [nvidia-display] Error 2
make: Leaving directory '/NVME/xinhao/orinnx/out'

Hi,
There are three tbz2 packages. Please ensure you extract all the three packages

I extract all the three packages, it comes the same err

  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/perf/perfbuf.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/mc/mc.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/sync/channel_sync.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/semaphore/semaphore_sea.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/sync/channel_sync_semaphore.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/semaphore/semaphore_hw.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/semaphore/semaphore_pool.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/ltc/ltc.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/semaphore/semaphore.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/fbp/fbp.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/fb/fb.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/regops/regops.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/gr_utils.o
make: Entering directory '/NVME/xinhao/orinnx/out'
mkdir -p /NVME/xinhao/orinnx/out/out/nvidia-linux-header
cp -LR /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src/* /NVME/xinhao/orinnx/out/out/nvidia-linux-header
if [ "/NVME/xinhao/orinnx/out/kernel/kernel-jammy-src" != "/NVME/xinhao/orinnx/out/kernel/kernel-jammy-src" ] ; then \
        cp -LR /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src/include/* /NVME/xinhao/orinnx/out/out/nvidia-linux-header/include/ ; \
        cp -LR /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src/arch/arm64/include/* /NVME/xinhao/orinnx/out/out/nvidia-linux-header/arch/arm64/include/ ; \
        cp -LR /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src/scripts/* /NVME/xinhao/orinnx/out/out/nvidia-linux-header/scripts/ ; \
        cp /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src/System.map /NVME/xinhao/orinnx/out/out/nvidia-linux-header/ || true ; \
fi
cp -LR /NVME/xinhao/orinnx/out/nvidia-oot/include/* /NVME/xinhao/orinnx/out/out/nvidia-linux-header/include/
cat /NVME/xinhao/orinnx/out/kernel/kernel-jammy-src/Module.symvers /NVME/xinhao/orinnx/out/nvidia-oot/Module.symvers > \
        /NVME/xinhao/orinnx/out/out/nvidia-linux-header/Module.symvers
make: Leaving directory '/NVME/xinhao/orinnx/out'
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/global_ctx.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/gr_intr.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/gr_falcon.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/gr.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/subctx.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/ctx_mappings.o
make: Entering directory '/NVME/xinhao/orinnx/out'
**================================================================================**
**make modules - nvidia-display ...**
**================================================================================**
**make -j 12 ARCH=arm64 TARGET_ARCH=aarch64 -C /NVME/xinhao/orinnx/out/nvdisplay LOCALVERSION= NV_VERBOSE=0 KERNELRELEASE="" SYSSRC=/NVME/xinhao/orinnx/out/out/nvidia-linux-header SYSOUT=/NVME/xinhao/orinnx/out/out/nvidia-linux-header SYSSRCHOST1X=/NVME/xinhao/orinnx/out/nvidia-oot/drivers/gpu/host1x/include CC=/opt/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-gcc LD=/opt/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-ld.bfd AR=/opt/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-ar CXX=/opt/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-g++ OBJCOPY=/opt/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-objcopy modules**
**make -C src/nvidia**
**make -C src/nvidia-modeset**
**make[2]: Entering directory '/NVME/xinhao/orinnx/out/nvdisplay/src/nvidia'**
** [ nvidia            ]  CC           generated/g_chips2halspec_nvoc.c**
**make[2]: Leaving directory '/NVME/xinhao/orinnx/out/nvdisplay/src/nvidia'**
**make[2]: *** write jobserver: Bad file descriptor.  Stop.**
**Makefile:34: recipe for target 'src/nvidia/_out/Linux_aarch64/nv-kernel.o' failed**
**make[1]: *** [src/nvidia/_out/Linux_aarch64/nv-kernel.o] Error 2**
**make[1]: *** write jobserver: Bad file descriptor.  Stop.**
**make[1]: *** Waiting for unfinished jobs....**
**make[2]: Entering directory '/NVME/xinhao/orinnx/out/nvdisplay/src/nvidia-modeset'**
** [ nvidia-modeset    ]  CC           ../common/shared/nvstatus/nvstatus.c**
**make[2]: Leaving directory '/NVME/xinhao/orinnx/out/nvdisplay/src/nvidia-modeset'**
**Makefile:46: recipe for target 'src/nvidia-modeset/_out/Linux_aarch64/nv-modeset-kernel.o' failed**
**make[1]: *** [src/nvidia-modeset/_out/Linux_aarch64/nv-modeset-kernel.o] Error 2**
**make[1]: *** write jobserver: Bad file descriptor.  Stop.**
**Makefile:139: recipe for target 'nvidia-display' failed**
**make: *** [nvidia-display] Error 2**
make: Leaving directory '/NVME/xinhao/orinnx/out'
make: *** Waiting for unfinished jobs....
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/ctx.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/zcull.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/zbc.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/gr_setup.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/hwpm_map.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/gr_config.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/fs_state.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/pmu/pmu.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/pmu/allocator.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/pmu/pmu_mutex.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/obj_ctx.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/pmu/fw/fw.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/gr/gr_ecc.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/pmu/fw/fw_ns_bootstrap.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/netlist/netlist.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/pmu/fw/fw_ver_ops.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/pmu/perfmon/pmu_perfmon_sw_gm20b.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/init/nvgpu_init.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/pmu/perfmon/pmu_perfmon_sw_gv11b.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/pmu/pg/pmu_aelpg.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/pmu/pmu_debug.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/pmu/pg/pg_sw_gp10b.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/pmu/perfmon/pmu_perfmon.o
  CC [M]  /NVME/xinhao/orinnx/out/nvgpu/drivers/gpu/nvgpu/common/pmu/pg/pmu_pg.o

Hi,
Do you run this command:

$ make -C ${TEGRA_KERNEL_OUT} ARCH=arm64 LOCALVERSION="-tegra" CROSS_COMPILE=${CROSS_COMPILE} -j32 --output-sync=target modules

It looks wrong. Per developer guide:

Kernel Customization — NVIDIA Jetson Linux Developer Guide

You should run

$ export CROSS_COMPILE=<toolchain-path>/bin/aarch64-buildroot-linux-gnu-
$ export KERNEL_HEADERS=$PWD/kernel/kernel-jammy-src
$ make modules

Please also refer to full steps in
No data from Joystick Logitech-f710 - #10 by DaneLLL

I set these in my PC and run my own command to build

    export TEGRA_KERNEL_OUT=/NVME/xinhao/orinnx/out
    export KERNEL_HEADERS=/NVME/xinhao/orinnx/out/kernel/kernel-jammy-src
    export CROSS_COMPILE=/opt/aarch64--glibc--stable-2022.08-1/bin/aarch64-buildroot-linux-gnu-

Is this not same as guide? TEGRA_KERNEL_OUT contains all three packages.
It’s okay to build kernel and dtbs

Followed by developer guide, I can build oot modules successfully. Why in my custom folder, it’s failed…
I run make modules in TEGRA_KERNEL_OUT is fine
but I run

make -C ${TEGRA_KERNEL_OUT} LOCALVERSION="-tegra" CROSS_COMPILE=${CROSS_COMPILE} -j32 --output-sync=target modules

get failed …

Hi,
Please follow the steps in developer guide. Other steps are not validated and may not work properly.

I found that removing --output-sync=target from my command is okay for build oot modules. That’s too strange

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