I finally got the VMware Infrastructure Client running directly on my Ubuntu Linux.  I use the word running, because I’m not prepared to use the word working just yet.  Though the application seems fairly stable and most feature / functionality I’ve tested thus has worked, I’ve already found two bugs, one of which will hang your entire terminal.  And believe me, I’ve only just begun to test, so who knows how many more bugs I’ll find?

But until today, I couldn’t even get the client to launch and I haven’t been able to find anyone else that has been able to do so either.  So I’m going to consider this a minor success and a step in the right direction.  But just to be clear, I would NOT advise you start managing your environment with the VIC on wine just yet! :)

OK, here’s the proceedure I used get this running.

  1. My environment (I haven’t yet tried this proceedure on any other combination of Linux and Wine):
    • ubuntu 8.10 (kernel 2.6.27-11)
    • wine-1.1.14
  2. Download and install the latest version of winetricks.
  3. Run winetricks and select ONLY the following options:  dotnet20, ie6 and winxp.  Now, for future reference, I believe the bugs I’ve already found can be cured with a few more options.  But, one step at a time.  I also know that a couple options will crash the application.
  4. Download and install the VMware Infrastructure Client.  You can get this by going to http://<ip of your vCenter server>.
  5. Here’s the critical part, you need to modify your vCenter (or ESX) server to accept both HTTP and HTTPS.  By defult, vCenter and ESX will accept HTTP requests, but they are immediately redirected to HTTPS.  And currently, this will break the VIC on wine.  Do NOT do this on a production vCenter server!! To modify your vCenter server, do the following:
    • On your vCenter server, go to C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter
    • Copy proxy.xml to proxy.xml.bak
    • Open proxy.xml with a text editor
    • Find the lines with httpsWithRedirect and replace with httpAndHttps
    • Restart the “VMware VirtualCenter Server” Service
  6. Back on your linux workstation, go to ~/.wine/drive_c/Program Files/VMware/Infrastructure/Virtual Infrastructure Client/Launcher/
  7. Execute wine VpxClient.exe and you should see the following:

    vic_login_prompt1

  8. Make sure you put an http:// in front of the IP or DNS name of your vCenter server.  Otherwise, it will try to connect via HTTPS and again, this is currently problematic.
  9. That should do it.

OK, here are the bugs that I’ve found so far (other than SSL, which I’ve already mentioned):

  • Using the right click menu will freeze your screen about 50% of the time.  When it freezes, you’ll have to connect to another TTY, find the process and kill it.  But the alternative menus seem to work.  For example, if you right click on a host and click “New Virtual Machine … ” your screen will likely freeze.  However, if instead you click the “New Virtual Machine” link on the Summary tab, the New Virtual Machine Wizard will properly launch.
  • The New Virtual Machine Wizard will not advance past the Virtual Disk Capacity step.  It produces the error “The disk capacity entered was not a properly formatted number or was out of range …”  It gives this same error no matter what value I enter.  Actually, simply clicking Cancel will produce the error.  Weird.
  • The Getting Started tab correctly renders the proper HTML, but the viewing area is about 100 x 100 pixels and not adjustable.  (This is nothing more than an annoyance).
  • You can create a folder in a datastore, but you can’t delete one.  Deleting files on a datastore seems to work fine.

Most of the navigation (other than the right click menu I mentioned above), seems to work well.  VMotion worked fine.  Configuring HA and DRS worked fine.  Performance stats rendered fine.  But I’ve got a lot more to test and I’ll update again with my test results as I progress.

Thanks to Dan Kegel (www.kegel.com) and Jeff Warnica (don’t know his website/blog) for your help and pointing me in the right direction!

Here are a few more screenshots of the client in action.  Click on each image for the full scale picture.

screenshot-1

Performance stats, and completed VMotion (in Recent Tasks at bottom)

screenshot-2

Datastore browser

