Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

VMware Workstation 17.5.2 Pro has been released #250

Open
stefantalpalaru opened this issue May 14, 2024 · 50 comments
Open

VMware Workstation 17.5.2 Pro has been released #250

stefantalpalaru opened this issue May 14, 2024 · 50 comments

Comments

@stefantalpalaru
Copy link

https://docs.vmware.com/en/VMware-Workstation-Pro/17.5.2/rn/vmware-workstation-1752-pro-release-notes/index.html

@rgadsdon
Copy link

The 'Player' version has been discontinued, and Workstation Pro is now 'free for personal use'.. Download link goes to 'VMware Store Down for Maintenance' and it seems it will be available via CloudVista Store?? 17.5.2 is just another dot-release with some more 'security fixes', with no new features listed... I'm hoping they fix the UI with Wayland......

@rgadsdon
Copy link

Thanks to info found on a certain forum, there is a direct download from the old vmware servers:

https://softwareupdate.vmware.com/cds/vmw-desktop/ws/17.5.2/23775571/linux/core/

@Hyphaed
Copy link

Hyphaed commented May 15, 2024

@rgadsdon do you know if vmware 17.5.2 modules are compiling on kernel 6.9?

I haven't updated the version since I need it for work :: I cannot risk it

@mkubecek
Copy link
Owner

And, surprise, surprise... the module source in 17.5.2 is exactly the same as in 17.5.1 and 17.5.0. On one hand, it makes the transition to new version quite simple, on the other I can't help feeling that it's kind of sad.

@rgadsdon
Copy link

@Hyphaed I have 17.5.2, plus the 17.5.1 vmmon/vmnet patches, plus the 6.9 vmnet patch copied from another thread, working, but I would recommend waiting until the 'correct' 6.9 patch is available here..

@Hyphaed
Copy link

Hyphaed commented May 15, 2024

@rgadsdon I will wait, yes

I do not know if vmware is paying to mkubecek or not

I think they must

I cannot understand why I need to head here to have working vmware modules on my system?

nowadays I've read with 17.5.2 is free for personal use, I got a license for the workstation pro :: and is not about the price....

is about being a Software used by thousands of companies around the world, and is quite common find VMWare virtual machines on servers

hence I cannot just understand why there is that poor support from vmware side

I can understand you need to patch it in order to run MacOS operating system, because of apple non sense copyright that does not let run their OS if the metal on it hasn't an apple stamped

anyway

many thanks for your great work @mkubecek

I guess someday I will move to other virtualization solutions, companies/clients using VMWare was what made me move to VMWare Workstation Pro

@rpressw
Copy link

rpressw commented May 22, 2024

For Ubuntu 24.04, Workstation Pro 17.5.2 has no problem with the 6.5 kernel. Issues do surface with the 6.8 kernel. For the present, a work-around is to just run the 6.5 kernel.

@Hyphaed
Copy link

Hyphaed commented May 22, 2024

@rpressw I'm on ubuntu 24.04 base and no problem running 17.5.2 with kernel 6.9.1

                      +######   ..                         
                  #-+#############. +.                     
               .##+#################-.                    Uptime: 4 hours, 12 mins 
               .#######+#+---..-+######                    
               ###+#+---+-++--....+####.                  Ubuntu Customized OS 
               -##+-----.--.. ..  ..++##                  f2fs, custom kernel, nvidia open kernel 
              ####---++---.-+++-.    -#.                  configured targeting local hardware & work needs 
              ##+-----....----        ##                   
              ##+------...-..-. ..   -+                   Kernel: 6.9.1-tkg-custom 
              .##.+#####+++--+++++++  +                   Packages: 3462 (dpkg), 45 (flatpak) 
               #+---+##++++. ++##-+-. +                    
              .#+-+++-+++++   +++  -  +                   Shell: bash 5.2.21 
               +-++--+-----     ..-..                     DE: GNOME 46.1 
               ++--------++ ++ -                          WM: Mutter 
               ++-+------#---+ .-                         Terminal: gnome-terminal 
               +++-----#######++-   ..                     
                 +-+-##--+++++++++..-                     CPU: 11th Gen Intel i7-11700 (16) @ 4.800GHz 
                 +++--+-----    +  ..                     GPU: NVIDIA GeForce RTX 3070 
                 -++-----####+. --..                      RAM: 8306MiB / 64039MiB 
                  ++-++-----..-.-..                        
                  -++++++-+#-++..-.                        
                  .+-+###+-+##++-.                     
                  .+-----+++--  ..                                                
                  .+--------.  .                                                  
                .+++------... ..                       
             -+-+++--------..--.   .-                  

@rpressw
Copy link

rpressw commented May 22, 2024 via email

@Hyphaed
Copy link

Hyphaed commented May 22, 2024

@rpressw you need to compile the modules

check this other post, many of us had been testing even on 6.9rc

#239 (comment)

I do not know which issues are you having with 6.8

I like 6.9.1 tkg :: it comes with Clear Linux patches and other interesting features, apart I like to compile it targeting the hardware I'm on and modprobed database modules (only the kernel modules I use). It offers many options to choose when compiling and/or to configure trough "customization.cfg"

https://github.com/Frogging-Family/linux-tkg

ubuntu came to exist as a tunned Debian version :: let's not stop tunning the system, there is no need to use everything as it comes out of the box/binaries

that's the beauty of the OS we all around like

I do use VMWare daily on my workflow, it is working with 0 issues here

@rpressw
Copy link

rpressw commented May 22, 2024 via email

@Hyphaed
Copy link

Hyphaed commented May 22, 2024

@rpressw

if you got offended is your problem buddy, do not understand your rection

"And I wasn't asking you to solve any issues for me." haven't wrote at any time I was not interested into help you

