#!/usr/bin/env bash # # Copyright (C) 2011-2016 Intel Corporation. All rights reserved. # # Redistribution and use in source and binary forms, with or without # modification, are permitted provided that the following conditions # are met: # # * Redistributions of source code must retain the above copyright # notice, this list of conditions and the following disclaimer. # * Redistributions in binary form must reproduce the above copyright # notice, this list of conditions and the following disclaimer in # the documentation and/or other materials provided with the # distribution. # * Neither the name of Intel Corporation nor the names of its # contributors may be used to endorse or promote products derived # from this software without specific prior written permission. # # THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS # "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT # LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR # A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT # OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, # SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT # LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, # DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY # THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE # OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. # # set -e PKG_NAME="Intel SGX Driver" if test $(id -u) -ne 0; then echo "Root privilege is required to install $PKG_NAME." exit 4 fi PATH=/usr/bin:/bin umask 022 DRIVERPKG=`mktemp -t sgx-driver-pkg.XXXXXX` DRIVER_TEMP_FOLDER=`mktemp -d sgx-driver-XXXXXX -p /tmp` trap "rm -fr $DRIVERPKG $DRIVER_TEMP_FOLDER 2>/dev/null; /bin/sed -i '/^isgx$/d' /etc/modules; exit 3" HUP INT QUIT TERM EXIT # The number of lines in this script (plus 1). Using this number to # calculate the start address of the payload. NR_SCRIPT_LINES=93 # Run /usr/bin/md5sum on the binary payload to get the MD5 check sum. CHKSUM=6baa7f07a28a02a532626f47741fa41d # Get the install payload from this shell script. echo -n "Unpacking $PKG_NAME ..." tail -n +$NR_SCRIPT_LINES "$0" > $DRIVERPKG echo " done." echo -n "Verifying the integrity of the install package ..." if test $(md5sum $DRIVERPKG | awk '{print $1}') != $CHKSUM; then echo " The install package appears to be corrupted." exit 1 fi echo " done." echo "Installing $PKG_NAME ..." tar zxf $DRIVERPKG -C $DRIVER_TEMP_FOLDER >/dev/null 2>&1 retcode=$? # Save the return code # Clean-up the temporary tarball. rm -f $DRIVERPKG 2>/dev/null if test $retcode -ne 0; then echo " failed." exit 2 fi pushd $DRIVER_TEMP_FOLDER source scripts/installConfig make install popd ${SGX_PACKAGES_PATH}/${DRIVER_PKG_NAME}/scripts/install.sh rm -fr ${DRIVER_TEMP_FOLDER} trap - EXIT exit 0 }W0Hu x谢ͱZ^tAw rӿ6K$a]Zcr=x<t׭.-ʴkKGRINHgϧזAg&i^_M :{0x@<Ⴉc "F^P9ɧ M,XYa fF⪊~>4Q_1dXzfX`ЩA`kpP:SMJ3|4x`\m( ? )iϳt׏gA?fma;nQ38;{kX}ӸXm40z?hݚ4wyaO1'si'^7JhY7|}[$GAT[)ӺZvP6ro\\;0{q]u? $JB>Ϟl?fAgXCmIGo#~v[ 0/,GmQIIcb9~qцNDh6w;Ok禓'Aw8!YyyL%OL<#,")-"؆4ė59"/qr 2Btw`vlL y#ΐKĕg1 YAsdhm4^ _ shy3K6z nS rPٓ. \j`m ǰQޛ[8c};h8ބm =w@P{s2xbt\wCtȘTT~gxQ\c[ zӴaaIkLICpO g8bАAS6}k!m760 n=,io u*-$hXז?#f6&b6o&C커DJ oK{L+)S-H"DpAS. %+%u1F{Cw98^'Kn={7ŗ/eB' wЉJz8OU5T߁C/{5t +ʉ.snj*H=Ki)r9}8~&Ew;qS)##-S1p|TQ Xs>Q١Am8YS#{)t&KO=,PgkO5#z=xm!v,E``d'LYAWYF6e$@9|s; goǫtyQdb6B.H֭i+֬]˜kEj1>kl`װxzM{( NpBYNʃ<}ͰPmS8C- 4es:*J0@3K-͂(cmmr~ve#}XT2ѿm}4/ ͔'T0ľ{ L*]'d"Fnaap#jE، r9x-)0 {؈| ҂Jom wm{1IqelsDlG -4,[1q;η)hH8oR)#tdNZ2k}oA"f}lilș []wG3DEi׈aUpoi+}p@PQsI[JdzYJ0-tbq|ShxSC(󱨕C`i_G&{n*䉴|R΂r + ,J <>nkV &{9:òuD=p1TG`'w끟#i1'U`Oׁ*f zFLDM^W=k2x\2mDmgZG`n@v>mzYhL $Pd Iގh(6:^繞k3K` оOp싓6ۚ-o=}`_^"_r<ЏN 2?h /8a(H K.4 dHhW2 V6靟y HTGrx@{#+~${Ši0bi/!%o#qG+&U/)g]eD̾hN 11/iD{Pi۶CTH`I0flEQ>HR!7~o~o~{=8Nݳg޲[si!ZW;e"SsNu "mc9ۤM+ ,()]/x+L%|&^+ӜIElJGQóbbUNWBuz" bBNixc46ZcܷK%^"ղFt%;cr'4 -RG [νAPi/i֗/%VFV _;ҥ:g#lGTrЅc,eR$ GaU͛[ n ќyd7Rg{iV.EzN,ptNyWIusL{Eo_ѡX ;̃xo %iDQQ.q>+SW.)Z@?>o/' pe>Tueެ^w#G]^q b ^j_C P9p.b=*Qf58`UQK:-¶0l^V)ct6tҰ,c<%.({{#?'_t1\)iս\i'ZByYg6/OTIB~0ēou{)2&}f9W+a$Z3E\-bٰwn(߽6:8z*)hY"MW܎xA5Ko[xқ~xvv+y[ ,fr᤹['+(&;QD H}~8Z}RڮR"-uW]1PWgF S^R{) y2;vpO%ە1zCPzT) _ʪ8"?C],\ڄVLU`\Gn!;S}Z YAaa t"zx ywp|xʎdoJb+c%1+*KGXxpqvl5ǵ%pn1A,bdL'N/vS#.jϩǨH|;X´Hԅ\%Q KaPN*-zxM|Y@T^B$.]".-0I0R t].Jd؁@óg ,=d..`XB)P\( i{䰆]Щ uJLrK݊V,jlX_rI79wYi*-ncK!vpK-~sPYIBQ2ŨiŊZJY5+tPWGʃ|21nkK1Y,M<7mbpE+(s{"WC @dNeYk1;e2KT |B0xWmޙ5y:Fh,2)3#!$9XemZ_zYPܩ5-=q-Qo8ƐCAZk0 0;KWjZ]o]+^Q >tWXeF/&VFKmf&+w/6C+>y0/u 8ǕN,PU(8G%rt&wg*G4P>Ӭ@TܧMeP1q0P|91v0<NI5:IHruL1'XhbNJv垗)BևkWIDZ/|a"ؽ%-|O4GPǂw=tv~ϟ8f`߫JW)ζkJJ+˽ƓFםy_ J{XUHkl_MQޯ%6rүO/h>}ڮ@%ey:{ȣyhF]yڪL0|=1LJB/bAZn4nav֬>t(8Wk6 `z~ 𿀚ӳ51&B,|ozv~ـY/|mԂIEuP=}Z 6ߓf# d}Rɨ^,%͇]\U}2C &KoXf6c4s!i2ӘA) (-{K[gT-JypwTPA/-,3qA>t/P qjo|g;CmgD*DxZ>V_v+4+RDX4- (?fqOͤxȬkՅ)d^Dp.a>Y' KRݙX`c(&t+?|߰~EwbR=>w?MbAn[HR<@u[E3CLɂ~c@_c`% $ `Y=,/OUx~MiirHFYqzSY^! Q?$pi᮰Hqj2_ [~wLїӾ:5KvVӊj>"I`W]6(, ƴ+ޏ(-[la" .Fn$@#6U${"t5 PzZ#a^,:,Wpx j6]WAwv55- {]d?kT %Tc5F5נ~^a2t":$ k Twߌrqa{b<Y\AL!o_bFR;$.ͫ}NV(8ሢn/3XydIp+Hin!HO9m<wS ТxvIRÈ[6~*<0*nC~N'd irBm+x)8LO"'sȍ fdUI>ytNWg;3\ra' K @4>M瑶D4LJW"HUY콤(>. pR `H/kf+q8*ja1~EH"pO?iw\o_2<[Td.i}yC-/üIIgM)/e:r]cbyWGs-_) . 98n6j/8\og ZW - | |ǏeGw/o?wsgWZ^Q`RX$;-Oۭ@ZhZ*_iZ%Ēvۇá1h|q~jϬ/+SdwXTVM.fyT7sBc?? KSѴh)!+Xݠ/$} Ќm%iOvW%RIϵƺfVVerg6*MՌzzVB z)M^A.D5d'%^J]㝽a1|o7#ROW M>q0c,8idoE[RQm"N}ouq6ުG񼿣a쑩6iijW6>r@$| RXnZG7<.ҳD~eZ?,ˊ[;i`M)ry^;GEjwɶlQɰ{KyϞfG̳vCN`&O:c3O@Ў/Ka3N +!+?.MĉWvJ LFn p{?;jʻ|?='1 WyVx^#N>jo Mɗ// f>vs$8qPd vA.%}7"W~MV4EwZ#_sNju~BPh:輵 ln| mrja=?@M$wWxN$}sBDWXvRioΒPXk:6QA0QMw2Q'qlڽ-&XnЛcHh:I"e2i@BLǨ)KJI}~Xfk_?#g _\v1@O޶#߾ϝ͉A`^èЕss]ܙӋ [)R 9_2 #%l0I.«1 ݘ|!]VTIhl<rY#Pf9Cl<)?b Ilhf p (h@!p|DGCpZ20ꑐlƛ0SШ^dCݤT2ID̐$|C3IW{Bѳe7hJ 2ft U YSu"KokvnPV!D=;&{YaazşؖF96-Wpc8]_61]6#n8ŋ㫬e(crJ$+;{T>tQh_xpA!BPͯďg{Fa%M4i~d;KO+DjdC7 .hhZޢ%51RAv`KĴ)Ӛ-ʒRYPWĒ"닳T͠ډ1W[ !af|u%J_Dl6\ M/Ѹf2׳xRf_K(i1j/o'A˲壖;[۰klkkF!YFhޤ%nsƒ` %U2  cWsƴoV%8w%5Ϭc.upހ1i F8&bf^X=pq,"dzV0uilYeE˗qT$'h,Lx)ƍ0hVJ@obJL tJhŕ0[I9S'l[  G6Hc/,|cr.6H _ DV8!DŽn㷧.<":uAҁ g}3pB3U+ğ;%@P; x_W!%aMKգ x>bRF6TKrISՓr>4 ,鍚ox$AE|?Ηw0[wJh9/N%fIlԂC"X@+?u;KrTZUi]\Eeȭa*+YY+WQlg9 >;/{}Ϊ$iBYP=9owj-4qH فSQ1QNeI܎8Ij^ʷ`S5óuۧ2;mY *iT)mgdcn 8Z&Zq]3wqT𸞒ց_tn A|IqM.H9e`ZzkJ]4.VApKOX?p| ;ۏ\{|?UDŽc?Ԅab h8|^8~0!ٯ ݋FCpݔbP7=0ux IKQ^Bi#Fj'|0Z>(@ y%0}"]2ٜ4#W$S)Q5~2{3̪'7d|_|_RyP&C|q\t_$g l|<2㫼3B={zfc|t/ My=+N05'A" }t<1u;봜oK5˟1nXEؠoT;_Jr07,eԯrԕ^VTf@hpq/Ԍbb.}9EYy@2.T!5G3FT.b\DoG<|j =B%18D@1Gn_@nJd N1~l\~6WJlQlm A|58ˤuYJ? q%ฤl]54PI;`e^WhQnwQ>s$TǠqPQ a,$a ,fܾbh%/@i"5dg4n?kq*-֧:s-N\y+e@'#yjE0>K@VCԞHNk}._!3)L& 12$%NE8ٱ]S&UXY [rNC̱F-`#9q7\vITfx(.A/vy9~EMnlZ1ABJ|jG&Y[}{ %-bĨSr!mHP]|zAT t6(&p˰hjDʗ1'!FJ#/O:tFi ygjS/ZI4䱊&p1b*LLK<-F۳V(xM^ٯKI aԏ D]Jd#_yo" o:6B+1Rxt$4K-Z(OAڸbL[x2_cmMݥwÏ1ť?U> =fJZ;vΑ- KnKQLKF 5[fx߉'oGx=vՇ)/Ƅ/{5 x"ƕHI϶e-1Eov77@䠤ͥяxPl_'[(|;g]$D=6 7bۡs8ɴ6niyط#v;ۥ;__Y~4`VڵBϾl߰momo>%??UlE`Fe: b?6qn "o}u?ocff1-l]^1ʲ|WfUiE nU-XmV}zRy&X6AaFcf.R#hw:dWlpfy֠ ݼd$P7Ǜ޷܍,oc:o |òw彻=>߬~;O*<w oh7  Hur~RǴMq^KA8=7j_ :w\rzީ mTYn)~u00 *eyWz'yeT0$I#-+!|iB_ ͋.ʺ=omV:"LiM8P2ZP3P5feJMPQ:41c;71 RWgUR)NDx)Rlp-6r妙(l3g̋7*2լ|۵:EW+u[0*Yj">'Bhr_WmR4D]. ~ẓ/ 3<: ]``D{Dt|OUhM՗CSg[|K"2K{I_tzՔ o53Զ'kكDD4ZJq>JsR{`cW/`+RRe(_%hc)Gv) :r+Crpr`**%)΃[Aw^RxB g'l$\&$%k0GS"l!=ó HۢyE貙8*F^Nۨhfu ۊ[*,P@.7p :i7HK$D+"j/2&%tYKuD_4SۥH?ѝ@WX74.رE>El 땂Š}) k|fS "jN=eVԍVNtZ7:#:'[Nt!#B)3п"=Y83ŌW$| 7.;~,,qF/I6hNw['iA]HĸƟFciBu6 V"&nL:Aq_kVU~1=YO>:M0hFBHha7BSj<*u=>c)>;uФI4ObSrf2s>(2^\m^ ),=ȾdM=1y1('_~헮e?L^t w WUŜpVmmY ZU`+}OLIKG\C7ϼ=P.Y;+flS{l+0| &WFp|ՐںI9ۿ`WEU-+DI[0a"ԶݘSiJc""[YL/bg O<YBQ29)7`"aeEJ'z|8MrDBF%<*FQÊ)tBk`(Wr qSW tE?"3 $zbY(VˠU16xSYޓGkД:܄$^8|NhL`^aa~ƪ9 Ehl,U(.!Fn*<^LR`)ӮN 8)\d'cbP[bBM֢GaJ䄕0 &Pcc&Jdn5W%5Nv+#dW15a/׷YNCv!N(c%t'gy1ńWyLkk\rOT,Kb) 1R@jLrDW#l?cVA(zS`_id1B: zD)FUL3QY?"Bt4[ 6ߓUQ떭kf/u/?nFm8i S6F_Gɚȸ~ls>>Ybrp: w]x3\憢s?wI D>K&f9*&/Jyjbӷ$FkCݨȳOfʉZUUUf Bd7qނņUd1^=>aR)&i,rA͞5_0|V#{ϓRlە<Ǧ֮AX`lEO}ٲy'IU62hQ1אknwS1`b]n"V^VNm[xSqj& mK܀Zar[xť*]ak)tH Q$y|얌b)۸ ~_3L9 C6e6_~96, O5$ HV?E[ ]_Bo8G{-r?9a0GWwǢe(s?w~qh]o6sR.۩*''ArZ;2g*mm-%6R}Ak*[l3ϜvLDgoFo#.ۚGӭh+}d}/ٿh]*7^,|I0S)oR-mn(@8z։QGO|evg:/R>I8gL=bܝj-P/G6 g#M YLxU+$݋G,8F  d ~ix6P)fa8L:40"7:`r>f+'m cLrawNA1Os0r !)#@##AџEQQ(v?,/OCi8# y LY&idG"y8E y^oviUU柝/ǵcv k<{ݪ?{aϛ'pJm:yjC+JQQ~>kmlI[F^kuQ=9?74qR?wbY/SvZkUQyM=>wf کJSTZulޮT꧵MzeF_`ijZ8spVNj ުU;8& R>UpRUZvP q _9\p@Gݩw;5<&cdz>`'6!]CP+ uΠ|?:o {:DQ~8+1Ԛ0^=b0VATsՎY zDXYְ֨kz+ԩk D=HOYeՁuA6sxZ d2Xm:|?%_bKžid%xp*\嗭;^yު9UMeKٴ;a9s5elV/5C`6omKe者ɱgH8wS3jTJb>ma#m/ZieѠ |Hc^`(, rx' 䁝آS^q8)1`>eL/DpLM^ aEA}k/?af\)޾Uvs׫.ۻ3KߌHdGWL*FAzR gDKtpYv&ocO/7#w* kb,^uL&-Ҫ]&%p_ل,E^f؃t&"rqufޑcb !2j\Q|5ܓ\iJ;Qs}>ws}>ws}>wԧ