Since a few days, Linux 6.2 kernel had been released
But since I upgrade a VM running a Debian GNU Linux 12 in sid version (sid = still in developpement / unstable / very close to debian 13) and I build Linux 6.2.X on it, I had some troubles after booting linux 6.2.x for building VirtualBox Linux Guest addition inside the VM
It seems there are some declaration troubles with the new version of Linux kernel:
I think the VM had sufficient ressources requirements for building Linux 6.2.1 kernel module : 16 vCPU on a big Xeon / 32GB ram / 50g free space on nvme ssd drive.
As it's enough to build the entire Linux 6.2.X kernel in 45 minutes, I suppose it would be sufficient for building Virtualbox Guest kernel module
I had the same troubles when trying to build this module under and for :
Linux 6.0.X
Linux 6.1.X
Linux 6.2.X
Here is the error found in the attached log file:
Code: Select all
./scripts/check-local-export /tmp/vbox.0/VBoxGuestR0LibPhysHeap.o
{ echo ; echo '/tmp/vbox.0/VBoxGuestR0LibPhysHeap.o: $(wildcard ./tools/objtool/objtool)' ; } >> /tmp/vbox.0/.VBoxGuestR0LibPhysHeap.o.cmd
if nm /tmp/vbox.0/VBoxGuestR0LibPhysHeap.o 2>/dev/null | grep -q __ksymtab; then gcc -E -D__GENKSYMS__ -Wp,-MMD,/tmp/vbox.0/.VBoxGuestR0LibPhysHeap.o.d -nostdinc -I./arch/x86/include -I./arch/x86/include/generated -I./include -I./arch/x86/include/uapi -I./arch/x86/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -fmacro-prefix-map=./= -Wall -Wundef -Werror=strict-prototypes -Wno-trigraphs -fno-strict-aliasing -fno-common -fshort-wchar -fno-PIE -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Wno-format-security -funsigned-char -std=gnu11 -mno-sse -mno-mmx -mno-sse2 -mno-3dnow -mno-avx -fcf-protection=none -m64 -falign-jumps=1 -falign-loops=1 -mno-80387 -mno-fp-ret-in-387 -mpreferred-stack-boundary=3 -mskip-rax-setup -mtune=generic -mno-red-zone -mcmodel=kernel -Wno-sign-compare -fno-asynchronous-unwind-tables -mindirect-branch=thunk-extern -mindirect-branch-register -mindirect-branch-cs-prefix -mfunction-return=thunk-extern -fno-jump-tables -fpatchable-function-entry=16,16 -fno-delete-null-pointer-checks -Wno-frame-address -Wno-format-truncation -Wno-format-overflow -Wno-address-of-packed-member -O2 -fno-allow-store-data-races -Wframe-larger-than=2048 -fstack-protector-strong -Wno-main -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-dangling-pointer -fno-stack-clash-protection -pg -mrecord-mcount -mfentry -DCC_USING_FENTRY -falign-functions=16 -Wdeclaration-after-statement -Wvla -Wno-pointer-sign -Wcast-function-type -Wno-stringop-truncation -Wno-stringop-overflow -Wno-restrict -Wno-maybe-uninitialized -Wno-array-bounds -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -fno-strict-overflow -fno-stack-check -fconserve-stack -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wno-packed-not-aligned -g -Wno-declaration-after-statement -fno-pie -include /tmp/vbox.0//include/VBox/VBoxGuestMangling.h -fshort-wchar -I./include -I/tmp/vbox.0/ -I/tmp/vbox.0/include -I/tmp/vbox.0/r0drv/linux -D__KERNEL__ -DMODULE -DRT_WITHOUT_PRAGMA_ONCE -DRT_OS_LINUX -DIN_RING0 -DIN_RT_R0 -DIN_SUP_R0 -DVBOX -DVBOX_WITH_HGCM -DIN_MODULE -DIN_GUEST -DIN_GUEST_R0 -DRT_NO_EXPORT_SYMBOL -DVBOX_WITH_64_BITS_GUESTS -DRT_ARCH_AMD64 -DMODULE -DKBUILD_BASENAME='"VBoxGuestR0LibPhysHeap"' -DKBUILD_MODNAME='"vboxsf"' -D__KBUILD_MODNAME=kmod_vboxsf /tmp/vbox.0/VBoxGuestR0LibPhysHeap.c | scripts/genksyms/genksyms -r /dev/null >> /tmp/vbox.0/.VBoxGuestR0LibPhysHeap.o.cmd; fi
/tmp/vbox.0/regops.c: In function ‘vbsf_iter_lock_pages’:
/tmp/vbox.0/regops.c:2188:28: error: too few arguments to function ‘iov_iter_get_pages’
2188 | cbSegRet = iov_iter_get_pages(iter, papPages, iov_iter_count(iter), cMaxPages, &offPage0);
| ^~~~~~~~~~~~~~~~~~
In file included from ./include/linux/bio.h:11,
from ./include/linux/writeback.h:208,
from ./include/linux/backing-dev.h:16,
from /tmp/vbox.0/vfsmod.h:49,
from /tmp/vbox.0/regops.c:35:
./include/linux/uio.h:253:9: note: declared here
253 | ssize_t iov_iter_get_pages(struct iov_iter *i, struct page **pages,
| ^~~~~~~~~~~~~~~~~~
/tmp/vbox.0/regops.c:2214:28: error: too few arguments to function ‘iov_iter_get_pages’
2214 | cbSegRet = iov_iter_get_pages(iter, &papPages[cPages], iov_iter_count(iter), 1, &offPgProbe);
| ^~~~~~~~~~~~~~~~~~
./include/linux/uio.h:253:9: note: declared here
253 | ssize_t iov_iter_get_pages(struct iov_iter *i, struct page **pages,
| ^~~~~~~~~~~~~~~~~~
/tmp/vbox.0/regops.c:2232:40: error: too few arguments to function ‘iov_iter_get_pages’
2232 | cbSegRet = iov_iter_get_pages(iter, &papPages[cPages], iov_iter_count(iter), cMaxPages, &offPgProbe);
| ^~~~~~~~~~~~~~~~~~
./include/linux/uio.h:253:9: note: declared here
253 | ssize_t iov_iter_get_pages(struct iov_iter *i, struct page **pages,
| ^~~~~~~~~~~~~~~~~~
make[2]: *** [scripts/Makefile.build:252 : /tmp/vbox.0/regops.o] Erreur 1
make[2]: *** Attente des tâches non terminées....
and the final error :
Code: Select all
make[1]: *** [Makefile:2021: /tmp/vbox.0] Error 2
make: *** [/tmp/vbox.0/Makefile-footer.gmk:117: vboxsf] Error 2
About the physical host running VirtualBox hypervisor (which let me run the VM 'deb13-lab-10.lab.lan' with Linux 6.X.X kernel inside - Linux kernel 6.X.X was build inside this VM):
I'm using Virtualbox 6.1.36 on :
Code: Select all
10:11:24 nba@14RV-SERVER-243:~$ uname -a && cat /etc/*ease
Linux 14RV-SERVER-243.14rv.lan 5.10.0-16-amd64 #1 SMP Debian 5.10.127-2 (2022-07-23) x86_64 GNU/Linux
PRETTY_NAME="Debian GNU/Linux 11 (bullseye)"
NAME="Debian GNU/Linux"
VERSION_ID="11"
VERSION="11 (bullseye)"
VERSION_CODENAME=bullseye
VirtualBox Guest comes from the iso image I found on the physical host after virtualbox install in /usr/share/virtualbox/VBoxGuestAdditions.iso
Does someone already had this problem ?
Is there any solution other than rewriting VBoxGuestR0LibPhysHeap source code ?
Thanks for help
Kind regards
nbanba