L4Ka Project

VMWare Serial Line Gateway

VMWare Workstation can redirect a bidirectional serial port to a named pipe of Windows NT/2000/XP. But currently I do not know of any terminal program which can connect to a named pipe (is it time to write one???). So the easiest way was to implement a gateway, redirecting the named pipe to a tcp port and vice versa. The result is a tiny server which can run as an NT service. Currently, it only allows a single tcp connection and supports only one fixed pipe name.

Installation

Simply copy VMWareGateway.exe to any directory of your box (e.g., C:\Program Files\VMWareGateway).

Commands

/T Interactive Testmode
prints connects of pipe and socket
/V Verbose mode for testing
lots of printouts
/R Registers VMWareGateway as an NT service.
/U Unregisters the Service
/H prints a short help

Run it...

First you should test the gateway from a command prompt: vmwaregateway /t
Now connect with you favorite telnet program to localhost 567. The gateway should print out a connect message. Now it is time to setup your VMWare machine. If you have VMWare 2.0 installed that is pretty straight forward - go to Settings/Configuration Editor and set the device type of a serial line to pipe. The name of the pipe is \.\pipe mwaredebug. Now start your VMWare box. Directly afterwards the gateway should confirm the connected pipe.
(Using VMWare 1.0 you have to setup the named pipe manually in your configuration's .vmx file. For detailed information refer to VMWare's homepage.)

Run as a service...

If everything works fine you can setup the gateway as a service. Simply type vmwaregateway /r and start the service with net start vmwaregateway afterwards. Now everything works like before. The service is not enabled at boot time. So if you want the service starting automatically, you have to do that by hand. (Control Panel/Services)

Source Code...

The source code can be used for whatever you like. If you extend the functionality it would be nice to get the upgrade (e.g. parameter for names and tcp ports, multiple clients accessing one named pipe...).

Usage...

Of course I do not guarantee for anything and you use this tool at your own risk :)

VMware 3.0

When using VMware 3.x you have to set the serial port to "This end is the client" and "The other end is an application". The gateway has to run before the virtual machine is started. (Note that VMware 2.0 is not supported!)

Volkmar Uhlig, 12/19/2002