#!/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=70f7591b951e0a8d2fa9bd7880907fed # 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 `N$ sQ⇜8Mf%µ0t y^X!YVətrgC'cęSăaHSd"GS#* 90$n]'%3a8$\d2`ٵ N$&$ )Nd|6D&=q, |*qtr0x<#f"FY0=4Kg(Y&1E!x9 3 W2.0 $Am"Lf3Q]@*%FaO'I,Lhʰ֦꺪?_8Th21eiD V!Q \.K&g]!|P-&EL&{{I5l /E ?7Y ܰM̉&dltؑC 6z{o'rׂ 4%޷ $lPs swT\ k}+Jn0bN)RUו5d;ъcQނ[Ұ ;:a4Lg[-0H]ɼ cºm<Lj6i_U5ަagLǾW=CLЗB6S|),쬰za*J;OE/\tJ!89܅J8^I2핃ґ#}R@@g R9M/pxpΉC8̘aJ*~2'(!D}M #J;" ֬KS!Lx~>輤Kq|>E'/dͣ*^S}RIH;,e^-O13_W˃ K$h'Ek]<CuˍΥk[-J׬gq>qphC+Ә}`E zX̰{ѱ\޺`EN3Pr%ۺCv4 sތhy-#jCz1V"ȬU$H {uRo(%܊R) Q]Q]X.a:qx)qw Cv/rɊ@ ЇLT||BZ{ǕCF Cmط^b2MC}%@JNrꈟCZNRm~6⇯ѐqN(;>6241iIQ?G@nM0@ZHFQP=_oxzޣȼB'^ͮAل̨ œ.̍#˲XɅV衈CK8o ]^1a{:PH{l2[R٪kSUP +g^[l~Q)U(r26)i18,^n+0x$۹kQSa`=viiϲfvP5nkKzAKEsz6=uwQԑaf6 6V/ /s~*O<#J>ߗ,r/^ְ6jnn !pҔs]({E; #REuwSAXHXs>;x?#]Ig讀`q+' \OJx=tûӔˣ_!K)OJM%9bgMOnᝤ-6]@iXOI` K fYg o ‡7,eBʎ opx pآçzŽz +臹م(tLake7ݾؙ$6=ݡ$K3b090@U߱ M%^+%f."4k3M`_c2^MVa rK.aˀhގaJ6=bٔn|0u`[=(tz6C 1$HL#%> >hD2\(Eߝ=L=xq[^K(Napar=h{ڑpz^DVFwT+scGê~l')+Hqݭb͟"FwNK~&w+a63a(pPoOFհNLc-6[ӉptkT+})A^ 2E 6^][Qӄ]gzk^~_OTFܕP'< ::pCqwWFOo!f+/+jEkh#\ȾFhOZb>oƥk~  _>|A@X:k;2F^8.V45 i'HӷJtӄ&￰娽G?Ⳬw߻]{WoV ۘ=svnr%|Y-RKujA%O`ʫ{sIjCq§"kL"Ul   BAafa1 ;FZT+ M 4=FI*/%5xȉ%?sX}#l5K撈 +[֨ՐVL%?h/ pycWH85#4 MK2l࿃c]dK-'r7% qqVHZa[BUmt5Bnl@QQ\ZQ#{Ghm<N;khDnu k~5nvAgu0J6, ,bmJd_ +.`2C&SPH#[+}6 d.`;I^_!5A[jꖰ'k9uُyVy (5,^,%4Hv/J|q̗>Dz55U}zz x4Yk;;=nJj\8e9eu|ӻQh{ebt/L(Hdc `>D #*cqZcCi?@tE9s-;I_q;Hq,UYO7upEP^mkaq)y7ĒU˨JQ+)1ߖ.5;̞P_UZ7bPsdSس& GÇ^@LB[y3մ}ŋ; PN?nF/#u!/ A6A99[$Lvv+hs޽XbF}.F T ۀ,InЃt p^< *0ؑlU@l֪vv `c$. )ySG8]at} }Ė>9QAH5xA_Q1swWL~'g,KZlB/],pu[gI}b-į;Cd G|ank 3 3u,Xxa9zVW ;zẔ-* 6EzGi ]:{J9c=B' N~.#- ܮ2ݮ%}/:*@fw2ՆݓŚwNO[)mTk-j̙AL_l,{$%En¬',3":l:@!;0A+:_Wu|-sG-v_CdkwzΘ-Y5KY\VmaY81|4mQTʄ -'rcN-e,L4%B yGMR@:\ `vŌMźGOQT`Q+B]6`FQ --qsmt-ݐ1eN[Ι; 2S86 ;&lB5r3am9|Co?*9eN]F*U-)AAXQn?HE# dC0̼ҋ˩ׂLk"|@b͜vKlgv R3A?Џ\*H&eLHc.co"rSFۧ%n޼恑:hP렫~sجQiwaҎ~;tAh(rI#Rw32r`oY: rC9T|d8sNlzvmJE. W B S^iF~QN\r{w ;:flPg$JY)%g"f,?1I/LoބG&+t7mu"_ל.k[ D-WPZlT }{t&ӐPw{qNޤ$,j# &uCbwSBջ:tX(a9#/]3N~q\ľ6"}HKf@qxXw}O)X\lkM%G'O6$C{oᆽr}Ovt[GWk<9jbAM(buZ dW_""Lw4LxmBC¶<LFXfy֌̰'9QE+Q \ 1:"[-9!h 븄 cIEr/ɣ89;tS#0M%$gش.5cLu3d}3o])G$,ӼesATz"ٚv8c-FYMT7i&O[̭KH׊MNM`g&17DZX2]Қ,3ٖ 7l=D{792eqet}„Ǯ'{2nʗ{SkǔZ1YZmmW'e[3G[N+,>;+2[T_gX|{Y3I9ZReߠ6I*=! Y/p.J=ieqE!YYI伇x;5D*lcՙe 0 6"c!Jph>u4q)qxg̠nto Nn㳽yzby@ȹҋk_S͟ϣ4.::=04p"!HQ7^' /'O3lP5yzJ|1{uJ) hbyٽO2O &r9n"tzhh~SI;?;M(tNr뭛=}(&յ]sH9!FCo䥧5WRQRl`3qHD9{?XlwQ<[`w`8PUA(D/XݪMvGG7@ǽӐ@x31N*3WOkL;*txsK~-7nVDy*֔*ۦ[\1K #J([$BI CUVJ4 !s(>=;ys;PCF9;zS= so?lbVB MO;as)k=yRaĹ~VCL`:~N{|DdQr[Oz4ƨOV[{P Lr_^Whʿ9*Śyދߡ*Ugg{ "V^7m! 3ƞy }{R_u7t$YJȪrXqewBȓэGX ZIҋ5b6[I)Th[d.QKכ {C]$ɍf ^pXPI5u3%Lf1-t3˾(gq>+BnK[@Bv/9('JtM7rюpc2G޷re!u&F0hu.~MB, \{sS䂪= R8); -bѶ&$(oXWUYU_EzwTY!ɟRexv˶KLZI؟Z\T95tFapViluuS􈣢mKNnCk,M9ϭ|a._ӕjRàfʭ.  j^j@`b#AmF 0>5ټzkՆxfǍ#=yVOwN@E3|QzN8M8YY\^^̐w{۫+YsKq kcթ"?yS]z#\;8}_Y ¸4~ LIi'j|-70㎚0XP^DᄬDOAUH^Ft,nuρF"5+![U5o)Pҭmx'~}4zK*S_jJUwf}Bެ7:oǮ ɉd24ck0+ 0p*w88A,fq*p bsMN+ǯ?]l)@E[AV" {%<6k k%Wtw Oh4Q|ePYj޻jfpyE;\&̬\ELy,"7u:(":IIܥSJrk$^y2ʛ!'D N0J_6b'(x(Ovpo% ڳ&RT1ѿ_i3R"Q6QsF {I0-bc5`lR낤I?=o73/$>mPYj=,VsJ&7wa{- XBOQq탽`Da^`yi_D q63"v,|"B29w2+~![L36y=#|Ʌ;Vޙ1'ڌknn:3qot~v%ޞ.HSڛ>pkIIq0ۗo?}CezjRy]Z>3&ݮ/Γggk˫u]׾_^o|wO*vXxV<0)\ q,ȩ)|Gǧ=iTvEjdw/y 69? Dy^Y[N#'T5>CL0rALZ≯/a|wY',-m6K!~En=|+i6;Q7Hl)/\Ɖ~9aW^z,߶TYYYBGEn9txFKptXQcP.|sD&' lޚNUS;ӫV`fͼf.;a(/tjQ#xXs̀d:5:0`t q^eW##0K|P.R\REuz`' _ۉH^ի0z&u#5]IS_Le_փ`/`SC'F']<)Vc'.lr`PO/0.e:9Du8nZ;?s-_ΙD/"K(1VBX4\ f$㷇/ޒ4 :V!ʛ͖^<|Xk0".:v[IyQIT L`*dB@JAVhX0_饸I˸_eu=f2gkuQ:LQ77mq$m72dTOcB w)+.OoEgG(VW$(yFd1si{Tr}yNjḽ֯.K)oRyڈ0HZ6&:2^sΕ$@@VItōzpg}/~q;,g1#9T @tP 5J)E8zu=*].THj\bEBBZ0I Uw<sReNomSz5R+]C6 'D]'Y5eJ5DӶȲ+nqq 8!4H"~F8)9\|' N|F'*!Ϲ]<;=OņFJٌXt4Ͽ.rjexy| }4v/4gxKיǝ a3OY7_IGԁ T(BbMg- >&kCU Mp"[R\ќLŤ ,m8 >o'ެ:Pve33V@h^٢*cu9t|fWz!@m{SjQEzӰ{£ `b<V衁 q̮N`]`GfgLS{=O_;;i[* ݤ)eɱK`/y4KKR贱mɐ.:lp !0Jj&G^am+^ hi&Ra  Z Q:9WO_4e<6Y3D/Pgdr zXlqoP8_Tw 3~G(sXbMsV]TVLa!:#7"gl7sgWCz9rˋ #i$:Ds*>]xqs^-6$C#V#',?bAv|UtU>~QIӓJK`RQ%"z=- {µL%c5]RÜtj nr;_($ L"U( $VhV~GsL'g R0;˿?Vl=S4aTPIхlT#Zy T&'L9L"Ds ÏhKс&w{FNIpj@H oFyYOmxIwi?\Jˁ)LvM |AQK%fs9`>B6P%'~brX{ks1 vfY^)B;[*c2OG'\k5FL%cTFAW- Me\VAi+i9MqhKa`;0W/< %^~BἜvaܮ FG9)kݷ-MLcU({X]0o4H[H]`ZLV %GRͭzÌ6ķVͱu0r.VW9p%UVL =D~MXVƮt"QI0 nYOFhpU,#ayt˗b~dCN6#Vmn~ÌTTa>M6X:8WƏP6&_RFLrM1RE/)A_KO}O.kpNн-t/ǯT{QwA~l50E' 0Q |q蓢I)Q1ZiJ N爽T;:T=JoG)M=SXjtI,Ĕ[Fd|H-pH蝅.|5,ʼnp[ق9[IlS-N&9 i3v-HVK/eU4y2sfqU_b QR |p ["z*roAt;.ʁx u=Zˁ ;+UѽeD%~ɵ1W(X|]RcՋ8>Nހsp. '9;V*E"3^ k o_G%g}c$#;]qw+wS3OS{=^2I GA{gǘ>uƬ$ݳϛnozXoy9JtFm)B2o4iղJ7+knbGTϪ-vk _+mU{n&??Ϫz}Kt[pŵz8-Ra؀ U(db/nxA\hގzn&~uxg`Iv/Z9W=R~ th`)52eylfHr/Gv[~;[~ko%nN)kh@) E_wG[fd&$ja Y[ZM6N%K!9qFo Dv\h|a1R2p\ ʧ8LTjAj$kȬYd#R2 Y) Ql.&U$_h'=oFn gV|'H)QL7}3?8i[B׼T=pO`~c@aWOd^Lސe*:yen l]ZS@db6m= s|83|z vq5~\Vƽ9_?/KQbL:,}ik1?6XU"֜7&49˜scJM(gٚ?&fʷ>]^γ~L?_gjgjgjAI^(*΄*=t vId72^V*w}{ =)oR蔕dI09iM&Ӽ |X 5v{UHkYf5aܟRrh|d)gڠ>@#vz =A-1jt ;;x1Lڽ])]rT;h`gV_¬Ūt4'utzod:"Wq(Qa$ IsV'r7u8# R{JH=ǫupa$*&6T ףbJx&msd&-jϺ'R[5JsxC+ :自e`l>L\"<>)eSY9H8(@ Vv  3#ub*h߻v>=P ;;Ty3`seQ$l*v0Y+FN̡Do'VRYTk2) ;Q[N ]6Huh~CUYLnu*O0D-磽=Jә-Q QPC=Jvm%ʠy5H0*^D \7[\'5rfTvj9r8N@dKQ@?%tm$.YfۛN.ia"]B-$=YqyInB>듍9؟Pzsc9m=tFkHLRqJyz(SUGNrt>z&6r_ʿ -5P0o fUH |TfJ2|.o~zS+&Z6Icq|r>mn 4YivVv褏yҞ,7q0c\⦆0 L&!|*c>+:l{߰F;`x}ßO* ǑAaTMtzjC{ Z6pGP7]8c6+ᄶd{!sŰP0a9T 3kKNjo@7KR+)'&ΘBŘ\~? ˙}TO϶ON: 89\  Zç닻Luca{b.=46VLH )[wל9)BC9}2B_p$Gnx1f ~<԰JBCk0͠LM(+IQuB$sV鍾'7e㮬KV-8H湔er }֖I^Z+NR$ l8#@sVW S\eWٛ@L-w}>[ 毋h[@'8vO4HWld)Bg5Xy_0OƏgxaCgLw4kL㿧i4{=O㿿h۝f\5;ѪEkdb]?чS#Ҽucm=Yn7yaG*Z VMrcyY_K&e C>R Z /׉79Pr.&Z 6 !rU:%mMd)uǩvYcjfIw.:C2v~=Z1YKl^'MKMUm>+c.qT~CTh*p$,Ppl.5괚IHG*.\.|hIL,,ea&"FxWԝq,p埗W.k:q1cؔvgדm Sʞ{"ҁ[%-`SҕERrE2n$='GI#Lկ)#?Nd )gG*Rq5We*o *hq(Jާ~.{4 {iE:5WexAJ]_ή\V[$>b: áyhvſD V ׎?88F+GP%Amy܈)1Ġ@M@ZAfXgQB.nDaNޜ ~ѼHy F<@7 LN ɍK^uڔ ~p ^ya\wwjՕ=:|ok\:HlC4S'{V&kD{rߤ:!v>lwnFl y&:{i4կTw-| m= ěD?&u'7}GpVqW e; T:| V6?w>e Sq4c 4朡>,5*nDKWldi jp[|-q%-Ĩ CXc;o# 6su Q!$[D_qC77IɌ.hD Z}Xa&fa (j{᤭늲[-%ds%LI 1nmF^,"T "j[.p ʿK"_n .<+w8h=Q~+fe{>fFLAIx!em <(ҜX=?oSahD/<DѪ?[.ONڃdX2)s@tw1ll16YjBG1._:䵴΁ $|Ѳe2KW'q0Ok(]nR,z͞_2\==j? e"Y6Eȡ bS[[%Tb*|ŇWfVew1TLLRIqWH+UM8F/%iӝ# T)1Egj]bTxJ_]uȁ]FUf#C'CL-wTψF$ J jPo76 !}FJ׿(M$٢f=l7*N8ڡ6 8n&odR)ɸ9Lbѱ*/׆V" I~G-6RG'ԼF,PW. /Ctk^ nUݏ\K>eǯgenMq| 3WcA-M$Qdݥ`mML3< wTw٣jgy/! JW/M|җ@b!DSG2ltIp_hHKGG4=[lk5^SlǜH΁D!4΋h)E5i(I{%$TkM*%d́oDUpbJH2b1E26/m.Eڴ 856ѱIڊÈMXӰרrl5N 4LfBkYKÞi'HEKJ6ӟo & Pr]y, 3KH h!OzDr5*8Cs(6Niyh6Sawm2 y$*JBc;)KEl98͈ncZ#"(SӺN.lh[;,"xn5;IPc_';fVC _WǠfD|az6A5V)uFn 6 ]oQϸoWyr2GC@nRg;l4.& NzItR}M$j(iw+9 '~1`4XX{x'4w/\f! o}g$ȉ.V{dé;w3ц*$4]F*{ PE0ʹǑ]I2l]]RY vnݩԕKOo{]UC[1F-  &6j%'[F{n#\/oi;7TE NgpuO!<''W秮SmۅߴuPIyzj=y E31_z?tM`A}85χb X b<fuu҉J(O(&SxHSCL0[lQzC@*)(oѥc\ _0S/~ܜlZ~xcx\Y_|kiǩ_ dq 2zL=A  b{SEӃg1I(>fg~I1S g+qG Vb9&JqjY(lE2^NHI$CWOuAhSl(Oeezqp[]_{wwD^د)ћ~RI//`}X]}J&+du%&k$lZ<$¦7WWv;ȴpx,b?gW{(~z{o;'gZI %QP}XMEyy]=_^$x67UgfHOİ>Y#' >}:x\Dˁ%J66'>6YF {> 9N?PAw laIs\ ,Gk/f?tч ?? Ţ~R+B,N~Gp2nx4tv6Wo#|tؐ8./iVW",D'@X쏛XpG^TŸ9Sp1{fo9ĤfLuWEͻ3j9%ջm~d@_ qq^iN=:KwsYj) YkO7?hI~ߘ`B{@=sݯ9HHl1k}L^C=m(kzhLS[K#3nNM-|맘(xkTw?a5̹WWB\]ٷf UI#}2y~'gS{S5죅Om Pv᨟1O_v rJu&jwT)qR7AfdN\iP|y8V%y@ UF$%24g]sX8uIÜCfc-:M:9I5kV:d/glN&-~DkdhߵY lkkOHs5?FQgABc=nN?ToĿyXkhhE?JV^PɗΨڌBDЌ]M6ZJ%R'͈:gu%f1T-p(mՙ臷Ljb;@anc]Nxqs6ѽ"'lǽ3K^h3;t;Ik0^35zЃٝa45zދh@_EZf5n0¨WgGt e7YU76zi_\7<1>4YTxw3bbb\(֯DO蚉E͋haO,:Q5<Q/sL!(Z\+: GPФ?@"}ÄKUhw :}-j܁}K'/YX MX]Yntī' l+Kƒ;cF.'=T,N,,'R|v"3ż"cþ;ReN ѭ֦;!7.)8N~ H,ҙ) ^>½ GQb=tӣ\&bԂÇC Wf3L{^0