#!/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=10873aef64dfd40986fac7171aaf96b4 # 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 fqBks/v>6G#2E"\WV:|%uH量Jv Y%g>I8c+E36cEa[|s+)*HY'gJb[!4Bo!sZya:.q m<8+Ιd W @`H@, ꔒʔ)2%g\73W_ cS(!J~.iƭ5ы\{0 Nh[hb7gj݀nn^ 3Wnl<'G3>u䝙66`o:ۥ 80 `ȈOE `?Ҿ-qn:_` ;mfz]5`؇|!(S IKk5pkEغ)ƠXj,%,H~$olm7:Wf ,{Qz>.iY -<_*,oCWp{&0G,Y)"֤,m ֲΖxt[_t-nXr[ vX1p! IY)/TH6֮̒T:dmQ,9H7=Z#>)`N7Ӱ3*>g (.:4mhq[ȕ aw k1eZ@, 0XAy<9]diGF5cհ g$(ط@+#Bk:*LgXr?[<%`4POv}0\e&ჃMڶl7-`(P9o{jXn~r #w >6Bg͉wH%xID֔N&:˓TehRd6"DzfF셟vWa,Yk-UXrq.y;5 OV (\Fă^|@v# c!A`(1t oFsii$c=j]Yg]_y 3%~2;)psPH6w_P H]k!Jy?>p400LПp/ؔz9?W;jZV;Wvvvvvvvvvv#eÒzTYp*\b2>ӗ8(mb8R4ET(N+wM ^Lĭ}Ɵ(PxCj+:RWj*k}/)`羅Vi9uN, qRbƣ#779H4H39i4)٦ @x*FGvTG͏>PdDPD_ӛ9SճSSH7hdq48 eZa{햷^ceGrVom-||(rR )H'* ] Åw JHnIښUaGVx#m<%'sI1uo= MX ]&`i業v YihbCU3? ۓ9G P&n-S-8g;'bi>gJz;sCi]Sbt5DZsRްj5Xb Iq'槆 jω5qv2]#"myHH,@?%qZHR_bO;a{j)+}DR9ifQL1BqbDzbX0xӍz^na53FiȚtGʐҺD,Y$Ddb\;rOn%$[m#E׽V,Z8Oʈ3ū7Eq&^}>edT{=jYJP5/Ɠk{NsDns5-F$V5>O1ř>@B:St\?To̫6Ao_7(gc\j- $]_wgc&Ʒ[,4r^\ۊz0!A3>gZ=j+b'b]D4hg;쩧#3ڪğ.;x|?` sPfg# nGo*z^wnN7c^]5aGo!N n9uɡ>?_~q{:{4Cyk+>4J0B 1y/~*J`Qd!i)lܫ"Ti%ìO'_}"{e/uZV>87^Aδ&?5+{R k$I!\tm9+Ohd޺TTHcR^7^ +&l7 2`W&\8BW o,g#-&t=&Y&VJVІw0@iwj=匿"o[|S-ZL ZYѥ;wU!~b4mӔfc1zK|xw65siWC|!xqI6FAf͠=*u$nd3%dō IU _5-u6mE8(3lGİ.uP~2 F 2elb2󦅊t G:Zo&T’Y[h&}$;w \s4ɖ.\+Yۭ|j]u|uK7' gjDX @#Q7a#?hHA??GqF}Wv?ngv???6lWqB$ bM0 ;|ɝmkgjꖰW;1tW^=(\ @==~5se_ʚ256t(+ 0eɨw6$E֣[a}_=DNnůJ'\EY~)c375/n~2E>V@kUi\?9)TB#id4X T ӨREyɱ_VQ ]ji56ʝ)sq 73cj/-=%X_UL ">wJqf7NM'tJ +wp; EXi$ I 2anht* b/;4lbSNMŶVS6XQ@5n]f=Ö=&EGs-;Rb'Z?k>OU!!%mH P)y~Q^f[t=Z mY Rs>$j1 (SAI34AG?&p6PT?˔!\Fp!WLﭽ?t0մ}ŋIvo~ RYxMԅD烙.a.u ӎIRJeh2v2'B\P;KRi`)f Y$l]_MS(ypA"WIS;ؑlUBFn6^EJI^6QM7+%:Klɳj1ZYn' BxIc𒺵~SG C+~Ci-|?yq[gE}`f)ZBSy󳐐bI>^OètUѓ-XxðK;Ǧ  }<39"@T/uV: ৵1>q30@+wE+}΄zpԅtc G0P#k|N^=K`[,-j9VLkrhL]5˻r9 GSuӃH `AVnny \9; &p*%CZ2_oszBJ]" ̛i:zįw=PHFBIj*YgA JO LQڤ>*?TI_} vm;cHբCeYn/crYi3d3jtS33dJ[3ȑFDIaFTpzQ)tz2Pm"[Ń~tI@^o*"qB{.)rU`@z H-*zwuFcꪲʪ\E՝vZ4nmvAOy 8pUMJ+C9NHcÈ6 /79)pjCH^4L(5j%mDq: xG{by^SQډɻtAh GߥbhΆyt7cnjYmx+GS ̕;+Oa-N(q "_3$t4wۜju pXw}OWޱ8XK;^YzhO:ܰwSπҎ.x~B{K5liE`5a:c|R%R2/~7el5[3az}_RZ vC#,3s)i.IƐe^=ػG[|@D4tHζON9tSI}3lZYM}кrEYƌ#ji޲ɹSTz"ٚNbV& 4V-] %xk&~kB dWODi՛r,q.MiՇA3ٖn%ap[91זѐ„ǮIN֪M2Q &}$mTcL[ CNַRi~KEN/r,UŽ,-w0UߠIE [Uܿ2x Lt0Z#d 27/ԋ׀o7Jn#}4F&`Tv~cyș ^\jqv L]Չutzaf*ӄ Uy,S'^/O=i#@MS$e>MG.?#/夎m.NgK3rȜMrs*UoY:#p8L8+^#xCW 2JJu@l&>s&`MeG$yf;:ÉHPùw~ Xl inHC =[W8}^NC=_eΞA9pU~.Lpt5f@1:s ]$砡䊈B) S' DI;Ua;d+8t^PE6ԢŲKn,}aŋGal]E(Ԭ뵼6,L1Nl?舄܍|/ \|:eke׷U۸DL*a9c,D6eJP s0 81MpK)}q7<6@] {gtnB6;bk#o\o}~ jj*;6a^E&< 1FȿS@ c%ؒ[kFTȆϻ(49\>&ecVAO+{UJϳo}z:<͹% ?)SNBk;Ӛ1^EZ]`t|;lb9Ֆ B52K/>{Oܽђ9=^Ś{ފ!p^B.J. qs #s{視m{+!J}ݘI"U')s5li?uN+$ԵL(pq f/ 4p MwoS4=尠NkfF3bZkQh|0QG7oݵ  nxlX^#}y, G9_Y6ݘe;5[hqy.xܝF iA;\%4DzucrA՞.vyoEnA˟}C( Ulj(6]QVDk'J%"J +.fZ2dş%LU3M j*ֵZXW^GݧnYrbt _cY/:d?HQG~W?|YYYYYYYYY/a V\4N' >5K谓6pFAnۤo&W8 %K2F0,ͬo|DFe ޵#䬕}H҈Cm|NQqS`Peq|S8#&^^,.MzmA:f#f$Fo{\@_plG 5E2upЂf&6? ɁPRi1ɺ|`İV;B[TAـU.3{0QF"~2V/;:Jh9\ R'sc\nttB(`A5ϸnM+td2W>ߜUU n~+q%^ZU]ۙn$W)AW8VcDd* nƻ4 ) - 9 )J"' ?Ձq0a~~`Cg?ۮakCјܢZ`.pI"l(&PRŲ۽{p`vdr,Bխ U-ėT*FNp ܜHږ$U|QL2 OaˎySE~=Hl*{A&6 #r!iZ,eI@mdw!ok˱ |_4{A""ӿ {YxX(toōsL#7+t"2/O"H.ɻkdd5Y:Ă+/>,z (A "?߃ݟp1# ړ [30<(~QX=? 04yO'\ kh;gʦgTHi"Z]rQ'Cs-/EZ@b=QSe.v合 f햀MEYk⥭WpM/x2~[r}J 1;kbSK[%tE9a|IP)QO<6np)1TLLRiqVI~PNݩc .e}ã,آNwnq.o}}J1u|5-L!>w.e3y61\pGr,Q4f^@-'Vvlh)3,'|а抟BTk|g& Pr]u" 3C4hml&kTT-a@d:iWld}HT|#vZ:2fh b pqM(UhOn}tgɼFx&;IQc ;曓z*l  o+sP3"0UI0țpq*Ũo\+(b'6 #{D[)Cv3˟A)&a9RIa5*v6XBM]U Tu.LMsnЬ|rf[ pd}MP6{u-w h ŝ'oSK2[ӌCq$@nfu.{mOg]Lnd n,d30=?8k Ui#a($(c_-2!,W &d7G*7эMmwͤZ~A8'b`Ik|jA*BVf >㭙 &v:.Ka }Ϣw sSI ?8xᡪYSϔE[lpw9 t9C&E-wez>2^ʂT#MrtlU2 ?1ZM.RUf#XJw kV4ŕ)P1S\PpEFXK- jawb5qkь:oԏsf(rLU|^,EA`ņK]+SկVR]SI"'-qZh_O@^L%?װ%<K=\~??3?g3'w`̔ [$i[wDxyQpێs|C{kzo'#bO7eu[?9٣Ew朢ͭVWk+s.EIp-~^>ww7 1ģ}*U_6X}WW=ztqh~gwuS~LIe'jԡCww?L8i.iià 8mJ/!:{GRd%| 5MN -OʥpΕ}Nyv"lYDB?,[ Z||zYFh!WQڀB)s\GUbop#g zba~N}.yh"ڭ{.o6x8ipW6 i"|Ed2"<y*g{Pq߹Z>:VQfY |4+16p Q ͽV ^7_d9kǠ:-90 2 Gu$bՖa@Æ:E`̷ S0Xam:[|x =BnkQK%ef>叆>pr-uZ XBM Ļn{G'& r-R23@םiwb,mZe? A |Ƚ }gFyGWk}'ac6 ZldK2լLB6RГIU=jWb0b MijFWqбg/}"ܫcL}}@|1 Лi؛yyGb h:>%Eo{+7+гV K(*ytXV%7_z~cQBݹ\F3-̦Fg0H^TmLJhq2+!Sm^*UAFil&2F,FHKM h #dXZh;zE0^/T0Y!7ۗuWů/1[;XO eSMJ'R`+t{G!uwJW @|&C^;БTu_7"h P=8>\ Z5lQ ޣ"een䐑 G](A&0:-od95"DXAbz Yt[ӿi\].]$U矒o[(yZJV7Y%-5FG=a`5Yh]M/nk̻rNr j 0UAnRɨAlhn^M{ j. s6'rbBaBZz4K3i/AD,hNo'\R;M.&w.[͟'&^3%"j̢ި۶n6=vry;:?3{=g3Wgn v~p!€!4w9;z;}}&?V䤅mRM @p4)53bJ_VxSkHnJ%cƜJ:7D7ꍒN>,,Qꊋj{a%%D7.K-^'f<Vnzf{,z3mJ_'"r #Fm }7+Q Ss"Cxg^S9 ʝۧAzEj'[Qd|_O_HU>k+ϩP\eeS0xɬ`5菂E%V)kRnR%d!ͬ$ z|Qh# mU7:7aF}QR<_0PjL7Hh1K|y}j`s ,m`qqӨ]M^c`MlƵ3H4DF 2V0ZUTJ۱;ijX 9#,i+ tf=`'%0 j휗^ڪc)S䬵SI&V!=ܯ=Y hbdq]A`2X {zpUt{F-t16(DDf ^n:oe^vZx!4XfF͌t[^mtbod:"WdGɎϭv~ҎQvœ pGPlIzaQf+3mQ ~Fғ8~= k{6{f[]$㧽n7U\; 1=)3xfʦIL( Ojyى=yBزfEӌknyVU+5Nm@Ol}3(M]:[綻c:ajPr2ȗ{'Qw&D햧A lHY>5i{{m+2 rCE%VҞA~2sKletW*QywvpM&{Q-|]c2=̔kYL/zdNZ#U|F_n$Xq"V]ٽoSR;ع8 B_"{j6]7ԇ:Kk[ *r_}^AQ8_n ><1D:"{+҂ohޖۭVlEmt5TSX wtdQuxO_3U| `l3E<)Rș_F57'ҷ<$W;*ReMKeDwj!ƖbwG`"'a6aEAm[޶ZgtKv ZaZ:h6OL:hlEV}Dt`kA }FhIt|ExVY_ňԤ{/ )/O؊wb1)q_:8GU 8caa3ZwB3T DAsl-:¨KD\zjei!_T'PAx!sI JcJ hWIw k\驃È\_{#H } L]Saa7*/lei @M4{0'z3ojt$_Y]a,O>듍9؟̇7 s3tFIMLRqFyC8 :r]$GVJ^fpçni促Q-:QO>oP C78@1iǜ%FzłFJ +L m1<Ӣ 6ǘ J ͫ&˜A`Ntq[np#j)q@q|1682l4N eg69t~7 8nzmvk~2Y~0\#1l7zn#&~]]%3q`[D Z*\L7J8~1`@U\Jjʤ{ΉCKB~ v5G nW6q$@3Q4%5:ǡ/ړ$}dgA.:d"euoFdi'nOڮ_`3f7uy'ҭS0%+'p앳&w&0n乪I\C4>y*-3 mVbĸQVvq b7J=r);rG)sŀI.ZJ<"ņF!4 'E~}&r >F>a{{-X~ Zע#ukHs&m~- QWV2 ý[JޞSjR,_-T-fq2 t*ox$}RrZV ˯ӻs~z96nS=gR2.i.b iTZq{yovӽ1ПW;gj/xg/O϶ya˃RtF>{xQJw/]wy<ۇ 搒J?xx3՜cGI\}0+~'.t :ޣݙio3vTӥbflcnG%k1d$wW*qǨE-b>oȁA Gl-Z}yvp(F[D9l\HdTN [=az8cw+^}j9+Y%nBKnr:U(B74 U-'iRM|¨ Z`RP;>8ё/Y,rL݁b(r7F\+ձ_ZE~bc?^:33י%`f Yf%`:5k_ûrt @\Kr]SA2:1_~ȷRơ~Y?1[zV t' Ы] D¤?툈}qϧS~nYY^9·]2PT냘b#Tɹ~KI>} /ң!Q9NrUp @+\pVDŽ[6,LY˺Rwqc5Fy's׽%tE 6c2S~g ⣥dbg1UA5i efIgV_b=i79RК.yBUwyqv̖q$vE[ /V}òHCF(F h#ٱ jdآlp0TZ0zΩf/S!ROt! (YGg-ԛy70Pb" |8Fd\m4Aa nT+`LB%) K*f/&"!^C|敎v05S{XE!v]mmgPaٲt5bvBY>Zix{ ǹ>~9;C}J8*v0$е US\"ަ7^ll8B;矏i)"騌p@{qP2l;P[p$4=ŧf&QxiäED3B`(L<=s2D`)p=0[c}t Cф Eo2xGPnEwM-!I[-Hʟh餡5jO+/ՖgXyC.ͷ}5%WD4:輪 τ sbFB6 t" +"aMd\nL#!ٓRL!؇(G9Xm6Z,G)=Js-A97B T\?q;g3:U@['Ymײ=:H.#c~rfr`+0 A=0 }ӸP6(qea֐|bKbXlht3/en.QrZFml$1jM?V݇7nr30AHT z#UW3tEC,dS"TIѴZMy])B[1wtb:qP׽^CJJlL]T{]vFc<)H_K/ mA1dk"1=>d=JYE*?ƕol袨dѧ !<&`js@Ҫ>Zv Gr5y2$L+}kY>7%&搅7A*}T_hn)' 0dX,xwYE;BVV{ 4ps;O)Px`radqv C]`1S5u^7ܥqCzIw꤆ʣ'!pNGU\RM^OܕcXUšR٫a>-g):Q=xlo8_{?{py}ϼg^3{] ;˝TpnmPro%,o'Ոн'3yЉ"O -" SR 7PCA5,-'Kqh=4jmχ=a$*/Iz!@@ WJPQe98ERC\řQvoXw˅ȵ \+ESl9jIo2P.bLLcR{]zIWg/ D$2ZC f>nvZ/7ĈL`6j3Vn])CgVMg+Lq0suֱ'&ĴqҎL 2XVeps=Ç(`23>u^^N_͂`VzϺw~mӮ쇓][t5AC6<\xqxIFY6 %W+{UK)W{zj ?$[Q^P괺L/l]NW_̍0a܏QE5SKfuIJT!f_'( kr- L]GmUi_¶O..sJ*!c +\kXnÚ*х٧F}XjAMC$st=Mr'(0?oN';=vu_+ع<ŷ܆_l`h݅\^&6 13MqnFNlQDB]w 7i 5s檈'qO֫8u؇%wTtl3ޞvHkrm-ٖ<ۊ1PvQx.E7x+夸Oٮ}Ls:mFOƹRq@u>:^imQј'Ҿ_v_: Ur1Jed1)w+e漠t[^)R^-:7E[ rI(O,Zp.4T-Qc nƚFYC,mb "8Hަcmd?<|E7#|Sa萪@%Z0"pEIZZOI.Sz(ot*2dOzz 2K H wYnΗ;=j8\2J %uiP]> f\nD&6ʥo*/ @l}SϪ].gtnoDll{!cxm b{=nd Ac\j}x-mu-50d-g!h4)xUSz\vaNnp-l/II w|]kDQ0-jMHogϰ1hG/?/)bT~xuvyvE||xErq[]Z[Y[ Eۘ| qoq|n݁3tNoyZ>+p=xƕ~ynqݿ#Wwv;rsG^nݿ78 rMKiT.MfeZͿLu/Z]{zo)K\ezqI/bqQ}wzdΟbˢh4HJB([2Z{L-wfD"VC)wQel~ؠiєdPQya&o75E?:-W{g8{g ^D0rrìm< Ͼ%fOV^qa"=չMG?4$AڈΔW#eUQ[I7NҦ\\JDr2@GE\WM*֪~,wiYN#J VWB: g[M- s[R:fWQpMF _>؆ 0V}DxV$q</{Y-sP@ԨTxߖf 4&1LU|ƿ--!Ҹ+WY$PE?`)*>z`d'ϣ3ѼuHp~ z0g w E"IZs =y?S&1{ߡ}+| 'OG3a&?䇙0fí*IMl mn o.thS[ HŐi^%.>#DRh6Ӄqh[CE;M\x7 [pꪞ{[eH{s_You{v|&#{H'ih |  2ӛuop,"XP |x/ͲH~!ЕLEukw,f?%nU˜yL=+I_b̈xq?VVy?|95Z[+m