#!/usr/bin/env bash # # Copyright (C) 2011-2020 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=520e224d8bcb2541172217d0d91634b6 # 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 Ct\ݷB9aqG55+15Y! m.2bqgcZS`sR}j-.[݇?˞ñM y-EA48Ӑ&1,ug]LBlǷ Z#shy{I`Rc[ V6  FchI,a:jAm_vp% ݧϽXLa  YSF䶾HYƌ):4< ECBmZ) дp|JM 12n.ϙ_$+#ޒhd0BsѼlnhY,ꥬep^GhAJ]r :% ?K\z]iv }u$H,mv>GWÞ WeI)鍻rLTѓdAMHJu.}&d\V8`xdrgkp< s]Yԭ0+>H}(^/+\2 J$}֓p2jWIy: @ W)POgSTY L4 w$ Xn[m lLzr_FP(tapyGH'D`z(K G(Y&6BuT fA"W1/] ߑxeE*dd65:f2Ty҈LD>'90&e x 6+ZK;lyDZ֬PPQG2xԍ;}F Jg$U%l r_ iözbWRT0ҡ1xC&.f7Ĝ"ޖ*&/E?5*A_P0T_!n^+$< Di4O-?Ps㣣M_H/?WAs'gJb[!4 !׷9<0B ~LKLRs+I 0v$ ]]AfDuJ`eJ ʔqN3/Ki2 0 f6N0欐/X  ER &qֈ!%6z q)az,2iZuD@ "Oy$KLxOQBLה˹i?_8:Yh27P( ”/)3nb5*&1|P-VFL&u!~wg@_YC 9}YA>-{"grTGǭjUEiw"e^U%t$,D,P#H=C̰|o/4Q*rwﭖ4W. f@3 y=K xhD]5e3 z΀y*gTs|YW\/tK[Xy7L*kg 3Jڐvo*:ޤn[_/,@r5$ r)Ѵ6, Ӕڥ^B CDkǍoˇw.Vneڃ4+˝@|"3 w*b0L-Ryuj1$%\qkbk$O$eUSr_ }u^I08 ^]'?a@V/ A!H3]*HGae gN5oX-Mv3  <-yZ(P{` :hC3!]i[bTfk="/ (JGâ7w|2"(mf qۀa\ٞ5Y UC-g@P-QM-6"½zaJM@aoϣ>C0e" d![6'dcm$Wero3Xa,s$H޽#4e*&3gc@],o | )$1vdIЅ.$M(u:!7,uZU[hp#x dE:;( (N -O/E%4sK8M,S3{ae/= SBpIʪ },^"q&Օ{jRIcؤ1}}QM"v7DW`BwVpjj>B~.iƭ5ы\{0 Nh[hb7L݀gn^ 3Wnl<'G3>u❙욅{ ý:ۼNvo7BD ظ)2}8o1Id}XÎqY'}u !]l2sBxZ44_QlCm 1("b!5o B6 ͶwGV3k֨?jfp=Aw4JiC Sdz=}TMS[=؞a(O/vQ‡KWP:O✮ L H*Jυ=&/_@^}t bg)zZ4*,8(и0q=P4dɜ̊)a&f nSxE=uċۢht[u "5\ȘÊ- XHʊyLfDvݥz4`!krи`AѢQ'H1Ot18 Q189,}dh=l>nF /pѩlDۚE4LEdsGm]Ì5\, 7WbQ y8|HE 2hP!12%CH;2qgt m5n8$<ط@+Ϩ#Bk:*L:r?[<%`4POv}0\e&ჃMڶl7-`tL9o{jXn~r #w >6Bg͉wH%xID֔N&:˓TehRd6"DzfF8vWf,Yk-UXrq.y;5 OV (\Fă^|@v# c!A`(1t oFsii$c=j]Yg]_y 3%~2;)psPH6w_P H]k!y?>p400L?W)s<~vlR_۝ڝڝڝڝڝڝڝڝ۝:,dKSErŊv0+PVN_‏H_^{פr|j-_τHܗWkgϓ?' w?:7azYtVLVy_Sc~I|/}bݵNKR_f`3G/%fԘIA AIx(v0>AFQ;*ߣsjAG/n6p\|/9SճSSHس7c/hdqG˼Z -oΟ[Q䢙R8cU= dH .5lFAx /JXO按bގ9<{LL=DyK[cb,ҿ96~ɜt]lNqx*k,LǷNŶ˟ ǟD]=*6{Z18VtmL{`q/;'i( ;?V%,f/i10D DZ9ֹ~8SîZk$]${Y|0 '"NTשKƝ=`<),|\iA cjKf2UGxnbEq&溣Ц&Nq.*pMeP?1O.V5)o3ꋱvۋ-zs{ oG9/.mEP&26 De`PI^` pi?(MNvfFmvnww߯vٰ|:Go*8dAw^^us?['vcugZ=jb'b]D4hg{쩧#3ڪğ.;x|?` >pPfg# nGo*z^wnN7g!߽h>k\h.\ C>rRσ뼗qC |l$?u:hR|iahc\+~4"kg!nNa~5L R`zoLO?۟}TޏW<ޔ"uZ?97^Cδ&?5R X$.]'4EZDo]Mʤ1)][}̕&lKe? 2`W&\8B_ o,e#&t=&Y6VJm }a/Ҳ/F{3x_ϓ_ 52 [RM= גl#'K#wB$inۦ)|m7cӯ/(>*jҘ/7&₷L'm>ʹA{>U<KI fJ~r;[&sm&$]qQ$gَa_/\ڃԛD%܃d&(uoeM ? %-rtL.3 %?ӳԷL4Hv"dYi/-\x[W볔[|k}1nc<R2Pm Gңn$gFR??Gzfըngv?n{|BԹu9KYðv׊hَ[KUd9Ӂd^-8EWߣLbO?j`mΠ+wo}m\Yҧ(Hbg8Avm$B*@mmbpݟ=]VI=#f:[w9w;s^Oqbj\ /xj%IU (hpvre2%a [,Ơ]5tf >!>cu]7 h/8H?(:N1 *6 cmoHq}8_ҞNQ‡P`&KCn.jf4P^Ÿ-THl $]sͻ'#S׀r3To z/QhbqbݡTSJ [E L!EU Y&̀ESޑJUüꄘ %Hz{o ^K(H#hZYܖRNmï Z6[k$%V\)'P]!dJ+ME>~%v{[0a} wSYHBdl:e=-Fm7,}L [fkhiyGQadt%DrXNq4b EH (!ؤ1P4'ᨗNW< < Z?*_3J'.4"XV%7 TV]RN BmmNy"BEriZ0Sq_PA~Ϡ+/}hf0B (, V0wQAV/c&csxtP?]`r@G$]Q&!){g])qիzԌ9jfg< a4]42 }:a2iTjSFNM;Tjh_w`$)i :-,jhh,Ǜ.-Kfk1+N+*-|ͨG=NDZ/bOBAUͫ~Щ<%)ÖTdxF5hIu 0n X݃Ň[D#̦P(i`e2<_Yj ]@5dlJnM&v6{eXȤ2(]'nj%[QnxoHBPPi j-gV}ע۪E:%]t!Wtz4A'`g8gZJ,\DY̰3v\XFwWc"3X&9h*bpyxfg :Լu5 uP7Ӹ~rShG i$dQǂ nCU0+6k"m(wNdHmbj--=# [U7}x~;{&qcq Osr&ws'tJ +Qpa; c0cok2 =x.qŇL @m0.CK>^ŪSb[zDrVXQ56n]fTu9{L*3,Q5sknIjO;#_yġ h|k1id6d7%3ϵ0 ROUK vZa-{»9avGa\5)RIȡ(f#M-bQNj{!27 bzo ϧu+^,%KKX`ӎ5X~9H~Ŵ,aqP:zT<7\IaJ2Zt2h5v#*ƀ,R.`1Lyi^)X[>x`KoԂr;!E-Znf-FX\,G3=tAmpRgg!AO-! ŠLúN*O'l%\8Qe-Z.GΟ`w1TuZ `M8xgCf-(_8P7uָkOdb l@+ٝM,sYC໏sk TGupސf?w,Q9Ni^.q++<r = IP{sn5}*y`\dJFݓSowNO'skZq:vtZUvOamJ([(\љ"3!Gp|mRk_PI?MQ~j,I'fu.j,{kLU󩡁s59t@]8p ϴKAT7"Z S)$Z8ʢM<4$iO7X e r<{ pʝ?dXnh!RA.1ūfMk:ӭzlvCڔ/՞ocUuزLaYXxP1K5ւaY@Vަ1"kOJ@Ű[l5 j"q:zԋ 2sIM|s@ 5- i7()6ZoWߓUo*{ӢlulqGIgꝤ&?KJcTpDfQYdž a2JJG^#ʻF}O'/?G:lgv %B B`|l\'ZFaDu#}8 hwky`Q/&6V"8<<ϣ(D`] 4P֫Rw2rfiS$6spJw|0 'q 'rEgTa/B*5+s5!ǜju <ߛHveӄ* zR'*^1# T1YVc (`ޠ B$=n`V~nfk'mEH9]׶\[\]Zȷ%Gm.fTd{w^WEn$Dx#=8uoN^e$Z% Ņ &u$cb2og`v !tmˡ/x 7Z7}mDZ2BbX;m}28/2bƣf Tle7ay*3òUDfw.d&P  W1&:XƵfesSͼYx~ W$\Uɽ$4‰ uX2y^9޻y~Ȗv%x+g=u}K3![& yXcm%Ё#9>9;tS#M%{C6VEx۠W<-l =6&΄f4آeHQ&U&KV[ %gJ;>ۺv^$P5e-0:ڢ)lxx޺9ɇE)`IkE5]Ger MsdpE&[2gY+o[6I^ToMm90x-uRc`hYBV}[v:MKe٪ }|Tq!>-qM y e%:ỷ0YZ#>߮{Rr^NCYm /^76c/N)z:]4쎼#:sNlmZFMH1&ϝJc2[B`0\}($#S5Ê2~`#~u~#g4-K]q4n9AFIIm~2x0:IuCHAݸPPX8y ; ɭ|04©W&~a]*r29"!@@I;KKV"A? e<IQ'0 l{'4*V! k<U쀄{\7 nxY8zFt~^o!͙w0-hz/3<Ō0g֦na" >lQkE0lX^#}y, G9!,n=ղ 3do~C;)&ҐAf;\%4#0:/3T*yZj`l;強C}Y6VסtE\ 65Ce hΨ=g/;J%"J `q՞Ɇ,7_0Ywbqnaar 0SLӁBqCJcu>,WFs<[|܂W֓N}o_ מ$xׇ>z7%^*[)/h{VFkRnQO  h]v7J.\0āT1xuzq8ptmԃ*hr/4f~y,+^tW Ym7uX( 6?Ɓq;Ri2d|@Ĭ%'BSAـ'U21QE}F}32,;*r%Jh\ R`'9K4Ę'],P&P B3[=lo'pUUñߊaVUV&.ơ+CHx`oǏrg0̬5r ;K_UZvb߂7ŸX^ҳeL݋'Go]`/96@Ǎ,S>\@vy/SM}@ƈDU$wSZ@reARYzEy/ϙ.ky,99n,:$E #pvfŏNܡSliS|Bp(\T/&eNA?/4|. u$d0zh!3 H_\6G2t0 ׏<3^x'YBpv疣 _dw>!ߋ!JQ4]8K;B7ħ5-sq8Z*ɹ)1]FF6>2Nt +8.҇ސz߈U{AtSt2jΣS K|P-W0t 5M@4$& 8O Av[q9Xۭctg.fT3LӯՏby: =tI- [^Qhapu&=g#6ymb~%#Cr bP6fy"\`mڞ@LPzѐCEkG/UH~:̗}1AK ˈU*S/ɯ챦4K{9[Kx+rGOxl]- S hRéN M mE7aO!QĈc66a? MIvS"iHoY!L`pNˈM!HrUfHɐoX{Td.OEխbm7'/'C~0'H'RnE!mըӇRPIQ4b0mQ(bDDllzpi,s\D'sOw"ͫ>Ȱs[?8=Z4x\w,P`É:^{2!% kQb&2Qug1=\.B{J 3P_KWq@ˑ=SA"{:]ÍuHQk-z޺LR++O(;m<\B0X5k$?nyŞH{/m5=+ɀneme)4φrSϵ<&NM%>K@xS,QL#O< n+X:[ӊeZѶ@͑gMsi` o9 5W;qI8:[%}6[7]XJgؘF_l=4\ͤb+y'˳Sƥ"0% >ȩn*#PxA*KKSDe5BV1jǏןxW?,c1?fY,|v:A*:m5WItHkCzǁLarpc>Y՞tk5Ƿ IN* D @~2 N BT@<;|K wvNqbr)؂ԗje#OUdF }>UɑYf8Q~q"K$֩i{M徒q\ )ÔՁӚo!$m $Ϸ_uwFI4K0KA3A dX&_C{юR7(HA:`%}ht%ɜA&RqlrdB!N*S@gsG 9Itœt𐷯!հ5_ o?c&d"78m-pΊ*-=㤞Fn/j-F Ώv"uJ9EQ*aQ0u5=\}>ݮp5 .he}ͣ$/̢fNn.o}K66 %5-![5we18y}[sGrV4FSPWAUvllTH VM/?\>at/k^Af賩>R AL=ɺOLHF] Sd;Aڦtgg-P쓴/vxE~ tl63s 5ODtpꓐ&ebpɨ02g#UR$aI6e:N:RV&z5aM  G)f p>:xg kuVh9Z?,HT DXi^NN<2 Z'ۢy9I5C N0l AwW| Snw:I/Ӟ#Oێ-iv3. (ESţwuڤb')d|{]/]`諾xxxo įݭyV8NP[kvegAА:rxBR:h X#1UI%6P(+׌ cy5uV%&STF32͹BT ͶFȒxM yJk(IY2XԢκ)8qҥ|n h퉸J>Yң,Ȧ%z&)nX?L9P&l&ި kd;0ji  CqQmpQʪYAKϲKw;l  :ٴl/uV  pY["C 74,Zﺛ[ |kj %ІE;Gg LR jI? uK[፾XdN7ե͐EN Jx탽`DY^ε#Ր*%9w|k&uqu;I,%Ue? A |}gKEiGW꾗 'J8K)%\rW2T 5eX)ـ@Eq؛㎬fPy`\jzi7#w? Zb{eرsY6z?2whO7c\K]vC_c I90OaHeZ6 b0{6ѹa=`*CI أW9oЅVaҢOJzN?⩶rEUoOG|4tUl7u1zM$.U%T*U5v.43 .~]ľNmstKr^:U&TR:e ~ptxd QY@8:ALLߍqWӢ/\O,E.O+P@ަ76{NO2ky"ގ5z>|[g3ߙw;g Yy -7{v0\-Y)[ˑ5)-?V׵6$%/lFRIYQQU ǝ^KpDlDP±HvaY\s$C~(i<²T\:] +%%j,n:75pk{g1ׯLiS:i g p1*^1˸q^R _]Ox1z+6*'?C~}T{H#:VV/HMQ@t+ U[,R ?KR0pXδ{}%!4uʺH(_lUhFQ*:z)UB >OFiRM?Wb䣭A bѽ j3 hQBTdA@C5O_7Vk`b _w MF*e)95i> ?'A|@ОhUR) 4zac+Xv/ڎ>3IЛv7!ts^zȪc)xSMYI&DƁ d0ݭH ΰTƂΡdےꩇCGDK7Ow4?7:l{ XpG.yM A]Cgpu8*SW}c%'XIOjFD#iha[CENe>> =O/0[nu/UPs՝d@Xl  u2AJ㆟F^bW'}c[^|Tq30wEǠ0*&=BU"s= MI|:ptư{B B%ɨs1?3 \8:50S.Fbl+|4n^61s\)P"tܺNg'gj{. -Q⮒<.|ǯ5igsgU'EW *AB BՃVY iCP:6Q&-9;Rd .`^&Ƨ`xFqxK>̥ڡ!"}Oc/Yŗ bt[/˶YZDnnm^0~Oni,|_Kl|el@` !!,L}0y: wexRz)sx]I^-?kҦ-A+ZSl'pV  2wJW75?_nT6W>Y2?YF,w;E΢~gQe%~}ojui]&DS"CaV ^az}1^.\7++!ܤVr TTWn9UDcO~u{8p*ox$}R.ZV ʯs~z96nS8:?[vgsFrTJI{ w)lUؽp̝J7bo7>qΟ;gjE/xN϶ya˃å#7|(;_b P?x/ TK]é*N1n8m1P+~'&Rv|vv^.v~ۇ}HU\zVy/N~=UaNo\IĄ1L{/x‹ih WNuwQ!UaUx`i7P 74)2FyĪw#$BFkw3h)Dq)G~ϹN>"pؠ02,8[GŒY xum?EqDJ%QQ6VW̗ 90h}a͸EBO$P};|qdJv9atQJU[thظw)z;Q4A֥7`z8e=w+^}l%3%n3CKnrtW}|65토% kxˑwՊ?ܨ=%IU9 (4>4PAP%W@<輪 lτ sb FB "tZ"ʪCăIȄܘFCf'1 8G+MAb%l:b卵b(b3Vθ`B҉T7ϩ"mTJ<=hMAtb 1R#$`ߌ. RL²>2•BeM!| хo{v觃\# K:X~4KGuj9O kbQsLp@'Q m>tp+1Uus#F_S%)L  {QwCJq)`)H%ÜJլM{CK+<5+Ez)N,Sg9꺗kHWXᜅj ˮh2%h9ABt#L3ށ21b.kсIEQ}H- -3{'fWt">( E&|䝙Km2V@VKAײ+~Ъ@ܗ!dZW^ÙsZb8QnYx,lҧH:Eόb|8Q~aBvyU$-DjEk̀0qO! Їs:.aj뤽nKAII wGOCe+7 2\|RM<y/' ntt1#VHjTze|tXqOIDŽN/|pǾ'3oo=s~k~ϼg^3{=.NN* 8|76t(W z`}OvGyg֠iE.aZ2E\~6$4ZN=kGJHAO&,8C YFՄ`VH,]!Шmj$3P*])AEMJ rf<4ڽa.'"ׂpt<4m?DOFX%UO Kx1 BvGǤ{]zIWgO  !o2ZC8}5%_o=L`6j3Vn̝)CgVE) HaGu*huhp:$"CpO5vl@dmIJB( F ?F Qӽ𩛠Hr"7h{ClvGd?*|ߢq r7ɇbHp1j%U,geZ$j^ůW.98LlC,TS &9܊PTխАW;]i37ÄYTdOq=?DL.u'R}g}q4x{{/gPʵ$l2wMUy~ 6? 2]\JwG/)BB6UCV*ְe˓\{E*хFCXjFECl]nE$ʡK}ޞ'KOe+[O Vg𫑸h Hl^n*gу'~K2m107!9G# >vޱ/OjEs檈'qgq#./9'VuBpg5xk ]U[,ڊ1PbLx.y17x+eYO٭}Ls:mEOƹRq@u>:c^iEQE+}i/Ziɯ[*O2GsPȴ-V)Ȗ}<7E[H(On]hOsl$z[0f,:0*Ϭ'>fh0CEgA.EhceuQ&G3oӺF* RuN yCtuVR 2J_1Sg?j=K H wYnΗ;=L7\2J %uiP]> f\ntLlKU_A܁"Xs5:U#\Fވ;>B>ֻ82{.UER}L,Zچ*Zj`(ZNG 5ct9Hҋ?(xUSz\vaN~p-j?pՆ:g 5ڨӏezF9;9 V4\m!ɣ=R?5rՆ_)_>\y׳ܿ<[>:OW-쐋J-ƼX9֨;p}ovY-#wz.o\C7Kݸ/swÅsnݿOwvߑ;r'NnݸV(h XJrtdĠ*րw+sղݔ8^uY.ӳx-(LIuv^,ӳO]zcOӣ';utNS}ZDAҏPDْڳf~;n7#YjE?,7JY-7pĬ͈*gH$ʳ% 35~7Qp.1.?_E`C읕inSKxqsB9Qƻ&9J!4 p8*Q)s[qʝw0R:fWCpS;VFzBl)^Q!}pOԸ_^DCceth5 nk9O#ibPn\fuM0Jli (ń #sHꝴ*h,+;$*^2`d'ѡD45̈́{Thɷ8O=!_%HEh.h%juAz3a8JJc\~@vwV,p,F>(ϸ=g\˞qٷ#c*-`Fh1a8w7?) ?-js\ YE /qK=0_^-pC827/ti*D%Jj~ YέE;׺Uμ7g{LVgǧo#>tvNUЂxfY3K@*T2 |h,0Rڛ 0ݜGOgn+DdѢ[f㵗w>[8b= R}+W$˂[/IwC.]RDvbޝ+˺sOF)nU0fKŸ WK,dҺZxq?VVygo#GąlͭVg'@M %z Հb˿Mr?bPؙzfgg3~f?g3~f?7Wp0