You are on page 1of 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
support@eltechs.com
.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