#!/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=122a3d88cbd5594242928a21346e3d62 # 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 'e\{SHϿIfR61#lu-ɭRɒ5%$C&nْlLn]TO>yH;Cs6]];NAmImwow`Ok/_>a%Q3b3dItN>ϊX=ކ(fzlj;;5a6_e1ЉڱEsl7Cw0#@f6Es}r pU؍X,I`C{U:l7Mڵ!1~8@y_1+mE@B&NFÄ&+ 3 Z 9iJʄ#abr*p#YM-t'NX]C6LI$!3ЂM%k6qLm `&d3vBaR"H3v\!ʖ , yq$ 4#p) uHg@$&mA,QbbZ' 2M K]RE`i:;'K2|:ZCmTYNl=)Fv|t`yXO)L}:=M 耿W֮7Z€;}hj-~7^^:'gkMx۴I< *V?o*==u;ʈכRUP]zL?S,@ӹl=b *;VArTi3jC>TAbb^zWWnGSWNQn_ObQkЀUgGއi [6s`-I-oZ_oUŢ ͙Q.'i>Dy{`nm|b}~$z"Pw.'מ% 뀯mFw^Um* #W9!{8>-NxBGC_h}N !lXSp̈Lif[ғI]d`AdjL 7. g^\j3 EscǷV M' ?rr9wZo^TVktsP>VyZ--q:lkur`{s/(hx*l{h$~߯˼5*H{(rR=PTGTbvH%hJJ4kJ7mRHQ D)iѽ{9x[uRy~)C4LY(3Q%b> k#3[3TSqt5C[W~8+>Y9SN:z4!*{LM:u'T.TS(| _l?noW$KzcXZ^Ri4.$im%RӶyb=ZנYx=:it{k-0A$Ҿh[u} V3]®Zk |vPuN~ 5:Nخ 3+q rAx،b)Ykӛ!XһzB}4ky_(VB(}Ba'p|/\*Ån=nv(P {)ah6w?3A Nu̴>,^嬸n;-=ݒ4([׶\ԅbMtWg%U?Ӛg|.ZV\s3(vs۩sV2q;6@ `?Xnjjh`ډ&lg2ջrZ/~vK ޫߩJv7V."tawek>]NyC.jsk8,d ьlyۚp-= 8wD(y{Ar=_p2l\/0X܆Q*50ûNBX^<-&| Mm"=U%- GR|ZƯ 7s@(Bh#QR1jd@IQr9䳠U|E9-9S{%99Djua FɎoe"pSf?; C1jF ؐDͧ2? .mzDߋ00ݎOϳr/j˃xqx x q u| x x x x x nxCTB `Kդ/y;3ɜ!@1P"QB` WZ)7zt@i'zhag>q&(tL{㹈brJM}ހPFi<&å b!2BQdoQUi+geo 3KW(mj]j;DlFcC~<1Sj~=ոT} I/oL7|8?dàW:C,ʰi@57yU߫B)cYI4r;| 8/WzEbb[ ZgzͪbWak#}&+~r$ZUulzs⿊qyHd`h4OL0&âj2<{Uؠq3.ZM&s+I?~I )耮QR5PLdDi)k ݐF9ѳB`y BZTx dáo?PLCvXh`-,']L> ٜ ldN(i&?\.Pұ>7[GW Cgh\  2Bas3eGwܮ0F酣H+<8䐾$a!'ןg UF y[,K>ZsTyS&!:NϔHM:Ϫj?N?O*YɇV2.sIGL:YoБuHPTL5VPR( U f<Z*hKrWjyna%V0L-|o uRd9Z5F~Z{銜`8(,Z1|ESйR)uN$L;C!ZίVKd6KFpaN[67SUtє&9j/0.؆z D;P \ pʗ@n8_q}#xgz]*tgl EzH S3&,jX*<|VbvOq#ĭY5xզ5,'\'-WdΜJS_s*>հ$>:w>1A rx +a?^"guoF$4-o m ۺ ݉u#g9K20SWLD\jMa⹪IRЌ>ŒBuT#C]A$o{8'ڭHgՠ~ՕQ(8`=rP IK7pL@Fq([Z U3Q:އ lc{JOEV4[I{z7Gsa?>ǝvh`jGbH.1x[nutP;-ʡl{|ChՏ _$ykd 9o]@ ~*0cO6lP *&jDsLUp~^.91,=E~et 5a,ʽ%bXkMnXPeY-<5( F,W4P/OqhdL~qbLJ`tG̺Njg'gj^z./F#LI<sM9XyDL֜An]HB(t=h.Pa9MNÖrÝ܀;j z=@WZ0?13_1+A?ޕ`Ya.o"'No=a/Zw%/[aŪOdK4 dNnc$h ˜{$Q]kV oM]&Cl:#A.Zg+ ^ Sq[:~y=~luML-0UQ2V -x ߵ~[B{P_:`ۥ> m#^5oP˚=z`}kw~2~dw}_W~O*33g߳Y,{=ώH Yst4 m, h}Ad6ز.nT]bq D}UK‰VWb5.m3bK5Īo.UſXA߻^p5 Yvȯs)AYO6}A{ܡ?v?kOKm/&%9}kw$(*"0.D OӼ- BZ ݠs JFDX0ȷr۸|}?BՍ9SAtٺoq|2Mŕ9zEGU/tTaܴzxHfuib!Z(WV}bo vA5քߐJ\ ilc|.7%:P"`Zo R30$Q SOqi4N#0i2*&xc^+d`cWi!WRQ8$InbSPjY}'7)Ɩ$Y;Z4 0( hj %k~WN͹&F*u3=LU9S*twŦBM<+>u'J!IvwhlМ,RewNvMgs1Z#=2BM𥠩݂>ܵR]iMzAON?u# ?_bf *ٯǵvHYծے7}C~v[W_[_ݕvz@pcڼӄJT)ҡCoٟPT__ɷXG*״y'vL3L=J5q6 e2C7:*7q,~D52 7aV’Z<gq*+J!xz!{ ڽGC!ܹMzЌC}ܝ!E^܇dj B{TS 0PCʦq 5'qB\W$ɞ~# !~s7# #/t߻'`"8 EùH.Xp%N2KYcoc$.UYp3S չ`% u~z\;܍􀎅 '-DK'/05~lhnb;Je B'vKةxhL倐V0FwF́ ?Aǒ0Z@":'=Er>0P*^+PRP Po3a[p2a{t 7?3%674,dB!ilЋ֐qisswue:mA UKKA\#S\~Af D{sA4^ ρ`z" 60̾]J`c[;{|FdiQsVD2!Ԡ44 p,TʄK'là_n&WsV9@nar?鴆!ԁra7 !;uT-οi_s9t}KATZ9߇(B=vPV9^nǯONU$nx~Mo; |Nw/{/`ŏmA؁NJjY2o[*Exv.oPb8Cl_i[Z/Ax=J' lG_82}6qK0#dN 07An<p'e__{w5Tn@=PNjM!3ZO3ua,b:k` hJo4u[d@du.Za^3Ir$-/wl%J@'.UӐUa `B*nWђm=6L/l{q{R{uJ9 y+%%ss:v uƯWE)q$ϣtp>+.d9YgB~X)*NN|+*_TZvZܗ;q`-= |wicgKkѡh.KY\Q: JE=>9:1E|{Vkzun_-6ع3 a!}!"J!׾5ߟU-SW{p,OIJ Q]؝o/O_l=Uj^MCچbM/_T>ۄ<%HX_i:ry5EG&u$O);G;Ɵ/޴(ߤ(:=wEp~˷3B WIUAW_'LH9KKhSה> ت,jh/o6u\ҳf<>a86qdcrW탌#c 0)v6 &4mc.]}|z@ 4SPSSޱaD]mZl]k–0gdBD8XGlɊح5j#Z$2A$ z2d&S KYjళUӊev4xgiFaӜ_Esf ɸ9m`%{1?+@=3ml:ʥzc6f gym,ȷHh؇26FHo4 #1}(:=;99_ |J}8h?j!*!ހR{^'DEҨ#&gnPb]z 'N l`0s3hhb5?25[hqny.B$N/.Ph梵+crA5.݂Ÿ}EסdUldJ#=3j|hO\ <v˶%KY&gI؟ڨ\T9ti\VWpVimǺ4=Q}%'Fk,I>_.?t?~'ՕT'gaaaaaaaaa[tb )7D:5'47{Qی,pڎ3r-ϻsl #4w5g>قbM3(D: &/"*;d=eã H#^Fʳg+OM|k{]Lv%kʐ*7MtkZ?މ_l>=Ec.on؂E ! eY_o nǮ Gʸ,æD+(4G'șAo &Dliq' $mU{Gџޠ(z+{%&<06k kفWtwwh@h>0|vtvO a`^c.($c#|k&O[…Z(ԥzKQ bGX_ilRKw=>ۉNMl˹|~KHbs;>5y}}i\~'VrfB/iV`/I(Cgl2z(0efxgft*t*3ٚopfxC OkpA~ ۺ~ۯx]ӟ+ p+OVʓꏕ}g*LSG]o\^$O/O/V/VVwU4~ZYoeb'wbh]>mTT VdqȩH(vScln`.x=  _'[BuL>O1}%#ߚv:aJXcALs$ͥo͜{wxߝ#NqK vv"k}q<===J(:ç2NS`~7Yx4`Xʕ8/'j3 umK%%U興[|$Q =ZW_NԔx"q1z5FA M/7Ja FIu(^=k0K1qz7#,^Tps}͠d *4:dt/˲ԯ%\T|R*Rap+hVHU50ρLv"Qע=a&mҵ~[I/GٿV0NտSM'F+7H0 yR Fd'9Ш8,>gnoW|~n˓Z2dDy;C1l`l~eȇYNxXŖxw_:* tP˲+pRP +ӽt@vqbq2~݈1y+:}(I̊? 7m(꣤ʪFB3H]9O (\ ފώZ^Qˌ(bz Iw/jUmW"B (O ZK5all&%}g_ 'aO"-L Y%' ܍@?<{ ѳcѺ$xVe PD0"& V7^MRq6tـ=w99LPN΅sO+vk{xSRMF47XJz>P}޴04gKXWr`]QM:xg~Dž%|* @jBDH[w#FDN} GC!A!ufpV1) fKN#/ HbfԫߔjߖiWP+&s;G,E1Oa SK!bJr%,cV顀zKyӽVr+ 'S$ÿ1=oqm=~f3{=g3o㴭2 ݴk ʊXNՈ);Υ}%T llG!n)54 !FGxGh ^Vشo0F\ROT.04jP;hpt34rRۯmhB<ΉPSQS29>,e[^~EgxڻՊ?(<5U9 b&>rdΫ>l #i&OEs .> 떕'~głsTrj>~QI=(; #!KXA(UTɢTD'e9i -y:^SPv]$_yUAJ ?H C7[wԘcL{#zR(uiT& (Jzj((p F,5lŤ`eW(DZ#"0/P.ڜ cvSRӑ دYRie*ц= *hLS'_"qkEuzp -m|؞i Xkbjgg%9ԔJm:e/屧+Yg(|S](4g .K^ v/ۣKL tLVzk!  ( i3zehTˤwLV0)Ege{ ۹~=;A}J'n,G{:X"o)#\ {1& ;Y8i eALmk8 UU_{@1:bTA`>BT )p{,ƘTy^c| F? yI@7ٌ?.۽Lhrf@RJix0 `m0 GK; up_UMn]/y7+ۿqE%- h+U/O ~rUY'Üd176sIsfnSqbԩz؁~dWNjVJ3'5b fSߠ@G+M)\mXGnwgS 2V[b.a쌛ы:%.I;*J SyebaB\pȷ+H@fG0Y#XQ"Zh$"vLrHP N>|bInFh[*]D߳{F??dQFR;Ed kbQsLi"Aڴc롰­;*4Ms#F_S%Ȍz@Qt`Gܸn~"T<oZ*hZNT -J% ` s$^;:T}{AJSFZI5&FT-hC̫AhABB,\Q3t21.]-EGGKTŲ:>!uki;s*B?+mSfmW%YgW:I@tGϴ}U_u@JJ@H:7_ EI2'1 8I ݮs.j.GM_|m,?t[L<7Do#ݗsӮ1Õ#q |v]rs+w3!27wDҚ"b|d{B^ ׄ&MJ&A:SJZ_~\N 1ey6G6TL MM hNLFs3ͷg{[nN TOFl-աD!vXt&Q(<{Q(BضȻ\ͦ3%Gpé9!M<7KaΨx#U!=HcJ#OI㳿eҟm5)*ñmkD7Me[S1kjXsky2ϧ`epXdPI|U;oаf,n},,Glg>If!S-w,k!ՠX<M:ǨZS34cT~F$~ޅj\؝rɆ7v8 9@wz`z>2Hy͸&*GPЕ(_T~V7]TzS^IN ;ۓr/:ոu{{/@fD9]m=)8%p6A 3"]Y9tc{Ke8^@:R%Ddx .13-a {vh;O+*r_v3_CX҇nű>n?c/Jh^]rYrd[pf wCm7 ١x'i<uV&V1$nȉ=E,LGwգ4Ȧ%oʟdrB}L9w&%د,ODq(l&:ߺKrSOqŽϨ,О)%hԼ5?MR`zyp"#W3Tղ#)g#c>+& KkeO9+O|KD'ClE+*1h>V~Vf(  =!e_y)yb" 3E.X:&4~ݾs5Y;i>|FķJ%:/^ȃp "E(a٢`?lLmA*ݴ:u]ե :݄ M" ;Pf/z0c_|?3?g3WҠ]Tۧh`]?>2μ$v.j5eYB*^,&qͮn&;p 'rUSt秶/Z0.̊^RTċڋ3~&_B׵_JE&5ZI`}Ya/Zv*YfY\dMyS-s km} srjo7a߫U|?_ 9N0i'xO#v.cɦ|i㝆Jo馪NSR : t:Խl]Vu jzO7](=X=EhvB_3dū#`z!:HS޸O|&Zٍb3by@]z~"zw\^UCD_C G'UE,0h&VPpC՜}gs3&٩?Geyq\*ۤ",V˨L1bǵ` X%0=>{R 欘b໧j6qz|ؾ;ӯVRNj\o_7N̑l'5?2#-0N6c|z =8tHtix)׍ yYkCM3Ơ pwkyS.#}jV+w;BX8:j5tN>5S(Qe4_CsKGvҎeSr./g JFdD_~֞c$YD$xMQn5>eΥ6XPXafp>'kFLg<t'xw[Go:o{'O|]~30ά3;ά3X}govϸkZ`cUĕȁ`LV ( d9v` N䡆D݄δa,tD2fiM8L#`q4> x)0yZ#<^!4ԖRL)(U: EHsi2 3vow>'"3X wAyifɸS!V`N y)ܜpzx$D/Y[Sni0$3]m$o&nJ8g~{|R0h-*D@h#-Z*´qt Ihd8Gd 4rO? 36HKDŽ18{Sym&S7hf6YBs51vQbH06U}ˋT7l* !jaRf&ɪi<lC,T tOFД괺%^̪⤛&0+;$:h < 㳨?z>J22+^(6\bU<եc ҩÉlD&N Jo=W)tq^dHjNnf@"Es>DO U6.ZTǝ$iqp'M$Q\$>i|6n%{Kjbq~3-3] ߬otG&B"OsfؓP{b":G{}*\\;gfn@PDroMؔ͑&>(tT)#x6j![Y63/OiSLBanN'l*[g!Wsڦoѷ\TrANfG 0Wܴu T8Q86ޣdEAx24)}i/[Iɯ[SM,+rv.V!nӢ)k7$*QfK3犛pXt-1;> 1l˂Ƃ ěZ"݌ \"P-Gj^0EQgw?[[M?i}[`r6 mb~$ja&$π_7hb+TY3Wtة_kB_<30llQi/YDKaka$ bKr!7 _6zh'PҤW:eN|{96Zvt$4)A-"ߪƓԂ8U Y4wJ{c]Ц7F9Kkj`lI;W_ ,=>>;)eOs$ I6[GoPwۭISAIAGoOr05CiT"+[ b{U(x`oGsj6gQ>RJ5gWݚSߩHjuEųcjQk1/b |t}s .eNmNX8YکuzzY>ɰ${m "`ry$=PGT 3e !m|2Zuxda3RͰŅ` '7ƈ H(ȵ` )^Z܇Ânidi-}*ix|r VzٙTlF,È S^[5ѩJO4E0y1 _<& 9E9z%ʧ(I_{#NJ[Rw[8pɰY}pR;=>9;4$,fSi { X|vW{{h"I4O{owJ}i R]ȜDCwH&Y)J@DžLǮ_3=mEBG!].VE(b49 q rgXtǪ]شA #'DT1*Hw \ e=M,ZVj'i6ˉ|# &۹9hW<-)8Pћ$BA&g]o4@o Dr6zL $] 5aJ(; ݌oݫ!2(D)CKi"ݧ>kM4O7jf*QN 0s:xSr.(ur,[CHXIO!ܡ>ਸ਼~ddy?iΠ܃sM:ѧ0Yq#Z$pk\ǤȏK)UڦĹ/1y9Jjrb%/rdEIIY]`uSbYx6֕ S{k5o[T\*eJhP*)Qrb!ݎdȢ謙 2Twu#EOɏV+k+^ju=~f?Y,g3f?3$tLgwb6hBׇP*BDJ ^ <0 ;lz78t1%-8HbVg:nOƵCz {Oh)JH*ij%~V;Vd8kmFOVf-{۫U׵_>R&ӝ>XNA~PUK7zbԖǣB_[6ۘP|YNҧUMLH;PqF .gۖ@) TVct`bZfL?A/hJr\ 2 P*hgjр ;ʹQ٠3, .%y, RT}_@ݻvk+LYE;w8m˽X݅&WXIPY-m5jz؍tmtI-Tit`Wf݊G|n Pnm m\˒BڝTli+RaWbdۻڵ:s'iʄistd%00c O}L:ytׄ˥XMOvȞYwyC}&N5X20A4yL|u2rBhߦ\RvsHͶ/-4kc!r[_ԭ#chhݎ<,H$5+TC7?~3ex}5mZP`}-US̩*|vMbb_.ڜFQ1  HL\ $R;IT BtAaiiL"zwDFTq>+SLܨ[4G: X7пD&sWࠪҸWq\vd"hWW9MU-LW-ZR7V(9mAk4eX4Zwa BGIk& <;(YU/.Q'< ;]i@m#g1 4/ #xZ!wtT~`h!6C5aߡoR!) Jg? PL{4#55oN>FԵzy>:ڭ'@zb9`}pB>% D0 j`EP^#z5:wȐ3K&B)qFcRnr$1 3r26FIe{<1> \rn>V c µk*Ɛ ^؈z6 |yqNz VvʲpGN;!ߕ̲#B %OgGiyIm 3|Zg#`Ĩ˄qy|4uc_qVݑ!lL, ScS|ݴʗ~yn"Ip̘saVŁ+a䔯q߼7VKG:SucHN+"rf:Yg?!Sl)?>yG?|N#z Ko?+3x8Xhu js[T!ﶕjn툊M qouwn݃{u wn_t{n~nx='7\8<ޓo{xOm޻=9='߶<ޏclb IT,0[+5[s̕[泖4vzU{wO0\>w^,ӳC;~*>>}ߝ9SLyYŷpGsS/QdT}Lnv{3Yb+arh95HfDaF.7K"y\݌(Z~>?%Vlbnk.PtB8ն>S=1׸OvtopZ/ƭvsy; so~SIͽpplDg:wozUp҉Sܨs(!t~3抗bޚvVĬ~.v"$dЧXp4bj5wx |e_ sW-s hxbhafl8xbd~>؆ Cv-  8 %3^|y;5@A8%?_?ې,_\m&}x-crSvPu[ #wDiVyq Eo*\|x Lv 1QqqUUMÈx] "Kcq7V!QS(]5LG#IpK Nc`pn@S?c;wUSz B>f\L(|f{}oEZ,ryܵٳ0?0?=Z+@AM0M:yBN[ Z d +$E>dȜS(S SخDx/ɰXΑ; \c+zܴ(cÞ#94Ci`%@kЛqoII,"OXP ~ Y`>%LȂws"=V(`I/Udp3bJ"c+IOq ,F ZS̼Q"]3PVbQL#r¾U\Q8F LkboV%%<ǔr~J/Ueft~<ke|#wu'3QRnͭ,Ug'/m -Ұ[gm-#֠=gg?/I:0