Make menuconfig

This step creates a .config in the “$PWD/kernel_out”:
make ARCH=arm64 O=$PWD/kernel_out tegra_defconfig

Then this step edits the “.config” in “$PWD/kernel_out”:
make ARCH=arm64 O=$PWD/kernel_out menuconfig

Note that if there is a complaint about:
drivers/video/Kconfig:27: can't open file "drivers/video/tegra/Kconfig"
…then it is missing in the source. This should not occur and would not be related to any of your commands. This would probably be an incorrect source download of some sort.

I downloaded the source code file in this interface, there should be no problem

Hello, I just tested it. Using the command you gave, execute “make ARCH=arm64 O=$PWM/kernel_out menuconfig” in the /kernel/kernel-5.10 directory, and it can run successfully. But when I execute make menuconfig in the “$PWD/kernel_out” directory, an error is reported

Is that error the previously mentioned one which I quoted above? If so, from the kernel source top directory, does “drivers/video/tegra/” exist? If so, is there a Kconfig and Makefile in that directory? Is any of this owned by root and not readable without being root?

Incidentally, that is the correct download for the kernel source.

Yes, there is no tegra directory, only these files are in the video folder.
So is it a source code error? Can you check the source code file of R35.1.

I can verify the source code is missing the required content on this release, but has it on another release. However, if this was intended to be missing, then the Kconfig and Makefile would have required an update to prevent this. So I am thinking NVIDIA will likely need to update the source code download to include that directory.

What I did to confirm:

  • I downloaded from here:
    https://developer.nvidia.com/embedded/l4t/r35_release_v1.0/sources/public_sources.tbz2
  • I extracted just the kernel source via:
    tar xvfj public_sources.tbz2 Linux_for_Tegra/source/public/kernel_src.tbz2
  • I then went to subdirectory Linux_for_Tegra/source/public, and unpacked that:
    tar xvfj kernel_src.tbz2
  • From there:
    cd cd kernel/kernel-5.10/drivers/video/
  • I should have found “tegra/” (which would contain a Kconfig and Makefile, which it did contain in prior releases, and which current Kconfig still refers to), but did not. It is indeed missing.

So, can you please post the missing file and I will copy it to the corresponding source folder when I receive it

@linuxdev
The “tegra” is at …/kernel/nvidia/drivers/video

snchen@snchen-HP:~/data/JEP/35.1/Linux_for_Tegra/source/public/kernel/nvidia/drivers/video$ l
backlight/  Kconfig  Makefile  tegra/

It sounds like the Kconfig of some feature in the main kernel might be looking in the wrong place.

If I go to “Linux_for_Tegra/source/public/kernel/kernel-5.10/drivers/video”, and examine Kconfig, I see:
source "drivers/video/tegra/Kconfig"
…but that is “in tree”, not “out of tree”. The “kernel/nvidia/drivers/video” is out of tree. So I think that Kconfig is wrong to search where it does rather than out of tree, unless there is another Kconfig and that particular one should not be set.

Really, so how can I solve this problem? I looked at other versions and found that there was no such problem

Hi @Yolomei , try this:

Delete your previously sources folder.
Replace Linux_for_Tegra/source_sync.sh with this one: Jetpack5.0.2 kernel compile error - #12 by ShaneCCC (I haven’t overwrited nvbuild.sh).
Then run ./source_sync.sh and type jetson_35.1 when requested.
It shall create the sources folder.
Then retry with your make commands.

1 Like

Hello, this is a source file error, shouldn’t I modify the source file?

Apparently it’s an error due to an ordering problem with source syncing.

Hello,

I am currently facing this issue as well. Has there been any update? It seems ShaneCCC’s answer is to fix the sourcing issue while using the GitPulls or download from the download centre. I’ve done both and still have this issue.

Is there any short term fix we can do to bypass this. I just wanted to add some flags so that WireGuard could install properly on the Jetson System.

Can you enable the feature by modify the instead of run the make menuconfig?

…/kernel/kernel-5.10/arch/arm64/configs/tegra_defconfig

I tested them. The two methods are modified in the “$PWD/kernel_out” directory Config file, so why can one method succeed and the other method report errors? Is there any other difference

Same boat.
Here is a suggestion:
Tested and it works (Jetpack 5.1.1) Not sure if it helps in your case. It works for me.
Feedback welcome.

make -C kernel/kernel-5.10/ ARCH=arm64 mrproper (to start from a clean config)
make -C kernel/kernel-5.10/ ARCH=arm64 O=$PWD/kernel_out tegra_defconfig
make -C kernel/kernel-5.10/ ARCH=arm64 O=$PWD/kernel_out menuconfig

if you compile with ./nvbuild.sh, it will overwrite again the .config on the kernel_out folder.

Thank you for your suggestion. This approach is indeed possible, but what I don’t understand is why using the ‘make menuconfig’ command directly in the ‘O=$PWD/kernel_out’ directory is not possible

I also can not use make menuconfig correct in jetson agx orin dev kit.

As shown above, execute make menuconfig in the source code directory while specifying the compilation generation directory, instead of directly executing make menuconfig in the compilation generation directory