mkubecek / vmware-host-modules

Patches needed to build VMware (Player and Workstation) host modules against recent kernels
GNU General Public License v2.0
2.27k stars 366 forks source link

Unable to compile 17.5.1 on Pop!OS with Kernel 6.9.3 #259

Open hferguson opened 3 months ago

hferguson commented 3 months ago

The upgrade was foisted on me, and VMWare didn't complain until my last reboot. When I do the usual steps in this project I get the following error stack. I saw a solution for users with 17.5.2, but I can't even get that edition since the VMWare broadcom takeover. Here's the log from the compilation:

hugh@nerdix:~/projects/vmware/vmware-host-modules-workstation-17.5.1$ sudo make [sudo] password for hugh: make -C vmmon-only make[1]: Entering directory '/home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only' Using kernel build system. make -C /lib/modules/6.9.3-76060903-generic/build/include/.. M=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[2]: Entering directory '/usr/src/linux-headers-6.9.3-76060903-generic' warning: the compiler differs from the one used to build the kernel The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0 You are using: gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0 CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/linux/driver.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/linux/driverLog.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/linux/hostif.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/common/apic.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/common/comport.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/common/cpuid.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/common/crosspage.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/common/memtrack.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/common/moduleloop.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/common/phystrack.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/common/sharedAreaVmmon.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/common/statVarsVmmon.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/common/task.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/common/vmx86.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/bootstrap/bootstrap.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/bootstrap/monLoader.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/bootstrap/monLoaderVmmon.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/bootstrap/vmmblob.o LD [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/vmmon.o MODPOST /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/Module.symvers CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/vmmon.mod.o LD [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/vmmon.ko BTF [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/vmmon.ko Skipping BTF generation for /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only/vmmon.ko due to unavailability of vmlinux make[2]: Leaving directory '/usr/src/linux-headers-6.9.3-76060903-generic' make -C $PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= postbuild make[2]: Entering directory '/home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only' make[2]: 'postbuild' is up to date. make[2]: Leaving directory '/home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only' cp -f vmmon.ko ./../vmmon.o make[1]: Leaving directory '/home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmmon-only' make -C vmnet-only make[1]: Entering directory '/home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only' Using kernel build system. make -C /lib/modules/6.9.3-76060903-generic/build/include/.. M=$PWD SRCROOT=$PWD/. \ MODULEBUILDDIR= modules make[2]: Entering directory '/usr/src/linux-headers-6.9.3-76060903-generic' warning: the compiler differs from the one used to build the kernel The kernel was built by: x86_64-linux-gnu-gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0 You are using: gcc-12 (Ubuntu 12.3.0-1ubuntu1~22.04) 12.3.0 CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only/driver.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only/hub.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only/userif.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only/netif.o CC [M] /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only/bridge.o In file included from ./include/linux/spinlock.h:305, from ./include/linux/sched.h:2138, from /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only/bridge.c:25: /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only/bridge.c: In function ‘VNetBridgeReceiveFromVNet’: /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/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) | ^~~~ /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only/bridge.c:587:4: note: in expansion of macro ‘dev_lock_list’ 587 | dev_lock_list(); | ^~~~~ /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/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) | ^~~~ /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only/bridge.c:587:4: note: in expansion of macro ‘dev_lock_list’ 587 | dev_lock_list(); | ^~~~~ /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only/bridge.c: In function ‘VNetBridgeUp’: /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/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) | ^~~~ /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only/bridge.c:902:4: note: in expansion of macro ‘dev_lock_list’ 902 | dev_lock_list(); | ^~~~~ make[4]: [scripts/Makefile.build:244: /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only/bridge.o] Error 1 make[3]: [/usr/src/linux-headers-6.9.3-76060903-generic/Makefile:1925: /home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only] Error 2 make[2]: [Makefile:240: __sub-make] Error 2 make[2]: Leaving directory '/usr/src/linux-headers-6.9.3-76060903-generic' make[1]: [Makefile:117: vmnet.ko] Error 2 make[1]: Leaving directory '/home/hugh/projects/vmware/vmware-host-modules-workstation-17.5.1/vmnet-only' make: *** [Makefile:21: vmnet-only] Error 2 hugh@nerdix:~/projects/vmware/vmware-host-modules-workstation-17.5.1$ cd .. hugh@nerdix:~/projects/vmware$ uname -r 6.9.3-76060903-generic

robertstrom commented 3 months ago

See this thread - https://github.com/mkubecek/vmware-host-modules/issues/250

