#!/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=32b7bcc41f23dc4e5256458f8cdb18a8 # 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 \;ks8* $Y~يcody#K>QX8~ݍA&şقn}mgދݽ7/no`[&Q3OR?fErAUK??Ubhv7)Z5_e4gQA4md4a1Ox|G*Qqp5G@OGlpLY!`laRg_E1F(C M.Czd} lMGJ  ybl@Z¢i4I}WvIƦQ y M%DÉl4'mo^tv i}i`ň'6"\hL:΍"$f+*|q$[6!2=:Oc$Mps!2694&`JF 1f8l_{N :5'g HF APO"A2:GLf+7ьx>3D4"Tˁp6 0؟.F #, +A5\ΕPhQ2&9#̿&IC4$3#;lw?S /HdÇI0kPFqL';vZ ,=xHFOmmlo1;E$ _TgH3ȀE'ɂgH S%DLYyB,1seeٲDtYڪgH3f@<)3 znZ7a(44nuVZ71h6+?m7՟TЍWY{? 7$A%O߀yXOps̬ӽB^׶!wjl{bE$' /3 iܼZ 9W\M_ Axp3LțAWjœB;H1@x/tηYZrAn?o:=87 ;r]Lbpџ yB7?=.UO>7径p3__( ^v3:]0@$ǚ\&m*vM# 8PLCx0i"8峵Rh:ĸȄ8o힧Rh1a(]q1ZX[ EO~`v %JcLk$\&ȉ%?3""|5+%9 CO>a4j0p¢`J)Ź =j|=dVͶB_P[Zt`ژrG0M4KCX0(_DZ&%R0<0J^ &BM`@l>̎iA,᠁|6$Z P!3XM7Lu|#U,ul4Ř _89P'b[U2PJ (@›qD3C&or2ֽtLޔ%Lf˻JQ kzn`ޒ6VCBHفhxk噦AlQĨ(xۘ=w>N8HX3]4)'|T$]`9e5K$)Z[C'& Њ`)For $ΣɅ'DGѺ@=޹}~IBIZtq܁wf7 M8(s~]\|EA.'\52l\g0̞, Y:3R6Xk3cTˈRbZje:!,P0$(\}JՓ4$C9!

