#!/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=ccc28e863878dc8e9966ec83cb5b8b19 # 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 ]$[ϙu%UvWN,~ \FW*xWUuUaZٯT#Tt-@ο{Z|M޳)4VVkZ(N@m殧딉dۄģ>nYǀxxDwL) Ϡldl9wO&7KL"$3״&hQ2 jZ&|z(m\uL hEV5'5, tcB0$8n`Olhtxia֌z5F"F@Ps}^h!LX̨Ѧ~0㑙Pmya0"H إ[}F3l?=S4$%1aO37+ fC,I M"2ϩFK-4>\2R?epE\69V[;mؖA BzKt8`0ЖȽ`BIb{>@8FM@E: ÙOU0Xӡ A@ ȵPGi 8dDC#b"ތ+BHjx39@Q$"m.}3AE&߳'Ȑ5'N\K>M6npɂ({%]"h.VJd øBo)Ge涅t'puIr; `*R~e zrNl-6ŘN .U`olؖ+[6{\rl69Vߨ4pIs _"ZQ!?wݐ%0"n/,/,qkQ5<=`4Di!! |F4DiyMM@1TcRʙ,2o| FgySImA̛m}O>'#)m e Os  ۙV-/ ? d=x}=,G| h%ꇢ(XRa @^xl(b" G σE.: 1!:D1`R續@"@A n x(~v}6bfM~ބ?9fPJ1jD-rOScO<" <^[kR0"pH3+*+jS(\[>hUpZג#ۅpaT-UH ǷVY-~v1#Y5l&Pk`sD  cEM>  b$kDJژCpf<e2%_78;;d|WfCp Ko_z2үo 1 0].Biz O!5Zdb,/X趖Z@nݣe)3U037zI1ÊAY` #ɑ#-Czttij^R8LyU9b9ij{uOgrCI 0 U&gY/&AeS';MSm1bϘѷ$s6 ÝL|<Q`F#oH :8SW!,,Iyp !fS`"zaҊ'IQt7d6U:"Wo!9@{n"LLG16m)AӖ[ʅG k*r68CMq:7' F5moe޹Ť e=,F+ٓEtvGr1y%O-h4*=_T;l(T,ݘX Sdph2ORRRG'QPZA9Ϫz@; ϳ/V!SbsK[ah|tL5!$=☱_P<u:~@Xr*1Ѿ"o#Z wVX*^>fUش ' T 4`%f21d[b8]HYoUS Z8`W[k *3}G;Bڎ#` tK,B0~:"هmQ:<){`J|1uDv#Kx0Kfk;z#Mt7OB%ˠJ-,.Ot:a &Q.:gOQJ;X}bQ p"}P=> !cY^o(;'R=P IJ؝>WD|=aBb=?J"n|Gq/t["laʬ7)44 hʋ ف/9DNǕ^U҅oS`/`{W+[PbjJb\PJvZضYr`=:kkB$}vα3UOal!q\u?JMNSmNbgQw0-[^@,Ò ܜ*B%MBj+-|꧁5Pܹͅ˂PKաnʎ,z 4z51P^j-HMIi:aH A7fqO8$q?'1%j%˯ޚ մ.$Mm@:҆}'TE5zfr8+{;VP W4jD;κr S?R/n-wZQ/t#-⨋]P$.?R5i5l?l}М: ~53m]p"{1l")ֺq(G1P͢W|tp.BvAa)q -upAXpkZi(^('+ :ϙK@UI;Tj+wMUm -f<$.!yl7"P{OҗNPk҈ 6]˘!Z)1FXzr%̹|ŦkUng,7xMTYqL08H=9حJj>u-`_(8L܏u?߭ἯOMc>)(?\F_wo"퍏搪HHXkK"8vWq/-cW0nb-33:~9A=0>kD aIXJ<0&ʇN|uj-qJ {RxLI 8jaJy _<^Žܘ|NcӆcfaVd}yg/& p5uױz\e''JiuI~*VdKFSՕ|v˩ (8$S?#K*/3' N4ZXUy3(*p 4*dFqsMdqj>@"O-YC%d7s̚Ej܅ =`*Ӣܕw jJcWrĦkykmeۮr*13OTīէcFVˌi߃6Vrd 'pXMsDn6]5x,sF$N5gN>Tc,3ECB}i[W*2NA0Avxb >In!6tܿiϻJs<1R՞^ûAIlHMink h-m;j .}u|a31 0> } A(r{W'qW08'M0jPvKMl >V_33L;3L;3$;F$1Y]eR>n'A2+C5Ѱ{3w]اpqEYi+InMϯ>JMJ._=MH:頳Y*u:v_8m/VPәڿ46K~`G%pݣ+O3Ee Z$. Ct)͕2?ywPr rxKy l/M@LN;j$Rpnh&4g70XڇlHTX  e|#yE'"bWP< r{f^v hyg6 ^$f R Ȱ}iFe֫2:j1w('ؾ/Cg? (а9ԨMY OCcȨl#? Vr1 *#1 CdeHh3V̫v /#LEPVui@#Vjf7( I+(WW!*:t8nfq)t1ڊ%‘+k#Ԁ}XB8a2펠bs:~:fEպer|{ymHBd s3SgE@/&o1q[QUq߻Ztkĸk ݄<4խEy] EùHU.X@p 566F r3W'x)zBMW[('O?1lWLVVU$fyGH2D:'jP9*Na~62h4Y 7NJՀnT,N' ͡]j_(lu#mTn6$, λZKKO8r /'ΞIox5MuNsrT61HKi{>Y޵iHR zY?`Kèc+T*BҶjxir|U:D"9a[mWX6K@"g,$Fiܟb8aq$חhASw0ktS+عَ(yqLm߫ 1{l*4P)yto6ͳ%&?BvLDY_ڿb!d?C4>]יe>H ӧȟV<+ڽv NAXIӦ'9y=I*kɂuXVySo%.>6UT,lTf- 9yV2'.V{ 2|VSC:7~ f=gBiI=p؅tc 1&bHp^e E ]VӇu־j2O]5ûr9ctGC-BH `BVnyݬS|*hT™{jls1Y+eW5}sv*5W=kSbOO0QD?J,YgBv LQڤ>IF /~3N \'!% n(qEq|):v}fe?=Ϋhrp,2LdAu"DѠ1z I" \7*4j׽c-oAsew+h|@S I9|to3AAn淢YAWJ3X~a ;}UĤ~b@V6!uJ}1YUo=+z8@-4,H7nhU72k{6QNDjL] ͭEpN( %acMWE:NK +4#{7HͪgѶ8m)PpUO!T(k4W~ieѻ9U;!y7CaG'댔nQTD(Q- *:GE?FnMz@؊ -[ebĿkNk r\YZ.'GOf`Jqszz\$ Z'?D}Ej5 BܾyN:T 4jj@V}v*m Ӳ"rcfVWco3 E t0YZ# PTƷMh "%%۫%Mq>Ke*u[|mq 6]*nz /2r,i_M-nϽتᚩ[8^'';f=LؐHQ0FmOo<)Zx1m _|B /h6%ϟM}а'I@ .}\|rC^LѐI ɡ#[]DHܴEDCmRUVҸz˷3sEc?,&{W!YiGmeu6\3L|p~z$F9zߗ?Xڬwx.~p1p$3?DR|mjߐZ{7G$$p, ?.|9{F%)W9~vJ4ak$2=.tƒ:Iԙ!A]Û+" exY*a8p5Xx+xVL&ri HH;9/p,-{v/,([ؽ+oŻ5kz}_JM&0R1!*b푐0oE{!,F@i63h(MXJP YO΄U&%Uѕ.I񣸢j s\{NJQ+7ۂ X-aBDd?Xi$Jج5BTĆϻ(j49\>&e}VQK+:{UhdpSivOsNo!'KAn__XO0*[kjF',P$H'!*61+K4 !" H % GR>iHSo@=fj]Yl &b E@B/Nl0Gdә t4Ta{:nYHkMc<? @ː^|zF[2rxxk9z+;~UܣF{]pT2Y8yY_ZnDnW*?Tr[KC/1̳5VXWxH!S YUv0lNh)yr8Vë,zaϮ?u}'cO[87)f[Pݚg\&d;LDqjz PpÃ`Ҿ !;c9ʩt~m\k )},;@Zqwj1LmN4|8j.Z{4sh<U[JR( -{bѶf,z5ְ`Km\[<"IZ]ƪk1{%]\]הmH;YL/,,%hvZJy6f=b0^}lӨ;s%1bw(Sv؎'6l|->qBIJmYU[z8QwP{bS|Kd/)r(Y0NKb-5=enX#fgȍklն E˷nkbsi]o}K6pRbfm]yrsrm!$x!27DKOȵ%4PW3[41{u8#}nlp 8F#YG挦\ x&)c89f d-f&߅nbwAL{$ЩD+R1)4$=G`d/d̡oʗ4pjJH"NG6R&I&?If'C Dr0#ĖSTĚ*VھnS282Nq27}Vװd?X)F]Niez!˩wՉ$Ыt!Z\YrX1K[.fzܶoM R2!&b)};hESꀲ,@EdœM(5|񔷓t=^xjb)輥e?q~ΑF=g8f8d)(#`uToedcBЬTZ,-]MW\rk^6$?e%2ڿ d^- .j# cʊkKp5('hQJ^\M,3Ejb1ýxAf5,(9߉ /E3rxuxn(gBcbt.hə@څi(|Eӗ{'"_f I+׽wY ieEvm"OZ{Tuш?UMk<| tkaR-JnqKxVʳϗc}Ighcuf5>3f?g3Whoߥ~S`^ѳ B^?*X>!FG@N ҼӘ*(uGsRWu46j5?H4U Yi,jP~NM|1`ykݪ IgJZ}u{/P'`OaNXX΍.˃3U_VIlbs*^(KxM:eQb&5=[~O/RZ 3yZt [y t-쵭q t? 1NVh}Kr]88ӱlOaQxˤؽ|z43'L!HF@f:bShu@5%: ۹y=?CyJٛfs\7HjߡeHDf |6vq"ڋY*&t15q?1:cTI`pE|G+0fd47"زkYo' 2yI@MAs:]{G[fP]t2MX NCj&I+Sɵ%v6-k|"(A_^e듿evр Ŝhi\מjz6pV^:xi, KP_xvWݾ)Ȉ9:;f L/C'Sg=hVB˥ ad_anzD?d} BF1D$;=Ch(\} ,8VrRQ'3uEe4D1!tҸn|Rz[6it9jN?VbG7 YvVjuu'?LhqD@-ΓGq4.HG fqU !<زȆ9>)cK+\TA`t(#R-ňޑe)̃-zЋѶy S\z2`I u: WB~7{ q p̵ZrxxP"8kۆwfKY5O)Vs2.,#,6;ˬ*PO<:@VѺLT9Z:mֹQD.t,;oZ5ye 2^Q}c8QYx#,(!JO=3ۊ=p̨g&/D4Jߋ"W ܂@2 Lwg΍?o3`~ /g|FxM qD 5(YwH:Yi(+RS'kt1᮰pr)]R~ɱ1ˌ?P#ʋrt\݃Q~'38)J\]*={"=|UqOӗ"xyLhDȷk_xƪgg3{f=gߡ7qwz Mw`ۤ8/SBl%Za'f1pagfwBbL//j,5㶄aмtF6> YZ[77K`Xʠ||xokz-;k8/GT;'?ɱrWwʰj2MadOadxac,±/-]=/ ǭr9;fiP]*m{ZY.RH<WF P Ibi,hWHmHP~v`Ehʛ ]܎%KqX S \] 196ǡ}>)RۏmmSQ/Gy->7uP](۸E$v;_TYګ?{&[3) aM]Ξ*v#>46ґ~zs>8͐"*A b3R`M̏Ś8̟Ywy{Gq>$ Va_;i!4eV\qB睌"Է)׷ͻ9?ٶt| I!;ה/ҟ>ӽo@*щ}w3 2F,^Yt}417V݁y_m ӸI&$x$za3UPۛ!"e1Kuvˣ r})93b^w8T==/nGTZ}&&yZV2"%'8Yʄ-L~_%sT gWY 0l_C㷪XJjPy4]2+,0Vv6pzkS1+ֲT,&Xcm=TH9mFnRX}bGIԟLs؉H~},?ikx=~Z?|J6F [,(vA b0`R(R?ԘoNe창"1!cwW؍9{xpsjJo:+kBzԾj>$Js&|zbvA9` tkޚ6oUlɾpA/( km46ǾfV>>3|Knh_|N˹8M"c g& SeZ+Q\n|WhV| I[.bkl4/%J N _\#ptc  V8~&NdȌ(vSY݉Qg؎moM{7nC[N\+מv3xS7LMA\k>%<gAm4|яkn G3f3of7}Q)v,ٽlwQ|H4I}}niޓ&÷jGqW^W?eIHPSx хe`l4(6PA2)Y1:awnq-,oFYXaK S12!겸 @YBc^4ЏOpTܒD%;gq$ϯ&ƣu@I` 3@}<=aTa|veN=BR}>e瘟λeG5+kzҪu&ϧL  7F5<Ȉ ߛ -64JqdZ7l8hN+d0Itܽjˮ>TUT rb*@n_j$ww`&nXάU',"R Фjϻ?5w[3LWe^O674)fo 䡂0M5,Y˩`Eʆ͚݊LJo ЙЯTh=!V"L.Qp\RsT*|ȧ "Y`Pn}8,F'=K8c`?f#|#(a0pui}pYPI* 1&q O:~ ]MNb@ A4PEb&KB8 b].nDE{ @$1#vFtEbantP:i\i4U'T0WȐ<lՑ'cr-bG]Q. (n'c+I6RH;=8[;"S N_<{} K#<iONwOO~cyGz]='f\q`@{uȏJiC[:oL~1%(Nq)ٌ0At*:L Mg(ҝYDz}ɘ܆<ɨrPO5-G4O1Hqfc,l*J$ww6h]t̢avbj=c4 M:]C7F0t5kSuhzBMfFe:Zg3De^3! &L x%#_B~/{L%M2g"u-&wd(H<;0B%u1A!ǍyrX٫!a$ֈ}X';(h11_<,&cS+N=Xy; ͫ61-PvG?MtOk>0'6mAsJxQ=auC$b$xF_~` Lc;BH0 'ٴX'3k@S$3zvw1I*/O p$>kDV:xJIVYL$' I 1N6WÇK{9ef`XmA:c[\nRuz䯲#^Tx1Y& 8E6/Zl|MIOPzF퓱߄9ܲ[ @ofYDb\< ӂ6Z{!qqt^hVϿO8tcڜ=1(ݗ\E:܋g /4ITuwG2OD&Cv\*Of)nۭOf2&"F̀,ȡhy@b C+yjmd?'{oI*jdnZ[+;r޸OL_jUA.{xRupD;=zG͙25bFB8`rI{T~yI}1%qEED QݬË8hvh 42:~gXIFD룜~^ `z2IG_%=X{{} o?\E +ːT'<,QX ݢGVV^wWY7Uw~Ҩ@w(\-% T_xi=.N_!hTNUcN.|)t>ڈ*$x0jKw`qq/h3RuBfVCXIfZ1ɿ/kpFa`lа`kn6(!8)Ё ~ |,Q4K5>!n5\%`e薶}ɠ4Y{[Rb %M&`1։Mx9׆Lᨔw|k&GxQIORDHڲ}vн}3X,rBX,MLۀ3鯖N^>vв-[ć0$Ja@Z({x]OKcMij_]nE8WVg+W=n4Qm(bx(sQf[ d{z598dkԷy<7ç2&4;{s.DғcG _*h%jodzds8vy18WÓOv0&6іs*85%oT*NW5YI79&6$]J<g7ofZ.ab*XWiFXooܠٍE uVqjkHP3: 3Ng s{D1G[ 0f$%?ԦTAZ49`]BeӲ%2rWo54V{w=4ߊLYp'T3U L+7I+ذITja7-Wu\Ֆu_X #yB-ep|uߐ;bA,2xXt\#}-Ν%HD׿L_zvnq_( zj\o_`+/fi}2}V8l.eK J'fʼ$uI[{! uwJW@|&Cn^^/묿n&PYxp(mvVeS>X&13)n[ !#Q!A\NEYQI: &^r  lgDs;GuO-xޔI5;RD]zBf-M0Cn?8Zߵi+}\  D"DkI7p7:N>M n8|!7DrJ>ȁX~OAJtҵ)9ݹU{Ief{7T]d"ѿ[qȷ[FwuK] &5AirDI} B/, ?WR B !yKiHl0%($#7wKcL]{ULr0ۀ8>KFuZvW6+;Gg'{xUP9댖-bthd K7F;>S;`QD7cc,+5\0nS+o!nmzNŤ2g0 c?߆ݭW7{6f_3g3{f=)#od;{;j/"Ŵe`p)j-qE]J fݩa<|KiH2Y_ӝ9JaBEx gĠi7gqP,lMfB,Un152D& hH6_(7D7WLmXVt'#^j{a!$D6&J$^7t4|gi uGڤnGG̋b8l?x 𧿘֟Dy**LHGHw\Y9YMK)RR&Hl'b+ߓI_KM+)Pm\/aF7(/5&)2Iy׻jT%ƨ^`U^9QV(59͆t/qM9fIA !2y7@MԘs~ʉyLN`] NeFaʚTvq5q@hrS` HN#2LV7l Yh4OS2V0=#⎃[jl he F5~_}bBRh~mR@SJ *S/2 "`[s6,Bي+L_,K(%/X[tĽdg !V;i(0罰ܐxLP=?\k\Xl+HVebۣLIsKقcJ%z%Fo\d| W_H5Ir:)YI2d]L(O@tyH~mBlH][{"i5ZZ,_{a8Hy155 U2F8ENK1Z#jaXP6êpxIx 6h9UhEO!抡s=|[/PtC7ر@Qiv(+U# @J L ÔM jFcu!ի¨A`vtr[np3iq@)nId^h/AlsQ8Y 1O$d;fm7C; ӏK5:NLd$'8O3lW"}<@?ipȅK%l J~X\hKo[+h?f3LcSlcGC g*h&0b?+S@ 5}|kג]èma--0-d*f0h9}"rs *<`q_CdgNj.: ,RVVGv\I 듖XB<.=Dɉ1 ddNrqGkS年+J;M3RbuM=(&K\j f}$☞(^8#.3 M2Gc# mɸbqCJjj3yER CtiN?P}y&r;/ٞRd$ڝNj#o準bCjEq'J@qQ*ӍZ,; TdvB5 %Phi E-bP=nC>6:# GmKߴ m0<'蓅{صdPd sGljC{Ru۝1, cx^3L1/dVJ!`#@&2oTh:$ΘB>\T<[)=RsV|€>]UOq21O,$̥ڡA$%'7lEˆY1-YdRf+,dT#'֌8 ]բkK|melbKB0C8〆kzXʩޭ=}uF*Ț@T-"U콥@Y6$}(Ĕ.ȢA3#-{`rnOn ;/PG5?g3{=g/L]P@$)Oq1j BGd?C? rV.gq8ci;YY_txҘfQL5= bMi;{{E Z_,{ųcN!?χi~_͢?ϣ>;Y/]jcquuM}νb(hV;?'s~;h̩[&7OF"9 S* a6jT\ UoXQ{4.AE=[Ljgं 8ǘ+_yk'Z; C^:(kq׹ͯs߯o>fiucq$}3U"d۽zHf@WLs$+GqS]L}k·&}k7%Nɀ0WՃ |ZEF`3cm&`[f`IA-M=A 5Ik249o,(3tJfMVƈ P͸ЦD%g;\I+U'Yv)\UX=LTh?Nѷ*̚~MW6TN/nW")ȭŨpy~q[N }\|ՄJjSCF_=a7Y^nMxwK3lpKցZǏVlQ WWP@x}U>-vw9O}H*X]Z[Y[h74äDQwF݁ͺe;ur{U5?Wq?jwJ\8ww7w޸ڍwܸGwڸGw؀PNnKYR.sftJ=->\,$4랷/}tl?nCbD7dG?H_?|'wuN'S}\rdh S&kO[j+IR;nbo[%٨AL[ φMzyjl ej-Ny %?>%Vlr"$K] wDFmï ϠW3ݬo634.W7 #PK~BzEP̬yK6}39UfqYE&8VĨF:Pݶi>q\'O˳0?p:T!TffN:BUv6:R2dWaGDSt~rт1#!h[CE#v()r#Α/Կ!t 0dž;VGk]+ݛ=⠩qg~6;JB>Ɣ1j0`ؓTi$Rؑ$񸊥@L{6=GnGw td9Shn;6`WA/U,0