#!/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=fd278caecfc69a9bed2f84df6a3cc32d # 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 P/XZ\}WF6&` hkleB=:,mKg߽3z B,>sν3֕3p6V޽Hg]e滷ll 6'Sg/p~~(jw/.CQF_>!F[ˢ:  yqnnoJ4p;7m{zGAIܸ|!;pmU0tb{nлq}&@BFNl :Z Aē 0^ iH鄑1BvJp1>BeL=ܑ㗗0)D@}^@Ta!gOG8"F|1Bwah A -L$bqy6![#8s#@=0PH!Dx= yπ:B* pFea7D0qlr2Lu|rt KD7:W;s׵8AMZO+NZ1DYGoϺ,+UsWx$fiwͮ%7k<. V8`UbEHj Cw?1#$jGTE굳F#gv W׍Zj28U}К]aT@:oj -8g1wZdJjP Xlhk5ЉO% `i S;h8a]{qUgZ^ӌ=h3C#Vn t<:kOovN["}*&Yͭ& >:1P';YXTa@sn H*U4~5kϹnhEM7@gpP=c\ uuUGZ `mXux^ ;SDIca܋|hujy`bWօ7j5n57כHm=RF1[/g79ϧN~ze(k#7ښ:O,k;-{{d+)L=uzzvWcO4M>IR=KTiOw);23UY'IVӸJegrs`/QEr55f.-~/k_嫸c+ڥ0M[e;ӽ:*u4D/ -|rQ%YxOH ]lrp yфCN֪k`_uZ#.lD‹|ne`#[:2V9KJ4+s,CPJ+ bs oR*?+}N 7s ?f!*\OeGW $mciWy-d.5?p3곮yu4FdWe~f;BF7G色cxk둵NL\|8u __(+eqf z(yJvqLcvΒzۢZ+1DI+| ;I1HgMm[& E!B7f2-_LW::$|C<ڤz4qhF!PY-h܌ZMIAG@GF#S=FǢX:\Ld5V  'ާXաR2fFHή6NAR_<_aC7VR%"Oč:jw2˾CAnXIM  sSBur#1j5$ޜ0Y> QnVPhB?/E%;$< _̫Uv77|g`xh~q|𚕅FДd9, PNNsm};s(/ꋅ.HŒ8>jrQ,xc5^=֩v Fݬױ 1FwfC7V+HJ6t ȼȿFQ&|ꝁcE3 Elܣ'؇De& EѠ$ZyЧco(8ʄټird0)eA$rʐ7ήNN޳=CD4{-AˁoOy_(jdML+F]%g,7{AQPzgaDž@LS).ڬddzñ/fTQb:N9z7F*,+pKÑ&J{͗gI:["ez(U ESOYkƙ֚uU]ulT:$rdsx^5ejWubT*Ja)%9'BiUQ-[2Q;"#2K-w$ gNToĝ9QlT0 7LJcGM:oƫf`bӊ{ q(*ǡUfJ6sz05叕eW]1!byBYL0`C[$tejB ?e';D^2߼ql<VڳKv}E=%C#3UD* (Ql䚾Igr\"޲\ uK =i2|O kTFr;N|WN: Gٽ|y\srr'Q&]Wl̾.UߓE'ӡS|φlڨ"`o& ŪF8WF^)}2\%eWGCt6K|?F%S,A6nnсvyٌOx- .oBqجwc_asK=SkX+ X[*жZe>R$ɴHem3#22[e}dn@Ue]G\֐"י|y0`pζFo/;Tl%j&M,IFd>~!{PU* ES?{ћa5ͬYu]0kEy9Wω37skJF%iZG6p8rIIenŽUk8f>6Oˌnu 32ݡGǛV LT3p/HlBZ`6TcTF8SMz@ Mit;i+FҥږQjB+Jp1ɀOqP-C8) hEorpߦƤti;pi4*/-0{ ņ2o.v -PB'T(VM5g$A0_Gyg7Zs{c8"p,28HKQYD }J,]P84ro/q (gz Q^ H.nu. )lyJK8e_ٗmI=gWNCtM3@7-ݛ ak ԈJ9ԠW9 f Zm | 04iرEaH&]&CѢqĖҜw 3RÙ 9Wu.\{j7?peA9(oV^Mad։ qn* &oZk4>v@ kQ`@$󮗌a)[2',%[C[G[NSfgTY& 3Zђ~YnYw!֛d6e.E_fke9/}JocuC0JtHkJRթ( l@_׀V?nB3/Fzmԍu-zsxt._ơGG`5~W(D52u 7:<9ް3iŽf] oO^mT=Ur^NCEm %ׯ~ӱ'N K>IG.#o&帎d顴h3g ҄d9}k<;isY4v%0Շ.RU8D}SVV7+ -'(([[\Jfnb&Em.r<7o-\yټ 7쫴8Lo%P8*_k4oI =^z%]5O{'{+ӁFƠb_8CޯeAE_&8:@L &Ph44!L׺Kw/po'z$ V9>$bat(H;E?_ }ӍE`*44=up\RjM~0SkKtu=0Pn"ק'uv7i_6XSOx]vl<{jKw@<@wKސTӐ)v΢䶞QN(Wo~R\! x,7qZp:Rd?ٯVów"V-N..m4j=h0[_u7&p>U9zyל0dT\ ZIҋ a6[Iɟӽ1&X#K ͝{]#V { Z^rKG5C1u̲ t\8an>w“ ebR^Pc% AtLtk)e(dScw 63!hQ,̣vj6#,N|=jC3O[%K$b a"\u WZtO]jaZGPW}i *]tczG5Okۋz4 u\j믘r%n$aWb XTӁBqYI]KUi@\-K{nAW4N}@a& u\g+S3OS)?7R?`Lk6 {NwJSxɇV|Sn,6ܵ_jak.b(tU"~*NJO'HImEۧ{;` $MdYZ˘pe^!\Ja0e{n%H^[JCZ 7^#qެi 3mKԚCUƳ^\?/'zRC6SK2Iu]k%cQc)xJ-U ׆x !5aJV adS0CX յa) o& X3ŻI?c ^X7W:7 JRf0=jz>Jel\KZItGlۇ>dPyʈNC1x+6u N@0OK8vezX2yx1kg12RʆW*M`4 0"}XjԄs|d)OX9d쉍s7)qxP,NF?9a=N3{eօYЎE梣$N]&[0V:7i {ȏ9 rA]C~ACZf2(K搌AdJ/ؓwry+W2yBTB(?kt)mP̏9,AgF! 9Vp{y~jl]v5mG?=;SG*jN.j)PkAѾK:~ iOe͚k(v`Q<&X2tz"hU`Cp1|D`/9^ajMB%G""YAG|;RMcv6yw>nN'Inγx248ʰ-Ig(so-q8`^UV?dϾ%xXu-1pMFD#NjaѲw4ϸA37 O}@V\.vv -jJs x$;@BBS؋2ނYy{`mlĘ)%9H_qb֏ ]*vKn4i=BC;*;5a4U6^5ք.d +AJN؊7 ]rEƀca9ǓYjad gCrS$B5f6.J{6hQaUOiYUC~B)%\OS[.9_4 TvدWwUkto`z+3uc"y e:^bfۛłwz*1o BIJeu⮾9%Q}u`g_m/Re4sk0T`w6hJ(NReK(o(d=ql=yV ogni,1&/pT$d2Sd,rc ISjsܲL"guoF$c cƓg`dw/%i|QI2Rf^ ˝1[:z04#Ja bu%,JpzK $n{t?'Έ~\C9O bwy %tKOpL2OU(TU) (tn1ka<fn'&iw hCMs@s܉l|F= Vp$vѫ=ٹfRw 87!ܮ:z( M AMB> ~z$3&p1L{89186hn~5"R9~HHՆQΜꦫ_G?>z]MswZ!`#iy'<0z91Yˆj\zv2Z0l9eO\'1b*|r6s }աjB 3h?~ )lyF+ Aa4;)l:"_C쁰gns.|tɬRpUZ7^sY9Fߓpŗbu[2/KZ/h;Q'1/4*ww=NǑO*Pvנ$I CC<ㄦ  ,<ۦpn=L&yewo1 ]2T-cJ‹cE4Z[l'H9g޵x_mW6~W=]]W֟=~i4w;Ni70:wsLfZE ,~Zg_л4BN,m'w=8܍w~<{#/# cJF]AA@|?5C5 )MH[④CK&P X[ mC^ORgK_uTa  _|ـS6j5u %RSMMlڸHWG%0| Z{].lNـ|[#g\ [h%j%] 敥ڻ >XYC!bwОA *%>64괚IDajm1Upb[FK `pt61kfSoә0ȆB]>.tLPECxVz=K ܜ{EgvxƺHWJE%`7MąiʰMxPRR|٭w QǀxlNMRvxT6t\I ?mJƺxq#9 6]p>%Ǐ u(a&I(nߛX|\9d>GӍvK2z)uBǐ66lII5ĒZДz 7_ycAwwy;S*՚sHԺWgAv0TS o%~J1>&'{VkOfp]8GT; FEvN޼:;A4+<< md 2X`E9(=ۤ:zCjMQ<Α2E ^U6N'6ݏ>,`dXIV9ۮ `zFsPŴGX( 7v $t%J{*ҁ_`G*t\32I$>g\}8${t<&bޘ[]WW}z3]Lg|YC7_G n(i7ͼE{=>,eZz#Ҁ nK'U};jT3af\\Z@F>Ų*gH٣&S2mpS:4@ 4=f\,h Pk~9u_QVtLnmvXdSUX푽=| WGl|+ UE@HR jgce Yk_+rNG3g Ba<k/9O6{MBh#[9Q 3sC7l΄ƥ 4ǚ+†epT/,l*ϤqVr[n`(? 4LkvS+<[9Fj hydbݲT + dg ;\6hE*ڂ]Q0_^DuߠPh\([6]^5//UvQ:oL聹[\ӓsm 3l,[6EIKub*}0xAB>M2lO_M >7I97ҌmD TqGyDM +Ù]$ɮzxƺVI L.nSq>_Dfp:PL@ *!87=Rr}vӼyrn WmBɁ dȖabns˴:]ўZ~xmTU*iwL?i4c1|/9d nxx䀢I:ф\9''A +@q'P) H:6i6EBa+Z]?o-R!}e'(jC-fOOꫳ7ypj߭wė0,_W_mռ_YN`/4*앵"+\KY"Y.jyJ9Z[_CDY>A=$>TOCP1_dSfuE4WZ 4njiJUBȾSGAױcթ;ҧOx6NckJtHWȇ}PD~ zs2#-?xlj~S=Js5Rz/e8>]44NH4< 3׍zU[&7/9DD,&m4X{lxז%o+jS;bى>6//k6?|\qOtOOV7*2x">_K#۹nNw-| +;^BX+Ops򮮄U\dI#}22t[G,uJn{]B|Q? ~b_qfJfJu&jwdtruk(2$+[$^ܟيHr49$ocU1ʧN+%V&xۣk\ .iؽr zu5I)}^?k*F:_`8 n81hֿLf'}mZ4?tIǨttf.s2\jr*33\|AjS@?Hv/=@SNMSᅥwjZ}VߩwjZ}s4Zb@./聏7=AOvMLZHpI#9_%<~(v2IŮy7q N /vgU4O Zp_jP|%m/3nb޻bd9ܭF/"{ӏKkr,S܋v}!'<48!1A)l(iHi4b_|F*30gQ΂`dYN0TdlwhoD@l=-4uMw(LɈ j%!ȇcBDZ?"-tW5M z65~'zдj\Ĩf9)cJf=Ib=N50(@VДj7;%L/lbT%vThvvῈ#=?D%L9zU֝ ^ ՝mc GұSvLN6>%s5*ˁ@ϕ)pSjل<*N"s1hd]}x7#RAN|-0a!|Sݕ6 -qIstӿr'(0?'==f=}C_<$o6y$bK|\*T'ꝡ&RA"Osfؓ dļJ.w92aW#UL'w #c2 oIckT QY̒ǑH2.OByn 8: u98RDxtv 7&D}YJBlk^Cm^.#/Oi c`TʶQB!Ws6tYɉ3ϰxqtM@kSS-1  HzˋfXن .IȰfa?b]`~_~5LXz(R:/H ctG[[&2mA,@XEՊyavO|w-/xS3Jnr~[~ϘU?^YϿ=urO=SO'/O2Hs'؆^qmDdȮĬقonaAįЋnQ2 Vnb>u( ] -VC#UivS`Y \$g| ieō@迡ƃ%M,O}ъG'Sdl4"Ta dr:Q6z[~\!ͧ=(n[Z8v;<FK!kӈ)VϤߍϛrz{` /P *,3 %W"Z pd5*krEgKA;*e.)˗Ѫ߳T/K4{߉ Ϭ;L&Ą`K܎)IPw!oT%***߮ʦz;|n ?%ڸ4D%v^Vj2$nR2v-e0`P2:"-x6v>&5wX'B#gK4yK܇.IiE^l <Ć>i~>uӬ}QZ [_}YBѾu'FR,:R}tT1)N߾6/Gkv%HinՕ1Rp?߬XG-E"@vcI0 dw6iZɧD. (,.. {Ǐ#*8-"&jl,K4C: DKM[+lTix8.C`300Fr>tF+Ő UYH&r LV-Zd\PrJpZh^&f%Yvc܍K;2NWP',ʣhr8yqŀKf#SxY}"l̙_Pbglbrh8y P@EX9#4˲mv6F,.Egf93i)^`0ypB3%fVEo S 9jF5YsMKgqs FHQ?w,cz `Xjssz b`ۧGq&VxA.Mr}2PkȗdG0ij, תhmm7s]ɐ Z,y:HavBo[կfΖ2@2A*Z:c7;XeQzkv5>a7S)qNA0M;ϛ:-=)טcfsaVŁX)_Ql 0IBzÑ v\#_F {| 1_kk˩kS3M_Sk5}7$.. Qg8Kdk)wTf9nm: ޶k//zᢧP{݋ DfVp׭ӅзbC5bݲBtpQXP}Oft;,࣒zPNwF) w\I*T9Y'Ӳ$ϥa?5X}ݝ癞KNJ+F[E6]I~Hsebٍ yZg?(^~3v I~|2#F'AM'S((r͒/|/\TpBChMy/ ggﯥGI9C(~YX*ߌJN~SէrDyJtȭN,'N]H(όKmd'47 Tؚ=NYBk5vСblm~U r,<|.N$耿XU\gV tզXly>@xI`2.UeHh6\}.#H bRV`W3کdM//*\CGwHC8va%Y.ЄέAk͖K2V FCO4(@Tot̆Flݧm?.\Pz)"ЂcRl . C Tqdʄ^&9 it@A'Z}#\`fQlT(AD ?%IR 4L+7˵ZMqk5OkwbM {6I!Œ[$QGLq s{V Lx;fH{걚1 & \+T֨%R\ӈ;E3B'|M31lbs@'Lˑ.KG]&N_WHC螂3z\s0I/+5̸}HP~,|)WtR,!z R[e B[uj#-/rq64) \0|t8ͥHܜV Μ &\U)[[X>?+@&tlVFq=4p闛 $m}u`)aim'@ x@ ܐ>I3l+@a UAnht2 ! lv&BRūWǧosp٫hsYv/uJ).^ߕ1r>yD>y|q ~qet]~S ߩw;zN~_x}3ޥ|nw$P(ɡDaz>;!jXJ34-/b=!7ʙUn3JR͑]-2\ VQUw3*S<ᡓ eW{ k9RTovEQ}x{gz5TdWCi >DvA |l RQTkӐ6wR(\T̽wv1w] lPKl2s +NWoONya5AuDBa)3J1<( λ7X.Ի^oËgYy} M Ͻ]&՘k$)NUʲߘT5PDwvΎkwv~E MEŝ.q 5գÝcӵ;(NR3~B<^{ &J{z<~l:Q'1ɩfkq;p,rA`SteqBĬJFzhϟ2: 0 dMZpC2{Z,~؀"qǨ(Kq˜#9qvVaM5{^@ N޻ׇ$LmΛC آ;ըen#Gѥf (X;G_ZxzJVNvk`Y֤Ҹ2&Thت'J=!00,96@-1q?PPZ8)o]~vCҢ$jԮ~6˕ʲ ~65&FJCy\Z/ M]EЛ kbiC%ڿ?k/꿐]bXc BcgZ%`V2X4JZ- &m_^:5[ч \Y=XtZv\F-{C >.G;{B~ukfahpy&R@ Vk#RۺށUPu$%J,nyUfw-яr-%ú貟׷ta*ʤ~?^tJ I&ߎ>/9XkO]; ׋hq1纋v?c#uj ӧwu6;S%xj Z%x4Sm^jk~ @y2<F$xh)*ЪGS\ 1Le,W)'FG>wS9FR0b*X.^Ŋ.n:TmZ/$E+pf3b5n>ș(j$ /͚zuV*Pci#-PlΰOlL:`C}[>*`Q" ,^wqR3+[l>1X- WALc@A2/VX'`T x:w Gi#Ô]@d*бE"^sosJ&n~47󬬪[x61QFFrOZ;u/Jf>޼>噍*N}wxP=%ETIѷCVƻwIk'5oaUQw+"bN յ#O kmO,lgsN CXr]y, ڳCH5('ݢ.85Ǩñiwz;GN{_ͳ K.ٰ'!?vOGrKf$11'CD8;ZQ;&iPUu2 ~8n.ZDTA={=_rVq{$SPՠzHHYE>UZP6ʡӕAѺx[*zoQ>jÉ4qtdɀo hpGc]/oTR#7$Ԟlv>m7V I'V{(W: _货=K(K2u#joݍYXFn,|/4r#%#z-:'|B'z~%WB4.^0 Xj{Jkg`h`HŌYSy8M˷jjB0"M |;-qI`ө/`B3WE#~nY"ǨYZҜ9T`J@VIq/ i42?բc=!l6 K 5h(`UZ_֑3Ujl5ެVC19;8µAnlNmNcl"6Nު2T/nZ$aOEVXI(׽w)fA%hRk :+ 67=llBekXG2?Ho .*Og=OS{=V=/PT<+5pk>8z?蠯X`qokv jCޭƉf@@\] q*WhfyR)9\]Pj *}bqi49cЮ/Rc!*N!FJ[]D+eyY M|3SxQy^`%oZsy<0b!.yZI' zɎ :u 9\v &,Ca8%tݯ_5 ,qMDKY&9VW,=Pg|QxH?lpSP26ϛ Od*7+{ďj}M0o 3wkT}wO^+>l+kYT62M[U9'(+ΪdwF]<=As\XDz-2Vxc++ (|&DCMBMpwoo'>{wxm^ qr IuqJ{XI:騾sxlm4,'}OwTg*W#0kd!3c2mSB<, #xueA|xtBFL7ٜ(^usXF{MhSYM?uO6e#GFhI)1fH`;NO3ʙ%zoX9:e!5>;g4Y, gzI9c6IVʸJ1%/T\i'ti1knfp*hыjA Kϑ-߾~]6|8-H`[|!9$ÓN1Q5Nz Y*@,k(kQ(ɥ EW6& F'O[]5VXeV&Σ:R  &˫BߠR'M疹s)1\5c&PM3 ;`T텓 ] j48%$H*?T*gyy F/*hVPOU50c͜S,Dt{!  a{iH!Β~:{'o>X IX\jS-@֕hTBa*d]A XنGp\=M1䕜yO {[ӁhX s%\7g^= x}\7T1B㄄I7^Vs&Mly km eSϖ:.A\=.r{~t aS&pvAj:@މYgQ35'H\.{׆vݢX lsb(*!-si@R}Z]շzw[7]xɉ$hx)Jͦ!Jr;nBЪZQO %-,'az\ ǨA5 LE Q&{5M1oiV{@FdzT1+  >WIɊmEО'19[ evPK:DorE'AhxaE\cPw!{)(U IMxЯ{[iݖM ])ow4wY /GNрm|\hcΌcʫu.P㣑8weP1Lj}ĉ)ST[;G{R Hj1b%5 +~η\]w<>P}޴4ƧKXWKZQ_ѱ cU6'zˣ4|* @* M"$&-xVh1MI6_d"8qRUɜmDZp4bPĠkMY{-)f]-e^Yp1պBCgD<G,cZ> >ꂃ \EOd"bcVC6vRԭJ3vO|A K߲ }i?xVWO[vJW8o9{++VRz~?Z KRWֹ5*wk[[m? E^?czg]]/k]\r}NH8<\?o}@޻9>~ <[?c+l"aD"[)FO[|rQ~e>kIc۹h^{0wi|};oq~SŎ޾1gN?1tmT|L8z 滹G?xOZ`џ/VJg3kU:xvitqwZ,FFd$zخ]'Efzqb׈f_Ff,_ҨcBыũ<2TFS^22:'fC -t4q;}J.):jᐘb(jVԙFsJoWO"