#!/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=f106fd8ee21da7fa83e850d30e071d6c # 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 Ye⥙[30A0ux!0]c1NGŒGfz@=Kنd )L$bZl5"wEVXB?D bpdLѐ@ PDŽQ6<܀,Fc L`w''4ʈ?,<4/sQLQ;^Jw9I4{rz6$gvKD`;(ǣaoג k_){E7 JVHݡ"%tQK鞖 p2a.$ґ32bOaG"}i0T4 ѠSeµٖ*@rwH3N hz]y$E%2)e$Dm)9D@`]TiO`*n6|Jf .> ,ӘPAsa ("Q+S۔qx.U.¶)*(4P1q3ܨضH T%4YxvDr {7!L 3;5ށJaaS?&,;ebE82.^Б!n71I,+2prYw;n@a_Ʊk!zQ0ȶ$ l5@dF$'\Ce@O~gJ!I1u)ע5EæBu}Mh{|\Rfϐg)#(oecf/ 0?tT@a_]uoplPTdY/t:1Mi}[#ePǧeB.P9/|0 "%r.X9oP^A  QS:jN*p&S ֦jtBP&r3iQ7$уP8خ7c=iwDNC=PT1HKEtqBIl 2F͉<(O;\~ ^da@"Kex!Y0[QYmaG< A.\m*j=܎XJiz0=&loF[M1w8_wKon,76PÁ_lYܕY-=.qb96zd+MRoTu~ҹу/Jڨٟn~dOh5Y{(V}n?yF4Đb>E}n4D&i^M h'$/(D/)bX[吟&q=6kyDx֒aDxf*/VTVRg`g".obUG#GGd[\j!h'Ҩ=Ժ>pa|+r Kr "j\,䆒`*Lβص5^LH˦Nv+4\cvb1=oAIf7=m,;4 - y8. mG Fޒ*t?29p0B.Y68YēB`g CC,D¤[-O,0 o14luDB(1"2E2EL[n!*1 ߭n)?7 `PG*j5`B z"&9cgO E|! 3.K:>W|RUpϢStc~_`)쏑ABavp1tDkh=Eq(ņ`EmO[3(ñDI@=[x,n!gy#s CH@%Vbw\a Y[ M2‹4~(pq] ƽmskZ‹ d*LB,c,18KtY\+-7ﯬ^?iof@}u(VժkVsB)ۍkbf Z.J˱NAS a2G9l>V=ąsYgW +;~X)q<@!{)bho#5 N$ JC )SԚ=Y~J4Ɣ ,zk6'TӚ4 fsW괦gJ3Pմ3{ TJgZ^2a\HZq@?&X_Ѹrz8ʉ7oLHiE`Ӎ.vAev\J`N԰!B@s0R3z̴uǰBX[ơbBBA4^uk G3  d[=,Hg{hu(~&aiaVľz\M]uW}9oI,e1Bb`AQ+%MT? @>M;ԅgvW NR)ܟ%\D㗙q'E-*39(fQUhT*4!x JC_0Fq?Lt#˓fX$L7^AzQ{F1.6:~bZ**ܲ+9bf|"_Wˬ?O Udnk8JrfX|B0x ӻ83Zf } A(r{W'qW08'M0jPvKMl 3~_33L;3L;3$;F$1Y]eR>n'A2+C5Ѱ{3w]اpqEYi+InMϯ>JMJ._=MH:頳Y*u:v_8m/VPәڿ46K~`G%pݣ+O3Ee< Z$. Ct)͕2?ywPr rxKy l/M@LN;j$Rpnh&4g70XlHTX  e|#yE'"bWP< r{f^v hyg6 ^$f R Ȱ}iFe֫2:j1ʷ('ؾ/Cg? (а9ԨMY OCcȨl#? Vr1 *#1 CdecHh3V̫v /#LEPVui@#Vjf7( I+(WW!*:t8nfq)t1ڊ%‘+k#Ԁ}XB8a2펠bso;~:fEպer|{ymHBd s3SgE@/&o1q[QUq߻Ztkĸk ݄<4խEy] EùHU.X@p 566F r3W'x)zBMW[('N/1lWLVVU$fyGH2D:'jP9*Na~62h4Y 7NJՀnT,N' ͡]j_(lu#mTn6$, λZKKO8r /GΞIox5MuNsrT61HKi{>Y޶iHR zY?zoKèc+T*BҶjxir|U:D"9a[mWX6K@"g,$Fiܟb8aq$חhASw0ktS+عَ(yqLm߫ 1{l*4P)yto6ͳ&?BvLDY_ڿb!d?C4>]יe>H ɓ'gȟV<+ڽv NAXIӦ'9y=N*kɂuXVySo%.>6UT,lTf- 9yV2'.V{s2|VC:7~ f=gBiI=p؅tc 1&bHp^e E ]VӇu־j2O]5ûr 9ctGC-BH `BVnyݬS|*hT™{rls1Y+eW5}sv*5W=kSbOO0QD?J,YgBv LQڤ>IB /~3N \'!% n(qEq|):v}fe?>Ϋhrp,2LdAu"DѠ1z I" \7*4j׽c-kAsew+i|@S I9|to3AAn淢YAWJ3X~a ;}UĤ~l@V6!uJ}1YUo=+z8@-4,H7nhU72k{6QNDjL] ͭEpN^( %acMWE:NK +4#{7HͪgѶ8m)PpUO!T(k4W~ieл9U;!yCaG'댔nQTD(Q- *:GE?FnMz@؊ -[ebĿkNk r\YZ.'GOf`JqSzz\$ Z'?D}Ey ?r0{S[[%.ӥ)e -;Ϳ@{6.[(&w4g h܄ǮIjl(IB[TUyZPݴoXW{u\vR!nMC.>!ϧhŤ鑭.NgOijn""!s6)*]+iV9lէ+^sCJW2J:kbu.l&>8x pk=u#ܜg, mֻU<_`\``8ј J8w^q")X}hoHB -#[W8}^Obz^=s|ᔫNr?{S;D%\~h05f@Q:c $砮20 ؚNiWD<^&\4$ZY8P= ryJz-ޕxLݚy/&e٘W1{XH]ȷ{ɽo]lmrִjs\Sy@VuY& ,|ER%(m,y' g*|L\*J PäQ\Q͆X~W½cň(^mZ]k–0w H!"c4d%l֚\!Zb݁neKBsyM.d۾qc=*4RpϴSB9x7 frs% /z '@yhqVQKpujJ(k$bc %ZJF XOs${#dڴaڈJ7 Ԟ` 5Ѯ,k61~|"k` '6#LGD:0=zd7ͬOmhŦ1j eH/>yO\ -9j<5cc*Qg.T*,׏W/O-7"JONO7K*[+,KRc婄*uX6'<9HzUS0gWY1 \'  -{C]훀z3FU{O-(n3 .yJLkamy2 mo&"85wׂ@(DAybyi_᱀TN|LlQ?U˶k^ - ;& Y'v\uiǁB5=9Sd-])l ݄=1h[MbQkXWTYJڔg8ڬ7sFDJ.ã(/hǮXla 쟭 Ş%LU#tv1jtFGj-}+H #S7-1 Ů'Qch8ڣG^Y/,΃W𥉉+@E@vPu뗻p 3"(~*bF^;;eD.hExM=T;3B˧^k'?ݡB$QKX{TT;+o ipG7Kp%eNCwU F׬'\l=+mug΁"F|Ew!UrĦQ0Pڛ#ڛG?TU(IISMͳ}SB/9y9:z.Z'Ѽ\sʚ;ne5CLKf*NM7v( Vtz`z:2jb }ݬLHUM lAwOy&dPxYg(oqrKP AG7U^o~-W'q^7b6A 3;EзŤoKӕ fzxTCVvLu{2<OwOj̆|K&Ke퉺St8?TYƚpZ}k4.j#y(ପ!t셫Tz329bj/Kn"lIlauxM賌쐼aU:0Q+7#?'sRdN]Zٴ;??_d>!(q ѴkY HV A'[w]g'-$gJA$Fvop~„ w'r'-CKVc$b2꠼R#j_iXq9d8 +c_%l' `*%O9U⎺-(sw6t6teU(˞\7iq<ɨ0ydq#6΋׻?r'ЇK?K 02;pIwlS6A U&<[,oMh36;BP%t] O=vRt U U=S7?w]'.9Ҩg 盬W;eD._ס cLʂ>TX#ErYnƀG=|x@Q3DF@̫%4o"U\mwLYqm -JIҋ S2š`(BM,~pwt/ܬ&s#0;8hFnb/O֏rF(d9&J1 (]l7Y J>}{gY{"Jjr{ VVdG&%WKPSXW @&Gm<|m?g0dkngf?g3f?b mCt lK2zְAK]%!`(Ia_pD1ι@j }e'qwA%_wN2B&Y- 'IwXuAWKQ)zX+?,riVt"_$+I_j-!Tn׮mӇISʷ(!rN?TMDخQ@av`W -PDUs)$Rm%VES=Lm{,m/=4m쏝VqDu5ÖDfV1ϜJv"Ktٸ)X$ȃҳX_Lo9KGF y[=ɣ,ky& N`eN&]  awQ *7G]ƹL!c`ʃdAgVa{QjJHEwACY08:ɘƢđC ֭ʐx*UW׾e^|t洍5Q<8qX_]+&F?"mNꅲDGt{cZ5*6mtR#+:E oM@^ۚ S Zrtn Ld%Ƿ8rXu _"QI8e\轖!{-@v֠G8`q-:j̳`*:gcqP Z{XFLsoUJ]:\Kxd g,. /'؅ 3˖{} ATL˧G ;s${ih$l*61VQTS";ޞӰ+ً:9lviy!?Wuc-Z>ءDd̰gca'j-"+~ةeϱ͡bBS'*>#cOaS81Ft.;o| [4wȱcFFs#ґ-Kv Ûd$4޵7Pq4/muO.40>]-4Qv`2U\ZhgSxRQi}\*bUv;:9>/l)D@XM oUӳ[zMA H`Nh^ nszxqc=с- Gh+Uj Jtai)#MAF97WTHdvx:AQlWc-(CFߌإ& u=kbIkL@Qu;R4p-MX^βsP#;ED#*nw?zwQD:l0#m^ZE@6̩xTIѴ[Z FCj)FL,(Oal=u/35^(\}[ʝГlC, HZYكg+ice]ԒÃ,YsL63[?Ϊ|JktaaduYfW"|"x֝ghʩU&*ƀn΍"%rc˽~Ъɻ/cWiohύʼnrugEP~>VcF8%09,Gx!Pҵ@N-Ua;sny{՟cPp83“nb#h5/AκCLհzLsx@ \::Y` wKV:K_fǗE?_'Q^G`u=)N?HȌWRˊ|cB#Ge]L6V6V=Gk3/g3{f=Co2>"@Iqv_x!MJ8ҵON qb&fEaP}s=1(G %K'^_վYkLm  y=Em|3*{oBo'A{^;&WZ889Nwp_ԏ^=;'?ɱrWvʰj2MadOadxac?Q͗b tVuK4.=T)[$f٫v\O# 8\ 绚)[>_:%{=S ( J4Pd^zUX^Jb # Į☕V x{,Ҏ(+#uE r($1{$Y[+6J$(?bto;"4 FVMPAka.nǒZݥGR)Dޮowtpgq(pd㾏uc[~TKkgQ^MEW 6.u%I]W8U5FtO_=/E GgJeXd݈O3w4ǣtdE{ޜ:t*N3dJP`=ç Xc&'Bg]dB&y8l"/UWβszlM?cu|AU2Wjxy'ĆmmmnΏ`-]Ap?5oCҀ>C56t:Jth݌2<̨KWz~28  MUGsw`^Gf&4n m p?좥ެ1Fo{L5TfHYR]hô\| pΌX,AOOm/[% ᡲV*{ brFVU p %/N92a6_nmoٕnH7?WP%ֆ7"T9s$MnJw /zŢar̀銵,'I-X[O*RN[T*&-*ָhߢQ'&v"Ҽ/b( $v&^k|MVF>3 :Cu vЂ{L375[u8SuD-;lHkmLv휚қN1JZڣҜ ب]P|B'%ݚw͛mej?)f/\, g'yZEͱٺO-ҭ[2rn>ASemD8'=IT;iJ:!ߕ#B1|}2Z6KRSl9~$A4q׈;]g`ż%S~1>a32"TVewb c[E[8ލ[лǖʯA- ^ =SS  ϺuG31umn8w(>c[ +ᝇK|f3of7foJ뼝E;Kv/]T?_5 |R{Wkg躛BI?j7ZjsǠqzpdq>2#޺'euGtaX-[@3 My}#T eJVL0GNtr؝[z1`6Kڃr:VuLH@,*e֤И =0$0QΙEw4{],1PXmŒlPmOOU:]/|ل]нDj6xٻjnQf͊ڃj] "'eq0;msQ2bw'5~ R- d+*F.19ǵ7Lvwo{FJn$*W&.ơD3vI> =9-4jME]Vlu1h SUӵM Mo[By !L7Dp(Dr*spaft&+վn-dZ{`O=>K8,6 #E#򩷂j4Gb$-sxis IO) ;㧡8؏{A0="!$|F:\qD\lBtLb@@ȓBu3S%Eq* T@C1NB{c8oQP jHU kr!qy2 l4x*v%l_ӝӓOb =rh۞0#XO+}ߌ+\h/Q/mq({ Y -O9b 0Ey &HNUE) %PT!0X6|?Sc۰篿U^>QCQC() ?ά}-PWaYdTmrr.Y5 NSgpINt,3ig1Bȼ.&(1/ON;{5=$5p|ET}7&]K'3¾sxc4rjũ+o'y><"criGƹp0hu] /1#̸vAcl2iaG6F~;wFw hDZ}P3&I4cV>٧z`JRGO) #id0!iߦVv0WcwV|Y1 ?W'Vul^˭ XʻPYҝUvċ*q1=afQE/ r)iXPh@}2V7g[y !m,TaZF6w/$n4a * nSLsO:H{1_\L>&/Qigõu{|g3f?3gq:ɀQڽf {Tz[g<.p j ;˝` M~-j4[@;qolyDFw# 18^p l /!UݱWԴSMN'9>(NQ9'ᓹjmebv?/(z>2F<|T*{Hy╣Kq{^~V~]Z2w5gP ֈ1 u PTa%+ERvZ Y#B)^&Oet|k{~;5k#x;Pnt'wQS oG͇ 0DQ;t/Eء1PtJ4!b&qory1 'ђp={ys`gC%{Ձ?L"sy/CRDa5v0wZ[Y{]eݼWyKv$ܡpe(BtwPIaң;8}Nnhc,(kB"A>S|D{5JKJT%x . " }FblaɓʯS9cW*;БZh#6ʪϚnCl.9A,x(HW Y a%"ek'ҿ͆qX0+cxCÂ٠|j@j,&& G,lL?pK[ڎoE;$l;geoIӆ%t7t;c/r P/]Q) N2yt{9X%I@,%:ZY씜\2nvv=.e2R__~c s@V+|XÖц==]]R,| fMuZn#l>P zDDbBD;xcLI= IpgF9ht77 >6 ϒQ|ɞb+A>EU&:e3q?;$ҍюXQwXsJb 4zH oxn1YF8 nO>|wk>!Սo=o׿{f=g3{fs- 쨽Bm,&YX{åfwA2+w "cd}Owf(E~{ % !".ݜťZ@5 nT/8TZ8񓛀\!EnP|}Qި7j\i0aaZ] xQ4j+᷐|x5pj7;)Wui1/cy.bZA[畎?d0! qE}Df}4/HII yĊ|G'{§ARC.Ed_4^㯸/?@q־8= idhP;<$UmeRH w:zUzebKӏ FYj4WtU71CZR\%i&ތ#3E4Qc)'19w ,8nT͆!w(kR٩: D JgH.M1 ;0YUޔ1g]^`ߣ;`vcmf 1pX=Gp pC{0AHp!ra#[ n2%'Q>-g ~^)ᖼupk'\;HWl[d ִ'o,&g%䓱{t3<gdz"vKjt7/ M } wo˗\L٭SWG*JH ȟ#Y>夵"]:]qsPKRl, ο%D햻7 SA# UvAZ'-hnt{tZ2K[^A ,d.2^$M+|lDT oPd1`>>9Y2 9ovZ <8- 6\Vz`/^_[]sK,UyF1>Vu$ PS6d$6q"VM#(L ;ЋIo0S,ڇ b:9`[4g=[K  P[A817@ܛaaj *+׀w A oL5PQ{d72*{A '}%u)O#>k l6TT T{ hg'DӔPUA`[o.}ϡ0񰢡kֶZfou) ,2hcS]S0D<ߪ۰ qC`Cÿn-zb7bL IWE9+浧D1Ohi >|M d8H(dW!a;Mf/9Ǵjasx8 Bc V%) 'ڠY@T.=+pm!_toC*3`ۿn<JD f,?C3jSfaju@^?2)jF%Z>qwNЍlԎ(aV. g\d:QiU&^[q !HLU{7[)+%>uS%/x-}|G,/+{J=@5ިzbEZD/{cءST4)57+,0S675xEK1ԅWO 5+9mEͤf%Myql9GCg-<`[D *|$N0Kh`rO5fl4{]Kbv vv5GٶPkhrO(M1v5Տ)q:rE{봏&HY[q'-Za1 m&'~0\8yʡJ L:>x(}4͸OJKB50,1.rI 72͒Gczza40 7)k'A)II)642ѥ;)@U케 lcd{JK6{hw:Yˏ >Zr nXeǝ(} FhOL7j7P 0@]Qx1 &A]h2,}Ӟ7n$XwhO*S쩊c AaT-Y9*KqsPmwư{2bQ%b{h2ż9gbXM(In)0t0f־۫VPţ9`ZD8c McrQjnYVHs%[EC  t}pW>6K|91.?C߫߮6g=g3{?{eJwN躆'N1|뤍Qf:ZG0&DG0fHȕյr9;t-%GKʢëU7k*gakwNX ^ۣX\-bb9^{ϟs ~>ğN/#bm)}z~R^={pOn3mCQG)AfN7x2jiGP q69hTKүRO҂W%RaE%иnpnu3 &c:P|֯_Gshm.x{頬o_7q| <ӻ䫥Ս9蒼wpOTT`kC!mEa\=[LϪj3n̑@dMu1;og ߚp8m'\U(zdkgt8iam& 4i+&h&9 8漱E*5Y#2@5B p%T=#j;d ^l*pU sc0RmJP^;E2k5]P:վ]8 ~W¡&F E4NDn5M\筛ąvZŧl}A絤uvq=0 ?%t~-ri*,o(gw9{vucq1GRpD(ipvcv͂?>]ƕ^P*LВܕ Z7:nP=3)CN>wº+eES^oKS_wSڑN.m_|m}kv@Jy 'VȩզI>g{Ns\oݚg<~0GCO n8CKٸ}Zqa=չ-]̚dM7Se7aUģqEAĂNvwm6fFjr?^̬XP edIHN1ǹ&i'@W^pa 27j@N&+wzN00 6&m/a/4eA׆ Nr8n/,䯄f{TA_<%omN_^me}x5#jҀکRө-s$QR4ܼoɃQ2 C% 7x'Yy}q7V'I7OGg$yk<M뇟O?I t x|C@^XΩ6UZ X1r4c\AGwV$B"]sML?>+0?íP~Ui=c!b:<Ɠ QWEn Hɐi^%.W}N)НAG ƌ C tn lءȍ8G"2޿@SEs+Xstwo~kɛD( S&KǨMV@3cOZRRKaG*T2E2,  ݑ.БLA{ ^eTyN6"{챗大S_Sފyʹ2c Rw5(IwCN\ٿ+:W;WuyR3hS-7]\˜yL8|{|K_i]/T(΋L%>!yk{n2W>9~%mq j=4`jˁn{IL98>7?ٚC0