just pointed you to the post where you will find more information. Since many people are there posting hat they found and what they did to solve the issues

I understand is just your bad mood

just be more specific and less aggressive next time, will help to make friends

I've installed it on 6.8.10 also :: yes

0 issue apart from 1 jut detected right now about not being able to "launch virtual network editor"

yet note I had been all day working with VMWare with 0 problems, using different guest machines

"Now I really don't have the time to dedicate to this. So I take the path of least resistance."

well, then why are you here? no offense

if you expect all out of the box then just do not lose your time, as for you is just losing time :: checking on github and/or other community places

you do that also when you go hungry to a restaurant? you just tell them you are not really there for the food? is because you are too proud of yourself and cannot merit the nice stuff they are cooking? or what's the problem exactly?

any way....

you are welcome

that's it

just giving an answer tailored to you

@rpressw
Copy link

rpressw commented May 22, 2024 via email

@dwzrd86
Copy link

dwzrd86 commented May 27, 2024

Hello, sorry I'm consfused. Are we getting new modules or can we use the current ones? If using the current ones, what's the procedure to get it to work with 17.5.2?

@rpressw
Copy link

rpressw commented May 27, 2024 via email

@PaoloPelloni
Copy link

I tried the @rpressw suggestion but with no luck
I downloaded the 17.5.1 version just to be sure.... installed the mkubecek files, amended them editing timex.h but when I compile I get:

Starting VMware services: Virtual machine monitor failed Virtual machine communication interface done VM communication interface socket family done Virtual ethernet failed VMware Authentication Daemon done Unable to start services

There are no errors, just a warning that the compiler is different from the one used to build the kernel and the following line:

Skipping BTF generation for /tmp/modconfig-7RfXAe/vmmon-only/vmmon.ko due to unavailability of vmlinux

which I am not sure is an error per se.

Anyone with a similar issue?

Thanks

@rpressw
Copy link

rpressw commented May 28, 2024 via email

@PaoloPelloni
Copy link

Tried this
https://github.com/jvillavi/vmware17-ubuntu23.10
but also failed.

The vmmon e vmnet services fail to start even here.

Waiting for the 17.5.2 patch and see if this works.

@rikosintie
Copy link

I do not know if vmware is paying to mkubecek or not

Me either, but mkubecek has made my life much easier for YEARS.

If he wants to put a "Buy me a coffee" link or a PayPal I would be happy to send him some money.

@W1ldAustin
Copy link

I want to confirm that it is not compiling on Kernel 6.9.

@roelandjansen
Copy link

roelandjansen commented Jun 1, 2024

really lovely work!

on tumbleweed as of today: kernel-default-devel-6.9.1-1.1.x86_64

/home/roeland/src/vmware-host-modules/vmnet-only/bridge.c: In function 'VNetBridgeReceiveFromVNet':
/home/roeland/src/vmware-host-modules/vmnet-only/vmnetInt.h:44:39: error: 'dev_base_lock' undeclared (first use in this function); did you mean 'device_lock'?
44 | #define dev_lock_list() read_lock(&dev_base_lock)
| ^~~~~~~~~~~~~
/usr/src/linux-6.9.1-1/include/linux/rwlock.h:56:48: note: in definition of macro 'read_lock'
56 | #define read_lock(lock) _raw_read_lock(lock)
| ^~~~
/home/roeland/src/vmware-host-modules/vmnet-only/bridge.c:587:4: note: in expansion of macro 'dev_lock_list'
587 | dev_lock_list();
| ^~~~~~~~~~~~~
/home/roeland/src/vmware-host-modules/vmnet-only/vmnetInt.h:44:39: note: each undeclared identifier is reported only once for each function it appears in
44 | #define dev_lock_list() read_lock(&dev_base_lock)
| ^~~~~~~~~~~~~
/usr/src/linux-6.9.1-1/include/linux/rwlock.h:56:48: note: in definition of macro 'read_lock'
56 | #define read_lock(lock) _raw_read_lock(lock)
| ^~~~
/home/roeland/src/vmware-host-modules/vmnet-only/bridge.c:587:4: note: in expansion of macro 'dev_lock_list'
587 | dev_lock_list();
| ^~~~~~~~~~~~~
/home/roeland/src/vmware-host-modules/vmnet-only/bridge.c: In function 'VNetBridgeUp':
/home/roeland/src/vmware-host-modules/vmnet-only/vmnetInt.h:44:39: error: 'dev_base_lock' undeclared (first use in this function); did you mean 'device_lock'?
44 | #define dev_lock_list() read_lock(&dev_base_lock)
| ^~~~~~~~~~~~~
/usr/src/linux-6.9.1-1/include/linux/rwlock.h:56:48: note: in definition of macro 'read_lock'
56 | #define read_lock(lock) _raw_read_lock(lock)
| ^~~~
/home/roeland/src/vmware-host-modules/vmnet-only/bridge.c:902:4: note: in expansion of macro 'dev_lock_list'
902 | dev_lock_list();
| ^~~~~~~~~~~~~

@lourdas
Copy link

lourdas commented Jun 1, 2024

This repository contains a patched vmnet version of the module that claims to compile with kernel 6.9: https://github.com/nan0desu/vmware-host-modules/tree/tmp/workstation-17.5.2-k6.9.1

The repository is forked from this one here.

@edrozenberg
Copy link

edrozenberg commented Jun 1, 2024

This repository contains a patched vmnet version of the module that claims to compile with kernel 6.9: https://github.com/nan0desu/vmware-host-modules/tree/tmp/workstation-17.5.2-k6.9.1

I used this successfully a few days ago w/vmw 17.5.2 and kernel 6.9.3 on a Slackware system. Appears to work fine.

