#!/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=39f754912ae153d3f1f3397dc0dd3406 # 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)ex5k͟jͣZ~TkVV=~"ITx<_w ɛ? Ttkn}RIZW5">Ct\ݷs@=RkjLjdDM(l9+נdbٺ@*e$ ǴݥdI݅$KY[&?˞ñM y-E~48Ӑ&1,ugULBlǷ Z#sh~{ISc[ l :$+ XtՂھ*@KO]K{ 2@ 2اkm}A1Ӈ{R`#u\hx  9&Ripa5@,ce \<3IVF%5Ƞy<XKY!\n$ܕ#TJ3~*H!~JH>X cUG"}$E!=QʒR!rwE '_* 8ې ɕ4\cLG㹬ɰ=Rθx4(A溲+{@Dz/U\{$fpݗFȀ*9YO]y$uT)^(C#-Dڣ"tW `d@=HBALQeuJb02+ܑS(LhcEBRm:$ 3"3}UCUˠkن]&Af6# F1ʂB/%(d( $QE0\żtѓ/~G⹖ jY` 1PQI#0e$>CPl:P(-ۘ` ZޡeϜ;=fŢ2:vΆn3ZT:#y*aqжX X@O7?a8Ok`vC̩&cRrSENF1Uܑ&I J-i=mP&o;/ 򎏎6xV'r# _`x_Wk-u_MP @b ʆ\srt/u"N= ""WpVȃb@H`b @ 8Ǝq+ (O),MiAR;ISxp3s26u)SF",y@

