Skip to content

VMware Workstation 17.6.3 on Ubuntu 24.04 kernel 6.17.0-29 requires additional ccflags-y and API patches #23

Description

@uurl

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions