Any success installing VMware Workstation on virgin Rocky Linux 8.5? - linux

Using a virgin (but updated) version of Rocky Linux 8.5, I am trying to install VMware Workstation 16.2.1 (and others), but get compile errors during the first attempt to run, when vmmon and vmnet are being built.
All the proper, current headers from kernel-devel and kernel-headers are installed.
I tried upgrading to the 5.16.4 kernal at kernel.org, with all associated headers, and basically get the same errors.
"Unable to install all modules." i.e., vmmon and vmnet
Posts i have found with searching the net seem to indicate that there was a "back-port" of an upstream fix to Rocky that has affected the ability to build the loadable kernel modules necessary to run vmware - but i cannot confirm this is actually the problem that I am experiencing.
So i simply ask these questions: Can anyone (today) install VMware Workstation 16.2.1 (or any version), on a fresh install of Rocky Linux 8.5?
If so, would you please point me at your installation instructions, because I am unable to build "vmmon" and "vmnet" modules today (2022-01-04), that allow me to actually run virtual machines with vmware? (The kernel modules fail to compile and build.)
(and after 15 years of using stackoverflow i do not have the reputation to create a "rocky-linux" question tag...)

See https://unix.stackexchange.com/questions/689436/the-vmmon-and-vmnet-vmware-workstation-kernel-modules-fail-to-build-on-rocky-lin
mbubecek's instructions work for a variety of releases and should compile perfectly and run without issue, if you follow his instructions.
I have successfully used these methods at least a half dozen times with Rocky 8.5 and 8.6 with vmware workstation 16.1 up to version 16.2.1
NOTE: This error is NOT Rocky Linux specific. Also happens on some versions of RHEL 8 and CentOS 8.x I would also expect this "fix" to work on all of the other linux versions that are RHEL 8-derived.

