Home > Linux, Testing, Windows 8 > Cross-compiling VMWare View for ARM Linux (in Debian/Ubuntu)

Cross-compiling VMWare View for ARM Linux (in Debian/Ubuntu)

Earlier this month, I wrote an article about PCoIP Technology which shows an Android application (VMWare View) running on an OMAP4 Tablet displaying a Windows 7 desktop. This remote desktop technology relies on a powerful server to do the processing and thin clients (in that case Tablets) to display the desktop. Since only pixels are transferred any OS (supported by the server) could be displayed in the thin client.

That made me wonder if there was an open source PCoIP client that could run on low end Linux client such as the Raspberry Pi. VMWare View Open Client provides just what we need, but is only available in source code so we need to cross-compile it for ARM or build it in an ARM machine. Today, I’ll show the instructions I followed to cross-compile it for ARM in Debian using Emdebian Toolchain.

First download and extract VMware View Open Client 4.5 source code:

wget http://vmware-view-open-client.googlecode.com/files/VMware-view-open-client-source-4.5.0-297975.tar.gz
tar xzvf VMware-view-open-client-source-4.5.0-297975.tar.gz
cd VMware-view-open-client-source-4.5.0-297975

Install some tools on the build machine:

sudo apt-get install intltool

and some ARM libraries and development packages:

sudo /usr/share/pdebuild-cross/xapt -a armel libicu-dev libcurl3-dev libgtk2.0-0 libboost-signals-dev

Finally, configure, build and install VMWare Open Client:

LDFLAGS="-L/usr/arm-linux-gnueabi/lib -lboost_signals" ./configure --target=arm-linux-gnueabi \
--host=arm-linux-gnueabi --prefix=/home/jaufranc/edev/vmware-client --with-boost-signals=no
make
make install

That’s it! VMWare View for ARM is now ready. You just need to copy the files in the installation directory to your target board.
I have tried it in my Raspberry Pi emulator and after installation some libraries (libcurl3 and libboost-signals1.42.0), vmware-view could run (Screenshot below).

VMWare View in Raspberry Pi Emulator

VMWare View Open Client in QEMU (Debian ARMv6 CPU)

So we now have VMWare View (PCoIP client) running in an ARM emulator, we should then able to “run” any OS – such as Windows 8 – in the Raspberry Pi or other low-end thin clients. Of course, this method only makes sense if you need several thin clients with one server. I have not not fully tested this with a VMWare server, but I’ll surely have a try once the Raspberry Pi board and Windows 8 Consumer Preview are released later this month.

Digg This
Reddit This
Stumble Now!
Buzz This
Vote on DZone
Share on Facebook
Bookmark this on Delicious
Kick It on DotNetKicks.com
Shout it
Share on LinkedIn
Bookmark this on Technorati
Post on Twitter

Related posts:

  1. Cross-compiling Python for MIPS and ARM Platforms
  2. Cross-compiling libavg 1.7 for ARM on Debian
  3. Cross compiling SQLite for ARM and MIPS
  4. Cross compiling Berkeley DB for ARM and MIPS
  5. EP9307 Thin Client with DirectVNC
