#!/usr/bin/env bash # # Copyright (C) 2011-2019 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=ea7fc761bc08755cc03c7adb5a0b748e # 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 ^85Q~l<֪ǵg# +]BywٍOWk">Ct\ݷB9aqG55+15Y! mX g]G"}$E!=QʒR&rwE '_*28; ɕ4\mLG6㹬qɰ=Rθx4(A溲+[ `V"*Q.۽^W@3xߗFȀ*9YO]y$uT)^(C#%Dڣ"tW `d@=HBALQeuJb02+ܑS(LhcEBRm&$ 3볱"3}UCUK  L̃>2lF>"bC}ek(\G`F$rJEO 罬H%P ̦SYnjqTP:Oq}'#8"fD׹ ϖB`|3\k{ 1s>8Ԛ ` Oq솘SCOhF%+ &9čB^pE^$'( 3QBy%:|Baw||)_:k5IT*7?hzѨ_kwxPMT @b ʆ\srt/u2N2"Wpіɽb@J`r @0 ƎyĢ+ N)LiarS+f dlR%$CE?LY1rx9+d Bt{.crAmꂴ Ez5{g HvrF#AJ;0˃ t$Vn%%Płj^&h%+#&ߺ{{El կ [, n=hpO^3CV Eiٷ"e^U%t$,D,OP#H=A̰|o/4Q*rwﭖ4W. f@3 y=I xhD]5e3 z΀i*gTS|YW\/tKXyWL*kW 3Jڐvo*:ޤn[_/,@r5$ r)Ѵ6, ӔڥC CDkǍˇ.Vndڃ4+˝@|"3 ⸷*b0L-Ryub1$%\qkbk$O$eUSr_ }u^I08 ^]'ߵa@jB4ӥ-$.YƠyTia/PdWq;BHŸW C6\y8vJ콆N-VKe6L#>>}$i=,zsLJ,#f (Y3P9R|=E^Ceraߩh/"܋7P A^<3TS&B6ks^" /ڱLF=VrU)0HřNƲ1HHSb8p6ҿ~`_Ηl ; BHaG4n]XBԎ"Xwr#R7e! `^loۍ7'^@VnЈd>\QB34m25ÿV90@05 y tIy:B%;gR[]l|&E(9MjJC$mwC|&t'i7+$Z"fXs( 0n\,q3{t0 Hxf楱0sfJKi&s{4ӈa)Sk+ޙ:0LY0k>^/o&|#O"#J>-jKәMF7|57y۷Y׀aE!s?/'-LíLb,-,R#v T?Gahݸ;\&X^FV3 ۸Qg=PJZx"{0̯[͘( P @(x~>l\ҹ|jtMefHe2]@PTJ,*0y0 H gUR\lL><uEMh.Bb/BѴR%s2+@9ܚt%MZ/n[EmR+@np!c+>.Dc!)+慒2f"YuѐB-UC%GbD9? l>I|o6tFt>γSu%Eò- "nk2!L6-Ct 3p,V3|dZܠPK\E #5Ȱ?"Bß <˔ !ȨƝq3, X8< cߚ[=l?>8 P2 :-XofXlB=m}>bjdNr7i۲!2ߴE &h'TL?Y&+Ls }zyMڍ0p!ii$ -ËMBDRJ,ϥRݢmwe_ue|[)̔YYB#}e~C=/ w ;* #hI X X]&0f__QJ;;;;;;;;;;uX)㧊SYmA` E񡬜EikÑ)򿥽I=}ICZ£!ܿ /]!% .hWm-'RO<PGTuo,q5J晬FVȺkURo^2@fK/%fԘIA AIx(v0>AFQ;*ߣsjAG/׮7pyD.>sTTTM q48Y{2kւv[1IJ'b>>nhf)h$ΡcXt.pÇ$lRH%v$mͪ0Q<{6ȋ֓9c${Ϟ%.SO0Q4V;4K4ϙm#@EBpep 7ݩv3hӴbQdFTbOS94NJ)qL ;c>aj%-ƝZk<':}jUt㏻޵yO#!!$T^}*q'lX-f+OJ)p> nFd57D7EnB"F,.1X #ʉ 9Zу^7bxXәdJS1 g=Plu=֬[̔OqNT/fM>$-?GQNԬW.@U'0ݨQ3cDii2 )KO$ʻNEBOn@.f9Jʥ#7k ZBb6Rĺyme)ʭM\8S:pZglcFVOGi߃6Y^nV_s%rsӬGm5L&yXy(\ڔD)nҥzc^N 'A93mUhQ0x&;k71b7PyCVԋ, ii-~0YKD\fUfばو҄x9?ks9o9m4_nwwn!~C]6l_fΑ0+ Ye򝥗CeD։'XFl]x eia؉;XW-% ;Y{ 8s_ꌤ*g10;X3wو7#v{]k};f7'xst޲_vw/x]5aGo!N n9u˸>?v;:{4CyE) >40L 1yo~*cOk {ރE37ŰqT&@rY3O>dG+eoJԺ[-˟O/!gZ^Ԛ}`)b}~],I}bd.][٢-.&eҘd_J{qw2ٟՄ]pe+PJvA!/E‰72RϑxJ:H?`F__ xh`+%PVІ@iH=匿jI/|S-Z& kIYѥ;wU!~b4mӔfc1zI|mWV5siۗC|uq[I6FAf͠=*u$nd3%dō I^9U _-u6mE8(3lGİ/.uPAM F 2elb÷2󦅊t G:Zo&A’Y[h&}$;w\s4ɖ.\+[|k}1nc<R2Pm Gңn$gFRO??GF#_mWv?ngv?w R7,gyîە_+F9g;J_n-KVI@PNy7_}>B2I=?Ae:D޼&oQ_fQm$IW(nF t2n>zW[Hhu!E;JZijWTqIO8w'7R%^k14-,nl)ib'6׀-5jPx2"?ʒ[zpуM0]p,$y!26Mٴ pZ> L [fkhiyGQadt%DrX,8M1uV"[$.F &F}yHcA56iL:z}p* '2GAR]YQT"8t7,i*wJjnv"全*zKӂ1 $ {p']4GmSG7DS '7rghF`_ ?f R;֛Hyfwa]wtDMך쟝?nH^k͠f̡]U7;hq& /pO1L|MkZ|?5`aiTC@q߻Zt[HB\bܵH7"~51@Ws]!&H]̈3vz "BQŘ `g>FN"%J#\EY~9355/n~B"k+Tq50n,==)TBӣ inP1ܝF*G 3ַ R ERWNÜآNQM0w.5PeY;o^[zOjPы" =4ĵr^Tcx  =sj:e o#5vPvb11hC=t^xdLMDhC)$&9:5C#c#*b &폰u"3t>sƏ jֱ2,p\т)N7vr×8vs;B{c"Rhl(pʥgksg^f@V=^Z? =X88z-DU,I~AcՃsr9iHr) \lhg! 5Hݛ{!27 tzo\:!,%KK- p&k+<A3r *ӲTQAo@1aB\CL$PKj]ZEU%j$FlCUaXtagl!kY7uӹk%s }"S ʭnPxQ:ȐpxZf!ׂ ?4 > de>24 Y @[n<+OӀ$s|nuV E| vWY sVp:%X2^<#G}\ISN'0/rU _e֦đ8?534S΄ȝoI}A'U *2';:n_bӕn'BU8F|:ʲ­^ lk_PĝO ɡ3jBf.9LTh)񓧙pL~N$+{6۠`R!ك6rD4cv $.mHoړTTUq! tC_!U.0Fac7fdxE]¼)̒!p_aY<ݪw7MoSf8fꭳgŨf:l2$0Nc- \oD|7FLRkb\Zl% #Mf \&„ҚLq H=H1RJ]EQڞd+Wsuj`7;*O4>S$5>/)juWQ[:=`.ԳjFf^AkY̢cw"O!o؆]܁F)IJBN)vA*'Hie("[0MËD^0G<0Q/&\6VWq: :Uy.PQډ»@.LY>K.g r6ڌQ39<=[d44ۑAے+"U=3BWѸ_PTS0G"N6)C&TDԓ:Q O/|/QdYz)x~obAznH^Fk'mF^Kt]۴VRq5i!'ì*p"$ hEl oʌItY;&A2/)LEaz ze7>\&4CB˳0x0ӆF~q{>6"}HC!1G ,ܓmz1d\QGr%?ߴɐPfF=Q'F"_:Kk^UozJ}V)4rm/9F݈ h/U@w 苜 1,jAhpUhWH㳳 CH ;UexSmݺ'Y=Ʃ𽷷'omB(:]4쎼#W:çGŶG;Ɵ\(EԭfP/!t>a }<09" iduO+K]q4n9AAIr,ed[͜_ RK,^KsͶ\yټ 7]qHTo| K inI = J;k^?|0z4©WI~aą]*r29 !@@E;KKV"A? x.Tp*e+;iP V9b#LsPvwË~0±t7gnoBCBAZE8-Uai6 }Y^qg+Ю vo]d.籶+5ګ}&ה;ت,gl2`4 784Jin<`M~>.w)%*~B\=xl.Z#ZMheS{zDqw/ОM/M?+?wۄ ؈`\ rc`=covI"6D ,!0A$ :[2d&W KYxְOQСL%RZ,xϼSB19D'dÛ|6f-r "gpM7θ}hsFWwł|{v> }M-"umcdiFlsǃ R787ݣ@)هmK"k ճul~B[H 6"n{Mrz.!qD*0tA F'񀌓HOX\/Y~ xuo-5q:$tZ2v{o>:be߹'GUqAj{{l o};1AE AQ'{Yjܵ QYL,/ #}x,D9!鬘n=ղ 3do~C;)&ҐAf8RuiGBax7=9t^fU.vyonAm]C( ^qӧ*k(-ΘQ={j_vJ%WW@>= Y2na6LnZtv5jl&Z-}|&J +#xS,}'i>WHPxe-7g3 ?U)W4ھnuޫD|R{_kg_违6FAnᏻA{'}?>zEfɳhu~^Wx@Tl@Z}k0BZnH>^+2І,:qm5j\%'8*`nApĄo酿/LЮ­#<6 _6zh# c~9 ^tV @Xm7uX' 6?pQi2R{ĬVߛBNAـS^01Q3n#Ѿτ  ay]'C­#6xU _ĜyHbLTލnRP&P2[폯To㷧pTU!ߌerVUV&.ơPvu~|=@^3JGeVݚS0R]&ρSKE:oA5`~iF~Xbu,/#j*nFld|?=XgB.[q;ms7yMMtS)1;sf͇!TdPSxfU8BS勀'LdA [2'5\;uf~S1Ƃa-z,dڰF®>Ó=m%cVHvzCJv/ꏇ5E* i0.? r NM _@ަ 4\IKRkrj!@td'x1'S:I06Og;}a9NL4y`YB7ރ|jΆaEcXl0J_oSg my[J $_ hMxDDiݪڞ@LPܹzѐCE#GN`3xK:ң}0AK ˈwU*SG.2ˌ Is=%<9ؓ'd,7H`(T5x)CSgo wS-.)Լ:%!)b$O"E ݔ1PܷLɐzP&_`2bI#*3d8`9}`2#V1 ~8  #MR:}(eI"*N\{pUSY؟Q\|w.w_= Ҽs%ZλG)- i(+:ӵqqIor?R}t_A'^ yGuҴF8 bqK,=BuQp0Њr[)B6IY&kOf2! b-#ʅ؈D}mm!frیaM=%^S*8Ȯ)pQ huFYRN Z<$|ѵh]]F D]x62P[֚Z7?nyŞՓ9xi3!`1\ӣ ӭl>4p^\{hcԔ} ]z̊75%Xi1m']oI& Z4wX:;޽z˴Wۂm}4W1-!;)[ee8$>M0grf g)PL#yV諕]Tb%/rDyyx;"Z>A+޷ܼq-ZyDY:18?ȐYei>E$`V.ȉ?vOyӧ?x?W,g3f?Y,|v6l^'ѳ!Y 4]ÅRz}Y՞tk5w JN* D :xd50N B˹*&_ 9T+2Ŭ M2`TRd *PSFw,ՠ5shZ ] O'KTZDW@TL8F4<++>V |u4wNfCRk8985b09cUbyBeE%tVd-Ns$ ;(QFRj^amsZ0Mr411uC[34`mNcFpDlRu-g-y(ICQ ^ ͦ3_#ppé9!M7OaΨID)uPҨ_2&DE')+#i=Fl!:mMŬy>+3"0'7}а抟Qk|g!^&@Mr]u" 3C4h-l&cTT -a^:qWll}rNT$vZ>2vh-L qM(UhnCtgI FҏZdA7ioait܋NwXUPz/AssP n1zU.p*Ũo+(+Ɯ$6^ БÛbb|AgbBNw_R) C Qrg,_ժ@}:B^vh^9]\<YR;o Hp ;i3K_nf N3ti9__L`=ާ]5 ]z%ٴD|1ы-wFIP4ʄd?bV-Dq(l٣N> ;9gg{:iϐUI̫ޠa„ ˃vUYőZ0񇢃{[{C1Vq?<~3+탁.wOEVXIV{ ̂Qs {4V[̕ˇ;v**^p3B[A^۸1P*jG=zsnDX lQ{?>XޠtAxZ'w~ڤV.uv{տ]^4XVnM\.L?ҿZV/WzYM/bTݏc F 3h&>9Oȼ"/z6X|Oc5 N P54?ی8o-J1ѯ2G`L޹s_s1N.no{ѯ ?OaHeqHc6 =(_$6׈g"XŵvBU= x/Ե ={U*KĶ^U Y# b g[v>>lͮس&w뜵A*']E/\V*9; qzԸKriAѵziԨA{++гV K*B::aԀ< Ò[Dw w.#[}͡d *5:0dt#pm eDĬBT?+++Eӷ7~}5]BU#qXxU\0 L[.jy֢Hqxȭ?=Mß-86 $*>5F֜ngzwGhws):-tb)5 4 |P6.'KIw.2ҷF۸]$|UϚaV.jlI}w-WXkUfW'Vn=Y' Hǧ1j<'Eb/ctGe5wl(D^wuS[]9<>m=^=  -2=\6uǯPszu&`[A{JwN4n@m4vQ\ *"9PFAhxfD=%]j܇`o Jt¥L)UoW#L;Uݶu(p -=0i>zR߽q/=g){Gz }aO` R3\DG3 =qo=b&ĕd cnmm{J48d` +9oewedޕO@~T74縩+XW&肪VAJCMo+*PT@jTw}DJQ (37$() .s6y*rḝ҄AempNNLޫZ\eBP3Zp;G,cZ>Bv㮦E_AXV\1s+P@ަ6{N2c"hwl_C 'gg ~f3ߙw;g3o,μ y h#~KfcJfphx/wv$E~{ ԥul1yɕ$jakRRYTwbxɭR! J8FIn59 n]1Rp%mzXXVj#^g,{a%$D˅ڥ$f<fNy .SڔIZ=ERGzA;*n\THs3?]J/H0^1& )k(_RG+ԿrJλ^iJP5ϓ;D#*<| m^,?,8' K(_q7J ECY :t %~cn5@6ux[iT٪RzNFo} f0 $r*OX*pގF)5lc˃E+^z.QCH&K,YuLeXoD'>{E]L5({>عUZ`eҍ倵][k\D@}%%{ir 8:0Y9SPP}-뢘jɑl[q]wk*Aٕ`u Jy=9u8MpۮO,CU*;`1He=)SxibtYI2 \(OPGy@~6 ! dl]E{Tz|%ϜOXՙ]u@hP_r־ )/~wuӻY$ZKl=3ajw "jcFUd*; S-k_np{*.ze֗v ;ԀNW2ޚ S$/+Wم󾳣2)j Ԕ"ZI>Ȑ\;r2qA^%&qzssגM_o3пrS4wI~F9C]W`U{Uy $~Z淺#~-=*DX ʁ),Kb\S$!V]yxv߾WnOeQ. B0n{j.]7܇:Sk;/5~I.y3yij >{zĞ-JHZ (z-YJ ݊y( VGqL{q_Lj *W+l=:#&ׄ꠮C`Gdw:VOxǓYj2 lFT+Nuݴ4a0" dIffDUOYYUC9P|[W<\^sD*(ؿH:1 ,fx4{7@^Z6#~rsAEf3'2h3uO-X5GܮU.tqDKҒs*AП9NouLfԘH Rxw7 u*Yl4 ,e_=zp6՜cqI6ZM*|xeg7{OfޓU7ogni,t#δѡ-:sd}ޝQHD>2Hd1E )&јShX"ln-_h{!ٴ,mhGS"c3>ƌfWR-rQMIqmep"();CI<155 7nhbkd0ս0J;`(,FbHf&ӀF +% ќa/^;K9aG"[pT[8pⶵ[Ǩz&Gwfc슭voG$U™tϕwNW>WU}N[Lv3k:!dut@@̴'\ ]ÓT(ǜ~2Q7aJPzi0rhk1v5~`]9D5s֯H0jы߹VJu 87TIY@_$%ި fyk4uү0Ih>eNe:qOU(WEPW-ṟmJ-LcӁ33uOT~1{CE=Wа EmS#!`4¬}Wmћ_>֠M̒1}QR[5ݳ󳿝j^z./F] 냻Jwiᡓ WKsjMZ)V-"FS]q2TظKV21GCR@J>i,b YTZq{I2w1jO/xηyqݭ3å7(:N^b ;P??? 戠GK]i-Nwcn8rR+~;*RV|v_.?HU\zVx/O{rS48]ǯvJ6 t t݆yra~ >OZx1m>{{zjvao( w?a#>aՌ;ؑ/`KVUc-Ũ0.8bQh9 G'F㦕g`mDCJןzSH.q\1*f`!<3lv@}O$P}iɷwlJv^atQU[thظw)=MC;iK3o4 pz{:W{u=Kf*3K$?eZWyJаQ2,4S4TV"Z`r3>8/X,rL݁a (r7EX ƀ(ձZEbړ Gg3#`9,3K0?,rx@NzX"OL"%K=ӅgK[x9t71ମ6["YHV1eJWJlI>i0 —d(SF%Y2|PP=B)b5ř~ uٛ8v|^:?dWEՠ e\:i9=f (fRauKxk>cR* @;-? |ñy` 9f.\;4  ً @/sh,| uГ1S{Xe!.oH\$mDf±8ٲt4">l:(GSZ@P׺W<W lτg\~mˆ VtëBb*&g]iLZ#J œRMh||@ nHQ1)8G|bٝ%(=;;( V&iGl6*Qu+ujZ1ce3#$ی tpQB²>2sPAaNǰd#!/ 5|߳ͺh` [q?@Gy.JnTEH"^A c&4F-4..O}V(ɹ; FP͝:`a=|yB0b. FB@!JG !A(7\R`J%,YKeMˉʡ]Tו,VDO ykRBj4/݆R֛CBD/MKK\D¾A`] {] Fc<)BP"aF!J vUM;C"|t^+~A0'b!ȹhY\qNGW_Pl%\nX#!h]kDЭh O6 g :-P;O KjكeM%\ 2C[w4 }V^#d"Wzx~PR8%'(_@> ÛCg0.o6 y^'uS- 7NNtGNj>4ڊ(mHRd4{NU!Lnht 5dWTʨM"1ꑄRCz{RT+\>ДŸrUdNN4*ak&Ik0Cs"r/Ruvyi4&y>;t5E ݕ"`w慭Ha`|XuUz3L>;U*S],+4Ҁ_p'/Zxehc얶zEiw1D(T!u`'}TyJk+I|eH\C$6O/7wr?{J9G}z3ÜAkF;Et,UxnQv.Pĝ3GEd`[ >; >䬅ԥ ;ÝC͕۷tTmʲdj+^TC$xڙ>v̑Ꜷu~ .N?'6ƚCF4$Vg~cNv {ѐ*[_IzJM~qQ:/.ӊ_9_~9 LJrk yu2ew0DE^7nօƘ }4alqz(0C5k[ta5TXO|wM/."m<ɻul_b' .Q +NaoV`KMDृ:('QTb" \yjx@W;ؙvbìd*Ć1YҖq,݉z߿iVfJle\rj.PkFUj$u|g>?:;:8@>|D^fO2)ѥX:Zj`(ZNG 5ct5HD Xr}]$CUi s0y.5|5\އCݺݝ/K]<~{wzxNp=:='W~{rszxO^N=8=' rMKiT.m5J5->\,,2^}]svl )+eziJW/cqI}wvt{?TmE Gsx)Dyrwn#:,?-?n}sߪGmk=~z} "#X|xx݌t~*wwiYN?!/g7'FqkJ$V.<^*<syҹrQԏ¾s+VFpy~S!Prce/ٽ R4sأuT!] i*"m;#B<%&9 H9$g