#!/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=8539ece95269e00b64c93033e4d3975c # 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 dRnqѩ5/~UlQUW|Qk6jZ׎_$*Vf=oz,$gZ[:eRj@5">Ct\ݷs@=RkjLjdDM(l9+נebٺ@*eHiM-U!Kɒ ILouP@3;_,{F 6-kF!)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$-KݸgtFPU`l(6lo*u%E):K8HkbvC̩!cRbr4SENF1uܑW&I J-i=mP>&wo;/L򎏎6xV9D/?wpx<׫ZJVpi YщL^ {:d=z@-dN+3LE@8` EWW=QR2X҂2vS+f dlR%$CE?LY1x9+d Bt{.crAmꂴ Ez5{g-HvF#AJ;0ˣ t$Vn%%Płj^!he*i5娬rnanNg !M+4JC0e XͽHP>+#&ߺ{wEl ͿXÁ4cn٫GWܲX +r&wHqtܪ^5zP}+r\!PD73Ȁjdɜg(ﭓ73Pr;JCVb9@rW=C hb$S2g̀軫tlDS73n[_/,@.jH/)@SimX6j)KM+ ?/ toqp7a,޹tzpk=H܉ Tn.:<ү/{ۊr-+ CԂ 7nZ6HR… )Vp.FDJr_V5e(`W j^Of\VA*? *%Gzd WHۍ:' g羅mZĨUՀZ<Հz<@j@#p^|X AЖP.?X,=^|/o&*O"#J>-nKsCF۷|5ywY׀a!LL9/'-Lígbާb4,R#v T|n>Gahݸ;\&X^F V3 Qg= 3HaJ5ߴ1Q= c YRDlbέS4k:0C2 䟊&/_7{dB^‡n_Z4+K,/и+0q=P4dɜJ)a&f nSxE=uċۢht[u "5\ȘÊ- XHJyBfDvݥz4d!krи`AђQ'H1Ot18 Q)99,z}Wr267^TtXoAm"W&"2߹6`a.jKj+(D<bGWQWcw!ոr:uWöc7R>'cߚ[l? P2 a:-XofXlC=m}!bjdNr7i۲!2ߴE &h7TL?Y&+Ls }zyMڍ0p!ii$ -㋖MBDRJ,ϥRݢmwe_ue|[)̔YYB#}e~C=/ w ;* nѰ0$yIbq8ض5up/ؔz9?W;jZV;W\̑2aI=~,8VX a1wKRv1)"S*j'Lػ&}Uk opK/|M&@V}ZD (<Ρ]wxx"*ܴC(>g+Bՠ+gbK ;#UnvZNz5}/C8H uҨoi< @N{Jp" Qс95DlG2\|)眩٩ꉩ$Qq48Y2ojւv[1IJ#9b>>nhf)h$it.p×;lRH%v$mͪ0#Q<6ȋ֓9v$zg^&.SO0Q4V;؆4K4oϙI#OEBpep 7n3|hӴRIzF\f/S94NJ)1:]ǽqǡ7ZBb`܉!Zss{ pܧ]LHH:}4@)OrIETש($NZ S}\BCk>n.4nh S ܗEϏqɍX\bR M-riV 39Ƞ;0y_8QynNY7q̇`X9Q^X|"!V! $tB{ 7G͌im(>ݑ2.?d(+&m =`*+ܬ1k VHuoKS2L{Qj_oOY=}FTdy ڞӜ,f >jKf2UGxnbEq&溣Ц&Nq.*pMeP? ٘'lDm7IX 7ͣ^dLHЌo(OMKgnZ"2G0$B0MȟF&;w'Y_2oy\On/vnww߯ZeveY?LCVddbnD։7XFl]x!e/ia ؉;XW-% ;Y{ 8s_ꌤ*w1>0'X3و7{cgx+umcŇAwȧGNys}rd]NMPÿڊGxd%Z!Ǽf? ? `Og(v6^D*PaV'ǁ?{Ժ_-+O{!gZ^՚=`)b}X$.]'4EZDo]M*1)][}̕ q ݄ٛpg;PJvA!~+G‰3Rϑx:H?`F_ xh`+%P [+ho0@ioj=|"_/?jL2 064nT,}&)t#)1'/nLH vJXio5l(BwřFQWd;"8R>/` S6&6p?@y,o;`.3oZMg(hِ{f"G9O(,ٞfҧAs 5M~lu޺,_Z̷f[_[tSIGuYZ!-VHzԍlP*qy+ngv?ϿϏ}_GU+8!& `>f{N6RE3lvuK+kSg`v@z}Y՞tk9ʲ/eMKh~ i:xdN_2JdT;|s evvӭe䰾W-F V˥`"eroSd9 ̆=l:a;92^ q Y 2k4,^~B|3nK//Yp/ `+{Q*u:J+vc<UY#mw ( @_ЙNQ‡P`&KCn.kf4P^-THl $]s!ͻ'#S׀r3To z/QhbqbݡTKJ# [E ,>EU Y&̀ESޑJUüꄘ %8t,_ý=13x-^X#i9̖&vlA~ Բ9 {## @=Ӈ* AeSZi*l@ۂӀXחIƦ#[va`Ũqt V>mpT4HwD$S&:+jA\$* d !ؤ1P4p +QPZ !,ƤKwM/ֿe*; RX)*7$Rİb,FLz7T S-#~-I5t;0l`àƻ!W5OCsh,Ǜ.-Kfk1u\fR++|K|(ؓ'PМ{ߣyz`Qa9liIFTc X|N*l =ZLJN)a6I/+TK!cSr8i69;ku \Ɛ0$u+MM)҂L58ql}-DѲ>صq߻^t[ĸkM݄oh: Ue΁޵&Kc!QV<3]p3ݡHwbLy D"'7OW% ."ì{jF"k+uF5n4zy!42H *iTC<ȸ->0-U an:+PY|j"A>gBii=Af8Y:G#(p^5zC>Q~%-ؖEYZ k5z\4{i]9{ #~):BU{ +7y#* I:u=6RAm?:$ ^GY|8=Lg *0  ԂcpRwwuUYevN;-V6D; wT髦>Ij}ZR*ԃR5$ $ ]2JRn^e]/?GElgv ;%B; q&\ZZaDuśĔ`8 t[y`Q/&6V"8=<(D`]: 4S#Rw1rr4gC< :M雱Cc,6spJ0 8\ u?;nmN:siA|x$d-*zR'*^1#f,1/oM7uCo­vX߫:I[/kNĵ-kZn9.-䗓  089>;Uɟp"\vnNv̘D㟵bXEFq?ÿ GͰ$JCb3g`vu ycHhhM#8.Mb_VL6p[rpq þ'+XrL%[D/,XG ]O =qvnػgDiGf?=%6O4"f\R1XUB)UH26ޚ-X虰m/bc-Sk723,GAdN"]j ϵ!ОYkODG$qu˸lNv7u\ኄ˱"QUY8S.y'ϣ{17/^ڮoLRWS*\|ѹX13R94pˤc2/tݣ-> uvdw:p$g'gnqtw>f6K,Ӧ>h "Y,ZWc 54oY)Rr=xlMK'1XeQVUMm떮rAD<õb]5X٫'"lpuMql9L CVlf 70n{-oaޜkhHyYX]Da|c$'kզ|Q>wWٶme1YZ -mW'U[{[N)4?ϥR'9*߀^LR;ȪoPq Τaf`RBpY6wC_D/5U\{-*trMC_}Keu[|ms*;`nT1{!2GgϠ_8Sό^A _&8:@3 L d{. fsPrEDK"m褝F}*Gwe2̕KS@A: /"RjbSK%7ˋEPӣ06nCvOjZ^FG\ac6CT\ tDB@N@Qvˁ[˪mg"dV1ˀ^l"z2%(kQO΄M&ݥ>8M.IέQ:oh7isA7ݷd>GC?55F0"nІ` [#) qDlɊح5j#Zd݁meKBsyM.۱ag=*d ڷ>N= )'d!dˁY ԝAi".m:ʝyX`61f gyeP$ȷH'!X316FH4 !}(8=;ys;PA99;zY? s8h?j!*!ހR{^'D &b $o`Nl0Gә l4`s*JoijKkgr'^WhɿbͽGo{h/!j%z89zuxfQ߹nCUwUܶl{g=lnLp$YJȪrXqewBȓSǹӴ:oZ&cO[87)f rXPI5u3#L1(?mwT#FZ7< 6O,/m < މ,nOղ-48eoHBVסtE\ 65Ce_̮v+]B?Qh%km3-gkb~OLZ`tv5jlFZ-}+J #S,91ůHa $(p#?+g,,,,,,,,,0eve+vZ]Dk'ѓ%tI8?#{Ҡ?j7m7+ti |߇%ROf7 Reв{ZrʾwMzp$Jiġ6e è)028SUk LO|N/ H&xA=M nS`3e7f=Rbr.үC_6z#ۋj:`VMVTJkhA3@x(״d]U0UbXP-l@=(俿i#jby^%CoxU{9[Tq1Q .x7NY:Lgmަ{:2B+^oNપMHq7۸/L܌Co7+hx`oǏ`sQ%gp$^5wզ]!;KڱÖZwb߂7nغO8X^eL݋'Go]`/8@D{6)g‡V\%Γo^& BpP+]1"Q2E 7]AlpYFF^|`usօZ)#O'8 O%iggelg܉t2e3>!TC83d.8T&e.A?{:L:4&j=4}/.c~|b̿siq:TG06{ g%MڗNmI=vl#.|& ,$E*d/"{k&CA K\̠ϓA\v ʰAS-oNpxG0enCV?.( r n ) G>2x`jyH {9 5VQFءJmoB h9T$ ߹xF$ͫ>=Ch,ZOhpara70 WB@ ;I1Lژg Ľ~%J"d (ddFwhB:.iDƩv{IꊲK-%bY=8\e29d A!VA*NK*ewi#J '8ZnNVumY*(Jg0eǼ"w?k$6=A fQEؐ4-2$C|2Vf؎m/@o ke߄=Gvƹ ~& e:_Vϗ'zB$]yֵ 2,XMăM_Xbŕg am WJOSdxJOPEq|ΟLnkp^naSé%V:0>$q(Z' ZlU Y[*&K˴ry8#*YR`yg&pgW=N|:13hr f B( *ZJ~Vk]k W)Jd\ n>yrn|[Pq,–)eulR C).JuWwg|?vOzʣu/Yf?Y,g3|ONǃtxͫ$z2?k!=〦0ei X4kأړnZy|dYt@ȉС 'CϯwN4 b*FL`SeZҔ)f #v^Tf4'QU`lHU*lJ+CO lNLipno $!={Zn16}tj!Ow$c'13*NZ1XN] O UDw(ĺVRC;Qc9o@ ˲ḍNs$;ȳQE\n=R~ Fө]%;b(8p*=:gbYatG!u^ o?_f&d#ג8fs-pvފ*-=ݩ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=\?g38Xj3FIj41a^ܶw-{7^/SM=yOwN@Es|Q`]9~GskwQuxpzm?\׷❳}]DLh_{J VUz#]\;8}_Y]T_S{R3u(yk]z0"'Z Z8of8}`zQv^{SfgMԶGKd:P{|yc7cWm8,6ĝ&~fyssg3&pci QJUX"0J@GRmQx똙@ U0H6NKmwA|`8fK߻QTY CB sC 9&<0r)$sdߵnޫe"論#H< 2[QС C>tѩ'ZDȫUk6Pp>\هâzXoK ȇ@G0vk^˛ #yU H>{#5Y77ms4TwVFpr5UGY1@e-=n9>AJ'(x(AfCsd%UlWY1xN h LQdr%|>аakn:n;q eX@)9:8>oxτnԒz`c-mbn*O=%}GcjPH2/{; &kGhˬᬔ <,"uqEZX$E/ oVOH.,rtp,6Qq:ZhuIؘ|nR"z}x5+ӯᡍ"d!Fq|6}ڕ}BSm|tl~/?mjan4_ /f*0>fqqppX*~\]o>e棋+\s Vdq*? ȞS :>>Oa9xw갡y I74'asOӼxd?p%fyt24y< nF{YoV҄`@v~o02&45M3  PRo̹BWԵ =yU*KDo-En9aVlu1N3Vy.|sRvFI7L`-(9T :I+!{g .sZxWώ^4 @CJֹ@yGVIDKƅz pg}{qzV/b9ZpG n0%p!&Lno(T2qۻWh@Ӟ»K&b+nIXPحP9ifM np@> Q=0$r SЁt4tKNw/|U^pxZ[;{ Mhn_[qo75  ֺUf!4]0{isDI}"B7ly; _IET( K&T[ZC-5 >)$#`< Ep(͝7$(1 ns=.r҂ıY3կ˂mVvN٫ZTeB.3ڶ{;G$Y1˜x,㮞pdYE邎q?ZySmzo$[\*s)Nß6n>^}33g3{=5wq.@o]G" 2MSJxCk~71lS8[h/k.NNZ&)դT GR3z-en57:DhP1Ha̩s!qCTy(id²\:fѼV[kKtS2Buoƣ[k8obׯ<Ӧup/"P:bԦ b<їq0 O1w? ?䝎?|VQ5I}}n.\Z([ z@'%i ahZƿ UVP6 FZ(Q_jUhQ*:o{)U".*Ul>֤@k\;ma`S=ړ-F &հWEGXgnuΟXՙRQDVDoQW14{7un9#栶< %'|ٸw{%.=pgBnyD`/ᳺQv1- .>TT"0h/yw+3$6^H^Nw}gd)?F(#X>LeNL<?<^g&~Γ[F4N~S]Vy`։>gp ouZzfa 6)RX g';NL5oq'mݫxa0%5 30 !B{ЋIouC}㰴V5 "% pSZ s3KĬ#WK)-&(zmYJy(iVvLgq_J*/1?;pGMWMA]hpu8S[U}񜮐+f?S[Oȓ/e_}þ:~"}#o@rZ U:KXFݴTF4xGMblY?]-F{{H8!RxRf?VvUmu6J'ykaבʠuLm>V*nɆ\mMl'JD']k`DW\gKk\EXHMpBy~`hh,f"l`ߜ^qtجQ`\36êp($5 `v{&[@P Α[Dxr7LG`|^T>hIʾ||cj9=N'mT?$g7S#'ErduJe8oVW` Ǔ() }NF-z^`^;ɀP"%Bk?o$OwfxF2vx*_h,"¨DWrv1UP&%Æ_*aNX2Ž9bX*Mn)⭁r1f֖g`gNqTCt3&иO1&OuR?=>9;4TsV,hhe@/*oxܯ KsXS79:! ( ϊ2 } )R  3ҁ)En8 Gr Ord.yH0iCk08||ɤMnkNiv߻uz {y¸+aV4Hq*_t+ݣ7J_ק,^ o1\JgK[TlHe̴kJLp2n6ጵH&5wJW7g~r~oLW6Wkk= ~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+3ӺDo* RuD >Bn:I[?)҅rZ%NE/쩿Y/ϵZDߗ:xIa /wN3rY TW)c. VY>~aaݬ͔FM`e(5Wo*Y5eNH3m#s oMCl/p!RUT,՗KʹϢmtP>D-=&q?>uJϕˢB. wЉ .[\0)0i~k6cqpF^ ~6h%@"=?_N_ _Շ_p|.wy2*/7nQe\V`uV~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:?2wGՙkȁ\lSԴmY]BC fvr9ZGA){;S~f?_>0