#!/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=fcecfbbbb3231436e2276d1a34110478 # 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 ,4[ul[E j#<8@ 4#L)*;JQg'/)mtYPFeݜ=Q0oQ%hEmT2^>W(ncp>iu'Hg04/.rj#]hGd<em-"Ñfd0"հ8?jǺf4&]$cӯ1 lD28'Wڨs 3?qW;N ۣޙ#2C#H\W7:~u[JZLv >J4}p1FjWi1Ҕ>ub pxEѧjh9aIX{3 d]!crfd8nhzG3Io`0M Qm8x>:kd8:#pl.c3Oy$/5h!g 8`E`$RJEO nhun- N(. uU&+IAGpPCjX׹g[Zu}{K١\vΫUc0u4me_[sZ5:#}86d[}4g˓?պ1Of%ZfzC2իUάFUZOd!:@!%k+c4[@)]kS7_ow_׿'R<Zi}}N{GiT!lci qxoCTE,⬭%93;>D6#""uf"Pp1`.Xp $E(ch/@$yJfi)oJ1QCCf!I@xP-_Ee̒;maY!*X  E/sџ 5\O,+B8+lq2B=`{ HtVucy^6 D0%,]∖x8ǹ/11ܑmrw7GGۇF8mkI*-Z@ _W rd$'Ho͓7'3eRe!+ 2!Y`5[`-] f3y=I p&i@ߜ5i3zη'i2gS|[װHگr`:т,,.bi+b  ᜒ67=—/a sC !;|Z} lö1Q=Ӹټ4K;a8@؂ ڴ"J1wC:k-N "* 1P=:"¯ eMץXB3C\'FWJ{n2yҍ h%2[([+NFL.!&qcgeg@؞nr .0.۸ĬI*YyE6b/ ;jgJ cXdnVR¾*&n+ 0#;ULkx9:4cbX!yzyqDԎL{.*?=þV]hR>͟5v4r4n&,nn. ӬgIrZXBCy\ςGš{k#ǂaH0@"Ašʍ},e2W$H#KhR+Ҹ,ڒXU*l97#ZS=J *6@N5c1p^;[dCaq5Xi/Dx*lwRa&!ys96ĒfjRY8əHrkL3D:Dd<kiP˃k1ԊϵLr\)Qt2Ь#y3}MF"Q4e/(7(̖Kc0rLҦ'TL>Ef3K73 mwz<&oFpAnjdG87-Ck3 Xٞ+״SݪX: Wn hw#S)LxYe~<{R6w1Q$PCSrI2_X$- 8Kq݀e}vaͿG2{_Ã||=b@@+YQ[~-;\R88U~-b{ʵÜEoFj=?E2@Π^!͵&^W+`$.#Z";xTZM+\}n}"6#ڠ׳V+~>̘_~XY̓D0czFaSl>n0ܶOSY#of9'^K .pƫWl ,!x[PQ Klxq8 -_'$S%-Tr!3*ق,ޚ+: g(Uo* 6I҃nC3>**H+*VǹfQƤrO 8f"2!#vb&xt]Y M|-!^nxղQ {ujق,ժ{ o6b 4uu{ ǣL߱[8CHP!33:D2CLAoK3u0<SjSP(7:ڊB{5'{SQo?Ub=ssf73d%9V1$/E@LnTr^q(s[xS`;XQ-TiZ&i\%,#Cv ^|Tf7`7'&1^r{C')ڦLE8g)AJef 5Kkv1K˭snF8P\ _dd@Q1]e} *d` R2 nFo)*#HXT012hl$qI% ڰ7  Adg}tLn)`“hQzE#al0l1Vh#jAIX27/pY).ڲc/Vky|nX5Džb?R03jL3-xbȀB`F^ϑyő r?c (XHG*9 =.U豖ZZEbGrXw3{gq9Pf {fw7d;0~/")ӍJ_z$A^& !}DCXڳCjfMYKC[ Z Ďp]82;ɏc>>5)9[g~,ţ}wȋki VRn5cU rfQΔ qQvo*$ȟOYIR|9 =@=sbInXcUK|9%Odl:Գ"ZF4l<=I8_i$ Bx1w[s2)S,Kx |U_Hz Z~z4 8y'OՕQ ;J)vUX{!!{H`G!\ {!wH[STV~]M.AA>_=@~Ҷ6mUm#Lxod'L$F5رok[NrO+OU]êiޕOX?rudVV*<ߧwsa[Von[VկxZ=ڍ}r$H HlnǷd2%LxT织$ǵ*L_x^CEp7 QN-CRϔB+B%6GzRK)r%X$z]W?9:N)V /N)6Rɫ7 K).縺];J_. 6ŹPeπ6:4Za6W/ 6*N\}s}R(T9' +ë'U|^X _>\(YY$ÃPxjvu+_x]݃gi9@sgo3q-nWmQ57&Q * .mSjݽJՉ\j*kNϵcմObA3uRaIk}.Jx2mB+[J^xz_Cb6xσT?]+d/{ } H2BYaY+po rTK w8f 7J~4#|as #d&)8ڿ!@=d}em?Gq@Tc%8FeFu]tZxcoqCN$!=x}s2F=& &[tv 4l^NzW#en#g$G֥6`j~ʿ+n׌_3R(p[InmFFTW Ae.zRJ@W#a2#\!PBm:B>s9sU3Epm_bq|)Ϟg˕\=>i+DJ#䚀\krM@&`FtjDۗwы>YTϾc;i aU=E~,w( Gq QVoxz4Qe]<}2br FHںhф|ke<ƣaS8 @rJ'V\פ20P'Z S9l.Xc{8FZ^rY]GvZCګ^FQ2DJƖn#Csf-]`kx :\b,H\K,`H@n#]ak :YhӛCpC},i}Г4wDu] %f:2 ng GEH6QJ- itS[<>PPL*R3^ਉ@bxf,&9-\(bn8΀GLr[HWh4i^ja}oWȼX7d0 $CtLn&Fs<2cZ*ASrIՇ37 Jr),{ OZz|Rby өmx|wN`dz·Z9P+UѩsЗg/Ppҹ&YNAllHf5hl1'x BKHKyK3+G"DKK Js_h/S6yŢz )Ynq|FtcB Bۭ?U$ID"'֘{ҹr s++z]/2b̬#"go'#-7{K)Dz$ۜrI4I86g$$Z4λl1f=$fDkKT1y jZxxT2jsy&MS0,֠0+ZEZ-WƝ6ΦiήOdH@X P28@sIe+zixۀhqx8Rn҅;eJ D댿 4U}g\wN*,]I\Yi@V$WFQ̐@OJbBBB}7tB`( 76GiçS P WbpŦ~=F'CkΤ08Ֆ]і}~*AKoQGreyXy?}O%68ժZyΘ6ty6آ+)a5ڽžI#72J E!.#,ٿLa=,ugKL:h2FpB VqNeU.[ Pگ6dh ַ~(HԀlx[{P?n]%^YbYRcY˾S~,2Zh"P8ZJMSt1LDbF}琙{XqPكyx xqtņ7x{-,ZFbc>.o{]r׿?_{^_{ߍQwۅB $ z<|&Dܖ#K%2׾ ecXz8iy{ q#Fjd8sВ6T!UH=j"ԋ8d #]8R g- xGR*KRG]Y֣84;QVt{_m7C.j%i13 LQio} xxpY\(+r4ؓdwKƃ~J?$! {!a XeivX EL/plMƌbR;c؈ӧ(5FVj˃CTdC,7mzFQ|2; E|uu,͇i[i7/CkEXUأB7:PXexayĦ]X)t(rb2_a,TmJ% /$լb Tqѣ"$"zQ|d5eTYgqݮ'V<}); B : 38NZg0mUP$hPZvVx T(ئH~؞WowR#Ra?ɺl!inKt?NTƝdzx'M%Q l8>>y>M/}1swߌYS0Db=tg|$ab{sڦn2 p m@ћ HrvX`CdXduǤ\ǜ2-b+D2tn`]KI{0`DOvk6me mK9͎bnFhn7rseߟ0 Qtsh5eFSoܫ@uWKsOd%@n [%Ȗ#I5DPkJ~'yP`ؠBe32nVl xqnƖ7(fM7fAka<2̫#bEve*g:Qa6v|2y0'&r6J161:o fC8S `P ֢@.t @ {g4PaQ2{`62,Җae(1MM󙜢Xb;sud b#< s>ڴY0Zb) ,%$Q'1`P(Сf_GGn#z3]dTR`Fٵ*c&%YB+kDmR5{6ܨ%ʜ 9m؀Ϋz_׶ B-ڂ!S"L-ErAI̖bZ&a9Mg[=Z)`z!Mj)^^z 44UEO>fhB|[H<Qeb%gDs)s1`1+;hKG}SܧbŚno)c7K89 yu;4F)X_$V4l9 =tFJ=Z['A9M(@Du<.%]d͏DGܚ-΍9& bZ2yklI4<%(7JOT۔er} fa@cTJPu%Ekxm=! VG2ka*g\,R4r cdKsmD~/!6"&86eR`&ܴ+Yز)FWX5!ƎN ZL;8%Ɖ=h G8<} Ax8f~F ^F^VZјa+7z"5|"7;C) n,hC,nyz`&xM1v~cH#f7\ނ 9T8R^3\tsUG*REP}khp .Iy YJ1ZoYCWTc^xmޓ$"z2!niP3v\8!D}Tqu4}Z^}<=;q &?ѦOϰHN0C獑?%#8zE_`Sk glϖGOc MqIi"hMѺ@Y?yqDx 6dp"zeI9dMp O2OHT}BA7,"R23 JݤFs[i.AVz1:^G,^Ǖ(L۝`Ot7W T5{a(ƹF ncxel4[ ׍+`S>KXېc渡o#~v JS8| F%ڄZ~ZÑ(YcH&u__`XIqQ#ެ0 aB`̬yBZp;Yqd$$xʩe%=Ȉq u]UOG[̍G 䦅c9 fj\"k{ *$(d9E3-rAIaINZ85نq9=@S0> 9zAst6xWi9+DB{j[d8h}I3+F(%eej )^Pw"Nn^ݐ[YU_1aY0 M}0y,:әPm_ノ?_WW 04<#ZGp(ha=L*ywܷ͵T)Yxm:@}M"Wd3F⌕FR{ok}dUucx^y~Ooo~+_ Lٞi}Oh]5[h|g1'#+ޥP>!ԜU.Gsˋ\sW3K(9%u\d[x\eHi-xoPJ׵ 01XMwaDO~ʌ lCfSxQy^F!$phžR*~^}$D3 /?lZ*zS=zQZ~,*fq O(۸WWRt9̤n7<`p7Gipe} Z_e@͢#>?pPrƘI] ;MfēBE&@Tx^L(SqFr;.mCkS)ӯQ $/{t_Fd1#S pz劦EqrZKC赟4蟟%j]Y|@j} lEˢ {:A76(lt e݀'$RtRx+F?ᄽ ^ >kwc4{|bb_]9 \_WB$HkV|@Q?Qэb ֕ey:`xXx-^*lJ΄#Nk8j7%"T.^&6ӀdF_!4v8%Dd?tv̠VX475l^/|-<\ /lt 4BWbmJڇ;GA!4wNBF#|O NAlkԇb}}ݪ\tcMG1A#m xnvڡפjx>. =}a{ Wvc dyf oun"6>ڏꤲi ?b+^w&` ?ka*g](Nibp%I Ғm¡ʪE/^E1x|uو8YwUѧ$׫okH`*q',eVzK \.T*sYdl(kӣ D(;S~T{Z[YFR"j=`\ۿAP(zk5p)lCEVgzof Z"f '$eKj]~yF^Po,y'A56YF@IO?hPj8ؚdDilDc&Y[\=7$9b)|YH'y_LTJkw_m.`;Mn O x-X ا4=xuxJ0V/ s5BF5jH>V^~|-@9a}-Ң_E8.&)]Jk>ՅM3%ɿXIE'Tq l,V6J.G V>[>E)f yaL8:`$|W)FW4//xU)W% cU\#3a+HvCC8%{Xe#ʝQYNț97uRQ \U-h)סMՕؑCmΛp̹BBU.):O(`-ZA}RwFfT% @,96bTJY|B.S9$HlR'iOo}0&TINV?aJ _bQ4lS ҃- κ{=eh?nBr꾡.V)N @V:zf0ERfUv *`Q ~o @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%|KjOQ@j2(lbK#$wܣCe&tQ%KKel at5Ե3fhl4MI>mQby(4ߒ*)BY{B)pzVFQqCtXLz.aQ5#?*V)+쐯ckX *őH~/X3o9*y3' t7vNs cϿϣ*}w++mSNЏsOnkm"Eho6np ǶTd#wKC :C :lݔ ¯BwbW)ؖaFE8:II>lDq8ǿykgZ7 Co :(7s_8 n1a6?]Ig߿hLHv22ҢQ🕳h,6V >i |;oM֤o-T!䚡9oiU65[ Ҫ. 3IM[M5**q"&i{Nd^֍> ORC ֒P7ĵh 35/flؚ4RJwQW91c/=.9U#of(ͫo1xt>v֤^KRg6iވ3R0yuQ=2udӆo~%ಂ)78ch]q߽rv;I['_,.; 8a +49ImshhߚGKc[<}.WrO?'\<_$y 虂RkɳZ2]lly:!#c׆5zڥ}wGa Dǀ'kf@!, vU}w@RrMq4UA ;F#]avebV.F=;$5)CXB8^l}g..XnT`q6(dI $*1f+QB)Sg] 8x= %I'Eǻd=+^2ww] c> N$w9EjĠE yp %au9<>۪1n3Mugb}#VKf-,ץvuť1|U"b݁/+}o5 GN*{j-憈3MdlPp{ jhHg*.lXwBq PvA5(/?cè_W[Bi úMhb^fFLE+ Sc˵4?<]1ąI R8Vl{>GQc=Pl5"=d&$f3G޿rG4g g iP4swFiHYD::R#ֵ+P;qc͚*yQgt0ˤ;!6'k=pF_1=0dqO 54dZygܸǯѰiUǨS34c[f>wͻ=6l8oLEL=Ԁ Uцc{/+۽d2_Ңl |w]/jam#\7)Y"LA:E "F XӲ +06z06 4>qpmĦB%Nx lY;0F0cu\{CF.f$Ov+j]XU Ay\*BǞ?KEof)]&6uH 3n R\Cn<5o`M3CIqAzғ0E|J0tWSxw?}m$fQjwHdd!;n IB׿^4G-pPp## 7RKY6fnbD1T:$L^fa|^y J>1AXl%5 OHK$ZY+#-佖*ই5J0hZTCdlhkXFno<ٯX?{uLyV?|r;s;s?iC~0DSW7Gu +^>$n`z c,0NEER&+:2?=eQ*bE-+F\kk`FwT}dx/WPl}!s XaZzβe}==˚(:W6, sm}-G"J-"L84D<}*7*+̽z퍊BUUXUBH60(2V2V2*PF{#thؚ_,¢7G1$74ʵuN-^sb[Za2?f>x&m%fd`e֣;E?х^T1. B`f)DȋpH)P QcAvٟXbq\*5:$*) Cp 0ϳ{V;ׯïY3`xﹹ%Yb:q|[N;I/MNY;WKJ`By8lj*)G|.Z x=/;ٱ~H?7< ͔pF,i{"Wox}'PjU;/km4Em;{uyٽ]e@im~Te:,>|rD~oyot-4Ɲ[iU=qpens3W'J]5˳0&Q:iű;aP9dv&_iaSr3m2.7 #gŢ؇Jj(y%:WN᭲TLkS4kҫLr)^}Nd+se.9D UkL`wcyӽ^=s͗ªKZzwmS5CHNrfnN2rxu_<SgFf}}. C߾"gmZg'&#@/$@D(tܴ v6D5[<Ƅjf|A؄0Cgҷ)Ol/oǿl[yt%Kp[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