#!/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=5028b250212fc42b54af49cf09eacd56 # 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 wZƲϦ='c& [P#iqf!Mc,X0k@+զ0$؎o G,hy{I`Ru+  >0}J;}8㒅S,/{#\qɰ=˝I="h8P$uekWRDz/DlzI^/Ur&1VHꌑ{e  8j>?Nm_/ⓒt&# q(3e,'c\ ]&qE;rJz mHHJ=n lLzr,FXKkن]&Af6# F1ʂL/%hd( $`0#y%}'_Hs-+R &+ ` cΓF\fj%9iwH|ȁ0u.P(nSzk.}д!fZVDZgPPQGR2x;mN Jg$J-S]ISB5p1!tc11)Q JAgʂQ{U KD$Ar`Ҵ<6C(;@]ϝW?L򎏏6-&Gߓ*izѨ_k mc@b ʆhXi9S޺NmVia鸈2\hCeX:g8\1L#A 2'ڧuMi68g3-Ki2t0 fm`Y!+^7sџ jS5\M-C$Ѫ-*qkKg۷ r>$P==tH:>;o+EXT %3Tta޿D"I &ZuE(}y*Cvx^I08 0AнJOoZP`q tKA? {`,cP=w{KbUof!p$iBګ @΄ttxp%w@N7.VKe6L">>}$=,zCAi3S|n:d pe{f/0T!bTA@7 uf0uԩG 3 s {{*)! ʵ9 _foVOrU)0Hř̀ƲnQe$F-i)P1u+tF_*7o%(g$R@dؑ'B>ֻqG; g@Բ0zF/L +ҙ@{*48O/<i-4M?7 Uc^/o&|#O"#J>-jKәMF۷|5跙ywY׀aE!s?/'-Lí=!RcYZdY,F45 Axvsjƚ`yBW'Z 'FVZW{O[)Ժi5cʣwy*C1[v@SElaUZQZefHe2[@PTJ,*0y0 H gxUi gX @ /q˷ER ҎR ۣ EUKI鼘bpkj6WDk3gK-ϚkoAEK]wK-R݅i;ByJ$`fIk\EC (W -pTL'iQ3C;Ϣ 8KNf J6M4yJ˄0XD;w 5̘e#Z)D<>uGWQWVs LҎjy):a{cםR} d⛖?3H{M:X]slB=mڷC Ԇɜ*3 4nҶiCdեiQ' y`I (dŅ҅NR(rT}Ƞq^@ZLC(.әnU}qkac;7\G$COwF3FD;DyID֔N&:˓T󝅩ͭJ`b~M`_c di鷔;|Tmb> &h'TL?Y&w@X/6 BaC HD)nH/Zf4 Rby.MUbe!.ߕe|q֕ozj0S /g ?i Վds 5P83#ģ%`pw(9`>X 翂Q>Uok~__________̑"aI=~(8V>Me|(+/qGQpoiovRt_>PhW3!j?Q2zVy'?a::3:R/ Wjc_R(IYw*vR;)W 0K#779HA~nmiXNC9VC(>}:yԎEu?h=QA4O59%gzvzb {&p8YZ pz3[CX3"M-'Éc=k {!;.Y`q=@0̱LB{%O 'Xo{iCy(6Ml`(j|jj"[SM\}J\ >^;ۂ+&p5bZ,j{UlK%P:J#識^8vPv~^KX^b`܉Dss{ ]k7jtq6idm'S䒊8KR_Ia/JbVxdG (,4H<º-h܈%K!u60^94kW#*zЛfU MEH+Io6,olDySk[OqgNT/fM!$-?F,QN W,@7xyX9@fHU)45T5mC鄔!u$NZy7iH/H_4wf_KHFXw={,<p"?]z3ū Ϣ8cվ2z=ɍ,_pc|m[TXIshࣶm&RXuԈ׺p37c^/31}0D)VqP1$ޠ-V5G˯sꋱvۋ-zs{ oG9/.mE:&eZ"2G0$B0MȟF&Ezqo}96ty%]wWw]wWw]oW_7:s?LvlgCeDucp"w[v4§ B\i|YĊ,.,UKtIÎzÞzHb[3g3c? X[b0{5 {q6znV0/pW[xN ޜwgRG^ `FۄKxs5tRpI=*y/@AhR|xᩐahST+~4"kǂgbظ_{E*TY9(xV'ρ>GٛR23W}>+șǗfyX Xľ_KR¥KצFh@譋i4^܄-}Lp5eW:\ʀ+]PȁKp"A͟s$݄W# 7JI Խ/}PZҨ}w:aU j⣢f.y2qsyon".x+0t&8LSţNЍlĘ?1!s+ǹ*aN`2fMgErF]%¥=HItP‚` S6&6^Ay,o;|;,3oZMg(hِ{f"t9O(,ٞfGGs!5M~nu޺,_Z{̷['_[tS;H}QQJU#ꄄ;Hz:=1 /Z#Oi9dq[fKI;Y$hl=P[r Cu@)4Qsۍli],Erg! iȖ]@:N__a7\J7a]CKP=ȍ k&-!RK`9iҸ)"q 5P0 0C IcCWh8ᨗNW< < Z ƤKwM/ֿeMW)@SPw۰)/DePѫ\Tfx%T3(E{88銦9jK"FN"%J#\EY~9355/n~B"k+Tq50zy!md4X 7NJ#̎[ G)܆"wzaWlDVFS /Βt8=y{w~R E]Ьfp߼~s֜&VЩLlswý}J%,`":PsȆn!V7|3^#w+acm:9Äq^)6هUfU[zDI-'0Z$ѲD.1SO'v3eWf1W3[NNTi,Ӈe8mCixcnRl(\nRg뛽#c/3p؋n(V/-Li,wY6TvGΑ\5$SWE#.ȍJ% +JHڍHV3CsӼR9׷'G8K-*A`.] G%jl_ d70Vh+,{,\\,TQ[״~(Z䧃]Ne&!L#OOl%8gQe-ZGN`w1TQֲ&. Z4RupYkpמĥS~V>;[٪W9 Zta,] Mxސkf?,6PgGi^.*kdQW9?G A~OC#T\G^rWcT/M_YY@M(zq{N.,NzIo*N'0.rU _e֦đ8?53P΄oI}A'U *2';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% *ѧ"Mf5 \&„ҚLq H $vUFj{\UϽvZnMmvF:O+8E{xh [9z \ii:%i'#WDzvvB]q2K3}A`ͩY`9-9ODlZQ&8Mr'u~tR2DeC; ۍ?SMz pB{u6:X;i+ZҥږBI (MlL%ζw~T'QFG.bwx;}UfL3,Q/MaR( K1.+Ӽylծ6aBGuX>{649k$cE 9Z`%:;sr" z4ΤEq-L>CБyh/ MuHp|2ۅG529jrIu(|aUJ d Wէ_""Fo&됐hSLTI;ylX, b}Ы-4^d|;{&k@5ZVUn@{Gz2sYB_D2U\+sI*|:sC~Bu<D2|~б:Sk#WݑStjRGrȶh3g hBr؜5yݬ]4v%0Շ.2U8/&g<=7rE{+-'(([[5`0,*s%kisٖ+/ƙ+.0I4NC8!a?p$-)"w~@AIrqk`z GcP1/zU_2x"/~`\d.2}4 x/.Tp*e+;iP V9>b#LsPvwË~0±t7gndoBC!.AZ-Uai6 }Y^qg+Ю vo]d.籶+5ګ}&ה;ت,gl2`4 74Jin< `M~>.w)%*~BA3xl.Z#ZMheS{;^=_ bVj hA b(u쌸Dl{3j#Vd݃ aHtreMdۑaC=ʙ(KYxSycrNN (5Ɇ7mZ@4͐>Y36H lӅoq/ F#4 :V|" }M-"|rmc̘iF~~~z zq~j8PJEuzy60/Fpv^z#⁵?@p`Jg*t2EP(m}Cs< $a˟k a_|zFKexxk9z';$~6ܣ]pVN㝓V [X*n:Bmomz_oo7&p>Y9(rd9TSGZ iڏl]ӊO=}'cLOW([H{]#@-X9%cݚ硘Lꬅ(۹mw[#FwqTZx'L[& ><PDtVL7ju` 2[7?b!tUPx#d-s8-(L!v&%"9ÐoZ4DTa}]! }h݂+-'[]jQGPW} *\TcvG5Oˊ5 u\j!K"LX\iؕXaV5tnܮFI]KUA\G}%=S?Yk_!@1g??]&?3 ?g3?%:vF;׭.YOjk wv5-q ~7c{>&TxǯxZV ͬo|Dfe ޷#E4ҁCmnNQA`PU|R}8GL&^. Yh/7m$ $cC6,?dµ`\) 0 |8/t@I*p»MʷDjv]PyQ j8tr[ѿҪZ8V#q S9<<ىOv,.q Ai*[sJ;gk ark9@k)m'-ﻙ|;u\[q7\-=\tبٽxyvZ8 q NA36wݛDgH8h -o5FtLQEQxV~z=K ܜpX-H2j hy̎>b7ĒpLÜ@hcnfexbG18  Ґ*4Ť)|߆ bp>\I&R22@8ec\~4- N |O_ԡܖg :H~0a:R0w=H?RLbdU@S勐'c~ 2 n7dD,k܋T<smT'uK]/CC\Db${iuiԚQ<.2-@ ^ekԦ縜N>NdXQA0M~h{Om{5gL7ڢWZ_`R-p@rQ6rAKA؁7HQѱx@wuvr*{?G`+xK,0{F41̠٧OZm*)F0GXe$8ES6ϊ(my--3-U afl8$S縧`Q]ҕ(9%qⲁ;@Iĸhr I0tr eB;H;=,#:4"|r'a6T9 ݜ\hOB"; cBQ "`^PZʼn79;8+ij,J{* As1jS qn+/qZIOlYf矙>1U}|*$Ҽ#:\Vf#{@ ϸxp,l:0\r[)yY&kOf2y 8_--ȁ|D}mm4fr]nٌ!M=%^S0$ 8Ȯ})/huFY7 ٚ9$|ٴh]]ub Ac }Pe 聹[̆2dXZڜ".Nuugt?vG}????,c1?fY,|VuTo5IlH.jCzǁLarpz XICQa3Z~8zsxf2L肴vꔖU=Њy! dt $Ϸ _:S7{9R1Gr@.QdQ>m(6=;8Q]93oj[˒[ 4:͍UDy86ipQHALFHpHlA;©݂$U*kFTŀP:xWښرKU2G68gyVꖞs`#w7HIP'OD ;Fq:raSy`2ͨ._>nXf{wTȲھQ}S7?f!5Zw\zZ෾%jyφV)G8<>#9fo o/7oy'`6,,RCGOV'T}9.e+L+6%0/68/㥂>ZG1[P쓴И0H; "7bMgy?&GACSsBo%œQhx#U%R$K6eC>DRV|3&@zOuښYS| Vf E&3aNP5oa?٠J-Gkn?Uc/Je4S/Ӝ.DՀ+lX,݉B_d❴%ZY7'CN/#V۞dӮ.=ʒ݌lZaR% >C$(efz Fu8G \q0njQx\ㄝ3;gȱ*A$FVo0arvK\gpF-C7ݽWb- U3"kr~w&h7in#A/ c& jB^%ԊGPOw&\4ipuY $Kt] /=vRp!' UN(Z_gδl&U\S盬Wvt뗥zu/CdxV* Paɦ+UɀG&CQ7FF{҇JOZTAr?EQFpa)\ * XҤWtdCLqUxX G+27ٲ|'VG-M`i"ZōMZԮ 6l j>?9ڵ=AXb%u OHZK1 ^VdG&%WkdL œ*-L2v{5#wloT~IOVkkOgg=g3{=Z=,@r=r $~|]5Nqx:BdYl#잽w;gq9>03.ST\գ\|tpϮ`)³ܝ䜩C[}[]Ԫz}&KދET M|3SY}l*Il.@zW9kW+'ah=݉_lG?:I "sMD_Əެ?1on/a%}+Z} /t+@v3jte 8l&KCK j:'{Pn^hJmUR?%eGWl:!@M^̒44~՛th4"dG$H:ayB cFFiz[FY.i7Uwy@IrZ7Ey^}w=5/#q| m]ڭAn6/vypUŏj2!J43wZ%}T}wOF/AmpIʪ`Y`5FW,y[f35lQѸTZRel3CVxc/?m,-p= 1uZpx`'>:8>96Z/ZjH5҇b}}i\~'IG1=UhY' }&Wv{G5\"%(( ࡍbun &>=ONdm=bao>簚~BjMif$O~kQ"A~9b2e+ڝqrK{;vc~wOGy< `F0C@J/I FF$F=#7T.bhW9\8{UٳR^"ԏVn ?19lPBI=OM$9kUN%_T* \V5v5dqKQ҂kQ G֣Gܮ@ZE3,AV Ek7Jn ړs+ܹn5-PS%™ N8KtV n> IX\i=C0Ƈ *l:Fc LrQxVK5 x+by*paY;})_-I#O{S뢭c-:w>Eӷ>~qaN} Y͸Yco*s|-@axk_6HqxM?=Ÿ-86Э$*>5F֜ngzFhws):-tb)5 4 ȣ|P6.gKIw.2ҷF۸]$BGu 㮦E_AXV\1s+P@ަ6{Nű2k!hW Ͻ_/bOVᝇɓg3ߙw;8Ow-=;.̔,._v4E^FVΘ@SlI @5)i+bJlVkXnJ%#$Ɯd6UD8ꍒN<,,A3ѽ\^[CDko~3 Y3^v<~z)mJ$ :#F= }7.*Q ^G=xkI8 n`JYEGuGyZPcY(RwvӔ*^ '#$d 'wH1JC>jH r/HC%o8%Qj /M r{1_\ ߀(7:mc8m4lW)k|y Gl7>QpRyb.V Q9V,RR| N˔6ֱAfe#I .s]l!Xwea:vB7EVF“mg<BR=Юz+T؋d$ꩇC\06nF&;aI3ܳN|r+dnX,4ME/v.Z[wr+(-5NOhy/Gw/醺TS16NKfODŽb[TKd~5VyU2DWqyomvbǐAIqsNsS6bJ'WgFa/x-[ώy40~GohM c'ڣӌ[.yV|ª#5'( -,}S%Y]|(K箫='^4eri8 Sn5D dF1ՇҝjYʟ,@wPq+7`Pޡܳ,"yYSJśz_DT oAڋ ܺ>/1ӛe쟻h2zkQ…oH@>f6JMV'Zɫښ@gǫU`~k?3 zRH؉<@oqmTg c`Njf^0 cAWЋIu}0V=W0pM1:ْGޒۭDѭgEǴ5Tߣ7;rI/nG:<85{Kv!mU9#krgj)JX֥3kowX@Ooy XvS*T{ ˨ʈ&eU Cw'~$ ⎂nKŭ:᪕N@Xê#AUKp:|TU,zZV Ć\kjgJ']{j@_DgW\. d^ R^; l"c@R4Y u+p<5,+qfD/ /PqMK3#K)4d&:X\5ɷ|S%j>_ʯ3b.D N hIw55`3'7\h@?s"6SW"YsͲŃ.n@?h6XZC%3ނCɽ̛3 `|OAN%>띍Z~؟G6 p5@\V{n Eq*`$ji0d[Y[K茛'rthY_w'mϳ (?lj}3|1X+<-;N+|6 bF6-xv&Kl.єڌÿtŕ`mKb:0FuS#rmqs[:AʞMLP>@LEZyi7Z'v? qu/N?I`Hi.z>y:Et'o4gM0X#-Y*֌aYNVRU[jqtT={G;1ve;7أe *TLe;+>Z'TZRD&UO`^2r:: fZe\mI*cN?NJkbuuSU/*,DqxE@ =u'.E RCO\X\b.3l0t'֭ŗ0$3 8z]-&$*; MKIi"hђNm&x7JOq5H.DwPEړUCa@Q P-% @d,KC(F5" ARCKD>arJPΨi0hk v5~`]9DI5s H0jы=ٹVJu 87!IW@_$ިtdyk%(ur0FNeK:qOU''VEP6گZc۔[gNg 'Wd5c_3Y5zԡa6 نAhYZi>7߿x];[ɠM̒19 } 8L[5yPK%rbECߨ t}pW>.|W蚁ܴq\8툳;"[P8׻FQzЊ90;m A&IaKaNn-q=8 t((_1+A;\7"c=9a/Zc_6ŠAo", fi9yA=w=Te:,V o\&C|:#A,9'_7<(Jw/]wyo‹y9&RGopkIR}@ʃZ_u)f;BקKa?O$b%8'nW{% ww  f(^'/a^?? [ /7мد^uwQ#xY1=LNp/S81 ~  fAŽ<9<|\ mG?qh)q)ێG~9N<"pؠ3j,F8[lJ@̌9 ^xum?EqǕJ,m1*N /r`3q mݗ{tIE@Їv|'dg6JPaEqޓ49&(4&@LC}WKܣ/-㣌)(G!Ɯ-"DM3Aad*k ?Zվ_O)=yd%a&?j sfd,3K0,3ϩ? @>"7gS^d.rT|Kx ,VDŽ ­ bBaFFǣ qfz4RޒXa|2FZS\jYrW?+oM-=ǜ3Vw%ըj 9$V {^*h;E %(hx5a(dOsϡRt!!8'Fi dD,M"cVf$cg \7%$4CK2K)꒍>Itz(LUf y} %2c"WujPE?Vx̴3BW3N&B͜E-8`҆KeuL3fx|WDQЁ.Jh\XrWf[FH;  1KA` d`BM4(l#] G/#Ёhr6hf昼ɀA'Q }2z#p_J:usWc2 /OtFx%!Ov=DQ騳!KA X ,Rɰ5k쳢i9Q9R.k!oH!8bUkU*,W"<ڜE^ Kh2e%h93bbt#L3Dl21O֮jɑ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?/; c}IӕS\g3\g^3ߙw;y{&r~i:xRdyq[pH=EdxMI'#3^_n3A-ݏ҆QF#gt@-FPC}E5J %Ih(5|;DZ'"X"uQmKOFÓX-S֛O;ܯ.ýFw, eAT' Cv3Z\4i7}E};͇2`ت}TmJӵ$2j$.Z!ŧ eYf=L #>=aN{U5v":Gz}*cѿE;m(Ι"2?UTo]^rJA\qSy5҅xk![:dY2`/T|\2eoAxyP|JNqL$X;"HuN:v̦{i͡xqAt?Ϥ1' ; dHgcnl&nuC9([OWEtL(/?FMlzHεlvlh?^;LJ!-`7pBc B7:0Xj-:0'>;Ж{L E96S~ҏ%RԱ}6++1!'O_ R_]{ԛ<|</Z>H)쐋*s1.5|5\އCݺݝ/K]<~{wzxNp=:='W~{rszxO^N=8=' r KiT.wN]neZݿLOJu/[W.ޭǧ?mAaJ g}Z_Rs\|RO^sӲ73$h;;`|_͈Cd0K/oR-7\65E?>,߃r?^7#'ʝ]ZcOg{ s"Śɀ;%׹ r]sys-캰/܊v+8 3ŷ6}(5ptX_ve-/q6i@g?F MM[/уhWMs/#Q%ʗr<S˼ʉ%Fq5uNvaB)5CtU([; P 2pbxk>bߌN˴,gkBѳg{'噌n b(jʙG>8^(£x~0@֐Y~NSA8"ؿ@Ws+p0 k*#<>=%asسHp!&ɲX@ptP`8U`DIZvvOX` vAjg@4wCBe~HGĈE`++OqqtNBRι!HY-zZmg:jHbDiBٯGu}/*rZRT+ ^_s{<3.bėNZ+roc`_Yw3e' [s dOiق*w5XrFSXP46x3~f?g3~f?g3~f?z60