#!/usr/bin/env bash # # Copyright (C) 2011-2018 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=3ebdf980e700c2f036af06042f70fb45 # 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 [\}WF6&` hkleB=:,mKg߽3z B,>sν3֕3p6V޽Hg]eֻ W6ml 6'Sg/p~~(jw/.CQF_>!F[ˢ:  yqnnoJ4p;7m{zGAIܸ|!;pmU0tb{nлq}&@BFNl :Z Aē 0^ iH鄑1BvJp1>BeL=ܑ㗗0)D@}^@Ta!gOG8"F|1Bwah A -L$bqy6![#8s#@=0PH!Dx= yπ:B* pFea7D0qlr2Lu|rt KD7:W;s׵8AMZO+NZ1DYGoϺ,+UsWx$fiwͮ%7k<. V8`UbEHj Cw?1#$jGTE굳F#gv W׍Zj28U}К]aT@:oj -8g1wZdJjP Xlhk5ЉO% `i S;h8a]{qUgZ^ӌ=h3C#Vn t<:kOovN["}*&Yͭ& >:1P';YXTa@sn H*U4~5kϹnhEM7@gpP=c\ uuUGZ `mXux^ ;SDIca܋|hujy`bWօ7j5n57כϴQ;и?lmۜ͗Y_#mRDepStJX?Шכ8mg8e!/9M0= a$)s})¬rXӐ`/:=EfF:`sCeʻeg ͅoH8qB,844;ƒ>0ȊGbtQlRFg;>՞ hHф ulgCFyr }KoȒ\޸1d<K\Pz S? sHTh2t)ͷ|wffPM*\V5 ljF]ҨIʈuKfWW0+w @u:t2e$GxHQNC&6޾YF PNŻجl-xb tg(jd`d3ɌuVz P#Aؓs1YٱsbvJfHkj7,xy@ZGv5B}Kȵj BM˭Mjaʹ>H-j׏;x[5;|KMcWkj7gV7n 5U~!?3 VcΎQiޖ4ՔIiXFG1~g;GϾu ;q6Ab7t`DFPԒ{eW>s?sL=EmxN!\r; 0(wpEm~ĈWʁcFYIuyE.rkZea}4##εMT'/Xu+^Q 튕}kኹzbI'O6?DZ#9J1VN(j|+i}wU:4u8+ pZUa?H!6$Yp)QV@P>(P8*%1E;2YWb uiW,vBEb9u%^Ϛ۔MA¹۝Bo&(̀c1Xϑ;eZN$ttIx0Iiz$B8F5[Ѹd)˛>1჎2FzZfEIt.*"ǹjx*ϊK_R$& ":f_˭7 ī} U4OOѱjC+d"͌직]Cm&v:Ix€-҇n)Q oXKuEЉu՘/"!d:} -]C%$G 'ص$6F)bp5 j#/ϒt& 4EʘP;r @wZ035⫈|u`!+H^/%1k2k^ŨTcxS8KrNN7LӉ"뫢q5[<Eev EGd8k[HϜ+r߈;K' {s`o 5fuތW*$P,UCH=l{$`j+ˮлbBrsx`~‡IFhO5Kwdy(x@7g?(|{J:G gcT@HuQ5}KDqeH*9zV?Jeꩀ#vuj!{?m";qN0)e pM»?38q}]&# /']N&C 0 ٴQy-GsoY+F @'I'O)A gk J%Ȭ /DG)gVP9$U=,Df`"QJZBsOL+Y9_tryz`vg\Kzդn,%邪h\(E^)[/9m5hdv tg[|IYTs/ L)˷my. m(Ęʂ: HQ5i" n17O"gKPT7jQo&o̩q%Tx OVZPRʴB<&ёX@GEܵ5tt,I[dseK@bD\K[eLl${Q-P|giיP؍ŧ pYzY' 'JfG UnVb6匌9@V]>Ի (7̓dE\5mWpuku֣w|dW!E%(ވMW37 pUy&p;t SdzŹJxI!ʤՏ(lm#~Jc ^=4]ͧXlnIoݢdz[ ]:|dYh‚z?ְW*&`(:U١m9^)}%Iiyc1P9ti5#^ 8f  "B <C7|![O@3dzh45}s 9=&VGuz4 l m%s͙2[SFt=7ܧVVj/ՠhG u>H;s|^z=gGdd܀fk |$!E;֯3wP9I=CTLOOr+7{%j4Y*a֊n=+3rgn4)=Jyn#oQs :M! ;*OLDƥebUݸour=?iW<+-Z+t%U=ޗ$ޯү(Fl=`uTmtK.YY%ac1ϴ*+XLIvSG=kHf*mPj}ei~e3/\~"&Wwbgvh7<7 xsbܝ^pBZ~@{uDTmx^9ݐ֭>.}{`[ǰ j6k-dp"vXwaҎ~;@Ai>K(H1)fSs Ikqn[ [z 7Y\ki:KJ+{vvB]Q4| _ftS8:޴MpPgl'J^)%#؄:.P$l~x?p| :Лp+􀺱:˛ vV_鍤K׵-B{դW2bSݽjUZp"$ hEorpߦƤti;pi#e(LMaüѻجLK]oB:y[h!| 3m8i/8IcE9jh{-upq8 !ω;DU8{41\\GI]v5[!lnW?[ɑknݡ JT%\]yL0e%] C i-].+ v,]Tp&HU6 WzqM+<"\Y08aPWSنuɽus Ƀ1]'ZyT=>;,4m/Iļ%c?7/kbXֱ bЫvіSħY.e:0vLրr!˾-|?ˁ4&Yme٪ }Q٨ZCNz-qgxRx7:! C%_:KkJSaQ+*pi}^D$uq|1xޗlno vn՛ãӽwL0 >MX]ϣЪᖩ]9d{R*2dŽ(E~].x@Mз'O랪zx9i|A/'Zm %ׯ~ӱ'N K>IG.#o&帎d顴h3g ҄d9}k<;isY4v%0Շ.RU8D}SVV7+ -'(([[\Jfn5L0\"z#yn5[ynWiYqJpTmÙ) KGhޒ"zн J;k^՟NBV^f=a|ԫz2Ӯ9~A@?PhijySdh_&k]6pTK*I޻+BZ޹VN?OS)>HALs00;(M5*N]vVWr'bX' ucgaTT [u-kE[_8S)wRGeAh+>=f8NcgU-}SkVB{qCߟhaGJ lO-a$E+u `ǗG|;*վTa&3x^e64r0V2e[ł0eO ;c)V׆eΧ76V66pcP&y&{aU_\5 ߀(Iu m4*mq-i%n@)#: !\5*: ?/iacXEǬbe:&Oŕ h2C.KiB~y{kaD:U=H?VS(BsnR^KYbs|H=N3{eօYЎE梣$N]&[0V:7i {ȏ9 rA]C~ACg2(K搌AdJ=/ؓwrIL@! *Nµe:)mP̏9,EόB.x|RZ>c{mBhwմ))o{KXؙ>RQsrQHr_ O`|.~ %OC{ʚ5PLힻr);yp/L#eDWfYRAWv}ș j6[Wkjrz* :f rn@ NϻAw=FEv"<Lrs'!#HC n|hћd~2V/J_eC!K_}\[d9^iD4-}G:c{c8; M^t݇d3(io狯ТH (z-18^Udxvpcrd'#q x*G[?N[7RXv:Q˯6)|5l*;W4mMjd~)%s72PsU86I̫yV ogni,1&/pT$d2?Td,Wu_|i:b!*h7V@rC^miVݱ,|Uqcy1Of̱ 5:ǺbƇW#7H rx>+>a-0Xz cz_a ܽEm^2O@4K1[:LA* -0f_y ǝƧh`lGbJ.Г[nv.uPsZw0_0$}͡@2cbD/OJɍcJP6W#r(c釄[Qmi`AtuPք1:yxY9zաa6, ϮڑJFouv3G'#uPPKNfP ƛ-L$FLZ.15i<WUQAWsov! a0h!(Sx'-9;&.{ Y?i|?:]2+A;9\z0z w.ku={rV2{KeI+m'6~FE_.4sGp eq KB0?$M\]1;@Xx(yM{Lb2@d[Ɣ/hZ[l'HW 3rFk51#qۮoTǓuGes.Gn}#$0y[NHp^L0xh]TJ\7ŋ%lTIS).E >~TNC-8 &6ImG9u#!Y>"|nw$[K#B%z `a(q͖'JQ'l]h2CSn<B/ǂnvT59ԩuNς2(%a(,+Jc0D+|r;L:O:85V;Opv2"W DyuvhWVyxں@eo뱷D^H }G0J2z)P˪A"{"&g%iPV҈u*Vyk,h*&MXИ,zpsO>aZI@aʎxQEz5Vu<z}VWbqpSwIA26Fq͕wL5Ŀ*#Rbpf=I|`J s[%}6q3Y~==wިVVŋګS~&_„oo?ʲ|]E÷U~e9=*?{dFgMM+kEV)E]dM|2I9 5(F{uj}}1cȦۋ~iThj%ԊӔT}c5]ǪSGe=FwO(m6O@ҕJq]E>?+"?Ov_9Nhi!M'n"h-gIY=,$$m7(zvⓞSb V? b@fѥ>tyU:#Ge-Lf'PdS}R|vꀝbTH]Z])#+UWRJ,~;Җ|T }r3g=,5pjĵUVT^W߸ܾzoV.l'5?2#-?xlj~S=Js5RыWG.~Q . Ou3%H{@\f=%g"[ D6kQ=68'C' 'w+wt<yq>_v S•e!k nNՕѻ*0L-8F-t҈c  ɟKGvnࣿ,yJn{]B|Q? ~=c_q(k%Gz%:sjwd85`xe-݁YA$9T-﹑rd<ƪucOV"[Izg]sRuIf%c-i:k6|I)=l^?k*F:_`19 nH\_ ;/9,&kO(R?"d tT0+D` 2Jr2;; +8<F2>6mz'KX&GUG륁+Sߦ yT.BbоɺnFҥ$|-0|Sݕ+l$\4n{I/%Q\8>i`!-g+9+I|eHC$,7w' ꝡ&RA"Osfؓ dļJ.w92aW#U/ڙhCw 1#c oIckT QY̒HX$r|'8BcPK ڡ4h Օ4# Z 0zq_:JFQGEAyՙۓ 5=ǧNP xr~z <.p ,+U S~=5}7x%zBi/o9ZQs@*lLwZZN9j0`Cvӏ1t}T"X4 كⶥӁJ@{!Hkt6;roL9,! *"Pɐ2PBq/ՀW8Y/,:[ Q)vIL^VzA0/} !1mSX݅QK`|~KЖjz؍[maKm|TJ:l6VnmKh]|JX-eJ$gJe"Tp ڵ:s'i€39蔖duDZ~m n}Lj9-OHO/ϞYwyj硆.q&Z 6ksFɯ74yL|u22D!oo)8fI@/-u5"J {Cvk~O5(wpDj$EG߯NGhkrfgv6^]S`}-US̡OubX:oq*b>^o)vKQ s?6IJ>%*|tAaqqLߋ?=~Q!tn1ASccO_?I`@Y /^aJfc<ߜq5`6ѥ3Z^Y-NXJ1Q?YXtjmҏqBI+ kŢy՚ =tdnDb;s ndUkI(s(t TyBϢ<~Y͌&ǠW'{1_ !)d>2gՇ Ɯ!0gw8KN.ʡ%C]ahbGjje9<8>׻^m!X\ΆVsxgҔSg=9`lyӅ.fJ$MgM srЍk?Vf['Zs/N E 9'J5ʑ?X@І`Xja^F!i㲼ǑsqU0kK1\_F :#Ԛ+$9/LZ)µ*Zvz\n|W2-hsso*բT@wwXJ!_rՅeFvBsx It\T0X ] )WMhc }sq%q@Ū8X,A[mzϖ &NRQoɅz89OEc#p2SV TVjXlCj^%CWr{hyNiǎ87:$K""(l$cРa4D4@W&:zc64e>5lո_v Ka,;c+lv0A}pԆ+BZZAvG=]ҸHȊ1QP|  R& PXa+dA+%O2x|jI3 aM=B [4i!%Y*0>+#l2NɿoPI~"ϳ4*Oğ ~rYY#kRs6Sk[O1GuR+إ-CIK0ϯ_1F ~KmoP>B ^C4G!>y0Ia*j=N9 (5ܔ3V&]7OQM pJSyeRE)[lb(IM%~Di´|(@-4-$Nѷo2phˋIh>Ql% Af6xP=Fdj75F65٨1JA`еHO}V($iMA}NDql0DGE5RR.ɦBE*T<oZ*hRNT -":#Oj+p6qhhD3AސBx;͢8Pv>` w"`xԭG㵨F>HC螂g'.<#`0,^.FW kqXSS<̭3XC&~VoLTpG[_EV-m_7pӍnJ4"!lrs ;[)8s.`ts>VLlmauT}V@&tlVFq=4p闛 $mqs_G]KKv :f;VZuDF'pYUH`6*^>>=~ w^E{̴{1#֡*2Pxu&>|WrOǠcL'G1W*kSo;ukN~^SߩwxJ|Ƴ='1.s;% r@I%: O5&Wc W0QM1 9Z*UˣY?8N<67 *8$%7i1Gkk9cǥR,i1j.sr`qZu7lH@ oC[a6 !o肰آ;aji~2sҎȚC03>!C}+_3SY">31͓(XFETWAu扭zRjW#FðR#\!N_CmzBis)WtwمI!ZPNPS-/WV|T]~֘~(q qudjy\,4a wAo65;]hԮbBv%^+b{6Z. ywYj5ϗ!Z`*i*~y|l5Gv#,npAfbj9Z؁"Xs %0VH{@G/O~'i-`nhXxǪzfWB%R2!FG-聹&Ux)=m^%i-|_Ds@kO]; ׋hqʶ1纋v?%GH/o݇o]]^~6;S%xj Z%x4Sm^jk~ @y2<F$xh)^*ЪGS\ 1Le,W)'FG>wS9F#m)`Vc1wJY/TbQ7V*ͶVv٢H3i 1Q7qL[͇mdN K^J(F0}mxڈvbG 3bd,.8ӭPOF ئm8&F]lLV7O f Bp@ P̋Uy(VnF"OGv(utdL~:(#V$kaN2Ԥmb_WrUu /&&hݨAIPB|EGћG1<4@٩v7H*@>vSPx.)tpdFXbs6]6Ip1dܘG<֟t( ndryEO]IbQ4`)S"y!}?lkcsizfmbKh,n"KQ`mB'wCenNk:d&o oΚPЃPjeqOWo4ԑ욷Q%Z;1C /?caLٯk^%<98XKL r4ÖY&[L8~DbH#X:/&O"S'kDKTU9m6<9p䍈)%G&sB9o%œQx#UpSzd-Jq6 Ke/t#椛YSÚ[y>+"bN յ#O kmO,lgsN nXgjP,t"D\jMMS[9I5f.Nd;,F?9E.Usq)U`MbQ"y3NdM4/uQ ð&p7͇/v[ZI=D`ө/`B3WE#~nYtzkՆxŶ?hg}[=9ޣVW>Ub2S,We %FBg f&glU^^j,:x]%)(t׽Q/VW'Jd^օuA1{k */^T5XɛV$O/%D :GqgKVO7nzYNjۓҫεc_6~o nGkV[pWWެ7T:Uxܰ/ۮ-~dWky[*)F1|UhPszy[SqZq }Ed*ٝtQ4q@O Wp #cἉԸ +s{I-b>`/K\ 3mEټqakA? [=dVN+p 1Zl7 5#E`1Bx9h0h$[D[.}K8 ם5+c%h2Feׇ'۳ >jRiCnP\%̯Jb̌*poM ,!~MG kO@y؜(9gW=M&UsOӸM٣{Q~kRJ~~b2Τӌ+rfb!vvc~wGY, `F0 C@J/)CuL&z*Svs;X +WAI:]Z\8{ LZosdn˷_ | ?519lH)A+I!䧓m'E|,q $mVSKR 2Ǝ¹lo)\Pte3jXh|DAٽeY3oUPfj"БZ_0Y^=i:̝K᢯lBCg`T텓 ] jD`$f $Զ Y^^橂ы S@ X`g3'KG;^bxC}*^p,xߩ*&ɛl,uC3!TK&Jb|HQJ|I4*0c^ `XنGp\=em:c~_a+9"6- X^mb-̕\; PpF:cD{uxF0qߨPI f&xYΙ4袗7EZ1MM-u$]B{\<&¦LN(#uѽT( ldlv6Jxkv=[knnQ,6tA91yf 4t vi)BE]ͮ[ݻ_].GtCrZQf%\7^!֪Q\XAJ[OdL8QA=P}޴4ƧKXW&8Z9JEǎ7!T(-o+UU@R%BbbMgIڵa*&AQBgoHPsHU\l۠U~a[?{n}@έȷ񃸶>~  [7d-$Q`JCay\T,lZv..=9O܂”Tq-2=o718;9<;ީ3o)Z/t8`:Vk3B3E׊v2lFxVgώpADuw8wZ,FFd$zخ]'EX-Ǽ^2^l"-˗)F4ثPEuq*#Oe䩌<2TF Pj09*G e7sq_}jK'}8$fuvDՓ tn Xd&!k΁'G_hff{2S7Aڟ93ь|$mgG'"%G`H!mKYvU 2qtP='n@Ó,!>; kx*zG ^+K/) y=+\\RSqR̸!)[rdh!ObDih\ٯE}|TŢXRTKDPX~-͌<bz/ |%\nV:1+t?j)Lt'Դl-vA^-^XLij!k35*O?ӟg3L?ӟg3L?ӟgdG0