Post to Twitter Post to Delicious Post to Digg Post to StumbleUpon

  • Roberto
    Hi Aaron,

    thanks for your guide, but in my environment I have also selected vcrun2005 "MS Visual C++ 2005 libraries (mfc80,msvcp80,msvcr80)" in winetricks installer.

    Roberto
  • Aurelio Barreto
    Hi,

    With ESXi, I changed proxy.xml with that suggestions, exception one line:
    <e id="3">
    <_type>vim.ProxyService.NamedPipeServiceSpec</_type>
    <accessMode>httpsOnly</accessMode>
    <pipeName>/var/run/vmware/proxy-vpxa</pipeName>
    <serverNamespace>/vpxa</serverNamespace>
    </e>

    I rebooted the host.
    When I try to access vic in linux, I receive a "An SSL error occurred".
    Any idea? "httpsOnly" must be changed too?
  • hadrien
    works for me fine with ubuntu 9.04 and wine-1.1.26
    only issue is that the console is not working.
  • Vu Tuan
    Hi, Thank for your post, everything seem be done in my operating system (ubuntu 9.0.4)

    It's just remained step 5 because I don't know how to access On my vCenter server, to go to C:\Documents and Settings\All Users\Application Data\VMware\VMware VirtualCenter and modify proxy.xml file

    http://i187.photobucket.com/albums/x1/magicvn/S...

    Let's me know, please ..

    Many thanks
  • Mark
    I am thinking there must be a easier way - maybe a scripted QEMU to load a scaled down version of Windows, that launches the client.
  • Jon
    Any news on this? I'm curious if you were able to get the VM consoles to work before I bother enabling HTTP on our server. This is one of the few crutches I still have keeping XP around (at least its running in a VM).
  • I've actually switched my focus to getting the vSphere client to work on
    wine, because with the vSphere client you can connect to both vCenter2.5 and
    vCetenter4. Once (if) I get it working, I'll post an update. Sorry for the
    delay.

    Aaron
    <http://virtualinsanity.com/>
  • shS
    Hi.
    I'm trying to get the SSL-part working and by setting RASAPI32 to native, I was able to get to message that the client could not parse the servers clients.xml

    so then I got here http://communities.vmware.com/thread/211440 and I'm trying to find a copy of that DLL now.

    I think I broke my native gdiplus.dll by installing winetricks' version. Now I can't see the VMware logo on the client :C
  • Rafael
    Hey Aaron,

    Thanks for the info! Unfortunately, even after doing what you suggested here, I'm still getting the same errors you were getting at this post http://www.virtualinsanity.com/index.php/2008/1...

    I.e.:
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION

    And then the client just crashes.

    Do you have any idea on what's missing?
  • Can you send me the full error output? What version of Wine are you
    running? And what distro / kernel version do you have?

    Thanks,
    Aaron <http://virtualinsanity.com/>
  • Rafael
    Hey,

    Here it goes:
    Kernel 2.6.28-12-generic #43-Ubuntu SMP
    Ubuntu 9.04
    Wine 1.0.1

    And the log:
    wine VpxClient.exe
    fixme:virtual:NtAllocateVirtualMemory MEM_WRITE_WATCH type not supported
    fixme:ntdll:find_reg_tz_info Can't find matching timezone information in the registry for bias 180, std (d/m/y): 15/02/2009, dlt (d/m/y): 18/10/2009
    fixme:ntdll:find_reg_tz_info Can't find matching timezone information in the registry for bias 180, std (d/m/y): 15/02/2009, dlt (d/m/y): 18/10/2009
    fixme:win:WIN_CreateWindowEx Parent is HWND_MESSAGE
    fixme:win:EnumDisplayDevicesW ((null),0,0x32dd78,0x00000000), stub!
    fixme:win:EnumDisplayDevicesW ((null),0,0x32dd78,0x00000000), stub!
    fixme:ole:CoGetContextToken stub
    fixme:ole:CoGetContextToken stub
    fixme:ole:CoGetContextToken stub
    fixme:ole:CoGetContextToken stub
    fixme:ole:CoGetContextToken stub
    fixme:ole:CoGetContextToken stub
    fixme:ole:CoGetContextToken stub
    fixme:ole:CoGetContextToken stub
    fixme:system:SystemParametersInfoW Unimplemented action: 95 (SPI_GETSNAPTODEFBUTTON)
    fixme:win:WIN_CreateWindowEx Parent is HWND_MESSAGE
    fixme:dciman:DCICreatePrimary 0x364 0x3e11ca4
    fixme:ole:CoGetContextToken stub
    fixme:ras:RasEnumConnectionsW (0x1a0988,0x7dfa3238,0x7dfa3234),stub!
    fixme:ras:RasEnumConnectionsW RAS support is not implemented! Configure program to use LAN connection/winsock instead!
    fixme:winsock:WSAIoctl -> SIO_ADDRESS_LIST_CHANGE request: stub
    fixme:ras:RasConnectionNotificationW (0xffffffff,0x238,0x00000003),stub!
    fixme:winsock:WSAIoctl -> SIO_ADDRESS_LIST_CHANGE request: stub
    fixme:exec:SHELL_execute flags ignored: 0x00000500
    fixme:ole:CoGetContextToken stub
    fixme:ole:CoGetContextToken stub
    fixme:ole:Context_QueryInterface interface not implemented {000001da-0000-0000-c000-000000000046}
    fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime"): stub
    fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x000003ff,(nil),0x0001,0x00000000,0x7db5d114,(nil)): stub
    err:eventlog:ReportEventW L".NET Runtime version 2.0.50727.42 - Fatal Execution Engine Error (7A05E2B3) (80131506)"
    fixme:advapi:DeregisterEventSource (0xcafe4242) stub
    fixme:advapi:CheckTokenMembership (0x2c8 0x1b5018 0x7db5c768) stub!
    fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
    fixme:win:WIN_CreateWindowEx Parent is HWND_MESSAGE
    fixme:ole:CoGetContextToken stub
    fixme:ole:CoGetContextToken stub
    fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
    fixme:imm:ImmDisableIME (-1): stub
    fixme:ntdll:find_reg_tz_info Can't find matching timezone information in the registry for bias 180, std (d/m/y): 15/02/2009, dlt (d/m/y): 18/10/2009
    fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
    fixme:thread:NtQueryInformationThread Cannot get kerneltime or usertime of other threads
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
    fixme:wininet:InternetGetConnectedState always returning LAN connection.
    fixme:advapi:RegisterEventSourceW ((null),L".NET Runtime 2.0 Error Reporting"): stub
    fixme:advapi:ReportEventW (0xcafe4242,0x0001,0x0000,0x000003e8,(nil),0x0008,0x000000f6,0x3009a1b4,0x7e3215d0): stub
    err:eventlog:ReportEventW L"vpxclient.exe"
    err:eventlog:ReportEventW L"2.5.0.64237"
    err:eventlog:ReportEventW L"4993d5d3"
    err:eventlog:ReportEventW L"mscorwks.dll"
    err:eventlog:ReportEventW L"2.0.50727.42"
    err:eventlog:ReportEventW L"4333e7ec"
    err:eventlog:ReportEventW L"0"
    err:eventlog:ReportEventW L"000b333f"
    fixme:advapi:DeregisterEventSource (0xcafe4242) stub
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:thread:NtQueryInformationThread info class 9 not supported yet
    fixme:ntdll:NtQuerySystemInformation info_class SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION

    A while after crashing, I also got this on my prompt (the window had already collapsed and I got the prompt back):

    fixme:advapi:SetNamedSecurityInfoW L"c:\\windows\\PCHealth\\ErrorRep\\QSignoff" 1 -2147483644 (nil) (nil) 0x133c6c (nil)
    err:ole:CoGetClassObject class {4e14fba2-2e22-11d1-9964-00c04fbbb345} not registered
    err:ole:create_server class {4e14fba2-2e22-11d1-9964-00c04fbbb345} not registered
    err:ole:CoGetClassObject no class object {4e14fba2-2e22-11d1-9964-00c04fbbb345} could be created for context 0x5

    Thanks for helping!
  • Hi James and Raphael,

    I got your emails with the error output. Sorry for the delay. I've been
    traveling, as well as preoccupied with studying for the VCDX exam. I'll be
    back home (where my lab is) this weekend where I should be able to take a
    closer look and, if necessary, try to replicate your environment (i.e.
    combination of ubunutu and wine). If you've made any progress since your
    last comment, please let me know.

    Thanks,
    Aaron
    <http://virtualinsanity.com/>
  • Rafael
    Hi, Aaron.

    No progress here, I'm afraid. Hopefully you'll get to see what I'm missing. In the meantime, I'm using (to some frustration) the plugin for Firefox.

    Thanks again for your concern.
    Rafael.
  • Hi James and Raphael,

    I got your emails with the error output. Sorry for the delay. I've been
    traveling, as well as preoccupied with studying for the VCDX exam. I'll be
    back home (where my lab is) this weekend where I should be able to take a
    closer look and, if necessary, try to replicate your environment (i.e.
    combination of ubunutu and wine). If you've made any progress since your
    last comment, please let me know.

    Thanks,
    Aaron
    <http://virtualinsanity.com/>
  • I will build a statue in your honor!
  • LOL. Sounds good to me :)

    <http://virtualinsanity.com/>
  • Victor
    Step 5 kills my VirtualCenter. Whenever I make the change in proxy.xml and I restart the VirtualCenter service, VirtualCenter will not restart and prompt me with a generic error. The only way to fix it is to reinstall VirtualCenter.
  • Hi Victor,

    Can you send me a copy of the changes you made to the proxy.xml file? Also,
    can you tell me the version of VirtualCenter you're using.

    You shouldn't have to reinstall VirtualCenter. Just restoring the proxy.xml
    file to its original state and restarting the service should be all you
    need.

    Thanks,
    Aaron
  • Dmitry
    Bug in "Virtual Disk Capacity" step was fixed in Wine git
  • Dmitry
    While launching remote console window, I got errors:

    fixme:ole:OLEFontImpl_QueryInterface () : asking for unsupported interface {c3fcc19e-a970-11d2-8b5a-00a0c9b7c9c4}
    fixme:ole:OLEFontImpl_QueryInterface () : asking for unsupported interface {b196b283-bab4-101a-b69c-00aa00341d07}
    fixme:ole:OLEFontImpl_QueryInterface () : asking for unsupported interface {00000003-0000-0000-c000-000000000046}
    fixme:ole:OLEFontImpl_QueryInterface () : asking for unsupported interface {00000144-0000-0000-c000-000000000046}
    err:ole:ITypeInfo_fnInvoke did not find member id 3, flags 0x4!
    fixme:ole:Context_CC_ContextCallback (0x7786928/0x778692c)->(0x79f277a5, 0x7e758488, {d7174f82-36b8-4aa8-800a-e963ab2dfab9}, 2, (nil))

    There is some thoughts?
  • An ESXi server can also be adjusted to allow non-HTTPS connections by editing the file /etc/vmware/hostd/proxy.xml (easy if you've enabled SSH on the ESXi host; otherwise use the RCLI utilities to download, modify, and upload the file). Then, restart the services by using /sbin/services.sh restart. I noticed on my system that the consoles on the VMs don't work. Are you seeing this on your end?
  • Hi Jared,

    Sorry I'm just getting back to you. Somehow I missed your comment.

    Thanks for for the info on how to do this in ESXi. I'm going to stand up an
    ESXi server here shortly and I'll let you know if I have any issue with your
    proceedure.

    Yes, right now I see the same thing with the VM system consoles. But this
    is going to be harder to troubleshoot because the consoles are run from a
    separate executable, vmware-remotemks.exe. And the problem is
    vmware-remotemks.exe can't be directly executed, it has to be launched from
    within the client. So right now, I don't know where the breakpoint is. If
    I get some time this weekend, I might try to run a ThinApp'd version of the
    the VI, where the vmware-remotemks.exe would be launched from within a
    ThinApp bubble. I'll let you know how it goes.

    Any other progress on your end?

    *Thanks!
    Aaron
    * <http://www.virtualinsanity.com>
blog comments powered by Disqus