#!/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=78bddb3c821dec09977972ef856bc56f # 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 wZ;ksʒ bs%qnűo0ȶ`"޽augsowC#!VmR H3====?[o_{/`[&Q3OR?fErAUK?Tahv7)Z5_e4gQA4md4a1Ox|G*Qqp5G@OGlpLY!`laRg߂E1F(C M.Czd} lMGJ  ybl@Z¢i4I}WvIƦQ y M%DÉ93 D@Q;.Pl`DZ?M/],A4F`YVj+ТeLrGM^iI),-fF$w~|{1׿ @ߨȆ`:ޠ81#$$N01ݳ vڛ=xHFOmmlo1;E$ _TgH3ȀE'ɂgH S%3PDTYbʒ'$Sei鲴Uϐ0g̀yRf@,93y=9k.H珧̀yfҝ'΀y2g\HŶhaʼn2ȁ'7 FOqHCל5! 4||)݀Ol Phh(nb0c lVv15nV+7~n! 92ZI#>J:0,k ,)$EY{tA;VmCl65Nj(!qIp='O^f0y@r2JԿ*A Uိg7,ϋWՊх9[v#:1c_oµ6DpDOu zqnxw:?J% &#<?1~WohQѱ{J{]迫`#'|a$ Dp gk%tq qa=O c. P,½cG,xM·'!t?AJ2 ~ǘHnMK~fDDkWKr|Z:$h`$E֫ Sszz:hCmbБ-J" !,$'01/%ϟR6`h`QcM8,K`x`"2NM݁@r n,&k kaN) M6x8̇ Пy~Rdz,_[$Ub8œ+4d֏vn7E R:!sR$euՇЗ 'R1Q1/~\fڋcN6-,Ұ@ GZf-òT泇ب"Ln@% ^5^R @ We= dF[DIiA.П $1?=a 1=}i@y9YJrY܎Hk3E!mRR&L6ӋKsB.|O;Q?eL{-tOzb#f_24zH,:H9'\Ο#,K@\+i Ix~a d?V {CjX*fS\ ^1OeetAxj&Sȭ3E?cޱ3@U%SOS_=sGSpfU/J,Bhݛ¾ٸ;V1DW)0 qCPNh: ' g\W$/F#ޠ͇xzIJz&Cg !;%#Qvl}} Ϟ,4uOqݷO]-Oz׹?iL%Gl]NDHkOt-ײRƦDNrGlcVLrlnA~ Y@ B{-G#0{x_j@Y($}l=.7rq˃b3 [ nP!ۚ L9ה-Ѧ5*K%XoAʤ ]Z%YN#UG4^OBޓ|AaUoa0:ʢhK %RQG/?;dR'2 gcN$Jgu sktn9%-5_KU՛۳*#VKerH|Τ;[ #2ț4_@C4bUY kYbI(w*|HMQ1LKj򈴧!'@A=-]ΗvڳXh.-<+ѲPLM,k Be˲ϣwZ-_H jfCQl e:;{Fm4!ws$`ڭHP܋? a{u[}9s!{ *&~?xC̏".=x]Avi{K^k0cr9qEВ RD DEG<]8%myZZrX?n̒e5e`Xn,۝uɘn̗-H *!u䍰3[ͬe߃Es Ǥ_M5y/P$'rW(/dl.^)-Tu"6Lً HC \ݶ/OquYͥ! 3ke-B SXڣ{bQjW;ɠ_G *K/84StJ\7|…,US0evg4RԑDm6\lM@okϨ>\O"[c7XZaXG854zެgK\ikf***ȴF';.Uȑb' \jtzpld8A<'q ]կc3_> (o.9)}BvPcY+/mkֽ__Q0-pxtqr5oks* ;=;<zL~ H~eΪ3Cg#f<~mV8%~߾0warRDzQbd0C/dG`dFnS7kfjjnNʼn:*R"6G)*v9jTj5Oe-o?WSP̶!9ܒ{ooOۄAiY4 솼!WOLmm%|S $lsXwfRۥ|˗y]Ċ~.8_LYzj^]Y72ES{QV YQD; s1dwca$R|3omznWi5D}(ۯq)3KǠlݓ Zл=J[kNk{+W2^0ʕn_H׽7w xhhibydzo_&k]2pPwNP0Rp ?`#L\s鐐V7~_1d74gco8@C".<@Z-Uai4Zd uY^ Pvg^.ҬK1ʪ~&)VyYEQ-l"mH̥n `I~2NwJIM<ְM sg#wlB .۟b+/փ{zܽ!)QX/RM6MV"A,qd5;#nVlc+0Ԟ@0%[q a:,R1f4jFvvzsxPBjF9;~W=pТ B:ؚz9 ֋0/Fͽ&Fs3 `0@3: "`<QH9Mct?]!O׾aĿ#`MO>$a!ܯy|p9g$*kee6K"s*}Eɏ&}O8N( Z4>a°PCE0$_eOՁ=1䉗. !NڊȄ1+l2"PS# #ߕ.珖ԪHFnjǧVJ$R*kTOtӐRzRZhP%+ fB(:;` Je0F\t#$nhPa8L?3O8]ź+_]~_Z͔"%@7dLi2M@7J uLch EFi@vT63e,{}h. T y,E\+ /#E{Hi;}T0E*OBk`;0 ۜ %a.F];$)AXȰL;pEV\GEԍ?!˜$ITsP YWX@g>"~*BI҈<$`q ֳ(nqe^໸u@%!"H$necYfNk];٧[5$>uHmdȶ>i uni=bqao}J2rDͬ1A0rЎArs E4ncAiNkn8Ӥ}"Eנt y (T88aɮ#HW}v˪79 6B'nZr°C41/pGp&Uiͱ`xx@(" ˤ|/BOR[&QF"9$D:/ͦg-~?h:NNҠ$SwFT$BiMYk sZE7;"ֱH+t\hjnm_)22NȀx]Òۺ\3&R)&_R|W:.*4&OFrr1* Mٱ>F3ܳy܆7>l$5G>ߧL m(,َ1Vxa}H]Fv4BxN^pZ-l$z) GAh'@gRbVBao A_3OW/vW}` VUrx ijZѐo `x-P8Fշ*7nQSB0AXBIVaqU6,z&v>ӒH'B Gjy^v}wf#jQcmïwi:_һ%%:1>QWtt-]lZ ۥa,'I6RZU؅$IݕѣF:;9cgc5Cm4LbH ,aexeXLa:(T(X Zqžs/>[ JKۂ=^q2e⎺Mr S<>,7#%]1~BFpS0TxdɦΓ׹?r'MᇈFh1%h\۹eFJ5B%FGDM`#c&\46۳;,KPb„E(j)i%yZ8ࡊqM"&M3mTۉ6iMW ?ex'*_LGCwⶏ^S4*yu1GXjb1sR sA_b&ay[4b9&j\K, O}+Y Wd+YxB̵]B, ʂXQi%URTcnzXVA5Dv+eGi]v$յ+.ˋ[|2;3;3￶2CwA:nM7Ek{bXa'}y%81\6R;vX-_*|U^UOv7wfeu5l2Ě)}N~/(U)'^??OU^xV=`~A??O*?o;kj[?HA?'7u{ 3',4ďg&7dg a( .@օ`py_[\7 Y9oQm G\;*ȇ3占DX0gqs 'Z; htP.[3g8 _@eRbyma$^;8+D*?n[xHFwBb!X(WV}9 |o ֠oMTⴝx""TQCRU#wD[zL5H@B]ql1l PƁBdfT{B`t晴\,6 -bSЅˊ0tުdjJ4}KYݯj$)m3!²neٺp*05rLOGJ{j!8%hbT(dH>!qZ ?TBدϫLiaz7x8юWUظ(Gz飜 v'{9IneGO/UE"UnT!̆$3 7HtcV׈ :r/]2b.ސ(o#']"*p@&)#rbXx.Q*5(TX Q`Nc0E`GpbaPZ'\:%eeLp)oRp3/SD0 %!e(4j3?ޗ^|mf{vp(_-RBnzi z,.(3|L=38m|, b_N&8{KwX"x?x{kyfG7/¥e(bt%W/L6t,BAۍ}?n|eVeKzE."cLةXHXdOIba¤œ䷖4u$n4[ "}PLOݗo9yg7V6*TG G0vޜn䷧cg?{)O]qVE3=r5+9$7_ǐ1wMuTr-6 >)(w O+=kߑ%#",C!?/rI~JHEDjXr5b$WN܌TcOskJ|!aHTu4v]T_ݹTڬvDdv1aðwy9$uVo^H cv{[?VE+0h= ohcBYzzZ!y0[|rvjNnſvY TTNK8dRaNH}zt^Lj=U݇Ck[漭$B +Pfci8h q+E@eh\)y@sgʊVȖ0akqδKPa@seU;EӗaMX ؏дx&h~żۙFkSoIlH('-r'*fp]/'#NwyVÂD8ɥתjo4:.@ xgQFunEE rfbCÿo.znZmX帺MI[y9YG!Qɂ ?tTl|K#Dw^hR|V5TNd6roN/q8:VZ0A"@Mj))^\&Qq)|7GT)Ϋb( 7o ɂܿa(|)|gV,9awYH) Vi=7{w@^Z#fF3"E#HfgXceqB@.kq};=cl)7`0apy *PHŚ[+>Z'T0TN x|RrxƖ5qEiM;,8]n3w@3ԓuq䦭Ү3T^B]==LGuEOikkO:,MO 1ĉY+LD<= #Ewں {xYƧg'S/+Ԛ۩ijѓXekCSdRb21ȼ8ލxDx /IE+K lW)' y9~ g$ YjAPH5 рʠB(An!!"?5%3`\>Rp k XeǕ(}pDw.ђknudPs7:DXee/ BS$5foV,hX)`;OXSȉ'mQ 6?{y֫b9CD-$Ä @a'{쯤Ձ֌YcoV 8CBXԀӣ F̚JsZcJDZ`'WL,Z;~J{Α/F§H( s[ԍG 䦅c9L5[WG yW Ҏ_BrBZ4FtvZFM’tÕ܀[d NPG|&Y%zA _Vzrއ+DBj[Q~2V^ H-L^ivY̐yu'VH eJ+Ð2ipK0!L:$ SY]Q+nd(=p$^}B äzG]UR{g-J‹c*u%F2`Ųf+5ߢ2%}:嵗qr->i7ssf^oyf^osmFmhrv܀krfªK/m@ \HJd)4K~57*@9!uğ,xUP iBqȗ(unZe@X=T K{u3C.+J+e,V LK"Huxnp0Fh1 E 3#-/oHz|2vy o$Q%.eHSd@*=SO7_D-Sri2#|F Wg!(OegZ), ~]'[[jhc!ˇG(nĹI r8 )nR^?(񖅗K!նّ'x[N6ac/B^oÅKqS11 B,n)rDoʤj,א T:n䅗-5fmNM;]D_p>ʟσlu'NؿΔ:B<})~qmp/o.OrBA֒43"X67oOw.'<y6FbA{t-("4&;SJl?r~5MAS͞b{5T 1Ouf3xĴZs؍^w8  !'L!; =%0c:Q` `[29sc"chDG<5c2d7o٤XNWSݒqC#2U"lԖQ㦸\Xi/˳SZfz'!4Yu+ e3C&eK}XL<^lNe#`G }E7!ɟ)Ձ ޿( lv v;Xڝyy@i!"6X= 0hYl'숴QC{Q.zg[^_ō7pBe m EZVkЁ~C/K(v0O|w-/1R?ZM}\յeW/3#?@Yd%@f YdSmy>[䀧蘔Jl p~S @b3 "ሧC ni'0NK^D giXθwPy~8?Byd077IМOԛpDn E[&^]9Ή,6:2τɩyP\_4e;Xa.+Aul@<$w )hfThp #&ϩf2mSYհyb3 ]urr3f}ˁOm} _^e|]ayI[!ʇ q }*)K+47j`Xl ߄jZE֍]h-6Kб˦Qf4 Y=z:$t/i_R|Wf]BH/Bֹ6H! aD2aLMĥ"&R0$O3?Ѡ@c;m uuAΞ@{HFV46zcBE_,O-\ b9=Dڻ1ۓ<[ G׻$)fvQt%F ,0s)nEDyԊO*iJJ1-b#Z4fĢ'8G0 zC`( -9 1ҺpFak8#tjBnCPd|gWɡh,_ 6`T]5eNyh*C +~aNaLIeL{pӰ- &W'|3.`9ѷʋ0*|1g,,/jo h{q::qGe )/XuԘ& qmQ=$E5_X;G{ʲAz"HNp[VC| d>>JW7SXqr}CSCR68uCĂ6-嶀;+,[l W nj%VN vouNĹ-\ꢽ%V=^2l1E'90zaH΁;2)gYbh9LcH;StTa<(N)nK̏-q| 1ydIC {8_n/cUːBa4 ~~ _2ߐQIaɈ鸰۔dg6'ķ\]`}-SZ 4b[aVTk໮1cd65G:AsfF€|!P*tLXـ+ "ehK0CpvϦm9[ItEj\ Pypm- vZKu ]:R$%)5'I-VZO*RN[T*&M+V;("Q$9ͳ U`D?jJJ]ش̹r3msh2_]vg \vPɦPJW 0:5&|XƺS|x>LHc)+e1oߡ!Y;Й>vO*gFӯk4ZAD>5^!?m[:5oN4*{R,){3`&㥛l>-Gx26n>Se msDX'=rIT[iIE?r;ŢL׽9Eύ 4)7xqsOc/feiěӸ>Sλ5_ֵ Nrv6 bHrSFV ;f*XjGm܅o?ڰ/1;V\^\_[쿾'2+2+쿾#~ +/f3 7':&m`cL8-Ky3F1߫~>ƒ,Q*nsO '..XIe0\*gYB)n"Q̣.CBnma9 |Z9l"(J;x.9o]i-\_QYFVV LBuU5-U2"R2g+2]f+xяzwhC 8B>0%@giWjYmeTi#rn˿LKaR [DŠiJ:;GQp':Z/gZi;qrb[ >% P$uBMGeuetf@!ҠllMۂ6o3",^.1VXRV"{ 6, "C Mއ'I㛃[ Cle!G_5Mbk@4O>f؏ G{ldZpĹvCY,k8hI@P;'lMM_Ý ?GퟣQ Hi:9`,w~o0TF{alS?P8ĔJ(/`ѷBYe44/h 7sy1+a# >`2ǵkY>32xI+4$s.Y(,k_AR~ 4yq#??kl26̻uQB='ø~A=W_kҍcÍ&PjjV/4ľ:_u"0%.?c"I>j\$H8t?DUiκ t&pAb,rWiMpNN\vPi]eB6Se3t-hM} ^D@TZA`]bI rAø[9mto$f0l*~H?<1|叴=D(ju..jy%e75(|WՃjV-.Ň`c\oxOg%N5Q%\)ſ;s|tuHnwn]{wuϘťq̟| 0|߿}:a],@,Oomd.;E*fw !X gt nop]QrpEPM4F%҇KtݽوCY(?St,60(XF IjŽ_\=mA.Q8B :2q/mKÇ6AR#(:PX=|41?H/ʱ}5'?2#?2#>ƒ`ЏZ Py+C0*:Ay=,Z=9Qo.W~{MS9Uy݀!, bDrEȖ-}젬O T*B-+ rW5Kh./ -]U_Yww`Q)ZrNd}=9ɚ(BVpQ{u890jGx* =ezIU@ąOU+VD!Xed2V2PFkx{G)ጚO]OⅮB-hQDu ǰɵ[ .ƬGWCw"^|te=_,D%a=R87Yu / 76gU!w~ BaPoHY´מTOa݊1S<#ߟNl{{l֌32dF=HV]'urkriW+f5^.o-'1>R=٭?8lj|c>JsBh$Ǔ%FSSL lx*;@ :zK$^_Il.1X 꺬PUC;ǵesbQ[l k[{+ ]fQuX쉜o7FRj-]iU=e,YAKejwuwY|@&Q:j;4:3ܱ&c,|0iaStu@S@h͙ u "c:nڏvHLz[<Ƅjf|A / 4l^X]q/W27dL3o7f߯ҽjEuunK vVnЏ=H1T/z^~aGHR] P,ȏ% b~B q׈&v1&p6B>=Z/Ӑfh7E`(N8]8 e>'h#w|q7M!՘;u Wu o0{=օI@`xtkڀ >*cDΗ 8n{EZvS5`q)I쫇2_1fX#_ Ą 2heE.hI(hM UB؋b IPqRw݀(Ua G/ɋ @Kf$1wo' Pv&j?l9p G*k!m)(lŲlZ8tf#x9cDCq;*z:->A+&{YD>QY$a3Jsq+76KoBv$d!׭_O6;hRr&לF2"M 9lL@F`2湜jq{p6adpX]\L?fI9{0ak7zp=^G%:@80@QS:zPAZTװ7uDWE$i!6tl/-psaA4MhKK>{ފYSs9XŢsNI7d)ra) UIp9d,f3o6!ۣM]8I=$T> S&,":E>'gf@?0A щq@\r!&9 C tXsIWe^&Ǖ$V-vE~6Wb1ոcXxlOt̍:.ƘzzPϟA1#s;% :*ޙ#}%Vp矎.4 Ɩ*O#D| Yrz7Asѫ6y0:(<<lP2a((S)P`?[pT uQCY,8j  Y'{t1.wv D" q_ Ǎk-< hhe6$H6 VՂ{FQeQ)M,`up╱TkCrbTUzxlFNB=bkHc7?n]!>s0˃0L?]?8*gj>`>6Nkk&΍Og 8OkтE]# FV$RPxP80sJpHl[o=!wZ?1BfIHg[[}6U^Mt;tx36O=4/peW*#``.bLX! fL,¸xj ^ @J!9q/QwI ɢYNAlu4W$K 6F̆+@Ի9`^b0AM)ӏqS$7%9VAP 55B1'm<hJDoۭ? RR&E)NLCTQەM!F4g?د?U ID"'戹{ҹrFi c!@vDwœ7B}:B|%ċW{Ay%DCf(7-oZWWp]XBPh!Pb"ot_Z2fE"%'kqߣw,^JPX/Kz~޹-a>U˖]6$öLlX/7X;찐F!ue" n%nr;컠`2k@b D{FvLY"-o^MSn Q]]!~420"gwDʓ&j ^ÉOwsi(Rk%!VxäТ&QXy5V%|,։J$qd+yc`TlE03$ГT]|BB}7tB`( 76G੮:x՞(.ܭE-HL5;p٧~N޽ *O2_tYgT2Yڧ%<Ϗ~0x痃;'aԌnv{37VH-5fAoV#X ~8? YY>-@h|~DʝI* @yi A2$<ׂŸ ?3KIX3 Q3¶s-FF!oz؏5,3Z ;:A痆8ͨA*p<  > 4f_6x5?Nl+娖]&DN4 ^ n\ïT5RH).RGE^:I1@| {s6b|kosP\y۱`iW^>39393Q<2hS],v# hx3Bn[}/5Cb!Yg9xB;*aG F C27/ѰӔ<ց'Gh?P4 >ϜZٺٌ ԍÖ>g!dvՈR̼k G=lU'̎V.>K]9ut.!88y~ؼభL aD6<%ָx@O! [|]tQCLj\^1ʩ_>J^ycJY\%'G`ܝ͌< tɋ"_:i .W>9?yB2k/_doG魙riy&V9}JZ" )+.JWc^҆#E4'd}O>'d}O>'d}_z0