#!/usr/bin/env bash # # Copyright (C) 2011-2020 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=4a5338fa86407fe7a9664b4de4018f25 # 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 >^\{SȲϿSL=,TAc Ѝ},6J%EL '{?6s/ F=====38#ƞ;yYyZ6Ɠi*ޮll1#HwYى }F1x̣k6*c]/N"r\69rvtFa4k쓗LXw8O4tX5fGx4lמ ?l|?c愁a`)OI,6J,)ZLb־ 1a,5b?dK+ :MyX! ӈ&A# * :)[-&Gw"6ygA~2j]QodS-L X2ia 쒣!BZ9 4 ΄]Qrm8%$x42Eh^08S.Sdfxx ~F[owZǁqr:dN[mCkw80ޝ{hjv?2@7M014CC7k:m{Rcu{C1Ό!{5x#3}:;c ?҈ưhw?{prmluƙn0*?!3ONqw8T;l8Mm jAN }eOЉ3j>$WS9Mn5O`ڽi3a3|^M73Ii禎& L@g@ߝi?4z*,hlB6 GduSYXUaZ<Yese]cݖ{0*,a"AC)4q\. h5ZVffKr0ӐfCkJVT)c'fI3}#o\AKileJ`usR g 0O )Υ.OZaj:} U+q"_YXe8Fe%chʲnnvAPg8rm>v^`?.P6VoV ;@l''P $GG ިRq|n0].шm7W' ev2/pX#,lR6MQ?ΣqS.<೹Q}2'Y?E̝>{g7O{b`b&F"є0 #^9;@[%LuԘ#6B4J6JETN;R{RR06ߏǁLѣ`q@S`ݨiI;Mv86r=t*Es(5y4 /6^R Y`q֚x3n64NVbN`ԋ;44҆yC_uqEJB_`->y5` nDhfۗ^y 54DhfjuT8Nϻ>.nA |&+jkLx/nk5Zp~ӳ]7em8 ݡc|{y3Grܸ8r CDvo-yAes4Þ1@hUH(`L./,Ik Dk^`fW<'"QGؗڙpcn!TB7Q.N@ /%P)4,ta(>I_!z]Wxw4^ YTjl.(V]O-P4rzj"2gobbʿ*kqX2N6AffWP!w::܉˥y3?)M`1~8} ;҂Jס Kq3@RV>nlE)jٳ'iHM,2et ̊&dG2ҋݴy)_2VmcsCѢq([.F^AjC hw'UΞKFk&v$,r,y +rի"ncS[NA}A}x.'SxHIA3ʻMuaPR— -FIJbs Y @[I_"M0"XR-W/'4mp*?#uk/)y]SfD1Բp%11fqbCo E]@ae-[>֨4_$ICHaLݹ3p\Py/aD 6y)7 n;HI&wVnT|-W&bRcI0[Cܕ >>𞶰dD "X/_n\V=XYmT1a^XQ El# m Tl"0d8K!U2;+UՅ))F|HD! ^A²JR7X(:?{f|JC" &1?إepV#/p5źc& TåŴL(系]KN=SfdbH;Je-G@F#$xTGvSWr/aW m7z2FZB - 69 $Fx`Z׭7v# *N $T8ࢎI_Y`t{KG20:OC"Q郛HPSp7ji0thtڏ8bb,dr)`8{A*o,KxHتr }޵ nK3:R\S$HMDCJzq3YҧM-b> !Re$d j.xTҺyEdC|:Kn5ARz!ۤ̒șX[=XPABμI+\hx},dSzH\A!?>N~.!B$FѝwX([6: 9S^0kܹ-}a P^qӠqF%)/@G/fe2VݡT&ee :*al\V?cS?GEˇ|r/ kbCȷQ!KȻG9VFŊ$ḻ'x"mzwAb_ғZHي.8òEXf[Q{r훴DR( ܹ tf995%g\J΍p_Hg7.G+\Sr*Z1D$+1wŠ]dŤ$:;04 /zJ)˳,e~Jɕ\|@KsDYgi"-2B4G6{LUg)r@M[m=uC>VqF(g2ٟ] >Q,Nczku`G+[FVF*osQUa`,*'+Xqp^(Հ/8Xe/dRȱK,AHH`&:Z}r,Y;ӖإbKJkZf+2xDt~g5Kx(qr\vRlfEr7'o|y=)f?O]ްFg03 ȿ6b4qU&Q7!/y)(hq!9c2snoѲbԞ@ ?ͬߩ#9l\~1ښ㰵~4ْI%GFG>rAi/dÓplyVA\n6 'Ml. 3#59Dh_EH0#\Okgsh0B|BMeVքkj ^:,0(AқIGbyl^jkuZĉsuK`9}BCat/ 7gݞ"NTQ]mf>€WtZeb-L?5o/ca9Et fOw(,vP+w ̍u L((l$S6RLW[̸d eh%nh{(I}߿ *;xXcYܘ 93. P݃oږ P7vmƓ A:6oDC(8\%N5A8/ZbjG# KP;5VU.<}gܷ"M\}?b_ vȐ {N4 H[!DPIgpMzl t/zYܚ1)^_#62<:N/so~# :0"DdL5w~$hML<R&@#{8.N+J!~u֣dH됚 ^dNGZZlU2*ڨ3(JL*e0Z#p[4Kwzp\YRPUw BxSB^x]"y6}<79g|ҋVNT M-Ry.VS2ܽ? `9d5,5ꎏ 2H*miҞJbG=\#34Ȇ*2+ TBdH(CFE4uN($)((%Q;+ Te_O WԞ4 iĝ.[ZơNy79x6el\j%jIcZpׂ=\]F %w L kzqCjWi$YxOv*:jjz m¨™@aE9pIlM#6e!BaIXW οJ銣V.n:0=Qc#N&ḓQX$KngC Gdb>okߥI~GQXDh,Dȭ<X 1Un `n9] VKP&UXdPziY@K@^HYBc>>Ή(?|?E%YM9zU7YRv?ʝR:%" xs~ V5 ra iYYeߖfҤP&p~^s7U.nJ#&#r},KrONWXH8ihR"Ikh.R(d(@WtT4q?&;SA-c~69 `zfB1 |AxBڇI&Wr:3Iqo1#w#l*?]$qQi#`ꆳJ|z{,dkrgw)ژI騒ڒ1m.B{iTx}JR c2Lꬺse.N t6o'KӶuM@e`(l"FND6TΈ+IS/ FnUdӺ&ca3`sZ!f9Ayy@i!"6XB$ v\q!ƀI`;Q.x1zט]xۖz1]Fh7r!sؾ?aУrvC+1^uz?ʍDF9Wn [%@n e @ .8òqtbfd>hĭI?ɐ^]YA9zS>LR+w̒Y8x\t ZtW+i-a"o-*SغTѓ(z2"jPAq,2Op [WiuxS՚8#}7~Cs 1*3iaduB!T Op/&Y+eOwZI.`O6Zۀ=وq};uDO ^\(;ywZb{F+(ȨbXawiQ<R d"J,$2lNNY{z؝%u1ƻ'zUikd<2  Քab$ʂNF]mm3oX}Ԃ|<]Dn8g{뇛憛}KܭA5̢#UmɛU^y4:Y%67H_o]967 bh)5Jt;X(^դ^T74Ů )DZM:^>rE2?1T[tvD"e[ћ;[sDR[7П+Ooe'2%q/C1I.im'9]Zu5EXQ2*ٛW,f]X6TȹhR1kVr ECGID^{!D*'4v-']4U+7õ- rPzYєX@[\ʯ1],l:| jLPPOʡB]faʞSsl~Ko+Xkwiם~: Bpǀ0|{qі&b,`#f !ᚙB^B͞,n|5͋X7l']V9L"_^̤f\ $[ ߕԴ#B2%Gf 'fs?|ǘ[ o8֒S2>u1x Mf}6-IӋq61Miz#3_Ӳ&̀zp_zjС+^H|Z"ƝP7R9GE>& ifBs_7|Zn->Wn_Wn__˴Ԫ݈nEF~<0Zf[6wQ % G vwZ)qS{4;4Qx~ 8,S^XT;R[@>l$%Xި,W 1D9^߻{OyC|դg)++W`~<(K??_=O;jG\]C>r^_GK?n]- ('%QkK?ObJr4>?mӹBOB7jï@@%%p DT0UbO%Ti ^¸GtP^tf埖ZW?-qL_}Jucy $( ξGQ\Hp61ҢQݺT=_"i+ZzZ"~OZWhӷ6|kӷ|C*q~<ǥ""TP~5'zdb$ jaJ1#y @D+DܭH#4a1&G\Mˑ1,p&U!8{x҃NI.+BPP=U!:EV%l_ըݦrO!5mi/GfLS8;m lAyíSG,}n#-ap W:{coίe^pLaHa(՜mb.z17 :an+ jz]OskI=Λ# 1?gZ`d0l_u):`WSZN)o{!,Mh.3ZN|~^]%"D*mZzb"PTD]T Eas.>oMK2KAsJ]xSg8DLfej]&CUQ)T$h`R8A36S>7?')/2F݌xYrɜ%18BCcҩM"pS5"*XS 4=eT0?Ыůd!4l@DCl1ji$ʶM6 "h;p&yP2[Р79LPl6xn \Hh] Q XיztT0|um lķwu_{\8IE{tI%9 ˽2m fԐCsP|-y"E_Ɇx i"E=LN|E y,+4(]E7*S5$ c5#:&"1 JGȂœ(6mDE~[ ԅ"}WTo}Swvq.aecHEa y YD)SVh"s>OԹǷ䔧svĦv`{ܥIA,q(Ў!Ll¯Nkw]yQN$=h;p];h閗%-(piTBhQ):qa ~# 8Rq 2fGc>x;wt҂f[CXc.؉zb[G@yQ#?@2ƉTXS: [O_z.}+#kXoUh6NeGO{ob%$xsx<`Jx4R@v^E 2"JfW/^Eڲb"TFZ b;s(< 9}vc }iZbwu/Nc(p` Qkv9?ޗAMr/UEQ2zs¬#A T .PRi0h iYۃUnl1M.8}H1\e"ȃ\K; \8Kk28EXN`?^\ptX.5AeͪepxI C\p'[.?.H$폠.J=-R֩fo 邧@dش򕐉yU"~S D }Z<1`1+ޢeu$} ܧbŚno;4¥\Y1[8>:K&g>?K#Jϵ g\iY6UJkxe{DxWT~O/Z̳[Eڹ1lU5'3__dhA:B%(7JSTڔer} h{'5;M%*!)Asd] hqZC}YYphFc&@fzVU"rq ߉8|nzhqB@.n =#MO2b &L[.oA\*)|u*u~O Y"t$GCk1ȌҋOyzXjZSSybzOPpoPOԱ" 6muBcVtK fߍD}(Vxz wV;};#C =wb}t џhgXaa_& "|}M9;L<[=U64'jKh*RpuV(2o w bHP y;"{|eIZ;Czg$ˤYhAPH ɘʠB( !E_`ݼDO:] (%p꣱^jEJdS4_0=X&h5wa(FFa=&|h+TMYywK2 m[#}<'xgBmWrZ7W7jM>9LCA a0}Y(FsByD=0 V6GI53<{ӳ:^']a<"R{6'i9f<=$Tsg|P7 >]eOK٨t'`ޖ񨒁ܴp= WhkV`` P+wiV!yF!A-d2 e dD1ZIpShe?gJ0-G0r[ࣽږc>a+/cd_`V\Ȧ̐u'VH eCl|elQhz=`!zȵ@PeVGѫR5jDJ^e*l2V͵T)Y**uF)f|v4^ P3΄M@|vVwp{cYOoo~-_DO+]`!V{ y"OyMaA#ݭ`q8mg& キhMޒO5GXS6_ƻ>-h.I3ZnV4(I3ޯgisz^R'KĴ4(TUcWzT}JK^ox,5/%t+?`W[cQM6Ջ2$åfI H! $>2T 퍆G~Jd Gr[aY8>"JSj/g/}$0[x0߻g"u("v1qM٭B<7O @@rxq5Vd({g%Ѳ)JZ|Y?m.+/zhmn7bwI2CD#\&>PDo9D; x.p3/SH*ήdNvOIX"`K0n|sք Qu:5ueps#DeY^A=SWhq ޅD3e%%L ۺzJC1w_;9ikf}/hd\ȡ|AVYi3g9VͽNa>X8_ 2:="׻ iZmhށh߅+/twxu 9q: K]x ]}V8w|S΍Mreԏ'"іg-5vn^-XU\%_ m[/ߟٶa|t|B=y!6lMVb9i-SJ "jpqkvqU6F%/O%p1T(,www8E( FxǬ\^UFWSP8īJ#s]8BYU#T;v!nngϴN0.0fƻzW`Ϧ萄Y䫏N^_6\JWhI\J%9˘ s qz&pmd[c#[`SռUZa>VKUtCGj!vPtC4s&] `;7ښB.bB •]8s61K8!)~\R"STxF^Po,y'A2AV/Z?5!Zۡ4X|f*vFIX _R{4ӆdATjB~7 {J 0!2bZظT,M(Q{28nɱX( PA@J9) c1J{"KdG5!zxHMSQIWk= ) )>- Ѡ6bF!Ԧs\(XA>ՍL‚I MT0~P8I1M. vTR&09PF ! 豆J #Ѱ#Gc!ɽON^v>GI8pO1 T; ̲Q"ݔÈɡdJR6ajb(bXB1q L'mr/ =$+WJ8Ĉ-;!f{2~l*`5#N3dnj\{)EqZP,< o?MǔEŅ $7{W|qXqEG# Av_*BN ɜ^4 ͪ:ׯ.j2юh1~|x(;NB̰ &1'hXR 6\&9sSɚcocbqfT7o#\a^=0/xc*tQxSAtEݍv9ٸ:C2'- D gd<1`aE*&kbįhV &>/~G(b"|7@aex5yySzđ2K7dM7P*~M(sRWpV yxC+Cj3Tn`)@؅9#yJ%~Im2ǏSo9Ҝi#[iE3"  lTZzIޣKv)CN|/GBEbkD) ;d4 M0*%ߴMh(%\ =flFEƴ2JzWzu1CT]%i!#i8Sf}wu|l4d*e 'Kp?Ŵ9˯σj!=a&Ȇ$*Eb53uνKQ\zte!ò0x 'b'ylDXy2>ZH`  mqyBZoq} ?7ۖư34%j+CIͲnVS`\Qjfc/E!(Yg5P|=́T&imyV܉J9dJh8Sl$CvBSxS;/^Q :b Ltw[}{>F->999@0JCB eېeTR(TּdP,@耾`Uf~@zv1?e-fآڲD8mL} M77~,0䪙e2V;Iq;>nDTHz-=," +&Y ̵ !?)5Ls(>t)=٬r SOm̨h,oWUklQА)$ʀS W7M ϻ%@i|f/6l$T+bڞ;\\x&G` B ;=+jtLL|5{i4kߜ_N,IFV6D]NY+lG#zQݯ Bk\\Mr'dPӔ~&}:2ES-/K%WBD =d^)`߳Ϝמ=T¯Y3`xk1[u8y}XʤlNzYu:$^Rʾ9{ܑEWK>aɎFil[6<ٝE M~Zj=9con$6z6QU#΁XmfbVig'xtNG5pG3͏oj֩!'gOj{ܨP_onnQ6-|?5kLXq >Z^72&Q:ı;BۙHX?f1flƝ8%W!p&C:R >b'xW-RMm%BɩseN g^󝊴Y^hlSOjp$9ۗ9'S*5nf0{IKK 9ktfba%{6éT$U׻#0̭8 S9FO ) vbA7?&ue25ڴ/N6MGf~}Зq 1x3QBm? {Tb8oq:Kƺb_/O ^h}Low[WݿC\->7\soO'8]>_(#(=/бaN^'h gAHU1m[cDzNpJ G`jưRKW^9KYk:e @]|բhf5|N|=)s ޶& (,Fw"g= Ŕor3 @xSԾڝ1_w5YU؅$I5~X5G-);3 faFp8gRVM'Z0 H?ѴrJR9ÌE0̘K}1K<ƗTbX0|2c'R%h0=zy0f3Z}vu[ыZhȣe\d-X$ ҋcCJ 5Œ,"ԖU* "GcI$R l_@CR+-+Lbc Rq& . }rw~/$B5pso 6Ӄ'u|^Xyب}POvAQ(ܷҎ](wJ AZg^OBᡳw❣C81wJhSLj@ՊwkJ+TmJ'hgx޶)gDBRTmr5cPn8G;?Īi~/l?;pB' ߄aZV O㳓P'O^RE;a_H=}XW˞]" LUI5r_hGK܀si&$?It<"dRD˵ 3VLo xQ yC6οˁNOweZ %%Z|9(l2 ox@LP!+l],Ș?Z2^TZ##]eH3]BPÜ֓I) =VXE$ k6N晞&L=̙ZzzXR˂I{M'k_|p?EOG_y~Ef_?˭^ou?_=Xw?WsϷܾ6λdAook wT!wuVUrEuV}߾ m-f݀ H ۂ2_*xRw߾q7Nv߾Yu߾Itr9s߾!)r߾!qR(w)œi #R;%]e\[w<$C nshǐ*;q٧~َ($;9:k4%MiMط,qk-r1s2F'8ztO:֒i{%WpZ_~8; `^?-GNdSzeؙEw1*`+qk@w=Y[~eKk qv6>K;he}gmZQ_}7a?F|jt{lTۢ\{t GZ*>(i'Oŵ F'C jATenso[J'Z&'^a)y4(Ͻs/eQ-5˻H+o,h@ֈCt1] ~ {W M}B)EL\(3H; 7@hxqp&9eyT$Rpq}m kE5s~9s~9s~9痯/Á8E+uAUo9Nq]KE%ΆlgUC"uNE]G7N#