$ git clone -b tmp/workstation-17.5.2-k6.9.1 https://github.com/nan0desu/vmware-host-modules.git

I used approach (2b) from the INSTALL instructions to replace the original module source tarballs with the patched ones:
https://raw.githubusercontent.com/nan0desu/vmware-host-modules/tmp/workstation-17.5.2-k6.9.1/INSTALL

$ make tarballs

Copied the patched tarballs over the original tarballs (which I renamed with .orig) in the vmware install directory and then the normal process to build and install the modules,

$ vmware-modconfig --console --install-all

@PaoloPelloni
Copy link

I am afraid that doesn't work for 6.8.0-31-generic neither using approach 2a and compiling against that kernel. Or at least not on my system.... but then I found the solution (which I copy here for convenience of the readers, but credit goes to:
https://askubuntu.com/questions/1348250/skipping-btf-generation-xxx-due-to-unavailability-of-vmlinux-on-ubuntu-21-04

First install dwarves and copy the file to avoid the warning BTF:
apt install dwarves
cp /sys/kernel/btf/vmlinux /usr/lib/modules/uname -r/build/

Then make the modules with the appropriate command:
make VM_UNAME='6.8.0-31-generic'
sudo make install

Now it is time to sign the modules:
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/"
import to UEFI database
sudo mokutil --import MOK.der (generate a password need next step)

reboot system and import in UEFI BIOS
(use same password)
sudo shutdown -r now

once rebooted need to sign the binaries
sudo kmodsign sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)

sudo kmodsign sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)

on reboot new signed binaries used
sudo shutdown -r now

@Gabbelebab
Copy link

I run an Ubuntu 24.04 system (kernel 6.8.0-35-generic) and I just installed VMware Workstation 17.5.2 Pro.
In my case vmnet does compile, vmmon does not. It throws the error also seen elsewhere, added add the bottom.
Up and until know none of the possible solutions mentioned solved the issue.
So many different setups even so many solutions to issues that seem alike but are not.

/shared/src/vmware-host-modules-w17.5.1/vmmon-only/common/crosspage.o: warning: objtool: CrossPage_CodePage+0x207: 'naked' return found in RETHUNK build
make[3]: *** [scripts/Makefile.build:243: /shared/src/vmware-host-modules-w17.5.1/vmmon-only/common/crosspage.o] Error 255
make[3]: *** Deleting file '/shared/src/vmware-host-modules-w17.5.1/vmmon-only/common/crosspage.o'
make[2]: *** [/usr/src/linux-headers-6.8.0-35-generic/Makefile:1926: /shared/src/vmware-host-modules-w17.5.1/vmmon-only] Error 2
make[1]: *** [Makefile:240: __sub-make] Error 2
make[1]: Leaving directory '/usr/src/linux-headers-6.8.0-35-generic'
make: *** [Makefile:117: vmmon.ko] Error 2

@PaoloPelloni
Copy link

@Gabbelebab
It did compile for me on same Ubuntu version, slightly different kernel, now I am on -35 and it is still fine.

Have you tried giving the kernel parameter (I suspect you did reading your output).
make VM_UNAME='6.8.0-35-generic'

I had no Error 255

@Gabbelebab
Copy link

Gabbelebab commented Jun 15, 2024

@PaoloPelloni Yes tried that option as well. from within the vmmon-omly folder I will investigate further.
Update: and now also from the source root.

@Gabbelebab
Copy link

I've yet to test what I broke by doing this, but I got it to compile and install by adding this to crosspage.c:
(borrowed from: https://stackoverflow.com/questions/75556275/how-to-address-textxxx-naked-return-found-in-rethunk-build-in-assembly-pa)

#if defined(CONFIG_RETHUNK) && !defined(__DISABLE_EXPORTS) && !defined(BUILD_VDSO)
#define RET "jmp __x86_return_thunk\n"
#else /* CONFIG_RETPOLINE /
#ifdef CONFIG_SLS
#define RET ret; int3
#else
#define RET ret
#endif
#endif /
CONFIG_RETPOLINE */

and "extern unsigned long random_get_entropy_fallback(void);" to timex.h

@UncrownedLioness
Copy link

I've yet to test what I broke by doing this, but I got it to compile and install by adding this to crosspage.c: (borrowed from: https://stackoverflow.com/questions/75556275/how-to-address-textxxx-naked-return-found-in-rethunk-build-in-assembly-pa)

#if defined(CONFIG_RETHUNK) && !defined(__DISABLE_EXPORTS) && !defined(BUILD_VDSO) #define RET "jmp __x86_return_thunk\n" #else /* CONFIG_RETPOLINE / #ifdef CONFIG_SLS #define RET ret; int3 #else #define RET ret #endif #endif / CONFIG_RETPOLINE */

and "extern unsigned long random_get_entropy_fallback(void);" to timex.h

you just added it to the end of the file?

@Gabbelebab
Copy link

Gabbelebab commented Jun 15, 2024

you just added it to the end of the file?
No, the RET macro was added almost at the top of crosspage.c, right after the #ifdef linux section.
The original line 646 of crospage.c reads "ret\n", that's what cause the warning. Changing it to "jmp __x86_return_thunk\n" directly instead of defining a macro makes it compile as well.

The line that was added to "/usr/src/linux-headers-6.8.0-35/arch/x86/include/asm/timex.h" is placed directly after the last include that was already there, so:
#include <asm/processor.h>
#include <asm/tsc.h>
extern unsigned long random_get_entropy_fallback(void);

I don't know what side effects this might have created.
Edit: not really up for signing them myself, will call it quits for a few days. Other stuff to do :-)

@build000
Copy link

build000 commented Jun 17, 2024

This repository contains a patched vmnet version of the module that claims to compile with kernel 6.9: https://github.com/nan0desu/vmware-host-modules/tree/tmp/workstation-17.5.2-k6.9.1

