#!/usr/bin/env bash # # Copyright (C) 2011-2020 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=25399da161ac7e1ce38baab3c3688afa # 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,WFJjUFUZ߭"Tt-@y_=z#!Mw~YӀERT۵JB'6zsuDm@}Qz,c@M e3cla'$pM axEؽũP' !X-!%]&^) jغ5^y #@0\s_ bA53zi;.xdԳt_jmLD"vV#rGQlŌ@%+C Gz>pO r uLh3 (k4Y0z|w|BsjR Cr> 4 |zJKn+I׿(gCrkJn FÁr<*`y-5WDȪJztm*Z"Ji G[(CJB;!y<[Xi++FDvIox$җC9jK =U&(\KQmIȭ2pT|!wD=wٕ(@RTr,q[FbLԖ2Ci %_A'2H$ J!VU$iI,<؞h wqP::Vp4ibWҔCLi#UFVZPb HUP Fa/A;[Lͽ. lF 1C\0>@2I 4&"(ZJi[9M{RQ"l"H) 8Í:Iqm+QNԺP AUBakgGA-ǰ)}ó恿c93m:ZhДv q_SQmPõtU֗gGZ:)؁Hka"̙%bLU)h҉!n|D!FMI!ʂNdyz |M./vt^0[+5_Xv\x w7](Ca ¨)CHa8 kS5r:T!(4({CwAa}{cWlWԛvEI op;"ԡ(Dͥ"x8${Rĉ T`ɧIFԝS .?YxdK ͥ2<ʐWapuB-娬ܶã{ 6@5BnGB4R |LAv[o_7 t#Ŧ;/ݻ77l(/,, wq8{b{M&7*:_R?hHVmT]7d L?ȧ[ 4F tFK嬽@saynwt +Oo7 Gy^4tS/&4iigJ3f) zn)KKq^aʏsإ.< jT'?<.l 0) >ޔuɂM[3P(+X!GjN=pc|2Sl wDM4~%rgݟfd>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~ބ?9fP_J1jD-rOScO<" <^[kR0"pH3+*+jS7(\[>hUpZג#ۅpaT-UH ǷVY-~v1#Y5l&P`sD  cEm>  b$kDJژCpf<e2%_78;;d|WfCp Ko_z2үo 5xy]T.xm !4=-2p~tP1,t[K``f}-{7ч/* aE ,Eٖ!WZ:k:ډ4jn)zX&ʼdt4a'3  ,vm Ҳ &ש6]ogLu``[Pw_t@tKN&> `s{B`@(0# A) KNF<XDYP3)0@0iVt˓(b:e f2 *D39@{n$LLG16m)AӖ[ʅG wk*r68CMq:77 F5moe޹Ť e=,F+ٓEtvGr1y-O-h0.=_T;l(T,ݘX cdph2ORRRG'QPZA9Ϫz@; ϳ/V!SbsK[ah|tL5!$=☱_P<u:~@Xr*1Ѿ&"^ 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):Rj5HHƵhme-Xztr )0IH֣cg6 C¹3~ 1ɕ&5r ź63Ϣ(l!bS¥Éa, [X %IN/9UJVZO3j ! s8nC DžܕYRC?,hkc\1['҆ut!)nj^➬q ?I~OcJJ_ 5iM]H^9+luZS3 NjZ]=pp%{3-fm/Wxw.w$8|l,h\TvR=W uDV7f^Z^FZQ2HpS;]~._uRk'j~9u]=ifںDcd!TER,̭uPf1F!c EzE5#\2-R$3=HM[4:?MӃִBAӰQFMM+b_}Qy9Bo)6J;6$z$U C>{[BΠo c+/1 ߃‰^b1֛:. @ Ab;W~_mF.);d]sEV:#[T&F%꿢H! y\Qxd#ɨLޝs6IԦZs5$ﮟx!/lo|<5TmT-E*DZ^ ]ű`2?Vx{!23뗃I)# OO{pN0(qj?Z0AӘ k<'l,\3Ç?KX &~Dеډ~N ?Uv]>aO )G-X 1O˹w3)p,sp,֊=18V?Dv:[R_!m1 ٿ ĨY&{rğgTuej rB3J' OHŒ i.L?V@~3(*p 4*dFqsMdqeߧσ?Z27v`G%9QVyZ,>H!Dѻ z2TBǧE+ɍՔ~M\]}唭Ucg-"%)-O~3ΥWO7njӾmrH~&pXMsDn6]5x,sF$N5gN>Tc,3EҶ6-Ue|B$ bi chvIn 1$>iϻJN'FkxWZoli+۲~o0Rkjtڷy.grr9xw>ZqŁ!G~ldy~̠oL?Ck?o<2~gCh1J(GU>w0n\y:twƺf8R_ ߇ll_hwgߙwgߙo!1 *h(&q$$8E Y Qݛ'>/O[Ouk|~QlUJCKr"ҬѼLI_W<*yJT HLjBVyHmAL~1Wp :N&pv2G+BHI堁;P4glSag^eKC nl` ,<2HE9isA%y&$i PꎾWoő.&ϟ|MuL~ƫiX߼v3u"o r1ucphܜ Q#u7m^ePtij?A]JD݇LC"lЋ0:{\_F[RtUK 㫬Rq% j#"Lp Yw|ߗdP 9),&h`Qǒ!]@[kwXfOV4WG.[:!&V"P@as 9 0t'jM$ : aP.O%)42NT ۄ|%&D ʽ[YZvFɛfj^U1[LƏ6eTiM+u?u.k|+} ,vٴ, A9H<'?;@cf_qkWMpǚO6=! qRYKĒR;8}+qb'd3&2koHL̳Mէ},UΰN}G蒨ޕgX?Bh:GZrΫfS9/MZt4 .eӗ{'dwOZ)mܸ+ذHV! ~xX{~%!Wr`:bۿFg`& O*| ߘTF~X;q`m= .YtCg,Kѡ5 4C.+q^8G3w DŽca*m ;5'"x=̍GkH2QກUצpTk]#,k\!|OJHʙˤ{ 4 r6 RT/{( lUfn H"&cݶ SkT}ɪzYÙl)5gF!w+Dr̿Y & SOYr&Pdz0PmnEh,ҀuzE N(q%{n*ҡuZZoXٻGB9ªywhM!r=jUS$5>-)ABXn[~< W4!3t'wZ.(h|(j*1%cl60bAPyS q ҩ8Wݤ2MkTK^mlȐE&"14z]^yi<0Q/6(oCaqʷ򬦆dwiå̐EdTwN^7D9z(~̘fs$o11{iV=;i%N"Wz !BYq2s+{mΩY`9>H_ ;:Ygtz%B1ԈJ$vxm)hV!9,0/bM7juCojVlV|n*k'm'^st]۶Vebv99"x2S㝽z]%a8!+Il!vmo$PaYup &qaEb2o`t qmHe=h4f|qL>6}HCaXGmٰxXg}NWֱ:cOc%[D+WZhOcܰuS̀҆.t{ '`+`KA9(R(UDE xxkBmIkY.\󼩕a٪;-LkgLH4`!fA+[ s 03p8VT쟊i/bȗpVEE.P%\nu V$q5. :FRc|L`\) "˼TkӱW X鱺Sׁ#99>=dK#LuKwtvb:ԌRmZ͘)g:C$xLFvL"%*ם-idZ5Qi$ѶvLrP $gCNںm,-j}úث㪕4޶ q9UEC.&5$NlUvvގ>#}JSsQӶIIvVYZI㎶-ΐw)>g>]Kod%RV RQR\s`3k[둬<}_`Yh2ÉHP¹IF}CZhAܒ±*:Eh \p+!*D{d7KW$Qg?u o(e5pTDtNb%;GX2ʥ) !nb±Zo%חEPң06nacz֬}9(6,H6ƬGB@[N|ek׷U۸r,7a`+wXܖ*Ai3f>a8VqcrTaDWzl&ŏ⊪m6̍rC+FD1"n Ђ` ^1FȾS@ c&+a Q>t+XLhr8%[ -QVVO}=9 Q7/}Ac^?ʫD lr_MZ{PVB _#;ĬlL(.R2J4Ċ0|#/0.I%pЦFTB M!OvgYvYFk=f@8`Ng*<"Pѫ$if}jCk< -6(TA.Cz xuomW%Wq:%vRdE~zyjQq_Rm- 2Xa^⭯#],O%dU٭9)FX >* Q>A^h ojLЛ1{nAvkfpSbZ k˓Qh{|[0Gp@-B! K(wc:dӍZ=\s&(̖iiݩu0f:K<h̡U7<&Tm)"HaǯoH&Fj:Xú-Peצ<=fe|K6'Tr}ExA;vd K`l Lhg-ԭ,nOE.fTI+Q+84:ZWkc]yEj1TtiɈM(ve=>x;C}lm\[<"IZ]ƪk1{%]\W]ה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$=C`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)輥y?q~ΑF=c8f8d)(#`uToedcBЬTZ,-]MW\rk^6$?y_%2ڿ d^- .j# cʊkKp5('hQJ^\M,3Ejb1ýxAf5,(9߉ /E3rxyxtgw~3B!1T:a^LEA`4W"VP݃=ůVR޻DH";6'-qZhğ*ই5RH0m%?ָ%<>~C=f}f%>3f?g3hoߥ~S`^ѳ B^?*X>!FG@N ҼӘ*(u{sRWu46j5?HXM"i zerSNߓ~8.D1j?~XNg֋>l W0)AŴ (\çKOΡmZK@?ZY\/dPtWX|9.WHXcʧ(eR^>=fxؙ$KKGD ]f3|T):\^;Q8hYN,K}ml8 UW{Bt‰1s0y T8آ#E32dlv_µ<$C w&錠_X_ҍ-~i3.:u,boi ՒG;5MSVnT}uOy~]4`{6H1',rjWx{ϵg(ܪk8^nGe˽pBR/wӝÃ]ֈk'LEA4@=B^"'VkP HwO>O)d,Un 2bΡNzB" *gUriBd-po;wt@#2YE:IJBQL#1}Naϼ ׃l #%~\gĺTTbg~6zOkF2 z.u6QLH-4}^MZc>hڨؑ kiBzpUA]/$&Q!mp 3 "QgYi}B,*aNţ@FOD U6-爽TK1"wdbA} `{j{Wfs<edAnAB8$Z_{f=g3{fytM"+iZVxvbV36+ ~jaA9^ ,/^:R^c:nKxKg)kS=P{z0? ;8w޿ށ̇6yqS~9~MT~;UUao k&C} &3 {(ǦԷt$n$cVf;X%AMv ieH"0W-^z %Q b8Nq -Z(GY UJ=ҳ"VLKxI vXǬ ō\dݍgM3fvD^Y3,bC@)$&Aߓ'ɺ߲d^!Q" @{ہY02v(oR :>X [/xwq;.ŵ>b5Lp%v-|3l?rlC$}$\Sۦ^Z;Z|n( P(q.Ijw©1Wy):Mf8:S,Ú&ܝ=UF|i ?m#+ڃ|Uq!#ET>6z~\] mt_2YС'*#P8`Q~1ߪ1םʮ#ja{EZ3hcBfﮰslhԔuѧW"ը}OMFs:q/ּ5#ll+S\I4}d1_8;Qh.m}֭|p}o'n—Ѿsq E0//h$9LI̵$eWԹ Ѭ8 |H]< $h^JZg˙#  RF:F7,,qMQ즲*O*r'ޚƹnz]->V~ B=5lgo|Lx֭;Ϩ EmWGu_m4|֏kn3e瘟λeG5+kzҪu&L  7F5<Ȉ ߙ -64JqdZ7l8hN+d0ItܽjͮWUT 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'=[8c`?f#|#(a0pui}pYPI* 1&q O:~ ]MNb@ A4PEb& KB8 b].nDE{ @$1#vFtEbantP:i\i4U'T0WȐ<lՑGcr-bG]Q. (n'c+I6RH;=8[;"S N?}u K#<iONwOO~:1m{Œ`=}3?rYX~GϿš-d@&?}䘇ɷ8lF u:U3@QN\ìc>~dL} nc?dT{9PG E  TR$8j@]Je QS;.iLfQ0\;1~N1&#tnb]F޵q:|4||I= L&h#2G-"2ߓ^ FoCma~{Rݘt/YVϱxȩpUs(rܟ& 5 6{s 9u%Ĩ0:!KGd1<#/gj1b!$D_olZHo,5) hRBo;Θ$ҌvZ8Blg5"+IQv <$+,}$A~Z+\%=N[sje Ɯ23^ ^Zձ-{I.`):_DBe=JwW/]O,Ka "{EF-6PŦaaB=XoBޜAnY-H ׷e,"PJ.iAܽ8L:}4p'AO1m΍?bK"\|qq3LzZ]˶[X1+ l:/\{)RԔZ +Sڣϗf?3g3fw ^hְG7՚ưL1ߢFߎ!O{~ ĿGFG`t7pڎU @Q,\b/ߎ.Q{տjKM;t~{O*s>[V!fi{b7 )mGrn'^9:wpEg7ܥ%+`j+sQs e`QE5ƹ\R^$`%K02,BjeTV?^VηW3QX6=rwOw^p|= rjj\`|D|(CC7"!Z LGN-aQ<(p-Lѳ;Gɟ}?p6;^"^O2W7J2$ :KVn~呾WA{U{տ蝟4jG2 WfK "tz>HwF-=:sZӗ&6jмl&$B/*17MZ_HDOUߎpى'`!g_(˭6ƞ|՘ k 6b+9 6ĶZ"Xm\=:;0ڌ{UV+YV|o-l*i274,Zﺛ J8`ʧtƂ_,ab2qR͆s[ jIXY0F_C2(?sV:mXBIpI~zs<<: /ڐ 59p$q~ѢB(wsQf[ d{j598dkԷy<7ç2&4;{s7.DғcG _*h%joųd38vy18WÓOv0&6іs*85%oT*NW5YI79&6$]J<g7ofZ.ab*XWiFXoܠٍE uVqjkHP3: 3Ng s{D1G[ 0f$%?ԦTAZ49`]BeӲ%2rW54V{w=4ߊLYp'T3U L+7I+ذITja7-엇u\Ֆu_X #yB-ep|uߐ;bA,2xXt\#}-Ν%HD׿L_|znq_( zj\o_`+/fi}2}V8l.eK J'fʼ$uI[{! uwJW@|&Cn^^/ꬿn&PYxp(mvVeS[&13)n[ !#Q!A\NEYQI: &^r  lgDs;GuO-xޔI5;RD]zBf-M0Cn?8Z߶i+}\  D"wDkIp7:KFuZvW6+;Gg'{xUP9댖-bthd K7F;>S;`QD7cc,+5\0nS+o!nmzNŤ2g0Ն|loC |Bx<|4{f=g3sy#[;PsQ{),XLVW,KQk+*dV1NRM$DǘQ *K8CD$]L9K$bak4dr_vqൔq$G7DCܠG!QoԸ`j´ڥ8Wh %%)4Vo!o[k8ovOSׯ<&u=-b^!`\?ܵ8η+VQaB*CΉ6'h,^J0Ax;[O:O]Ⱦhj_q_~Jj*}q{01D|ɨ4IvxIUˤ*n7F%tbĖABD1di6|nb57K M3GghƜSNcr2sXp*Sݨ0 C8P֤S%czI;G9ś`2ZCbC-^G"* neJN p}[2S-y.1*=."?O2wض @ iO+,YL!BOx(pr[lEd^Zⷺ-斖Y$b}, I\MءzlɂImvD IS'8dG`Qv5e!YZOߦaX/?0tr!uS%_<ꖈ>#[t˽ips}^~oT=c"-N1PԩWFƛ@@ u)<բ%ȍVǘ BWQItc嶢Cfu3Rݒɼ8^眣p!ijcH0v'ͮ-s o wFYuFkt B'uٝ&Aٙ8IO0p4g-D-y> RK:nіD߶V~̞ f <Ʀ"ǰ1M-"HMTL>'a %P~4W0^3@k=[֮%1QG;};#Dl[Z`ZȂU`54I9'sDI &RT@y{LJɸx^]~G 9=uCXHG-ϰÅ6yyu]z܉t?yc.Lwf'FzQLxՆdAfIޣ1=Qf0pF\ gdJF5q Bxg$НQ *Lv^6e1=%v=H;F @GPu-9^,NT>U'ivjJ(` [ĠDo{|qx.4}luFfgfoit7{`;x|O' )TűkDžɠ0*n~,HUϥ ;cXP=s1xǨf4b^31&O$7CFpMe: 3k߈g+ќu0-"I1م}1xb5,+Rz٭|>tx~e>bXHxt0ܴq\ɠΪnGD12( S * EJ<iؒFcn$Mp:.4 D=;ݝLJPŏw%X}KCHhKZ]7O6oʋ6]Yɗ bħ[ȤVYȨGNnXOq`)2|E2WO=`*q 1Si[9z2;|RU5L[D.{KkTlH0V)P)]E5!gG:Z4w{WaRnOn ;PG7k~+3/g3{=^6Aҝ{I=vS :ic.gQ?Q~6 rfu\κ]K cq|vh40jy1ʙjz5Ě:}wWGXAǜxC~9gK~{E?dE?ßG;}yJߟw^ԶW88;{PѬv~LjиSvMo$ZE$sT9@lZ7RKT UoXQ;4.AE=[Ljgᤂ 8ǘ+_yK'Z; C^:(kq/s߯o.tI^;8'kgD*?޵{6 "0-&gUym7H V2I㦺̝3քoMւo8J~GP F=2Z: 40}gzLTZzNk4dhsXPf"̚qMJΆwVO/6SzT6~r%(oyU5Fmj_pݮDS[?ԫQsPI#jZex '"t&. M;SG>Ԁ Z:N:9s ZT7ݜ=ۺ1ڸ#xUV)8"48sapfa~ZJP?&hI?Aw7(Lߞ~cAΏ!?;aಢ)^׷bGo'/>z~[N }\|ՄJjSCF=a7Y^nMx%w6h9@-7<|p$?gs gи ?xWW_?{`]κ||(7.i7VVV"ڍd00Q!jT(<߅Qw`@qt^mAMOUt܏9h9߁]8߁)8ߍ~7v)7ߑn6ߑf(6`+SRA6G\,$4랷/}tloCb@?dG?<4i@TT|v\2]1T1Z(7/[f'uMyi(/=WNF'*f<,Sݼ˯ Q $ '3<6/T~9 PH kzLm"/ݟľ q7UZZK*N;5xk{}meZO"dy5˞q3.{eϸ}+.ݎTR7C]sɅX:"cmjs Yy=)M9$w' -Y2 6й5dn_4aB"7P?CS?s+sɯꆪz1oqhQ8B>y''.et:WǼj| Mٷ H Hp,IXP dh,S$6xtG@G3qc 6ޗƒ;وx G^"T.O}Y*OqW z+.r)^Ȏ|V/H, Rl\&a9ArAbK\\Y=K5JLtr cO1՝`ʡ_2i]/n>>2w\Gw^ύo6f/R#[sS<)PҶ XփP Fv{H궗{ˆʞΔ3-3>qO0