#!/usr/bin/env bash # # Copyright (C) 2011-2018 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=d16e044862376a8d2384f96dc37347b9 # 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 2Z=kwȒ 3\ ~e8g0ȶ6Xq{t$BJn=L5l^]U]Wڭ9lwp׏;↑5vƫQLhcZM??`-wYӛZeح׷&;iC7w=-\ƚgޝiԊc`xxLs Mf9wnRr4M\oWٽ0ף"$3װ&NLL67{gh0m3e 1X%ÚIȓ h{]B'1 ,ݬ3!.f fL Hj, Xpt-z<6ӳ4ۏ5OARPĮihDh39[2# _ 18RG66ѐ@ & 4sqe5,2nߝhʘ?7u42jyh^74ᥬ0w>n$AܖtJCv봥š6vl4 T`u5?Lwd@P*Ψ-w/ Pno8:<aJ9Kxmy(.R; Ou =Eb(\[VZ|%kPe;deI hz]i$Eeg)2iO`ʽn&|6apd3Ro .hRj4DU(0 A(U,+JB$!kY0m2S# 8É:Oq # AِZB Ţ"{@8,- X 3=QRҩL92(L$H3 6L3JO%]sLAS1x39+d3Yat5{.#va:/ pј#967#8G0C=wZb> &wn` daW@"kyxO(kt%QYmay fDbVi(*&5_/3n`eh&ZH'w{2E`oPE/,jGtwq8 #fgrnC`Xέ,Q6ꇻL+XO3Ȁjdɜg( ˷+XBJYRY`HBo(oo+Ez|{ HdDR3)7W=OL3y9Jg燁O-`3Xq>5~I?XV&Lm*W7rQ,m@" ࢼߢoj7[q[ v2xh$6wVǹI7D?l(Mg1cȈ>_XX Vϧpv;uS]R5ﱧQ-~9Iqg3>RZ9"6 :ICzkLـq(uy!w#zy/g^=&=7=srx嬞si" h>6?~ul{`ќ&LBFPU?rP\,(3gPpE;׆%6KaVƏRL?gsŁǟV7uZ(ka1~>oq;]߯nH`m6gq=r~fu>qYtSm• qh*Әtxɀ'?n#D—/%hV}W`'._wF@קh@'ǼPiZ85u ]H)atτ9 _wԴaWab U@u~XxN4"6UYܒv,80|¦# s=U!~ڀfȶ$X(ZBYSNxy 5?Cp,zUSHh>"Tk\RZM1'Kh犯:ISFVsb^H5cC )6 [0\q1Π;b`MX?aj+ 2C F&tJDVx~=&6%Yb'^deC]W31]PS %?36O}I\],+לVѽoǻ<"_e7֙k̽$M}x Ti ߓJvxv* |?PH>;?ãnrW|^^^^^^^^^`&kBr}|ih^ ~]YBC6jX Rƃ0!f.aלo5=՜s8_Z>Z㗼"ô'o s*m";'ԑ*֩zm;eAWͥ*Vx\,dQ:q;Xgj6ae,8WͿ q> NIXM̀nf^zg`XZ]**`~7D@w3-i};-RdY`%Hðޖf ށ:\3Jg3͡=eub9Fi6 ^H,[X`UD^oVXQnyi/ b@7$  9A^GxE /@u1ϗ1S !jq[3U~zZÆ某3 YR]d~\UPwX>3 TOv JV~Ѽqa{8^g'fJm!?Q´@)jYD`PP΋YG7(ewOKH UG"g4aL?o0:*|E48ҤTCGfCNl$!1p4XpS&`C218ߑ Ĺ<6 D8%j )S,N#!Af!RF1޿AꘗȒ]%"C ra_r%0e5Eh6I!#-[fc3]i5iEZ٪Y,o EM:~IV/Yfx<<ĽCt͇~b6ӻhYd*5ן@Zmx Ax͕+?v!^Y5͏qǰ Q(T:h9}-9{ NaIZg?>1a+<#'OpVţ5H,>eޖB F&Q>)N3KD?)T" ^B2:eG&!h'*q޳/Tv=^Iy/a0 $AF#?-јQ$q(+Xx3#_B (1\*hNI'# [ߢZr-$%EO"rt,0>O|1+PPi'hRZN67[g'ޮ]ck7a(‘k~a_mY3İEOFr$fV~ykC6SupvWO+jҿ:`FPb\%h cx=Y*I_,#{n̬G%ԓh|Dqe$[3'`Ƒ%J OjՒ+4r<%&kprWM"7)Ӻj 'ٷ~Ŵ,7]wm0 .K£ȉ2%ԟ@GR썆"xF¤&\rsx#O9|_yr/_~/w;y:=:^?/;T/B}Jiꇉ/сP_Փ,oҩ/I$ k0-^5e5IPnd~Զt6TDžd%^Ŀg7MAR]@ QR1u~h_ { { ˛CQci}5#X5(v|ߴM~OZߨA꿮IR}děyb7!X&HHhoK(8qpRjVal~4]TY.zC/ kn8X =|/j ֒ .DRz݉9n}иm(pн/LJMTFwbھ4XIXH:㢯v~?,e17ɐw=TXkLmkZaU_HX޳o _EQ>Nb~.IZHs],'ѭBz) ۅeoٛr_F,CCk>n,n<'/:/ok#I[eH6t/bGޕU6vi#UfyE ~`o$6JVbYQ"gu}{Qו -x%OuҼ+#G+Z-ݡ'gOVBs=ZGqG4 \] KejwmwY@f&Q:;~P9l2tWwZX t 9'f?޳ŢQ/9w AYeę|"mi֤W:}S|ep$[u+NpNv!Qv{8܍aOn꙳FmV]kkm3KErZuK4s4mv`4ëjtfqYXE}c/8]cdD_}V]ieĩD$xB-pMsIOT2ǘPv_Lu9\O?Gbq8{L/No5ElG[}O-R[Ko_}\0~/MCr/`_yuk0e#`@ ]C7? 0LHEȵ۬Tz=_&8mM&n m*24`͠X!' äK;b]wI8c84~ ,*hg\Rb:׈2F{4օq "WC&x֋"/MXwe2o#u|}AMCf[*Vܩς!|%Dp$AXdkfW6?'23B9u\grĂn25Ή(c>NnЈniQnI][!ҩ>LSQjFiFMG [g͝=6$711 o~͎FujC?)'N^v?1a~En(|]jLj6懱tS#'1qݷ{m`djsgn'hjDIMyC'b0EúH.X7- 9966F {qeg13nr^(g>$RIKhFU`\dUlC`y,UC j=^z 62,Tw'DTxz Pg SqrޢG_ƺs/lhQP{y.!R, w5N$JlJ)Xm S6#;Ao"&p AKE}zD G? 7+!Nn,$Y[,߭l[COZ=THwc7Ei5OﻭS2OnCTF]i&sR,{$a,JE/QxC]m _VW6(|}Z[cc&ʹIoX|:+l²̭Y_Fb &ok^HW5 ɢ2۸5*۹d;y"뵩{wk_p/ GUo)On\U$gz"Ǔ[ߤۃ˔n&%["RAf+k6feNwcYbus\=(7zb-YmUZkVhImFbwM}K31&  77| ;Y^#1P/-hSaPb #j* O2}%F5%EZmK{➓\Qσ6Z*~UmrX*I|f^IrݽR(IzSK<$۫'Hn*`PeUmd:IuR}b12]Ћ{\6cj<6}iY!r lT#s ҼPGףEk(F7dG%ex0@}NS@:ƃ 1EuI">Lj(`aw2g=50<:tՊT)BU+ 05+HRА!{&C6LBvh{|5N-􀚱:[XIہ{W.]׶԰-IM r62 _%g1mknvN7> yV`xr{$PUfNqyl.:yYȭð4**bY'ylX>TV0ω҈;@]-cP;gs/(4d>ڶKa#Bպ6R &X{ܣK5<99nf9k ~\Q)vJpey*/Aђ6̋-uM.%;5>,3HYV672:ydJ!`GYGls/=1ݯ~Ft8̝뫚/#˛ְy|Pݬy5(RUR T{<4:91a-f$榽nޙ \ۍH i_ixW7ѶN rs6_(d\=}&hm@=Xi@Ⱥ73Os#d`Il۾ls^B[e>ZfŶqX2؈ZX G'c_ZSk92O&V`\GBs~; 3Mt6NKfP C?őM XݦopTOq)(2aC|ba P:C^^k(Zx5k _A fhmJW^ 7}ҰW-rPye>KC!ghմcSc[G[?B)c9ykr,Ys3R%%y]d~.8_LXzj^]Y72ES{QV8(}YFIr,ex͜_<)̕T|2mznWi5D}(93Rg=QIH -L%]-5/-߽+FF`r[W28u sd ,-Y,@];x'0 ntÏ5# fƋ;5W`ip3ELCvCszi{8fc 4$= O]RfJMv@x--@N ۝yQhӓ[J.ư*dZGыjN?\ fŁ`p #\tt8c ĠN-(5Jǘ1l$mkA ǓKQB8A:ؚ#8 ֋0/vpޓn^c⁹_@ph2Jo&tREPya8\lCg2"$6^"v <_=^#Н|枣}j>LJ%|< wϏ _ww;wu5hb=?[_s/$p>Y+{Ay՜*)FGZ8jb&ݸld  pJp it[$U ޼QjͳP\&turd;L-KhvC_wD0ybh^9AtLgtWMW\) ]#o)B'} gj8|ZQZ.tQ\MeM,68"9Co4hDnd}m!ln6vFÔ͓C8^{!->Rl&]1;ʢʵUUIZ&ZY%ck&kb,L;ߔXa< V=S',FjRImM@\K{vFaWUNm~ lmq]>%_%_%7uGnp&4jO ȸ1o-hQF5da76A|Q|ێk u̖nhEHAfܷ'#aHs%S._l ' -sHJ0_lPJg Rh]D^N]L䳋]{x]AsD$K9pe1;<4Lv1AZᦆϥyUȐtgHS_mÑ:q_\KZsuBz(%S[,!&;'U`'cgB}d}?,{x0dTd_h,p,$AmXmBޘۆ2n{CD&GHA,x7Dn(䒖 }!ZING0?3!1}|8Ҽ#8lVF8"qjee9BEu.R0Y#Ȯą7Ϧi2>N}b$}ULj>ͼ֟SMi=-;<ijgCl?pplQnVE)Yeruu.%G'AvxpEauDJNGi,^QX/Kzs[T-v/( (i?Vkx89@3ޱ_ ŋ. E+6Q p߫vq7Y7ҜDC~[#R!pfN|^>ZIR ƑJܬϕ:QK=W(J( =@ly8rߒWx : wìI~'}ŭT[vG[Mߢb啕c|>\(k?؀yi5 p$ŏ6]IqQ=ul\h,g ^[M? \jӠj-FvLY42Crsyy D!DwcEA4]׽Ic7Dlbcw*U_0*4푄r]33FkdڮV(IC7[m9EU{BCGIfhwvSA?Md]nϣbmLONXܫ//7!p38}iI# lGA`r`ҦCB2^~xvTۢSź^Nk'z#5"υO'aW7[S>b q͡o(x ۯX22hl)>$n*nJB)NBAdAާ29ϣ)°9_9kŕiñ$1e e5s4MRLeX }zxs|ʜ.0r3q49~zgTÑNvyB\t q7VDKC>묇:!5>M.̀tuA!H 2ZXmЙH=NP7H@kn ׂn?N.KT5K Zoɐ_P!hvK4tQt#eL< Tڨ[Ѭ;Q7*c2C1b -Y YI+ZFp0ʛ&oJȓAؠݞ*?_ 2!4OكQxFdINqU3=RF6dn(mu?6|S]m3/:eߋEFU8t!Zg>̄WWx˘ʧa[rNu)2Mt-, n7NKj fDRUJ)0*fCVr'Jp-\\o.K4ν.+ E懤 @gm0ߔz+Otť ԋ> 9?88fDR>v7Ht!N>H'ͷCxYvᙛ;23:V*/_G54|f\<=4xzxaqqbl<+ǧ-K-K-d{ <%\Bw`ل8!^%CÛh[QY#XYj)b4%`eTK§Cb^czvKEz [ZRȕe_\yg 0J/qjw4['eM9- qehh5*~++#[<z%AMn uP(q k[E{Kj{CebxG#*a2ޑHaX$uZcg~l  rsVpj cBzJ$fcaK}Y{z4݊3U8:Ͱr lM?}~2FoH,0dDijN SHzMc;~Լ5lhK\Ih{e?Xc1mD'3x_YuOF&\DzukقA&//@\fR3V^fEVv$ mw%5mf͑1pM`u1f >t 26Rך>fлؖ1of O)wa 3 ݔgb/fe[E[>SλU [@LjGm܅o?ڰc?cqu*J*JVQ[ꥣEX?¢0T!O{^%:m(>bl[`k3vct%%ތg̗4Fcb;뜕U@^sˍjU%Ԝ-2[xZeHM-,4'[AjWjE6Ijslm5x֕4\fi8K~M臨Ou\ڕٕɦT{9z ~m sߴ5+2"ܭA_\N鑿62S> M=ElSA,%`xY\)ɫÝ~߃I< _H?>D ƅp$BFpTøC-M"-09iݸD8y:(}Ɲ.F`O 5C[Cl/RQ:mȄx@z4u[ڈJyq")_1qϊ( MA4 uǓk M~]vJ8i_)Gn̰upcGeY^Exs'\XirEvnRaa++NwB@ -!Tw$pQs"PU_aaԀyOX^ 60^a\~<rl"\tx YU0b{[anj ق2Wj|<_ B)-V[b%php7:Zs AH;>éc Ƃm,IPp:rmy]myf٪<_xe[giL_klMۂ6o3lg,^%1VXRV"{ 6, =3ocouyax|"[EtnpFi@lST/6ӹ:Qз UGldZpevCYZi'8hI@P'{lMM_ݝ=~?OCtr/ X$lLh^?p8)Õ$MEk3XP jJQ 7W5]wU 2$~i 9c)HCRrZ :&*b63tYWGS--C˒`+XWtÑ=k%Ew_}qgIոen\ 7ښC T/Zd:#"K #"02%.?S Ϗ^= ~:m6etFQ N6456V0y"7/-ZE# ؕxT3ȞoSQ]2;rsyx @|5* pQװ0Ìn G*f_ѱ#&1"XF ?$Q @)BlRcأIzѸ} Uy96h4jll ! )__o59:9lpAѦW7v)L5hR;2Й~T@اA4, D v% 4Cz R;HͶ°6g!h?s wm}lߵ~,ǧ-K-K-swdV,-U#673,(]X(7=: ߑmZGd V|w;'!L-TjWV6p`u٫)lGdbai#l gc@(_ 29r=0(QWy5y#zq689W]HBpJ:u #*[Ȟ~pOjaYy)s{==ˇc xhG=x@-SU4 ,4 KLd,Ȗw3vt.]ϣq̓S' э.GZx3H m 5] YaTX/."3wQFE.Oo;IJRfpoRz^ j;u\rZqpGl{06@2tjl.VD4Xf:Jq/h421?l2Sg* ؛vyC:V!pʛpۋ@#eꬖRZ\t1rT>頋O ô 0u@7d2Cz7ia_>Cf 2ʎ>-LV誆t_ 뫥'Ig.KV؜½dPiePe%aCk0@Y~BOKjOJad $G & Gƫ"p 4(]E7  !]7Xdq5>Ws93I >ƚ'<~gvi+w2yQN$=5`~M#<zӣL`W+ #YDT /NʡDߧ *8m^BR.@Mr*>#|$8X E;.P[eK5U1N00k+uVV·EˌݐN

