#!/usr/bin/env bash # # Copyright (C) 2011-2018 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=f1b7227945a85a49c366f6924989f86c # 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 #[;SȒWL(*^-@,{J%1h,$Ceod\-t -ӟقn{egOۻ{{;nOl$J}Inj\{nU՟Y+=MʬVlmoo_3MzYiM90MXQ8|$i\'SDxȩ*Gq}ް(h0`Hsՙs6q)Y#xHo8L`z͆tఐ, %,+`AZa !al"H!l^b/OL:AB`BC"`t4Z`R!FpiEۄ'f8'I&yZ0Lf]hD>C-0Azi"i'@HPtuh 3!, (['=2 |1T(ZVq;|nm'mWYw YӶ.kvAMƾf+\me>s/:fwn9VtO Pno8:ι3AN/dvn[gw>2`ʎmyܱq2byʞZ @ SMx790F B[gќ¹Q!,cE cˆ8|9DG)֐Ҕ}LSޕ)nc?D1: < $OUL6A0Ƭp v/)u1XG̰1^=Ј$UI<@Fl&qx 0:HDax B耘q*g|?i|bd 1ҰT\ \.c3>k4JCN2Lai13"ۈm0?J D6|a 'tQmcŶv߾؃<$`LotX-f'($+)2`y$Yi2ayn>Q~j0Sh*K \YdY}n,x !tuO0$7GF+`s'@PIƓe7`Cu%3t/x.hmvt~]:ކXxe28n3 IK :cC&7HN&U)~rW"HP8*8 ;4fy1gbta`ƈNzC$ \C+ hldkuvzr '7I.wOwnh8fA!9]guwͶ $y:e\5}W$3wp WjL-/g &L$!e֠Li ڌgz628XZپmsy6 D( = @R@de1 ɐDN B]RuVsKu+.+ָ;~X~[[c'Rl{s(+W 1*H4dK3M,(fI'+vVhxYŚek ѽa0nDK+&ҌFVO02]7VIK LBͮˇ@Qč݄4xv-#a"I3%A Fg|3O0ZjփlX˜˟'QE3HA|MN.ίLdŸ:SA5'ߟֺ Y݊1$RXah)kY7TiCUSSr::7ӳ,1F25pU/mu<ҽm6ƚ} he1~v&[\:ZQcBx u1Fs\~*Ce#?UPȠ<ȝR0B`}o w)U_(,̭l#pKAS Q"}]q4kE6ł9] mZT+sksʚ̈UW@Oʾ%k3A5l5F%"R,[\egzÛ`q4}&*X!+ pCiM1mi> TjA ԅefamQln JT W:,}ufƑ\8.T& mQ$T + Dph&IηDjx+7 0bI3E0 M #,eݣ aNH#Gfp`!~CTLTE "K$+a%6yCZ@ºOH+۬^}\|Ud= ($U% p^ֳpAf5JRKAi[0C@:cqH{kyuD.m~߼1S4k6H`,%y e¤n;4'RĿ^MC)[Ƅܾ/N'60"~a6%SJH3K)H4ҽo2 LNd˙s2(I0²$H $ʕO֑`隹hz9 9n@G0Pk7䡆ح*k6(`T^QF9v;oh2ň:S C?6ym;T՟<9uS1wm?g[ثN ֽ)웍+cCtG14lwzpڄE^XG>Q8 &x0un>+U4Q?k` ݩ-G2{pdۮжoXwmxtgqANM~ʎ}xn}TrDEMDr-{%alJ$~1fe1aPt-WomaDm+;<*@ rq1bùĝBby#w<^,6֜o%.`pPm dsM99܂pmZCrTu:Vd}L: 5En]rΙ4"Z%yN@Y%.J\-ɗ/$Ve> qV8,ڌDP"uCIN!{"r6dY LOTa|!Pǯ@0M7ᆜS_/$?,a$n.c0l]^}}>u+.R*5uPΒMP}Xw6q]^{TQLK>.Нd Y֑F,x=H  KEC8S4ŋ+—*9E`i0%k?Y<ͳa8R.S:"sU9^̧ m.6"mXdKF¹(t>^}Z.j 1ߧsۓuUpVaSAeG)c8C-&JK7)S> 5eBv`:;SzRvhhJԸ]_YR4-3 0Am7۶!,)x1* iMm{_x5sNbMK=J{.֚Bl`W03Rb[(a+u4h'1nE<̵^d%g`O\=KȬ́ˤeP1#^d~q ѣꐾB^GKSt]Z1 ExX(_"Ut'/:ˆ)iL,$Kvs`,y-Ura-]L4pdlAJoP #o-ܞ:X}of-S .`?&l{"9B97}&csMoztue^!FRМU}|ykj. QY++h4ex_eJ}W݉uHh>JTYzA@ѠeWj .`W^6#=#-O> oSecd0ǂ+sV:1< h ")%ΝhŤ EsЕھ&۸7oO%}1 +< =vޞ'Y5SSps*NQ^Д !>JQ_ְP3mZ=y/k-|-b߻BMߦ4lN0Ogig7 ֐}zljlh+gܟP_($$a&b7<7.[ 'P"V4p2~`}S:)؋xr%Y &;x#7ylÔpLJ5's'@A^u|K\:VЂdPҵ2\s*W[yah Ut?tB_Gi C@D;NK˫${#P2^I+ ^ucAafL"&!w=}ߴ={3}ñqwا.pn[Oc&\ԯh-5^2]Oȷ;"զ'v,f]aUV%3qMݿrL',:jV LnCb.s#`0K.pTBO:hⱆmb ;fjpˮ<_ͫI&DAc?K?7ׂ4!X` 2cu쌸XafAS{kle49D>e%nzmEtHc- 5O};U/u F"9_\Rs*Zٱq:5 T]av@K߹5K c.-KCԂLJǘ1l$mkA 9]ГJa,q1`k /4X/~3k< CDD<4tZd#{̀Rd0&L4 kFjCk2$$6(v <_<^2@g25}c}PQgb.T*iq}tvxjPqe䦮/16@33X!j;!EpAV'[bDzըEPMy'*D8;;c@1T=V2 hT75{|Z,c$]162;7SqK,qxxCwD0ybҼ !;᱀l :lV+dQe^˷̪PHMeM4Q\qiGB{7=94^fIUT66zovBlMC8^qѧ-*T,[ҝ1>zʵOU+lG]Q<Ld V7V"3UUI*73ا:Q[k"9E*ag?ӒPՠS?}V?Gב__+3 gg?_#<Aa(Sxx@Q :˷1A٫OԻ|h@P ;;ud/v";;wM(-T L%ȊHI&W;89>I(V /؃wh/a \Zwa]$sr`)no׎|H$t}\u&$D r',GE%VXs܊4 {oC֓reo [ͽUoO˭YIoA=wufحËI9BKgoGpB.v8ЦU+n{Cܭ]lS}5C=mSj}Xh/(Rk W^s^T;>!TM{eApP{h;H ,xpX/VO{~}WO.$KowXuZ Nӧ1'@$3,5Ӟ]" DeLQq;ZBsNOB(Ѥ G6uC4X'7ųa8Y_Ƨ R ada :t<%>C>4)][0f%BMQ\;`js1|ђZ(qbS)DTWAe.zRJ@+%aXp`),czCV3pT cUM>Kr eVGcǔ3]J%M>i7SYLi2M@ 4Y,ojG+-3J6p!=$hN9M PŇr#cڰ6O](R籄q (m$S嚦h*c<@> Np QÀlsTED9VVnc!2"DaY /7r>ٳK5S7*X0rO8GBG,sTڛ3f'QB)Kg] cqZ%I#l0q.Xϊ,]۪1$F l&G-L[XKlKK |U"#jf vl5= GN(q ROsuZsCę&M( 54_KP 6Pq NvA5$/?è_VY@".>qӒ=\y;0Ok-צ'I@@\&am/z}Rr6v5!06,~m=sd5wDitp材e&¿3J5go"RMk Zc*ɗEZ BlĆUL5U,wkϰ~IwBlNF=pF1ٖJg˺|Ir]qԧИ<UZǨS34ePr]rs8ob gG"€3*`@XYfy(-?]O]E8^-*XV Hm{'<O%F#%ѕL@e$RDYD- n 'CrVaD'V[2G  1R0q#j?OaS`v~pF.F㉖u+1b0R^Sp0c2p9=3a_)%}%0|5{dZ"xF}X`FKVsc];CDž:యVa1[-<^/"|M_#5N'sN 9brKѸ-sˌkJ͏艉"FMh <9lgw@Y JWkY PSJ.?Dp8xC㺓֛DM_gۨS'l *Ө]盘~ NXU4mhT P->`x&ɦ;0ݚW!ɏ>VcPpL%QfHՂX [6 ,gI%%IP0^^>Xjj1sR sSA_b䦖ay[4b9j\K, Oc+YWd+YxB̵]B, ʂXQi%URTcnzXљVA5Dv+eGiu4յem}=;3;3mm"$$`ؼi n|^h8=V26NrWQoҥgs0+Tpz 8E^K֫vzTXW'#I؝bwX8ڍ,DWE~oN8~bZ!^;g% H wy\U } ]~nSҏA"Y?[8!`7&~}q7'؝7!u=H3Bq.s?"܂ -~rNfTp׉ \y#( Yk^ly<lj*?Ts-En2Xyq'L [*-A+zg߿r.Kݟh`q.xm5HșӏI㮸̝÷sքoMւoH%Nۍ+*(BO=/J_@;812yGh`KLD<@*Ĕi(DFh!(LEq7-f@gI+Ţnߢ/6]CWJfjҷ*aF2f;SÄ>ԴqL$H4 Jj2ٝL6y޺W_K(HrKZ痷CW@!kQĹqLakʒH36scv[5 _W `șxh^|&X.Qq(*䤙 {Z'7 |<3{{FFrQx಼)78Ʒ8EJ['_}jY:U8F`V4h5s/(T!_Ѽ(]VwϋrL2O?'dLpALk5.T(;l980ᐮz$ ?"4Oj՝'P,,MR;Y(Ũ{(Ql? dI; YH^==:&Šnezp7:*(5rLOGJ{j!8%hb]+dkH>m Z!qR ?TNCدjLicz7x8ىWe)@(w O+=kߑ!%#$C!?ڎ/rI~JHEDjr5b$WN܌TcOskJ|!aHTu4v]T_ݹTڬvDv1fðq1"uVo^H ck{ "X-a+W^bn2z@<Ƅa TazG'(ܦv- dj;>q,(Fz!M׻5hC#(yHI(V hV^!:ISgΔ;?6-a4וM< i!tyuÀ \uQ2wZKfg/"-iLN9y)37WO_y fߒ7rik ,P%L#OZJFOTӿ1Z  G GpKU9b+ m\k#u$2h#Jݻ΢@ |%I4ʥ nw`v7%'m嬢vslAD& .RQ]A.Y@y9HB [|OP͖2z8EXN@qw9Z-j<E{6ͪpxI sA\xFbF S@QI8f,-$ r]^sMYݥg"h "PZ6XէUտWt1X)A"珜A[}*X *(lB;[6XZ2'poAU^u+yr5XC:Շ{ۧ5 m1V6J,af2V4l9 =tFJiH ݵL4U{A6; B̳y^tĭ"ԘBE\V@ ْ-ZcdNJ#X2pDMZ&קoG`vaio ~")D.GdHCStmpu{k0ESnacaF"b#bk߭HEu]–M!Ά 5w4vcXN:N{ѭAGqbq'p\moq8Ouqщ+J@K73lSA9YІ Bs nv5X' ) ?{fӓL<Ʀrxc & BT|Lu*uzOE AUDۀ<,%gmlYC+BMk1-d*vᤧEޠ̩cE 7muv "$#D}Tqh*VDjCOX5]dOӯ0Rt[Q|JzFJp:qM)O<[=U64N'jKh*K*(ȉh~JO'ΈaSߜb,] H9c2 ppYeՓOu_s92bECݨStup>qAac񨒁ܴp= fkVh<"ʝAUHn#QrPƈN h0wRXnplB? 4@/(4KJPO.0r[hZm1Oc6:ɗ5eK2.ԂRId:#A`* O8wÝR5 Ra=L*ywo1]wR,x>)R'QbT)P.],l([Y *{ok}\?1{m;_./㶌%g ~1o~oH Ż(hj! -nMQ˔o.ߡQ79մ$'Yzم ;K9WV XAHqnRb{o!kG6=oVde|uulx|Dvd)+nMXأ7:p1hsTnDLLCDo8$!@Gʄ\$q[-2Z,*&5 5$%UnW.ye[*Y=u]NWWK糠 )sk >ZgJ!uK>IT݈8S6طnLw'a9! kɂxSN,KlXΛ'; J\XMspO٠bBICxLD$JM }>$'Nv?2s?_iSGb=tg|S$av͘:ك[6)>S-UTdc9ȈLG+0%c!h).<j j0$+ŶI4 quVJkC)`̐rR*(ۯSwD4E(h dDg&o$hGnwq1y݆]րvqGsPZȴ VH" 'ږ'+&;"dԐ=`^^*ɖaq \Pz(4vzV0B%th˾? &`BVSf18@ןW2wf'23K ,2K`fp< oV'x˗X-4oX -{x.?Z(Ԁnm bm tnpٿVt'%s\G.eo |"DRK7ZYh<96B^CPT; A1h DU$ZREEk+hYhv`:!IHλm]dJ/!p')ca [ Zʬ5hy}heRD1-af%=x=;q'eHhH]U09쯷l W!F:O'ɢ@w{5Q;$J$=7ѷ~& ^bNےj` /ALMQ,K,dK4n IiX Z 0ٓ=Lll]N_%F\( h13B,vj,jB8S>u4^'.ha'!~φ9߃Iۄvxة3TWɂs$M*0O*(#X 6groN}VTeTtFTn1Iy^M~".|7][ J]AZ@b3 "ሧC oh'0NK^D giXθ_}~8;Ayd077iМO6ZpLn5E[&^]9Ή,6:2OɩyPܘ\4e;Xa.+Aul@߆<$w )hfThp #&ϩf2k3Yհyf3 ]uzr3f}ˁOm _^e]6`y6H[!ʇ<:x{a%JGޫzDÊf&8 q }*)gK+47j`Xl ߄jZE͢]h-6Kб˦Q;f4 Y=z:$t/i\XV|Wf]FH/Bֹ2H! aD2aLMĥ"&R0$O3?ѰsOc[m uuA@{HFV&6FsFE`"O-\ b9=D1Fӷy8ޯAS;ȳK 4z0X$aN%R݊f݉TӔ!b.Z GhJENp0>a?0ȇ,7H ZsbbF><#h4Ae)8::v.݆ HήC(Yx6@\m8Z=!~Yj,-ʜFUr8vW0WvØߓz˘ʧa[rNu)2MNN g]6& soKM<`Ttɽc yƹ_ZO=~ $! cчcOGciF*HD5zv7 -luK_`'u)9>OObx˲8#HP"o\`5jҧǔFO klǰ-]}:WWˎoy"73737Eð &*Cs-ƨFl" `_Q%mx$xv'!%m8HcRRcvKEz [*z|axOsZX$xX;NU|toJW7SXqrCSCRS68&]CĂ6-嶀;-[l W N Z%T N R)SW("P$c߁CCw3}mWOu~wy%xy!8; g|j`&C1`tjޜ 6iUX43 g& MK7|[d4/>le|,[d̟ 0|yNz22s-vwNjE{sHכvq"Sn>01 7^n 6Ӝ7gq}^۝w-6kgy=9lĐ䦌AwTՎħ%ڸ u.-a_c?v^Y쿾'2+2+쿾#~ +/f3 k4G:m`cL8-Ky=B1߫A1ƃ,Q*N}G '.YIe0R*YB)n"Q “܃.CBnma9 |V=l"(j%xTJ.˄ %vHS(zU~YDq:9p])]lTM]=xUX_5'+12"ܭ V9M#G7mdt5"?ea'Պ6ʧXJH!2o;c <=<~{Go 0̿VL5G+aG5ZrO$R N="ؤ,H\v4%29W;Q/X_[: yp#Po@PZ@Jdh c"phtpSyIF%P>eWL0_l͝fItoN Mx.9o]i-\_QYFߥK8"əx7_%j.j7[eD*=5(Pe, ΨWe4WXo{0pȱ|,a4#KҮ r%sS9g\5'3Fܖa/R XnAۆ+ twpvxwxtu^ε!wĶN}K8 m3eHꆂӑh'h3V$BEnA3a})EmfD"9+X\"b4E@mXzE2#Z{ȃ£:9Ʒ7@E*;@u˄CƠk<59i]q 6 @ ٸɴs͇͜2X>Lpp6vؚc=~?OCtr/ X$lLp^1p8)Õ$M)P^o0hh_(@+F%nn+wE#Fd1bVW |Xd?֫'B|*q,eViH \.P(sYd_AR~$4y Ϟ5h6onZNa]ƺ(|a\ۿ XR5FnF[(نB55UFVgb_BY IZ*Q@+f(7Xټ 6sƠCy\B Nv;XH#඾`,VM#K3?L" X}҃8iãځ[ q<b[F#So20ɓO̵A1q~2xm(Nԕ8w :X9:{=/!1lhklnE_`2aENoX_%^Z0G%+Ѱ0/p=-sSQ]4-Ӧ֨4va f *@.$aޭC6r[6v S?$m}G4#:W+kwu%M>^kP14OjjV\}5 K*h!)J7݆k2nK KY)3|tyHngi {wUτ疆I 0|?}:A],mC,Oo}d.ځl"μwX?)[Ѱuy-!f-N(`2r4n.h,J@kԼׯsELa7X^ @5јy4bC.5Ҹ;Y((-Kn+;GLz:󵲋[Y/gdGdGd:ӇBxш] *o~@byFE4(e^W÷'u2/+d1UqpS h FJ>ܭYl MWP_OOO4"RY4^f߭h_Bcwuy|MhGj}e%Jށ;dFGԕ$NZINIdMrue! G (KEZ6Nz?:Qs, *gcBRU4q>SU%^UŪJBUFN/c*eG77xΨtt4l-^,ԂEd _y{{\K{AOpwPNSfXkB`C0%L6=ˠzࣁbd:~t9r'ň|G#(/1J]cq,C~Ubpm|&K?Yer ԻX m@%L{qJܭhs0ϋ}>˶f͘=c KsKfS8lu\*VT*^{~oV11rc/)Ӝ s?D>]- /Nr}d"|0iaSt7@S@h͙Bk=탾 _'H"$ Aȧ]CR   7Lqmn1r#?O3o;:$a'2~ݼ5A㲁|RƖq'Q4غ4  ϖBqP6U0#9!T;Q̃vM#5|V i,FJ$aFH)B=1% Zl ZR ~zzq{5H:8o`E7cd fB7h.Et5| =Ew,d+ҫI86 ;À*IӾ:'{oA>Qe@Hc[ n,43q2H;^*=PܰÎǡ¾NѺJ޹z=:OԆyuD=IE،RDk\ M)Gj=}Hu׳N v=+ 5ȬECt;[EQ*j.0\z= [ѨY2[C,`_}[ 'b1K܃ [@ƇX&l4>*dbĩՃ " %cJF("!Hc+xi oj_F[ZVga5.vM¿o$3N{ KY 4M[%f1y9/ @>m$!H!"AhB5fa?%)9>9Kl6CP[ N<#8 0)s6XDDO}'➋'-¼,hGp6Xt=<G wi+,4hs%cbPj=LՌD7M1k#>2S(@1#?8GI*Qb wB hl4"xJ@%͡pN9/Y h7CIIIomp<%#jb<jp#Ō `0]%?eǂ&"x.& CÅ.vQ9h#bdtUVD8{oߜՃѤyEGpa M45XUKt@kgZbo@BC&W67s@m$Tr"r %qG4 5uы@YLP~wn bW ~Z҈ 1'})-cO)@z6W'y$nXW 8Cz(d d.'N,;IXlzrm!Ol|m"=(G4AmXmBҘAn1?hHD=-dn"s0:Kȟ kCK;Y+œFtvhQUON=x/ 9d|tאXrؙ{t&8:A.02S :7"Pf{4'b A TBD*V6s0֟Ss@Iّޯ~y{Bw pPݨ ¼7:B%…r~4&b޿tT6(9$buDOɬk)xӾ(V4Z嫤l@D]H`tIJ\=5t%_pOղeWܣa[6jvXC䐺bpgxO7O^\58sA)6xo.zRMlx]fڦhBiȆ`7E' 2E&5zZI&0)}=Tt#qa+VճRH9M2)Je$[' |BR_ ] ͑k#E'\_="n 2QG;^IZeiɚ3 e\k.RGa{0-MS< ?ʋ Fr94J_<|'˓p[z7r6y7ѻǻ!KIGJj\2c;<جGpvx<ۂO闺9<}/1\>Grpx8 Oɽ{7<}$熧Q\>gql",EA>@ B=%>\1/~i>INc߻h_;'{@p~  1lQgM$;~6<>|gSdi\>?6¡_ Ar+YM:̀C`ߖ`X`u.'D_g{̋{æBJv _Z>:,Nz(|0S)V0eEi:,Oz*zU;goL)%a,{s:1΀y]K'Mhfo,co lz9v?Lo͕K+sܞPҲQH] u (Vw>l-c6.+^>'d}O>'d}O>'d>vϾ0