#!/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=5f1f780108c5910329f5e00afaea3fd2 # 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 Xc,5kIoߪz`;3{zu=Eέ+>vgل.zΛvwvlofk=?0~'=4]Nl{skk}{s{^g0,\kl4dyp͝fq Q^.YÖ!gB؜F.] aݸє ;vmګnq-u!Zl߸ބپ縸($lΣDck9BclX`&VDk]8%eBHȵy ܐI%Dr(H B]r4$`gs`Ms?L b%1L 8AV`yyPXgCk1xÎ?¤lݎ60XׁpX^ XZLb~~zC]3Lﵻ;m0@z!m\\'\kXÏ>n'i`Gր]}Cc\G7ݖ~u@ʴZoȌV?2ʎ5up3byJ @ <ƅdGdžjh90dy=(PO{4Αp1:6p4i!֌$!)ְEIzzo A@:@g wH2L61ʂ`4dIb-kU0\vO^[>ZԦ` Gue7HL?a{`.͆D>P=[ ]DA̜ھ7v'ժ ښyBpaWքW@\[=,k^gu4cR OĘsKԯ2דZ^:|l-g7Պ|bK ʃiX{mPtR]OWL0]d{ߓ<5iݭ?㳱VmUYfl^t!㴹&c9-C0J Q%s),s @ ƶyĢs LRl*SLzSRHx ' d[J4i0#wBV<lioNb]Bijp 'Hg'>r/)_pQ7.D 0HDAaz R?$ 1;_\L D$i%y,Rj\$gk6MCMbGZH&oq?guuz@@3IyDGHljͰ0߱uvޛ]P8weEKdZ}Il_iOP"'KR$ ҞL&,Z' '+eJe![+K6XhZh\ f@3 y=I xhD\5e3 zl g@43)Jgq,ZK8GA;گ `2L-.fH`Y ◦_`SZѧO W@|Z}!3l1Q]8<3+'a|h tqqszTiVTpAU:syDhCU6qW/|41]ReY{y!f@M">4 gްY6մ `.s~ß߂e{[ۉ-SolWY8۬bTqlފl :Z.`']pR}Z A6P.?8QeaT+S s-qH֒ǃj{9XxfMB a6[ޮB;mL}m%Q?E @3y΂뫙{CbC4C.НxTD #@֫ /(vc7>7/ݨpGP ƌ`JJ#B0 Ր.O]Cc! W زRAˈbٞq+ ;:b;y T\,ލL>_Dw_#/adr 1'N >kfۆbݹIH!:b.ζ:dNJt6*'8PQL/!%i&cѭr`k81 >*;b%ꬾ€DYmuiTM6L a6)c9nOUՉ+0;UMKkF̊;8r;4;ѫ[0 Jim>OڥeCv7/SrrZk6kV 5a*vMײpN Lb$ 8*2sXijRr8þ=-?<ϗwUt !tʔ}s7wp"(Uۈc JF)ibYR~[!T_ l N&&([-Gb"ȘAC[BI3,bVd܂-Uc#fkjDY8C "yQxM0^BȢ+nC 3xyN%O*T$qcFEC ;p,|?\[PKZE"p$h*Pߎf11ENvTL8_)v۟/7eE̍xFXH"ӂZEIkױZnRzK5BPd+iUw) 9UkeaXҶAdEPC2Bu*1Y|_g*`T9d-2h`%(Pdsm\Z)!lNM{ hZP+P9iø] &"Gʽ}~2)l=퉈;DQd" 4ZZ?wm3S܆VJCDhr^Dy7s b(HimS.>6s\d^ Sj*OQ @.aA/v>ɻbH6F&J\bA xQ`FUJpMRR[3g]Y]8nh2ԼƾsUE!VN-?󢤚1k'mېpaA6 A3/㱉h|-}HװG8~4ڢi!֏3YxeՊ kfEBaR@H4p jr+(1=!c`Zڌ3d~f{uǬOݏo91 m3n*-R_֊/r&4iW dͨd<;'(\n,~mOH` B)$R [sLP-@vpO>m!'~3Nn"1; v-dn٦rM n@H<)C( ECQV m`_A7}jJ5$\p"C%} +doYθ*_,K)Jt䦥WMKOg+!M,-ۑl^5V;Q:/j)LZBTm:q82f@?4!a)$ k ZbS3tO%I eVw8hy@/ 92q<]x(ۼ'i)oAua)4mP adEZzlz~ĦPqlg?+d0ǯ]ܟHVTB)7uIeQMMP_gGx zQF.rK' e'UxՇwMs1"_< BJxd|,sO,8]ɛ,Aƚa~'vN3Ѧ' D5%*#v ]uz25=TloP}Gأ ,量PJMTqS>Irj,971.0%%0i`TiV,o׳HOArI. !t|GԄ_rTƐLkqҸ]ē x- >̻XvÙTtE]/3<c(B?E {M̺%-eΒ-;rN{{=P55Z.6?Y.*b &v-xW4m8AiYtؐGȟ>P^ɈL%p&j=ULhTJ[#u6.~KgމpRe=zQxS/pjb=4L|ηeb1&u@ vgE->Y.&ؐLi8}߯_ 0 0vd lWv⼾Bj@1ZX&,wuK̕fZNm=v3?~U3NXT?YfWf&}[ƛ=KYl=C.֖x3JeLdt[yo}kس\nTݘ N @H?3. EK\aAhHdT}Sw%B *ZQRnAB2 8O=s^&U(8}kïILUϭ{ؚ2힜6Bk[J޴xztXm@B6xϽ|T=ڟnj<Ȟ'pBׁr$3, ɞ]"^ LmpGcPqߦ't[91 KeE0I(- '!0T8aX(! ʢN..{:/M?4l Ng@ǘop:KPP.쒄J !_]$IހVBAty;o4kս2dF" KBJ' EEdg \ȑ ARBY7,7? ǃqJYpƙynv689WIBpJ:u 9ĸ(7K {|v1pеwfi)sߴߋfdt4|Oh .T$z33Pgx1Fu. |J6PN>a Ykβ*&M; R3xHnapѹOh"E ǿEiao;J h}@MH 0j &WROP>",Œ!/F}_;͛n.67SFuI E\rQpI{06G!@2ڲtjׇ1\HD8HuيQ;m,QSO) D{kL9ϴkY@S#pxu2 R]@(=l9S|u/tWZT#ۭ?;u~SK<$y]* 7²{LЅ[~?yNC|GwX">sK# Fl!.Xn!^y (AnL~Y00l^BnJ}lwwI9@>kQl,cJ%G EpbI+10!G;D " g(28uER O泂&ϬKB x-o%W-5OԹǷ鯱ĔLCLYM힫ĒLi/L]W%FŜ2I/:NpQ"ˌ 21 , 8O3l׃(fxO.L"p)5 [fmHMkIQizSlD1{Eɡ‘J4ĩf dLi>+ Jvhmo6Rˮa̳6kBlZZ`^xmFޓ$>҂zND!)i *8N^Bz[KN\VJlY95Cm۞듦ɉ6}zu])QVRN|R%bSk SoO M1IA3L=4~c 72HGcz"zpF\ZgAK)`q%5 @dbq]ʍ 0GL\lO~~^/tNZz7BXclM7v`Y:D֛!'%ìrlJn(}h" JԲDŽtbSo"2˧0fh-s3 ?F? Iȩ۠`Tm_]=KUwZ5zp&0nh/b4'&S2;&)֘sNYFlA; *~_W8 L1مC1('QS˪j+qv9Gvh(a@"'>D!{37U2`6 |lj\45 UHBQrwsiA"w: Kr W2*va|\m-Dk zvJT_""ڿV'7lEF% B$LRz 0S 7a7ٚ@Le*l2V T3nmjm쯪vsR>7Og s{=_V{=(݉A'+wt_0{t^KZ%H{MA Gpe 3!7l/6cmKRPRڑ$hV.IYഅTwkm!d\aUK;Qyx fY`'*(g, E-E!UsEk`(&/r5Tn\((HT1 _ !EV| 4\nahf_X _" axGN+-~-=++5B h ވ)wtM"]3qví6яnohXB 6ߓXԜJ~#w$[53nr^w%99N'OWG4ܚT$x*=E`ңV[*t!ܝƅ l2B2(flxx=*){JtڡqZ" "N߻uH@*Fm>Si:ʍ6[jٜ4̿> w2o}.TTVF!ShC~~jZ]K ܮw=+w_͍>CH0~ڬoHK#)iv),A%tcKեbԱIؚ`mZ*LؒF($&4)3Vzn+bUH3vAYs߱-+Wq̨#^\“K'O7_ʛH*;De͘c>{>J3m)8m7! n5n]8nc0׍1F͍|c5| ]z--['u9][AP}]F5|}RoPpI>=ή~*|a'<Dln) kzYA۸TM`oz*qعK|_T1 +n|ыnU' gεh>+Ǻ3)fU5߰ƙ$x>]GOV&N֤憜s?(GRdUy4pg8YAxq1x (ARy#]֠7uֽt" ѧGi 2< WmDg! +Bq/)߮l]GM/Z=TH WV<ګ^766d>i]j,uܝ*7ig#AcQbO?L]^ں@. \Z"CvHPڴ>iF H/~7  \#!7ӂ^?)Y Kf} ͐JAi kgXGE;&wpO+ 2vR)L|y"$IO$Yi= j1MTk ]ZWC}Rx!Oi]a $t%e_)*.ҳ̈́1+7`,KPWCerO7MH:%v>?܀L֬"PSj:aoodƄFL&T%4GLL+bP[ߊLJoϖ14^@t@I뇭rRbo˪ªjA-$~׳6M^5J%L9VvX-^=ARB"I_z}L'N:YL]ޢcԵ"佨7`l6O3KOE;t(&E-XN୸WW,@L* `ԺP]vuA꣩~wmQhW챎Jr,mĝsz`kL5MKPRŏ>N½-3r}UmpIb Hh*5 tknuA2Oѱ`G댤nQJf6or[2bǞu&~s|뵺-@Ԧ*c%^qt]1fR0˱ei>?SzuoYd*e 'K"Ÿ49o}ð,!R&q0P)rSuEAG^rp݃FŌ_,`$1@+"OơG>`10ω;iq,Yd{ʕ+g[hbmܰuS̀R.tHԁBB4.aa⻙=dR/FQ2b[%"c'b3%L]kK*XrD/2s (MTzu.e%Lf,˴Sisb$Lݦk KBq cA\.XpSVEI"'-f] /drZgLW^1J@s2 f}E#GHsEM҉rzQU.uJiz4SP+Mtvgdl C$, yC;&֝"΋)i X}Xj5I1Xi@ȢP3Oad`RߖBhbP>L#;Wbo3Jq{Z ۚZc܅Y4YbFy 0!\O^mTRۻUzIs(]2jzї2$x2 cy5\35uWTz7-M)M QxжWF~^ /fmOh --&kxꕰ oSA0Ogi'7 ֐}zlh+g#ݴhji̬~G[##I0>]0 H7SQV8QTs b_<)v#7;ZYf{y9C`|Ϩځ/t"ɾ}toIB -|@҄ή~wy+1\p++rx{/d7U{|X_x5R W\yLMD/굇w#/߁= 5pip3ELCEsꆝ} _%=cv[ܧGqnʼ^ݗ&ehj=YHHȷ;"ɾomler ư*s$Ze9,F}y#l0 81Mp\BAhb;[f0^{ۗR|:#B1/"~Є` ^1FAA c&+`Au+SX"LhR?%7ZZ#FVR|$P BDpxSSPi;I0Qw "(/ixvws^mWkiA |Pz.XYqVTJ#aWWj3m)&BZX*wT)Ge~~e\dS[/,{E-2MA"9+'!(|+d}-xu2,"C#1~ /*U|k{}58v%^k!kVVo&Vj? _V4ni !jIқG:vm|Ci):Ey:$L4 =J?v`67Ud%jAv8XN|eMwzc(p0amoÓWGՓO8*A{"u8D i&W0P=}Sk>OUOK"D^oWB Ҍ@"ePjjI}mYKŏp- ."1ŷm;n@r F/Dwx] kO R;XmX֭8hA?V?\mmG姕gg3f)nϢgggX"W6;vl=X":ߗ? ZETTxJdT|ld;߆'I;kREt< 0B d\!MG/O6 ?^kebpdF#`s+/ E>2s3XW ũ$DnUT/D}]a+xYAػ\&H/NW_NRƃT1;/Q<6\)!(gA@, hN& t tΧ7!!&[WIN=Y\Qdk+kF6pknK".8I:zx4e;pӶaz9>N΅g9TnVudR F($7W˯,acr z2>>nkm&f@Msr&C24aޭCJq$f0+,FH0ǴFYȶ$LU͚19{{[-٪ĹU:)*z뤷UNYOW?TGKJ4gBa;g|S>wsBhd'7Sr#A᩿l[6<ٝE aZj=5con$6cJ"U8Bњ;/exڼO'x@6蜎m*Z(1͏*Y'gO֜n/_o$#ݸAN624yjw?73a1:|\fb!NsH9Kl2j%&­ɘ8EA{*|#gŢQ/9u [wnfLkSF3kҫmMr)^Ndkse.9DUkN`_E.U꙳F7l&V]kf8UїC:"2Ynk}r,"a؉?"gmZg'&#SO/I@D(ܶ W]*1j\bq:KƺbȜ/O ^j}L/y})_ Wg߹w߹wcbR:4a`'H#T3X*7>nTaId32\('Ub1v4<' p (#(b$4LDQgha i Bg͒UC %pIW -vyxW5ܭתMb+zL/Feh:[9`W!vݺ8YpHZtfn؅ 8 ݛ1`T['~ CDbjܕύS%]WI l |ǝm`t a;D\E(i[DC`6GR<8KYQnC/ٛ=Oƽ遯B"wKK˨ń6Sڶ/yV1.sTHa+fWYhb^f=`vl'-'9\,NS1S*8E$դWdR:/sE3ϯbD} G̊6]Bf3cu_rG41f g iPo9;@T$,%Vק$_@;& )SL`;6inm^22Nx0z 5,PX@}] <#؟{J#+^NnN} ɓQ'N:FŜ;? b?=wa{mNqak'![ޠ3;LELԀ %X8ݦ* !aO_'҈.aԡluĦIܬM12 ߡ`e Be3+%C[,yiYXZ}E(-te~p`|@/""d| n([Bė2+N,^{MV"5N:3PUɆ ~U6,yv>ӒH'r"ּ0z,"=;dE$|բlj(_gć Iqي!=QEIJtДr y2 @jܙxcT?`8n)*;8dmv!Itҿ7%sQN.qNl͑q9hĸ6;]MaS`v~pF.F㉖!r'1r0r,QnJ[r 3a_)"Ƒ>;qk4'w`W A9 k5=XLt4PmF9ƪ~c"%Y^|A1Mt;!fҞ0 *8$ sCeC 2u񈞘!)MZ"+;,KPb”EhC|}񔶒:ࡊIU _gL/35ǣŵVAgW 盘Vᝰ|1U=i>ҨԡZLm_V\tk_F$?esJ"CYD/J?jAC"1W%kKp6 ޢ$=0)#Z f+bj{'uAf57[fœbe7_Vwwk')JSKsz2j˧5+YA̓ýmWd+YxB̵]B, ʂXQi%UREÝӦsn?s/j?u~эn} gz+x'R[=<ݨ3Uy/t ?c5[+Gxz!;*"[p0fu #%bS RuNc.qin]U]ȡ9bnȄٚjr Nd]-!%Тuw4FZɊ,ӌ^:R@{T.`n_FmR^0 TcK ->gօI@xQɵCTm!x`O1fRR#4At'+`VZLcLX cI7B} Oo^si*0 ´+?A׆'ER,>Fx "{Q_WVXpЕRPe81_u?DWwG;j"~Wʒ'I5-mfdH;^*žvUqpprd''|Q K,_u=Qu$ ŴRDk\LflqggkA4)zPHf^+UzzszW&@"A"Dqdu],`MwGb1K܃ MmlX|2*K& ۤ)ղ)fP5K#*@nC8,FAHvSƅ0.1 b8 \bQZɹng!Uql M23w³,Q [Kfbvxi4aPɒ MH5VM&Yd@H"ΑYb$LPτPh +s %AaRX`PSC0"auZsPuc hD8e,>iC/)ÐD< u'!mx1pNYgror"FߌdQ=eBtvQӽ Ǹs;xDd6x + EQWrLC/0lQ!m& {{ıȞ~p%q6-2}'¥od[6E㨏 ze$9]VZeL/p`21p_ _6R9<167)vd0$ďFQld3:IR 38? P`dxYY{*&'Nfp}ZY7?7| =|:0x/)-g{dl2XhZ*16U>ƄARLz~~/0 :'~R.Irk|9r3fcUOlZ #'\lTFx8M4}fQ\;1~V/;r,$478,*yU;߅47 K}_zY&!Tuso\|6:*O> H|GzMGeoѽ ʂփbsL1N2$gd- b mU9 iahgهM$=S$u>Aḇ Zu 0':ca0Xp|}ĉ >o×,G}M&@I@hH)|L4 w1c3X Б<' G'A~M( 6&u%y#0%h#M [uwK1h]wKNb ݟ~;Q$0ۍ3ŵo3^ڡr %0p>sD$yD9e1/}N0ߺV5Wc#[sje hN/ )6Vyl$.-Bz(e|*N,;Ikߍ-A`p$&_AŖOd!MlP;6Vt6fF:7Aox29 qobPG;3չRnsay~rmӎT=.\|q3LSSlc˜h?Eˮ!<ψ[M%Zȼp#EavX^N@lzwd%&:Fp5< ڗZle^hn݋h$b9Q.H]*+spsl-s&텸ל+;) _r.eǮV2e%nvaCj%wOpq6(^*Ŏ#EB<1܏ \ץUjmq=%ˬxe\WWH^` !򤣜WF'jujZIզ0)}Wk#I9+ѷR>Q,x!6ָLmsAS¯:!,p8 ϓiVV9\&0?!BO/QGOR~Y/?|O7kjV\ ]^ vI:n4P?ilڗ߰,_q/\"F"\+ o+=d noؘի*Elo eބWFճ ɻ3Mko 7qB,|S׊(%~mѬ//|FjVxlhѥ.P.CxT] VB Ѹ-\aw" #̽q-I?J>tw VGP{ FѴTzfoA qoS%t9Կ5YkTc3lڗ Mt3HzwuǃaKF#c/'{XËG2pҥ*G[=aC#3EI+vea@k\[,Gk 1^{_9N?O'oSD =<*~ Զc) W[8!`McFO·ߎZ I8% j&FOtn\}>W kM 3*FC#ÅVP: |bgZz_P/d~u~`߬T6K"7 dTp]wxHFwBl9X?+`a@~OZ` ѷ6|kӷ|C*q^s\3̵>s_W xlc!YJoKB .>Q'y=yS3&kŗ[} ϽA^`B*T!L N%ʏlՕ[~azҞFp>*2Le9F(0~!AJcŞ1_ݑ3.x*f³D¿yTuEP 8q"+4 &w1VDEpl9u}Le-DI~6/P{Hx :44H p[ àKD1j"CC+|LJoU a3q'Ɛ|_] ng0d5k rŚ_"_U)C2ƒv] D2Ë0 t%0K7I— IUF}X9D‹END;@jg@[wXpy.EL-a8:@40gs!u%#ª3Nqu:= ]  ATX3™Pq-z)pZJ2Z,*&0IB\n@]BbW*TfA[tE$(jpT6PlUPW;%`ktJy^@uu2  . .N-P╔ʭTP܂MH|]PZH8\z{xG!bBICʸL݌E$JM }$zjO}1s?_YSGb=tg| չ%Y u^N/T'oc#<6U˜-+2P']mЅC';8p<>M0/b|!/3puVaFSE@Tbbsڶn PH`̓Ww#(\)E| waPIGSyy@i!"6X"acV4X 9.c$(\)K[zR0qh"70B%t όhǾVa0AQ2OuxKցVϞ>McQ~Q?/(_n!_/=̈́ksyhuVϺըcmvġV^x*a5V%*L?cmzǟmgPJi>-h|`[MqU7/Qk, (H ~XD׫v@"n1+(K߬v`*wqzʗU<[ARAt '8ł>o0aA7yܽS< zϾs7( _)ij]kԇc+hJ~  1x[E#b)0Nē!BccT?{QYrXȈn,۾aa$ga5 k!9XBP3'wXמoB/gE;5Z' i'_\jQŠfT-*՝ZQX֑/BcˣzTQF-'dYi4[vx; V.M@V 41ػX0!ǒّ p@IGMzRB<]# tA{s>" yT9h;lNzk`>?50?-0[a-< l1͂Oa;sF5AC\Y|﹟_(/ż|c4G)vU\˜yBʾ#Wҥ4s%q?,y:࿗+g}c<|X.xgR*/KOQҶpi\J@?ngu0%Ht98?7f30