#!/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=87f75706c1c14b9bd545a32c3ae98d53 # 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 ,`dO;j4+cJ q1Mk,X0h@+vE2aHqi LXѤ2D6[ 3 F5uhI#,aڦNJk>\35O%,31#jшlm0B0}!6B dNѐ!PǀV64n@I(,Fc,;.hEu42jyh^NhhXKI&\OEϓZ}r :E"'ťB.ǃ8 ?CHJg3e<^oX?D&SQxJd :?G$ "/.PXi()ĺd|NTWLH'6㹤pdOI )̦,d/€b DG / +Sd *9Nl dվ4yJ 8hy" !̄6E$+<fĤ'q:MiClHl)T*[k)}3W2%¼Tl*9[+MnhEDhl"d:wվ(+` 1-.f/\}UsגVt- ==$AJim՟DAh8t#u^;~0;:8w!_b{*Y|9;^稠ahVa{k*cYL.&.D:u|$"!/Bcmw9Å,Ŋ1>@8`pq"'S:KSK21x<-j5dm"+׍Hӏ--c 1`IR㐴WHf[H8B9ϐ#6_"Gh_#Gh^$G+ɀy2 yDJ x^'UD/Ε 2 zle@:25pYkXGowkK"{6M5|nU*o* PCUAF{FE+xXQaz`aG1Q^] *hb_0y0W8hXMovIؠ {V|Y6Ra+vFevtpܟL KamG;Ry V-؅u5܂g%x`? mӿ!Vj|MF"s߼qYsSTZuC,tЗBrYkXmN8ft*K*?3AN)qJVxlKGE^a@@gpr} 0\8tmcf+0%}WXł*D5IeD0u]WݚqyUXfKJ3QtJ< 8 jBA)".ne|%$/8ȿX,mH\VeQ@;|W.Xҹ*[nLd&_nIf݇yg!/g*6Pxߕ?!~pV(eOCOAr}/:[`pJ2@8YlG1GPX }N?~ҏݞ@f1'@Oda\'UՂ(VjUUZdڥF҆lܿ=f ? ڹ, Foj,RrSGwh K4%?|̛pʧD1ndۄ"xƤ%EQλ6aCrqh#9GM5P#.g1SnL[XM-,l%0}2_}?v۽Nsߝ=s]߸xw7M&`w j7x=Ȅxn/M _`K-_4IevaޤCYgzS5ͷ7 ]:DaVY7 *S!*z?mUt%  J ~o1vPIMZ&²}UH#UFJl1$8?޲^rG- *]T@ήO|ٮWql? I55`?p!JO`H_p+$9PC]R`O' < ԓt:kh*;P VƂ+$p*vQ<'ʨO@Q_6U4'Ur87]T87):J5w2T!j :X =EN!ct uaz0/sչTn#Tal%iP!Ld)y=ݹDI0%ǡ.@cY1F/RAux6R{<~`OO%Q. "İ7( gЉCkAt6!>3n~2xs sȲ2:V|r%z(6@P>W`ulO@ B-\b~K*[y}m  $k/.R5ᭌ*B@$cg㎲j1^s˪i /=5 v~EuTU}iZ ( Ib.5'9B/H`cxiwҹ>쥚`qݫ'{z.w9G7z} Ca//>gsAz3sDLÊ 1U\IʉE"YkՒ!;[-Uc%OYR?#%ȆfT-zzx a]Nj'Cafۥ;"x,Ǐ9au8`Ha.χ[jI3lR f5Ȱ?JEpbA wU!njE?+-x$QZݪY`Zf@kGDJ&MQtX?[LÐlTb=m!bj`.zcppԸMۦ1PWE-'N6PfGm.O,'h+5X 2,ж&ZKU_വ|p-3s~6PtLake7ݾؙ$6=ݡ$K3b090@M]%~+%f."43M`_c2^]ӗa rK.`ˀhމaJ6=bٔn|0u`[=(tz6C 1$HL#%昐> >hiiD2\>(Eߝ=,cʷxs+ QL)òbuh{ڑp~DJvFwT-scGêyl')+Hqݭb"_wNѮw LWt$@e );`G745[b;lJ5DM7~M.Ӊݦ[O{6S$@|ZKS$elkwUI- v=jڴc pܿld{WWb kdx j$ ƥ]* >hZgkwlïF+AWF /ɞNZ@Z4c>ɯƣ+w~3 WB|~,˱0ur]&{wd zV4֛4n+5tI6! {w'/l9?Q/n=>]{Ww߻]f7`@IXz+س|aלOM=\R8)qW~kݲm۠TҁdY6~;;:FT0HS}|8%H\5H@VJ [xԪy(62,%Of޷y) y|`ޓȖekT)g![!Xya}laY%Gc<+FSWlFX[,?Ѻ3Kh&We.T vǟHȍp6dPKbw-H)!N#|2¤)"YPsQp1n2!"h@1VaнcEZbM/ g~`Od@(I%9B&ј9gO $U2t)C\RaxS*ʱ?E އ!#pj4S\ ff!8XU#w @" +(8Eڒ]}"qSRgŘˊ4+TKpV w`r8,@;ƼEEo`Ow`p_8G jvk6?_(aWmi@)7c4(x^* V"DLXqp-f4!\D N@;hd."%y_#[+}6NYb\ `y}Ԁmb 糿-ac'3O;1tWrԩ>nndhGa_-w =/!dG1_5O4Ty}xP=S`pDăiZQicu{WhWq@.k!.ލD 4u/{I`BA$f!j0PJ$TۈߩB<)εd ;U4_h`(~잮]2696v"5ⶢYތ@+7˕J%G[=} YPg4AT7 x>)v3`h:0Iq=xZ(cw&hDdSKj#b=w֞56rd9x piuN(l=ׇw6ޢ³~iYBGo[q̤N[#3dXD_d"H!'{SZY |EqŇ @2YWS4 5wgdEwp}{u+^4$Q@r|DtӅ67s$4M"nfNMt}4K[LT8W?dbV=öKhG'(|}&qQM7+%: KkGYZ~10Y' B䓓 B" mYff?2=[eYbgzcے?K#hgɏ{/NCBBX|,K0|sm6C`(q1 k_g1Y&3Ivw'~})"k8߇3su[W! 'g !uBopAnѳbmYUo'5Nvv'q"AZYs{eemv5OѝO ɁS[HLLrૺr)7&:ZI1ZJ~]bj-$e cʕ6lW[{tl EeZV"ecf$LТi!0WMݲ S[xɪzYÙ n)3l#I򻁾cr̖,aQ#G8Vކ07S50Pm"[Ń~t(xfUy at>U= eW+iջ{7{WWVVmg*uҢmvlCy$K_5IRӒB<喚A4^4@6t_C+H+z-$ʻF}/-/i'.dn?ȶxi",53(PYSϤ THQoRFȡtpZފ46?fy&"1e4 }:]V{`c؍7vjJlO,kjp;&(ёC"t=r.u7##G&Ӝ g< M/G3Wz<ͦgѶ8m1Ppe 0Uk8f~i$05:%yCaGیmQX@D)< R;he2AkC`} uzdwZ:p$ǧ'?lut@d ֥flvizn\o歫1刄eqcr4\/^9[Үղ(j&uKҜw"iZةP6:f&8K\KSZp7z&2>0 㶇hyC8\[FL9γ,Q0ߟ3Q`@Mx^2sQU}RK:&K˴Zym߱>l}k&`i%gg%]f Ko@q/Kc&)GKTw3X'X4Yz<ERQ52϶,(4a=++PoHm:YQFF$yL#D ͧ߶n71%n,ԍnM>yxt:s^F#r"5T 5<2M "ey,ON7 " &HRM|s{q|zI7ËIgfx1 bM/^m^PJX`^vL'r\Hڦ<4}FFή}&J&z&wtIum%zל'+RFyi}d8b-.3L|bFpk;%hn6A1/N4@bUJ-yjӴݫQ/%} Pi$$3*st jӯ 8pm,rIz>b.t` $砥J QX0 ylKD;i{%/ށ#Jv3W,Lp 4 "bSK7ˋEPӣrl]E(Ԭ뵼ꍎ6,F!Jat:"!1o"7Sv9Pv}k[LĔ> 8SrY0 ށr[e?7 ^Ng&&JldAD&QIa(5Mhf\{ztv p_:Wd>CC?55T;6a^ExEt1&$8J-bKVnQ Ev{ekecVAO+{UJڷ>N _ˍ "Ѐћ('=Cc'-NI&LӋ/UX`+a4_AkbͼGPr`j+mNܶc5ؼzkՆxfŇ#=~VOv@E3|QzN8M8YY\^^̐w{۫+isKq kcթ"?yU]z#\;8}_Y ¸4~Lqi'j|-70㎚0XP^DDAUH^FӧOt,luπF"5+![U5o)Pҭmh'~I/U؝?ՔM"n2 eY_3ot r]e{i`Ve%ZAaTptqYdzT0a_V=^>>w٦ywInqY,?/[K4ڴ1Û/t^QIKvVVN-<ҌFYӗCeG{oO %pz3Rr1;rn.汐ܔ xlb|$$qO+ʭz)+o-9(i~ۈ=><ٍ[ ý(hϚJQ!{ FY?HD1DMu'dր,Kծ &@sxp} 0΄EDBAg]pt [)oWZ[n` =QFݟ_o{qL6 F?EJAa8;+k')"$s',+JAń>cßWC<̗\ؼ\o+흙)yҩxk3{oFgW-j4 Ǻv4ۯy'?V^W&+Wξs8Sa.>z,yrV{rzڸ[+E}?~]b'*?p3.̕ʒOmО~ηA|xtB~y3Fu@h[D!zF~') a3O@Zꑕ54pK\c~L3#ͤ%Ì+;%FxG~;Gov#k}8dfiiYZ,.jt[HS)QbA" g{L1|A7N ̸BWcͿO:bE.r[T8a 3ZEÓNVB<= hUpK%08Q`#֤Gu:ؙ^3k0s1e0ؙXGxS|Úk$ЩYN½=/{@YBFt? *FnT8Ld(NDx-H^ 6"Nb(mT}PX<14´n?(:\I);|pAfZWz@ ov/c<֙w!qډɞ+lr bG|e1}0XL'GYºwy\6%wy INjjP2O!k^1lI\leɣȗYNxv -颳h_4O&~OQHB&0 dvLC^; 8؜U_# kv^zp svVgESuo]w1;!~I>JV0p#LFq?:f*D "wqRRV}zbzER"gD=nG%'ݕw<˦MTOB(*aw6IQs,'a" lJ-n[}Z׬g[Ά,"23zigddxKU9_'$t?L@9Ɛ.w>t@7]# ݒ _9VƝўxCӥlF,_Y оJz<>>nkS<%uJN sDI}"X~#@R*!nצdzHڵ!p0d&8J-  3hζ'bR͖6ccͨ׿n jײY+LO?HglQ1ݺ_:jstFd K7B?>)("iX1=\}`a\01S+@R8 vK]ifr2E0ՎߣaW3{kLS{=O_;;i[* ݤ)eɱK`/y4KKR贱mɐ;lp !0Jj&GNam+^ hi&RxP Y;pt# r\ݯnhhxlf@O5E^KO?Tni2rg n+pFzAL)fׇ~њcwקcњ5%RYuQ2[2J6&܈9޸5;^?OŃ^ |y;/{p࿒Jc즑~}Pt9mxؐX,7ϊ3TrZUYY G%yPNOVB+-łUJELQl/` AtIsVӝgHϫ-(]~̫ 0RYW0[qZU1L{cOZƽa2.w0ذK{iΓ Eީ*G 4@*LN*er1slEn`v A3&`yM6 [FCvc8,ߌdm%)s'$0~PGkU%D;S: ՗JReir1r|lJN2׌gbSͤRwUgTfeNj2KƤN5KU د'Zr5rI=MʚŹVLsZKs޹ ]HjГ6UƞN2.ZCa@{qQvd&׶5)]KSUUX{@,IqVAG\]V Vf̣FXTF<&Dut#Xhsf`2.\\-46~t1 7d*o{*zI1Zr=oN~~rQY#ÜX87#Uyw3nZuU eeKpJRÝ=nL]bO i2 P=D|4SN (Al>bt;U}J9"Chku[lκ9{q_%nGbZ 99]^v;-Ɣ՚ |[ѿaovD ៵>r,uY.!F."bd/ ™ 3>.8ftDDR7=g~ 5zvKzpY:]8]}^#*V6Ѧ)_ɝ7<p%U ;yq2AuXo{=!%Ե̜t/>XER^`ʋ:쬳bQ /O:|ĩ ȪZsG3՗dLb$CJ@k٩@)~d ː2+fܨ,NCފHg hn)v7P5 ƗeH DGk)ErZ})k &Γ3ۧC2 g77I/-P{$T I4wW멝:XpWyT/ku,#*K_B)"(^qm|z pix=ٙ6 ZT)RX](<2>|]rO!;=L"=ߵA{ /}=^{=OSIoP< :?ꌿc?;6f& }v{Л=z'ހY;VŤ3j(HP w(lEyIW:Yr3LS78Ru縺}ZŮos^K`wT ZXoK߻/s51tZ}ͯ7h~=ߟ$ҟ;47/]pʟ<`zhoq$F*," D}̳4MP(/JU*7`Tۂ+ÙhB%;3heD_ :Ex޼np|<Ӈ蛅Xwp݋VTa|hvG!EJ° rYY^mD3[ >ݔAr?:VB۶og8Pr /..~Qn'ـ-ف6 Zxt~nMSR7pN"H8Q4lCL14{8Ad:W)4*?`Z1ڲ2k5وvBe f5K(B.q`Cw39. @61x7ș:r R}Ji5uLNc5/U'ߘd,PXjg9޵'9ӯ7d#M^r{G{Ը>P*lj& [gO1(L>^m!>E|Tn.Dq&$psK~ܣv*.>yyW6z}{L }*w}{ =)oR蔕dI09iM& |X 5v{UHkYf5aܟRrh|d)gڠ>@#vz =A-1jt ;;x1Lڽm)]rT;h`gV_¬Ūt4%Utrod:"q(Qa$ IsV'r7u8#5ReH=ǫupa$*&6T ףbJx&..Lh[JuOΥn 3kڕVtcU$|*vEx|Rgr4p2Py-!tdmSW"4k(ϔݚX5RQ$QD2Pߏr> ]Թ+2 i)OUw&D펧D Jr,x9Aƥb'Bk\LcsPD`/]y1;H׊ YNRM&̨Q.7'EQ/|ϭA(+fGv+vT!pؿwC|\Mvv(fpy,t3$ dڻw#wI$WUa8WA--CS&N%"ͳé/eZSvl_ѷ&lJbЫׇ1թ<= wfǃ2%r0P"x9L73GczzpG\kgQMtF 絈BTw$d(`+)/ 8A lF=o9~cJh'xo8ˋ&]Y͗[& qs)4ͭ-# ;W4*y0O餌 l)!!,L}HpF笮`(3.) ˮ7L[ 2"Q`}HM /_зzNLpRi6į#S 9-\kRaӟ;~Ϙ5?+3O㿧i4{=Fgow.Is젳F=uwFNOH^dΏo^Ø= PAPZjJ]2)d8&q7GHGRx4TNáҗs97^gQƿ)iuh"呢CJ>57-\7Pqxud.i/,5$q؈ Tk_6%jZ zYwzY`'5f~B:{j!cxE9xQ|0҄l~4jD}\2Z![Iw1 ALu G"QNynKt4R=R 7²Zf"2&!Mhw6~=2칛Ϳc`/+U2.o6O/+]Y)//F2/ڳxy|4Tr)<Dfž z&|"w\sUN֫"{D]LQhɹ7@ ZߤȮ]yUveE0a=Er#0\&`G11;^K/.` rXl)Y ~T UԡݖWPύRC z^)ؔ1- du.;2N$) 0͛x$pjSt`ȴԠN8UM V:>u{w8V]/Os*񦊰50@f0D3=U@m}aeR6H'M[2nv΀oFrglߜDQҨ9OHu*wpԓPMLI$ MRG\qpwtiEIquɮA(_@LsǛ`eCyQ ?4,X@&]zhrXm4׿YL|lEhx8u, %7"6xD :}ՙ3~yxm>%0C41?9t,+gQǧ0IIaUP{v{_UM>JzY N3,`S}\Fp*ޮm┤)7]%?&Ke֍/,..mdFB~x`ڴN:dׄ-!.B.]0>$W!)L0$1\v/Ny!~wm`[ 2 JD(]M]HQ &Pm)#}8ox@+)2) 8X1Wb@UsP ktO@7+I645X->Ȗb!]1SH F_:|ODvPEzR2"V)VeɣcvXޣq8ikźxKɧYla{p@If6y}*$A6 /V  *- 2%9}̩~Bap"k[R::\,| U༜l,;b\|b: ,Ğ pkdd4~@"Ҟb%O•ԖO tNg /0hb19|l&4 iAYAJ9I/TKLj2rVl%#9~2Fuu>̈́Uš]*[unm[4Ua˔цrE$J!Ǚ4R.sV:V+k~Gh1?i4g3L?/3hv: D @~" BVS\RD0 (JMiEu()KJ˵ cK"T24M 4!=Zn16})1HCIN("<9VouS<_F2 6X,q:b'n\x縺}JD6 tXTJPzQ q]$C5PFmR%5aP᷒HUq4y'3JIaUy)^66ݘNʶӖ 8rhDA*=:h5bYrydR[5evr~Zl)>~<+Kw mʸ8 4xӿPr-TsbniR%Ҡv)+k]=ܾ}>٩Aqµ1f{wڂm_)-:]u36JFr`8Pc-iD8I;wW$! Oɗ%y:KGǤN[sM!>O.e3llbdX/3h PׅG<#;% aV:zdmːǚ趟7%=<9`KLz@@X:2|2D*ZVi$}KhD0ScI7YBj@ y#tQCt2`dMϻ_E [naM#QQIX*b=`4iFtӪAўjmt'vaCidt4q:1GKxW嶰J`rb=w?5# s OJy3 w+Y~z8}K7f8rpĔ2d89Ydcq3mvzKKj%qVCgv69ޱEuQ%!S5X*M3nT>x8ҠF,>vc}OY`EDkU8`R{{#.kxt.LwQfe=!kXvCAvU%YNdϸrP!ӽ^w&u)aÎNÞn{:3jm}#kpoݎٰB`r~p,!)>+?V3FPHP|wǾX(2&,W dKnX-UoSZ~E8O +ڥqvDpO S+dEm>ޙ)#hLiꀺ,M胜t}SqeϽNR$<^xr3aFw=|"Sf<Խ!p "_Px!}ORӗj8@M&.ꗵ>~YyTijvxD h @`)Ji;S:ݡb&+vaᎌd5W[œn}><{sS=ʀP۫c>ڝh XAϧ;6m@oV"[I0וtNE&A2˒(:D~x[߫ |2x*JMT,yu.?_Ю}q߯>~XGSo?u=\^S?z-צ9(]]ѯ(xE6\g7ɯ~;ܜW^"vUXD dګ!Tr&Tc" CϱjYB9~KtDD.R2 vZdhv3KZ)ϸ6y&XyDu1"C$_i#BImD҂Re {c<U?,KsK)ZaWԘkjO9Tw<g?+Zq&\ \zwK&;+$D[N@atݿƂ(B.yw 4xdotLPd P0b|\,]=<I.qط3M NemzP=2TzBڙhCw\h.#SL=(ˢJMوȮ$r..lYUv}x_OTuNTʥ'=*Uˆ{_`5ˣH@̛X"gw_'XT3:gl`ԧC+QSKߩ6oUĺQ$<|螎/+$೟ޜ@} ɯVC8CI'/;}T>V}{޼h6~Y^Wϗc,I^͆tc?C{k 1bȉ8Ov<Zhi.t%OrN=CyqH}( cb$9 򣋁r]8C_WVbQ?I)![BޣxQ7T:}PVďQlH^4J+e K"Gc dM, ?#[Gg/^T*)=7bV3&:㫢ݩzzu\}~6YMww8GJB'Yӥ;,@i5էfF[p oL0!ͽC w9$^_c$51&F6}=ku)pu=zJDAF͏Yqn$pOMV>鑙YqSLr5W*w؍W|\ӫ+{zz.[3Dq*>.L8z ԅ~n$áӥ@ò@7NF9~%I`CeLY,FˆkW?۵, W[ u4x@MSb7 ,񤖸K/?Sl_>G =fFlF/{mU76_Zn#R[3=a+ JgD7thKÿ=s`dL`t,*Ev1 [fŇ'@"0z@&F}F3L5Z܃Ut@dCOh:$B+@'[Q1w;?:iРpX2PZg8;u{܊$ri1bbiEq*?L凩0T~m)5M0LY1uͅVrA\'Z H͐i^&.ETSS QخDx@0/jɠ݀qDd3T96ܱgQɃeֲ&3;:y7!}d/Ss4] | 970#d?Nq, "XS| ͲJ}H8ʂw3#^=f`cTa*^p{5r9 bqb18Zd)3,ݑsZՠX6aAtAa> Y|ߙ) ^> GQb=tӣ\|zr% ,>^U֧g3zKߍ0