0% found this document useful (0 votes)
2K views16 pages

Eltechs ExaGear Desktop Guide 1.2

This guide describes how to install, configure and work with ExaGear along with conceptual view of how it works.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
2K views16 pages

Eltechs ExaGear Desktop Guide 1.2

This guide describes how to install, configure and work with ExaGear along with conceptual view of how it works.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

Eltechs ExaGear Desktop

User Guide

1of16

Contents

1Introduction
2ExaGearforUbuntu,Debian,Raspbian
2.1Prerequisites
2.2InstallingExaGear
2.3RunningtheGuestSystem
2.4InstallingLinuxx86Applications
2.5RunningLinuxx86Applications
2.6InstallingandRunningWindowsx86Applications
2.7AdministrationofExaGear
SUIDandSGIDbinariesunderExaGear
Directoriessharedbetweenthehostandguestsystems
IntegrationofguestSysVstyleinitscriptsandUpstartjobsintothehost
Integrationofguestcronjobsintothehost
Integrationofguestudevservicesintothehost
2.8UpdateExaGear
2.9RemovingExaGear
3Errata
4Support
5ExaGearConcepts

2of16

1 Introduction
EltechsExaGearDesktop
enablesARMbaseddeviceswithARMGNU/Linuxoperatingsystem
torunpracticallyanykindofx8632bitGNU/Linuxsoftwaredesignedforstandarddesktops.
Moreover,youcanrunWindowsapplicationsusing
Wine
ontopofExaGear.

Thisguidedescribeshowtoinstall,configureandworkwithExaGearalongwithconceptual
viewofhowitworks.

Inthisdocumenttheterm
hostsystem
isusedtorefertoARMbasedGNU/Linuxandtheterm
guestsystem

isusedtorefertothex86GNU/Linuxrunningontopofthehostsystem.

Notethatfollowingformattingconventionsareusedinexamplesinthisdocument:
monospace
identifiescommandstobeperformedinthehostsystem
monospacebold
identifiescommandstobeperformedintheguestsystem
<version>identifiesvariableversionwithdifferentvalues.

Followingguestsystemimagesarecurrentlyavailable:Ubuntu12.04,Ubuntu14.04,Ubuntu
15.04,Debian7,Debian8.Notethattheguestsystemimageshavetocorrespondtothehost
systemversion.Thus,westronglyrecommendfollowingconfiguration:
hostsystemisUbuntu12.04andguestsystemisUbuntu12.04
hostsystemisUbuntu14.04andguestsystemisUbuntu14.04
hostsystemisUbuntu15.04andguestsystemisUbuntu15.04
hostsystemisDebian7andguestsystemisDebian7
hostsystemisDebian8andguestsystemisDebian8
hostsystemisRaspbianWheezyandguestsystemisDebian7
hostsystemisRaspbianJessieandguestsystemisDebian8.
SupportforotherGNU/Linuxdistributionsisindevelopment.

2 ExaGear for Ubuntu, Debian, Raspbian


Thischapterdescribesproceduresofinstallation,configurationofExaGearforUbuntu,Debian
orRaspbianhostsystem,installationandrunningofx86applicationswithinit.

2.1Prerequisites
Notethatthehostsystemshouldmeetfollowingrequirements:
CPU:
ARMv6architectureforRaspberryPi1
ARMv7architectureforotherARMdevices
supportofVFPv3D32
forx86applicationsthatuseMMX/SSEsupportofNEONisalsorequired
RAM:512MBormore

3of16

DiskSpace:600MB(includingbasicx86systemthatisprovidedaspartofExaGear
installationpackages).Notethatextraspaceisrequiredforinstallationofx86
applications.
OS:ARMLinux32bitUbuntu12.04,Ubuntu14.04,Debian7,Raspbian.Additionally
binfmt_misckernelmoduleisrequired.
NotethatExaGearonlysupports32bitx86applications.

2.2InstallingExaGear
ExaGeardistributionconsistsoftwopackagesthatcontainavirtualizationenginewithsupport
utilitiesandasetofx86binaryfiles,libsanddata,thatformminimalx86environment.Also
installationscriptisprovidedforautomatedinstallation.ExaGearrequiresactivationusinga
licensekey.

