#!/usr/bin/env bash # # Copyright (C) 2011-2021 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=3b2a9b8fb5993008d59c82cf7226159c # 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 [d Y85 6W.%K.,ߧ&Y2¿}C||1۴pHp؂YH3 i2`_Z>qȄ!!v|ˠ<2|&$ &5溵B`BA"!!~ -0i!LX-AdԵK) :"3!}jш)˘0C0}X 68R2hHCmB+EO X Ă1X9S D`e[R Zh|. 8+E H"p= ]K>BD:Ǒ|qA+w䳱:)e=$҇HR2jؓ,)";qW_T 8z:\I%ܶ䞬~d3jg;O #U{GÁ"d++^[@JR_%eK h}i 3 l$ڕGRGEHU2:2\L$=X * :I}վKOJ+$ġUVǪD.."I9%„6V$$Vlr@2>+2Wh$}73$ŀTib]ٞ5Yq UC>-^P TM-6½|aJu@PP!LhHmWIx44{k2XH>U,bqS l̩2x#y4Ҕe8<itE_+7o%(S@dؑ'4>ü4֝Dr@Բ\loۍ7'^@VUnЈd>\QB34m25ÿVq90Ba45 y tIy:0@)3gR[]l|QU"uMR&5!j!fմVSPSwVG O3n9^߃awBB =S۟dwtXpt3f9=iİm$L`,0\|[x7 _.MU(7EF|/ZՖ-nouk1n3Dﲮ>CAr._hNZZ[#(rݽO1Rc)idY,F45 Ax|`lqwԹj5cMfkfywqOzghLァÔj2i5cʣw{3C1鉧;(ƥ([ ˧fiNt^aT!$ e? L^ /CXɄ"7,?=t R g)|Z4*K,/и+0q=P4dɜJ)a&f nSxE=uċۢht[u "5\ȘÊ- XHJyBfDvݥz4d!krи`AђQ'H1Ot18 Q)99,z}dh=l>nF /pѩlDۚE4LEdsGm]Ì5\, 6WbQ y8|JE 2hȣP!12%CH;2qgt m5n8$AY}Oƾ52] )4_ӡVe>Úu,[$WbuͰ))zTC Ԇɜ*3 4nҶeCdiQ' y`$cBsY'`9]_j>d8/OP f-S(.|jr剃eaGy{St#kDcΨ:clND̼C*IK"2t2' X\,,CK"&33g/ c^C7n)wĒ}p!LO~MV@X/6 BaC HD [-]}3XXKK3&E17W28ҷ<-S)3IjGz^@Z AwT ݄aUaj?Ir ^wK= pmkbQJGowowowowowowowowowowﰘ9R?,OY!,.Cy9}^.#ESJB{פr|j-in酏HܪWk9ϓ?' 7P:,q5J晬FNȺkUS廊^2@gk/%f<11zs3H4AO4F3m! oԱ?yt jG{tN ?h= HF4E593U=;U=1U=q8 !FG#`/ZMZny5Xv$GlֶǍ",͐|x>n?\xpm@JvџYf{d51yQz2nSv|٣Єe` &ʛf^jېf&60Q9s=IcpᩰH uaB<ۂ?&p/-vyV*sPԨ~j3~>r \R$au* ɸ#'8rW7@@КK"ZC"xlG#Fjr#,ԩpxDq@AoU1<,tL2{c% `[`PlM=֬[̔OqNT/fM!$-?G,VNԬW.@U'0ݨQ3cDiiOw )KO$ʻIEBO~@.f9Jʥ#7k ZBb6Rĺyme?ҭ}訌8S:p^glSFVOGiߣ6 Y^nYRkLbaQ3^άzQ$)S=KCƼ nSOzur6f۪&Ѣ`h?MuwF}1nb|{BonM(>ťY4dҙ[Fa *ɫ"vS.-a x֦xbsPixEBܜƽ+r0yH V=1=d8P'{/BwQ9ZeӞ~i`LkZ,]b߿KR¥KזFh@KI4&{r!n\!{+ veJ.({H8rF9RaBICg̈Xo l$jakm{}6S_k+B ~%J7UHܒĠa0ey8]pW-&Ms6M n6k7y~7xgQQ3Ƽ}<7(d:i`li Q'XLRF6SbNf_ܘA-\U ^R'0kn3&Q3"9vD 8R^/` S6&6 p?@y,o;|a.3oZMg(hِ{f"K9O(,ٞfҧAs 5M~lu޺,_Z̷f[_[tSH}QkC X%`Rq} :I6J $>ؖs ash5-%`ͬ_Qj s!"8d+u."dtydd*;Cnm]/%8> MA,N;JyI)d| t(ާ!y;rZijWTqkw'f k^4-gZܖRNm4/Z6G{${$Q'xP]!lJ+ME>|-{[` wAY24ud. ;:N_`7ZJ7]mP=` ~ޞF[.vӤqSXg^-8ȂD%p8l1<4&wzxx}#T_YQT"Řtt@eGU +?P6DJQR@U.MLC3< *" BtE9jK#!Zj;C+JjoIȋ&]Tpfы1_1OLW9<:l.t@G$ͦk=?շw=fP3]T4sL ٧>X QȞ{Z|?5`aeREʷR",- 3Ɉjt ~ \a{5VQ[)E#̦P09`e1<_Uj ]@5dlJn?M&v6{gX`2fޛෝ3nEi_~#AZ4NͶ"ZG9{ދn֔w M~51@gA*y?9лVrdi?"ʊg nr2;_U0`vCZdR^du2VlcY|D 1ܲ*՞.vÿTePR8Y޶  ŜrZwue<|MEǪ㭅Jq;0ߖ.5;H9Z[\Ӏ"?dy_9t(9) HtzskgC 5H]L2MeopC7{SMWٙtkGNj.uˈD]HNjB\W0혤,K$\vV+3h's{9*!4- $iܟbʸ`PER86zT.n1U $z?V%Dk$FlcUnXkoeՔӼR#T}<+v(T+$8/[7uT0XL~[8bzc%Vf%>'?=? * (VsZu4:?kKZ/y=*kтuG>p: ԼlJX}l@>3#j4LMYg~Z{7k8?OrZdݾ"L(-' G]89K<6p.0:zFo4uѳ۲(V3auzʹF/t8Q3+g{ϑ:AxO1%PG :=|d!ﶛhp_`wR2%I);'䭔1N5-9HV#G*ݓ%i-2uĠ~ M|3*8QI?ʯQא;a:ݬƱ3Y-:Te2!9s[A5s\M<139p iZM;YnDfJSfI"p>D':Yb Sk BM3@:B 9Y=~K8_2J72Dݘ@T.zB"=~֢V[6!m}jϷ1YUo3+v8AX-e4,Hnf19KdֆaQ@8Vޞ?cD2I'F*Ul3RE=QXOD% R;<t 3@e;ؿnMz َB{u6X'i+Ez钸eQ-եrrTb6'ۻ{?g'* p#SѱWNCB)N9:yhV ˳(gaRD bSwylծ!2|,鰜 mi%غIk#׊)s=nK.uw{Xid {I4߮ {7 (G ǿ_ɑXVKC9*UR(%s>`zQ[ =%Ul`j?42sUf>\$+VM63 t $nAf㹎K1\p9VT_$<# 'r*6oyy2f\ [Kە^#IjUkׁ67:+fC =Gnt` Yc{g:NNClM=@7N'<æueڴ!W$Ej8"fY-똜;=EJU/✭i$kl1j@Imy`U.?_GxVl7k+@|@6?{D 6NX=-ҔV}d =mL_b~?m- ћsm )o (LO|dڔ/0jN*۶LU:&K˴Z~e߰>j}k:~o)yT["RPҘIѲzY *nۙT? PSZ.n棊k~eZnY\Qi+GjhDw #a5B*lL pBpKp h>}4q|16xgLnto vNe*;0鋜9Eȵ/j^hpUX8_Gf"=MؑLQ128Eߞ>>߮{Rr^NCmV<?.>ۄ=?%HX_vt;b\NH٦"}f4#i(iߤ(:]q5BKOkUԘ ^p+!GXa& s3lE xJ(?Uxp)@-迯X(xVL&ri(H'_dXJ-[,{j ryVjz-UxȎIڽ^˙h2tfk#[Hȷ{7ʮSv9Pv}kYLĔ> ت3r0˛MD?`s[e?7J Ù#Gpc0)w6J&4mc.ֽx="(ո h觠½cÈ]ml]AaKc;91V-YFmDUl;L`^h.O3c\q;68lGyYe<;<^gکGӜ_¸Y=dܜ,d̽{9?k3?UMǷZ/ &,#40 3$k!ƈ鵕Q!$oӽg'v|*H=<'gG/뇁Rr-:pG-D%Bj9hx6D D !‰ .u@w딥D |vm~_##Aj8tw[ѿ+ҪZ8v#QH ?ډώv6UqGB.]sJg\m rkT9x?lu'-Y|&;ˏTcq>\.=\tبٽxqr&0~8O`ÞR`z&|mUWFyt1Жo &~4IOwtiaYI03~S$VvØ9[ ?Kxz>v [z$EXl0:p3NaGټ616H\T;`98S…+gM'4M,PjbL ח.Ð+ >,t!\fkll: XFIRbUɁCdډs|PXt ޮx0! T0xV 3O[ n~g}]d}ۖcF1GaߠAnBRB"'f2 AaUHz <T+eh kt:UGЏws]9?m vpC)'P\cʼnK:;eѦ6,dy? v1jCLx0i{g$LҼspڭ1vϢe| 7&6{(]pq%+Ĩ Óe4*N^ˤ| lHW$BHp^p?HOFftHn(fLajL|G(R),݃˵[&C`ndx|dm!PYv62pCDjU׶%nbztq~ 3<]v̛*rF`S=| m6_X )Ob!/H2j'cU yk_[H(D VMރ:}+m@~+ng i^Yn|"ί)DrIޕg]k #B(ЁD<%\\yP~aыLOFr1I&ΏמdHDxؚ]Ay`=̓ .~J>j_KMt@ۑ>S6=GH{:]Íd>{Hh|q-zֺLR뉒@(sH\.DTح5knR,zŞ_{/m2,kzW~;ʖSJ ^k;EL͆)2dZZڜ"2Twuv̇czQcCRaSZQ~h8`sfHMԄs{ u]x/-%UJ}w틤S ys$(_Ev,L`Rmq^LGK:bXפ'i9J $|gl6=9t FNM iQy,SFT%HWڔ 85!0:6IYqb ik*bM )H)f 8Y@峆5W^+u< ׿%F0SIמBAkd[4/'7\wh"[If3v&G$!>ґT6{@ h[ӌmBjDE{u7?KV7Dt6I1ߜD˽dWa[X%Xo;^'-LyEބ/h+4PMl\KV R"6QoM4puY M胜t}SsϽNR!L U͚z (_f7l&aS:7ٯ/hV/[߆HaTZ lM.g5xMѢnjvx86R2u%TXC*I/L&VPX ņ+2j^oYP sA#\f&qxtx{g~3CYcbp:g- jW-6\b5Z ~E7$\WҘL9QtkE?Zr&Ӂ(ޛl:x'K'ݷdmSǡtfy(m&$7õ7̛ 8 䜱<0ɤ+MfZVjt#VM:jCǗ[b^HͭAz}p\kӼXg}?p6۔^B}u o7JjZș6灱K +'v^/{y/ D ٲ"=(X*dY= N=%B^4ZR縎h4ŭG>3x ]1D>:҇?o[]Lmpί"m@Dދ#e,Ey!hTs2z})t? Ͳ,+AC4{U'+Jgn"r֎A+uZCs`@d"HĖ- []wtvo @`d-tM|{&pKni+| uSa},;[T@@w9>ۉNM6\ >B[f g$dga8;+')"$}Y}۴-@pd{`1BN+m4vȖGe.;ƫY~ͅ m'7{ծ`^n3cW^iEWӕǘtb@~7T7덋V6oWVxz/~-xU4]Xyʏ?CO ܎ UA`GԞ~A|t|J ;ؿ>6xV ΫON9 M#鸀o-Iv*yF1qT ɛa.+QD\QFG ȵu.ѯ1㤓ip0:}+2&K;{Q7Ima`XŏxfΥ꠮UXɓR^"zx<nA.r[T8Q Sgb G?nvn(8#]p+ U|6oMzԸekAѵͨpQ|vVnVgPUl􇱀z7DKnƢs+ܹa5g&[PM3 3`0ᵽPdVpCR!T?+++T0zfaLP8Ld9X&yܑGȰ+ҵ~xdIgP0OedBb9lpiB/$h0x qWi%0;gp@fZWv* 3q_X0nx 'un" ,;J"Z2.k?<{kֳ}Ѻ;_֘w!<.@0a`w{}DQ޽E\ @V4A-[q{m6 ϚQ~]DNmstwr^բ*u?gѶܳq?8:$ҍя&ƜXcw\s'*bMtʛz( ox='RW۵Lql%?|w^}{=g3{ř?wܻ{0o4M)!]ŎNlǰOl!U$&89i!rTP-MJ͌iXҗ8TZ8[RA ")1α8 Qz jbp뼚E^X nI-M˨~ ŇIo[;^LIkGCQ2D_ƍJT/?ܽ$w:^YETN~r'vGp^jlV~52Ris*TWYC ^2+i `FQ|IUEZGTl<iH3+Ish-6_Hat/!f/q Mصqo67$ Z{1_^_ \ wX*me\m4lWqXFo}#q 9 ć;V7RvN{6ֱAC 7Ym؉5B+LZ;祗Xe:G9kmT bUjO}@;kOjkW7 V\t ] 6٩`[೗^e VYrx3c<ݖ4}%0E:YQsk&瀟q0罰ܑ[u8cLF[Gou߭Q$%`Om+͞فV=9u8+=/*ì4@y@ iO ,#asv,>97= {Z~v"+iFwsyz:2)Y4c[)9bUgJEA["ӿE9[_+ J}ֹ瘎@4 ei Qiy=wF ~j[_*@wPQ+eߡܒ!Oʾr旑 >-ՎjT,auR!(6*fpedtQ"?HIaxXQPۥV@+҇]G*9Fث2,64Z ':msQf7E(tu?ZB߯Z+_q-Urb1"5 A ]ye pp&NszaFՂry8X` V 5Q[˫0"?rlYZW< T^sg*nf p~qRt4H8U]Wz0'WR4Arƒ6S,uXsͲ?Nj.n@?hnYZB%P8GnA>̮ɽ̛3 wysVWSduD')6awL:jREc,TQNAxɑ)R$dY!\%,[= aqvD:mqxn'2tr>mn⍦',PEL1tѦ^ R| Banϴh)r1H}󪉴0fP)bxcV[G(~;܈nJP_8θ+e;HٙMb9@"k{ƍ:~rDo:h!_tN$Y"HYY듶،ٍ6y{m]zމtTE2nJ <{Iĝ L[:1)?ud&(^ =59~C{ֵ;xR?.O09 bp$fYz r{:kt $Blc8c/L BWUJG5<>݉}˜y♪8~m m#t^5!=TBr׫wNg '!95cBa5z4a ƟhY["wmћ:ƭS !fΘB>Ř\V<[IlPs%[|$OMq2pO,$`&?+ʠB7)H!$4`^@pJ"41l7< Q[@_C!M Ȏ |p%4K>:I}V鍾'7e 㮬ˆY1#YRf,d#7g8 _ ժkYK}mel@`m!!,L}8?8Y kXƩѭ??w*}]x d"r)z^g-mRݲ!1Ӻ*1u|A3#k#ѻ++5^ܟ:1]\(^]{?~5~g߳F,{=E}ϢgQBI>ދOHRCO:8.9懡jJV ^az}MZ.7d4&{5J=` Y0Zt{ɩr-X%Zd9ThI`9&N_wϩ68)s*lܦB+{NuMx_E 9e]] nN/RƧ{/b?vJ` _*_mSå#7|(;_` P?x/!%!(~Ng9\Ïnmma.V*O\h}՝>8yuG_3>gĩXuKy\#/㣝bݵp6I5t%݁ Srb8{x›ikhvPN_uwQWY!:iu_F35pnj>ȣg%ЪQqwGb@Bc1(~4ۜ#ҳ !|v-!&JPfcH8Tei3QZ0`u|ސ6،[$>0/bO F$>?2%;LQ:o(*-:sظw)z?ɨ4A֥z p.{9W{u=sV*J?fZuJSQ2,oRi\9ZOLLZmQAw|q#_X:嘢5ȿQګ)o&,\%#" Vgcw?{Fx?2_g%`f Yf C|_ ȵ)qU/uMɼJ>~!~H*g 4n c[[1Н3@w  V#"~a?Ny!f gy*r8vG7@RbP%~q2.'S1kHDX8A=VL@I"bp Z]d/n%ڰxO0fg0ˋ> /JE4mJ\ӥ1Ԛ:یUL odK7Lb+Y8|Tla$)"D%ݟaZE|XD|n#zKAk }V]^TKٍ3[Ɓ2 -n%[mCR"1j E $@aďf 6*byPxPq4j-ig;ꚽO K=х<pd7JPorLިn\E& 囑b SȒ|j'r٢<3.9:J5`PQ{RЎCѴka>Ϗ6 aFkXTQU'9m7ǹL%QL04wQ .l+ȓ}`b~Ћ`Ӡɟw_#2^vz/xY ]w0*,DVܛ>מK3Q)?齖){-@nzqD,79^rQж }A{(0P6]P]*3 Pӧ0,a?`xW:H7Oa!vaA rdՈY  fS@TkQdȦc4 |Ed+hp@.PWM rxx}f\>2mA @me">HxD᥽[ )E|,w# a#xCL3 jeḄl1E%$rUFw%A Tw4W޵7Qs$n 9{k+:֨b?[W[a -++7* \e뼟^&p<2̉%oP{ W4bұF" k;(5Op1k(fOJY2`G;MbMJphb(3V>Pgg 1PqT6nd]˦ p˙ 1r#. RL²>2BĕYCe,Mc!хo{v觃{#\#M:h@4KGuj9O kbQsL@ƨ6Xzw:p_Fp4jus/#"F_S%)V B\{QwCJ XaN%kR'ERrhke7Cu_oŀщe2QC]2z )R+1tQua`X"-|B/A.܊уg^ecĐ]֢pZZf(fWvb&E&f>hRLU#I '_kف?h ː2+fܨ,NCh? 1S}300gb~X qeD ZZAF3 L'3ӀFAa<@q懑s5 u]LհI{Ts 멓&Q +Vr8EVe_sAJ6x?A~^psWӏq>bGW kKg^G|x{LDx I/?|~>*?3_{=y}ϼg^3ww2,w:PIộCE8dгKW#B-B':ӊ\?&d~6$8ZN=kGJH&,8C YFՄ`jH,]!ШmF?j$3P*])AEMJ rgG:4ڽa."ׂpt<4m?DOFX%U @1 2펎IMu%]4BhuIkIt(#v3M٨X 1w Yu6闟0vTǭˆVWh.Y:DdkS|(I;jN2E6pbY!V$\ (k Fp${y9l|4 BfY=] !N#r Nvvo׸J9I*obHp1j% U,ge$Dl^ůW.9 _ 6KNjq)\nEyEB]VhH0w;]i37ÄYTdOp??DL.u')R}g}q'4x{{/gPʵ$l2wMUy~ 6? 6ϻ:^R΅*:lX1TraY'kGfbba  7 [VdVs4qrfȝ9ɟ|Ԇ~`~r~).ڂ)6Oo7wr?s{6ژ'07!9G# >vޱ/Ԧ6Ι"2ĭ? XG]`^pTqS9҅>x{!ͷd[l+^TCE$޸r>e1Ꜷu>sO?6KaGV{ɶenF9zHVt Dc;H~JM~N^V(wV}<ܭL?AClzHyElr:hmY[,E$<۲h=: <SCCF=-*B/0VFkoe gshU'03g? yKQxp5~ZMC.hGQ'iuk='EPN]!ěѩE=8%VxR/)< vf:_0p*6`LԥAu|j7ov#,r(lEjtM>FRwIw泽ӳ}|㭷)pe.1]ꏥrY UQjчr7ФU6zӧNrYBRۅ:һEP{ &&6|>ouF~,.èЫa4!y?Ơ dHCǣ+?\?/)bT~~[r}'ë}Uvmuimem5mcm,jkTݿ Ϸ uno?Ϭӑ;}~_k 7x!~Wn\繻ƹ gwv\ߍ;rt~nyݿ'wvn\(e4,Q|sw|Fb7fk@G|jYH72e>*Nc׽h]˻'{0wY|}:;/qo%Ŏ_1Gѫ::>.~D Gs( ] lhr3}ۛ]HbZwo9bfDaFES]CE֚\݌қ(z8X_E@읁@z#ZVH 7>?Η=Yy T6)v HҜ{ i#:S>\ݞUEm%8IrqI *f8r?^5ͪXIަedI8Ub(^SGv(X:d_ 7Io5 ='ϕ;oa?GK}]zF 6}VX|`/gXX=z>|95Z[+m