#!/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=f8046e0699bb9661a0eb23738950613e # 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 oZҟtn%׋ Ҷ9H]$J9:K7`[eҚ uCA"kjcD sB@Y"rtZ&9dj; DL^yda\%9,0=dkӀF4}gZ3ۖa ^3O{Ф3"Zmb˗ CBe{NKadM4/c/NL5pNy!0 `Xq-0! [_-i@68dy1I) :}"3}jш)K0A0}#68Rq2hHMe@+EG X#_L0Fx\{ݡIVF%`yY\XLrInGO)`i=PŠבF2i;WFӱ2ɀe%="He2t+]I.nw?PG{UPdpF.Q[^Wf<*}l0<-2ln{kp<d sR D "_z8fp՗FȀ*9iOHj+StR  8j>|cNi]΁“# qSY*cE"AI\FmI>!̄6%$RZlr@2?]&n_FPEPHl 3OeP"WPLb- k+"D"^I_:uϥ~[R֕˦SYnjqTP:qtH`r7&/xy+K=0-y۶,Q[R2x[mFr{*r},[۟ IV@) sbX<NԨ}|ޠSm5{wAyb s 0IZD"ɜ[9}5|{o8՚G\Yj_7uzjv69pn:1_?3 /* <73zp!`?rO]jz\]\yOL`BgeA< 1Vڜʝao]#sSK˄\P\0q 4zyW,cĵ}~(Lԗ%8^^F0OYYiʣ4ϸnf@ƦaB脑kH4i0|@< ƜGYEssjQ5\M-E 1XMLiY%XL+iȔBaJ͖˔x70:wˡ-O=P-fFL^cjMdִ7a eoܴVeG(qfZsLKrmJYilu=juy+rT""KIRr%LsҞ!Mΰ|o|)_(j0ST!+d{>K3yRYry軳 |{=Oޜ'dQ]ϑ:ˢu丁&4qcyRvYÿԙQ҂ `wC{otʷaC aNa4%ڂev{|QP ;aa6٪.7{QCwvL<@eܹt긳_WtnXJ&4üE.GI[CynWۃq_*Y=IpY)X (Vk<3#iK]] ρ]ꚿQ-|·P`wQ;BHۓ'-w@P-,CLulubz{*Ô06ț |.RBѰ[9'Rm`IJ0e.;Xa,s9$H޽#$e)*&=fc@*],o l )l)c 4 _KҖNt³!i~o-t&lnFY3 DhDq2N^hYzo([I6of +{ ƸV0!zY wIY:ޫPqmuy.SMԖU XJ86)y ۾&omd+0;QM+xh6ThVOER.]U1 zQ | m տ_,ffڟh:lxf楾02akFBKIs4Ոa)jSV35o]pbW|[5 _U@g6~\&h OZ1P*E ><&F8@4bQb-㋖zMLD[KS'>E17VR87]ߧ0Se /g ?gI Ԏds>)c.qP!+ЇGK݀+uaXF׮} ϵSF5Yh4w??w]sW?BaI]^UWeKaq23b~Rχ#Yrq-} J60r$֥T+UQ2vIl,~I=/P e,q9HiW} %uW+b7T殺VI3@g3cL R f:y כ<{PA 0Z94kWC*zFE M6EV :X"^#mP^±Kd7Uk`fg(HD>qx^7("nbi5l嵄Vz,!V.HaײBo]hb2"U,45T5iCQuR$Iwrf_ڰ7.;мC3GnɌ՘~nuײ7R{譅ɺK)ZXx"32j )#%Ýܣ6Ҽ Rfmͩ<>ikߗªF17{#1f8csH Mt/Poī6@6(gzGL^xM4gF=1nb|{EBolu0>šZ4c$޴Q%$.x*DK@بۄh$׋<^?9R}\x垺7R^kW?v]ǮcW_A.R_J~  eK7: Vbmq5흾\F֎A֐0+X uUc]ҰﱧxIb[3gHj): kf;Is~: jQT1>>_Sڌ1YAgȧGN_1@[/8=h]졼D9&/]vZ"ǸǯC| m `Og(4U_"(`Z *@ן^٥Ҥ<5W=k3/w>}Y,Im`d]٢-.T'%RdﭶW抹 [bMntٝw(%~+ SRϐI?M {L)1}5~)୯Bm }cg? /gay2a}T"8rKd(DȃRϜ?@m1fiJp_Ylӟ?P𨨙Kc޾DD\/6 t&8TgSţЍlĘs'G2UW&ɖ:c6"pWyhuDCbؗ:v?K"lh F 2elbOP 7)TțSll{$f"/Ss>Pg{zI..+Ӝ6{7uY#Kghㄑ06ɀaFcE`'H (3w-atN|իwv݇(N.D[ܗv v\'Vu1PMͰ`@/9h)3J}|ZOk?{\so7\/ ZFijd?5SQ[i rRWw`@O_> "dBPگBkn- NkubrX&Z&oJd1)P54$a:ѹwjA0Ba7ff ILI~(6'[`*z+Ł62I c4-00gl!jw*`?`7ZBwaM88CJEnL0u)#M@$)UH1 Jia`^$*F : f/7s_gBASq?1'8u٦º*QQ\p!I*oIpDF2ŠB(Oz؉4OY\FTnx1.h }dPnPQWRy0T/'z/ 3^h2B;VHy&vA`S ƨOܯ7Nj]Q@U*+G3=g~MFq j<$q`‹$a}`1026ƃY)ɥF)u l?<%-3;̚ (`-G6m Kb.+ʸJm/͠ NZ/gz^R- <%,P,-SóI6APOB JdgA[ ʏJM@O/C,cK3-?:eMJ'zv3 p|!n49DIkz;uҗH&";&WLD ;QC19wEW$D%&=tSA*hXR $$)y& TplmAiv,hc(>8qs\ܴ[/N,`.|wI*[BMJeoF Ba2ȚF'#K@ps&'t醓@VD2]$XW@&u_t8EJċaHl0eE=7'ynqk|}[>{f^Jg C^<4hT'[1.3pȦ'!d706l+5\F{,&* (Y״L(XxC}w )pJH"OM-j3zւ >~ifyΡUwh}TaĪyFar ke`mSUY]hng6ކpX웥sw5 2`Z,ʇ29;jߊ+q9kNOW_!0't?, 6|M>XmQom<;W1離qpA&,Nㄌz'Qn* `>GJq?OXDؔ8v,oQŘ g*k-|ջ3464|ZiHoܒs; ^ |#H6 ^RaҙꤰK2f ͂y]@6!mjXGT%/U [dly"!3{fG$WȶR22ȟ>Dhy9R;oP,3%n>VAňn&%,0Rf:l4Dzү qsmt-}-ٟb*Z{Va6OY,#1o }K3~1oțSc>fI^#0P/-hSe&xWeE )0a$&3\{<Rk@=H QJmlҞ縚*yA AedU*ޤI|fIr]ZRȔ$h%ھ2= -*B?IgLc5f"OݰA L0' @%2w>E4/ĦHmlPۺEatCvTR>3~o~0m=nGlx1"J7XrFwq {@AI>K(yOQ' $5K9JS@sRrOb N(q$7aCA*5 Js?e S<߻HU+RU,Pfi(GAb<`к@Cu&Sh{|/􂆱[:˛I[{W.]׶ A+$g"43 08 OOj5Yߢ%1mku7''i;U~t61'!3O .QXi/aHCB#vLKѺ܄t8򶐤ð4LXIb:VDC!G y008F8Yfc,zo&c8=B#Ӑyh.2UtHكp|V ]¬ɑV r@) )YRPJpe{#/Ra'ㄖb^,$Lmkr)XC[7+2sWfV}ݹHQX4 ӟ^`KXϬlN׈g`e8"p,28@KUYD y͛ oo EuR]\x#}{s)#Q\ T\\*, l!%2PGcݮ=J3dW'NSzr;2Tdk}&5FEJԠW+1,[+R[aRc"EzORo~KNjoR2>6,oȲ7 Os#2$Mm_,kua,B2l-H(e)և>;F=U&9RƂPkĪDVyhB%~۹0arSDz'˦KPC?4"'`dPć53 ˖ѨnhH L8ه 0jv6YG3Fx9qF^R| 75e`{ rPye>@.?{ of崁鱩͢Vg/BBɱX% ͢~K/!C߼"4py?0>ayueO)؋xrYK &8)̪T|3omznWi 5D}(ȫW|ϥcڷ$'Azwoe#y?ڏ{Ȓ/|'?y~M _ԡܖc5~X`vK4",c0;G#qKf%ѩ 6\< G r.BUCRևjw@);a((&+km9~4Ƭt %?TcQ3b۽]L䵛]UG ˣQ|WZy@u<22i>j 14&3(㏣& ."vd79&ئ6Xg <2,O mcyӡm[G}Ff|R t*2o7X,[Mͥ"o@I80?!֘!RQw#>|șlyoj`&ziד2J%{ 9YRLE+Ҍ)6Vz 6[CZKh&ݳٽBqv,V獰S/"Mz$+ ei 'ƽGqr@AwGhD#(Rl ø2BĹ#9^xM%4E%4SWVNd 5D1>qи;R:`]Zcj7;+邶Ӎ}8՘vDVLj>#јy[k ?T[G1"ѿБMbV0_/u:*GEeYuK;AGUQ}b`E"%+qߣo/m(-=K+ܖetcvga4:$N.+{6MM,m}xMr߫vq7Y7ҔD! ȡya7W3p]ңXMmkl`j\)MJ\Yur)%[HUD:9.jAi~xcIFvvkJҋ`uCTc[eF:Q(@FW>̉#nsJ~K9!zx'2j膰vHK)-sC %$"'}>THhIJUHr(t,eծ:*{'SJOB3IVdőՏvBEEVȭIF ئ]d(O+&/7 >3!dzPJ#(gHvT8g+Aq@)Ag_ /}+c߁a,UHNV\ab`xwe6g&>wpCSRc#"H9hGj<0gaf\._t϶kۙK*$m_eȱɛ+vrCj϶Բ._K6r2:"|t%*@=b|4<D*Xi/=%"hKo$OO!ѡ<]ZǨ)A1ay+i6Sa{M2lJJBfHœ}V:2z5L ݦ*DPQQsQ$l%RdA7q(obIpNve,=GA RRU2ִ"͊-<4A-mu<]ټO0hqd8-rt=$?iTX;ku TFb*%]ɋLaV]SW*٠=ʁбR14Ac'ۢW* j4wm71)x7n%< D\ϵ3v\h\.F٬@Iz0J4)}] Zf2dJ\wq(de`TգA>;>eg:iϐaQIWanʂ S rIY̊1y߅^:싁"S|'O6” w^ә7!ɺߴiK< +a8[8$`p3[>/уh6=Mha{ʲd?ƓGG_=Få60S'HZn9h?f cz+©:I qFON4ƃ,QvOޅI6N0B͏.UTs+չbhlfPrZ,oB3` OJs9݆t1/z(UpV=  9tCP;YV2j Q5nzWߗQDg'*Bd!Y,V֪*t{m[I<][?F?'juzC]p8Yh wZڗ`Yl+_ߎPtNM;?QQ0.SW?8j ?rCE.B #0-+o'u)Tq2{Ãq$Jaݳ~|$LHN±=-gnłEeJ~ĽOEGJ"eˮzǰh~!7/2/(tyM(M@KY&QY{2#fmop#_)v=Zve\wĝtZC Գb5^9o_Y#\ჲl b|KI鸬&.B@աBFzgs٨Cu_aA5j)el wjF0ަ^s3+^X>:{;e_э58t3ϲy"Wm cSBKI.I#kSQS0̮e0ʘiͺPqu6Rl;QZݥVnjS0OѸmY$s1]РsNJ%.ٰ, ] /u+nWj55֊%K6+ \+$@!g 8ߣ%1p69;ț97uRP3\ӖVw40БCT,ӓE9WHkTQ] XП'1sk eP):{(DJEQixY髹$ԉy dVᄨ )Ѯw,2m 75~[zbI9{_f)yGa{ uiO!tj1V3PwF*qwq 1NT)bVuUP$=Ŵ_Y9|+yW>- קMQA%hx.:;C8AT9B~Eǎ`1"`~ QBT Db*.7@ҍͫWPG)AO>QYAXBGh'.w@."``<V血q; M]G'~25~Y_}'k?#mēm w's?s?Za\пϞ?þO,?̄E9"xk [hRX]Wz4V%1.VEhf8z.Ħv3|m.@RcGV5]k)UaGPfleUA52ng=DI/!G{dek~ G7ѠG qR W!CZ=du \Gra;2l@ z$C&! :L9詭؛3?R%,i0Euҥ (XE40< 1q,;G Bb)S~Ke2Т0n!קXG׼j7AVfGSSҺfVg' {kUh0PdgD.euwAmf,}rT>dPo(qDQ3e`_Jl&;i_tS' ΁mLY gbX_./q|]&5d[YYx{&pe]i<@(@1g ŽX dv#[,:ۭ{-Gr-ѢXp7Iǘ&(*?cj!S2z &'W/30~̺%45zmo%w@ESkIlMU CԇKk[!+($BHa6VF怲8$%dYZiFPAYQ /Rd[Q!y +5h-(,1ЛǞ9w]։UN8UsKgomY: &bi~s3IPeĿ}*TFހ*S_@A%BKKqC3a߶U?Z.D-޼ZO%Q~h) |K#@w>hR||V35TeNt6ql.q8:VZ@*ljB= f2S$F5G<Eb(LóEOI^CYq.x* |DKy/9AD)s<FFY*jolFrsf>EV+'xVls06k YxЅMg KKÍN^Jͼn11O0>;5|&YlY¾ZqӄO2Rkw/ӭ8!(D#ɷmv=YF{=$.%TmoL&dh컓h (?Qm-r fBTH";--Z'i_H A iG]"k?Z'۳\-R4ߎ6V^3 RaOcl8JLC}c;Rvqڋo Ɖ=#qxui><)E'7Tr G 8s3  kB,N\RMbqSu}g7d5Ŕ%co1gUȥ•J ϕNW>We}NHnpT>qO=*o~k[c`5X j34M~\s͜:Vj뜪Jo|!NQ%LR9d0Ht- ,RVgFz*b}~dL"t+܉t4E4JgC+КۥXe)w:( ]!m/,q ංȼ8ލFxFA$wRQEʒU d0$KȞp OHz5c8'hBAp ٖ 8id/ A9#h0Gk] p7ۢEɀSxzgQ ^h={r`(ƹA n4xMVj㇛S>C0Nrs7vOS%I|"Q 6ۯ"2K71 0']Μ/!dOf{r-š~6O tffk}f>kDVih3gLF.K"Lc9Zzrkqv@Fhu2'p2({l2 jMǦ9Xi,( GقB\Iڅ6BZiyiC N [r; 6.y0?o ,|rɤ"URlj[Q}2Q^ (-LߒYvY̐yu'V‘y8 #@W,!6d26papK0gh25 O8蕎ݣR5 tzTB(bTaTBso)U@hmKT e3V:5L?PZydk}|Fxrc?vOgFPR{נxzShP w5ܧGok aM ߿K@AƟ8^߫iw{;nO5;ok {Nv~6 a0̰n_)]#_"BZۗFO)Z\ ݮGӞoS:H667(Zc\-V%MvBnua8YQ60R,n!*N2&,M3iui Z:\L@`_pH1F=ȇ8@OIv NP# ZC14o=[* ;O2Oy#V iuLm.A4obn%N[8v"K b(=$bRE2-'J b5-tV6g(7Z^w#:KgſO ѡ~Z1ĝ$^L>Ա pS?o=$2; UBu I5I PJ8ȽuԩB&*N9FTu> }}&?{cn:'"+dB?,^s=n+dB#J3-ĩO!\/*,'LⓊ%a%\Oa}4n3%xE"D?<.G,Rf(tRʈeG"ثy{\{7i ڃO)fP)cxN&";pAu1 9H l"ڋ9f/ 8-4ӇQ};߿p▉W|,s" SGF ':GK2&ߑ< `5D:Qp+mO2Fq!Eށ.:Pjp$NM6/e\s0]-44mp e:wc3儾C+A_^ey?`{F}NC<:x{i%*j5:XYEd)p2<$"N̝DS1pD2d&{RH)ln-$==F-c> )/O;rI7\&:[8C߄" j5FnFsf+NX+;crLsm(\gB"h&ƅew5ҋ"\H! <Ʉclb\* D &Dbg vhbCz6F uuAtQ+q3B -6hMȚtQ7H0yDk 1Üs. A]~1F7`xE) <|q1D2̩$Çk\*hVJTVxP2҇\9o8e+e,SA~PlN"e%j[猈M#'0nFl2 \Vȍcd!qCiqz|*cT4*,L vdzeQD%,ʚFUrvFԯVt]G-c +2Rd0rZq0>":˙ܒ?NxQ%; CRVAR'Jp#H\\o imÑSca |ӨߍX1"%w$On V3PxhVIJ4Exld| 9 G'/. Lw"8џwס鏲2+r}4%i6ϙڢ{eT":)/%]2^Ƴ }$sH|B.>{tfOZ_ێ1KE1p h)\[6N2lJ:PI7'3TS57]g]a#!R `4D)t$I*~ {q @OĽMm&\Ab'#۪k# ?$sy0W8Zy؇7R1n&fU:Ӑ?'o~۹jK%C[2FK E&n'٧)vLۢϲM2:oM9fГ0Ob3 }XL<^l0#թ)FxGQ "n$hǝnwCy8  Ӯ.k J6i:6mŒcd>.ZO Z^ r.tT@-4YBЭրYVP`ǟ@[ ?0]ș2Гjs](t{>o?_ڏOʪk2O)jV^^ Y 60ݨݫOrlFͫxYbo4*ӿ(l_B6?*bRYm f>_1h*̄4KiXX~ܴb+&fgXtP}[+K;P[.ml}S`rl5K`2X:Z E:@4ۮ6ND-o]p,Wh4fhwg@v/Ep G9qSB \Aw; "q?sŢkN'=İ,}^  k01\B+.ڕfPw0}~mdTYrGSva|sp:OxׇT;>#x=r}>C>Gpw@y g\>Grtxp?>Gqx8."4-A9R=->\(H7e>INc߻h_'u]8 ?lAaJW}Zߢ7!$5Nvj\uN}Zbq<;/7N`m{XM:̀C$0Ko%,fR7=?#BuV? /}`2jjLH?u\c ʌr2!B( H)|-QH!-ɚkX`i|ccs/FEd*c w3F ,'DF+ ~Ae}< ZݍYs箈ğgm(^|j;jf{i-@ ` fv ~ngC}JQv ?VZ>8yJz`=aAq6M}bb Mɋ Bn+t}q3c& Yf_L:Ov/+ٕ/|M+c')+/_ǎn5ZY+VO^#{- VBVÅ\XLHj1KVSɟɟɟɟɟɟɟɟɟɟɟɟɟɟɟɟɟGz?