#!/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=d4c737e548082ba79360d28caf17248b # 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 ;kWȒN.G&<tجeػ ,#r3۷,c&0{vϮObKUܿ`?߭[v~ᳳ>omoo6Lg~OG/\5C\ߤjVs&)CoWG$22d`’h8\?~`(R@F` hcΦ<4C6`鍟4qtL ZE#E ,h0@+;2!$M4@ >DK剂Ic?y\_@LhHDg@ܟC L* 0B>I}h,S8$O Ɍb'~ȑ952Z M$R`C hx`W  Mar&8bA%t $(GZƒ)/FEK `9.s'O;6kv/ӳ>;[veN Z;s|\|a狞cEtۭ1l_i G9wh{^ ^NO~g;O]4z}yne k9npV(Y{hCLVٱ t66NF#OS$kǽ!AJ6`n-E;GS:Ϗ\/W .SnDO?qxvww{;w|6*1T4F7@T|6cv6N/wq$u>@4K0Œb.4 m=D3 d>@8`pMEXJS M/IS$1Hbvl` bcrz'H"ԓfy!M4"%*"`5?@ 5~91UN~Dca%˹ -j\F$g}8땆dbfD2yۈm0J D6|:A 'dQc6wm'@0 &~:c5&iI@Z:@ X^ G,:I@LX'/ '/@ f3Re!+K6,K͖%V@ h1Iы̀ef@쬹 Oͤ;Odθ\/:mј>ehȁ'7 O~UOCל5  }|)݀O Ph9(5ob0clVvR>5nT*?k7~n! 92ZIC>J:0,k ,)$EYmstA;feCmlUNj(qIp=DŽ^f0y=Gr2JԿ*AF Uိgá7,ϋo쟕 s>s4Ftc"9c!kmN׻*T*k4:P3lu~w++a$6ifq ـ' ?m?܅l٘ /!:& $Ǘr:;ׄ]ALFa%  &W⬱qq!B}#SL$N;@lT? 0n2!b+,b{)AEE`W\w,A&d6@ѓXG;HI&{pit9g&z@D@$&yE$aɧ0A[ #XXl”܅D5Pd[/td~KRYtWaژWwrG0M4MثCX0(_DZ&%R0<0J^ &BM`@l>̎iA,᠁ NlHf^Co~ekF&%i0dkh1?pr2N7 4~&d=@Q07vfbL6;*dsn)5BKFsw G+E y#xKڨj !eg:yqRཊ^nc>pd ;Z%aAvLNФ0BF")L2'I2ė>1-5xn/$V+O1z͇k`%7,lNO.<&3ђd$oRA jT`&x.rp1s?J)e=Ą$d<`1`@Ԙ):ZL¦ZFwR-! aqn?O2%GS ,! zAjnʷ~e`4 o~d DmoE#^eVdp 8 #"`L6"YAq+a4,bղrް@DK+&ҌFVO02]7VIK LBͮɇ@Qč݄4xz-#a"I3%A z|SO0XjփlX˜˟'QE3HA|MNϯLdŸSA5'ߟֺ Yݒ1$BXah)kQ7TiCUSSr:<7ӳ,1F25pUϞi=ҽ;-ƪ| he1~v&[\:ZQcBx 51Fs\~*CZe#?UPȠ<ȝR0B`}o f w)U_(͍Q V 29M,MĔ.MQr  &ϽeuS3W77^][]f<|*2,o%D)D.kпT>L^c"bo`@z41dAJ\w-RR`rv7hWTK/EA2QR48v |^ož0H .:CW4 ҂YOsJv3.ېB)I@-uEϥY!ID&jjdlHsMtN 7f_6-i`)ɷZM&%Yёl9sNeI?XoEo$@{d"U2ql>5דM/#!x@3k}^!&j ybطY^>Φ,d[He4׳ny M[gSAcÎ=v`|'Ω{ޮҌl8Wa]J 9Cw;g /(D =٦6ad7K@-YVNAq>,N":o`ٮ.G'p݃x _w}|gOWؼt٧.ۣ́J?,GlN[DHkWt-ֲWRƦDNrGlcV&LtlnA~ YO@ 3,C ː.F+0yxl@\}l-mr猋S*: NseL9ה; ѦեVJFG#ɉ,OȫJk@@hjԷt=_{*Z|ꢱPD l03DW('-UOIjd:Hv ,_jeĔ|d,L[0Q7ZE~!a!#q%ۼaΗV3B!BZU&, /8G%pgm"  4iwk!:҈%i3܎Z|pk*yHR2x|B4#GbX9(,L7ew@Py:T7bWcYd8zF lZ87 TΦu?^EM!sr:xu2]~f*+(DXTP᭠Bp FXb2G% o)U!^=0LtȊ)t)];44%j\,( zl[`|ܝX/棄LCgvMéegvѦ_zYvS3\E$,KwZDTYi ?b5bԩm1tU@okHn4~KI?%w@z2-]?}d|ظXUKGo&9r&w#ˮZes -Uh˳"ۥ?L Тc w$2<9<#)~1QܑqjW{_Ʊ58__Ɖ#  WKh$}R{W$;;RSN:+.uW'y-Op IuU؇Vw*vT*V! ˲"RO~e_n\Q+#5LTV BRa e(pB%T~߾0waTSۻUzad50</d\IEȴ/hܡkgj::=lhH L8/)ƶ{rZmx/#|#bۆbM&M)$ye>@.?{ 夁$鑩NV3ҧ07m!"J s6)HJ]V lbM< /&{W x%FC7SV QDcr1dc0[鑌}W`Xh2͉HP¹Wه3D~m1lݑFл=[WX}N_N}zWdƞ^9ڕn_.wvX x#ԅ,Y_x45bD/ɠKWSщ:}([w`e2qe3S8@A< ǩEcnۗ0EP#cl`.}z֬}9mm2YH}GcVClx#!1ow"ɾodmler Ʋ*s^e9,F}y; J qp8Vq$4At#haRw62ֈ Ulm{{jܽ&wԔqX1"R/C6!kWڀaK8w 8J-`MVfAfЭL`Vh6O3Ic\okiEgYIy<_gکfӬ_xRfI9 *%UڬzQ'֘*PSjl)jA4,$H`lȇP6UdMCH62{ONη\*H#P?gGoRbZ/`ZHSo@R{΀槨fQ&YFz p+`8`NgxD kD}Cs< -EP r_׾a_`MfC̠AB!{scxmzߩ=Ly9ڍ)gQwQ\DdXPfTC:槺ole7ڦ^R^2^0n|Gt MTp]b|7~wגp(`\dur5Qꚕ\1иpm}-Ip߫e|o;}ڽS<}$a濙]Yހ) <]]D#Xmdt[m4(i.ykxsG,7oX`MPQcȱ 0-5cH(aV;%1 xE k~8t!.FL^1{,},%^}q_Sg𝎴uٓhlSx4;NB\}88%7iZ|v? nG.ѽ^=s®z-2o5}oV_=0LiL{\^=Wc S$r]/"`Ўo Qmp̳6iӃM}m*_{e}c? cPnڏvqLz<Bs535]sA> \[Uly#; _{E +Gw9g\->s\;s\;sWFp *+x1/Ȫt/[Q}bv-xQ'BC=s^S{@p8ŷv/H^4G~LpL@"Rx3ҋ4oH|:%_˳:w޴#䬥-A!j+%v!t40oLvY8|REi=I /hs/ )ۀ ~X8=1C8_6s;F͠Ӌj:`VM5vTrc߂J%B$♂izR*/"1'Feo|߶ifY TdC#Umeoe*[ uAZM n#T%rwۭ}{"Iw8zd+%\CKLDơDRR hh;mLΈcy_Ƣٺ:BjtV6kWB&Ǐ6z&뺒9z W^s9A{=>D[*OfH.O41BJXFnZ]%#Q@q8R͹ȩ^ B6.U`-ϤK' Vb_#DqV̓An}{4<&'V*,I؅K4Oɞ>'Mž*7LP%d8e_9oфA 9da7"W;̩la=1se a~~#zރdheZF 閛4\RhۢKH{1;G\qY.m\ -eF6HCqb-u t,I$._zCN` j/Lz\r첋% l|]Ih+r~FVBOڗ3YGXՈMˈpFX1*pwu `BNe2ڿډ񳺥|ȱHps<]aNCXr$ȼJf|Rpx&tdnq$Y/` bfׅO~ !⳻_!I@iׄ%YJ G иDݫd9rd.Cv4ޜ/tuς-5_R:軠A!a$Dsks-0 Ud#=m4(q<9I}8'r |lCQamCh,X'dva7@13u]_b!œ$2H e p( $[D_H~AzbwFECZ!>ӌv8"0IQf Q(,JFr2m"=rN]ގo\" fJhC0a tpV*OI4Z˛Sݍ m_a~LB\uY}>g3?s.cp:Dël^ՂCYhFw^hְG׺-} y'^]s0+#iZRP* ȕ .EBb)V(@:iޅm ;lur*! ) p]V\qYؚC],WnA4%8]@f!$,;nI~f)ZwzZ[)ӇeՕ>JF%qT^+5pF qR UBU.}[k>r`++5ls},ŸR"Xg2rM,w3;W+UY|yъh)^lfsϗHOL_?L^yWܗ_ҠܸҰ(=# y #D_0-R\a4Duԥ2CT('%蝎B< CUkЌ.gb4d' E,!odJ /$42BpTlۻڔ7*fd U rA 9i6h,jj=6ګ<R9#3 ēE=T^iE&s4ۤN~V+ { {e9jd < Z>$L{13雀H@>zx}}.߮ٮx]k`ZiJP𣃲1wr\8hq؋ϸ܂9F|G 9QUv9so-16wr^>(+-#jud T-%l H6(fw"YHV20Dv6j);#,GOJevWm7U6) ^+?c ,2LວV#tAX F&%5zx3se?؛"Aa$yJ\X%$gv^hRllNd68vE-lQ2æY/ P?׊VCf.zjJGŷdצ߾i'\TWI^#]G6#VϾrV>oc&mU@&r5IY8vI&?Kط^ 8jNK2RpuDss/ӭ8&A9MiuOk]3K8o'J4\kƖJ=\'>\ix)G&IPi1Dz.Hެ.ϱ@;/hg A?uz5xW瓋K mIÍFkZT'FAz[ubc}B庠%Z; JѭA]`6(B!. -:#B,(HV#Γ Gp~ Z >rRjHc7,ݴ!7=&C2b1xc@s.[D \*\0H81`@6\*>kh'H%!0w [q~)𥙤WL̺AnsҠr"KdǜYM>Nv I꾩!=|#&/4]ԥt۸}8bpaBa)ID8J \}PKƒ3mkͰԲ.·%r9gdlƞ2t!h3:!=Qy Н/=;BN^98AΜ).& " ^5uLH_~\NQe{ATHDMR4+mBn)g흹ܛ^,~tjlsb"ɂD&4T֋h)Mh-i(I.H"U Z'fӡC8Ipj85%EYX .᧌Kࡍ$<Eb#,A!~k2ꈰ-tKeE˾1aQk*bMKjm^)H.g$q2*_|򤕶!Q`%('uk/3g5$Yo@7<#O t ju$-&̖/5ZA4eѦ2Mhqꀲ,@INW{م PSNn? *WL/ տ&"f(ar8FXվ@ՙEC$hK[Tj~ ɦ5nڀGO4L%QnTQW r~\X2-AMxƤlbs(Io Pjb3oLi9߉ oE1r8<:5loW g9&*AJU`` XAg26Gn"[I0׾w $Ab9hqLy*)ǣ3#8ۣ{ꗑۄ篶RǴGIW0dZr嵹sn?_0S'@RjZz  W&ƯVLBv`?b8mS۵ps6ܩnц 8}KCQ*;X(JBqŻ(:<8= *pZ9 U 6Ѿ!&ӎ*.;89߯9oBs`jOr 3݆47 q*iR@Y9/OCVA9<Ȱ7R{xTeҋunSdS?hGKdQc(!P㦕W %{U9|sf-dmu"€RG`}m3(j@9nZ<1w ;ZzdCaAcaCi3s@GzS pPDgҋyO@5,<+"l ?wղ#;B{JHW0Ö_Qwj#xald*i MQ:Ud1hx%i먢0pecK-E [v vO @`-Ju|rug5D"jFY -F_~tc+jW[Pb -M&YNOl˅TB]fd3yXD V*h'|$Bb,3u{Cs\mO^;# RdS_ X:4N {ΞTO,U@yVGU&JO+0b Eioj94``Wo\9jmt5*>-j}z&?nqQkjs&Dcz.gOgl5.7O*tSFM Y!:.E-$jG&hOQ>l <:>%wcX: e;/_PV,ia:w1~ce.ӓ_5UR ɚa!~nÇqKn9} +|'2&L dw#-{b`Zƅ-/Ÿm&z*z/^`HfzgInwWziŪo@xڻwBb lpkAXIyQ1a_3Qqtji*Cڧ6#XefVf Z 6t K^JƂOLm0判ƹ )uxWGt'Aazn26+̳ljNz+_6%ĩt'nZ;H;D5"5 1^yWt9/+e b܁ \(گ@gp͵Zc@+`zƪu |t22(+%|c)x@A7tw9d4f<#^]:`=iV!]5.Km^˳ej 0Bm)9>;$1:{0nWbDw47PontYu߱f\gi,Gh:w+3SJy]'R`I0^7!?]4kGOuj(b-nIX:,_9k͢j~x KB3Z[WԎj+% ѤًR"G[@gQn:lS H\D-7K>N>/@8ldʡXӴ'w5)@Nf;%;)yO9s=#xCեXPHnԯXоb z>>mjm39luïdADZ#tOD( [+5 J!'H:p0"8yL 3hκ'!;c3˱ cdi_j6Y:;9}Qah 2Yw}d K7oHĠ Ƹ` ,.z( Fw6>zNI]na02E0Ն|A:Bm#X*>}Jsoi]tAGV;W+P/,[!!OJ!'пo:5xԂJT\=:8`Vڭ|^E~ry_[fN-Pˬ.wPySP[[Z>mgzYe5!T޺ݨ4sBT摄Y\*Xn (XF 9rݻԏGYz!^, .Eb Т}0.4 aPXib#kg1s->h3{̽~^?s_]1^X9= Y9*G~Vw1/13tJakxU-xχrZ:K>I%ђQYHn5 MM39OVЕRpVkV,! (o>K;V4hDwIh ? ]Jhdfpg4DPlp=k)9/N~m=NBgBp[( ,)ƎD<)=/XُLoղ[znOZ0 so7U4ޟnFBnMmy 9c*xYChoRh H~4铐:&"  B2$qϓ 0e([ɧ UV0eQ3 1$Sʄ4_0eϤՁ37>0p1AE8|(UzkDŲ [P6hsHPLp$NTC֥ `jDMc9w~3"{ NkNt:yboaw_G:Nꂜ:Lc,4|.QCjUԐ!<薁v(rN 9px{PQ] HbA^(;:CH!h7Zpw\>?9&)e헜ikdZ@#ܱt=SS0J:,Ɇ?F_ 9qih.5+s2Jg0`V0hN,%y4Xek5&lǸ8HcI`ׯ wt6j[{ fՙpSRBүo 6}M"“(m'*4`ZѸFe Φ"Q6EfBJ_s8XvWTbOx_ o!%P ޟ;fc(/z46|[X/̇ؗ ŧ -]$V|u뷜="8C6<\ xp..G{#F(.AND6 ۼ݊nֈͤViP؆"Ԡ*ius4%"RXEՙV ětӜ6sr~N1s t(~u-ˠDۮ%fCZȍ&-h%LJfnv0q*8zT2$FF%tuVX0^)rR\?(H.qUw^>khjDZ5̈́ p= tHCxKm$F`4D vq$>q`/duS0A<#~5X(ψ|.0IePg>)>㦓vX{"Gפsdǡ;2Dڅ`CwANG+@ a)Ư1 [2-'cuw"шό\T]"S MȖ7˖A\$>f[#^FmwtZ2dce4lWݯߝU=2iA9(Ć˧zohAٺ G(rq_ >g9a#H%ε%*Lߑ< ۧpGT0?pU(? "yI0`?Ѓ-a9lmc*s*MQ (f 9E*#/%¤߷}4C)}GK% q2ljFuޏ.k=k%fIZo{,_ԏ:X^fnYPl\Ahp>"Deh;dh7c2Cd !{6 "h ##.FiwΪw]J9$YZեM5WN5oNJR`5b^Fn4+Y['`^[Vd&7Na[43!agAL=%(v{#0o!`bnlǺTTbg~4hĚQXFhRA I-nk%kbAsL@ci!\"½P.{iRBPuwf?@uՏ_g,q8ǻ wB#an7 *`H$ÜC¥KDYjőDrj L𤶆;I\=zK&kK|m=I,F&!&eB`(,L/mM$ 0S25aEBptt Rq `4yf!vki;!㪊8ZXktQm2'7;ˬ*J\RO)B̺Mrc)k* 0umS֍f\> IšT+ȴWx 4FՍD;}'3e'_ls m syJBCUI%:@X!"$UCYIx>ϝz$.RdD@XI;l׸2ALհ׉O_rx@ ܑ<:Q;ju"]a )r5{Ni O>&[[^~JqmW)bܥx9;yu:<:Yçct0thn׆gRյgxyos{n=L@ I,`и룛A<hx`{r ?v]k 6cUH+Ǽ찁3[Aq|૒z7e*a({Q;lZ١ݧ_er[w^:kV9usN?ϟqWW~ ܦ; ϪCF B6{MkodK݂0wDFXD2aAM4]>|frJ pĵ|P KB&r*5.6?t?Py4pѺ>,>,p|^ouրo քo%.ۉ_+(@O=/ _;8 10}W``KT@L@v@0[j Yfr>Eah@ \qAY{I|>!(TbӍˎPIlJMIٜfnI]G9"'%آ_U߭8 &F~)0fxR7trmd*yS%_o|Cnjiu|Ekf"QL_3-8DN1/: h5s8#_TQ~3!OVr?\M>s\3?s\3?s?[uZ&PiKWÄx MS 6˛੎nV7ÄB78:qGE+l9i0{$~5==v{E{-/WǢg@b 8[V NO½jzz|Mן+?9h#TxWSU( ;SU( թ* J3(&I)7|5 *[ a)%ٳ.l{+<³I7T;A87lFp;<)۫!x"0*l>2ʦ*P* 0FHZѠ[TRc /<D\l ˰Üh47^qNfm-lJB8$`Yl^+zBa?VM +`(C'mE1;%JΎfk6 )5"-MjN۬3U(9mG֤VhZ:왊-;J2<%&\ rW%3ePJ\O2NYI&pɰDP E;tMU<Ր d!1٫ 2_׳׌i zY>EpbeYy ,90}mWt^_}y'ZZ>A-/ܿP-nN5i}bLi&BB4 "MWo%|AlbYӷn>C{csDX'=rIT[eE9\h]n|WRhGd4snt<sBc` Z*  滲?٥'] }t`I%,NMf\2atP* A6 vfZ8i>LXW;&[l|Y8==lnFSPFV;VXo&/ijZ9fnOgh5@}ʳgOn'YX~#/<{>ǏVJ]7(I>>mAnJbn *6A. =~{ n?Mݾ|,hK {r{Fn8a,?ㇱo{@mܺ=~ ۶b,?all6 Q͞n[嚭m |v{ѺfwNvYx\9y \ezi?D7Awzt~] lӊoYfb._ xɠrݬtf@"VmJ`%5VHf@A3oWNWT<[F5ofݵFB1X{g,]nCPۺxq[0v\@qnx@A In*j\wdnOEN:qjm41HhuA77qhheWXON:"KB y?- -@]aa%{aM ' GC-d;׀rf6apuż*TBWxO:~s. ,:˻w?yI~_?ِY>2DmF}x=cSzR~rثGb,6[TO(ae.=P4 Qr1;{ce-o=`d'тD$|pkr+@[?_i1_9ODu4݀ESֺcG?mV׷ǖ%|!+㮾&/^Tv0?0cG@f>|k=cEt a##D-ub4|̙uNlAG 80@֐|~Qbx MkX WN h|{LpdǧqG$Tɜ d9@3FxkflhbKD*y*, ԅ?YnA7ij'l49WnU#-8b=v ٜlvk`v[`l`F< l1͂O`߲ ;sJ 5fEC.\۷pW๟X(|.d^>µT 'QbtSKsx24b~J/8WhZGR#=|wgu ?#6$ BP\ȞUN^!=EIL!+P.fc^#w3?`$0