Priortotheinstallationcheckif
/opt/exagear
directoryofthehostsystemdoesntexist.In
casethedirectoryexistsyoushouldfollowtheinstructionsinchapter2.8UpdateExaGear.

Automatedinstallation
InordertoinstallandactivateExaGearrun
installexagear.sh
scriptinthedirectorywith
exagear.debpackagesandonelicensekey:
$lsl
exagearguest
<package_version>.deb
exagear_<package_version>.deb
installexagear.sh
pk_<num>.key
$sudo./installexagear.sh

Manualinstallation
Toproceedwithinstallationperformfollowingactions:
1. Ensurethatyouhavethenecessaryprivilegesneededforpackageinstallation.
2. EnsureExaGeardependencies:
$sudoaptgetinstallbashcoreutilsfindutilsrealpathcurl
binfmtsupportcron

3. IdentifyversionsofExaGearpackagesbestsuitableforyourhostsystem.
a. CheckthearchitectureofyourARMdevice:
$arch

b. Checkuser/kernelvirtualmemorysplitofthehostsystem(executetheholeline
incommandlineterminalandseetheoutput):
[$((`cat/proc/self/maps|grepstack|awkF'''{print"0x"$1}'`))gt
$((0x80000000))]&&echo3g/1g||echo2g/2g

c. Checktheversionofthehostoperatingsystem:
$sudocat/etc/issue

d. FindversionsofExaGearpackagestoinstallinthetablebelow:

4of16


Arch

User/kernel Operating
split
system

ExaGearpackagestoinstall

armv7

2g/2g

Raspbian
Wheezy7

exagearmem2g_*.deb
exagearguestdebian7wine2g_*.deb

armv7

2g/2g

Raspbian
Jessie8

exagearmem2g_*.deb
exagearguestdebian8wine2g_*.deb

armv7

2g/2g

Ubuntu
14.xx

exagearmem2g_*.deb
exagearguestubuntu1404ltswine2g_*.deb

armv7

2g/2g

Ubuntu
15.xx

exagearmem2g_*.deb
exagearguestubuntu1504wine2g_*.deb

armv7

3g/1g

Debian
Wheezy7

exagear_*.deb
exagearguestdebian7_*.deb

armv7

3g/1g

Debian
Jessie8

exagear_*.deb
exagearguestdebian8_*.deb

armv7

3g/1g

Ubuntu
12.xx

exagear_*.deb
exagearguestubuntu1204lts_*.deb

armv7

3g/1g

Ubuntu
14.xx

exagear_*.deb
exagearguestubuntu1404lts_*.deb

armv7

3g/1g

Ubuntu
15.xx

exagear_*.deb
exagearguestubuntu1504_*.deb

armv6

2g/2g

Raspbian
Wheezy7

exagearlegacymem2g_*.deb
exagearguestdebian7wine2g_*.deb

armv6

2g/2g

Raspbian
Jessie8

exagearlegacymem2g_*.deb
exagearguestdebian8wine2g_*.deb

armv6

3g/1g

Raspbian
Wheezy7

exagearlegacy_*.deb
exagearguestdebian7_*.deb

armv6

3g/1g

Raspbian
Jessie8

exagearlegacy_*.deb
exagearguestdebian8_*.deb

4. Use
dpkg
toinstallExaGearpackages.Forexample:
$sudodpkgiexagearmem2g_*.deb
$sudodpkgiexagearguestdebian7wine2g_*.deb

5. UselicensekeytoactivateExaGear

5of16

$sudocppk*.key/opt/exagear/lic
$sudo/opt/exagear/bin/actool

Nowthex86worldiscreatedandyoucanstartrunningtheguestsystem.

2.3RunningtheGuestSystem
Youcanprinttheguestsystemversionbyusing
exagearls
command:
user@armserver:$exagearls
Installedguestimages:
ubuntu1204lts

Tostartaguestshelluse
exagear
utility.Forexample:
user@armserver:$exagear
Startingtheshellintheguestimage/opt/exagear/images/ubuntu1204lts
user@armserver@x86:$unamea
Linuxarmserver.company.com3.2.27#1SMPPREEMPTWedFeb1305:57:57UTC
2013i686i686i386GNU/Linux
user@armserver@x86:$

