Virtualization

Install VMware Workstation on Arch Linux and Manjaro

VMware Workstation Pro is free for personal and commercial use now. On Arch Linux the AUR package is the install you want, because it builds the vmmon and vmnet kernel modules through DKMS. Every kernel you install afterwards gets its own modules, so a pacman -Syu that pulls in a new kernel doesn’t leave you with a hypervisor that refuses to start.

Original content from computingforgeeks.com - post 17254

This guide shows you how to install VMware Workstation on Arch Linux and Manjaro with yay, work around the one dependency the AUR helper misses and boot a first VM. It also covers kernels without headers, Broadcom’s .bundle installer and a clean uninstall. We ran it on Arch with kernel 7.2.9, linux-lts and linux-zen installed side by side, and built the same package against Manjaro’s linux72 headers in a Manjaro container, with VMware Workstation 26H1u1 in October 2026.

Check the prerequisites

Workstation needs hardware virtualization and a kernel it can build modules against, so check both before you download anything. You need:

  • a 64-bit Intel or AMD CPU with VT-x or AMD-V turned on in the firmware
  • the headers package for every kernel you boot
  • an AUR helper (yay below)
  • about 3 GiB free while the package builds (1.2 GiB stays installed), plus space for your VMs
  • a graphical desktop session to run the Workstation window

A count above zero means the CPU flags are visible to Linux:

grep -cE 'vmx|svm' /proc/cpuinfo

Our 4-vCPU Intel lab machine reported 8, because the kernel prints both a flags line and a vmx flags line for each CPU and grep -c counts lines. A zero means virtualization is switched off in the firmware setup, or you are inside a VM that doesn’t pass it through. Check which kernel you are running too, because that decides the headers package:

uname -r

On stock Arch that prints a version ending in -arch1-1. On Manjaro it ends in -MANJARO, and the kernel package carries the series in its name (linux72, linux618).

Install the kernel headers and yay

DKMS compiles the VMware modules on your machine, so it needs the headers that match your kernel. If they’re missing, the package still installs, but there is nothing for Workstation to load. On Arch, install the headers along with the build tools that every AUR package needs:

sudo pacman -S --needed linux-headers base-devel git

If you also boot linux-lts or linux-zen, add linux-lts-headers or linux-zen-headers to that line. Arch does not ship yay in its repositories, so build the prebuilt yay-bin package from the AUR once:

git clone https://aur.archlinux.org/yay-bin.git
cd yay-bin
makepkg -si

Our yay install guide covers the helper in more depth, and the pacman cheat sheet covers the package manager underneath it.

Manjaro is simpler here. Its extra repository carries yay, and each kernel series has its own headers package, so this pair of commands installs the helper and the headers for every Manjaro kernel you have:

sudo pacman -S --needed base-devel git yay
sudo pacman -S --needed $(pacman -Qsq "^linux[0-9]+$" | sed 's/$/-headers/')

In our Manjaro container with linux72 and linux618 installed, the second command pulled in linux72-headers and linux618-headers plus two small build dependencies, pahole and xxhash.

Install VMware Workstation from the AUR

The AUR package is called vmware-workstation, and it has a dependency that yay does not see. If you install it directly, yay downloads the 350 MB installer bundle, builds an extra AUR package called uefitool, and then stops at the last step:

yay -S vmware-workstation

The build fails with this:

==> Missing dependencies:
  -> vmware-keymaps
==> ERROR: Could not resolve all dependencies.
 -> error making: vmware-workstation-exit status 8

yay decides what to build from the package’s .SRCINFO, and the published one doesn’t match the PKGBUILD. It was generated with the maintainer’s own build toggles, so it leaves out vmware-keymaps. It also adds the macOS-guest build tools (uefitool, 7zip and python), which is why uefitool gets built. makepkg then evaluates the PKGBUILD as shipped, finds vmware-keymaps missing and stops. To avoid the failed run, install that package first:

yay -S vmware-keymaps

Then install Workstation itself:

yay -S vmware-workstation

The installer bundle in the PKGBUILD is fetched from an archive.org mirror, not from Broadcom. That sounds worse than it is, because the PKGBUILD pins the bundle’s SHA-256 and makepkg refuses a file that doesn’t match. A first run took about four and a half minutes with the download and the uefitool build, and a rebuild from the cached bundle about a minute. The pacman hook finished by building the modules for the running kernel:

(4/7) Install DKMS modules
==> dkms install --no-depmod vmware-workstation/26H1u1_25688693 -k 7.2.9-arch1-1

The Manjaro build behaved the same way. Every runtime dependency came from Manjaro’s own repositories, vmware-keymaps had to go first there too, and the hook installed the modules for 7.2.3-2-MANJARO. The macOS build tools stay behind as orphans unless you answered yes when yay asked to remove make dependencies after the install. List what’s left over:

pacman -Qdtq

On our Arch machine that printed 7zip, uefitool and uefitool-debug. Manjaro’s makepkg.conf disables debug packages, so there is no -debug entry there. Remove the ones your list shows, dropping any name it didn’t print, because pacman aborts the whole removal on a missing target:

sudo pacman -Rns uefitool uefitool-debug 7zip

On our machine that removed 14 packages in total, Qt5 included, and Workstation kept working. Since pacman -Qdtq only lists packages installed as dependencies, a 7zip you installed yourself won’t show up there. The build directory still holds the bundle and the build tree. Keep it if you plan to try the Broadcom bundle further down, because the same .bundle file sits in it. Otherwise delete it once the package is installed if you want the disk space back:

rm -rf ~/.cache/yay/vmware-workstation

The installed package doesn’t use that directory, so deleting it is safe.

Load the modules and start the services

The package ships a modules-load.d file, so vmw_vmci and vmmon load on every boot. For this session, load them by hand. If uname -r doesn’t match the version of the kernel package you booted (pacman -Q linux, linux-lts, linux-zen or Manjaro’s linuxXY), the kernel was upgraded since your last boot (pacman writes 7.2.9.arch1-1 where uname -r shows 7.2.9-arch1-1, so compare the numbers, not the punctuation). DKMS built for the installed kernel, not the running one, so reboot instead.

sudo modprobe -a vmw_vmci vmmon

Networking inside VMs comes from vmware-networks, which creates the bridged, host-only and NAT networks. USB passthrough needs vmware-usbarbitrator. Enable both now and at boot:

sudo systemctl enable --now vmware-networks.service vmware-usbarbitrator.service

If you only start a VM now and then, enable vmware-networks.path and vmware-usbarbitrator.path instead. Those units start the services the first time a VM needs them. Either way, check that the virtual networks are up:

sudo vmware-networks --status

All six services should report running or enabled:

Bridge networking on vmnet0 is running
DHCP service on vmnet1 is running
Hostonly virtual adapter on vmnet1 is enabled
DHCP service on vmnet8 is running
NAT service on vmnet8 is running
Hostonly virtual adapter on vmnet8 is enabled
All the services configured on all the networks are running

vmnet8 is the NAT network that new VMs use by default, and vmnet1 is host-only. The installer picks random private subnets for both, so check ip -br addr show if you need to know them; ours landed on 192.168.123.0/24 and 172.16.233.0/24. Older guides also enable vmware-hostd.service for shared VMs, but that unit no longer exists, and neither does the vmplayer command. Workstation Player was folded into the free Pro release.

Launch Workstation and boot a VM

Start Workstation from your desktop’s application menu, or run vmware in a terminal inside the graphical session. The first launch went straight to the Home tab, with no licence key, EULA or sign-in prompt to click through. Create a VM with File > New Virtual Machine (Ctrl+N) and step through the wizard:

  1. Keep Typical (recommended).
  2. Pick Use ISO image and browse to the installer ISO.
  3. If the wizard can’t identify the ISO (it couldn’t for Alpine), choose Linux and a version such as Other Linux 6.x kernel 64-bit.
  4. Name the VM; it’s stored under ~/vmware/<name> by default.
  5. Accept or change the disk size, then review the summary and click Finish.

The summary shows what Typical picks for you. For Other Linux 6.x that was an 8 GB disk, 768 MB of memory, 2 CPU cores and NAT networking. Use Customize Hardware there if the guest needs more memory:

New Virtual Machine Wizard summary on Arch Linux: Other Linux 6.x kernel 64-bit, 8 GB disk, 768 MB memory, NAT

We booted the Alpine Linux virt ISO in a NAT-networked VM to confirm the hypervisor really works. The guest took a lease from the vmnet8 DHCP server and reached the internet on the first try:

VMware Workstation 26H1 on Arch Linux running an Alpine Linux guest with a NAT address on vmnet8

Two prompts showed up before the guest booted, and both are worth knowing about. Our Arch machine was itself a VM, so Workstation warned that running it inside a virtual machine degrades performance. On bare metal you won’t see that. It also showed a hint that it “recommends 512 MB of system swap space” for the running VMs; the lab had a 512 MB swapfile, so the hint was informational. With less swap than that, or a lot of VM memory, add swap, or reserve host RAM for VMs in Workstation’s Preferences as the hint suggests.

Error: “Could not open /dev/vmmon: No such file or directory”

Powering on a VM before vmmon is loaded stops at this dialog. We hit it after reinstalling the package without running the modprobe above:

VMware Workstation error: Could not open /dev/vmmon: No such file or directory, make sure the kernel module vmmon is loaded

Load the modules with sudo modprobe -a vmw_vmci vmmon and check that /dev/vmmon exists. If modprobe reports the module is missing, dkms status will show the running kernel isn’t built, which is the headers problem in the next section. On our machine, the retry right after switching from the Broadcom bundle back to the AUR package failed again with “Failed to initialize monitor device”. A reboot cleared it, and the VM booted.

Help > About VMware Workstation shows the exact build and the host kernel it’s running on:

About VMware Workstation Pro dialog showing 26H1u1 version 26.0.1.25688693 on kernel 7.2.9-arch1-1

That kernel is the one DKMS has to keep building modules for, which is what the next section covers.

Keep the modules building after kernel updates

On a rolling release, kernel updates decide whether Workstation keeps working. The DKMS hook runs on every kernel install or upgrade, and it builds vmmon and vmnet for each kernel that has headers. vmw_vmci is part of the mainline kernel, so DKMS does not manage it. With linux, linux-lts and linux-zen installed together, one package install produced modules for all three:

vmware --version, dkms status for three kernels and vmware-networks --status on Arch Linux

Run dkms status after any kernel change, and check that every kernel you might boot shows installed. A kernel that’s missing from the list still boots fine, so nothing warns you at startup, but Workstation won’t be able to start VMs on it until its modules exist. That usually means its headers package is missing, which is the error below.

Error: “Missing … kernel headers for module vmware-workstation”

We installed linux-zen without its headers to see what that looks like. The pacman hook printed this and moved on without failing the transaction:

(3/4) Install DKMS modules
==> ERROR: Missing 7.2.9-zen1-1-zen kernel headers for module vmware-workstation/26H1u1_25688693.

Because the transaction still succeeds, the error is easy to scroll past during a large upgrade. Install the matching headers, and the same hook builds the modules straight away:

sudo pacman -S linux-zen-headers

After that, dkms status listed the zen kernel next to the other two. On Manjaro the fix is the same, with the series name in the package (linux72-headers for linux72).

Use the Broadcom bundle instead

Broadcom’s own installer is a .bundle file. Sign in to the Broadcom Support Portal with a free account, open My Downloads, then VMware Workstation Pro, and pick the Linux build of the current release. It’s the same file the AUR package downloads, and it runs on Arch, but it installs outside pacman and outside DKMS. We ran the bundle from the yay cache on the lab machine to compare the two:

AUR packageBroadcom bundle
Tracked by pacmanYesNo
Kernel modulesDKMS, rebuilt for every kernel with headersBuilt once by vmware-modconfig for the running kernel
Servicesvmware-networks, vmware-usbarbitrator (+ .path units)vmware.service, vmware-USBArbitrator.service
After a kernel updateNothing to doRun vmware-modconfig again
Uninstallpacman -Rnsvmware-installer -u

The first run of the bundle failed after two seconds:

sudo sh VMware-Workstation-Full-26H1u1-25688693.x86_64.bundle --console --required --eulas-agreed

The installer asks for an init script directory and gives up when it is not there:

Extracting VMware Installer...done.
System service scripts directory (commonly /etc/init.d).: Installation was unsuccessful.

Arch uses systemd only and has no /etc/init.d. Create the empty directory and the same command finishes in about a minute with “Installation was successful”:

sudo mkdir -p /etc/init.d

The bundle installs its own systemd units and leaves that directory empty, so it’s only there to get the installer past its check. Build and load the modules for the running kernel next:

sudo vmware-modconfig --console --install-all

That compiled vmmon and vmnet for the running kernel in 22 seconds and placed them in /lib/modules/<kernel>/misc/. None were built for the linux-lts and linux-zen kernels on the same machine. With the bundle, every kernel upgrade means running vmware-modconfig again before you can start a VM.

To remove a bundle install, use VMware’s own uninstaller:

sudo vmware-installer -u vmware-workstation --console --required

It removed the binaries, units and modules but left /etc/vmware and /etc/vmware-vix/bootstrap behind. If you then switch to the AUR package, pacman refuses with /etc/vmware-vix/bootstrap exists in filesystem. Delete both directories first, then install from the AUR:

sudo rm -rf /etc/vmware /etc/vmware-vix

After that, the AUR install from the start of this guide goes through.

Remove VMware Workstation

Shut down every running VM before you remove anything. A guest that is still running keeps vmware-vmx and the network daemons alive, and in our lab vmrun stop hung until the guest process was killed. Then disable whichever units you enabled (the .path pair too, if you went that way) and remove both packages:

sudo systemctl disable --now vmware-networks.service vmware-usbarbitrator.service vmware-networks.path vmware-usbarbitrator.path
sudo pacman -Rns vmware-workstation vmware-keymaps

The DKMS removal hook deletes the module files for every kernel, although vmmon and vmnet stay loaded until you reboot. Because of -s, pacman also removes dkms itself if nothing else needs it, so reinstall it if another DKMS module on your system depends on it. Some configuration survives the removal. After pacman -Rns on our machine, and going by the package’s own removal note, these can be left behind:

  • /etc/vmware, holding networking, usbarb.rules, vmnet1 and vmnet8
  • /etc/vmware-installer
  • /usr/lib/vmware-installer

Only /etc/vmware was present in our lab. Delete whichever of the three exist for a clean slate:

sudo rm -rf /etc/vmware /etc/vmware-installer /usr/lib/vmware-installer

Your VMs live in ~/vmware by default and none of these commands touch them, so copy or delete that directory yourself. If you want a hypervisor that ships in the Arch repositories instead, KVM with virt-manager needs no out-of-tree modules at all. The Arch post-install checklist covers the rest of a fresh desktop, and VirtualBox on Arch is the other common choice there.

Keep reading

Install KVM and Virt-Manager on Arch Linux Virtualization Install KVM and Virt-Manager on Arch Linux Install KVM on Debian 13 / Debian 12: Complete Guide KVM Install KVM on Debian 13 / Debian 12: Complete Guide Things to Do After Installing CachyOS Arch Linux Things to Do After Installing CachyOS How to Install KVM on Fedora 45 / 44 with virt-manager Fedora How to Install KVM on Fedora 45 / 44 with virt-manager Black Friday Mini PC Deals: Proxmox, Local AI and Home Assistant AI Black Friday Mini PC Deals: Proxmox, Local AI and Home Assistant Best UPS for a Homelab and NAS Storage Best UPS for a Homelab and NAS

11 thoughts on “Install VMware Workstation on Arch Linux and Manjaro”

  1. Thanks very much!! I was getting crazy, because every time I boot the host I had to run this command so VMware works:
    sudo vmware-modconfig –console –install-all
    My install was the bundle one, so I created the VMware Workstation systemd services. But now the problem is that I had to sudo systemctl start every boot. But I discovered that sudo systemctl enable makes it so the services starts every boot themselves!!
    So VMware is now working as it was on Ubuntu! Nice
    PD: Manjaro 20.1.2, Linux 5.8.16-2, VMware Player 16.0.0. Kde 5.19.5

    Reply
  2. Hello

    Your tutorial is very nice. I would like to say that you forgot a important thing. For the bundle installation, just before this line : “The installer UI will be launched. Accept License Agreement terms and click next.” It will be very important to add this line :

    System service scripts directory (commonly /etc/init.d).:

    Enter /etc/init.d

    System service scripts directory (commonly /etc/init.d).: /etc/init.d

    It simple, but I don’t know what to do, I write yes, no, just return. We would enter /etc/init.d

    Thank you.

    Reply

Leave a Comment

Press ESC to close