#!/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=6bca54286a06f7194c8922cbd5d1c8d8 # 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 "Oc @ q%Fa'I,Lhʰ֦꺪?_8Th21eiD V!Q \.K&g]Z!|P-&EL&{{I5l ϬE ?ܷX# ܰM̉&d<vz}9j|;D֎[[+$ƀ2c!i3,/͎+Pq r!!Gl Eо4Gм,IWHd@:2 zLN ^+e@:2ˀueTk$XGowIK ]_^[~w%QTT8i"]\VAS?Z}07#m\?.Nx41 ߫hTKtvIؠ T諸V`Y6R+kvǢeavth2ζ [amG;yi V5؅u5ڂg5x`?+ mӾ!VjrMz"sϸ}SV CLЗB6S|),쬰za*J'OE/\tK!89܅J8^I2ґ#}R@@g R9M/pxs8q1'ÔU+d~OPB OFSw;EzܭY_5HC|*yI3|&n^\ɚGTB<,L'vPʼ[\ c f GINߗֺx. ?K0~[YaxI¢ ïcn+J>nS3$bpߏ+r2+.Nm,Q#(f,D>mq'>$`ld2V}Y(&,0T1tѷ) X$95|VB^-/ԆX52n)ER}Ǖt#&T3&-)2pkuC>9jtAT+ 4I!>}ޝczL$ SV*hu98%XL|HmPp3)ZG_+rFhFK)c 1ƍ=K.tZDMόz{` \<8,;\hez(9PͿϬ5c9ЇBbe ߒVu^_B_8gJVF yMIsqY5erm\9ea_Irk_VQ+O ߃ah6K63B )65K/U-57υm{[l%uDSGk(({[Z6Z+)T9H#Kvեj2qg%jl\ h-Qspwc|o6ތjE//=xdh=lЌrtx_ѐ}1'L66 3Xån|E/4#&ѰXiV #ګ^W( aBر^cLNkVOidZx h'WTU4 ϰn:Φ[PRu`"d[i[)SsYIQ6m6xF_YUh8Q(N @%&]h.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{SXHv}e|C=/"w +#;9 ģaUǎai?jY1\xmkOYo;`OWspP~wW|M!+a63a(pPoO{Fհ[NLc-6[ˉptkT+=)A^ 6E6^}[Qӄ]gz{^~_OTFܕP'{< ::pCqwWFOo!f;/+jEkh#{\ȞFjOb>oƥkw~  7B|~,˱0u]"{w.d F8.V46Zރ4ni[k%tH {w'/l9j??Ⳬw߻]{WoV ۘ=svnr%|YmRKujA%O`ʫ{sIjCq "m-p]p4yW'#.Z^fr^fubI~c`M"e.0x & I)29Āi^}}OEfט4E"8 J%-.-@&AރI-Fê=0b` w^OWeAxh(z $T_"KLk"K~DG"joQ%SMB?%/VQ=5!ѭ+Ko} +_NAaIA8! ǮF3ՑqjFi;U50;rd*Ǻ֗V[O0nJcYf¶0'Ja75j2,7.\22 УF1odx>kӝw6)>F6z͇͏ע=jFݰ+64` l1Yqf/XnۄȾ*Q+V\(\e0MG% l 42?}y_GWm dpM  ڢ@gg[Nfwb议ԩSg?cWD[ 77y2԰z;YKh잗ˣ/a}'kj9<l)08`"AOдfA(~j4+ qY8 ~MFq:㗉ѽ$0 }ҏa35li ^b`emV^CZ *ȏw/ ]n4OC0?vO.`Y?q[QUj x,oFM JFpO ٣-~͞=?(3U <AsKǂZ4s 8Aey{z-GQ[SW4P|2 )% vq-t` kv6q\ӄ/ޅp!g$4n8{V]^URnxoߝH."(h*9bkA@#QDn>J.Sw_k\tG@BTbԱ@7!8AJY~yW*986^#7ag솛/."᫊ g9Ye_? ."ìg}f瓆'P" -{e1FuwWy u4vI *iX*4 5wgdEwp}{u+^4$Q@r|TtӅ67s$4M"nfNMt}4K[LT8W?dbV=öKhG'(|}&qQM7+%: KkGYZ~10Y' B䓓 B" mY#ff?2=[eYbzcے?K#h{/OCBBX|,K0|sm6C`(q1 k_g1Y&3Ivw'~})"k8߇ssu[W! 'g !uBopAnѳbmYUo'5Nvv'q"AZYs{eemv5OѝO ɁS[HLLrૺr)7&:ZI1ZJ~]bj-$e cʕ6lW[{tl EeZV"ecf$LТi!0WMݲ S[xɪzYÙ n)3l#I򻁾cr̖,aQ#G8Vކ07S50Pm"[Ń~t(xfUy at>U= eW+iջ{7{WWVVmg*uҢmvlCy$K_5IRӒB<喚A4^4@6t_C+H+z-$ʻF}/-/i'.dn?ȶxi",53(PYSϤ THQoRFȡtpZމ46?fy&"1e4 }:]V{`c؍7vjJlO,kjp;&(ёC"t=r.u7##G&Ӝ g< M/G3Wz<ͦgѶ8m1Ppe 0Uk8f~n$05:%ywCaGیmQX@D)< R;he2AkC`} uzdwZ:p$ǧ'?lut@d ֥flvizn\o歫1刄eqcr4\/^9[Үղ(j&uKҜw"iZةP6:f&8K\KSZp7z&2>0 㶇hyC8\[FL9γ,Q0ߟ3Q`@Mx^2sQU}RK:&K˴Zym߳>l}k&`i%gg%]f Ko@q/Kc&)GKTw3X'X4Yz<ERQ52Ϸ,(4a=++PoHm:YQFF$yL#D ͧ߶n71%n,ԍnMxuxt&s^F#r"5T 5<2M "ey,ON7 " &HRM|s{ybzI7ËIgfx1 bM/_m^PJX`^vL'j\Hڦ<4}FFή}&J&z&wtIum%zל'+RFyi}d8b-.3L|bFpk;%hn6A1/N4@bUJ-yjӴݫQ/%} Pq$$3*st jӯ 8pm,rIz>b.t` $砥J QX0 ylKD;i{%/ށ#Jv3W,Lp 4 "bSK7ˋEPӣrl]E(Ԭ뵼ꍎ6,F!Jat:"!1o"7Sv9Pv}k[LĔ> 8SrY0 ށr[e?7 ^Ng&&JldAD&QIa(5Mhf\{ztv p_:Wd>CC?55T;6a^ExEt1&$8J-bKVnQ Ev{ekecVAO+{UJڷ>N _ˍ "Ѐ('=Cc'-NQ&LӋ/UX`+a4_AkbͼGPr`j+mNܶc2A<.ǪSE󺺫G^?twpvjqi̝OԌCd[+oEa5asV彈J Y]E+eSà Hc?gϖYj{OvE>kV*CkkS[0Nb_,; ~N})U集E ezfA /$'=<Ҍ2J9ȚƩ%`Š6; w|s}gM)tݷv0 Y.^+套4h恵i]c7_]+d쬬[xB#'%/jPmV3GpK.217ff*b".v\,c!)AIE=H. W[+''S1V 9!ZVsQ(' p{|ۉ(l,/~9!&q^__wW׎ORDH2NXfV2d }Ɔ?x/yGW;3;SS|mMg0ή[.ۓiJ{Vu<)i>&_=zuO~ýZ[<^M*WTΞo90IXf~~<===[=[[^mܭ좾zWV>cEciߟL s%DǹS"C'@]|tcwc.QQޫIB5@ S4{zdoM;;R)X# 1mD3i"0tf{#byt2YZ,-nVM5 )F1 =>Xֿs']mf\z~b~R fߧe "C-~?0-"ɏ'b! \GQ*zBAͥEk(xkң:UOLrS5vҲṄqzWӣ\ЩE CFa5M@S€Y '@yޞ=G^,!BR#AmJsKJA#zil&2m'"ybLWq e{HuCD'N1y}Y6qLv, N M^paZ`tX`> ɁA?B 7ė1̻nḉghDd|9gv^h#P2>,,Z a; pRђ߾yqaq? 'V5 nw.6Q,'=D ")G3"i7HO ܣ;eenv~yXH~eFAR;$pȨzI9WY%7Fѿ9{ kֳ$hcw[a qD "& [uRJ=`]s{JuSx3)Y'+nIX;Ш9{h<2LA3E8-yf ~JSj%1f떳h'fLi=̢(wڶw-E#D_xI: 0?P'iŃ1˝#z9(MHBdW%9wqs)t)F5W01R^8䷏Ou {:RS08AQn#l);"+:%aԄ E[Fvm G zKC 퉰d ıX3ۂlVv +[TeL.+Q/:$ҍЏt E- 1HoV @O8WXvL=4T71={]x~s^.6$C#V#',?bAv|tU>~QIӓJK`RQ%"z=. {µA%c5]RÜtj nr;_($ L"U( $VhV~GsL'qoL+6lҞn~*|BQwʑ !p^a;0vnW{Lj ZuuKjS6;8n@4̛> lŸV?hW(XB.?Ts0MC7{ksl0LlG7\ aID*цzzӯ#UHTdR;LnBqk#:+{p*6ZU=d{N1DNbXAM&ATR^{@8C~?U-}vkds -s*Ȃݍk0OW9ᑎCJv5a8LoS؅qszmjh LȐ~ǏqpKW*T18캀\wrCG׵+d}wMihⴱg#SPX&^\ɵmͥbJeUU|'KrRU>FhpU,#ٛ./K4w%0flF0V(=9fä}<$am ,WK' upj]{VC_RzY)-8_E^(" Z; 1 }9]xηf0´"u$YϸsHI-u-3"5)Vplb,;X˓N<;q*gL6SXGIƐ>Zv*d5Y2$L*}kY>7%&ᐅ"e;r1٦;1[ TM3BegZJn_Z3Hid)L@8M7 EK (T 3Un;v]=@zj'1v=S*Z{ˈJkc2?P+ʫqt\}ch?\}Orv!ȭUDft /޾ߔEdG1Gwm^>˫kOV|'S3OS{=^2I GA{gǘ>uƬ$ݳϚnozXoy0kJtFm)B2o4iղJ7+UnbGWO vk _+mU{Ջcn&??Oo:xO~m @spUW̡Yo|mv3#ޛH>YEShy6f߸) _d,_JA }k%%pfy#Zðh;P~/_3heD_ :Ex޼2MLog`Iv/Z9S=R~ th`) 2geylfHr/GvS ~;[~ko%nN)kh@) EwG[fd&$ja YZM6N%K!9qFo Dv\h|a1Rrp\ ʧ8LTjAj$kȬYd#R Y) Ql.&U$3h'=oDnZ gV|'H)QLg}3?8i[B׼T=pO`~c@aWOx^Lސe*:g7yen l]ZS@db6m= sƼ?3|z vQ5~\Vƽ>_?/ Q L:,]ik1?6XU"֜7&49͜scJM(g՚?&fʷ>^^{V~gjgjoϿad~O@9uTp&T|N jg)כx=PmqrR;y}B8u-4?TwKڑYإt G3>9{ZY"njjZ8ۀܳS AB#]qITܶi;\JtDYpQKTX2Rq_Au׈Fi m!mZ_ךCL{g|ycI?L\h$≠mM *wAYaףfYDI@nloH/96)]dUjV׆%j5Y5zX{inp2@bB\uCpQ^mK_c>%7M ј, &'U7n z[ ˬ&: 3t@J L7~S<hNS@AG<:%FMt.a}/7ݗI7-KJxLي| [X梣$N_ XG"Ur>* |dT:v DP3{~FYPxλ9LDEфц*zTUBBL M@% }sKZ鳮ɹma:`MJB2},j$On3WOJYTV&=N{8\a%-} Tf-_噲[&SUW*j$hQQpg!:w~:XX<-e\IuJz΄4AZ/'ȸ^,Dh+Ri,s ,Z2+/fZ$kAɄ5 Y"PUc?Es̱nŮJx>.n(rU ./n|&$tpT{.y.*~? gq#"%sh*ĉվDrTyV4t8՚Lk }sk"xdC RZ_z4&:֖\p錨BV~]utXeļztjϣNkgmzq-.7%If~p gE-QS" -/Hgͼeg.(?Z.x6p|6 a<Y<4 浘7ZwB'@ $D\D4MzJj93t; 9W _P@ XY2mPÈHʒ:Rsƒ6,uX3M'_Iɴ` 8żyu7!X@J`FORmf(=1xnќu:Am5r@Y&8A=M耩#'Nn|<=eJOV? Xϖ(?jp3*p>*%>u[7?w=)ztyCؤ8e>qzY_b6 7cF,hzŠI;\vGpBѦ^*mRj7K@%g3 j\֌-Enp?RyTZ6fP)bxaV׏-|;؈NBPL wbM+N>yLJ= YX>/{'iT4YX?E[O|pk0Y٣tO U x&%2Jcnr!G}Cz}t-MCD(}9s-pF9k*Y&Y):4 Z[|Q:n|SU{K!zW@Bv`~n`RSJ/ݰKe-yen]֪yU٠n'>)uǩvYcjfIw.:C2v~=Z1YKl^'MKMem>+c.qT~CTh*p^',Ppl.5괚WI@G*.\.|hIL,,ea&"FxWԝq,p埗W.k:q1cؔvgדm Sʞ;"ҁ[%-`SҕERby"n$=WLJI#Lկ)?Nd gG*Rq5We*o *hq(Jޥ~.{4 {aM: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>lwn Fl .y&:{I4/Tw-|M= ěD?$u'7}GpVqW e; T:| V6?w>e N~ Տ /jK%ԅ`" 2 \܇Cz޼NY5 Fgt Tq#ZȘd#KSPl+i!F] *=0A`E h!_!"Ž5HOJftq@S$R; 4y4cTX@{4'mXWo) m1,w(,ІoN6fT]Ū""pA bY09Oh4,pNVumYJG+e@#eGTOcZ!=| ]C6AbCXIXٟBׂ֞xl"%x?^1&2mפ|F#=H7+]}=衃[i6'TʼBrI֕g]k נ!Ŧ/,3}'3=aȎh7Ziv\nf$';?Q&̀*̓r(-͙C>F\juyxv$Ҭ&H{sƿacR:U!gQrԹ"uؠh 䋖/F/I_b=Q햃(~B7e.^ErHDl]% tbkL~VX0QV9O@([ϱq2,S&Ȗ(>$qd(Z'a2*bbRDL*¸`-XQG<('.{dbfJOqsG%U=:2 4ۇ]SƼ}ZŠd$O¨.Vݧ8K}-S{k1c3"lR6P$Q)?8Te.JuWwW|?vO[zzemݯXYY|i4g3L?ijR "@N ^ ?yZ!S .)|"U Y¦:Ym%GD&W߇RRVؐOi\Wq7Ѿ!Ow$Piz PRwU:RU)~uA܏/F #vUz, 1rD.[\Zks\>%j_x{d:,*%A(P.FI(]b6֒dLJ;?hP*UJ$0Eު/_ZLFTnL'e[WiK9p" H`4GPCQ\<2пӭ{2UFv?r-c`6Ar6e\pKԠ8ژsKzmrxܔKENrt~%#9A0]yS4"դ»+ E腄K,;.s[Oul#_cRF}w2zY61\D2,Q4f^#ZN쒆0Hp+^tt6eH_~ cMat^\%}&R~= ^ Es,>zX{oy4Yo8{qxOs"9ز8/&9bXפ8'% P~Ү5͆G3Uq_"R ;PÉ)!m7aؼDiJT;k&D&i+#6 Vc[cM^ȱ=DĚ8-282Eq>>xg- {~"-E+4O%4"@˩w$,!5<C:רT͡t:Z[0A]询L-ɰ&䑨( Ftd,04#iUhON6:~#m4 N8A}ntr[X %Xg9^Ǟ{'X<Mއ,tAG= ]qsT9nbJC,1Ӹ6h;%q8L ӳDB;QX^¢|ը]{i,L]\iP1>Kާi0YԢ o5*|f0)O:j&( vIِG׵L,G! eqg *Ò?bbo g\9^/ڻGtaGaO=vZ6ɾ5nlXp!09?8ki#a($(xc_,^2 %d7C*O7э)M]w m_-?"'8p]'l\ ҩ"6Q4H4u@]&AN>)82^OY')xs/])K| ɦ[unZG?<^uS*I4FF҇JOZTF L_ak b kv4)P1PcpGFk-szawl7q{ь>)٩e@(rU|HN|T`ņKU6_i I]:" eIN"NZU>IG<|{j¦Z*cw<\:r^ӟ/ch׾8'?֞<k?zO^So~6A~E9+u9.:˾Q7H~5 uwHۘrg%Bh +^ 3Yh4|U\#R&rfOvӺ%C{9\ |;֮J|5S4#*wNXg J*@uM*n'ܗ*Wt('Lp7C 1@If_|h#ɭ&skh5KR:&t\ݯnTĨB.&2RS Qyh*3bV$-sS=YdT(o2<Š܍0kA/ *;B><1fh >p4IKN$UtX'Dݘ$A'&Q{r 3ϻg[Xy~#'m!Ub;~crǤoz;qptwW1ZP2r"CA\%,;1Y\pXz8,t '0jBVfDK˦*--b휐{EO՟ g!f_PP%-{>XA5qvhT@.ij)^m*Sc^ =R}xW[PGjřp)o+p-`pio;ɆuN0  q6|A?1C'+9 #~1`4XX{x'4w/\f! o}g$ȉ.V{dé;3ц*$4]F*{ PE0ʹɳǑ]I2l]]R Y vnݩԕKOo{]UC[1F-  &6j%G[F{n#\/oi;7TE NgpukO!<''W秮SmۅߴuPIyzj=y y31_z?tMyH{0ޠ>hClzUo[1RWt[v SD_\z)I![&-@CءEXpa1F[X/)?nNX?G_\1<^[?N?Ͽ4 o28zL=A SO{) ἃAA^?3Nؓ ӕ#Rb1vD8lm,Med/KjLKoSaOA'e2o88ܭ;wk;Kh{]^/Wה`uU_@Mf,֮YfZvndu|5itu un6pm}-Aa ߫+~P;dsAJ8 <}u13V=Ig?9﷝_CZqNH_w(>V}[yl/Xb C~ߛ*3XS3@$'bXĬq xu:x\Dˁ%J66'>6ZF {> 9N?PAw laIs,Gkf?pч ?? Ţ~R+B,N~Gp2nx4tv6Wo#|tؐ8./iVW",D@X쏛Xp쇿#[OGg/_V*)=7bV3&:㫢ݩzzu\}~6YMww8GJB'Yӥ;,@Y5էfF[p oL0!ͽC w9zk1G Pj Zžڵ:rv퉺Q%W G?8' &w+wkO ^OL۸US _)&9 ޚ+OFثu >uՕ=j=WdB8Fu҈cL?^?A,n?hSrns9{8'/w 9#zz+-UJ8 dr#Ӂ)mp_^;Cfrq2sIk`p+ p$wF\&N]0g~kztƺJnfN;cNj{ZN"<vv!_?Z"wm';`-R\͏QC>u[m&0鉞\Xպr pmU 䟊S@w_mA K_r =?ΰҏglZ%@\:PGi@^xΫ Z 縋%3κݡ* ծuFX^έH<@"F#&FϞU_T~Sa*?L;pц7&٣20 )+Sc0J.Dcx`2EػȔ{ y $ Փqh[E-=q#Ε0` 0dž;VW[=*W2y0csD̎NG"D`HK:MD@3kM7ُSKB*2>|h,R:N:݌WO42UXd㵗w>#-{\Nz1XX ,N V+D)f Ed >}+fwdb5(MwCn]P؟+Y3S|{⏄{G!9JX|&LOӟgC?0