OpenBSD Journal

Improvements to OpenBSD as a VMware guest

Contributed by merdely on from the why-aren't-you-using-Xen-instead dept.

For OpenBSD 4.4, David Gwynne (dlg@) wrote vmt(4) to be "a kernel level implementation of VMware Tools" for OpenBSD. Initially it provided an interface "to the host machine's clock as a timedelta sensor".

In the last couple of weeks, dlg commited changes from jonathan matthew that extended vmt(4)'s functionality. Yesterday, David Coppa (dcoppa@) imported sysutils/vmwh, a userland helper for X for VMware written by Joshua Stein (jcs@).

dlg's recent commit to vmt(4) included the following commit message:

CVSROOT:   /cvs
Module name:    src
Changes by:     dlg@            2010/10/25 18:57:21   
   
Modified files:
        sys/dev        : vmt.c

Log message:
big update to vmware tools functionality from jonathan matthew.

vmt(4) will now:
- initiate shutdown by signalling init with SIGUSR2 when requested by
the host.
- initiate a reboot by signalling init with SIGINT when requested by
the host.
- report the guests hostname to the host
- report the guests first non-loopback IP address to the host
- report the guests uptime to the host
- update the guests timedelta sensor using the 64bit rpc

vmt(4) now does the majority of what people actually need.

this has been tested on vmware server 2.0.2 with linux as the host,
vmware esx 4.0, and vmware esx 4.1 
testing by jonathan matthew and myself. previous versions of the changes
were also tested by johan allard and srebrenko sehic.
code reviewed by and ok matthew@
thanks moch and johan :)

jcs's vmwh was recently imported into the ports tree as sysutil/vmwh. dcoppa's commit message includes the README from jcs's page:

CVSROOT:   /cvs
Module name:    ports
Changes by:     dcoppa@                 2010/11/07 11:06:00

Log message:
    Import vmwh, a handy vmware userland helper for X.

    vmwh is a vmware helper for X11, developed on OpenBSD to run in userland
    alongside the vmt(4) vmware kernel driver and the vmmouse Xorg driver.
    It detects when the mouse cursor switches back to the host ("ungrabs")
    and sends the guest's X11 clipboard data (read from xclip) to the host
    through the vmware backdoor, which gets put onto the host's clipboard.
    It then detects when the mouse cursor switches back to the guest
    ("grabs") and replaces the X11 clipboard contents (via xclip) with the
    host's, which is read through the vmware backdoor.
   
    OK jasper@
   
    Status:
   
    Vendor Tag: dcoppa
    Release Tags:       dcoppa_20101107
   
    N ports/sysutils/vmwh/distinfo
    N ports/sysutils/vmwh/Makefile
    N ports/sysutils/vmwh/pkg/PLIST
    N ports/sysutils/vmwh/pkg/DESCR
    N ports/sysutils/vmwh/pkg/MESSAGE
    N ports/sysutils/vmwh/patches/patch-Makefile
   
    No conflicts created by this import

I had a chance to play with vmt(4) and sysutils/vmwh today on VMware Fushion on OS X. As vmwh's MESSAGE says, add "XTerm*selectToClipboard:true" to your ~/.Xdefaults. Also add "vmwh &" to your ~/.xinitrc (or ~/.xsession). I no longer had to press Command+Ctrl to get out of my VMware window. Just moving the mouse beyond the border of the VM does the right thing. And, the clipboard sharing is great too.

I haven't yet tested the new changes to vmt(4) with ESX to see the reporting of the IP address, reporting of the uptime, and the shutdown/reboot changes, but I will soon.

Thanks to dlg@, jcs@, and dcoppa@ for their efforts. To those of us using VMware, this makes life great!

(Comments are closed)


Comments
  1. By Magic carpet (bodie) bodzart@openbsd.cz on http://www.openbsd.org

    That is a great news and another wonderful piece of code made in OpenBSD ;-)

    Comments
    1. By Alan Post (alanpost) on http://sunflowerriver.org/

      > That is a great news and another wonderful piece of code made in OpenBSD ;-)

      I'm really happy to see this improvement. I run OpenBSD in VMWare, which I purchased after having no luck at all running OpenBSD stably inside of Qemu.

      I had considered OpenBSD a bit hostile in general to adding support in the kernel for virtualization, so I was caught by surprise at this.

  2. By Jim Razmus II (jim) jtr2-undeadly@bonetruck.org on http://www.bonetruck.org/

    The vmt(4) device works with ESXi 4. Host name, IP, and management within the VI Client. But OS incorrectly reads FreeBSD.

    Comments
    1. By Mike Erdely (merdely) on

      > The vmt(4) device works with ESXi 4. Host name, IP, and management
      > within the VI Client. But OS incorrectly reads FreeBSD.

      Jim: this is probably more because of what OS you told VMware you were installing than anything the VM is reporting to the host.

    2. By Anonymous Coward (anon) on

      > The vmt(4) device works with ESXi 4. Host name, IP, and management within the VI Client. But OS incorrectly reads FreeBSD.

      sys/dev/vmt.c has this to say:

      * host doesn't like it if we send an OS name it doesn't recognise,
      * so use the closest match, which happens to be FreeBSD.

  3. By Dean Hamstead (djzort) dean@bong.com.au on http://fragfest.com.au

    support for virtio would be a great next step :)

    Comments
    1. By jirib (jirib) on

      > support for virtio would be a great next step :)

      1st we wait for you to write virtualized vmware disk driver ;)

      Comments
      1. By Dean Hamstead (djzort) on http://fragfest.com.au

        > > support for virtio would be a great next step :)
        >
        > 1st we wait for you to write virtualized vmware disk driver ;)


        id rather not spend my time putting money in EMC's shareholders pockets.

        Comments
        1. By Joachim Schipper (Joachim) on http://www.joachimschipper.nl/About me

          > > > support for virtio would be a great next step :)
          > >
          > > 1st we wait for you to write virtualized vmware disk driver ;)
          >
          > id rather not spend my time putting money in EMC's shareholders pockets.

          As opposed to asking others to put money in EMC's shareholders' pockets for you?

  4. By estet (estet) ligurio@yandex.ru on www.parallels.com

    when driver for parallels toolgate will be available in openbsd kernel?

    Comments
    1. By brynet (Brynet) on

      > when driver for parallels toolgate will be available in openbsd kernel?

      The moment you write it, make it pretty, and send a patch.

Credits

Copyright © - Daniel Hartmeier. All rights reserved. Articles and comments are copyright their respective authors, submission implies license to publish on this web site. Contents of the archive prior to as well as images and HTML templates were copied from the fabulous original deadly.org with Jose's and Jim's kind permission. This journal runs as CGI with httpd(8) on OpenBSD, the source code is BSD licensed. undeadly \Un*dead"ly\, a. Not subject to death; immortal. [Obs.]