#!/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=a6cbed2b742c142168b9f7bfaec1b0c7 # 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 \wH_Iv ؎ ۺ`ۧ'hVvٿ[_ؓxޙySݭ4|j; zE[o/|߶~h9؇{-ho}=?02~ol{e%x}`"VnbqZ &k;#Ґ<-U1F=Y"!3\-Cl209=خܳ,-#`,{j4Vg>vqwk[%Áxw{Lϵl{WBMcLZP&2@VdkL[l6!&^dvlqIP05Ă}dA%x9{>AXdi|eMhp*kD8eڿizgU1J/~\;hV :E!ENh߸C\ ,2Bǘ`sŧ0L;Gzop+zW9k_lH]:8_?UZj*UJ[bW? - ~o'Ϝm5&-݌Ĭ$KH _ˆmt@AUenĎY{iϻmBasxՌnSWVkqr6hbz#M/1w 5!| EBb(׉jf :w ܧj#]:I٦p' Qo+G.tF2 ̝V m, fDx]dIaTct .|:O/CZۄZܽ(S]S8 9R6ur|^ͮ2CAi㧵|ꡇf gU'lJX*]܄h ?/")ZZ%fb`blmِS]ׂ+6|jj@%"3E謕Вĝ b<`v  Xxd{p53F%Lu%u$/Dr I!M/k[ JKm],X7IDL` 7{a M=I- "Je:skG'?+xE:<>g1G$=6$l4P BYHV /JLu#]^dpE(;NtOָx8?:w Ze]T).air)ĩt&oYo#b!ud7!ۢBwzPRh[J(.UqVf-B8K(7E'!Pӏ+$%"0RpI|QYk:b) """*_bVLNa<7]'+MֻqqkWN=cQ(M s7<>Խ4DY xEE3sZf /Գ18o!ao)Dn#H:ԀhTU,G6 v]q*Y,Q>l'޻OH 3Z1J:`R!i"z}Hpڌ(;q:BV!ol`iuG-KtC2{]pYݱ]?L$ akbqK4Lf5ZA0k\ ]GK7#`#Ϣp;+yLKƦ +a jN|{'."`TO"ƑG.6_,+䂌>Dp*[JE57OO)-GC{p4[7$J9ʗ}ɡDspPtGO5r8#m=yKPO]nVC(?)3(6&7fَ7I|LkM`L!36z"r5J+zH-It({,x@<5rw/wTE5}9fDlkb uIO36O$'z@aa;aO g.jQ c fqT}JLzǪV(2{Oep75Rq{4>ke+tou) d3`NO:s/Vč' $/Wct.G2?Ǚ!~u#BzSE@7.4 #لՆ"J Io2,oD*#~-}8B!#@ u5ӝ72;)XIOׇ+ed鱏\yh sWhdZNGf:]X`C,vH(>yrvXog4K{j)p{Idtֆg};uQO*6<2[!J˶![)P,^_5< LRv+]b1h7$kD"] b}_s}d6s֜=n98<,w}~<??;5|LokTv~:\֖{XpYcz| +@P{].T`VRg(+ceըz\TY2#Q 0xwӫs9^#p9*Xd(/5gjnf2|PUt+}ZdFwdO^ϑ?Lr ITt+D3'FИt'?7#%簭o١ OLn˻8}߿ҧhLB$A!6a ⅧGjh In`HιZ!vwu vowBo*~S)Q V9Yǚ_ǚ_Gۭ }x"ժO|fM*w\d"wOUd`K]U{1"$ѥ>& 0G,\Z/PpCݾ~big"UlK@kDžBCZj<c>c%*,~;Tr\ }EZ19{wOLMAi9<8ߍ> ddGs~Fv-|:NJvgjOcz:׌L?5EǨNZq!Ew!s3 d]<%׃>H覔CfdL1'x-/^WBSʠ~3gZ#%;0$^EVq+/sM!Z`FbIR"/N/x٣ .iޱ d ErZmKn@ufNcd#fPy7S&'U7Fɮ ,o7LdlilP@`,т0QCe?;M*1ꜷye8p%p}M dS@wjww?wiߵ1~wn߹wn߹og76sO>5AVJ7hЛdVvkKs|؊`%T"ީF-UzϫMٺI_9Uj\blƿϝF3Cm..|sB>?k?{N\(oF+8`. tݼx U6-߉ʕdB.6Af}\^_Z!Wξ߻Ґ5Raݟi`[ʍhQ6D#|R..E A5&ւߐJ\ |PTQ?>=(U;#@m=bf$ jn R&4&9L*dS^0d"*%ir03.xR$3 Rс> x0IbSЕˆ0'*Y?bMouf[ZffkQàqŽҺE$54KY7CU9Be^$%{ŧD)d#=i5.?uG\ aN _K\`9ƆYK#E;7sk[uFKa4ڢ XD,XM;{ &Ӛv]"5$ue`<-ͻ# ?gPaf\oHY֮mB1N.-o[٦XmjIT]TU3k,;) iAT6+LZzGsϷgngnge;v=kԣu|a}YBם5]3Mc}V'jo|pw~:?|ř7# 'l :@XT;b o ̾&gNBi_=;{':/Ҵ2Oꐙ\o:U}91*FFHQG%J>|@KS!&'t;h0 MzsSIJ8)/* ˲ki+YrT9Ga+ fe]j1*]s;Ȼ%H뎪EFEc:b=igϯg]@t)zu28m-Stu.r=eJF/O"\br)Dk)amgG}JFGtO4P =<(R1]%TP &E\/-psZ/ЧV?4j̋BOΰ`}.5Zv-3gkfvȂLa)Zy;Vql9Y58vZ V \D0_N(e"^_v.:\:asv9"upB4VcN=J(nxqp{;1M^pL1T)a><5ND?v#4pË -G5)a FCeSN԰j_cdO#G@;3%gkʓ7.41)/2Y% ə&T.jn8 7bdt½(hҼj#8PKF8Ů`,;&ФEyG뤉z3 Ԛ8!yYlNc'fU' 4Nȩhm^n>$~>sɰ u"8vvg6Wl8 蛏eGٺͥmj:8y#%X!M <^ya$Q~K)IwKbJN':.H%TnSU~wDGX ƋPF)uozYյN,`'@EU銇K݅3hX|yUByZR:&}%w#M\;2KnN> R<@dz<x@A6k”;~94^'/3fr 'O2TzOJKSYl~d!"/1tM]HQيtA9=$'a2D h:!1(yd9?+-EMcD (>Xy;!>܄*Kc h5bO)9I]k[ 1+%F 2ݥAi*t!x/m 6EI#&‰c>_g$zchőHA#eS/0N G`P^I2K)%>b٧L݃xy & 8 oݪ3|X|w~Yǟ"yc9qkǶKrkd:u>t0#b`M喚kGvd89UB&R̖2(tQHQL< sifV{[sKĬz w^qO P`9)O6de8$>5ӓfVI~ͦ(}j3rb%/rd$EB*^yHêbY0Bm,+76GԼ5Eq,–)iW}Ædbu+! YTjLWۺ:1 dT*S~xM~?y(vg?rr =G1jqn`[6ۘJh|w{nسBO#UMLH;PA@J%ⶃg2"X!],;X,vSAd؏q4X@SUXf)2*44\h-GCr.mT:"t!K1vp RT}Av{;LYA;w0HyqBP [-x{q[{cuš\QYmKcz3k/Oz(t$^ba0 #9@Paި+IU1׷)YxmK s{]+SLoom-P-` /LhEY749\=yyE{HeVm+iL.:բ Ǻ%w٪ŢV] %g9lgfU.A( yIX";((YU..Q0OE [])r! X6/#2-."SqApBtH58ůRaBS3h:ۄfi,2;phb75ˢ{Wt~wPy#Z۝Fa2Px`exr=ozХOd´j&EP3g =Fc0me8#!g225PL ufH;wFX ҆izљ0X? \4/>e|,?t ׮C&x1^‡.qGHˋu2#WBUkQ>wغ܎ R,8:3u[!7 $Yo^%~?AL—k-Ry1C0ҫqcX\)P3@fenZK?Y))H U{ZQ?J?ZBݮ_ۧOy/FK~fPbDv{(^.ۆХţADn}0`ˋl rEմkmr\p.o㫕mY+- 197NGڱ](b>*E0`MQTPDG2Ff^nz?%.]6CewKr Eqf HhV{8)2ưT;on`{ʲ9J8^;*0~bCYA15(@sYZXia w$X* BժUɢmtA_L>^B c+H`I*JCg&v;"-QKV >D), \y T)]  WIѠ )?(`lCQ8Xr M*|"Fx xFYFcM prr ~-e@I^ PQhn 3"Iík΍] ń.BJ?B22@ Gva7ϧu݁["6`Y5 / q^ }(_`ذ`Gy^PBen3\BX6IM^3a- hcA1%Z n K\$8Tn!=S8{GO2'H{1!!'/ ӤKLEG]f TaJj P-8h3pR'^IH"\H桑 oX*Fcs)]ZcB6IFE1iP&=\2a3 nEtwA*ExO b9-+et4Mħk[nO2G'±?.:Thr5K jOgc$NjG.e: א%ZNo].y θo@YQR@׸WDl<3p s’T{zZ10Q;6"1jX ZM$ 2_2idHq EOSScT/IL HxXQЁkRh\\UrW3<~$#j(5J͞4” .TdعȢ 2HsKu-"tTXZ %QvFLZohLҁvFo/ ;#h$U!);}؂/n s Qt٠)-K*G]V4+'ʇLVWR3eļ:RC]iɼ`T 7( &.TD-ABB,\Q0ilF;\\V2`4՝P8ZqrΊY(S$}V#uhPR5t[uo+\iTݘ I8@h?3. 6p$ hZ45M'U^S:<1g-o{lreϿ{p{}Ͻ^s/6Yϫ{qy)Wóy>A2 9cAax^W{G;;'*,_9x>CH?#S*0rR W^-ڙRD Dp?Z'ϭȣ09Pc.3r$fQ ,Jy4#asSޕ!BdzQǓ܈!8V8q\(1*ʒV.c!<=lA}YKI((kAaVW]6s"dAXlQh(r=-/piVEV(zyc:*)]qdf̐6On3YQi\)-'YH) #8#&,$ݏfGSNCNpfY!#@6!#-^DCڭTEͫ)C? -\),%醎=@A ,X9yhv,ۻаd|jԞi@^D#ْg8;,ѣb {pnԥl,S@H蛌VY۩4k+׳4feu[HR tVZ_"߀&ӭ`%E\ ~3}('u#k`t6'ql&Bx5PPAX -X@WrL{zj2?.I)BRv@C˶ZUte T4& $S{>z> "2 KnSK̾VyX^ʠdhi8Ew4UQ%,[  o H jX$-urv4tnjA* )9)P.WHhhR"I[h*R(d(@7'I|JvJlr~5g-S^b}n.(0qp-TV҂>8=kEz7`1mģ}H/Dy9⢺9΂3,T=pPb!I Cd"*;d=*E92aAn 2 OoL+c$$JWLx"*~ ֏wW7Y:faM udc])U~Ul7D"r,u>qF:%l_4RNwENqjra=-Ny>_T?]X )=?o?I/ޠ(aJ vBz$-y`lJpSFg`J{2Z•yQ!&> Kh RMTO^Wj^m/7>l^NI\ I(F/2جTM46p v=f/68(Ӿ#y\E  {IgB{K`|B)ζ߷Czʲ%;U8ۤv ^XP\`GW2+ Ts`zs),/ F'+{x0iKnTrCcSQu")(9:_;>Oӟ0u}h-)=*WM27KgzyH4OkZvUT֏?^Tkݲ5~YzcNj9bbQ$AޑIS:>>O 5wY.uXv.A$MZ4&Ӻ~3Ҧ{Nbu(g0Ƹ (mF "`8uB>LpK0.Exzq<===Xq*k4; ñV3t5'/>@ +K,\r腎: =}Zט %/b 7OGASN4أpti1L% V:H \P(8]Q#ԤGMJ]*"x~Pp>{5"[a"#՟rDo_|k k %P&5 R繽PA,BZW?R FoTʬU50ρL}w"2K!:̇b+]1?gy]!N(g,E Pi &jqaCғh8atã=( ֑\X~Yᴎ{x|d;)o8BLdP-@EE)!sg . &Gt?^j!8[͐ N6̪flnEOrMIXVxw_8.ANL-IKGjCFBP  W{tGQq2~݌CHٖZoOPԿ1fŝMFπ8[p!+bnٸ G88^< pcC  ȳ]Ea 0Ht[)&]\7.y.REe4(AkiԖ$IgFx4}\ D*kdD1p7:o)@WgqѾ3_*,RvJ j @*X Tx]RplГEvT@VNPSdwp?I2j#7Y4LOA){ "qjA+uzkl5te'L)qE-ngNVdD{ݼD>9?3pQMÞ38 @NV:%g;){8sݭxCӥXhn_}Zi$ҧ%| ~ah~pW%2 zMp&(rrGDeJTD%aԄrP2I1H0d"H8J  3˜mOG 7$42ې$kFUYvS]ӻWR-Y댖-fM!@n~|@Sdip&%Q t!=okxX¥k8"j%?.Akh#T.i_Q p/,DۈS}>)FPId܆/Ԩ/Jߗ]d|wY/g]at2!aq1iwZ7[0\~W8(5 Y1u(⁄g{g}dK:3GtH`HEVYEU@&Gɸ)]A=I, yX/ w؍? /E;?DŕM +he·},W0<37yx}V^o3?y]{9EA/ڣ87[:rM@J+uH<)xfdP a|gOԗRITd08aP0pDЃpi'WuFzF LQڒфJ. C9N ?1x.9~%47B|_sS; (G#8=/ONa*zP4G~⇺fܴXX[GwJ~ދ`nQBwWur O?HG4*X`IF./袰X7 S><2`P/y&9t`o?;ˈ%wwt[\%S ?%p. )#ٲL() #E8Rc8Q@J u(G^@іkڮz?C*~dݓŚwNO[)y?wVlص"aGW*}06%Y 8휪 RfΥ"ԄP*LM| *_Vzz噀I$FG6Yr]zΘ7բCehnYlQ|Yt@G|&Ȥ| rt<)w0{ i\;&D˴k߱?Ѱĺz9MAQH2ަXU;S fēL!膺G&٘;A]Et駆 16 Ѧk;fgNwfK)54 An1M72chh˙M>AV<hN]VdxPۏ"u ~^WY,@X|I~ (%aFj4K5KYu\MOvv6DWbNWmj$'%L=6~X-_@Rrf$qS32J R_+5c"PLvcI.٦m؞څ?49 HxS~<ĦHupZ^(uK›Ĥ`4iw9yEGuѨN^ +$=htd8DGmw4דg=ӆiV"q=;?4-Rԛv½-EZ2zo>ͦgK6$mE!{@"+LdPXxJ>`to u)CN|#!NIۢ"T>ęډBvx}6! T1ac0{$Fb2g{`v 5tm!Yh|;~o*ur\*J-uR{b RIѪ|A.|;UJiJ[ eU s+'mC*J7 yxƊ1Jc!x[Kk\\Ug1Kh3D"\\vq:bk+RFDGg{T0s%k_]ϽЪᖩ}R))2aGBjc#7CpZ/bJ-Z[|T7D_"{!;skVF[\Riن~*"!uaLg'BˁӪmg˲g,F{y,nÔ f>a86qcr탌#c 0)v6sV1<ڈ7@)%q0" .]-AdNRHG+-YFDUL;L^hL3]IcRflp*iEg򝬤'ܔ.!Onh|_;GgFn?;M+ _PcgZCvcc|:R EUNhyRiN b0ۍNRppwPSw2F1{x<ݶ 0hƠiyOڭie2͈i,-GGMTK1lƃg@ d"0LX4/H(?XDr&x'>}1]y35[hqJoy.L2F ɠ|Io\ Ekf`2\P #]'FmPm2NW\ k Ce_gTi!?/aFFA[~e[6Y VV*0URUjmt*DpTeɉ.(jҩϟs3_8u'P(o?&? ÝyjS}ayZ1¹nJj,NrA)iNo;SSC ȫqNж T#P_G)} ֝@a"Ab$r&9f fvЃvk?8REIjc`=+ꖟ1G0ѷ* n A-uJF#~!/=`P3oUCGD'%DqU˚7:rgէ2-`=!X,ǩ1!g sn5=Y·x"4)A%ʘd יL>oCOׁ2[Wl9+Ӆ"`NlGL14M5vWJ:3}SB-9d98:!x oQޤu5>C38v!͙J\؞r o>lqr[|d*1YRCA<!ɛEe#t]&-*vƾIv7'~tF8Lbx}+[TA͈-U$qZ7jmzfTA-E\꟮0ӧ"6fD!GcTxsdķQ4ޞh; K*ԛ 7%۽[QXŠ<|eI&S:U*F32M9BT5%wN%/$DjXy]vSHŻI'ZY;!=y7D`vN)fa6d#/A*'7I5xѴW||CV IbuNuZD!BM7͔ K6f2r1#O =Zq QWJÊx#,KG|1َ T"HK,>6x%,I:&xHCg_y<@QVф.QMFo aM9go8<,`Mt^1\Y|an4Ir54綉[JiL-sw|ÌnWh+-~.IJ;E2=Żgp;i slu2=aI~wzt~SOT1YۧUߺϏADGM4R 6UTщSJ 90Pd]2%f4,/`2jY1fS[Q$aTqaû>\Vb+=Mj0f Jz;p3?0