#!/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=aa1d80426b440a5e14dcb54aa3903be8 # 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 K];ksۺr* $C9Ʊod#K(;lIq@e>鴚D"bw '~೿_l}wppjk{`g3Ryco­_K/"&aFv7_5MzYN90YcQ8|I_ǜSrO聍(OnXo8OI\uFxIGlw7/h&ޟ^3/|=zcE4I\ѺWvIƦa{~&d{y`RoK 5(BshI%Wl>#Yh-K4KzqXk%l*x .|⃓cfttZɎ/kvTWg /=6czN+ļL3֤sfx^r7{U.c쫂[0sG#gYV+Z|liA4j0p¢`J)Ź jt:hCmbБ-J"  $'01%ȏR6apG`Qct8,K$`x`"2NM݁H]K Z ؐh)@<\#Ku|#UulŘ _89P' H1 (pd%k LL#8􎀊79|^v::oJ&3]Q(5Ox70~oHU!Uay@[71*5 kh6cO'< 5x`r&"t4 , fsɜ$%hs;O$1X.\y86P:;;; (I.n¼8LIBIթZCcCl%$ɛqP.2'1  \'܍Rkd mxF8;1a" =X P/uKeN`xOaS-#SKy;h؆8g ` BQ' .iH$rBx^`ꔪ#[ͯ_qYe }|0[߶?`#ш`>`_5EY=\08PAz C,)Ӵ "bt"hwοa%י!XFο[ VAb-͘kDl5 #% q=m,4aP|(AXMIg2N5Cw8i$(4ڈ#oXA;s$ |Pfz,_Db vT)p"VX$DX` GڐGTW(M:, gtå/y E#\x^` cv[Ǿf~ ūc)ZqY /bRqL;ad.? -(El!κYc~*C!e#*(dPNQ|Dc^.b;G*/VFJ;[4!|`vO bp]M̭iӅsڼ n<3YP3D+D~BPRK6:= eYfj+߻T m&OI<МYe;23~Ɵ@4M޾6 @F+2 q [:i8Szr$P9$RDđPa4HcT ]lv MBwx}~aef7ۚ[u߸[)oaƗbıj >a@pr TАA~`[qJ&-cBn n9{0k)x2R\kɤd60>>-,s'" (W>1EIF-&jҢAHpfu?QZ˽!5ʶkWeW syHp8p&mi)F֙" hpԟ|XC :s󾳿4#c8~jN/ ]Z  JQ{C=8mZ0r]@x:75* (ݟ1N1Ԗ#'p݃x [v}c|g'C-4uTMI=0lh-{@WoswHaw:m!Ů=ѵ\^Kyh9ɽErYNT2]fN7ȶ\des 6XxUw|wg [|o9\1[]cB[ct;4\T/bpϷp̓AVO0]f2ȹqA8x6!T9Z*:+ X&I)En]r4"Z%yiYđW8wT 28$xSG[X(j $#M!{,r6dY LODaH C_`n5= 9dx+ zs{Vej3Lr)ϙssMaD&Hz#y]~)}6rcwF* uE,{)c U0vIUM0<(-\# Y=_Y,KK=/J,SOe-AlYVyNR X%G+ nJG<d) UlΚ+e2}κ Up+W$ ;<|Y.}Do>R)ZԚ)gXz[>l,f;.m/u'aDKޑ.g Y֑,vxO|w kU+PC([S45—(9E`i'k?Ywjxf5ɥ1ߧ ۓ uP ZA$(-SH5v[$L,UZ/qdxKPO,@d ڡ~#VLHҵ#MCP|%͒i9n bl[_4aI#ET1W/oI3l; /hׄKoܣ$/iũff=}k&Lth7 K0iC~ItR"aq nZ@q-mI hCW+2kfsh>c>weULqɣ׭r;{F\Uz@v)B^G^ =&G4aZr|RRWK;~F8ONIzbJB?--^ Uav !î̒e5e`Xnշ,۝u1 *S(/[{^B+o{k w|WY/ h(I$jHNP-"x=зpP=Ne^!ZRМUyrykj. QY++ؤ2*i(;:=yO$j_ *w'!"6C}QB Ҏ5?,5ߵpKvx%7Fʃeg|K)[a2j3j)Cpp"X@j.&7kϨ>A\";Ů]# ߓoj7"Nj8۽zj ϮUIT QOՅOiџ 7 Oie\X6]C9Ḃ_9׾FN GND~e]66#QҶ6Umx$  =`P IH &Ǯ47C[ 'Ҽ7$4p2~`G@Sʆ)؋xrYK &8J]bs̼kaeq_͆39= og{.fsKHj2(Zn94~=[\0Z4zjW:I~Dž#] r2aa%Uջ🦆w<.Tp)e {Q5+x+8T2bat(H;x?/q }?r hȸ0>usKUv~h6~Dl/z*b EMOlY+ͺT_˪Jg⚒{{NXL6F܆\ z !8X]"~ :`Y/uƄMeSll-8.'+>_2VYy6< `%^0 3FX5;i z3b$ *),is4|[gy DI[")%NkL;,u f9_\Rs*Xձ*ÝI5 T]av@Kyj K % r>ع$[!tjAY&65㓣ӭƃ ;O)Gi0gzS?dzĠͽ'6 .p+`h2Jo: mECC{2"$cQP ̘_S׾atĿ;/`M=Go_@3#.*ip݉+Ce?}'K7u~mgvO᭯RA9Ȫd9CUҌ(Q4 bvκQ~C8rY8: 7J&&ͫz/ 54 e2MWg ֆ#PfajtK1mPogFea A@{7/3*YZ*`;zovAlMC8^qѧ-*P,[ҝ1zʵOUD 6ã(wY|VY&k$| $͉p; +*'RH *NZ&UXag?˒]PբӘ?͖Œߌ{˯c>;uey͍|%->y<?y?w Xax"Mcx]!H駛A2Yg tߛh4=F%GAlncZ'=v@N:mV6palKƍE֫V-f 1$Ʊ[l5A#a/3 ~ 'zi{ mҏ[wyXu5}qp-?Czc0⼉ XDnT]FgڷBSPUozЅ#ùzP!], ?Pmjx蠬wn'Å暷?q|P}<d Mjד}SZ7g38ڷx^;Ԏl+Rihޠ=eJ}kU5Lvf 0IpE>ք?Zr07s+$,גyo?'\rO?_U3cvz[>w6M|RԳ/KGDE?*>雽ɕ4Ɩ{~8}.Au' ?\Q*UlxPy;1rW| SRz@DtZI5/O;8*`m#xtXtiѯ{ǔml Fp@;8_(zEg0ݶ}9BoAM\foIi1S^<) (q`ϰ Onr af"Nw"W3VE9q]u0o'T{Wz1I׏#8zdd3˲XCKLDFxQ)VX?9rف'BOKeENBk̀)Qn)!}r0:6x# a>7ǡҼ1X|5Qܪxst;{7I{p‘g‡h+Ni/*MtSΈ1]y@!3a Gם֘H0* @nC8,F:yOYD:ttriłG4Bgkea[4&ħDT-+I؅K6O^> ž*7PǠL$d e昝\9fQF%da|QrLix~<7.+*h<4R?Ä<.NeE0z"S +qHj'8TWlo ʡ}5s na&zw՜v T73`|p_VxpT w߼>=FK-=8ƀ^(6/h8r ٍFjCF-T\D ywL19JfmDd\X]?̾ b:`-񢐮YΌWT6](!mK=2O{1e>Ω ¥h#pD78FTrT?b`J4-ɨPFò qXNG2-\w{4&bXFxň}A{Pwni k.ɋmD`PVVs=2$p }: dIMr]آS^su6 #2Ba@wza"%q"{m*r*驂NO-cnL{AY= eS$Nf'nPJ'$ "-HiGJoOpE|UqDhFE.IlWX 'r)p|lz@ M얂-=Y¸yn@13 3'9iI#1<Ľ^ƙ3:OE$O^$@h K901Cb"vpF+ʧm= X@Ɲ.8"0IRyzQ eE}#،&eTNΰdwLMe9̬ 2A74u'N{Iܰ.pPJ A".ϔxP7DaP )bg [g2+Qҏxfb'WЩcMqڑgk67-V#yd.Edgf|Y  GdMl_LsH2>Nb%}BJDxDq!l"1N7A^- p O}BG6XrpT訌׋"x,YJsqDS,hqthʛUE" t lt)R\=靅ŋ) wXOiw =:,? ;,!prI]پWud&.BYxMs}[vwY^26FrݕwLC68ꈐ+ye8'>M0!j<8[8 9V'X9;YS%d$*`TlE{f<{4D4d-srv=l*#Rks† (NS='S,.n 2)ٵe_cvl5[:MY>wV?['r'r'sB0J[# c!Ьx@7UZ;![kw ļyc]q+#ժ0L19UV%qV6 +5aH~ {+ܯX@)zquAQIJE>ByQES} ?dDݒRH`3`m2/-YwUfqfY%.Gg=DI/!7+%7MsǘLGC}$z}`H7i|fa4Ĭ<3\H.?[VY>7;ɕ{K7%Kk z'QL>2-C%_/H=jLHưev&j3&5tsp')/ƟueSRʜC8m<͆elG3)<*i)f C|oAɪ6偅C^( KkJL4*JG`HbtFE09v"B;%*UNw!Xf6oA`!RɧNl."aj&Ҍf,3S>mR|%f6l89\LKa]'ov[ a+ldzLf0I rz/NA>9E~D_d*C@6Q!aC>4-t)0zNb$P;{UHJfvWC< 0ӿnv;my >nN躠BoW{rV給4D2O ?\è AmfgXnnF ]RH&PL]r0 bz-K+&+So|f?h>dx{pom6Ldnjm s 5DzPUPѤit2SOԱ" PH#IGmP%:IϧD3=,RVgFf\iY1hӯ0V/̨y3NgClCk glϖGOc-4t"F4R_.Pd@zAGUz"BpF\g2RT=`7]Pqb.!{j^<ib-( )tEF}BA7n BݼD׋ d8!1q+8-;QN;]L4*|0: 90ܠQq9<ۚ-7MpPo"2>zgαus&wh㝈ŜJ]#%Q 6?{{b9pl =8sz@0Ơm"`ZEycV^IqPc9F̚J+jRn>8c+ pQjMF?.e*8;\ _4ԍ:OWwWQ8x2 jMǦ9XLBws,AڅiBZxц em䤍A n/\!CDπstB+Qp6`Rzr ~Z @Bw6i-Ǩ>(/:c_̊.uKfeZ0C՝[DKGnH-,|U_ ؐ`>RG$3q" t8#@Wjj ĪC8ު08&;ʷ@dMW[so)U^⏝+@# v*rdjqJd!FQemSKWuGIe?oSkժ[[['s7s7o3-b)85v|S_UFފL|/ofI8(%Toym 8pquK*͏6I欢3U*s^l4 nQ~ Qi:ې`V9,; P,ȱ;/VjӠV5QY^&7DPR2'΀%E+pI4R -{#{{p%(Aq)Z?o cUp8Y[%dzkކ+7k9RIx{>lP׏o浴o8~\[Q)WIvs'Myް9;XkrDd.H)XdCT ,N-;ΕcrOa7>kCS^Ýww HJ2ƉۧA@v1 rn@׹)%Phܦ{<_&ujx18?O{5>d׉:r'ƇR)P vO؞KpE0j]vQ ab;dZ2-TԨ,nnK A_A&Mإn"mD2vdƲGƹ*ͮHhqybk셨\?o_Y#\[AYW~BĦoIڈ=.]BA.!tw(dG VݗDkcVLwl7 ܂q`lPeY2G#&qx!V0 aDl< ~WN0X ׂ,? PZ=h.F4ŠZڇ;Jwu k$@%t p w|k ښչ2酂HeLsT6zܶ #m_5i8nϿIK„rʰT*kWyOzp?<8<&}M{t @^ps8Pg+g5M[ PO q]3xDƅNP*KUX\kp=g?x8EXRHonsfnG'4'4'4'04ɂ $Ed8Zي2"@C"S $}A**죽V-xv[t|mvgGi3QU +y݋\̧O^ F3GZҋ84r ۂv8cI+YS9鲗1VXj'F KfɆ`<0ߘ[,M8w"2X'<}gc(* 5zn섬v^N|yް*hceN#= rWFhtǧaz1zp;*.4z֜mg#Vr;_طwBQ.ud)f yL8;`$|_%VW޶./x)L$1?P`𶿊Է%U[A[Xk&a,\(sR  S8*˩xS';U]1miQ cBG0 6<{T:o1ITG9 椫xxJ`, 3! a Rq]mdIHQ]f22@t%ok+a;^Mh+єafxl9i*x_G@:FND5(D:l%njR ,0P |p蒢Y)QчZIr:CQ\C.- YvuxЋH1" .w$O^;H3|xRj.Y05O"3LOYHɧX5 an7iK~{MG5|Z = "=}Ci߼Rkm\]^YuW7t/AmGFQ^Mɘ r~[Cտ,2~@B7^ZeP, Ov{휉,w2vlBs ÛvXlGt>]i-(-JPQBͫ6{w9xL`Ф>P4t2Xld,E㖜\{p1/ ̠.+\(,V(rq G)Ӆ, NF4}3pϘ/vj",t$O Fw$OO!ѡ<]ZǨ)Aiw 4 #c~އJT^r o:lQ td*T݌6T9 6gd+M鶏>ȶ((E$QaڸNAp-SQP_M" ix$r?zE qh_U)S|7+P@m!}+;E Tc_rDMVqTKd| ē ko q_&6Qy7*5j?1Y;kv<3PU# *B^KlfFӔU-yt-XA|賈P`U+xy]kegć Iu̅lhfQzf]xb>4vӱq k 7F+y$t*Qġ8UBn*Ѡx\p{:i%hĺz3u,Xΰ!0;?8xbdh`QVB>2yP.t^8싁"^g3]SiMJl ,*t41&H%/Q'sbտJrk"%YweCU|I44 tF^ȓ|D #aM@97I3qnx }G͝> MhqeY> S6}~yMv1@)¹~2[!V2(QM@x[Koo+ͣ7o)6o4ߺ\+YI=:t|i񭱳(=jQ̷mm=cV$r cK 2`I.FzsL+^&ix4I!Upb*NFیm3֏jaY$ x"p;o(ڪ[ˉ}w w~`@4Yt*Tj?ʣ?үڪ^ kzp6j47+5ĭPBNQ,Yڪ:XC5c#M/ (TQԍ#@b!8PTtTDnq@Uun!{?~^Ǹ?s W@Jb4+;U~Q7t9\?zse{JBBM̶M.:͢)ly65EgmVZ*Q#ݴVhV:% 5%gWQūJv%D?P-h{ܹe](H;@ i3r䲳!M %xUs\u.-a͟cPsWuy_Mrӯ ӯ+ʭr+X}~6K(ܩPu}Fco^ 8B94wL$0uޓ}|5e2(IERW1Q^ ƃeԺ{y0)|Ux2!H"+3.긛ߧe dC;dɒ (ѐ 2ɦODEΘ *>i-T0N{ '& gD(@|ְhh"O2c E99*wFITrj(l2SW22 56sH7PcNhceN;C1VHU`oY|697b_ݨ>"pݖY8Zj,4p!h!!va&Gz~ y=S&o`؎Lf"OJjPu%^vV~Q9*%6?:PJLeQ|d7UP]s<$&-hLJf'sd @[e-K #淖*>7dDBLθvj^D4Tuw1  ڸL݌ J |>' O*!ak '~5gXQE}g{dr)Gyz3Cf֚g+B:GC*.H %pQ!2GaԊM3 'B#clB"X$sb tXp3RG3'mkTSݺtz픰N~љnd"%ElB<  h2(;TD<+=|!|M0$dP@y0qsՑJ݀cctDTΈ+IS;Qͯ;=VQ6v X,qB/Ӳ`d.c$`$hc3Xe;1wh/=LlcG/Ƈua*t6@a iF1߁6`& JFF/1}L?[][sk+|{"S'(~˷Uv1BVJ2(c{f顮_9C/vcm [5]B?uu|MRN6rrT4{s~N0"5.RK/2Ȫ(ber! w/KzRzG݈!\2g?: /~tUKvU|udQm$XIyX]ϫk__K'̧u|CsXq(Ѝr:*ۯ}'7:I <艋'Foь="ϘD hh8 G1.GTQB啟PI持( PD0A J&`6(ç $/ K.ڥZLl~'|8Jf@|_tCS-%^8ddixo!ᶍPDqgH'߲6G@UFbsan[LéQ qu<zr}wz,Gt w4sf t2jNF/VHlоC)񜚵/Bتq 镚^12L Q:jC:HZ?Zܝ])C7>"o?޳jAju:W;43p uVq!̞@/uū#4$9ۗSr&*5F~7p(꙳GWm&v]{k~{ufNU8FczLg^S'7ڲ, VL莛hlil諳P3`.I+ cPn؏nu Lz<Bs535]sA> \]Ql0ONZqk㥯]=?K.?_]_9(/&l?FXuMr7loI?͹jeyxR?z] 06jF! F @rkȗǭm/'?l. %^Eˇo8J|uŵyV<~4GKgRԿFeq6nJ[dPE놿{zPX1Sj ?cmzc`M|,hK {rxF8a,?ㇱox@ ܺ7<~ ۆb,?albCQLI+]ny\$tOM( U~Z7$m5*&[$9 怦.AR;^OݍC$0oKgwKKѸD(8X ~8=DIx{R,'e;Pc2Fk^EE(lN7 ,ԶuFpHq1d;!9t8hb tnfs1'GPBbn?'O?'O?0