I used this successfully a few days ago w/vmw 17.5.2 and kernel 6.9.3 on a Slackware system. Appears to work fine.

$ git clone -b tmp/workstation-17.5.2-k6.9.1 https://github.com/nan0desu/vmware-host-modules.git

I used approach (2b) from the INSTALL instructions to replace the original module source tarballs with the patched ones: https://raw.githubusercontent.com/nan0desu/vmware-host-modules/tmp/workstation-17.5.2-k6.9.1/INSTALL

$ make tarballs

Copied the patched tarballs over the original tarballs (which I renamed with .orig) in the vmware install directory and then the normal process to build and install the modules,

$ vmware-modconfig --console --install-all

To repozytorium zawiera poprawioną wersję modułu vmnet, która twierdzi, że kompiluje się z jądrem 6.9: https://github.com/nan0desu/vmware-host-modules/tree/tmp/workstation-17.5.2-k6.9.1

Repozytorium zostało rozwidlone z tego tutaj.

I confirm - it works on my 6.9.4 kernel under Fedora 40 - of course vmware-netcfg does not work, but in my simple tests of various systems it does not matter - I am using the free version VMware-Pro-17.5.2-build-23775571, in currently from Broadcom.
Exactly - I used approach (2b) from the INSTALL instructions @mkubecek

@xiongmao86
Copy link

xiongmao86 commented Jun 18, 2024

Hello, friends, it is my first time to install workstation, I see 17.5.2 patch is not yet to come. Can I have a quick setup, so that I can get my hand dirty quickly, playing with virtual machines while waiting for the patch to come? I have read through readme and I am confused about relationships between kernel versions and patch versions. Right now 17.5.1 patch is available, if I download 17.5.1 version of workstation, and use this patch, which version of kernel should I use?

I have use 17.5.1 with kernel 6.8.0 on ubuntu 24.04. I have installed kali in the virtual machine. Thanks for making this possible, mkubecek.

@robertstrom
Copy link

robertstrom commented Jun 19, 2024

This repository contains a patched vmnet version of the module that claims to compile with kernel 6.9: https://github.com/nan0desu/vmware-host-modules/tree/tmp/workstation-17.5.2-k6.9.1

I used this successfully a few days ago w/vmw 17.5.2 and kernel 6.9.3 on a Slackware system. Appears to work fine.

$ git clone -b tmp/workstation-17.5.2-k6.9.1 https://github.com/nan0desu/vmware-host-modules.git

I used approach (2b) from the INSTALL instructions to replace the original module source tarballs with the patched ones: https://raw.githubusercontent.com/nan0desu/vmware-host-modules/tmp/workstation-17.5.2-k6.9.1/INSTALL

$ make tarballs

Copied the patched tarballs over the original tarballs (which I renamed with .orig) in the vmware install directory and then the normal process to build and install the modules,

$ vmware-modconfig --console --install-all

This repository contains a patched vmnet version of the module that claims to compile with kernel 6.9: https://github.com/nan0desu/vmware-host-modules/tree/tmp/workstation-17.5.2-k6.9.1

I used this successfully a few days ago w/vmw 17.5.2 and kernel 6.9.3 on a Slackware system. Appears to work fine.
$ git clone -b tmp/workstation-17.5.2-k6.9.1 https://github.com/nan0desu/vmware-host-modules.git
I used approach (2b) from the INSTALL instructions to replace the original module source tarballs with the patched ones: https://raw.githubusercontent.com/nan0desu/vmware-host-modules/tmp/workstation-17.5.2-k6.9.1/INSTALL
$ make tarballs
Copied the patched tarballs over the original tarballs (which I renamed with .orig) in the vmware install directory and then the normal process to build and install the modules,
$ vmware-modconfig --console --install-all

To repozytorium zawiera poprawioną wersję modułu vmnet, która twierdzi, że kompiluje się z jądrem 6.9: https://github.com/nan0desu/vmware-host-modules/tree/tmp/workstation-17.5.2-k6.9.1
Repozytorium zostało rozwidlone z tego tutaj.

I confirm - it works on my 6.9.4 kernel under Fedora 40 - of course vmware-netcfg does not work, but in my simple tests of various systems it does not matter - I am using the free version VMware-Pro-17.5.2-build-23775571, in currently from Broadcom. Exactly - I used approach (2b) from the INSTALL instructions @mkubecek

I can confirm that this worked for me also (only currently running VMware Workstation 17.5.1 not 17.5.2)

Linux oryx-pro 6.9.3-76060903-generic #202405300957171834820922.04~7817b67 SMP PREEMPT_DYNAMIC Mon J x86_64 x86_64 x86_64 GNU/Linux

└─(13:36:57)──> cat /etc/os-release ──(Wed,Jun19)─┘
NAME="Pop!_OS"
VERSION="22.04 LTS"
ID=pop
ID_LIKE="ubuntu debian"
PRETTY_NAME="Pop!_OS 22.04 LTS"
VERSION_ID="22.04"

HOME_URL="https://pop.system76.com"
SUPPORT_URL="https://support.system76.com"
BUG_REPORT_URL="https://github.com/pop-os/pop/issues"
PRIVACY_POLICY_URL="https://system76.com/privacy"
VERSION_CODENAME=jammy
UBUNTU_CODENAME=jammy
LOGO=distributor-logo-pop-os

I never actually noticed that vmware-netcfg didn't work. I had previously created another NAT network that I do need but I have not had to create any new networks since then (thankfully). Has that always been the case with the mkubecek/vmware-host-modules?

Thanks @mkubecek

@drumtechphoto
Copy link

