#!/usr/bin/env bash # # Copyright (C) 2011-2021 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=9e7ad1050beab423f11077e5dcb44d12 # 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 -*b;kSʒ$.%cVl-@{Z&{K%1`Y> !}{2n[ -cOlgwm_zλW[ۻ6^mnm{6Lg~ثۣp~R kFӇ8Iլͭ-LR>x~D:knj@w|X IW3ddf g%,pj &~FQ&5v7,7$(\5ǜMyiʇlGw?/h>\A48($8,{"i FA4X`&VD_Ew%eBHDi056|&~򸾀А"΀?TbAa4|j6`="Y<qI :%b4O#esj dAH@ 8*01>B+G(L qĂ2J,#IQz*!%S>@%*_5$?s\vO=Ei-v:m^|9g}vmv=MÅo/=uYǜ;[cNپl9s߭Y۽6J38vhN豋E׵2rfۭ:P23ny4 clmXm9=G&Hl{a7xQ&^tVq ZK%ӼH8ý;]es\phjPpNJ\ee k>9HEp6$(Hu#,x!nXa. 1_rWFV*C>gcʊ|bC!*miX[vP1tr6^:0?ø@4K0Œb.4 m=D3 d>@8`pMEXJS!MzWHx ŜHh?Ua0%#BTR  E/sڹd|c bm3${@#N WE'(C&hEJT1DV$]`1e5I$)Z;C'& Њ`)For $ΣɅ'D':G=}~IBIZtvܾwf7Z M8(s~W_ʓ|EA.c'\52lX0̞, Y3T6XSSTˈRbZe:!,@0$(\}JՓ4$C9!

