From ArchWiki
Revision as of 03:52, 23 January 2006 by Gandalf (talk | contribs) (Add symlink to lsmod which is needed to run vmware-config.pl)
Jump to: navigation, search

VMware installs on ArchLinux pretty well, but its not totally straight forward.


First you need to create some directories.

mkdir -p /etc/rc.d/vmware.d/rc{0,1,2,3,4,5,6}.d

Then create a symlink of lsmod in /sbin

ln -s /bin/lsmod /sbin/

Start the vmware 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.
  • It will probably say that the modules supplied don't match the kernal version and asks you if you want to compile it, do yes.
  • If it complains that the gcc compiler is of a different version and that if you use it, your virtual machines will likely crash. Select no. On your Arch Install CD get the gcc package from the /arch/pkg directory, place it somewhere like your home directory, remove the current gcc version, install it, rerun the config script and reinstall gcc:
pacman -R -d gcc
pacman -A gcc-3.4.3-1.pkg.tar.gz
pacman -S gcc</pre>

The rest of the install should work pretty well.


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

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/vmare.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:


. /etc/rc.conf
. /etc/rc.d/functions

case "$1" in
    stat_busy "Creating /dev entries and starting VMware"
    for i in 0 1 2 3 4 5 6 7 8 9; do
        mknod /dev/vmnet$i c 119 $i
        chmod 0600 /dev/vmnet$i
    for i in 0 1 2 3; do
        mknod /dev/parport$i c 99 $i
        chmod 0600 /dev/parport$i
    mknod /dev/vmmon c 10 165
    chmod 0660 /dev/vmmon
    /etc/rc.d/vmware start

    stat_busy "Stopping VMware and removing /dev entries"
    /etc/rc.d/vmware stop
    rm /dev/vmmon
    for i in 0 1 2 3; do
        rm /dev/parport$i
    for i in 0 1 2 3 4 5 6 7 8 9; do
        rm /dev/vmnet$i

    $0 stop
    $0 start

    echo "usage: $0 {start|stop|restart}"
exit 0

3. Modify /etc/rc.conf.

Add mkvmdev to daemons in your rc.conf, and remember to remove vmware from rc.conf. If you prefere delete the lines that launch vmware from mkvmdev and leave in rc.conf, you choose.


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