This repository contains a patched vmnet version of the module that claims to compile with kernel 6.9: https://github.com/nan0desu/vmware-host-modules/tree/tmp/workstation-17.5.2-k6.9.1

I used this successfully a few days ago w/vmw 17.5.2 and kernel 6.9.3 on a Slackware system. Appears to work fine.

$ git clone -b tmp/workstation-17.5.2-k6.9.1 https://github.com/nan0desu/vmware-host-modules.git

I used approach (2b) from the INSTALL instructions to replace the original module source tarballs with the patched ones: https://raw.githubusercontent.com/nan0desu/vmware-host-modules/tmp/workstation-17.5.2-k6.9.1/INSTALL

$ make tarballs

Copied the patched tarballs over the original tarballs (which I renamed with .orig) in the vmware install directory and then the normal process to build and install the modules,

$ vmware-modconfig --console --install-all

I also confirm following the above worked.

VMware Workstation Pro 17
Version 17.5.2 build-23775571
OS: Fedora Linux 40 (Workstation Edition)
Host: Latitude 5580
Kernel: 6.9.4-200.fc40.x86_64
Uptime: 1 hour, 15 mins
Packages: 2281 (rpm), 21 (flatpak)
Shell: bash 5.2.26
Resolution: 1366x768
DE: GNOME 46.2
CPU: Intel i5-7300U (4) @ 3.500GHz
GPU: Intel HD Graphics 620
Memory: 2813MiB / 31967MiB

@build000
Copy link

build000 commented Jun 20, 2024

@robertstrom

I never actually noticed that vmware-netcfg didn't work. I had previously created another NAT network that I do need but I have not had to create any new networks since then (thankfully). Has that always been the case with the mkubecek/vmware-host-modules?

Thanks @mkubecek

No, this has never been the case with mkubecek/vmware-host-modules before - note, however, that the method described here and the modified driver source files themselves do not come from @mkubecek but from @nan0desu. To sum up - as you wrote - you must first have all possible network scenarios created using vmware-netcfg, and only at the very end introduce this modification to the installation of these drivers, because after this vmware-netcfg is not currently available and using the code as it is now works.

@robertstrom
Copy link

@robertstrom

I never actually noticed that vmware-netcfg didn't work. I had previously created another NAT network that I do need but I have not had to create any new networks since then (thankfully). Has that always been the case with the mkubecek/vmware-host-modules?
Thanks @mkubecek

No, this has never been the case with mkubecek/vmware-host-modules before - note, however, that the method described here and the modified driver source files themselves do not come from @mkubecek but from @nan0desu. To sum up - as you wrote - you must first have all possible network scenarios created using vmware-netcfg, and only at the very end introduce this modification to the installation of these drivers, because after this vmware-netcfg is not currently available and using the code as it is now works.

I was pretty sure that, as you stated, everything has worked previously with the @mkubecek host modules.

Hoping that @mkubecek updates his modules so that we can revert to updating the VMware Workstation modules as we all have done previously. Everything was still working for me (module updating) until the most recent updating that I did yesterday where the kernel was updated to 6.9.3-76060903-generic.

@cgrard
Copy link

cgrard commented Jun 24, 2024

I was pretty sure that, as you stated, everything has worked previously with the @mkubecek host modules.

Hoping that @mkubecek updates his modules so that we can revert to updating the VMware Workstation modules as we all have done previously. Everything was still working for me (module updating) until the most recent updating that I did yesterday where the kernel was updated to 6.9.3-76060903-generic.

Yep. Same here, exact same version.

@bytium
Copy link

bytium commented Jul 3, 2024

Had to modify the source to make it work with 6.9. Tested on debian testing.

https://github.com/bytium/vm-host-modules

@Sharishth
Copy link

can someone check this fork

@mkubecek

Issues: Application/VM freezes on starting it.

Built and Tested for Kernal 6.9.3-76060903-generic (k6.9)

for vmware-workstation and player - 17.5.2.23775571 (17.5.2)

branched from tmp/workstation-17.5.0-k6.8

Error caused after make: dev_base_lock’ undeclared (first use in this function); did you mean ‘device_lock’?

/vmware-host-modules/vmnet-only/bridge.c: In function ‘VNetBridgeReceiveFromVNet’:
/vmware-host-modules/vmnet-only/vmnetInt.h:44:39: error: ‘dev_base_lock’ undeclared (first use in this function); did you mean ‘device_lock’?
   44 | #define dev_lock_list()    read_lock(&dev_base_lock)
      |                                       ^~~~~~~~~~~~~
./include/linux/rwlock.h:56:48: note: in definition of macro ‘read_lock’
   56 | #define read_lock(lock)         _raw_read_lock(lock)
      |                                                ^~~~
/vmware-host-modules/vmnet-only/bridge.c:587:4: note: in expansion of macro ‘dev_lock_list’
  587 |    dev_lock_list();
      |    ^~~~~~~~~~~~~
/vmware-host-modules/vmnet-only/vmnetInt.h:44:39: note: each undeclared identifier is reported only once for each function it appears in
   44 | #define dev_lock_list()    read_lock(&dev_base_lock)
      |                                       ^~~~~~~~~~~~~
./include/linux/rwlock.h:56:48: note: in definition of macro ‘read_lock’
   56 | #define read_lock(lock)         _raw_read_lock(lock)
      |                                                ^~~~
/vmware-host-modules/vmnet-only/bridge.c:587:4: note: in expansion of macro ‘dev_lock_list’
  587 |    dev_lock_list();
      |    ^~~~~~~~~~~~~
/vmware-host-modules/vmnet-only/bridge.c: In function ‘VNetBridgeUp’:
/vmware-host-modules/vmnet-only/vmnetInt.h:44:39: error: ‘dev_base_lock’ undeclared (first use in this function); did you mean ‘device_lock’?
   44 | #define dev_lock_list()    read_lock(&dev_base_lock)
      |                                       ^~~~~~~~~~~~~
