#!/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=b45dde46e86f00807c779e1534ed25d0 # 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 D_i6"w9GΖB>(Ha hH qׂQ6<ͽ3!,F cX&p['&'4 ie,FSm4b)e|jL#hA*]vn*3~'cv2u.#l<iy[V) GÞ Vcj;?zp<lpNQ.ۇjO$G긏Ԏ#fhvzMauzmT6ʔJ̴v_+. TvÞh]utƸW,jG*~LXQ{&jdiXS2H9EA١6Vgc]>EcFB;d8 >z\ gnP&x BeGPؗ/3O\䠟ː*ۓrtr_ l\/Û9 `vdh8BDcksK?Ӹj)߶>,C>R?_" f- jwnϠr^ad:0hk[P9oyPK̲W@aQZ*Cy'SULjSm* OLc ' =b4,Ӱ(nP3`{Գ>m9c5\\XO,!q.nh2#ܺOnhlua2Y85\`y(JE|K" TwllA` g; Lcae[LC< )u\&$gX7'l$v#Ì@#%D/͸]`4.7?I>l١aWovL҈mvZL }ϓ,f-R=R4Ik&%,'] vJ%hJ ^\w4K%J4.;qZQzq軻|{=Nߔlq:hm^> j{`7"Pcvt3t /"4ӎ#*;'gLukmp7Apz X\M[ca{QpS+J ОgXVPKǐ ݞOcY)1n^zGysnX7:̼Vu$&l)J хŐe"qEWhtefxÐ}X M :zt _s) Gn15 " -$qSoaH^ua4x *%Ӏ2HL  b$C|مu]5)zQdձ(I2 ]@5rjnQYmR&1^-U.eh#Y2NOk/w35W>z& ˕Y3?!M@1 ~8};RJWm Kbq3@R8Q7+U!]"pt}8U$xP"ML+ 4ȻHƅCO\T'xBQDh:%wn**h_ T?AV`u6WЛ_J}+fme1k$Wʨ 9$^=XW%X9(V0rrsSS#u$X$7-M%?soR4;1Ǝh >Koߏ4[HMmĆ͇JdkF"M58@S:na~e[$gX+&v@Nhه`AUdy:u˓F/HHW \TZIOc7dCnRVApQs!#ˈ;BJ|C@bŕ;+KFvY4{ 2$GN]u+5@ 5c*Qd 8(Dl@^:$ d^s!\,$pś@1T64b @APvWa; Yb?Ie탠dR0 @#Wf%S?%1]-fVc$$V,*WWJ:l&Y[ƒ26剥nek=B/ȝC8$@<D=S! /jz( &n%RLH7\XÍ@ZmZɸ8BasIuc$#ռx.:JA[W'BҜӒ3E\1F*\* & Hu]$E=bxDŊA(2>h܃F!Lz|xpa6B&x<7(vmr?"@elG57 ![I%2[ 泛>UP7"$`[ܖJ=>.^ei;}Ɉ4;/_ҁۣQ[Ћ=X^/mT!_M*sΡ*wM\F`hΠ8e"\!UZ)VTi-сoO!Ɂ,% %Eg@=Ai꠯w]3Õ75 $(u,ɩ!|2~AZ,K KxSKx}GbJYOMj8BMlJRao=`E$RFPG!RbuEh1VSæ 0NdU..>+,iN_,`˥'%7G(blVeAQH3W&EdREZ.B*vbl]ù/CrXRIBMGȳ].}vAg7t *c0ą3jmZl$U0/:y+Dpwg˩E)UKK}^oVSL t] n8W)GGxNݪFa4jcDiw+z 6aECfxjhGlF$C Z EV6Z59.܈3|` }d|G7Ǡc֤lA$bΜCcMo@iMrrgBl#Ae*{\ |j8 ?P cD'd OFN,ՌyH<5hRs_]pnw PAQ[%:`#Ғ(%deT׆*X bTNB l/=U.@4+H&'8l˽$ۙyNqrE9 (ʆ¨Xޞē a612_.v%<$jtAX:li_3 7I/ Vj[}4H@q@ک"1:AHg΍pW}|#& d]˄|!#D$8 MAB{bI.z%:z+Ԏ1X /r3Kt(=UOFVT"pihE@&nMem 9@yHteWٟyBo!*; >)3[l kʴNC\=cǜ-KzjikBeKsE[7ء=@}"Fdʰ{S\^`(X{'~Zq}ͣ ՘^,8/'zL_{ <)UZߎy`c}u-b<%WY.`3m9! QtFy\bv߯\qoJG$6QX{zjJŎ~<Ja8%JJ*hȓUⴳ9my&m+2ȧ6.-'Sgt?3ԻCXYz=g3kzwG}^{xg .yzyzyz燾ML[<1Ͷޅtٸh4P|~o=u!Cԙ<|Vvm0sh{+_${ƶF\PCE&:/%M/(Y#ۢx`m-Tai@y&'8Vⷃ* "=p@/ kuY%$d,QC _aX#N _eqܯȄV{_r K4SmMHhg$F>U] vvmMJ)}O'>l ;7Kz`ܛLtDc븝&hJw| V?<+ϑ_?\8T?(ܔc:.*r4`%)*3Uɬ;Mi'x.'\ {>6mݣ=׻hۜ z9-1qa((&цۜ(iiނ$t$NK'StYcGs'5894mO1Ŏ]rZV4Gc$5U5 :R[RT3;f¼ev< ]zǕ2ΤאZyW]'qߒ&E4rÐ==H2r5Uf;6+<{$Ŝd-iC'@9F^b36-R<ȿ2e0dBu+|h _L`_"!%Ft`D>$ƻ+jNKxJ\&Bsnt}6&'X4";ip4^68hRD% QwF k&iC kA?g9ZUH ꎟEȶC*qzp~^HG !8zHÑ`Nف,ͻCS˟T<Ք,h5L+@?,=x.261%ǠnjMG<; <8$5폒,Wg)Gs`lyᇘ:2srON/Viة2{zhDH971T70a]}Y{.ka^X}/V ;9zPHໝtA"C3 L_llsոT?8e2:&S\a$ o9u ![5͢ g"C ć8djQ  cŞ|$F^!sqI!e:8ACBE!TXH8q&"7,4L;DOD-H3̔^ EK nɘ$] [.i,ݡa$D/]zZY[4[<1y*fc/쁛ujMoO@ ӫZnD "`\QGEAt%0 UAVk >qHQAx3Mgq|1E883\fXv"ȟM͇XW7黏0|8TzCg_9`{#|'T.<ʔ3Ub+ 8N)U VKP&UXdiY@K@^HYFW^f6*v(?|?EEYM :k>v.1{xkc [)%aEwcB>q>i,CC-h0)2:lJ_O0_N "$T.5T$pм2E$FGעLP&P>sDL$4f$Κ!ɧ= 3P= hm&6fCa3d}Ol 0 !#wCl*--D}TDڒ'XY>Cւ݈2XU3mdÍqqĀtT6LmABIuQ!x_mEjkS_<^ne&3Tk6lLS:nzw~\' QNjiyS1N{4㕢a *󄼃# brpjOMPIs+3?BElzHZEv ƹzCvp\OTzHxۖ 3]ЍFLzYFcm*L`z]KE>G1VY:Zea=> _dYX,,A K,K28<:,Gw/kq*pm 7ǽ Cv xu08PB p~4|G GaKvj91=%LQҢ={O=Z$#VV 5" 'ey0JYN85_|Wk8{'\?IQFj\劯z_ؙ녚~1 Jr(#cnhIuXY!}X£@%p(+hF)gcb oOnKd\X,)rTFT #Wţ)s셖*Rmm\tqkre!w𹮃QWhR-)PnG$0:>9L9KO"] 5v0MZ<!C^zp.ddbGYOz=dj>?hr@H'X#HrWƼ6pnFaOFɯF\I,0dDijܕ&fF N-Xg{kc!dtYzvOuw5I T#T,:R~t^jyʣ?*qG^*^Ȱe3DLYQJ3n K7?Hf}M\|26uN%Q œv|HRtF\. e/֫2a67?7]TRuĄrF󷒓YAܸؗѳ8.]b,0vr6zkps+U8X:omoVsB Yb֬b5i_bˆ4 TԻ "xU9ewtӱ "RzVIQaY 7~OWp[ [!8o/S?><(.ߌ@+8#%F`A;H:U*StlHFtr޴gR2ıQRou"[,rQIݞoiU65_Jojrgkq-lRӖFRd0i2&m<*>u'J6+Q qw9 m`HZj9DŽa;,hQ91]$0AS'V V||CWKTiN{-I{uz#XysD!g s v s_˺_wtJٜ!˯8݇f:uޠ=9?INd8mth[$9̺5(L֟llG`B=> B,? B,? Ͽ*\oa`'rcG*c炸+:Jep/SŽXG+RS8ah;~U?aڊsuui=>nw^Y1XXR;[,Db,oHe@V#(n_@ŊnœU̼6;;KȈYNI.!4{> @`ЅWݓSZL~-mzp!o4NО.3\Jp4P/yG*3> T Y5-6ėhTL67ߐ wIEPt:Up ,hDÏli)^KO[@1˷NjX<*F7?^vZp,8)oT2P` Zrɡ&!&8D6 hҩM"\&p!="pO.chzg6Iw˨`~G9̀󇦓1*#:I wmJ3QTHІ[ao7`[R!_w[PR#z8O&cTb'ꩣ#}\767r?$y]q)2f|v{앻aN02:m[{Ie/ 4rM J7d/޼#xΌ+%Vz"Vvw&HHlj09`;O͌-y1/ӠXt;IjBsܨLQqd\1;F"]3ѵQc5?BY'=o'läϻ$,X]b.蛿 z{s +ӐG*Jȟ=J\B99䷧ug? 'Iu)!ԅ@Qi'WPD|[H<cL̫ (D` z H_xQEF#'xvbs0k )`| tyغnrx.kϫ[b V6jG"a4<  p5gNPhT) ᱻV oPN ]պ'^'z$}zEb4V+WiImFT$ i8l9K厠 ws3GG\!08hu@v m5={zgǁv]%OOx'`񨒁ܴp= WvkV`S P,w麡V!y F!Ax2 )Enud5qo%1ΦJ0-0r[hFo>ټa+/:wed_a\Ȧ@>V^( eeWFPC|melOz=`.z`@P?gV"pç/❃W/n,iYYLM_tۯ?7זfq,λ2ꣀF)P.lIC,8a:åHB?uI߽fݯUV]Zm=> {^/ F$xfOs o7ǰm_ R1h/ɳ~ns\۩w^;]ZPQgR’"*jRШGn}?mO=b?m"xрE;Hy䔣vNf?NK2Sڣb+ː&N:`s>p턨Zt/C6>@#1\>zT}J[۳ xj4cT)#r+_1Ƕ<{UeN(J؋!6$Cg v\Xȏg䫡$d!*Y! 4er?>|b~w`gs/Rw"2‘)Jl+@dJ@ߔ`ZA?+sIËyZV/+PP-;2bCŇG/' 5ye}OXieG$iA&CTL}hK_PZ8Gh!ѠuhWntM!E9TI9|3.mJ `'OѪRrsCjZʌNWSWhq ^`Oeؚp8M`ea1|ЭA+t "\zʪxFJ},\=}w4WK󜠟Ѣye88~}\3H+=%s.\,.a26<5Q r ^V*WhY'k)Vjq0yCeHj'tJv@, VgL±=w}4Y IZJC7 hg xρ͛ _ny6d{LcL1*h;z?zj_3p#eo(NyxgDs48SgGyO.x. Z>oj*ci.9v`u1s#x<~I *@s$SطG|L$5'" Ȼ\9khX;!˛7 )_Kio5XEZ{%cWQY-«`p@m.޸O{66v 16cW % 4Cz R+H[Ina%bZ 0i%풃B_+dO a$J-( 0R0XdRe60tS#'>.iq|ZI 'h)@V70K"ipmFYYV*FhtJ1ۣGQ[Fwd;|_B:04̠)>z V'Xc&Шs|8:NL$Pf/N+@Yw0tŘb4(3f\j\]-F[-\B S@;2g)b-8~͈Bijs!գeZR3$:DFm0zSS5rEccF9ã]:~QA_1L:}a󢀅9=P_KP2sƒK{8m"eH3t3غJPVۊߒ"ha ]O_>BdS'u9 9ͳX=S|TOa}gGnjp/y'|țz~{d#]tK.ZXu],`Ip]z@;zi*8.Z.9@n<`EE ,} uphs*д;ךaONl\L~eÊ__{{KP3⺸3~D9`#c1S0peP"FpD2t pB?I$PE^@N<ۮV JMo {blsY+%NݲYZ"lI얠('Ǒ)\beRK- ;dp(6W:կ(|mVkgfz ;`Iʹnm,=cCa>knilV: SYsO>:,:#FdRH4>gC!0KD "QE#DKk߱~ht.R.bvsGOD!wo1`%C[_Rf lbؘv;UD~dy#ӍrsNN7'S5+pEU)50 A|ԷT72chh˙`M6f\tf=eL]VdxPGe]Yb]s^E%zw#K}qVSU7h![(@y=kUs$9^˔hj%ܒ$/$CO$I]'+լcԵ"zIo&٦mXfڅ?4OpC;3VK;jIMZbQ866l]&"14O#Z]¬iX?з 7t 8MtK,j ߅Q`å!AxtڃQ 9aKM5MK3NVMz9JTHsRߧYl1dWrBl~0a|@wY;!xIݢ"T>ęوb$vmhV!s1aajOXf+WgdZhcmܰuS̀R.tȨsG0yrs VsA)(ST"_k͋umI%˲_ԗeZK^W'bHa2CX Md0H3 l6'm/ cQ!q.G%aȗ*᦬t7}"'S.Ņqyڷ!̙%i<9}c.ׁ .e.ec(9B &Xg #yw먤f[M/9MP:;CiR!S$%h P, XwDRT1:gJZ6<c.FjMdh7I,SĹWbp̦ Waգ'S*7űaXb3]j/LdIgCᴼ"zsayG# Y0ض3FԸc"{&3_ / J-fk, jm}źPQxW7֖;w8W,ESaYVбB|=UJiB[ y@K݉=diepE)!/oOP0SY1A{"okjMp6gՉ3*h0ވ|SK؊T/Gcl8^rY*]hydEjd0</Ed\I"du&nSs+4kfj:8>ohJELؐدk9Iq¿b6(* Tз {zL԰@i7 Ր}zbh+gܟXߴ(eSIQvVZYS"T!R|+hf{WxcZ +=%eH+%yM5@1: &_H9M<@] sg#w֙lB6bٵ'{r# Ԗwy&kWڠ⫱})$@D#`fĚZ.E&| VfDA+4Ѥ1a.K,q78llGZYFVR|kw^(4^LYEr3 V%ȥʯXd>Ý)"%.0u:ʦx6j jtDRZ -KC(LJK(Al$mg'G' eo䨞\b:aO:J[`DzjYYj"&b &k`Nl4'dӛ t4T!Ac!=xz^]A.'3#^!psCDx8N_nDv2?evSKCv[+,;11r1*uhX6'4<)_q7InRtpPw2F1{{}`:ތAcv ZL7dӘXBzH58b2y pD0ybh^?\N|LlV?k ^^ ?CG ɠl։?7.wP梹G#VL0yL&RFFYǯkHlg4Fh:LW[ڢMPi&==Ufe|K2˸zA[vd[ų6Y {vV"3UdRUjt"D0TyɈ(jЩ͟scTw|yud_[_?gaaaaaaaa/ Qo9 ׏ "a^?oCLSdO.W}X]ܝ\u=OӞBs뮃!+W*CER&0,tOcϨAjMd$(lN[3h_Bs_r k&kLUojkY#ZgYeMdyfń W 4ٙKb{ӗz;Ӈ1 g(3S4* UjVU͍2r$Vpw.:7u;%@qC|f/$T+b3\\xH'M` B ;=jtb|5{i4Ŵߜ_{,IV6]Y+G#zQݯ Bk\dM'}dPӔ+~&t2s-/EXDx'O=dI)`߳Lמ>T¯Y3&gxkk1[u8y}XȤtxfo:eSVvՑ`-'1>R=٭P>#|.Z {KNv콟$%7 Oe3%ܲ,i{"WIƓ\b" UU8bњ;蛵y<-ާ=9b6?YpOΞ՜QT<\#ݸAlZ0VOɘj*;T|hӫ9j<dM8FuҎcwi%3ܱ&c;-qJM.|3}OZ"JSʰ  &ά;i&:l$'IVs+/sNv UkNawӽ^=sªKzwmS5CHN'`h[Q2&rxu_s3= O) vbA;7kミ"gmZ'&#T{v?>(uͿD(ܴ NS*1jx e8Tw%pmU Q/P>3ܺ:ʚ]TY߅w]߅w]rx n_6GcY>+? \:ނnK-7'-uF߫^(m_` afrzlh Bۡ X $ ?z~ /酒`'MH#TsB5-EժjrPZ+Ac@(M^n,؛r< wU̒WB?5C>Wڊs^'h$ghKK a6-;#}HBi \DL(.#ŰPK*tOz@=IDˠ]bgЊVF^˻۲1-!Fn2}")Cȉ`9=}p@Xҿڅ֍8pr$F0`,vI*8 x㙑%m Fw9:CzV-?8A8[{蠮3A.E!gMw| A-5J"cxp?$Fm m"rx8y}Uc d)ll.G-o \<5ֻmV\FN?>.Et=gn]/j<\I`=pHs5.+k iPWʆбRћii9-t-yX!RA賄쐽}2OE8MO;@\6ǐ(Gw"g=;Ք?O)fdԸ3&,f+0rRǟU؅$I|,Gurvxٌ$kB9hĸ63u?aS`~~pF.F$㉖!RH;1R4顼RETUX0cp93a_)>[J  O&ق=^q2UmHsܣ#PqaӮwkpQ6QU|6#QpFU&/%Yε^|Dbju TW #`;EDS.fz2DZ.K e])q`,A@?֢ Sk\~p*9֛Nfې3'shS 盘;NXUמ4m}iTwաZ LMt+.e.#pN5SId(yLH; ’e%8$_()I.Lf 5Q }Ys-3Jawf1qKQ2^>%oo7S(3Ks2e, Os+YA'{;ůVRk߻YnAEh9Kޫ CXƃSdZ jVrm ϶R^|Ǵ'֪<[/L a_X/2Hp]m@ ea &JW5/sUQĨ?uR›BB,'X.,e:ű0'}uz$I)iJʍH.:X"[)АK(x.ݤ e+óT2fkB:FrǻbU9 7F.g={~|R؇s9 (d`9}+[ $f4w“i%T6㗔nwюF{|y}:jfO ՚gȃ'09#SUkR#\pI ɏ}R\G":H66v0Cr8[aTz 3rtI Jn@ыPLxF@hۍߕ;d/-cKG*hU|ٲI!҈JJ!aOLs٤y+ ÊE{MTP/dUB=Ŷ@)t}|V? gϸ5 'oYA޿"#ʪ;k}ke:u+I~_ook wT&wuVUrFuT o߄|cn@}\_mAyHoȻo߀'Mo߀ oߌ o oߐoߐ͈a);ODI #b3%^[Pʋ-o<%MA]]s|ۓ 3 U(ӳ+]d;|,Fgv_-l+¾OFaT=u|9crO͈Db;я+V?F+ɤBppK0~642u)gˈ\ns>|w3JڶZ~>=))&aÂ=e[|> ףGM[;#4'cX}{+ΙA4ˣ-OFE 8Z 0f%S=F0.^.Z&he㊷0EhկTAQҺD?1?21n'Cx5؋P;U;Ö'wF dv=8W. 3LoǽfF8X2;EW<(Ix+ɲ@O]JjYVqi턈 6^+^[p{d99.Kܗw%Ry׼9t5^K&ͫ"X*sud57B=>bP[jRȟԏI-8cH+:T/~=I`8aPޑr{,>_0