#!/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=a4b6f8ab9edf1e58e6d951a1190ec92f # 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 LdCt\ݷs@=RkjLjdDM(l9+נebٺ@*eHiM-U!Kɒ ILouP@3;_,{F 6-+F!)u-}Œg LbZl4"E2f LH q=L(0jJfS…h`)tsx&X@#esC< `Q/e(s=\GrW꒳)`q$_\rJ#]h#lF `k+0vua8 FDd@G*KJNoܕ(H|%*l@28'WҨs 3'ٌ#&H;^{DpHJזPWru_!"L:g= 'cvQ{  8j>V?cNm_/ғt# q(3Eձ*$HrGRNIo0 I6Ɗ̤'Ui4Uy/A:@gw}dٌ4}D( }ek(\G`F$rJEO ZV2MV@fS)c8 (CE'Js Aa\gKXlcOCˆ9w{j͊Ee0u$-7KݸgtFPU`l(6lo~.u%E):K8HkbvC̩!mRbr4SENF1U\&I J-i=mP>&wo;mZOG4^mRjǻ!mS1U2XB!":1W)Ëao]ӠGia鸈2\hCX:g:\1L#A 2'SJ+SZPԎsʔq\}M]JdH4i0+Fq1gxrVP.:`EL.M]p5HFt,ѻN؈s$H 3sfyNʭ$*X1x<]+ ͵^bzS5~<bX-LumD#$i%Bi(|Lw믹wijbed [www dk8-{uYA>-{$grTGǭjeEiw"oJ$o8I`Y~9>C XF,QI{2a:y)__(?5X)hT0$k([-h\|3̀+f@<%3 z{'}l+"FFB'ݭV "DnDrQ,"dYS/,b!TCɮv4ΑG?OEj DlЦs}L+VWrXT-W0Zˣz?Ό˛sCb@4GlϚ٬8F*D_!t/(*FԦ N]GX~ ^}J0% :X(xgBl4+$~M_cz,$S hu 8)X6TwI}Ki2TLgƀ4X"ݯ7 dPASȈ)c 2 qa^HQNuB" jYzF/L +܁@7MThDq2N^hyz .([i6f +{ ƸC0XLUWVUP є3t6(I:&ABFcRƐE5xm3_ ݉jZMDg(HãD/s0;mWE̞OtYyi,\E8RZI4bX6zBwf Skhh>^/o&*O"#J>-jKsMF۷|5ywY׀a!LL9/'-Lígbާb4,R#v Tn>Gahݸ;\&X^F V3 Qg= 3HaJ5ߴ1Q= c YRDlbέS4k:0C2 䟊&/^{dB^_W_‡n_ -_S%vCh\\8](VNdNf0[NV)"Z˞:[Em~]{K-Z[bm.dLaEÅc,$ePR!L3K"XR=^萵Ejh\ hI(ͧb:MÆΨyo_r267^TtXoAm"W^&"2߹6`a.jχKj+(D<>bGWQWcw!ոr:uWöc7R>'cߚ[l?? P2 a:-XofXlC=m}!bjdNr7i۲!2ߴE &h'TL?Y&+Ls }zyMڍ0p!ii$ -㋖MBDRJ,ϥRݢmwe_ue|[)̔YYB#}e~C=/ w ;* nѰ0$yIbq8ض5uC`Sx_j[_۝۝۝۝۝۝۝۝۝۝;,fKSer7vVP^N_‗HRP;g5?pZKxZ[zc2F&d@qO'MZUf;)W 0hK>cjL R f LLUNUOL aGB0؋ySk[z![-qE3KA3 q4'O0{v1>a'@*!]'ikVYq@^̱'!Խsx(4a%tz򦙗ک6dŦY sTm|'lORqx*,k,C]w3OŶϟ ˟D]J=+52{Z18VtmLYwǎ}Jyϫa )$-ƝZk<':}jUt㏻޷yO#!!$Ti!IE~=aB2I9g (,4H<}?[::܈%K!uj90^94A"G+zЛfU  ~: X c*:h"ۼvSOD5+3zjK椙G1q|IQ+?5կ'"bI"L7yq!rs#kjjZچ)CJIxnf_:Yri?oz^F[Yxtk`# u]Ұﰧzb[3gHjvp `53xAqA^8p3#>} {19ޠC{3v}׸8X6]t|:)夞;y'@~Att=K?< #( q'?=0X(Q`O{ރE37qL R`zoLO?ٟ=Tދxj͔7&$v{ ;W%,~U״ LLICHΨ+>N_A˸&)ȔM P _̛*fJ6Z6hRaf K~goi%ȲriӼ_&[:r8g)owօc.RdxT+b%AGHΆ= qr`<7v?ov?ngcX!Q#*m Xlg0=vr'y}ڢ{wZ%ldN յש~X4kأړnZy0GYi /!SQ3mC/ = k\F *{~aCRn=zʣhUjL$Lm,'bV2ٰGM0l'Q&ëQr!N@|6K`ay}WffkOX]|Bx: %0al3qt"t6JNGivn>kC 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̇czQ|Y,g3f?Y ttGK/קD#/O+[XKTswRf0pgw$~Ach r2oefӫN& O p).y+0xռ37-aכ4HKU ^[n,Ә9 |X2J㼘 tn!ŰЯICOsuPAIlz4s ]%)x; 5Ң,X . 5@Jty"Y$ )pjB `tl02#TĚ8-S2S82Aq>:xg k)DuVh9Z˧yدK`5/U'@=3Lɶh^NnҹFeODfOKf*.M7!DEI7B|l#m ۄRՈT;G'o~knDP':mR5 c9{ɮ¶ J`vbO<7?5# [Xՙ W+y~[8{K!qb<N𺅐2d891Ӹlb *%qVOphg3J.!ZOUGR4 j'o@Gv݄>O;i3;#nNqti;L Wާ] ͻ(;fdNzg]rw9`y @YyF=$UKk=8G TzkQ\=tf*A$FVo~?arN; OYő1Bۻ.="rիmBvsj/lL|ݘd6~LG|"_X.Vi ƗR+dEm>ޚ) hn9,z0J {=坤C~5LQտw=|'nL@3to__ r7_ .U,Kz=$.?jOW]vk\%coEK*?jQ!q)=l6d [Kp7`UJ^\ґM3U5 Wd$޲|'VGMl/N8g,ZŷuZԮ F[l j>9ص"<AXl%u oHڹܥ1I/+ryG߫ he$=ld{ j^r} ]g{)~ԏ/?U?kg3?g_0Sn$@^noQ FE!m;1}߲wcUM?uޔݓntdT4EZ>sw4V[]̑xU'õy},9e޸OLtGT}A`]]<ťWu{oMUh0'[9Srf eP?\.Qy/ʏpBEfz*OkgEw<5jvj|Dm~L5P7tlC;×N:~#>Oo?|ۦCLxQlLInkyo77p9c+Zy/`IQg9VxTG+t$Ն/ ļ[h3᤹צy^.l)@EHU/o1$ <7913O?mRc+A:WN];_..^1 "eEz>P>Tn-0kzNgzGK:h\Fi q W)i ^5*[}(8,gPn; b|tjF8_Eڀ1RGXp|C橜=GC |*ke '7\S@[E=\e$YVxĮĸڸ{}4hF14NVB[&x|EW/4E֑-W[‡ ֻ10O`Zlћ򝣃3L F-6V/?4Yw4i` 5$r}`(l˹|JIp"q^__wW߉ORDHi;Z;b+"N'bC 8c_-VWh&h-%\wW2 (J!BO&W{oox]'4f]AǯO+p&++1IŀBoco>lޮ5?^?[Vh>Ǖ/~<`HA*=Ew}lнW t Ns6=4?͛GF? qZ/̓=Tb 7\V͹ï9z)k]v_cI'3OCatVne Mdw#oHS4 -/L͜K/tA]ѓ'QD.Yy܂] phN>~]>cQpjG7W*`; lޚqCւkQ 3փBܬ@ZE+,ЫV cXo ~E uVskLR3Cgf ak{Q2?( ɬBOVVVx`V  9p,FsL#-i7)%?akWkVɾ a1%ȄjrLӄ^yINa87J`4v"0-Tvg6#NQa>WNx簭 ’ g&v&/SKºw!.^1%77~uIzPffl_7^R˦dnp8b5>]t6M5ar+]H\(MLCtW%wqs)t)F5oaоp+qXᩮ`^eB'HV;Gtۧ/"TIxÖTDDjBE;xRcN2̣P'yCC6g!)-8o|m@[5^,~feL1+ ?EU&T>mg~ptH2L)9(1 OUĚ.7P@ަ76{(OP_>7.K-RS-=يBV~ zO0\Fj4Y_\~N*}(Kf#A(/i*HY(RvӔ*m'# if%i<`-?׳B01l%й 6;BTdA@9O_7Vk`n_MF*6nk }d5~A"!0rѪR ݎitOS:V<aQt}H[f3;1F(qIPkrVLY"gmJ6A0 Ah~R@#Sc jCpxԃ#6nA!&2;lry+|« 4K7Bof,Bto{$7B\'KqXZUVP| rfvcm8h)-繏%b٫%_ɔ|C=|nu%@tv cy*Yl$ef> 1x5nќI6ZMhxe3)TTՑ"9:Pd27++%>uK'$,ΎH-.ϭDo^WاzybZāI;.1+7Rjo6WX`]_h; ܴ-En9\Po^5 j4W usۊvoQMqyeql);I93Hd-|߸qwT tk\l(aa+v4ꢗ-SDIkYzA}+RK;% +nՖFVq̞ ;1vV9f;ƨڣ"bRJeW;O &TP[ P&ݣuNoZkutзs?B,̶Op &9dN߈)9|ўG'O#> RGu-0$ V)~30"K>qc}v1&oϰK;n4H-X)=g55wK'UOSiQhf%E^yfQqLO[/LA =K/0x[nu/UPuNd@( tl}uisAJ鈟F^g{Ч;q3<~s;O)BՃ N@P"7Q#9'2j z<$㴉5qo|>dR&~IهT'4 @B]:󆽼laܕU|0+F}$\l }֖ 1+8Zu-a-u  -6#$倩g'4ApM8/ћCS/U7L[D.%Q쳥@[6$փ2fZ׵@%8vOT7Hp|v w;z`}ƫ\g?9?v7]}߫kV= ~5BgQ߳Y,{=M*^}z@~Aġwe1? USL2 oԛGlr e%09ܫU9+UȂբKNk*b_'sϩGBNۗ_-%wϩ5qj00{N=緩ISa6Zskz*j 5 ϩ,R8,vpz̝J7fo7>{ysV*KhRɍl (6>ZzIJ&fyQETP8nmti*`)z={󹝃-W/YuwgzQ-g7lJBh'P[lW`H9,{on Ĩ1db$Ϗq?B;بF-AA AѨ Zk?5H,DP‘(}tfBəwZ{37{q $OfoF2y&(NKOUg"K=S|If̨ 밟(B@AEAIC;r֪B qvG ]WXCq3 @#{6>SDۨ:x5{v-ڣ=2.gF ' `3 0ЗK1 ˚jeCWf >.$6@JȖFQ=i`rP6F,%{elAK@GiCԳvt:j"3ԐetPM(K ƉE2ZZۆh`fOX?K?^E>оߕTTdNx*Wq&?q0Cr!r-JCsCyi4yZ[@x T ^^YK8_(ᫌVY[K"1k74)snЙUg~ SaGu*hu"\uIDI6Ň21hc$Sm 'bEY ܜAbO!ʵ0LrߟO,omG׽A d&޳ݵp>b[?" dWi}d@3bj& ^^QrVMBIUb(`fO0VW*ԥ:n /[zWӕ=s1LEE$ATQTY]w,wA J{Br\K†,qD[U痰m`K%\RæuJ%5>{qkﰦJ{ta)._!ڮppо:n5I]n5G(g ϛNGmhm v'O--bvswl>+!<3myB sSܱp=cWMmڹhCM*"I*NpDgI7ê.]#'o|۾jK%϶bE5]KrQ퍫/^/oi9)njSki[>q.a#T&P]/nN{dGWl[FajdEA@4找׭e\ҁxgu'YCD#9/(d:WWd&g+Ívі%ł\DR/-֣?> 10d =$iآ"x`jQPyf=?1F[X/x33/?)XD++Y+?O뢛U@tHE-hc "$nHʩk=dx7:bBg?j=_%]$;,[˝f5.S^ɒ4.[fnuZ.7S"7uw\gH.3:i7"|wxz1|6e2KUQT_.5><ếB2QC3]~Ux)=W.B]j0A'Zz7`jo?pՆ;g 5ڨӏez5&3?gl@s?xGk'z%;~Bj//W>\_?_p|.wy2*/7nQe\VVV~n6&Ƣ&ȱFu܁|o߰[wvj9}޸py \7g8qƵ|npvnxݿ#Gvߑ;qrG>n B\FSR˧;'{g$}SitY~/S4vz݋e{sg?mAaJW}\_Rs|Tߝ:٩s7@$ ~4 ʖ֞.7wqх$f}Pf#fmFT?6hDZ4%5TT-ai(isOqEY;?.n﬜0k[ Op|ٓkqH@u.mbπ$͹7a63iYUVҍ)Ġ-.Lo>Qm|*UӬ˝mZFS-5u.-n#@{ÙVsy\sԇٕg`<`zgׁx{sk/O/}!^*@%:5j޷e{}+Wdb5(EwC.]RĬڝ+˾k⏴G)nU0fŸ}JX|}23b:?2wGkȁ\lSԴmY]BC fvr9ZGA){;S~f?_Y0