./include/linux/rwlock.h:56:48: note: in definition of macro ‘read_lock’
   56 | #define read_lock(lock)         _raw_read_lock(lock)
      |                                                ^~~~
/vmware-host-modules/vmnet-only/bridge.c:902:4: note: in expansion of macro ‘dev_lock_list’
  902 |    dev_lock_list();

The issue is that 'dev_base_lock' is no longer used in newer kernel versions. Instead, we need to use a different mechanism for protecting the network device list. In modern kernels, this is typically done using RCU (Read-Copy-Update) mechanisms.

changes done in these files

  • vmnet-only/vmnetInt.h
  • vmnet-only/bridge.c

After compiling:

sudo cp ./vmmon.o /lib/modules/6.9.3-76060903-generic/misc/

sudo cp ./vmnet.o /lib/modules/6.9.3-76060903-generic/misc/

sudo depmod -a

sudo modprobe vmmon

sudo modprobe vmnet

verify: lsmod | grep vm

incase of error:

sudo mv /lib/modules/6.9.3-76060903-generic/misc/vmmon.o /lib/modules/6.9.3-76060903-generic/misc/vmmon.ko

sudo mv /lib/modules/6.9.3-76060903-generic/misc/vmnet.o /lib/modules/6.9.3-76060903-generic/misc/vmnet.ko

sudo depmod -a

sudo modprobe vmmon

sudo modprobe vmnet

@rakotomandimby
Copy link

rakotomandimby commented Jul 8, 2024

@nan0desu what about the above patch?

nan0desu added a commit to nan0desu/vmware-host-modules that referenced this issue Jul 9, 2024
@nan0desu
Copy link

nan0desu commented Jul 9, 2024

@nan0desu what about the above patch?

At least it compiles for 6.6.36-1-longterm and 6.9.7-1-default, don't have much time now to test how it works.

@TimWinkler
Copy link

can someone check this fork

@mkubecek

Issues: Application/VM freezes on starting it.

Built and Tested for Kernal 6.9.3-76060903-generic (k6.9)

for vmware-workstation and player - 17.5.2.23775571 (17.5.2)

branched from tmp/workstation-17.5.0-k6.8

Error caused after make: dev_base_lock’ undeclared (first use in this function); did you mean ‘device_lock’?

/vmware-host-modules/vmnet-only/bridge.c: In function ‘VNetBridgeReceiveFromVNet’:
/vmware-host-modules/vmnet-only/vmnetInt.h:44:39: error: ‘dev_base_lock’ undeclared (first use in this function); did you mean ‘device_lock’?
   44 | #define dev_lock_list()    read_lock(&dev_base_lock)
      |                                       ^~~~~~~~~~~~~
./include/linux/rwlock.h:56:48: note: in definition of macro ‘read_lock’
   56 | #define read_lock(lock)         _raw_read_lock(lock)
      |                                                ^~~~
/vmware-host-modules/vmnet-only/bridge.c:587:4: note: in expansion of macro ‘dev_lock_list’
  587 |    dev_lock_list();
      |    ^~~~~~~~~~~~~
/vmware-host-modules/vmnet-only/vmnetInt.h:44:39: note: each undeclared identifier is reported only once for each function it appears in
   44 | #define dev_lock_list()    read_lock(&dev_base_lock)
      |                                       ^~~~~~~~~~~~~
./include/linux/rwlock.h:56:48: note: in definition of macro ‘read_lock’
   56 | #define read_lock(lock)         _raw_read_lock(lock)
      |                                                ^~~~
/vmware-host-modules/vmnet-only/bridge.c:587:4: note: in expansion of macro ‘dev_lock_list’
  587 |    dev_lock_list();
      |    ^~~~~~~~~~~~~
/vmware-host-modules/vmnet-only/bridge.c: In function ‘VNetBridgeUp’:
/vmware-host-modules/vmnet-only/vmnetInt.h:44:39: error: ‘dev_base_lock’ undeclared (first use in this function); did you mean ‘device_lock’?
   44 | #define dev_lock_list()    read_lock(&dev_base_lock)
      |                                       ^~~~~~~~~~~~~
./include/linux/rwlock.h:56:48: note: in definition of macro ‘read_lock’
   56 | #define read_lock(lock)         _raw_read_lock(lock)
      |                                                ^~~~
/vmware-host-modules/vmnet-only/bridge.c:902:4: note: in expansion of macro ‘dev_lock_list’
  902 |    dev_lock_list();

The issue is that 'dev_base_lock' is no longer used in newer kernel versions. Instead, we need to use a different mechanism for protecting the network device list. In modern kernels, this is typically done using RCU (Read-Copy-Update) mechanisms.

changes done in these files

  • vmnet-only/vmnetInt.h
  • vmnet-only/bridge.c

After compiling:

sudo cp ./vmmon.o /lib/modules/6.9.3-76060903-generic/misc/

sudo cp ./vmnet.o /lib/modules/6.9.3-76060903-generic/misc/

sudo depmod -a

sudo modprobe vmmon

sudo modprobe vmnet

verify: lsmod | grep vm

incase of error:

sudo mv /lib/modules/6.9.3-76060903-generic/misc/vmmon.o /lib/modules/6.9.3-76060903-generic/misc/vmmon.ko

sudo mv /lib/modules/6.9.3-76060903-generic/misc/vmnet.o /lib/modules/6.9.3-76060903-generic/misc/vmnet.ko

sudo depmod -a

sudo modprobe vmmon

sudo modprobe vmnet

works for me

@Sharishth
Copy link

can someone check this fork

@mkubecek

