Run x86 Linux and Windows applications in Raspberry Pi and other ARM Linux Devices with Exagear

A few weeks ago, I finally decided to buy a Raspberry Pi 2 board as it could always be useful for some testing, at least for comparison purposes. I ended up buying it from Ebay for $40, as it’s $3 to $5 more expensive locally. Nevertheless, I was not sure what I’ll use it first for, but after seeing a tweet for Exagear Desktop software that allows ARM boards to run x86 Linux or Windows applications, the latter through wine. The program is available for Raspberry Pi, Raspberry Pi 2, and ARMv7 devices for $19.95 to $29.95.

I asked for a version for testing purposes, and I was given a Google Drive link to download Exagear for Raspberry Pi 2, as well as a 3-month trial key. Installation is very easy.

I started by downloading and installing Raspbian Jessie the usual way on a 32GB micro SD card. It went pretty smoothly, and after installation, I had to run raspi-config to extend the partition size, change the timezone, and keyboard layout.

Once you have downloaded the 1.4GB tarball for Exagear, extract it in your Raspberry Pi 2:

Now copy your product key (pk-xxxxxxxxxxxx.key) in the directory, and you should end with the the following files:

Now run the installation script:

The script should auto-detect your operating system and install the right files for your operating system:

You’d definitely need a 8GB micro SD card, and preferably larger, since 6.9GB is taken after Exagear is installed, and before you’ve installed any of your x86 apps:

Let’s compare the kernel in Raspbian and exagear.

So we’ve switched to an i686 machine with four cores (only one shown below):

First let’s try to run Skype for Debian, which has not been released for ARM.

The first step is to download Skype package and install it within exagear:

Installation failed because some of dependencies are not installed, but apt-get can take over from here:

This should complete Skype installation, with 7.2GB now used on the SD card.

I could start Skype from the command or top menu, login, start chatting.

Click for Original Size

Great! But when I tried the Echo / Sound Test Service, I noticed no audio. But I found on the forums that I would have to install pulseaudio on the ARM side. After exiting exagear, I did so, and tested audio.

Audio worked, but with pretty bad quality. Some problems related to the Raspberry Pi image, as Exagear is not involved here. I tried Skype again, but I had no luck with audio. [Update: Exagear provided more instructions but still no luck]

Beside the few x86 Linux programs not available for ARM, x86 emulation is particularly interesting to run Windows programs, which is usually done with wine in Linux.

Wine is already installed, so I decided to try Microsoft Windows 2007 Word Viewer, which has a Platinum rating in WineHQ website, meaning it should work well, and I did test it successfully in my Ubuntu 14.04 computer before trying it on the Raspberry Pi 2. Sadly it did not work well when I switched to exagear.

After checking into Eltechs_ExaGear_Desktop_guide_1.2.pdf, the issue is likely related to a kernel / user memory split, but Exagear has supposedly ported wine to support 2G/2G kernel split, and including a table with the versions to install for a given OS.

Kernel Split / OS Version / Exagear Packages
Kernel Split / OS Version / Exagear Packages

My system is running Raspbian Jessie 8 operating system with debian-8-wine2g package installed.  You’ll probably want to try another operating system with a 3G/1G split, such as Debian Jessie 8 to make sure wine runs fine. I’ve asked the company about the audio and wine issues, but did not receive any feedback after nearly 48 hours , so I’ve moved on due to time constraints. [Update: See comments with Skype ionstructions, and a promise to provide a patch for wine]. Other people were more lucky with Exagear and Windows with for instance, some old Windows games running on ODROID boards.

The company claims Exagear is up to 4.5 times faster than QEMU, but I wondered what would be the difference between native ARM programs to one compiled for x86. There’s always going to be a performance hit with emulation, but I built and ran linpack to find out how much.

  • Linpack natively run inside Raspberry Pi

  • Linpack emulated in Exagear.

Linpack x86 in Exagear is about 4.2 times slower than native Linpack (ARM) in the Raspberry Pi 2

