#!/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=b3ceb310856c57dc1fc6abaa7a53bb0e # 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 sZ`() |9ʀ[,)%"qG ptKy~MHgR/u*w'6D2P H=`F$rJzyW>zm JV"MV@fS)c8 (CEōJ3|x A}ak_gK!7-}Oꎹӂ9mkjy?%-KMf4`|^)`]u]БH^z<DZ`N o?bÉt7>92H8O Q$cn&IhS1|Kuy$pSd׬W_IT{4Ze_mwmn){+ *cɩ98t58ujL dN+3LA@8`m E=>mJ)GqmMJÄkH4i0ی< hc Y0]$5ޘS: jl.gh.Yb{<gHdg6(w+7-PygB t5/D4W*I5rnb9fyNf !L+4J0fe PӰ'=P-L^ckMִ77knZ2#ʺx}7FmR5+W .l Ӻռ9*J ܥm$f [d {dn9iϰMfXw(?5S|V+l~fGem}_ f@;f@<[f@,{f ARW$s`,cP]wzv}*jg8@~xy$j@4к:k3gBjkԿ۹Ӎ b p,+#OJ*`l K)>7m9 peb'0T!BA@ uj:0ԱՉջG S o2K= aJD@FCr,N›7%[ۦǽՓ\`\3Xa,s9$H޽#$e)*&=fc@*],o l )$1vhqЅ%uVNtBnY4Kmu:zzD  u6!Q 9QZ^$Jhp͛{^1c{4+Lu^e,]R֪+*{VG:2դHmE cRƐD5x[m#[1݉jZMzD Hå7D/s0[mWE3O4Yy/LEؚRRqh.M5bXJ7LM`,ܫUV/f u—Cp`'M% ~p}L&Ͱ` Mjzhm5`؇tEsqSm6pk.lEuw{kAXZ ~;I *޸_B 4[NvH,Yhj@}mSJjp"{j ̯0h ktr@ jÖ=PpUb0&|ظtTssaz(K̐JdD\.Y 0y0 c5x]y1,| 8KջU1\`i~1^UíṢ8KdVH035d5q+5%^X[EmR+@nTw c+>6,Dc!)+dIg"Y5jB-U%K bDه?#ElI|o6pFdgγ}C4ⓡżAôLo "ns2&L6y-Cx 3f"YfȴA/hG n 0OAyj<9]&diGJ5άc5by? }2̹=3Py{M:H]3l=mڷ{CԆɜ*5 7nҶiAdԥiQ' Y`I(dŅЅS(rT=Ƞq^@ZQ6\ʽQGكƇ|Z(؃n~p #w >nl=3H%XS2,O}Pͳ6.+f!"H4 gf#xI7}%",PQ%{2 LP13b]Kx hns $HL#%&!">hhDvJ4U}S[sc qٮ,Ӯ/}U<?y8k9K^v$oxzABz$- K܀XcO8%UZR۝+~__________ԑ"aI]~?R.>MEt(+/vGQZ`o)Rݗ`Q9T)<ULHĺtRD (8^xI]OPFèJBe#55>0']Ԩ^ k4 qڿtb:0Hj 5Rms_A>z3PU0Aq<*p_aN]:^rxz_?NmMdLUKOUM#a\Q6J9][5H|2{:!>^{Q頋HH&'H:1H$D{+Q^Lt񦙛4ĩ b,ҿ>Կ/,VS9j KPb-j܉_3SBAg^zXdKځ4_ފ)1&uDZ_RְJ%{XbrqqǢK^ ͉5pQ(誦yܗG]ZϷq/[N~K*4"hJc.JvBZxdG (44fH<-p}yĈ n8uLpߵO=u"z_Wθ;V׈sY ]"ۼz]5C-F'q8KGqxHˎa+?Kk "bFz-+օ n)#RU| M UMPt:!aHI]"ɰӝYD6$bف9rOf$[u#EսVZ8OۆG=ęՁgQW_oOY-frF/y RTXqsӴm5ڈ祰yHY(\4B]XKF n׎zerL֛8Z /Į'Mo/H5Tnf8uC `Bf|xoZsS(LZ{{"+)ES~,}?q쯿iM~zUm%Au$I!\:tm+Whd޺PH}R^^+&l%7 JgW\8BW  o,!q&t=&YVJVІ@iHr߇W5$CDpT)f}u$(DȃRϜ?@m1fiJp_$+ 4KD!88qc#ORߞM:gB7c2s"BoW3UW'yKddD+<4 ;"!1KPX==Km $.@iN潛luֺ,_&Z{̷f[_[t;H|Q /o{_F~2f$ M p1"llwB*@c]{WU6voӆ<"3##yVdYȀba& ?l'Q&Qr& _ͺ0߳!'s f!0xbu:R4"i7ƃx5!ȭ )xK{I6J t?ys-jQJU#ꄄ;Hz:=1 /Z#Oi9dq[fKI;Y$hl=P[r Cu@)4Qsۍli],Erg! iȖ]@:N__a7\J7a]CKP=ȍ k&-!RK`9iҸ)"q 5P0 0C IcCWh8ᨗNW< < Z ƤKwM/ֿeMW)@SPw۰)/DePѫ\Tfx%T3(E{88銦9jK"FN"%J#\EY~9355/n~B"k+Tq50zy!md4X 7NJ#̎[ G)܆"wzaWlDVFS /Βt8=y{w~R E]Ьfp߼~s֜&VЩLlswý}J%,`":PsȆn!V7|3^#w+acm:9Äq^)6هUfU[zDI-'0Z$ѲD.1SO'v3eWf1W3[NNTi,Ӈe8mCixcnRl(\nRg뛽#c/3p؋n(V/-Li,wY6TvGΑ\5$SWE#.ȍJ% +JHڍHV3CsӼR9׷'G8K-*A`.] G%jl_ d70Vh+,{,\\,TQ[״~(Z䧃]Ne&!L#OOl%8gQe-ZGN`w1TQֲ&. Z4RupYkpמĥS~V>;[٪W9 Zta,] Mxސkf?,6PgGi^.*kdQW9?G A~OC#T\G^rWcT/M_YY@M(zq{N.,NzIo*N'0.rU _e֦đ8?53P΄oI}A'U *2';c_bd'cBUo8|:lʲ­^ƀ lk_PhO ɡ2[jBV.9Sh`(̞jyN "+Qz6`!yy6rD4c h.mٓT"U!ۡtC_!U-Fac7fdx\¼)̒!p_aY<ݪw7MoR.fꭳg\e:y2$e.Nc- \oD|7FLR=kb\Zl% *ѧ"Mf5 \&„ҚLq H $vUFj{\UϽvZnMmvF:O+8E{xh [9z \ii:%i'#WDzvvB]q2K3}A`ͩY`9-9ODlZQ&8Mr'ur_ :Bg^ɲSFx)& = YiWz-umZ!HQ{դWrb6gۻ?g{{É(\}kۃS>~{r*3&љgN(^Z0{%zdix{Kly`a:cR%S/ 7e5b)a[K}K%Z~S,w<ėIZO*a8pXx+xT&ri t(H;E?_dXZ[|3M7sӷ P bC4SmmJ>NǬm߳h܅r. }z2`X[֕ښVU>kJlU]36a0Mr?`q[s?7J [&??pcĠv6J&)ֽt="`hϦ藦BAc؟mZlDkX01 d7;#n$l"ތڈ`j`B \fD+DŽ,vhا(PDgr&)-q<^gީG㘜_b(JMrMdw9MiA|3$O֌&tg\Ѿ h8+{&WHPǙ?? ?g3W{JVAI,'~e;isgyG |\w=*IWd>Qs B\#&|N/HX&x~A=n!و @-Η 8ȝZHj;I Mh5XOzMI;E  fxZ ܬ ٍQB6Ls!u2D[Z0W>Ay\:$D8& e" 5n.m~'/Pn˳q$ q0)ӍPc$ߏkd1Q2*`EYzȱ@?MhCRf7Aia(&/Kc$~waV*JˊF¾;}$cVHvzCJu2"ꏇ5E*Qu6*͓:FhޥC.qZa"fk=۴:4i`IjM(}H /25js\N'Mw[`l\2, hW?~4JHx=XΧ=3mQF +/08Կ| X(wM̥nAHX< WGT;`Ӻ i;9#gz%n=#~f' a# ʣ x2wAWbSmfi)gE㶂 𖪆0p6QHѩsS(.JΒz8qF $b[49$MY TXDd9Kԃ2!~ xذgv*hJDnNp.ll@n1!uШӇRHTN0/Q(^ěɕA4~N5=5)8*HM~Tx"ͫ>\ӤռyLѺ `y>؀T⫺a=` ]hm Bz1 gJY6qN Q7\5渪~*޷f0N p~}@]| Ų⳻{td 19AVᦆU}U+Tt*)PkA9U{I5IwC ڦI1_e"w=k$ݿ#ap"_JbCY,XIAmlw!okaZ^_DDu؎җBZVܸPA'6r,s\aݘ*i>Biޑgk+=B fgD>6^3|lFϦFL~)Rrd׾ xŗeNGp,lQlZ^U 1>n\-+Zkj \H{&=z⥭bGy~[r}Ni@1O3sâISS-4sH(tY(\I& ZdwjXoyjZp#͹*K5ĿQo;"j gvՓħLnlAht j)cj|]ksՁJEH:,\r@ '7w㖂_mI(KܝsfCMe,-mNOU?ڳ;k>++??,c1?fY,|VuTo5IlH.jCzǁLarpz XICQa3Z~8zsxf2L肴vꔖU=Њy! dt $Ϸ _:S7{9R1Gr@.QdQ>m(6=;8Q]93oj[˒[ 4:͍UDy86ipQHALFHpHlA;©݂$U*kFTŀP:xWښرKU2G68gyVꖞs`#w7HIP'OD ;Fq:raSy`2ͨ._>nXf{wTȲھQ}S7?f!5Zw\zZ෾%jyφV)G8<>#9fo o/7oy'`6,,RCGOV'T}9.e+L+6%0/68/㥂>ZG1[P쓴И0H; "7bMgy?&GACSsBo%œQhx#U%R$K6eC>DRV|3&@zOuښYS| Vf E&3aNP5oa?٠J-Gkn?Uc/Je4S/Ӝ.DՀ+lX,݉B_d❴%ZY7'CN/#V۞dӮ.=ʒ݌lZaR% >C$(efz Fu8G \q0njQx\ㄝ3;gȱ*A$FVo0arvK\gpF-C7ݽWb- U3"kr~w&h7in#A/ c& jB^%ԊGPOw&\4ipuY $Kt] /=vRp!' UN(Z_gδl&U\S盬Wvt뗥zu/CdxV* Paɦ+UɀG=]máZ#eC'Y- b9ҟf#L]ak AJiҋ+S:աb*BM#Pj^lYP KA#\&q|r~x{gg4BYcbFt&g-jW6\f5ZN ~E'$\ޥAI/+hyG߫ h2Panzk R&R֑v?7*N$'+}Օg3{=7{K-\OIߺ'p`W&b?Suk=b;hcЫ~;AgoݽmhL<{0Whn:W.>ܳkx5X m2w59gPV_ej?ma"kѣh<8UA'1{k TV=[:f=۽ <^)8tlIXd8چfOwǯяN҂~#H?dmS{wfyh+㵼7ƠKXIdqߊVn $]a 3<ꌪ]Y"0[t}n1R[úOzIxѕ>۸vD+P*8G<'6;_(>?>>>ﻰA&&`x{=8>NXޠAxX'~ڤV.uv{տ]^4PR. aQ:؉OΰM˹|F$l ga.X__wW߉EQLGFOa7Z{!?+b䦬?C _-sx^+m,*/*s1ʦhxh#{(O:k@E{؛9fPxajzi{t? xqZazeľ sY4z?ʡvhk7c\4Ē]_S=~?O`(l?>0{Q6I<{ψ? $"Zf^k&-z,T#2ÁoAOG_A@:*|RfOS}Z iӭpɗ"+ U|s 8=jR%9fѨA{++гV KP*B::adр [DC w.#[}͡d *5:0dt#f eCĬBT?+++d"H8  ˜m98n4<2bЀĠ>kuYum[839xٴWP+T9댖-f!Q &Ƹiq'U"t#=-nqlZ~H?=ql_s Ux?t-~f3ߙw;g3o,μ y kpώg1 %33%w9r4z旫>aaoQ3&0 Д$[P-lMJڊqX8>:Z8[%A #ɣ1'ͱ8FQ"z, jPbp{Et/זhQÛߌGw q>8_cJ7Ik{AQ3qG_ōJ>zF0mRVQ]Q0gV+Xh9JT]4JH# Y`aR"A ड@q 22FIAbhTjZ@&\o̗7׭7 JNr>*Uڮ3_ }G5~!<CTUK_±2u`yhYHAW??p"D|ݤ`yY]MѶ$~"π~J{q128$|$ z[i?NvdL",x4!',3jy!:Mw˃]ˤJT\"0hʬ/ w+5AH^bTR}gd6)s?Ex2}!d,KL"%?LZgp[.;F q0ySeaUɢVy)fjڏ̂'vb-(O,U:oNU@<[l[uA'{B3F"'lE;CC3[a;M/G Of p(, Q@:K T\ ĈRf%3-V=ee5W Fm!_T'pAx! X @`"S8t4H8uy{kM:،58)A"ϜȠԕ>`mq{s& lP ̹`dr7LGa{; 99SЦSzg_6g)6ѧg\9t:AmդLJ^[qFyCQ܁ D+ɧmn=YE{@|:f;FIڢ3GWI[xD$,4JO4۰ڟbߌ9A֊O(¶ ߢ H;M ҆>~4%26olb=]q%5X"ҩL~5{ݔĈ8wqV'|rg3P#!=~QVqMo,։OC\ b,cfmR|گ^OީN rkg9G/3r# Hs nv5cX'nՖZ6]U,2y]vθ 7|ق 5U8Sn2q窪#䩖IUf?WG8ܣu56cYpkxO"Xc]Tf ">9k>2Q up?BhcIK`7#g-ׯ m 4݉u4|e2.LiN^9kWp5A2vK'CdRZZbr9ɽ$ލGSz|<pF\ (ŝ2Ts~բPPTA%TK{8P&Y$( QuЯD`n1#"?u3`5=Zti X};Qo+83Z"DOvnսRC5 zw5;D27 |7*~y J\=pvNS`ATM?w{9DE{f6% U*C͘׌EoV+uhXBᩁar0a־Vګ϶/^Ni2hdLNq*Vͭl~}v^{=Ts|79]UOKq2U+dQ eG26j'ѻV+5^81?v/f7]kOVϟ:w; ;E΢~gQYKas%~}zo׏rꠟti]&DS"Ca ^az}1Z.++I9\ͭRΩt5X´˯Er\ VF8pNThI\9&Nޖ_f#Ω.8s*lܥB+qNu~B!,m`He xpf[ l^*V`Rݸ~2zTZ `륒U|<ۮ .'Eywk8܅zם!!o0UZ*Nqs 6^/XhWyB.lC(pv)!gDR{破{y~ӓbݵ>?yw\°ygxg{o 1L͑X,r݁rb(rM7F[Mƀ(ձZEbړOV237Sg3# # sf Yf%`f NY9<;OR%s@G3EXza]x.?&DTnm 32e?E_V(s4[mJ\ ӥ1" ԚB،U˒FY$}lh9朱+FYGyPvFB)XUkQj`vJ(ZKލgE?hY2JVu]Ml>TD9nzon`H1bX@~TZy)F?e0 \w=M>2K=ӅgK[9t75x7EhY囑b $sޔؒ|j` /AL,QK6$0}D+S&jt3W4q.^./tLȌӯ\EAZu1vs{2 ]!P85sIR$B/Oi&rA 6 7=8^&N/@EAu.Y#X^ `C02_h#浧hicf*^9#@BBGuclӃ"^dE N+p)yXvA5Cp$3͟glb\7$ycIes A|Y&I9px,NG,)?NH(-JR>#8hppe|W"Ta !8\oKam9FpRmQtTF^8Z1{ܞL$,uq4Iu(̮{rī >g;1QP|vbd|ZXY;RX!,mсZcOk!W śdpw/Dv#MaIS-tݰȟhi$On]-y*oyз]YATUv?1:<χU3!kʟyx{`kz6=>$쩀{𤊉x18rWֈleS _(==B-|Ejd=N9 Q:wgn ~θ90~I0ͩGlTJp=hM:΁}t`a2̀\Q`@mFA:(qaY] m!=( 0|'c$3o".5 5|߳ͺh`tqݿ@.JnTEH"^A c&4F-4..O}V(); P_F0ԬϊD.*J|E!nUUh_chs!>z.,^1 ˔X ҍ0v >YE''G&c!sCiq>RǕp>ơqs#hpG[T_EV%mX :yt]-c  Rd JFYpnJ"wg9˒[J ccF-܇<(r'Zq=\EN4pw@B7_8} 7>ΪahxNZ$*nH@4ZPXy,[vUY `ⱔm){A]psgӏBު٥ҋ/}>`Q<&txy̰F&澆$''OWgO;spyμ~g^3ߙw[ ;˝TpmmPJ}n!,n'5%Q{AAӺj0v?JGĞaA]C YՄ2*a6Hz$!h}jճ%U;W 4eg=YS*̻hE\cyqF]].A>u^ OcNYo>rVEv߱$ QG( )hsU_HWhܬ_54[\ceŶT{E1Q'7G>>AԦv^§nJ6ŠȩޠYW̃x/\/V;{~8ٟEq o\Np1jG+-ʸ3kj +f=Ib=N5`Z(UKuZ /[zUgvs]/~E,ףQTQT꺃࿴ ߡX)G k>?BL]oo^\OtC'KP%M1J=%}l7WcnJ`vPZpк:D$F7;h"r((@gɒSN+[?&W#q ,>U(JO4{aR(! sRܳp9cW;U-ڹhCwq7mz'x+S ⊛ʫQ.t w[iVnoQ%˒#xQ 璉O/{˃SZvg$1Gsc6dLkGTNjsX>x&59Q o C?KkuS$e+m7urI.G@z*ucB|'62mbK+Eue3eCʔaT=h[G/p|[c.`ѨEz VkсQP`=?1߁`f(Yr~(ykQl_Y]]Ykk3i]vߣwVsSڮU׵`K-D㴓:(QTb" ٴ\{x@jWgؙvbDf*1YҖq,ݍz߿iVfJn\rj;Pko}WF./Ut2IeNH*7uϷjz0^f2iđj^ꏥzgQtP>FW-NBQ$m\ϝsZi1DKBC; ׵FTu> B4g'ßgl?<֞_ R_]a-Ódz[<|</Z>H)쐋*s1.5|5\އCݺݝ/K]<~{wzxNp=:='W~{rszxO^N=8=' r KiT.wN]neZݿLOJu/[W.ޭǧ?mAaJ g}Z_Rs\|RO^sӲ73$h;;`|_͈Cd0K/oR-7\65E?>,߃r?^7#'ʝ]ZcOg{ s"Śɀ;%׹ r]sys-캰/܊v+8 3ŷ6}(5ptX_ve-/q6i@g?F MM[/уhWMs/#Q%ʗr<S˼ʉ%Fq5uNvaB)5CtU([; P 2pbxk>bߌN˴,gkBѳg{'噌n b(jʙG>8^(£x~0@֐Y~NSA8"ؿ@Ws+p0 k*#<>=%asسHp!&ɲX@ptP`8U`DIZvvOX` vAjg@4wCBe~HGĈE`++OqqtNBRι!HY-zZmg:jHbDiBٯGu}/*rZRT+ ^_s{<3.bėNZ+roc`_Yw'Ogo#NVk+sȞPӲU j=k@?匦fkilL=3g3~f?g3~f?g3~f?_0