Shell
$ sudo dkms build -m virtualbox -v 5.2.24 -k 5.10.0-1038.40-generic > /dev/null
Error! Bad return status for module build on kernel: 5.10.0-1038.40-generic (x86_64)
Consult /var/lib/dkms/virtualbox/5.2.24/build/make.log for more information.
$
Shell
/var/lib/dkms/virtualbox/5.2.24/build/vboxdrv/linux/SUPDrv-linux.c:182:5: error: unknown field ‘ioctl’ specified in initializer
ioctl: VBoxDrvLinuxIOCtl,
А вот кучосек кода, где ошибка проявляется.
...Естессно, если тупо в лоб перед этим кодом определить #define HAVE_UNLOCKED_IOCTL 1 то ничего не получается, при каждой команде "dkms" этот макрос куда-то исчезает, файл /var/lib/dkms/virtualbox/5.2.24/build/vboxdrv/linux/SUPDrv-linux.c как будет заново переписывается./** The file_operations structure. */
static struct file_operations gFileOpsVBoxDrvSys =
{
owner: THIS_MODULE,
open: VBoxDrvLinuxCreateSys,
release: VBoxDrvLinuxClose,
#ifdef HAVE_UNLOCKED_IOCTL
unlocked_ioctl: VBoxDrvLinuxIOCtl,
#else
ioctl: VBoxDrvLinuxIOCtl,
#endif
};
Где-то этот макрос определить надо. Где же? man dkms говорит, что есть какой-то dkms.conf, а у меня их даже три:
Shell
$ sudo find / -type f -name "dkms.conf" ! -path "/home*" 2>/dev/null
/var/lib/dkms/virtualbox/5.2.24/build/dkms.conf
/etc/modprobe.d/dkms.conf
/usr/src/virtualbox-5.2.24/dkms.conf
$
Бесполезно. Всё равно эта же ошибка "unknown field ‘ioctl’"HAVE_UNLOCKED_IOCTL=1
В общем, спасибо, кто откликнется. Астралинукс Орёл 2.12.44