Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
14 changes: 7 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
[![License: GPL v2](https://img.shields.io/badge/License-GPL%20v2-blue.svg)](https://www.gnu.org/licenses/old-licenses/gpl-2.0.en.html)
[![Kernel](https://img.shields.io/badge/Kernel-6.16.x%20%7C%206.17.x-orange.svg)](https://kernel.org/)
[![Kernel](https://img.shields.io/badge/Kernel-6.16.x%20|%206.17.x%20|%206.18.x|%206.19.x-orange.svg)](https://kernel.org/)
[![VMware](https://img.shields.io/badge/VMware-17.6.4-green.svg)](https://www.vmware.com/)
[![Gentoo](https://img.shields.io/badge/Gentoo-Supported-purple.svg)](https://www.gentoo.org/)

### ⚡ VMware Workstation Modules for Linux Kernel 6.16.x & 6.17.x
### ⚡ VMware Workstation Modules for Linux Kernel 6.16.x, 6.17.x, 6.18.x & 6.19.x
### 🐍 **Interactive Python Wizard** that guides you through installation
### 🚀 **Enjoy 20-35% faster VMware performance**
### ✨ **Better Wayland integration - top bar hiding works ~90% of the time**
Expand Down Expand Up @@ -48,7 +48,7 @@ sudo ./scripts/install-vmware-modules.sh

### 🐍 **Interactive Python Wizard**
- **Beautiful terminal UI** using Rich library
- **Auto-detects all installed kernels** (6.16.x & 6.17.x)
- **Auto-detects all installed kernels** (6.16.x, 6.17.x, 6.18.x & 6.19.x)
- **Smart defaults:** Current kernel + Optimized mode
- Multi-kernel selection or "all at once"
- **All interaction in unified Python UI** - no more bash prompts!
Expand Down Expand Up @@ -111,7 +111,7 @@ Then **auto-generates optimal compilation flags** for your hardware!

### ⚙️ **Smart Patching**
- **Dual kernel support:** 6.16.x and 6.17.x with appropriate patches
- **Objtool auto-detection:** Applies objtool patches when needed (6.16.3+ / 6.17.x)
- **Objtool auto-detection:** Applies objtool patches when needed (6.16.3+ / 6.17.x / 6.18.x / 6.19.x)
- **Compiler detection:** Works with GCC or Clang toolchains
- **VMware 17.5.x & 17.6.x compatible**

Expand Down Expand Up @@ -293,7 +293,7 @@ This project includes patches from [ngodn/vmware-vmmon-vmnet-linux-6.16.x](https
4. **Module Init:** `init_module()` → `module_init()` macro
5. **Function Prototypes:** `function()` → `function(void)`

### **Kernel 6.16.3+ / 6.17.x Additional Patches** (Auto-Detected)
### **Kernel 6.16.3+ / 6.17.x / 6.18.x Additional Patches** (Auto-Detected)

1. **Objtool validation errors:** Fixed in `phystrack.c` and `task.c`
2. **Makefile adjustments:** `OBJECT_FILES_NON_STANDARD` for problematic files
Expand All @@ -303,7 +303,7 @@ This project includes patches from [ngodn/vmware-vmmon-vmnet-linux-6.16.x](https

## 📋 Prerequisites

- Linux kernel **6.16.x or 6.17.x** headers installed
- Linux kernel **6.16.x, 6.17.x or 6.18.x** headers installed
- VMware Workstation **17.x** installed
- Build essentials: `gcc`, `make`, `kernel headers`
- Git (for cloning)
Expand All @@ -329,7 +329,7 @@ cd /usr/src/linux && make modules_prepare

## ✅ Compatibility

- **Kernels:** 6.16.x, 6.17.x (all versions)
- **Kernels:** 6.16.x, 6.17.x, 6.18.x (all versions)
- **VMware:** Workstation 17.5.x, 17.6.x
- **Architecture:** x86_64
- **Distributions:** 18+ Linux distributions
Expand Down
26 changes: 22 additions & 4 deletions scripts/install-vmware-modules.sh
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
#!/bin/bash
# Enhanced script to compile VMware modules for kernel 6.16.x and 6.17.x
# Enhanced script to compile VMware modules for kernel 6.16.x, 6.17.x and 6.18.x
# Supports Ubuntu, Fedora, and Gentoo
# Uses specific patches according to kernel version
# Optional hardware-specific optimizations
Expand Down Expand Up @@ -144,7 +144,7 @@ trap cleanup_on_error ERR

echo -e "${HYPHAED_GREEN}$(draw_box_top)${NC}"
echo -e "${HYPHAED_GREEN}$(draw_box_line "")${NC}"
echo -e "${HYPHAED_GREEN}$(draw_box_line "VMWARE MODULES COMPILER FOR KERNEL 6.16/6.17")${NC}"
echo -e "${HYPHAED_GREEN}$(draw_box_line "VMWARE MODULES COMPILER FOR KERNEL 6.16/6.17/6.18/6.19")${NC}"
echo -e "${HYPHAED_GREEN}$(draw_box_line "(Multi-Distribution Linux Compatible)")${NC}"
echo -e "${HYPHAED_GREEN}$(draw_box_line "")${NC}"
echo -e "${HYPHAED_GREEN}$(draw_box_bottom)${NC}"
Expand Down Expand Up @@ -343,6 +343,10 @@ else
TARGET_KERNEL="6.16"
elif [ "$FIRST_KERNEL_MINOR" = "17" ]; then
TARGET_KERNEL="6.17"
elif [ "$FIRST_KERNEL_MINOR" = "18" ]; then
TARGET_KERNEL="6.18"
elif [ "$FIRST_KERNEL_MINOR" = "19" ]; then
TARGET_KERNEL="6.19"
else
error "Unsupported kernel minor version: $FIRST_KERNEL_MINOR"
warning "Falling back to legacy installation mode..."
Expand Down Expand Up @@ -493,6 +497,10 @@ echo -e "${GREEN} 2)${NC} Kernel 6.17.x"
echo " • Uses patches from 6.16.x + additional objtool patches"
echo " • Additional patches: OBJECT_FILES_NON_STANDARD, returns in void functions"
echo ""
echo -e "${GREEN} 2)${NC} Kernel 6.18.x"
echo " • Uses patches from 6.16.x + additional objtool patches"
echo " • Additional patches: OBJECT_FILES_NON_STANDARD, returns in void functions"
echo ""
echo -e "${BLUE}Kernel detected on your system:${NC} $(uname -r)"
echo ""

Expand All @@ -509,9 +517,19 @@ while true; do
TARGET_KERNEL="6.17"
info "Selected: Kernel 6.17.x"
break
;;
3)
TARGET_KERNEL="6.18"
info "Selected: Kernel 6.18.x"
break
;;
4)
TARGET_KERNEL="6.19"
info "Selected: Kernel 6.19.x"
break
;;
*)
warning "Invalid option. Please select 1 or 2."
warning "Invalid option. Please select 1,2, 3 or 4."
;;
esac
done
Expand Down Expand Up @@ -2845,4 +2863,4 @@ if [ "$AUTO_IOMMU" = "true" ] && [ "$OPTIMIZATION_MODE" = "optimized" ]; then
fi
fi

log "Process completed successfully!"
log "Process completed successfully!"
2 changes: 1 addition & 1 deletion scripts/update-vmware-modules.sh
Original file line number Diff line number Diff line change
Expand Up @@ -91,7 +91,7 @@ echo -e "${HYPHAED_GREEN}══════════════════
echo ""
echo "This script will:"
echo -e " 1. ${HYPHAED_GREEN}Launch interactive Python wizard${NC} (with beautiful TUI)"
echo " 2. Detect all installed kernels (6.16.x and 6.17.x)"
echo " 2. Detect all installed kernels (6.16.x, 6.17.x, 6.18.x or 6.19.x)"
echo " 3. Analyze your hardware with Python detection engine"
echo " 4. Let you choose: Optimized (20-35% faster + better Wayland) or Vanilla (portable)"
echo " 5. Automatically rebuild modules for selected kernel(s)"
Expand Down
6 changes: 3 additions & 3 deletions scripts/vmware_wizard.py
Original file line number Diff line number Diff line change
Expand Up @@ -70,7 +70,7 @@ def detect_installed_kernels(self) -> List[KernelInfo]:
continue

# Check if supported (6.16 or 6.17)
supported = (major == 6 and minor in [16, 17])
supported = (major == 6 and minor in [16, 17, 18,19])

# Check for headers
headers_path = kernel_dir / "build"
Expand Down Expand Up @@ -188,7 +188,7 @@ def run(self):
# Welcome banner
self.ui.show_banner(
"VMware Module Installation Wizard",
"Automated Kernel Module Compilation for Linux 6.16/6.17",
"Automated Kernel Module Compilation for Linux 6.16/6.17/6.18/6.19",
icon="⚙️"
)

Expand Down Expand Up @@ -218,7 +218,7 @@ def run(self):
supported_kernels = [k for k in self.detected_kernels if k.supported and k.headers_installed]

if not supported_kernels:
self.ui.show_error("No supported kernels (6.16.x or 6.17.x) with headers found!")
self.ui.show_error("No supported kernels (6.16.x, 6.17.x, 6.18.x or 6.19.x) with headers found!")
self.ui.show_info("Please install kernel headers: sudo apt install linux-headers-$(uname -r)")
return 1

Expand Down