Youarenowinsidethex86world.Hereyourroot(/)directoryis
/opt/exagear/images/<guest_system_version>
(similartotheresultof
chroot
/opt/exagear/images/<guest_system_version>
).Youcanusethisguestshellasifit
wererunningonanx86machine.

Notethatuseraccountsaresharedbetweenthehostandguestsystems.Whenauserisadded
orremovedintheguestsystem,themodificationismadetothehost.
/home
directoriesare
sharedbetweenthehostandguestsystemsaswell.

Toexitfromtheguestsessionuse
exit
:
user@armserver@x86:$exit
user@armserver:$

Nowyouarebackinthehostsystem:
user@armserver:$unamea
Linuxarmserver.company.com3.2.27#1SMPPREEMPTWedFeb1305:57:57UTC
2013armv7larmv7larmv7GNU/Linux

NotethatitisalsopossibletouseyourpreferredshellintheguestsystembysettingupSHELL
environmentvariablepriortocallto
exagear
.

2.4InstallingLinuxx86Applications
Installationofanx86applicationshouldbeperformedinsidethex86guestenvironment.Invoke
exagear
commandtobeginaguestsession.Beforeproceedingwithinstallationofguest
applicationsensurethatyouhavethenecessaryprivilegesforpackagesinstallation.For

6of16

example:
user@armserver:$exagear
Startingtheshellintheguestimage/opt/exagear/images/ubuntu1204lts
user@armserver@x86:$sudoaptgetupdate
user@armserver@x86:$sudoaptgetinstallnginx

Thex86applicationbinaryisinstalledintheguestimage
/opt/exagear/images/<guest_system_version>
.

Ifinstalledapplicationincludescronjobsorudevrulesyouneedtorebootyourhostsystemto
finalizetheirregistrationonthehostsystem.Otherwiseitispossibletoregisterthemmanually
byexecutingthefollowingcommand:
fromthehostUbuntusystem
user@armserver:$sudoinitctlstartupdateexagearguest<guest_system_version>

fromthehostDebianorRaspbiansystem

user@armserver:$sudoserviceexagearguest
<guest_system_version>
start

Guestjobswillbeplacedin
/etc/cron.d
directoryonyourhostsystem.Bydefault
crondaemonupdatesitsconfigurationeachminute,sojobswillbequeuedautomatically.
Incaseifyouarealteringyourjobsintheguestsystemyoushouldregisterthemagaininthe
host.

Guestudevruleswillbeplacedin
/etc/udev/rules.d
directoryonyourhostsystem.
Committedguestsystemsudevrulesalwaysrunafterallofthehostsystemsruleshavebeen
run.

2.5RunningLinuxx86Applications
Aftertheinstallationofanx86applicationiscompleteitcanberunbothfromtheguestandhost
sessions.

Insidethehostsessionyouneedtoenterthefullpathtothebinaryofx86applicationbecauseit
islocatedunderaparticulardirectory
/opt/exagear/images/<guest_system_version>
calledthex86world.Forexample:
user@armserver:$/opt/exagear/images/ubuntu1204lts/usr/sbin/nginxh

Alsoyoucanusethecommand
exagear
tostarttheshelloftheguestsessionandthenrun
anyx86applicationthesamewayasonanx86system.Forexample:
user@armserver:$exagear
Startingtheshellintheguestimage/opt/exagear/images/ubuntu1204lts
user@armserver@x86:$/usr/sbin/nginxh

7of16

Onlythex86worldisvisibleforanx86application.Sometimesitisnecessarytoaccessfiles
thatarelocatedoutsidethex86worldonthehostsystem.Inthiscaseyoucanmountanew
hostdirectorytoamountpointinsidethex86worldbyusingcoreutils.Forexample,ifyouneed
tomakevisible
/newdir
hostdirectoryfromtheguestsystemperformthefollowingactions.
Createmountpointinsidethex86world
$sudomkdir/opt/exagear/images/ubuntu1204lts/shareddir

andthenmount
newdir
tothemountpoint
shareddir
$sudomountbind/newdir/opt/exagear/images/ubuntu1204lts/shareddir