Categories: Linux, Testing, Windows 8 Tags: , , , , ,
  1. John U
    February 29th, 2012 at 22:03 | #1

    That sounds interesting.

    I just found out about Raspberry pi and the first thing that came in to my mind was a pcoip client running on it.
    Raspberry pi + some fullhd display + keyb + mouse would be a cheap alternative to Samsung NC240 pcoip display.

  2. March 1st, 2012 at 09:08 | #2

    @ John U
    Yes, the price and size of the Raspberry Pi open the door to all sort of applications that may not have been cost effective previously, although the total price of the Raspberry Pi is a bit higher than I expected (around 60 USD after shipping and taxes in the country I live).

    I’m planning to try Windows 8 in Raspberry Pi via PCoIP once I get my board.

  3. Juli3n
    March 27th, 2012 at 20:12 | #3

    Hi!

    It’s a very interesting subject that could be use on many products. In my case I tried so hard to cross-compil Vmware view to run on a Wyse T50, but I failed…
    I hope that i will find a solution, I’m working on it…

    Thanks for this instructions.

    • March 27th, 2012 at 20:27 | #4

      Let me know if you succeed, and if you don’t, you can always post your error message here (if any), maybe I’ll get an idea.
      I’ve given up trying PCoIP for now, because the server setup seems relatively complicated and it apparently requires a paid version of VMWare vSphere.

  4. Yann
    March 28th, 2012 at 03:57 | #5

    Hi, working together with juli3n, (with your clever guidelines) and we both need a hand to setup cross-compiling platform (debian squeeze) :

    checking for uidna_IDNToASCII in -licuuc… no : configure: error: libicu is required, but not found.
    checked, libicu-dev & libicu-dev-armel-cross set up

    Please help, you seem to know well how to set up perfectly squeeze ! is there any lack or newer package to set up ?

    Thanks for your advices

  5. March 28th, 2012 at 09:32 | #6

    @ Yann
    If libicu-dev and libicu-dev-armel-cross are already installed, you’d better check config.log to see the exact error.

    If by any chance, Wyse T50 is running a recent version of Ubuntu, you could also install vmware-view directly by running:
    sudo apt-get install vmware-view-open-client

  6. Yann
    March 30th, 2012 at 11:50 | #7

    Of course, it exists but native PCOIP doesn’t work, only RDP (We get Remote KMS Container Error from View Server, on the other hand it works on windows thin clients). Well, here is the detailed error point :

    checking for uidna_IDNToASCII in -licuuc
    configure:10883: g++ -o conftest -g -O2 -DBUILT_BY_root -L/usr/arm-linux-gnueabi/lib conftest.cpp -licuuc -licudata >&5
    /usr/bin/ld: skipping incompatible /usr/arm-linux-gnueabi/lib/libicuuc.so when searching for -licuuc
    /usr/bin/ld: skipping incompatible /usr/arm-linux-gnueabi/lib/libicuuc.a when searching for -licuuc
    /usr/bin/ld: skipping incompatible /usr/arm-linux-gnueabi/lib/libicudata.so when searching for -licudata
    /usr/bin/ld: skipping incompatible /usr/arm-linux-gnueabi/lib/libicudata.a when searching for -licudata
    /usr/bin/ld: skipping incompatible /usr/arm-linux-gnueabi/lib/libm.so when searching for -lm
    /usr/bin/ld: skipping incompatible /usr/arm-linux-gnueabi/lib/libc.so when searching for -lc
    /usr/bin/ld: skipping incompatible /usr/arm-linux-gnueabi/lib/libc.a when searching for -lc
    /tmp/ccRjxS1b.o: In function `main’:
    /home/user/VMware-view-open-client-source-4.5.0-297975/conftest.cpp:55: undefined reference to `uidna_IDNToASCII_48′
    collect2: ld returned 1 exit status

  7. March 30th, 2012 at 12:41 | #8

    @ Yann
    It’s using g++ instead of arm-linux-gnueabi-g++
    Have you install the toolchain following the instructions at http://www.cnx-software.com/2012/02/15/cross-compiling-vmware-view-for-arm-linux-in-debianubuntu/ ?

    Can you verify arm-linux-gnueabi-g++ installed ?

    If it is already installed, you may need to “export CXX=arm-linux-gnueabi-g++”

  8. Fernando
    May 12th, 2012 at 23:57 | #9

    Hello,

    I am trying to follow your ‘how to’ but when I try to run the ./configure command I get a message indicating that glib-2.0 and gmodule-2.0 are missing. Any tip on how to install them?

    Thank you

  9. May 13th, 2012 at 08:54 | #10

    @ Fernando
    When packages are missing, you can find them with aptitude and install them with apt-get
    http://www.cnx-software.com/2011/10/08/finding-a-missing-package-in-ubuntu-with-aptitude/

    If aptitude is not installed on your system, simply run:
    sudo apt-get install aptitude

  1. February 16th, 2012 at 06:25 | #1
  2. February 18th, 2012 at 14:50 | #2
  3. March 12th, 2012 at 15:06 | #3
Performance Optimization WordPress Plugins by W3 EDGE