#!/usr/bin/env bash # # Copyright (C) 2011-2021 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=da17bd940725a9d9edb28539229a34bc # 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 Rnqѩ5? W8bp5k͟jͣZ^=>ZvHkKOQM,\kvRLZeZzݥ=z]S8FԴ<ߵ&+$mGeYe-2u܅W!_,8.|@pLkjl ]J]XOMteb3b8i _1Ogd8&3"Z}⬱+ CBA+aydMqBks/v>6G#2E"\WV:|%uH量Jv Y%g>I8c+E36cEa[|s+)*HY)ᤥi5"WQlcP,5FBj$NS6 ͶwGV3k֨?jfp=Aw4gay{:L&V3< |z,1ñ=?z9Kߞx~[l\ҹ|jtMfH2]@pppPfS €&1tLH+rz3cX @ /p˷Er Ҏrkۣ EIɬbpkj6WDkSgK-/koAEK]wK-RÅi;byJ*$`fIk]GC (W -epTL'iQx3C;ϢM9x%'Caq3Jx酋N%Me[&D,rmBl,";jf̯bYf~A/"A4+V*jaD{EEp:?Ax)BڑQ;+Xgp5l1vY,u' }2?6 H /,c"k O6M1Ӧwb 6LD-WIq-"-M*X4OQT')K:IUR!VyyA6k}nFpN+V3+O.; |֠_\G$COwFgs"bRI"/^58N:}gaZx 0,ޙ<{U8F@qKG&\ˀlar6~Cn|ĺx0:'ФBH6F"JL ">h$D*\Z1 (-zچ|WYWƗiALြN 5@m/T;W7R|Z@R^Ϡ& : S1OW[Q &m,\[7(z Mf:Wo5ŵ;;;;;;;;;;wX)ʂSymos񡼜/EikÑ)?BvRt_k>P d$nW5LDɀU[yK'MZUf;)W 0hK>cjL R f Ld:' sxuOQSZO4?q?o$#ŗ"ޜ|Ι*@^ G#a_- k-hC,;#zk[lFffHAhYOVaHb.<|öO %TBjwO֬ =iぼ(a=c7OBg;~UhJ20M3/mSmȊMDJ9oٞ18TX$X0qhfm?8ɗ?} {1{8ޠ=C{3v8X6]|t|:)x䤞;y'@~Att=~}AFPN{`SPO(4|"kg!nNKa^9<@L+fޘ~?{ꓽ!;(xLղiOA r5eY._%OB ҥkYyB#[4E֥ڤBrJ\7a~_ M؝w3arr$HPg9#_)0!3fM7R66S_g'B bK#*T!!8rK~&uK-,Éȝ?@m1niJp1_}%~W74+D!~C$Ic#O3fОO:gB7s2Ƅb_a窄ůJ:\s6"tWyhuE#b؏.uP~2 F 2elb2󦅊t G:Zo&T’Y[h&}$;w \s4ɖ.]+Yۭ|j]u|uK7dxT+b%AGHΆ= qr`<7v?ng{(u/k}JE'D $ lI^Fj@h1xƞ֮n ;{ŽCwuus52[pQ})kZBKTLС 'Cϯw¨QB&᫟cؐ-s[nE/'}h1ZEUxZ. ,xj%IU (f6d! ypj`_mX^ߕYm`(3Vq^zy΂~ LL];RQ]bnÿc0FI w\zu>6'\wZGpw 'X3-dZFGoEbH`N Jh=θz[xK} Bth_Rm >(Jo`(j2ll,*vVڬU'Ą`(p{`w쉙k)wxM˙e4e KQ uT( >TWn*JSd-=e,$].GxL26Mٲ s-Fm7,}7X Ah}#T4@%"4i\YW<"Q 5N$ddL@ o,&_]^f0^_20ՄjVF@|Eh)a1&];hzAE(;4PQwJ%Tq 'ReTiP|Kӆ10 $ {']s>nnngЊR2b{bq̗>DzS5U}z <ɠ@iZO!9{gO])zԌ9fW<8n񜻣iӄ$H ŀC`1geֻ2O>fj;oQ}Os݁a[դ<6yCc9TGviY2[︬㪴<V7zĝXY#^ FAŞ<߫ͫ~aKL2b4_BsWq`sƞwMUAbVrpJ?LN:|y6XY ϗ`ZB/@ [ānOɱXk5 &m' [QnxoHFd90`kA@o&Ů-gv}۪5%D%]k&|C_w 'DpJ,.s=6Y#ag삛/EWc"3X'9y*ٟfpyxfU;ϘԼu5YX3*AoTu{qDP nA`-(HP1NJ&| [ G)wzWlDF(wNd%̌`}U%2(l>#+ǍfP߼~;u6V)'t!snýsm2,{"=cчof&)ԃW|Ȅ Щ,&=ɋMY:5#ZL`FrF?8@uyt>[n-Q6:C5dJjfB"-B1~F{_tSlѱjxkrN+̷e)K8~֪V64O9YޗbN~0'J|Bk6ܚ,*C RqWpz/SLp\1TӺf/Bxv&Q@rbKdy25QaZ|6L;&)K*I$ ɜ^JMrB},Iy2.fNMt}4{K[LբE^%O`GU I{|c) ~&y`F54|k,?<%}ĄjAg Պ& B"KM3 !>z$V.9XXAmɟh OO{BBBC 'Vdg{#(? ҹVK`pDOZ`]ч.5c"۷V&,/ 䈬Z SupY!$֞Ss܅YB9JK 2QN9: 7@ z9z{,m,ʪ:LX^31#NktE /sN 0<!SL N~.#-YyȻ!Z2ܗrA, i(zv{RqJ9 y+vM`N'0o2RUed>C#q~e k4>&9Lg1(=߂+0Ek*_NgThR+w>o'}5Nv؅N7q"AVeYseemv5ϨѝO8W3hwL>BVi*m G-'YH/I7żzXACr0%mi~ӌ2PnabNnR W" -j"ec7f$^Т)!pļhUnH2|j-wLV[̊tVK)<2 wLaX(΄OQoG%Lҩ@ljY$Q:zͪ at>SU5 eս*sUwi !$O_5IR ӒRu? ih$l`WzwZ.(h~@>A8*|-d۰=ô6(1EeVȏ<.U7) P:8բ" #4(D Qo@Kܪ~#uz0x֨:0yM Gi'Jt$q9|9AOirNߌ3f9<M/-F3Wz<ͦgѶ8m1PpU Uk4WLatosu)KN|#aG'یmQOTD(֓:Q /4L|/Pd)xy'J;p5.װyr9|7PŪJJODExlBτm}Iky.\ia9"s: U(y ̂]x&:"[-hesCмx~ W$\Uɽ$‰ u88yE޻y~>Ȗv%x;grUuMōΥƊFϑ[&CyXcm%Ё#9>9;tS#M%I6;ϰi]jfg6AffѺ3HYy:&NOR8gkZ:qZ-[2oh[EXtK// 6M욮 %^=aMVojc˱e4UBd[F6Sφqmy C$\[FC["# ~&9Y6D%ʶm+SU2Vn7l:ZߚrJaަy.:ȱT4fjDV}[v&7+˲"zCnV[Wor&+0Hogk ۻ*E/h|;܀P/"\Om(Mo_8^Y*ӨhSs a!L"g$xrZ#52uV'HOv$4STu Nѷ϶OTy=/>SPvU$ϟO6cO :]4䎼#:CG)F;oG/Hڢ"!s7)ʵ*]h8VeP#Շl2U8&GWdx!7+_)()q6\g{5ɒH47yC   ' A > b:ٺ! -vhnI_xy ; |9:{5©W~fgvj2rI`u\%+t`0C0+" (O0\ ylKD'4+V!> ^GU(g\" nxA-8R˞Z.\^/q w-xRvr6: 38&V#r7޾(tvr딭]]ZVn>1%匱\f;ܖ)AY3ύ|p&l4.Ahu1L ykD M옋u=^ q5%9)p0"yev6[WPl@!N)$@D#`$bKVnQQ">l+XLhr0%G܎ ;[=Q^VY'+>N׾vQ4(0nVO97' &s^Z OkxiumV1K L<+"AE"4w> |1"DzmdiFtɫ3 R78aAQ Q 4:l?&-0&yF{=~pb?"ϝTxDdWQzHԇx@V[B'\? @, /NiޓQ?n!\Lc>$xW/ɔzð66%^*/h{Vk҃#φWJ#.;eF MA% ƙM X[`@xxuzL@6 Alqr/4s~׻97^tWnR]C ($J.CI$򭂩Zh mQeNWF!M]&VX*p-~Kū`\:SJpu e@>n6mӑ\ ~sWU5k:@ƕxiUu-ogfz(^EgG{;~*8#jfݮ936 9ѵXЎ͏ԺT],q}*Ʊ]8..f:l^89z ?~aB'{aO)0=>ܶ*Av|z6ѵ `_Z)H0 `S/(܇˂42*.TL!}:9i}:.O _$8;+c.iԾtmKpgq0o D|v7e!)R!{@wߓ]3R W X\҈*$=e} *L2SPp:*hys#;9.tȶwAe ep;M]HQ8SCHQ(%2Uh~x<A5ȡ &q .hbrgx~2 e'I e >c 6$e+Q!$[D_8m/G~8ПX'#3{@S$7qiXL3& 0N p&v^>ޣv`NRW]o)fˊo-!c qW 2<>Wq_RIG,sOWR8ps"k[ΒW E1=T:ˀ8?MN.;MX#~G A6/l,Pņiq$哱߅5-v$h}I"\+L&Dg>╶ceV7U3Y4w/KܬЉzG|?׋"$ʳ5W^g!B@n"\n .cCRaSZQ~h8`sfHMԄs{ u]x/-%UJ}w틤S ys$(_Ev,L`Rmq^LGK:bXפ'i9J $|gl6=9t FNM iQy,SFT%HWڔ 85!0:6IYqb ik*bM )H)f 8Y@峆5W^+u< ׿%F0SIמBAkd[4/'7\wh"[If3v&G$!>ґT6{@ h[ӌmBjDE{u7?KV7Dt6I1ߜD˽dWa[X%Xo;^'-LyEބ/h+4PMl\KV R"6QoM4puY M胜t}SsϽNR!L U͚z (_f7l&aS:7ٯ/hV/[߆HaTZ lM.g5xMѢnjvx86R2u%TXC*I/L&VPX ņ+2j^oYP sA#\f&qxtx{g~3CYcbp:g- jW-6\b5Z ~E7$\WҘL9QtkE?Zr&Ӂ(ޛl:x'K'ݷdmSǡtfy(m&$7õ7̛ 8 䜱<0ɤ+MfZVjt#VM:jCǗ[b^HͭAz}p\kӼXg}?p6۔^B}u o7JjZș6灱K +'v^/{y/ D ٲ"=(X*dY= N=%B^4ZR縎h4ŭG>3x ]1D>:҇?o[]Lmpί"m@Dދ#e,Ey!hTs2z})t? Ͳ,+AC4{U'+Jgn"r֎A+uZCs`@d"HĖ- []wtvo @`d-tM|{&pKni+| uSa},;[T@@w9>ۉNM6\ >B[f g$dga8;+')"$}Y}۴-@pd{`1BN+m4vȖGe.;ƫY~ͅ m'7{ծ`^n3cW^iEWӕǘtb@~7T7덋V6oWVxz/~-xU4]Xyʏ?CO ܎ UA`GԞ~A|t|J ;ؿ>6xV ΫON9 M#鸀o-Iv*yF1qT ɛa.+QD\QFG ȵu.ѯ1㤓ip0:}+2&K;{Q7Ima`XŏxfΥ꠮UXɓR^"zx<nA.r[T8Q Sgb G?nvn(8#]p+ U|6oMzԸekAѵͨpQ|vVnVgPUl􇱀z7DKnƢs+ܹa5g&[PM3 3`0ᵽPdVpCR!T?+++T0zfaLP8Ld9X&yܑGȰ+ҵ~xdIgP0OedBb9lpiB/$h0x qWi%0;gp@fZWv* 3q_X0nx 'un" ,;J"Z2.k?<{kֳ}Ѻ;_֘w!<.@0a`w{}DQ޽E\ @V4A-[q{m6 ϚQ~]DNmstwr^բ*u?gѶܳq?8:$ҍя&ƜXcw\s'*bMtʛz( ox='RW۵Lql%?|w^}={=g3Ή37pA;?waߐiRBƻ=\˝>aBCxiu]HLvqrB6I&Z8nX/sqq$gD1DR cN%cqFI['S(uy5潰ܒ^[BQ%~3 Z+I=~w~U6菀{96e㉾(^{I!t᳊NS psX"5Eѓ(Tm2>'/IkeF*5Tڇ)dV0GVBR)yk7Mvy2ҐfV=[l( ^C6_ k()l /o(D5I %~cj5@6Ux˸iTٮb&/1&G6^$r"#H+w*o*XyF45lc˃Eчo :SkWvK/Gmձʔu)roԞvמ,4l128֮o0=O=*=a#"m"S/7q2g/I;-LOt#fby-/Di6:{K2`zc+duģd;M^?i(;a{a#(x $pP0(3(RDo‰b[TIJ?օ5V==zr.qVp{^U^7Ui* XӞX@M.1BʇAfʵ,Cw=vb2}ؿw-*>/K7 w4?7:l >;q)v`~8l.^7 )TY\i/l ^L=5|CQe9/>(w/`Vh7ֆFRxY"fZLi74AoVWDWCI+c:VPGPy),a;rnj2ب:<\G{KvÙڪrt\G06ڢ}B})/#}[y Y2ꦥ2;BPmrUcj1;ޣD0 “0񰢠Kŭjo[V:[TsW-eFXlliRUq'&G4O6tnmnb>Q":~ g_#?$: W"<[Z,/rbDjҽ'lEλCCd18Mf/G f p0V;E!*ik9Wa%E.V=ey5W زx* DK T9@$1hXeq4ëٻ5aO=hi>}m.Yۛe]܀~6ܲd Jp܂&}]œ{75f:zo笮0bFORmW9t:Amդ&Y&8!@LU9.#SZ HV/~BKY_4{At xOde}}ڨ'\7(ߡMOXHcMbA|#fsy&ØM iRc%Uia̠FS0]qX':ǸhPv5{ݔ88wqqW6'v3Ĝs: ?DwGZy@7h5XF? ,N?.IbHl.zْ8EtL0pfM7`LrA(_p!XVmimo23 uT?Bο cI`E`7#47'm/m ۺ֩Ldݒ8yY;[ztx\U$.!hq<6af1Zb\(+8ng1%yDq9HΣDtF Uȹb@$ P-%@dbC["A>}`cv#Sj0=LP޽zj,?rhkv5~`]9DIa8sH0jѳVRu 5PI"@q(_\'6^yk%y }7393Uq @cF%ڄsGjC{ 7)0W6uOB?W sjƒ)=jTir<Ho ?0Dl>@7?{u [C̜1}1xb5/K:fAC+ t}qWIx~e>XHxt0tp\Ꜻ !M}DLVAnSHBH(T=hEN/ri8cnx p9C9NZK&%ht}XKuBN$%}O>o]Yŗ bԧGȥ6Y ȠGnnmXp`2|UײRWO؀b3BBXq!qB Sq[9~~9T>e]yTER>[ eCb=(cu] TbcDu!gGj0!Gw VWj?;uccݷQhՏ^[__Y,=E}ϢgQ߳YlR1ůP7"˄(ca(Udaxl?rgGKME++M^ͭR%oϩt5XB̯^r\ V8{N?:7c`[Z_ugv|vv^L};q*Vgנ{yvKhXwqpugʬY%79iR*Tl !˛TW΄S4S&FV[aTa0)(eȗ,N9@y 1osjn n#K.WHcدG"OWkGg3#_0Yf%`f YfSE|1k NU$5$k*|!eGxиU'mm@w:u.RO$LZ#ڎ|:5토% jxˑ|Պ?ި+%JU> (6>ZzIJ&fyQETP8nmti*`)z={󹝃-W/YuwgzQ-g7lJBh'P[lW`H9,{on Ĩ1db$Ϗq?B;بF-AA AѨ Zk?5H,DP‘(}tfBəwZ{37{q $OfoF2y&(NKOUg"K=S|If̨ 밟(B@AEAIC;r֪B qvG ]WXCq3 @#{6>SDۨ:x5{v-ڣ=2.gF ' `3 0ЗK1 ˚jeCWf >.$6@JȖFQ=i`rP6F,%{nvZ/7ĈL`6j3Vn])CgVMg+Lq0suֱ'&ĴqҎL 2XVeps=Ç(`23>u^^N_͂`VzϺw~mӮ쇓][t5AC6<\xqxIFY6 %W+{UK)W{zj ?$[Q^P괺L/l]NW_̍0a܏QE5SKfuIJT!f_'( kr- L]GmUi_¶O..sJ*!c +\kXnÚ*х٧F}XjAMC$st=Mr'(0?oN';=vu_+ع<ŷ܆_l`h݅\^&6 13MqnFNlQDB]w 7i 5s檈'qO֫8u؇%wTtl3ޞvHkrm-ٖ<ۊ1PvQx.E7x+夸Oٮ}Ls:mFOƹRq@u>:^imQј'Ҿ_v_: Ur1Jed1)w+e漠t[^)R^-:7E[ rI(O,Zp.4T-Qc nƚFYC,mb "8Hަcmd??O뢛U@tHE-hc "$nHʩk=dx7:bBg?j=_%]$;,[˝f5.S^ɒ4.[fnuZ.7S"7uw\gH.3:i7"|wxz1|6e2KUQT_.5><ếB2QC3]~Ux)=W.B]j0A'Zz7`jo?pՆ;g 5ڨӏez5&3?glVOKvJ/jՆ_(_>|?-Vw9ΓU~p*;ⶺs165A5\߅}ݺgV>/Ƶ|Wz?+\7p܅;uGn9|?wv߉;q7.np2Ҩ\>9;>#1J5#>\,$2^.ݓ=x,>>i SR7b/_ĘN?TmE"h9.Qdt[͈.D$1KR71k3A#Ң)ɮl LkM.nFMk=~zu[,"ip @ -uav+$~gYzyt}K̞\Dzso;~$iνI)nOGH˪nM$nVwdz3jsVfUUX$o2$Gn1^#tiq;Lt$[ʝ>t̮ =ˍ>+,@| 3` H^~yz;;_//qVZF(֩Q3-sܣi$MLˍ+c