Error message when building NVIDIA tree external module

JetPack 6.1, host:ubunt22.04
sudo make modules ARCH=arm64 CROSS_COMPILE=/home/wel/l4t-gcc/aarch64–glibc–stable-2022.08-1/bin/aarch64-buildroot-linux-gnu- KERNEL_HEADERS=/home/wel/nvidia/Linux_for_Tegra/source/kernel/kernel-jammy-src
报如下错误,这是什么原因引起:
make[1]: 进入目录“/home/wel/nvidia/Linux_for_Tegra/source/kernel/kernel-jammy-src”
CC [M] /home/wel/nvidia/Linux_for_Tegra/source/nvidia-oot/drivers/spi/spi-aurix-tegra.o
CC [M] /home/wel/nvidia/Linux_for_Tegra/source/nvidia-oot/drivers/scsi/ufs/ufs-tegra-common.o
CC [M] /home/wel/nvidia/Linux_for_Tegra/source/nvidia-oot/drivers/thermal/pex9749-thermal.o
CC [M] /home/wel/nvidia/Linux_for_Tegra/source/nvidia-oot/drivers/misc/nvsciipc/nvsciipc.o
CC [M] /home/wel/nvidia/Linux_for_Tegra/source/nvidia-oot/drivers/soc/tegra/fuse/kfuse.o
CC [M] /home/wel/nvidia/Linux_for_Tegra/source/nvidia-oot/drivers/scsi/ufs/ufs-provision-dummy.o
CC [M] /home/wel/nvidia/Linux_for_Tegra/source/nvidia-oot/drivers/watchdog/softdog-platform.o
CC [M] /home/wel/nvidia/Linux_for_Tegra/source/nvidia-oot/drivers/watchdog/watchdog-tegra-t18x.o
In file included from ./include/linux/module.h:22,
from /home/wel/nvidia/Linux_for_Tegra/source/nvidia-oot/drivers/misc/nvsciipc/nvsciipc.c:13:
./include/linux/module.h:183:43: 错误: expected ‘,’ or ‘;’ before ‘KBUILD_MODFILE’
183 | define MODULE_FILE MODULE_INFO(file, KBUILD_MODFILE);
| ^~~~~~~~~~~~~~
./include/linux/moduleparam.h:26:61: 附注: in definition of macro ‘__MODULE_INFO’
26 | = __MODULE_INFO_PREFIX __stringify(tag) “=” info
| ^~~~
./include/linux/module.h:183:25: 附注: in expansion of macro ‘MODULE_INFO’
183 | define MODULE_FILE MODULE_INFO(file, KBUILD_MODFILE);
| ^~~~~~~~~~~
./include/linux/module.h:230:34: 附注: in expansion of macro ‘MODULE_FILE’
230 | define MODULE_LICENSE(_license) MODULE_FILE MODULE_INFO(license, _license)
| ^~~~~~~~~~~
/home/wel/nvidia/Linux_for_Tegra/source/nvidia-oot/drivers/misc/nvsciipc/nvsciipc.c:865:1: 附注: in expansion of macro ‘MODULE_LICENSE’
865 | MODULE_LICENSE(“GPL v2”);

Hi,
It looks like it’s built with toolchain of x86 host PC. Please try the steps:
No data from Joystick Logitech-f710 - #10 by DaneLLL

之前的错误没有,但出现了下面问题:
LD [M] /home/wel/nvidia/Linux_for_Tegra/source/nvgpu/drivers/gpu/nvgpu/nvgpu.o
MODPOST /home/wel/nvidia/Linux_for_Tegra/source/nvgpu/drivers/gpu/nvgpu/Module.symvers
CC [M] /home/wel/nvidia/Linux_for_Tegra/source/nvgpu/drivers/gpu/nvgpu/nvgpu.mod.o
LD [M] /home/wel/nvidia/Linux_for_Tegra/source/nvgpu/drivers/gpu/nvgpu/nvgpu.ko
make[1]: 离开目录“/home/wel/nvidia/Linux_for_Tegra/source/kernel/kernel-jammy-src”
mkdir -p /home/wel/nvidia/Linux_for_Tegra/source/out/nvidia-linux-header
cp -LR /home/wel/nvidia/Linux_for_Tegra/source/kernel/kernel-jammy-src/* /home/wel/nvidia/Linux_for_Tegra/sourceut/nvidia-linux-header
cp: 无法复制循环的符号链接 ‘/home/wel/nvidia/Linux_for_Tegra/source/kernel/kernel-jammy-src/kernel_out/source/keel_out’
make: *** [Makefile:126:nvidia-headers] 错误 1
root@wel-22-04-5:/home/wel/nvidia/Linux_for_Tegra/source#

Hi,
So you still hit error in step 3:

Kernel Customization — NVIDIA Jetson Linux Developer Guide 1 documentation

3. Run the following commands to build the Jetson Linux kernel and its in-tree modules:

$ export CROSS_COMPILE=<toolchain-path>/bin/aarch64-buildroot-linux-gnu-
$ make -C kernel

Hello, I’m following this guide.

when I run make modules, I got same issue:

In file included from ./include/linux/module.h:22,
                 from /home/orin/Linux_for_Tegra/source/nvidia-oot/drivers/misc/nvsciipc/nvsciipc.c:13:
./include/linux/module.h:183:43: error: expected ‘,’ or ‘;’ before ‘KBUILD_MODFILE’
  183 | #define MODULE_FILE     MODULE_INFO(file, KBUILD_MODFILE);
      |                                           ^~~~~~~~~~~~~~
./include/linux/moduleparam.h:26:61: note: in definition of macro ‘__MODULE_INFO’
   26 |                 = __MODULE_INFO_PREFIX __stringify(tag) "=" info
      |                                                             ^~~~
./include/linux/module.h:183:25: note: in expansion of macro ‘MODULE_INFO’
  183 | #define MODULE_FILE     MODULE_INFO(file, KBUILD_MODFILE);
      |                         ^~~~~~~~~~~
./include/linux/module.h:230:34: note: in expansion of macro ‘MODULE_FILE’
  230 | #define MODULE_LICENSE(_license) MODULE_FILE MODULE_INFO(license, _license)
      |                                  ^~~~~~~~~~~
/home/orin/Linux_for_Tegra/source/nvidia-oot/drivers/misc/nvsciipc/nvsciipc.c:865:1: note: in expansion of macro ‘MODULE_LICENSE’
  865 | MODULE_LICENSE("GPL v2");
      | ^~~~~~~~~~~~~~

I’m compiling the kernel natively on my Jetson device.
How can I resolve this issue?

Hi,
Please have a x86 host PC. The steps are for crossing compilation on a x86 host.

Thank you for your reply.

Can’t I build everything natively on the Jetson without using an x86 PC?

NVidia dont have eloborate steps for building on native jetson I think

I was able to temporarily fix the error by adding KBUILD_CFLAGS_MODULE += -DMODULE at the end of the Linux_for_Tegra/source/nvidia-oot/drivers/misc/nvsciipc/Makefile.

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