Issues: Application/VM freezes on starting it.

Built and Tested for Kernal 6.9.3-76060903-generic (k6.9)

for vmware-workstation and player - 17.5.2.23775571 (17.5.2)

branched from tmp/workstation-17.5.0-k6.8

Error caused after make: dev_base_lock’ undeclared (first use in this function); did you mean ‘device_lock’?

/vmware-host-modules/vmnet-only/bridge.c: In function ‘VNetBridgeReceiveFromVNet’:
/vmware-host-modules/vmnet-only/vmnetInt.h:44:39: error: ‘dev_base_lock’ undeclared (first use in this function); did you mean ‘device_lock’?
   44 | #define dev_lock_list()    read_lock(&dev_base_lock)
      |                                       ^~~~~~~~~~~~~
./include/linux/rwlock.h:56:48: note: in definition of macro ‘read_lock’
   56 | #define read_lock(lock)         _raw_read_lock(lock)
      |                                                ^~~~
/vmware-host-modules/vmnet-only/bridge.c:587:4: note: in expansion of macro ‘dev_lock_list’
  587 |    dev_lock_list();
      |    ^~~~~~~~~~~~~
/vmware-host-modules/vmnet-only/vmnetInt.h:44:39: note: each undeclared identifier is reported only once for each function it appears in
   44 | #define dev_lock_list()    read_lock(&dev_base_lock)
      |                                       ^~~~~~~~~~~~~
./include/linux/rwlock.h:56:48: note: in definition of macro ‘read_lock’
   56 | #define read_lock(lock)         _raw_read_lock(lock)
      |                                                ^~~~
/vmware-host-modules/vmnet-only/bridge.c:587:4: note: in expansion of macro ‘dev_lock_list’
  587 |    dev_lock_list();
      |    ^~~~~~~~~~~~~
/vmware-host-modules/vmnet-only/bridge.c: In function ‘VNetBridgeUp’:
/vmware-host-modules/vmnet-only/vmnetInt.h:44:39: error: ‘dev_base_lock’ undeclared (first use in this function); did you mean ‘device_lock’?
   44 | #define dev_lock_list()    read_lock(&dev_base_lock)
      |                                       ^~~~~~~~~~~~~
./include/linux/rwlock.h:56:48: note: in definition of macro ‘read_lock’
   56 | #define read_lock(lock)         _raw_read_lock(lock)
      |                                                ^~~~
/vmware-host-modules/vmnet-only/bridge.c:902:4: note: in expansion of macro ‘dev_lock_list’
  902 |    dev_lock_list();

The issue is that 'dev_base_lock' is no longer used in newer kernel versions. Instead, we need to use a different mechanism for protecting the network device list. In modern kernels, this is typically done using RCU (Read-Copy-Update) mechanisms.

changes done in these files

  • vmnet-only/vmnetInt.h
  • vmnet-only/bridge.c

After compiling:

sudo cp ./vmmon.o /lib/modules/6.9.3-76060903-generic/misc/

sudo cp ./vmnet.o /lib/modules/6.9.3-76060903-generic/misc/

sudo depmod -a

sudo modprobe vmmon

sudo modprobe vmnet

verify: lsmod | grep vm

incase of error:

sudo mv /lib/modules/6.9.3-76060903-generic/misc/vmmon.o /lib/modules/6.9.3-76060903-generic/misc/vmmon.ko

sudo mv /lib/modules/6.9.3-76060903-generic/misc/vmnet.o /lib/modules/6.9.3-76060903-generic/misc/vmnet.ko

sudo depmod -a

sudo modprobe vmmon

sudo modprobe vmnet

works for me

I meant workstation opens ups and all, but when you boot up a VM it doesn't freeze? Maybe I should try again?

@rakotomandimby
Copy link

All, this comment is just to inform that @nan0desu and @Sharishth patches can be stacked and reported to compile: https://github.com/nan0desu/vmware-host-modules/commits/tmp/workstation-17.5.2-k6.9-sharishth/

@Kr0ff
Copy link

Kr0ff commented Jul 14, 2024

I am afraid that doesn't work for 6.8.0-31-generic neither using approach 2a and compiling against that kernel. Or at least not on my system.... but then I found the solution (which I copy here for convenience of the readers, but credit goes to: https://askubuntu.com/questions/1348250/skipping-btf-generation-xxx-due-to-unavailability-of-vmlinux-on-ubuntu-21-04

First install dwarves and copy the file to avoid the warning BTF: apt install dwarves cp /sys/kernel/btf/vmlinux /usr/lib/modules/uname -r/build/

Then make the modules with the appropriate command: make VM_UNAME='6.8.0-31-generic' sudo make install

Now it is time to sign the modules: openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=VMware/" import to UEFI database sudo mokutil --import MOK.der (generate a password need next step)

reboot system and import in UEFI BIOS (use same password) sudo shutdown -r now

once rebooted need to sign the binaries sudo kmodsign sha256 ./MOK.priv ./MOK.der $(modinfo -n vmmon)

sudo kmodsign sha256 ./MOK.priv ./MOK.der $(modinfo -n vmnet)

on reboot new signed binaries used sudo shutdown -r now

Hi,

Installed Ubuntu 24.04 yesterday and can confirm that this approach worked for me. Thanks for sharing very useful !
The following is the output from /etc/init.d/vmawre after the last kmodsign steps required:

user@hostname:pts/0-> /home » user (1) 
> sudo /etc/init.d/vmware status
[sudo] password for user: 
Module vmmon loaded
Module vmnet loaded
user@hostname:pts/0-> /home » user (0) 
> sudo /etc/init.d/vmware start 
Starting VMware services:
   Virtual machine monitor                                             done
   Virtual machine communication interface                             done
   VM communication interface socket family                            done
   Virtual ethernet                                                    done
   VMware Authentication Daemon                                        done
   Shared Memory Available                                             done

