Re: The driver vboxdrv.ko, in the port virtualbox-ose-kmod, is not loadable in FreeBSD 13.3-RELEASE.
Date: Mon, 18 Mar 2024 06:30:29 UTC
> On Mar 15, 2024, at 11:04 PM, Felix Palmen <zirias@FreeBSD.org> wrote: > > * Zhenlei Huang <zlei@FreeBSD.org> [20240315 22:57]: >> Message from virtualbox-ose-kmod-6.1.50: >> >> -- >> The vboxdrv kernel module uses internal kernel APIs. >> >> To avoid crashes due to kernel incompatibility, this module will only >> load on FreeBSD 13.2 kernels. >> ``` > > This message is generated, see > https://cgit.freebsd.org/ports/tree/emulators/virtualbox-ose-kmod/files/pkg-message.in > > So, in a nutshell, it will only load on the kernel it was built for. > > Therefore, for some reason OP just didn't successfully build/install it > locally. I think you are right. The error message > KLD vboxdrv.ko: depends on kernel - not available or version mismatch actually hints that the dependency 'kernel' of the module vboxdrv.ko is not satisfied, from bc6d5725ed6c (emulators/virtualbox-ose-kmod*: Tie to a specific release branch) and kernel source `sys/kern/kern_linker.c`: ``` error = linker_load_module(NULL, modname, lf, verinfo, NULL); if (error) { printf("KLD %s: depends on %s - not available or" " version mismatch\n", lf->filename, modname); break; } ``` The definition of DECLARE_MODULE_WITH_MAXVER is: ``` #define DECLARE_MODULE_WITH_MAXVER(name, data, sub, order, maxver) \ MODULE_DEPEND(name, kernel, __FreeBSD_version, \ __FreeBSD_version, maxver); \ MODULE_METADATA(_md_##name, MDT_MODULE, &data, __XSTRING(name));\ SYSINIT(name##module, sub, order, module_register_init, &data); \ struct __hack ``` , then the kernel `version mismatch` means the `__FreeBSD_version` is not 13.3 (or SA / EN). So if the vitualbox ose kernel module *IS* built from source then it is almost definitely linked against wrong `__FreeBSD_version` (either /usr/include/osreldate.h is outdated or the module is linked against wrong header file). > > -- > Felix Palmen <zirias@FreeBSD.org> {private} felix@palmen-it.de > -- ports committer -- {web} http://palmen-it.de > {pgp public key} http://palmen-it.de/pub.txt > {pgp fingerprint} 6936 13D5 5BBF 4837 B212 3ACC 54AD E006 9879 F231