VMware Workstation 17.6.3 on Ubuntu 24.04 kernel 6.17.0-29: vmmon/vmnet require additional Kbuild patches
Environment
- OS: Ubuntu 24.04
- Kernel: 6.17.0-29-generic
- VMware: VMware Workstation 17.6.3 build-24583834
- GCC: gcc-13
- Secure Boot: disabled
Problem
VMware Workstation 17.6.3 failed to build/load vmmon and vmnet on kernel 6.17.0-29-generic.
The original VMware build failed with:
- driver-config.h: No such file or directory
- vm_basic_defs.h: No such file or directory
- includeCheck.h: No such file or directory
- objtool: VNetCsumAndCopyToUser+0x31: call to csum_partial_copy_nocheck() with UACCESS enabled
The VMware log also reported:
No matching PBM set was found for kernel "6.17.0-29-generic".
Hyphaed installer result
I ran install-vmware-modules.sh with:
- Mode: DKMS
- Compilation mode: Vanilla
The script detected the environment correctly, but DKMS failed to build both vmmon and vmnet. It printed a completion message, but no vmmon.ko or vmnet.ko was installed under /lib/modules/6.17.0-29-generic.
Manual vmmon fixes that worked
Source tree:
/usr/src/vmmon-17.6.3
The headers existed under:
/usr/src/vmmon-17.6.3/include
but the actual Kbuild gcc command did not receive the VMware include paths or VMMON defines.
I patched /usr/src/vmmon-17.6.3/Makefile.kernel with:
ccflags-y += -DVMMON -DVMCORE -I$(SRCROOT)/include -I$(SRCROOT)/include/x86 -I$(SRCROOT)/common -I$(SRCROOT)/linux
OBJECT_FILES_NON_STANDARD := y
I also patched:
linux/driver.c:
del_timer_sync(...) -> timer_delete_sync(...)
linux/hostif.c:
del_timer_sync(...) -> timer_delete_sync(...)
rdmsrl_safe(...) -> rdmsrq_safe(...)
After that, vmmon built and loaded successfully.
Result:
vmmon 143360 0
Manual vmnet fixes that worked
Source tree:
/usr/src/vmnet-17.6.3
I patched /usr/src/vmnet-17.6.3/Makefile.kernel with:
ccflags-y += -I$(SRCROOT) -I$(SRCROOT)/shared -I$(SRCROOT)/include
OBJECT_FILES_NON_STANDARD := y
After that, vmnet built and loaded successfully.
Result:
vmnet 69632 0
vmmon 143360 0
Expected behavior
The installer should apply the required Kbuild-compatible flags and kernel 6.17 API patches automatically for VMware Workstation 17.6.3.
Actual behavior
The installer detects the environment, but DKMS build fails. Manual source edits are required to build and load vmmon and vmnet.
Notes
The main issue appears to be that EXTRA_CFLAGS is not enough in this Kbuild path. Adding ccflags-y made the actual gcc command receive the required include paths and defines.
OBJECT_FILES_NON_STANDARD := y was also required to avoid objtool failures on kernel 6.17.
VMware Workstation 17.6.3 on Ubuntu 24.04 kernel 6.17.0-29: vmmon/vmnet require additional Kbuild patches
Environment
Problem
VMware Workstation 17.6.3 failed to build/load vmmon and vmnet on kernel 6.17.0-29-generic.
The original VMware build failed with:
The VMware log also reported:
No matching PBM set was found for kernel "6.17.0-29-generic".
Hyphaed installer result
I ran install-vmware-modules.sh with:
The script detected the environment correctly, but DKMS failed to build both vmmon and vmnet. It printed a completion message, but no vmmon.ko or vmnet.ko was installed under /lib/modules/6.17.0-29-generic.
Manual vmmon fixes that worked
Source tree:
/usr/src/vmmon-17.6.3
The headers existed under:
/usr/src/vmmon-17.6.3/include
but the actual Kbuild gcc command did not receive the VMware include paths or VMMON defines.
I patched /usr/src/vmmon-17.6.3/Makefile.kernel with:
ccflags-y += -DVMMON -DVMCORE -I$(SRCROOT)/include -I$(SRCROOT)/include/x86 -I$(SRCROOT)/common -I$(SRCROOT)/linux
OBJECT_FILES_NON_STANDARD := y
I also patched:
linux/driver.c:
del_timer_sync(...) -> timer_delete_sync(...)
linux/hostif.c:
del_timer_sync(...) -> timer_delete_sync(...)
rdmsrl_safe(...) -> rdmsrq_safe(...)
After that, vmmon built and loaded successfully.
Result:
vmmon 143360 0
Manual vmnet fixes that worked
Source tree:
/usr/src/vmnet-17.6.3
I patched /usr/src/vmnet-17.6.3/Makefile.kernel with:
ccflags-y += -I$(SRCROOT) -I$(SRCROOT)/shared -I$(SRCROOT)/include
OBJECT_FILES_NON_STANDARD := y
After that, vmnet built and loaded successfully.
Result:
vmnet 69632 0
vmmon 143360 0
Expected behavior
The installer should apply the required Kbuild-compatible flags and kernel 6.17 API patches automatically for VMware Workstation 17.6.3.
Actual behavior
The installer detects the environment, but DKMS build fails. Manual source edits are required to build and load vmmon and vmnet.
Notes
The main issue appears to be that EXTRA_CFLAGS is not enough in this Kbuild path. Adding ccflags-y made the actual gcc command receive the required include paths and defines.
OBJECT_FILES_NON_STANDARD := y was also required to avoid objtool failures on kernel 6.17.