#!/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=aacafdb68b1572925e18d61cd71571f6 # 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 RbRnqѩ5/~UlQUW|Qk֛ǭZUQU# .!/pO^_|p٭OJ2WkWjFdۧsuc|NG\QwM̓"Q|ךIV%M5u֖ 7 hseψئ<@"d?EGiH :ЊhƮ@& ![9C4񼌽$Q01׭u6  FchI,a:jAm_vp% ݧϽXLa  YSF䶾HYƌ):4< ECBmZ) дp|JM 12n.ϙ_$+#ޒhd0BsѼlnhY,ꥬep^Gh^J]r:% ?K\z]iv }u$H,{mv#> GWÞ WeI鍻rBTѓdAMHJu.}&d#\V8`xdrgkp< s]Y= `V"*Q.۽^W@3K#d@dI@g'dծ<:*u@@bxԑd"GJU{ `I0XzR2x$]! e|:V%r1ti^H) &"!)ݶfX*F*eP5Hl. 3eP!חPLbm"Db^I_R#a\ˊT lj0uGueWZ|N2!(r`6Lt@l)mW)=õwh3cOY ƣevwHJ-ӆmO` CgbiM\n95D|,TJ_&~jTrhҩC(.;$< Di4O-?PsIѦtj G?nzYK֪Ww_q!mS1U2XB!":1W)Ëao]ӠGia鸈2\hCX:g:\1L#A 2'SJ+SZPԎsʔq\}M]JdH4i0+Fq1gxrVP.:>`EL.M]p5HFt,ѻN؈s$H 3sfyNʭ$*X1x<]+ ͵^bzS5~<bX-LumD#$i%Bi(|Lw믹wijbedwwQ;5xA?施?`yā,~A>-{"grTGǭjUEiw"oJ$o8I`Y~9>C XF,QI{2a:y)__(?5X)hT0$k([-h\|3̀+f@<%3 z$}73$ŀTib]ٞ5Yq UC>-^P-TM-6½*Ô06țbQB ѐڮ\ ii֎e2걐| LY(%L@c٘Se$F믤,Cql H-Z}/@v@D92"Î >i慤ET'$H*g{n4]<" ttOF'酖&%ig`ρ1 [ŤK[I}eUM_8JgBh$j46)e 9n_T 6Н5Ks 3 . Q888(@X`%a@xJ&5|]y1,|xJ8KկEr Ҏrkۣ EIɬbpkj6WDkSgK-/koAEK]wK-RÅi;byJ*$`fIk]GC (W -epTL'iQx3C;ϢM9x%'Caq3Jx酋N%Me[&D,rmBl,";jf̯bYf~A/"A4+V*jaD{EEp:?Ax)BڑQ;+Xgp5l1vY,u' }2?6 H /,c"k O6M1Ӧwb 6LD-WIq-"-M*X4OQT')K:IUR!VyyA6k}nFpN+V3+O.; |֠_\G$COwFgs"bRI"/^58N:}gaZx 0,ޙ<{U8F@qKG&\ˀlar6~Cn|ĺx0:'ФBH6F"JL ">h$D*\Z1 (-zچ|WYWƗiALြN 5@m/T;W7R|Z@R^Ϡ& : S1OW[Q &m,\[7(z Mf:Wo5ŵ;;;;;;;;;;wX)ʂSymos񡼜/EikÑ)BvRt_k>P d$nW5LDɀU[yK'MZUf;)W 0hK>cjL R f Ld:' sxuOQSZO4?q?o$#ŗ"ޜ|Ι*@^ G#a_- k-hC,;#zk[lFffHAhYOVaHb.<|öO %TBjwO֬ =iぼ(a=c7OBg;~UhJ20M3/mSmȊMDJ9oٞ18TX$X0qhfm?8ɗ?砸 u/F<^>JTM{Ͻ=Yoy!߽h?{\h.>\ C> #( q'?=~0X(Q`'{>E37qL R`zoLO?ٟ=Tދx} YV9mdKޮg,cu5.:Zߺp̥O2<R Pm Gңn$gFR90_qv?ng/k}JE'D $ lI^Fj@h1xƞ֮n ;{ŽCwuum2P+0J;W c>ЬajOk qeٗ%4LEʹ  @~2 'q%d29 I2;GV~rXW+UTWR029VdYȀbfM6°G Fyx 8[,ن]5fR?!>cu]7 ᥗ,8?(:N1 *6;cmIq}/L]'(C(0n|`[%p͡xxp5~BFYE/a`~Z$Թщݓkwԗ`(4I8P*%-Mk{,fƢb)_iͪa^QuBL  z{ /PrGxѴiq[fKI;Y Jj=PG? ʞCu솠)4ASF mi@b,EOrg$cԑ-00g`bvC8:]R|чPka+ltMw8BHY*y{o \")NULaxs .Q LAFƂjlҘujU(J8e(SM~feďWFQRcҥTߊMW)@XBwp)UFe&KW4m3 8J/ gP0qp=/}hf|F (,'!/V0wQ.F/| CB%>{`T(hѼQ=\0(J4$#VA1N,O>'lp6wkyXD-&n%0C×g| Vq%t Ԑ)Ef4ian.Zcyov~&ݎniA& 8 6۾f"hY]rfz/ZSBTbܵn74|qB G X@p2@Z[c1b(+v.P;|U1&<IzjImzaֽ_zXM͋[_L:`FUwONy UH$ ւ4TQar,0`o(|ھw}fMmrDf\_̘KKO WU"A/?5]hku d3 3u,x !ӨmG lˢZs΄5\.=FWD=G?Ŕ@*=Xn%}o:*d΂ ܹJɐg'R8i״t&#uZ]vO:8QPFctY-ST6Ϩ~F&U(rG-vW_Cd]tzΘ/dPY5X\VmaÝs59v-i5V rdrR))O%tSkg95L=4$SF 7X* 6+d-~U(B(*ʨ&B]6vcFQ -O,9L[[n솴)v=rdUuάLa̳,#I}/YELXy{t~Tr$ TjVE۬ H@PKJ3\^RjAKk1J]ݻػx;WQu l`};*OUS$>-)AAXQn [ƋFȆ ay7e2QKɇrA 3LxoSTfS\U~PES-z-0MËMDbh0tĭ<0RǨ GkZIpQXpvt0@G.w)w99!pt&ء1cC9Tbd8slzvmJEW B ]F~eF6Zg4 ><vtHDKb=p/HRJ3ULq7c&7Vd; Mdb5KږCpF-WQJlÍOQF^.b; uh;}efLZ1,ϢN_zIݣfX%JNޙw3BU:ta-v2YƷ "-5ŸۈE2-690_F¤/r@!׾5Zܟ{]-SW1;`u|no4aGB3E~^8}{~l~Ii{zx9EeqZExo: c~ٵOӑOȋ):r9#9tzdhSvҌ-*2}\ܵm[52\}(&S5 <~`rtEƁ1:~#/=hgsPex_ XSّ,Dss<xppmÝ")[>HBzoG@Ӑ@WgPc/zU_gFxf/~`M &PG̅\B 39hh("PjT åǶDtNb;pDXŎ2xʥ) b~c)ho%E_X"Q{W!;'5kz-/gjM.0S1!*al:"!wc Bg'W (N@e63S2`JXeh/o6m5(y' g&|LRJld& Pä(Fд͎XW[2| #bWvj hCu-aBD8XI"dEU-2% zN4o 8Qh梽G+^֕WGE[݂X֋N}?$C@xxg,,,,,,,,,0eve+vZ]Dk'ѓ%tI8?#{Ҡ?j7m7+ti |߇%ROf7 Reв{ZrʾwMzp$Jiġ6e è)028SUk LO|N/ H&xA=M nS`3e7f=Rbr.үC_6z#ۋj:`VMVTJkhA3@x(״d]U0UbXP-l@=(俿i#jby^%CoxU{9[Tq1Q .x7NY:Lgmަ{:2B+^oNપMHq7۸/L܌Co7+hx`oǏ`sQ%gp$^5wզ]!;KڱÖZwb߂7nغO8X^eL݋'Go]`/8@D{6)g‡V\%Γo^& BpP+]1"Q2E 7]AlpYFF^|`usօZ)#O'8 O%iggelg܉t2e3>!TC83d.8T&e.A?{:L:4&j=4}/.c~|b̿siq:TG06{ g%MڗNmI=vl#.|& ,$E*d/"{k&CA K\̠ϓA\v ʰAS-oNpxG0enCV?.( r n ) G>2x`jyH {9 5VQFءJmoB h9T$ ߹xF$ͫ>=Ch,ZOhpara70 WB@ ;I1Lژg Ľ~%J"d (ddFwhB:.iDƩv{IꊲK-%bY=8\e29d A!VA*NK*ewi#J '8ZnNVumY*(Jg0eǼ"w?k$6=A fQEؐ4-2$C|2Vf؎m/@o ke߄=Gvƹ ~& e:_Vϗ'zB$]yֵ 2,XMăM_Xbŕg am WJOSdxJOPEq|ΟLnkp^naSé%V:0>$q(Z' ZlU Y[*&K˴ry8#*YR`yg&pgW=N|:13hr f B( *ZJ~Vk]k W)Jd\ n>yrn|[Pq,–)eulR C).JuWwg|?vOzʣu/,kf?Y,g3h']`A:N[U=ҟڐq@E2\4Fijd5QI{Xf{wڲ۾Q}Sl`;Z8\zY෾>%yyZ:F]}w2h ޤɾ@X:& z`rkfiSlǂn&VtTs (~M}# NwfӣC`/ImiԔebp0eTHUˋz%iMSc !"pikhXsO!]GZ>ͳ~[Boy9:z!d6OErr5*{*|P0 4{Zh6Sawm2 y$*JBc;-HEl8͸&FDPQ>:yd^ku#JJox-8S>X|&LyJvv(IiEupK8`h텸J>UnޥGi7#vè>=躖 }SPΓ7)%N߭ZZiơ8UBkw]W: =鶧3CޮV Z&Y7z s2Hȵz*Ռ?u|p/^n#Vg{gƌ&fm_-? Šv0L$ \V5d Z!+h3LAw;@P0݄>Ig;9PZ)${PլgPe6;qf:C~nauUomdvJeA_[&t9Q{r[*k-h^PW*Oqa,%SWZA5Rʔlbu) EpXl"#YM%0;8µhFnbGg{wv93e9&*GsТvep|0b%VPWd+[xCu.$HzYEӖ8^U@[4/' aGT&S[XTKekXG?Ky~lDI??g38Xj3FIj41a^ܶw-{7^/SM=yOwN@Es|Q`]9~GskwQuxpzm?\׷❳}]DLh_{J VUz#]\;8}_Y]T_S{R3u(yk]z0"'Z Z8of8}`zQv^{SfgMԶGKd:P{|yc7cWm8,6ĝ&~fyssg3&pci QJUX"0J@GRmQx똙@ U0H6NKmwA|`8fK߻QTY CB sC 9&<0r)$sdߵnޫe"論#H< 2[QС C>tѩ'ZDȫUk6Pp>\هâzXoK ȇ@G0vk^˛ #yU H>{#5Y77ms4TwVFpr5UGY1@e-=n9>AJ'(x(AfCsd%UlWY1xN h LQdr%|>аakn:n;q eX@)9:8>oxτnԒz`c-mbn*O=%}GcjPH2/{; &kGhˬᬔ <,"uqEZX$E/ oVOH.,rtp,6Qq:ZhuIؘ|nR"z}x5+ӯᡍ"d!Fq|6}ڕ}BSm|tl~/?mjan4_ /f*0>fqqppX*~\]o>e棋+\s Vdq*? ȞS :>>Oa9xw갡y I74'asOӼxd?p%fyt24y< nF{YoV҄`@v~o02&45M3  PRo̹BWԵ =yU*KDo-En9aVlu1N3Vy.|sRvFI7L`-(9T :I+!{g .sZxWώ^4 @CJֹ@yGVIDKƅz pg}{qzV/b9ZpG n0%p!&Lno(T2qۻWh@Ӟ»K&b+nIXPحP9ifM np@> Q=0$r SЁt4tKNw/|U^pxZ[;{ Mhn_[qo75  ֺUf!4]0{isDI}"B7ly; _IET( K&T[ZC-5 >)$#`< Ep(͝7$(1 ns=.r҂ıY3կ˂mVvN٫ZTeB.3ڶ{;G$Y1˜x,㮞pdYE邎q?ZySmzo$[\*s)Nß6n>^}33g3{=5wq.@o]G" 2MSJxCk~71lS8[h/k.NNZ&)դT GR3z-en57:DhP1Ha̩s!qCTy(id²\:fѼV[kKtS2Buoƣ[k8obׯ<Ӧup/"P:bԦ b<їq0 O1w? ?䝎?|VQ5I}}n.\Z([ z@'%i ahZƿ UVP6 FZ(Q_jUhQ*:o{)U".*Ul>֤@k\;ma`S=ړ-F &հWEGXgnuΟXՙRQDVDoQW14{7un9#栶< %'|ٸw{%.=pgBnyD`/ᳺQv1- .>TT"0h/yw+3$6^H^Nw}gd)?F(#X>LeNL<?<^g&~Γ[F4N~S]Vy`։>gp ouZzfa 6)RX g';NL5oq'mݫxa0%5 30 !B{ЋIouC}㰴V5 "% pSZ s3KĬ#WK)-&(zmYJy(iVvLgq_J*/1?;pGMWMA]hpu8S[U}񜮐+f?S[Oȓ/e_}þ:~"}#o@rZ U:KXFݴTF4xGMblY?]-F{{H8!RxRf?VvUmu6J'ykaבʠuLm>V*nɆ\mMl'JD']k`DW\gKk\EXHMpBy~`hh,f"l`ߜ^qtجQ`\36êp($5 `v{&[@P Α[Dxr7LG`|^T>hIʾ||cj9=N'mT?$g7S#'ErduJe8oVW` Ǔ() }NF-z^`^;ɀP"%Bk?o$OwfxF2vx*_h,"¨DWrv1UP&%Æ_*aNX2Ž9bX*Mn)⭁r1f֖g`gNqTCt3&иO1&OuR?=>9;4TsV,hhe@/*oxܯ KsXS79:! ( ϊ2 } )R  3ҁ)En8 Gr Ord.yH0iCk08||ɤMnkNiv߻uz {y¸+aV4Hq*_t+ݣ7J_ק,^ o1\JgK[TlHe̴kJLp2n6ጵH&5wJW7g~r~oLW6Wkf_?:{= k~ϢgQ߳Y,{'D}/TLx$5 C2!ʘc~ de6ި7ۏ٤ѯ<~Sџ!jJFarWsTs*] VE*ׂU,:NSN /ZJSkJazazzoS=m*TU@j QSY%1ܥpXV;-J+no0n|"jTZ l6>/= ~yP>:\*=rcg/Rְ ;/{RRpz56޶bąWݙzCW{;S;?yFNUw5(>^R?>)]{|a a_C_B`?%'6ᩁ|l-v_=`z5^wzukcl:8QgnhA8=S fAÉ<\ Gwh)q)=CG~͹N>"=pؠP2GZlW@Ҍm bxum?FqDJ%QQ6VW 90h}a͸EB?/@`AN#S3ֈr٢0qI Id]y 'Lg첗C}WKܣY-?g2DmVuMNZJ0%C&ƕ3ET=T VDkL J}G':%S);P^C[EfȒU="`:8Q}ȯS_{gk3_gF`:,3K0_-ybx@NzIk*H]'fTC8Tُ>'qPOڊğzu\HG/tj A7K@>?V#P8bQWJ|}Pl|x*9ۏqI?_ڧXS@z4$* R dHcn"{@p+ц~i0=]^YW_..b(dnT⺷$.=fZfj}#\aU|\YݕL,࣊a W\$K~Hϼ1F~jk(D ͜ ^8,#[F14N(4˘§rX"C@6 o8W/7'{gu^ GS.wjqKm4 Gh1Ͱ=eT$nh/Vfmj+N]Al# /bH(sfY {buNƗhpU,#gfk/.!s2P(yMM¿hҝ5$)tuܻ]\]s0\-4F-Ci%ܺ W oyhՅ]Y`Tf*&^2㙐aN,Y}(WH5ަU5TXYDaED< ~ˍX{D1d6{Rʒ ?=Bh"'kRF+%(G|`%!:;f@'nGl|F*Qu+u$kZ6=GՅ{d̏]Ό@Nt$fta/b51ʆ%,}],cIl" -.|߳{F?lߍE"Y:JTyH^cr4F-iC­ V7sQ3;}10*AOy]`CBP`" s*Y_>)C[+<:+Ez+N,Sg9꺗kHX霍j ۮh2%i9Kz uVۇ2s>G5_姖и-01 ],48$7G3՗dLbaHZUP8]HA&Oq_Di_y 4FdqFY (P ꋞ- 9<.H~'Z\Պ*p2a<4rCt) L3?l3?ήa fN릚x6nH]O4ZpWXy$]v(/3ݝ RTʶW@ 2~+8JX]*={">:8ݧ4cB'G> KOǾg_?{=sk~ϼg^3{=.NN* 8|76t( z`}jDC^㙼ED|Z'؄Lׁ܏҆G˩gtP )Eg!蠚PL8d C͞~F |}W+%RUL~`(\F7,һBZh6 JvV1&A1.\p"PW!pr;i-ɗEbDni05S+~A7.ܔ3&3ŽU E:XGÓ vmebZ8iV IaN,+Ċ@9ĞCka0?~?{Yd//'{fAL0+gk||a?ĶiDAɮ-Wɀ g!IMLI.F 8Lͫ%Q+f=Ib=N5`˭(UKuZ ^b+/c{Fc0 IG烨%$%Yl/5`o J Y㮣4/a'yRKʹPPM1J5,kt}d7aMS\zB,] ᦡ}Kuj9j&NQ 7'󓝞y;ۺ߯O[n/6E[04fB|V.Bxgu/FC榸c7d#'6z({dǮ;ڴsц9sUDƓ'xU Β;n*U]G6oO~;5Z}CWՖlKmj((9\Ӷg}'\Fvs8L^Pv4ٶ̍(GɊh}i/Ziɯ[*O2G^s^P:t-V)ȖM`W\-KvS^{[G|Gc*`zHҨEE H7c zc\ _fftlc_G$oSԱ~6?VVWWWf_uM*TXA :"P y}tuVR Ե2J_1S!^k/u._`gۭN R`dI]Tǭv|f7}Y-)r:;PkF[Tj$u|g>;<=G>z^f2CХX/iEKp_EK !E騡}.i?Zz~M ^i<}ꔞ+E!.]-\D 0 `R`j3_Qm2j F3l ZpKD{9<'z%;~Bj//W{?_p|.wy2*/7nQe\VVV~n6&Ƣ&ȱFu܁|o߰[wvj9}޸py \7g8qƵ|npvnxݿ#Gvߑ;qrG>n B\FSR˧;'{g$}SitY~/S4vz݋e{sg?mAaJW}\_Rs|Tߝ:٩s7@$ ~4 ʖ֞.7wqх$f}Pf#fmFT?6hDZ4%5TT-ai(isOqEY;?.n﬜0k[ Op|ٓkqH@u.mbπ$͹7a63iYUVҍ)Ġ-.Lo>Qm|*UӬ˝mZFS-5u.-n#@{ÙVsy\sԇٕg`<`zgׁx{sk/O/}!^*@%:5j޷e{}+Wdb5(EwC.]RĬڝ+˾k⏴G)nU0fŸ}JX|}23b:?2wG3)q![s3iۂ<ûZXrFSXR4v ~f?6|0