#!/usr/bin/env bash # # Copyright (C) 2011-2020 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=faaf5cfbe833f26e0cf7613061ebeae2 # 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 ^^85qV;=֪3RD.!ϼ݃pC IY޻'Nԫڋz^%9K}˱+=z]SR@#jZZ6ʣIJ\e=:+/CwV> Y85 6W.%K.,ߧ&Y2¿}C||1۴pHp؂/YH3 i2`_Z>qȄ!!v|ˠe<2|&$ &5溵ne!0 `\q?4cPiz\}Z܋%>hDn e!>, z@=P4$`!6M ǧ b,SM"2-FC-4>y^ QH"p= ]K>BD:Ǒ|qA+w䳱:)e}$҇HR2jؓ,)e";qW_ 8z:(\I%ܶ䞬~d3jg;O #U{GÁ"d++^[f%;%y4}i 3 l$ڕGRGEH2:2\L$=X* :I}վJ+$ġUVǪD.."I9%„6V$$Vlr@2>+2WhhVx=@~~'  Cޢr7b,޺tZyiҬ.wCţπ+\tJP2 HM݋M,p!MB \7m9 pe{f/0T!bTA@PD٦6\w:T)alW9= ”loڜWHKv,Qգ\aʽ=8bqS l̩2x#y4Ҕe8<itE_+ׯ%($R@dؑ'B>ֻ4֝³ jYWAo=v&l@{*48/<i-4M?Lc6iY҆y:L&V3< |7z,1ñ=?z9P &_ftn-,9]yRL(T* {L?' /CY$?/w?/?}t bg)xZ4*,8(и0q=P4dɜ̊)a&f nSxE=uċۢht[u "5\ȘÊ- XHʊyLfDvݥz4`!krи`AѢQ'H1Ot18 Q189,}dh=l>nF /pѩlDۚE4LEdsKm]Ì5\, 7WbQ y8|HE 2hP!12%CH;2qgt m5n8$<طO+Ϩ#Bk:*L:r?[<%`4POv߽0\e&ჃMڶl7-`tL9o{jXn~r #v >6Bg͉wH%xID֔N&:˓TehRd6"DzfF8vWf,Yk UXrq.y;5 OV (\Fă^|Av# c!A`(1t 𢥾oFsii$c=j]Yg]_y 3%~2;)psPH6w_P H]k!y?>HPhgB$KW5@HDɀ³ U[y ɟ;Uś0K,t\ Ry&)1Q>ZUf[)W 0ЇhK15&FRonsF}3Hqfrh&ʱ?ps<wQ>yԎ~z A4O5>3U=;U=1U=jp8B,F^|Z+lk mE.Y !s(90V!ݳ8~! +R ?I[*jdΘ8`? !ó~ +L7ͼN=(6Ml`(js>bp"#P\c` >uw*]L`<$Z4XYQ/zgy(kcJH{9C)oy?,a1{Iq'Gd jω5qv2]#"wmxHH,@?%q"l=ad VYʓR ςQ Yhh% !xj<ȣut#n5K Bn8ari8EVͪt&tǽTt ~h"ۼv]OD5+3zjKG1qǼIQ+?x5կ'"bI"L7yq!rs#kjjZچ )CJIxf[:Yri?oz^F[Yxrk`[$Z 4IΨ/Mo/X5Tn" `Bf|BylZ:s˸(LY;\Ny?`Gzz:nwwn!~C]6l_fΑ0+ Ye򝥗CeD։'XFl]x eia؉;XW-% ;Y{ 8s_ꌤ*g10;X3wو7#v{]k};f7'xst޲_vw/x]5aGo!N n9u˸>?v;:{4CyE) >40L 1yo~*cOk {ރE37ŰqT&@rY3O>dG+eoJԺ[-˟O/!gZ^Ԛ}`)b}~],I}bd.][٢-.&eҘd_J{qw2ٟՄ]pe+PJvA!/E‰72RϑxJ:H?`F__ xh`+%PVІ@iH=匿jI/|S-Z& kIYѥ;wU!~b4mӔfc1zI|mWV5siۗC|uq[I6FAf͠=*u$nd3%dō I^9U _-u6mE8(3lGİ/.uPAM F 2elb÷2󦅊t G:Zo&A’Y[h&}$;w\s4ɖ.\+[|k}1nc<R2Pm Gңn$gFRO??GF#_}Wv?ngv?w R7,gyîە_+F9g;J_n-KVI@PNy7_}>B2I=?Ae:D޼&oQ_o{_F~2f$ M"cllwB*@c]{WU6vӆ<"3##z\y*Z-@ަZr-f =,\G GEC$@|6lcQJU#ꄄ %Hz:v=1 /Z#厎i9dq[fKI;Y$hl=P[r Cu@)4Qsۍl„i],Erg! iȦ]@:N_a7\J7]CKP=ȍ k&-!RK`9iҸ)"q 5P0 0C IcWh8ᨗNW< < Z  ƤKwM/ֿeMW)@SPw۰)/DePѫ\Tfx%T3(E{88銦9jK"2K˒Zӊ:J _g#J4?=b0 *4{AoѼq=0(H65"3A6N,K'lp6wkuXE-fn%0uP˳dx8rjؔ"NMlʰI]71dP#NҏKZxoHBPPiE@/&∖j-gV}ע۪EE :\4T% ,qά566FregF s%^|*Dg;#M1rT-yUR\/ ̺KuyqkYX3oTugOFIp4T>XP~`m(rZw|MmwRMj s/d(9~{~RȍW7}t^8n!sܝPBSN5}r:;RGWOU*{ 6%y-(栙2u&@~ M| *<_PI?ɯqWw;yM:ݬ1 Y8Tn2fWe[mF'|jhMЈ!>DV26s)aDD3Ha<͔ gs%Yܳ-B C~ c thFœ|Ӟ:E+Y8 r51#ë,Mg kV!m}j71[Uo=+F5A-es4ti$^~7wwkMz#M?5b\5b+IPu \n7[׽L2&̗dkO`@zHWAZRJ*ҍd='[{S[yQyz' yIP`zH,7TuU32JRn^e/\~"q&|ˇ6l<7J]L!rʾHy oU9AJ+CJƆm^ R7%>^恹uz0֨:a)߭s~NޥraʺYNFNvl<[8_}VfJ-o)bd$s9ާَږ 8\Yw؝ u/=6Zg90>:qtH 5%ԉJvx})%e{ &wLa| Лp+@fj6:X;i3ZҥڦBI 9(MlL%NvOwwUF'QFG.b{ wx;}UfL3,7Q|/MaR( K1.+Ӽylծ6aBGuX64k$cE 9Z`l%:;sru 4.EqY-L?яz/n{] Z(jv ]|as,n%աU*)%\U~L(c% M Z;*1rC02KUe>\$*VM5Sg&$U$~kdy\/$H8+ /sIU{/'+6oy2ŕF./m!ʙS8Gz(`sqsbf>44Wpʤc2/tգ=|u~4tHηNzVtS=YApr!uve~P+.J6e_ngB3 MW{l2(*!h#눭rA gJ3\_m]/ɚT^G+h> A޽Fa\pr`mOr&"`@DB[ǮCBN|$G>w.\eֱY - ҡWU[N)54?/sK1vL0րj!-|7ˁԋ&lՅe>V+UuH2x7:yLζ0YZ#Wd~ 7/ԋ׀V۷JǗn#}4Fd`TF~c-D_lwA>`Qkw?B[bFDzmmJELؑ/gƛo{g/v=zx5m_~F衬6NHス=1}o:wFaԱ@ڧgwԑ>=-E<)x7_B)6nM_}7o | !pؐL8+POO#k~\^v J֖ga .#3n5L`\bZܼkeq_ F ="o@CX\:IuKHAݸPPҵq\y,toukѣ1N*Hү #.Tz9Ώ_J>h_IXSo@=fҟEHq{nKopA?5#rPLCj0>yO}hd$Dzzp f/^W{hɿv`=G$ {% .Jݓxѹ+C??R۶"PcffGx݉ B.BV@`]UA]>Qs B\#&|N/X&x~A=gvn!و @)Η 8Q=ZHj;J? Mh+~WzMI; f u  ٍQBu}&X`˃:n-Iū < .Dc nt2jqz?Th|s=5 %fO㖻2q1H@m?"zP:*֜҅€Z,5yDDh懜Z*҉} n&߸Nc7ê>֮cyA9WKWq36jv/^%0x`% qh=pbpيmykjJA4 LN߷#J"xX<+HLn}8,F^|` svA |?n"K5Ө._=a" RT 9U$ڙo^h pͻ:'&Pj Ru,8FKoj=#*uF'LV]b* ܅UՋ*\?r˴X!U, ZbXF3Rb$>wA!U5]fThLN,e/ቯx>!fAC9,GԞH8}NBlwI٤Չ--mL#9-lH|TZDdzLԃ2H7W|'CaQ9<VѭO{O ]ț3n\Q1M @PD dY@X))oō Kzxsxen3:죛Xe> :\bWH8;c͕e6Y~Wu_bghȀV/GJo'\H2>^{2!%kQ.FLd&3ok 5f<m)P-]!-GvLـl]FtT7ʒrb!yt勮E*HUH>0:&k(`֬v+LYK9_nem9Y<φE [8%`V.Ji?zK2h 9뭿8| =;]hsJi` oPHyߚ,+Ù]$n;[%}=6[7]8KgɳF_ڜ=\ͤ+y'3Ƴ!% Z݈n*#y笍A*KK)"]WwGGNg?^c?kO<^Y{2?Y,g3f?YxVyDφg6~tFw :KAPھg {T{ҭp%(v;$97\Pʓ;i' Q/rf02Pl# c^Tf4'QUjHU*lJCO!TNjLΡi}w1$X?.Qi]m8P2hHO:[I& 9zK 1J] xdb.PR(6=?V]9 ŗoj[˒ 4:͍$D86mpQ)J?iLIHnXpfkgTܲھQ}S7/tҢ僕N.o}K6re %5!S?we3y1}ZsGrV46g_-;N&l_N&` OpTs]˚WHymeZj0vG4YkLU=w!ͻV;gXČ&Ѫ趯? $ |06jf3%_ZJyTJ}P4I[R idœM(-|񔷓1= ^djv2eFR: u`3Ic( 8d.X],;C"ۇUƳRYЇjk$H?jOW]rk\'t:kQ7FF{҇JOZTA|x?EFpa)\ *!XҤWtdCLqUxX GȆ+27ٲ|'VG-M|I"ZMZԮ ^l j>?>ܱ<AXb%u OHZK2 ^VdG&%WkdL *ͦ-L2v{5#wloT~IOxe-~f3{=g3MR )s {4V[q]gxow<;,}\"}x||u Uz#]\;Iac9܂O[G΢lF|t9 |[]!t`<^b԰wZޛ'%lr%،Vn 2)`+ <N]Y"[^USpo%Ós5OFQ:*VKKB1uG TQ>Z8'*U74p؛dp$ak2;qA s4S&<0r)fӷdߵnޫU2"EplGC_1: ǵ,[LdF(m@"n"* '}Feq; +E=i~a[Ae.8H>uۺh[FLm8hnz{9enDq>hTP ߹NBS#VQן+ `5FQ,Y^f:lQcpTOu=\p2N!FN P!ܱ❿moLJGǧ&^\ >B` Sn3\0pn;+")^$}Y}#-=)d1rpIn}/W򕶾rKDeC5yRkuwV[Si4yRzY*嘀Mh~o02&5b?rq@r;{U! u¤EϞE ~DrW|8-fַ+gHYŖ~>z+:gJXQ Jd*Ǝ¹l5n)jzZPt@Z15j=z${ U4mN5 ϶~C)/n=;HV_s(قJ 5( \s{Y#!#1+ 6U OުYXA#Sv6shPRC&K#Oڽ~xdIgP~%B!e.NjrLӄMi0Qzi%0;5bp@fZPv涊2 `X2|x 'uЗ(π:6xNKtT413W Fi2@ Jɾ@ALFʰ/sVvWA]OucpAo|.z{]0k.j刮VQHݣD~[|L$t1hyCBj2g!GE)M8m 3 .~].z~,+X9U&T P:e!~pt2CO1 )t·8 P1jZEe~0Hmz o$[*s;#v __/bO֞dx2&?3ߙw;g3ߙ7g^n~pώ %+%w8r4z;{u"?FV` @S J @5),*bJVkXnJ%$Ɯ7.D6ꍒN=,,A3ѽ\^[9B<o~3 Y3nvk<~z)mJ$#F] }7.*Q ^kԟ.FeW*ZcC@ٔ5_|L/_7JT]4JnHYD>H6r/HD%/8% M B{1_\ ߀:mc-4lU)ONyr7>QTy3bj9V')R8T|oNב6ֱAfO B/zl!$xUNT%:悲N7EIpm`R=NA`.F t>$KWO=`bt } ^|M=\*_2MfFȏɌr`Z^N]tr?魵EQ" =+[4U1G,r rG)(p@ruQ̟dMHT6-.5J~ J:Xc?%u<Kצ˟Lmקi*) <.g1es:$| .zf'xpGn Íg?xtv2.݊==Xgnu'̮:RQB 4CQW9FUIk߅ti,%OCI\6^{FSҙ0;X#y{ҪN@2l}ݩIt7ʽ Z2K;jJ+orz)YeýMDjJJO^[$ydH!ܸ qJM6_kɏ&Vh_)cqif䀮 *=Y*O<Wl?^[]YhD"7@_ RaXe(Wk2*dbȶUtݷ/=9S0{YK4P~e@/&K ZK`_Ku^L^obkAOC6bǬgK|CyKV>obJ^0Sڂ}%c5:.ݟUSTuyc%ڧ[Y2Ya[\<7`ڃNMP%,NZ*#ʫc/"P% 1d}$D>jÊ-8UV:;z T U-e"[lyRU$[74:}sQfE)tu?ZPB0'_qV \"HBy~`hh+"lb`ӯO$:l֨Z@ ǹ S$@]7-@eD?EZyi7Z'v? qu/N?JѧҘ4` j.zAy:Et$o4g˺sfG,k-'N+)ܪ-m1 #YdbqQoIjp2seӕUUgG*V-)"'~<Glk3mDz .W6q$1cE 5: -D||1}d#As:ܘ"gu#g-ׯ m 4݉u}e2.LiN^9kWp5A2vK'CdRZZbxiɽ$ލGUzBpF\ (ŝ2T?~բ}PP B%TK{8P&Y$( uЯD`n1"?ufdx=Zti X};Q2v+83Z"DwnսRC5 :wA~5;D27 f7*~y9M= pwSNS/ʠAT:=BU"s=p3}r taA*Ó=f́ƢsQFϕ:4,CFpQB90k_+g[y`J֙5hdL~qb*tVͭt|gK8拆Q}]{[!5i<rgU'àWqw!E P`aB?yM–rÝ܀[d z=$үpSz1bVvr.ׇT;/D`.ku={r^^0n*lߒE~Ym'rrk{wK#8g{$tX:`K;`ߠ$SILtFf#`Yxerw=RJ>%c2ɋQEA!)Euˆ zTº.:UÌ=%޵x_0;ծᅪյ'~YB5BgQY,w;~M.~uvH7-HC2!y %HL* Oۭ'lr ఽ]Yh"Ljn*pNJ[~SZJxWǹs*/BNؗ_-"Ω5qjX0qN=wHSa.ZɈsTQamDpf[ lT*$;Ri5XBJnWg[8֙R}|NkxPJOw'/wymsDҏ.1_n8raG+~;*RV|v_.?HU\zVx/O{rS48]ǯvJ6 t t݆yra~ >OZx1m>{{zjvaoaՌ;ؑ/`KVUc-Ũ0.bQh9 G'㦕g`mDCJןzSH.q\1*f`!<3lv@}O$P}iɷwlJv`tQU[thظw)=MC;iK3o4 pz{:W{u=Kf*3K$?eZWyJаQ2,4S4TV"Z`r3>8/X,rL݁a\(r7EX ƀ(ձZEbړ [g3#`9,3K0?,rx@NzX"OL"-ɧ6 Deʨd#XOjG1Al8so!.{3.`}BB:;U]TU'2m7ǹL!Ō 73gQ ,/*w}`-ѠnlLr;hQspdd;h^y zz e?G+F-嵧hipcf*^9 BBGu0aI/p͇LJbhe󇁏c8P<,p!̅+S|g^OaQ6{1Veϼҁz9~jk, ͜H V8#[FćPJ'RiWjc4l w2~{ +h܌/QG7 ىߥ6nm`8B?G_6ɨH:*#/^TO&8 gK郤ٺG3Oe`((>ูL0s2B-,,m)p06@1'](K+iO2xG O"'ewJw&װЩ1Eиn@U upq]Ni[t'<fܷ<®~~\ Z*"*홐BOmP5=JUuxT(YQDLP+XkD dxRʲmo/"W> "Jp8f2b(U,3VEpgg>P$ޗTCT6n\]KÁs0] 82atL3zfx|=rQЁ.Jh\XrWGY[F| 8  u 20&O{YA a+nz(oEMjH ZDk4haQsLdƨX / %wGphW, /OtF%H=DQ騳!2 X ,Rɰ5k쳢i9Q9R~7]ڊi!oMJHſPbUQzs(1RY{iH@W"h ܜ+a ;h2eBh9 7Jt#̈3D21^֮jɛc'}\Zzůq5Dpx>_,9" Kp#)cKujY r$>D{#kMޝ}M{!F}Y_,ᘛ]gwj)dI-{컩d0A[fHbKCfߋb$Wۣ܃BJOJ  Їaxs-fa9o뤽n^ԉIIGBHe5 p.L)&ڹbqt1#V_Tze G}>NQ<&txy|{pS3oo;skμ~g^3ߙw;-MN* 866t(8 z`}OvGy g i5gF[Q IFbϰT .,jB0I$F=Pj4v>WxzOTxUR֞,)i]%l$i &yh{"}}NDu.ĞGn͂h`e hb|i?ĶiD>-^-Zčd@Hw6r҆Q 7|liPRyz?VJ] 6KNjq)3mFyEB]VhH@^xҫ媘H`"*2gя՟j=Vם$K[ ݟ태A)t,̮Lwt_a`~6 `fBY|Vn0xgsB O}f=huΑ^ ؍jEs樈lp`ճ8rćWTt{g3ޚ~Hsr}MYLm%j(شx= ܺsöйF=-.B/0fFwm79ޟ0CE?KQ5(<'===pG}A_0Kދ{pw…sN=:=Oޓ{rzx/NN8V(h:XJrlt䜮AUmVeaÔ$^uU.❳dM(LI5_,ӳOCzcO껳קۻ.j, I?Û +=_nvq fi柜KV=Jo[\\?`]?/u3}zIޥeKQO+L'DZ-I(͕\(E^.[Kʑ*@tEAkw|/4p?@]rJKp\l|+g*sGlέV[/%eWz D׀bMr?bmCؘzfg3~f?g3~f?g3?0