#!/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=42a8ac860673939e13f115e29ad5fb13 # 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 ^)vJ^^ի*mΡ]:[]!0PԣQ|ךIV%M5u֖  hseψئ<@" EGiH :ЊhƮ@& ![-9C4񼌽$Q01׭u+  10cJ;}8㒅S^,y0 ̄,F#r[_P,cF@ a^HȄ!C mhZ8>%\X`& `B7L/hoI 42jh^674RV28W#p4x/w.9 GťJ.4RH߅־:`cYWH#IQ`DaOt]Q&*W &$sr%:p>{x.}|0I8c+36c a[|S+)*HYhVx =@~~'  Cޢr7a,޹tZ%Yy]ć*GyW^ǽmEWdjAʛN7WY$)BpۄX+n[#y%/2Zg0{j^Of\VA*? *%Gz AЖPA? {`,c4tCAi3S|ndsu_`BBo>"oMmj0u/P A<3TS&B6ks޼! /ڱLF=VOrU)0HřNƲ1H_H#MYFK[}6_*r I"e D|Ҹ!tc IS;`ݩNȍ V3 F8|2W[wP[C ƲȲXHij@Pƻvsjƚ`yB'Z 'F@)mhyLァÔj2i5cʣw{3C1%;{i`6JqjJY5!tBR)@K€"1tUHkrz3gX @ /qҫ_BWp{&0G,Y1"֤,m ֲΖxt[_t-nXr[ vX1p! IY1/I6֮̒T:dmQ,9H7=Z#)`N7Ӱ3*g (.:4mhq[ȕ aw k1e#Z@, 0OAx<9]diGF5cհ gteaXH|MZIXgֱXn\z5BdiS1S&s֖$|pиIۖ זE,'(ePɊ ͥ g*Qw}A+L}lLw˕'[‡IV>qO k͏`R#}!ۧ;Fѳ91$/dT'`yr꾳 -QzVCDhSGnʌE#X K{ ݸjK.e@6o0F?bJ7a>Xeb]Kx hns !$HL#%&Xn_wh"bRby.-͘b\mC\++K Oaď5@^f' ~Ҷ+y)k-qP1/gЇvU'+Hz-(N gv' 6%ՎVW8ޝ+~__________̑"aI=~(8VX`rKQv1)"K۫3W`A8T%<j?Q2vVy'?utGUG:R/ Wj*k}/)`羅Vi)uN, qČ#779H4H39i4v9އ;pߨcrZMZny5XvDlֶǍ",͐9|xn?\x$@JvџYf{d5gyQz2gLSv|se` &ʛf^j}f&60Q9sw 8cpH N0aBߺ;ۂ.&pc-vyV,sبJ vj3}DR9ifQL1BqDzbX0xӍz^na53FiȚ(CʐҺD,Y$Ddb\;rOn%$[m#E׽VZ8O΅3ūwEq&^}>edT{=jYJ=5/m=9Y"79|ԖZd Z' Ř׋LuG M MtV!]:7Utʠ~7?6(gc\j- qS$]_wgc&Ʒ[,4r^\ۊz0!A3>-ixEBܜkR<@Lfޘ~?!ޯx)E*S~,?soiM~zUkAu$I!\tm9+Ohd޺XIcR ^~+MآߗdWveLB)qa 'YH=G+?L {L1}5~+mBZA>^8e_ 3Ng> ' j͔7&$* {8W%,~w LLICHΨ+þ_A7J&)ȔM P ̛*fJ6Z6h]f K~goiEȲriӼ_&[:r8g)owօc.RxT+eb%AGHΆ= qR1ZGF}Wv?ngv???έ nY]+VDsvZ헼"΁'o/}0xe{rAdotmH|2f$ Ⰽ{0Av1{_m!a=+* {fӆ<"3##F=ފ^Oqbj\ /xj%IU (hpvre2%a %[ج A2kY}B|꺀nb)//^pA`+KQ*u:J+vc<QY#i ( ސ_ўˇNQ‡P`ܦٗ 6V]U ei?"[j.0$ twEGN잌Le\~P-<륾KthޟRm9(Joa(j2b,,*vVڬU'$`(p@9T?z PF*k;:ƃm-%Mdن>eF[BmurUAT'YrK =؂ XB"cԑ-0gl1ju.`)?nn&7zֺMF[B.rӤqSXg^-2 E8j$``Dۗ7Tc䯣7BpQ/3xDy 5Aص0?*_EAJ%I^P+ʒ*+ RX)x6a'R^<KW4- 8J/ gPppMs>GxqC4pr3!wf @`+M޻ eѫ'1z1OLW9:>n.09#.iZQΞиU jZU}Qj0;~m" 7td!nTjSFNM{Tjh_w` $)i :-,jhh,Ǜ.-Kfk1N+*-|ͨq'VVQPϡ*U?ᄁGEJ尥1Q t/`A]>a8 [&*V(j1s+9h %m<LKP0SM+H~M-If 5psC=$d+MϷM)\҂ 8 6۾DѲ>@q߻Zt[HB\bܵH7"~51@Ws]!&HC̈3v\DFw"ᣊ1,H}D4UK^TGj12<׋6355/n~B"k+Tq50n,zy!md4X 7NJ#̎[ G)܆"wzaWlDF(gNdHmbj--mD}t~_;{&qcq Osr&w:ք(cmװl֝CeO^1z1Ay75=rC&І6L{}ۡ%dXuj.G$:ڍଥ~t"73tΧ>O[Tf/Q5̵[Ji!-̆v湾;:2擢mB帝VXnrxfq$_U,?Hh+?%sa9?r) &h 5H{!27bzo \:f/,%KK8X`ӎ5?ȕX~9H.~Ŵ,aqPu3D7Ry@q8 h$ VVs;TIu|c)G~&`Ț{nW\f}ȾUVU]VW8T\8Ff`b3k/Ɗm"9eBu跏 %no˓_y*i V\euJ}:gK/=*kтuF>qԼJXk@>32k¾Y@HW#(Q2؛!ͨmD X l $L N5\.UFȢreS = IP{syLc^m'm:0gewS2E%iyg1N5}q:iv;RGWOU*{ 6%{; h4fPs D:bpnZg`&U?T㯨ɤʟW(}똝d nVX* v{ۊ+ز}]@6v>54p&hn!O J[Lu"0N:H9ىI!?}ӌ/a\NgORT9̊ }T AݘUrB sK5~yot-[ܐ6eK۾ΞK ̖2:4/;F;`&PpAަ j1I+jasi$/Gw.S7V^&pP KJk2ŵ'0 =N $vFj{ꞓ\UϽvZtnpv:p?q\1y[3(a{FhiQ"`k'Eʫ]uPZʦuEo66n㐋RG.qL=4̭cԋ EtFpELpvt0@W.mw4P֧Rw2rRfISp/̕8{f#h[6p8rEgRaB*5+s6ju 2XVeӄ*zR'*^)#%*,1nԯM7Bo­I:߫I[ג.]׶[\MZȳ%Gi.f3`*qK|~Z" 'Op?\vnNv̘DgX9$8p_¤QTb]Wy%ت]mB:- 3m8iǩ:Ic#NJ)8s=iK.uvG_`iL'Z}F4Ӯ ZݍWve .xer9r7PªJNODE&x싅m-1kMRia٪"; 0Ux  :W1&XƱfesKͼYx~ G$Uɹ$2ȗpd|rwCuJ_\x#[{{XoLRWS'|ѹX13RhyJ+8eҁ_ju:P:?Uww:H$;g=tS=YApr!ouve|mP+~J6e_ngB3 Mvl2(*!h#눭rA gJ3\_m]e/ɚTԮG+h> A.Fapr`mݜi_E!wMk œ1]Fe2 MrdpE&[2gY+o;6H^VoMl90dx-uZc`hYBV}[n8MKe٪ }|Tq!=u8&2x7:ÿ0YZ#Wʤ[ ?7/ԋ׀V۷JǗn#}4A`T~cD_sCA>`Qkw?B[bDzlJELؑگo/^=zx5m_}A衬6οG/_~бgN ˮ}\}qG^MёI#b[ģw e. as9w>vpDz˗ W T㰢sN솟4vM_쥮?hnm~22-f/^Ä%\9ۿf[l^gUڮLo$P*wDc4[ޏ%]5/g{+_3A0pU~_i׃LptE@GrҒH=OC;BϤx'0 { Ni?VB= y-|mM*q5%s. &<-R%!q/X~]JlAtb< ^;ֈVZp^{fxz}O gSKS_J]6-6"-͎؛8 6{oFmߊl{0!LVL3YɕcRlq;4St(G9e}8K}3ԣqL/Ia&9&_MW п'kFium3.auhyOȕ=jOd!X3E]q '3 #}(:;?}{xPA'8?~]? }8h?j!|ހ4{^'x=ŋ R"塻$1z`wj0Gҙ L`{&Joi8I0_'^ђb=^{I!aAB\,gI{܊s˟Sm[_1v@ 3X#b*G/?OL%9HyհX/E;D8?;Å}"22nQkB0lX^$G?X@r:CY1ݘ{e;2)f1ly;qwjS(L!v&q|8nZ{4sS!i]! e݂,"[]jQOWUE*ܷT8cvF!;}ى+\G_Q᲎L6dɸZɺp3 kK@fҍըUkA*5Oݲt>7HPٳU g3 ?);ݫV^4N >}5Mտ {ޠ?j] Gݟ& Y^̚Wx@TlZƼCk0BZnH>^+E765:씝o5\%%'G8*`nA{yĄoE/Uí#<6 _6zh#$c~ׇ,3^tV @Xm7uX( 6?Ɓqb7BXpࢅÜQ>hcnfye[,6  Ґ*4Ť)|~bp>\B&22@8ec\~4- N |_ԡܖgt 9v^aΠqtkL~H<:D4WAguOƂeNS $O Av]q%Dct.T3L_>1%$,Sul {-(pzEe!t y>\qͻ\&WPx 8R8t, =ok#*Ʋ,O/M]s2JikB1s'tPnv̦{pi,ŨA:@Pz;i^9m_+2]t{2{rJ2'KJl@QGfJҊG>` ]و! WIӈA>ݐoeo ܡP% rzcq]iavm=T)/wX#K OXV-a!(R*\$o%VʲQ_%j?7'W'u^uG~L,p&'ktDȓ]_VgbRbH2 jgcU ys_oidhx|M "}F)gBd|#c;V:i k[qB֒\)d喟eUϿN<(ģA+ஷ@K'pǻW wj[p͹Ϛ*;5ĿQ>r;"Fk gvՓħ #LnlAxt)s)cc*}ks5JEHJ.N]rД@lg7wc_6(C/fC`2,-mNӗ캺 ?Zƨ?>]<^y<.?Y,c1?foE.YټNCvQ?d; (^==Vk8@ ;˝T+t(k`z全`/1,H=ޫ#^4;1Ǖ'*bST˥L` R_fV|u4wNvj.V=agcڛt> gǻK1ߠ""\ |q`YhQFQ(& 6J)B?#Tr I6H38[J'̉وj^JyjpR [;vjB6,rc'8ϪR6 f7rwxQ9h1 mp|@cS*9g,RR)0ievYovHG+l7u,X>nt[KO׻Dm#/m#[PXUswQ&gѧ5w$ǚm~Ac4 3dc&Djjv W O5eyWϦ\ ØzDuOLIF]@Sd;Aڦ&tT F (}O}^"NfCG`omdiԜ&e'bp0gT(HUzhM 8#@RbpoOLd!FM54gZoh-Y)ҲzW2 Z'ۢy9I5>C 8v8Ρ;-U<;6v߄'!;NG&rێ-iv3. 1uumN"Z݈Q;&mRU 2 ;n{ JU\xxz_ į߭3yV8NP[kte%hAА:rxBR:h X#1Yi6P8+׌KYң,Ȧ%z&)nX?L9P&l&ި kd;0ji $Cqdnfu5N9{iO{<74M2od^m&,gg^ȵuF*]Ԃ? zp/^[w_ɯ΄tM]- mgU}A8Has;$\Vͻd Zh3Bф&mv;.Kd  s6SN n?3$xYɔaEK,p[u t%c1&}p#wey>2ʂ>TwX#EJt,u2 ѯkOx#hwTPIV*U0.,%SWZARʔlbu) PpEf5 [’jPעuk[?ɡPVX͙@ڕȁ YA{W"_Qn I+׽wi:fAˊ(Dj)>xFe|ԽITn/u.W{;g3{=gܽS'x^noݓ8F݂yi;1M}߳3^UM?uބӷ^lt6T4C^>s {4V[,\vQuxv<^_wc2o'%bڇʗ]W T{yRޛ=̊7lK7 ӞVL"Tu=p sF彈*Z(Z72b>@e>/mڽ QQ&JF$'{M'~9z}dc7⋤ck7uBw` nO^]╢ִX0­ 2q|f$m]ڭGASn61d;ޞ@D-ZB` Sn3\0pn;+")^$}Y}#J%-=)d1rp1n W򕶾rKDeC5З(π:6xNKtT413W Fi2@ Jɾ@ALFʰ᯿sV+ ߮|^McpAo|.z{]0k.j刮VQHݣD~[|L$t1@yCCj2g!GE)M8m 3 .~].z~4+6U&T P:e ~pt2CO1 )t·8 P1jZEe~0Hmz o$[*s{#_zoct^?}??G33g3ߙw;~7gq)[G8`!;2R6x#Gk~w;'1,3[h-kIK04%ٌT [-An5 :ElDP1JHvaY\sAm(i<²T:] +%%#.&75pjw;17u)}Fc uwUܸG)z/R=敎?|VQXӟis=+\Z([ zDF ` ,gZƿ UweAL/i*4IY(RvӔ* '#d |)w@1VB W Cķ j3 hQ&i =}ߘ/o[ ܀:mg4T)ۼNyI7>Q0\y8ׇ\Hs*wZ*XyF+5lc=]싶)0Ōjt 'BMnH;ݜL:="mQ q L}@{Rk/j[TI^=u􈇍[i@S<ʙ CȬ+dnX,/$MGZ["r ,(ٽ5Noiy/w/:T1*9ޙL&URDoŽb[TIJ-5V VRWQ ym$vk9A4IqsrsS63cJ'gFa/x{[ώ{40~GhM c߷ڣӌ{.yV|ªՑ'BAE ʧrOZ.ݥsϞfhe/yJNq]4Jz΄q7}5\D dއ jYʟ,@wPq+WaPޡ,"y锕sIDT o$JEA 41ӛe쟻hRzkQHA>f6TJ&MV'Z;ۚ@iǫU`~k?3 SHA}²TX,Vy;MEoqmH0'5 k0 Tf9 ŤSw>qZyiK++MLWcm8h EJG uDlWB҂o@#oVWVCɂݒcڋfP[Pp0*=7 7Tu =%ᐶʖ59`l3D,Rؙ_F57샬#'<,W ReIKeDw;!MbO@?HInxXQVrJ'yoaՑʠu̪LXmnG+U^\qC3?6u;[mvZIW%+9)Yaji >3F"'lE;CCda;M/G Of p`- Q@:K T ĚRf%2-V=ee5W mm!_T;pAx!3 @`"Sxt4H8uy{kM:،5G9)A"ЗϜȠԕ>`mq{|&[l7P ?͹fdr7LG]|$ThEʾ|ncjWs%NPh5|᱿VQP4x=Jv>4{OVQ<%ETl`~2G̑{wҖ1< 7;؅cab"͹·hn.fOgӂgOL[nOW\I ֶȱ+nD^7%1"/Fg• &A !H%|߸AdTwvAGubW(qt vԨꢗ!wSDFsY(hFAߟ8|nRf rBD­R&=ޙE&+./[T g*M>W&9]\U~:yt֒"2)ެ}艐smb,|U`5>~zLo:ph\N$AbYYj 닖7Xم6yy Fĺu2fd`4'S+Ԛ sѓDeiw2)-[-V_P1Z\@FIޣ.=Q@8#EN((A{R`j>y( (#(,eihbˆI:WQ ts}ȁڇ:LB ʵB7:>Fu-:޴>ǝ(i}N}F-z^b^=;ɀp"^z㋛SeB ?oĮNƶ8Y]ѽ\'f ؠ*&=BU"s=p3}r staA5JQ3@cQUm \7<50RF#J{VśҸuz,seܧ@Us:,Ts?|79]UOOq2+dQ PG26j ѻV+5^ܷ1Q(]]{,,{GBgY,w;E ~M.~svH TkHC2!y %HL* O۝'lr ఽ]Y\Mjn*pNJ[~SZJ4Wǹs*/BNؗ_-"Ω5qj00qN=wHSa.ZɈsTQyamDpf[ lT*${\ׁ=/V%4xk8x}vK_w΄JOXsƒTz;y5A x7#0-~v.8\M| ZUK;8}sO_y3!)V]r=sPZ}pX%A!xI ,8Ʌ;+8FEYڌcT X1_7g#6ZW|$" M;HǦdg 6JMPaEq49*&(4&@LDZC}WKܣ-"7gS^וЉ٫C~3)T'&)ɧڊnğ:$~\Hr}o=5݆% jxʑwڻՊ?ܨ#%IU= (4>:Fɸ_ԯ/R Pb(N1i $"ouQ\Lha?${^pU`qEٸ2(h5a3 u˞mѧRu!`( YgIi dSPU*晠,m̶ĖSS^| Ef2eT]ug!+ 6QnC}Ѵsa>uycLfl~U.Z ժBcQb&LpׂIDJ>0VhiPFlB/;Rpb" |8dߖ\les>=& .fsAߙJS.|T^L0Ex <3tm!Ú/ їC$i3'8hȖ (IwLaSE! FǏqа+˃W:Df;ڿD]5eI%} k#sq\Ř(l2-A @-eԔ>HxD{[&^]9މ,̄<'+48ت#?g5I9M(x @Ehuxҝ5,)tu<YBs0\-4Ix+kՒgXV\ؕ@kA_^e|^%=2̉%/PuoxMϦhcUD?rQV1&!Jc?Q-l*@8G+MAb%l:bSN1H{ [ r3n2tvsHUROfڮeCs:]?cd|r`a*0 7}и宆(,pm|baD_lht3$7]t,?&H\5n٨9&I`IcBv|=Ļo/ ¼x#`LEA냈a4W'T z#"SBtD,dXR"TYѴZZEAy])B|K1wtb:qP׃^C  ,L]T{]XvFc<)D 7aF!CvUM* Cw|cSkQO-qE'33@\,0!8,73՗dBt[U(.: 2t+gҨ1Y(7"~\lH:Aς|8Q~ !H Z\Պ*p2;3? hhS / CF6Ρja.YRS'MV'5V=+p:_suJ6Mg$)^:Q} M_l`~1 `fBY|V=x'tF3A sRܳ'6z(sdǮ;Zsц"9*"IxY+N+n*U]G6oM89Z}KGՖ,KE5K^L썫//Oi)nVSvki[b>q.a#9T!P/ncGWDQDajGɊ"Y啾׭\*O2GsPȴ-Q)Ȗ`W\-Sv Sit^O,^p.4\-Qc nƢ zcm*|PtqOQ-(XY]yxu}=~ZCC.h>FQ'iuk='EP:X!ěѩE=28%VoK< .O3r ?T)c. VY>yaaӬ͔FCpu.PkF[?Tj$u|g>?:;98@>z^f2CХX/iEK;p_GK !E騡}i?Zzyq?s(Х thP{&!6>ouF~,.èЫ5:glO?x_GOe_Ϳ0˟յgO'{<|</Z!H-쒋J-X9֨{p}{xov~Y-#wwz.o\C 7kݸswÅsn==Oޓ{r{x/NnV(h XJrlt䜮A?TmVea?Ô$^uU.⽳d-(LIuv_,ӳ?C~c껳7utNS}^\FMrֶތ8DԊrO%k3Jo[\\?`]?/u3}zIާe