I had mixed experience with Exagear. Skype is running well if all you do it chatting, but I had some audio issue, and I did not test video conference which is likely to suffer with emulation. You may have come across some configuration issues with Windows emulation, and unless you use old programs, for example games like Doom, Red Alert, or Duke Nukem 3D, the memory available on most ARM platforms will be a limitation. Finally, Exagear also has competition from both the free QEMU emulator (which is not quite as fast) and  cheap Intel hardware with Ubuntu Intel Atom TV Sticks selling for a little over $70.

Share this:
FacebookTwitterHacker NewsSlashdotRedditLinkedInPinterestFlipboardMeWeLineEmailShare

Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress

ROCK 5 ITX RK3588 mini-ITX motherboard

12 Replies to “Run x86 Linux and Windows applications in Raspberry Pi and other ARM Linux Devices with Exagear”

  1. afaik wine cannot x86 binaries on the ARM,
    Wine (Wine Is Not an Emulator) is just serving compatibility layer for running windows app.
    so, afaik, it can run WinCE app but not winx86, since winx86 lib can only be run on x86 hardware or emulated ones.

    am i wrong and have i been misinformed this whole time?

  2. @milkboy
    Wine can not directly run x86 Windows binary on ARM, but with an x86 emulator like QEMU or Exagear it can work.
    See… for example.

    I could probably have run Microsoft Word Viewer 2007 and other old x86 apps on RPi 2, if I had taken the time to try with other Linux operating systems for Raspberry Pi with a 3G/1G split, but I decided against since I had already spent quite some time on Exagear, and I did not get any support from them. It’s supposed to work out of the box with Raspbian 2G/2G split, but it did not in my case.

  3. @cnxsoft
    ic it now….
    misconstrue a paragraph there for a sec.
    now i get that u tried wine on rpi’s guest X86 machine, instead on wine on host machine
    my bad…. ;p

    u may del the comment if u wish

  4. I should have waited a few more hours, as I received and email for a solution for Skype and audio:

    Please, note that you should set your Raspberry Pi 2 device overclocked in order to achieve good quality skype voice calls. Also default configuration of native pulseaudio on Raspbian is not appropriate for running Skype. Please, follow the instruction and check if skype voice calls improved:

    1) run sudo raspi-config section” and select Overclock and then “Pi2 ” (1000 MHz).
    2) Check the status of governor by running
    $ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    It should be set to ‘ondemand’ or ‘performance’:
    $ sudo su
    # echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    Another way is to use cpufreq-set utility:
    $ sudo apt-get install cpufrequtils

    $ sudo cpufreq-set -g performance
    Note that after reboot governor will be set back to the default value.

    3) Check the current frequesncy and temperature of the device:
    $ vcgencmd measure_clock arm
    $vcgencmd measure_temp
    If the power of the device is not enough its frequency is set to minimum despite the raspi-config and governor manual settings. This is called “under voltage warning” and shown on the top right corner of the desktop as a rainbow square.
    To avoid problems with power make sure that you use a charger adapter with minimum 2 amps and a cable of reasonable quality.

    4) Set ‘flat-volumes = no’ in /etc/pulse/daemon.conf file (or add this line if doesn’t exist).
    and then reboot system.

    5) Pulseaudio by default does not accept socket calls. You can change it using paprefs utility.
    $ sudo apt-get install paprefs
    $ sudo paprefs
    Select “Network Server” and check “Enable network access to local sound devices”.

    6) Run skype with the following option:
    $ PULSE_SERVER= skype

    In this case Skype voice calls should be fine except the first call which is either silent or sluggish (heating up effect).

    They also replied to Wine issue on 2G/2G systems:

    …This issue is not repeated with regular Wine for 3g/1g systems. So this is not related to ExaGear.. We will fix this in Wine for 2g/2g/ systems and provide you with the patch soon.

  5. Hi! Can you share your product key? I would like to pay for it.
    I am setting up a Pi with delay of some days before they closed and I was not aware of it. Furthermore at this moment I could not find better replacement.

    1. Eltechs is closed? I did not know. Sadly my key was only valid for three months, so it would not work now.

Leave a Reply

Your email address will not be published. Required fields are marked *

Khadas VIM4 SBC
Khadas VIM4 SBC