#!/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=db313e5a75516924b74fdbe7fecbc3e1 # 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 3;-{F 6-춠K!)%\YX)zID~?ʪJC\ C7RdL^;(2rq/I\%1Q;PnP e$UU1t+,>0O{SGhm&o|@i2hHi!`^~\2ceRXÿRԝQ"Ap=|Fw}a ۨ!~X(<MI0m4nWS/kVx`?]dkǍȇ.Vn~ʹaVȝ@B>{t ][,Vn%S 6tӺ{E׸Ih[#} e4uvիy,#X2:WW) [ :GJ•:QGSwRR/UBwtުC-٪C= oաw8/<ÈpZ( &Aѥ-L($dYS[꧅C & 8'rݞ<-Z0C#`[5iԿR{!2&^{y\wQG l(k@JCwiP|lR ֕Y3N|A s=R|"hraߩh/"_(L A(ygL7+,zE _Zc{*UCKřN&1X_I#YFKk}:_*r 1eD9|ҹaw6jwB,"wZZBN'Nxb[ ttOFT'g&M'yg0{(~e"&YWT@'RgZl|k&Un (꛴:'I+uB|&l'ir(ֻHã7T/s1[mwErj݀nn^ 3nl='G3-e=}A3C)5m4m4ׁ5^|Oo&*TOvF|MnKcC7|97y۷٥}0cʹr?iifox<5ww>=( I#b[jNS7ܚm7GU[5 NkAh538ƐFAghahz0̯[͘h= c YR=4qEEظt5@ska,̑d@RF3&ue'ϨAҸ; ϠS0ȇ> 60&DluHXS:.Tw%?+En[DhS93~z@X}da7/hĔ>,!N*fv'^O$l\.>I/# S1A]b-6'-]}3I)1=fLNqWچ,g2>-O J2;p,{ّm}a|C=/`w;v*m߄aV~h%ɍ+Hz-h#&mxu_]_z1q]vK}I/\֎Vj7G]v]wWwBԿ_RWUz7V9qQn,Q੪v1G۫3+wM~J?L XSx\$ɐr.JRybEdXCFøFU#gʈÚ"K*8ת"Uˎo^f` |MK>5FRonFsF}3Jqfrh&SPaPsdPԎ~zj$}IV4IQ}MO> UUO aQ7Ac/hdi7y]k[z[,+[-q(E3A3 QoFХsvчN{L L=EyK{cb,:ڿ>6>e I%8 ˠ7`Tl L`o-^4X,_lK%R/5<ƌղGq7+0󺝟Ww"߼jv[1׹p Z4/  z+qH#K-!1$T$^]j %=UR(}}ņ|\i&AXCE ^7 Ngb~g hؼv]O kv[ԚSϜO,31LuK!M)M\: t\?4o, 6'/6gcj,*K[yWiŽv۫-Vzs{ կG9,.mE3ɦ3d-s#8TRVa3Mmpi?6QWds'b6?i?_QhC]?J<G?o6jkW?v]ǮcW￉_jsA.3_gK  e;K/BEu+71X`!F]x!g,WcZ[ple8Ƀv& zj[b^,d(r^!XA L-G׌rlȑ!{\;>ZF`>#[+}6NA`~f{ɝmE=nId}ĨSN:k}CO RHFG8끸Ż$t~͋0- toLY($Ks8'`(8#갴ss\m0"h j0NҦ_a|a>ѯ T$Ӊb6i>*BEk \>??O+}hNݛiikONH5^pbU;49MN"HEUמ=߿cuO鳵g \O7\sokN/h>nh֠KGʯڣ6I2_}F܂y> ?{ ⲋ Aiݏ! $yV[au_.˨ +o"ErkQ9M3 UCÜM2ڠyg .љ@xvC`fp]T4͔\f1">ffz9 V{`@3Eno N>(4':coDVW޿=Ϗh/Eb_wpw(Ob/(*907} pQ_ W9)c"ŻGC)jgh/$ʼnuRQ0.iN&AA| à$!$XT,9Q+N _PQAOBu=;8 k9^kD#VHy&vA`S ƨ߫?TwEjp }]7ʼn&"K*F` I*|`Be,N+l(bLS.#֓Ky;xS6LbP}f滘4/\P< P[lPI. W\Vq^?˛AH=ƝZZ fg^wO8{ k0+AT x>ʷXXN[*VnβlEY~%窘?Խ0r[ 2X&Z:sבɉO.FQp 4,>X$~(@]}T%5}#mgNAf I\ZxIi=d#xx ]\ISg ɍo18ovXbBJQF Tۀ|%&D #%)&[yzL\ZЌ[/:p<\HlD^fZO7} لr? (4+ `pI98Iȭ!=6d+5޴X𥚺, m?K `o/_7?>]ReJ \OlraeS Bs<^`8O8Yjs(#۷.0Xj:X5O4l9LaY*7"? ͗zM)_{& G9 gh<p.0:X]/dst;[,c]emq&vWb֜5$jwt5r@' ?A' kvV,ݬ2ݬ&2| fw.cREIMls Y+ſVE]A]ELq?t,{$alJe,oQ@g:k-Ż42;4:;46-ۣ Λ5;r[0$61JCcI/Yi37/;Ț'VU hzpҴSa+Y.ODԜdfJMfD|VYU("kB yKJ|Ľ `zł50=? ䷤#%H>ˌDٙ[ݡlA]Et8~2hn>]1Y_=+pzZRM,no }K~#33ʛSc>Ƭ fYS0PoEh,U:x͢RtI|&Wy&րꢥ\)E]KmYURXu*A lSg}*ޤɫ&Ir]ZRȔh%ܒھ $ C2IMR? e/\~@6m؟fڅ?4(P.Y.ݤe 6ES%x/nc k"2Jۧ%̪q }vADa3jaspuT%c55 vhHޡzJZYj/F{:{4(ל^V½3r}Ump@C%[@PWW#mY9?;:^g$u Pe7$vxcv!s1aw`27^ }B/hUiLWzumac|v9)"_1SݽӓjU5p" h+EL!AIN?MIHZ ò`gKA="QPT]0Sqyl.7&-$0 m8iIqFQ&P{#-qpq8 <'nu,NVJ6[V`Aq4=ɴО6aLm ]8]^ɑV r@))YRPJpe{#/RtGÄb^,$L]kK*XrAnVԗegu $лsݱhAi? ^0XC$a0 Zo46\pDXep~8ī0xˉp5`Y9jمF6./-1!WSJ\t0TX03(9B 8eVdm{Ƨ2NOݝiڦgntvb8ԴPm߽M)Qg8H(YFvL;")*W9SҎ?jbDqD(8\zqNU]poT +ټ+wuMlqlL!˴L6 x6q )oV@&0ڶ3IZ)jF2aVJS-UUu-Z-ѸXWtR6?ڲJaY.:IT jr( ˮB.H9&^@]&qgp6j s핧_:W>CE?955d;VżԋP; xA6`1B"H!Dd? ج5haT w1, is4|[ -VVI#+)>OkL;,{u /(oV/*͂͡5:p UNZ/3&Z-3i"8̈́JHj$|sI C(H%hBƶQ9u_ |zJ}o?4u! Xo~hx# 1~j5PwoG!Y'GD:09~7Gch͏j`$3^rhpk9:c}UΌRdPۯVÝwj?;M- _@clgjwx.B֡ `ٜP4##8 1gtd.Q  {MmUdvkf24kӑQ({|S06R%o7!2#0LX|4/HȎ1DNZT.BcSz˻zYv44ģ:bXH eN4Gqƥqj.=Z9fIc2AUv)u 킆=1hCfajkX[TX*#ڤgrEYk:*lG]Q<^Ж]2`I?IY {F췧V"3UNt):7Ujtc]9M=P~k%#Fk,E1MferA|Ayx/rox.=]_s<]]<ē_/yn%Ň)[2ſX,ͤtDJ*?6C䬥~`HRjĠRa' A&i=G O<M`S`3XC.)18 1C8_6%&Ӌj:`V[ 5VTww߂&hLPi1ɺd*gJOqv茲 ]FrcΦcWSkM62E.9Gp]u02wo'TuZͫu[zM`uƎͫH^|m&?fs6AbчpXv#Dzx$c z&|Tt hZ0 ]y@ﰅ1H0QH7tK#r7<0)BߪZJ#NN|NV`'_(8[+cI"o5F>m- o.ۄwsȂ 9/ A]i3nSm2]P^7qv(O$de]9&>Z z0Kn#,^']d6)֤L9Q~,:[@It*cM;O랢ۋy~{Q teC56ӷ5L4ATe¤z}tYFnv*Jx|#E,lޛWjhwŜG5^~@Q+6M\Gձ$&-uFgpF,7] /1JJMN_2L??}/=XLm_tB<[ns %CI8iⲍlLsi_G6H Bqb؇-uB:}61=0CJ HcM5&=D,Q_ż O8{%Y&J 0Y^_lfcU#6m,#ɌRb4TȀòdډ񳺥|ȱHpx0!<`4g<žî5$Kl_-[3.|LT݉H݀wnI hE G`?nwиݫ9x.C&X AS-cœ$yENwyf] 0H e2'({PJCH\O0tUtQǽ.6|rFN@Ƥo*,Hr)|m*fGP=8= yO0p P m]WyNb%}'P!<(1r(N7.X,ah/BNGc8 WEbBG6YG=lEdWW͋/b9Qt˱X(|*\V b`ME qgᯉ [) s.XOewY6jvX)B䒺Z #pЁ颒eǑ"h!xozL+pv41S &&Kxˤxe\wWJ^` XPG<:+Ù]v8ɮJ{6Åz2 V'弮D֖;HR’d$*"c"=8"mVY5SRG;u㤛b$} Bu[vG|O_[@gKC<1uOں=ē__}U/:j~< jF2 ^ g2dS b`v.@ƺ=Y.u*ViA{݆F<|@~;n>9.ڰˆ%X>nQiN3 Kdb6ܧ^`t@mR)|ޏ <4VDISz1n1-O/%xRI;t>O$2c'!S*JRGauvwO&d^+ إDmvtoq{G;r!#wXѽd:| eQd̥vc<P6l}]i^qn f=}%An 6{A*h5C>u^so_j*G'Ӳ0DH07c,[x _"M<ӏR>7CN/!r4(Y]Z|Y4EdƈowwI%A6gm,7d[kͥu]"VV%0pjp>M' HUC/䥣k"vTv 0ȴ{B"}nlp 8QF[2^3ͧ-0 hslb \[M/S9R:ń&SZZdTϤ4${q݅Z?nGll69 ]5)~j81%E\Oewm&MIZ%uQ#&@FQVb#DĚ:-2]2IdT68gL [.)UO4 tgwO !Xr[y, tSHth OGq|1*pfPlBc~NC%f*l/I/>dII6JOJGRS=Blv3ۘRT=n?̫N@P;:nP%uc~8 ɮmc=}e|p~蕌[^J$V䃿Y2&]+ۼu) Ƹ:RGE@R; +3ɯmSLvR}C6Sszld8p%A6,&=;oǍ$|բLj@762l q {ܑ0ň`3^w+^1F!pzבþ(2-_~De?Z-Uo6i5MuIXD H;aZ%D˚x<5S4I[(˒1};]EglB]~UNz&tBඅXM9 5M+ۋ.6ªN.",U)ͩC<xdɚKAe'ѿV>4L%Q&TQW JOq-j#t[~m btk6%%ٍIP0^6njl3oh9߱ oE1rc8<:{SS=NP۪98z5V6Owv O$GD"[I0׾wL(KbG&r%WIPM ǣw2-,!2G/# m?_IAy|I!?gӕegmYO?O?O|-rLٞ@iŢzyO>@@ 쭘(gӘw犭}zh\ǩힼw=P 7?H3VQ̬T+K3.AA$^] _WOÝ}U/~d"xaOr @H=1>ާs:޴gSd{MmЎI^&#mw ւV:^=<:W֏~T~h.Yiͅ&\]Iܜ^ 㬭`f>IP{9jYY_k0* &gj)7%^gFj. tvIaצb?_l]l)@|; >N|AV!%' E+3b$r%NڧE<;Jq•ٰz~!gA|)jӪ?"k y_l:ٝ:.S|Sx+TQ94e`/CD;auB!"БjoEFl&b~i ބHMפt'PVֈ8B{P4C^&Qwj#xwXG3 wU0Uil/ȲƠe7 \ajOxCVם"v0S&PaI,i˱R; 9:8>:3"} ?,–?k&z4nZ:LNxwxt}e>42T*Ao|8y}}\^;|$Bb,sk2h6&yŗ_=~mk?,ù/=].<[:{1(_$Mz,~~=?[=[[^mL 6Q_~y+gVN*6X;^_zߟH s%DǹELP>l <:RwcAu@hwF"z/B:i'<  l|7 ^r_5UCt*5LF|?wf{#RhD;vٜ w>N2Y,m&7 C^T҄Rzn T4M0|0@Ž藌 Lifʡ;꠭eXŋTQbx,ݼ~mf]*sp+Q0 SyA+=R$ .\*.g(xjҫ . &] 4<"2D8Z\V FǍn0~ٍA xp1H6Q MUњ58=/>0"#0KTԺ |x`F93kd$= O+] ͇N?;ԹܦgwBb)lpk^XIuy8/g6fo"{:54,ҵWm[G|JQ; V ’/g g@4!ZPJa; Pp"._6no; Ï'0sp2}yYؕaY65'=waUxw?6%ĩt|"9sq;H;D5"5 1nyWt%/+e ܁ $eܯ@gt͵Zc@K`ƪu lq>%QV`F  v٥$RI{lFn|Ohsj2 .!vyFd13eH{iyXt1zwS`,UClˮ ܄",f\5i+  D"Xl Pntiuf\gY,Gh:w[a NE;Pv;P`n G:t˩qR*v[ȉ jȑӻ,;`){ bq^hF+wj*Zqt>~ q 1ٺt8!41CJ\QhaKEQM322/ #vkYY /8lᰝ)!i!n9*ЁtwJNv.<(y8s==GKܨ_[.y_>ojmS%luïfA]%&!'3g?}l9x'?r#?r#?,p.wsdQҽXPJpC+nڇ{ a JDW; n0"ʢ4 [3z.v35%|m.@) )<9]j)7(FPedUQj/me=DI/!Fq%pQW qR ?l@UҺu1/$p:BCa97/<aVj%t;WkA `R, |͖Y.HkHͺWk'˻4(7eSX@k:H?jh!Xj_u[ ]@>F&Dˏul1< }D1 O1lA\u]f?7 26J#b%Aw~\GO5y}٬XE.ߦAiKV{ƫX=ׇ!\H9V XTJFeS崱%,ڎnH{zM |؎W9$VvZ(ȟ-/)zjjWVwG{%[ t3@ AèNJ:=A=d(JENgnu˸ޖ.B}M,[0|z.\pW雽]7DL vN2D٨}ip«g\9tFKMݽLx`j'\> % )| K*RP s Cqp%)$/2X CɝKsLIhԛh>S%q[y ZO)7cE[x$i*sS/)>RY]^bNtPwQ-\owsE^H]jP-)dxܖ[y(;NLP:0LHeߏ٘MĜtRn#YwKi@'6h5F/p v.#,~"\K2<` `V yҚ(7~^r ξcz|" RC:%.W i8&O48Snze!K+&co1f+?+ P"ݳOܘʵg0lֶ1BlZZ`Y*M4I:ͨ73DM2tz IxtO*i9gʫӝh&矵q=EjȐE/BׯID~];n<<Ix*Zczx(}o4ŸF!dM=4\uYfQH^,QȟB*Wɑ$#ȓ̓RleB ڠ?<}l>F?4`{MT<G8ƁmQu܉"i3Өst^ 90@]Qx;S:ut.4=L՛C6o6Q0ƺ7D}P`O,65 F%؄o*CH,U\?$üm8s#@0x|Z&̫hM0/dR!`#؁T@sq0jfּg*`wh* mb.4쑏EIO-uRn~Z{./JL8JL£ZpƱirF #493YR麡v!y !cs9 NÖN q;D"q@8G7wp6`R*~nk)w? @B;6iި>ټ(/we_̊o,2Sg jqr+͈+( eeWJt-_I0%`XpH34duEC9;ׇчC)QO! k2_1r1]0xH o6`%a4⌕Hb 9uʩ%竺\'IΕ{K-?3ýnzɎX{x/!~s~ȣ>QyԇdzBl(V"kt·F'G+=tfD]5!<^B@p%Co>[7ޥ^?y~,>j, Ja;%QՄa, ٖ(勬%1Z^sVq-Fton ƿOiPFX.[qHVczd22 vԑYԄ&[(x๙ziL1? aSG?#%2; cW Ib5OW@&Glro!}$,uSNFqixްNXEFWy 1Fƹ7 bA%X'XbQ?ݐ$d]E]>IPrcڧ>va%U#YFHd:)1В<"ȶ2Ns+~~8;B{Ip4e"1];GY5e$*xj\lD6AFEamIUf CCMWѼ ^۽0)▉W|,s" SGFHӡuFp0E|G+yts_ED¡JP]?ƛdBT![kPjp$N@c6Mq&.Ζv&\C~hLU.QfܷlCYq Hkܫqb4!:lψsBٷ(M o2LEo[+HDHfDĉ5dscj<HdO I2 2`_h*rfŋmfb`,25W}Jּ9 T_!nG53[MeQ+tŜʦيn{_08F~3!Hς LܢnΝE eG.ud,Y,ǒxlttŬߺqk en.* :Vzum4>lN7º ox, sfpƁ$Uw"S#)a-qM3(D:lK ,0q蒢I)QчZIr:CP#db6{(̱֣^x+V"14Qv?(Rr|ш^;p*zaB(3a E%8::Щܘ^3'p(bVzj)W~l%&Fdc;Z2HnC3eM2VPx:cš w fܨ1(w,~f\ρxzf4$0plBd$RTъ*9wf~X8EGP sp,pfXXé.2b2S5n'VܥG46%(Z騒/ #5Ha!'QN!ϋ!+P-%݅«wo£Ò5|Z>HcR?`ߟ%|>K_!3˟I^7lScu9x/~׏#Ƚ>r#Ƚ>>A{݆F<|@.>yIpHz=KZљhp9>cQ|^#hD |Z؄x-0儣lQ !RАm& |JGمԴbj@hCF2C4qbOX? ?\p@F*A*Ab4^j(Jy'y:[A>"ՂcZmYhϛvZd38SK2U e]G$vK,Z]z [g. ! ? ӃV[4kӧ Uès^{U,- h.oTGod +L.]sgs%Պ;+2 4_w7_F} 9/T^_j0j2NU $DxVO9 햾C-c5YoiEAUhJ^TXF^ΰNnV%1sGIPݔY^.Tw/(!M[>J4-+mC3Um]*pzF.L-sg(T&WMP 6' J|7LvPJ~1Dï,X#B7 }ɴ Pg>) A`92PC"L!;@{4/c w}xNdJgZ㭥o[7tTm dhK>kl`4Ǔ@6Q)-v6ִ ֚L[T>7$F*(O=5ƣ̫u]}ޣEA`T yIϛqmet>:> B=$-?FMlz@ZE7Mrd) dS,E*4hˠ/7pBgL4B i 4}@7>X f 8oeg{je_0yG+ Qzo}|A/2_G{ƓmZ^]iw߂7% ry&d6 <ĈfU?ӵ/c%gҿѨP] #\tٯ mdRqrowNp0b7e ׀YR,ˋgfQ<`aw(؄bj9X؁"r98ʁhXDϨD=]mv)_Bu 7ERIeVhXh=x,l,хt,úg)ǽ`ode|i)@]j:0~;X?s+01\*6ڕzP{0pn ל=oYTgKOs!{/=3˟Ifǟ-g'x5%9'8_R\S_p__yxr~Mo<yv{__Z<~8ϚŸ18%(퐋ʲ%؆5A*=<ϗun/gRIN/w p+wpyl^ѻp+wswAĹg\]ߏ{rty|w?\ߋ{qy|?.."-AX9;>%17FO[|曥rQo|Ns޼(wOvn4<>a SR흷7Ŏ߾ 1gYvdUgT1Eߘ)̠$$K+/Ψ @D [(ef%f 1~7iFJ4Mk_QnLU\nMs?;F ﻽06i<,t%zLau't}JYb3/;IH:d4j hVmsk|>A!cE[G"2=f9ܱ@tG&3u!=S# xDs> jET9jDGN!X,N| ,Np LVx;O1[DvLcطbzCΜQBh Ec- IĬs?ysg(b?S젛U\˜yD#WҥτWK^z,>B\O{?6^Z^_sեg!q [3˕+PҾayX*~\^,&$[ސ%EGb)COOOOOOO>J