#!/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=2b3485e54ed31673eb585a5f392f61fd # 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 GXd'Nԫګz^#9ԺK}˱H{>' #.AqiykMVHt$+&r J&d BX-q\|@pLkj ]J]XOMteC||1۴HقYH3 i2`_Z>qXȄ!!v|ˠ<2|&$ :5溵BCA"!!~ -i!LX-AԸdԵK) *"3!}jֈ)˘0C0}X 68R2hHCmB)EO X Ă1XP9S D`e[R Zh|. 8+E H"p? ]K>BD:Ǒ|qA+w䳱:)e@=V$҇HR2jؓ,)";qW_T 8z: \I%<䞬~d=j{;O #U{GÁ"d++^[@JR_%eK h}i 3 l$쌱ڕGRGEHU2:2܂L$=X * *I}վKOJ+$ġUVǪD.."I9%„6V$$V۬s@2?+2WhE3mEa[|S+)*HYfC&f7Ĝj">*%/G?*A_X4T_o^ ye4HNL'fmr hSW:k5/я$*^mR]W\ET 0 $lN̕>'gJb[!4Bo!rZya:.q m<8+Ιd V cH/ Ҕ)4%g\73W_ cS( C0" d!]6'dc"$WP@KřNƲ1H_I#MYFK[}6_*r 1e D|ҸO慤ET%H*gknԸ<" ttOB'遖&%ig0`X>䔔7ʪ  ?#q&Օ\5)RG$(ըmRSbܾ&om+0;QM+xh55~(:5Ks 3 . P888(3GX`%a@xhR&5|]y1,y /_Cwp{:G,Y)"֤,m ֲΖxt[_t-nXr[ vX1p r AY)ϕTH6Ȓ֮T:DmQ 97=Z=>pT 'q6~ӰdTJ{}x<7u_| (1K/\TtXoAm͢4MEdsGmC9\, ׇKj31)Df8\bGW^GcLŽjY9:a[bIVo-LW#Bk:*@Lm̉Z[2A&m[6xF_[U0hXQd')K:IUR!VyyA6k}nFpN+V3+Ol7.; |栛`RSG$ΑO }2Jl=!$%XQ:,Pw%[J٠Rj͌ ?=M`]m daOĐ}2 C\W~Mf@_6%l ''Ф1 m0`B||R7IeJṴ4cP[=j\з<-S)3I🳴jG| ߵPب3C [è~l&ɍ+Hz- &tvQJjڝ۝۝۝۝۝۝۝۝۝;,fKSer7vVP^N]‗HRP;g5?pZKX--pLĭ}D (<Ρ]wxx"*ܴC(>g+Bՠ+gb0wGV]촜:x'Ej8_z)1чMԛAQ x4uJp" Qс95Dn6py#QG..kzs9zz [q8 !FG#`/ZMZPny5Xv$G,ֶXDž",͐\YOOФ{v1 <\a'@(!]O֬ =2iへ(a=c7OBg;~l)4a%tz򢙗ک6dŢY5 sTm|@')r qx*,k,C]Pw3OŲϟ ˟Dn.4n( S ܗAϏqɍXb0Ru-hYB7edTy=jYJP5pI=9Q"79|Td X'^1ř>@@8ut~ޘWm2@lP>9`[$Z mWIΨ/Mo/X5Ti" `Bb\砸 u/F<^>JTN{Ͻ=Yoy!߽h?{h.>\ Cޝ 12K-g lЀq.&ҘdﭾWʅKrMn 3؝ w(%?#D‡?H*j6پBD\ ^L2 06i ^'LR8lĜ̾1!鷃[ع*aN3ܦM+<䌺"1DCTzj{:`LY'/1Lil:CFˆ#7_*|Ba,-4> QV9md .]+Yj[ͭwͭ㋯[tSH}Qf{N6RE3lvuK+kSg^hְG'o8`KY_Bfچ^ ?z~F׸2U_Æhzl+zU?9ǕG*«r)H`T+YNŬd@1a&aN΃LW<<C-llh3F. tK`fElJ p}Ht6J>tl!I>ys-j<[K8Yl!, Ԣ0B0?z U-Ep@wW\DDTv5 »^Kp}XXw(DRn&AQz }HGQEUC d3`cQwf0:!&|C N=K7p`O ^K(H#hZδ-,h_%lHHBeO vCPٔVlg@ۂӀXחIƦ#[va`ôŨqt V>mpT4HwD$S&:+jA\$* d !ؤ1P4p +QPZ !,ƤKwM/ֿe*; RX)*7$Rİb,FLz7T S-#~I5t;0l`àƻ!W5OCsh,Ǜ.-Kfk1 u\fR++|K|(ӧPМ{ߢyz`Qa9liIFTc X|N*l =ZLJN)a6I/+TK!cSr8i69;ku \Ɛ0$u+MM)҂L58ql}-DѲ>صq߻^t[ĸkM݄oh: Ue΁޵&Kc.QV<3]p3ݡHwbLy DDNnůJ'\EY~c375/n~2E>V@kUi\?9)TB#id4X T ӨREyɱ_VQ ]ji56ʝ)sq 73cj/-=#X_UL o">wJqf7NM'tJ +wp; EXi$ I 2anht* b/;4lbSNMŶVS6XQ@5n]f=-C{Lv7(![v2PNR|,C=BJ 7˻V3!AVCSN?\ ̀/)X5{Pi9n۲ޥx}I~?Wkx'wbP,K1'?%g>E!5iN~nMl+~8)C B[{f`i]3!<;n( B9x1^tӥ`i$jedNp/V%cx>wu5Jؒge>bBN@j!%uk =V`+Z,L], ϊ~RRgǽg!!Ue!Ŋ|NC+Qgm\%08Qe-Z.?8]j PEo%>6M X^ Y&ᬳB I?=5џgZ m-n_s&d.sto8p=\7sYbmYUuΙ:fZEcG芨^ޕ @`xtXΈ64l$kE\ Z`%;{ ,4^Er͂xĽC{oᆽ }Ovtk#_]aHs,nf%աU*)9\U~ 0(cق *6\0ay*3rTDt.&P \ LtDW[dy\%H+ /{IUᑅ9rqp z"O\'ǖctiJ> 2dɶlp/1?П 㶇IEG&'>vLrVmʗJ5s'ymVoeZPݲoVzuR5¼M\*-uRc (ei$hYL*VoV()]-es7ERQ52϶,(4#T5L4V`0!wU&^v}^D%4~۾Q8wqTQ77;KCEH"F~Ws/ke*fN 3S&Hhgo/Noo=zx9m_~B/6NH/^mB^$u,/i:ry9EG.'u$NlSvv ގ>3^EECoRkUVpzFdqXAWL8!FCo䥧5RW RQRl5 `30k*;%hn6A1/N4@ν}A$buIuCZAݸܒwy*st jS 8pe 0ЙKW"``< %WDJQX͟*/$Z;U* QQЎ_v6Ӓ&&g-4OU.fi:PH7nWvpVilǺ=>u˒[Pzѩ${־@W?x25~fffffffffh)3lw/[is"\;&>/N iQ?n!\Lc>$xׇȔzð66%^*/h{Vk҃#φWJ#.;eF MA% ƙM X[`@xxuzL@6 Alqr/4s~97^tWnR]C ($J.CI$򭂩Zh mQeNWF!M}&VX*p-~Kū`\:SJpu e@>n.mӑ\ ~{WU5k:@ƕxiUu-ogfz(^EgG{;~*8#jfݮ936 9ѵXЎ͏ԺT],q}*Ʊ]8. .f:l^<9z ~aB'{aO)0=>ܶ*Av|z6ѵ `_[)H0 `S/(܇˂42*.TL!}:9i}:.O _$8;+cE+<:޻th7 r N _?ޤ IKRkro;,$xaR{?)u+ua̜q-le` 1|=I-p^Qhapu&=g$6ymb~ %mƑc1{K@wy sp W`OiL3X|Ģl|/?up$]T`a2h_fc2NbwwN4]&hK N,`˅ Ǣ]OvK9 dHZ WyRp?=3&KK'ض;w6>  BgwS" t5!LppNˈ%HBSfɠXd.C;eX Gө7'8~#2O!l|_PԅNJ<0<=+N\ށ(#PM6a!SYQ`CI܋U<#aUsn~p{-ӿ'`0@邍+Y!F] x,PQ]v Ϙ^&m3`C^F%BEB}Ez224ErC!4cTgbhՋ=j$uE%OafvX22ˠwu s'k %tʲ;y%j?7'R,p{_C dcTx5wʞ pkdoɨ߈\lHy yG!P[>][3rlGB6WD 7hȵoB|#^i;V ]l[q\?Hs ȿ}tpKq~H!KFEk&75 YdtqS5WCZjڎ=GڻVn%ɐCEke:XO|`,Eٟ &Ft9$nY% tb+T~Vڻxi+Ǖa1\Ӄ VFQ`l8/7Z{)bԒV +DQtjT8r-`*\,u-%eZ@Msk`o<3Pgye'>v4URa!X-py?5KFVl%orD2y.C }tCoy7-Ua˔:i6L)!qYc>;k_=gm}ѺɓYf?Y,g3|ONǃtxͫ$z:?k!=〦0ei X4kأړnZy|dYt@ȉС 'CϯwN4 b*FL`SeZҔ)f #v^Tf4'QU`lHU*lJ+CO lNLipno $!={Zn16}tj!Ow$c'13*NZ1XN] O UDw(ĺVRC;Qc9o@ ˲ḍNs$;ȳQE\n=R~ Fө]%;b(8p*=:gbYatG!u^ o?_f&d#ג8fs-pvފ*-=ݩc .e}ã,آNwnq.o}}J1u|5-L!>w.e3y61\pGr,Q4f^@-'Vvlh)3,'|а抟BTk|g& Pr]u" 3C4hml&kTT-a@d:iWld}HT|#vZ:2fh b pqM(UhOnCt'ɼFx&;IQc ;ۓz*l  o+SP3"0UI0pq*Ũo\+(b'6 #{D[)Cv3˟A)&a9RIa5*v6XBM]U Tu.LMsnЬ|rf[ pd}MP6{u-w h ŝ'oSK2[?ЌCq$@nfu.{mOg]Lnd n,d30=?8k Ui#a($(c_-2!,W &d7G*7эMmwͤZ~A8'b`Ik|jA*BVf >㭙 &v:.Ka }Ϣw sSI ?8xᡪYSϔE[lpw9 tC&E-wez>2^ʂT#MrtlU2 ?1ZM.RUf#XJw kV4ŕ)P1S\PpEFX+- jawb5qkь:^oԏsf(rLU|,EA`ņK]+SկVR]SI"'-qZh_O@^L%?װ%<K=\Xy4?3?g3'w`̔ [$i[wDxyQpێs|C{kwzo'#bO7eM[?9٣Ew朢ͭVWk+s.EIp-~Q>ww7 1ģ}*U_6X}WW=ztqh~gwuS~ LIe'jԡCwwO߯L8i.ii7Ã}?p6۔^B}} o?HU/o1$ <7913O?mRc+A:WN];_..^1 "eEz>P>Tn-0kޛzNgzGK:h\Fi q W)i ^5*[}(8,gPn; b|tjF8g_Eڀ1RGXp|C橜@C |*ke '7\S@[E=\e$YVxҳĮĸڸ{}4hF14NVB[&x|EW/4E֑-W[‡ ֻ10O`Zlћ򝣃3L F-6V/?4Y4i` 5$|}`(l˹|JIp"q^__wW߉ORDHi;Z;b+"N'bC 8c_-VWh&h-%\wW2 (J!BO&W{ox]'4f]Aǯ+p&++Wמ?I/z3M{޸8O?O?xhavUaG?7bᓇoYCV~zU Yv\JC<vSrXh]C:lhw^m~tM,@8 l4o2$O~kɿ0O;P3?12GLpL sY"z?t爒6cyb:<[d8:tM]'w5FUjK>\Tk(xkң .X mF-`΀Z峻r=kBb[-G?`[":^r7%ԝ[e93قJlQit# EՆD&' ?զ YYY᥂[4 +hd*f"a2k䎴ݤ>B]kCD'N:+ryl,#a3Mz%A;SܸJ+i?2hԺôPUh2:Eqċ_U8öv0\ KZ;/Pr"SL,ՂDJYKx$ /NBecpq}YxUJ2 ,t_6Մɭt |"rIKGzҡ^yWt +g9_e@I˸_gu#0* ՃC˵:}@+`zUW1+!iv=*RVvF zUdR(LQBFZ#ݡqNTI>ψ,w]|= 0pJN-xѐE5:%REB^}p0LZJ-~)9a{udq3x,(o`iޓUђqހltY}f\'E,Ghw[c sNU;d BwuJF=`Cs{* hSxWs)YTl<) j#7YIh(n`x "bqF+uzkO?@ir1#w!lj<6iR)QToW#LgFݶpQ;#D_zǬ ȧ"!ʰ'DA} :PnJ O+vk{xSR#͍k_Y9}+W>.㦱=>S]Z,& fO8v(7O_D֓-o+*%aԄjSWwF4%d GN?ԙmζ'CSZp:4ۀ8>kFuYU;əbV<@~:{UL}Fsvd K7F?>SsbQwcs՟,5]1S+oꡀMomxdwK]enr2ic߆ݭxǫx{=g3{ř?wܻ{0o4M)!]ŎNnǰOl!U$&89i!rTP-MJ͌iXҗ8TZ8[RA ")1α8 Qz jbp뼚E^X nI-M˨~ŇI[;^LIk{CQ2D_ƍJT/?ܽ4w:^YETN~r'vGp^jlV=~52Ris*TWYC ^2+i `FQ|IUEZG뵛Tl<iH3+Ish-6_Hat/!f/q Mصqo67$ Z{1_^_ \ wX*mc\m4lWqXFo}#q 9 ć;V7RvN{6ֱAC 7Ym؉5B+LZ;祗Xe:G9kmT bUjO}@;kOjkW7 V\t ] 6٩`[೗^e VYrx3c<ݖ4}%0E:YQsk&瀟q0罰ܑ[u8cLF[Gou߭Q$%`Om+͞فV=9u8+=/*ì4@y@ iO ,#asv,>97= {Z~v"+iFwsyz:2)Y4c[)9bUgJEA["ӿE9[_+ J}ֹ瘎@4 ei Qiy=wF ~j[_*@wPQ+eߡܒ!Oʾr旑 >-ՎjT,auR!(6*fpedtQ"?HIaxXQPۥV@+҇]G*9Fث2,6,Z ':msQf7E(tu?ZB߯Z+_q-Urb1"5 A ]ye pp&NszaFՂry8X` V5Q[˫0"?rlYZW< T^sg*nf p~qRt4H8U]Wz0'WR4Arƒ6S,uXsͲ?Nj.n@?hnYZB%P8GnA>̮ɽ̛3 wysVWSduD')6awL:jREc,TQNAxɑ)R$dY!\%,[= aqvD:mqxn'2tr>mn⍦',PEL1tѦ^ R| Banϴh)r1H}󪉴0fP)bxcV[G(~;܈nJP_8θ+e;HٙMb9@"k{ƍ23 uT?Bο cI`E`7#47'm/m ۺ֩Ldݒ8yY;[ztx\U$.!hq<6af1Zb\(+8ng1%yDq9HΣDtF Uȹb@$ P-%@dbC["A>}`cv#Sj0=LP޽zj,?rhkv5~`]9DIa8sH0jVRu 5PI"@q(_\'6^yk%y }7393Uq @cF%ڄsGjC{ )0W6uOBP sjƒ)=jLir<Ho ?0Dl>@7?}3[C̜1}1xb5ϧK:fAC+ t}qWIx~e>XHxt0tp\Ꜻ !M}DLVAnSHBH(T=hEN/ri8cnx p9C9NZK&%ht}XKuBN$%}O>o]Yŗ bԧGȥ6Y ȠGnnmXp`2|UײRWO؀b3BBXq!qB Sq[9~q=T>e]yTER>[ eCb=(cu] TbcDu!gGj0!Ow VWj?;uccݷQhՏ^[x5~g߳F,{=E}ϢgQBI>ދOHRCЏ:8.9懡jJV ^az}MR.d4&{5J=` Y0Zt{ɩr-X%Zd9ThI`9&N_wϩ68)s*lܦB+{NuMx_E 9e}] nN/RƧ{/c?wJ` _*_mSå#7|(;_b P?x/ 搒J{x3՜cI\}0+~'.ԛt >ޣݙqo3vTӥgʬY%79iR*Tl !˛TW΄S4S&FV[aTa0)(eȗ,N9@y 1osjn n#K.WHcدG"O1?:33י%`f Yf%`:5k_ûrt @\Kr]SA2;1_~ȷRơ~Y?1[zV t' Ы} D¤?툈}qgS~nYY^9·]2PT囃b#Tɹ~KI>} /ң!Q9NrUp @+\pVDŽ[6,LY˺Rwqc5Fy's׽%tE 6c2S~g ⣥gdbg1UA5i efIgV_b=i79RК.yBUwyqv̖q$vE[ /VCòHCF(F h#ٱ jdآlp0TZ0zΩf/3!ROu! (YGg-ԛy70Pb" |8Fd\m4Aa nT+`LB%) K*f/&"!^C|敎v05S{XE!v]mmgPaٲt5bvBY>Zix{ ǹ~=;C}J8*v0$е US\"ޥ7ll8B;矏i)"騌p@{qP2l;P[p$4=ŧf&QxiäED3B`(L<=s2D`)p=0[c}t Cф Eo2xGPnEwM-!I[-Hʟh餡5jO+/ՖgXyC.ͷ}5%WD4:輪 τ sbFB6 t" +"aMd\nL#!ٓRL!؇(G9Xm6Z,G)=Js-A97B T\?q;g3:U@['Ymײ=:H.#c~rfr`+0 A=0 }ӸP6(qea֐|bKbXlht3/en.Qr|ZFml$1jM?V݇7nr30AHT z#UW3tEC,dS"TIѴZMy])B[1wtb:qP׽^CJJlL]T{]vFc<)H_K/ mA1dk"1=>d=JYE*?ƕol袨dѧ !<&`js@Ҫ>Zv Gr5y2$L+}kY>7%&搅7A*}T_hn)' 0dX,xYE{BVV{ 4ps;O)Px`radqv C]`1S5u^7ܥqCzIw꤆ʣ!pNGU\RM^OܕcXUšRa>-g):Q=xlo8_{˓ߏ{py}ϼg^3{] ;˝TpnmPro%,o'Ոн'3yЉ"O -" SR 7PCA5,-'Kqh=4jmχ=a$*/Iz!@@ WJPQe98ERC\řQvoXw˅ȵ \+ESl9jIo2P.bLLcR{]zIWg/ D$2ZC f>nvZ/7Ĉni05S+~A7.ܔ3&3ŽU E:XGÓ vmebZ8iV IaN,+Ċ@9ĞQdgt%|fyk#86 !3uﮅj]9'J;߷k\%$sWW1 $mx5*2mJ"6WSDP'58~I."T.iu+4$^xһa,*2՟j 꺓d B̾8OP<ր3(Z6d&ڪjCdo>Y+ع<ŷ܆_l`h݅\^&6 13MqnFNlQDB]w 7i 5s檈'qO֫8u؇%wTtl3ޞvHkrm-ٖ<ۊ1PvQx.E7x+夸Oٮ}Ls:mFOƹRq@u>:^imQј'Ҿ_v_: Ur1Jed1)w+e漠t[^)R^-:7E[ rI(O,Zp.4T-Qc nƚFYC,mb "8Hޥcmd?֞?O뢛U@tHE-҇hc "$nHʩk=dx7:bBg?j=[%]$;,[˝f5.S^ɒ4.[fnuZ.7S"7Wuw\gH.3:i7"|wxz1|.e2KUQT_.5><ếB2QC3#h4)xUSz\vaN~p-l/II ?t|]kDQ0-jMHogϰ1hG/'@s?xڣ=R?Z!Fkܿ<[>:OW-쐋j-X9֨;p}ovY-#wz.o\C 7sݸswÍsnݿOwvߑ;r'NnݸQ(h XJrtdĠo*ր7+sղoe|TN{Ѻ,wO`ӳx-(LIuv^*ӳKzcӣ';utNS}\DAҏPDْڳf~;n7#,JY,7sĬ͈*gH$ʳ% 35~7Qp.1n;`;"Gԅ٭8fm/ܠ;_bdw& 3P~ݤy3 Ism2@Lpu{:BZVt$m%1tKK,'ӛT+_xx4br'y%T=rzMKۡ`e}%p&a$r>W-cve7ش^nYaum0c>DG`n@ _yy 2:E NAmk=O#ib]^n\TO(a*\/=Щjq5EH ]TcqVٙ' Fz<:3[`8/١ӊq;zL}/ݟ%rJ@JU8 ^؜Q _$TXQΕ?Cҹ` w׺U7g{LVgǧo#Q>tvV 0 3)^! R8(򸊥@̇, ԟ ']YnTģ' M2h.Pƒ;cB.'=X.O-3Hyʹl1ÂO`)X ek D-1_jtʲ/Zj#Qb[!9q1nc%i_̌Ώga1ceugy?_GąlͭVg'ϑm p j=j0cMr?b Jؙzf'p3~?40