#!/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=9923761ff288de6d0901d5feff4ccfca # 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 =T`[ysF䧘(YӶlU(8%#cgb"f<:Ql/ѥ?8}oФ@hڔG/ZmeP ?q1B@LdWkkR<@ȱy#G` ¢k9S@ 8#Bs mp |ʽȊ7m'`S+cbЩIlsG&5يN* C8ܲ'AA>d8M3,HB %{B} PRI0! H<)ha(IZOgx:FCoY}3 ؛Nn='AZs7DW?w{z:=fMWk _dF6Ykw4ZXxu"뜲ޫghbScЦN;=n70fǺ^0fh20L?Sk6iλ#ҤxN:-&Hm=> ou0(6ujEcadZv9{z;Ó :;t}wnkviþN4jX@3 ɰo .`߁; N2wz 0BC{G+\}HjA+kgMLouwF_/`ی> 0:v3ڨe!.me)5 B^ %6u7(gshYn;l}o\ΰWSq ^,ʺ~gtYv4?h ?Y۰c:A 93%YA[Z,Ь% O W+Y5kdqz ruW۵~E!'p.wK j;'xg[֛=`a@r閽|aN#s1m˾FǷ#7}=R_pqT'}|V_3B y-!:mD s% gGs㴊joaHKu !ւSvyimu&&%Vc7|nghcZ>^6m1#@dJ7 /}q|4z#Lyr] W27xtfR%[~ٞe20O'n5Ox*>YsTse'Yy\^ˌD<)'He8`֟p~#$WU  0Z UOl:(4/55%&IBHd[^ii%8hS"T,d;A=g!;|XSƬ̨hFb)!ԏ3>VcU˔ɄdFw 2TYGIB_s ʙ\1SĦD)dȲ#l-eO^R߭ ֫o]]9~h('7ea˶?=IR>NϥX疕؉QgÃAixhS=0=B GH#H%IJ!M*|mTK()낺`mkpba5Z?* v̵"2pc>`Fl26"백4G/픫reaOX3yf}L,@M v0Eb ٩ L;I+pNctj GNmO8Θ$\LUi/pBvw؏lӲ 46i5IuV}<.3F`Y>s>jآeG rջu~gc("%7͑]-}(Q^x8gܜZ7]={ kVE,8f\h k.AE#=`5}WtP bqgY[2dUMSzj[:F? ߦuѢoZ!iU벏ހó!+|7-kt|.{ȕ9xc:<>ׇJH\Ȝ{i5tg鐐>{wu.N0g4N(B-8Vg8=?uJeMSbB%6fv{ymBI7&ec{E}D E~=;\ŃKA|Ͻe #;8Ĉ X0< #3Nt+ P2m/=^+ O3iQSZ!<85kFu퉆^}r /G2yAhtcW&Ҥ.=Sot$V`6 mFzc9v!4=ӑBi$hYjk]̦ mSж)u$P* `Mv糙DĸH- k8|%ᆒ锥pJo0zL`U+iR-ܜf.|\LgdutFtܯ[dnm 3FkYW4p.7kw@݄(ɾ!Ts 9b3xGUn*̹oUi-`rk\uW @S0A"[ -6hou%Kܛ]k{K4:@l%$ y#N=լ@h۟D^x2MI 1_Vvms[d/s3N@hfFH)-| BzYBY0l.(ܳy܆7>l$d@6zP!6 ۈT6>!OM@9z/mv"r@7$ JvI:1E7shK gOMipUs ?ǠdDبli*=yR}Xuqց}EзHV4n<2U GNH*4( d$[Ba ԝ診Ma,FPCv s.T+k=>,ଲ!tTfiqڅjNKn"l3(me7g !y]2E!W!ψ^qYK=bƣhOvݳq. G;{ٳP o Ɲ7@e1[ p#v'mV >#CrVaD'[{S1GB3 77݈X6GnbDp2V/; qGsҴ:T#IfsxeLeOV~Y+T3Df eբMAXm.+- |uEIIz~aRF68WTboS s#A#\bFpxcszA!Y*KG@whfaܬͽ5[Wd+YxB̵]B, ʒXQi%UREÝƃy "c@[2r{'1)7|y4&b?O'b _`H}F?pQ}ew8\XBL$K2ok`ӕ >0aL3!.#YyZ(Ap7AT*`Rou6\`آɻ iuF|Yh",*D3Lob"Tj(s&br.3r5TnzQ^ ;Kh &'R<3uFInadd1$+E6 9QL۩%7@tx4-5춁Czhg'@QBqxs$[ 2LӴ(ʋĐQ?SN?1̼4ӑ#w.QĶCJ{,/U9&PQ#8BJ|8sL;3SMz$oS|)*X'No3 L(F.!lnl0>wY._4cu ͡)γgt/!#:H>0a&SSeVy0N70b>9TKhm6z80' &L#p%bQsm&Å͈e A>{1˗PG_'e~ )fg*iZH7,s8InORRbqOfY XDJW(_dhQk &͎f $7;-=$\8re͎gT/)sBpjf0}- NZIo;F똱J5۵~!A I7r_D;"盉V%v9sk5Z hoIy!s1)U qѰ.R l WijN%kQDL3fµL7mƵx\faLh4udR`'EY^9ضO*QȘ0Qe:=OPsVku q[h G*T]r։^S72ڗ&>N HKzH9Y ^6Ťۏl3[g$.l7.u#N}>\V(: y0%$)n5s6’W`OŽAf u_7_6[tOS\!#hCxkvMM!s{1wLWŎ&)C՚kuApF~ u5@ ('vCȓg;;{>YhAhq suulAB+bB%jۻ9md3rWbr}$~:}7$K(az ozsX~+j 2:{cSSݼ2xnj:GIgz(@&0y\9C+o"ig(2p`QB,T PTCBBn\M=L|'guA-V=NyߒAX@? !v8Nf1u@Sr 7 C.l7ãc|J}ȥ!6T]tx꒍ʝ-&|2 :qkPRoMTD*8䇝7'K GH&%+K |13郴cNgJVLFF'/a kGdx9b0DK5sXL|ۃz$'CpiJ=3Ï8gFT 3̞bV(QFJs3ℊ ~ ,-P"?mcgr^u2!EZm:n3|<>"k֪+XKe q_-YHXO.1 qYKE(P"Q/~AK _—G]%wv{ȾM$h61JKѡ0574C6+mreYsOnevkqt[A&֧ Gg'"E0zmxP,d Zhy1MTk]j-!b޵@VHH6d5 rwSٯV )EE3XN fenuuѩ__d,SЇ3EEb3p+HےӐm{"&C96J.7mAzP3BB{yT+i=rӥں1Cز]N7܀)ΏQ*4H.%ZphHfN$$ð, w H Fb53g{`t!Bn1bQel$cPagw:;@ϖ sMO6`pM6&Jbq.aa⻙=d|X[2(RKܿ4֞㭘 E SڒJ6v$,3D̰XO#:1ڠ&sAĩOH4 0IyfAk g.af8"SWf3aJ$V<ܔUoQXe^"n83gzt([ ]\\*,y(9B/Mαvۜ=JgW'GF̂*p$'G'SnzPơV|0!S$#όq4zH(YFvL;E")*1:gJZD 4zdJk" J$OS̩ud 4sٴPl a:68~J:bƶ86 KlK2c!˵Lv3 Wa Wiԁ򋰦rt4+2 Hգc"jDNpTv@tX-Uj)74T%j JЫW7ѺP[TG M:,w@ȲPOad`RߖBpZVwC[\*/P2~2ҿZ7 {Ӑ7 e9`5]؜U'2K̨]P (6];8Сtw 6n~fd0a8Vqdct#8c 0){rON_U$7\C3"Mq#*RSjl9jPL"(BnAF"D;w A섲)-%wON7O\JH-_-P='oTbaJ[Sxv'DƳ^CL@D;x ;@ހ,wc*6Oű a4Qr_%ZӮTuE xA[vd[ų6Y {FV"3U$RUjt"D0TiɈN(jЩ0X|:?,<[^Y?,L?|$$$$$$$$$_.CA2 :oDٛü(>xwS(,X^;b1 O7 `Il1?]eS/6†w;ڗmC[_;@q;]>H<$K,$/䊁50VいHR^Zӗz;1$翘UYހ)Ë_U-U-ZUBH7׷(h [e{޼h6>, +^_Kc>ًe˲8 ՊS6+´ d ,AWca?qgg^Y5yqW="sz)ճ$Y xztV .GQ=_9ٙ=ָȚCO:ȸOSPtе OQ8.c P>%}yg9޼gfL1kk1[u8y}X;WGm{ׯm%=u$XITO v+Os?sG>]-@e'9O~ ⧆ᲙnT&w4s=ouI̓\b"UU8bњ;yxhO{<<Qj)vn֩pM.I9ߢ/FŲƝuwiX=&c8K51:>5I(Nq!w&;dwZX\u/3{O_(q!Ez1:sjwP06qF5ߩH[75Ձf&9_X5˝]r}e{C$%to%WϜ5l3ꒆ^-kᷚHNZhit^W _ ve. vtVLjd`YlgA_!"6n r~붚Lb8oq:Kbȣ/O ^l}LplU_Gw>s&o'߉w'߉wrxh\֢)URz_NނRnK-Vk7TT`6/u{g]*֩Z[팦z XPKرI{T@!g䕈!\;IKBUjJ+_6b؅R'մO^ZзyNns/Rf?ނ *T)"!{.UwUY!`Pѫ(Tj D~]P ܋rg bW*~أ^zt)y?)mT4b4r 42\p"#;p"b{-PmvY8=ipNkv\P{rBCns粥 (>}um\V˚kGt?;[ Yfl5Wz;JAo44MYKK%z=+'Jyj~Kt60gm.ӧ?"Ah&05;ƍf`;HcL1A1Bbo6lA6?-2-G 1}H)(ʄ-GfZl`&$y'KA06NcϾ(5O5_L.k[I? u-& 'rX.DSS9_ZS)#˒Nf,KK$RO/1Vf\?h1L`d&]"1*B b%0=d4L,^E4vQ3pV[c)#^@+-3 /NP}aCF`XCX΍˃CWwNe72¨^ Lv*A^bG5=[HMB Dϒyi*1|oF#RNP\b8rqa+.(+V]5G [K;^欢),C} AT7P!va9nĺ\'-B/d:)c<_; ˹nlvNP`ts.Z[Us!PŰ1gCZΠEڥNU9cCE&BU|gbNpҌ*`]4ThHche5%5T K%}O'\73~O:ouoB?Ȁ!Hqx4`M28 L>n]Ny|)pFJ; ׸W|}zSxw,)&EkO:`nn5K^{ہveGa$Ù݃x`ogƜ@`E  B=@"'(Fw;')d(Uv5$wg" COC+UyebaD%ȷ;H@*fKa G褁,1ҽPidQ'KC(ʠOd,Y,qZtDDRQR1U~6%uAe{4vUU#RKG"kbQcH0A&{Ci!,µa":=8KѪBRPUwv[ix =Aj]"y6/B<}f.)s*d,[Ѹ;Q14I ` 9b/T -Wf`L=ȓԗeQYS[r,n>E'c jZgBȧz+",Oɨ| xmnwk;!jq%HMLj1*/Jr̊y8igyH2ZS3eN2VxUO }cB ͼ~Ьɺ/CWqoQuc28QYx-̹(1##.SSUȝ _XPJ-$s̙UV} L@XI7;K( 3Uit;.ȁ"yZ1N߲mVk)0 lG-#Ag=TQ9tNJv9M@ <*>u'J6ݒM_7uNf5#9&PY1NeY0JЫsev[5F]HyTYfhsvf>ء۫%*n4dl=:|83~{z1FE.NYޜɯסu]~(\:t{k:c?ĪaX РlIfs20LY.kaQ?K; ϷL?D3L?D3L?oٲߒ(jpWq&at>:Lx+nVŻIMbxݔܸ.a V#ݝVI2 #vIQQb'] *e@F!dFnC\y0$u;oVm'#S Qs )%DZz̸ yzS5ԨS9a>2uZs$DB7@:.@w,_՚9@I7)y6A=x2l|> 4Hgxd1UjTk~jY4 ǿ2T#螛'ݢ wDFpP .WRՂOQ>Bm8K "?<:e`LyLW)UAYF+jkR=dQЕ,ڄ=.a#H-H'JuYKI֝61Q,o9GSro锅FQ4&gy HY5fz`[f1aAmR)9{L)gSh)*QPZuxTn~Íg}I^׶R0Ef󑰌$qOa\E';[tLn% =RptXA ŌfrS$0N8u B@TƦ=ڗ@#g"O{ b {E"0@ЧQ!IȒGZh)96T,X35 KC2[ףP tw=5W YlԎY¾ < : p5gNPhT) ᱻV oPN ]պ'|66rVoJ in+M8;zK8/'Jn7N%YL{4m3fOvK ftK7cM/#}SJ=x#MoT=hɭE;:RYKpzr6;CBP+0Fs>GhrEa`H襯ՒKXmw1򽥩ը$k:o#gUɍC\o |7Ccy,N{5FOqLd|a=]78f7,ayjBy&~sgD>Ic\sA;qQ&\aϖE}ZoNꝞd1691xc(fW]"9T8R^3H1`@\Y`dg{=khXՙge0Y-k0tM{ǚROԉ($%:ˠ/'QGɉK;9Hj}<rykk`qg߯zdHGNϚ_a2m 4( RJFJp4JĦN&-J[bG2hzh*F^@YfZ☞H^ YT2Gc# e XAJ)dMk8'!XeBF}*C <W&S_߃DNMd8֕xLXeǕzh`l{Q^3.\Ȇ۵毣a0(Q_C*$dOafE `kc~>YJ]|zw*CH,U\ h jÙ„ wD#ќPLa^WR!`!,2YFlA{ */K S&ΘB\~? ʙeUO6N:8>\ !_40 OWwWI 批*M s06g5F кzw*$O!(d9<ɴ s mx%9+Q5p:.FIhk zvʴJ"\ED-sgo'7lEsF- B$L2\jqr+͈/ȆVS*΃826'bKB0!L:d ,-`(\0î5Pʷz{o͵@YxJ?4> o2`yYd3HFldB9gVX9dUu1)za<|#\ŕ'ᅥ{=x}O'^2No]6F٭Z2tOۍe&~lƌ]!jF`$vČY,rck2 ]H}ff/E.DYvqvQ? l_v{oO63JY^vA29O9)ܬfѯ~ɒ5}%XNJj+óTSkaQZa6w\(يwcN7O ` <](w t̹W8pl36X/0Û]x<3'PeYś!:s @k[jT^w+-qR6]HpyzCmJm 6Ԛ1(,,;/O~l= v0]OV `u{?l0i`[ OwP _+vOQWc,f[ickBVn?aO$a!.h.ȃCn$ZТmqGK!SaBh绌#j2.Gh["&+(k)@\Tc%8F)jNe]tZxcoqC]ͦIHA9)pOV g~Q aE^v{nx`TvRC֥5`jD\>c8wn+^X)pdF5Nxz7,R2*kTOtRzXgT%ab_yFtdKFYN_Z }ZJWsUsn#M.i=>gBgeW|~i":Q׉&` h&& C0&:F碙D:kj>\Wٗn&>q{Y[qVmu<ӽx!Gd=qZw~[غh2] 9Go/aZhs|Gv btԌS:Si/{q#} u?@Z^o\]-wtH@{uQ+yaX~QC7TwpTm8xtD[F88[:pTF=,V1#9mE- ڵ*^]UQtV joHa[vo$GձuP'lϵN}p?Y( SZ>Pľ-jԧZ"QK@A4$1Iwйn'JXѰj^%#&)M*G40_*\&gdӲf&Nԙr'w G:ŧ~_h(xg*وiRߣSD>1C4qK4IH^'\SV{ٻnHS9—A9PZypvJmA3)GګE K:+Vr4/qpp{#0R'"&xJ n Q+|M%I7ɇSĶ00t\V̂#EaxSګ|J6Yu4ՀǸ2Ryɨݝ6@,6ڿډ񳪥| 5Mn(U4"#hxyU;_44&];$KZ% FM0HcM_sֹ#& w;A^wuCchн DDr gp ^c- 5]~O.ek~Y[:.a.$(d"4(}X#xlh!,6WK#¾N8v@ajdž D9C|+zG@Hc4s[`#GLa wi/F AhKAދ|`U W ~Dl$봿0p lFoǻ3s@H$UgGy{K;Sӆ_pжy2S)%e1KtDb[ת"1 CPr,4  ܇Vyl$.:Yy[dϲCT=xkdYK !7\d3ɨv*Y oZwۄ1b:xg! aH۽1b fI46܌6uCғN#8fCLګ"_x|q3LzB&;*U,qQٞp2}M-'F2$ ?e(Mj3/k-T}% ؞TUe쯝dPzC:B.h P3NtϣnZ(HNdW͋/b9Q?I%e{. ^fkŘ-K7 d/ŭ,]0e 4+sA|uW0ca[VkE"&Nchŋ.*yvf~wXbdjV1L+.sq]]ɿb9C f;"IG9 gvǻfzr[[+ڜ }Wk#וr)%l%Or̒ F60PHUńEšUnm[]3z5Cp,š) Ŋ !S!0?׀O<g3L&? l\ b,GwqX^.Dq-m܈P lVU o77i#!~Mq ŵ&$C1lVcvKE) kJ,i0\^43Q)^FK uώ0W"4.I16IR*Zr[B\vD}AVD](kEV1?[Mx{r[{cv’\bOivKcz_|XK4Epv[7пD*+9[IԸg፣8.]j]`6[\X;^°nb\fb1jQBq 5B]*.A( YIX4((^ S]2Oi0"N3&if4 shOn;(nh} ˯>ÄwT6c{@Z<*0{ Qv1ƒ>ѥ׻^m啈ktt:h;@r`1`}pB>: Ӻ FAf5 v*ahK/A#C^ˤgj `' LYsȀ%=Apdۗ-0hs]k5L0M[2Y? g.Ȳn>V Ӯ6\bc 6ȗdG.3j+-3"zh]nS+iGd4ǨmamP11u{s=LLε{\7:yJ-YVҏ:ϕ<|^T!3h\x+‏-f >K̂U@ّ~x9odnn"g' f ^\-JD]W@ҳg.[|ӿ_ob7XM&V?(x>lcYiJu*V\] 54(Ka[ɽj%3aUy0:*[I[%A4>QةT@| q{bmY>\#r Ud*$8) F$(0ASŞș58noC?~g9r t&Plqi!"wZE iKB@|؋9u = {aKbj | QQd2uOH5fa8ElvP9UI/9 U"\+@Ԣ 6A'A[:ʸ2hg"lq[#G\ȴ0޲lxn>ĺZI}Djda3 /k} 9A أ@̨@kZX¶FI5xRZzeRXULn0JBTfD]˦U'&Ɂ7DSGiGiTՔYXaDLO]ꎵrlNIk-cqvV`YtOb e`&q2m6Uz}%@X [R`$LeCNalKtMw/9iUI)~5u4.4f薈B<>y6$XwWL mK3ݝ+(+j 6 kF cEQ qe8s; g@H:ddZd(ϚDۨ 2O;H~L0nNj烤_dΠ oB=$͘"6c.LCq!"6XF .~=d0 '&Jzڤ>w f :oegsjn_У('A:5@+ϞeDZDϾfYk6בo?V_Z~|b->[G;GR.>P*lݍ71t͋ Pr[[;—纽邊÷N9m/q% />_^oyhnΚsė)*mB)ڀk%MU O6|f=/3d4FO_yR -_`ą~eN8q:=~ Sc 2sz@VN8=~'X bEILI #R٧%>rQl]d4M:>a\姹pdӣ*gRdiT8z쩳O-k$saс[l3~pc}4 sp$ [IQa,K#vTBIųY48] Z~8=)ӝf,ba6tۍ*kWInrߖ{}]vQ2*6ǝs i0g35w;IkHGb F=A~yǠk/{uʰ%nn[&F27TeMqeO ='\˾ =D?ftXf; *saw8uDl"HM*S Y˅y- ]s y 6{-a:RE-IlHb>| 槢_~Q Gԩm<29$cqز#LfY_c^5b>{7^3#4q,"S Jg|h,SJYnJĽ="25Q䫇k FIdsc\ű/K1J^o?3yEd4 >}+f$o9)lX4b9AtA³-ϝp,C(1tSKsx2I%~>lÙCWYdҼh&g|?fJ0