Raspberry PI is a series of small size computing platforms, usually a little bit bigger than a credit card. Several generations of Raspberry Pi have been released over the course of time, but all of them have something in common: they are built around Broadcom system on a chip (SOC), which includes an ARM compatible CPU and an on chip graphics processing unit GPU (a VideoCore IV). CPU speed ranges from 700 MHz to 1.2 GHz for the Pi 3 and on board memory range from 256 MB to 1 GB RAM.
Having an ARM architecture under its hood means that one cannot run Intel x86 apps on Raspberry PI/ WRONG! There’s a software solution that allows just this: the ExaGear Desktop acts as a bridge between the ARM and Intel x86 worlds, allowing us to run x86 apps on the PI. This includes the possibility to install Wine and to run Windows applications – with one caveat: only 32-bit apps are supported.
It’s an emulator, or a virtual machine? Actually, is a bit of both. In regular virtual machine software such as WMWare or Virtual Box the host system and the guest operating systems run on separate environments, and usually, there are limited possibilities to exchange data between the host and the guest systems. Also, on common virtual machines software, the guest and the host operating systems must share the common CPU architecture.
Here is the nice thing in ExaGear Desktop: not only it emulates an x86 machine inside the ARM architecture, but it acts as a bridge between the host and the guest operating systems, with the guest using a lot of the features in the host. The result: lightning speed. Performance tests have shown that ExaGear Desktop performs up to five-time faster than QEMU. Of course, this performance comes with a price: expect to pay something around 25 euros to run ExaGear Desktop on Raspberry PI 2 and 3 (including the Zero), or about 15 euros to run it on an older Raspberry PI 1.
Installing Exagear Studio
Installing ExaGear Desktop is fairly simple. We start with fresh Raspbian installation (I used the Raspbian image from 27 May 2016, which came with kernel 4.4). Then I followed the basic setup steps to update the system and to expand it to all the SD card space:
sudo apt-get update sudo apt-get upgrade
Then I run
where I’ve chosen “Expand root partition to fill SD card” option. After rebooting the system is ready to install ExaGear Desktop.
So, we run:
cd ~/Downloads/ wget http://downloads.eltechs.com/exagear-desktop-v-1-5/exagear-desktop-rpi2.tar.gz tar -xvzpf exagear-desktop-rpi2.tar.gz
The Exagear Desktop install file is about 1Gb is size, so be sure you have all the required space to download and expand it on the SD card. Allow some time for download too, especially if you’re on a slow Internet connection. After expanding files the original download file can be deleted, so we can save some disk space.
We then copy the license file in the same folder with the install-exagear.sh installer. We then start the install process by running
The installer chooses the best image, in our case this is exagear-guest-debian-8_4_all.deb. One the installer completes we can run the new Exagear Desktop emulator by simply tiping:
On the terminal we shall see the message:
Starting /bin/bash in the guest image /opt/exagear/images/debian-8
At this point running uname -m will return i686, like on a 32-bit, x86 debian system
We then run again, but this time we’re in the virtual x86 machine:
sudo apt-get update sudo apt-get upgrade
To use Win32 programs we need to have wine installed. To install it we run:
apt-get install wine
That’s all. We are nor ready to click the ExaGear icon on the desktop and we can run x86 apps.
Exagear Studio: what can you do with it
Fist of all, the easiest option is to dust off those old games from the Intel Pentium era. Considering the 900MHz SoC on a Raspberry PI and the fact that the virtual machine offers about 80% of the processing power of the host, all games with system requirements below 600MHz CPU and with VGA graphics shall run. Almost all games from the Intel Pentium III era will qualify, and maybe some newer games with low system requirements too.
I have to say here that I’m not spending a lot of time playing, and when I do I prefer the higher resolution of today’s games. But retro-gaming is a phenomenon, and you’ll find plenty of information on the Internet regarding games that are able to run on an ExaGear-enabled Raspberry Pi. I suggest you shall start with gog.com, which has compiled a long list of compatible games.
Enough of games, let’s go to some serious business. What else can run on Raspberry PI?
i686 Debian apps on Raspberry PI
Many of the x86 Debian apps already have an Raspberry PI counterpart. I can’t think of something that works only on PC and I want it to run on Raspberry PI.
I tried to run the i686 version of Mozilla Firefox and it works OK-ish, a bit slow for my taste. However, I was able to run Firefox plugins written for x86 architecture, particularly the infamous AdBlock Plus. In a world where commercials become intrusive rather than being just informative, this is great.
I can’t think on anything else that I would wish to run on the PI. If you have other ideas please share your thoughts in the comments section and I’m willing to give it a try.
Installing the x86 version of Winer allows us to run Windows apps. But which apps? Luckily there’s a huge database of already-tried apps on https://appdb.winehq.org/.
I have to say here that Wine still has problems with USB drivers support, so Windows Apps that require USB drivers might not work. Programmers for different microcontrollers are included in this section.
Some USB peripherals use USB-UART communication, usually implemented with FTDI chips. Those will work, as Raspbian comes with FTDI drivers.
Weather station software
A particular case of Windows applications that runs fine on ExaGear Desktop is that of weather station software. I can confirm that Cumulus works fine, as well as the 6.2 version of EasyWeather software that comes with many personal weather stations. The software is OK, but pay attention to the USB drivers: some weather station models use a proprietary communication protocol, and we come to the problem of poor USB drivers support.
After playing with this software for over one week I feel I have just scratched the surface. The ExaGear Desktop is fast and does exactly what it advertises, and I like that I can use my Raspberry PI as a weather data logger, especially considering the low power consumption of the Raspberry PI. The next step: maybe I will manage to (finally) connect my weather service to the Internet, and send data to Wunderground. This is still a work in progress…
Besides games and weather station monitoring I can’t think on many apps that I would want to run on the Raspberry PI. Maybe some more ideas will come over time…
USB support in Wine needs serious improvements!
Not a Raspberry PI fan? Take a peek into
https://eltechs.com/product page. There’s even an Android version…