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
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?
@milkboy
Wine can not directly run x86 Windows binary on ARM, but with an x86 emulator like QEMU or Exagear it can work.
See… http://wiki.winehq.org/ARM 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.
@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
hahahaha…
u may del the comment if u wish
@milkboy I do test with previous versions of ExaGear. This software emulates x86 machine on ARM hardware, in the emulate x86 machine you can install Wine and after that I install Office2007
Sorry is in Spanish, but you have a lot of snapshopts Probando ExaGear emulador x86 sobre ARM
Interesting post, there was also just a webinar about ExaGear running on Linux on a Nvidia Tegra Toradex SOM:
https://www.youtube.com/watch?v=3w1XJjUYR2E
I should have waited a few more hours, as I received and email for a solution for Skype and audio:
They also replied to Wine issue on 2G/2G systems:
@cnxsoft
Another reason I dislike PulseAudio (or, rather *anything* Lennart Pottering has touched…)- you should not have had to do that…
@cnxsoft
emulating wine on a rpi .. how slow will that be ?
Thanks for the review, it is only missing a performance comparison with QEMU…
Some new instructions to install Skype on R-Pi 2 with Exagear @ http://eltechs.com/run-skype-on-raspberry-pi/
Looks like there’s another config file in pulseaudio that needs to be modified:
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.
Eltechs is closed? I did not know. Sadly my key was only valid for three months, so it would not work now.