#!/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=8c749f41085bf2391b71b78878616bf3 # 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 m]BFǡ~q9"nG@ko4ƣ(-nV#~ 5 !ѯ]a75A^;轋~`` '9҆Kxm]}xzypZdx8A:+ `Uz#b\, Tr1R;Pk  c  (j ?6TC1 Ni].ڃC v3c#\qCۚqL}1mlhJ5j HǃA;g &w=$~D &pA98BVH+#V.kkG8tCtliPXuGqf(7X~NZ:"/"Pƺ`< ժۋXem>ŢSwV񰭙l,-ښѪꃑ!jU]s]ь(H};X,6xZ7s(!禨?2ד^:tj77Պx"[I)Y[u{ADu qm?u\~0{p]|wt~Oy'5iݜw?泽YmU⽕Ql_ 7{qԏhsVFApB%…Xm`9'L@,A "ѓ)5)G.ISxFP3 - &1Cɶ|i?a0KFq1fc1+8( `EoL.OC`5HF,1g'wl9"d(eiX aP*„ZΗ)3`!'c-fF'o?: u}f$pէ&#v$箿ĨGș&;v p\ڊWuU:!Z T˯T'H%I9jO&3(ߚ'A'3eRe!+ 2!Y`5[`-] f3y=I p&i@ߜ5i3zη'i2gS|[VHگr`*ќ-6bI3b  ጒ7=—/asgsC !;|Z}N!l1Q]Ӹż4K;a8@؀ ڴ"9H2C:mO "* '1P=:"¯ mEW;`PtjJ}Tj4XرYq7`qpkxaf=K3r j:Y2`]<.},[+ >, GBj1=*lUnDc!()F"YEۭZɔς-Urp35գl Πb$Zc0>+Q-79%(zӱbӁb=l=F+hTxAS*3dsX\S $ϰbyb5#XҌ@M 0 T ~܋ x!9BQM8X5hRv-NIƱp;2]6?N ZlZ4 ufy)*T\3LyHFiRN8K1a0Jm*,'uv}m*i8Q(VNrJTVh!,V*%C D onXkyy:]i/W:9m-\WV|[H`rRm;FL50 '/dTgZ sm3F6LDS O LZĝ4>ɛ6C#۠/1NMKZ&")e5}j=1ȕ-.2q S%^qe8k9;74*qz P8V Ľ%g)0\9.(_ bkVk7+Pb:nԉWɡXGE:+=p=|nDBfR˞AR`ZϘ+lH n*)K~&+q,гuzVz K" Ϩ <_5T3Sz%(j,~FgLjEˏN/xʌ3$<`"МfsRgzr9 `מ圑FL׌ð\uB2UQ҂L(L1#‘-B .0a<|f]`]v9:8$.9䁱kuk5[ hL*TۀsmrS\P&v9dDPT✮+% Zv0 dAޟq Kh޹XaB+ n]0w,4O)C2J$ sng KA, xv1T`Qjf(wNqpTH/L$j.х0ST.j p) OTڔ"(6^0TԯO%q\0"C0*l wCސr+Xz"&7*q89-X[gٝe(*J4-[t+5Z*;+g6+_afRŬJcKeu? FF X^hK"ٌ|dE#Taϼ)J'چ\~+o++ƯG#C詇)Gq2(j4qAgN~8!;Aل=NFa;n0G.a T+ۛD "4tU .c-0{SHS|B5K2TYF#|-%(:"25<T onOLRc嚏O SJMqR>HtAjc$[ ݌p)IJ#ɀJb.lQ!T(0ߥ dA6#v3_GRTFJ`kcdи]&$6&k60B&SE1ħ OGQ;% w0]D?X {'IbZw ʄވne hˎ][8a<+KNYr0Yx%ˋ~ )y98GnIG:7ʑ<矏+`#,$T͛Zjja1"޽ΠX ֗툳xNC/o1Q+z4!L_,$+qgJw"Вv!$a' #̏6:7 h*TR;6k*rllڜ5Id U~}šHIF9$z][|.?F W~I48.)#M͘gI93.g Ȇ8[F(7rF$!ʟI|9 Ł=K=sJnXVKbXLx'E8Y{ړtp "̥BeD4֞Sܻ9|iaq 6EG&/zAӣM>N[GiF({ګ%l$sECg y6aq ,t@67u&kqb/Pz" Cn33JP͑],2DG*<ᡑeN#ԦU*yfpݥc^#ԏ׺KBMjpq.F3 OM$,*uO0k \P(ب{jovޛӝBQ;ͽ^(T 8Zz!Ba%AS+ vݰ׵,3Px79\_*q5N$a!ܬ,y+䂑U1h p"EΙǕh/ GQk #d&2ڿ!@dcem?Eq@Tc%8FI`Ne]tZxcoqCfM=.&I CJɷwPdYgL2#LhغRen#g$mF֥5`jʿ+nї_2R(p[InmFETWAe.zRJ@ϫ˫J°bRW}.~l$6!9r*뙢 O6t D 18{_$_Z}VϞ?J?`15sM\0dhfD/:Is1qh-=vV^ ;|Bxtgee?LU63's!&jMVƈkZ9_ԑT>R&:Ѵauq57;1rM&mh. K{%OHeMxIu G-݆SCsf-=9-!s/jM AAbQntlm3&e]$(ݭF]~s6}'*.4Xz9IZ6[=o\\qAsuIC=o| !<qh}Tz |"ɾ7]\xi ^B  5x2X. ѪO 04<C r1 E.IIWDDib8" da7YtQ|ێ nİÛa>hwG=;N4۷F}x2},5+e,k2 h\!(Sի֙F<=uN#sj7;"M3WOvŸטf]0zGY^a-DGÃ|7 ntmH/p8Q}/fNenE"0{o^6tҺr:Լ7d8 &#˃Nn*.f sXaZ*‹SbT5IQ4 Jr)| ~덓IЍ`1f1̧A/j^$ p/&cZEOݮBp{[gvp9bP81 0-m X)^o4*uDm/ΈPH@ ~cPNy-YT',=‹PF./:-yB`S3Y:KN6찝9º57+e/:8y !b7 [$ngjЎfV+.7T@2|Wx"M[*E=KLyg"! 9SQyv{(3y) Gqݐw$|F,uh˻B6}8xIRDz0l1ߞJJ/♯NZ"K4_UL"v9[3H9iqseI s8mg,(s 7)@P m!qa 𧛼4Um#C&6cw-P9ն\@i?Ix]SO9 LKlL9"fыWrw?nLLpo]+܄yIw2[~:4=TpN\'֒/%{d.'N,;I}*S HhL2?oo]lDP#mP6Vv5fK= 4 !HaVHJ܈ӎtfbGWЩ碃%2+CLp٫"]x=Lu>mI8KC( GVDK0x֛b gӜ g'F2$!a# fZ Ch9db&54@m@tNaz[zCjJ:B=-MbUrv+-QetS®-Nɢ+u]^u..(ۈ"ᚩlvqsl]6fKG-' q4k/mg,KzsT-v/aTVMٴX;찐!ue4=xO7Eh}ܼKe}2;޽gzwY97ڌ1 !雁W3p=Q ͭXm:!nl'wHi%/ltʶY )I&%[ɓ_Ib+ڙ!)xńo贅RnmՆյg\BX="5& mJpzN*KK֜`.}ɮ-='3>gyר#g~Ow%ckzyty6ܦ+35;I772J BL/\F".?za~;Ƭt;g+MI])LQҨr6]x~72}x.x`̾+~^qi`hVDȀk{۷ąWɨtW5]!Zt+?wu-"}$\[t1J_&.NH3B("֡}1ЍrzÆ7x{-&/h`kwW> q쩻oloS]?箟 Ϲs9{}ν>?Uf[h;B E1+^p@xiPb<`~g?4 +q'1o$qPҚFpQb+*2IJ iVHu#N&D;=7ԐpPJj|E&JT*$Ivx5VwsρȶgV0E36V: N;<],ϋ eK' ǻ ; aMSUZ&y,g1]܎*ӀGEQه^=g(<%d(% T$֕RRܡ~2#i+tvİ`Q`#zUi|=sLb x|uu\7̇ӣ[wh.#Qآأ7Pز(ԙ80S R:Ib9V1)eV*Pu%;jV[ 9-kQ[=(>Jr2lҔԀ)}+4V<})q h 8Ng0mUPP,hP[ vVx0 U(\~pWow3"Rh&,Hj oKĒ<NTƝdzt'M%Ql8>>y>M;ϟ}V͙M;NïF)"|jٳPL>þad! }Rsu*C i79iMI~u~.Iv$Wo`ÙP$T8s/3bt:G/S[2F}:DۨNFEs8u!ayy@i!"6XB$:w,Ѫk_jL6rFQ^,th+]@o[9]Fh7r!smߟ0 Qto&?<7sK%`n 0@ٲa;iƗr2}4p)jhI!0fd جxovfwY^9a _}(Iހ>` ;)iԸ(AK8 P,,M@ ;[,bvȢDE|3r4ǃ^[ޢi:$aZiU7SGx0nv LW9g#^y=N]B2nWJ{1D85I i)s_7;_[8Jq~ 3 _]^^d J`1bhvXo o{w5uBxS%5QõBDIҵ.I*0q7 *=I`AdX"j3ӛ~}R2!md`fWV&* S8:"pcEҨ0 _Bӓ>۱Y(eb~`i#ϛAdh KL1W82x1!,m[ؑXBƀuJ9WzݒA32 ĕOmqj].(ϘK}ǦE  Sd6]݆ ~^y%Utfo?ɍDqKBj 4{fSwN^/PE7k= 69"Vݝq2r.~4@ᮆc/1IqI+1JXءȮLE"13 Vo2&=o'lkf]փCo E --ǷE *q Z@eL@4iEjd%lE,Xy Tf|5Jz.M#haYo/K+De9Z-AҜw@gz4V[Z4e%m'<$(2"Jf^Eڲ2L%%j>SkWRlgn񯞾LAlp6ckG[\Kl٤Ҷ$&hO=}pbw'8 2n 'iI3ת,fq{:t8Jlv;pyn(+KMaB``S 퓶k rVD3D2O90\`,>=P,'As3qFfd,cS4 &2jmwL/6ͪpxIx)ltGT=-@ fm![b oⱉ%o߅eVň 9Nq0kU0, |Z8%hƊ4]p+baϷVXZӂ4, J*WknŞ4QimE)d͏DGܚ-΍9&y҅dh.I)K4Qn4)Q*ј#ƨ-;[K| uO158)CleO=7~Of#oN.cYd(G8<nFA?!6"&86U`0,ܴΚ+Y*F?XO^N O'8'Ɖ=lRݏ D \Ld?/'T+ -Y`h̰[N=k~#7;C nT2hC,njyz*dIM2b &Lכ.oA\*)|Lu*uzO"LN8#<,gU55^*vѤ$d`A=YPNJ7۴Y y(X;P|x!D}Tqu4}[^}<=;s&?ѦOϰHG۾0ԟRNW53sgˣֆ4t4Ym{ MErh]ȼ8͂HGUz"BpF\g2RT=0{"9dM͏p OHT B C$#* 7l~ %:^٭4 a cb;)ˢq%P !N7ݍcp͝lqѨ]QIVjcu ]0̺|3fX9nh܌[`}{x|O&3Tɲ GDqAD[ %S,T(qv@vhu2'x2,= ns߹w;s߹%tfr n{BF#Yx\+>IQwg a9.TzcxTE͇hL VV-T7WӷuS$\E)ǥ;O]45ye(x]Cv'!*&Z5zUR:*3p6fPRŋ2'΀%E+pI2IR--{|_~hD] :JPq[EXe*N6ֵy 7Z5+ec]ܜT5I7z @HRu<~|6?J*e*#oyQ턣4o6Pfmj2uG$B,2 fBY4Awi0v_[:Mxۏ^׎.LB`V`SwOEaDv127uhnI=偾),j?MNIËyV]' ؒkIlYR)TN+p%nZi")"#276 ʋˁ0B H5!-Fv)xm90 1=y\倌sc]]cK'{1Zh+!* o ҟrG+yw G ՝ DEehqU 5f B_;6O4*Yq)d&/ q&Y3g1ͽNa>X 8_ 2:=".;-:pe㠆{X'^#!qc.& v;pX¹aU~z^$LsԠ6ܶ #kqt5ܞrʱ=ޱ_r 6T P;υ^O5{LJG ״Gȋ6;@urFc$Me$MjrZM:A"l,DVa3Z͟_`cI!stN|tDDxD=x]@JɁH|L"A &`4WV.+x+o(op%I Rme¡ʪE/^ڮM{zuو8YwUѡٳ;6>4jB`*qk',VK \T*Ydl(kӣ D(#*}ެB:y#juF𳝟~(n5Zzܹ JvPMM MF3c{:7,2%.?)Ocn#s*ׂ4TTQ_1*<>kixY)64ϧ7>{Qd N{0/[[APZ(m)Dրn gݽ_z{ a9uP+̀QKmp]@G; =tsw S$vj;G{PNb0baߨ~?B_`[ϻio .4A 3Gȯ:PdH$ @" 9EMZ#C$uR U9s߹wn;s߹7C ?b@7 t' d9l((%5n #!ſɨlD*C7 !_*?KO6 ^O -,d4qʉFadKSR Zkn!dt~n&%pԨ-3Ѡ6bF!Ԧs)XADՍm&Va$BxΉX"?Bט&}*xxMuqdl NՊfJ #Ѱ#Gc!-ON^v=I]dP'^X FBLLf0`naP2TI% t0 AJT5il1d,!8XV&Gfk1mОu7U!F|hI1ۋQFd;|V/MFvq$=fߓ܌ɨ`q橍\}!@h:8E4(4 I ⋓Ŋ+2=I ǴPbwnHDIoVY~uPvD#؄Cvb}f0)EúH.X0ɹԜJ~#=[53nerA~!z?xWEXi3 (zqaF͖,F<X &^xF䰇zSS5 wȈ谥uӺk"iQ-$al4j{? Dt~MwB,_r;x}  ~K6Enj/U˂ D:UO t1ni%Ô/:koo=z,h:#;£yX8CS^kI>99]U3 kSs6wcIӞCl"*"L PlL]_Ƥ2A$$!Hg Dy :E"ǽ?xݬrDAzp:=i |iQˤ]V)` q9){=0%23K S@/@*s)5 r=T` W^צO+|=F{IV] fZ00/+|֬S,H2L<# u4Yt@%Gy"ȤG| ӆ<15{$=ɔ q[%zXzZc30tivq=6aG̱:ܖ m r# pf+ 3a▘i;e ׹_9#zJ%~Im2r i\J4-Fu"ʎv s2,-N> v)CN|CNWIE"T@5nr[rUCLmox&4P3B"cZJc%mG^qt]6f66$-dd!4 g37`q\2 2%QDKbZ?CzL׳I#)?T\jfg{`t!BneaMNŲ5N؈Ա" M}y008qvR5oLV=׎$z+nzMr ZSG%/LcU|7łlP(J;%s< hI͋-u C%@D_ԗe暽b>D)Lf,N!P6ŪHحy6>[ӭ{g[!pDXydAKQYX/D y)!MN|Lc  VՏdh&dxO8Q]mi KZ9CXvy߳B:t\6 m:#e:PxO֙hE!73Msl8d`Il۾ls^u//e_ndNțcQOɏ ҚZcܯYublČ I7##O;]AWj{d`v_9<:;l̠r@ňlmj~{f LMͩ<^FmSS*Rd†(E~YS_B,~Є`%^T)6cz ҌXafE$Ȅ|(hle49L>&e%nmEtHc"ߖHJ}pSN dsHnFQʹdTtHU|>&RSu*gl9-}FG,%|[+xBd>N-#ˤql3FڶYhi6ZYzNru8?? lMzOHfgIۇޓn^c / h4@7"BǨCjC{2"$61|3Oੳ׋E2XhwCw>\@2Q4n׏ӃWw Sf7uD~AmgrOWߍ BWidU{Ay՜*(F$jbvκI%~],,ꅆ^鶒I亽5X/SjͲP.Y:cbm92 evnXv.}m?`"Ѽ !;9AtLlV+dQe^˷&U( &2&v(.߸4>BB{7=94^fIUT66J7\C]{Y;a6Fӡdl)H-菨r-ij|g-{Q~w]2Uɚ,AߜX ٰWu ,FRDm`e=KzvFaWTNm4[,/|>emY_sos9? pXqOH(Ac?F n>Yg PJ2ekTP>Ic4p6ЇBCRJR!ʮ hX0Ǣop,M`k{ͫcμ.~?&p~{J?W{~{ E_w\mv~#.~rS_so#r>>D ˨y RS8VE$JF;.0d#0`}S. ? _I>_X}t&%p-.|bO SA~tP.wn&ş7?-pL_cRe}q$( ξQLHG`i(R8bvVIvs4z ѷ|kѷ6|C*q^](+(BOe///Un'zdz[ ZydkdK}=' 9q7-F ϤrVdRخN9eE [,rPٜշ*aFRNi%KJ{-mGC8='` )yFZŧXDjIz @pHZ3 T6jRY) uUV*ˑp7Tf7ƣfk ೏]=)yDג̙ {Zg7T7^Gb~foLI_w tʪl N~ZWݎl+2o(UʭNNa3Jf{N2\/ٷ&gޒΠ5?էO79jeggϭ8}>^[ y^S ÜK02I̓0< !&$cڀAŸ(W1q !%uwBjZYk/EUiF 'NwXh K`;0 llR r%2,ՠϷ:`Vj%eh [?p@υAՍ*@!p,AS$B%FC%9p@((ꬫrr$iS1#dgeQKB NaoCJ2rY; e!mrs5E4vOeqIgL nA d+Nxk>;ʮ#{W}v˪7y a-37-9aXM ,D8!Oesl6=X^+w"0)WJm/~(j̿mFSvׄ$Xbl;{fjW5wDwp材1b18Gxg D:{Y[Ad2Hhxs ƭИ<~}L:FŜ 9;v[2+lޅ!7a;ه>-}d.b0=RҔ\6 Vw GҔ16e;NP"zeV mELd -r5 Pղ9>\xx>"b4ȗ޼BE+zΫz !Bם1J@PWʆбRћii9-t-z@X!RB賄א}2E8@OGR;@\6SHOrfhOvݳYEbgrѿyc UL1j_Y㫳,[8dmv!ItRhQx\P daF`Խ2`+æԍ\H-C7vc$؟hC9j\a"Srf̅þS%}0 O&=چ=^q2Km s<#vwkpđP' *>G#= /뷐ð$cԋ/^<>Mt;s Eam30Q?\9lSf :](T@{#zb1ES.eYr+]Egf,BQ×OY+)C&cYd&1[י6^ 끰C"&v2V/; qG(cu0Gdي˘nG?Vn`uL%Qfբ ["6 KA֖lT$=0)#Z f+b8\YM-f-sJawj1qKQ2O^#ԏ2(SKsLrj˧9ܬ䓷; #"_f I3׾w ܂D+KbE"r%rXS Z jVrm 6U |ᅫ)?O76\[|s{n=8oӆ b`^g4 Ѩot)*ϫ^>$a`Px c,0NEER&+G2?F ʢTVðZF\`꺙FwPK^WWPClJzv*gYfgYe]dyն(:K\XǑ~{vpqc<9XnjlVeWO9lQH}~|s_UժJBUFA旱y!W6y'Ny~O}ź߂u jJcSaFK =)!a< ;(脘&Ϙ5|a -":7z$C+"]1G#zQ{&\0{,gpm ㆒$I3nFUqbqDV-S4&w` ؟goY^^] f͘=c#W٪ĹU:D&U{7?8e/xo_ rc/)ӂ e=`;j'@EdO2r#A4\6S-"Uy\g?LuC1S̰U5J?C}AwOߞ6蜎,L(1͏*?VS#]'mgO{Ps~w6hʦcT_Of&,8[Z5tN}jz(Qd؝C,װ-Kl2\GwZX \y'$f_(K%E\ %gΕa;hz,8ӚTM&͚@1zW*w&Yyؾ9%h[ nyw«g]XXuI[p&c(iuC:Md8=fP}f N&o/؍UX$ i7LꎛdlYl볏PA_F/$U3QBe?m&1jx e8Tw%p}M a/`'m:q5렫dz_8gkOk6J~w@nw9JTgOoy`eV:~ŇŇZvHYA_ͨF5U2q χ|՝ج{Pv>]g!wWu~y[PKz·_|x/Z·ĉs*·|xO ·|xO͇_|xO͇|x/͇|x?MX E$h)I #]_nu\[w<$CJbqxh6NېD;?(ӳO+*&>?;u~uAe}Z xF .Q%'VD!n0KV_V$ %7q}z"ӽ>L߽b0Hhbye3"KF`+;hZy+,τH4dO+\rwݢBwc- ̲-{\Qw5W?{ c4jQkFyt0 pv[~.H^BG%x]\Iq4@FM,5AԎ6eB6_͟{m(wZjwU 4X8рi#zu '73M}؀M!"&.CtY P 4 8g؜<]l*>z r0l;p6I__/ꇯs~y/9