I've been having difficulty with the same issue, and a colleague pointed me to check my kernel. This is our "official" resolution. See if the below works for you.
This is due to differences between the kernel and the source code for the VMWare modules, see here for more information. You can get the correct kernel modules, and build them by executing the following commands
wget https://github.com/mkubecek/vmware-host-modules/archive/workstation-16.1.0.tar.gz
tar -xf workstation-16.1.0.tar.gz
cd vmware-host-modules-workstation-16.1.0/
make
sudo make install
If you get the error,
crosspage.c:53:16: fatal error: linux/frame.h: No such file or directory
The error is described here. The solution is to remove (i.e. comment out) the offending include file in crosspage.c After doing the sudo make install, it is a very good idea to restart you host.
You may need to manually insert the modules into the kernel the first time after running make install'. The kernel modules (vmmon.ko and vmnet.ko) will be found at /lib/modules//misc. The following set of command will do this:
cd /lib/modules/$(uname -r)/misc
sudo insmod vmmon.ko
sudo insmod vmnet.ko
The modules should be load automatically after a restart/reboot.
If you update vmware to a different version (say 16.2.1) you may need to this again. Just change the versions in the above commands. If you hit the update button on the splash-screen and failed to notice the version you are updating to, you can run `vmware -v' at a command prompt to get the version you updated to.

Related

Why are the same packages installed with older versions in certain linux distros?

So, I recently noticed that depending on which Linux machine I was running, valgrind would throw a solid 90k errors, for the exact same file/code that threw no errors using valgrind on a different machine. So, I looked into it, and it looks like while one is running valgrind-3.7.0, the other has valgrind-3.15.0. sudo apt update/upgrade didn't show anything, and reinstalling didn't make a difference. (For reference, I am using Raspbian on one and Ubuntu on the other)
Now the question: Why are packages installed with different versions on different distributions? Would it be advisable to manually install the newer version on a distro that defaults to an older version? If so, what is the easiest way to do so?
Yes i have encountered such an issue.Some packages require older versions.The errors depend on the dependencies and your system configurations.
I guess to install an older version of what you want to install, do some research and try changing /etc/sources.list.

my linux suse 13.6.2 is missing a directory

I downloaded Suse Linux 32bit 3.16.6.2.0 as an iso, burned a DVD and installed it as a dual OS with my Win 7. Now, to get the WLan Stick to work....
Using the Win OS I downloaded two files :
ndiswrapper-1.59.tar.gz and fwlanusb-1.00.00.tar.gz
I moved them into the Linux partition and ran the ./install files as instructed.
With both of these installation it requires running a makefile script. In both cases it comes to a crashing stop when /lib/modules/kernel3.16.6.2.0/build is not found.
The 'build' subdirectiory or file is not present. Can I call up one of the rpms to get this part of the Linux OS installed?? Which rpm??
Solving the problem with my WLAN Stick is especially hard because often the Linux documentation says : "in order to make you your internet connection function you must download xyz".
Please install the kernel-source RPM for your running kernel. If this doesn't help already, please make sure that a symlink from /lib/modules/kernel3.16.6.2.0/build to /usr/src/linux exists.

Golang cross-compilation: gccgo - unrecognized command line option `-marm`

I'm trying to compile a Go app for linux/arm and keep running into problems on my Ubuntu machine. When I run GOOS=linux GOARCH=arm go build in my source directory, I get tons of erorrs that are variations of:
# github.com/huin/mqtt
gccgo: error: unrecognized command line option `-marm`
Running gccgo --help informs me that options starting with -g, -f -m (and others) will be passed on to any sub-processes started by gccgo, so I don't know which process it's sending -marm to.
Any clues? Ubuntu 14.10 LTS, 64bit
So thanks to a clue by Dean, I've worked out the issue and solved it.
The issue was caused by me installing Go via apt-get, then removing it (via apt-get), then installing Go from the golang website. There were still files left over from the first install, which were probably older versions and therefore didn't have support for the -marm flag.
I was going to wipe my dev machine anyway, so I did, installed Ubuntu again, installed Go from the website (not via apt-get) and everything worked first time. If you don't want to wipe your machine, then just make sure to look around to see if there are version conflicts.
I've been stung by this sort of thing before (when installing node.js via apt-get, realising it was many versions out of date, then removing, and installing node.js via source), so if anyone is reading this, be careful when installing software via apt-get, then upgrading, as you might have similar version issues like I did!

installing headers for 3.5 kernel in debian wheezy?

Yesterday, I compiled the 3.5 kernel in debian wheezy (testing), in a thinkpad edge S430 (i5). I did it following this blog, with all the default options. It seems succesful, but then, I tried to install the proprietary nvidia driver with m-a auto-install nvidia-kernel. The install is not able to proceed until the correct headers are installed. However, I have tried both manually to install linux-headers-3.5.0-18 and the linux-headers-amd64 package, but module assistant is not able to see them, showing the following message:
Bad luck, the kernel headers for the target kernel version could not be found and you did not specify other valid kernel headers to use.
There are other ways to install the driver, but I think that the problem with headers is broader.
Although I have been a Debian user for some years, I am far from being an expert, and I am not clear with the problems that I might face when compiling a 3.5 kernel on a Debian testing, so any help and explanation will be much appreciated.
First run
sudo m-a prepare
Getting source for kernel version: 3.8.5-ck1
Kernel headers available in /usr/src/linux-headers-3.8.5-ck1
Creating symlink..
Then do
sudo m-a a-i nvidia
and it should work.
Note that I did this on 3.8.5-ck1, but I built and installed that kernel in a similar fashion to how I wrote up the 3.5 build that you followed.

apt-get auto prompt disappears after kernel upgrade

I've got some problem about bash.
Before today, my VPS (Ubuntu 12.04 LTS) was using kernel 2.x. (Because it was upgraded from 11.04 and the boot options did not get updated.)
Today I want to use kernel 3.2 as the default kernel.
After modifying the grub config, I've successfully booted the VPS up in kernel 3.2. Using uname -r will show 3.2.0-24-generic instead of 2.x.y-z-generic now.
However, something wonky happened and I don't why.
Before the kernel change, if I type some unkown command, the shell will prompt me to use apt-get to install it. For example, I don't have bind9 installed, and when I try to run named, I will be prompted like this:
wzyboy#vermilion:~$ named
The program 'named' is currently not installed. You can install it by typing:
sudo apt-get install bind9
Sometimes when I make a typo, I will be corrected ("did you mean"):
wzyboy#vermilion:~$ namedd
No command 'namedd' found, did you mean:
Command 'named' from package 'bind9' (main)
namedd: command not found
However, after the kernel change, when I try to run named, the shell simply says:
wzyboy#natatio:/$ named
-bash: named: command not found
I think it may be something wrong with bash, but I don't know how to fix the problem. Can anybody help?
[SOLVED] Thanks! After installing command-not-found package, the problem is solved. However, I still don't why the package got lost after changing the kernel...
To enable those auto suggestions you need to ensure that you have command-not-found installed. It is usually automatically enabled via /etc/bash.bashrc if installed correctly.

Resources