nax]_X.B]T?,_XSD0l4nOS.>hV|5@~~%4  toqpf,޹tzp6SYyUć*GyW^ǽmEWdjN7Y$)BpۄX)L.FDJr_V5e(`W j^}Of U }T^K MlJirQGU\VUB {tjPtjPH[5h ΋/0"iT]eGGgN5OC &8Gݞ<-Z0C= :Z[\ɝ`R\ak="/(JFÒ7w|83.of Aź=kf})}-/(2FԦ N]GX~ ^}J0% :X(xgB5+$~M_czL$] hu 8)X6TwI}Ki2TLgƀ4X"ݯ7 dPAS)c 2 ~0/$M(u*!XD,DWAm=[vƍ&l@V{*8O<7iP-4M?LcM ~e,&QWVUP Д3t6(I:&A@FmRE5xm3_ ݉jZCD5D]Qӌ[k幀`ƝPЂ".fkj݀n.^ 3Wnl<'G3薲>u1䕙66F/>5q‡Kp`p'M%~x}[![tv<Ԁn! M9/'-LíGbާb4,R#vj T|n>Gkݸ:\&X\F V3 꼻Qg5 3HaH5ߴ1= P ,)_=4q `6npjJY5W!UtA9O/›D=2!e//da̓xn_ -ߕS%vCh\C?](VNdNf0[NV)"Z˞:[Em~]{K-Z[bm.DLaEÁ},e(P29o{jn^IM 8G>>1(*cODfTȓg`E`2<@uYXHn=+Ef." 4K53g/4u",nR>jC.aʀhar6^bJ7a>e|]<ؔqN/|@F8B4^b NAK}Wߌ&!")%ҌI@)nqm˟2sqv*C Nap@\f' ҶW7R|Z@cRϠ&l :t S$7 q#GL6&n_P]?RjGV+uުwkwowowowowowowowowowﰘ9R?,OY!L.Cy9u^.#ESJB{פr|j-a e2_#Q28vVyz≨p>:RWj*kul^R(IYu*Vr׫Y 4ČG65&FRonsF}3Hifrh&)٦ @*FGrTG͏>PdD(眮ٮꉮ$lyM(8Y,j7VX^kAbّ[b o\44C Gspe=>B&~8pqm@Hvq>I[*hc⢄d8`? !óЄe` &ʋf^jېf"0Q9sWٞ1LᩰH uaB<˂?&p/-4TlQԨlQ?58CHZ3JYY~/>OnQ cpgA{|g qpm?p5ywRI=vO5߃ܣk[[~p= "(A q'cy/~*J`Og(v^x*PaV'ǁ>{Ժ_-+O{ fZ_֚=`)buX$.]'AZٺTTHcR^7^ +",7 3`w&ܡ8B W ,g#-&t=&Y&VJVІw0@iwj=匿"o[ [R=47l#;K#>UjNt܆M]4]_⛼Oٔf qsy/o".xQ2t&LЧr3(ϧ{`3I4s2Ƅboa窄J:\s6"8P(3lGİuP~2 Z 2elb2? %-bL0 ?ӳԷL4HDY洩/-'v78gn?6f5/vn]8M}!IGuYZ!-FHzԍlP*qy}+ngv?ϿϏ?`@}_GU+8!8 1l'7H (-󷿳-ac'swb议N{@ƺ=Y.՞tj9ʲ/eMKh~ i :xdv_2JdT;|s evvݓ}p>ZFUxZ. ,xj%IU (f6d! Zypj`_mX^ߕYm`(c3q^zq΂~ LL]?RV]~bn`0zI wk'%|F-O^lɹ1Nf/(K9̏BUv@ݕ:2:Ѽ{24q !7C6l& 'J%Ѭ?SG |P`maTQՐe XT<9Q5+N _PSOkw'f k^4MgZܖRNm4/Z6G{${$Q'xP]!lJ+ME>|-{` wAY24ud. ;:N_Ᏸj-l탮Ѷ Gi0K?oO-tKD`;iR)ydy8j@I6Ș@XPM_ EC `<ea կ٨ Q( R*bLtw`Qvi*KrN N"ʨd)* c`GI J!N^}-5܌ȝe5з$ Fw/*8/a}'kl.t@G$ͦk=?nH 5_{͠f̡]U7h&q KM&$AO1,|0=+c ^j$Tˈߩ|;xR 6 0&qn'EU>2K˒ٜeEW/5#R4;=`0 * 4g^hV.|oDXf+ՠ@''65kbu&SF `r˳bx8|jؔ"tMlΰZ]71d̼7oI/fx݊ju|}nG 7 E ΁im_ z3E.vm9skV)!*1XS7jc8!#HU, fqsw1xE ;cxetw(a$=чSU6s0/5]hku d3 3u,Xx! huސiޣg l9eQV9gjwi^.qZ+fxyW#t`JPtzsi,*ﶛUd/M_Y0W)Ғapd)ۧ'䭔9JZ5-9H#*ݓ%i-2uĠ4|3*_WgTp\+w>o'}5Nvعv'q"AVeYseemv5ϨѝO8W3hwL>DVi*m G-'YH/I7żzXڃ~]r0%-i~ӌ2PnabNnR W" -j"ec7f$^Т)!pļhUnH2|j-wLV[̊tVK)<2 wLaX(΄OQoG%ө@ljY$Q:zŪ at>U5 eս*rUwi6;u!$O_5IR ӒRu? ih$l`WzwZ.(h~@>A8*|-d۰=ô?6_/1EeVȏ<.U7) P:8բ" "4tXΈ64l$kE\ Z`o %;{ ,$^Er͂xĽC{oᆽ }Ovtk#_]aHs,nf%աU*)9\U~ 00cق *6\0aY*3rTDt&P \ uDW[xY\%H+ /{IUᑅ9rqp z"O\ǬǖctiJ> 2dɶlpo1?Пu㶇qEе&'>vLrVmȗJ5s'ymVoeZPݲoVzuR5¼M\*-u"RPҘIѢzY *nۙT? PSZ.nfk~eZnZ\Qi+jkDwsCa5D*lL `BpKp h>u4q|1xgLnto vNe*;09Eȵ/j^hpUX;_G[f"=MؑLQ128Aߞ>:ݽ]=| =8"y<\|1{~JԱ@''wב:=ME4)x;xiFQӾIQuVyZEÁ-Kg>ga]}?0>"kAxH]qoJAFI(2_ |= so?l"*!nR^'D &b  o`NӞl4`}*JoijKkgr^Whʿ bͽGo{h/!j%xFDU?TqJC/1̳-VXCvwbc$AȊTBV:,ZFj<ՠXoy+pwe2F{1{ixsohk}0hƠi)etZ\73dXBvH5:bqPpÓ`c9ʉβT-BcSvY,ģ6bXH3 gi-q' \hЫ'LE vS{+w$v ZmuMiP5ް`C/$Z;U* QQЎ_v6Ӓ&&g-ԍ4OU.fi:PH7nWvpVilǺ=>u˒[Pzѩ${V@Kf?=?_4Ä:4ھjviDO|R{Wga;mT4IIL 1p}xKӫ×dJ=aXY/J~4kY+5g+F2:LzW-0q G< :X& ]x 6 ڂuL9FHnuIɹ K~Y]kn/eYm5tXQ)ᮡLl~%㡤^buVTav4B]f`TD.e^vdux r UO0 nP)D%:e2Qj Q|Wex}95 foJ3q3HRy㭳m?EzPz5nלWBtZ,~Gh[jݱ} .n߸Nbc>خcqNO Oq#kv/^wo0?=ذD n[qcs;OY=ZS0M}@pwDU$܌wiSZ@reAREyO YL!}:9i}:.O _$8;+ciԾtmKpgq0o D|v'e!)R!{@wޓ]3P W`?mwX\҈*$=e}*2SPp:*hyc#;9.dȶwAe ep;M]HQ8lSCHa(%2Uh^x<A;ɡ &q4PνX3&iV9G}m8vv΢E| 7$6{(]pq%+Ĩ Óe4*N^ˤ|F K7$BH6p^p?HOFftHn(fajLm|G(R),˵[&C`ndx|dm!PYv42pCDjU׶%nbztq~ 3<]v̛*rz`S=| m6_Xźiq$铱߅5-v$h}I" \+LDg╶befU3Y4w/KܬЉzCl?׋"$ʳ5W^g!B@n"_n .cRaSZQ~h8`sfHMԄs{ u]x/-%UJ}w틤S ys$(_EdGK/ӧD#/O+[zXKTswRf0pgw$~Ach r2oefӫN& O p).y+0xռ37-aכ4HKU ^[n,Ә9 |X2J㼘 tn!ŰЯICOsuP~Nlx4s ]%)x; 5ҢX . 5@Jty"Y$ )pjB `tl02#DĚ8-2S82Aq>:xg k)DuVh1ZɧyدK`5/Uǒ@=3Lɶh^oҹFeODfOJf*.M7!DEI7B|l'#cm 6ۘRՈT;G'o~kNDP':mP5uc9Ɏ¶ J`vbO<7?5# [Xՙ W+Y~z8{K!qb<Nຉ2d8>1ӸlbTJ0)FF\CW*=P7еݥ2imՀO.lT1}Fv,jQg#7@&-{!O;j&wQv&0gc{̐UI֍n~̂ w&rퟞ᳊#m5c$ŷw_z싵EƄWۄ_^F;1ɺmtWˏ<D] @5 6Wr/Y-HVȊ<G}5S4FФ#Pe)L7rYNa!>z;I0/[eЫ^+~);'=:P _ziy)*Jmy4CT{[+ݭxl_y>2A<Ra*W..ߵY]P^S{R1u(yk]kz0"'du%zTM73 >0=(SY~d{];Km/ZsQS&j[%g2I熓` Z?ގmu3xG1D>:҃?o]Hmpί"m@DދCe,Ey!hTs2z})t= Ͳ,+AC4{KVB[&x|EW/4F֑-W[‡ ֽ}&10O`Zlޛ3L F-6fϗ?4Yw4n` 5$ru`(l˙&|JIp"q^[[sW׎ORDH2i;;b+f~q~|zpyq*V?prx-X*//=a釋Ρ'XR nǹ 0#{jOQ?l >:>%Fyo[xȍE#= Pü+PJ3t2܁ eeu=0* Ճ˵:}_G+`UW1+.ivI=*RVvz zUdR(LaDFCݡqNTI>ψ,f{]|= 0pJN-xQE۽%REB^}p0HZJM~)9a{𶉒udq3x,(o`iޑUђq^lt= ̸f=+Xt¼ )!w vȀ S z$U.дR: j؊myR*'V/v+ԪGoO4vLQ/RD<1Vn֞~U.b|GB ٺymql=֌z {-3,ytUS9-z!@n~|0@0Ģ &ƨ'?YVkcVCyl8̎dW;/ [/bG{߫WM{=OS{ř?wܻ{0o4M)!ŎVWrocp^Z^*]MRI&fF[,Vjo*x-u-@)Ѡc qSICㆨae5J]q1u^͢y/זeT{ ׈ q;^6π{96㉾0z{I~w:^YETN~r'[AzEj'Qd|_]HU>k+ϩP\eeS0xɬ`5 E%V)kRjR%d!ͬ$ z|Qh# mU:7aF}^R<_0PjLOh1K|y}լ`s ,?l`qqӨUM^c`M>lƵ3H4D 2V ZVTJ۱;ijX9#,i+ tf=`Ǧ%0 j휗^ڪc)䬵SI"V!=ܯ=Y h|dq]A`2X zpUt{ăz)t16(DDf ^n:oe^vZx!4XfF͌t[mtbod:"WdGɎ>v~ҎQvœ pGPlIzaQf+3mQ ~7ғ8~= k{6{f[YU^7Ui* XӮX@ .1BʇAfʵ,Cw=vb2}ؿw-*>/K7 w?ۍl (w/`Vh7zRxY"fZLi74AofGDCI+c:VWWGPy),a;rnj2ب:<\G{ v'Ùڪrt\G06ڢ=B})/#}c[y Y2ꦥ2;BP-rUczj>;ޣD0 “0ѠKŭjo[V[TsW-eFXlliTUq'&G4O6tƼnmnb>Q":~ g_C?$: W"<[Z,/rbDjҽ'lFλCCd18g/ f p0V;E!*ik9Wa%E.V=ey5W زx* DK T9@$1鰟Xeq4ѽ֯aO=hi>}m.Ye]\~6ܲ` Jp܂&}]œ{55f:ٮX}'#r?Iٷo ^u@4gV*gp 0UuĻHNi5"Y ' ,gO #is+}?w+ips=ޠ~o4=q`"-bҎ9K6VDcv7-xEKl1@WM1Mdc㶢:BzvRbԩqe^h(~ls$ Y 7nhqڢ>`1?37L۽`4FXcn&F M:eKf"1yҚa/7vr;gx1hrg| rÅ`[ѷtl2y]Uθ1}"TRn8vc,#Ih?[mkď ieܮBmI*fF?7hJk"uC1_'I_'G rEgO+}A>i~͘hg֥HNe_$ WΚDԻÓqAӌ(Y]W3"/GYq<3Y_/{8'ʭ~r%sT66N دZG} $Ij)yw$d0QUlRpS)Af5Pc7Gk]$J Q GbQ-7;cFv'::C>: tZtϛC/ɳnӝG̹ǞfȠ0*{ ?i#{=F}OQӨ {Ѥb_m[$n'Dz QPX5%/ðFz>&m~+ Q2 ý[JޞSrR,_-T-fq2 p*ox$}RrZV ˯ӻs~z9oS=gR2.i.b iTZr{yovӽ1ПWgr/xg/O϶yi5֩RtF>{xQJw/wy<ۇsHIJS͙jNvcI\}0K~'.t mo:ޣݙio3vT,ӥ;z{XBgx'/6\qfOɉ ;}xj=[ oWyA;}M!:D.5O_bl8QgnhA8=S !fAÉ<\ -Gwh)q)=CG~͹N>"=__P2GZlW@Ҍm bxum?Fq EJ%QQ6VW 90h}a͸EBfnSEI;8}{ϏLvSxΛC- f֯FO$i2*@;Mui-0^;^^+q>gʬY%79nR*T !˛TW΄S$S&FR[bTa0)(eȗ,N9N_y 1osjn n#K.WHcد"OL_?Z?FF)0L-SK0u/] % w]S/?)Pe?ăB=al+K}awz"avD8ӉQ?o7,,.~_[[CޮVz_(QAL@o?%~}j>`MQ 'H*81\ IDB.VAc­Dz y, ftyуe_wٽFzRޔ~|"FpZC\gj ?rIVSLreuW21˳*42qSh3HT1KуQ$ߛtDo)hMuzϪh)ZͽCy4h1BSk2 ,GBx=3%m bGıy` 9؅.(;P 5}  э &H,ycts A|Qbq9ATpX8.G,]OiPh1OEl?Aq^oNv>x%M@)uB.oS 6G4QtXFm8ZaL8uqIy)}a"eϙEnd! 0tdqi&9]V VytH:DΡhB7#(7 ս&JwאЭ$GؓqvptsupqtP6A ||j3,^Uve]PAPג~"@xgB9dq bo^!jzxVL:VHamg&2 .7cŐI)KstC}x磉p\I 6Pأ }p Ї쌛!*޳| zխكkV1?v839a0Fnx|QЅ\i[|W_D(B0k>pt%x,RBT4bzOck|7Dg f(NS-i=Az[l6jqtR6Ѧ)_C X9F͠n~X$c=֪{A+cQT:nA"T2̩d^*hRJTmp輮!;:L=T8{^FS!_ Wc`s6&.ln>ʔ\/Y%ԁ[ֻ ы`Zttt`Rn2RK]֬"~ZBʎͷB6tQTGT_j 0u9 iUA t-;#<}A&>|5,ʼnrsg`C@>Fx/zf472\ D<λ"h!rU+Z=hdf~89 ѝ(<_090u8 0tijRٸ!u=Ӥ3lS]aѓvJȪ vw.HQ)&_Q^/' nxʴ{1G*aMwՋt3o1(<7/=GGS=u~=\^S{=z}{}'b i :x\dyxApI=[ydp5$t!L"t>elAK@i]Գvۨj"3ԐetPM(K ƉE2ZZۆh`fOX?K?^E>оߕTTdNx*Wq&?q0Cr!r-JCsCyi4yZ[@x T ^^YK8(ᫌVYK"1ǵIFuƊ_Ѝ 7a̲I|:nFDsp:$"ä]Cf8JZUw)¶AX ,n '|ZO&pF_O^n#ˉ`nQ2JYw;]Vcp}U'ș_%i i4<`TiPY_p1EJYzuRXSM'r3+BRfBC酗MJX&̢"}Q fp,9IIv@ J{Br\K†,qD[U痰m`K%圫RÆuJ%5<{qkﰦJ{ta).{_!ڮppо:n5I]o5Gc(g ϛNGmhm+;Mq M|zP6Ck J"ٴp]en`*ԋ4zoӢBcL BI 0Xfya5TYO|̢Ѧ+V ̌#_ml(m:/FRck4/:Q +DT*ф!/7.vԺOtCF7S &/$pKs6^Rx@˝bybV7U l, jDXX]7r#%2^.}S9z B67I2zF'z$ߙO϶97ߦ!vHt*?˥Fڃg\WBCHb:qF~ڋIWuZO:geQKmoG \-.} ׵zT{8 \фvJ? fo8Xm  4>Gї_N 1 P_^]][ǫoq4/7;i]t [T&兕借[ɷ rQwv.<7l?ZNGn}A73\޸㍇o\q-.߁;ru7nݿ#7wvNߑqqP.FAT>ofe!˔8nyY.;gOPlUg;~"7wGNw]LqQ  I/AIeKF+OΨڈBDЌ[(e}6" 4"-**0̴rF4Lӫcb}wN;wEkЁ٭8fmo n}~/1{b;DoP<9&# zt|:]!-JqT%`?͔/ro4jUVcMȒpPzХP2uȾyo80j{f1Ox)~z12lZ/{:_πb##z7 yxzɅ|8ZhZF͠5_p41./ׯPf@L0maAFT5"$I*LQѓMC{=yfC[ThЃi8wh=y/9NZ h%*c`hy l02pun[6\u=y{<T~Sa*?J~@oTfئ覠N:OBǎf+e8~ T e"3L)f{z4?m{k|>HA+_?0dž;VW+*Cޛ9&zsس7(MEC:I@+~ThcptP{Ìlc)Hy\BjW{mFτ ,x7c*m&lUYxEψx G^!@ ,'HJ<\aǰo\PB岵sKo3:3eٗp-5C(1vӭ#r\IBϴFLdzVг>|:|99\[)m