#!/usr/bin/env bash # # Copyright (C) 2011-2018 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=3b23d639a118c77ebc0c2501e73ab325 # 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 O)[5u֖  hseψئ<@" EGiH :ЊhƮ@& ![-9C4񼌽$Q01׭u+  >0cJ;}8㒅S^,y0 ̄,F#r[_P,cF@ a^HȄ!C mhZ8>%\X`& `B7LhoI 42jh^674RV28W#p4x/w.9 GťJ.4RH߅־:`cYWH#IQ`DaOt]Q&*W &$sr%:p>{x.}|0I8c+36c a[|c+)*HY0u_|/9ZQK/\t*i:,7 f+ /dcQ0D0c.jLjw@ pԑd^G\CceJvdTJ8\ jpKIx,o-LWQFtثm>֙u,nHcFdiӾwb 6LD-WIq-"-M*X4OtLrspL5pD|1{tg:clND̼C*I䛗Dd`Md2N<@uYXz| 0,<8F@qKG&\ˀlar6~Bn|pu`.aA/t>OI1 m0Dt oF)%ҌI@)n{6廲/κ2-O fJXevR,m{ڑl0B}x$,r.%k!?WPx9?U;jZkw2G%TV[b v07E񡬜EikÑ)򿥽I=}ICZ£!_τHKW5@HDɀ³ U[yɟ:R/ Wj*k}/)`羅Vi)uN, q:?Rb:8H uҨoip[AF+PU0aq<+pߨcN=:h~rxfl 'ޜ3U=;U=1U=jp8B,FG8,oPΙ!E &Ut.CZ?Dyv."m0# L~{r \R{I*T8 ?%CIZ LR}\BCk>n.4nh S +"/qɍX\bRn Mv-iVEЍZ+XԉbJIn6+Kd7n`f{(LD>}DR9ifQL1BkzXxcGQ =dƈ4 BSS6NHRZH2t+&m =I`v+ܬ1k VHuo#SQqxu`YglڗSFVOGܣ6 Y^n9G4kQ[j6y):jk}p37c^/31}̴D)VqP1$ޠ-V5G˯3ꋱvۋ-zs{ oG9/.mE:&26 De`PI^` pi?(M!DsrRσu˸>?~r{:{4CyE) >40L 1yo~*cOk {ރE37ŰqT&@rPO'_}#7HejݯO}W3ɏ/k>t>}.> 12K-g lр[k2iLJA+F/s [ROj® 2ؕ W(%?"D›?KHPX==K} ͤd.BkNKyo];ɷ/Է.s>v:x\,U-+'=Fr6TJb<ZQFcW+~Ϯ?Ϯ??}X!QܺƜ%,aukH4産R嗼RI@PNy_}>B2I=?AWk:D޾!Q_fQxT$*eHaE3\ ٞ~TƺZ3/<+$l'v UYyDfFF 2yVdYȀba& ?l'Q&ÛQr& _ͺ0߳ڐ9V7^@{Az!e&^X/f(ͮHڍ`G1gtH_0rk$xCJ:;~_w>6Om˾9(֯[((K%9BU$vх$d+u.">redd*CnmY/%8>^XDw(DRn&AQz}HGQEUC 3`aQ˔wf:!!|΁7p`O o+H~%vG[0a} w3YHBdl:e=-Fm7,}gM5vX҄#T4rZ~KXNq4nbEH\GL`hƂjlҘuU(N8e(6&V2G+£(Dp1A *oEYr@eEUA? 6D Q'b)T*c0GI JNiҧ>nNn#ЌR2`{Wlu1z!7T}tU㓣:"V5 O9<8ޕW8A͘C뻪ov6S q@O- ^$fb `1 #*״^ ~j4Tӈߩ|;xR  0$%-]E|Q- 帮Ҳd㴢YG-`;GhgO={^T{4A\' d>J.R",-jд ~ \ah5V'Q[D#L(l2/A,N5\ 26%S&mc;2,dREk/cƒV+ow;R!5ql}}Ћ8e}tZ˙w_jĸkn7DjcN  "Uɻ`= B3k-%gMDg\DFw"ᣊYH}D4UK^TGj12<׋s}gkj^:D:V Ak`rUywvShGA`-(ܠb;*U0;go5pܥꝆ9_Ei[FL:5#LB`m9i"q=%uz:Smy-`L2a(Z$vr*ڝNgy>,=nJsǻVs@fCrS:\i{^tFѶjxifrN+,eٸ˲8u|N$ཞ^99[?l {sXT齐Dpї[k3״}M;KINôc r"h_\˿Jr1-Kqhe&. TѥN^.qAnU(U\UFn6H]8EJą$I.uJ][_6'O+ZeqZUn%pOJ?\KM-63پ"o`V.\YXX iQLBX'!F dt7&?57K8~qDϢZ`Ǐ".5c*v%e5M ] h&̳ԉ>= K5ϧs|vU/fsNg)A>¾YDHW#(Q2!̨m@ X lLKKΎ5\.#UF7Ȣrq2$PG =|&d)w_;7)ٛQxl9;gԓ>N5}Sq:t;RGW*=zXG< hbPspB:boZg`&U?T/|}R;c_bd'cBUo8|:lʲ­^ƀ lk_PhO ɡ2[jBV.9Sh`(̞jyN "+Qz6`!yy6rD4c h.mٓT"U!ۡtC_!U-Fac7fdx\¼)̒!p_aY<ݪw7MoR.fꭳg\e:y2$e.Nc- \oD|7FLR=kb\Zl% *ѧ"mf5W \&„ҚLq H $vUFj{\UσvZnMmvF:O+8E{xh [9z \ii:%i'#WDzvvB]q2k3}A`ͩY`9-9ODlZQ&8Mr'u~tR2BeC; ۍ?SMz pB{nWz-umZ!HQ{դWrb6gۻg{{É(\}kۃS>~{r*3&љgN(^Z0{%zdix{Kly`a:cR%S/ 7e5b)a[K}K%Z~S,vrD6*Leβ Vnٷl:Zߚ?rJaʟyI[leAƷgTeYnYw^ 7.32|~бs Pe>MG?#/m-NgF2Jф9uk<ֻYsh8RKaE]dqX!8_&LxzY]{o䊦/RW [NPPR\? kpw3aYTKҜ_-W^6/Í3*mW\`7h(yۇpB ~1H;RDBz/{+_3A0pU~_i׃LptE@?rҒ44!L׺|Rép欄FC*[s0qϕKSxCA /" ⻞o=X pi;2xT퇭慄hk_.Pq:fm{տ@. ۽uQӓ;ڲִj\S2`겜 ˀ,l"Ҙ+=Y`0܂5ܥ M&൳Ylh5O6"o܌Ⱦ{l~i*4Y&<F6 #N@<{3F&bͨ[ & "Qʕi&K4rLXʒ-nG}Et(g/g O}z:9%&;)$'KIja{є7Crdh".Mqƥ<,;Ѐ3RgBZ,k!6ɵ11ca$ogw.|*H='dZ`ZQ7 ̞a Cn2m$x=n77B X 9tB!S5휾һFڧ>42N;\EBf/׽a_h7|枣Cwj=lj%isŠw˟Wm[_1v@ 3XcG!+ EU^0~5gJrHa;M^vZpqpd  px ioxkdh°9Gd|[<3<[ꞎBv%:b4Pr /;a"2/H(᱀t :b1Tv(dScw ԦPHCM4GK֥q ݴhy BTR;xB)˺-YtEզ4x5NE*ܷT8cvF!;}ى+\G_Q᲎L6dɸZɺp3 kK@fҍըUk*5`Oݲt%}k?qu}-~f3 ?g_Jtu+vnZ]!k'ѳٗ_=k;>Apn|L$ϯ_Q{-a/9p@Dk9gƇV#hwo^Si "i8(pU2E FYA:k/-psaA42#^3/j2;|rftK1pFsvfŏNPSiS|Bp(l.HC o}Bj:@| ?ZMddGo<9޻the44=T Ld; ,|Mgz6Pǟ& ,I)dYfFm$~1KE ǏO v[t-_^Qhap&g$ke>ԍx#ˁ[J tln!m剨U׵=3u@rU! !nC?r.G[{^!T, ZbXF-Rb$i,tI~L]fTh+KKb,be/Qx>!ۦ"=9R,G*H8N㞂`wI/ -m#~-7Hj,G*,"%CAPyNˈ 薀ؼ߰vj8L['82'C~T'3b-?PH35AVR$L[s 8/gGragRm<C\.w@y*>]w;:ٽ3ZXx\g,P`:2sVV<Sn(%NژMd 馄VF] Q%7wW5mx~*o0N p}@]| Ų>{tdy 19* AaV҈U(}k, T= *)PkA9:Oܰn8czd 4.x8U'^c'd5ܦȨƷ?ؔD GaP[>]ț3n|Q1M @P:7 bYȏX):oōK_K*ksxenw~:GUe> :\QH8;c͕e6YOu_bgh`ցS`/GJTo'\H2>^{2!%! kQ.FLd&3ok 5f<|mP)BD-]-G2L։ U]EtT7˒CbȆ!9?勮E:HUH>p?!@k(`֬v+LYK[9pMO/xw@N62bhgyYsâISS-`u t*t(rȹL<y {/Gt{O{ri7ڜicZ!XCw#RѴ&pfW=I|`>VIDMR:Ǚ2䬲W+Y=W3J^dl҅*P |rPoy7*[ a2 ; c6&!R}оf]^c?te,[?fY,c1?jg`cDf& emH8"L.rs36[{m(6=;8Q]93oj[˒[ 4:͒UDy86ipYHALFHpHylA݂$UzbFTŀP:xW됺ؚرKUkD68gyVꖞs`#w7HIP'OD ;Fq:raSyJ*ͨ._>nXf{wھQ}S7/ ͢CjN.o}K62: %5@=L!5we1 y6}ZsGr,V4T_+oz*;^vlYY&`pLs]˚WxڪymeZj0©G4YMleUO՞[nLӰ9 |mT mJ`^mp^LK}bݷ'io1%`vxE!6:~MhN 4) <K9 F]:HFcmvKw8DLP5Fy| Vf E&3aNP5oa?٠J-Gk2vh-L qM(UhOnCtI^F%ZdAioaYt܋vXUP"z/IKP oU-pq*Ũo\]+t(w &6^БڐbtbbAfBy,^R) vs(3PSjUK>n?Uc/Je4S/Ӝ.DՀ)l,LjB_d❴%ZY7'CN/!V۞dӮ.=ʒ݌lZaR蚕 IC$(efz FSs8G \nkQx^9gț*A$FVo0arvK\_gpF-C!/]מb- UqyjbL`d7v`G$!_Xr;SMl\KV R!O&\4ipuY $Kt] /=vRp!ҹ' UN E(Z_gl&U\S盬WtC뗥zu/CdxV* PcIݕGYnd@_~1HM.RUOa\XJWrV4ŕ)P1S\^&Vajb5G@,%߉ՠE r8>8kwC1V]?:y3+./wv-O{OEVXIV{ ûQ.NFxŦ?:?ٛxw|6N4fE=sz4R[]+Nv_5T,_XxV3u(Wy/q몋Z_~ڈ/0rIu{UӵIVUz qØo*ϞTE3%Hx]]:Grzjr$;Y+ӝ''iA_&w_3_V݁)X/7֍}!.~?]{n]J"Vr^!:+>V8~UgT:0ls!P}%th5a(7E/b4*u2+}qV&Up@yNpI; (>?>>>ﻰA&&`x{=8>NXޠAxX'~ڤV.uv{տ]]4M. H9|͞ا&w A*[E/EV*.; qzԸ(JrriAѵzѨA{+w+гV KP*B::a8π ; w.#[}͡d *5:0dt#b UFCĬBT?++++f3xNJt|43*Fi2@J遧TALFʰ᯿sVVv@]OucQA#h|.z{]0k.j1*VQHI~[|L$1'yCB2g!G)M8m 4 1Z/~].~ +J5U&T U:eY~pt2Co* )tT8 1jZEe~0Hmzo$[*svO|܇.} <Wgg;g3ߙw;f R?ϟ,=Fpdf m.GFOroOcX簷Ш]Z\hJ2I&eJE[,Vلjx-u-@cMØ3a(GQֹe5Vq18u"VKkKb菨}MAmoƣ;k8ۋn\_1Mۤ5=D^ uĨĸe?J OHz6 P L)訮(_Rj,kRnR%ԋd,q0FwG C. vRpPo 14*@-eIwA@C.O_7ۛV[%bޤw GMF*eR&Om>N ?A Ŋ!*ѪrR T/itR:V<_|$Iet8">nکԼԇUǮQ֩ߦHh[x~Mg@WsYoj{QsL>\=Pb F-t4dg 2r&{zنU`eҍ}.e;kN|%%i x:^0Y9HR Pj*FƻiWÑ_[q]wk~ُ0r ;JZ=9u8٬M?sЮC,U^;`1X=)xibfYI2 \(OEyq?=~6 ! dl]D{Tz|%ϜOXՙ=uePr֟`־/~wwǻY$ZKl\=3aj "7cFGT( PS-k_np{*.ze֗ ;ԀUr(S$/Ur*WoC2Ij Ԕ"Ziv>Ȑ\{q2RqAjY%&qz{sגMzZo3Jпv-wI~̆8CR\WY`U{Uy V~Z淺~-='剄X ),KbC[S~$Ǻ!V]Iu޾?;Oae!+ B90>z{j>]7܇:Sk;/2~Iy3ij >{Þ-JHZ (z-YJ݊y(|V;qL{q_Lj *?+9=z#&q꠮ÃSGdw:VCxRӭyc%ڧ(aY2Yaa=7`OMP%,NZ*#"&U% 1ީn$D; RkÊB-xV:;a TK7V-e4ZlyRUi%[74:}sQfGE)tu?ZPB祝}&_q֎ <{a$Hy!rV?044Id10rקWx6kT-X WDa͈j)^^⚖f F4&W2Sh,Lth)+j(7o ? K|Q_gH2]@B9Ab ofkhfOnoǹH >DmEkŃ.n@?h6XZC%3ނCɽ̛3 `bOAN%>띍Z~؟OMs .tFIL򆢸0WuVO4{-,-%t`p9:EgܻHYi̟hav?žs>  PmEv I1{#<; 6}hJdlmu{JjES1@p3j)q|568㹭 N e& &f(tFB&{ 㴛Z ?z FiY̤ _WLS":73ekg9G/3r Hs nv5cX'nՖZ6]U,2y]vθ 7}ق 5U8Sn2q窪#䩖IUf?WG8ܣu56cYpkxO"Xc]Tf ">9k>2Q up?BhcIK`Yj 볖WXم6yy Fĺu*fd`4'S+Ԛ sѓDeiw2)-[-V_P1ZI@fIޣ)=Q>@8#eNȹ^{R`jy( ( =(,eihb¨Fs:WQ t}}ڇ:LNB Bw0F^u-:޶>ǝ(}NF-z^';^=;ɀ"^zS>B[ ?oN.h8IayI'd0ߊؠ*QEQ9MI9i:ptưn{B~(JP3@5cQUJ!`#mxj`F곭<0zq4Y2&'Oiuw~}vqPK%rbECߨ t}pW>.|W蚁ܴq\8툳;"[P8׻FQzЊ90;m A&IaKaNn-q=8 t((_3+A;\"c=9a/[c_6ŠAo", fi9yA=w=Te:,V o\&C|:#AO,?~AwUL< ~&x'PL\1s2F-,,m)p6@1']5M+iO2xGP;'UwJw&װЩJEh~VKupq]N[i' "Jpg2b(U3Vpgg?P$D TZ6n8]]K݃s`]8>euL3fx|WDQЁ.Jh\XrWf[FH;  1uĥ 20&O{YA .nңzpEmjL ZDk4haQsLdƨX / %EwGpWc2 /OtFx!Ov=DQ騳!KA X ,Rɰ5k쳢i9Q9R.k!oH!8bUkU*,W"<ڜE^ Kh2e%h93bbt#L3Dl21O֮kɑa}P~qe,Eq('3@\,Z-!~8\5՗FUI8wGN^]!Aׄ;2t˘링-Y&7RQplҧHYβ䖒mX*Qa5;>+~/\Vp2Ӽk1? \ͻn+ CF͡ja R'P'MV'5V= l0|}Ve/Xx,l| y^CPdܙcG*aevt3X/ (^3I?/; cce=[[\g3\g^3ߙw;y{&r~i:xRdyq[pH=edxCI'#3^_n3A-ݏ҆QF#gt@-FPC}E5J %Ih(5|;DZY|*ɶ?%{Kǵ$2j$.Z!ŧ eYf=L #>=aNU5v":Gz}*c?E;m*Ι"2?UTo]^rJA\qSy5҅xk!;:dY2`/T|\2eoAxyT|JNqL$X;"HuN:v̦{i͡xqAt?Ϥ1' ; dHgcnj&nuC9([OWEtL(/?FMlzHεlvlh?^{LJ!-h7qBc B7:0Xj-:0'>;Ж{L E96S~ҏ%RԱ}6++k Q 9΀)mU׵`K-D㴓:(QTb" ٴ\{x@jWgؙvrDf*Û1YҖq,ݍz߿mVfJn\rj;Pk=W#i\FWތk!ֻ2I%5v+G^TM@Qjz߉(kSz\ *Hh*ZB/LAʬ ?t|]kDQo0-jNsW V4\m ?x5;~?j Ն_)Wgyhy<,_i}t oʏˏST!UD7)mc],jjT>=~ϧ nO)ܑ;=}y_<=x<=Rܝp<uz@N9:=r??qz0.N24Ҩ\>9;8 wfk@[|jYXw4e>)Ic׽j]˻g@x">ݾy SRW8wb^Ƙ:>-~EAҏ:t5 FkϗݮGt"YjEZxn'Uһ(z:D."XG|.xxӌt~*wwiYN?!e'FkJ$V<^*<syWѹrQԏ¾p+VFpm~!Prce/ٍߺ Bwt!2]?\YzY$l#b"zWȕd:'r)ܐD,G=\3hP$14WւrW#Rzl-)G5J@_ߺs{<3GbėNZ+voc`_YwL-~dItjme|}jZ`|]u (VGl-#6=gfQ~f?g3~f?g3~f?+?rb0