I was able to get things working on Pop!_OS using the modified project forked form this project that is mentioned in the linked thread above. The screenshot below shows the cloned git directory within the 17.5.1 directory cloned from this project (you don't need to clone the other project to that location. I was just there when I cloned it). The only thing that I can see that does not work is the vmware-netcfg. You will not be able to create, or modify, networks with this fix at this time.

Direct link to the other project mentioned is - https://github.com/nan0desu/vmware-host-modules/tree/tmp/workstation-17.5.2-k6.9.1/vmnet-only

HTH,

image

image

hferguson commented 3 months ago

See this thread - #250

I was able to get things working on Pop!_OS using the modified project forked form this project that is mentioned in the linked thread above. The screenshot below shows the cloned git directory within the 17.5.1 directory cloned from this project (you don't need to clone the other project to that location. I was just there when I cloned it). The only thing that I can see that does not work is the vmware-netcfg. You will not be able to create, or modify, networks with this fix at this time.

Thanks for this. I decided this time around to roll back to the 6.8 kernel as it was faster and more to the point, reversible. I'll be watching this space to see how others progress. I'm now thinking I don't dare upgrade to the 17.5.2 version from 17.5.1. Geez! what happened to VMWare?!? If I didn't know better, Broadcom bought it to destroy the product.

xvador commented 3 months ago

The upgrade was foisted on me, and VMWare didn't complain until my last reboot. When I do the usual steps in this project I get the following error stack. I saw a solution for users with 17.5.2, but I can't even get that edition since the VMWare broadcom takeover. Here's the log from the compilation:

That might help you with older versions: https://support.broadcom.com/group/ecx/productdownloads?subfamily=VMware+Workstation+Pro

qabpea commented 2 months ago

it looks like dev_base_lock has been removed from the kernel https://review.lttng.org/c/lttng-modules/+/12178/4

I will lock at what is used instead and have a look tomorrow

cwilliams001 commented 2 months ago

Was able to use the below from #257 to successfully get vmware version 17.5.2 to work with Pop_OS.

git clone -b tmp/workstation-17.5.2-k6.9.1 https://github.com/nan0desu/vmware-host-modules.git cd vmware-host-modules/ sudo make tarballs && sudo cp -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/ sudo vmware-modconfig --console --install-all

qabpea commented 2 months ago

vmnet-only/vnetInt.h needs to be updated with something like this for the definition of the dev locks

#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 9, 0)
#  define dev_lock_list()    rcu_read_lock()
#  define dev_unlock_list()  rcu_read_unlock()
#else
#  define dev_lock_list()    read_lock(&dev_base_lock)
#  define dev_unlock_list()  read_unlock(&dev_base_lock)
#endif
jreo commented 2 months ago

vmnet-only/vnetInt.h needs to be updated with something like this for the definition of the dev locks

#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 9, 0)
#  define dev_lock_list()    rcu_read_lock()
#  define dev_unlock_list()  rcu_read_unlock()
#else
#  define dev_lock_list()    read_lock(&dev_base_lock)
#  define dev_unlock_list()  read_unlock(&dev_base_lock)
#endif

Exactly. Minor correction, and it works perfectly. Thanks for sharing.

namher-sec commented 2 months ago

Was able to use the below from #257 to successfully get vmware version 17.5.2 to work with Pop_OS.

git clone -b tmp/workstation-17.5.2-k6.9.1 https://github.com/nan0desu/vmware-host-modules.git cd vmware-host-modules/ sudo make tarballs && sudo cp -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/ sudo vmware-modconfig --console --install-all

Thank you so much. This worked

QasimAbbasi9497 commented 2 months ago

vmnet-only/vnetInt.h needs to be updated with something like this for the definition of the dev locks

#if LINUX_VERSION_CODE >= KERNEL_VERSION(6, 9, 0)
#  define dev_lock_list()    rcu_read_lock()
#  define dev_unlock_list()  rcu_read_unlock()
#else
#  define dev_lock_list()    read_lock(&dev_base_lock)
#  define dev_unlock_list()  read_unlock(&dev_base_lock)
#endif

i change my code but the Virtual Network Editor is not working

DudeNamedBen commented 2 months ago

Was able to use the below from #257 to successfully get vmware version 17.5.2 to work with Pop_OS.

git clone -b tmp/workstation-17.5.2-k6.9.1 https://github.com/nan0desu/vmware-host-modules.git cd vmware-host-modules/ sudo make tarballs && sudo cp -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/ sudo vmware-modconfig --console --install-all

Thanks. On Pop!_OS as well here, however the Virtual Network Manager doesn't work. But it got me up and running!

hferguson commented 2 months ago

Was able to use the below from #257 to successfully get vmware version 17.5.2 to work with Pop_OS.

git clone -b tmp/workstation-17.5.2-k6.9.1 https://github.com/nan0desu/vmware-host-modules.git cd vmware-host-modules/ sudo make tarballs && sudo cp -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/ sudo vmware-modconfig --console --install-all

Just got this working today after kernel 6.9.3 pushed again. Decided to take a risk and go for it. Now I'm up and running with VMWare 17.5.2 on Pop! OS 22.04 with Kernel 6.9.3. Kudos to the community here! Shame on Broadcom for actually making VMWare's crappy support even worse. For folks a little uncomfortable with linux here are the instructions again but with line breaks added

git clone -b tmp/workstation-17.5.2-k6.9.1 https://github.com/nan0desu/vmware-host-modules.git cd vmware-host-modules/ sudo make tarballs && sudo cp -v vmmon.tar vmnet.tar /usr/lib/vmware/modules/source/ sudo vmware-modconfig --console --install-all In a nutshell, with the exception of the first two commands, you will need sudo unless you're already root. Apologies to the more experienced linux users here for dumbing this down, but we need to win over converts :)

DudeNamedBen commented 2 months ago

Just got this working today after kernel 6.9.3 pushed again. Decided to take a risk and go for it. Now I'm up and running with VMWare 17.5.2 on Pop! OS 22.04 with Kernel 6.9.3.

Have you tried the Virtual Network Editor? I'm on Pop! 22.04 Kernel 6.9.3 running VMWare 17.5.2 as well and followed the same process. It indeed got me up and running but the VNE doesn't work/launch.