This is the result of my successful quest to provide a low power cost effective way to run VMware vSGA in my home lab. The main purpose outside of the “cool factor” was so that my son could play Minecraft on his virtual desktop. As of this writing my home lab consisted of some Dell C1100 (CS24-TY) servers I bought off of EBay for around $600. These servers have one low wattage power supply while providing dual quad core L5520 CPU’s and 72 Gigs of Ram. The C1100 also has one small PCIe slot. The cheapest vSGA supported card at the time was a Quadro 2000 card at around $200. The Quadro 2000 is too big to fit into the Dell c1100 and it required extra power. As a matter of fact there was no supported card that would fit into the c1100. I chose the Nvidia GT640 because it was small enough to fit, had an $80 price tag and I had read a post where someone else had done this hack. All of the processes I outline to “convert” the GT640 into a Grid K1 can be found on posts and forums. I have listed all of the sites and resources in the Resources section of this document.
Here is a video of Minecraft working well on an EVGA zero client with the GT640 hack outlined in this post in place
C1100 (CS24-TY) spec sheet- http://www.dell.com/us/business/p/poweredge-c1100/pd
GT640 mod post, need to google translate this one – http://blog.vmpress.org/2013/08/vmware-view.html?showComment=1387510439973
Lengthy article on hacking all sorts of cards into grids and such-http://www.eevblog.com/forum/chat/hacking-nvidia-cards-into-their-professional-counterparts/
VMware Graphics acceleration whitepaper – http://www.vmware.com/files/pdf/techpaper/vmware-horizon-view-graphics-acceleration-deployment.pdf
Parts – tools list
Here are the parts and tools I used for the whole project
Specific GT640-1GD3-L card
15K ohm surface mount resistor
40.2K ohm surface mount resistor
Soldering iron, solder and flux (should have used an actual surface mount gun however I was in a hurry, crude but effective)
“Convert” the GT640 into a Grid K1
Now that we have all of our parts and tools lets change the resistors to make the GT 640 register as a Grid K1. The first thing I did was put the card in a windows 7 machine to verify it was a working GT 640 card. After I verified it worked I followed the posts above and changed out the proper resistors to make the card register as a Grid K1.
Here are the resistors that need changed and a picture of a professional soldering job:
Here is my soldering job (used a full size soldering iron and flux intended for coper pipe sweating) I am amazed it worked!!!
Removed R1 25 kOm and added R2 40 kOm
Swapped R3 from a 10 kOm to a 15 kOm
Now it was time to put it into the server and see if it worked
Here is the output of esxcli hardware pci list, look a K1 card!!!!
VMware Nvidia driver install
Now that I have what VMware thinks is a supported K1 card it was time to install and configure the software. Go to http://www.nvidia.com/Download/index.aspx?lang=en-us and download NVIDIA-VMware_ESXi_5.5_Host_Driver_340.32.zip
Unzip the file and run the following commands:
# localcli software vib install –no-sig-
check -v NVIDIA-VMware_ESXi_5.5_Host_Driver_319.65-1OEM.518.104.22.1681820.vib
If the install was a success you should get this message:
Message: Operation finished successfully.
Reboot Required: false
VIBs Installed: NVIDIA_bootbank_NVIDIA-VMware_ESXi_5.5_Host_Driver_319.65-1OEM.522.214.171.1241820
Now we need to run the following commands to get the xorg service started:
# kill -HUP $(cat /var/run/vmware/vmkdevm
# /etc/init.d/xorg start
Success!! We now have xorg running on ESXi 5.5
Configure a VM for vSGA use
Alright we are almost there now all we need is to configure a VM to use the GPU. In my home lab I don’t run a VMware View broker so I will not go through all the steps to set it up that way. I use the View direct connect agent so all that is needed is to manually set the vm toy use Hardware GPU rendering. The VM must be version 9 or 10 and the setting needs to be done with the web client. My vm was set two vCPU’s 4 GB of reserved ram. We also need to set the video card to 1 monitor 256 GB of ram check the #d check box and set to hardware GPU just like below.
Now power on the vm and test the 3D graphics
In my case Minecraft runs great!!!
Performance testing and 3D rendering verification
The only real performance test I did was to have my son play Minecraft while I kept checking in on the GPU stats. Unfortunately the Nvidia-smi command does not seem to show usage however GPU temp fan speed and other options show.
Here it is at idle 95 degrees or so:
Here it is while Minecraft is being played 116 degrees or so:
gpuvm is a memory reserved command it does work:
Modifying the GT 640 to fit in a Dell C1100
OK now that last problem I had was to make the GT 640 I mean Grid K1 fit into my Dell C1100.
Here is the card plugged-in the PCIE slot straight up and down without the riser (this will never do)
You can’t tell from the picture however there were only a couple of small components on the Dell c1100 main board that were interfering with the heat sink on the card.
Here is the card before and after modification notice the missing parts of the heat sink.
Here is how I did it:
Remove the heatsink and hack it up and put it back
Now it fits in my server!!!!