#!/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=c5f70cb07e10b0927e8a052f3e3f6839 # 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 -Tb L?;M;qW4`p3}A6..dcv ;}Xqy{8;^{1d^[?Ӻ-ve;?bi hPYeG>iՇZg Аn{Ԧ hl$=?҆H  $A&eAzhQ$6uF*DR^Y_;'Z j ik0uL2TqֈVvKp0CfCJQV]ϞSv.p fߛjVsUߛjE> %dAJV`n6D[ T)kTCטו{Wߓ<fiv?٨B6T @*ʃYYYsvdt7O{W;q y3ȜV!f~x%Å(Fd79LJLbb cG<bdr&Sj6){Pl.)S$njpRB䆠PA|iK( BJͨ 9CO8 $qyZjA d#9[wB%@Xthpw*j[&-Sp_Y yeT7'Aj&`:k¹AYw}=SboHRlH(֕SHaBBobP1z9q|jqx aˆ Z<"Td BZ * o߲_+uz,$ [V*hu B,snDde?w# /HK{pP.Y); +@F̉İ7i|yXwnAE.B@vp&gwn7Yxx҃ d%:PX+(N`VG ES1r` O Ćx\b1NuV_EUa@DSG"άR&C (YՔ1Ihwѝ|5#fEJf$Xr;4;ѫ\`20ScHZ²!懗)Uo99-55 +A KКXH0 |tzkr8'xw&Wx\Qٹ4{ڷe=ΰo ]]}ȇ02X?1y]!(JEc1R4, ~-~ Wf/Hn kG{_.آS=\Q7asp{xbf=˒s1@%:b5pëuOz_V--{b"ȘAoC[BI3,bVdIjaA֖䪱qt3554ΐb$zcp>o6vF|nKhYtñ"Kfh=0^TtANW?fIkY_r0$ϰcy b5õ5zZ(!XA~" h]diGA5cy{bҊ}YVo68rnt&+/b!AL jQ&;i^jJ-U A1juu{ܤ@6LT-WMb9Nۮ12ѺC%o IdՃQ䓵4#Ƞv^@͕5wklL'U83*TjC@=t+kTyc(ɤQ&S'"&KE 4O&Ӥ:+k jEµLqZ)1 qY˽3c{5E\X eϸp̑K#p{1LѦoH?Ef+BK>H܁&F\`!A`(q=퇖GMFDT)e5 I)n{̝}+we_\te軡)2%y8 @m/V;-7< %)Q.qQ,vSw')+X-$3 w( ұ{ ;{{;X!Qpc|VvkegKοxŚv=0'ZO5 *3j PnmoC ׫%C^'5%wܕ/mgK&/;R&*Dov`Sijs'5&.6j=mhfuE9P@!+Zԣ,rmsk^˰y?2 wgmpEٵȄR2U$Z):?W̋jz^6Oڶ!ߥ҂KA3,h|-}@װ8q8ڢY!63YxeՊ ơkfEBaR@H4p jr+(1=!c`ZڌSx~b*Y.W߂Ksbf9&)$݌U Z}w_}MiҮD75u!*y%QɸmwNyf_7G-ݼ n$NR1eL&{!tw5& S@kq4WH8.ō VD_-oT6 r TAcB~4Nv. -lSǛ E#3[-"`F-ɥ H%=b9eIWBKOqL ĦoDdb\ W.@$a8ܴX'2 P&ʥQpaP3E0tmT6l,ȹQ W_UX_)&VaٱoW zYSP8wQrl.0xճS`/됿o%[Ҫ. 0FkD jq>f)m] nx}0g1 $PMK) VCYZ#ټ0j@+F5v }Ct^Sf)PEupd̀~iB RbI&1p0A%~ gM(Jˬq| sg?Ne}7N^5 ereXypWyOS(RhxԤ3UgOV ݊S6i85>1`Jf4u8Bf|WmCȮ]%xwk0{.|uDF <8T lJKTjiRGI 5In_ ,tws߿\-c"EEduL~LPh(U^ ݂2"GiǧO.M ncͱzshS|\ ja.ʼn?^ec = TnD67f(ؾ#QWGE(֦HM8)efd5kbrJ4l 4+Y 'bO n>#j@9*cHvX\P8ill&y`#l$^;C .2p]s./]DDQ׋%7ĘC7ʰ|6hClNi.rm /im!8hˎ\^^uE7O` >Xv/=i U??9'$? b?aϏQy+86Ƒ8/W2"Sy IlwED2*Vdl3H!;˿26Œwbdy} o\"Xk 92m{X4O4!C,pۇ1:"ޚ`p"2O{_Ƒ~6NAH&se>fR2og[Nf4,uUrj;u16$n-mug6DgZ~r̊̔M7s{Jٗ{(]ڭ-7g7Z: Jspװgܨ1(W~f\83D[Â:ܑ Ƞ H)]K"U ܂d@0qΝz$*MP s}q,׆_:kxЋHqx@ \[?6ߕʳk|sᅦ{n=[}ϭVշzZ=Cr%G^ IK\Q3&LAxV7ǻ$Z&|+P;R.'ܟQhEVHRh[I/L)EyD j{' 4Oxh$}i6RJmY{zAR}ʁ=fauwvF} R^se(yuNRm R!I$"VX5rz6_6s7Gɛ{-[29\ 7R_暀&` k暀9/ȖX-m Cưtt6 W p.Ix5UOB X[a'dJF3V+(CVa,2@4)Jlp!Yq[Ov2υN$%)uqp<gWfg#s;t,SC[r7a'J]{Wo_֘:M;hFVKGGr\NhL}q ;3#e|c4\jy:Χh<f 21,b"۴ %<&zWqPyk\)R ~[SԄb o6`}K,I#’^,nn,g%߼bs,8)oTQ$pѫAZ%'#hx2 $-K6aOp}ÅNp\Yx2ʘN1$1H$L 4Q:B_|o Ww-!n >rHÖ]L1Ň["KxpOLu:=¸]{1䨋C׵-L|#,.]ظu_'Y$>{tn%A3ǽd<"`DF[Yś`2 z,VvwǑH$j0ﳻ.Z>[r4РXtI*QI#ahrDC2 A*|;"13 ZW.@ m>+h̺$,X]b.[rMMт/_sn4%lLM(q^ߴR8msoO~|ۜJLy4dКH,ik"4uZb_/9]9Kx:-i 'I=%̈K{/^@VL} ?u Cٔ(XSܹ{ 3PJڼ t$K*u8b V6Ga-J0D!KPb%<{rdkf`/Ε4NCmy9 iKN_?Ж;up jJC!(+8P軬Ek,EgY279Cp᧖`bh$ m%U9=]#|L)ƈ3 ೂɎԎk:fFXm,i~ɘhӧ_ו=yN-rӰ$'0p%#bB֠gǹK[ $@ /"l;{k}yV^tȾj] K2ˤ,ӫ'Ҍ"ԇf@kZvenTJk/N嬌 \\]l}(L&}=GhWax}MC9E*|v T&/!ʃH6 /^/_K@! XvWd3HFcB9֦VX9oj7'c~Xod?}^\ߜ{=s{[qo׃Bbv8e38*+L^QMh8*oS#*?&`eϺy!Nl%G mrSGŌB+Ce6T0+7_f$9=O'7h]:%;Z/a\%eY9i݋lHmagZ6V>OL&mC7%wMN^g0 vlG7h` ^'9m< #=fF|O% vX@q8꼰H'4Ochְm-лo<*lWe 9 ȨolGSx8-iCL-nQV`4(,qd?<ǍHfř ./N˥r#Ofb?KNN ɜ G:ͪ:_]duIn'O3u*]`=?Mͩdͱ1b~7AҸU3v*uWC ڝqR; t ~UxMíIJרS&=jBgi\(,#$bhƆnjף'4ɼA9e!0-[g$.lbv3uhe89o:HK*p'vBAe5a$26DqOW&/ڵzg[ܳBy'h3af0>n?ґr6oRjj򡋮K1IhPB7fd\]-F[ ަ52̄-əmd/{iBb*NÜ23yix)V=Pk.kDa=ڲynj:%sJ8/!ؖ~&P~|{O`f;Y_U;9AiISzݸCmanG=WŭBтuZ5nn8D Gk\@XhT' DmAirnp~C`OtF薲?DgA>T Vm.oq(dU@8㩰/7y Vex&\/Cپ_|8){yk*@o6 LPU3 kOuaonodMڨnnș;^r!)EV !7JC w>*m7GC `}R8/'08e zC\gݫ.aA'p}zDp/ûP}voH{@"x:϶ud؉C%J@~eˣzulsnNJUI]F]ݩB q68)}=0%C/u襭 E5 r=T` M+|3 _Vg1-z λ5;r3-XrKϘJѡ$kn֗ ٬t 1z |u4Yt@c8p Sn'ˤʗ'"jNNB%ﭖDKk߱[!Eu;7Jh*h{ѵ~KBY_V,=L(2}N_ Ʋuѹ_wvhtK,jrF{XpiNXz0 ;dZӴD9%PcH*r9s)NާYl1+: !BYɰK'F_d,S(x{ vtH4 lf# V)%!p9L[aW.<7m^JBLm21VN^K׵c E [I0W ZMfRp"$h+YL!{;&'!Oj1 ˢQ/EaH "W:YKQ\zte!=hTx2 6NԱ"d -}Vx 8ֱǢJ6k\} p,߶ [7e h(eBD+$D&O{*|N6(Eb%sz!U"_.2vRo+f=S5,L,3לKIWrPVd̲L<I0)Hm hQO$7p8d_ %hRU!7eU(rjمB6./W ehq qf4q^ktd0wq-s)`f'Q4r4]Ԋ,(Xg_5N]ר4۪f[M@35Hj7}H;ј0DBɲ07cb)IQ꼸Ι|̐XiMdh7I,OSȹW4\HNJMmY؀|>zO\džatVef[S&XA­}Vuf} ow4Bc0+ m;`H{R7d9o}7'5J-dk, jm}Ǻz_Rhh#r!5W:ESՇVU, ;T*VM( m)vAnhK-[34cpE)><9`5]؜UMC%f@ c")%۫[).K+[\q{/_4R%3!}9 J!Ӿ;vݞGY5SSp,NqQҔRky m{xYm?D I }#+=%eH+y%yM5@1:,sbH=q# mֻ3d fH"I'kGN$Ђ*MHn= j?7|z=sLʕn.7wA@v3Pۏ*יA]Û+ j:pPD^{xW02Rp#`zL]s V7qj_1Z4n9ۗ0EP#16a.}z֬}9Q-m2YJ>&(؊ߓ(ԉ|3/2 V6V&Ro 2kJBU^raԗw:9];  Ù#%t&k.Iṳ;i6j s쵧н}9 *ɩ#qX1"R/MwM֮aKcُ1VZk6k 0*JT2%Zڹ[BYԐeRZJF e#Qm5_7ݦkB[9yv%K5 F:p?&5E`r65`K0d8&˝LxD ݓ mGCjCg2"-6^PϞSg}9Bz~ZTr3\>LJ%Av5 7"$&Z"2 {z^Hpt2]N i zKFvFaטWNm_a?=][$??|<<<<<<<<<<×@J);D244h^ojJ 8m')&1A% Zc-` _Q+6JJ@}9lZVm^"~DH @Bڞ*y8좸ӃςoLS`j녅{]6(VVB`s>'{$aOPE{c$OE*omgSޮk̀2dJ؊mݪB'ћF !!D/~VzHgΣa(-esC( 2]fGJ,âD-(TGəNo .& Ӕaxz`gS%]{PYHAV"qJ2yFjoJ֘bIiItË Wh`Ah>_ JP-<■6kQ~eE#\$q H<q(cse9'}E%.O=I\LZȀhi匒rخGg;O!-ٵ[՝ g4DBT)6\c,R/@"RQ3"ҹFA4vO @0= $|ڄwxi%B]j us;ΐL6vf{J} J.\,$BTzױNlBB^B;R%'9p 漹iU.a/|܄D[ìʟPt1XDa[J[L8g6_iu3هOKapAj ˺u ;|Sj2|>=8`w,E`|Yll޹_kXD{f֟?gXDgyߟAKA 8OM6P>l0<>icgt wٙl]LNuЖ-P%oOtp;j+oMP]%($Cb 7z;/NNpIvON5ܭ}d2ԵE"unzj4SNSv'`4ւ]i1A qڿ,Cwa<Oķ-}^# 7WK@:\pQ}[EqyI+'$s.\( &cCS)P6ռmZab lqSBػ ) wjUhIE.ψ,hp  0pt_-]޶//x&_&Ay!P[*ddE/Z0vX Q\Vlq8f_f\gY,G nХ%ڄw@*N'Tx^wRHVޣyvQ`I;$EN,^lVC^5fQMG5Ev=<!y)$?A<5d*ti'+lm`=q͢(٦w Au\ą'I8\ϰsXl|v L/grtu")9۹U3Ǒͪ;7T]F%,WwC/\m C{U]R  zNuZ!ܤG} Z&wXF ?$Q 9)BL]iأNjIz1p0,H8u?ęiκ'$, - 8- .6"mȒQ|.n. L)^ҟ -Y `BoQcaZ `(8WX&4Cz R)nb&u=W/ߨ:+]>|ߕ s{n=vߦ FܪM46I8Bx0/ͲBrkd7jGIOcH2my4gFS;0jP.jY[6TlPN0h_B7)R65L_+';xv` FzgYeCdy7-{  067Pw][knPuxyz#e_ͪh0)ǀ1* _j-Y՚U($#_Bb 8uϻ/M ϻ5ݎ4O}F8 Պca^,V+`/;"["kPk׿9г$ZӚ2H^Nz[dyCu$XITOsv+&s?sG>]-$ >ϋNv}2{3%7$fJeSYEѳ_3&Obsa?D/RՈs TQ6^tAiC(Ѧ˨˚u*j|qD~oy/FRFr?ҍ;tdz* CZ~gs3jϭcz}wN~j&&Q:ꄡ;43ܱ&Vb"ܚiaSt;GG^>b{W,^Im%Sʰuf&δ;it;&:v$'IBkl<2~DD$xmppmߥ%1s$~n+6)䑝=7Yp\5>s\;s\;sN _ՉA;iD:21TrPX 6q O2K"AB9Zg9Y(%AA&A`&Gz=E =XHV8Ch!O "NfGʃSޖ# LRO b ' &媾rPƧTfx." x#Mg.%bMwVM`/KoǻnVmr+\íd| 5 %(C!JyD]ltF2֢3u.V޴ު7=H8 #V|n*p$My `S@(;l _h c!e*BI"F9 Y*Xϊ uz..WO|[jE_ZF5/.&\Ҷ}OMD;϶jq릺G [1۾mpY ˍ7ҺRú߆je{ĻUtjr)Yv$\uӒ9Dw4+c;o9ͱ`q Ry/"&%0 &c%̶y(y~=${Hp?bV6;Ξ[;a6n8NHX go"a,>m':D1WMb2۱YL5U,wk󺥞ϰ~IwBlN Pgaº'jSBM9^r28u t]HThLd:qz1* رfyWټ Cnnv[; zh}d.b=T-j6%W1  ~>ĐFp e#6EMzwfu$nQ_,S*QO^Ɉ(Uf1X\TL_xp.Bm9}+PxH!dx 6w%VfF1 ^QwfknQGƟanw9܅<|e"H6U!t%g4Q՜D:ٖ}e7g!{/$<5>N\D:#>dpM:xV Q_lt-J]lV |}0}S̻I5R wKQ !;n I?)Gurvdl$kA$ƍnʀ S7r1"O ї;`qcrP%ؒP\1bL 0 FT[q(>{dV_ڌ,^8f`ݧ_ ~b"Zh3g4V+O/" m "ǎqhu 7ÐQi!WP;/Q趖G ,0.Mh\eYr+]Eg,B듏]~ULzfXo:c 9-͘ =cսbLm8|尶 U勩zyNCݗF=gljR[5"/kd?ST΂$zQW F9.,9]_[Ay%%مIP0]^S;<; 72|M-踹簺[;IPZ*Ku۔4vP0X>^y JnmklMGD"[If}bgVĊEHK,y*.|8ই56Z jVr=m篶RǴ}jnno_3sn?3ZW(ؽۗp-|R.ճ3ߍ:#X?M?J>^zyrDmGoNN" cva_GxQ0Y[+6 U'<[!VQZ%ޅ.L&x@@DH RX -]wGc䬕>5# WK|e&E RI0Rsf  l]xɏgK\;MH̃vOjA:`V:+? %=o@MwBf44xEp\| /\i KZMϢU'\GORPLk*EFń)o}:yDۮd5oP.\̉k]E ׎0סG{j 4+"T.NKf+^׏߅{t'x$= tFN[a)OFQ'"g°MR-bjUy@..1BȘH䨋l l)^Z<Âni$aW+\62+? IcL ]'=8ap҆ ՞{.jn&'b͘IS&I'lO:p[100E_^ NF=nJo~bb9}a6;'`~.~P5zşS؍ (l>2|J@!/%ZV/mS]3 aL!DG} KC?iax'E.$GNg#1?cdT.CrIº@+*rVp@amQY}Kc@;ER{` U rxH s3{V#LwG6|rZW^dr DāDN (ۜ">4Ap|W86Հ ikppt{qdo bnib]Wy/(_s}5=E>_@"nmÑ:qkǶXKr{(Rfgmb>ϲTq9ϱvݘ}= L2?k]lDncE icoQl}CD&G-q,)!F/:|n>Q+E6( )635"#F#y.SAE>y1Ϥ{:88&y\S+HTs% =a#ث qx8^ԋfLm6II0˫wG~QbCl Wó}9 &nQ᥊F|q)xٽF(ZХ= 7)ˡ+*֒1[78m,6-~z=[mQM!ݛʨz6?y`f>yM8]Ȃ%Ýo Z1e#CV ӯ5ՃѨ]vЪ~ -e%uς*+J;Xh=a5e??Q4 V^ND!}9p䘹0%gPi݇z=J] R;(!mҠ.ڸWudgkls9?sϹ~OyG0+vyl;xQ2nIγx0})h{eqttukxqH&NB\w'<찀shb&V(b%Nv×գ7L~u5 cM" }#;x~/F{:g?SYY;M}wJ?㏗hPA?ǟ'U^^sv~25{ 3',Wi77T)XQvAc9)DA"ĈXWim1˽ a{iaFhh|P JgwpR/_u>~?^Lk[ t޽ /n/pL_BttI$Q}ڙ, `i(n]-gE,HӏI붸,3ֆomցoH%ۋ[(*(BᏏ=/J_@[8 2}Gh`GLD<@ Vl ,_%麤]sMdc9boZdv8ÙT.:63SЅˊa[oU|5C%NgU ۬l5oAXf4-}Ai?q='` :yְLORsvq3 qUK _˜a1FY*K#EBo6gv[5FGꃡ]J֊`; 6&Gc>z]Os:ђԙ {Z7:(ޞakdI-|[M].;9q_}늻ۑh:}V+t&ޭ^N2=i%ukO39Kέ Ya>U9Ul=G\>g{~Zgk}Z/̊+zOF<x@Jm}`CQJ]A< E_ߋکIK-U^W /t!w gW~FʭAWv?0vnpr~pz=tViOF#8 } 霉AB#qpAD?Vd bOFtșk}BaB3NYt\"E<*ݺC"Jx(YkW8JtZE}+vĊy"8a>\`"$?P(׽s$""Hh'Hz 3;,F<"Ë0rq F dTBɹLaՙͺw}_u *kLm8΍=8[-CT-c eU^_.y!fHk Pxn-"xQ|d5E8d*N(*\b+ʝR:%I=t5z˧dg>[˘L{N/F)#|jٳPL>fa,! }R|M'P94bS!^!'B%"ЯF#mwYĮ nɳ Ǻbhh#j \P}x|̄:r*p响q䷱* aԖ( .6!˓@M{A F8^e&T ΂S:nzx#)"p *}xq9m[7~W`(ƉBq$0ƫAGT yIϻFnu>Fy쏻 S$ޣ)n< ǏV'h_Y+??AaL*+k嵊!FYc\2CX><ֆج0{xvۂ6\g'C;<~[da,?Ϸsx@f9<~ cK!ϣ(h% n}I0H:-o żRC(9A{v^ w;w(ӳ!yUk{n_]PdiW}B>?"!d`Ntڟ\]mt  [j; fi;Y|G |Yų--u8DqxzS,f3~3;/J[ 8 N?;1Z-qÁ@q!ub޵F}88" U:qZ0" dQJ<?.-ϻ |/TB{VcZp2΅ʯ8{U jFpЂکR)s28Q,<߾D'3e?n1DWV0ʤ/*》xq Wܾ +o({DE1LGHp{s F+@΁v^{YX˕6૴104l06.GSCYp0ۖ g\51xv*??0??i5fOFL:xrb{q\z ^XGʆLs6P)Tk:b9ŽulxMZ-9ܱ<NUeтBFe'wplezRd`@3qrMp, XQ _|ydY.%: mAĽ=#2hKk z6o;챓g3_3ΓO,-^3gZ|t9  B^G8!HsbgZ%9<';\={%]WLc.gg0