#!/usr/bin/env bash # # Copyright (C) 2011-2020 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=66d6e4898307fce9af8e5b4b3d78aedc # 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 ` Y85 6W.%K.,ߧ&Y2¿}C||1۴pHp؂YH3 i2`_Z>qȄ!!v|ˠ<2|&$ &5溵B`BA"!!~ -0i!LX-AdԵK) :"3!}jш)˘0C0}X 68R2hHCmB+EO X Ă1X9S D`e[R Zh|. 8+E H"p= ]K>BD:Ǒ|qA+w䳱:)e=$҇HR2jؓ,)";qW_T 8z:\I%ܶ䞬~d3jg;O #U{GÁ"d++^[@JR_%eK h}i 3 l$ڕGRGEHU2:2\L$=X * :I}վKOJ+$ġUVǪD.."I9%„6V$$Vlr@2>+2WhC XF,QI{2a:y)__(?5X)hT0$k([-h\|3̀+f@<%3 z{'}l+"FFB'ݭV "DnDrQ,"dYS/,b!TCɮv4ΑG?OEj DlЦs}L+VWrXT-W0Zˣz?Ό˛sCb@4GlϚ٬8F*D_!t/(*FԦ N]GX~ ^}J0% :X(xgBl4+$~M_cz,$S hu 8)X6TwI}Ki2TLgƀ4X"ݯ7 dPASȈ)c 2 qa^HQNuB" jYzF/L +܁@7MThDq2N^hyz .([i6f +{ ƸC0XLUWVUP є3t6(I:&ABFcRƐE5xm3_ ݉jZMDg(HãD/s0;mWE̞OtYyi,\E8RZI4bX6zBwf Skhh>^/o&*O"#J>-jKsMF۷|5ywY׀a!LL9/'-Lígbާb4,R#v Tn>Gahݸ;\&X^F V3 Qg= 3HaJ5ߴ1Q= c YRDlbέS4k:0C2 䟊&/^{dB^_W_‡n_ -_S%vCh\\8](VNdNf0[NV)"Z˞:[Em~]{K-Z[bm.dLaEÅc,$ePR!L3K"XR=^萵Ejh\ hI(ͧb:MÆΨyo_r267^TtXoAm"W^&"2߹6`a.jχKj+(D<>bGWQWcw!ոr:uWöc7R>'cߚ[l?? P2 a:-XofXlC=m}!bjdNr7i۲!2ߴE &h'TL?Y&+Ls }zyMڍ0p!ii$ -㋖MBDRJ,ϥRݢmwe_ue|[)̔YYB#}e~C=/ w ;* nѰ0$yIbq8ض5uC`Sx_j[;;;;;;;;;;wX)ʂSymos񡼜/EikÑ)?BvRt_k>P d$nW5LDɀU[yɟODy(U `zEtVLVy_Sc~I|'}dݵN˩wR_f`33}ԘIA AIxN6uN@P7؟<:=:h~q?o$#Ň"ޜ|Ι*@ G#a_- k-hC,;#zk[lFffHAh>YOW8KU+$BJI AA{@Jx99:n635v?ng1#*m Xlg0=vr'y}ڢ{wZ%ldN յ:u,s56[pQ})kZBKTLС 'Cϯw¨QB&᫟cX-s[nE/'}h1ZEUxZ. ,xj%IU (h<8dx5J$" YfwehF9X6Jug,^^_F2GW,NgTtfW$x0ϳF:Q&%߿=wdM۲/A:l#8Ż @-z#P"]taI Jh=θz[xK} & 'J%Ѽ??@ rP`mQTQՐe XXT<%Y5+NH_Pḁs`w쉡Tx)wxM!2[Jɲ%PRf+yd*QO`7Miȇ䖞2qto &Lc.zb#h< \_MSG ŨqtV>mpT6o \")NULax4pK਑l1<4&wzxx}# կլQ( R*bLtw`[Q4PYQwJ%Tq ;ReTX (ʥiihQ~A=RAh1£34T XhE)[]^X qȦ5WCeu004wj*ߢTC8 IyliqqrU4DCc9TGviY2[8㪴<V7zĝXY#^ FAŞ#3ǍfP߼~3u6V)&t!sný}m ,,{"=Pd$ I ĕ26Db¸#M/!؜ŪSs-=" nPk--h [`U}2dwxfe'U=]$U 2cġp|m1id693ԱE7mf*-r[û0#joeqAB^) ICOQ`6AG?EE8bA*^? I {k5cFr Rҭ/ȷPN?^~t"F<'@"wRK0Bขφi$e)Zuh2v2'BdX.ϥTӸ?8aP0pDWASG8T-ּh WVsU I{|c) ~&yـoW~\NV}yVV_#&T :.P8^:`pI1xIZb!Bd?š4 >C d>0T^OètUѓ-XxðK;(Ǧ  }<39"@T/yV: ৵1>q30|j6"C>gFii=pԅtc G0P#<k|N^=K`Y,-j9VLkrhLH]7ûr% G$:BU{0!+7yͦgGж$m1pHU Uk4WLatosu)CN|#G'یmQ\"I{AjܗPafb~Q71ޠ B$q`V|n&k'mE^Kt]۲VRrqui!òI0h=H>5:piH=87G'/3c֊ayu~i GQX%Jv^捷3`v :PrF 4̴ᤑ_`$H+RPH xG-98aw,V`9-k,c'8~7T3`| ^ [&Gc1X-wxX._TI,K_dGo;XhJض^ߗT炩\Yj70,[Adv"]jAkC=3!A0&DG$qu˸lNv7 u\ሄñ"9QUr"Bn6NG.cfo_ odvo/⭜IjUsׁ67:+fC M#OIs L:0,RN^=3`Wg'NClM=@7-%'<æueڴ!W$Eh8"fY-;M"*׃뜭i$kl1j@Imy`U.?_pobt V(l~68:a8K\KsZaP +LȆ @6.[7'9w4E,|]Da|~c$'kզ|Q>wWٶme1YZ -mW'U[{[N)4?ϥR'9*߀LR; d7ogRz1B)Oj!,/*=ieIE9!:a-Dv2YƷ "%5ŸۈE_2-690_F9s k_]-ϽЪᖩ:^GR&v$D):YgۧuO*^N)z(*G'~бI@ ˮ}\~rG^LёI#۔]ģόfnڢ"as7)ʵ*]h8VFdqXAW'L8KKOkY3ƫH lor/ &,#40 3|5ccDJ(A0ݷދӳW;g op@)هm k !ul~BM[/$Z;W*bmȒf*0U4(Q+8d46Zjc]yUjqTteɉ-(~e=C=~k_ Dq+_y45~fffffffffh)3lw/[is"\;$>/NyޓQ?n!\Lc>$xW/ɔzð66%*/h{PVk҃#φWJ#;eF MA% ƙI [1xtzL4 AlqrX/4s~׻97^tV @Xm7uXQ)ᮡ 6? ɁPRi2ɺ|`İV;B[TAـU.31QF"~2V/;:Jh9\ R's"1Q Nx7NvB(`B5ϸnM+td2W>ߜQU n~+q%^ZU][j$W)A1?t19 8 *(n#B|Qr[D`,}mx;rsY2ap4Up%ӨT.i[ jV98UTro6Ṇc4n<8#TFICPDuYHػ'.+.҇ސ܈U{oBt٫S2jΣSM满qZ`"zkGӛz4i`IjM-}FH/ 3WjSR'R[lO\2,q_>ƃ%$,S/l {!-(zEe! y_>v\q\&Px 8R4x, }ok*AF)•3ئ"zK0X4Va 'O >.x3EGX5 6wTusr`2E_bvfi\.%Env=4$#j1r_6:{ g%MZNmI=vls](B4M`ɮ e{#pvzXF,.iD*d=e} *L2SPFp.;UGЏws&9?mς vpC)&P\cʼnK:;eѦ6|b * x0i{g$i^9G}m8Gg2{|Bk> [Jl4\纒ĨSx~ޑ2 e'Y Ȍe >clHW$Hp^p?XO͑PHǥc1ϘxiqU?y|{ځ5"+IQv 53hr f B( *ZL~Vk]k W)J^d\ n>yrn|[Pq,–)eulR C).JuWwg|?vOzʣu/!,kf?Y,g3h'`A:N[U=ҟڐq@E2\4Aijl5QI{khXsO!]GZ>ϳ~SB/e9:z!dOErr1*k*|p0 4{Zx6sawm6 y$*NBc;-El͸&FPQ>:yd^ku#JJoAioIt܋NvUPo+sP3"0UI0țpq*Ũo\+(b'6 БBʐlLgmvIXN/aRX?(3PSjU"{>n?Uc/Je4S/Ӝ.DՀO.l,Bdg❴%ZY78Oύ&V۞dӮ.=ʒ݌lZQ}>躖 }$(eqgz aIw{8G \zkQx\=g*A$FVo~?arvK\gH[-C!A]b- aUi6!9j/lL|ݘd6~vG|"_X.Vi ƗR+dEm>Z(pѤ-pe)L7^va&>xI0/2T5k2ThzN\Tբ B#)=l6 KjPa &2#X*f+j8,6\YM%Ȗ;8µhAnbGg{wv9ʊk9hqP2>m2+l`׊DTa+-ww7`1mģ}*U_6X}WW=ztqh~gwuS~BIe;jԡ- ";Z Z82 >@e>yom/ڽsQS&j[%g2{|yc7cWm8,6ĝ&~fyss{3L ˱4oeF?^mt#6t|(uL *G 'ͥ6;u >~~x}}wadM%Wv(@zy!ɉyiz[йri7Uwq@$P2[QС CTO^op:?Z"A5JP(pfJBMZQY\zCaQ=Z|oKp vk^˛ #y\U  >{#7Y7'-s4TwVFpr5UG!* ϲÖf v%x(AfCsd%UlWYZ1xv h6 \jK0azt"q0SP),Y˰6-z$9:8>oẍ́.Ԓz`cꖶ}p7֧NΒEN .Pd_v⃽ãl/r-T) yD`N㊵;I I__62{G | \l>Y>Xl3G< #꾓1J-6DQ hV_s CE)ɤC*pmO+1 8~ճ_~>ied}t1&>>i _4U`|z<<ՇUU4Nj?||*bG?4Vŏ9BBUrMS:>>Oa9xw[[갠y I74'`sOӼxd?p%du衒gTcGe7ݜ{w;GB/rm9~tk}qil4yeSX(ƛti`XŏxfΡ:꠮UɓR^"zx<nAr[T$Q =Z G?nv"qXc$HW.rsRq FI7L`-(@8 O÷-yZJf'Y%-'5܍@?<{ k'\I e5w g>*qT D^wuSxըdpkh^g.E>6\bEBaBZqJ3i UY)'Fm'R;M.&w..O'\&^ʔˈjqw۶En{&~\q/=cZ , raO l5i+;DgZ3 ӝ_.bC#LF,:._sV+; |\McBC{|.zYXLn̚Z9Ƥ#F<}O"@ԁ%R%B[ߡI:d2B$%?eV&ZCSp|l@Yu^,\J;-)9aV<}{UL֕uFve6F= ).81jZEFe~0Hmzo$[*s;)v_c~x^>kg3{=g_ ]A 'psQ;LӔ2P_q KZqb"IJ5)̨֤v*}[M`?(%p!"ns*{cߨ7J:F+.GΫYDJpIzm ]F[(>Nx4|k'Y U)mJ_'"r #F }7+Q ^kI!t<᳊NS psX"5Eѓ(Tm2>'/IeF*5T6ڇ)dV;GfBR)yk7Mvy2ҐfV=[l( ^@6_ k()l /oxjҝn6bӗՀ5ů[ݦOv7yA4i>? 0 )cUM+/螦u`yGpEv!maά&AQ[ul5es*1*>{'K[L5 ,LfaSNxH.HTM\LCN 2+dnX,O8MFg/vX[ "r,(5NsO8y/w/ނ-:T1?ޙL\RDoŽb[TIJ?օ5V==V=9u8+Mqduf@Uʼsl Ѵ'uYL9+I&݃ @-o=;Ѵ[p]f!6- |*BO3䙳[ :SWG*j (-Y*]1fPf@uwmW?tԒd/N~OĩL-w7X#y{KN@]}L節It7ʽ Z2K{^j-ɳr)]9Dy5MDjJv|ydH=f2 A<>_kɏ&Ve~__cqif#MࡤT``UyU<حyOEi<\[]YDsυbىN_`[Ɖl[uAgy&I b"rʰF~/0z1mnuDT$qj ><1D:"{+!i7D職dv++桤[~1y~ 3o-|0r97]5lTu=%ᐶ9]!7~h'e] ;ȿf}uDހjE5AB:ih}p08ز~2Z(Џ$!RxRf?VvU탫u6J'ykaՑʠuLm>V*ndfbCǿm.v޶<3%⓮[ JV6r0CSp+.Zea|+#RD^ R^; ͓"c@R4Y u+p<5,+q€fD/ POK3ͱ<.)Ms)+j(o ? K|Q_Lō@BǔAb fk\ifO=ʹH >}DmEkۛe]܀~6ܲdJpνM4{@]%{75f:zo笮0FlORmWs3tFIcLp 0WuwYj(EzN+? ٿgGV~"CG,/+ڧz"ybZI;.1+7rj7+0./nZL"7c. o^5 j4WsۊwoQMIqGzeql);I93Hd-|߸qwT' tkR%l(aa+v4ꢗ-SDIsYzA} RK;% '+nՖFVq̞ ;1vV9f;ƨڣ"TLeG;O &TP[P&ݣOopkutз?B,̶Op '9dN)9l|ўG'O#T Rz-0$ V 9~30"K>qa}r1&/ϰKӝXNe_$ ̔&dꕳ&Zztx*}04-O&eFz*FKee a}$㘞(^ A =K/0x[nu/UPuNd@( tluisAJ鈟F^g{Ч;q3<~s;OSǯ4ATM?w{9D瘪R&% /s0f,^s1FO&7,CFpT90k߈g`gNqTCY2&иO1&OuR?=>9;4TsV|ʀ9]UOMq2pO,dQ m#kZ5k]nsߘ.vum=ZWg_?:{= k~ϢgQ߳Y,{'D}/TLxnjIeB10VM*20lȃj0M͒0"R,EU{|o>35]>.2qv̒q$VE[ /V}òHCF(F 0h#ر jdآlp0T0zΩfOS!ROt!`(YGMi d5Pd>U*晠8-=Uٟ-ɧ6 =eʨd#밟(B@AAl9so!8;i.`}mbe%Wְh5~WNrnsCF`i΢0iY W'')MZAݓ?g#GlB/;מAKx^ ^ yAXM1xk>#g2K. Z6Ġ0c r ]PBw&j% gLr%^Cw+C`cB퐸0I Πq:eh,JBS@TfkQdȦc4l |Ed+h@.PWM rxx}f\>& $"騌p{qP2l;P[p$4=%f&Qxiä喉W|"w" cxCL34 jHcYFj1E%$rUFwox;rV޵G(9\ÒBZ`O[ǽ5Ց?NC\kԂk?l[WKa [ZuaWVn3U{OD~zL0',ξAAmWH5=ަU5TXYDaD< ~+XkD dxRʲmo}|4Ej e=N9 Q:+gn }θbI=ѩmTJ<ɚ=hMAjuc3#cG0] ˥ƅe-w5|e!D+ |GXB %dKE (O40FxF(w#tvрh=r64hf'A'Q m>tp+ius/#"F_S%)V B\{QgCJ XaI%kRgErrhieCu_/ŀщe2QC]2z )R+0tQua`X"-|B/A.уg^ecĐ]֢p49ZTįSKh\ى[Ȇ.J}`pKm2V@*(HVM}L{|iTߘ,ICh? . 6Tc$gAsK >a!`(jȂyU$-DjEk̀qޝ4rCt) ǡ#[Y5 u]BհI{TK 㩓&Q +Vr8EVe/ݹ El|Dy Mg)^:Q<xlo_{?{py}ϼg^3{] ;˝TpnmPJo!,o'Ոн'3yЉ"O -r]v?J-A%@Po]8C YFՄ`jH,]$!ШmF?j$3 wU6S4^*5UOhEz\ r\A>u^F#`V)>."$"u%]?5HB! _e}5%_o}_lLQgݘ;qSά:S+ŽU "\uIDI6ŇB`4NڱUw)¶AX ,n '|ZO&pF_O^n6#ˉ`ޠY2JYwZ8_vcp}ξU2 șHR1w6@҆Q/ixb9+"$b*~ep3EJYzuRXSM'r++BRVBC˖^Ute,h fQ?~|UT3U8dVם$Km=c {9R%aCh*KXIR;zI9갩b2ưRɵe.^;,Ri.>0 7+$>P6.ZTǭdzp+M$Q\$>Y|Ԇ[~`~2o `fBY|V.BxguF3A sRܱ'6z(sdǮ;Zsц"9*"I,NpDgI7ê.]#&o|۾jK%S[ F. %^{ŧ7)۵iT紭h{8*7G=+M-s5ޣdEA@4找׭\*O2GsPȴ-Q)Ȗ`W\-Sv S^O,^p.4\-Qc nƢ zcm*|Ptlc_G$oSԱ~6?VVWW?O뢛U@tHE-hc  $nHʩk=dx7:bBg?j=2C Brw;n/wzpMex0&KҠ|>n7VjLMlKT_EjtM>FRwIw泽ӳ}|㭷)He.1]ꏥrY UQjчr7QNW=S\, !tph"Zj/IAH w|]kDQ0-jMHogϰ1hG/2VOKvJ/jՆ_(_>\y?-Vw9ΓU~p*;ⶺs165A5\߅}ݺgV>/Ƶ|Wz?+\7p܅;uGn9|?wv߉;q7.n2Ҩ\>9;>k7fk@[|jYX72e>*Ic׽h]˻'{@x,>>i SR87b/_ĘN?TmEW GsxDْfn;n7#:,޲Yn~\6# 4"}5k<[0ZᷛQzE碟^﫽Vlr?^5M߭,winNh#xפ"'KQ]ezյs[h+C!Ԏzk=BlGzQԾs8'j/OEο$8|х&Juj *%yIm&_BdLyڶ1wv"?wP@9y(+q 5^[#Ywe*z~3pO.thSm[ ℗sJalO"Y`>%7A`td9Sxn+DѢ[櫇'k/ |F[$bO< ryRyRf"wr5'oͲek D!-ݿn~Εe]ùGZ${M*0dKŸ W]Ijef_X+smLXY]>Z_Ə ٚ[̕϶OI-8cxWu]\h궖{ʞ3-g3Ǖ0