Complete fix for VMware Workstation 17.6.4 on Linux kernel 6.18
This patch set adds full support for Linux kernel 6.18 to VMware Workstation 17.6.4 kernel modules (vmmon and vmnet).
- β
Timer API changes:
del_timer_sync()βtimer_delete_sync()(kernel 6.16+) - β
MSR API changes:
rdmsrl_safe()βrdmsrq_safe() - β
UACCESS validation: Fixed
csum_partial_copy_nocheck()βunsafe_copy_to_user() - β
Missing headers: Created
driver-config.handvm_basic_defs.h - β Build system: Fixed objtool validation and kernel 6.18 build requirements
- β Debug infrastructure: Added VMX86_DEBUG support and missing variables
- Linux kernel 6.18.x
- VMware Workstation 17.6.4
- GCC compiler
- Linux kernel headers for your kernel version
- Root/sudo access for module installation
# Clone this repository
git clone https://github.com/RepairYourTech/vmware-vmmon-vmnet-linux-6.18.git
cd vmware-vmmon-vmnet-linux-6.18
# Build and install both modules
make -C vmmon-only
sudo make -C vmmon-only install
make -C vmnet-only
sudo make -C vmnet-only install
# Load modules
sudo modprobe vmmon
sudo modprobe vmnet# Extract VMware module sources
tar -xf /usr/lib/vmware/modules/source/vmmon.tar
tar -xf /usr/lib/vmware/modules/source/vmnet.tar
# Copy patched files
cp -r vmmon-only/* vmmon-only/
cp -r vmnet-only/* vmnet-only/
# Build
cd vmmon-only
make
sudo make install
cd ../vmnet-only
make
sudo make install
# Load modules
sudo modprobe vmmon
sudo modprobe vmnet- driver-config.h: Kernel version macros and configuration
- include/vm_basic_defs.h: Missing type definitions and macros
- MASK64/MASK32/PAGE_MASK macros
- CONC/CONC3 token concatenation
- Value extraction macros (LODWORD, HIDWORD, etc.)
- Memory unit conversions (MBYTES_2_PAGES, GBYTES_2_PAGES)
- DEBUG_ONLY, IMPLIES, VM_PAGE_BASE macros
- Global debug variables (vmx86_debug, vmx86_log, vmx86_server)
- linux/hostif.c:
del_timer_sync()βtimer_delete_sync()rdmsrl_safe()βrdmsrq_safe()
- linux/driver.c: Added debug variable definitions
- include/x86vtinstr.h: Added debug variable extern declarations
- Makefile.kernel: Added
-DVMX86_DEBUGand disabled objtool validation
- userif.c:
- Added kernel 6.18 support path to
VNetCsumAndCopyToUser() - Replaced
csum_partial_copy_nocheck()withunsafe_copy_to_user() - Fixed UACCESS validation by computing checksum outside user access block
- Added kernel 6.18 support path to
| Distribution | Kernel Version | Status |
|---|---|---|
| Ubuntu 26.04 (dev) | 6.18.0-9-generic | β Working |
| VMware Workstation | 17.6.4 | β Compatible |
.
βββ vmmon-only/ # vmmon module source
β βββ driver-config.h # NEW: Kernel config
β βββ include/
β β βββ vm_basic_defs.h # NEW: Type definitions
β βββ linux/
β β βββ hostif.c # MODIFIED: API updates
β β βββ driver.c # MODIFIED: Debug vars
β βββ Makefile.kernel # MODIFIED: Build flags
βββ vmnet-only/ # vmnet module source
βββ userif.c # MODIFIED: UACCESS fix
# Check kernel log
dmesg | tail -20
# Verify module signatures
modinfo /lib/modules/$(uname -r)/misc/vmmon.ko
modinfo /lib/modules/$(uname -r)/misc/vmnet.ko# Ensure you have kernel headers installed
sudo apt install linux-headers-$(uname -r)
# Check GCC version
gcc --version# Unload and reload modules
sudo modprobe -r vmnet vmmon
sudo modprobe vmmon vmnet
# Restart VMware services
sudo systemctl restart vmwareContributions are welcome! Please:
- Fork the repository
- Create a feature branch
- Make your changes
- Test thoroughly
- Submit a pull request
This project is licensed under GPL v2, matching the Linux kernel license and VMware's open-source components.
- Based on original VMware module sources
- Inspired by previous kernel compatibility work:
These patches are provided as-is. While they have been tested on Ubuntu 26.04 with kernel 6.18.0-9-generic, your mileage may vary. Always backup your system before installing kernel modules.
- Initial release for kernel 6.18
- Full vmmon and vmnet module support
- All API compatibility issues resolved
- Successfully tested on Ubuntu 26.04
Made with β€οΈ for the Linux and VMware community