#!/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=6ff7a361b2f94cbb182d30f9a374e780 # 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 )1:~W@3(2g}TǾ=USc){~ ##D:ڗ+v`z)0(X# >Vc=hԮP'] ;49 <U:+v1Atv`p< ä3PQ-vy@%uP:H;΃ H* Ӿz ϥ+MX6UGUY/q\. ꤨ-ZVN pP]jC )n`y $u3=^ׇZW1N 53XbltЀ1ώ)@ bvZ9KC?iooUY\xo5vlS@T;Suw{#%By/k_S}^Ky'3Jso;|SZW{v¶1J27-鱏zotԿ9ri3v9icF'EИH-v.(Cf+J|q$1v`/:?@yJâ4 )o+O\7ב#cqҀH O40;m`Y!*)f Ev?tpN@Z5fƈg${uG#N ]F'!̲Nle.<`,HDs0<E_Ҁعq8*ן{.fAr|rd a%8R(rw//n+ 9bfD2y3,d9ߩ,)h[q8qa.{훽7;҉! `f& }ǔx$R E,O#4I=ALX' P@TY`(ʂG$ceqUO0g̀iRf@$93y=:k.Iϧ̀ifҝ'΀i2g\HYt`GQ,ES=5ٯ1l_cjPvku 1h 6oBC{6,a@;sYqH͠Uh.ܭ?Bݞ5j\+`v< ɪ)8~: $F_\|6@!uN;)1MJ_67[lb&eqn^GX/v*rLH=3&U512jLb쫃foNb8X8+l^iQmoW}C;f"`yG)Ѝo`7ygd3- X(-(STZn_R 6К5|y$ou5|I$:IA7EKi 8jq>~& HX0 :wރ `/2 Z7kopxu O?~n{C kQ3 IykZm9\VZ,0Ѳ[K[7׏(&&HcX6(Ƀeuؕ]M~@A&$< ˷0cvcz >~zÒ=̴`\n<iFE<1n0 `IɚUvfܻ2i|7dip %mL9) (Uy2XXhn6e8_gb+3v򖻣t.ca)_ c$@K=L _JG7l#CiIA% @[!?Z[/ ҵe7 4[eI =(q?_nɏu=}($;#FoBpvgƅx)HHC=!-6]bpj^PHB$ V`‚3RrnkrdyL;u/gMKoO{ :dʘ)7p8(-_5(I82sRly]"UO,}͍.4_҄9Y1TB޲ n+v*ՒH;[J JQ6ʡ{v,愧ZDMdQ~:_QН?/Ԍ|X]P, 5ןr7|\@޸s%xY̫8tbnicIѭB mWv2h!hĺmF݆[aE ?ŊTx\ Db畸=\5_tPKKNE_ET&f"][HfgD mb;{V՜xydܚQ+wlV<f'Hh:ןHk"O07j%g|J$:WRș#rm_]2hg[2R egꢉZ^ - &';YS[,Y #3Xjn $@G*'ЭP7kjFt~zrIfz"s}\()Vc @M@Z fG+PɓFtx0P(HFeVќ,<݈#j,i `8VOnWrȱ+KHӊy<̿= #8>~Ű4wcg aQdDӒyozwѐq@3/y¢掌Tr+h>#/:*Ϸb,} `}oo.V/ ! jgJ_ܿ?,c_ʨK8{uP/;#\2;ko겜cL輕nqkI@ i#uv+Q1=$׮mXWJ8CX $]<^V\QYc/#pÂH gr⵰iz0ŅZE*YK&fu3{Q(9ɓђ,PWhmRETy$R2Էt Uz^m{KMZ Pȝ` ;``셷`ɴԑJ/(O|Ұ拸!KkgM+37gٻutd^a n e8{הENISG[<3+G.;%ų2rn\+)}i[Ƕ*6Nd- R`UӪ57$ ;Yp᧖*rbN EI:=]Cd:a9Mg`svaZԂy8F0lUKN450+.?/Heແ>DOq^CY|[Hl!`%;|Nz'cowԇ#\;2qa]:<0Yfr~AMʂ@ p4fM:K G.\J p̖@n8,_6$O Fd169c0Q^ol1Drpb#qj-ƀYYs{* (am[ge0Yz0^*vᤧ%bʣ,QHJm, v _HOVO%NOXGS95';!A:h~hӧ_ץN[ /"te*ZSz;x(}omhqNJCB6T kWȬodD:Zi $3rXou!s:6PF خBOCr$sYSIH)62KkB!A_<\`C6[ xSAPphx+-=꣱.Oˢq% ɀa0=(/ t^۽K0@}Bn}oa0(Q>6 *~z{|Yx}t˱F_`{M]S9ˮ_mQ 6?{y֫b9tRUMDr9™ӝ`OvdAk2y!s#0\? ly=GN5o3T{oG ]Mi3gLv|L.s[9XivV9=V8;! _40 OWwp2-zS7U2h.ZWG93Y uCBB ą@Z9-NÒtÕ܄;jPG֠g:Q1Unec)W?n6z [yF+#fV4yI [Wjʩpp˝;on@^BVABe*S2z+sm)-l^Fo "Ҟ* e"A3V#9kx#F)krm쯪vs>7wZ|.?-g=s{Mgή.Q}F< 9?zŞ1K}*i WZ ᐬ,'+Iox!c2[#Dhk%L uzO\[nY+P6+D he)Xcx>nᨀ%=Jz,Mv`jb<~,va3v)]Gplu'j%ZNK5}b2k=1&Yi7i0PefzG,*Phu7tbd tZ^ Ӧ4 Ӑ]K+9xle]b#QMCN9 TOzs{Ia* S8Geβ[fd9v1T$ m24[,Mu.!׳nՉ <6fpUtPs1fc⛱1Seɳ v=q&KF+s6p ڙ-JPG^h,;=~CpGX cyf܃ [#[y#GFF2t§^p%5M?ORPCT']%#V`K7U+x6!!0.I%>9j0ԭ5vR%lȰͰ&Ҿ4ʊb-݂oתֲjY$b_€,2٧S$9vázvƾ2VH,_?H_@tpX|Qר S1DO8XUI:aFt>eZq=4z0 p҆ ՞;.jn&'qzQ#M8-)pIkc g@LX4$8LCGJVvvxco=$uq6- O*#P84^0p%PvKbg t 1`2*p+MP{y^PwWZy\iF'8nL\6L3 MDR0B:3:4JM{|*Š_ތWXi,/2{0OjU$R۶ D=s7NJ|ihdZ'ǏIw%ӱAL1|?u, (H$3I~YGXX #W,5odrok?ZZȗ[fcU<]aNCY67]c](?}hG" [ 21*_lr{odFBv8kK [kyaɫME%,+`=9 1 \2/i..R]օ5oiX1U[#w4ER4CH1JGaFsbGr%&UqrZW\ Dd5NV^NHE XPj9 Vt3'Yߥɩٸ/1yrpmR'p5wpGc9v$Ъ3ōogLC?,@Jnea֢qD9e1s!p~t&I 1k;<>ϩXjD784K,eՆi}Չ[ WdLI+*$*fgVLT2.Teχ1 WߨtrVrJ륵?sg3ϿiG! DV`ل8!޴ CM]s#BσHY8 {S>Q# Ǘ?qMu?L% ӵ[D6,*Sغ򖪢O˔jDdx XxSpX; +eW~~)r$=QFbL񆯀϶gz_ؙ酲~: ]e7z Q430čڬLjNb~fޤk@ jr 3[b%z#cEH+'9-;ܩf5/;"X>Y,X̅v%0Qhs,Ii0\{2d9"yd:*pσUȄg3Mv:"@lRMT^vbPQPQb"(R&=-ͽ13~IQ@H-SIp,WG/Lkh#4`SZ*Rt7ݶ),shۃuxRS[E{Kj{CeTyGk|/&c;R&ʎ,v?ؙ4k8 zzs1a~5Hg:2kL-PL#kOOTt~1ċ$'ƪ`:P }"E?}eF2QYaɈ466y7Gl-wj (ր~!m}͇xҐ7PnAjĒEGM6{eUd}M5MZa}-akZn{l,Kկ%K]_-W k]+_(4_L@0TQ+׉#H\tQ( y:}a@]B2xckx}@҃ n?M/3 PžxWNjaj dX1zkK+ f*r6X:kڤnZsB ibִb܅67%>+ 5{x WuTVSPز gL phv 3x |f wt h!PJ8Fj(&41oVh9VͩQslrKo+Gio&XW㦇 ֘,Nga-XU~Y82,ԗ-`gLYs d͞u8hH˔Q;T3_6%}a,ca%`0icH_lD]_0|yNz22s- cr;ELT9C/E߼L;BNoΊlnȬE+l駝Zd>/Z*L34οb-(|oޛ&#弑op);uGx|p ^\- M?!B6[ԑnW,ޑӊZy' 5~-}4i6 :8j'Q ߈|Gxд-5I 5// TžIAdO1?!XȢ6H mGdљ;)F0˽֖GʘA(-]2 I4OY39m!6y/Fa"N8:k{3RVʍa:1WS,_X䦎IB;u`%Dn% uqħPbbe\1o 頱s)†(X-p" eDTgjkvapS5 DMՊFS3(S㼚Z7rGwЂ@_DV%f C xaɷ,&Uie`M9JFUD1$pLA-Ui4](ƈ.=a\&/oJ666lU,"P[=Z=XY"|NKԸ:ArD;8A77_x硰:"mgB/F<%N,a>cn *nNwFtg82)!(W)zkv@%Qb7B卬7s-[P㦓#1+Vrl)Om{0") i[zg;Ũc+cƣK%-V -'(1# hXwA^# X>|,P&F }գ2=Ί.+} S CItœH*S'ehM$ъurJO/Y>gknf@$YA&1;r[7[۬w鶝tAMX_#u^ `˂ZI~j]N|+]_?6o"b\ ŊZ%;91cSo\*b9ܯm_1o?Xc].#`E_DgN>lxwI^Hk]RKjd7|VX&CÈ&b~>Ov0s-Zپb2>g'xS^ b*gg #<^f8d:Y}^T|/4|M)_nQRO3`,S!c(SZcwnѲ$#Pl7oE,JW;EtOg j[x^RYv ;hK,8{ysZݫm|߮RqRjTIkBX _*B)E5 r=` ^WM+|-p_d0By61JCaqܬ/Yi37/;Ț֫d1- LD <u ; Gj?nh} Fæwp%F1M)ަMŲGG+ _ 5#(@]Et~89b1;uWk's5wahcz8@-tH77U72cU#rhiō,)d(ַ"Să~4US"Vrj(d>3ܫ<Rc@@uRA=D]KmYU\XuRITkk>XW@w/LE+Flm X~r\06TY$I]N&[sVZDпp Q&٦`L5aAO<72xh?nD"bvԼĢH4p*mlPٺ%aMDbRi0Y~oCS]`qpD#uT%c55.CC-w4S"R{00z1oI20o%H*R9s)ߧYl1([@BSd[xۊѻe S?Si d_g1nvNW> \aXu ) GRX`F EXjfg.FrCБ: cDAÛ64el$cEI9hQypv8 <':;[>VΪXɦM5=IО6aTm ]vbq.aᄱ37X3+E/FQ2gތ)S90=z[1׵%llB|l,3׼k]J q90Z xMØS [,9 hQO

