#!/usr/bin/env bash # # Copyright (C) 2011-2017 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=20bc39f159b7dc2b0d37ba2f8f8d81f5 # 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 $PY8n̖gϢ`Zn< $Q}[,c@2si:sB<{qln['hfOcEybl@ZĂ ЊhL c~{.C4^(ԝ9ޜ5(B6 Bw9~Eہ'ds'̢T`)dQ,vG9RF@ AőD lA 솣"CZ9 4b΄@@,(2n!(Q%h]T2^P(i1w>| Almv: ? ̋!ubz < { -fzf^;&;4 n3j݋:yepثīY]%mpp;g+Vk`jc+kt><[mXCPN1X8iǸC0$X[57-Q9jʘO ΍MEwl{̒yr %sg`l=vP1t?syn"{wttë>|KSpw_ÃW\;[pۆ*aȼb/;;x.#`-xN= D8:=އ<wNdGuBl~E,~m,|],3ɀd@<2 zH4|(݂xğ?;s/Phh% +XGj݆`Ƃج( g5T*/U8΍i[bv,+]vؓHMXcvGؠHh vzQzY߭A켂k'3#|  =YdV *[@Ķ0rؾH Βf~+-t 1C t3pZ׊&x>[u:1(FdGAY, NvsDwhqd&p0$i[O'@[|mۧc[,W#_?I`5mzv\$:e `SU6VN`@UNN;=e>lLۺ4χGvP2%8?B|7Rѐ;c-$Ҭȭ IĿW*7_,WTFl$|u xrRd_>iZZG0~fp |(h܆c߱#ȶEx7 xeU"F@:A-D|܃eC r $f$o|3 ^@TĮtfH'N'(3nd/b=Y9o$QY;MB앐,B:KnkWW̙F.~ e@aFj}q9, ZC@Գu92Pd̃E$I=-[],'H[U=)FU"$w䨚70rhsܖt+5RJKZQ*Mv\ݑ -b%;Imme-46,³ݛ*=É1 P`)]Zj `n3iOYSPEO"BB-6'xS|Fsd^]!0.rcOB "a#009͝L=L}H$K; ]3  4k`1LWWRD qAnxQyiřϓVsu#i7=댓XjT.醙wUEľ?a|7KdavαxYH 1YN/~2O`%#zCcAX!@>mOku&H-Ehݚn;v!: J62nv˪%r(ow L^#wsv7Zhg qN3AS^!kL$\qv1{G>BD.M:*L5^sY BY GKU:Xd ~Ӳ!UnTM(aH$\߱W> xHsH et# B ?a)LI#K(2As4qJHqeH'z.l X1MPK~T1)&t ((tSl9U݁go;q0zQrMC$ep1#"vV 247` R{%({PD#E[G՝`MjY0TjE/4 jd=ރU:W6 /c'ċ0(8 5t';9nPt"c efy@MXfxE|1a1&!lRR.Vz1gDؑgW{ zStסsMV]03TԃJyC.#H(tq DslЕa( g(;^և+UpBz2:쁬ӫP(v|QJ'8ll E3Lf yCSt&$tj8ApŗzB Z3J|seQ'R'JEIXa 8EXY:`VNscYl@֡vaC=ɥG|ުaEƂblLa XWkC3@Xn`Ʒ8-/9Nqcn/*i!Y,Y\sp'XZ$Lg0#b//+ x`eQdQfQ֛m׏19RkD[*EVR;o*-/q^YVvP%:уEv BϕAçF*WمJ9Xvot<ӷ#%33F剺b^t _V2qIw |[[&DZpO{R$R%ye^DB>a[4{^D8qXx>!3c,'.&3({1G}ڊfA\Iߧzɦm&A6qG%Lc>[=.nY|i,(̶h n YWehU(*~$4PB[)%o?yse<%OX1p*PR/#)}=a% _a@[UuT4I*ˋe%`IB(R]*ɱ5,Fq@gTʍ3q솒>U;V`J6–P88Al<g%Qb_]ͯ\?fsR+MSo7M?W?g7mݺe%t}+5ÂGe^TtC LFkQc/Kʦrb_'tobr= mo،Cmoc} p`v&&i4;heU m9TjJVJr8wMKT’OWU ԏEugWE#Tʒa@ يW-{ 7=UZ",꩑$SHP<_Nkb_ ޗ5m_bloACsQ2\@W7$do {]D?I՞^w>RY+KZܢPh\?t=S< W/>7u2: K/zw>SaygcgWk+ۯF&Xu0|敻]Ϯ3[q0Apqe=+c5qf]sJ"Ktez@?Cٕ8$2Q#,WmB&KxA}rڇ#KpKջWS8{HL ; ̣DH!>RIƸSWX#CG>eS1|QUGKw`^u3ڸN6^[`c=|ЉY̯ެқ~|=:kX7#dLuYE8W]M eE~2Pap8>FI3j'׉ĈtKKKe:>XE J_%bٛOMq(JT gW- h smnVk'|7m*>~ueKVw Uqji %Є)˴@4rtӖirdӖhy,2 DStpc#hR⟚rү`|~3j[1XBdA1>L6UaƎm(Y#$޵۪Tf v'@ߣo@ʫȭ]Ql~#4̛Mh Jq,|0pNZfܤ#9(\AMߌGȉ36P780(yuCX޸d>:q9}BF@H.Ueb-gQ/l 쌜=$*م]O[a/%ɰmXD#&_ly`WW!פ8;xτ]_ҥA׆18ʱa ?&+zxm'qխC %X(AzѨZkK #-T]e%Y8)DFRaT%oҒ2?ֈNuTgEt&@W 2L+VV94'6)G3)| ^)ΟHL1Fg]2W1B ѣXPWKno?"s݆䮀T ͩ:G!WL2H+Ma YQ8eqp}"$#,aO8AfBSEz<'p7:gU_} JCK8k'a'M0GlV`lj`yNF~ StlM-REtT;̐3HSYfh+26Ďv{}!:y@z(DR.{Z{EQ"oI 1I'ul #/j_!﬩h7ë6uHܜ F`湎\8me dv17.m 7 ˎ!ev 2>4 S!%Y9i}~U FPHE!J'CّM]BѐuYs>blSXsj_eFA<"ZCi35H5]W,@nw'Ŷvz(27rռU5Yܖʥ9LNv1 % "ڍX[7XMk⬒Mm`;fHi蒢`D{/xmn4Ce2?ÔTo8f(u^K4L(@L}$:!U1|qrLӸ6ѕFwF\Un-X:xXΒ{H>`F SqZaB{')x]r40s*l3.(s:Q~&MO豷̻5kDŽ  F<+UV`2 vW' M*| _TxvypQxvmɓ(̽hCaC cyT,JEޮ\ŕ恣O- "U ?)QꭳX$T j+#vfK7W W߳PFݖp2oMۉXq 8r~=0?8h;xN&q/S+Qy9RR;i{.o"ƬzC+h`ْNaRoNO/n.tm&ɋΠή/_.laqH[02G"۶>/k9$C+,IG=Lh4:͂;2)/.6  04IYҏ!j)n9}+MnSaO]noYb/y^M9Ω 4kd_[NUj)b eyf%׎%K(&lS$N7Arq)H e3_PӇ1-hJ](ɘE_L`` *©+%Ai_h޽sY9@K:ϦQ0LPh܏Jrs*º<2l^oC/C|!j̅}E2 |N(ܰ2s'7Xq[*Aڡ>hBo5] ݮl\-W~nɐه<8->= s.щENbc:/)_S}ִP2 r ty~#fYy1F]&5EwO nV,eftvImb?'jTTdv >fr*qwZݜɗF")z6Yf3֜U5R?7 (V˛nU޻bCKtshW E,g)ʬhԐff&y8w88q{ 1HPcV9Hg02̪3vuhEAkgbQ}`\XĀ* 9 c"SZ*M|-N$, P e\f)ZjMmS*9B$8GS. !`:f~VX|,_#K)VloW|vU>*bj2'֟n]QDy] ^QDvӾ#\qk>:}qB*1FJuj@ d]nĮe@}dz-oM#!>ۯNЛ_<"v_yҭ &^z(׬{·DF&'P6iHN%tzT;7/Ef;$1ӆeǤ%̉ٔ"lL@sm˽9-}#e ZQ8 E ; o_^>U_׆7B8"!P 8FEl5%s%Y2>;ebZe)-5lh믒rj+C.GROl|WL{w@t?أu'[()́28<6pvw5^wR~ H&(!NYo+U{/O@ɼg[6aܱdYN4U kR5ҐFE- 7#S@EX*Ds P,v黣 3s5_xUi95\U\#.\,RVFOLof\s:'UQbOwESmh[PtI JYu*5JbjvHaXETVʊܖRqؤ GT˦ZQ/Huեyת+h{ͮejA2bN]HTh#`|uNeg/7d?TJZeysv'x=!_ 4rFMK.RAJg}S[ƫg6_FœrIf2 iV4VЛo6֒_|a]XN:יZu⻧.'8:.,0ta!tݮ=߻/]nD]CUDN <,\㒧E̚Ekb]GkCIDoo@EaP8Vv6<9Yri$Z*bPP BeKRyJRYt_~G$__އ0up{_WUS(V0QߝzZ iܗڏPlMQ58J&Ұ7'|QF \ڄbNAPA&d ep;ݗ!7QԊҁO^AV !)77hxHx CtGdg?_™ȏRVoÊhn8AE>1VggCT-K'# SuZ݈ /[zUq_-;N>L۫J?kXBOoK|$"UMY<+p6pd-< ;>Ȥyv6 Z4tp"=})O j?eq6:k;Ǡ0JSa|+l$\4n; =F7;!47>'-d[|Jϫ9+ q@oO/7w6Lpad! sR| wsNe)GMwl\whKbS n `IJQ3B-gc9$#bG=j||b391P 6[? i?oڒ˒G[Dm2H8sC/{98OJ[лRIWtɈ&9uS^40rbaz% e4g Ãkǐѩo$DM 9dk b~HF&5zD[Hg˽4 Ԉ}l//]gVủݨ*j=墻yVW?Gj9ʗVa 8.ɞG~ҩ7ޯl' ˩6Awi ZVazkg`㙏9_xk{cN.;.#[ z x?>|+wP#nW䦾t *#f c G:?? Ӽ-P,D"¯f@^H\pk'zXZKgv^a6kF%N[KqTP$~mS32u7ZyŻHr,_mVDĂyO(3րo քo8tzϥ=K, w`h+O?%P51?+Pt* *y2Ӳ%eQ-L;ml*o9MrY"s4ϴUࡳ )ڥ"Mͼ$a#35e9Ekd W!ZL>TjJ0 4˪1ӱ$v+>!±sk:{,u<~YN"U'M<*>% ³ %lx~,KhJ;piMp,k(,@?scw[7Fnz!e#$nID"v9}}[ׂrbsK|Fo?i4zHeo1p[ ;hUw-[g@Yd ^&6+_ƭvxnG`b,AnY,$Xrփ2Xlua ۛB6NN_F@ Y$&eҖ]˾W~,{)pr2j. ŗh!F^3 G! #50PΥ@@ %mӕDA);ܼfi˃#~߁ <7!76d"bH&<7mΘ˓~xү󬗬K n VDzJ9#2]xA5JR!.h*"nJ82_GeKZn!3mڭ g}XhpUD ctW_BV h4oSҊ_C4V3br?Rj3CV"#ƽé8D%w5]HIH1,:\tK~4ݷjZq?OHrk /=%CI3G6IN@ p#ݺ=6)3q|2䷓*6bfV:U(Z<} D5pUnƄsZ hVO=V*iqSX^)nQl1V6`HG%GH2'O~7 ͭ޾= `W>GTγgIYV6Xz̦ gaUDR[%g-+f~\"N9orA!g͢T2MJSV% + GnI`I[z1N#E}% T."Ԥ>zD+Q%QjZKe7n##Wxc=z:4N2$n(np,,F^ﶏbIdnŅ-@XJ-]݊Sފ)BZ;[5jC[[=܀xc%}wEh%DL>+~s a= h pjk~Mo-gW,Csj!"|U*0DL߯L!`Ȼ(ūZYGModQ¼sZ{g57NE?u;o71jgHqٻ͌9 W5n*3Yq1#S ~^ p?|v&n bN:̮Wm{}5o\G}DiS0Q.Yt4Y2 i1ckFI}trJ+gў'EŶXz_YXg tu >߾Ԍ-0b(R+^a^̴^YMӹ$Y9}Nlz, ɚ#.zߡ>!Gp%:$N#KD^ G@*℔돽 \ًVY%KWSFJTWϲy|l߶D\Zuu)uL(e%LO=0{a4 ÜX"`H7ccї,+5\09}Dmr oӭ6?d3*X8jIW/|k>ϫ3g3f??rd$AS{/#Rpj.pަ2>3J@ϬPÎqYB$0Y>.;y}? -ywrC2 \ ,hn19eM@AmMe*CFQYi5LL~289TBpHܱ)i .I}SoPn=0p1.1΋qGI ?}%<0p*VX[bh3.?RhZ#,%2UnT(RNGTظAē3+=QĬ0) & rWx}j8s5^Ԇc4P)'19o.[ `o-2"cQH\v+W\S"l>x)ONmžPFd(V:Igm,遷eweH+7eibg"-~Jk {ГX-FKhg ,f"CHyQt:vi gܝgAGÑ#n gVt H{N9JoI%/-3 k8 \{2@ cr_sB-OwVdi7h;/{/OѴimxO0l5HCGej!KV$]5;㹮@czsiG-O80j2efNa@`ŤSwi9JΠ9 0*8.]}}l\rHsGޒe צZ&rJrIsȆM5P=\?}`{=gj AKyifM5DÇiD5A@2Zm%E1Q}["A>=LBrzjHW jh}Z@-UHH:CI3Q-k7@>jf%Hk .׭Fۛ]ȣ£Eؒ\(#!\1\rK3W t 5wUQ_˓XCԵU].̀a<'ˇTUkqgJt)nzRFfP<=NzK(qe1S}*}b& erq IZ@ܣ.@}&q h-E".dWS EFW]ü&<8Tk O鶖L7FnЯw--Yh({ beJ6I⏔{0uth^T " H<$+BZ #~M>sScq?B`7P/>H;aM;#,8sd]$OӧUR[o9{]Ŋ-Q{=#<`}eڌ_*rdJiCKokUgh? 7EM4q)[pctzQCtMcš=&6Y'f>\%x==ڲH<ͪ]AfGNQƛIRT>h8F[>^|}!\,wJ.9zD-Q: [b=:#3V|Yf 7ں哒TcAp3qC_Ul`V;ީכc[gێ~䪫\3Fv؛v.szۗLQ<_5ouV#>yŠGy}8fZ,$IXL[qS(O-qhqZZOzW[uMd鉲C"}1\)Uk lג#ˋ;9~ p*{T5 ɀʠR*kۧ{/XꇓL6r$ZNlɚ)$Kef}IboZCjEqSzNpZ`OL7 VB5 7hܩ!V/DSBکcJzY[#c玥oFu1 >=I2-k?_&.*a-w;:<>Ou9fv6=Zwc2UYR4[]8 Ej[*C i7ֻZ҅?gh L}HDGrgcZ6teޅh?mpUM:xh ոeƧDA5 a{6`zup>44ueBWrjIܠ}2@(IeE0b tF9(Zv]o`|%tT)W ѐq &T/;v[CJGzDEɑhmZQ-m-LvM9n' ؄j1ݢAC kFKϻ˃x݁/Fwҧ qIl+ , !<%MaK.Ң=4j\PIpuS2|v[T3;@9qVOx՟x=>A*_筋{cBJ*Y9{ W UZYpxaOw-%?EgWr9>ek/Z%+gF}4:&WWS?^ 6` ܐ|{[`[! x0/xw >```` `^@ `~ `+ws2&cѭQ5-^zP->Ӥ4M99e\z]ZTi_%YX }Qx>br3^횠 bK:!QCщ._oN}X{b3>3>3>3>3>3>W~/