I have been using L4T 32.3.1 for the last couple years by building the kernel debian package with the command make ARCH=arm64 O="$TEGRA_KERNEL_OUT_DIR" -j4 deb-pkg
I’m now trying to build the L4T 32.5.1 kernel but it fails with the error message
./usr/include/net/pgdrv.h:38: included file 'linux/cdev.h' is not exported
/home/sdmello/build/xavier-nx/Linux_for_Tegra/sources/kernel/kernel-4.9/scripts/Makefile.headersinst:169: recipe for target 'usr/include/net/.check' failed
make[7]: *** [usr/include/net/.check] Error 123
After comparing the sources I see that the file pgdrv.h has moved from kernel/nvidia/drivers/net/ethernet/realtek/pgdrv.h to kernel/nvidia/include/uapi/net/pgdrv.h
This same issue was reported by other users in this forum post
Please let me know how I can get the headers check to pass(i.e export linux/cdev.h) so I can continue to generate debian artifacts (headers + kernel)
could you please confirm you’ve download the r32.5.1 public release sources via L4T Release Page.
please also check you’ve followed developer guide, Building the NVIDIA Kernel for the environment configurations.
thanks
Confirming that I downloaded r32.5.1 public sources. As I mentioned in my original comment, pgdrv.h has moved in the latest sources, which is causing this issue.
The command make ARCH=arm64 O="$TEGRA_KERNEL_OUT_DIR" -j4 deb-pkg is a standard method to build debian artifacts when building the Linux kernel, it would be really helpful if this is fixed. Thanks.
We’re not support build kernel debian package.
Please refer to the instructions in “Repackaging Debian Packages” in the Developer Guide and use the helper script nvdebrepack.sh to repack l4t debian package.
I had the same issue a few months ago. I’m just following up to add another solution in case other folks run into the same thing.
Digging into pgdrv.h, it doesn’t actually use anything from cdev.h. So I created a patch to remove the include cdev.h from pgdrv.h (you can also just remove it manually).
With this, I am able to build and use the kernel debian package in order to neatly package our custom kernel mods. It has worked on both L4T 32.5.1 and L4T 32.6.1, and it passes the headers check.