#!/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=0180326610b66456e242d670f1b6036e # 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 {Z¤F:Ǒ~q9&^Wh<&,[mnv#~4 ѯ=Q?5I~7&?~pL4=X '۾j_%LF0&gXO L6zw4Аn{f糉36Mc}Я?t6,210m0QLMRJI0@r ; W.zh8?@<tCtt5:a2TyֈLD?'{`.̆s)ώBr 2CwG;1s̝W`2h9;'+˾jtFplaZX@Ǘ'u5c R V1 OJ̹%ΟjWV:KUߛjE|"I ʃii<@(_Sϗ+L^z)ß|w$J?w`/iT!mce q|oCVE,⬭%93;>d6#"2uf"Ppa0h.Xt %E(@`h@,@$uJfe)Kϸn!c$!67;I\-iP 0U@н̿oϒW{*3#i+\AIY]Ԍ++Z})g8@I#x\Zc hۜ-y;!]i=\ tnɖ)o2P40]hĐDP #w|=V}Ww@0P(1gn}a`NݸpۧP fAޖT+ 4loog&pF=VrՄ-+82b f3 l/2 9=%y TL`)wc@&VݗH \Bv@UD9$2N >kZB3C$F+B@v,>(`YΖ$ʖ qpA+ӋG s1rW` Ŏ\b%ꬾB DYmuETM1L rq6)ci__Uݕhѝ5|9:4cbZ!3izyuDԎL{.A<=X þVR6e?EaSdȔj0< | +2TbvGÍgP T/NI‡Pt=7NmIo If$ Vߪ&/^2KX!?daE>_.SiS=\ciG.7asp{taf=˒3r n:]3h]</>DEKXH2aEVA1ZY(ib&%Q ,ixdmI* 8C b+ voegKǔίxloCNH'?`HXt5rzBi>Tbv${{jLdeD rWմ16?í6Պg+3&?/VV`63X_Qp'!fGOg@[h9Sǔ;s7/Vm mf\$&Ř PM ԋD'&BQ@&h[jŸ2raH-GfInK)U}^o֠oSa|WS2Y%bG>w묘g)V󁸑@vy I-{a,l\IG%juc00n*&K~'Kq<}zVCM *(?;j)GfkF^v. M,]sKcDc"xcpReFڙ[KU0zξ2%?Rp-}+^d{` gO&ނrH\ W k&a8lc9!(ATMgqUtXy`$9z"j nsJcM]RYTSԗ8݄EzQV-`e' _؅23EʽûK_o?Ey )){e RWtMzѹbznc-zShS쓄|F5K2\UF'Z.KQlD&djzR)ـ?1AAH[>?}RRjm꟩<#T,fyB";gfsLI eA6IUs,R 'b9NNȿJnGe忉?䨌!crȤ]'%coKa ˙2RS7<;ƘÞ`!cF'IbZw ˔i|m!8hˎ]|[8ayV)S`G0mC-l fgQ\ؐGQ?px]L%p&j=ULhTJ#u6.?4f"޲ |,u*߉ Ft?`z$^ ;}9Ȇ=g`̚Vh '-2\?kPP>Vħfnyy޵K2/[I[fBwZXsr(l[ev{#M=%F~R>L"%H,.8KrZy.y"sS>I?+J@^oEۓSP(E+hIѯ. 2w{'#ڨ ͊MQIQ0dǮG V]#ʴq7\90Uv {($t ^}8ޛ;!:W^iʮ=V&ÔR+̮T&_ːGNoqyc[~~EgH6co0[ A`;'#d vjꖰ,uUװjZwfS>/3Yn]>i77sVon[V`k3Vvj}"!R3< q ,t@6756&okq b+Pz" CnS3JP͑^,R\ ^wS UyC#K/vzJ TM/R9K99no׎׼KBMjpq.F3 OI$,$!< VX {𶺷wİn ` oBajIVoתu kV( (ZiGo(wJ^Ww YZg'PeY nr\Ux@bjT ,ITiJ% z}zKo۔qwoRu"E&Z8ʚxrspX5izrS؄sạxx؀aZ}LGPJ0y.Wг $?~>cOi5:˞GpB'̰nDX{v<{\02U*:Rq-YB9M-8_h(Y*I /tH7eqq?7P9x\Lg:gW=+d dz+YY.?ȕ"%@krM@ 5& E0#:GwNv;E,~\lg_豝I?o;w8T(+<=d]> 19V# $m]4hB>ص2D_Ѱ) 9@%+ kR -\WsC,=#g-/d#;-!Eai y`kE%|RQcK!9.&x~A9p=K{`3f?jxzU t>v>92K@>eR `#ade#5} ZeS'_4?IDQoajz 3,[F-V!: Ξ`Je'N*ܖd9},4̗צ08*ii3'șݟߖbσK0,[u=.?9M!sojM AA|QLtlm3&]$(ݭF]>9nS^,^ĭd\4[o\\BsuIC=o| !<qh}Tz |-#Ծ7]\xi ^B  5͗x2\. O ?0]5<C r1 E.%IIWDDib0$ da7.dtQ|[cŵ,4v!>Ĵ>qwI;:.3|L 3 ѣ"J$(^4dy-UFߤG I)QOx~H~oa((&| )Gx ]PCXpD 1<].vbjg#bdtȭHB}ͫz44/H󰎾ddeNf2ˆ]@v!{&7IeI9MXugp1O-)9ƤCYB˙śsqi%o9}a=ʄOq~R=>\16Ca>;xVXhheYx[Z,zi"Q(_}7LPi.4z{ޣK==HP#["h۹e Y}^|5ryو=lئװ(ǻ *1%ƪq4V^HF(*Ί4˜Z(t9K3i(VD8HX|, 6V$K cDDg%P#%e NS| |Qg<bQ=,wzOXv78N ]>u#e:1!qOX$"Kk=V\9[S=ڮ]Kv1fVh\3Î7Ɠ疛F"=mN$c$anh|-E]65̓a}XQWf"wJa35p (|S1b1og (9llD). P OPM2ԫSR`$wi3nU,X~{ b31aupS%R߀{8ol2М^f7Pma:q_\K뼔LnmYۘ;'Ud'cbGЁ0wdTd?h,옯F۠m6!mm1:p "}~B%eì܈͘J}|k*ڇ<aWE< *e9L<)jpkPv-"-`+N g Eg'F2$y ,\[XZK h9դbݲ4@mn8<O7Hmu%u߅zK*>MG 3UmHXk3GdqΛ.Fp]XBиh!V;@<"ot_ٺh̖uDJNGi,^JQXχKzs[T-[v/aTٰ7X;찐F!uet:x3O7&E}jKeyjq#MJ%o0)Oxe8'>UϥˬXmz!:nl'wWKqG$|,։J4qd+y+#؊`fH'G \1!a!:W!0l#SuWlIHM\(솫t1CobS!]‚5gRK_j.h>cq#cRY˹w{p,Pb^ZiCn-V[쫟=Rpq!߰`_b/1bXk6clR}Ϥ~(.`'d?0,/M`DY[b O-lC,o}\X|^mknWohpy. @.XэH=Ta/,1*h -lľ^Ź=qSR ] Axe1e+EX3Tqnqx=qxxCuy8bC،p^/hqmE1p~awg=>i/ws^_{^u]($/J:Р@rgrLk.miz8^ j4XR1 Pp |Z/y ^6vHǸݏ昷w 8bthNC8( -mCBXYTۣ(AC@i: N#ŞpxBj>W|`(; $5"j$y(~H<ݕe=jCeρHV0y32V8Nτ)vNǰaKwj@ŅqimR_.M=Iv7d8.K`<{CPѠN=]l}jP>9F )l(6!#9JHi>}Rch}<8D M6rَ679h?a+ø0/[DM͇XW'鹏|8=~&q1$_U= -tULjh-Ll sѴLg+3I|iH5C$֓OM7{gXJI>L2#<=ԙO{U9f;y`S!=!'\!;ZUү*Hy l:7ʝH9gNMldMGtejKMpsd+R^ǃA)mK%,͈VMB!w3ZfivfO/=mƛ.8Q87@P "n$NEvkqj!X~Lژyy@i!"6XB$C yٵ&MDhm_l{oVƻ޶(6m1FaVkЁ~C/Q`<ǟ@[ E9VSo1=ϽdW*kӕ\=>ir -rK @ٲc;iƗ*;v^Tя$O QhlFR͊w.mhR G1L:xIQPJdbaih;bd3hF%؇-⽝ϐ1wŬ)bFu,h|7q`VFyWv68m3 )%$3J 1hc QFNZ{~}ZcJ׍CyjYi0Nԏ|4 g9 @.b6 Ǝa% EdfZ)WYyoVZ)eaf!2M/if!Ӥ KAד\ v޽5X:RaN#D`(aZ4DzD.FC8tW fY9Z-AҌw@gza UZ4c%n(SkWRlgn񯞾LAlpG6aG[6\Kl<Ŷ$$&L : hhWMqDu&˸9J (Ve̤d6Kw}m`֑ȠWvcӆDs b]Y yU6bPhe?X[" 9$y\HA!H9 R,5Td",l`0qg8Vk>pL/İiV-;K+\OAf> 5tl1@Mbo 邧 jY|L,(X6b.pq{.",F|E@n\X( }9Պ& p5gNPhT)]t+7(HpsN+Z̳[Eڹ1dU=!]TK6o?iܝGDeFIjLOߌ9 h RY_qķhPmYg2^tmptb6Lk0ESnacio%F@j ׄYw< [6  f# Di ݣ8gq'/Q6@جh5+ʂ@K73lSrQĶ&_OD>fgX=remM5O_$)oi[W! Gk&+So|bhSTj}omN%i2$K=Y-kPӚjw tp{DSOԱ" 6muvc֎U;>6:9NC.hJ6A4?G/(m&J0-0r[hZm1z ǰmt1/ifř$L-! Nɭ Õy8 ӑJ+#0+cW]&Et:jPM7ZbDh-I%/2\*E6 /^_ڿ-RobIl([3Cjm쯪y?c7]Y[^WooGÅ60S'pkp9h8lW}_XA%uw OtcS æ}_}O¯?գle+{͢I2n'kxu%-e}MܜL6Hk| @HÌ vG~|3j|g_נUU,: %'9_;h9ڟ1۾dx /H<)[dD̄R:9%h4+7f1Xo@6u2z>دELBIRwNEaD327.\hK]'偾)߸4l?M^IyZ' I`[Ĺ,x-tcؼlc8IyPoA (/{B"%@ 5yhbSNثn Ev=@'&)6epٕb5iy.DB$*hǫ+Cx.`]Y-\_ QYWF&8L,>bFp3^"A@M/a`b3 LVhu/Bcc:͒YU0b{[ay #ra+ S1| _b W@(iU=8<:Zss=8w|SureӍ#7іZr4mi^64&Ua)\]+=桚).<ʦ5Dwx3)-kD|'iU3?-goxȾP j/QefIlќϝFl>&8h!K:uO_:z,E@Lp]TvSp8)Õ$0HK ^(x}e#FGd1WK6FJ&|X_ #ĭ!HZM,)\pRep6N7dTWNQk5ofZa>VK૭0NvqmCvvcI׈cÍP jj^h2Z s׿-h% ?.uY^^桂2 hz@ Gd4%=CyXbkJgm)rAj;hސ䈥e!}I3?LPSMƟ*z }OTjB~7-h? `0Cy,c2`pW2Z'O>2dX2*/qцhL]ɍsg2.9Ś)ZP&0k!([yY!a]K~Q5Hh we+nTsT6moϔ<&b%maΣkPť&#(4g[8+2Z]l Zs8邖;-͆3eH\]]ѶfwpӼWMx\~r7*t$2FWmWsU( ! G!r[|cY7˃Cbt*wGe9u"o(IeDNsUUa_6UWWbG ={P:o1 OT!؛R%N8uZ)%~ ZҊE@fM&\/pK,t8Kޣ@Cm ɩXQlB:m33:>ZImT('JU>u*@ Gko,D}v6˟ySkTP .aNaN`b1sHcE6<~I *@ $SؤA?2Hm1) ͝.A!QUpnf1]Iu2lАؠKU^u9Ɩm)e^Uk3U@X RK4Exi[dkE3PC!xg6J3V)K .B)˧Ob)1f [f>Y  LF#> cT'HA 93*H)FA>>b%FH{QM*oVTfU6>:c掊@jŽhJ4ˌG4NMnꨘQΩ g"1eЈQucU1I@!s)zɏC'Px7$,Į8 t+^S];&B?h"!@UCL4R?ј)H@+a*A9SAm:n0"*Ss6H&r ,>=x7I'"Pr^@~Ob izldsq4 )D$}cEud>"edžZbnai@[㏍bU6f7wDL3y7j5p[22%"WVHw(2惉 bVyxt?%(f^~aE#ւӍr\NrK%S5+UQh40/k[;1a4CF0&Teg32)1M_}i1$(X :z[h8dEp tHމ)QRj7pl-qQ5UsvYԳ6M3J%LI֛vX!^=ARPYGqNRTu:F]c&btllZ ۆi]OY?4w>:ye$EbVF+F7dG%eqMc~o~4j饎pFDKqQrKCy,s:Lk2E?gP>O]Ï109Mx+EN^#͙Kɱf hD_ћ B`N_ZGtmN2})~|p(S*(tF­ SnKFC qhС RMo8RµjfhTd)C`Ƚ+Nk[ QlzŖWRlL9;ZMfRp"$ hIYL{; L|H`t6F0{$JXLsl.:yYȭð 4iI#XIb:VDC#,<8;ag҈;[>UOjf1(WgZhd2bmۥPj]){:ud< m]¬q16Xw3{X,/dNS2+SpގtѼX(JRRl"E}Yfً.HNdF, ZP0gSuEg=9n摞x} G$%Ĺ$] _NĪ2 o4OQ:P^c^$T83gz Q\2,ήFHT49Ǻ]s(}ϐe_˻;u]kT4SA LjԠW+0T,[+Ra͑Ry< "(6<12^z^ bÙ`\_lUaJ/#P5a Q|1e:xnڈfϮmݜfi^EM2ÔoZk4>  mQxN^Yoy;HjmKcX|ҡn-+ Oq(5qMBƃ^ (GK2 AA]ne&Mde*xy!~yl-sHr8SCvB<zL~ X~eΪCg#fTܜSuXW74"E&lHRT5| m{]UKC.!ofhŴcScG[?B)$!)ۜ59=̚D%9C^^m|2ES{QV<YNQT; s`sɭ%_9۽f^V{Yp^s!wVchoH -_azO@Irpͩ~{cNT$7e\\* hmWIGVOG)qp36 퀖sU#j{.-KCԢLJǘ1l$mkAA X6-sX6b^fi^gx4xh=?F K T3Ӑ**$0y/86&CRNb]{k 䡿_|:{H\/LJvG;~6΅,E^vo2__v_2 j;k L {zNL|IJ; Γ UIJ1:SwIA&f\"ԝ1^ho&n+J[P_<54 E23&֦#Pfa*n%o7b33N&O, #GMDǴϦkuOhBLQ%|KV ƆzWFko\$!#&43*Y_*#ac[g 0EdPl2N^mj6DyItqGYYTViʾ() eR5Y<_00%n%aSb% 0Xe@&UY!֓ښL )R=¤)oߠlڳٳ{|r?s?s6?# 1?3}lǛ?kQ(%CQ5*n(bIoe7937pdYBCRJR!eu5} @aM¸Q_E?8ѯk-g];o^s51D_5F)x?^aZwyTU}qpmj?wM}ͽ Bx_}o͜sqRNؖjlwqi!^u^rPX(¢_`[}w$%p-|b毽_sieޜ*x%\2zx&-˶Y.+BeުdkJ派U ۬l5*HtJRk/$5mi4LƉv9M8x9[7$*>u'J )vZKZgCעCB׼sqLakHa(ݕF]5xjTYe`vcuZWKTiN{-I{uz#HyD!g ԑAOu Nzf׏u]~$uo\|z{k :4ĪE3h[$9}k{-io:[3G>\rO?'\"-γP@זB^K4d< g 6e.Ch> V :﹇bD}5!06 6[Ξ9 ;4V3Y& 9/ ^3|Fװd7.׌ɷy!{J/'S@>ƭИ<~}L:FŜ ;vا2+lޅ!7a;هP-}d.b0=PxҔ\6 HW|{^E%Ӑe;NP$zV mE亁ODa >(j1:)Яeƚ]X񀕅у}Eзh9ӕVi#6$B](qddķQ4Dʕ4w7%!|ڽ0[QX¢<|eg*U:Y*z34M9BT5%7Ny+Djy]^vS}wO1_6~Chh:HJtxғ.Z]lVǻ鳜nc&AH6oWVs#F"k/&(q[]HZ9z(^'8`G'hƅk9hĸzvn Xʰ)0;?8u##Dб g>wQNb)Yp9=3a_)>[JD'm8 qG9˽!CDijеs0xl؈jF@|![xaXE6D|/j&:O^ȝ@<#0B-.IDb-3RA*Qf==1Qsݘ)M'Hv,A@?֢ Sk\~jR ,_w2zȲiSLpxbź|UA SНkJ:Tw#IislťLecH_VcPxL%QfH!բ" [#6 KA֖l8Y$=0)#Z f+b8\YM-f'-3Jawj1qKQ2Ov_WkG)Yҹ&eR5 ӘtknVP Wd+YxB̵]B, ʒXQi%\F0V7=TA "c@[2r{~!c ӵJY_'s;s;6.N : GY;z5~st\{LPy%|kIO*P=F#TQ$eqL.S3jP,VԲ2o$J,i/}OgLֈ2}ee2׌VگgY,+YV9ӳR{m30q$"9^]t;zAC1KJ3ܫިh(><-PՊ_ՊU(dC,c/c*eG?Qn9OG{B-,qsYLr3L\KNQ {P" ꅟ /0'5,SihҶߜ_bOVh=Q3]XE3 tFmI t>Vd9.ǥRCBJ@K8S< gŽs^{zy95c [%f:WTkoU}[ITO v+s(}碫%ы{g?IɍspL lTq"οg-r1xK %OV(~+lFʺX[qswZ'ޚ[i_& G_V#ݡ'-gOVFBs<nYu+>_S?Wv>73aL^Mpu򮮄U< Ho1JVsH[:6cMng2ŝ8%7>0&B{0 >b'xW,}WBɩseи*K%δ;i+H&:$'IB+= 2L>LD$xBMѠi7oSIOTcL(ap.ɧkM#y88;Fa{0-}:i>l/oǿl[yl9Kp[JzQwY|X|Qin>h7jQ֑y{Px>}Cf݃=: ۂ·_|s>Z5{r>%'NPq> {Rp>{Ro>z{Rn>'{Qm>'QlR(!G IT,ַwNbѭJsR],9~}Q,I|T=q 2r'ezyEg^xƯΩlK¾qXhԅa1ZyIIqB;ۆDKɸD%EM{E?ᄈt$ywXe+Rm2Zm\%E)J}򥕻4h%xXۋP7UY;/уh[Qf\&6W͟{m(ZjwV4X8рi#zy '73M}XM!"&.BtY P 4 8g؜yXdG/#ȋ4-_zҤBыŜGyGyGy;pQ60rKe;Ǹ>;`8=Cb!YgN6HSQ~G q:FrB#u[P