#!/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=f648bdb910f3b9663419e97ca99b285d # 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 :_qBks/v>6G#2E"\WV:|%u+@JR_%eK h}i 3 l$ڕGRGEH2:2\L$=T* :I}վOJ+$ġUVǪD..">I9%„6V$$Vlr@2>+2Wh+#&ߺ{wEl ͯ [, n=h@^3CV ԃ";_2Ԫ[:N@hhP"gKT$sҞLfXN@@ V( Z9`;V+_ 3`63熸m@0GlϚ,_F*D_! 3 ((Ԧ N]GX~^{J0% &QB2ѐ\ ii֎e2걶z2LGB,t 09]Fo$ޑF Ǚ1 .÷HkmdTD ;2qCzvSAxD- *g{n4]<"HutOF'酖"%ig`ρaj![ŤK[I}eU>r/_8Jg㋽\5)RG$ȱhlRSҾ&om+0;QM+i55~X!z?uiux4֚Ey.`=q'-`cn@3K7/G7SZJk6iݣF KFOX[ԁa v½^slmpX'|y7x"lQɾhW[ڷ$n2ھM aǸͬ?\ݾ˺ .b|}‡n^ -_REvBh\e\8](VJdNf0[NV)"Z˞:[Em~]{K-Z[bm.dLaE…c,$eżPR&L3K"XR=r^萵Ejh\ hQ(ͧb:MÆΨy}`_r267^TtXoAm"W^&"2߹6`a.jLj+(D<>uGWQWcw!ոR:uWöc7R d[s ӕmgb!A5j^&cYZbEr-V Am0BMu>@Lm̉Z[2A&m[6DF_[UhxNR@9&+.4.u FC xl22Wޭf,W88n\ v:&Y=5A7?IH;|o 3FD;D^$"kJ'qRu2DqZ)2 aYL=3#xO +3q`,5trM,ټm'+݄`u`.aA/t>OI1 m0D`AE||R7IUJ年4cP[ss q,㋳/}ӂ<?y8k9K^v$ozAżAM8Vuc$7 uԣ@L ;X&v30_yΟp+ؔx9?U;jZ_V;Wvvvvvvvvvv #EÒzTQp*\b2>ӗ8(mb8R4EW;g5?pZKx4W3! $d@OMu^:]yԎ~zᵛ h"kzsKTTT,M q48Y{2ojւv[1IJ'b>>nhf)h$ΡcXt.p'lRH%v$mͪ0#Q<{6ȋ֓9c${Ϟ%.SO0Q4V;4K4o_2'qۀ9G&n-S-8g;'biŢ>gOzĞ`;sCi]S@wΉ}Jyϫa KZ ;7?"Q+xNun԰IIw}hF? CBb9I.ӽ$au*q'lX-f+OJ)p> nFd57D7EnB"/qɍX\bRGt M-riV 39Ƞ;0OaQϋ = fƈ4 YSS6eHRZH2w6ҁ ]r0KsGnɍ~mu7RS[ )ӛѹqxu.(k7jҾGmr#Kܸ4'K>YRkLbaQ3^άzQ$)S*KCƼ nSOzl UME9.~Jbb^CQ}K[Q/&$h'ɦ3d-q#TW!E\ZOf#Jm쳓/xb<?nwwnoU!./3_H T2~bbn2}ēp,wq#.< 2 B봇\{YY\X蒆=s9{/uFR[{e|op_ RlāQ/pW[x ޜx;m>cgx+umcśAwȧ[Nys2nd]NMP_Q#< 2" -w cۡ {?3`Qd!i1lܯ&D*PaVgρ?GٛR2W}>kșWfyX Xľ_KR¥KזFh@譋I4&5^܄-}L'p5aW\ʄ+]PȁKp"A͟s$ÄW# 뷱JI Խ/PZhO`9ty!T&!8rK򾉂ZmcDti]UD7mx4%٘f^v_[}GE\e"~D\V`MpЧv3hϧG`3IL9}qcBү°WsUW9x'yKddD+<4䌺"1Kg{zI],+ל6e /y늳|}vk1ߺ}o_|o]8M} GuYZ&-VHzԍlP*x|uTjǻv?ng1(un]pc|0]b$snmtt`>~ #+ؓ${[3J}m\Yҧ(Hbg8Avm$B*@mmbpݟ=]VI=#f:[w9w;sWz\y*Z-@ަZr-f =,G FyC$@|6K`1h}Wf ݳkC X%Rq}l!I>ys-j<[KYl!, Ԣ0B:z U-Ep@wW\D|DTv5 »^Kp}XXw(DRn&AQz}HGQEUC d3`aQwf0:!&|C w'R5R/Ce4ek@Vn U(B xZppFnTX6o \#S&:+ji-)F &F}yHcA56iL:|*I8e(6&V2ÏW䌢  ƤKwM/ֿeMW)@SPw۰)/DePѫ\Tfx%T3(E{88銦9jK"!j;C3JjF0&]T/akz6uI@ԴzI(Ys}{W h\^h5cھ(O5@Cx-sWt?L(Hdb `1t,F6U&i*ԬiSSw6aIJZ`N !>2K˒Zӊ:J _gu3jQ++|K|(ӧP{FtGEJ尥1Q t/`A]>a8 [&*V jVr@9?J|y6X ϗ`B/@ [)wɱ^2k5 {~I1cVT+ow;R!58ql}-D'e}tZ˙w_jNq"݄o|^A G Xp!&Kc)QV<3]p3]xUŘ `g>FN"ůJ#\EY~355/n~B"k+Tq50n4zy!42H *iT<DZ<`}(P.|U4͚Hx6ʝ fZKKVU"Dá@u_gΞIU8e:Gz[v-ȴ|,s{q(,Z}LCZ M s-;:2擢mB帝Vo˞iwǑ$sX5Ww$E~Jsa9?r) H{sXTS^HLB[kBi]3!W$Dح V# Z݈m 1 A ?D^0d}znWJs5[e>*N@jydA ekl` 0V`+,|,L],tq[2\E}`-Y Jn<+M58X)|j>3Jvgkbub <.윥st5'{=\7bAuΩ:fZEcG )}@.A~OC#T\dz&d!h p_J;W)Qp[I'cN`]3&d*mR3Սև:y !ɼN'gi9s1 Iړ@M3־@Bhö4)rZT)Dnp*y|ySC?¼t-ݐ6eK[XUo=+,A-e3ti$^~7wvR`X(p|7$&51P1l[MstH@l:"qBL\Rz)BMKBZJJ}ꯍd>۹ʞ;h1[tuQyz' ϒR.Uu?Y eTq̼҃ѫײtQӉ Ođo ۆ]pF)B)vح*Cie("IilQݦE!'+xz]{hcԋ tFՁ8N|o&ha8J;Q:3v; 9jԝ0p<Ioh*|o12gi6:iIÉ\U؋ uo=F1Zg4 ><vtE4%BԉJvx})ULh7 X7Bo­I߫I[/kNĵ-k E-WmQ08%>;U~'QFG.b;nNۣW16OgujrIu(ǀaUJIO(c'قm/1kYMFXfy޴̰lٝŪ <@{fBUL<.qYٜT3o cEEr/ɣ8 p"B]n6LW.cn_j7%];b!ʙ|O8Gz(`FRc|Hai)i.IƂe^5ثG[|@D4tHζON=tSI,u9UxѺ26p|%CA鲍/3&;hRCIAuUuV NO/궮 dMojgY'u> ANh #0^8nNE<`;XZD|Mc%!'Ѧ|B>w&\eֱY -MҡW'U[{[N)L3?/9sK_d|;{'k@5ZVUn@NzsYB_D2U\+sȃ*l˺s\CBu`u!|Kds*\nT1 R/r9B /5Zܟ{U-SW1\u"NO7 "M&HRTuMѷϷOTe=/?SPVg#/MM؋S^e>MG.?#/夎#b[tF;ow>3(Es)sgfL W Ts숟4vM RW [NQRR[5 `0a0*sknsl˙ qvfzÉb Pw~ Alݐ"z{7$;k^_NCr+_3>A0pU~_i׃LptE@HrҒH=OCCgRI; d/[I;UC; a+M^EŲ7ݰQ -@c , <)U{bk4SmmJ9NǬm?h܅|. }z2{-|mM*q*a9cYD1WJ{sad0k/pK)Q <6NkgtjB .bk#B o\Ⱦ{li*4Y&<F(ȍQ;#`fFFZ(l49\>&eH>EA"{3Q֗Hiڷ>z:ɹ%`;) $'d!$yˁPK }fl4Vئ 8_XGh\)3#kCljkcLsmN^9}< |SbJ>h_ހ4{^'= V"塻$Qz`yj0Gҙ L`s:Joi8I@951{^|z] %2@{<5bC8Ug\,qs̊uUm[_1v@ 3XC1! d ϓ,SIN5Ri5li? uN+>Z&cOhE[H{sF&]) | ZqKG5C1#Lꬅ(۹mwj#FqTZ`(L'G_ QNgk:˦sOlC:L0-~:Nm 4dЮN4o H( G3L0J!N9P_-h͢+u6A8}MP徥3|YNRexugg!K"L֝X܆imX\T5tnܮFD]U\}%_=S?׾Bb'OOV ?g3 OοݽlUHc$zZC?2@9] yOG |\w=HWd=VfqYC/J-yC˔ؽo FY+5)φWJ E.;eF A% HM [`@*M:886 A\4p9FHH3XpK~ـ}<n/t}PЄfA@4d2U PbVPl@A(䢾i#ѾSa^%C4CGxUgĜyHbLTލSN(LwۭwiC P67UoE0Kky+[t!P$N}vtG_^3JYfVSJ9?S ]WKW;oA}d~i X~|bu,/Gr2nF˓. Dk)A.[ms;yMM)v>MVcDd* Ż ) - 9 ),E"j Ձ!TRl8c.HC oBM>:2h=4y/.c||bwiq:TG~XPr[u/`,yׇmh8;rsY2apqUE%Ө._i Sؚ8UDmo-m{{ \i|s.#TEI#PDuYHe'dljNoHI΁oBƽH :{):\5)fޥC[ahy+v:@Y&m?MXZ{K ;8OIև]:3 A*ǏqK 1v[}$Xl0:n3OaGټ61lƑc1yK@wVvv<.Z|6umOi R](~\Uhȡ"5#*$ ?V BLe˾Ҡ%e*)FGG X g{ur=%9#'<Oj4 T'R6qâW]ըyubDKCb0ğ|&$)4,wɐzP&0^8ieĦF$9*3$d7`=}Y2"Vq!? Ɠ)7HvꢐjC)(H1(1Wq"^ND"`6=8ϴ߃ 9}Oeax.F r" ԓ߹UsdX|l{Zi9OЭE -h-Λ.,@u3elYeVvM{fRI٩ RnLxrnTPke(ulL Cf)"]Ww!vG}O+o3?fY,c1uAN[U=ҟڐq E2\4FijXgְG'_k mHagӁJ# A/ =vB_Â$0:Ez\y"2E\`*eFkZȓ)fy2$+rFpr!E֨#Ed_m99:3oujAFndWB0su`[EH!DE!IB>me;WpvpQ7uŪgu6:RLY<Iאm{ws /-(he؁eIEFI2'w Tl4({YP|lS$P`QB qmA*0e#yb@(Qf Y&39kYCÚ+~>A]6Z< տ%B0VS@=3Lɶh^NnҹFeMЂ; kuCgНUg6ǰ&]NSĶ#@ haZ݌mBjD:?D'oTnDpEt6I*ߞD˽dWX%o8'[_dw|kyEކ4P-ybEr'{oetA-,q (ruD3\%`ר,.=rMؠ~,-G7e0?!H!!#} y}fjcHW~<|2d2!4_x*g{/P~߹E:VQ+ p,x+6ܡ L ͽMVX7_L/kŠ-0 1 G%b19xCÂ:E`̷ Ɛ0X`mYHstp} -pKPOtSQ] {[T@@w=>ۉNM5\ >B[ Rcgap^__wWGk ![RUh'ڇ }&T;l{ r\ɨ(x5+Cᡍ_:OQEM|| 9xD^m;j6 %w 5y1rkZE!1:W fy<`^E` 1~7 mx?r?p=:}s]k&-z4T#j+7/^T[T+@H@o-zqo7$Q "ee7r6t(ףBB{ܴRɨii8$# >녜ڠw=e0a'- vѐ5:%E]0L0F!Y-t&~vRreq1xLn`jޓ 1Iq|tQ`kV?*pqVsW1rjpNV)  JF |}CsN* <5fq?.ulQ ,4v+ԪoLEsq;ĢTV8(BvaZr[6 N fVˤKRޮFCw'j m)vOgXW5[|͟rE*668NKtk4Ѝ3 MœnmyGd` >J}eݕO@~ilhSpWWE2 fMhVJ_9-o+*O?jTwwD  (7$() .s(*r ⸝҄s?~eA6[8G$g^XiUSeB./3ZP;GG{s ޭĄw5-IJX䂎q?Hmzo$[*s 8l_sHޭpGO>~w;g3ߙ?3/pAv~pώ! %0ecw9r4z;}}"?֦ľ䥃@SH @5)+*jbVk_J849kıxo%mxXXVj+^+{a%$D>M^'f<fnzv{,u)mJ_'џ #F }7+Q ^k/FyUFg(wR߯ojiD )nEj+?EJ=I F.˙Vy/Bq{IjX9l[^=u[cj@S5ʙ KȬ+dnX,8MEg/vILo-rly,x`5(8d V;r@{J2ɾ"HV-.5JKBXcs%uu)KצO\e&y4@XӞy<;g1e33$|v.z>(OxOyq4mBhزw"4cKOvs>aUgJE!"ӟ2־/~wvSYZKl*=39nD`/תQev!Z'-3 *>TD`Y_1PVR\[kӽLto^Ύ$Vl"7PS~PFR}!vTesOLV<?ZgΓ;F ySeUVyr)~fjյk)O$ZP8bHaY*o!bJ.^0SڂʡG %I:`.ݟUw y`l3D'R3ko!ZGXO<78rO UKXFݴTF4xGM^bHW?]-F{{{#N菇 \*nU;j IoXu2hcj)1bϢ @2긡w6{-[ rV&6r CS+.Ze9."Ϥ^R^# ͓,cS4 u+p<5,qfXɅAKF7[zjdi!_T5C/ogRZDE"IC9 hWIw 54`3'WR4Dϟ9A}jڬ9fY E7M4,-1#fo{xr7LG`|$ThYʾ|ncj9N'mT$g7OUWN*ni,3%ضѡ-:sd}N2&,QgQ2pyb4LW,X_<"lsm/4vmZs64\)QcK4t`m :uÍFŸۈ㌋2t8=$^!}r 7 nzmkd0ս0J;`/Fci&݂F 5eHќa/7vq6#?xD@T8p_zvwfc슭vƍGU™twnWWU}N$L7k:#0eg[#imw, rf03I'sZu|MG)>D|tW>2* u?BhcIPu RCO\X\b.3l0t[//avIfJp2YK [:LƭӋ&fΘ+>j\V[IlPs%r%>]_U'ޥ_ T⪓A?]H6xPzЊ0!m ?B&ʤ%ǰp'7@l:k 1/>_QvrIׇT;/D8Bܣq {y%aV2KeV0Kͭ i-㜅Z+a-ﴌ  A3#$倩&C|:#A1,ek2ɋQEGx[ڔe9=(cve] TbmDu|CX`Ԫ=Y޵x_FٍjWwFqڣ'?Ͽu,w;E΢~gQY?!wb_oۧ$dZgDz QŔPX-gWaxl?rgs GKmEJF7)U\9+U tբCNk*ؓ_Ω? : l_~8ĩ´+l9ߦ'#qNTh%#Ωϖ]EƜR}] nv/sRi &ۍOA\Y,qK%7^ӳm|^z}*pȍ>:#-(JλX.Ի^lË'y9$g TŊ_ zC{Ka?ob%8G˳_G;?Ǻk>;zU?,aؼ3+(,)91a~ ދ=b9~}7zCTHaoȣ0%ЪZ'ZQ\ !rFѼsHE<46(5 +ѷ0cq;68?*A]OQ'#RcT8F`eC Z_xf8b3n쾬& F$ _fN(FA6]NF$irTx'MuiM&NcOG_2[x{LefP뒛4O)v` 6J #*+ET= )A`kFNQܠbcE 0Gkj这&2BrJh :8Q}ȟS_{gk3?gF!# sf Yf%`f NY9<;OT|N^䞖GCq8OL{c|FC΅Aꉄ*W:ۇ갏ϦF}t䲼cmo9U{Z#տg$71ƇGs4}_ CCJ,٩ & 0M$1VxX. mX<'\3E6u%*c5F9r׽%tEx}6cղRwV.I0%>ZzJ\yQETPR1nMtiu*`'z={󹝮[R%T"SzQM"6,Hh%P(20|KpOfk0P?dk뽱(ƐQ x~ Zy V!eʠB@\ѳvN--{ڟ> z P^(}r(oНLAިK>Y囑b 3t%Ԧ_rYLUldIB 0Nyh7\[!>hZ XJ1m'l~U.Z ժBkQb&LpIDJ>0VhiPk@1^vz-x1E ]栫w0*,mmD?E+F-MkOҠe|x]^ ^ yAXM1" |8$\lis>=& .fsAԹ3 NOaXU6{1 x3tm!Ú/ їC$n3'8hȖ (c2tǢE8hYWTa n]2\'.``ڹ8|LIFEQA @-e>HxD;)E|,w#CGFGGfBi%lHkϙGj1A%$jE%Ay TDv#M9BZ O[ǽ5Օ?NC$RXOn]-yE+<®|g\3*2홐aN,Y}(PH5=ޢAĒUuTXYDYux0 ֈbl=sB}x壉 H,WV'S읔S B,p 7c TH:q;f9U@['Xmײ9H.U22>9a0Fjx|0QЅ\i\X|W[FCV>pt P"AT4bt@cpkDa0Bgˏf(N>P-i#Az[l6jq1jM?V݇7na^3n~0c=wA`!bQT:nAI"n9,dS"TiOrhieu]/ŀщe2QC]2z )J+0tQua`X-7@ni=x;Pf8F e-:::0(|8 e|c֬"~Z@Ns@Ä3S}M&*h@ҪBq>Zv2rZ5y2$L+}k8|nTKL'! o^T XROX3oZ?,Y.ﳊUh &Γi@#0DsRpq0q}UPp7T {M5w)bܐ:i:᮰i\`d_ݜSʶW yΝN?Fz ItJ_+Ni8#IЉ呏cߓ_<|~>&?3{=y}ϼg^3bdYtw3mC/ =/p ~u .ɠgy;9֗ (+dwx&o :V26%Su8GiCAԳvt:d"3ԐetPM(K fuE2ZZۆh`fOX?K?^E>оߕTTdNx*Wm&?m0Cr"r-JCsCyi4yZ[etNj dwtLׅtupx" a&=,ǭNZSFѓ4 ff:c/܉2tfY_"߀vTǭˆVWc O"24 4 aZ8iV IaN,+Ċ@nĞcka0?~?{ dO/'{fAL0+gk||a?ĶiDAɮ-Wɀ g~|Xl! ^^QrVEBUᒃ+f=Ib=N5`í(UKuZ /[zUӕ=s1LEE4ףATQTY]wi,wA Ar\K†,qD[U痰l 3ťqw2.T)aS:dak ]v<͵wX]8aKo?T}+l$\4n[ɦV4H  I>} M_d`~6o `fBY|V=x't/F3A sSܱp=cW\;gx ^z'8|⊛aU. w[iVnoU%˒#xQ %ƄS/{˽[Zvj4s֩X=dKn. T׋3X&QQؿ!YQ$w1Q:.$yH[(C9 LbJlp]en1a*ԋ4zo:nօ0zHҨu nƢ zc\ _03]D_G$RԱ~6?VVWe<\Y|E73|Wa萪pJ`K-Dঋ"](QTd"ɞ 8%Vxץ^Rx@ݽruaBwU l,KnFXX_7r3cb\rBwI2zF'F$ߙO϶9ޥ!vLt*?˥fڇg6\WRCHFr:jqFAڏ^ID:m\gϜs(Х thP{ &&6>ouF~,.èЫ5:gl'+O>)W/QmÕ'osx8X>ou<^C.nKk+k+?hFcQX:]x7oح;p{~f>o\q ޸/wZ ]8ݿ_wvn<ߑ/sGnn8ݿ#w[\.)`)ӝ34[s߭Ur~wS4vz݋e{wO0%yL>-w)ve9n>N^9]LiY I?CIbeKFkϖތB#f(e}6# ? 4"-**ϖ0̴rf޴FùǸĢ|wJ; wV.ë5ON.- mGTtsD($DY#\gn9Oĝ+wGK}]9OX}A | \2̵#w.˯쐨xʄ=LG<Ԥ6Rq_ &\9$/Ijef?X+smLXY]>zpf?rH\jme|}o ԴmYҏ]P (V[m-# =gv~f?g3~f?g3|ßHE0