Repeated Characters in VMWare
For those of you who experience occasional typing problems with your VMWare machines, there’s still hope. Over the past few years, I’ve run into this problem several times, and every time the symptoms are basically the same.
When you’re using a remote console to access a virtual machine, as you start typing the characters will start repeating themselves on the screen. Most of the time, typing and then seeing those characters on the screen is exactly what you expect. Until you hit go to type ‘root’ into a Linux VMWare image and it comes out as ‘rrrooooooooootttt’. Typing very slow sometimes gets around the problem, but not always. Typing a password becomes especially difficult as you have no idea whether extra characters are appearing and depending on how your machine is configured, you might lock out an account. Rebooting the image will sometimes make the issue go away for a little while, but it often returns at the worst possible time.
I used to think this was a low memory related problem, caused by the host using too large a pagefile, thus causing delays and screwing with the low level interrupts. I came to this conclusion mainly as a result of running VMWare Server on a Windows 2003 server with about 4GB of RAM. After overcommitting the memory, this bug tended to surface quite a bit, so I started offloading the virtual images and only running a few when it was absolutely necessary. It turns out this isn’t solely related to memory.
There’s a VMWare KB article that explains how to address this issue and states that it happens due to low bandwidth situations. I beg to differ on the bandwidth situations, as I’m running gigabit on my network and lets face it. My network really isn’t that big. I have at most 2 hops between any given location and it’s generally limited geographically to about 10 feet.
Basically, their fix is as follows: power off the virtual machine and modify the .vmx file for the image you’re having problems with to include the following line:
keyboard.typematicMinDelay = "2000000"
Once you’ve done that, there will be a 2 second delay introduced to prevent single characters from repeating themselves numerous times. Unfortunately, I found this recommended fix didn’t work as well as I would have liked. You see, 2 seconds is a long time for computers. And after you’ve done this, the Backspace key becomes pretty much useless. After some trial and error, I found that cutting this value by 75% seemed to work pretty well.
keyboard.typematicMinDelay = "500000"
Since I added this line to each of my .vmx files, I’ve yet to run into this issue again using any of the remote administration tools provided by VMWare.