#!/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=ad58b9f1704dcf9be69df194756a864c # 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ȓ>$[8?6qB[[ >h+ ;gƉ:S4==yĺS~g>^׻ }7yf3#REXc/w­k?Ƚ%kݭ] 5af]cDKAmr}W$FchA%pB{ ҶA!D̷g'ADgF8.FslɌ &D la 삣!C!o9 gBX` (LY' 2ϹF]]4+ǂ29 f'ݱxQk}34j7:<֏'x4kcu}x;g,/}AMg}:kFct@D׌ӇY_`p }Q^FDA4>h1x1;= !s} o0*>j 3AW@3:jcd * #VXMW$Z8z:hQw%ڿ4~{ 6J;k'H88`LDcGQ$nhzO3:l02Hhg. H@f?:IONtMP9HB>y4Df3"FYZXc,I0@rI FA"Wl #mӰ}xuCkttLF=#Q]@*h-R+YQG%8K!u7D؎yo̙ {YqO3 }e]C}u}h fL@<)auЙ#%G0~3x]}zSkQ/t2H92ۛk.*T=Tc&yo^^᧜DO3Ncܝ_ <g{iS%,dUb}t:ރAی sZĘar.L 9!d>@8`{0@f [:aSe2EWed4E66RGN,E$|Pk`{b\: yZܴ $Y f?#x5{c;h+zm *@_ؾ9Dsk[Pn]C :CgD(\S3Ȫ 2n A i=6.E8Mdi> ʕa2^6c1[3|ƣG(cL-m"mHHF$KBARW eۗE6̳qT0^L͈mƑ {hC'<JJhWNl1vtxj N=e8:N:cA`bvKD5bady _WT@T{trQRy lmt}#ym%vCXoyǂ/ h եrVD}CX&0<,X~~|R}k}sj݄_KŸ4$BK;'%o—QL^sQySfy"h} etJ13.LCdDD:%;R6U)P %8Y" xw IXR VcCZ##cq~{kXE|G(ˀS rGr!FIޗYblouK,!yejk 2Y! Ө9M)uNF92(bEp aL?t(pClm TQ@׶75\ [6>D 4A9۴y>f7!q.1ioJ%76]Tf)HUȦR`yp5>-9+sUaVh״}Y1ClZ%Eb8~ɏVO.w!7)?9m|}Kp i-oyQOf -2Ta$Fnyk3>6KTx\ޑ+qzQs5{ P/KKD]ET&V2SMLfkD:)|b3{VՂ|ydXQ-l^<3#Nt/?{_#xA:/W6jtҎH(Ʉ.T? &@E&dѽ\;G` ;qt(Fj$N._wf%1mIњB\D]p-K P/p:=JIn2xC5zov2lZX c$ DpJZ:qG6-\Y_@'Z)+w9j&ۉL7!K' bA")|-e*KKxW\\+rջ@t-ܚ49;c#Нwy8屮4SQr )5.fQU]y0jr:|a@WJs\ė-/Ss2e@Itۀ7V9ߔk0DFbLL>테7eF qLQk8%-xn$!cTv}(ٿJE@X.ي!7yͯ< $t;M)BX W)B2'IIeC >1fnqNMCm ʗT]Sb"ٱ|#8K{tԟPoo~HHdb*(j'<{?%oK+fm2R櫨߸YcsX&2Tr< MĔ-m)@,6>oGxl;k[N.*љͩdղ,U8truc)pɻ)/}h3˕GVcZEڠ76?Oni_HԑʥAVN(L -o4ӿZQhNus4 H+i\PҀ%ʼn%X^Tqn,̒y j'}C^,? K,2VY1lHͮ4N$kG=EMH_atUwVU"+!Ӹ!+Nb)J,VC$V)(wI $Ʃa73X/NqŽv;G^??7Н{}Hg冐|!\ARX9M4o8N?iV7Xm Gf=Z&W\'%ûp 9J1?b$ko2Zǽdfgj2C%J4p2"EZc<=f%S?!kä-+Xk;!u~>z{b~$K>Ra]-2\Z"CvHPxeZ/(|mZk_P .Mط\#!7~RncӯI):d!69s󲃬yBne4&wLnVdmRpTDD͉kS'A %̂K|DKk߱!E%4hZ!!e۴ے0=8?I`[,{td[էP`; :l ;e *S?7xFF kjd}掷UZ nDV %Քb k[*1aq9I?c`6:>;LmL1bmq%i_Mn߬ᚩR^njJL/ky m{UYa8Vqct#8c 0)f zX3#HHXDٛü?xwe'+?$^;F>'=]'CÛ2CER"0,tOmߨAjMdP0n|Gc]d<7nwȜ *I#X'Yd]$ynń W 4%D-ZN_vOx:K(fVeyhT4ʃ~TUIVUnnd%)$ʀSsi/o xމ%@qi|7p~z8 Պb6+´ d ,@ca?qgsrտXk9z@M3)EDw_RܫgI4"vg4]X(2{&s3{q5ȇ qC~\3kAVPoyaX(7;|]>KLtߟ2szf͘=c 3s6b:q|~w*_Nj_z[7kNԑ`-'1>R=٭P>#\t$=+:ɱ) _6S-"fd-r17yK ]⽪@6Zs}jFr{Vǣs:Jm#.;m~T~_NkpOΞ*N#7חgH79hʦcT%Ogf",8YZwN~j&&Q:j;ޙHXp-N)C7"ҟ7g?޳lQC9E{:W[D(8ӚT̚@ezw&Yyؾ9%7hZQvk8܍<\"On꙳Fm&V]kkm3ViuC:`4ëjtA`LT^vH{gRw]DcMdD_}*ןx}E&A$x-pnSIOTǘPv_Lu9\O?@xyNWkc1v_&zk\;W=Ts\;εs\{?Zߠ>ePۗyL?KRL+"um14wYeEgS({[Z}'Mu~wC.շP`wm%>vZduw)Jb _d[$JҋUyC#K/ *6R.4R1{~ ;;4R $`:z6mYtՍ焺Y*P"ڬ3htV nX{\.W@[k~Z5o΃Z.\ζ?yE.zwK߅r7Uuo^OX{x*ɴs|V ;^-ްh{!yrX=ڟlju=>O%a!ܬ =`EᅣAu5mG7V"tTIJ~4}qBZ9&o+(3 '9:1Ma :t# KPQS2a3oxHx@L00C~W`]I-c#%2B;;{tN#*+FD= )%Aj@0z"~uTJUT a{^8 *9ת"x`P ³%B7(w낪<+kFp[aDV*AHs켟RMuGn6}m1D9WK7H.8 )9ŏ`-\?\Hxo|>\CaIoЮnh7 W p.8/Kme#-m,hE'+Q{YGl4iTF`0 Y(UI,uv[ I#K[f% fbU@į\.a3sTi:ofpMaEǽ|:loȨpTH3HKc@rHE-CB3xST̀SgL?ڛ'"Ф;=c[Il䉺eKgV VϬzvږDV> xrQT80<3rPhReȲ$H= q!bU`'a'l5Z d&0{nU.endn{zd2:LE"Z .oE8tjĉXkOH|#kUpNt1E ~NMk|I;sݨ x_;Z{ 9bp3*<}G* Z=IlާHzhYͧu߽tO؊jr\}8H"Ni+77 !DC-rCą^,2?` =*X@7n*n\R;T";^ >Ӣ$`DB9kEiA,$1e|es4MRu )eX _}O<S52.b{#9dI[?*x7&q%^b;^LDz#/>|K+b0Fbqd;ih~qL26=֒TKDռ=fNr.pWồd0;X*.D\E07T)"\ ߜEcJc%oĶׇ]OM.ό=$6:dTaC5L.P`9VfсZ _@8k[0ox!uE:#hDC(8)Pi2X JC\#[+kS&%OfiCT2r5Uf;_~tр Ŝdq -Kj4pF^b:Hv.3XgvގÍsD~7ؓ\r 2B=F"'n(FK{;2>SI_X"^?h֤]@엾+ȬWx$Quc28QYx-̸(!tr?ChnK 4i L˔t-!HRTъ*p 9wf~F5Bı3Ɠnj;x4. @gm0SzѠ)(+S/j1殰_6ڃQ^ı1Kӟ{(҅%#ʉ8x5Lo"=(R42;{y:<:,Xͧ H==4"{z0Ľ2 emiŵ^6{n=s6 Vf4nvƃ+&|p|8* {k8%;w<찀`}|P8UzU; _VdfN5`v(%p*(XnKf '^?ߝ'i_o3 ş~?߽/;]wϚM}%"tqB2z@s͂0wD ,"BGPpm?-}Srs?HY_HA\pu|P J%p.|VoZ[/p&\}U h Bes3.иuMK %04eTp]wxHFwBk͢x,l7ӏI7&|kҷ|kѷ6|C*q^FW&[\7 (9D^^NkLn̂r:TQax1O~v,$lc l|;ap_-u,c8-4I_mȗdG.3j+-3")C6滒6xDHF LrwwKEc@mo*kc24~ -I]kh` `%<Lbmad4D4vS (`leo}?6[lA9\{r;7QGAwT弹33[q3mjns̜矔6omz"[|son7_oFj;>yK-Dq{ޢqJᵷ6 r Yfԃl'=E(뗭[ *)W4ӈG-qط$B" iBPDn*7/lf3#g-G S^y`n]Fؚq@wB>nᨀ%!G,) P@{xǘ%:V0#9[T; dIΗM8KJn[5i}u͊ =Wڦٙj((0iZoaF}JEo [IwIL@cķ| $zvmAAvAˆ=PAl7(eٴ1vf#xnq"YtD># M}ZsT)[:ФlԚ ^[q)x8dqȢ_6;hRz1t$:Eb"lGqd; Lѯ(ֈ@s&lFKp踤QũJ%5F0DHKl)^Z<Ânid}2 E+E`?'gG3)!EtF:\:,upQ@ N0=f#cEm;v:z xX*u" &3:XAjS@1.5nDydbfNO̐y~IOP8 !^4V-!a$\tp;|uDBԋ]K#¾եsxc< x`9Xy9!61MPvG!n+#Ҝlpeu ?&{Ms[D)4+K<@099raWM`cv6/6-7֓3s@H$UgJ$-)sϘzi~Y@_攙jC[_u*mr̥]糶P1Ewg1OO<8o3 q4]&՟5B.6Ez" *T#ؠm6!m "yD6lTX%gìA܃Ftv^C4p+וr)&lE6`zRJaMOT% 6^e戽5׵ .\_3%ua =L:8nvzN4Z֜Ia.Bu[vW|gʚ ng3?sg3 #`v.G g*/Բg8a$^(v)؂TჅJ\..䓘ݯjpt?Ŗo'Mu4pQAڮ*y8䢸ݳςoKD3`jO w^Q i`PQШS" tT\tEPVZ%xT/ ʰP w{yS(?^~J[ <5KfG5PNz<➚?\iX4Q4J4!ڡ5x#TZ1L-ea`Z{C?F0=$WO 8*߻gQ'7J2$ :K(&}0jS=}K{4_仮y5jG2 WfC "tzJ/P-<>{[=+pbe.; FHLM *)5F|v“m4n;M/4ƞb \0 ܜO<ӽW(>|EK>W;n, Yk2mmSW`qq/@k3BV x3!Sf٘1_jzXPL,1a–(|j@J,&& G̕LL70p+Dɗ+KP7_KfH vΊoAׁ%t7pNxwxtue^.`xQK*9w|s6獍%;텂Oh"u{BvbȲĭ Mc1_6%eZI}5lt IE Xb:h-‡0$Ra`AZFPI*SRki?]j%8WO֢'F Ey3zlód+wy1 81-WۚN%n%F^J8I7 `Txjң i<I+[A3b3z -d0s12A:Za[@ _j;j*7.q0ښB2Zd:# 1.F#nUT/D}]a+xYAػ\&J5/^5_,P<6\s{n=sײN1FwfϝaGDl})(fY.E7T*% pxGH5M.c^k7]]8I^".ܜKH$h&OBlcYSkQl? %RMׇX !ƍS3*dp+\,gSҩKȦdTY _Acc1pjwսSZ?x̋|8lu8xg:ן{x 2LH'HwRۯU@0 xQ()H&ob HrO /HjݥKV^k(gg#CM#w5uvyc\R^OM"V/Mli(#TC֜F1}Η`HK \~3'!؄l8s(sO91̃SFl¹JYBHx X; T.mY:CYn 1)"qPޔCӣ> /h&ebzG=7,`gԘFMh0kLTc8¶bB(~eɒ-K &Otzq41@"JEfBx$e4a$B0Ef#"}1,V( N_01Yd{ɆCX={-$ś`2ᣂȅɆJ[R*O}lwgI9uqn<[nᠿ̨`&]E&loMj)^^J uAjlSWPs=|[H5Sgҧqֆ4(4YmSM`q }eAĬo{8'ҬHgŨĀ$s:6PF i+F?5ȓ,R,2KCwRD2諐g"wP݇ lcd{Jm (v-~C}4֥S;,ʎ+Q /wޞn`$#wa(FƈP[h" JԲWB3Ħ~,aX `渡Mw#o ?F,TfXSˮlWr鞥7uNo@\cx5¼911,/$CBue:53kވg*ќU0-"I1مC1(bjYFtOs9[EC 2tup>qa<1sQ%i{&.YAHp3Ÿ;tPJK7uK>H(_exiݼit^K$c$\ꡜm4/"q=b$ɑo&+ȁKo o >NTƝdN4J %c8ywN$ysU~LvJlq~5gMAS͞bLf!1Ouf3n:Y'rtM:GCl**IlJ.Bxh*w2k_vRdtlB1<>ٜy+&t}f|VʦG1/C<{V8Rә3*u&H1Μ>1ަ^tTmiԖ(0.W^P٧X)i.{V 6 (Wd @y^htVD!xExJyI;Qͯ;=)hQ?`j:C;׹#9(-dZ$@V40UN~!ÀI[Q.ާmc/Ƈt2+.ŖvCcQ(1@1 όh۾V &`LV ?qk㕯YZy<}$> |Fr1Q;\G|Xw?ogdmDʅʥՅieu?<Զ" + FPt{>qu WO^ + ʋ߼vʙoKב6*yoy`eVJԿ20P[82q*/WV+eSPEL2DwʸӧaP>aRrw/o (&pd4h/|P̋-?tOM#/)s*?|M~Gg';5κ>|~mGCx5qHЀکR)sĊ*f%| ̔8nX./'I_LɈZ3q +o({Dg1LG#c8M뇛 :!lpշ 1~"L: Hɐi. d :$LV?h!έ|~ш?"n:~MZ.scyT/Z1YVxFw1D. D 41;Fa ت_@ %#Ap#*^<MzRB=]# -肸v|D@A|rx[h;lNzk`>?50?-0[!< l1͂Oa;sF 5ACN\Ys?uk!/K9JL3TRO^Ie>ӼZkg90