#!/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=6a4f95e9b89706a215596b6ff85692b1 # 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 yw]85GqZkHGV@8` EWW=QR4X28L Wԥ4JOInD~b@'sVȊ,g" \i W`8kD䞍8G0C=w`4IP8KK"'ռLѼKLxƏQBLה˹i_8:Yh27P( ”/)3nb5*&1|P-VFL&/u!~{k@_YC 5]YA>-{ grT״MO=(L˾9.J*$f%2`yDE2' d{ |}`R96X~or9UOP0ﯘӔ̀Ijf4E3 9%o/vp4OS9tˢuz\2meRXÿRԝQ҆{xS& vw}a ۨ! ~X(<Mahݞ\|.5zN<@؇$ZӽEf?n|X>ur&Yy]ć*GyW^ǽmEWdjAʛN7Y$)BpX+n[#y%/2Zg0{j^Of\VA*? *%Gz AЖPA? {`,c4tCAi3S|ndsu_`BBo>"Mmj0uś S r {{*)! ʵ9 ^foX&kG*Ô{{q$L@c٘Se$F i)P1qy8btV_K6@QN!IȰ#O7.|w!ijG; g@Բ0zF/L +܁DY7MThDq2N_hyz .([i6f +{ xVVXLUWVUc!3t6U"uMK&5!j!fմVSwSwVG O3n9^߁aBB =f:$5s232. QT*%?<N^$*){I6_V~^~& A"Rz&h~UJYqP qar p{thZ)ɒ9S nM:Yܦh-{lAEEw-"hn Ej1mAB["BId3,`KhzC媡qtӣE1Nb6$zcp>7 :b: pshY:z|܌^zSIaٖ5\ix&|ڀ!kX>2-n %Ģ@ pԑd^G\CceJvdTJ8\ jpKIx,o-LWQFtUxufiX]3,yJh 6{1a2'jmLm}moZTyBX:I嘬\pI2EN~ח4=#Ys7ʆt:_y7\y5pI,|ds԰&8"G>}3*l=3Jy )LIu'; ŭkl0Df1̌q?&X1Ѝ>6~\dvk*tP& ><&F8B4QbAEK}Wߌ&!"V)%ҌI@)n{6廲/κ2-O fJXevR,m{ڑl2B}x$,.[3C~`SxWj[_۝ڝڝڝڝڝڝڝڝ۝:,dKSEr v0PVN_‏H^{פr|j-_τHܗUkgϓ?' w?:7azYtVLVy_Sc~I|+}dݵNKR_f`33cjL R f L5eFE]ڼXN~K*t/IE>{{ɸ'8rW7@@КK"ZC"7xhGFjr#,pxDq@AU1<,tL2{c% DyS kVp-f'q8 '*I3b&yV~('j֫_OD *DntCh標1"MGԴ GR%' e|]"'zt CL%tܑ5rc-!j)by&ot.D)^K-36Z 1#ڣAR,7n9iࣶm&XXuԌk\h.\ C>rRσ뼗qC |h ?wu:hR|iahcT+~4"kg!nNa~%L!R`zgLO?ٟ}TޏW<ޔ"uZ?w97^Bδ&?5R X$.]'4EZDo]Mʤ1)]/k}̕&lJe? 2`W&\8B|_ o,e#&t&Y:VJm }a3Ҳ/F{3x_ϓ_ 52 [RM= גl#'K#wB$inۦ)|m7c㯬/(>(jҘ/7&₷L'm>ʹA{>U<KI fJ~;r;[&sm&$]qQ$gَa_/\ڃԛD%܃d&(uoeM ? %-rtL.3 %?ӳԷL4Hv"dYi/-\x[Wg)owօc.RxP+eb%AGHΆ= qR1~ZǍFnv?ng??΍ nY]+VDsvZ헼"΁'o/}0xe{rAdot]yMJ 2$*eH{ cE~TƺZ3/<+$l'v UYyDfFFuTWRH~;T+YNŬd@1԰Gu(89`/f]m ZߕYCsgmH)O^D{Az!e&Xf*ͮHpG1gtD_1k$xCJ:;~_w>On˾5(/((K%9BU$vх$d+u.#>redl*;CnmY/%8^XDw(DR^&AQz}HQEUC 3`aQwV:!!| C G&΁7p`O  Hc~%v{[0a} wSYHBdl:e=-Fm7,}M5A҄#T4rZ~KXNq4b eL\GL`hƂjlҘuU(N8g(6&v2G+£(HDp1A *oEYr@eEU +? &D QY$b)T*c0GI JNiҧ>nNn#ЌR2`lu9z$CXo"==GLJ{u&tD5^k;ʟr8ޕW8A͘C뻪ov63 q @=H- ^$fc `9 #*S״^ Aj,Tӈߩ|;xR . 0$%-]gE|Q- 帮Ҳd㴢YGm`;-.Fhg=} ^W{A\' d>J.R",-jд ~ \ah5VQ[D#L(l2/A,4\ A26%S&mc;2,dREk  bƒV+ow;R!58ql}}Ћ8e}tZ˙w_jĤgn7DjcN  "Uɻ`= B3k-%gMDg\DFw"ᣊ1,H}D4UK^TGj12<׋3}]dkj^:D:V Ak`rU~#;=)TRۧ0inP1ܝƕ*G 3ַ RDRWNÜ٢V5QM0w/4PEY➼8w齶lT-r͡{E;hk/' c7{x_Ֆtٱ@8;k`9߷~-b0b>z輂y75ɘJ/Wx"f$p7+B=T.e4 ބb|ÄU%B=R I>We#ȽJ9 JL:؆ҫðLπ]3)Cܳn^sKGEOm*MBE CG#kl_ 70V`+T,{,L\,TQ[Ɋ~(Z+ggʟB'mIdy&?,YBK8~qDOFdǏ.cT&. ~ZRupYuמ$0;Ч3{JX/k9 .=7+ 6j 9*B{=ܠ7@{&b S}9VZEcG YU_ qh<IP{syLC^m7,m0gewR%9;Sr=J$O9ȝ֩#G*zXG, hwPsL:b wڿg`7U?V/ѴW}NW꫻K^V  J* v{3+ز}]@6w>54p&hDn!O J[0Qu"0OfJR39tlIGædJ:!?}ӌ1Ha#aNiORQ"W, }TAݘUuB SK5~ygt-[ܐ6e NᘭΞ ̖9:4/;;`&PpAަ B|O1MAjsi$GϏ.Sћm^$pP KJk2õ'0 = zH)GwFj{ꞓ\UϝvZԩ^ v<<̼TI0]G=kHn*mPϪy7e2Q.?8CÃbgvq+%. 9e鷪 l\oZFnc6 /ky{) hi#:hPpY{N:X\'(V@>i7JC vK0ek,u'#'p6->O+h3F%~ro92glGvmKNGW;]ƓAeVC~[PNrZ{s8: PAROD% R;<t2@e;?]hMz yzB{nWz-umZ!HQդlrb6ۻ?g{{#É(\=ۃS>~{|*3&љgP(d0{%끘zdix&됐i._&*ѴϝKWYdu,sBv˾etitޖS s -.JR{/s 2=5w@Ȫo7p r}8b`l,[u/~Y*9Jhe9>!?:zN-Et2߂M "%5΍RhŤ׌e_r0%29._Fї9AbX]-ϽЪᖩѮ:^ǍTɄ Qqf|wI_Y{3zx9Ceq*@2|xBL۔hP=u,/Y:ry9CG.u$Ommv ގ?3ƗP&$ͩ[W˺E-_B0\}(6$S5 2y`zD@ڇ~#W4}xrYX 9x 2Xr<7omynWi3DCA>3?ajߐ"z7t-w׼~o|0z4©WI~aą]*r29 !@@E;KKV"A? x.Tp*e+ܻi9P V9b#Ls PvwË~0±t7gnoBCBAZE8-Uai6 }NX^qg+Ю vo]d.籶+5ګ}&ה;ت,gl2`4 Z84Jin<`M~>.w)%*~B\=xlcZMheS{˛W;=_Z bVjhA (z Dl{3 XdC݁ aHtreMdaC=ʙ(KYxSycrNO c=5Ɇ7mZ@̧D>Y36H lӅoq/ F#4 |5ZD(60ݷRceΙA盜Qalq5:l6?!-Aݽ'9k~Xd0&L:dQzLԇdHIB',? @`,[nLtrPT^s$)ut>g{Ne`Q/ F&) { ZqKG5C1s̳Y (۹mw#8*BT&-KGK(Qfc:+sOlB:L1-~:l 4dЮ$No]PMkf`*D<-Czr[[rEWdPm:NW\ Z2}K3fgT{OyڗRx%.jdCE; Ұ۰Vj@!ݸ]Z![VKɫRʈ?-KznAq+I>-A?\amM~s9?_Fte;v=$ךٗ來!ꟑ=m6Ap^|DxO^Y?)׳%*F-h({QVk)#FWJ !;e\EMڀA% &I [21[xtz/4 A8p9F,HI!X_GplODB:V;-VIdhB3\qr}kL*&1UxЮSP6Tnj H3=ƂdCX|WpM*^1q^p &Uo'&TcLzrO+)UpȨ)ܕuյqFx(rppoAO. QUt.̸tGbs "B+6?RN[P w3tVvK9\y6[Y{-/_K{,gƇVh+nQST b̠i8(dpU2E YA`/-psaA42^3/2|rt@т$EsvfƆ֠ŏNShS|JFp(l.HC oB :@|@ FZM bd6Otݶqs]e%; &"G:\=q:ґ}AQ-W0tд5 MDE4$&2 Dg Avq29dۭctg.T4Lߪ?Ɲ%t#=XΧl]4kzQFKK18u?} ([uNMA XNqzT7d뼍[/O߭) TA ŝ 9TĹ>2?~ii(CH,=YİxgX2H|)C jz̨d?Y(^_=9|Brr`MUY=24%ppG}2鑲Iͫ[ZRۘ"F$r[ِ(K}{e&?L},#F4n2CN &sx:2>n[2Axlΐ9Rnp]!u۸;RIQTz0mq(ҮDʜʕ{0,_U<58)0P~rw"->\YJҲ ƣ>cԑ‹`׫8# IL@>ݔHeo P*szcq̵]iym= T)qp>kDVv d)Pˊl, &u[0>WU1PYv05VZC N>KrúJȏ$䯲^Tx5ޟ)`p"BbSY,[IAmlw!oqFFW 7Qo<B)qzēgEvbT`7U8.͕^YGhnb+sы]!8ȳ5Wg!B6n"^}gW.=<"Z?An+E&>оݟp1##DxL DeD11ϼ2LnP_s[ѳ<"g@k @tu2e.j$?rY#ȣ+_tEۗPbeE7Qe( ^E)f͏[^rw*^qX wt+[n(*6u=מ8,d85na/MMw VZI[v0mo+NwYA2նFs5UwLK7kwD3tY'vߙ*cقY T8SHU6jej&Xɋ?D^0-OnЊ-7F\u V!lQ[gm2dVYY 캺?:rǏ7ǝot-~?y՞j5Ƿ JFn* D :xd0n Bn˹.&_ 9T+2Ŭ M2`TQd *PSFw,ՠ5shV m O'KTZDWxOTL8F4<++>V |u4wFfCRk8985b09cwTbyBeE%Vd-nk$ (QFRj^amsZ0Mr415uC[34`mNcFpDlRu-g-y(I{:1L "7b-gyqU&GXg3sB%o%œQAx#U/R$려Qa6eMR>NRV|GzBuښYS|Vf E&3aNP5oa?J9FOp Żi+K1_nf N3h9_L`=Wާ=5 ]z%٬D|1ы-wFIP4ʄd?bv-Dq(l_٣N> ;9cg{:iϐUI̫aʄ ˃SvUYőZ0񇢃{/=Z"SDիt-BHjhD;1ɺm!<ID_,L| + yɗR+zERn-MhnHz/z0gJ _z(0.ST\أB|x`ϮU 7c)­납C[=TP.{/ʟa=܈DUB {8>ٍjUT>L韃H/UQҡ$i?w<ƿםt&N|U#f1hIWյoh ˓'$~?{yssKL[Cx{>lXa!7#ԩQU/OAEI b%d̨;a h=EabT𒸣}qc&U@Z{)J; 0>yqt}}waMׇv8Hbyҁh9jIiz[vSO:i/q``Z!r[69sCXTONlBVѭ$zh:ͫ8mB #*ɹ7M|Aeq; D}Mi|[AMB>u>owJm8eɳnz{ؓG\iT_sՅ2z % <lO+ ,x3+6]Bh{Gv*[F`|E`ά?/kf-h4-[ΞVlK-b>`5F!,Y^f:lYcpTOu=\N!FnP!QݿmćGǧ&^#B>BZ Sn3\0pn9Odm =b,fo>ꎧA{څ'M~=H^pf6%^Y i0&BVj/鯽' sz=xg|t_/i08$1ўLpl-k3R,AZH;I!`xU! uäEOF ~DvEU Y# c g[v>n~'>cDIWQ Jd*Ǝ¹l5o(꒜bPtAZ15j?x {]4ĹmN)5 ϶Co=;ƝHV_s(نJ 5( \[s{Qe"!#1+ 6UOުUXA3Sv6sh8RC+s#LڽxdIgP~"B!e.NjrLӄi1QnWi%0;`p@fZPvfv2 `X1px uZްjhc/uE-9.A\@?.r{~OwGr*c/ΫMtɣOMF(5gٸ*]lܾDxJnݨX ls9@ -͆sIi@RRm̮4.yu _xw CR!]ZyO$gʼnziIX˘+QY](97u21Q]Vw4TЧE{&s5jN.Uluw"hOXɂƍ2 *[#AV$G( O:K4ޑmAi=NtZ)%BzIqǢj۶En{&͇RO"ng̣?eh6\|/V4)̀Aj1񂝁 hg6NM'Td2 d׭흓}O' Pa__~c%?̻ioЂF 7uk]*3`]P;"HcU6C4|%Q* H-j.=^HB)c2jA$e?TUe&Z#4tRp|1hHbЀ^^,\-.ə)<p{ULuF.&ePˇW@SnqwcӴ8*b :`n f{IV8BUv-@$8kxz>|<=~w;s߹?3/HA;?gǁߒ٘Ż9=5nİH]Z-&/2 Д$P-lMJ*nX/8>7Z8[9A Ǩ"ɭF1'ͱ8FQ 㤣@ jPbp대Et/זhпPdЊǣw q?_cJI{{AQ/3qG_`z㑆0m RVQ]q0V+X9NT]2JX# Y`aS"A Зऩ@q 22+fIAbhTjZ@&ôYo̗W& JJr>*UJ:3sG5~!<CTuJ_±uayսhYHA=o*D|ݤyY"͐5Ҷ$A"π~GJ{q928'$p$IzGͤWPi?NdL,3}4!*3˛ju):Iw]ˤ7JT\"0hʬ/w+75^H^Ve$R}gd+6%}?Ex2}!d,KL<%?LZgpap[Γ;ǃf Yй0пdQr{wG.MA]fpu8*dcM#L-˺v旑 H-ծ{jTj/auRD#6*apKd|~7Џ$!RQYs0UmU[MkXu2hcXj)bϢ @)긡[˺w;N-LւzCД70vT #A Xd H>ǓYj2' lFT+N״41("@cLf=UOYYUC9|[W<\^sEf3'2h+uO-X5GܮU-tqBʊ@*A8945ouLfԘH wo7;g{ t&Yl,e_=}np6՜kI6ZM*zxeg7{O|ޓU6ogni,3n%hѡ-;sd}ޝGD2HdD )͘h`X"l;-ڀ_hHٻشٙ,mhGS"ck3&f۳WR-r,@GQKIIOlep!){6Ip0C84 7n0hbk؃d8ս4N`\+b|e&mF ŧe ќa/^;+8`G"[pTò8pZzwfc슭vcG$U™tϕwNW>WU}N$OL2k:b!dwut1_̴'\ '=ÓT\Ƃ~Q7:0_Ti{E{O]*}_RCO]X\b.3l0t'֭($3 8z]-&&*; MKIi"hъNm&x7KOq9LΣDwPEړUCaHQ P-% @d,K#(F)"< ARKD>arJPΨ6i0hk1v=~`]9DI5p H0j=ٹvRu 8!M?D_\'^tdy{%(ur1FNeK:uOU''VEPW-ṟmJ-IӅ3;uDO^d5c_3GY5zԡa6 5hYZi>7?[ɠM̒19  8Z5ӽYoPK%rbECߨ t}pW>.'bW蚁ܴq\8툳/"[P8׻FQzЊ90;m AIaKN`Nn- q=8 t((=\2+A;\W"c=9a//c_5ŠAo", fi9yA=w=Te:,U o\&C|:#A7,ُt9CuO:4.)GZ°D~>~-ۊ ۛ¤Vr TTaW"9UnD#Y~u{8?;'67) Z+'3cs;8̰qfrC;a^>]l@$ыcS; >آ@դGQɘnMM]Zy gӡ~OJܣ/-㣌)*G!Ɛ-"DM3Aad*k ?Zݹ[O)o3G <@hugcNDEo1A0#\^ qeH2XM+Q^FuoI0>]yv#@%.X,odK7Va:T8|Tla$"xݟQZEAkDf|nxEH;}V]fJ/)&%`H k/V[CJ#I/G8Şڙb3NQ6H Z*@elaA8̄s(cS]8AqH6ɡCw{1Q3wSȘU^dlL aVtĖS3`(| bBf2eT]u'N#Z 6QSXQߌsa>xcCfl]~U.[ vZcQ bƩD Lt"q}~J>4 xX7^nx;Qsdd;`y` eDkf-浧hicf*^9#@BBucO/p͇cLJehepe8P<,p!E8S|gęOaQ1aVe @ϼұ9~jk( Ӥ͜ DW8<#[FRM'$BR)bj bc4l `etlW"Ta !8_Kam9FhR>mQt\F^8Z1{ܞL$,uq4ӇI})̮rī >g;1QPǡvbdrZXY;RX!,mсZOzk!W0śdpwODN#MaIS-tgZ_hi$No]-y*oyз]Y~ATUv?1:<e3!kʟy;x{`kz6=>$와{𤊉x18rWֈleS _(==F-|Ejd=N9 Q:wgn ~θ90~I0ͩGlVJp=h>q}0df(0 6\и宦̶YeawA>1cKA` d`BM4(l#]\#GOcЁhr6hfքɀA'q }2z#p_Jr:usWc2/OtFx!Ov=DQ騳!KA X ,Rɰ5k쳢Y9Q9R~;]ƚi!oMJHcUQzs(1RY;iTHW"hܜ+a;lN2%Oh;8B"32 bd.kI-}\Zzů5nT_,9"K%)cKujYM $>D{#kMޝ}z!F}Y_,ᘛ]gw)0J-{컥d0hfbKCf!ߋb$Wۣ܃BJOJ Ԅ! Ї{s-sa9o^^AԉM޸MGOCe 6  6q.~L)&@b.rt1#VHaTze G}>θQu^IcVYo>Fxy}uBvGw;yaR!!,[֝n}ތYsw34 K0F#Cy{8$تu5uĞGN_h`vf h|ra?Ķ:iD>-^mZͫdHH^ w6rҁQ<7|liPEz{֫d] 6KNjq)mEyEB]UhH@^x֫媘H`"*2я՟j=֟8yVvA(=?e.c {9R^a#KX` xy閪_WnIZM/Ows3&aWI   [VDit=(B.y{O,y>Flr~5-]tbO&RAb0'{#Kvޱ_Ԣ]6qQ'gq./9!|-uBpg5xk U[,J0P@x.7^x+>eyfO]#s:mBO Pq@uQ*:sh]^4"dVWҦ^N_p"obŋWn9&@ΗyyBi#&DR6;y^s3wL-&LzѯezMLJu1msz[\^` Poe !sh˽? &`ˈGO(a.Ehh÷?\&?^{T Sۍ2p6 yCtpuvRPѴ2JJ_1W!C^>\1C jw;ivl]et0!Kʰz>iwZ哷V׭jJlKU_q`U*q5etN:H65ζ5Oޥ WvVٟsJ*qt[9ꏥz &JtTC>Ft聧zڼϞ9e@/t؍V/% R΢C; ׵fTw6RLϨ9lƣկ2~xk?.m'g?mAaJ g}ZRs\|R5_ Ӫ7^4&hC;`l_M:zD!2vV[rnZ(i OOpADz,uqw\LFWHr7y™ZvM pbHD2`eu .w](wE+;.>b]n Lm蟍15" %z oS( ]V%tppg VA;Yo-Y^..2a_-.g:kQ\^syy./幼|+y1R`3~Wi`9F+pq_owRFOC8$rG)T8h7й5bɖ_$R0@΁/տ攦nZh췿Nȓ6a#{Hix K+d}`U'HamO XR1kkvN#xW<$Z+W|DX_O r L$,@.#ےw%gQvf"GZh.yP^/%H\ Y k`[ x8Obҹ.+|%V.6y߱ym޹<ŏ,5#ZX-϶O#KBM V1Aj(3`چ1-g3?g3?g ~"0