#!/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=8729a38732323c3359bbefd6b8ada9a5 # 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\ݷ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̩!mRbr4SENF1u\W&I J-i=mP>&wo;mZ r# PJ_kUw_;/Bڦbe |oeCVEtb99S޺Amr} q+dh+Ytt % 0b cG<bdAOT VL)< F )#mh`V< hc Y0]$u\P jlgYbw <Hf(1& [gIyIT~ byW@"kY ,kx%tM9*k[뮫ә%FH,sJ0 P(Lr29&_s 4$ʈ59D,~/p [q89FRmWMeWH.HqCFs|)ᤥi5"WQlcP,5FBj$NS76 ͶwGV3k֨?jfp=Aw4gay{:L&V3< |z,1ñ=?z9Kʟx~[l\ҹ|jtMfH2]@pppPfSK€"1tLHkrz3cX @ /p_CWp{&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_6(gc\j- $]_wgc&Ʒ[,4r^\ۊz0!A3>k\h.\ C>rRσC |h {?u:hV|i`hc_T,(' = ڙCRظW{M&@JY7OdE<^#S~|?qoiM~zUkVAbI#CtrV hu6Ƥt&{o0W.Mآߗ+doWveLB)qa 'YH=G[?L {L1}5~+mB-l a`ҲF{5xE^/Q 5 [R= 7l#'K#wB$inۦ)|m7c&ol>*jҘ7B&%L'm>ʹA{>U<KI fJ~;*k[&sm&$]qQ$gَa'/\Ue܃d&(u/eM ? %-rtL03 %?ӳԷL4HvdYi/-\x[W볔[|k}1nO2<R Pm Gңn$gFR90Gv?ng1#*m l cN$o#5X[<VkW̽މSUN{Vvz}Y՞tk9ʲ/eMKh~ i:xd50N_2JdT9?zS evѳe~W/F V˥`"eroSd9 PM6°\G GEC$@|6lh+F![ KXfElJ스pyHt6Kl!~pG%H͡xxp~BAYE/a`~Z$. $]s!-'#S9׀r3To z/$$C$Gv(@7A[}:*L ]|6FxE +J87t,^ù=1 /Z#厎i9dq[fKI;Y ?Jjl=P[? ʞCu솠)4YrK8z ~=4/DƦ#vabvC8:]R|ч Tsa+ltMw8BHY*y]. I: Zd8Ȃ%pH@I6Ș@XPM^ E G`<eԄjVF|Ex)a1&];hzAE(Kn(JaBܸۆH2*D,_Ҵ` 44(IA) IW4Q_ TQ*XW}OB^`4yﲂ.F/|Ma8 [cϻ&*V(j1s+98h &'m<LKP0SM+H~M-@7If 5psC=$u+-ϷM)\҂ 8 6۾DѲ>صq߻Zt[HB\bܵH7"~51@gs]e΁޵&H]̈3v\DFw"ᣊ1,N9y*ٟbpexfgU;ϘԼu5 u 7~zShGA`-(ܠb;*U0;ko5ܥF~_Eiy9!K`}U%B@l>c3ǍfP߼~3u6V)&t!sný}u ,,{"=Pd$ I 葻ĕ26Db¸#M/!؜ŪSsm=" nPk--h [`Umxfe3\KNT{ISeLjCIdyc&$"l(sgK#c/3n-V/-TZi,w9avG\5SAK1'?%mv~np6PTܽ~8!z#8@*kZnj>[;^~}'RE6M X^ &̳B I?=5ѧ3܅YB93JK w.윥 tl8p9z{,e,ʪպLX^31= IktM sN 0<aSUA?ܮj]GKߴU.ȜܽNɐN/7~=;%oqҮ+ ̛i:z̯W)q$ϢlpF,53!kp|mRkP?Ǔ*_};髯!w.tYcg̿dPYV4X\Qږ5󩡁s49t@c8pyZMTΥ G-'YH/I7ŲzXACr0%miRH]xoڰ]1'k'o@GBBFQ醾jr n@T.zB_EL駖 kV۶!m}jϷ1[Uo=+v8A-e4tinodւFLDy~' nCo?{$&*ͭVE DwX|uB{/)2P_ս*NvrUi !$O_5NRRu?Y yh$m`WzwZ.(>p?qT4[n?(a{FhiY"cʬEʫ]oRZʦupE66nx2 G.q=4̭cԋ ţFpQXpvt0@G.mw4S#Rw2rr4gC< :M雱Cc,p/̕;{fӳ#h[6p8rEgbH*5+sh09:!eׇѱmFʶ U.NT½ KAG(03KT1Yac ^(oބ[80+tWl#J%]m[+)j帺_N7\fTtgo^WEN$D{E4$ӗ1?kŰ<:HFq?ÿ4Iݣ(,P%XLKUڄuy[(a9#fp/KuF)Sp($h{+Җ\ω;+x{5 1BדBi]n*0>Qхُ@xt-#ϱY<,Tr/VUpJpU}%/2ƣf_,4%l[KXsnh.,5ϛVY(2sX5 ϵ!Оk`#e܂V&;͛:.pDXQep|K*|9]y'ϣ{17/Ņ7uyiu V$u59@K3!S&CyXcmSuwDrsz~ٖGlva:Ԍ2mZ͐+͢u4fP,NuL&RuִtZe5QeߤѶy ?mr0{S{[%Х90(z&wdCͿ}?m [s;r"@n<0a>?gjKLT¨I;ɫl۶2U,-j}öЫӪmmRQnKo@qKc&FTw3hXXw\KGr˴?۶ӐWfP0XF"x;Kk\^U,zAA&z|uVizrm/RFD/U@w #苜9Eȵ/jAhpUXH㳳MCH ;Ui,S;guO*^Më)z(*G'~бgI@ ˮ}\}tG^LёI#۔]ģwόfnڢ"as7)ʵ*]h8VFdqXAW&L8KKOkY3ƫH lor/ &,#40 3|5ccDJ(A0ݷW or@)هmKk !ul~BM[H `""Mz {qD;FC F'񀬶Of/~ Y~ xuo-#5Wq:%tZe^?w_[aDT7.[dHM4D~3϶XaWߋ .BVa`ٝ2T#Vvc0[|d b@x ioxk}0hƠie쟴[\73<#<Ƿjuh~.] ᆉ`Ҿ 8чJS;1ӍZ#\s&̖iYݩm0 giK< \hЫ "U{JR);-bѶզ4x5ް`K/$Z;W*bmȒf*0U4(Q+8d46Zjc]yUjqTteɉ-(~e=C=~k!Dq'3ݘ?5ÔvW4ڽnuiDO|R{Wkga7m`W9n}:.O _$9;3cLq'vө˴)>!TC86!UhIمS7!%@|& ZM@id>pƘ_pZAa7!Cmz" 0wAĶIA9,08xyw8uiTa*MEOЭ5+lx**97yLK\C1a7s `\f*! OLj$= r  ) G>2x`jzH k9 5VCQFءJ[ml×,OgA.F r" ߹xFUsn~xw-ӿ'`0 tFu+K:@0,PQ]v ̘^%m3Ľ~!N"d (d t\?󌉗vZHݗwX#eSJ>bY;<\2Ӡwup*N־ėT*FNp ܜZձ-{I. E1=T:u~ 3SxaыLOFrk LמdHDxZ]Ahy`=˃ .~J>j_KMtHˑ>S6=GH{Ͳd>{Hhrq-uu*%;uQ\.Zkj \I{*~Vګxi;Ǖa1\ӣ ӭl>t^naS$é)V:0tQ)QL<6p)1wTLLri˸iZj9XC";"l gvՓħfMnTlAtCV )cy}k-*Xɋ?r@a‡C![nލo *.|E2lwN} SdȢ5EeV.ǎiYXy<|Y,g3f?YglT+[2Ŭd ʌ&^SD0 )JMiEu()_sI 5S^[K") {*&c#ItH+Q:xO=R;uDPEtA/ ֵzX,&rD)kkv(wt7._BAzYyTin$Yze6ʾȡtRG`\ _Oh:U`rG=N$ңs&Fұn\|-@|]ݏ\KAy+γTәC}KJŒ8%Z>%^bnS*$t:gxS9ʊev[ovH-l7u-X>t[KO׻Dm#/O+[XKTswRf0pgw$m~Ach в3dfݫN& ˏpcK05U T˴Ԃax^h.99=ܚ,~1s۱۔2J㼘 tn!Ű/COsuPAIlz:xg k)DuVh9ZyدJ`,U'@=3Lɶh^Nn9FeMDfOf.N͆7!DI7B|l#m ۄRՈT;Go~knDP;&mR5 c9n{¶ J`xŞz>o jF3 yV8bP+pte%BĆ:rxBHCؘi\ N1 i8L Q'8%xjUJdM#teWfesڅœm1%5`@苔P6dU:&Iq6jq }U0ݥGYMK0'S]rW9`Es,LQO!,#vn>~OV 9^M͞=ksӞ yZ%hd 'LXp)0<8kUi#($(_%2!,W %d7Z-Uo3ȃpO +J;0 T`3p5!ՂTjȣ@|ԇ; E.E,&Avދ.ل§Oy;)ߓEfM=Sj-ϳ]߉ 60Щ 盬WuC뗥zu/CdxV* Paɖ+UɀGX{hQ7FF҇JOZTA~?ŵFpa)\ *!XҤWtdCLqUxX ņ+27ٲ|'VG-M|n$BYcbx:g-jW-6]f5Y ~E'$\ޥ1I/+hyG߫ henz+T&R֑R|5џLՙg3???K-H"Iߺ`W&#?̋Bv?b>;eЫ~;~){>mh _|0hnZ[#w.Ny}<=?e޸OMĴGT}A`=]<ťWu{o-Uh;9Sr(2:KjTދ=QV5qe8}<(SY}t;];^{ Sf{MԶGKd:P&y[N>hd7aY߈/[?2_PSpy~tsfK{q >&'rMy`lR8H@ɾkݼWeK;FClYDB?,[ P->9s^,SOxW(m@9n"* ŷ k]_هâz2?e'>q<4"/Z@7S<G,5|"FnXKnOZB[f R63\0766kwb,mZe? A |Ƚ }gFyiGWk}'ac6 ZldK2ѬL@6RѓIU=jb0b io jFWqбɫ^qǕE8W'ʓյoW.M/z3M{ѸHHXx޼[kXE￿\XvX*/k<~/'Xr .Dž 0cg@u|rBs aA;jnbiN`y'?:.[K:C%Ϩ  1y3eoѻ9Kw8i?-^ ں{jxw㤓ip0:\}+2&K;{Q7JS4# -/B˭C/tA]0ӧQD,Y}܂7 HH{b_~:y]D(HZ呮(\Jt_cGAS5n)vbeu pR=e`|w^83#DP>r"SL,ՂDJYKx _mx~Z*C̐Ռ:ƫWʇY`ح[ƻ&ȉCn~'/.QHz]]U ._hH:2FaT5gWju>W [&cf`S8J{T62h'Ȥ Q"&^|OhsJr eF1 iAzTʎ t[ӿm\_*]$UZ؂?%"l߶i+}\ D*[wdDdp7:~y0s%)X=r$!S%{M nUQ]Şji(ڸsr ji}+ͤ]4HCTeH#|_f*uzkTK4ܑpj>p4{)SJ.#&V݉njfY];s]-k%7 G]P=a3դ/Si4tNw|QF^px[;' 2h_ʺ[,ao 9 ֺUfa1]0k.j < dVQH!o~[ |L$$#U EpR\9[h9wNiixdef}ցzp)۶:G$YiU-2ZWs-[2C=0 &Ƹi'U"t#=-nqYH?mz?Y}g3{=8sOw.{wo )%dǡ_I KZqb"IJ5)̨֤v*}[MC`?(%p!"ns*{cߨ7J:F+.GΫYDJpIzm ]F[(>Ix4|ky U)mJ$"r #F }7.*Q ^ki~W:YETNrΙvGp^jlv~WK2RiS*TWYC ^2i`FQ|IUIZGTl<iH3+Ish-6_ZHat/H f/I Mصqo67D5N7Hh1K|ysjDi-ЧQe' 4zcxkgip}rѪR ݎitOS:V<#8¢h;0AAgVvbjP y娭:9EZjma`S=ړ-F &3ְWEGTWef\އK^=/5`ef9=ULv&Zx5%V>2$ ^ \/cܵGG[2/Ex 4&Pot0*$Xq"V]ٽo~ Swfs B9e~#{j.]7܇:Sk[ *v_}^AQ8_Uh5ֆFRxY"f=[򕐴"P[yՕPҊh<7Tc~ w9᎜ 6pH[U}񜮐f?SKOȓ.e_|þ:~"cor UKXFTF4xCJblY?]/F'HG)<) + jTܪ:h5XHeк{R&`ԁ6E+UcqC3_7u;o[mv[IW%+9)iaji >ȕ){/)/DN؎wb1 )v,_:8DU ȕ8ca@`3ZtPOK3ͱ<.)Ms)+j(o ? K|Q_Lō]@BǔAb fk\kfOn=ʹH >~DmEk[e]܀~6ܲdJpνM4;@]%{75f:z0FlRmWs3tFIcLp 0WuYj(EzN+? ٿgGN~"CG,/+ڧz"ybZI;.1+7rj7+0./nZL"7c. o^5 j4WsۊwůQMIqGzeql);I93Hd-|߸qwT' tR%l(aa+v4ꢗ-SDIsYzA}A#.v8K NWܪ-=Gwfc슭rvƍQGE$™tĉw T-L$LGk1:$0og[#~XmO , rn3w ORa5sɜ>ES_s*8ݏ=OG&Z(a?I,rVV`D}cvM^a[;n4L%)M+gM".&n0\U$)ahZpLJˌBu0Td9.AfIޣ1=Qn@8#EQ(B;`j>9W ($(,QlhtbK SD:Wgtsؘڇ:LqB ʻB@Gu-:޴>ǝ() }NF-!nսRC :w6бEJ7 ͅ7*#~yIyC>e?߳Y_#{=E}ϢgQ߳?!{٤b_;gtSCЏ:8.9懡jJV ^az}MR.7d4&{5J=` o0Zt{ɩr-X%Zd9~ThI9&N_wϩ.8)s*lܥB+{NuMx_E A;e]Y nv/Rg/b?vK` _*?<;3åc7|(8N^` {P?x/AJyx3՜c{In+~'.RN|vww_.v?HU\zV{/O= e N믡/. ȉ ;]4󄭅ɫм^_V#xY.:֟lnu~POFsEfY5v0%ЪQqwGb@B4d1(y4#ҳM !|v-!&KPVCH.q\1*f`!<3l 쾨& AnA=?6%;LYh(*-x4l\ɨ4Aѥ7`z8c=w+Q}l)3%2C+nr㣌)(!."^M3md*k ?[վ_W)=3ՙKGg3#_0Yf%`f YfSE|9o NU$5$k*|!eGxиS'mm@w:u.RO$LZ#ڎg|65݆% jxʑ|ڻՊ?ި+%JU> (6>:FɸկӇR =c)X2k $B 7huQ\Lha?O.࿬+z1VLow2Q*qޏO]Rkl3V-37V.I0*>ZzJ&fyQETP8nmti*`)z={󹝙-W/Yuw)gG%e(ZJXO -l F+ 07v7Eb2D1HG8Ŏ @lTV#e󠠅h\w,5{ڟ  z {(FBo>8PorNso`x&fOT7"ɬHV1iLlI>i0ɧd(SF%Y|@ *b5ș~ 1M+8vh++0NjEAZuvs{2 %PsLsITB>8cuKCwv̀OҎNU>mVIA۵lyhR Ș{0#7<> HP(@_.%4.,kc/# !J\[58XƒB<)![*]Dg~:h1 BtD@t$節_F-658 :iZhx [Ao L(;{y10z*AOy]`C:BP`" K*Y_>+CK+<:+Ez)N,Sg9zkH"X霅j ˮh2%i9Kz uTۇ̭֢"~ZBN̷B6tQTGT_j JtmUA_>Xv Grj. dۇKdIFYpQ!J"A<= J  sFy.V/D<λ"h!rU+Z=hD4ps;O)P8}:>Ϊa NZx6nHO4ZHWXy4]v(/C)*e#K y ϝN?Fz tJ?zUqF1#9ܿ'|xcE~g3ᅥ{=y}ϼg^3bdYtw3mC/P =/p x ɠgy;֗ G==5[Nt M8hɔ:Qڐ|h9*!|j2:&SDb" FmC40P'D%QW|}W+%RUL~`(F7,һDZh6 wJnV1&A} W/,$D a"=fvn')}H4 ff:c/܉2tfY"_vTǝˆVWc O"2Lڵ)>´qҎL 2XVeps=?\ (k Fp${z9l|4 BfY=] K!N#r Nvvo׸N9I*bHp1j% U,geZ$Dl^ůW9`_ 6KNjq)\nGyEB]VhH@^xҫa,*2w՟j ꆓdq'4x{ gPʵ$l2wMUyq6? 6]\JwG/)BBTCV*ְe{Tڣ O? H r-q'"4܉FIC!@9ͧO<Vt]+XM;.F%"Y|zPCLsz3Ül^w8Y}\;gx/`=Q@|xYRqM尪KȆ;ɯ4+_oږeVsI.qA)-;M5}vc#9m|6~2%ld7# ihJm˜(_!YQ1y e+m7upJ.G@,!ne }'62mbK+E+e3Fh˔aT."mף?>ĭ 10l =$i"x`j@(kFRwIw|)He.1]ꏥrYuQj GKo'Q6{dzgNrYBRۅ:һe^V`7ֈjN?aT[0acꏆ˟ doOsvJ/jՆ)_g]<;`]Ndx]~X~h<ܢ..ܢLEMc׷8a'r:rwO q-o.;;Ov܆”Tg%2=տ1;;~u[Ot1Uۇeoh4Hބ.Qdl[Dd1K8׬*gH_M**ϖ0̴rV޶F\\b}J; ^.5N6- mT9"Bzi9,Sй\Vrwy -cve?|ڱZ/7|[hU#ڷzA_2D NAg5_p\41Z(7vguM0Jli n(ń #sHꝴ*h,+;$*^2`d'ѡD45̈́KThɷ8O7 =_"n4jh: @x? y%1ߠF}+|`$㮹LEO֏gRLʞI3){&eϤ;IوJ q5ZhGX#sΝɅvʠ-q dCr|CR"}N)̗aG 8`έ!K"IBTrD ,V_UG+*g>=!ssس7HDC:M;+eU1 )F!t֌R8(򤊥@̇" ԧ& ,x7g*m6Zt|deψyD^!WT.O}Y*OqWʌVYSνQ3"_YzlM#r"%-/ݹ8Z @kboVcraʡ_2i]L}K~<ke +='k3ϗV#q!sxRm7zpjW,3^ĺ3xg3~?I<0