Note
thatitisprohibitedtohavex86andARMversionsofthesameserviceinstalled
simultaneouslyonthesamemachine.Alsowestronglyrecommenddonotrunhostservices
fromtheguestsystemasitisnottestedandnotsupported.
Note
thatdoing
aptgetdistupgrade
intheguestsystemisnotsupported.

2.6InstallingandRunningWindowsx86Applications
InstallingandrunningofWindowsx86applicationscanbedoneusingWine,acompatibility
layercapableofrunningWindowsapplicationsonLinux(http://www.winehq.org).

For3g/1gsplitsystemsyoucaninstalWineusing
aptget
intheguestsystem.
user@armserver:$
[$((`cat/proc/self/maps|grepstack|awkF'''{print
"0x"$1}'`))gt$((0x80000000))]&&echo3g/1g||echo2g/2g

3g/1g

user@armserver:$exagear
Startingtheshellintheguestimage/opt/exagear/images/debian7
user@armserver@x86:$sudoaptgetinstallwine
user@armserver@x86:$wineversion

UnfortunatelyWinedoesnotsupport2g/2gsplitsystemsandfailsonthosekernels.Wepatched
Winetosupport2g/2gsplitsystems,builtitandpreinstalleditintheguestsystem.Sofor2g/2g
splitsystemsyoushouldusepreinstalledWineintheguestsystem.
user@armserver:$
[$((`cat/proc/self/maps|grepstack|awkF'''{print
"0x"$1}'`))gt$((0x80000000))]&&echo3g/1g||echo2g/2g

2g/2g

user@armserver:$exagear
Startingtheshellintheguestimage/opt/exagear/images/debian7wine2g
user@armserver@x86:$wineversion

8of16

2.7AdministrationofExaGear
Beforeproceedingwithadministrationensurethatyourusercanelevateprivilegesneeded.
SUIDandSGIDbinariesunder
ExaGear
BydefaultsupportforSUIDandSGIDguestbinariesisenabledinExaGear.Todisablethis
supportswitch
ENABLE_SUID
valueto
N
inthefile
/etc/binfmtx86.confonthehost
system:
user@armserver:$sudocat/etc/binfmtx86.conf
#
ENABLE_SUID=N

Thenrestart
exagear
service:
user@armserver:$sudoserviceexagearrestart

Note
thatSUIDandSGIDguestbinarieswontrunassudouserif
exagear
serviceisnot
enabled.Normally
exagear
serviceisautomaticallystartedrightafterinstallationofExaGear
andautomaticallyrestarteduponstartupofthehostmachine:
user@armserver:$sudoserviceexagearstatus
x86_guestisenabled

Aslongas
exagear
serviceis
binfmt_misc
wrapperthelackof
binfmt_misc
kernel
moduleonthehostsystemleadstotheimpossibilitytorunSUIDandSGIDguestbinariesas
sudouser.InthiscaseyouwillbeabletorunSUIDandSGIDguestbinariesonlyasroot.
Directoriessharedbetweenthehostandguestsystems
Configurationfile
/opt/exagear/images/<guest_system_version>/.exagear/vpathslist
containsthelistofdirectoriesandfilesthataresharedbetweenthehostandguestsystems.For
example,useraccountsand
/home
directoriesaresharedbetweenthehostandguest
systems.

Sysctlandnetworkconfiguration
Sysctlandnetworkconfigurationsaresharedbetweenthehostandguestsystems.

Theguestsystemhasaccesstofilesthatdescribethenetworkconfiguration,like
/etc/resolv.conf
.Theguest,however,isnotsupposedtomodifythenetworksettings,so
thedirectory
/etc/network
ispurposelyemptyintheguestsystem.Configurationofnetwork
settingsshouldbedoneonthehostsystem.

Theguestsystemcanaccesssysctlsettingsin
/proc/sys/
butcannotupdate
/etc/sysctl.conf
or
/etc/sysctl.d/
.Configurationofsysctlparametersshouldbe

9of16

doneonthehostsystem.
IntegrationofguestSysVstyleinitscriptsandUpstartjobsintothehost
Debian7,RaspbianusesSysVstyleinitscriptsastheinitsystem.Ubuntu12.04,Ubuntu14.04
usesupstartjobsandSysVstyleinitscriptsastheinitsystem.Manysoftwarepackagesprovide
configurationfortheseservices.

Bydefault,thefullyautomaticintegrationmechanismisemployedtorepresentguestservices
ashostones.Guestservicesareregisteredasthehostonesunderthesamename.Thusyou
canmanageguestservicesbothfromtheguestandhostshell(inthelastcasehostservice
delegatesallstart/stop/testconfig/etc.requeststotherespectiveguestservice).Forexample:
user@armserver:$exagear
Startingtheshellintheguestimage/opt/exagear/images/ubuntu1204lts
user@armserver@x86:$sudoaptgetupdate
user@armserver@x86:$sudoaptgetinstallnginx
user@armserver@x86:$sudoservicenginxstatus
*nginxisrunning
user@armserver@x86:$exit
user@armserver:$sudoservicenginxstatus
*nginxisrunning

Youcanseewhichservicesareregisteredintheguestsystembylistingfilesunderthe
/opt/exagear/images/<guest_system_version>/etc/init.d/
and
/opt/exagear/images/<guest_system_version>/etc/init/
directoriesofthe
guest.

Afteruninstallationofguestapplicationsexecutethefollowingcommandfromthehostsystem
todeleterespectiveconfigurationfilesinthehostsystem:
fromthehostUbuntusystem
user@armserver:$sudoinitctlstartupdateexagearguest<guest_system_version>

fromthehostDebian,Raspbiansystem:

user@armserver:$sudoserviceexagearguest
<guest_system_version>
start

Note
thatitisprohibitedtohavex86andARMversionsofthesameserviceinstalled
simultaneouslyonthesamemachine.Alsowestronglyrecommenddonotrunhostservices
fromtheguestsystemasitisnottestedandnotsupported.
Integrationofguestcronjobsintothehost
Bydefaultallguestcronjobsareregisteredtothehostuponstartupofthehostmachine.
Otherwiseitispossibletoregisterthemmanuallybyexecutingthefollowingcommand:
fromthehostUbuntusystem
user@armserver:$sudoinitctlstartupdateexagearguest<guest_system_version>

fromthehostDebian,Raspbiansystem:

10of16

user@armserver:$sudoserviceexagearguest
<guest_system_version>
start

/etc/crontab
configurationfile,cronjobslocatedin
/etc/cron.d
directoryand
userspecificcronjobslocatedin
/var/spool/cron/crontabs/
directoryoftheguest
systemareconvertedtohostcronjobsinto
/etc/cron.d/
directory.Guestjobsnamesin
thehostareprefixedwithEG_.Thiswayyoucandistinguishhostandguestjobs.

Notethatcronjobsin
/etc/cron.{hourly,daily,weekly,monthly}
oftheguest
systemarenotconvertedtohostcronjobssincetheyareautomaticallyhandledbythe
convertedversionoftheguests
/etc/crontab
.Consideranexample:
Guestsystem:Hostsystem:
/etc/etc
/crontab/crontab
/cron.d/cron.d
/myrecurrentjob
/cron.hourly/cron.hourly
/cron.daily/cron.daily
/cron.weekly/cron.weekly
/myweeklyjob
/cron.monthly/cron.weekly

/var/spool/cron/crontabs/joe/var/spool/cron/crontabs/

Asaresultofguestcronjobsregistrationthefollowingchangestothehostsystemwillbe
committed:
Guestsystem:Hostsystem:
/etc/etc
/crontab+/crontab
/cron.d|/cron.d
+>/EG_<guest_system_version>_crontab
(handlesguests
cron.hourly,cron.daily,
cron.weekly,cron.monthly)
/myjob>/EG_<guest_system_version>_myjob
+>/EG_<guest_system_version>_peruser_jo
/cron.hourly|/cron.hourly
/cron.daily|/cron.daily
/cron.weekly|/cron.weekly
/myweeklyjob|
/cron.monthly|/cron.weekly
|
/var/spool/cron/crontabs/jo+

Bydefaultcrondaemonupdatesitsconfigurationeachminute,sojobsarequeued

11of16

automatically.Incaseifyourealteringyourjobsinaguestsystemyoushouldregisterthem
againinthehost.

Youcanrestrictregistrationofguestcronjobstothehostbysetting
DELEGATE_CRONTABS_AUTOMATICALLY=N
intheconfigurationfile
/etc/exagearguest<guest_system_version>.conf
.
Integrationofguestudevservicesintothehost
Toprovideuserwiththeabilityofhandlingdeviceeventsstraightfromtheguestsystem,
ExaGearincorporatesintegrationofudevsubsystem.Thisisrequiredincaseifaguest
applicationprovidesfacilitiestoworkwithsomeencryptedUSBdevicessuchasHASPkeysetc.
andusesudevrulestosubscribeondevicetreechanges.Inthiscaseapplicationspecificrules
shouldbecommittedtothehostsystem,otherwiseapplicationwillremainunnotifiedondevice
treechanges.

Bydefaultallguestrulesareregisteredtothehostuponstartupofthehostmachine.Otherwise
itispossibletoregisterthemmanuallybyexecutingthefollowingcommand:
fromthehostUbuntusystem
user@armserver:$sudoinitctlstartupdateexagearguest<guest_system_version>

fromthehostDebian,Raspbiansystem:

user@armserver:$sudoserviceexagearguest
<guest_system_version>
start

Allapplicationspecificudevruleslocatedin
/opt/exagear/images/<guest_system_version>/etc/udev/rules.d/
directoryof
theguestsystemareconvertedtohostudevrulesinto
/etc/udev/rules.d/
directory.
GuestrulesnamesinthehostareprefixedwithEG_.Thiswayyoucandistinguishhostand
guestrules.Registeredguestsystemudevrulesalwaysrunafterallrulesofthehostsystem.

Afteruninstallationofguestapplicationwithregisteredudevruletosynchronizeguestsystem
udevrulesdatabasewiththehostoneexecute:
fromthehostUbuntusystem
user@armserver:$sudoinitctlstartupdateexagearguest<guest_system_version>

fromthehostDebian,Raspbiansystem:

user@armserver:$sudoserviceexagearguest
<guest_system_version>
start

2.8UpdateExaGear
ToupdatetheversionofExaGearyoushouldperformfollowingactions:
1. Ensurethatyouhavethenecessaryprivilegestoperformfollowingactions
2. Ensurethatallofthepreviouslyinstalledguestapplicationsarestoppedandremoved
fromtheguestsystem

12of16

3. Removepreviousversionpackages:
$sudoaptgetpurgeexagearexagearmem2gexagearlegacyexagearlegacymem2g

4. EnsureExaGeardependencies:
$sudoaptgetinstallbashcoreutilsfindutilsrealpathcurl
binfmtsupportcron

6. IdentifyversionsofExaGearpackagesbestsuitableforyourhostsystem.
a. CheckthearchitectureofyourARMdevice:
$arch

b. Checkuser/kernelvirtualmemorysplitofthehostsystem(executetheholeline
incommandlineterminalandseetheoutput):
[$((`cat/proc/self/maps|grepstack|awkF'''{print"0x"$1}'`))gt
$((0x80000000))]&&echo3g/1g||echo2g/2g

c. Checktheversionofthehostoperatingsystem:
$sudocat/etc/issue

d. FindversionsofExaGearpackagestoinstallinthetablebelow:
Arch

User/kernel Operating
split
system

ExaGearpackagestoinstall

armv7

2g/2g

Raspbian
Wheezy7

exagearmem2g_*.deb
exagearguestdebian7wine2g_*.deb

armv7

2g/2g

Raspbian
Jessie8

exagearmem2g_*.deb
exagearguestdebian8wine2g_*.deb

armv7

2g/2g

Ubuntu
14.xx

exagearmem2g_*.deb
exagearguestubuntu1404ltswine2g_*.deb

armv7

2g/2g

Ubuntu
15.xx

exagearmem2g_*.deb
exagearguestubuntu1504wine2g_*.deb

armv7

3g/1g

Debian
Wheezy7

exagear_*.deb
exagearguestdebian7_*.deb

armv7

3g/1g

Debian
Jessie8

exagear_*.deb
exagearguestdebian8_*.deb

armv7

3g/1g

Ubuntu
12.xx

exagear_*.deb
exagearguestubuntu1204lts_*.deb

armv7

3g/1g

Ubuntu
14.xx

exagear_*.deb
exagearguestubuntu1404lts_*.deb

armv7

3g/1g

Ubuntu
15.xx

exagear_*.deb
exagearguestubuntu1504_*.deb

13of16

armv6

2g/2g

Raspbian
Wheezy7

exagearlegacymem2g_*.deb
exagearguestdebian7wine2g_*.deb

armv6

2g/2g

Raspbian
Jessie8

exagearlegacymem2g_*.deb
exagearguestdebian8wine2g_*.deb

armv6

3g/1g

Raspbian
Wheezy7

exagearlegacy_*.deb
exagearguestdebian7_*.deb

armv6

3g/1g

Raspbian
Jessie8

exagearlegacy_*.deb
exagearguestdebian8_*.deb

7. Use
dpkg
toinstallExaGearpackages.Forexample:
$sudodpkgiexagearmem2g_*.deb
$sudodpkgiexagearguestdebian7wine2g_*.deb

8. UselicensekeytoactivateExaGear
$sudocppk*.key/opt/exagear/lic
$sudo/opt/exagear/bin/actool

2.9RemovingExaGear
BeforeyouproceedwithremovalofExaGearyoushouldensurethatallofthepreviously
installedguestapplicationsarestoppedandremovedfromtheguestsystem.

ToremoveExaGearuse
aptgetpurge
:
$sudoaptgetpurgeexagearexagearmem2gexagearlegacyexagearlegacymem2g

Asaresultthevirtualizationengineandsupporttoolswillberemoveddirectoriesandfilesof
theguestfilesysteminstalledwithinthepackagewillberemoved.

Note
that
aptgetremove
and
aptgetpurge
donotdifferforthepackagewiththe
guestfilesystem.Inbothcasesallfilesintheguestfilesystem(filesinstalledwithExaGearand
thosethatwerelatercreatedbyuser)aredeleted.

3 Errata
1. ThelengthofabsolutepathsthatExaGearcanuseislimitedto4KiB.
2. x87(floatingpoint)80bitprecisionsupportislimited.
a. 80bitoperandsareconvertedto64bitones.
b. TherearediscrepanciesincaseofNaNoperand
c. Therearediscrepanciesincaseofraisingfloatingpointexceptions
3. Weprovidelimitedsupportfor
/dev/mem
and
/proc
.

14of16

4 Support
Reportissuestotheemailaddress
[email protected]
.Pleaseprovidethelogfilesand
detaileddescriptionoftheproblem.

5 ExaGear Concepts
ThischaptergivesthegeneralviewonhowExaGearworks.

TherearetwomaincomponentsofExaGearvirtualizationengineandx86world.ExaGear
virtualizationengineallowstorunx86LinuxapplicationsontopofARMbaseddeviceswith
ARMLinuxoperatingsystemwithoutportingorrecompilingapplications.ExaGearcreatesan
x86worldthatcontainsallstandardlibraries,utilitiesandconfigurationalfiles.Thisapproach
ensuresavailabilityofcomponentsofinfrastructurerequiredbyx86applicationstorun.

Virtualizationengine.
ExaGearvirtualizationengineisamiddlewaresoftwaresolution,positionedatthegap
betweenthex86applicationandtheARMbasedserver(seefigure5.1).WithintheExaGearthe
userseesnodifferencebetweenrunningnativeARMandx86applicationsExaGear
virtualizationengineinterceptsx86applicationsfromtheverystart,convertstheminruntime
intoARMcompatiblecodeusingbinarytranslationtechnology,andexecutesthem.Theentire
processiseasy,andtransparenttotheenduser.

Figure5.1:TheConceptualRepresentationofExaGear

x86world.
Technicallyx86worldisaparticularfiledirectorythatcontainsthex86libraries,commands,
utilitiesandothersystemfiles(seefigure5.2).x86applicationsbinariesmustbelocatedinx86
worldaswell.

15of16

Figure5.2:Theconceptualrepresentationofx86world

Bothvirtualizationengineandminimalx86systemareprovidedinExaGearinstallation
packages.

16of16

You might also like