#!/usr/bin/env bash # # Copyright (C) 2011-2019 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=1d3bcfb81ba43c84835fa4ff8a4f0360 # 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 5_\>5hDni  >L@P4$`&2M ۣ /&e \<=>IVF%`yY\XL5Gݎ!S"è{yA#dwce0AK@Ñ$d0"a W\"~7t%(H^2(\K<λxU8`xZd)x4A:]kuN(YV+Djzq^]_!"\:[= 'cv# O]$JGJ.܂L$5P :Iuݺ Jk$!e\&qY%2XNKi |,w}EC;A@:@g w}dٌ4}@( yw%A%$BQ " H*^R% w]Y*ں2t` 01PQq#.1iuvx AfD׾ϖB>oZ|sG1s>oԜ`/90H8O Q$cn&IhS1|M/nz?+wRkn;5[ؿ/9M? 3r= _Tyof/Ze!Wf?9_\垺jz\}\GyrHL`BgeA< 1Vڜ˝ao]#sSK˄Ya.h%`X:ǰk\Q m/Kpn>=a4eӔ'iJqmMJÄ#I,h `,x9+: *H ?&ԢHk[Y#xނd'l$ f@DAl孽<% T~6fռDѼ*W5p&rTb971ͧ9fyNf@4Bb)3!S)5[.S&g-f\V A:? %Z> ARWp$s`lǠTrK,a1T3]p8,Y>OՂhuu:f.΄tՖ2saO*&^k!yYTw@QG>Ttܹ,%fu=Q+5gۯ{#@/dz?y (PN[^^J0% * ˹cDl4VIxԁ${k4xzL#&{:Bj#7_%$e)*&=fc@*], l )l)c 4 _]JҖNt³!i~o-t&lnFY3 LhDq2_hYzo([Y6of +{ xV0!zY wIY:ޫPqmue.SMԖU XJ86)y ۾&omd+0;QM+xh6ThVOER.]U5 zQ | m տ;\,ff:h:lxf楾02akFBKIs4Ոa)jSV35o]pbW|[5 _M@7B 4[NvHl_zf# ܻ^c=pՠ2{j`K54a\"z Ն#;K(~ 7|ظtTssaz(K̐JdB\.@1`9a@xzNHKrr9`Xp?_(, vh\%\8]ʪZdLf0[NV "ZӚ;E]~kG+Z8;b]vÊ情c,l YD;Y5jB][W l7]Z#!):`󨸝Do &agTHFCx|}hh+>ZQK/t*I:L6 6g+ ncdcgQ 00c.j)Zx(D<fA}< uo=]&dێjY1ڃaKby> C2̹=y(T,ll=3$K,2f2T`<{ajpRh6"f!3#X%8F@5r-y+4(Cn|u`.aA/p>I1 m0Xt }R6bsiħc=j]Y]_fJeV\,i{ڑlpC]'s̅ ;*d#hI Xt{1.o)y/l*}珸ݗPT=um7?׾s_?}oWyOzKB*%_<+äUT+z9ɪUOkkwUz_ 8T)u .r_򄰈KuK~KAJX(fAGj6λ k}/`oZY2x#J/'Seb$f6i F,)`!1sPAdvTKTS ?U‰jkzs)cZzZl* K5:1G=ơMWn5XV&kKlFFF@A _#^(0s~9&IٻBVBju:O֬mYbQx`_T bي9<Ǭ.cSW0Q4sV;uY45o+OJ'Lw"P+qBu&np2?%ƹ9QYToNi7`ÌY|Y,>Oca^ˊu=fʈTSPդ EL CJIc|$"'za.rp+y+fܬ11VHeuoU; 1Ea]8S:JEgdcFVK۾6䯇ҼXV4c}N%h#UGhcnFbEq溣MMtb]ڎ7UtAo_6(g>`8Z q*93ꉱv㻋-zcw n/mE3g=7d-!q#TW!&\RF=&D&So+?*~ȕYqRV!?޿x垺ZFe_#}Ǿc_?}߮㋾%~K]l(J}+aWp*8b'&g/ݬd~(+[ibԄrre8[CvX$vbE.,UuIözZmΜ#H`B.׃[7w#x{r^gN7ha㐿lsv8X6?;p= tI+W>h}=9gGӹK=(G_z|ŽCKęu\>-Y EBܜƃKR<@LK~ C^}>zu">(RjYx< _ {5EQ:.ߋ%M ҡk^B#[4EօDꓢ \15av_, M؝w:3aP8bJ?݄W# ב^II 7{FPZaMrƿ'hM%# J1h{?KB<.y h o7یᏝV< [E\%"~8q6FA =*u$nd3%dىI:}r$S%,~o1vl(wřFQGd;$}pj$>,b ` S6&6X]wԼIg6}i[GgWqHjA 1ENn&oFj@h1xƞnIɤމQwN:uHR1xN{'|83x+Z%.E~o/$pϏ}S~ʡv,:m}zV5'ؑ(s X@55N~\'E_"*{U1\~Lmē}b}=7\solo ZFifd5QQKa rRWa@O> "dBP::ޑӊeͼ蔘 %07t,O# ^F;9Ńe5Md }[(~gIn U(ɣC Z)*@N<نS7 ^(IJl9` QTCM %>h* yW*r̵dѮKi"Na5nB PO +"Q 5Pi@0ۖxIL:y{td+4%qSg(m @M![/ EN '.͞4}"v7MT`.SX (ۆHyJ,̥ atNQG(6NN E}/}-5C+JrIaKMwUBȖg!j9O5P99=W0.iZQģE}mw_Py Bهe}Qj0bt?Lx}<a1¢,&T&†|?x042b=P|oʾ}݁i[ OI&!jˑaZ ~eEWZ Z@1J0?{˗PP'_y9z`QrrV19<4m[u .DK @{/Ez|i6b1[Uj m@)E<%nR:yֳad& \hCDsIdU]۩@2A Eu#9M6ٿ(d"hX؉ ̱۟.ڽ !*1P_N7 REúH.X@pM&!I3acoc*L3fj* ,HwH,H|De_N%2<< }7Խ0r[ 2Xf:MבOFQp 4*>Xdy~(P]}T5}#mI4"D +([:IO^[Gex5yw,EH7dOʹgTHcx Tt/gxx4-N1 o|Gwy'f1s@@0O|u2g&Y !r˜$rFncÛ* "bC?^V ϖ2~dPgU6ebܭ̯23.H%!L%cCCHI!VCf\?Xwe"iϢږUǨq;.1 ; $y"&e%7 |#R̆e0gMނb|ÄU%A I Kb"es Lۈڍ [/:" xFlʊDNaUI^7_277g̋di<`܋6 +j+24pN:$5BAƆmhwUe1k2YR_iKxo?<8eD\&89['ESAsp^`8ϟ9Yjs(#W.0j:~X5Ohk9La W]*`7.4w3n"aտ`_=5Dp8¾YDKpW#(Q`}y?+(lsvz͸Bx (?[8<@#)@m݃E} +wmw먖?bYb(xu^{]'C{~NG]Q)kaב:@O)˞xgb -jԔhLe!Z?{W`&5v'5~7&5޸%v9NgUU NGm~ :ݤR3I84dnj1y[mB&nU0& DL_n#M0S!nDD5Hf4ɔHm%JenUM-|!FmqB(rOlXIX{WWCEܖүȧPWH X\#1;<qv%~P+L jR|0tMGC"UL "ό#̥T5HgI5lպa/#P5v QNVAֽfMpqgжV'W$0YAA|Lk !%bUԌdIխWjdZ9CXqe߳Blm\\*H-u^{q`Y~@]]x6́Tr4ٶ}沬Յ|P>SBζqHx<D<&g] B+_- "@PKmN 4jm9Nm Wh:.Y@ 苜Bb XCp4Th[z}wKC*P` Eo`w_k O4~^O;_1)F(S@ ;= 3.iry=@' $NLm F9ƟP IH &Ǯ47CWPS>ߐD8Q~dՕ ?Ehb/ 22J֖jgaL.3nb`R]bs̼kaeq_͆39= p|ミ\:QuGHAøPҵ2\s:pX[\0Z4zjW:I‘{9n찂@vC0N’kOS;FZ*ap2*x+8T2&ba t(H;x??-(Аq!f0>usKUv~h6~clz*b EMOlY+ͺT_˪Jw⚒{{NXL&F܆\ V !8X]"~ :`*\FMeSl{f@ 7^>_2VYy& `%^0 3FX5;Vl1X`|{kle49T>e-nmEtHc-'5O}jʏ:x@N:ɗlm@P|8q ք&PSu*gl-}A % r>ع$[!tjeQP8l3 !Qc*_/]6TFŹy.NN<>h_ǘDzs7?E3{mĸ}h=n77pA tC0;{wOchj``$7O^rxxk9:c}AΌPRjgۓ W˟⦮/16@33C !H!!YU^vl5gJRVvCv\rpqx\Sw2\),g̈́鶒It{jv%ݚfL Ī:2 evn&FW,]m?3* GG QNc:ɦkuOhBLP-}K:N `PNo\PMG+ 0J ؎z]0ESdcl]։ZK7>Ӥ +#vYճ Zt0Lv_cs=O?`'+k/<ǣMw97T$U]/69FoU~mka=^\xبx}~!G%GzpNhD! #6Y+hZ)t L?#J("Ax<+HDn}8,F ^xaSօՀ }NN|~V, &8[+c!o7>w_- oلeƂ 9/ A]i3n5SU.z {(dgR ' x22s A%dav|Qrێm;fLR,/׍ n5!kTs٨T . DZ/=5Nqo26}ñFjޠ8vYֈ/xzv@h fb7bxxSQP)~7ZN{ZGއxh^2v ,d;`hjM u|7PqG ,IW1E';adnk,'ᇶyW q2f,ӏϟ m滑,C66n {h.5=De :_n0!-Y6guNL#@ 81Z¶S<[ʼnAfU&ODŝM/jpȈ$>^CKiG`ҨA(euQ*QG`.2˄ f܉=KxKp%OHoXWV?=2$p M:Nz2bӸK&oyA@lG ݘ1P (w!HANH7WCyO L>G \x|n_`NL)Rjp]>qۨӇR: `ٚ#m;?<Wzy=8`ЌؿAL l.luHr)p|mZh*C[^;>ݿ߳sBKOp]g,P ClINZ' y1H륟Q?Xf{}H'?(U/uH\[lPDvεdoW_ޛCpD`f $*@ oc@adc+܄6ʲ[N\'aDpRJIVZ;찐%ueF`v.BiݿzKDŽE+5z"6Y_ϧKZ[D)NHxELO IЮ}W#ɦ0QUfP>"+NPzoqd{rH!<#R"\ |v`Yd-NsLl2A}S[~"En\=C%hXy<¶zA*Uj 8 󨳯>͚^ oi*Gd@Vfab`3weRwq2Si)ӣ2#"H}Gj 5Ң,X .᧌246Rh&$ UTںǾԣ(+l&wk*bM{)H.g$q2*@ 3-4ΪgHZ:3"ѻBx9<:)$:4'٣8K8?C3(?Z1 b?gf3$q$d&%#GPômBr@Ev۟?n@YzP;6nRE R ?n{ cΫ}}=e w~5~JRݲJsV使Y²&Š+(+:xMG6F@o[{ kHv^{M_09Hj +zd[r%A昼&2&5$G|բڙ@u22j q {ܕ0ň`30Yc ̾ߎFxz*opV;? AQC|0g.,ZyeeX<>{T3(9M[Ks3#nCO[W]fxP۽9vCP+ Z,X+K5QYQnDPOiʨ|"ݻxFU!Gi2T~.x;rתx= _ힼY٬2~~ Jx]Zonh5I%.\_K]*)vrtχXe:*%5^huA?=CL ŔB #1M+7(u)z}S$(UTwY$fe2o3)܀FrP9Y?n=s+n**Y[;}_>)܂ `s;/ S[><恋Do_Z18]!G_.3tGhtǧ`i`1d@Ņ&JٚlJnGYwv>[O;.;|OC9F*[Tr*"o(I@pUWL[]:ØvBG0 }CLOJW 8\!QSFuG(`[@RwAft@i,p97bTJ+Y|Ef]R{PR;&!{QZMN3/G w,2m<5~[z|I{_a%yGa{ uiO j1VSPwLG;L(W kwI,ziO?_s@Vj+{|Y/UhAix.:;C8AT9B~Eǎ`1"C`~ QBT Db*7@҉FZPG))A/>QYAXBh/w㮂E_."``<V血q; P}4{3όO&2 1O憻7Wsxr?s?s?c~ 6{ ;?@ˀ 'Jfs`}-W{aoJauS [}RI VfakTwBxnƲϢc ?(+"ӾU-%P zʌ̲*fv18UF,g6(%h_L?@moc8w/Bok i]6j~1p!e!qYbGk\ jx0,r#oNoH(:z.U@97F*lDib)=j :>c|G BF*ȐX*+&Mq 3>:M -7čz2v.9- >Xmc#;IbD"#Xqa*ک *ɗp4@ic+XavuB+7ѹ1.:Eu_E%{6هQKYhP[)c/.K뵄&9['JQp؈:RؽDZ IkPst{S`U֔ Y.^]&3 d[Ywk&oUeՖ]i8I? !-]E-޿vILIu\370$Ai3EQ/=FO2tM}hఴƸUb`MH+(V ace8h) ]Bu%j f!ۭ]/E6^ϰR܂nsse8JPS5gd6,ЖG,;W07D>x)ș[F "Loi H2ݕ ${ ȓI)"%t nóC#Nwt菇%ᾐݫ!{Dt :.1)kE>w BIqC3a6U?Zm6\tI[y9+Y/|Kߥ .RQA. ,F | igjff="llӯN/q8:VZ@*ljB= f2S$B5;FWb(LEOI^CYq.x* |DKyo%AD)r<DFY&jnƍlFr{f>EV+'xfls06k ]-Jo{<j%ӁWx[Pp{Е<3ybb 0>.j2T(}ZqӀXO2Rkw/ӭ8! D#ɷmv=YFo=$.%Tmo3&ppZ2EkZIixKUnԟa?~3|D!*XKFxz$w֝/T$]{pL4].еiK)NIUo[A׍ëq O ܡ1[6 ōC%\>ֱ9@+8Ʒt^G!b(~ ՉAfwUD9oFk:,p4 /|&7;CĚP,vӆXT]+sGM#xC1vXYoqrpseӕUWg*\D"UO\|Sr:;CiM;* ]M_֜z3!nD,:_ kTI{e9T΂D3=']K^CODB6= #w"* ox (Y)+& 6&pvi?ly$V"h JCAjKh(K *2o w )68#e TTqqUCPWA%dOG8'Y$P B 1<A rGp ٖ 8id/ A9#[h0Gk] Nq!ۢEqSxzgQ ^Wh=r`(ƹE N4 VjS>C0[FNrs7vOS%Iv"Q Wr[gNg uOdV [3fY9ؑP?5Q3>S_HVih3gLFaK"b9Zbcs|P7 >]eO|q4U${56sx|/6_g?<mē|}#{^;x=V cΠ8{DpQ}C[=I8ôDݰZw^GߗT58lVVKL@_˩MeJFef\,5o$Oov|v_ l_zo.)FVޚv.gih^, ~Y&$>7捣~*$Y*?F1Y^a {4$p?ݻ(V%TBMbֽ5kuA ;ٺAQ(<MV8=</&sB ]ik!WK\RŁ+x;jCnX?{{o `?M4b ӽC5ps_0l5;(,|x?qA{l͏L{go{'|XG7)=AA~ f&ޟonuqgpBc3l !Ű v+XQhUk8 EёKa}ەhmqBֆP RcŪDN5 ǛhZa40,eq3 Qq1ayoʞIOOg-nh#`v_b7m/ONu+m.[#$ q^D#ir4N!L[0\7nxDY-9 lp % nUF+űdF\?k?a{ml$ksc<h_;W)߹&0\kS=yw:AG:&dl Kp!e]x.?T!k'92U?_׽iwK(m+.\i.P rW+0;8ZpIw!N_ċrr0J]Qx%5a\`m%-xȇ8@OIv NP# ZC1^Ս=[* ;O2Oy#V iuLm.A4W1~'B-`;%QՄ11) ٖN ӃJ%1:Z~ p-Ft^ӟ3aWyPF?X-[vszd22vj,j7,o$h/e hP!<0Go}[ c&q)+!:1p9ehĔ2D LRF,c>y@5D^ce4lW<8}??A{Ip4e"*Ept8Z+ȋ2~eВ_^(z:>-gF FǏit!쁿%8On~LgB͵?Ms ?ϭs?ϭagӁF<͸ |@.>y`y_ZpHz= ѥhx3.|^|h/ |Z7C/^ !r?#&h$(v;T#dJ,_G~Uv!ʘ 1J}PBk=f{RTm(+\>ДE?#˗4ƍ1^ljvo%ȅH5X[苦5G-1MyԾ̔,j狫`d_Y""%1qo2a JrnZyŖj{ \FpOR&% O=pFJiߚ׀ʨ٧ khRINP&/tI(M [kTz}3@1$r*KL+l$D[jc& 0 J |ޟ' /J!y?LvPZ~5gD Y(F>n6 3 7}dr)Gyz3ClAF;t,8TfH;lI"F]}`^ssĸlULn`vHkrmm m/A8k+u<^db9m;Cˆ5ahXꬾUJ:.BO1b1xTBc<2X'' hHRqiE匸4ՁkYEWx lN/,O;Ⱥ#9/(mdWAo$g+a.K6Ât]?l}Sn]茩&[hK+T 0x?5߁~`& <ojs}Q}n"y's?r?vO\40&MҠ|9nųr،*)ᄅ=(-Q ַ)Ar z((jQ[W><_an^^f2аi?&Xj(XG 9sp=ݯMXE 40A'X8  EcU:8P jWAe¶iTzFn ZQ[Xy͍3˟iٗ>px<#ZU=-%?9'?q 2BY__c<9s?r?vO<uƺ7^x>Y˗r\FÛSax>j\>SzN <| "1Eo1/N!.1geF-!@k@Ly(|DsX`|cc9^>?w&P(9c@b}/O]\j4>~ϿM][WO`Qa0k.JqHyvU^_I'Fjw28vnj7nWn 8ԧu ec`v $ gDYFИݰ/{ Qt'A]}- ^s~9s~9s~9g1c dߔZXR7F3^;F>1GĿ[8$ :dZ8hVmskȜ-a)["?PVs+pHS [+g{x2g~G< sadN<%8;( 1@iO)E=Z: ҀS|>tI*a4oSBf-tem[ aB6<%&18,.#Ŕے`ハYOˣLD=dqӜ!߅xX4P*@pMArDptt}qKc&1C_O%w/+lE$_'c]|ec3=Ɠ܏{x&nn}}==#G`{n2W=, JZ0,Z [ @rb1!^G,m,:[NN''''''''''''''''(fO