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

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

Open
hferguson opened this issue Jun 26, 2024 · 13 comments
Open

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

hferguson opened this issue Jun 26, 2024 · 13 comments

Comments

@hferguson
Copy link

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-1ubuntu122.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-1ubuntu122.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
Copy link

robertstrom commented Jun 26, 2024

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.

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
Copy link
Author

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
Copy link

xvador commented Jun 28, 2024

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
Copy link

qabpea commented Jul 2, 2024

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
Copy link

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
Copy link

qabpea commented Jul 3, 2024

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
Copy link

jreo commented Jul 6, 2024

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
Copy link

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
Copy link

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
Copy link

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
Copy link
Author

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
Copy link

DudeNamedBen commented Jul 25, 2024

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.

Sharishth referenced this issue in nan0desu/vmware-host-modules Jul 26, 2024
@spoNge369
Copy link

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.

Were you able to solve the Virtual Network Editor problem?, same problem :(

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

10 participants