#!/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=03ec56e771674ea95e8c94fe4a896ba3 # 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 rAbgo\ols\\\"F&w,,Z5NI B8Zp/bm>| ŠxZ0<) &%>wi5"G f 7 %R`C he h3@8ktX0FeBv~jC_t@H׌&޸O P`8z>ѠI ;׆3>{x`x=q=d2ՍNkP21ey4}m c l4܌XC3BҧH5qutxhQ{) &Y}>kJs$a>4v:tI6|w4 mlhHJ=jd|<6tibuP{ن] hD =43 Ƈ(YXEa:# vA"W)Sp~xV5:&Q]@*$kMR+OXNG%8K!uΤ(TgW)C;pQz3Mij Îf18\Z5U3/FF<,Vz _j]7eSlBu01k}/dVeWX9čM"؆Ò}2 %{+0yZ7-*֔5_k IW[?Wߓ<fivN[OlT!mae s|oAV,欬9;68mdN3L?@<`m[ECJ&1\1lA29)5ʔ}(S_)n@&IBx@$ٖ GqL-1A0欐/(g"/8sSuXOƬ,q0d/oi d@Jd2\D@ C$̓ռѼGgTIB̯@.s|+,/pu>(eiZ ap Z. xwDP+#+a]]4 殷آ;<\x m3n)~ 8c/< |3+4N*1(\= M0d8 LswFܩ57ɐlDj)Z`# |,}N%RGb X.t Z wo-9z S4Yi-",ᗫi^MEЇhhy<+@>@0zj|EVJ`fkn%K $W !pE\M'3pC0^BȢYd7Ce"@h *nw1#LZ"{!ykT) %Ԣ@ y8|U ;WQOoGD2'CH; | /ڣ/VȲzƑ;w[6Yyx!L ZdZP2 aM:V-VToXlTc=ۣ6"a2jm*l"uv=*yhyPVNr@%&/,U*'A wrlXke#d:™i/W8-_\W jV>'qoנ_\@ȻCO&2=1y\(Ld|2&X\KP+mfPJ`Zދ(&pI,)-{ƅGf\:ˀlދaJ6}CE)J7c>Xb]z%A"4y7BC DK,H>< h2"J)sx580LOOOOOOOOOO? RgB[^-;3\8uc/ִ9 ܄zz dUAWcGWm؇Ul{bx^6-y|"H~o;[7y!2Q $J'} RՏLS3;1qԆgPimC7/8"X/e񗳐l_Z.92_?ϳMP;ol,ʮG&ؗ4}*($Jѩ6g^T>&AҶ . x\d ԟLLDKlѭ&TC8э ZѶqH/V$m6\3C. rDp&EXP[(F ykf'#3{UWxtH\ 61M!fѢk/e"GoOvu IV+܌JsR39Z,q#tu-{fp 6KI5Io*Z#1B‰u)n^B$jyqt=VCM= *(?#ߤ7>g$wtKtQha =4U-B9TIj0NnI.Ue@*0˱/CH⥸Zz+ f)FA &6=x &*$r " ᦍez"c Ul\z 6 ;Sԝ C0LMe&{=\}EQUEubou@LvU߀ke9?0)9mQ|(gfk W=;8]}{\-ْVwa(E6Z#nP03w -Oizq9I z1&?: qB,.%=2d)#}G>W1&`BvX)m)״S02PM=eV)?{S:XC=,r9]Kɰ-[a Ų ©^ ,IInZxݴtVҲQZa5lV"̤%4KYMƆ*j##cL^K2ٌ2..e,;U83o@ITTߐXf}G{q*q*a(ې,Ӆͻ~FTGBS&.:{vȶUVy\Lq'~4S2a?V6Lj @vcj8ƻ6^ssW\,'2GZeSH\߄PL:LjIrvJ8`+jC&?)b."KcLd BCj ,Y9:Hk9tAƱp<0vm3r"YMMNP q%E55A}O:,/GMݟ-4|F.!8VU=6yPVC@'U*\=>xZt1'oďqk؝;Dr$ TdV %t)N$Uj.KQl$NRtS%?0CAa|">*B)6GjR9O&U.3%Y^T${ ĸP _dePYп]"%_T>qA&wTtQQC2Icc3ɻ'%ag#%EG}wч3wx""^g,y0%Q~EjwOsucKn[xO-n˜ A[vrzkj]l\ vUL3~1L[!i| {qqȳ(_ı!5Ǒ?|xJLbKռ+z'VѨ"c F )m\)ϼ+&{^xWz^k̑o۫ b!u@ vgE>YִؔL, Nji8O"a`\dٮ$ƹ}ԀbD-LYjꖰfZNmCǯ}٩!;ˬ*L٤ax3})mg٥r/9{|SL#Ѐn4?<Wx {ˍrugEh3K5, bҵ ZH!RE+J-HHܙG"`K`ޤ 2Ǣ}m5Q6IhЏwGn/"wÿZ_ı1Kӟ{I>Yu%@BYkof \0vO| mO2F7 b+%ݹQj> _@1ceMCocm]Yۨϭ{ؚ2힜6Bk[J޴xztXm@B6xϽtT=ڟnj<Ȟ'pBׁr$3, ɞ]"^ LmpGcPqK9N<—+rc@ʊ`Q D[N67r19CapBðPCE0D]Fy]tZxcoqCN$Qּ?zus2V;&&[pv4l_Nben#g$F֥6`j\ʿ+9nޟ3RQ">#$a覍F,ԯ],$ Qv~O#BT$ds&0i@$YHS&[ןm_/-̕!%e k暀&` ̌l?2a>/M?4l Ng@ǘop:KPP.쒄J !_]$IހVDAty;o4jս2dF" KBJ' EEhg \ȑ ARBY7,7? ǃqJYpƙynv689WIBpJ:u 9ĸ(7K {|v1pеwfi)sߴߊfdt4|Oh .T$z33Pgx1Fu. |J6PN>a Ykβ*&M; R3xHnapѹOh"E ǿEiao;J h}@MH 0j &WROP>",Œ!/F}_;͛n.67SFuI E\rQpI{06G!@2ڲtjׇ1\HD8HuيQ;m,QSO) D{kL9ϴkY@S#pxu2 R]@(=l9S|u/tWZT#ۭ?;u~SK<$y]* 7²{LЅ[~?yNC|GwX">sK# Fl!.Xn!^y (AnL~Y00l^BnJ}lwwI9@>kQl,cJ%G EsbI+10!G;D " g(28uER O泂&ϬKB x-o%W-5OԹǷ鯱ĔLCLYM힫ĒLi/L]W%FŜ2I/:NpQ"ˌ 21 ] D>rRjH9w.ڐ <=&$)17bze!C#h&So1b?+|V0 aZ'm]ØgmbYCׄٴ NWی&}'I|dABRoVgTp $D!{37U2`6 |lj\45 UHBQrwsiA"w: Kr W2*va|\m-Dk zvJT_""ڿV'7lEF% B$LRz 0S 7a7ٚ@Le*l2V T3nmjm쯪vsR>7Og ʳs{=_V{=(݉A'+Wt_0{t^KZ%H{MA Gope 3!7l/6cmKRPRڑ$hV.IYഅTwkm!d\aUK;Qyx fY`'*(g, E-E!UsEk`(&/r5Tn\((HT1 _ !EV| 4\nahf_X _" axGN+-~-=++5B h ވ)wtM"]3qví6яnohXB 6ߒXԜJ~#7$[53nr^w%99N'WG4ܚT$x*=E`ңV[*t!ܝƅ l2B2(flxx=*){JtڡqZ" "N߻uH@*Fm>Si:ʍ6[jٜ4̿> w2o}.TTVF!ShC~~lZ]K ܮw=+w_͍>CH0~ڬoHK#)iv),A%tcKեbԱIؚ`mZ*LؒF($&4)3Vzn+bUH3vAYs߱-+Wq̨#^\“K'O7_ʛH*;De͘c>{>J3m)8m7! n5n]8nc0׍1F͍|c5| ]z--['u9][AP}]F5|}RoPpI>=ή~"|aG<Dln) kzYA۸TM`oz*qعK|_T1 +n|ыnU' gεh>+Ǻ3)fU5߰ƙ$x>]GOV&N֤憜s(GRdUy4pg8YAxq1x (ARy#]֠7uֽt" ѧGi 2< WmDg! +Bq/)߮l]GMOZ=TH WV<ګ^766d6i]j,uܝ*7ig#AcQbOL]^ں@. \Z"CvHPڴ>iF H/~7  \#!7ӂ^?)Y Kf} ͐JAi kgXGE;&wpO+ 2vR)L|y"$IO$Yi= j1MTk ]ZWC}Rx!Oi]a $t%e_)*.ҳ̈́1+7`,KPWCerO7MH:%v>?܀L֬"PSj:aoodƄFL&T%4GLL+bP[ߊLJoϖ14^@t@I뇭rRbo˪ªjA-$~׳6M^5J%L9VvX-^=ARB"I_z}L'N:YL]ޢcԵ"佨7`l6O3KOE;t(&E-XN୸WW,@L* `ԺP]vuA꣩~wmQhW챎Jr,mĝsz`kL5MKPRŏ>N½-3r}UmpIb Hh*5 ?wkneA2Oѱ`G댤nQJf6or[2bǞu&~s|뵺-@Ԧ*c%^qt]1fR0˱ei>?SzuoǰYd*e 'K"Ÿ49o}ð,!R&q0P)rSuEAG^rp݃FŌ_,`$1@+"OơG>`10ω;iq,Yd{ʕ+g[hbmܰuS̀R.tHԁBB4.aa⻙=dR/FQ2b[%"c'b3%L]kK*XrD/2s (MTzu.e%Lf,˴Sisb$Lݦk KBq cA\.XpSVEI"'-f] /drZgLW^1J@s2 f}E#GHsEM҉rzQU.uJiz4SP+Mtvgdl C$, yC;&֝"΋)i X}Xj5I1Xi@ȢP3Oad`RߖBhbP>L#;Wbo3Jq{Z ۚZc܅Y4YbFy 0!\Ovu+%xetw6nQjd0</d\I"dtnS7kfjũ:n4[R y ;؝m/' ^ן‹Z(f[L.d+a@ߦ4U avҐOnr1!)TegVF1i y"Y2UGFN)g(a8]}?0ݻ"aX0!od$p8){%/$(F<:xSG2n$vtazr,Q^$D}m1ޒZ0P ɭ']ABWb V-3WW_0n&bBe:3x9kxs!xYM'0 򘚈^k F&^ {L/k.2 f8N-8P= ;gr9Jz$=ޥOܚy/'JM&@&ф[1[呐:1owE}!F@aU63qMIrBY.:NG" 4cG?<>a8Vqct#8c 0)CE?95u$+Fb^E< 6 l c02 "0J+`MVfBEɃVD^+4Ѥ1~.K,q7ol嵴GZY%le![L Os ֤IUB2D_ &`!yato9P_ I&H][-Rw8F>ak 4mw2Fc-Е tPrN9|GcD|BZE:bxr]|U 8q5Z0 Ǎշ5!J\G{BR8ͅy`26<5QeC[+ߖeݬf.PQV{êwA;=Bgkd]2s3XW ũ$DnUT/D}]a+xYAػ\&H/NW_NRƃT1;/Q<6\)!(gA@, hN& t tΧ7!!&[WIN=Y\Qdk+kF6pknK".8I:zx4e;pӶaz9>N΅g9TnVudR F($7W/,a}r z2>>nkm&f@Msr&C24aޭCJq$f0+,FH?0?ctudWnln&+ss{n=Mja)U1iXmpa^?(O_eil*n\e3Der/iBiv`Ԡ0e5S]Բl$ؠaѾoj?Qrl&kVNvwA ,1X_Kϲ>=ˆ|}#oZ?*`mnU0>F2翘UY`ScT41??SZ5*QiIFV92Vpw/+yewk XWlS#; ԟ{%o/6k>{lw߹w߹/]/KADWР4"Pwc9TDWUR% p W{c,a 0 SG 𢅁,m+t y!4KVXW ASbL'3#)cbdo&'چ@1vz{jrUP9(Sx]\3<T3h;hR+ӦP0%]\߰ǻnVmr+\íd| 5 %(C!JyD]ltF2֢3u.V޴ު7=H8 #V|n*p$My `S@(;l _h c!e*BI"F9 Y*Xϊ!uz..WO|[jE_ZF5/.&\Ҷ}OMD;϶jq릺G [1۾mpY ˍ7ҺRú߆je{ĻUtjr)Yv$\uӒ9Dw4+c;o9ͱ`q Ry/"&%0 &c%̶y(y~=${Hp?bV6;Ξ[;a6n8NHX go"a,>m':D1WMb2۱YL5U,wk󺥞ϰ~IwBlN Pgaº'jSBM9^r28u t]HThLd:qz1* رfyWټ Cnnv[; zh}d.b=T-j6%W1  ~>ĐFp e#6EMzwfu$nQ,S*Q^Ɉ(Uf1X\TL_xp.Bm9}+PxH!dx 6w%VfF1 ^QwfknQGƟanw9܅<|e"H6U!t%g4Q՜D:ٖ}e7g!{/$<5>N\D:#>dpM:xV Q_lt-J]lV |}0}S̻I5R wKQ !;n I?)Gurvdl$kA$ƍnʀ S7r1"O ї;`qcrP%ؒP\1bL 0 FT[q(>{dV_ڌ,^8f`ݧ_ ~b"Zh3g4V+O/" m "ǎqhu 7ÐQi!WP;/Q趖G ,0.Mh\eYr+]Eg,B듏]~ULzfXo:c 9-͘ =cսbLm8|尶 U勩zyNCݗF=gljR[5"kd?ST΂$zQW F9.,9]_[Ay%%مIP0]^S;<; 72|M-踹꧰[;IPZ*Ku۔4vP0X>^y JnmklMGD"[If}bgVĊEHK,y*.|8ই56Z jVr=m϶RǴ}jnn$ߞ_3sn?3ZW(ؽۗp-|R.ճ3ߍ:#X?M?J>^zyrDmGoNN" cva_GxQ0Y[+6 U'<[!VQZ%ޅ.L&x@@DH RX -]wGc䬕>5# WK|e&E RI0Rsf  l]xɏgK\;MH̃vOjA:`V:+#%=o@MwBf44xEp\| /\i KZMϢU'\GORPLk*EFń)o}:yDۮd5oP.\̉k]E ׎0סG{j 4+"T.NKf+^׏߅{t'x$= tFN[a)OFQ'"g°MR-bjUy@..1BȘH䨋l l)^Z<Âni$aW+\62+IcL ]'=8ap҆ ՞{.jn&'b͘IS&I'lO:p[100E_^ NF=nJo~bb9}a6;'`~*~P5zŞS؍ (l>2|J@!/%ZV/mS]3 aL!DG} KC?hax'E.$GNg#1?cdT.CrIº@+*rVp@amQY}Kc@;ER{` U rxH s3{V#LwG6|rZW^dr DāDN (ۜ">4Ap|W86Հ ikppt{qdo bnib]Wy/(_s}5=E>_@"nmÑ:qkǶXKr{(Rfgmb>ϲTq9ϱv}= L2?k]lDncE icoQl}CD&G-q,)!F/:|n>Q+E6( )635"#F#y.SAE>y1Ϥ{:88&y\S+HTs% {=a#ث qx8^ԋfLm6II0˫wG~QbCl Wó}9 &nQ᥊F|q)xٽF(ZХ= 7)ˡ+*֒1[ş#N{9x;yRU%}IN?wm SY?0#pB2z~sCmԺ]XNJ),QP51".`ts[rlX^kZoQ5 .TT0oݶϷߏ8*x}E,wo' ׷5f]Ig߯av&K;CZ40[*gYQ$m ;Ҥ#|Һ-. g팾[uR"8Pc1AuK%:P"`Z#0 Qs3Fa0hv&xI.i\X؛=p&q< ##tᲢh[,rPIәoiU65[/:q[V-v{ c_DOkm;m l²y޹51SG,}n#-]܌tC\=CB2guLQgHƛͩVё`h"Avɾ>ءi^ӜN$uf8#g·# 1?gؚad("'tR VuNzofkߺ.{vd7N.>ko=}}߽ ᳉w׀LOgZ lLmssk{֟-AUãN<[O7?_/~檟gk}Zgk}Ϭ mD#^` aϊTz_Զ6Jt):4ȓ\%lȫ 4Q^+$BKXUxx KRq 1pxeO^w*Q~ld5lc'Cgd4s8Waj/Ι,4B |G)Diu@ R+dDAꎜp+\>V/4E%]ȣҭ<.%Hơ}54^IY4ܷb'J(-fϩe* n!H A~x;GSXԡ8GB$h ,HBh0` #Eo4X"QW_`UzZ;4K Vjt;K 1\Ue4G7+$ J9Z$"uO8%j̖^a(]2MdH2G!^,v'R;:؊2hs)bj9#`@H,>+4Vp۬~׉'ɧ= 3P] hf&Bb''tk}Ol0 #K!6r.[ . j4r {؆xxK|<y+fƌ62Ε- |؇Z0L*wzW>gN-6cQ%!ڒ1"%}%]89~yi/ˣS"J;Y2s WgMVo>XD%O/6-@^º.-.B q#T"ٌA ,x?1_vk&0%C?[Qw8Wdh48gk/x%%?rA)_Y/lmsn5>NYV|-.8TV`|*; lerxӇaX>`gRro (& }StG)/bKw4vE>Wڅ{&=?@f2}L>~vuxT=}5O5~uAe}\ x t> 9W;jruЁ[J7veηv@.nS4aWg+[Zp>|w;n`}!Xߧf!,f>p:F?{Qnr5{}ȸO19J(+VV 0fcUמoBvyDp;v5Z'Yo]jc[P3PNNG7%, D̅|ѾΔ9KW7 #m`TI? %8b&#>ЄEn_闷H=AŀF":OE`J 7o>[zLmM}9I?XUZZ\@a  8Vsѷ(v4l$L/^Ԏ_\˞ss.{eϹ{qpc7.0bҏPayPǓ _ݫc.Άe%CBB7jq{@V0'ב#ghfj<NUтBFe'w91dv>2h{ 7^3#FX2;W2(Iɲ@O]J(m tdAڂ.{O{nGdj:W^<mނ#vc'IpYg,g+%z+ŝ'z#;Y)[> y!d1s }= p,C(1tSKsx2OH%v>Ň3+|ɤyUC>2\reso@+|V#w*BYē%m;q釐Vu+]#OHvV1ˆN3[g.0