3t p YFi:M[ pupՋY/ ,G4LXP>A]X-=ey5[ \$1?Ϸ|S~!~)x^JdX1rg"8$sAi턜ňډmSba;2hrx[,uahͼ.1{KaF)X_$hM#.tFJiݵL=jx;De$|=dqkrH;7 *6%B;zvs4_dh 6~˾;) `<6l.קo`Rvaio()LUAERȺGdHC>]6:1}ݞ-erLSt؈Їar0-/ʐAGqbQ8 ~:)As|kf5~u[dV dճ\pH`q܂!b( B hC,n~HӓL<Ʀrlclכ.oA\*L3\tsUGVnY"L)rh5։P8,%yeBMk1/U6I_IҏcN=SNJ7۴Yu(X-!OnKڋ餍?+\Vxz wV;}#C =ub}t1;ѦOO('Ax))Eԫf 6pvn?ly4V;.&m/,;p[AWd@fE)=6@8#FE TTqv5}PWA9dM-ȓ,f)ՂBFs2 _s^P"N` 5>Fp ,^Ǖʧ`2`t=h/Kd皓lq>p/^YCUZ!KP!4CL61 9iFAX c|LlWr默[AX7 a ) b] c:3:fyX6d)F̚JsZ~yo -bH0UMs:mvNZmJ{/F]N8 k[G 䦅c9 xxi0n(ĕ;WFp!]̼ ȍ S;x'%9+C%p>.Bv/ n/&WJ0-0r'G{k-}2V^%cd_z(;vih )Ww"Nn^ݐ[YnaȀ ﬌ \\f}/ QAV ɫpݑz z]!BJ^e*b$UQ̵T)Y&SQ ˀeyE6l-θ0RnmO&"WUG<1')Z?|++?˥[ᅥo[z^o[z^f1WpuH3 H}iaj ? ng~K&;ois&ߪx^ny9#@([Q-Tb"9EzD%Y~q㽓Ӝ*<ᡑ{lSjdJm:)>n$~(LH|/ (C~ )Qwg),VX͵*ʲ _U*+ lR_iʚNKÕʺ}|FnxPT*ϬXa% v ǼTi򓳊w9 i3îT_2*bm`WlJ [xwd޶)gDRRkǠ$yrs&.7ͣ [;m濁pB 4_'y-T8[Jްx~&-g'okAVA?[g̰Y4cwVK䊑iEKq-FG2΅B#Ѽϟr:Hڛj\ipX6u@ԽdcemU?aŅ; k0DAY CtX1_eOՁ=70t1IYч|Gu1lV.1ʼnaIޣ14ٛGȺt@L2C~ kF O(pJicS a7/ b!Yӂtpck' x-}!0͆ǾB:!7$E%_)cT'lE),9px{PW)qhwi"׏.n'Z 8wMFBwyrxsWV9ׁ-ŎAvITG҆tR)S7ݫJQ5B=e;ˋh (A0,z{ iu٥vl||ēmI^ aHx1JqnZUzk5jDwQ`#C`NLd|uumP\|D~Vb*&q:Wko>ÅK΁QDI#ה+0l9o>g[-CT-cS 5eU^үQYE>SP@jσp>ʟOV6, }XQNͭXcTJĝ+KLwd:0̥–娳WbӽI*v]!48&=Xpм2E$FFTP(ءϻ|dɃXylg3u\-_L{NoF)#|jٳPL>qrä+9BCv{O#OCl*Q_䤝 6%qQ!0ÜS)o(9 1K<&|(x.8ԴaQ)-V;;Hꬺ e3C&e}XL<^l\G#hG T}5SNI,pM䖗Ipr҃ ޿r6 S[GXyy@i!"6X= pL,$NvDzɪ!ǀI=Q.TG^_ō7qBe mk0ih"t5@1L,h۾?a0CQ G)7Q2K߲?}2|-%?r^6vw(@ Lge;<ҭ\lA֤qQr5Q ts`8^"]@U|SNy }Hwjg=>-ME_E^WWk K&.+'KxK5[۸Ӡ2CX<ֆ/ج0{yV/ۂ6/<~{`!]?2uy0.۹<~ 3dA\?1qPVQ0?:ɈsR]l4Mk1 ];g^tɯΩlK¾}Za0{(XķKIqby%psKp Mqw8X ~>? YY:ם@h*]1GbgFC$ǒ4$lu9w\,τH8xԏK\D9U{70F0, ۲ϵuW;߸d~1BfaG'ɰ gESpGZ=Ӹ}=/^XK)F'AATe5 ~ `J?mYso[ؠ~7zTߗO/G,2%"pv(.n_ïL/`S`S( Ȼ0<9tpc fA=YD4c/a-`ʔJEf#XU(xyZ%\%\%|/qb1~%LNb?F}͝c\WI7 $!1ِ\gf 9%w:Rf9!F'~:[YLUќ YXwN."ά ȼk'? *uSH̎G.>n':: K@{6/$8l%ڈ0N&Wi0j It_rgKzfc8F檊Q.yWt!RV)eq!"H~_̘ yBI.򥓦rTS~O)?S~O)?S~־\i0