i qYhà5P1*Oe$5Cw8i$(4ZO0oCiKz]x<r)(Oɉu",Wcy*hZ"!+1[2_=XWQ4+,\"e-J#mȣjjRNǖgc&|z3&ˆBƼj4?{ų;Ͷ^v~0X5ՑQԸ,x1`ԯdKC0Jz,[&(tٽOe7X+l$ SjU1X,q".:6J2*A&c)ҥ)JN!dӹwҸlNqj$uJ|ƫkˌO]%uTe({?Ebj4 XDlHϛ rLaPBU$C֮\T"u29i[ #ZX%y LDu*&xV[\QЀ)÷%)9/iɂbβ =KO?rKhIQ b7tHV'jnFxK2?PޫJ!:#&!E, p?)qW0,ӏ,DCZsLc=|Yr^y|+%DNT{"%)a7xzMb ʚkY$*Jslgx%?7- d o8${E },-hu4nt~߾53Ok (d{` h2a]^\D[qJJƆ4>/N+"~a6%[j"f]r|{fRbuɖ3_`VtH7K&"_%Ps=i/0ُٚhBސ*}l+PK\Fy=Owpdu8 <$?79c aGxP|z_*Ș;6Z}3z~eۅ43t's֯X a B=ܳmiMxbMeE*hԹO)JoȚ F@~HG =8\G[ mGh۷aRtMWo-aD-+ːo?2;@ b乲x1ÙFDͅ |&wθ8%ܜod(J`h>WF dsM99pmZ]ipkt<"ct$Y@nֆӈX;Xkwăc$_>wR b|XlĹJ0F xK _q@P~(* |OdDƜ,@q* :ɠ?1ְC3ܐsJvjɝ07g9\F :,2I?w8#3F$g27i`#7zWyʲ,`/ ޳O Q NrK󄼪!T ԉO}KbU. U/J8CT{rPٲ^䝤hKVdš\qKћ)B6^V$lh\GfȲ.ͤ~κ Up[Z$0Wk?|Y.o}Do~}>{*=+.R*UuoRΒMS}Xw6qM& b IvV];#XO~A 8I7 $!q'!i[O7r//Us2ts)QN4%pHz38>\P(&5E=O\mD`=Ȗ!qH\lj_㍚]2'cO^+gFlQ YJUN-SH5q8\$L,>(qdxKoPO,@d ydbCVLuKڡ!(QZNVv/gAɷ4k/^g "*ǘ;(1/ In2l; 2Ǔϟb7B~oZTQݣv̬`ڄrB2bF<|] 6<6v+g)-88w~AݎEffnܒ}n1^=yS.~/܈MD.u=i{K0cr9q++/*)-p>݉`Y:w[7 - xTͅ 90KEԼ*aU߲lwئ.&cTP2_ WÄ^DWm,)^ R0~I6UG]U97w>։F2g/# )hβru><5Z\ӊg5(̬l Ek2<Ncahj>E ~O:D$F~u4%d,=/:+lN-;36ͲHƘ."aeY^7N"RrͼLJKgqNM MmᥫzcM^CGxp+[J`)rՓ)l#%Œ|Х-X=z3̑3!}vmD,khhy@C]).؜g^ؽs%IÔ/ T녭FRG,UW{_Ʊ58__Ɖ#a 0^v2q_- Z[$sڻ%l$3R`SN:{^F]=G[V3+e-nVtH+5O}j=:~=oV/.RR_޸15 Z+aD%xj Ki%$ r5>ع$[!AY&(A5Y|5~4 svz)%MQ 4! Xo~h؈u 1~i5P'1YtgGD:0>9f41&C8Oj`8b -s^W:3ڋKAznnDT\v#Y߲! h;{-L{~NH"dx*!n %OB3kz&Z MQN-eOz3a!5:Gqƥ  \{rhd,R8( {b6F{ְ`S%ZU x-be6ԭoOD.f*SHun6#1ا:Z[kƺrT!z.KFvAaטUNcY53Cŵu'j ÃyjS}5aŤb@V}%ͬS[ ~uփz0@"F| r&9ffv0YEw~\)В6X9Y^4xxzWޛ\]"x!AIr c53[bQL#""gb$uTvvH*}cgm,duͥu .ȉ+%VVet?/_]-HclH抹RC)içC/E *v\cpcD PSF#³uDK" 8@x2z32ז{Ӌ!޽$3MHSR&Y/ft&[Po:0 %#l~A6[Y|MhZB g(7~(?M:c.f̜bfQzfwŐ&c9݅ 5wl%؍] ő@'[S0W -aI$T:nOEؘgP7w "j_EC$V%=pă$6?\5CR~a*72pW~&m% ۔7&edSCLzSxLxoH߬6sx˔V rV#7ݟv$Bqcjt.ZРfc}o2|v}cX;"JK% ̉EȑX^%U@]4Ɵ.ই=Hj%3V&<>}-\}>Kkˎ?|_n?smO=CJW7,t!/ nhM4hp';ATfޤلV+'찁3[A UzU=_W2-ݰA{-68#U_,y߫{gu kST?U:>9/GyR5}qpm$3U񓇺˳f+S`a ۀ+,"%9 ZL&!A1 ߀QuG\'ɇ @`./_6/6?>PyCoA5I%,\o'  \߯nv.nS}rCH u?i*"ΕKj#/^m [g#|R/ ֠oM֤o-PⲜHm!?>cP@P(|Un']^-3-53g\&[.,D&: ٖ+.hR`=aL*v5[t# dIlJ 9anI]GvPS$D8Bic%aZZ% NI8&8[R:b$ոꁸ2. _K"k [t9ڎ9m5+ b\o)fZBsak,೯]5uߣŖ0xNDb}>P}s?sϷ?s\3?s\3?l?*Mfl/IFvEppѓQO8$ X0:JCt ѫWo+̭\ Ǩ\w/HݣpPn@p޾ˋl +r`QiE*m0tm|UhP,Boue3bl-jpe.~QN< 3A'53,(cR< R_W7$cLo)>.ØpKr vr3/O@)T>`+;a=dLyc8Cē kBSSy8?TTy:}]GʑCO< GrFq^pnXr*"*$/Mdr!,$@H>u{>Rh 'B?#LנȽC|ha4l(㖆BNc.%#ȯYDuw , +(nYc) 4$`i Qq=P\y-@Z|mVgCm q~lxGSj,@kSڰ {, 8Y /􇲤.R-d'H <@.2SBsg:1Sز7Y^xlhN0I2t4 L*Jy̗,wC& 9w*{YڃW2lvZP_РM}#FxwXA5ᴑ A h/N`DjzČ:TpĆUQ韙{\:28u'p0E|G+3 0&Ĉs60'&n7Ig`u8R$w ?G$$NC\3%ʣu}KLC)~?@+A_^eu>.=뤘,N;x{ޣVA7ݞ1kX%< "ECbrv|pcj<HdO2q2 =F|TS>(^l63ե3LҜU]jؤK:[ԒB1>HGSYyͼ(Ѣ=lb|[amvD4?>= :06K2,ޘ9%(vB]u'`bm7Ec]**]D1y vhb-(CE?E7;jE>Qw E]oۨL#7< ̠]UA))Fj1v"x|p(D:l6ڝ|tӠD2̩8(\ʺhVJVH$\$!h\>GDEޒPoS|m=I, F>JBL7c$~92(nAB8$B”><ü"Pf4Bp||X&Vq8 b3?C.MШՇ!*/sr̊iy'#e@TɍUrhT&J`@UsH\>X&^?k. Kdۇ+rdpZrQ0Shg>":ܒMCU'ftBDҵ ZH!E+J#IܙG"`2O /vaH5Ѡ߼2ALըߍHqx@ ܑ|'.ۇ'^~7W;ŤGno9;y}NG)HGNW)Zɱ.gn=s{n=Q lWaЈOyFXBq+p3l7ol77r4ԃ۝ptv kDt,S׋OH"<=GL{Pϒ Ɋ5sxoWg6xV*+\8<2.Ao*olr,H,)LJLʺBu ® y(˦?30t$n$-EQ(lhh.=F{cz(L[x) 슱), SѠ)n^p,feXA'7Iz#+DoT(@BdPdRt|2[!ܖ%G(K`z[QWGo?li8{.*դt6lsL(۸4E$v^21S}}.Hn,neG6_@kepld6^ r*N 2RD0uՏ9F̚ kBHcI񔙿{CHX1 6윆>BO_u,#Fm s%äQmEmF6y7Gl ]Al~n{}o|E5c»PnAjĒ*̢#UM5P_UYy4z9Y_+A|M~X_|ZQ3P#̔,U:d! f7*O=74/mjGFv=ZNt  (x8BŪ@W&F 5XV~~hw +C]Q7t9\흆aޞ] `ٶҚӮ,خ4SfjkiBY54rZŢij[;Jdz`?NDW%Je@ak(Xl\ENY@|uv^VȭqIS|i-`R]oH1٪2םɮkazE+HCrϱÓʙn/D\WqRs&|javA5` tkޜ6iU4}b|pf!'l 5u _[y_FvZ2hJ `lȗdG.3j,3ע(vw%6xDHF3 dL%"10fyũ1~?|OFqZ  0K8~&N͸dȴ(NSZ=Q؎mo0nC&[V^hJB\vBgo(' $PO}y7~f njZwœ? 3k_˫_y|n->son7s׊2YAgRtWN}\ǩO;wNtO*X..XEE`\( ŅlfoZ9 18~d"x|Fe};IyണwS|(e*G10HiD10Wb8p YnZ"2'L^y1?`.DH'!OlkP|ًB{JʲpoNC alWqg\mO!F;R8׼1Tsק&< ~+ c 0 c!V-oz0|j &Kp,K~-z`./vnf˿їLlSlE4mZ:LQp;I!1E׍FM,>[_,,UaWMJ"+e<E&G,zdLbp^aJeXG ^bB9Gzeso&jWBqHpjö_DD OV_/>[Jz/f&(Uzh_4Vk(SK(7V>gDkE?6`$gEt\̋@dd)|'5]r#:m!IDԑNy I{)#@i/mXw~-vUvRmLŅ"^:/T!TV%J̎QpjOhnOhrO"J5Ti dw2c-E.Dl(/L${\Qm`=#Q Jq ݡs%\mYa 0pt_)]6.Kmd\DQҠ-)J">i+  D"[XkJbL\wp7:͙%t8:f\i,Gh:w+3SJy]'R`I0^!sMx)i:JX~"'/׫!GNw&ꡚ"^bԌVb?Bԉ+% ѤՏR"G[gQn:lSLY߲=K˯8l)!iO!6q9(3Ё twJv.|Sr8R{X}GKܨ__~e  @6pOK@|a~pW%1ç ,0G7^Ab=F, ?W!j@ 3$&(BL]aХO 1 >&tc`H= EpBיgzќuO$, -[prlC,uWetLVvNYtTeJ6g-z@&d K7A;>)4B7(B X (b `j -naR[1L a'[SO^}VZ{>V{n=s{n-X5Ş;ŎZp/??:I6;ǓZ;(+൥l7vSgQlv+ffNNau'4ZE;0X-NWNB@S[ϔ֕`,|S0$V4 [Bx. v35m.@Q$DbPd}H,nhozG9R˪ RV*SAt)4UV>hcV쟅@ϫ i]1/E` 1/?D\% 4?Tg\ USe ǔؼhE /_|R|$5RD%+5KWjCXYRI/9v-R\;LirTcҥ(^->s`y%Dˏ]S,铄H<܁1Ĭ%)x&722?fo#n5Qc&5oM NmU8+T5UعPXfc Bde4& Mc"$-U}Cz,Ay6Qp`NeXz |qlGQ8/cdnhN| (_i4 :w@EO "#Pʒ%-|BomL QO*tzfjbC*{ yڊlSfM`7Wl: Jz$[Oybl Gx#>?KطO ^M8jN$J.7G|3 5}Ma]øm#ٴPUPᤧitYPOԉ($%PHeP1-%'q-1U3$ ri{kCXMό T,t Gu%de /8JzVJp:q )L]<[>˷bܧPڦ2E^.Yf☞H^z# Ա?2q}2#IKȞp ODJq]bh ylO6$njGu!8޴G4lNdY0_0nw3( t^۽K90@ݠQx>(M4l%j㋛:晃a77"kl}\7;`x|O' t4 F%؄ۯ=KU:뵻@0x|\:2π9cb^II`RSOYFlbOy˩fh3gLv|L.s"xb>ZR;;sV'|P€>]yO| cJxTn86b0wU i!@ uCBBB!Ah )Enu w2&l}r:&mk zv\;7&LJPŏw%@ܡE@ڻImF GyF+д@z>VVQˮ IQrkC\=+cW$3qKƖEZ-`((9QsHU5Pʷz[J $ez 7ZFtbU0HbqƩgo+byxuI:p}g=s{6}nw3 +t5#q&s~\},JwR;%]c&SzQ(՟vGIWAQ%1\X@nVơXvn}FdD7=ܩ>;gn|Gt Vץ/go}MڏF)qZr2q"Ӌ"/VײpbQ q~7#{G!A=E9O_7c~IfWjuGS ou4_^lu%!j##XoN݋eKi]>/(C#r{X`MPqs$KqUv^=JA{A3hV|=44AsyX #EڋE0]Z/ϊ>G slI7wF~&\1>Ym&ya;a(I p3 ~>jdlz/LMA<$>_%RUg~]߬۫#Nb}-fG!w}b80ËSg/~P/ Om3$ܶ,l k6GMA5FbsWꝣ@IAY+Cd:A0<3"G_֩'-&rSot#"kxkqzzWfxY[51Zӫsy@&1$ CYG0tqHE$w-sv"ZhaSt;8Gj] b{,VJ.^'ʠ~3g"8*fOzw+ NpK)9@Uk.F׽N;Q3gL,캨z"3Vi1I:# ;Wc /c$r]/"`Е~te46ڤ6 W3`. F  P/Ko8oE%43Jϰzgg)lKu>=d2E{4G*;^|,)yK홌}3ޚʩÙm -xPd2Ϭw'{n xyps ?]z`ל`Qt+#1A%R*8>?٧6~F"dKy\LiyyVzr&TC{杼Ƞ5Z -݆?Awh }^OOA|^S8FF2\ZyP 0eZ #˦왴:qzV=fw $P^XQriEd wդG ߍȺ@L00C~W`]ZdY!YNZ崑ф, 4, E $ +xRQV0H(gLWPFptqqWwOX)88+`Ə)G)?lOLY|VoG_s%H 0k暀&` k43f.Q}aN=xY'BS=Qk'y/p ?ɶٛ)N-g^ Н-} ¶:Ql/-ںhr*r ozH)}1(L9G4J}d4Y79kyhcaYCX;)O0]Q'mx$6)cHkmDC;pxHmִhqb\Gpluݧ*4tvZj'0YMn'ϜP 㼊c:x?Fݎ%^Bo7 *?i@fNhsY>?WD(u2*.CuDL 0y= nGJ JݰIurT6AzaGU>?eSTZf"2l$1  ieuQuU|s2ŋ.14ݯ;Qψn]%\HjEFb,ưccU8s~=bHc׋#Oܕ!ρ6O'"^.^h,ث`Aer>C:LL %*)!*nAC|1 Ho'M0X&d"rrDF#K ܜ# YSR:L ġ3s;XelE;]dB2vȂiMd|{3 V-p5oBQhҼbc8F8n`,& ďFQf7qn3:4 RȃONgؓS f,V~vLa6ӳQ=`!bmgWi8yJ~ؘxqxKF{1C\q\ڦx8ZJqJX)q@cu˓j/ Lz$&aX?9uXREf Cr URyz"@FX1*pw!(66izLfQW\;1~V/9 nNVaiCE7]E1.'9?,I$^o,/vJ6jr{#IH KB)7<-CUHz2xb&?.Ci)Lv^v'+2꧟釁udQ|%F. 9[4'1KGaFl#@L޵4)q"JN>Xy;!1'܄*K#c@`%9)]-rPו%F 2ݡFa*d>X/m\7D$l}!/~c34zc؝EH@#e$OS/0O 9I2K)%dKaxzLb\[ wx|S7/~YSeNm0w'n{I\nRfΧPe'TOcz1Y֒%l{  l| QB+#P[.˻CHZ3-95 zV&W5}FA9B A;l6dR2 ܣ8q#8L;G4p=IO9tc^tǚ wDb]˘-_\L<0EU`Ϫ)H D8ɟn^N12A9"Csq}( OPdڿG8<_7ꎢq"'=}߅bcKU+1!#} ClEPZ=T D&EK e4M~ɼ(*\N``MEKqgᯉ[ K&_t.XOewY6Yޢ BO'JSԷPr]ś.*iv v~_bTjV1L*RY)˸.b9!XPG<(g;l̘VJ6 `8WJr^Wok˥|xPXXe$DB)^y(b-Y0Bl,76G쭮Խ3Ap,)>aÄq4Ji꺙!5Z*5g*s۲H=5F?8?Ϸ/zpm}c]zPVKpaw]< 'Aʩl<(7lKd܆n%,L.L8x@;5JXh*voBJc{5{~'কf[|;ky`pTmdcD=]mrp@T {QgEVȆ]EL+`U pOXM9r (w4Ƶ& *{0a7X^GGbat17]h1\o((,  {N|5N?s9w{~ν>^sϹsկNp{ @Y>^]hZ6ZuW]h/ڊ:0 "}ϯwL+r[V® ot.A%卸SRu_$Tbma_~5L8thNC8 QB*Q?,4|G)DdTm:Rɐn^玔yppaEzFt\"?Ey*zb*RZf?B$[ąֲiR꟨]_J_:=O~ť%4`,$If_x]w/ȑ$/ -. 0's70 !#o;o XzTcW܋%20&U#bV %c] r<2uP ^'-h%LJvyzy3 V6KϹT@]XA5P_Y26e6Ši[yWNЬiJȰ%4刅}*6" -q/ 0 FSA!@%'ֻ>/`gh@>kSfc@>ê-a,$! }R|M'f9PK"B!ZӯF!^oeQh9F'uw"јM4>ӹ׹$EaY 6)*ܨ+SX!;Q%]ڒ1t~k`V^@G駴A,Xeeb{(6yM㢈Njm?1qP!yyBAvu p ~TG,m 3cJ#9/(mdH,.~UdX0iN*Jii)c*ɖrh +T ٌ ,x?1_k` Jje3jۃhkVѮo| }Ar1Za&iuu^|G+pDQ]egk M&r\9`èH0}xA!a 7z&܀mSnK/3w@yc`L?2txvY9<~#daL`+dY-GA6{]?9#3rwŅ|Ve>INc߻h_f;}]szw7[PmUgVC;ybOymUT1ڧa߼͎A ^2(ZiE+IЁ$ff@ݨI3R +*-jfݶBQ,06Y6 w_@7G?F[wOADŽ+RB&D=y,{pplgR7@*Vĩ n|J{'AoFqa!{f1[K(, jXɈ٢HȾt`ܰ?伱~|001Ԍ ֽgvXUv H ;#2BeAzNx)FFY<ۼB?3>>11'ꣀ,r"\C;{ce-o=+֓hA"xbl\Ry5Yi%9YE?c;>~r '@|<>f5}`sFxzo8 {lYBW2kbex7;?0??ifOFL:kxrb݉8/ ^k/#CD\c~s y $ aG 80@ֈ|~QFݖuoxCZ-9ܱ<UeтC,+NN±9Ru| ή=LoǽfF(zScIH8\ZW#OEePz2Ȃw !=ܶ`=x/U"xpo;Sgf3_3cΓMf,-ܐ3ZlXt9% ‡BV#\K"%A7ի1'}#WҥτWŹ8