#!/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=11b5a168a21da1df2bf19d41bf72fa8f # 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 .cRnqѩ5/~UlQUW|Qk6q~Z׫/HG^+]B^xG?z,$gZ[:eRjzȶO.W-> 0PԣE15Y! m. bqgcZS`sUR}j-n[݇?˞ñM y-E~48Ӑ&1,ug]LBlǷ Z#shy{I`Rc[ l &$+ XtՂھ*@KO]K{ 3@ 2اm}A1Ӈ{R`#u\hx  9&Ripa5@,ce \<3IVF%5`y<XKY!\n$ܕ#tJ3~*H!~ZH>X c]G"}$E!=QʒR!rwE '_* 8; ɕ4\cLG6㹬qɰ=Rθx4(A溲+{Dz/U\{$fpݗFȀ*9YO]y$uT)^(C#-Dڣ"tW `d@=HBALQeuJb02+ܑS(LhcEBRm&$ 3"3}UCUˠkن]&Af6# F1ʂB/%hd( $QE0\żtѓ/~G⹖ j` 01PQI#0e$>CPl:R(-ۘSzk-}в!fǞZbQGI;gR7-*MԨ}bѤS}5Q {],wIy 9s 0iZD!ɝ[+ 㣣M^l G?nzYK֪:/Bڦbe |oeCVEtb99S޺Amr} q+dh+Ytt % 0b cG<bdAOT VL)< F )#mh`V< hc Y0]$u|\P jlgYbw <Hf(1& [gIyIT~ byW@"kY ,kx%tM9*k[뮫ә%FH,sJ0 P(Lr29&_s 4$ʈ5Swww d7k8-{uY}[ yE6[֫&<_SӲtE+VHqCFs|)ᤥi5"WQlcP,5FBj$NS6 ͶwGV3k֨?jfp=Aw4gay{:L&V3< |z,1ñ=?z9Kߞx~[l\ҹ|jtMfH2]@pppPfSK€&1tLHkrz3cX @ /p_Cwp{&0G,Y)"֤,m ֲΖxt[_t-nXr[ vX1p! IY)/TH6֮̒T:dmQ,9H7=Z#>)`N7Ӱ3*>gJNf J˶M4YJۄ0XD;w =̘_ŲXpi^@-qE hWT < u .S2#wVNDZjVc솳XOՇd[s ӕmb!A5j^&;YZbEr-V Am0bMu>@Lm̉Z[2A&m[6DF_[UhxNR@9&+.4.u FC xl22Wޭf,W88n\ v(Y=5A7IH;|o 3FD;D^$"kJ'qRu2DqZ)2 aYJ3#xO 0q`,5trM,ټm'+݄`u`.aA/t>OI1 m0D`AE||R7IUJ年4cP[ss q,㋳/}ӂ<?y8k9K^v$ozAAM8Vuc$7 uԣ@L 6X&n0oP]?R?jGV+ujvkwowowowowowowowowowﰘ9R?,OY!,.Cy9}^.#ESIB{פr|j-mn酯HܪWk9ϓODy(U `zEtVLVy_Sc~I|'}dݵN˩wR_f`33}ԘIA AIxO6uN@P<7؟<:=:h~ HF4/E593U=;U=1Uq8 !FG#`ZMZny5Xv$GlֶǍ",͐|x?n?\xrm@JvџYf{d51yQz2nSv٫Єe` &ʛf^jېf&60Q9s=IcpᩰH uaB<ۂ?&p/-vyV*sRԨ~j3砸 u/F<^>JTM{Ͻ=Yoy!߽h?{\h.>\ C> #( q'?=~0X(Q`'{>E37qL R`zoLO?ٟ=Tދx} YV9mdKޮg,cu5.:Zߺp̥O2<R Pm Gңn$gFR90Gv?ngO{_Ƒ~6NA,I3d`;Ԁbmb=;[]6v2{'Y?eV`v@z}Y՞tk9ʲ/eMKh~ i:xdN_2JdT;|s evvӭe䰾W-F V˥`"eroSd9 ̆=l:a;92^ q Y 2k4,^~B|3nK//Yp/ `+{Q*u:J+vc<UY#mw ( @_ЙNQ‡P`&KCn.kf4P^-THl $]s!ͻ'#S׀r3To z/QhbqbݡTKJ# [E ,>EU Y&̀ESޑJUüꄘ %8t,_ý=13x-^X#i9̖&vlA~ Բ9 {## @=Ӈ* AeSZi*l@ۂӀXחIƦ#[va`Ũqt V>mpT4HwD$S&:+jA\$* d !ؤ1P4p +QPZ !,ƤKwM/ֿe*; RX)*7$Rİb,FLz7T S-#~-I5t;0l`àƻ!W5OCsh,Ǜ.-Kfk1u\fR++|K|(ؓ'PМ{ߣyz`Qa9liIFTc X|N*l =ZLJN)a6I/+TK!cSr8i69;ku \Ɛ0$u+MM)҂L58ql}-DѲ>صq߻^t[ĸkM݄oh: Ue΁޵&Kc!QV<3]p3ݡHwbLy D"'7OW% ."ì{jF"k+uF5n4zy!42H *iTC<ȸ->0-U an:+PY|j"A>gBii=Af8Y:G#(p^5zC>Q~%-ؖEYZ k5z\4{i]9{ #~):BU{ +7y#* I:u=6RAm?:$ ^GY|8=Lg *0  ԂcpRwwuUYevN;-V6D; wT髦>Ij}ZR*ԃR5$ $ ]2JRn^e]/?GElgv ;%B; q&\ZZaDuśĔ`8 t[y`Q/&6V"8=<(D`]: 4S#Rw1rr4gC< :M雱Cc,6spJ0 8\ u?;nmN:siA|x$d-*zR'*^1#f,1/oM7uCo­vX߫:I[/kNĵ-kZn9.-䗓  089>;Uɟp"\vnNv̘D㟵bXEFq?ÿ GͰ$JCb3g`vu ycHhhM#8.Mb_VL6p[rpq þ'+XrL%[D/,XG ]O =qvnػgDiGf?=%6O4"f\R1XUB)UH26ޚ-X虰m/bc-Sk723,GAdN"]j ϵ!ОYkODG$qu˸lNv7u\ኄ˱"QUY8S.y'ϣ{17/^ڮoLRWS*\|ѹX13R94pˤc2/tݣ-> uvdw:p$g'gnqtw>f6K,Ӧ>h "Y,ZWc 54oY)Rr=xlMK'1XeQVUMm떮rAD<õb]5X٫'"lpuMql9L CVlf 70n{-oaޜkhHyYX]Da|c$'kզ|Q>wWٶme1YZ -mW'U[{[N)4?ϥR'9*߀^LR;ȪoPq Τaf`RBpY6wC_D/5U\{-*trMC_}Keu[|ms*;`nT1{!2GgϠ_8Sό^A _&8:@3 L d{. fsPrEDK"m褝F}*Gwe2̕KS@A: /"RjbSK%7ˋEPӣ06nCvOjZ^FG\ac6CT\ tDB@N@Qvˁ[˪mg"dV1ˀ^l"z2%(kQO΄M&ݥ>8M.IέQ:oh7isA7ݷd>GC?55F0"nІ` [#) qDlɊح5j#Zd݁meKBsyM.۱ag=*d ڷ>N= )'d!dˁY ԝAi".m:ʝyX`61f gyeP$ȷH'!X316FH4 !}(8=;ys;PA99;zY? s8h?j!*!ހR{^'D &b $o`Nl0Gә l4`s*JoijKkgr'^WhɿbͽGo{h/!j%z89zuxfQ߹nCUwUܶl{g=lnLp$YJȪrXqewBȓSǹӴ:oZ&cO[87)f rXPI5u3#L1(?mwT#FZ7< 6O,/m < މ,nOղ-48eoHBVסtE\ 65Ce_̮v+]B?Qh%km3-gkb~OLZ`tv5jlFZ-}+J #S,91ůHa $(p#?+_gaaaaaaaa2;vF;W."͵IOjj :ꟑ=i64NCow~zuLz? K`3k_QohYƽw9ke߻&=8zlx4P@Sa@Tr`)T᪀&'W oĦA[)و @)19!/p{szMEwL0+*%5͏Brr1?t19 8 *n#B,C-z" 0wAĶIA9l08xuw8u&%ӨTj^> :;_wn-Ya[TQq#ZL*Ӹ)qqF6>2wOt9 +.҇ސ߈U{oBt٫S2jΣSM|иP-Wt@5M@4$& 8O BN+SR'RO2qX_>ƃ%,϶_C4&)(zEe! y_>v8m5Gİ--?m4.\9m>i2]` BUfU?|up$]T`a2h_fc2NbwwN4]&hK N,`˅ Ǣ]OvK9 dHZ WyRp?=3&KK'ض;w6>  BgwS" t=5!LppNˈ%HBSfɠXd.C;eX Gө7'8~#2O!l|_PԅNJ<0<=+N\ށ(#PM6a!SYQ`CI܋U<#aUsn~p{-ӿ'`0@邍+Y!F] x,PQ]v Ϙ^&m3`C^F%BEB}Ez224ErC!4cTgbh=j$uE%OafvX22ˠwu s'k %tʲ;y%j?7'R,p{_C dcTx5wʞ pkdoɨ߈\lHy yG!P[>][3rlGB6ߗD 7hȵoB|#^i;V ]l[q\?Hs ȿ}tpKq~H!KFEk&75 idtqS5WCZjڎ=GڻVn%ɐCEkѳe:XOg,Eٟ &Ft9$nY% tb+D~Vڻxi+Ǖa1\Ӄ VFR`l8/7Z{)bԒV +DQtjT8r-`*\,u-%eZ@Msk`o<3Pgye'>v4URa!X-py?5KFVl%orD2y.C }tCoy7-Ua˔:i6L)!qYc>;k_=gm}Ѻpe,kf?Y,g3h']`A:N[U=ҟڐq@E2\4Fijd5QI{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~lDI?f_g?g3?R?,r#r$~b\50/ nqx|oCd\l잼w;'{t9(0.ST\jmeŻ:<8=gپ.}d"x=U *W..گxnBۯ=D͙:5c.u=prI{U~p-zUM73 >0=(SY}d];Km/ڽsQS&j[%g2IǦ`Z?މm<~pұy}1G6uJw` n돌bfNr?\{ȼ@[CxL 8˱4oeF?^mt#6t|(uL *G 'ͥ6;u >~~x}}wagM%Wv(@zy!ɉyiz[йri7Uwq@$P-(ByrkYO^op:?Z"A5JP(pVJLMZQYzCaQ=Z,̏pۉ`%MCC#}V5z/Ǒ< *$ @h?RR6Ol9*N;WY+W8B*, ϲÖf v%<A3Wuڪt6+,gtRY?4D(Dl> hذu7@gր8x K2,Mgޔo7g_m 7jI?얶}P7֧NΒEN K$x탽`Da^ε#epVJBw|{Ӹ"N,|"Bҗ׷M'$[Ow:AL(8Hjy-$lLFc7Al)Tc\FQ z2鐿 {?>[J F>)X6j>:_?~eOZY{5Y_y0]yIϿO/z3M{޸8O8O~8xhavUaG?7b߲XE?x9@ PPxdO)|GǧcmuЎ餛Xpذ9id<2I 8֒adw衒gTcGeEnΕ~%mxK\[w_;lleu pR=m`|w^83#4|D:xXֽq9- gGH?6+d5f.6eX6=&3vk颳l [D l!7B~u(C.@*AVhXsp:2qFaTgku>W[&cV`C8J{T22h%Ȥ Q&^,'F$C㜨\+H}YA\z`t[!.}kt7KޥZa[ Sr!m %O\fX RQҼ#$%B8ó= ̸f=+ my7RC8T v7M@*8H ݫ\4iO]ͥduNRTN^(VUK4fi&^%yb=]j܅buۤKyDDQ]0:YvV>##FgW9)_'&78 r(Þ@j9)@nf%*y/s<ۭ=OKYX47?~c WvC_䷏ Ouk]*.=A9ܤG>}ZO"@%R-BL]ߡӔtp0d"8qRg9۞h9xNixsleAT6+;Gw'gYU-2Zsm[=C,`NảEAL<ߍqWE_8W"tAǸL6q-.u]v_cw^>{=g3{ř?wܻ{0o4M)!]ŎNlǰOl!U$&89i!rTP-MJ͌iXҗ8TZ8[RA ")1α8 Qz jbp뼚E^X nI-M˨~ ŇIo[;^LIkGCQ2D_ƍJT/?ܽ$w:^YETN~r'vGp^jlV~52Ris*TWYC ^2+i `FQ|IUEZGTl<iH3+Ish-6_Hat/!f/q Mصqo67$ Z{1_^_ \ wX*me\m4lWqXFo}#q 9 ć;V7RvN{6ֱAC 7Ym؉5B+LZ;祗Xe:G9kmT bUjO}@;kOjkW7 V\t ] 6٩`[೗^e VYrx3c<ݖ4}%0E:YQsk&瀟q0罰ܑ[u8cLF[Gou߭Q$%`Om+͞فV=9u8+=/*ì4@y@ iO ,#asv,>97= {Z~v"+iFwsyz:2)Y4c[)9bUgJEA["ӿE9[_+ J}ֹ瘎@4 ei Qiy=wF ~j[_*@wPQ+eߡܒ!Oʾr旑 >-ՎjT,auR!(6*fpedtQ"?HIaxXQPۥV@+҇]G*9Fث2,64Z ':msQf7E(tu?ZB߯Z+_q-Urb1"5 A ]ye pp&NszaFՂry8X` V 5Q[˫0"?rlYZW< T^sg*nf p~qRt4H8U]Wz0'WR4Arƒ6S,uXsͲ?Nj.n@?hnYZB%P8GnA>̮ɽ̛3 wysVWSduD')6awL:jREc,TQNAxɑ)R$dY!\%,[= aqvD:mqxn'2tr>mn⍦',PEL1tѦ^ R| Banϴh)r1H}󪉴0fP)bxcV[G(~;܈nJP_8θ+e;HٙMb9@"k{ƍ:~rDo:h!_tN$Y"HYY듶،ٍ6y{m]zމtTE2nJ <{Iĝ L[:1)?ud&(^ =59~C{ֵ;xR?.O09 bp$fYz r{:kt $Blc8c/L BWUJG5<>݉}˜y♪8~m m#t^5!=TBr׫wNg '!95cBa5z4a ƟhY["wmћ:ƭS !fΘB>Ř\V<[IlPs%[|$OMq2pO,$`&?+ʠB7)H!$4`^@pJ"41l7< Q[@_C!M Ȏ |p%4K>:I}V鍾'7e 㮬ˆY1#YRf,d#7g8 _ ժkYK}mel@`m!!,L}8?8Y kXƩѭ??w*}]x d"r)z^g-mRݲ!1Ӻ*1u|A3#k#ѻ++5^ܟ:1]\(^]{?Y,=E}ϢgQ߳YlR1ůP7"˄(ca(Udaxl?rgGKME++M^ͭR%oϩt5XB̯^r\ V8{N?:7c`[Z_ugv|vv^L};q*Vgנ{yvKhXwqpugʬY%79iR*Tl !˛TW΄S4S&FV[aTa0)(eȗ,N9@y 1osjn n#K.WHcدG"O1_?Z?BF0,3K0u/]v: % w]S/?)Pe?ăƭB=alk+sawz"avD8өQ?o7,,/P[[CޮVF_(QAL@o?N%~}j>`Mѐ 'H*8 \S IDB.VAc­D y, ftyчe_ٻfzRޒ~|"FpZS\gj ?rIVSLreuW21˳*42qSh3LT1Kуq4ߛtDo)hMuzϪ<Ӌj 8qf8pTZF;ŭb`bCa{cwQ$F!H#x~4F`52XlQ68 Z*Fe=lB]A`'b,F3Mμ Սk$}2|3U3AqZz?YO9s@N2[gF%Y|@ * bOjڑVb?Vp-&VVb!l~h V*w!8)d J 0.j6-y}yҲL̯z1l=6={D&N/0Kt=#f_^}>oJy{ӇSsic&*^9p72yezAXM1h{>#g2K. 6Ġ0c r ]PBEw&j% _gLr/!Y>JP;=};.L6s3zp\lY1 Ā;,c a- 4=~\oߜա>x%M@)uB.oS 64QtTFm8ZaL8uqIu({a"eϙEnd! 0tdqi&9_V Vyt1HDΡhBn7#(7 ݻ&JwאЭ$GqvptsupqtP@ |rj3,^Uve>]PAPג~"@xgB9dq bo^!jzxVL:VHSamg&2 .7cŐI)KstC}x磉p\I 6PأS }p Ї쌛!*޳| FխكkV1?v939a0Fnx|QЅ\i\X|W_F(B0k>pt%x,RBT4bt~Ock~7Bg f(NS-i#Az[l6jqtЦ+_C X9F͠n~X$c=֪wA+cQT:nA"T2̩d^*hZJTmp輮!;:L}T8{^FS!_ Wc`s6&..l^1 ˔\/Y%ԅ[q6z ыpZttt`Rn2RKC֬"~ZBN̷B6tQTGT_j 0u9 iUA t-;#<}A>|5,ʼnrsg`C@>Fx/zf42\ D<λ"h!rU+Z=hdf~89 ѝ(<_090u8 0:ijRٸ!u=uҤ;juR]aѓvJȪ vw.HQ)&_Q^/' nxt1G*aMwՋt3o (<7/= ߏh=y}ϼg^3;v;$LС "C ނK2YN΃%ë{OtGygiE.`Z2E\r?J-A%@Po ,jBYZ05N$.zh6D5{IT^ (B]&spKV3pްHv kAV:"Ks,Ԓ*eZ]ĘvGǤp_HB! _e@}$_o}_lLQgݘpSά:W ;VaD+4c O"2Lڵ)>i F[5P'"le8+ {‡Qdgt|fyk#86 !3uﮅj]9'J;߷k\%$sW71 $mx5*2mJ"6WSDP'58~I."T.iu+4$^xһa,*2'՟j 꺓d B̾8OP<ր3(Z6d&ڪjCdo~Vs?yo mͧ eY቟9ԽLnmbn}gݐu^ ojEjrUO֟Wq#./8K*VuBpg=xk ]U[-yc/\mo\}zW|KIqS{M]puN:s ͥ0zqC}t#?ڽd27 W=$+ :1O}h&nu@ '/b;>bRV&yyA !XR"[69u^qn,-L"zQ_mY]h![!I+T#݌5739Y4r*|EqMQ%(XY]<\~5~ZMC.hGQ'iuk='EPN]!ěѩE=8%VxR/)< vf:_0p*6`LԥAu|j7ov#,r(lEjtM>FRwIw泽ӳ}|㭷)pe.1]ꏥrY UQjчr7ФU6zӧNrYBRۅ:һEP{ &&6|>ouF~,.èЫa4!y?Ơ dHCǣ+?Z?/)bT~?-Vw9ΓU~p*;ⶺs165A5\߅}ݺgV>/Ƶ|Wz?+\7p܅;uGn9|?wv߉;q7.np2Ҩ\>9;>#1J5#>\,$2^.ݓ=x,>>i SR7b/_ĘN?TmE"h9.Qdt[͈.D$1KR71k3A#Ң)ɮl LkM.nFMk=~zu[,"ip @ -uav+$~gYzyt}K̞\Dzso;~$iνI)nOGH˪nM$nVwdz3jsVfUUX$o2$Gn1^#tiq;Lt$[ʝ>t̮ =ˍ>+,@| 3` H^~yz;;_//qVZF(֩Q3-sܣi$MLˍ+c