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:
1 2 3 |
mkdir ~/exagear cd exagear tar -xvzpf exagear-desktop-rpi2.tar.gz |
Now copy your product key (pk-xxxxxxxxxxxx.key) in the directory, and you should end with the the following files:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
ls -lh total 2.9G -rwxr--r-- 1 pi pi 1.2M Nov 3 09:14 Eltechs_ExaGear_Desktop_guide_1.2.pdf -rw-r--r-- 1 pi pi 1.6M Nov 3 09:00 exagear_2367-1_armhf.deb -rw-r--r-- 1 pi pi 1.5G Nov 10 11:31 exagear-desktop-rpi2.tar.gz -rw-r--r-- 1 pi pi 174M Nov 3 08:10 exagear-guest-debian-7_3_all.deb -rw-r--r-- 1 pi pi 318M Nov 3 07:49 exagear-guest-debian-7-wine2g_3_all.deb -rw-r--r-- 1 pi pi 383M Nov 3 08:47 exagear-guest-debian-8-wine2g_1_all.deb -rw-r--r-- 1 pi pi 317M Nov 3 08:26 exagear-guest-ubuntu-1404lts-wine2g_1_all.deb -rw-r--r-- 1 pi pi 273M Nov 3 08:37 exagear-guest-ubuntu-1504-wine2g_1_all.deb -rw-r--r-- 1 pi pi 1.6M Nov 3 09:00 exagear-mem2g_2367-1_armhf.deb -rwxr-xr-x 1 pi pi 7.0K Nov 3 07:19 install-exagear.sh -rw-r--r-- 1 pi pi 352 Nov 10 13:32 pk-000000001046.key -rw-r--r-- 1 pi pi 1.5K Nov 3 09:14 README |
Now run the installation script:
1 |
sudo ./install-exagear.sh |
The script should auto-detect your operating system and install the right files for your operating system:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
System memory configuration is determined as 2g/2g ARCH=armv7l HOST OS: debian HOST OS VERSION: 8 EXAGEAR package: exagear-mem2g_*-1_armhf.deb EXAGEAR guest image package: 'exagear-guest-debian-8-wine2g_*_all.deb' Installing prerequisites... Get:1 http://mirrordirector.raspbian.org jessie InRelease [15.0 kB] ... Installing the primary key... Activating the copy of ExaGear... ExaGear is activated. Done! |
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:
1 2 3 |
df -h Filesystem Size Used Avail Use% Mounted on /dev/root 30G 6.9G 22G 25% / |
Let’s compare the kernel in Raspbian and exagear.
1 2 3 4 5 6 |
pi@raspberrypi ~/exagear $ uname -a Linux raspberrypi 4.1.7-v7+ #817 SMP PREEMPT Sat Sep 19 15:32:00 BST 2015 armv7l GNU/Linux pi@raspberrypi ~/exagear $ exagear Starting /bin/bash in the guest image /opt/exagear/images/debian-8-wine2g pi@raspberrypi ~ $ uname -a Linux raspberrypi 4.1.7-v7+ #817 SMP PREEMPT Sat Sep 19 15:32:00 BST 2015 i686 GNU/Linux |
So we’ve switched to an i686 machine with four cores (only one shown below):
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
cat /proc/cpuinfo processor : 0 vendor_id : Elbrus Technologies cpu family : 6 model : 13 model name : Exagear Virtual i686-compatible CPU @ 1.00GHz stepping : 2367 cpu MHz : 1000.00 cache size : 1024 KB physical id : 0 siblings : 4 core id : 0 cpu cores : 1 apicid : 0 initial apicid : 0 fpu : yes fpu_exception : yes cpuid level : 13 wp : yes flags : fpu pse tsc cx8 apic pge cmov clflush mmx pxsr sse sse2 nx pni ssse3 sse4_1 lahf_lm bogomips : 1000.00 clflush size : 64 cache_alignment : 64 address sizes : 36 bits physical, 32 bits virtual power management: |
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 |
wget http://download.skype.com/linux/skype-debian_4.3.0.37-1_i386.deb sudo dpkg -i skype-debian_4.3.0.37-1_i386.deb Selecting previously unselected package skype. (Reading database ... 10868 files and directories currently installed.) Preparing to unpack skype-debian_4.3.0.37-1_i386.deb ... Unpacking skype (4.3.0.37-1) ... dpkg: dependency problems prevent configuration of skype: skype depends on libqt4-dbus (>= 4:4.5.3); however: Package libqt4-dbus is not installed. skype depends on libqt4-network (>= 4:4.8.0); however: Package libqt4-network is not installed. .... skype depends on libasound2-plugins; however: Package libasound2-plugins is not installed. dpkg: error processing package skype (--install): dependency problems - leaving unconfigured Errors were encountered while processing: skype |
Installation failed because some of dependencies are not installed, but apt-get can take over from here:
1 |
sudo apt-get install -f |
This should complete Skype installation, with 7.2GB now used on the SD card.
1 2 3 |
df -h Filesystem Size Used Avail Use% Mounted on /dev/root 30G 7.2G 21G 26% / |
I could start Skype from the command or top menu, login, start chatting.

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.
1 2 3 |
sudo apt-get install pulseaudio sudo apt-get install mplayer mplayer -ao pulse Canon.mp3 |
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.
1 2 |
pi@raspberrypi ~ $ which wine /usr/local/bin/wine |
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.
1 2 3 4 5 6 |
wine wordview_en-us.exe Warning: memory above 0x80000000 doesn't seem to be accessible. Wine requires a 3G/1G user/kernel memory split to work properly. This program tried to use a DOMDocument object, but libxml2 support was not present at compile time. fixme:ole:CoCreateInstance no instance created for interface {2933bf81-7b36-11d2-b20e-00c04f983e60} of class {2933bf90-7b36-11d2-b20e-00c04f983e60}, hres is 0x80004001 |
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.
1 2 3 4 5 6 7 8 9 |
pi@raspberrypi ~/exagear $ exagear-ls Installed guest images: debian-8-wine2g pi@raspberrypi ~/exagear $ lsb_release -a No LSB modules are available. Distributor ID: Raspbian Description: Raspbian GNU/Linux 8.0 (jessie) Release: 8.0 Codename: jessie |
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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
wget http://www.netlib.org/benchmark/linpackc.new mv linpackc.new linpack.c gcc -O3 -o linpackARM linpack.c -lm ./linpackARM Enter array size (q to quit) [200]: Memory required: 315K. LINPACK benchmark, Double precision. Machine precision: 15 digits. Array size 200 X 200. Average rolled and unrolled performance: Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS ---------------------------------------------------- 64 0.84 89.81% 2.86% 7.33% 113297.893 128 1.67 89.81% 2.86% 7.33% 113314.034 256 3.35 89.80% 2.86% 7.33% 113316.663 512 6.70 89.81% 2.86% 7.33% 113311.842 1024 13.39 89.81% 2.86% 7.33% 113312.153 |
- Linpack emulated in Exagear.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
exagear gcc -O3 -o linpackx86 linpack.c -lm pi@raspberrypi ~/exagear/linpack $ ./linpackx86 Enter array size (q to quit) [200]: Memory required: 315K. LINPACK benchmark, Double precision. Machine precision: 15 digits. Array size 200 X 200. Average rolled and unrolled performance: Reps Time(s) DGEFA DGESL OVERHEAD KFLOPS ---------------------------------------------------- 16 0.94 84.59% 2.35% 13.06% 26777.579 32 1.89 84.58% 2.36% 13.06% 26751.938 64 3.78 84.58% 2.36% 13.06% 26764.476 128 7.55 84.57% 2.36% 13.07% 26770.210 256 15.10 84.58% 2.36% 13.06% 26773.303 |
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.

Jean-Luc started CNX Software in 2010 as a part-time endeavor, before quitting his job as a software engineering manager, and starting to write daily news, and reviews full time later in 2011.
Support CNX Software! Donate via cryptocurrencies, become a Patron on Patreon, or purchase goods on Amazon or Aliexpress