#!/usr/bin/env bash # # Copyright (C) 2011-2021 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=80b2f21e9c1e7b94af9d91453be5cdae # 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 KV)eRnqѩ5/~UlQUW|QkFxQU# .!/pO^//IY>'Nԫګz^#9K}˱H{>' #.AqiykMVHt$+&r Z&d BX-q\Yd2\,|d:k˄V4ŲgplA a fd"#4pL f|hEYcW -V!x^^(Ԙւ  10cJ;}8㒅S^,y0 ̄,F#r[_P,cF@ a^HȄ!C mhZ8>%\X`& `B7L/hoI 42jh^674RV28W#p4x/w.9 GťJ.4RH߅־:`cXWH#IQ`DaOtT]Q!*W &$sr%:>{x.}|0STY L4z/w$ Xn[m lLzr_FP2(tapyGHGD`zK G(Y&6BuT fA"W1/] ߑxeE*dd65:f2Ty҈+LD>'{90&e xE6+ZK;lyDZ֬XTQG2xԍ;}FJg$U%lr_ iözRWRT01xC&.f7Ĝ">*%/G?5*A_X4T_!n^ yeh4HL'fcr $hSW:k5/я$*4^mR]W\EHTL $lȪN̕>'gJb[!4Bo!sZya:.q m<8+Ιd W @`H@, ꔒʔ)2%g\73W_ cS(!7$)Js͊_`BBo"obMmj0uկP A  Tvڜ7oHKv,Q\U`B.!g:BƜ.#7_%4e*&3gc@],o | )dĔ1vdI80/$M(u:!\D,dWAo=v&l@U{*48O/<7i-4M?LcxPM ~e,&]RުN+* (hęVW:_rդHE TIM)cqDnD5|;D]Qӌ[k幀`ƝжЂ"nf',ݼ4f"Li)٤yNtf1,e=}b!;3S)5m4m4V/> u—Kp`r'M%~x}[![tvx7#04nuZX,YZ@}]ӨZxx${0oZ͘( P ,){i`6nqjJY5W!UtAO/ ›=V2!edaÃ|]7ȿTYʯ~ -ߕS%vCh\\8](VNdNf0[NV)"Z˞:[Em~]{K-Z[bm.dLaEÅc,$ePR!L3K"XR=^萵Ejh\ hI(ͧb:MÆΨyo+9ZQK/\t*i:,7 f+ odcQ0D0c~ b5å zXa_RQ #+(+1ys LҎjY9:a[b?IPVo-LW_FtUxfiX]3,yJh61a2'jmLm}moZTyBX:I嘬\pI2EN~ח4=Ys7ʆt:_y\y5pY,|Qds԰ &8"G>}3*l=3Jy )LIu'; ŭkl0Df)Ό ?&X1Ѝ[>6~\dvk*tP& ><&F8B4QbAEK}Wߌ&!"V)%ҌI@)n{6廲/κ2-O fJ evR,m{ڑl2B}h7hXa`ڏyܼR18l`غp}@iwK8lJ=5[zv;W\̑2aI=~,8VX a1wKRv1)"S*j'Lػ&}Uk opK/|M&@V}ZD (<Ρ]wxx"*ܴC(>g+Bՠ+gbK ;#UnvZNz5}/C8H uҨoi< @N{Jp" Qс95DlG2\|)眩٩ꉩ$Qq48Y2ojւv[1IJ#9b>>nhf)h$it.p×;lRH%v$mͪ0#Q<6ȋ֓9v$zg^&.SO0Q4V;؆4K4oϙI#OEBpep 7n3|hӴRIzF\f/S94NJ)1:]ǽqǡ7ZBb`܉!Zss{ pܧ]LHH:}4@)OrIETש($NZ S}\BCk>n.4nh S ܗEϏqɍX\bR M-riV 39Ƞ;0y_8QynNY7q̇`X9Q^X|"!V! $tB{ 7G͌im(>ݑ2.?d(+&m =`*+ܬ1k VHuoKS2L{Qj_oOY=}FTdy ڞӜ,f >jKf2UGxnbEq&溣Ц&Nq.*pMeP? ٘'lDm7IX 7ͣ^dLHЌo(OMKgnZ"2G0$B0MȟF&;w'Y_2oy\O6v\nww߿WK-ba;2,&yU! l2|gP7R}ěp,wq#. 2 B봇\{EY\X蒆={9{/uFR[{e|p_{ Rlā=AߴW[ >w|݋6_3:1ՠ;I#'<ع>9Ϯ~Zs{(_mſ#< 2 w cv}?@3XY;sqsZ j"(`Z 0@ןށGc`jݯO{=א3Ojt>}Z,I}bd.][٢-.&ҘdﭾWʅ [rMn 3؝ w(%?#D‡?H¯W[Q 5 [R31{_jf)FNDF͔7&$u ;W%,~Uϴ LLICHΨ+~pjSWqVL0R)d<~07-Tț3ll=z3̜'lORB3 ٹKeӦyLtp:o]qRn?[W㋯ \H$ã:x\,U+$=Fr6l?(x|<|Wkv?ng}_GU+8!& `>f{N6RE3lvuK+kSg/s52[pQ})kZBKTLС 'Cϯw¨QB&᫟cؐ-s[nE/'}h1ZEUxZ. ,xj%IU (f6d! ypj`_mX^ߕYm`(3Vq^zy΂~ LL];RQ]bnÿc0FI w\zu>6'\wZGpw 'X3-dZFGoEbH`N Jh=θz[xK} Bth_Rm >(Jo`(j2ll,*vVڬU'Ą`(p{`w쉙k)wxM˙e4e KQ uT( >TWn*JSd-=e,$].GxL26Mٲ s-Fm7,}7X Ah}#T4@%"4i\YW<"Q 5N$ddL@ o,&_]^f0^_20ՄjVF@|Eh)a1&];hzAE(;4PQwJ%Tq 'ReTiP|Kӆ10 $ {']s>nnngЊR2b{bq̗>DzS5U}z <ɠ@iZO!9{gO])zԌ9fW<8n񜻣iӄ$H ŀC`1geֻ2O>fj;oQ}Os݁a[դ<6yCc9TGviY2[︬㪴<V7zĝXY#^ FAŞ<߫ͫ~aKL2b4_BsWq`sƞwMUAbVrpJ?LN:|y6XY ϗ`ZB/@ [ānOɱXk5 &m' [QnxoHFd90`kA@o&Ů-gv}۪5%D%]k&|C_w 'DpJ,.s=6Y#ag삛/EWc"3X'9y*ٟfpyxfU;ϘԼu5YX3*AoTu{qDP nA`-(HP1NJ&| [ G)wzWlDF(wNd%̌`}U%2(l>#+ǍfP߼~;u6V)'t!snýsm2,{"=cчof&)ԃW|Ȅ Щ,&=ɋMY:5#ZL`FrF?8@uyt>[n-Q6:C5dJjfB"-B1~F{_tSlѱjxkrN+̷e)K8~֪V64O9YޗbN~0'J|Bk6ܚ,*C RqWpz/SLp\1TӺf/Bxv&Q@rbKdy25QaZ|6L;&)K*I$ ɜ^JMrB},Iy2.fNMt}4{K[LբE^%O`GU I{|c) ~&y`F54|k,?<%}ĄjAg Պ& B"KM3 !>z$V.9XXAmɟh OO{BBBC 'Vdg{#(? ҹVK`pDOZ`]ч.5c"۷V&,/ 䈬Z SupY!$֞Ss܅YB9JK 2QN9: 7@ z9z{,m,ʪ:LX^31#NktE /sN 0<!SL N~.#-YyȻ!Z2ܗrA, i(zv{RqJ9 y+vM`N'0o2RUed>C#q~e k4>&9Lg1(=߂+0Ek*_NgThR+w>o'}5Nv؅N7q"AVeYseemv5ϨѝO8W3hwL>BVi*m G-'YH/I7żzXACr0%mi~ӌ2PnabNnR W" -j"ec7f$^Т)!pļhUnH2|j-wLV[̊tVK)<2 wLaX(΄OQoG%Lҩ@ljY$Q:zͪ at>SU5 eս*sUwi !$O_5IR ӒRu? ih$l`WzwZ.(h~@>A8*|-d۰=ô6(1EeVȏ<.U7) P:8բ" #4(D Qo@Kܪ~#uz0x֨:0yM Gi'Jt$q9|9AOirNߌ3f9<M/-F3Wz<ͦgѶ8m1PpU Uk4WLatosu)KN|#aG'یmQOTD(֓:Q /4L|/Pd)xy'J;p5.װyr9|7PŪJJODExlBτm}Iky.\ia9"s: U(y ̂]x&:"[-hesCмx~ W$\Uɽ$‰ u88yE޻y~>Ȗv%x;grUuMōΥƊFϑ[&CyXcm%Ё#9>9;tS#M%I6;ϰi]jfg6AffѺ3HYy:&NOR8gkZ:qZ-[2oh[EXtK// 6M욮 %^=aMVojc˱e4UBd[F6Sφqmy C$\[FC["# ~&9Y6D%ʶm+SU2Vn7l:ZߚrJaަy.:ȱT4fjDV}[v&7+˲"zCnV[Wor&+0Hogk ۻ*E/h|;܀P/"\Om(Mo_8^Y*ӨhSs a!L"g$xrZ#52uV'HOv$4STu Nѷ϶OTy=/>SPvU$ϟO6cO :]4䎼#:CG)F;oG/Hڢ"!s7)ʵ*]h8VeP#Շl2U8&GWdx!7+_)()q6\g{5ɒH47yC   ' A > b:ٺ! -vhnI_xy ; |9:{5©W~fgvj2rI`u\%+t`0C0+" (O0\ ylKD'4+V!> ^GU(g\" nxA-8R˞Z.\^/q w-xRvr6: 38&V#r7޾(tvr딭]]ZVn>1%匱\f;ܖ)AY3ύ|p&l4.Ahu1L ykD M옋u=^ q5%9)p0"yev6[WPl@!N)$@D#`$bKVnQQ">l+XLhr0%G܎ ;[=Q^VY'+>N׾vQ4(0nVO97' &s^Z OkxiumV1K L<+"AE"4w> |1"DzmdiFtɫ3 R78aAQ Q 4:l?&-0&yF{=~pb?"ϝTxDdWQzHԇx@V[B'\? @, /NiޓQ?n!\Lc>$xW/ɔzð66%^*/h{Vk҃#φWJ#.;eF MA% ƙM X[`@xxuzL@6 Alqr/4s~׻97^tWnR]C ($J.CI$򭂩Zh mQeNWF!M]&VX*p-~Kū`\:SJpu e@>n6mӑ\ ~sWU5k:@ƕxiUu-ogfz(^EgG{;~*8#jfݮ936 9ѵXЎ͏ԺT],q}*Ʊ]8..f:l^89z ?~aB'{aO)0=>ܶ*Av|z6ѵ `_Z)H0 `S/(܇˂42*.TL!}:9i}:.O _$8;+c.iԾtmKpgq0o D|v7e!)R!{@wߓ]3R W X\҈*$=e} *L2SPp:*hys#;9.tȶwAe ep;M]HQ8SCHQ(%2Uh~x<A5ȡ &q .hbrgx~2 e'I e >c 6$e+Q!$[D_8m/G~8ПX'#3{@S$7qiXL3& 0N p&v^>ޣv`NRW]o)fˊo-!c qW 2<>Wq_RIG,sOWR8ps"k[ΒW E1=T:ˀ8?MN.;MX#~G A6/l,Pņiq$哱߅5-v$h}I"\+L&Dg>╶ceV7U3Y4w/KܬЉzG|?׋"$ʳ5W^g!B@n"\n .Xf{wڲ۾Q}Sl`;Z8\zY෾>%yyZ:F]}w2h ޤɾ@X:& z`rkfiSlǂn&VtTs (~M}# NwfӣC`/ImiԔebp0eTHUˋz%iMSc !"pikhXsO!]GZ>ͳ~[Boy9:z!d6OErr5*{*|P0 4{Zh6Sawm2 y$*JBc;-HEl8͸&FDPQ>:yd^ku#JJox-8S>X|&LyJvv(IiEupK8`h텸J>UnޥGi7#vè>=躖 }SPΓ7)%N߭ZZiơ8UBkw]W: =鶧3CޮV Z&Y7z s2Hȵz*Ռ?u|p/^n#Vg{gƌ&fm_-? Šv0L$ \V5d Z!+h3LAw;@P0݄>Ig;9PZ)${PլgPe6;qf:C~nauUomdvJeA_[&t9Q{r[*k-h^PW*Oqa,%SWZA5Rʔlbu) EpXl"#YM%0;8µhFnbGg{wv93e9&*GsТvep|0b%VPWd+[xCu.$HzYEӖ8^U@[4/' aGT&S[XTKekXG?Ky~lDIf?g38Xj3FIj41a^ܶw-{7^/SM=yOwN@Es|Q`]9~GskwQuxpzm?\׷❳}]DLh_{J VUz#]\;8}_Y]T_S{R3u(yk]z0"'Z Z8of8}`zQv^{SfgMԶGKd:P{|yc7cWm8,6ĝ&~fyssg3&pci QJUX"0J@GRmQx똙@ U0H6NKmwA|`8fK߻QTY CB sC 9&<0r)$sdߵnޫe"論#H< 2[QС C>tѩ'ZDȫUk6Pp>\هâzXoK ȇ@G0vk^˛ #yU H>{#5Y77ms4TwVFpr5UGY1@e-=n9>AJ'(x(AfCsd%UlWY1xN h LQdr%|>аakn:n;q eX@)9:8>oxτnԒz`c-mbn*O=%}GcjPH2/{; &kGhˬᬔ <,"uqEZX$E/ oVOH.,rtp,6Qq:ZhuIؘ|nR"z}x5+ӯᡍ"d!Fq|6}ڕ}BSm|tl~/?mjaxuLSެ7.Γ?Z}ؼ]kXEяX;Ƿ!V|tCc+?^x=*,Tp;.T%!S{d;_)9,4`.z{[6;6z?A:& 6lzi7~N_'zQ#&8&oDse_sDI1)R ֝W{NG;,Nf6Ocp/@, FF1$Fia*?Z_ ӗ9^誃Va='OJzm?]r=oS@[xȍE#= P˼+PJ3t2܁ eܯAcpZo0E֪ߘؐxf;d)+;p#LGq=*D 2)H?ɨi# 8'$ lgDs;.G%'ݖwhȢKMw"}>Fh-H?p=|B:W<T74*hɸPA6:y3YE,Ghw[c sNU;d BwuJF=`Cs{* hSxWs)YTl<) j#7YIh(n`x "bqF+uzkO?@ir1#w!lj<6iR)QToW#LgFݶpQ;#D_zǬ ȧ"!ʰ'DA} :PnJ O+vk{xSR#͍kX9}+W>.㦱=>S]Z,& fO8v(7O_D֓-o+*%aԄjSWwF4%d GN?ԙmζ'CSZp:4ۀ8>kFuYU;əbV<@~:{UL}Fsvd K7F?>SsbQwcs՟,5]1S+oꡀMomxdwK]enr2ic߆ݭxǫ߿2?3{=g3Wgn v~p!€!4w9;z;}}&?V䤅mRM @p4)53bJ_VxSkHnJ%cƜJ:7D7ꍒN>,,Qꊋj{a%%D7.K-^'f<Vnzf{,z3mJ_'"r #Fm }7+Q Ss"Cxg^S9 ʝۧAzEj'[Qd|_O_HU>k+ϩP\eeS0xɬ`5菂E%V)kRnR%d!ͬ$ z|Qh# mU7:7aF}QR<_0PjL7Hh1K|y}j`s ,m`qqӨ]M^c`MlƵ3H4DF 2V0ZUTJ۱;ijX 9#,i+ tf=`'%0 j휗^ڪc)S䬵SI&V!=ܯ=Y hbdq]A`2X {zpUt{F-t16(DDf ^n:oe^vZx!4XfF͌t[^mtbod:"WdGɎϭv~ҎQvœ pGPlIzaQf+3mQ ~Fғ8~= k{6{f[]$㧽n7U\; 1=)3xfʦIL( Ojyى=yBزfEӌknyVU+5Nm@Ol}3(M]:[綻c:ajPr2ȗ{'Qw&D햧A lHY>5i{{m+2 rCE%VҞA~2sKletW*QywvpM&{Q-|]c2=̔kYL/zdNZ#U|F_n$Xq"V]ٽoSR;ع8 B_"{j6]7ԇ:Kk[ *r_}^AQ8_n ><1D:"{+҂ohޖۭVlEmt5TSX wtdQuxO_3U| `l3E<)Rș_F57'ҷ<$W;*ReMKeDwj!ƖbwG`"'a6aEAm[޶ZgtKv ZaZ:h6OL:hlEV}Dt`kA }FhIt|ExVY_ňԤ{/ )/O؊wb1)q_:8GU 8caa3ZwB3T DAsl-:¨KD\zjei!_T'PAx!sI JcJ hWIw k\驃È\_{#H } L]Saa7*/lei @M4{0'z3ojt$_Y]a,O>듍9؟̇7 s3tFIMLRqFyC8 :r]$GVJ^fpçni促Q-:QO>oP C78@1iǜ%FzłFJ +L m1<Ӣ 6ǘ J ͫ&˜A`Ntq[np#j)q@q|1682l4N eg69t~7 8nzmvk~2Y~0\#1l7zn#&~]]%3q`[D Z*\L7J8~1`@U\Jjʤ{ΉCKB~ v5G nW6q$@3Q4%5:ǡ/ړ$}dgA.:d"euoFdi'nOڮ_`3f7uy'ҭS0%+'p앳&w&0n乪I\C4>y*-3 mVbĸQVvq b7J=r);rG)sŀI.ZJ<"ņF!4 'E~}&r >F>a{{-X~ Zע#ukHs= I uC? лL2ª)YE&x7#y6i{kTgڿd*UJW*dj%ʵ`h1˯TS}C'˯Ԛ8R^~E=xϩq 95=}5HԆTwI{ w)U8@NKҊ{9+V%4@?yzK_ԷOJX3ËTz;~5B >>o0T;;s ?Mz3X46(3+з4cs;8?*A]Q'#RcT8F-jyC Z_xf8b3n쾨ϋ=%P}ӷwȔ 0F5" l=ajܥdD&tYf +Ps_sV oY*pj]r)ŮLFIqLjQ?1UO3jB`kFRQƉ|bc#0Gk这6rl4Xa?j-+kGg3#_0Yf%`f YfSE|1k NU$5$k*|!eGxиU'mm@w:u.RO$LZ#ڎ|:5토% jxˑ|Պ?ި+%JU> (6>ZzIJ&fyQETP8nmti*`)z={󹝃-W/YuwgzQ-g7lJBh'P[lW`H9,{on Ĩ1db$Ϗq?B;بF-AA AѨ Zk?5H,DP‘(}tfBəwZ{37{q $OfoF2y&(NKOUg"K=S|If̨ 밟(B@AEAIC;r֪B qvG ]WXCq3 @#{6>SDۨ:x5{v-ڣ=2.gF ' `3 0ЗK1 ˚jeCWf >.$6@JȖFQ=i`rP6F,%{;<=G>z^f2CХX/iEKp_EK !E騡}.i?Zz~M ^i<}ꔞ+E!.]-\D 0 `R`j3_Qm2j F3l ZpKD{9<N_ _ՇG+kܿ<[.:OW-쐋j-X9֨;p}ovY-#wz.o\C 7sݸswÍsnݿOwvߑ;r'NnݸQ(h XJrtdĠo*ր7+sղoe|TN{Ѻ,wO`ӳx-(LIuv^*ӳK|cӣW';utNS}\DAҏPDْfn;n7#,JY,7sĬ͈*gH$ʳ% 35~7Qp.1n;`;"Gԅ٭8fm n}~/1{r;EmR<9& Ft|=!-Jq6T%Z%p?͕/Zr>y5m[0pcxWP]\h궖{kPʞ3;g ~8?0