#!/usr/bin/env bash # # Copyright (C) 2011-2019 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=8d1af02ce5d9a386386e141fa99cc99a # 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 ^ Y85 6W.%K.,ߧ&Y2¿}C||1۴pHp؂YH3 i2`_Z>qȄ!!v|ˠe<2|&$ &5溵ne!0 `\q߇4cPiz\}Z܋%>hDn e!>, z@P4$`!6M ǧ b,SM"2-FC-4>y^ Qu{$%gS"HTוF iWGXV`>j?p$) |5ɀ}U2޸+/P@=JVPفdpNQngrOV?eFM*wƽ ǣ@2וN-_I PWru_!"L:g= 'cvQ{e  8j>?cNm_/ⓒt# q(3Eձ*$HrGRNIo0 I6Ɗ̤'Ui4Uy/A:@gw}dٌ4}D( 2}ek(\G`F$rJEO ZVMV@fS)c8 (CE'Js Aa\gKPlcOCˆ9w{j e0u$-7KݸgtFPU`l 6lo~,v%E):K8HkbvC̩!mbbR4S NF!Ua/"/M͓@ə[Izx$ |L<_u>w^!0;>>ڔ/$*?B{4hRv_;<(@ڦbe |oeCVEtb99S޺AmVia鸈2\hCeX:g:\1L#A 2'S+SZX)< F )#mh`V< hc Y0]$u\P jlgYbw <Hf(1& [gIyIT~ by @"kY ,kx%tM9*k[뮫ә%FH,sJ0 P(Lr29&_sijbed [www d5T_s^WXQ1[ܲX Kr&wHqtܪ^6zP}+r\&ZU"yK H+Jd 52`dN3 ˷HBJ9@ r!Y+l~Cj9@mr૞`4^1)ѳ̀yf@UsJ:__6穛|{ hrFu=G̗E{BGULYԻ%e:yʤⱆ; `M;r*wQCPxaM!MkòP=M]jZ04xI{~|xim=H܉ Tng.:<үώ{ۊr-+ CԂ 7nZ/7HR… )Vp.FDJr_V5e(`Wռ$ * U }TKjB4ӥ-$.YƠyTia/RdWq;BHŸW C6\y8vJ콁N-VKe6L#>>}$i=,zsLJ,#f (Y3P9R|=E@eraߩh/"˷P A^<3TS&B6ks^& /ڱLF=VOrU)0HřNƲ1H[HSb8p6~`߼ɗl ; BHaG4n]XBԎ"Xwr#R7e! `^loۍ7'^@VnЈd>\QB34m25ÿV90@05 y tIy:B%;gR[]l|&E(9MjJC$mwC|&t'i7+$Z"fZs( 0\,q3{t0 Hxf楱0sfJKi&s{4ӈa)Sk+ޙ:0LY0k>^/o&|#O"#J>-jKәMF۷|5ywY׀aE!s?/'-LíL=b,-,R#v Tn~`lqwԹj5cMfkfywqOz68hܤmˆkKӢ O2I (dŅ҅NR(r|Ƞq^@Z[Q6\ʻՌǭKbN$+5G0)>qǐӝQa#tٜyTȋDd`Md2N<@uYX(n=^+Ef!"L4gf#i7}e",nRQ%2 C\P1d02.^%lA< 4i79 ,H/Zf4 J)0wG]촔:x'Ej8͟{)1>8H uҨoi< @NC9n:7؟'QSZO4?z9v_?M}MoN~ə*@5 {!FG#`/>ZMZny5XvDlֶǍ",͐9|xn?\x@JvџYf{d5gyQz2gLSv|se` &ʛf^j}f&60QK>bp"#P\c` >uw*]L`<$Z4XYQ/zgy(kcJH{9C)oy?,a1{Iq'Gd jω5qv2]#"mxHH,@?%q"lNŞ^2Ŭ|I)g (,4H<M?[::#n5K Bn8ari8EV7ͪt&tǽTt ~h"ۼvSOD5+3zjK椙G1q|IQ+?x5/'"bI"L7yq!rs#kjjZچ )CJIxnf_:Yri?oz^F[Yxrk`[$Z 4JΨ/Mo/X5Ti" `Bf|BylZ:sx(LY;\Nya'zz:nwwn!~C]6l_fΑ0k Ye򝥗CeD։'XFl]x eia؉;XW-% ;Y{ 8s_ꌤ*g10;X3و7=[_޷9 :x;m>cgx+umcśAwȧ[Nys2nd\NMP_Q#< 2" -w cۡ {?`Qd!i1lܯ"D*PaV'ρ>GٛR2W}>+șǗfyX Xľ_KR¥KזFh@譋I4&^܄-}L'p5aW\ʄ+]PȁKp"A͟s$݄W# 7JI Խ/}PZhO`9ty!T&!8rK򾉂ZmcDti]UD7mx4%٘f^v_[}GE\e"~D\V`MpЧv3hϧG`3IL9}vcBoWsUW9x'yKddD+<4䌺"1Kg{zI],+ל6y /y늳|}vk1ߺ}o_|o]8M} GuYZ&-VOzԍlP*x|uhdkTw?ov?ng>(un]pc|0]b$snmtt`>~ #+ؓ${[3JN^\lm$IW(nF t2n>zW[HhuQJU#ꄄ %Hz:v=1 /Z#厎i9dq[fKI;Y$hl=P[r Cu@)4Qsۍl„i],Erg! iȦ]@:N__`7\J7]CKP=ȍ k&-!RK`9iҸ)"q 5P0 0C IcWh8ᨗNW< < Z  ƤKwM/ֿeMW)@SPw۰)/DePѫ\Tfx%T3(E{88銦9jK"2K˒Zӊ:J _g#J4?=b0 *4{AѼq=0(H65"3A6N,K'lp6wkuXE-fn%0uP˳dx8rjؔ"NMlʰI]71dP#NҏKZxoHBPPiE@/&∖j-gV}ע۪EE :\4T% ,qά566FregF s%^|*Dg;#M1rT-yUR\/ ̺KuyqkYX3oTugOFIp4T>XP~`m(rZw|MmwRMj s/d(9~{~RȍW7}t^8n!sܝPBSN5}r:;RGWOU*{ 6%y-(栙2u&@~ M| *<_PI?ɯqWw;yM:ݬ1 Y8Tn2fWe[mF'|jhMЈ!>DV26s)aDD3Ha<͔ gs%Yܳ-B C~ c thFœ|Ӟ:E+Y8 r51#ë,Mg kV!m}j71[Uo=+F5A-es4ti$^~7wwkMz#M?5b\5b+IPu \n7[׽L2&̗dkO`@zHWAZRJ*ҍd='[{S[yQyz' yIP`zH,7TuU32JRn^e/\~"q&|ˇ6lW<7J]L!rʾHy oU9AJ+CJƆm^ R7%>^恹uz0֨:a)߭s~NޥraʺYNFNvl<[8_}VfJ-o)bd$s9ާَږ 8\Yw؝ u/=6Zg90>:qtH 5%ԉJvx})%e{ &wLa| Лp+@fj6:X;i3ZҥڦBI 9(MlL%NvOwwUF'QFG.b{ wx;}UfL3,7Q|/MaR( K1.+Ӽylծ6aBGuX64k$cE 9Z`l%:;sru 4.EqY-L?яz/n{] Z(jv ]|as,n%աU*)%\U~L(c% M Z;*1rC02KUe>\$*VM5Sg&$U$~kdy\/$H8+ /sIU{/'+6oy2ŕF./m!ʙS8Gz(`sqsbf>44Wpʤc2/tգ=|u~4tHηNvVtS=YApr!uve~P+.J6e_ngB3 MW{l2(*!h#눭rA gJ3\_m]/ɚT^G+h> A޽Fa\pr`mOr&"`@DB[ǮCBN|$G>w.\eֱY - ҡWU[N)54?/sK1vL0րj!-|7ˁԋ&lՅe>V+UuH2x7:yLζ0YZ#Wd~ 7/ԋ׀V۷JǗn#}4Fd`TF~c-D_lwA>`Qkw?B[bFDzmmJELؑ/gƛo{g/v=zx5m_~F衬6NHス=1}o:wFaԱ@ڧgwԑ>=-E<)x7_B)6nM_}7o | !pؐL8+POO#k~\^v J֖ga .#3n5L`\bZܼkeq_ F ="o@CX\:IuKHAݸPPҵq\y,toukѣ1N*Hү #.Tz9Ώ_J>h_IXSo@=fҟEHq{nKopA?5#rPLCj0>yO}hd$Dzzp f/^W{hɿv`=G$ {% .Jݓxѹ+C??R۶"PcffGx݉ B.BV@`]UA]>Qs B\#&|N/X&x~A=gvn!و @)Η 8Q=ZHj;J? Mh+~WzMI; f u  ٍQBu}&X`˃:n-Iū < .Dc nt2jqz?Th|s=5 %f/㖻2q1H@m?"zP:*֜҅€Z,5yDDh懜Z*҉} n&߸Nc7ê>֮cyA9WKWq36jv/^%0x`% qh=pbpيmykjJA4 LN߷#J"xX<+HLn}8,F^|` svA |?n"K5Ө._=a" RT 9U$ڙo^h pͻ:'&Pj Ru,8FKoj=#*uF'LV]b* ܅UՋ*\?r˴X!U, ZbXF3Rb$>wA!U5]fThLN,e/ቯx>!fAC9,GԞH8}NBlwI٤Չ--mL#9-lH|TZDdzLԃ2H7W|'CaQ9<VѭO{O ]ț3n\Q1M @PD dY@X))oō Kzxsxen3:죛Xe> :\bWH8;c͕e6Y~Wu_bghȀV/GJo'\H2>^{2!%kQ.FLd&3ok 5f<m)P-]!-GvLـl]FtT7ʒrb!yt勮E*HUH>0:&k(`֬v+LYK9_nem9Y<φE [8%`V.Ji?zK2h 9뭿8| =;]hsJi` oPHyߚ,+Ù]$n;[%}=6[7]8KgɳF_ڜ=\ͤ+y'3Ƴ!% Z݈n*#y笍A*KK)"]WwGGNZƨ֞>]y6?Y,g3f?YxVyDφg6~tFw :KAPھg {T{ҭp%(v;$97\Pʓ;i' Q/rf02Pl# c^Tf4'QUjHU*lJCO!TNjLΡi}w1$X?.Qi]m8P2hHO:[I& 9zK 1J] xdb.PR(6=?V]9 ŗoj[˒ 4:͍$D86mpQ)J?iLIHnXpfkgTܲھQ}S7,tҢ僕N.o}K6re %5!S?we3y1}ZsGrV46g_-;N&l_N&` OpTs]˚WHymeZj0vG4YkLU=w!ͻV;gXČ&Ѫ趯? $ |06jf3%_ZJyTJ}P4I[R idœM(-|񔷓1= ^djv2eFR: u`3Ic( 8d.X],;C"ۇUƳRYЇjk$H?jOW]rk\'t:kQ7FF{҇JOZTA|x?EFpa)\ *!XҤWtdCLqUxX GȆ+27ٲ|'VG-M|oI"ZMZԮ ^l j>?>ܱ<AXb%u OHZK2 ^VdG&%WkdL *ͦ-L2v{5#wloT~IOVW}g3{=7{K-\OIߺ'p`W&b?Bv=bn;ncgЫ~;~;oݳ}P xy`)*.Zm2W.>صxUX my2w:gP>Vgem?na"QVU.z ヘݸ*ϞXE3ɤxR%zMs۱c{Igr͞l/^E?:,"s귺vLzyĨ1I.㵼7ƠKXJdߌVn $a+ <N]Y"[']'0lCK ֹQw:'{zĨPm+Y?%%qGl: "@M^Swxa|wtu}w`Eׇv8Hbyҁh9jIiz[vSOi7Uwy``Z!r[69sCXTONlBѭ$ZDHuk6P7p{>^݄}~>­ &q|f!m]ڭsn62yp7V=\l2!73}Z<=TwPF/DmpIʪ`9Y?KϳKw;l %։׻dlWZ1v h6 ܂I`%az7t$ / Pc,1,9bj6S_5} kI? KXTU[Z{bT5%v|t|m5^ε#4Ր8%v;>ås ӸN,Eҗ7'!aZO#7y`L(3Hj[$_ie)7iDQKt?QjP6H#+C'zٛ0>>9#ns`1{Twͤ{O8KtV '.D2PLYf,G.4MΞVZIqVS d&9ШueiaVh'IuJ GpR=e \|w^'DP>rM7uYKGwMыt=?Nww UPlfjMcl~Uq,0m [6RWԒ#  !*~tw,7 2@7-SZh㦮`^e^̚ Z9cG)} F|7"@@%R%BbRߡI(ExLF-(Tސ*AxȑvJN#/ H ˫__߶9:993ŊN{jq պBhb!j | -b>n}}bYE,rAṊ̀H6r/HD%8% M r{1_\ ߀W:mc-4lU)ONyr7>QTy3bj9V',R8T|oNה6ֱAfO B/zl!$xUNT%:N7EIȓm`R=N`.Fdt$WO=`bt }0 ^3|M=\*_2MfFˌrZ^N]tr?魵EQ" =C[4IG,r rG)(p@ruQLdHT6-.5J~J:XcW%u<Kצ_Lm'i*) <4g1es:$|.zf'xGn Íg?xtv2.ݢ==Xgnu'̮:RQB 4C/QW9FUIk߅t,%OCI\6^FSҙ0;X#y{ҪN@2l}ݩIt7ʽ Z2K;jJ+orz)YýMDjJJO^[$ydH9ܸ q8_kɏ&Vh_)cqif䀮 *=Y*O<Wl?^[]YhD"O@艋bP)jrT~ݐm.<S">~dT#-;4%:aN"L-Pv1"Et ѿ2W,2$ENQ_^ItجQ`\s6#HxIxnZ0x\L$33Ū檡I-+J./Q9DR~vj"tA_$q ꘎UG3N oqI?F "E3Hҧ͚#n*@lai Ϝ{ Z'J&z3ojt$) ϛ]:w6dcXml= 8jα j&K><2݊3 T\ս'ZyAns3gf*H4I: g9rN($"QgQц]h) bV,D[dw@6Vmp/=lZLS64\)1cF3+9QulÍ$Fۈ2t8$}7 nzc1HN~2^~0g1$3in#~]]NuxOhΰu`0^#-Y*֌-ZNVRU[jqڭcT=G;1ve;7أe *TLe;+>Z'TZRD&Ox^::ֈ fZRe\mI*cN?NJkbuA[/*4crxE@ =u'1E꾯Fd'.Z_a1f6i֙d]Lr֮RkdGOɤlX] ChIx{I%yD $Q";e"|IE0@KpLHQA _E)cv?"Ej0 %(T =4p9C{4׵;xR?.wd9Wp$fEzr{:jt*$,kwxem/n BWoT35r:{$4E22*_A+b"Du?w{9DE{f6% Un'{*?D͘=EV+uhXࢶᩁr0a־Vګ϶/^ƭ3k&fɘ >(\U[B5N/=q }.]Ļ4+BƣkrqyL%ΪN# A% _B4AFA+„~!(}Yx'-9;.{H0_C3028b|Ŭ]sv_B\z8ja܎U|+F%l+ N pFqHPtwZ. A3sI><F?^;nd(9~{^}JZ#dz0tC`2{oiS wu-P] u$cmQ{{kRac_nT6Wמt,w;E΢~gQYKaZ%~uoM u;? лL*Dj > v;ۯOkR?~FG$ŪK.qJO=9)]{.nWG% ww n P<?I{}o'l-O^~z ^wr07Ldu x ag̰njッ0%ЪQqtFbTB]1(y4#ғ J#qvtض!%OJPW)d$8Tei3Q Z0`u|ِ6،[nh ͧM(>ܴ?;6%;LQh(*-4l\žɡ4Aѥ7`z8=w+^}l%3%2C+nrԭ. !A<[ sruُG"%Jc5V\r׽)te6cղvV.I0; >Zz9dJPyQETP"&n.tiW*z%z={!E"Yuw)gT#2(HU'W[mCQ^_>j 9# џ`{^jg Ϡ4Eو#(hE5a\3 ɞ&B AO-<YpVY-Ƭz$cg\+%$4K2K)꒍c>Iy(U͌f y } 2c"WujP2Vʴ3J3&̜E-8`҆VKS dG?gcrElB/;ؗמQx&B^ ^ yA%E~51)>cCNJ:=7$.L6s"Q3x[XWlY:~@Y6NZ K!{FǏqа+.Dfp3cڿDa$d'~xsq|1& $"騌@{qP2: WXɞÝqs@+#x_6rSQ٨:Hs5{v-upt`12P`@mFA:(qaY] em9(L 0|'GcX2dh>QfO40A|FV%7"m$hUѠF1yNce'Fp+m( ^D 0:wxh |\,T.8@#/ rfq.7,ȑI C5yw"eV4קd}cnwQ]lҧH%漣@.m!i- ;C>~/\mVtp2 +k95Iނ u HamE ~6$)2=NS&74Ȇ+ eT&HBFC!^= =Q)JvW.hVJ*Z{|hUw55D y9㌺h\|4:*T*~.fi/8F` -<͇2`4NڱUwyU[ vK[4n;jgKͺF{9a|4 ==+󢅋j]'{:߷h7AH"I~MTI.F d^&܀EBI}UZ*u%,:Yǩܶ uN[!yeK*Үbn E?zT>*jY|*?%{K$2j$.Z!ŧ eY=L #>=aN{5r":Gz}*c7ֿE;m(Ι"2N?U^rB\qSZ҅xk![:6eY2`/l\eoTxyP|JNqSLXGHuN:vc͡xqTt?3d1' hHZqIMl&nuZE8(OiEݯrL/?FMlzH9lv:fhb;L "_/`蛎7pBc B>0ݵ-:0*C'>;Ц{L E6Q]:FeuxeM~Z] vUZ0&"IZZOIAz(ot*1\O zzpżR5< SruaVwu bØ,iKŸnODXX4r3%Q.}W9z m(5W*Y5etNH3o k oKAl/'pRST,ՃLp-50Db-\1hiwi<+30A'Zz? w8Rj(_Qm0j ZӜ?Ơ fidDOfr_QmOOox8Xhu"^M.Nn瀟SsQ><'===pG}A_0Kދ{pw…sN=:=Oޓ{rzx/NN8V(h:XJrlt䜮AUmVeaӔ$^uU.❳dM(LI5_,ӳOSzcO껳קۻ.j, I?K +=_nvq fiu柜V=Jo[\\}8^.fdSKxr x9!81b XS"2u:WV[λΕ;`~]e[.7|ccƘ[N+~!F3h݃(r2%z-59jaؠ5V822[|*=̫ohoH]bWC_7T`WS( ]—f%tppg VA;YLn-Y^..2a_M.KQO+L'DZ-I(͕\(E^.[Kʑ*@tEAkw|/4p?@]rJKp\l|+god}e?$`sn2W>:}, 5-0pZ!]\hj6{kʞ3+~f?g3~f?g3~f?7M%0