Make: No rule to make target 'firmware/tegra21x_xusb_firmware', needed by 'firmware/tegra21x_xusb_firmware.gen.o'. Stop

Hello to everyone.

I’ve “flashed” the image below on the sd card (and I’ve upgraded it from xubuntu 20.04 to 21.04) :

https://github.com/Discombobulated88/Xubuntu-20.04-L4T-32.3.1/releases/download/v1.0/Xubuntu-20.04-l4t-r32.3.1.tar.tbz2

and then I’ve recompiled the kernel and the modules using the patches located here :

git clone https://github.com/OE4T/linux-tegra-4.9.git
git checkout oe4t-patches-l4t-r32.5

writing the following commands :

git clone https://github.com/OE4T/linux-tegra-4.9.git
cd linux-tegra-4.9
git checkout oe4t-patches-l4t-r32.5
cp /proc/config.gz .
gunzip config.gz
cp config .config
make -j3
make -j3 modules_install

everything is went good until this command :

make -j3 Image

that produced the following error :

make[1]: *** No rule to make target 'firmware/tegra21x_xusb_firmware', needed by 'firmware/tegra21x_xusb_firmware.gen.o'. Stop.

it also tell that a lot of modules are missing. you can see the full log below :

https://pastebin.ubuntu.com/p/xGrtmMBTMd/

do u have an idea about how to fix the error ?

Note that when you use NVIDIA’s source it provides not just the kernel, but also some out of tree content. So for example, you would unpack NVIDIA source and it would have these directories:

# The base kernel source:
sources/kernel/kernel-4.9/
# Out of tree content:
sources/...everything not kernel/kernel-4.9...

I have not used your git code, but I suspect you need to use that to replace the “sources/kernel/kernel-4.9/” content with your kernel (or other subdirectory code if replacing boot loader source), and thus have the out of tree content available. The out of tree content is referenced via relative path when some of the kernel features are enabled. Likely the firmware being referenced is just a relative path which is missing.

Thanks. Unfortunately I’m not so good to understand what to do.

It just means you’ve only downloaded part of the source. You need to download both the direct kernel source (the “in tree” content), and the related content (the “out of tree” content). You can use the NVIDIA kernel source and get both, and then if you want to, overwrite the in-tree kernel source with your git content. Then, when configured to use out of tree content by means of enabling a feature which requires this, that content will be found.

For any given release you will find source files available, and within that the kernel source exists (with out-of-tree content). Or, in the “Linux_for_Tegra/” directory, you can use the “source_sync.sh” tool to download the source (which results in a “Linux_for_Tegra/sources/” directory).

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