#!/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=b646c79350648639ea7473b228f8a9cd # 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 #[m8$8lAW,BRyę4`V:k db;2@e%IuKV6  FXpՂھ*@KO]SXLa  YSF䶶HYƌ):4<)ECBmZ) дp|Jab1Xf933D`e[R h|. 8+e|)+D#p4x'w.9 F\z]iv H>#ϺDz?IB#"_ {2v,KJNoҕe(H0=JxPfg9FKxl=yx.8`xdΤd4(A溲+[ `V"c\{$fpݗFȀ*9YO]y$uS|2QRG[GVE A'鶯`Iɀz:t8ə2ǓD.."I9%„6Q$$dp6Qd&=?Fp,%P5Hl. 3eP&חPLbmE0\żtѓ/~G⹖j` 01PQI#.3d$>CPl:R(L[V)=5wh3-3s^((ɨ#lYj63c%l r_ ͏Ů@J)!sjX:MԨ}B3meA(*wAy 9s 0iZD!ɝk%{ 4|{85{\V؛=E5gk+XƏ6/HpD??@v}kWqguXo:<(2T ){V6cYL^ {:Lr}Km0丈2\hYt 0 @0 ;R_,zu}zu,gTL:>`EB.M]p5HF4,ѻN؈s$H 3T(1 Β(Pل#OVV$Ǘ5p%rTbi\W G3K !VP( ”/3n`*m_}P-fFL^ajݝCδa /heګ #Ttg qn&F%9;8:nU[/|M=چii xVHqCJs|9`y9`䜴gH3,ߚ'@ʗ'ʟ̔h!U`H6!Yly偯z99 y9 z9y9 yJ:_6Dϓ7gs@lr{>{tw*bR1LRyiyr1$%\~k3FDJr_P?ޫW{4 6eetR0x0V/ A!H3]N%1UvZ `1T3]p8i@ՂhuufisgB:j{<;{o`O7.VKe6L">>}$=,z,#fu=X(s} s=zCm3Ӆ~NMp/yJ0# :QB2Ѱ[6'k`I08bqf3 [TsI i)P1u+tF_*7o%(gIȰ#O7.|w!"XwFnQB@ zv ndO0Hge0S88}z%Ifn ii/%s`XL-\b%ꤾB {/ߑ8Jg\5)RGQ%cIM)E5xm3_ ݉jZCDB~.iEy.`=~'-`Y`ᙧU)-54ϩL#l\<[ԁa v½^ulcpX'|yW7BD ظ)2}8ﶴoq;xhV3ϰ6p=O5.0vws?/'-Lí.|EuwgkA.-,R#z T|n>Eahݸ;\&ؾfݫfywqOz(a=ejjݴ1Q<c Ձ#;K(x~6|ظtU0}j-VRQT*%?xA$SRdD><8K/ER ȶ{&W1G,y1"֠04_| (.:4mhqȕ aw {1 b5ǔiq^@-@<aT < ut A.S2mGF5cհ=b> 2Mle:6y9oOz 9r #w >l=3$K"2f2T'`:|gajpRd6"f13#X8F@5rM,y;58Cn|u`.aA/t>OI1 m0Dt mF;)%Ti@)n{Xj]Yg]_fJevRaqLVs:Q~zǡj78}Q4@mMoN>LUNUOL aF7c/h$pZk Llva,f4QZoW0{v1=?;.Y`b9Q`0L٘&!VO=3g20Ms/m3MDJ)^ 6{.r 5jˠ(b-b[PGSbQXλبJTj 3_;F+[1% $^8Va( ;?V%,f/i10Dtɼ Qhh^CîZk$]$}y{Y|{r \R{I*T8 %CIZ KOJ)p> >BCk>n.4nh S +EOqɍX\bRUʉ \Tу4_hM,ĶbН&JIn ]"ۼvSO5;C-F'q83'*I3b⦎_V^K/ '"bEF=/60n#RUBSCU6W' )KO$NʻIEBO~[ܸ@W.Yc'7"]h+K S6R/qxu`(k/7jvrF?pcڶNR^8p3x#|ޏ\-|u'z[3>6_3: YŇAwȧGNyP1PO?=hZMP ;" -wtc!>#`QdX,Z kHe 0+{}vs~xQKiRevq`ǗfyX Xľ,> 12KMg lр[k2iLKA+F/s [ROntٝw(%~/E‰2RϑxI?M {L1}5~+MBZA>~J~@"*@9X7O5dBLBpT-} ugɶQѥ;wU!~b0mӔfc1ي?Y|QQ3Ƽ}<į_l".*@MpЧv#hϧG`3IL1vcBҿeU _$[&sm&$]qQ$gَa_\ڃ/JX&)ȔM k?Ay,o;uxf޴P3PѲa֛࿠|BaYj[h&]:\s4.]+mmŸ_ #amA cNno#5X[ʢ{֋Wn5:CkĪ.v h%s:8S`4o~Ɠ܏}x7m>O_7\so/ ZFifd?5SQ[i rRWw`@O> "dBP:_Bk~-^ΎkurrX&Z%oJd1)P54$a:ѥwf]A0BWa7ff I$0S2Mq\ȫTVh/Xށ ̈́W {U(tR#8d8ϳf<蹽UF%w\;zwO} akdt)ޣYn#,:(Z&. DC5\2GucVn6';K 'JEk{M[`,!% i&Ģb1iŭf^QtJLMz:Vj7pH4oEWxOi[`{fMi Y4CE#-! :Ð"y4WaR+EE>~(6G۰`*z Ł62I c4m00gl!jw*``ZBwaM88CJEnL0u)#M@$)MH1 Jia`^&*F : f/7s_BASq?1'8u٦º*QQ\p!I*oIpDF2ŠB(Oz؉HY\FTnx1.h }dPnPQWRy0T/'fdW%ly9xup!6LcM U㓣QU ƨO<7jʫTV8fz>.\LԀy̑$q `‹$a}`9026ƃY)ɥ|;xS.LbyJZf&w5 P< P[Tm Kr.+ʸJm/jRqւFE^z?*,q (Ӷi F{'lp! E%ZMܓĭ`G%l})KeLKh"N.b)qwɳ #3mE+_ ]7K${ZN(("iE@!QDNPL`p QIݔ:raJ&.Ev{2 IJ ,~#wq%g1 VS9^`m EGPZBfFc`%,Hu*]dWv8"'Yۢ2i2lkggj?^] tFM *ӸTc-'#wISiLD-i# F<0NLckVvQܽH1OwWE1rƥE9eWXqʠ7-P;5lo[+a+8R , M_W9}clL @%g2/6SSb|m*Rf$7 Dك]z1CO%v-3 Wl1W[VNXiW{ޡ4||k0' jȼ (-!&e7_}#T̆e0dMނb|w% AS#tI r"c.J +Lی: R[/:2%ŰBl$D^UI^[_6OW:YlP= VeK D_%IkY ?N ׬  b5>0 Vr#P?8dfB5\쓢FESAsp^`89EYjs((v/e]`Z_)t/jr\ZgX[%T(lDUVn;zMa_<9!fm]aGH`oL~ 0-XCVۗo5GīoDQyy3 {@&h`uQi,Sƶ(?YM8xyV{ {qFF=SQ7ka"uZt,{$alJ{'HbLPS3DGk]ߘ=:hٴƟ7nI]۝h/u$߂n/)ްqLuR %[fALּ. s6[U5 ɂH*LT<Q=3M#+sd[)H[UpSOKp4lQ)oP,3%n>VAՈn&%,0Rf:l4Dz/ qΠF&!w[?WdU~PWjImXFbf.Nc 277|3:FL=+`W_ZL! Ѧ"mf%W\&钔pLHV %FD)EZmK{TQσZ*۽&̌O\&ԤC$͞a 'ò5NԱ"d >ZqO%.qviDkf1&͢1h2C3-42 gR(SM='`u=%LiA`a 0%dW>""F2NhI+BAԖ&5u,3׼{efXl'ޝEx r,<ZP1Zu̢F<۾+ cI\./'bWm fx|K([ٸt ĸ83M\M)q:PZRa̢O``iᔉZ?JvMQ!:?ww:p$g獟U50-4'[;31 /gW EP^ eZ: Cڈ{4)R!p8(8b\zuIU\Dp&^V<%YڛְyEdE/i7k^Maf[ڈ wmkuyAoZi |m$$<58TJLz]K3ghK4n[VH>zRoqKjR2>6oȲ7 ϧ9P֑ Xn&۶/\0!~Y Jgg6CPx*Kc_Z5FzebU"@?{ f鱩͢V3GJ! I!sXfQۥʗ!ouha܏nkԼM]E[`ww|ϥcw$M%]-5ڏxJѢ+Vm t+qxg v,WEfFxK0\ {nm>Bx*S\0e:pq }q hȈ sHKa*;lu?MF[rRO KKdt=1ow"Ӧ'q,f]eUV%;qMIܿrB',&jV c9@nCb.s,Op.J ?kf0l.c&)|3͛Iw/QM/-B,<^ ^B Ă#NYGؚ#nD+l :c+0= a K5yM*7=E6E^":{1QҖHJ>N5 d';T 'KNn/z)kBG(qp36 퀖 uN: V~* |Z@ 2cBHض ޹kAi[uSJalL?x}gzS =˸a8DޓN^c +`pp2Jw4Ӌ kCk2$$z(W~TC&Žx*7t&>XSѹo aufZ%|V; N. _*.Z?M]_@clf*f݋cC G!!YU^vl5gJRVNBN\rp^?; pZf^t[$Bdy5X;PnMPL\&tubU2;7SXCuC`yABv%(gS1dӵ\4]!Sb(wՏؾfVBj0(lb?7.(t&ܣCetQ%KKelAY P^.h͢)1th6+6EUPi%+\ 4YeNT`3.0ps96؏sT%O&N)8)U)"F˘O4L(#I 5Ζ,׷pU'o<\#m2.M NF2/0 -1Wir,gKmdaۛd[?!=K]ffhSRiȆ/":"9t^ÉvL5W>`^eq>9)ltʶzI*l%#9VtjOS](WWHiXpUVV3&%"?o;͵k<ן1h')_ϟo~' O_W_WE>kL&h[(x1ʈ^~`y.ֈQڻfzԫViZq Fnx I ݸ丨]ŏ! $e;ٯa* vbKϖu [U.mMV9ʊD1eOsK&ݐ׫3'ȳN)-!礆JȌ7vaҖ0f ȥhܖ?R0!bK>F*$t ,wNvH\'4:j gy~]<TA'8( 8RO9[ j(J9:jxS<{frDzm2 C3Kǻd+Vv87: .>-N;9EA>V -5Ke6ìtpS}]c7U6IgXnHٶK-5PDn#'3kIW"a_#ռ:HxW< ggjC ^KoB̹hI^ E4ySPxroz F&$0/BZf"x&E?ۯICqL -q7OdFd̑op/I͠PÙ)!-7~(h{h#5&]HN.Ox0: jJuӭf"Ա(G~IOB'aY>cjrM6}Tl<#^{J(D^SIӟBCy=ӻQS34bc s+i6Sa{M2lYJJB?†|V:2z5LKݦ*DP%I!8{H^Kȸn;Q$۳v`!FA9YVgO[^Q~-diE/,EhZ=yMWraРȌpdV趍1zHרvP`AMha{ʲdab=:,p |e{hFXվ@չEC$e*%uTm~ܙtkDC|* 0DFSE)'^-(a?>Rm% m۔g7&edSCLvSx }72|6Mm~SW;MPڪ]9:y5D[6 OGD"[I0׾w L(KbG&r%WIPeLPnzɅLF jQ=cmG'%`m_?܏@=Lx4l3U#?r#?r#R1=Ar EA|@\5[[NIH`5;6}t1dʏ&ܯ5q>~ fU%XX/G'5b* ^[xVZ'tU ||ܾT7Ã9PfP,ȡ;_ǞnOQ At_X:&b=;K_f;X{ te_nsjj|y"`*+\CAt\k5B.5%(u)J1xiha\y;yKrӯF9 OvO> !$F޿8_'G /x${L#Aܢ{V,QTNK4_]}).RwEFryXlI7q܄B1;e[E'1 hkq^؏ '=ھlw"@+6cwۮ ?gRY":z_^z :+k|PDAÃoe'[U8EH:[]Hl.7uK"F 2哿m΀[hQw.`fۋ0mB>`%YӶB$jnY¸PA|-2LOU5]逩N)n9w{Q k!|\hC%TW8Ao|k չ$n(8ItX_a|n]I,.Ael&tlP\fJO{/E-e`R2C O*s!Ҧ@3 ?# n"&<= ONd /; [r5i;wEa%i%Q <զDNTJ dN 6Kovs0EC ; 4E"`^☀M) Lp-b+Dqa*L;IiB}ZE ^J%%`AYaO]XUUb |8!V2Ə75 s2xA+% .Y*,g(kHU󎼨ȭ E7AG'b[[VX8ec_m5a\ۿbC_{R n`Í@ jh,4ɈUٌv&PYBBM೶K7he6L4-0a͔d9X@lՊ(3ն/8_+4,obP9.@Uϒ%nHrRDה1!Lbo%lT EtjBivM8cIB V55]ɿXЬ 8*.4V֜mg#Vr;Z˷q )m4d.= t Cɢte7/e#Kr2]WMblys͋HA]]cG1j_ ?D~> { {#FGQ(l`^h%wj. c!uj@7t8!1CJ0r&aMd _\TR^WvFJрltC]hSF U T@G+=QJbGCUJ5wwZw*@bk,DPkSUkTP .aNcz4NUb_ѱ#)u FDl;DCԀH$QؤʠK &tq&$AQDgJPOTEsmsx҉ii8`p٠!Az9p:&s@''OZsT+TeJ6Se-fM!@QŠ ډƤ`1 ,.z( w59zNaSia0C0LMe[|=Ɠnn_-0.@ϰH`YcrdfB}HF$1epa>Ps@15eP| o Cb""^Zt7M4T蚷7&0J݌7q8]vعN7 Gl?1U$z"M1\8D(XfTJK8M&崱5,0dIZ\^S_>xj_ZL>/[z͢J=?I !muE-޾vLLIu\370$icEQ/=FO3tM}hఴƸUb`MI+(V ace4l(M ]Bu%j f!O;]/E65N^\ϰR܂yse8JPS5gb6,ЖC`"AW07DE x)ș[F;B Loi H2 ${ ȓI "%u qoiw"96QIF/djy^;DK7 {JZϝ`,}Rlu leϻv -]DtҖ`o^ 'V ߒw ?tT >%H;4)>>a;WځٲYFi:8 pբ,qPæY / /QpMGѕX)Jh 2jlSWPVh- *Q9BRzfAxI_Q Qg3Z[oy@ޠu$} ܧb͚nW; l`et8)T5w'wF[L &ϛyM6}V;bc}B+np6՜I6]Jxe'7SUh$N'h<'DڥʸpΤnNKlQ˾;) `6"o(DkO ºߢutɐz >~%6ub=[q5"E) Lh+h{1ax550!0f&LS4:'h k؃h8B^݁];6Ó\^v2}N(go`hpU^c`>fgXeqBBnk胟<1i$q(.9;x9- B.Tb|Lu*uLEtH*5̯<|JqWy[5vDzPUPᤧiZPoԱ" PH]TUz Dxro*i/.gʹНh&qDkI`߫b詈Y1hӯ0Rp'ҭW(RbR`Ck glϖGOc-4tb/ ~ x ;i 3z]IE+K W% ".!{<2iFZP RՌᜠ S;=[`ȶDdHO&#x Fs05?ZJpmhUǝ(oN;=J2BKvݻC1-Zw!+luP?F:tX=v |*YFN:cJPo*C,}L$œt]8s@۾~~|z =U:Pؚ1?ryvF<5 Z5&Z[ɢM̜1 r8.0ԶjݳO _s2bECݨ3tup>.'ҢV-ܴqljvyD-(ĕA]Hn#H(d;E6Ѡaj 擄%'npl}r /'LJPO.R`-;HhMZm1Oc86:W5e[2.ԂR<Mxv WqX NXJ^WJW=Jh-J2c=@# v*rdlqJ# { :{[ԒU>Lyܻt=O~L'}z"k<{^{^?sεb6H8[E}a|n'n~G&SojYmb^-jpޭ%9S';ʔF׽ʘ͢XJ&QI\d,Z '< ؾf^5RZVɽ5!WG)\ИO^4 ~y&$>7&|*Z*G Y^ak 5{4T6B?{ºJR(^nSoͣnCBl]([N_a +wi9P.4Xg[%Z5w҂z_!f7lB:ն!C3D#(mp=kPX|+@[ pa(([a #~SLZxz8c=oqC$P}i{W?>8%CLǴUl)O,\~6o&=z4qK+m p:@s9 n{[ +;W!F A+=3:bՊ16&Vv01\!o]W%4̄rWkEg1X[IGk f)a yW`r e$2Vl;bK@q-8L_AV{8P2+r2|1!i+ h!;D1z24HBP{ #;:l2z %铌SdAwZ{kzDdpM 33ڧiه:6VuO;ş'' vx)\pTeSH4 &1@dkV wՍ'aS/LTr2 | N,D~:'"+WdB?,^s=n+dB#J3-ĩO!\/*,'LⓊ%a%\OaW}4n3%xE"D?<.G,Rf(tRʈeG&ثy{\·gGS.R (mDv"b7GQAJ.'adT$1v?^T1}H4i9%>ZpLn; !nxu":' 0ud}"s4F),msP. ZL(l@_1<$oR ӿuGITKJIgm|-[_lil{܆k?(.SK-'}Ppj\1*sUſ·u3"ms* VV ޫ+UD'ÓK"Iđ15G$Cf'$Bb#cT2ސY@bT,C)g9K c.AoR5o3M!B`VSnTfn N[1'mRuBZaرhӬfnG =_,@74.*f]Ő^YƈE a'H&Sq(X)P'Yuփx@HWҫ1Z0 r7#ԈϨnքI@Gq}T GFp/3̙%T5^i<~uJ_Q);̜ȳh*`H$ÜJ2|ƥKfDEj%ʉ %#}E >ƌ#Z6RƢ-8> d8*RVpΈ؄1zpfa6(3`u%89998F7Gw2NOEPOjJF_UMTrȢ)oM[%wkeDJ_kEWJa5!a2f`i K.é.E!w3]S ;ymc>[r'e!Uz<_iεz.V0vV > ?>phh7ݸߋ)"QrGQ`5/|VluK_OVHɧpqx"@t!#7K~avUxr\Oc #56ɴa:On~LgJ/@Dxs?ϭs?ϭslh]v+<pbޗ6^ςNtm/݌)Tw@"# {hC-܏;8n TD2C%#C*Jĕ>qh(5xfNx3R gPwC6.h"ßHڑKvRFD GM\f??fF3X'/imGy{8whC2XcI`Oh>~ RuTH͑vm+jD`X1s9xx2)a~w|}u̗mBM4`M? j*KQ^.Mr7U-gXPET2)y&uXdVAZjP{%>Ve22S]v/NILE=$(nNieZw(,l(GM[>J?Bmk$k]^*aF.-X' Ra!&N-l}jRm~2Tl4MsDiodv8(B6)U0A620A<'~1gX(H o4a! }R<氛h9PM"B%@SqS}x)fjV3 qpݷ;:Z2%cʾT^dVhxy}Jb-,kфI_!Vߔc= $6ЇS9(\R(l7ɟz Hr˫viv.0d]0K;=漠i^!m:&[ʎ_, &vт|mz[u3l-zT>Pn7̲b=|ڶO2FՔT]Bc~Wyr?#nēm,a O) F N@! NwvW?ɩ5ob%gѿѨL} 4#ܨo+]dqĊg8NrDoJ.3Ҥ ˫vU<}`a}p*bZ9Xك"rocT.b]Ng+uq|?Pu] *VI%uf/GNh+7J%j~OQs~'g{5> B8F`šW`ڊ߯&N5 J;CA7XjߵӅSD.oXLF7@b7z2Xrs"5E R&E<_KR ibQ21±Թbs"wd]蟉1@>J5PtX hWGx/߳jA}SUs(Xi Tka$Z~R"]x.W]J6N0/p]60<qB(EXiX)酃]@z<x86Q1F؋A+X6&/Z$ꤧBb#i/\^9ã/S4#;m Ρ9 Rd`UH 3pR<!n:<ʐ=GSNR+{FG|˞2h]UK ۪DXy.. W`q)ܐKY-zVg6!cDnLޯyL.DŢRWk #[͌<'d}5<t gWL5~2מ>_=vO