#!/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=d6c483b36b6d63d19489ba9359104b73 # 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 s]\)vJ^^Ÿltqur i焁zĥuԬLjdDM(l9+נebٺ@e;+,ӚZLt%uS,]gmp>f>w>[mZ8$8lAW,BRyę4 `V8k db;e2@X>DKsZPPHH0jC L`A1V jzCЇ=.Y>u-}Œg LbZl4"E2f LH q=L(0jJfS…h`)tsx&X@#esC< `Q/e(s=\GrW꒳)`q$_\rJ#]h#lF `o+0vua8 FDd@G*KJNoܕe(H|%l@28'WҨs 3'ٌ#&H;^{DpHJזn(Y^DlzI^/Ur&1VHS|2QRGKGVE1A'鶯`Iɀz:t8X`eW{#)7PƊtjMH@fgcEfғ4<@  L̃>2lF>"bC\_J>B2Q H`0#y%}'_Hs-+R &+ `1cΓF\fj%9iwH|ȁ0u.P(X1_ ZޡeC̜;=f2:vΖn3ZP:#y*as0P X@O7?SB5q1!tc11)Q JIjq\&I J-i=&w;mZ9D_`rx<ZJ.k~HTLpH,![ِU+}NΔŰCiPۣBo!sZya:.q m<8+Ιd W @`H@, )EmSZM9٦+f dlR%$CE?Lf@'sVȊ,g" \i W`8kD[䁍8G0C=w`G4I[uoD 0OW2HDs-TeO)Ge-s |uupt:enZ P )5_.S&gܫD=jqgd [www d5T_s^WXQ1[ܲ1E eOO_>‡n^ -_REvBh\e\8](VJdNf0[NV)"Z˞:[Em~]{K-Z[bm.dLaE…c,$eżPR&L3K"XR=r^萵Ejh\ hQ(ͧb:MÆΨy}`_r267^TtXoAm"W^&"2߹6`a=\, 7M #5Ȱ?"Bß <˔ !ȨƝq3, X8< cߚ[l?>8 W$|3KXn\z5Í O6M!Ӧ}>@Lm̉Z[2A&m[6DF_[UhxٝrLV\h.]8$U"'K͇ X ٬eee:[X}:yԎ~zᵛ h"kzsKTTTM q48Y{2ojւv[1IJ'b>>nhf)h$ΡcXt.pÇ$V)REfU(=HE ɜ1q~BL=gVB '(oyiz(6Ml`(jI| p"#P\c` >^;ۂ.&pc-vyV,sبJ vj3}DR9ifQL1BqDzbX0xӍz^na53FiȚ(CʐҺ$öxnf_:Yri?oz^F[YxrkedT{=jYJ=5_e=9Y"79|ԖZd Z' Ř׋LuG M Mtb.*pΠ~71O.V5)ͯ3ꋱvۋ-zs{ oG9/.mEP&26 De`PI^` pi?(M+g'YDscgx+umc^ՠ;I-'<\罌jC'WӹG=W/OCĝv^=Ŀ=XY;sqsZ kHe 0-51=d9P'{?B_({STjY x9Ӛ,KAbI#CtrV hu6)Ƥt"o"0WڋE/&ʀ+]pR 9~)N$(zăWrAR3bjd&V@[) 6|J˾@Ք3Ng> ' j͔g7&$v{8W%,~w LLICHΨ+þ_A7JXd&;(uoeM ? %-rtL.3 %?ӳԷL4Hv"dYiϓ-\x[W볔[|K}1nc<R2Pm {ңn$gC!?$P*xs:n4?oWv]gWv]gWg+$J[ܘ9 nW~rP_ʖW*2|2"GW&I'40HLgЕ74K,> /o{_F+}2f$ Ճ{0ݳݽTƺZ3|7<+$l잙ӆ<"3##xZ.M$[*@C {4Y8a;92^0 H-lօƠ]5tO=xֆdDX GXfE鬗J스pyHtK7}/iO}'Y/C(0nKCN.ja4P^Ÿ-THb]@HR"#'ZvOF3?fR_I:ItRI4O)6Pnn70XۇtUT5d@1;OxGI+mVW0p8n X;|PZ*k;<ƒm-%Mdن>eF[BmurUATGYrKn7w~=$/DƦ#vabvC8:]R|ч?n&7zֺMF[B.rӤqSXg^-2 E8j$``Dۗ7TcBpQ/3xDy 5Aص0?*_EAJ%I^P#ʒ*+ RX)x6a'R^<KW4- 8J/ gPppMs>ExqC4pr3!wf @`+M޻ eakzuI@ԴzI(YиU jZU}Qj0[~m" 7td!nTjSFNM;Tjh_w` $)i :-,jhh,u|dl% u\j=jG܉h~>B%>{`T3(hߢyz8a Qra9lhLEgTm XPO*l@ =ZJ('aC͗g| fq)t Ԑ)Eb7ia!n.ZcGw3lEZ7_|{Oۑ… -90`닀^L- ZάZEU$%]t!Wtzh8J YYk)9klm ^ό8cJ 2+U0`vFc$Z:R^u3<\S($ֱBgZߨN㝓BU//D= kAiT}ٱ<`}(P.|U4-HoX[}B_t+%a}Pﵥj&o(p,P-AC\+~=E<y@͠[y3< m7f "̆B\z?8we{MmE۪㥅q;=l܃S#ɫB\5>Pn?V=H1'/$ņv~npPTܽ 9!.{#8@@5OKRҭD;glaڱF{4/'˿Yr1-Kqhe:&*:TjN/FUΩU\TU2Fn6^EJxʆIN1uJ]7_2<3!2khKM™g}^{`@*aݾ,Z*Lua,' upސi?,6LQ>9pi^.*+dQ?W9Ey @*h=nY}O*an]dKFы퓝hoQ8i}fEJ_=Wڔ8QPFcf\֙-8ST6/~A&U(rGKvR_5]tJh/TgUPYV˘y\Ėm 󩡁s49t@#b8pyZMTȥ  9~4S.IdsfԷL =4${PFf̎D҅7  sM{Җp* dn+&:lƌ Z7Y2s ;[n↴)Mp= lUuLaYxP߱i76t~R׈I rM PK$A=z~$pl^"˄R0_RZ)=9 ]i;FJ)=H7wWۓUozӢNmulqGIgꝤ&%BM~8!_@rPYlCׅzV+=Hy-KYw.WDпp8ę-۰=#;_4_/t1XV)<.HU) eSz+բ7rFTixQ\KYހvH{1EÄZV 8NW|*ja8J;Q:Wx;\ȅ)^g;9مl|yZAF1*c p/̕8{f;#h[6p8rEgawF*5+s4ۜju 2ߛH e(Ԅ*zR'*^1# *,K1oԯM7BCo­:߫u`ȿkIk AZ>6&-d4 089>;QEN$D$ۣW1əԾ )֓G>vr2-D%9p6*Leβ Vnٷl:ZߚpJayI6[deAƷgTeYnY^ 7.=e.E/Qŵ2\ 7?G2'Y#QOcrȗ!WU&[<~}^D$~߾Q 8wqKQ7"÷D;2Kh9 "g#H Z#Z52u3U'tsP*dŽ(E~Y83}=}ysI_i{3zx9Eeq*@2|~бS e>MG.?#/夎m-Ng2Jф9ukYxh88TK!ņdqXB_&LxzY]o䊦/RW [NPPR\? kpw3aTKҜ_-W^6/Í3*mW\`7h(y{p~1HRDBz{{+_3A0pUA~_qi׃LptE@CrҒH=OC;x'0 { Ni?TB= y-|mM*q5%s. &"N-R%!8XÁ]Jlbh^;ֈVZp^{$"ոhϦ藦jc؟mZlDkBm0.1 7;$l"ތڈِow`B \fD+DŽ,vĦ614Dmt֙A뜛aAlQ 5:l6?!-Aݽ&9Fk~X?"T:dQzHԇx@IB',? @`,v>^8o! OwLS`=藌vkb2gVQhs0]QGqTZa,L[& ><PDtVL7ju` 2[7?b!tܝ iȠ]Ih)ߺ4#0:/3T*yZj`;強BC}Y6VסtUԵCe gΨ=bg/;q++J \q՞Ɇ,7_0Ywbqnaar SLӁBqCJcu>>W<[|܂W֓N}4]+$(tuM~f3 ?g_Jte+Z]j'ѳٗoꟑ=k6Apn|HxO_Y4Z}R7 ?ggK< *U6 - ZP5dleפSFVO v hCvʸ6J. M0 e8b7_uiԃp&hWrX/4BK|Y}N/:t Єfwx4dUMbVM]l@/(^hg{t1;Ѵ 8 *(®#6|QrW 3oyr`Yqzs `Ðwv*2)YT3*E@Yz& Ep_Ef3j)k c0e@u}emX#aW.ݶqs];!e%; ë"GtקseG{ ڟjlINo.Ҥ%59xQ :[ ̌MP$ n}>sɰbaZ<0, r>]gְ1]Ӌ]WT6Z\j%ɯGټͭsb/QrcS<[mzy"ȴnumh ](\Uhȡ"#'HL@Y%BZe>Ҡ%e;*)F#xHYUeF$9@\Ɂm$0k0ӑiuGycdT̑ro F>2@L҃ikBv'Rd@vL݃M=8`,ŨA.>@P;i^9m-hwϢee4& .0̜w̽^٠%Lژ|d Db~.{}X'?(U ;d-L sl?oW_ZHW{YI%˧@Y,+`ԩnn\EnWJ@exXh :d/ *#?JGNʎyQEz5H"Jm_m6/Zl|ź'X8 XBޜuj-Aoh"R$L':}lJNt~+np\Û+Ž,sa*WЉBqޑgk4-=BkmD<;KϮP],D{xE "|9VM|}?bFGړ )AXˈr!6b"c6Qy[e?ܠ6yXmEvO & k*h9d\6Hdc"Z}BGp,)'l-GWZ^./ӁTʊn.^Q@vR(- VkZ-ibIUA^V6FSŨ;/z=qX1pjJ}ݾ.q_fś6$`W,-^eګm6>kdnF gɲ2UO&3UaA}ӅqXt[KO׻Dm#/W&PXCj2swQ1gӧ5w$m~Acs <Ѳ3oeflPjkW O4eyTWXۦ\ czDu1zLG]jd; X瘑<ܦf<tTp] (Y~K}vtTB'i'WFCl̡#o064pjNH1D3*ho*Ed4*lצL QjIʊpZ[ȴN[S1kj8`OLd!FM54qZ)h-YH) PӲzW2 Z'ۢy9I5>C 8vN\<-U<;6v߄'!7 qL"Z@ f\nJU#b(iY҂wuڤb')d|{]/maൾq=zT5[L?'^U+6\xZԽITn/u.~ӯ=dm~f3{=g3MR )s {4V{\[+_UT*f,6_xRb3u(z3~뢋궟xla"õAVU.z ݸ*ϞPE3ɤ9xR%zMs۱c{Igr o/6_F?8,{GGR|@5QKTNOʥN}Ny 3-ز! =(* Z||fl'n%ѓGK9h\Fi Pp WIνi 5*ہM('oJ# o2wGn!y}0fj)HwcŞy$XNVά8۸zuw gubh٩le.u9V  (Dl9{X ohXu7@g7H‹K hγfyEu_ZRel3CFx/?pUh8F:-2BMpGzy`xs-j5$NIp\¹qaX$ ŋ/ o$UO'B´,Fnp4vQ6f 2%~IRnx2~ԠlFV6OߟE7A|t|J=y#bx']XpM9id$5wa~kQA~9c2e+ڝqrpK~[ǯÈ~6Gy< `F0C@J/CI FF$F=#'T.Hn9\8{UٳR^"Vnvw?1lP<زϧovĞ5gV9* |RYQ8אӣ E]SL գH Fd[YfX8W#o 'uVsk%[P!3kKxn/6 L$D`$f$Ԧ YYYᩂ[4 +hd*fNa']jCcI{A}I_o5q;0O]0dIX\i=1Ɠ m*Fc LrQ¬VNƕ x: Uᤎ{A+LjAO:|b8:xXooֹ9-ዣt=?vOvvUPlfjMcl~Uq,0m [6RWԒ# !*~tw,7 2ZG7-SZh᦮`^e^̚ Z9cG)} F|7"@@%R%BbRߡI(ExLF-(Tސ*AxȑvJN#/ H ˫__߶9:993ŊN{jq պBhb!j | -b>n}}bYE,rAṊ̀2:Guu7)"s^Ȫc(,ySd-6Iߦ~3 +ѬR^\L5' I&Iz(1a#:Tm41t9h>*G_2MfFȩʌZ^]tro2鍵Ex'<[4xB,rqG)n@5kOdīH/-.5J}NJ9XcQ%upKצˏ\e&84@@ "VO sVL>=3 {nQzvɣiFw<~@Cm[v>Uf,r3g:VufG9!DThcUP~w.ۮ~`7˟D+{Prr8 !Qԃt&L햻AflH^R5eTJwe+2 rC%V}AyrJZeeUVN*Upwv(A&r`Q-SwP+#qkLF*.d NZU|F n_ʯ3bΉD N hWIw 54`3'W\h@?s"6SW"YszYEA7M4,-soAS>PW^oM~w@yuMF-lRѧg\9t:Amդ^[qFyCQف D+ɧmn=YEo@|:f[FIڢ3GWI[xD$,4JO4۰ڟbߌ9A֊O(¶ ߢ H;M ҆>~4%26olb=]q%5X"ҩ4~5{ݔĈ8wqV'rg3C#!=~sQVqM-։OC\ Ƶb(,WfmR|گ^OީN 9_$7;KŚ1, J jK-nug~zg<Ʈzlg\0{lAR*L7\8~tsUUGJTKȤ*#BFQGG:Lkݱ,|U`5 H/Г[nu/UPsd@c  u)AJGF^R'zc4]漤Tqr2nElPn~"{Lߦœ48s:cXP=!JxW%{s?ͪs \6<50QF#J{VӿҸu ,`ܧˊUs:9=<9;i91or>tx~e>Vxt@n8.b;vY yD-UA]Ha#(T=hEV6Ѡcj擄%ǰp'7b kb_`Gў/\Ra. XhZ]1ǰ- ±/a d_mxAۉڼ ;Y 2N+7hf. {TǡC>kzXѭGoҫOh{LbwToz2f-mJQݲ1K*1u|A>ʎdm0j0#Ow>Wj?:qc~_nT6We<]Y~Y,_#w;E΢~gQ? l9Jzx/<=~AwUL< }&x'#y6pkVgpެd&p5Jk8` .Ztɩr-X%9٩>ᡓ WKsjMZ)-"FSmq2TظMV21GCR@>i,b iTZq{I2ӽ1[gjO/xN6ya˃Så#7|(;_b P~/ 搠GK]i-Nvbn8R+~+Rf|^.~ۇ>HU\zVy/Ns|S88gGvK6 d t݂?P?I{}ow'l-_~z ~!*v`oOh7P '4)2FyĪw#_$BF۟O9Zd\ qtŶѼs:H>4) Z+'3cs;8?yTOQ'#pqǨ(Kqӂ#ˆ>̰qfrCaN>]l@$)`zykDyTAXlajܥdD7M .ͼ 3}Ps_'%ї_2SY"63Ժ&'S]%TadyDqT!"|COQobc}cGk这02rl5Da?j-'=Y[OZ?3ϙ%`f Yf%`95g_ût @HxDav; [&^]9މ,=<'K²&ߑ ai#~%XcD)<$w %"Z]{thr K j9T;mnmeVA۵=8ŎcmY'4nGpEIࢄƅe-w5|`e+  S_G\ k jDgu??!= G[]\'󴑠ETF65M :iZh돕\\­Psw С(;}1&0*Aa]`C:Bn" K*YP>+CK+<<.+ů.0֤h^ȼ>V5k7"z!N_ZN5}%+zx0,S򄖃cK K7ݍ܂ۇEᡥW*:_fNēs.躄P<6T7JŹ\PJC$)8h7"݉ܗ[Ѵ"_l%9uF![pwyJ"Բ˾J cfF-4hrn(Fr=Z=(+D4p@M8OOQ8}7>Ϊa(8NZ,nH4Z|Xy,\v`pY`ǔm{+"L#=bV +K_pt9ݧcB'ǷFm| IO֞><~kߙ_w;yμ~g^3ߙoo2,w:PIᷙC(E8dгKWD};rk8AN>4ڊ(mHe4{NU:Lnht 5dWTʨP"1ꑄRCz{RT+\>ДŸrUdNN4*k&k0Cr"r/Ruvyi4&y>[et5E ݕ"`w慭Hdoa|XuUz3L>;U*Sm,+4Ҁ_p'/xehc얶zEiݴw1D(T!ӽ𩛨`'0ݵ-:0*C'>;І{L E6(A.Ehhͷ?\&?n{T ;E*-҇h}x$nJi=dh7:bBh?j=bmv vf:_0p*aLAu|j7o#,r[Y/lځKhO7HZ(8i#|wxz1|.eRcʁW,Ճdp-50Pb-b1hiwi<+40A'Zz? w8Rj(_Qm0j ZӜ1acꏆ_ dO>?  R_]{a&Ӈ[ܿ<[>:OW)l*9mb],jjT>ݿ ϧ unO)ܑ;=}y_<x:;> wfk@[|jYXw0e>)Ic׽h]'{@x,>-~EAҏ:t1 FkϗݮGt"YjEZh}sӪGMk=~z} "{gX{gr"}N)͝Ӄqx[ClE;Mxz]=,V64u$׺UF{7g{LVgǧo#v>tvW $˱b,AAVO{hx/vAj@4wCBa-erHGĈEa+7OqtN2Rι-xYB.zZmg:!jHzDiBٯGu}/rZRTK ^_s{!.{꒻PZ+b['WVᝫ?GḽVg'/%eWz D׀b˿Mr?bmCؘzfg3~f?g3~f?g3?W0