@The-SamminAter
Copy link

When trying to compile any of the recent branches listed here (both branches of nan0desu's and bytium's 17.5.2) with Arch's 6.9.10 kernel and headers I get cc1: error: code model kernel does not support PIC mode. Might anyone know of a solution?

@Sharishth
Copy link

Sharishth commented Jul 19, 2024

I am thinking of a rollback both kernel and workstation probably to 6.5 and 17.5.0. before that I will try @nan0desu 's patch above in which he has implemented both of our contribution. And probably avoid generic ones. I would recommend all linux users to avoid updates that include kernel updates. That is why I am not going for 6.10 before the 6.9 generic one is resolved. I learned this from recent experience now.

@KarlCHansen
Copy link

I upgraded my local installation from VMWare 17.5.1 to 17.5.2, and nothing but PROBLEMS.

VMs which have worked fine for months won't boot up. This includes VMs with Windows, QNX, and Linux.

VMs which have been running stably are hanging with Windoze showing high CPU utilization. Only way to resolve is to have VMWare terminate the VM. This also includes VMs with Windows, QNX, and Linux.

I tried creating brand new VMs for Ubuntu 23.10 and 24.04, and both hung during creation at various locations. Tried this MANY times using variations of VM configurations -- memory: 4G, 8G, 12G; Processors: 1, 2, 4, 12; Side Channel mitigation both enabled and disabled; Nothing works.

And then when one of my Ubuntu 23.10 sessions was stable-ish, apt update pulled new kernel files, and the next time I started it, V17.5.2 does the typical "I need to recompile modules vmmon and vmnet". But the compile for vmmon fails. Oh Joy.

And Broadcom? Talk about USELESS! Hours online with support chats. Days waiting for responses when asking support questions via email.

I have been a loyal VMWare paying customer with Workstation Pro and Fusion licenses going back almost 15 years. And all seems to be wasted by Broadcom's inane decisions regarding VMWare and licensing.

I am going to TRY downgrading back to VMWare V17.5.1, but for now V17.5.2 is persona non grata.

I would recommend garlic, crosses, and holy water before I would recommend V17.5.2 to anyone.

@roelandjansen
Copy link

@KarlCHansen

I am running 17.5.2 form some time. Like a few days after it was released. Now, workstation officially does NOT support other configs besides what it has defined at launch of 17.5.2.

Having said that, we have @mkubecek luckily who fixes the small issues comiling the modules. (Else you wouldn't be here, right?

Now. I do run tumbleweed, fedora, ubuntu, rhel, sles, you name it as testsystems both virtual and on hardware.
The interesting part of your complaint is that it does not happen here. Mabe soething else is wrong there.

Even ky "kick ass" kernel versions just go well here.

I start with the point where vmware "fails" with the known "recompile modukes" fails.

Linux zeetak.invalid 6.9.9-1-default #1 SMP PREEMPT_DYNAMIC Thu Jul 11 11:31:54 UTC 2024 (8c0f797) x86_64 x86_64 x86_64 GNU/Linux

roeland@zeetak:~/src> cd vmware-host-modules/

roeland@zeetak:~/src/vmware-host-modules> make && sudo make install && sudo systemctl restart vmware

make -C vmmon-only
make[1]: Entering directory '/home/roeland/src/vmware-host-modules/vmmon-only'
Using kernel build system.
make -C /lib/modules/6.9.9-1-default/build/include/.. M=$PWD SRCROOT=$PWD/.
MODULEBUILDDIR= modules
make[2]: Entering directory '/usr/src/linux-6.9.9-1-obj/x86_64/default'
CC [M] /home/roeland/src/vmware-host-modules/vmmon-only/linux/driver.o
[....]
LD [M] /home/roeland/src/vmware-host-modules/vmnet-only/vmnet.ko
BTF [M] /home/roeland/src/vmware-host-modules/vmnet-only/vmnet.ko
Skipping BTF generation for /home/roeland/src/vmware-host-modules/vmnet-only/vmnet.ko due to unavailability of vmlinux
make[2]: Leaving directory '/usr/src/linux-6.9.9-1-obj/x86_64/default'
make -C $PWD SRCROOT=$PWD/.
MODULEBUILDDIR= postbuild
make[2]: Entering directory '/home/roeland/src/vmware-host-modules/vmnet-only'
make[2]: 'postbuild' is up to date.
make[2]: Leaving directory '/home/roeland/src/vmware-host-modules/vmnet-only'
cp -f vmnet.ko ./../vmnet.o
make[1]: Leaving directory '/home/roeland/src/vmware-host-modules/vmnet-only'
install -D -t /lib/modules/6.9.9-1-default/misc vmmon-only/vmmon.ko vmnet-only/vmnet.ko
strip --strip-debug /lib/modules/6.9.9-1-default/misc/vmmon.ko /lib/modules/6.9.9-1-default/misc/vmnet.ko
if test -z ""; then /sbin/depmod -a 6.9.9-1-default; fi
roeland@zeetak:~/src/vmware-host-modules> vmware

and now it pops up.

Having said that , sometimes (!) older vm's that are in a suspended state cannot be re-spun up and will throw errors.
So to "fix" that, make a cold start, update eventual "hardware compatible stuff" that vmware will ask you but basically, that's just it.

So, maybe you first take a breath, be sure your hardware and OS are ok (tbh: ubuntu or any derived from debian is not my favourite here and we don't use it for any serious workload we run here.)

In any case, the build and make vmware work took the laptop 5 seconds. And it's an older laptop.

So why not try to maually comile and share your issues instead of barking againts the wrong trees (vmware as well as here).

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests