Installing VMware
From ArchWiki
i18n |
---|
English |
简体中文 |
Italiano |
Русский |
VMware installs on Arch Linux pretty well, but its not totally straight forward.
VMware Workstation Installation
The following is from the VMWare Workstation AUR user comments, by user whompus. It describes how to install VMWare Workstation 6.5.x on either architecture.
As a temp measure use this method to install 6.5. Note that it will not install with pacman, so the files installed will not be traceable/removable with pacman.
To install Workstation on a Linux host using a bundle
1. Download VMware-Workstation-6.5.xxxxxx.bundle. Replace xxxxx for whichever minor version & architecture.
2. In a terminal cd to the directory where you downloaded the file.
3. Become root to perform the initial installation steps:
# mkdir -p /etc/rc.d/vmware.d/rc{0,1,2,3,4,5,6}.d # sh VMware-Workstation-6.5.xxxxxx.bundle --console --custom
4. Read & accept the EULA to continue.
5. Accept the default settings until it prompts for System service runlevels then set to:
/etc/rc.d/vmware.d/
If you get the error "/etc/rc.d/vmware.d is not an init directory", create the following in /etc/rc.d/vmware.d:
cd /etc/rc.d/vmware.d mkdir rc0.d rc1.d rc2.d rc3.d rc4.d rc5.d rc6.d init.d
6. For System service scripts set to:
/etc/rc.d
7. (Optional) Enter the directory path to the Integrated Virtual Debugger for Eclipse if Eclipse is installed.
8. Mash enter to install. Note that if nothing happens at this point and you are returned to the prompt, try re-running the installation without the '--console' option.
9. Open Workstation (vmware
in the console) to configure & use!
Troubleshooting
If the VMware installation hangs during the "Configuring VMWare Player" stage, see the following post on the VMware forums for an explanation and workaround: http://communities.vmware.com/message/1357476
After launching vmware, if you experience an errors stating, "modinfo: could not find module vmmon" you may need to rebuild vmware's binary modules. Use the following commands:
1. Make a backup (required before recompiling models):
# sudo mv /usr/lib/vmware/modules/binary /usr/lib/vmware/modules/binary.old
2. Recompile modules and load them into memory:
# sudo vmware-modconfig --console --install-all
3. For versions 6.53 and 7 of Vmware Workstation, at least:
If you get an error like (/etc/rc.d/vmware.d/init.d/vmware: line 108: /sbin/lsmod: File or directory not found) in the step 2 above, or when restarting vmware, check the file /etc/rc.d/vmware.d/init.d/vmware. Search for /sbin/lsmod ocurrences, and replace it por /bin/lsmod.
VMware Server Installation
NOTE I would highly recommend using VMWare Server 2 on 2.6.27 as it actually builds. It also does not appear to require a patch.
You can use the AUR or manually install VMware Server downloaded from VMware.com. This guide shows you how to install the manually downloaded VMware server tarball, assuming you are running Voodoo or newer (Duke) with kernel version 2.6.20+ 32-bit.
Requirements:
- Root access. Either 'sudo' or 'su'. For this guide, I will be using 'sudo'.
- Xinetd is installed, up and running.
- The X-libraries libxtst, libxt and libxrender installed
- VMware server tarball; latest is 1.0.4 build 56528 as of this writing.
-
VMware server any-to-any" patch: mirror 1 and mirror 2. Note: For server 1.0.4 build 56528 you need patch vmware-any-any-update113.tar.bz2, which is on mirror 1 only. - UPDATE: With 2.6.24 you need this patch (vmware-any-any-update115a.tgz)
- UPDATE: With 2.6.25 you need also this patch (vmware-any-any-update-117-very-ALPHA)
- Compatible with VMware Workstation >= 6.0.2 Build 59824 on Linux 2.6.25
- UPDATE: With 2.6.26 you need this patch (vmware-any-any-update117d.tar.gz), the VMware version 6.0.5 doesn't need the patch, the version for vmmon e.g. in 117d is even too old (168, need 169!)
- UPDATE: With 2.6.26 and VMWare 6.5 _no_ patch is needed anymore (6.5.0 build-118166). The graphical installer works just fine and all the modules work out of the box. Follow the instructions below for the directory containing the init-scripts.
- NOTE: With the kernel installed on 2009.02 Core, the compilation of modules vmnet and vmmon works perfectly. Compiling modules on the latest kernel (kernel-headers-2.6.29.1-1-x86_64 and kernel26-2.6.29.3-1-x86_64 as of May 13, 2009) will fail. See below for patching 2.6.29 kernel for VMWare.
Instructions:
- Run sudo mkdir -p /etc/rc.d/vmware.d/rc{0,1,2,3,4,5,6}.d to create VMware runlevel directories.
- Run sudo ln -s /bin/lsmod /sbin/ to create symlink for lsmod.
- Extract VMware server tarball somewhere... i.e. /tmp/.
- Run cd /tmp/vmware-server-distrib;sudo ./vmware-install.pl. I used /home/vmware/bin for installation.
- When it asks where the directories for rc0.d thru rc6.d are, use /etc/rc.d/vmware.d.
- When it asks where the init directory is, use /etc/rc.d.
- *QUIT* when it asks you if you want to run VMware configuration for the first time.
- Extract VMware server any-to-any patch somewhere... i.e. /tmp/.
- Run cd /tmp/vmware-any-any-update*REV*;sudo ./runme.pl. This will patch VMware server modules to allow Linux kernel 2.6.20 compilation.
- For Linux 2.6.25 additionally to the previous patch115a or 116 you need to manually patch with 117_Alpha.
- For 2.6.25 extract 117 to the location tar xzf vmware-any-any-update-117-very-ALPHA.tgz -C /usr/lib/vmware/modules/source/
- For 2.6.25 patch cd /usr/lib/vmware/modules/source/ and run./vmware-2.6.25.sh and continue with next step.
- Run cd /home/vmware/bin;sudo ./vmware-config.pl to compile VMware modules.
Running
It's a possibility the first time you try to run Vmware server it'll throw an error stating something about "Unable to power virtual machine". Stop the VMware server and restart xinetd wtih /etc/rc.d/vmware stop;wait;/etc/rc.d/xinetd restart.
Rerun sudo /home/vmware/bin/vmware-config.pl again. If this still fails, restart your computer and do the above again. It should be fixed.
There is now a vmware
init script in /etc/rc.d
. You can add this to your daemons list if you want. I personally dont do this, but if you intend to use the vmware's network when not actually using vmware, then you will need to do this. You will need to start it before you can run vmware though.
There is a problem with vmware unable to run correctly after a reboot. To fix this edit /etc/rc.d/vmware
, find the text below
case "$1" in start)
and put
rm /etc/vmware/not_configured
immediately after that line.
To start vmware, you just do vmware
from a console window, or create a shortcut or menu item however you like.
Some notes:
Leave the /etc/rc.d/vmware.d
directory there, because it is needed whenever you perform vmware-config.pl
.
Remember, if the kernel is changed or updated, you will need to run vmware-config.pl
again.
Kernel 2.6 and udev
Follow the steps above and then:
1. Modify udev config
Edit /etc/udev/rules.d/00-myrules.rules
and add 2 lines:
# tty devices KERNEL="tty[[0-9]]*", NAME="vc/%n", SYMLINK="%k" # floppy devices KERNEL="fd[[0-9]]*", NAME="floppy/%n" , SYMLINK="fd%n"
2. Start/stop script
It takes care of devices and starts vmware, also stops vmware and removes dev entries. Call it, for example, mkvmdev
, chmod it 755
and put in /etc/rc.d
:
#!/bin/sh . /etc/rc.conf . /etc/rc.d/functions case "$1" in start) stat_busy "Creating /dev entries and starting VMware" for i in `seq 0 9`; do mknod /dev/vmnet$i c 119 $i chmod 0600 /dev/vmnet$i done for i in `seq 0 3`; do mknod /dev/parport$i c 99 $i chmod 0600 /dev/parport$i done mknod /dev/vmmon c 10 165 chmod 0660 /dev/vmmon /etc/rc.d/vmware start ;; stop) stat_busy "Stopping VMware and removing /dev entries" /etc/rc.d/vmware stop rm /dev/vmmon for i in `seq 0 3`; do rm /dev/parport$i done for i in `seq 0 9`; do rm /dev/vmnet$i done ;; restart) $0 stop $0 start ;; *) echo "usage: $0 {start|stop|restart}" esac exit 0
3. Modify /etc/rc.conf
. (*Note - this step is optional! See also the notes under the "Running" section above)
Add mkvmdev
to daemons in your rc.conf
, and remember to remove vmware
from rc.conf
. Or if you prefer, you can delete the lines that launch vmware from mkvmdev
and leave your original vmware
in rc.conf
- your choice.
Comments:
hi guys, a couple of quick questions:
- why is /dev/vmmon chmod 0660, as opposed to the rest (0600)?
- i suppose /dev/vmmon should be "rm"-ed as well in the "stop" section for the script above? (that line is missing) - FIXED
VMware and kernel 2.6.31 compile modules problem
Patch files are at http://communities.vmware.com/message/1305526#1305526
If you have installed previous patches:
# cd /usr/lib/vmware/modules/ # rm -rf source # mv source-backup source
Next, we need to run downloaded sh file and rebuild kernel modules...
# wget "http://communities.vmware.com/servlet/JiveServlet/download/1305526-25349/vmware-6.5.2-modules-2.6.31-fix.patch" # wget "http://communities.vmware.com/servlet/JiveServlet/download/1305526-25348/vmware-6.5.2-modules-2.6.31-fix.sh" # chmod +x vmware-6.5.2-modules-2.6.31-fix.sh # ./vmware-6.5.2-modules-2.6.31-fix.sh # vmware-modconfig --console --install-all
VMware and kernel 2.6.30 compile modules problem
In Kernel 2.6.30 the modules fail to compile out of the box again. I followed these instructions over here
Download this script and this patch:
# cd /tmp # wget http://communities.vmware.com/servlet/JiveServlet/download/1314835-25722/vmware-6.5.2-newkernmods.sh # wget http://communities.vmware.com/servlet/JiveServlet/download/1314438-25709/vmware-6.5.2-newkernmods.patch # chmod +x vmware-6.5.2-newkernmods.sh # ./vmware-6.5.2-newkernmods.sh
This will unpack, patch and repack the module sources. Afterwards one can manually trigger to build the modules or just start VMware, which will also build the modules when trying to start a vm.
VMware and kernel 2.6.29 compile modules problem
In Kernel 2.6.29 some internal data-structs were changed. Download this patch and apply it to the vmware modules sources as follows:
# cd /usr/lib/vmware/modules/source/ # mkdir orig # cp *.tar orig/ # for i in *.tar; do tar -xf $i; done # rm *.tar # patch -p1 -i /path/to/vmware-workstation-6.5.1.126130-2.6.29_x86_64.patch # for i in mblock mci mmon mnet mppuser sock; do tar -cf v$i.tar v$i-only; done # rm -r *-only
/path/to/vmware-workstation-6.5.1.126130-2.6.29_x86_64.patch
to match the path to the downloaded patch.Afterwards, build the modules manually or just start vmware, as it will start building the modules for you automatically (using the patched sources). For further information read this thread.
VMware and kernel 2.6.28 compile modules problem
A tested solution is to fetch the patched modules and replace them. To achieve this, you will need to extract the downloaded archive, and replace both vmmon.tar and vmnet.tar to /usr/lib/vmware/modules/source. After that, run /usr/bin/vmware-config.pl to rebuild the modules.
VMware and kernel 2.6.26 compile modules problem
If after compiling the modules following the method for 2.6.25 you receive the "Version mismatch with vmmon module:" error when powering on a virtual machine you will need to take one additional step.
$ cd /usr/lib/vmware/moduels/source/; $ sudo tar -xvf vmmon.tar; $ sudo vi vmmon-only/include/iocontrols.h;
Find the line 48:
#define VMMON_VERSION (161 << 16 | 0)
and change it to:
#define VMMON_VERSION (167 << 16 | 0)
Save and exit.
$ sudo tar -cf vmmon.tar vmmon-only;
Finally, run vmware-config.pl.
VMware and kernel 2.6.25 compile modules problem
There are extra steps required for Vmware WKS 6.0.3 build 80004, should be the same for VMware Server
- Install and patch as described (use vmware-any-any-update-116.tgz)
- Download the patch117vmware-any-any-update-117-very-ALPHA.tgz
- Extract the archive in /usr/lib/vmware/modules/source
- Run vmware-2.6.25.sh and then vmware-config.pl
VMware and kernel 2.6.24 compile modules problem
May not work properly yet. Apply the patch from http://bio.artcradle.com/temp/vault/vmware-any-any-update-116.tgz (untar, run runme.pl script) Note: this is an ugly hack, please don't put it into production systems. Some guest OS'es may have crashes and networking problems with this. Don't tell us that you haven't been warned
VMware and kernel 2.6.22 compile modules problem
May not work properly yet. Apply the patch from http://knihovny.cvut.cz/ftp/pub/vmware/vmware-any-any-update112.tar.gz , replace vmnet.tar with http://npw.net/~phbaer/vmnet.tar and reinstall. Note: this is an ugly hack, please dont put it into production systems. Some guest OS'es may have crashes and networking problems with this. Dont tell us that you havent been warned
VMware and kernel 2.6.20 compile modules problem
Below is a solution for compiling the vmware modules on kernel 2.6.20.
$ cd /usr/lib/vmware/modules/source/ $ sudo tar -xvf vmmon.tar $ cd vmmon-only $ sudo vi include/compat_kernel.h
Find this:
#define __NR_compat_exit __NR_exit static inline _syscall1(int, compat_exit, int, exit_code);
and change the static inline .....
line to:
int compat_exit(int exit_code);
Then tar up the vmmon-only directory again:
$ cd .. #go back to the source directory $ tar -cf vmmon.tar vmmon-only
Finally, run vmware-config.pl
VMware and kernel 2.6.16 compile modules problem
PROBLEM: kernel 2.6.16-x - vmware or vmwareplayer complains that headers are incorect.
FIX: You need vmware-any-any-update patch mirror here or here.
Just untar the archive and run ./runme.pl as root - and you're happy again!
Slow networking between host and guest
"Those oversized improperly checksummed packets are TCP Segmentation Offload packets. Use 'ethtool -K eth0 tso off' to disable TSO on eth0 (or any other interface which you want to get bridged). At this moment vmnet does not understand TSO, and in addition to that it is silly to use TSO together with bridged networking as vmnet will have to split such packet anyway to pass it to the guest, so splitting will be done anyway, and in addition to it kernel will have to prepare metadata about TCP stream for hardware, so you'll probably get worse performance with TSO enabled than with disabled when you'll have some guest running."
Samba issues
The guest os under vmware cannot see a samba share running on the linux host. To fix this problem, edit /etc/samba/smb.conf and make some changes under [global]. The following are suggested:
workgroup = YOUR_WORKGROUP netbios name = YOUR_SERVER_NAME encrypt passwords = yes socket options = TCP_NODELAY IPTOS_LOWDELAY SO_KEEPALIVE SO_RCVBUF=8192 SO_SNDBUF=8192 interfaces = eth0 vmnet1 vmnet8 sysv shm key=/dev/vmnet1 bind interfaces only = true
Connecting Remotely
If you setup a server that you would like to connect to remotely, please add the following to /etc/hosts.allow:
vmware-authd: ALL
This will enable xinetd to allow connections from a remote vmware client.
If this condition is not met, you may see in your /var/log/everything.log:
Feb 4 03:34:12 jeffc xinetd[7232]: libwrap refused connection to vmware-authd (libwrap=vmware-authd) from 192.168.1.1
Keycode issues
- VMware console may mess up your keyboard mapping after VMware tools is installed, effectively making the host desktop unusable until you restart X.
- If you have Windows guests, some/most keycodes might not be working within the guest (especially arrow-keys, ctrl, alt, windows-key, etc.).
First solution, by forcing VMware to map keysyms instead of keycodes:
Edit or create the file ~/.vmware/config and add the following option:
xkeymap.usekeycodeMap = true
If the first solution still fails to bind certain keys, try the second solution: Edit or create the file ~/.vmware/config and add the following keycode-mappings:
xkeymap.keycode.108 = 0x138 # Alt_R xkeymap.keycode.106 = 0x135 # KP_Divide xkeymap.keycode.104 = 0x11c # KP_Enter xkeymap.keycode.111 = 0x148 # Up xkeymap.keycode.116 = 0x150 # Down xkeymap.keycode.113 = 0x14b # Left xkeymap.keycode.114 = 0x14d # Right xkeymap.keycode.105 = 0x11d # Control_R xkeymap.keycode.118 = 0x152 # Insert xkeymap.keycode.119 = 0x153 # Delete xkeymap.keycode.110 = 0x147 # Home xkeymap.keycode.115 = 0x14f # End xkeymap.keycode.112 = 0x149 # Prior xkeymap.keycode.117 = 0x151 # Next xkeymap.keycode.78 = 0x46 # Scroll_Lock xkeymap.keycode.127 = 0x100 # Pause xkeymap.keycode.133 = 0x15b # Meta_L xkeymap.keycode.134 = 0x15c # Meta_R xkeymap.keycode.135 = 0x15d # Menu
VMware 6.5 Fails to launch vmware-modconfig
If vmware-modconfig crash at the first start, download and run this http://communities.vmware.com/servlet/JiveServlet/download/1088282-15379/vmware-build-modules See more here http://communities.vmware.com/thread/172023
The above script will fail to compile vsock.so. To fix get vmware to work without it just run (as root):
# depmod -a; # /etc/rc.d/vmware restart