#!/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=151ee2c0ec7e05b6c5b59c18cea2e786 # 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 Id\{sHϿ)z8ǏlgGֆENnmJHh# ;&n$yؓ[TG>2'k]m?{S;jOk|¶J,͐';6zV|6tF1+lgVީ1͏4 *SBؗ% ZNlHBg J,al#L&f섮E äDf&a|5!͉C-X@pH"iF R$00Ƿ1΀I;L hX(2ĴO R e,:)|!/-+?twNJOeu.`0zYP{:S =Tѱ)RSuuzLkuOi5U0]o7ikwZZNouNXKS9֚ZDiNxUz}~Tz{vts M762Bm~4Y^sV{@UvN帩fՆS}ifxZ2QPXuIPZ),}U28yOm~~y_eNK\W{Z]Ys*P H 3qiwZ]a_B:SsM sQ;dϡ.TH\b B4v 6S]WiCx.5]-445Ts@IV+Xv”ƅFKp(I᢫IsS(]f8r}Lϫн*y' 56^iݾ ˵Ţ֡Mώ~-5T)o)im20[Yٿgvʀm| }kofHahy]Tm@1!Rf|F߰jj<4KFP&~%' vvkykkO2E?E̞;[\#,C0``y;@I.1^A6AaTWQiPʙyd6 МOq潀CNeizzt@x`LJ ']!#ۡ4s>gTw6G)bfDx4Pd-_qBIs$.w2fQ5 膁QNJ3Ih.UJ ^sTd1[EM&SXQV莓j M7/ُM+RS5 \9>~Frwg/Ke+ ^%=1Ё-E4F_iۼikPDn45A izwl.vaW5x߃>F;`(]'?{Pu'lWGUX E-+j~ό9i{+Wɸwj Ya uX,I\7tNzR{Z4uDZsۿY9|z?y mEskEwD05.Xd+ 8vӯQ2+.&5Szot^ҲO|LVMQ)8Ns䐕ZӡFP#&yLKV!BeޢW #`)gPԀ4nwxt(>˵ _*]Jö()Tiz8SF9A!eZw6J`Xc*h+6cJhEL~2D]~mްP1iiu%)m/4hqL%p,g` %;J}،Ɔ1xtcNm#5zqh}\^@ߘngp~12TYAtYa J؁717yU߫B)cYI4r;| 8/WzEbb[ Z*6˛UŮW L W|r$ZUulzs⿊qx?Y2(M*C* 2h^@"'6h܌K%V\ʴ}Eďi79%_5T*c'􇝢z0-ˉ(d.~B`]51e"#JHY %'wD4UDω^+ EAF=j d9d8j^%|ń AKA[N&[!voC%/s8%q$pE8t|/n@jHppN(C,013J[MbrryYXee+Ȓ䣥<L=E\^ 1jRLQ} Lt_S|*|h (8tΤSNkmYg E4o]#{>l% ]P`#7uޮt w&^bBwR'EÓ:BBQ/j3 / }>Z #XٜB Als%դ8y5ϨėLf\7jq54FCEIn`Zc5iÈR͂(o׹\4+RD AHϴ>j;hLfn#H*Y%jWRUDZ2sOJoЗXN]KH2!{T/%O:#)| Z>5Cpq) Qw@+;es'RXBkzEm69/'=iURwb/r*+{\NJ䈐mIMKB˥ \lM3?EGE)foǑ-63y4׼ X\/;υz cֹ7\ڤ Ll`HaOΓ n`´ˡ 9 7F5EybwM&ӳ.s:2pMEEH \e<}01u2h!l]3v=X9Yw)q?n+3+ڵzq$ItGb]e.D OR =7  +XɻS"ix2=N.mX2a[jwdT$Ƕj Ah85ʓN؋6"Dk=-j6" J;Zx*|$u>#/?o2\7Xa$)8l)X&vph.:#-QB ЏAm'}SIe  ttݲr]XW4!$'Q|q\6 r&}[6ݎHfᚦ^bJs~ۘRfu`8o˼*^jP@ jN˽ {%/.'EŨ1R#,>Hd>?&r.L幔RB#5e $8~FeB-7DJXiU2Z-z2 E"oU-q-JۈF Jw@%&S/;4qT#wv*{| |x,zv⻧Ayookf3 |0R6?䎆HlF~:zOU~\Yw]&;7)ߞR #ءaD4зGu ǟLQ!\a']C"g@Aό<}y[Dz)8!f8`|/1ek+t-Z0>gk饺g$lW0Kuwuu-Zx`w&,"p)/:p"XV-4[G#.2"U/@ g*M>ǎ X$~T0~$ =A'F[ɳkMmkcEYOp*nu,O'<Ɍ9&V8T@},{a)I|tw>1A rx +a?^"guoF$4cg-ׯ m ۺ ݉u#g9 K20SWLD\ja⹪qRЌ>ŒBuT"CkA$o{8'ڭHgUvՔQ(8`=rS IKj7pL2OFq([ZU3Q:އ lc{JOEf4Q{z7Gsa?4>ǝvh`lGb=O.1x[nvtP۵{-ʡl{|Chz _$ysh 9o]An ~*0cO6lP *&jDsLUp~^. 69,]E~Et 5a,ʽ%bXiMnXPaY-<5( F,W4POqhdL~qbLJQt̺Ng'gj\z./F#LIL㿧i4{=O%ll k7HnKt3HZ_4^+6 x|-߮T0qɨMzo?S">i \؊K‰VW|mn3`KUĪo.UXA߻/p51Yzȯs AYO6yN?{ܡ?v?O m/&%~vF7 a7 H4A"(QS4n˅B]P VCaEE7\~8- L]_npƻΌx{\lގzfjf_&naem~^;8E ]#U'7h ҦYDn]ZV/F4U!X>'|4s]ouN57m' )B)(U"wF[v L4I@d~Z8MLJ- ޘnJ+tzotqvÕ\\x$x)uC ìJ׏A}cjجd-Gt55+\RK#n);hwMbS! z:jdqqo;;YJ 4oLX)R;'rئ3ƹso\T&R apn_a|ZQ)ծOTdS=\ {uv'؟:ӫM03jz;v rj׍mapכо!yq;䭣//[F/T1CmiIT%v*?СYfw^R`iA//W֧o3L?S3L?S3{Ѵ旐C(O+<#GE@QׄZz9@ėlafc n{sH1Dn } YF+ɔO@OqhAno *I[yfFǦZi6  Zt?y}%Hh1bBz &Za8P]4T) W.S566F,KZ73% \ Vp^OXȫ p\ނLԸtS}^v_+PF7ӰT tbNG?iAD FĒ f#)TyX=PDLeALm#əčm(iYZn[\ 2è9p 0XF!chCPqGYBHWū3PSx*T J m~8L?b ?5C>1.GvӦf,]7 - z0.}n.L-Ҷjtyi 4Б [_}dX9(T#Pvy.w9CBaٷkTY6'1G)N8qRǜ7Lqf+5h"&˧bD})2$'Ē 0W0pDqrIlGP`PϤoA}ugh}- ?Cv U oW~\N+|+]_RP<(V>N *) Dv/ZobN\eYW2;PXA[?K#KhoN%UzqPJ ]r틚y@b> ySK%8Q a$s2-5c(طV&.` >Ym >ى&M™g4>kp# >5 gI-i_3sfB wLTs! @\V Fu lYvEՄ3m$:)PΘ.@ dՅJ{@* ~yL*Ud/E~*=K*ŞT_oszBJZk\N]EB_U@ClJ(](\J YaE|֙VCg`+*|A*_U]v{#efOC.EsNZoZt,-R!W΂RGL2/Y32NnJm{+*3`'V8ɦs&Wd@eV0z Ҫw?ػx;SQuVf@,Ux' yI!Wb ¦rK.<^i$ O+3H}.(>Hɇ_؆Y]y'<9*D~VE&U+)266n&"1m4 ʜ&Tu ѠFha 8JlO,kʁEepi(2ov.X;3',+}Nq@i;?P [ 7Y\i6=;-H.Ie Uk8f6nmF:@Gیm&D) R;u5:/RFDGg{L0>s%k_]σЪᖩ]Rt{Rʤ(E~Y.xNзϷOw랪zx5i_~F&Zm &/^(mL^$u,/Y$쎼#W:ҔǣwόfoJEoRi՞h8VF٤q/GWx%Cog47(bp)A 0kj;iC9:YqDC$"|:$"{hޒz}R[W8}^_NCz^=s|ԫNz0z3;5\~A@3 G Z 39hhxsxY&0 HKD;i{Ko/ށ#J2d+&8^PE-ԢwOs.\^AMظ߻Q[q7Tme((&~OW`"2޺uvr/E)۸hVn>Sה> ت,jh/o4t\ҳf<>a86qdcrW탌#c 0)v6 !&4mc.]y|zyO 4SPSCޱaD]iZl]k–0gdBD8XElɊح5j!Z$2F$ z2x&S KYjళUӊev4xgiFaӜ_Erf ɸ9m`%{1?+@=3ml:ʥzc6f gym,ȷHh؇26FHo4 #1}(<=;99_ |J}o?l"*!nR^'DER!&gٮSb]z GN l? s=hhb5?25[hqny.B$N/.H(4s t1OiAvÃnAO>ڢPm2LW\ 6c2ב5ne|VHq'TpsE DA;~eے%,Vԍ$OmT.aj:P4.+8d6Zjc]yU>u˒[P5ͤS/}J*4÷Z(àaN j^r@`b# 6# \ =Bzd~=yVOwNhCE3|Pzyy) pzmVxl|z>6F<ڷUyVwMȫWW8K޸2 mP{R󎚱uhlA"}~ZEQU/Oiӕ'vlu/@F"5eVycp  Ϸ_FOAy1xMc7m"nެ77cWDsУcfl} ze\aSNa{W7W"6ڴA|`8߅6A調w۽OrSoPr\^zIz5fx޵T+ :z黅;4r 4 ? _ >fGpz=\EbQ<&r+7A:5D}vQ SHr>+,2 ZV} +xhOvCs퉎h <+Vl/-a$5#"]ZN҇n8Xd3 ٭[D{$9:8>oẍ́PiP Tac)!\+7+-Zl7b 5{; Mx9ӄRPlga9;kkJNLHe0͊9 e ^Ff,׬vU_NNe[U7 Ͻa]O>v=.p}a[.c篪}<ǫʏ?T ̏v^H\Ԟ\^6VEꏫX*VX|R_~O?]@O s%\seDNG@u||cw[]N/uXЎ^P%ay@i.y\ ִI3TcrD!!h&}nfܻû qzo[ mps|;_cNf6Kc&PjtSXS)QbAWF{L |0Aovq腎:ͿO*tDDr-~j> 0-+/ۯB<= iupK%0Q#ԤGu:tovz̛abJ+0DoGXP!_#!A&Tji>tFa _8eW##1K U2c+H]A#zylf2}blWq 4i{앮"N8]6qPXj<14Zi~Qu8ΓR`4`>8 ;ɁFџf!a]x]9DW8òv"~ S;/4"(f"^BprbY sx_s /NFeBQ6;o.aR#GIU+p#Lƅpq=&f* rP<m " ȗQw/Qߓ*;^դ۽RE [)@Pr! j?$YMFKzξNžD*[J-NkDxV@7gADL nox)piAM{ r& sR#xv[ʉ *MnV$4SS?8O:'5R+]}\CXM'\&&{ޮ'Yv[*Qv+.U%r73>Nҁ58@L9Њc;|@']# ߔ9VxCӥXin_}З?ۧMk C{|{  vMuZܤG} 'w\X ?W"@) &K^ 5 >&kC`< Ep  3˜mOIY@6[p|O[5^,\U۽egD?H{,ʘj]/5+Q/8:d(ҍЏ| EZ SO,&`~0H[ʛ=n'K]ifW8"jO~hl2?S{=OSpqVTnRheEa,jKmn}ҾT*6e TY^b c,شo0Fi_ROT.04jP;hpt34rRݯnhB<ΉPSgQ29>,e[ZzEgxڻՊ?W/<5U> b&>O/K2gՕY ejC 6CtL~G.Duo]/@Aj>rdΫl #i$OEs .<  떕'~gł3Trj>~QI=(; #!KXA(UTɢTDe9I -y:;ϔSPv]$_yUAJ ?H 7wԘcL{#ZR0{iT& (Jzj((p F,5l`eW(DZ#"0/P. cvSRӑ دYRie zz#U @'2?/NBE׊,6Z5='. ^Jr6$)Du8 _cO=VPr_𧺤/.b-Qh~!@\=QAn|Yyx홚8䙬kCaAxCQIfѨ-pI:7aR 1s?|2~swVNf$Y.56t6@V=Y_lSF!ڹ6bDvq ދ*6u-uq?3b 0tJ'Ũsmt;RXvYFj0}@э~'x xouAw Z] S%ڰ4>)'d(;V&]7uJ\vTL #*+n˜4F3o+WT!n9a G.ׁ.10)DID䐠BA'}&ŒD?،>$Q'ѶT4"g^o}5Ȣ=c;? ٥zR=8z],>.@chfƈDՇMiFCa [!/\w%zUh N_G F=|'+`SãI̴1բL(šBt/"CvӉ `. +8^_^[WჩOS{=O7g o7t~&z~K%.WU3t7Sxw{_)䀞X- 6*vx'8JYZ @N>'j*}TI C)^fJ@H:7_ EI2'1 8I %NFYBtK*)ch>9ܵ8 zLDO/zOkD}K60ھ}y?ֺ2:.C뽴k#~LpH?|)]Wf<\LlH̍pQ)HgMy_p!CӄAi7Ġ1HgJ3tUIKpcK05&uVɴ)u͉`vnYl/s˭w h w#:(뼘"8>eߒbT{/0#E&y+x78u|n81'If\"uo*1GI}Li)i|׶Ls\QYe8ҕC+;w1hTh|#UB|hQA"3;j5Zӏ$:RI ސHV i(g:':BYIY~ .&2r5#O ]-91R>qai I9ҁz/bcHB%JӯjV D]}Ǽ'Dk5=%XDaHSÄfݯ7y?pNð&b7͇Ov[ZI=DyN|Bu48`5[4疍-TV7;7A縸P4I[Dp5P;EoflB~@9OW2T9m`uR: J9azMY֫JIgf+fr%1 'rUSt秺/Z0.̊VTTŋ3~&_BW_ʲ|M6gG}e9=*?=2#(f *kE*\d]du|5ULAζ@5]˩߄Vv3Ȗ8 <} ی&)w+E'8MJHw(:VuSyl]YW|psGl=t>XK`M̆#/ꍇH"AWy?Wh-g73ϐ5uM>qݱsy dWIs \GW^(G>rчo/*Bp|fA3ɰ;k)4ON)-ˋR"aiRF`c>cH,w!q5ًϜSpW |Do9ZV&u^wgJIf5]ށ9Rf;{OO=ws5RӧѓWG.~Q . Ou3%@6v3#o}o9x}bc_iTvmYZtJxNG\_'5Ta󣕷TI]nAٍ瓵4?6>ꮅcTH廝Od!UOcz:Ws}@fEǨNq!gG9W%#YiGp)uABREwb 3 +~_^g^#`NJq>%;0N.񕕻/q=7b_GXտn̚pi%){+I/xۣk .iؽr d Er:mO>@MN1^;V1In'y)cr2%xwî/"aa}ϤֿJdD_|*oc'YD$xMQj?fΥ6XPXafp>kFLg<t'xv#7H=Ǿwm}j&?ߩwj{~VߩwjZ}Vߩ~SԷ{F}gܵpp `1*JFN`&+~`w̜ei1 wc'PC"nBg0He:" Gٴ&Q0ITNF<Wp^jKT&`*"4eΙz;˻pA,Z;/Ђ|꼴Y`sd)s+0 iYܼn j8=<7JaMFkz,ǭN)}TLKя4xĶ`77!犳H>E)TT4މD@h#-Z*4Qt qhd8GdYhI8̟Ffl 9,cpO^§tivZhM[#Cemfkbt)b[?ĐaimlnDU:&;|TǃäL#U"ya 8%,:Yǩ&""T)nvJ4$ /lUI7MaVvHt@xgQ=|t3e8dVֽPmyK2S َMV,[8zR ;nS#Sɐ 7:tg˓|7E| {)d+l$\4n;ICN4K  I6}d }J$2j$[!g Y_ 3?Lr#D̰'=z3Ftu{UxǹC/ڙhCw$ @PDroMؔ͑&x:DւQKAKh5ˣ,{)&0}7Y6+9mӷ[jrO* 'Y#W+n*@(_ <󔾃ͤ6\)&a9;gsR+Niр|т5ϛXz@()pXt-1;> 1l˂Ƃ ěZ$݌ \$P-Gj^0EQg.?^_K[[LN #'id 2zL=A2?|E khπip1pIhH˩_*N2ŔZm7#ܷ&,gS]A&Gb.fBR b6 ,fbI>Px5~K5V 4>sKEt[&F F:d )p eۇf{xzU)MկC8_6ǷNN/:@Xm5L-HB"lT"j~A*S38F..2q1H Gl^?ډώv4\jQ'[YCM ˞j-.F[8iևtLPEBAMDC^`O7tK#kEW,l'U-PLϵE<f̰ @i5FʓNeuy0 E9nYͦ)Kn*;n,)1O*&! -J^I[ l>6^ 6o>Mg=c=uQ GW_J"=k.'>zd'_k4o!xAedx"`>ދ3i%g:ը11]hb`:0QvUlVP\"xc}azo<4ސަp3@lJnIA^IێtYlWy݅N Po4^^$#b/fa Yf1C4'-3< C7]HQPAir (ϰ(Ui`GpO.RbU.x@zYլNl5FMsMsByZRp+G#D7ILZ)ǭϺ hޠAlR|H$ Gk”P~'v+W!1@ّC,dPR,ҢEO!7|ӗril,GA;r΂@O1pFӳnIO)#aM4|&=eDrrȂNz]m)G":sVNHY >{Ï%.1`h)DG38I2WIjR.Ms]I_b)s&y. `̘\Z@`S#N&C:? HoI5 řc/0N G;^lQ;,(YO))P>eZħ{Ϥ(Nq׭Ly{5V=l:e h>E07q9ukǶKr{]()rQI UQ '{:? 9(z"{EF-6PkN.Od4XB֜:LA1 "z~M+M4 ڽ^kk y)Hay=衃[i6? g:ı^dld9o_M5RŽ_\;%ZIN&.HwZPHJene C#z"_j3.qxxv`a:L@weпFMt@ˑ>jcTuޓ: ݍy*髪XOTF;(sZ-d.ZCWTXb.ݤX=U~VU0QV9ߙVFQ`φrh#ޠ1pzJ}`EiJySl~1dE(3ڻ;*&&KˤXe6WJ_`ZHyQN +cuOLk͸*}j?xaB?FQxX uu+&qs4V8@=+-iUc<GU8N1t}\"|zك%b X!],;X,fSAϤߍ/irz?|$* iy4`Žr.kT6!v!K1vIA={=KUgP SV)/A"Nhfa.nr/Vw!U%V%TVK|[I%űzy!{Ir75(w K5Iʢ#MLY}4wy9Z_3ArMvVX_Ks=fBo0_eSooؗEQTE}C,8'W?6IJnH9]APX\\,AÇ_Og˷~f\G0DT^xW4V TU7<49}4,^Vm#]9բ*Ǻ%wɪŢVk] %'o'Uk.A(Bxc#ť5JD@a+umlP0&e53c^ӢsC+=v-f3?l9;Q*$4Al=Vt1= vUϱ3[{Ն_ވV/Ef9h0(]Ol02<lο7;]ҧD`(F_A, sr3k?Vf[Gsz&bP(%hUʭQ3 AwFX@І҈2i4l1ۧYVxAvMrkV/҆@mgERÖ%nyU,ӳx-( W8wbǯ^ƇOӣ*:c>-b.hxe?J*ϖRgjmFt "YhF?,&-5~a} Q+lFT?|iD~*-w(mՙc\bE`Cp[{-t+8ݟꉹm}N[gh_^5[E8 2(Dm'M%n4ޝFjVI'NBpr`>ΡI`?\)^6EDzkYخO(aBb qӈ٪@w)}6"&,q hxb=hafl8xbd>؆ Cv#-w;  8 %3^xq;5@A8%?_?ې,_\m$=x-crSvPu[ #{DIVy~ En'*\|x Lv 1PaaQUMy] "Kcq7V!QS(]5LGѬ$8B{10W8N~ 1:)#`FKVa@O.u&dLYp >}zݞ۷"-g4kbiEqzazt-ѻJMGelLSN%u!lf+$YDG*B I<2-:,Z2h74ֽs$= ±Q=snZe31ypaώOD 4Y5JMФ$܁D'U,ze?|P,0R&On`td[xn3Dȗ*O^R21o%{Wȕ'_S-t)f^`(Y|V̮HߙsJ(A(&@tEa*\]~nf]gK#5JBL#J{9j={%]Ljyjt~<ke|#wu-~ԆT[3+3ųOQӶp piX-^XLi궖!kP3݁ӟg7EG0