#!/usr/bin/env bash # # Copyright (C) 2011-2019 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=c494049495ab0d86e49aa7e97621ee8d # 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 ]85GQzVUg# +]BywٍOWk">Ct\ݷB9aqG55+15Y! mX g]G"}$E!=QʒR&rwE '_*28; ɕ4\mLG6㹬qɰ=Rθx4(A溲+[ `V"*Q.۽^W@3xߗFȀ*9YO]y$uT)^(C#%Dڣ"tW `d@=HBALQeuJb02+ܑS(LhcEBRm&$ 3볱"3}UCUK  L̃>2lF>"bC}ek(\G`F$rJEO 罬H%P ̦SYnjqTP:Oq}'#8"fD׹ ϖB`|3\k{ 1s>8Ԛ ` Oq솘SCOhF%+ &9čB^pE^$'( 3QBy%:|Baw||)_:k?#G?< Un~Zk] *aH,![ِU+}NΔŰCiPۣB@0t\ .4!2wV,3HA&ؑ XtuA)E)-,Ssʔq\}M]JdH4i0+Fq1gxrVP.:`EL.M]p5HFt,ѻNوs$H 3sfyNʍ$*X1x<] {Y ,kx%tM9*k[뮫=ә%FH,sJ0 P(Lr29&_sijbed[woo跷 d5T_s^UXQ1ܲX r&wHqtܪ^4=0-VWL+D7Ȁ jdɜ'(ﭓ7Pr;JCVb9@rW=A hb$OS2'̀軫tlDOS73p& <{ 9Zl{GQ}^E] |HU{X9XFL!n=Q+۳f6} s= z"6tS&_Do0L c(ygLl4d{+$zE_cz SaƑ3!ecNuɛ7,Cql H-Z~/@v@D9$2"Î >iޅET'FnQB@ zv ndO0Hgse4S88}|%Hfn iej'%s`XZaj@.c1VuR_YUKw$Τb/WMQ4 r,5Ԕ2/Ih LNT nZM'-B~._hNZZ[#>v+;!RcYZdY,F45 Ax]`lqwԹj5cMfi#fyqOz6֙u,[$WbuͰ))zT} Ԇɜ*3 4nҶeCdiQ' y`$cBsY'`9]_j>d0/P f-S(.|hr剃%acy{St#kDcΨ:clND̼C*IK"2t2' X\,,CK"&332c^C7n(wĒ}p!LO~MV@X/6 BaC HD [-]}3XXKK3&E17W28ҷ<-S)c IjGz^@Z AwT Gђ@ Ll9`>X 翂M_f:Uo5_owkwkwkwkwkwkwkwkwow밐9R/O,.CY9}>.#ESK{{z ]>GC> q_zWB"J]Ю[@^J̸11zs3H4A4F3P`!l}:'ɣvTG͏^]o\|眩٩ꉩ$Qhdq48 e^Za{햷^ceOVom-||(rR )HCȉ* ] ÅI^JHnIښUaVx m<%'sI1uo=KX ]&`i業vGihbC_U3'qۀ9G&n-S-8g;'biŢ>gȊzĞ`;sCi]S@wΉ}Jyϫa KZ ;7?"Q+xNun԰IIwkF? CBb9I.ӽ$aT ?%NZ WR}\BCk>n.4nh S ܄EqɍX\bRGt M-rnV 39Ƞ;0OaQϋ = fƈ4 YSS6eHRZH2w6ҁ ]r0KsGnɍ~mu7RS[ 1ӛѹqxu.(k7njjҾmr#Kܸ4'K>YRkLbaQ3^άzQn=$)S*KCƼ nSOzer6f۪&Ѣ`?MuwF}1nb|{Bonu(>ťY4dҙ[Fa *ɫ"vS.-a srbs] {19ޠC{g qpm?xs5tRpI=v^ 5߁ܣ{+J^yAFPeN;|;Sa}_[,99-2H =1=d9P'{?B_({STjY} x 9Ӛ,KAbI#CtrV hu6)Ƥt$"0WڋE+&ʀ+]pR 9~)N$(zăWrARw3bjd:V@[) 6|J˾@),g}|U?O|1$x$G@nIR7QP0_Kb<.y 覹 o7݌NkKc޾LD\ۯ L2 064nT,}&)t#)1'/nLHqJX*$o5l(BwřFQWd;"}pjRopVL0R)dm<7-Tț3ll=z3 ̜O'lORB3 ٹeӦyLtp:o]qߟZȷf[_[tS;H}AsvݮZ19QRvk _L:r:0kǿ{IR -t%5y+R/l.6ޗ$_ 8l=xs{_m!a=+* gv*+8*Z-@ަZr-f =,\G GEC$@|6lcQJU#ꄄ %Hz:v=1 /Z#厎i9dq[fKI;Y$hl=P[r Cu@)4Qsۍl„i],Erg! iȦ]@:N__`7\J7]CKP=ȍ k&-!RK`9iҸ)"q 5P0 0C IcWh8ᨗNW< < Z  ƤKwM/ֿeMW)@SPw۰)/DePѫ\Tfx%T3(E{88銦9jK"2K˒Zӊ:J _g#J4?=b0 *4{AѼq=0(H65"3A6N,K'lp6wkuXE-fn%0uP˳dx8rjؔ"NMlʰI]71dP#NҏKZxoHBPPiE@/&∖j-gV}ע۪EE :\4T% ,qά566FregF s%^|*Dg;#M1rT-yUR\/ ̺KuyqkYX3oTugOFIp4T>XP~`m(rZw|MmwRMj s/d(9~{~RȍW7}t^8n!sܝPBSN5}r:;RGWOU*{ 6%y-(栙2u&@~ M| *<_PI?ɯqWw;yM:ݬ1 Y8Tn2fWe[mF'|jhMЈ!>DV26s)aDD3Ha<͔ gs%Yܳ-B C~ c thFœ|Ӟ:E+Y8 r51#ë,Mg kV!m}j71[Uo=+F5A-es4ti$^~7wwkMz#M?5b\5b+IPu \n7[׽L2&̗dkO`@zHWAZRJ*ҍd='[{S[yQyz' yIP`zH,7TuU32JRn^e/\~"q&|ˇ6lW<7J]L!rʾHy oU9AJ+CJƆm^ R7%>^恹uz0֨:a)߭s~NޥraʺYNFNvl<[8_}VfJ-o)bd$s9ާَږ 8\Yw؝ u/=6Zg90>:qtH 5%ԉJvx})%e{ &wLa| Лp+@fj6:X;i3ZҥڦBI 9(MlL%NvOwwUF'QFG.b{ wx;}UfL3,7Q|/MaR( K1.+Ӽylծ6aBGuX64k$cE 9Z`l%:;sru 4.EqY-L?яz/n{] Z(jv ]|as,n%աU*)%\U~L(c% M Z;*1rC02KUe>\$*VM5Sg&$U$~kdy\/$H8+ /sIU{/'+6oy2ŕF./m!ʙS8Gz(`sqsbf>44Wpʤc2/tգ=|u~4tHηNvVtS=YApr!uve~P+.J6e_ngB3 MW{l2(*!h#눭rA gJ3\_m]/ɚT^G+h> A޽Fa\pr`mOr&"`@DB[ǮCBN|$G>w.\eֱY - ҡWU[N)54?/sK1vL0րj!-|7ˁԋ&lՅe>V+UuH2x7:yLζ0YZ#Wd~ 7/ԋ׀V۷JǗn#}4Fd`TF~c-D_lwA>`Qkw?B[bFDzmmJELؑ/gƛo{g/v=zx5m_~F衬6NHス=1}o:wFaԱ@ڧgwԑ>=-E<)x7_B)6nM_}7o | !pؐL8+POO#k~\^v J֖ga .#3n5L`\bZܼkeq_ F ="o@CX\:IuKHAݸPPҵq\y,toukѣ1N*Hү #.Tz9Ώ_J>h_IXSo@=fҟEHq{nKopA?5#rPLCj0>yO}hd$Dzzp f/^W{hɿv`=G$ {% .Jݓxѹ+C??R۶"PcffGx݉ B.BV@`]UA]>Qs B\#&|N/X&x~A=gvn!و @)Η 8Q=ZHj;J? Mh+~WzMI; f u  ٍQBu}&X`˃:n-Iū < .Dc nt2jqz?Th|s=5 %f/㖻2q1H@m?"zP:*֜҅€Z,5yDDh懜Z*҉} n&߸Nc7ê>֮cyA9WKWq36jv/^%0x`% qh=pbpيmykjJA4 LN߷#J"xX<+HLn}8,F^|` svA |?n"K5Ө._=a" RT 9U$ڙo^h pͻ:'&Pj Ru,8FKoj=#*uF'LV]b* ܅UՋ*\?r˴X!U, ZbXF3Rb$>wA!U5]fThLN,e/ቯx>!fAC9,GԞH8}NBlwI٤Չ--mL#9-lH|TZDdzLԃ2H7W|'CaQ9<VѭO{O ]ț3n\Q1M @PD dY@X))oō Kzxsxen3:죛Xe> :\bWH8;c͕e6Y~Wu_bghȀV/GJo'\H2>^{2!%kQ.FLd&3ok 5f<m)P-]!-GvLـl]FtT7ʒrb!yt勮E*HUH>0:&k(`֬v+LYK9_nem9Y<φE [8%`V.Ji?zK2h 9뭿8| =;]hsJi` oPHyߚ,+Ù]$n;[%}=6[7]8KgɳF_ڜ=\ͤ+y'3Ƴ!% Z݈n*#y笍A*KK)"]WwGGNZƨ֞>]y,[f?Y,g3jg`gA:Zu=ҟڐq@E1\,Aizl5QIZy|dYt@pC(O_欄+/D˙ l C,S*@^yR$k FUqN!EV)bE?et.R :Q39 BŐ`yd~BDEtU@EȄaD#B>o%W'Nc~Tj.i6(jP*u6(㑑Sx,FCI=lx[u)'_[QAou ,K2*47JBeشF#(3*W&A`#0o ' T9Q B1o_ Buk~ `.UMH^&q Z YU[zιT)(^>(#kZBq;*%E1N+T"gjz||]cRqj&GM$I6V:ֺӺ.Q˕Ɇ~6?wڇLiرd] GsQW=Z{n53YN49fd)Oy1/\B>qߒb=ЉAIlz:xg kiuVh9ZyJ`Դ,U'@=3Lɶh^Nn9FeMF뵺Of.N͆7!DIMBm#mG´ۄRՈvZ;?Do`nD(Et6i*ߞF7˽tGEX%xordO=?U IWi W+_y~[+8{K hIb 9i!F )Ϸjl4,!t%@ Q8԰%xjUJM#teWfesڅpœm1ˑ%5c@苔 P6dU:f4I6jq }U0ݥGYMK0LSrW9a4EsLLQOA#n>@V 9M͞=ksvӞ 9Z%hdȼ &LXp)0<8kWU#(:(_%2!LT @!4Z-_`Fc3F۾ȃpD +gI͐|jA*WQ=*Bф&mv;.K  s6SN n?Đ$xYɔQEK,pw$ tj,|ʮn`uTelVJeA;"=]u9˭q HEK*?jQ%6d [Kp5`UJ^\ґM3Ujb5!ܬ&Vs d˂ZXX JZ 7[ۻ'9ʊk779hqP2>x2+`p JTa+-{c${ =KUt5ICo&u'4{:zud7⋤cKڍ;0D' Əެ?1on/a))~3Z} /tχ+,Dv:5jte PDltq{/'[F 렟A) Bu%~r'My`lRM]?ɾkݼWeKEhlυ?cP->9u YFh!u׭QڀB)D4Usoxv wz ]|ujF̹p8Xr'\iTPU~ ߹B U'!*JdE,=.9Å_'xP xZ'^VX7_3kŠ-0p "kKĖ'[ttv$O+@QH`l%N;H@I__HG |O i>Y>i3l̴#e>ouK|ܤ)Fe.8FA md?)fo̻{ GlP4VOpOpU OӼدIk,֢+s$ dJ9W>;G[ᖼO^ﰇooy<`^D9&` 3qIbs{F*/\\ i'),^spB]0iѳgQDlU5| -~?b (ҡxVe㳟϶=k"qY+$rU.eRp!G[$]G-@LZr=kͰqb[-FJ ȳ;,EtNj[kOέp2ҹJRCM3 CFg0ז^Vm AtHH .H*?>MS*hVT50c͜d1 NԐƒ7v=j4,wYa2Ȼa@=0e,4a;{cZi='AuZ N-@!Y+;$!:)u'AIpWՂyt0Aq7u::6Cԭsg .sZ4}G/_ ;/T0B!7!uWՎ袖7o-K]QK+W(Џܪ_C4ij@@}S llv6JG{wv9[=/QB7*[#A`<*}a eAB{z;|W!+}kt+|E^]hȶG;|{VeFqxbnajޓ5 Yqހ{|sR)V2J'pTVs.fpMLL@(uW7żڕ3S @"Ӄe9_wp5Wi* |w,dAFqԆJciŭRY)egFtmSB Хv\N}O'\:^ʔ_v5$ɸcQ5Pm[牢 C'ksџw4`r>+f 5xNJt|43*Fi2@\J2ɾTALFʰ/sVvWA]OuchAi|.z{]0k.j1*VQHI~[|L$12SyCB2g!G)M8m 4 1Z/~].~+8U&T U:e ~pt2C+ )tl8 1jZEe~0Hmz o$[*s;k vg5<~?Y{g3ߙw;g YyA p=;G.Ɣ._I KZb"+MI2()֤v*[sC`?(p*jsc$7J: *.GXDJpIzm K;(>Ix4|gۭ])}F{ȋ2wUܸG)z/gR=^_Zja6cLdSQQ0 VY(RwvӔ*j '# >d r'wFUx@#!9 YXpN GP&ot&?4:3HhK|ysjL_m,ӨU<: ʍG V#P`"H#10ZUTJP;^SjX V>) ]'ʇMVI;QX6:&m#O !K}@;AkjQy>W^=eqF-4x!do r&7}|s9~4!?,3ky!:IwFT8wbzR\4ӜŔ阳d8Q ֳM% 7mBhزw"4cK993HEe Р ED9K_Uy'}R_ҹgwI< %'sx{%N=HgD`/K:QTv@wZ'-3 *>T\"0hʬ/w+d5AH^"fW }gGdR26))?Exm}!vdpĽKL"%?Zgh.;Fr7пdQ<9V[H\ x ouGZzfU<'. RX *Cz\ HP!-wC}! I ܞˢ\"a,(+0z1]nuw^k\ fzX}>f=[򕐴"P[yՕ@Ph<7TV>{twG.M A]fpu8*xcM#L->˺v旑 -~jTj/auRQ^#|y*ap!Odt7Џ$!QZ?V(nU)\IkXu2h]`$j)Qbϣ '@g+긡w6Z-Lւ:PД90BUJĈѽF"'lF;CC\a;M/G~}z'aFՂre8-،V %iiDar)3EȒr&x* DK۩T8Q )tc:$VY:inƵ&lF= gNdfJZ6k]/]<%>T?s-h:*ͼ1ӑ@6>owThYʾz>`4l9N'mT.t+(o(;PsUhU͜'oߒ"XB' 6xGi?oC[tʽ;iD}eFbFvqWSL10&[mEZ[uCi3MY`sǏDfgX3h9!p"XIVmmkQLȏY"[o팋`z×-HPS3&+|j?hyuC.>^g[#6imK=Op 'P9dN+n9yna6 vO# R-0T 9>k~Ř]hg`N[g/avIfJp2YK [:L7߿x}7άA%c+pUjn]g[g; 8\"1_4@Nwxܯ M9Xl38:!8(3( ) цem"[_C!~M ȀK ۋKv>̥ڡ%" ~pY9Fߓq;Ve#d,˲`/h;[$Ӿ[y9 #AW[:i0%!|J`8tȧ34 xM/xRz)i8I^-$U콥M)[6ѣ2&ֵ@%vOT77ԑ Ff 1wJW7GI1Q(]]{ÓYB=BgQY,w;~)̖SįN㭳Cin'Dz QŔPX-AgWaxn=qgs GKmEJFaRWsTs*] V0Eߏ*ׂU+:=S៝ : b_~8ĩb+l9\ܥ'#qNTh%#ΩCi}4$ 4R,v{͝J7$c'>y}^*KhRɍ~q| <:>\*=qcq R%p;/xC`zTۜt76./(hWB.lgPx{>}RjXuɥ㣌)ǔ(Ɛ-"M3^d*ٞk ?Zվ_O)=Y_[g?Z?3ϙ%`f Yf%`95g_ėt @ (`61C♻@QC[L0'WxY!R1VLo%Q*qݛO_Pk?`3V-K.j~g ⣥Cꮤg1UA5i %bbIgVybWGӪ=i7)hR$.*BUwҋj qf8@5/C+TuruK1fk0P?d齱Ɛˋ1.@hv JS8V PsU:>inb9.1X.8>?_Pȡ;ͽ gu)Ba*G2y&.KURbKM) D2.:ᓄbzLqy8(\[̨oƹ X1!3N*rUU(j Lq1Sx(@1nYԂ&m8KKa ĝ>i@F˟|4<.6&=\&N/Dn-Y#W^^&^B/Jy}y)Z嘙WNa)D>ﵐ8ﵐz {XRċ,'\RYiac>=$ .fA5sߙWS,|T^L|Cc`3t`l!Ú/ qyC$i3'5uȖeӉETX>gd{ ۹lߞB}J$*lv7#8KT6MBvw)7[hPcM2* U+3“ k.NRr inz0Snxu,"z'0: 8n.$L󜌯P 7K|G +2:PkI09x ȓhuxҝ5,)t@L4u<PUBs0\-4tdVɭ%πY-Ƕ++9*ֽ'H J`{&d>SdnoFtMϦgcU^= okT1/>Jc?Q-l*@ Gh問vC\m6L)=Js-A97GT2I;e#9U[4WmRp G v3,ӌa$ft`Q֖- 2pp4=%s|A&y Lmt@c؊i:muQr|Z.FQ Zl701j?VpqyBo BI\0چnA ݇wI0bQT:l bDT2,d@Z*hZNT-`M"xZp[Ry6Xլeut@":}i^Zj%'Z7g?JN5LZȍ,w7z QbpZt||h& n2z^|| 9 AEB܈s d>ظR݀ g+irÂɿ@;ވZw'r_nE^|}:Q_@֗8K8plņ)}YR,n*Y, bЖY0$ﳺhE һӀA(a<<=E8a8qy YX:ijW`!ubvҤ;juR#aѳpv cg5r4 Sʶɧvhr;3~W%|/^~tg/ (^5'}6?3ߙᅦw;yμ~g^3bdYto3mC/P =/p s ɠgq;֗ )dwp&y -P#};h5Qڐh$ ;NB"jȲ&Q SDb#  Fo3zP'D(Q_W|)[?+h򝢝ViUL`F7,D^3r hL| wJa.j;+E~$ [ tfNS}FwUYVWhO_ 44[8iV *k[Wm)-mT9 10l h"#P`jt׶@(k @ _03]DDKW'iuk='uPNL!DѩEs=2D%VK<԰ .vO3rYɆU) c- VY>yaaӬ͔F]p.\\7gH. 8i7"|tvup1|.̞eRKMQT2uQjpj߉xSz\ h2Z/JA ?t|]kDQW0-jNs^ V4\m ᇧy<'z5;~5Œjï+W~x?XavEvGx8EmrqZEt?-LEM<_ק8>a=x=;rw/ <=R_^ރ.pvzxNx:='G_ܜޓ{qrzxO>N B\FRgۧ't l h}2W- K'%ilryth'[?mBaJ g}ZRs\|Rߝ>Ot1Uۧeoh4H^.w^hr3}Cd0KO[-7ܷQzE碟^!,r?^7#'ʝ]ZcOg )s\ Śɀ'׹ rޅtys-캰/܊v+8\3ŷ6|(5ptX_v-/q6i@?D MM[/уhW:ŹV9{}X]e^}D`DxEq En B)5CtU([; P 2pbwkrq8 ozp>0q\gv3yy&/噼n b(vG >PaG 8`έ!K"IrD<=,V64u$׺UF{|0g{BVg'go#v>tvW $˱b2AAVO{h vAj@4wCBa-erHGĈEa+7OqtN2Rι-xYB.zZmg:!jHzDiBٯGu}/rZRT+ ^_s{!.꒻PZ+b3[='WV}'?<ŏ,5#؜[̕ϷN_ KBM& V1@jW(3^چ1ʳg3~f?g3~f?g ~?3E?0