#!/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=9715afc3d3b1c8264bebcb3113c1b99d # 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 ]cߒ1̟;K<{6X]c{6|T' Vg4Xk`4gwͭFa egOB bϙ0 =Sv M]oٍ̙_7 ҵm:3[<%DRsaK56SF6R GX.v@.xliܳH@i6w%GHF>@ |M802Xfp&h`x|wܠIH+chd0Fмah/X(ƴ5T<jGӏЩvqnGj@ko4TOǣP(s+}dʇP42bUz#UL;3zuB>؅2l֩UG :!ؠ5q5dpuTmJVWz#muY^L 4T:[]uGS:J[GA'.Z`C qhSm# ߫mE;fݾFBk iZ`<5Fp8~ʾ-!1{0ٌ~D( C]U}%PH=J H*z Υ)5PP)11PQgY#ZzZ*/!h4]<-rvE7={;1shԞZhj6eKжRp?,] q ^+W1H )A{>9psecj߆q"`+ș̓zX]M"pk T#-"zjsRgz*'F JI:LiBO&& TŚ4lBJ J3=9br@H﬌a[bmZwBzNq,%jyP0baSMG,#\UF=aYmJp _h;v1en9Fحc540[#uq5f}nbDԑK$nd3%dv%seQ_u1:ddD+<4vlĔ)~KTU͡1D `fJdgWByV慊lz G>Zo&bpAk8O(<`7\}(:*dY .z.ZWӜpUu|G}ҵV^'>R>q!SJ4EJoIh#9"e;[ |?! qwp?;ތ$7Ǘ/asߌPhh\ kP!Qj=pc |ti03Qђ8^&; Wn "+}=>+Vǹftk:!T-639͡ v"1kCl= ]|5f>ZiN7k4~ْ-i. 0%BǣS'U!n-<aXZVZM2"HrًTDҀ]U|E.@y&(q@_"'_~ *pram!bbtSۈ,ɘ0"Pp=g ma= ]A׍]fZrT=sH~ENdT`)olb9NQcE̜Sɍ{!d$̃"-Sԝ`-2944EYټ0j+&m@rwGlB'%Lk9ʪimlEM1%udDf)8xz`!OaͼZ$SAwqWߪsZc 3eO!Zf8V.|),NS8#u(WY:$ԇ n(5]:)œ'#ӰbYu_ՑKf45XP-Nqτ>+g~qߟDFCxq~ 7HKTri.Àt! +e}0ν WH*]],w-[z6Š[dF*+ +rtVXtCWXy`$>~mH.ܛbHK*jE6?}06A;Jj GxTk JÛ#v`CG*ꗱG&ޒ RvoXEF!%MUi:Ob=ẁiiޯ vn5bmJNmRB)6+H`2efd5kv1971. %0I)nŠX߬e/Z>Cq 2 gQnD!1ݜ K7য়S^ E[2"Sy mwED"Z7*ڒ;F )i7.?WP]O A>m_Zb˘eW@"%G$iw2ъLoZ?BJpM3|9y"61c-4B19~ 7f _4Ď&>QҰVHqڍScח qe/x4FGlD䉡S)9h;L(6)ƣQdBeWC)H_Te;Dtp9.Rɱ@.ِvevXUC'Q.VK$R7JOk4@᷶}-7F6 WxZI^e}{'#q||2VW9O ͊Dy @K$|NcTHDC[=Bsk8EԔ:@[C>}1f,W:C{RxT:2vy|_~8}wi?oyv_ytߧO>}t[_Y6ݕt50Wvѽ`)J ʴp"La;8bT~ѱ 0y{wEWk0 /t"~@1a%3Tn^㰱[)/qWI@B*Ɛ/?lF":&=SZ#p=R3VojkA $b;j|s\E@J ar'Ǜ}teY?3?_tؚUڬ:/9^2$;x?[}oSAs;SwoIu>,=:zMo} Pd-`'MҧhLy06f^e y}emkІZ2泿gepH&W,uUrj;u߉慎&{tpsZ&T6qgwhnБku#<]$1 fBa~LDXCBfik2!,m4|y{8<9>=~9Gg)ӚicCNi偾I<'+QI@)D;܂t3?jJ3P->>sZ7Now^ qQ?X_< u'-Ȅ#ȪG4Us[c\[HU/B{7ƥ<.jF^xmY {b~`OWc5vқOr";H^+!*JBޚFpAgZm=<M˞!j4z6VhΘѿ/cz-nvƒQ+isxAÄ]|'#h6qx1VЁ%WAgi jYoy%sop kIXGvx3mŧV$Whׁ+#twxÝ`k$$u%4YBnN}K87666;ł{h0ڝm<p8WÕ$+sk؅C{/=} k4~|[ŋڇcfxlL.&ULSc4 3%T*sV1 nEއԁ[Q`SÇb ͫ]נe_+XWhR5ktwB40&Uj8;7ښAzhuFXx6yl- <|6H NHʄԺj5*Q@;W lIPyѥv"KJa#4W/KY4X|!C]ee^WMsf`@ i@!w#0!2:|b~!P<7vn;q̸>}S>?zC3^(*J5BF5c8I<ʫIUްxi/ʀBI$ ~mjem_2y n w63t+g%\vBKaG3 Td`_}e7 Δq#Kre[btEZu_5q!- I ?9&:UId~˜bDq8lƮahH68Po=:QںY28*Sy38GN*& w⽥KGAڴ;A`[ rނcΕQ]hyDk;62r-nJCEeIRQdLSͺdƐ =Iݤy^ܐ`MFi%N8uڃ)%~f2OzWs%Twſ! unl vR4b(NBGt;wb4G~IXf;BT8HWv}Yۗ-hAiXSn='.\!cGcE6<~I *@J$Sؤa?0Hk[1)  .A/!QUpʃf1]IFN ! )__o59:9سJA6Se3h'ߟ -!]&h}} }D@A`]bY rAø[9 "5TP=4{3>H߃0|Aښ}umuf]>~1PaN^]x6 O}Ia5_1=Pi$եA48b/zbO1ΙH 3[U&n|n/2}m-P9yUFKF?Tj$.8xO&vQ?.8yǢx_.Hdܒ>Gd-H@ jҺgϬsԈ ڹ^x5:K͘қ6Khi 9K^{/zS/m}uX{1g1?f3c1Ȗ+ 񣀍3!߻gx3]ƽ $~}̆Є1"[k9a7`mRieC _7N;{$'#2@4!;l󳋱l.!Yq[Ov}R]WB)4] U`0\"F`s )%h_\ >@Ss؎LjȯFNzng4M)sjv! <.dT^^ZJ!R1Q@DSϚԹg'=u1+E1Q/q;-Wؤ \m٩AF!YFD2I/e{i I=yY.e<XDT /vs6{~ nOc qD՘~EfyBd`XbKPVP?Jږe@rZ^(ڽX**y\[5 `T>yYOEN߰(r| YnJDãӘF%?0D)bDƅhxځ~ ,ڏ{V*j9ZzuEV5e#L^Jط QҺ p5g,F% knŞ<jBJ & ¦iғ[}O&wsc0B`SP@\+XлHK`}wRJ! y%)*mIO9d+U}( ߢQRoo uO1;Ք! V}sx9h=]v5"C9*7@Mt3j 1DZ#(ac('Q`LxK:Yi?dlk(=?Nz 'KqJ0En|ap^P]^8Yk2+KYFcrP*x83-"VO]rCEbqSۭ0 2PizSn71{Uȡ‘JaӕUYW=-}g0d X'.rr =`-kĆjZSSybMzO|sɜ:VަRGR\/|!N[?9RsZ6XY@ 1tLFOϰH0ԟR,^+*a"V[L@^BS1Zd0@~ x7K"-V4 q1jEM!*Wخ% bcƢȓ,f)Ղh7#*C!l~%:^$aca?uRjEJdS4_0t=XsD:ӿ C1'4*5GYBa=&|j~@!6SBfg ks,}737hMfSe@AD[]"2K7w" aa&ԧ 0}@Dy3qUOjLC<,SʥQ3Ҋihy}Pˈq,3&xH> Y,899m8=\" _4ԍ:OWwcr7U2`6#ҜMBxAQ`ˁ^s 7 Y[~ mYx'%9+=u`|\mM (F 8#Vzr+rږc>a+/:cd_̊/sIee Nɭ $;eV,4?kZ. Bӻ$SqLtFh(kjSFXTB(S&zLi-J2R],; 8c7r{[%${Gog3g3ߙw;~7_ ytAw|X`{5A NQMh=)oS#*<|n2%x Z) IiWi͔΄&7uT(4S\S9kJnl3JS:'H‹M}"8r^Cv5:R;RzMuVdhjEBHCXJڡa7<SPCrZcp/;Ϟ$. Q /,=#*sڰY&zLM9J6vXD lqXCҪw66%V<j2lCj蟶>t)% Jl⬟+ugV02=xj3Fd)nG:\sPALRYPf=; _bUHsݧA=s1ϭ)Yq)nC(i.D \o5Jy"zl}p˿iY*rNo*gh]U"V7],.Ujv[q6G+` [KmG͘5:2'97?iUo)W͘`D*ysewaG;Z SV%,An$b4 )Lp2c,A1:S0ݻnH:*8Y__ZkV(tF50/k[;1a&sI?f 6g"jErE PK)$A=O(uN#Mq tHPa.V_s)F qj dn͒L{I)WxHWO7T+^z#INS(uM>Ww/ ؾڴA LtY|g~F'pC3ܥ* E-XJK[qK#*[W LKj`XIhw[x~B;.WILͪ(˗]aåAxTg[ iR+1C9ΐSHsRrߧYl1=:6gbɰ2\/sv)PćG-VIE"8mD% ;<4ĀB=G 4L`J7hBC)Z^i7Jڎ+t麶m66$-dd!4 g37`qS|zR,TN$D-8i$vwsro$d0!-R&q0P)rSu]"[#/ uXAÛ64ek$cE9h1y1>;sFbg'4&yelӠZͭⶭgT)@8):u$@_aG00yrs VKA (3qr}ͧL S[J60C0 \)H΅ `e) VEn1:l@O<\H8+2/xT@"Ī2̓4OQ>P^ACCk3s{o^eu k f6F梃(Z٣=0ywk-Տ@3-!4'[;212/gg_an(P}llLh%/3Sy8DPmdyhUν<}/~Ft8̝뛚[5,"l^Gmp 4]I j1y!Oimk+6H~hlKI,0)| ?ۖư34j+CI'U]{VS`0 3s_f(dBLڀj,ӀUWo`g@pr,ٶ}a H mQ2L ϶?F2d'qܝV2c_ZSk9N QqsSK@-_R)t\AWj{d`<:>?l̠r@􅈬lmj~{f LMͩZHFcgSSJSCBba)PSEN~¿ӶWbٖ[0)_x!Ta/FO ,}\|uC^NѐdcScG[o?QB)$!aϊBFYΡ2U(>0(,=#+!1DL^#ed-330Le_ S^V/rf gC\:FvЂ@bv{+W2A0&XJ'IopAA';| !hhdzSG$ZM*\a8p2TLxbk\22 f88}?r hH\[HK琺*;lu?JMv@d-L3'μȵ.ҬK1ʪ~&);Xȏnn%Z@uk-`I~6NwKIMۨG*E͊ KFӡdlqQ<])B{u&>YZjg进G=i~,]ÏAvr't$MŻ?9|EjFQs?g < *UV-(YK]')VOR ";\3^45O8*`l؜L6 E/(LPµ#9j ZX aoA"csFƄ֠mOB~VYޖIEnaQ elt_L.z/V!p,4jDdl'|ZDR=6SjA@|a%J$.2CCa稲Oǧ-}t  )Gt+$nK1I H=yU,Oq7gd8*\ZdD ]6g\i 휛zh4Z'4-(q<7X h Cj>'-{L,K?#]$.)<1.6mʣP%zN)][96 92 O9 v_٧z`$wy3nU,{ &;10HSU+܄4%b% m8 W'NkIܰ.pPJicpwg1OȞOzYg3f?3g|֘2jtf4KgK)=p0P#Fir`{V:қ.Ƿq j^ x H@~26^ %9.J\YcƯ_f*ud^6#Y=f9Hyi>T)yVI)%by?yCeШ^̡imQ$?OH(RH7XY!t7L`1]'1~km$B)Q*U&(eaSx,:4C/ز]٤c.f };,QVY{QXRjV.(#kZB~;*9Ej>VBy2NT3u9<>ݪ1Lsl.GM$I V:ҺR:߆jedEw%-!U?7Y1uZsC2Rg j_KW-VT~_%Fa  \aTo^"%ֶ.>sӒcy;(GMujͱ`qͨk<ܤF-= adkC}=e {s~5aFP s]X{Eзhӕ_Ac&^ Б b`tAmbPBN/) $'] QX’<|e*U:Y*z348BT ɶIX }O1_vd 3t>ӶMt@\6SHOrhOvݳifʣ[,'曘I7R$dߝd !;n Y%sQN.qO؞N{Z3djaF`Խ)aS`z~p#W#wP|{+хþSMT&{nBul`y#$ު覭?r',$b`3l$퐕|ɨAjxG[W/f .DفeY$MbŒE(j)k%b;ࡪdJLpطpzAzPpʦ=aUbz}e<*yuVo1Gd˘nGWmZL%QּUO^a\XJgp%%IYaq(/ PŰl }*,90[X rR#WXq|Tap6c, :^lڛ|z`pJpDa+,mSjװdIbKyʺxzshX5Q:J8d 5濂pBc B[< }d=~x կo)y$χ;X Z $˟o,u؝x +0%#ӊVd/F%hn[8H~4yD tTD˵t(+ D_O6Kd\%cǕJ,i1Js:lXCV6RрV z6]L@G :'n:caEg7@CREPLB/i"E05B9l F[-%ZzF!isV4N"m7,R2jSz եha\ ~LOMKQlY%BF kX$;E5Xal-C[SW6-̔ % e if&` sῘxMMq D&nPi4 iu9C`ʧ4C-'wPb7acHeڝŬ0FK skVm߈EzXdx,;&=ZY*P 90;_<. h >$5^ؓge,ɍZR.m{eE{uO1ts\!Nq"N h7tG$&qX5Tm8BNS_hui2 o20BdhsO5;bu"=^i,2(SBl?D5e^+<Խ-aÔC dOP[Mx{r[aX$JXncρ*> H^^/$…'o=ӎ[kce:XK@hR-)ʈ27/Ka2GJRd']5v0Mz<6̧磞;6&!yGm<3cvupr[vp d쑵'+0m_$zUik~40 .(h$ʂNFZ۔dgh[ܩo x"p/_}c͇d0@Ѻu?2F\Yt*}r^jHʣ?*qG^:^[-ȰeJzbKNQ,Yƺn:˘XkOǒ WX F2|p8bbҮtDĖ_{(,--U G}#ʄ_W7kQ)_=9[,=:dn\ PyFW.iI,0vr6zk)QҦ*+N[VT*䜶HhYUP1tBް_{JVPl5q».6F.ĂiwpDX'=rIT[yYA6廒6xDHF:&0m3Vu)pph%ǰe ܲZBESך> *hK܃ГOA16Bu`fN 8RŇ`Qs6Z UT TG=qۋiwX)tn}bm]Z*\_1a o>~?m쿾?kf53c~ͬfV_3kfsEmܭ4LQ arD]ِ9Ìn؄!q'(N R{ދ1BAeeXhD;&R8ZMnꦋfԺLZ1>e " a|=Qo,9G.пX :hY<]66[E џv"bi,Y [1o|PyV0N g&l%(59R b57iMLS' ji&TJzCtPhNaE;INY79G5k@IC @`_ g߈89:>=1loGu=~6LH}nzc%0'4DZI`2+e*0TM͇XW7黏Hf>BeqcE| {4.<\ZHc;J00Gz|=R܆`X-c 4OF*Pu;jV~Q}*AJL!DFOp>ʟ=V6$`J_T J<)GZҖ 7 ;L[e-R{x%ǵ F\J%%=y'(Xt8!T'v\WkxC^1]a!ᤡyKe܊H&>nEBeP&P>Na#ھq&;Sjjrf$Λ!ɧ= [:ʫxt&\Ab'WpyيΑ iTew9iMI9}Tp 7s2$ Ǻ`dLWڷd rXp)#lȶFւ5 n;Н jgN%53Q%#d"EmB<܎Դa^)-V R^L_UhKꬺ]D2F.rϐdW*(a6;o\5Rql<zJRqq%iy'9ӃkJ8d: KK<`$.c$`$hcng05&,1mcƇtCamЁ~C/(&%|ڶO(JFFO1xuol|3`2Y,f3K;Xh,&%E4<>i\Wq'JV6 _>!FNK',v41L2?&PWpWNn$7֟rںF*^䕚Ueje^;dF? aV׳r+ʲVe]dyn9㯆t=^[tO^=OnBI3;3/F&_UUZUBH:(222=\tW6 xI% iz7ًuYXGʅN+,=O|jԖMw9@zaL `XDt~o/,IVԘ"ugyJ&@ (Qmk6b 0j  2n(i Z?`_2a&mCҮV ]1O`c%3װ>_#k/^j׬Sg ܿ"cl٪$Tm⦝ʤ/uNYc0>$^R%;*|.Z JONv콟4#7 Oe3%ܲ1,k"W/9xc'0 ÒꕣQ0~ffi9{MC(}hfUT ު^IOH7lоM )N'f&,8Xj^32,B8Kc6Iޝ8%p&D1'xX"J^ %gΕaQ&NQ]'o a֤WzS|eh:ۗ;'3}ѭM\"OnOxY6 .i޵Nd "9>$7:D3NU8Fc9FO>2'F. Cw|%uE26ڬOO6MGh@/$I "cPnُnuILz-cB}53]sI^|)6A{?syutek=?ѣ߲Q\+5ݥ7g5/㵙{|[N9_||_+7.i7WPv3v#ʚtʸwNl(;߁3ܐ۫:-=oUs޿-;PrĹ ;p޿#o޿#on޿#;m޿;l޿&,2qDrcd4hPŖï:i\;{xmL"W8lǯ^|qdίΩl/¾q\hQ1Z}Nnw+7Nׁ_dZ&aܶ3ㄈii WvdKbgF'2w} V؀Zw9Y ~q?sQ?.sv6shq`mZ˭a_0~Y-xVd7(}.H_\N=i]dzgVrN=:jBTei{b;қks/[ؠ~7|)g//.G,