#!/usr/bin/env bash # # Copyright (C) 2011-2019 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=f863c80b4cb47a5f33d4d850c0c58105 # 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 y`\;S㸒kWhfQ0&$|\޽rG/q;[-;aR3-ZݭVI\|OOg >{}v[Oۻ{oڷvĶLg'nOGV/\C_$h| @o4 #7i5'F1x̣;>jTǀ892w:b3pyZ=qq # ‘?=܈?I͢Cr&dkӑb@#[/ph3 "Z*.)B4L|!l^b/OLM\?Qc !0&E0:q-0ĂЛ|j6a=BX&A+G0L qĂ2J,cqr*!3P/B Ec `[6{Ó?}f|Nz/|{9Yۆp`\{n05u5_?0m̺w,@2:e`pt k^&^zybuvq4Y9ZNs~62׶Vi]P22y4O]s 謲ltLXm[5DH7[ox/??\B6P @k| QshN؉@41 #i.4& m=s F!d>@8`p-EȞ4O1H?XG̰1^=ЈS$Vi<@Fl&q>x 0:HDcx B1&>nDa%͹ -j\$g}$n+ 9bfD2yF![ dl0 #^ tQmŶvoo'C0n2gux$?/"ȑK$ ^ M&,͓3eĐϕ%H%fei^ a4Ϙˤ̀Erf2I3 zv\Ώ̀efҝ'΀e2g\HŶhaE2?yfэڸj̣kΚ_.nZ&6(44nӆ(n"0c lVvw7՟U5ЍY{76k$A%O߀xPO|pšսBڠN6t͎j6l{bEqf_O a哘iuƚ4tn^/OܫR.&qEq}Up8`&vh s"GuapƈNzC r;ט]ALNa%  QJYg6C" 8PLCx}0i"8岵RhadBWXf(4^EE`W\w<AxlV#$D8ƴFu{hX3= " X pz!Aí'!,, ^TRM6ԪV( YjT+:@2p CJ|.Un g1{u +8^òD&B+!Dȑ ́хّ@K8h_aߩ Tcɵ?r+[7P5)[F] ur݀wNVF4B؍c1Hxɷe-a.0_UQ_āw#GQR@ޭg:EqRཆ^n#>vpt;ƣX#aA&'hR!BGL#Hrj6IRRo ]&'fOT"quf+jN?ߝb~VM$d%SMt+ƐkK* 'bEKe P} yTMuUlߤ#ZLϲpF<\BȘP;U'u ǰ>;fqKov;KkZ:v!*/)Ǵ3F2RD«ᬋ1 e;`2ԛR6B@5G9~+f3y˸KNbEpan4%KBw/0;l)uڽOtmܚ&nLM>^83y 5 L$RI+h`S̽P6e( AMfj092kD ͙%<^&=c[i.c?n DO͛nS! ِdd/Z0Ӎ35G)GmC"AD9XAS4F!Pf!$tG*Qf?X~0\+i0r)f|)F˪v ~ 'w`PL fC֞r9RKm5 jat>!Mޱ;iMBKnrF VEA颊5ws:M ,ݓk"z)Pz)euo5'R1K YXd{v",&yqWK']X,/f߫˲RcL0aecx5\%,yw9DuC;8v߸={1|}GyPNb YJ7sH2=4! RMR&Lm79!Cwj7J2&c~= /Rj)`)ɵLiLFlScrn2;w⏰x.IrX$d$bR&-Z g[\ JuPèlMq X6x07Wmg`Ɐv./)bDn)ҀG9ȏwaމ5O}O3;{J32掳Vp: _KE0!Mal\M8g;ԃ,Nź8 (ו? 7s1^QܠrCcNm ?2p~HG =8\G[ uWh]*{ˑjň9wz[Eܡz$[}c|ǶzBM<74A5䀇 #i )R \^yD<U2,H"LAx-rج *#wNR\'(Ĺ$_pb|Xl!a%G㘲h=B!WTO8%i )cF'bxdz& Cgu st n9%#85_NU՛۳P-#VK9frH|Τ;?\h #2GKiCC4bU<VE/`o~LݳMQLKj򄴧t VAi}i=_Hjb\ZyQe9՟z@P,k Be˲ϓwZ-Y;Q⡒hyJzp|NQL,Ux1ȹ@[;`  ;:# x?Uk5)dN.>^8ݞ GWTP g%F9Tvx+hyB:1"ab&[zzg"lUȿCm'bJFi+ielMtLf @K(r9~HZw9eid|@&]2|K%L%a|I{.N53)$Xî6af:ŶPCYXhO#r{5O  Sp3ohK@zPW]Y50C)W^+bGHn[3ң N:R=E%/_19qEВ RD _ډ0ypJTiib ckv}`,y-UraiPB|قXyH[[uvZx[H8\$8GC L%TEr"wrnAu%/|"Ґ*W͓3\uЭxVsiZY&QHs ^GU֩t,tI{"Qj8P;ɰ9_Ô2U^v49` k?XWԵ+1RT-;;[JL ÔU{Q;HQG rFs5]C~Ft z)v¿U|kWuRASS]v L"h`.|LkU l_HxN+²ʑb>' M5:wbh<:6w2 Dw8.ԴᯎrPComkܯүh#0  άWH h-j$߾Rn ;V`N:u\*H-uRKQȸzLڀr$ ˮ.0́Tr4ٶ}沬Յ˳dk}F[b#JoSecd0ǂPkĪSCg#0s~oXhZwR~+ \Awj{dHvK,r􅀬($ـ;P IH &Ǯ47C[ 'Ҽ7$4p2~`G@Sʆ)؋xrYK &8J]bs̼kaeq_͆39= ovg{.fsGHz2(Zn9od-a|a+$v‘{9n찂@vC0N’kOS;FZ*ap2ޗBxb*S\0e:p8pzi9fc 4d\HKg*;lu?MF[rRN KKdt=1ow"Ӧ'q,f]eUV%3qMIܿrB',&jv#N@nCb.s,OÁ.J ?c\C{0l;c&)|=8&k>_2VYy6< `%^0 3FX5;i z3b$ *),is4|[gy DI[")%NkL;,u f9_\Rs*Xձ:ÝI5 T]av@Kyj K % r>ع$[!tjAY&65Bcqzr}xPAF9=z[)%C4 Fs Xo~gx&c 5Mc2PCTa}|DwhHchOFġq Iz<{FGsA:3BKfqPGgN _*.;Y h;{ L {o}BEpAV'[fDyU܍asލJ.NNƑ!Elx4V20no^ k~IhY(&.i:62;7SX~!}m?3* KQmQby4ߒUSxגּe'TuEZ2Y%ak&iN,̆ۑlX\KZMvm9сfbo#b$("4ޜ5Jikp/V`!SBmb’ԛ8x:tn #&?'B4^a}ެ(| ڝw#=XLl%^5=+ܙK%m{Gi/&BZl?95ACmΗh[JN;3+MK2*|7Ukh"D'lzACFVG"L 2;'̓I޹FD1b;x*D5}&TljƝx?[Ț'{dU#»jO - m}Nw'a\W+hA>@lƔ'@ 1PPr=dXHIȳ^[*E>qz l`9|vS^䧬CzFxO'Hg!/ƽ!҉8$IGfBH%+Rқ64pp,_Um!h7qFFզ"Vs%*ЂsS'`)`{*BKO0n^g,P LCgINZ' g, qq̤%lv1 k3mv׷$Rz=Lo ꐸ8 ){[O<% $ЪqOLT,^TbYmf6#A`d;ի3,ݫ qSY03kL }݉<^7&!=?=r2s+}Khj8 4&sK{$Q7Gy\告R@ )M}[":~62ILjo ݠgE2^pTnޚ꘡΄r- v+-(g/e ɸ$#ԗ$iե\% LgQ+BkfVˑT28Aَi{MfD,1fJXC7 w7kQ5M] V{ZW]y0+zV6t3 :6Np¶uo,AmnPeM@$%=u'>}ˮYdLix]_d\-QK4(Aل[@- 3EYnA$\r`oBtu^Pa7Q2gh6,Жh`l>(+-cei Gr3ѷCfv\{1j7iHv20Dqwp c|"%m '-*"%YB#kn DEV46ݸV~V7Hgg]P\7[+I[y9+rtFK" ZSJN ŋun&a;Mg/ٯjVaZ†)<1lUN@§x;ѪuEOI^CPhɷtת߾i\'ٿGGo(f*4Vۇ' ج)TkAX-\ҦEQvh.@pegg_lm;hM ҳL+m4\t+NoPNx`jxdgb"nO.K3g ][2w',ѐWQRڦD#S7CTWj$w֝*B2{pL4]DB7N6^\r ƶHtJ8<澏7 Z&# :oga˦]tBLzRZ; I;NѭA ݣ8Q=?NJTp -#B"BTHQF G}}~: >fgXbnkF>KH&PL]r0 bz-K+&+So|f?h>d.x~hmKd)njm s\jZSe 6I_$1:̩cE6:K1kN[?9J4GuGOfY{kCXMό m+ cѦ_aC^!ËfDIJ)N-ن.-*[MqAi"Ym{ E Oܥh]ȼ8ލxDx5e`"zeI>d0h\BԼ3y,ZP RW *nXu%#xN;hv/% [ZW#m'q`[Tw /wޙiT7`$|ur`(ƹE ^stml5[/n:Fd}aXېc溡o3 ?`;X9eO,#'{KlWr@=9zp&P aDV [3fcެP?a9D.:53k^+Is, H0e5ږus'|P7 >]eO\GdXzU$N-9_5;oZZ's7s7o3-b)85v|S>_UvފL|3ofI<(9b>oym 8p>٧ A)!ԜUT4s+bhn6Qr{(T;~4`dmHjc0(\Q|rzHOS(؝A鯀|+JY DeA"G![A~JW/($;8-)Ro_'$RNiA@R_7-OCm#x QH`~,.ƪfq-RZ׼ WWެ7wJ&VB _?7$q} Fbe$͢#>:zZx|vZ\C-RQ3ZP! Ͻkhuv"Mdrфf!*2v;^$iGf:kn,{ĢkR ]_:'I^H=55e{j Ql-D9Al %dt%Bwg p`}I60Y/ঊz-(ƖUZU(a+~4ni&K (ʳ'yId قuVA|-2L Ofh8btCS *\C;WÐNOF˹TB  ~gpn[+;^(8 IXϴ`u۰U6o)4>L88(o C`JeiNyxSdއLJqT< y@ 6IlY/R&@5:?-uq΀f#jDU2DVa#Kr͜͟ܟc3-jI}|ák];; tr` >&`` p0k+s+ʎL1i6SB[UX+Ы%]̨UU%ٳ;5~jׅQTNY*>.eTqp!G;Pv+l l| #d0*A8ZL~ Ǝnޡ']wn5hTCSUfhMFn^lqK,!BR!Mgyy fo4lhZ`;) /,D]@0h&hg[Qwb|Җ&VI'b)|O$L"lhR>2{'өq%i,vW q*p ާ ?r@k/cՌɓO51̢ Kx`ܿ1 q,BE)uNOx]IQTj  Y,0,.aUxk/GItka xЮO GMaM)c/֫" <T\hr9Fvowk\ǩSf2r$wvI.LEK[7k]]!R~jIc+ m)RbN WŊ"8l`inHp{tI-\NN,.fpMTL( WuŴ݋GaT[]  0VIǜ+;DR"2"ֺ ' |wdFZp>΢> {#FGI.0 4;5CF͋y dpBi"`hhQJ;E6ep-=ٲYwg_3S醺XѴZ:@v;zfߔ;Lr)'$jPNb1Ba~a!os@.ZۧMhAix.8;C8sHcE6X~DCԀH$QؤʰG|L 5ǭZPGΔ'ʋ ,7iڴs 4dӾ* ްk2strٲ-,+TeJ6Se-O!@ {"\Ua6aL C28Z9mto$[Bv @mΘ1'1F~>+k˹s7ͭ~s7ͭ~_2eZ㐤.(fQY+%P(IK"y LOԻښ|h,%jIs?T58l˨m"&k;;G1ѪQ)Jo%)MxKtzsu/4WAAۗFJMUJoNi!{XޮELr7ڍYI^ ٝY v/FPXGFr;ac/s}Z(T%D`kzsqZUoz!pfz::XxP ϭw{n x"m2HP(tv6Cnv +Jxe[jC}-l@}mCjhbR{נP]s^~|c;:nӣwLeMn _$ ޠ8~^[#Y=t$=ųwhrTgV[Gc?:Q '4jJ0F[cь=ؑGo` FF1N4RIp)ԣ.M|ryD5QkH1ՒšDPcEa8Y_+@[OA6R,j!NȘ( Qg|[ˆGbP}D$)9 l c&M*xd[ hq7XqGX_YN?r% krM@ 5& ##hG/ J~ރN=xpjsbm!Ilhc.7vN8H:(sen)Y7#:?1aw*U^0:Vղ%'L!#y:C>:pD- 4of_;e'FhS?%2; r2*g/Xz$[ HoX@&[lro$,7F\$*N9FXn3ix9]eEFXyR[;;8h+v} s DvcIw8V?*Ah^4']>s(Wc\2V} a 5[Hp 4n3%yM"E?=.G,"< 2$b(P-[X' ۹wj{ᇓ:GS.!SX a~Izpa u|B6AFE16ڋ2cL84ԼO5۝pLi6kL#nxu":' 0udpD^!Z~3w$ϱ0{7`5I݃~Ex Q^؈ϲ.[Pjp$NȟƓm#r";wc7%#2-IA_^e* llB%d>]sQVIޭӫ2#N "!sn%Hܘ#!3ٓBLy`tl01*nQoH xL},ء3LҜU]jؤK:[X#߈Ll5foFfr9i͢1Jn.R#LSVQ τD'= :0E2Kj0eֺ2rB* 0ļtL(Ŭ:a48-e*1mnG&jDkThaA{Bd@q}ÉT 'Fp/9'T5-S#h>=yND5(D:l%$T ,0P |p蒢Y)QчZIr:CQٶ\C._YxB`8EќYfe B~Ht(=q"`$M )՚b t$rʱ~k0'e%8::PKd5{ TK].sŽb-c ;9uJ%IXƷe5SH:M4N1 g(ND%˚>[rFq V6]kDK߭h +O22g0:#`Ō>Xd`wKb܏JP dkw4#sMR}##%$t#D"sp,M9l8h]esd>/A?R Ȝ5N/ 6Zf{٩Gy#LMi G})qb$}ezƱ e_^(9 貆OdǔAdǷύ(Zj~>k+j5M>~kP|I^k 1B}x"DOsx^7E/21_KR ,P}y{YvE^xR|;6!Qy|wNm\,#:GtX{ 6h6+Ar z@M`Hں)\p+[ls aˡ~(x,PP2qKN1=E`qWQZWUzXv+ f:7`=_?3WAJ+D 8*^%c}|)ϟVGG¦d^mG]~JQ>#aa/YsȚn1Re(A)ytW0-e:Rmzv6)2Wptͯqɵ bb0zemh['m̥9cƤOgYdZ`+%Fi~=.g]xB ̿0@%|Oѹ )Qq(XeJ( Ɖnu[>hd*` @dtQpz8GB s V0bkuH/@wI qhX_\U$HgO+uu41!e*CKҺ=|Lג,[|1q&ڻQX_,/q$Og@FN Ja$w#r!40al75޽try|ѩ>ۮ1"1eXI`7PxMyDk(ދI0E5 sC7D:B\5cxOg ]( v=Y.<1'X8hAR<}: P*P! tRhshPOpO9=gp LbHS,egJŊxx<12og0FY(+!iK<{K}1PKlK`*Iiqb A%~2>0,*~';Mj RKw16X㚈~I]T_Lj7qJB]^^zLwڗ;wi#a ZW)^/ axޝEzXx^HVC}oVz<؁sdR1:?FN 6uEf-pVs¾?qX1 = [ӝ n@8#کM?awx! rovhD`T|3y@`+@F3.qQ Y1SY),EȞxdtPtk6+miE%Q'Ŗ!pޯ_ઢ7*FsP4 ء@l6r[y v^ʘoD5YJmmgGU^Mn1K8m9}FZMщN;l=D9>}Homz%ʈ]w̸ޕ^)2vdk\ X_ džbspAF1 (ҏY%E.B+k'%H=0n^`_2ѵ@L(ǣM 駯TwW 7$xT|v2 fo~$V˕ϛ$icEsߣkn,'+ܭ5fёS#*+HV/'kz%5Օ)p?IY]a+N e,ۻu]Rw?鑫O5Z~<6 j$" >B1K& $0 JLEOTXU K0Gpui ϩ;ʋ%FSXq/@!õF)i 5l3vt>fk63V5k٘,YkaZPrFwZŢY7w$"fj]E*Ke@ak(qul#.<IyĢʇvat[{1=*B)7XAӪ÷ze}cGǵSzk6_މٶ4;>A*1ZXo^-wzI 7gO2qj4iH||B~i_k/soS_׿Wn[}V_Wn[}X}gE?nM4LQSꭟ!ޤ" qrh$$Ia<#'<:2k.dRQ!c\ u+aR< Le,#CJUEWf\q7mO@ZVwgs!R%P!0ejM џK1+-A6=UC<>_.`\NM0wYP Va},'۩EPeJ+/Dsr3U3Ɠ&:e < Ր%Q eBd>d;Aj&Bmr$Ñz=1'4ױI2+*0,>\nw|8nˬqE|-{5]xHc0p#=y=S&o`؎Lf"OJjPu%^vV~Q9*%6?nPt(%*x(d7uP]w7eDBLθfd'5/ip*oZ{ tHCxKm<H&nGT@>N'0A+ ~ ~5gXQE}g{dr)Gyz3Cf֚g+B:GC*.I 6$pQ!2GaԊm3 'B#c|B"X$sb tXp3RG3gmkTSݺtzN~љnd"%ElB(eI)-v Sd[y18WzB&WgMuk|M0$dP@y0qsՑJ݀cctDTΈ+IS/:Qͯ;=VQ6v X,q?_e\QHk7HD$gvbb^,@I.@O Z_͍7pBg% Um~,+z˒cm'|L@hS1E|m}oS/@%-rK xDKS.VhETZ)0ExY>Zw| @P}x}HTn 1J_rB&L ڟCzpWNʂhf߭.mlh)GorrT4{k=p~N0+kEVJzEDkSy0fKx[z|oɫqԍ8O<}Տ)3e OW+ɮVD#$_Ymd6Vm{ѹ?V:<77xR i|7p}МZrkrV t#NΛ# C' ` =q-c7\sh cbc׿PX 2v"& ѥ*J|K"3ל1bEa&ȸRS3yaՅQR.߉0O.bP8#ߏjjlz/M!20džV':㫤ݩ|UM:ل_z_78 vco)5ӂ= 9{T }b$0˲Sg,~R, Om3$ܶ1(l[&W/HHln1 m밒i8U7*{CA?-Cb:AvxtNG OpG3͏WS.\擶CފS/i.˵$=҃;zʁG"o?޳jAju* EifLB=݁^&85WGiH=2~DO,MyoPU|Z|6Y7TѺ놠T4VTxaT;#:pS/ Z:"c8<} dq>y/nxH Oɶ飘6<}$ˆc[X,b}|Šn}WjwF[+I7]}(J6qq$vOKpdvΩbOK¾yX`h()^jG7KIqfeun`)HXśAtsgLj9? /}O$jjLH?{먈,E寷Ce Rq9w9Y ~q?sKѨu9r+aae{1.Nr=H=FԹ}d9 \‘,JͣJԺׯťW {c hBes| `j1_6q@"]x)חOoGl"%qe#G60ڭ+p7S PS 聀 xhl, gИݰ/öQu(,MZzU?-r/r/r/?_?Wc9)xo2 FtKBm[gC*ο@SA]jaG 8ms+fΖ_4׆wD*uړ4qأw,1'SNR{FG˞2WW/ n۪DX3.1`2RL- \