Kernel 5.16
is available in the Testing
repository and can be installed via mhwd
already.
However, it looks like there are some issues in the packages. I tried building the Nvidia driver 390
against this kernel, and at first, there seems to be some include paths not set appropriately:
In Datei, eingebunden von /home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/nvidia/nv-frontend.c:12:
/home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/common/inc/os-interface.h:27:10: schwerwiegender Fehler: stdarg.h: Datei oder Verzeichnis nicht gefunden
27 | #include <stdarg.h>
| ^~~~~~~~~~
Kompilierung beendet.
make[2]: *** [scripts/Makefile.build:287: /home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/nvidia/nv-frontend.o] Fehler 1
make[2]: *** Es wird auf noch nicht beendete Prozesse gewartet....
In Datei, eingebunden von /home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/common/inc/nv-linux.h:16,
von /home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/nvidia/nv-gpu-numa.c:24:
/home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/common/inc/nv.h:18:10: schwerwiegender Fehler: stdarg.h: Datei oder Verzeichnis nicht gefunden
18 | #include <stdarg.h>
| ^~~~~~~~~~
Kompilierung beendet.
make[2]: *** [scripts/Makefile.build:287: /home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/nvidia/nv-gpu-numa.o] Fehler 1
In Datei, eingebunden von /home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/nvidia/nv-instance.c:12:
/home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/common/inc/os-interface.h:27:10: schwerwiegender Fehler: stdarg.h: Datei oder Verzeichnis nicht gefunden
27 | #include <stdarg.h>
| ^~~~~~~~~~
Kompilierung beendet.
make[2]: *** [scripts/Makefile.build:287: /home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/nvidia/nv-instance.o] Fehler 1
In Datei, eingebunden von /home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/nvidia/nv.c:12:
/home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/common/inc/os-interface.h:27:10: schwerwiegender Fehler: stdarg.h: Datei oder Verzeichnis nicht gefunden
27 | #include <stdarg.h>
| ^~~~~~~~~~
Kompilierung beendet.
make[2]: *** [scripts/Makefile.build:287: /home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/nvidia/nv.o] Fehler 1
In Datei, eingebunden von /home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/nvidia/nv-acpi.c:14:
/home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/common/inc/os-interface.h:27:10: schwerwiegender Fehler: stdarg.h: Datei oder Verzeichnis nicht gefunden
27 | #include <stdarg.h>
| ^~~~~~~~~~
Kompilierung beendet.
make[2]: *** [scripts/Makefile.build:287: /home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel/nvidia/nv-acpi.o] Fehler 1
make[1]: *** [Makefile:1846: /home/gerd/Downloads/nvidia-390xx/5.16/src/NVIDIA-Linux-x86_64-390.144-no-compat32/kernel] Fehler 2
make[1]: Verzeichnis „/usr/lib/modules/5.16.0-1-MANJARO/build“ wird verlassen
make: *** [Makefile:81: modules] Fehler 2
==> FEHLER: Ein Fehler geschah in build().
Breche ab...
The culprit is the Makefile
in /usr/lib/modules/5.16.0-1-MANJARO/build
. When the Makefile
from /usr/lib/modules/5.15.2-2-MANJARO/build
is used instead, the build succeeds as the includes are found, but then another error occurs due to missing files:
/bin/sh: Zeile 1: ./tools/bpf/resolve_btfids/resolve_btfids: Datei oder Verzeichnis nicht gefunden
The problem here is with Makefile.modfinal
in /usr/lib/modules/5.16.0-1-MANJARO/build/scripts
. It contains the following entry starting on line 42:
if [ -f vmlinux ]; then \
LLVM_OBJCOPY="$(OBJCOPY)" $(PAHOLE) -J $(PAHOLE_FLAGS) --btf_base vmlinux $@; \
$(RESOLVE_BTFIDS) -b vmlinux $@; \
else \
printf "Skipping BTF generation for %s due to unavailability of vmlinux\n" $@ 1>&2; \
fi;
$(RESOLVE_BTFIDS)
points to ./tools/bpf/resolve_btfids/resolve_btfids
which appears to be missing in the entire /usr/lib/modules/5.16.0-1-MANJARO
tree.
Again, when /usr/lib/modules/5.16.0-1-MANJARO/build/scripts/Makefile.modfinal
is replaced by the same file from /usr/lib/modules/5.15.2-2-MANJARO/build/scripts
which does not have the reference to $(RESOLVE_BTFIDS)
, I am able to finalize building my package.
Amendment:
Looks like the line
install -Dt "${_builddir}/tools/bpf/resolve_btfids" tools/bpf/resolve_btfids/resolve_btfids
is missing in PKGBUILD
for the linux516
package, in section package_linux516-headers()
.
With the resolve_btfids
tool installed properly, there is at least no need to mess around with /usr/lib/modules/5.16.0-1-MANJARO/build/scripts/Makefile.modfinal
.