:T9D ):OBN1+ nDx+ʰ' 5Mo |RRߵTj5Ga]/4o`u|KuZKT j|"ӀyWbgJ=!& f3"_`[\*-n2~22C{&񸙄Jj> =5Ƹ Pfa4~m4)!S,x) C %ҕ-۸{'gGTq%i_MMo߬ᚩ}RVlhJLدkڶ[{YU=6Ui{n3Oao6i&0r#wm+N1^}QCCeeu6\g0sɭHƍDqs+0,YWdYpD}$FIXFlNa2HnI^aY9Tݯ.<\9{z%`+Nr{Q;x%\nof!jPZd}ufsPJxYM&0 򘚈nmnsF&^ {L/k.2 f8N-8P= ;cr9Jz$ޥOܚy/JM&@)Qj/@y$$N ۝yjd_7Q29z}cXL\SboSBP%Hm8' g*dL"}r'x&FlB6b'A޼>⻁~rjjI;VżԋpS{&kWڠ1})$@D#`zZ&|=V5Ae%nVtH+ 5O};U/{u /z߬"W CpT1UNZS&Z-=TYJ+! W#ᣝ`ɰ}ec@Q|QfHT62kBUȓKa,qQ akbLp#s*4즖/135VX;!1ETBV:,JbD~ըEPMv|՝QA^jh o*nkN7W݂bOZIdӘXbxf%,nłg@ "0LX$$dG:<!G9q6]Y5ZhrJ/yW/xқYG ɠl95Ҏ_P梹G#VL0yL&RFFYǯkHlg4Fh:#W[ڢML4g|DYk:iW x-be6ԭoOD.f*ړIUn#gOWuźrT=P~j%#F;k̪A6ύ|aoPGzӲam}|?P!P4CxU !ă4 o#_J4`#OwlDn&햌M9 ;,9DD4DžEI%+z”2jEQ}~`q$ _ek5g];{/O9~K`~</_ϟIW%~ٶm{cpuU񓛺˽"k͂09vR"Na#c5Hf6[8.iM>ɼfrLJ1 3*wD9pHp1Mb]x37T TBe}3,[߼[,Fu 7%:P"`Zo#0 Q33R|vpl-v^9=LZ!I2p!;#.{Tm+m%.\VL_=U! 8I}KYݯj$ŐV %(wamJjXCh*=TQ)9&k:bpInIqi7QwHZV3 T6lRY) үVܰ*pc7no1xt>v$%*n4c-I{ur#nyD!g DԑAONI~j̸ɯ׾u]~$qo\~zw׽o i]nwpbU 3V4h-szѾ5=믖\w"4'O{|?s\P̵>s\3̵>s_GwݴnWDݶ12i=y@>X[/q^^+aAaK^r7fRՏ#dd 6*8 u ]:$Vw&{2[Bb>\ ..k#@.\"4/d):BGǡko<x]"Ԓl'IqtG̮b5$E}Hx27\I#_,(策ҡL˱I}(P*WQVhbq\zc<8EG?9YMҺigIrl탄NIBL p;R7)H7 HB{n?˽䠧:$ pм2D$FwT%P(iáϛd Z3ٙO)3I|iH6}$֓OM7{t}x)TI*ǥOuf n:i'r):GTHc(IlH.°iD >GtZKtKDU|lL<ݕ 9Sseӣ("Lgy+pBFcbhu4[GGՖLmur ˃SZ忛O?+HPLOꬺ]׮!2X>T,&P/6@r5#%4>Q`6GHҋ"KyI/Q.\Q/0KۄjPqG yy@i!"6X= GP#nE?>n/5dw01%exJ4laq \Pv֥.B 2f :oegsje_0 (BǴ- @?O>)Oom1@sK%dn 2[` 2Մ6]J"N&_XC(BGq!;\s!da( Qj"~l)\I} ƾ^ 4td'Gl@947Rn]tʳB OFgػJ*1r*k"c*C3:/jחGSpM!6"%SbHHu&ĨkZ!{bf+G:x6\^ `_NB,(pweK`|6* ʚ~Gt?lF ^G/ڡ\B>ʉx'4a *8Q فYׯR>o)$l.$BesKr6!i&hUVF(V{86%8)f3jU:~,` VzB (q2^T8*Pu02!@Jus6kEfes=7mHr7R3;>[tww4mLն0 %4Y3+*%I' 6rQ"2Hk5E2, Rlx DƲ4j h xC6u;}U(KF2L9I=dQK,Z 4kEQFUN$9=!a`R3D(*R4@WF&52_ ;j){lcϤŜ1c`ÞZ¹cyp$N؄4$OS{DN1끊i|XiM-z]&c̅K6qQ988+gLJ7ceeZƷ)m`ߨUkH9h3U 2V_o8N9C'^ZK4v6V:JRW(t(7vL}rU]ʦ"3 )v%Lc=n*d9%v^Bd > ,8fXJ>Q<#h4,Bp|| R wo-mZlUϸg%H]"L#,2';ˬ*Jyr\5Y.7nL' ;!L(ȁg$4Uu1F%/~!" $UCYI>ϝz$*c$D@Xai!N)߼2ILըߍO_rx@ \=4"}z$?O{`wyn]>s{n=s￝iCQzN $ҬKZ%;9EW&SzV%|sҺD dp$BdI|1X5ǒA`'vKfѾȯqtL?Ύ_UUzeMQ(.)S}y-9KNϲ&<[]S$1bN`c4~ ^-c~13H85p] =oVFwd>vB0{OUxUe*QI?VYjxp^/ۭu&ȣkCkXtmbE+;/a= #$VX ;όRV1{Ț=4AEDwORmgI42\)ʏ.GzD/J}R\=6Kf)l4OzȸGqM&lz ?Ej9"BI6VA?OX)vwEk֌3{flN<_>dR)tZݳ7~3 ;?TGKJ4cB>=ܑEWsqϟNv}Іڗ4xJbs:ܩֶOiA |P4!?+ ʅRP\*Ki_nrniN,~DH 8D7Ba"S.#Qfgw~SfS{[ZeHD2b&:~`s6#{$aA9/ ;0n!{'WzLηN<5ʛ քS$Dʫl(Z-}ikB*PvrX?|q ud}M]~Rt JuBUY 7 F?R!3:&¢ f,t;#Na7ur_{}VN?lTwEq'ad% s`;I BzD-jo*B Nœ-)%FyWGBEXACMT ON_WΪVוr זx{6NI!_)(X)/N=$cv_p/p />27ڝ:᠈Ly ހ[l{$]\_>T 'MnX9EſtFxvhO]i-\_QY.RF)+]p)r3OAc*y!QBU/3_jbS`3yR?aA& :KN19%LJ'3pAsW+Q7_Rgoh]k[Pb %)oGp&$.TɈm309[˭u $7!іG8l&x6`R%n,&{MCv/Fd{B$vD RãY:RAPEo$[<`v%$ʀSVu")>vP=9//${S_/>Y(~/6֛K"ef)qvo֛YX+VDh\ZoEtX"ZkϚ'?-"py(/t$m vOy0y S&tjawOҰ؞uQ4Of3,?Ɨm)eѿ@'1;TW7 Q[ &`!~Cd3F &{@} +'|'"umH[Xq*0N8Ղqv]g(x%)f¡;꠬'ѴL%.KZ +)q\.tFIC9DpAc+eh%xYhaV 7ٸ1vB7~Ya5m(TSShBꌀ$^X^uP'#1s8!)~\R"S,yFs`e&n'(@2%GAĤSW6xh> 6}s;68Vu=G3?Ю yƊdOfFV7M`/y,N~Yആ[D|Ki+ y)u-#vʇ d-@A ƹ  ux_s Ïj0D8Ϋ2ɆV 6'wc+ꢵ1d@.DJ'Fܢ~4~mjh󲂰wLAC7I5/(8NRƃ*믛hY`e(6\,SoQqG# tGa .d9Wmd]W0};` v{Lww.{3"97#Qޓ;^4Š5%RD^ʫ@DE- OU85ƛdpX Qа4 @1pGgKpt ̸b=sOXtVf NE;Rv:\L<7<]4jGOH0kq\ORfj5UjD=TSCPLXJRM#%I~1!q 1ٺR2pSJ\QdkKkF6-KT{D._~I<84ng922u{vasmkͰdkESrsn)g#U>wo ɍ5z%,WC/~^M C{x:.9;MsM:x$—ԣ GjN g8;YD؆ı X2ꔯU;蘬 Tt!q]eJ6g3ٛ -Y `9f @p.,aޭC@j&uW/XG/*׋s~Ms{n=[}V+7#fÊC h54F1̙8s 2qU7n (uKv3jۃh[AГO$Oe_?Ngi%i}յչ{|vN_(lYrrp"7`H+Ppl_Uk역`B(՞SMoqaiuu1|+pDk}>> M*rX.y\A:qʸ|=Ԋ/l=ރߐ+-z*ïUx=}{PwĹe{u='Ut='Eïs='5{r=%{q=,,Σqi#C_ϊ-?tM#+ĝs*?M~ՎO&K">`O]AJ+^M:̀DbO+XiDmT?ݎ8L]w 2EZ \2X]~9?)Y3Y6۾=n'*uO\*4nf-+IZ)pÁ@~!xqXGͫ~>DLƘUt1@'N0hE hg誥GnCEECO0ʩ!s"K" 7j!04, ͿڳA@{3m@F$d^ǚ(GQhH~_?ߋ?2ۊj>zԡvTw?o\2bqQ,<ۼo㛙2g`S Cer _K8)Rd!T~+N_셕HĀFC'ѢDh,w\~oAQȭP'zLmw߄\i lJsZaC3+GS{~B;A`-Kg\51xza~;g cH!6{6Bw>t O.XWNtI\'Fh/#eCD\$L:$[Z; hA1xa{[#9܈܈u$"`k+X(scyT/ZٝwNqزڛ@Qp4.t 41ػX0!1%#ApC*T g;M*.a