`o[[[lmHhD0/_ؚ.|g =x!,4m %=oX uf k5D¸U-DK3[Mn>tBrD[G-a>.09 rT4. 9Fe7wvٵf'͔&@I<CVmzd]*eq;"}߃ׯچ "b4KIH0iN/. r-GDWPʖ1!<= _g~ɔR{<ҌR k#MtLFlӣ#r r;,.IrSDud$bf&-^FE3k.Q%&Z ya)vʚMq X6x0?um}oなΛϚL1"i@wk{U`V=<*i.8uo f X](Q WC=8m¢/`Z#(r]@x:7%* (ݟ5pN0Ԗ#~HG =8\G[ mWh۷],;E=]Y\i`ynot[n._3aw:m!Ů=ѵ\^Jy9ɽErYYLT2]vd[X.Qa,d <*;O@ Byz\p}qqglpX-̀l15[8@ɇ flk .TsC3\SNx< l6EtC2 &.#Ҟ4/;̷t:_ jb碹DBe06W%-*>Ij`%!;7tCLA/PEM̆ƅVmȲ.ͤ~κ UpL$071|Y./|@o>u)ZԚ^(gIXz>l,a;./=*U[O(%oN,H#S?AtyRrh>Iyx})mwHrKa朢4\vӟ,׈0Q )_e/6h6Xb,%ZD\RW:Y>wG`xf5ptъ:ӂVP8+ʩAid K% o)U!^;0tȊ)t)];44%j^Wʮ,) Ͷm[<5Z^ӊg5(̬l Ek2<ίNcahj>E A_:D$f~q4%d, hpN+5p] j+/WrchT-;;[JL Ô%v8HQG rp5̮!?R:r=lݸJ/G`%kG߇5nDcm8{fj .qփU4T UOUJi 7 Oi?w\,< ;#)ļ1O|܉ɜqhyO@_3f]r S<'46UV<7n8E߿ҧh#H`2?]󜼾Bj@%$R{Wdn+`SN:Tr4ٶ}溬Յ˓dk}FzFb}JoSecd0ǂPkĪCg#0s~XhZﻷR~+ \Awj:H_98N5 d'E@N:lԜ xpN$J\`.\ 0C;!x*7t'%o aufZ%nqn2T_\_vÝ}Y_ h;{ L {vH"d8 Γ UIJ3>*F0T9F%';{ u'`^@1#nxg`J5^uxOkbԟMn8֬j[C^vMׅh=VQp+|U%5v 0A;ƞq;6}~`s$_5{W]o^qUD_5ݍ~S=zK??߿;Ec;}C?!w?yy)r>?s?jΉp.NI%EcIbwKB0:?-Ӿ- o$R-F׃.qݨ$U׃ ia/_moi<Ǖj?Ts-Aes;.4׼i`:LwՅ9(283"58Eם$6ҦUDj]-+geQm6HZЏICZϝ3ւo-ֆo%se(񩜀J u ?0?7liH:LX{<楇VA[H ڴ=I岭n1 *>Ԛ'fsҺ25[ Ҫ. 3AM$uIC51uT'm proeߨ[ d$}$k@f %kA9̸&٨=Kgi0JsmN[ r_/9]of(xtϾv*HR1xN)}>P}<{e Փ}SZ7g38ڷx_9Ԏ,@Rihޠ=e9t}kU5 f 0IpEDք?Zr07s+$Ԟ=[M~4|O?'\rO3(غ1 Mhu}YB筨=]iދo&W{[}Jnx.Au \Q*Wlyyݹ;1rң<k ݊;- j^41&TwpTw!G /h)ۀ |5As.cb\pu= wVӋj:`Vm56M/rO߂&^2.i1ɟ^Q<)>ʨqϰ^Onr_af"N"W3dgXWEbxs `51&*7N(5,P0w;WQHE*GpTMTfon_rMΘ5@j|8"]5T& ._2 Jr)Rݪ \@)',`1vNFkQH7ڬeF GJ^@^Lgپmj.mycL"E Ło7Օe0oeJ5T8o^Dt㉔E#O a !}N{e'ıy0i :֨FBg=Tτ ueMduK{X`\a3IM!- dK" zl#,dnM0!j<͈8[| 9''XV:i}S%d$Wb:eP QɎB!WWHa&8McFDBKO1ChǤdז]dc-GZ2cJ-#?r#?rkV{G(m] @WUiY@lٯ7^%^=vʼna|EG wwO?Xv`CfY>..U|B \KZe=OQe{”.f;`;~_? ɏao{tiUNqYؚ)C]-I`[4% ΋= w$ыYd|? ǃqtqf]uήGsf=DI/!7+% MsǘKG}}$z}`H7sUs|a4<38qt #I>-Tb![DRgI=8zWn[*ĨqI f{=2iEr5D׫(;;L,!p RS2}p+l &d ԦW'ՠT/%R7k;Tq:0|]Κ~ M1\8MTF9]6czK8*崱ephB1=3U|-\9oC֬Tw3/{]#P<2BL҂Zw|O@KDøLd+?ig$I$6lxi\\@Ka]'ov.[M5+lEƳL&H "yYHRCY8C2dC%~61ljK7Xpl4n2a@mNb+%L*O9q b Dued!SR꜂Iba 30is$ϭ-n3|@- &SVL噲s+ӐG*JNH?-k2 mŲ6٢Eo%Q25vT-=w y{#exc[9Z]*prIEI%^ڃ~DlDH~Uaڕ ׁDٿ-B; e v'Z@'8G7t^6G1b88)Q1෤G2P5D.ީVLr9:tA8|n&7nݴ!7U׌I}0;M&L<ơr` Ŝ[W! W*1L>W:]\~:}Ɍ^c'.J÷_!DdPؙ8ӛB υ3!*Z(l͘Տ{rRC<lsΉ8Tt0jfּVZ!( -?Xrt`8$Rk2Eq9-#ٹ1Nn|:tɰcIxTn86j"ո;D ΘC8 .$$" 6Ѡaj擄%'m f Zp}zJ ̏ԓSR" ٤նp GyA'fVPl[2.ԂR[r?1kv_!۴o+ok<7oomƽ^m-:.*O-<*'tw ;}xu~ rNAP;J-!@SV$*p1MT}BHb=3<0}Tf0eM"ϔ$eޫ WWsWGВx獢I*n'kzpVKnzM.߮@kip RƯ2 FёlO8,asv <:L@]xR+X t%h4IvKF 5լ7_L~ _6 !$uJ &~oҝ,fd 2n0s);,Pܦ{|Ҳ&˺%kkkV NG1y3-RFl96}IO|M&Ua/g{:Z4L&`` p0ka*g+.b t&i6RB[UX ܵoK9ׯZ.p`ƻz+acA>d2H`*p',eVzK\.T*sYb(kHQl"jToadcTž:Gk<øv~[h;5kD`Í@jhYh0Z13[0KT ?.uY^^楂 3h%fJj-* ڣ9$cԟ憯L VORT?^g$W,/ޗiQj2L҇V&q"{:54:$ Xc2`2pM’W3FgdD KfI٤`<0.ژԕ8w"و2X:8{x}h_ pBF7vP`s;/ ?d><恋Do_Z1GET$+^i#tǧa{{1ht8z֜mg#Vr;eطBQnld)f yL8:`$|_%VW޶./x) Jdt1?Pk mY1H|{bE`4פYP=8 Qb.VHr'pTSQy38GN*# wbţniT_zm{tނcrKyDk;f2s-L=EgQٽRZuIJ%AxQ|@7j:uڃ!%~9*ZҎE@M&/pK6p nŗL?%h@6T.V4)ĀN#p*P(7%S\t Q=#TAXP8_ǟYP˟iCkTP .a Ncz4N!cG0RB #QH4D PD@EM {!}^sܺ IyUpdlL 򉪼hκ b~FM;8`p٠ACz9p &s8G''-RAU4k3UbȨd t杰-)LdP6Ƥ`1 ,.z J[(MnaT6L ybwc#Z[&Ms?on[Von[Vdf6i.=ҠXGe+KXQ3[%D6UYV5­Fb/ఽ]^N8/5SooSŔFFL+Y4Y6p>ŠͽFXBatpB.(Zeomhw*^wvYdIUQ(v"0[C1gF8@@n!6ӎn1Q(pۛ"W>]|ybJ[mgn#Z ƆDh%ڜYG%4̄ +r._T㉣2atiٜ,MpBB%dCzA.o`@+O@ymT@bvg4+/TVbNIV,-ta>dOs]Į# Q҉M?ֱ\:m2z*%NUdAHO;g۟-ÎL"@̭/{#% r}Iƴ2dd[b#Dv*7?f+jZDku&<PތkaV0^O=3~\Ci^-[Xn{zd22j3T賨LԲPK3ff#Z}b6t _?;R pp.d960/%k#JD1g0uhb6F  uuA:ϢV5ZmО5fkAEp" x, Egp $UwowR#h>=yND5(D:l%$T ,0P ,QTtIѬC$R9xl[|0539ɯkqx H_QvCyf N߄%k|l2ls NH߽U_lj͵=ɧsޏ~ Jߕ؆⨱ۨ7 @0]xRDOx^7/21_]BY ٿ{({sYvDxR|8!Qylwve].S}Wګm-- =/jC@_?> .:~U$lgD0hXo恚_-hܒS ~.F0X|} .DxҪ=W, 3y0\+] J+ 8*^;;Lxt͍\]GG7=hю0 4Gj _ͳ{5b0ʐQRN\˯`^[*s=SL 9e@e鋁y")_ї㺓kE f)DzaZѶ4OژKsg[IƁ4fJj#KOT$Ea25ӓJ. s lGdSPJ^ u| T6!D8db0.{XIjA |̖&*H=[TD)Э =8`(<7#_ē  9. =IΖVkc C4˨Uu{H1%YY4cMwU,/ׇ!<1I94(܍a.ҠJfWx~ugEv)sJ۾c7I.,e@> T:Tk?@E MJqM $?A)y!}%gvuͥu . 5Ix| M-4n0xH#00U66FsuZ@ęfi]&sq.BN^*_XZȳkAFhNc⫩DnH_~+pG¨_ֽL&G2ftDK" VMMR4˟ϓIã(gEܛ^,.f. $ acFKEL:ߒD#/*wg mfP0I,PÙ)!-U bDI tА?KrTA{ 5*lvЩD||GHV IB?G}r vx鴧=Kh֠eF`Խ`);ÆTB.V㉑ ;1FY x\VNX[MuӁz/`f0 +MJlȌ ,j{ӪƘPDyhsQU˷woxdQܕ Ǧqh3:G&0F4;0p34禎P0znhѷxDOPS^q~Lє&mK7IP%(j/:0ez?xJIw8xCdAphqmZRRvkWv8mxV/Px!}̚CRWj8A wgk.Zɏ>֞,?hJ"}E)'^-(Ql=Fpa)mJJҳ2͡`&)BMms7PΝV rV#7 +NƐ,cjFʝ6yizXQꑭ IůVҰ$̵]B,IeI(DnSޫ 2*v7=#haQ =Jg~Mxh_1쿿F_LTZu9;s;s;N:lWw󦅡N0+-fe@1YY^3(-S Wrd.+&|!/ownӳG@.-(S^S;)AS??qsFPTx^HV=}oV* VkvkG1DžM]"|K#ܸ՜/OzF\9VBOnl&t':Pu&#@ӏ!W?,8^H>)lDZ2>=6_ t^WV{Ha_ 6zR㯞qD1 66)ץ#Em !ôQxw66#~#F|_%I."7cwmխw-λPnn 0T_6??ht* ׼ WjS*&*~ 9A,Y]'n2r6F]Tgݏkz*c ֠h94/ÇQ<&v]G"BpFR :*9E}{>Q+4 ŗ[٩ڸћ0,SjؠglrailMglgkȳ1Y:k:´V欍UIo(IEt -y<*^U" ('8w] jboސ5`[un̞/meibL(2a|yfۓ[4g2C>G6̼pgc:N8 csDX'=rIT[uU9Ph]nc+)#B2%Gffy."c`r| $-:^*Z$t-1ýcaHvaD?No%#aZ'iʀ/{ Jod%ܘ%$meY]ܓΖsf 6i(hfs"UNKq! xTxfц5C>|i_յU7gmZn->i+7s~V_Wn[}V_V[yI%;HM+VG(FIĞ&(6{ϓ##B&%iHJ2&٫0 xкZWbO8= _ pT22WY)]yzeEw uhuq!"5Yre8Sf9ٴɟh _h -^ [.`\e5V`wyփ~'C:C IrjJ@i{k4S=T2_fzQ̼3;4Z!g(a|܎c,s 9#9 qۻ=?@c2M!W={:6)3TPTUQֳɹF}i̇3h;deӿم A 4kKO(L 78Й'2EHvKgvf2_!"TU^_)x5yʥV0-1a@Lb/爏AIvS^5v߮ȰLiQʤdi*L=p;>Uv)0raj)!MyCH, ɴۯmfL'SHN MkxG0^io{Ʉ^0 Q:|RU~&; {Wq @O-O]OZULqL 1Ouf3xĬZslG`C22Dڹ`]wN~utZ :it @@_wd3&*јh|#018ƞɠ> l hd-XwZϰֵopp؈DG+0%c1)S`t@.#/OiSz KEaS2:ozw~O&W*(0Ѓ7:&q62<&3!D5)u\ҳSp"u;@~u]rGN  :/)E{`%em>4h}67>\ǭ j+T[ PMK iߟ(j>)kkV_r#?@%-rK x@KS.VhETAS` 4QeY>ãcV D{@ީVup AUbD*;MR%yW&IT|mf顮iz襶`l7V_p٪YFt UyoYLRN6Tym99=տ:`F?NEC*5RK2ʪ|er! w/KzRrO^=ŏnyOgvf~LϳPM?{%Y]FH;mc8H;vAl{jtk3cz;WL?5H(ae 9dw'G-unM.'f_ K5uDT\ʰyQfδN*.ٓnSxzd5b2q2uJn\ſFVFѽ%^=s®zw-2åRUtܯ4tp0s5f:͠OOYTްkv2\[3;n.y֦M|viξBO=ヹ_&Q0QBa?]*0\be8tpuE <);r.[p/}>i>wJOWpvH4}d1+Ok[|v5w\.> AihcԻ݀ƊP`!ks;<~[@ocAK_jcK?0r@y` ?}2ox ȸ6<~ӆda `+EthZ`vOBXJΈws |oE&n0 ]w9'V_Sdk}\85QS1\jGKIqfmun`)HXAt+s{;'p_5&cUTc" Kʌr!BL2} )?>AΜ,τ@8hԏKD9x{WF0l Dzý}['_$ׁif ޹}d9 \,Gu9/_ZK1F;nЄb<< Ŭ^ ~Hyvyz;jf{i-@ (, ݺ_3C}| D!"V>8yjz`W=aA=l4(#<6&/ZLI__/999ĐOߕ:LNb?Bb;,B;|P!1Րլ3o{ PTazx/hms+fn QkCįY"aX/sp0듙 ܩ m?3KR cp8ʲF/S:¸1̻QF G=*us"g#fO;IFP=%dH^b: Sg$'B H1$Xblyֳv?1FY#rsE(g~4@+ejJY\%W.'Nԟ3x8O3|}$/|$\.*O?'O?'O&0