#!/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=947580a8ffb6d315adbf571ede0a4e9b # 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 ]LOO{ըz0.nR׫6/.:S]5ڭW8zVokGzU f{2 ֞@ʏ/x5^o-QլVۍ˗"tu;l-'_9G|c<~F~Ț ׿7ݬ=tսkͯ}RIV?/ltq8vt @=R-5E15]# mĈeYe-S{2sܥW!_,8.}@tLkfl ]JV]ZOMr[˄Z4ŲplA aKbd"#,pL f|hEԹŮ@& ![C4񼌽$Q0A DBBQs 90cJ;}8㒥S^,y0 ̄,F#r[_R,cF@ a^Hɔ!C mhZ:>%\X`,3M"2⭨FC-4>y^ QgX"p?=GN?BDDZ|~a'uӉ:+e=|$҇XR2rԗw,)"IOW 8:\J@8`8w"Y3DyʒҔmLS)xp3w%26s)B'$CE?Ld=6N0|.Y ." |S z l>gYaw ޳gHfAb:Md+)Q'F0潬^`z XIi>uuۿpt:Ki%0 P(Lr19&_^5Ҵ(+l8Don,~oP,,{}Wey,A>,{=yAN.5ڵATu|H]xM_Z.BC&jHϭfD:l4n_S?hV|=@~~' ^ &[ӽez/n|X>qzK=fuS6P=_< ~u|qܛ_tn\kJftӺ{e.׸NH[#y%y 2Zw8F-/Ip3 .+wyŸׁCzX`q teh+8AߋKc<7~R,}k.ng8@~t{RXz@tІ6[sgBZG^өZ† o<;'OK`JaAy3S|n(Ys} їrǿzCmj3˅~M-p/~yJ0# :X(xgBl4֮Ix44{e2l(WPGB,l0]Fo$Bi2TLgƀ4\"ݯ7 dPA3$R@dؑ'B;4֝ꄽg@Գ0/FE/L +nЈd<ܤQB34m25ÿV q90Yaf@.c1VuR_YUHImy!WMU4 Xj46)e۾&om+0;QMkxh4~VHeZ5<͸ zQK|amK-_.ffڟlx敱4sfJKi&s{4ӈa)3V33u`]pa\|[7 _.UP<6n(d_û-[$2ھM aǸά?\Sݾɺ ]"sq[kpiYغ5ĠXjlY ~=I H*>xW#04nuۭXl_fv+ `=p62{jjbʣw{o3C1.5,i`6a.StQaT!%ljO ›=v@^WW‡t R g)%h~WNضcBb\Ѵr%s:/@9ܚt'MZ/n[EmR+@npaǴV}m1\<¦J*$%]w ٿ]kqGKbDه? l>4lJ(ϡM9x%'Caq3Jx饋N%Me[&D6~\&h OV P& ><&F8B4Qb-ËMBD줔X+K3E028ҷ<-ا0Se /g ?i Վdsy)k-qP)/gGGK2x݀+š-wG\Ͽ%>r\[vzv??w]sW?B~E=^UTevKaq2s~GcESIB{פlȡm!5Üu)Z'E (].;[zMfՒ7jY ^Sb:pL4ZA |7[<{PDŽa <7؟Q]PZ5?8Tj矷?&r1ҫ9S5S5SHXM(8Y,}2ކv˻V[Q䢕RCH1* 非…IR:5lF(m nFd57D7E"F,.1X pxDq@AZ51<,ud؛'JS1a{&͛WDTe.LD>}DR:neQL1Cq sfuXBBݷ%>޿?ex+umވO'Գr%c>t>v;:]x4Cyr7GzJ0B)1y_T,~/`QY@[RظWE{TY%aO'5^}"{U_J̺[*O{`tK~zQoUArE#Cr=-"zR}Z!i9zE{%`\E+W΀;ݙpRK {r$HPG9#ӄ_W# 7JI 7{FPZQMjο' jɴA{>U<KI fJu.HJX$R'0kn3&Q3"9vD R~I_ 0HAlMl_{ c|{3󦅊t {t#[+}6N lAla;3y}ڢ{>;K]ݒ !3{'Fݵ:uY>(>A4ʸ`ɾKey) o_߿r(NE[߾v v\'Vu9PMͰ`@r<IQ3J}|Q\~Lmē}fk->Ɠso7\M'h!h֨OG/ڣ6I2_}V܁y> ?{ A! $y׃ݝM~$_/ +o"UrP9M3 UCÜM2֨]zgnѥ#@xvC`fp]TjJ 3%-Keu0L8`vۅB+5;nNC8(`O8(fH3l xGN+n5Sb0hD9R?-3 0D%p@Dl[%Ƃrn3ёPДpOL N=D)5nJc ~T$h9)(xH4{`;A4QQLa%;ʓ^v"+-dV2&9UGA H891sxqGprs0r (,ˉ~/a4U ![^^|M5c?+\{5@BTb3@7nҫu*]LBg@% ǦƈUDfĝTXFCQ19X2X(*RJdyxnf5] n{a(@d*)(t #;ls|M.} &KAi\*}ɱQ $ѩ4Gk&k"F8hbcM&W*QU)t=;8 Oߟ;jX$99E+*nȞ#ns?( '_H;CYhR[2(c<~#gQNc(JaDnfEΡ\ٚ_ȷSab<02J_uzsȺmU}gaf-]aGH`o BAf"K|K }\͚U7H(lys럏`g kvVm2mZ/2y fnbҊEyu m9ſNNEݧADNq?=OXDؔ8n,oQ D3g*k-ٻ341{49{4|Zd.NBj鈻oRXJt:)ƒ̭_Bc &ok^Mĭd iN*M\&)Ḓ|)RQ86EШ7NE]I7 + vjDhے^] W4b )sk6fgIwcقbu8~ `t}*8ٟc*Z{V(aQY,#1o }K~1oțSc>fE^# 0PB/-Ehe6xWcU )0a$&3\{<Rk@:uRwrt[ﶴ')9ztB5Y!h恊7iw\@2% Zax5£LȆj 嬊OjoY.(uM>p?p27lxm4.́vRu/cv, E/#)R*;qԶxY!.a#{_[Ǹ"r.mQ+$yLͪѧ8pV=pi y bwN?gTzJ%~ H)r9s)9NާYl1 8\_9# Oe S<߻T@RQU,PJi(GAb<`кBu&sh{|/Q 媩t0vN^K׵C-I٤MLL%k?,hDrAoђ@*?='P(l0{$E#Xa%h]nBM:y[HaXz&p҈?,^$1@+LơlOp[s?}2'oM]}/io;ʯ| H}!q KOͫ+~L^Cee-˜\g08L`7ylÔpLJ g5'sz@Aa|ミ\:Q}GHAdPҵ2\s:x[\0Z4zjW:I‘{9n찂@vC0N’kOS;FZ*ap2ݸ|*x+8T2bat(H;x??-(Аq!0>usKUv~h6~lz*b EMOlY+ͺT_˪Jw⚒{{NXL­F܆\ v !8X]"~ :`.\DŽMeSl{V@ 7^>_Z2VYy `%^0 3FX5;Vlt0X`|{kle49T>e-nmEtHc-'5O}jʏ:x@N:lm@P|8q ք&PSu*gl-}A % r>ع$[!tjeQP8l3 !Qc.4_7.]6TF͹y.NO<>i_ǘDCw7?E3{mĸ}h=?pA'1tgC0;{wx@chMj``$7O^rdtk9:c}AΌPRogۓ W˟⦮/16@33C !H!!YU^vl5gJRVNBN\rpqx\Ww2\(,g̈́鶒It{jv%ݚfL Ī:2 evnFW<=m?3* GGKQΦc:ɦkuOhBLQ-}K:ͬ `PNo\PMG+ 0J ؎z]0ESdcl]։ZK7>Ӥ +#vYճ Zt0Lq_.uyx=d\._l??y "^tV i_xH4t5+~_LIsyBL+f0fA6 ޛhZ 6/OPsN `]1&1N( ,4uΧ#UpT.z$_ W0q`#Q($vtt.N\G;3D)X4_wR2r GbRB06PLW >v|V16V!zewxQb{ ^K?  lш3CfGm泊]TD3 Sr-l7tQDxV6F#K ܜpX-*¼7r ky!.a7X@~oa#$M qV CiM|V[ޖ )*A s^R:~9 p f%jȧ02]P^bAN$d8e\9>Z 0Kn#v۪w nbXh=^Zk4s.C 80f%Q5ѩ#6\= ."_zkP]ǃdm5cA1eAqU94_n[D.SnDY /B£R8|mn]ȼiXNJ8n"*~*iG:'?eҝpY= eSɻ|qwt 6 A>Oے)w~x,\ pU&'# ]S.ڴTM~|ҿg焖((2X♓O‹cK?C3q&-<.N~ Q"=A_ ꐸ8kS0Oӽ7CpD`f $*@ oc@adc+܄6ʲ`N\'aDpRJIVZ;찐%ueF`v.BYݿzKDŽE+5z"6y_ϧKZ[D)NHxELO IЮdSE(ժ]3(eb wP(=uEil8=9s)nv=;*Rf]@i ʀ˾ O"eg7 T4͖C3GqKhcL iQi,SFCI~E**|zm]c߈QQcS;؈Lo5=K LLz8 cSÖKng3M`#SB!vPUVJȓQޥu _I Kna8YR2ґT#@aZ݌6T9 VO{OEZv/,=(Ety"&)ߟ|_1 Ձ2?ww;Y %nYM+߬xaي.Br0^ӕFEf&## GmDFWBe$f;R/dr$v5n<<|e.{I,MSN;T=x-{|FsLvS}wVcj`XU:Rbhw̅F=U bDI t{CXSr4| Yk U q_,]+A#Y*dshPOnp.نN{3dneFv4eRv \$lo Hb7qkk05IENHV@7m'aE5 7#' Dnf%S0zkU*enhECP%$ vڋ.LلOi;ɻ0 ԝ赕 S63eW65mU T]4DXƫRZRjy IǝٚKAM4$6^l\ewM(k~(ī%(~\X -Az8yƤljs(n PSayCf57[fœfm^g)JS[n>ǧRРfc}j&VWd+iXxB.IeI(DĒ*)TxVVE5D(ye6~Փ ??؏@=Lxx<ΓGG{+m`lORQs~  WVLBv1kq}h\ǩf퟿ 덽CP?Hˇ VQ,lT*k ۣDi\jo_>m_P[Av') r·g@͍YQ.4j ӣ8z˗ߗQDX?FKxzC]Zl=j 4K]erwD8;&|@=B(c!w#SS߶è(R2 \CkYB;B`U(,_Jqihz\AyܘK5n"Aѯo;Nkgg{e gR/$CM#sAܢ{V,TTNK4_]}10)Z1R:yF—Ұ ]~ahVl=_HM{7PEpܻ&ܠ܌>ڦ~>ƭ ͆BTdm_;'̡p&XvRR] 8.PUvlup%W,+Xnx1;6b'xApuh{['=a#}I950M/cpEa4Ɩ co VҿCqx!V0 G!,I^b:Y|rT_ >@.rKUMW:l*niAۆ+#t wp^x|xrz}5>.*+v7Cԇsckk\RA7Eb,Kk$1n.X["yC2N6}DN(.q%a>}^Soі(BiyxiF^O5{g 2h ?`\ z-OG+5`jSa~-C2XHr?{ovs0E ;{{gW;;i4E"L!* 1= X _[6W'"@A´v [M5 h/|J0Jm=ÞuسqCdΧwuϞ K%F,Js35$yG^d׆ՠ A3ݭY+,ױ6GJ1vhtѝ/=ƃKpXS نF54UEkdDֈlF,!BR!|\P&Y[[㥂 2h&fJ,7]jBkEYA{7jQ71XAd(?s!Bg'b)|Ykџ 7og6fja"{:54QAJ-a NV’g𦃑'Vn+,uS7Ν(Bho]P=yug^pBF7vB>`s;/ S[><恋Do_Z18]!G_.3tGhtǧ`i`16d@Ņ&NٚlJnGYwv>[O;.;|OC9F*[Tr*"o(I@pUWL[ZѰS:nj#X'&sx)#A֭ ?)Oc 3:ׂ4TtP1*,>R.WsI(x GW( QՏR闣] ;E6ep-=ixRݽqۯ2ٰ=醺XѴR5+@V;zfJbGC+UJwU;;t*pbkY|k=y׾, חV4M]V!h !cG0RBq0 ?!*HIA^/|M FMHJ-(̔Δʋ ,ӂpACb,rWetLpNNL$W6ʔfm3B[Lܛ C1B)Z_NcAAӗ;IOb AXF\00S+P@|krv C¾a`g'_{obs}#'c?mēm|kw<nnnh1?pA?=@ˀ 'Jfs`s-x_; HGzmIJhR$Yؚa]vP&^lhHďvJ %,Hn;´zUKI*82( ] x<  J:} )7+P|t ZxX85Em!KF>"#D0}6/Kq ^˩E k$D":9K؛?@K48.U@8*DD2Tz1 )| ^q2>EK]QT" - &rp}utۛvx[>j8uZ;+71U(z"gM818(XTJơ{;&崱5,,4{da|ZD^^k_DxjV_&ULT$/[͢J=CyS  !((@9A(f,x>qPorD8Q3e`xaJloubGgEOd ۘS0\] Cpp?En# ϒ-C4{ -C$SDEJ8!^Y>mr,D6Pv\RDP`?6ezbto9~oł_I 0Ͷ4A@\Y_W)T 9S0I,>yx 0 -`-h M [O=Dy\告 B20d>Gp)":b?;h'Dy{2rh 6n6v8$NTO2}l3EK ׋NEI%<4~)`/Cd.NOE<!ٯDЋBZ=ȪHMDj8Mfȕ!7'7B -$2s՟.;4S4q˨cm%eؿ?_o+^(O:`8<@2ﱶZgBY!t(,Pⳋst 3@zfwW$r*_+aĔTەavQ LB0fV(30mG(_JoLM(/ @ J\02lF7Q 7o`3b .R_9bT,YSjQ:A6a-4>7;ނډ@Whux"ywwQgbFŀ_%쫦'к& p5g_|xF%^{n r4Tվ'yn3g'2O%vi,t{;3τӒ-[kdԲNJ)$X2p1E )T!0 Q'[2"#ķh~)d݃2ϟuzNh5nV\r ƶHQJbS|;Z^LlD^Mz0L8oHEA=J)n*5 Iii/5{' qwuGytNd2d7?S"7Z3egepg3-"ք.Z,6⦶[;*gόok)KƎbz-K+&+So|fh>So"M}+''^|Uֶ BMkj,TAtf8i$]ԛuq&Rg)9BS??Jڑ˙/t'>ga5>[XgFz*b}ȘDW)V{ëhDIJ)N^1W53KgˣAStPBV^BC1XmQOY?yq-V4 q=.H%".!{><2iFZP R، S;-0d#]ݼl Hu%8޶G4lN;'靉F%x_;]ˁѐB6:DXemn# PoeS;9uCNh6ENe>uO,( 2 F%÷_!Ddncna.9 m_JL?=;*Z(Ә9&j`WC<l;j# -F̚JL-^[e֢M̜1Q.HԶ덋E㧆ٹ=Nn|:tAicޖIxTn86buTfauDO<"gJ M.$O$"`LLK{66rxr?c?vO<ϓ^G{^{^fϩ·ð8&I vPNo AF Y^ak 5{4$p?lݻ(ֽ%TBM㢆 ޚZCB W(^X^c G+wi9.V[%@5wz_!6۳CmCj#hXܴ;<98%CL]l),\~6o&= aɡ1qK+m pz?s9; k1\~,lēxs%࿑0ksM` 5&0=s #^:w[~b_ o3GNUg}H0 vÜ]_ qehapݿ V|'].B?Ua*- e "~zbA 㫕]!i D;xUI(' 3DźZQeVҡׂg9YfWBBĕ%W2CzY.<(ʐm|P3;zTRiqЬ1>{3 ,`TOw19.MJpe(\!&L!#C%yi5nϢ60qB )bZd`USyȄB;<.8ަ2VŊ)p$Q܊`FD2_`;ptyB&*N9TFu> }}&?{VXD؏~_+2A |ԍ=sy;7 J%ݙT'RQ?[ycߓ&I'cڧ̸>va"o#YF3Hd: )ex2&YTSռ=VIv.qŃEڃO)fM) (7mDv"bw5 (# 2*h/NRVDX 8OF]8&~~L{fY:2Oo>$9\o69V(1 fʼnz/\Oox7 (`u:R$wd@Ky/tq\=n5G%š>s(kw85I{9N _:B9/EQQDձ*LQ%q$ܘ#!3ٓBLy`tl!11*nQoH x͌c*ء3LҜU]ƲjH6)ٚ7G`%xfV)7Dul7jE6[:q`v Xd9SH3ѳ؃ P.zt`dVtb|. sc"0T`XS SyL(Ŭ:A<|qت[-TmZjDgThaAkB֤@渍D*#Z#X mIo4 >F}c(fNQt 2e40X$aN% \R%ERHt d>Yƚ!o,OĿ1C5.#X^'$!B/zYF0Z:~^Д߃o6'Q2! wF(փz7A^W+ΛNǐH55>=:sx(kQA&ň kGJʧpc)qYSހgKnr9~"N z#kMڝz!r@F]Y] 昻]w3^K "K+ރyɋl >[࿣a>&e`$Uڣ?>p\lݸߋ+`rGQv5Ç/}V`wDN_$H WHɧq^1DԕBG(~B!]i8}V6zLD6z<~L#akyyr?c?vO {<0$.m8$^4Sv>DF>!F ц1w4q.ND 2C%A#C*JeLm>qh(5xf^3R =P)B6W.h"ßHڑKvRFD>FM\f?ʒ?Bx-ceS룖 JroYIV{5`J!c 8')VQ~m#ok@[eSȅ5ed^*NU$5M*_>OՋRƈ Mj>%y&6" -1LT@>&;F~5D Y(F>n6 3r7}dr)Gyz3ClAf7t,8TfHlK."F]}`^srĸlULn`vDkvm玎 m/7ɾk+u<^dbة6m;Cˆ5ahXꬾU~9.BO1b1xTBc<2Xg' hDRqiE匸4wZ݅kYEWx(zlN/,O;Ⱥ#9/(mdWAo$gka.K6ǂ܀]?}S6n]茩&[hK+T 0x?5߁v~`& <ojs}Q}o<ʓp'lU/5(}Sb9F \E@) ĸvvW?ɩ5ob%gѿѨL} "#ܨ/+]djqxoq0jYGߔF71\&I_W/'Nx~?U.[17ڛz9Xك"r98ʁhXD'D=]qQ;:”!TÍʞURI]Vh7J]$jb}ŋ4h_|'NTFO>?x'G'1OV'e>T{8=rqX95_SQϧBm<Ӈ|xpXcAuyxxxz_q:<} W9<} /|>lbC+qP,6.H M_fm\$2_$]C]߸j?@aJW}Y柢ٛ!"5Nߞչ*&[* x ^ oj+ڛt:ՀC$0+Oŭ߬d[A| o!"8=(M+Pc2F؍>E