#!/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=f481f36900d8c3bdb77c0dfdb44cb0e0 # 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 †9bRnqѩ5/~UlQUW|QkkFѨ_TkjHkK ov(SKq5IS&j^׈ltqurҞ K=ꮩyPD#jZZ6ʣIJ\e:«/KwV> Y85 6W.%K.,ߧ&Y2ƿ}C||1۴pHp؂YH3 i2`_Z>qȄ!!v|ˠ<2|&$ &5溵B`BA"!!~ -0i!LX-AdԵK) :"3!}jш)˘0C0}X 68R2hHCmB+EO X Ă1X9S D`e[R Zh|. 8+E H"p? ]K>BD:Ǒ|qA+w䳱:)e=$҇HR2jؓ,)";qW_T 8z:\I%<䞬~d3jg;O #U{GÁ"d++^[@JR_%eK h}i 3 l$ڕGRGEHU2:2܂L$=X * :I}վKOJ+$ġUVǪD.."I9%„6V$$Vlr@2?+2Wh:ڔZG^P^6k)Z`/*aH,![ِU+}NΔŰCiPۣ\B0t\ .4! ypV,3HA&ؑ XtuA)%)-(Sj9eJϸnf@Ʀ.QBxH2t[$4#8BV`9+(LI?&Ԧ.Hk[Y#x݂d'l9<@LIjYR^_,-{"grTGǭjUEiw"oJ$o8I`Y~9>C XF,QI{2a:y)__(?5X)hT0$k([-h\|3̀+f@<%3 z$}73$ŀTib]ٞ5Yq UC>-^P-TM-6½*Ô06țbQB ѐڮ\ ii֎e2걐| LY(%L@c٘Se$F믤,Cql H-Z}/@v@D92"Î >i慤ET'$H*g{n4]<" ttOF'酖&%ig`ρ1 [ŤK[I}eUM8JgBh$j46)e 9n_T 6Н5Ks 3 . Q888(@X`%a@xJ&5|]y1,|xJ8KկEr Ҏrkۣ EIɬbpkj6WDkSgK-/koAEK]wK-RÅi;byJ*$`fIk]GC (W -epTL'iQx3C;ϢM9x%'Caq3Jx酋N%Me[&D,rmBl,";jf̯bYf~A/"A4+V*jaD{EEp:?Ax)BڑQ;+Xgp5l1vY,u' }2?6 H /,c"k O6M1Ӧwb 6LD-WIq-"-M*X4OQT')K:IUR!VyyA6k}nFpN+V3+O.; |֠_\G$COwFgs"bRI"/^58N:}gaZx 0,ޙ<{U8F@qKG&\ˀlar6~Cn|ĺx0:'ФBH6F"JL ">h$D*\Z1 (-zچ|WYWƗiALြN 5@m/T;W7R|Z@R^Ϡ& : S1OW[Q &m,\[7(z Mf:Woŵ;;;;;;;;;;wX)ʂSymos񡼜/EikÑ)?BvRt_k>P d$nW5LDɀU[yK'MZUf;)W 0hK>cjL R f Ld:' sxuOQSZO4?q?o$#ŗ"ޜ|Ι*@^ G#a_- k-hC,;#zk[lFffHAhYOVaHb.<|öO %TBjwO֬ =iぼ(a=c7OBg;~UhJ20M3/mSmȊMDJ9oٞ18TX$X0qhfm?8ɗ?砸 u/F<^>JTM{Ͻ=Yoy!߽h?{\h.>\ C> #( q'?=~0X(Q`'{>E37qL R`zoLO?ٟ=Tދx} YV9mdKޮg,cu5.:Zߺp̥O2<R Pm Gңn$gFR90_qv?ng/k}JE'D 8 lI^Fj@h1x&֮n ;{ŽCwu-N:|^xְG'o8`KY_Bfچ^<z~F׸2U_Âhzl+zU?9ǕG*«r)H`T+YNŬd@1԰GM0l'Q&ëQr& _ͺ0۰+F3Q'g >f!08bw:R4"i7ƃx5!`@0)鸾%鿿$%|m9ؖ} ash5)%`-_PPjKs!I H@wW\DDTv5 ³^Kp}4I8P*)-M&k,(f¢b)(iͪ^QuBB  $=K7p`O  H#FxqC4pr3>#wf @+M޻ e1z1OLW9<:l.09#AiZQӳPU jZU}Qj0[`<~m" 7td!nTjSFNM;Tjh_w` A5)w;-..Bjhh,Ǜ.-Kfk1 u\fV++|K|(ӧP{ߢyz8a Qa9liIFTm X蟼O*l =ZJN)a6I/+TS!cSr8n69+ku \Ɛ@y:I?fx݊ju|}?nG  4NͶ/z1G.vm9rkV-w-M_w '\*y,`gqsw䬱ɷ1~({=3]p3W]wbLy DDNn%J'\EY~c375/n~B"k+uF5n4zy!md4X 7NJ#̎[ G)"wzWlDF(gNdHobj--=#X_U/o">wLqƫf7LM'tJ +wpa; ˞Ec,0cokB=x.q%L @0.CKf/6g\lKHxu0eZK1`Enf4XU}fGlcY|D 3Ҳ*՞.v?Te1PR8>Y޵ 2 Ŝr xbUK vZa-]ngǑsD5Ww~'cRCɡ(fsݣ[Ģ" 1 wN$zD齵n1xg)֎[(/FߋnA#u ;K !p\gôcLC4[A;ÁU !|,ORI* iܟJe (WR8m+#]buk^4R\ԫtS+ع٪h݈m 1 r  ?l@Q7+u?u.k|+]>x`<+vPV/0I$n_V1cG2lPM독2nYo*EKx~L,tIUYhD$ЊlsaY[:*| iTY<Naw1TQ[ MxgrDf-_8CuOkOc|b g`l@+wE+}Όz ;g ` Fx<\G FnzX`[ejs&Nrј5"nwlJ@'0)Hu݃ `BVnjy i\9+ s!-EwO/O7~9=!oqҮ+ ̛i:zįW=)q$ϢlpF,53!kp|mRkQI?MQ~Zܗf61JբCeYn/crEi[2/;(gΧ-i5!Si+YNDfJSfI"p>D':Yb Sk C~ Ke w hvŜݞAݯ EE2%1sQ }1Z2s ;[n↴)v=rlUuLaYn򻡾cr̿Y 3m>#* )t6"[Ń~tI*xfUE at>Sܫs@@}z RwWn4*:UTiE6؆hgʓ<};IMKJzcp[fqFf^AkY̢c"OQo؆]Kќ '49oŏV¿-FF2Wz}MώmIcA= Phܯ_TS0ćG"N)ۢ&TD(֓:Q /4|/Pd)xyVLH[rpq8 >'?(XrL%[/,X ]O =qvnػgDiGf?=%LO]q5AxH]q4JAAI]gsPed[Ϝ_ XSّ<}_`yh:#HPùg~ bAlݐz{74p<?흆.|9:{5©W~fgvj29$@@1:d{. fs抈B)^VI; <%vo/ށ#*v=W.Mpip7,KEk]rc +^5= c~*Z8 M.IᵳQ:oh5isA7wd>GC?55F0"nЂ` ^1FȿS@ c%ؒ[kFTȆϻ(4%\9&,ecVAO+:{UJϳڧ>N= jqs%dˁY ԝA}fWV6j_MYGh`f^Y% -!,k!ƈ鵕Qa$oӽg'w|*H=<'gGꇁR-G-D%Bjhx6D D !‰ Xs[!;u6KK~~><ˆo\7ޡ**n[iBmogmz_⭯#]H%U98;eɩF#4zai'A].쥁t&`:ьA3 ?inf.yFLkamz: o&"8m<B! }ABq(wc:+SlGz M0N-e9ҲSۈa" :-[y$h̡W7LE vS{+w$v ZmuMGika]UykSne|^Hv'Tr}E DA;~eې%l&g-4OU.ai:PH7nWVpVilǺ=>u˒[Pzҩ${־@W?X25~fffffffffh)3lw/[is"\;&>/N yQ?n!\Lc>$xׇȔzð66%*/h{PVk҃#φWJ#;eF MA% ƙI [1xtzL4 AlqrX/4s~97^tV @Xm7uXQ)ᮡ 6? ɁPRi2ɺ|`İV;B[TAـU.31QF"~2V/;:Jh9\ R's"1Q Nx7NvB(`B5ϸnK*td2W9ߞQU n~+q%^ZU][j$W)A1?t1; 8 *(n#B|Qr[D`,}mx;rsY2ap4Up%ӨT.i[ jV98UTro6Ṇc4n<8#TFICPDuYHػ'.+.҇ސ܈U{oBtS2jΣSK满qZ`"zkGӛz4i`IjM-}FH/ 3WjSR'R[lO\2,qa@{Om׿5졇hLܢZ`.pIrQ6osi_C7H@wy sp W`OL,Pjb[C?8{`*Tႇ0sYtUi`q'JeQWA;'FJz.Y%Fj'iv0 PbQf<]aIC"Y9a,#g(OK N~g}]duۖcF1ׅ"dEݔ/I ًɐzP&g8ieFtBSfɠXd)C;eD AS-oNpxG0inCV?,(> r n ) G>2x`jzH k9 5VQFءJml×,OgA.F r" ߹xFUsn~p{-ӿ'`0 tFu+K:@1,PQ]v ̘^&m3Ľ~!N"d (d t\?󌉗vZHW/X#eSJ>bY=8\2Ӡwup*N־ėT*FNp ܜZձ-{I.W E1=T:u~ 3SxaыLOFrk LמdHDxZ]Ahy`=˃ .~J>j_KMt@ˑ>S6=GH{:Íd>{Hhrq-z޺LR뉒@(smd.JCWTX5k.ݤX=[?+UʰA^VFQ`l8/7\{)bԔV +DQtojq(ZH& ZlU Y[*&K˴xe4W^`-! V u6YV3I]3ю&J;l rΔ1gFߵ{rJEHF9E0zCn-7Ʒ"lR6[>͆)2dZZڜ"2Twuv̇czQT+[2Ŭd ʌ&^QD0 )JMiEu()_sI 5S^[K") ޻*&c#ItH+Q:xO=RouDPEtA/ ֵzX,&rD)[юkv(wt7._BAzYyTin$Yze6ʾȡtˍRG`\ _Oh:U`rGN$ңs&Fұn\|-@|]ݏ\KAy+γTәC}KJŒ8%Z>%^bnS*$t:gxS9ʊev[owwI-l7u-X>t[KO׻Dm#/O+[XKTswRf0pgw$m~Ach в3oefݫN& ˏpcK05U T˴Ԃax^h.99=ܚ,~1s۱۔2J㼘 tn!ŰЯCO uPAIlz:xg k)DuVh9ZyدJ`,U'@=3Lɶh^Nn9FeMDfOf.N͆7!DI7B|l#m ۄRՈT;?D'oknDP;:mR5 c={ɮ¶ J`xŞx>o jF3 yV8bP+pte%BĆ:rxBHCؘi\ N1 I%8L Q'8%xjUJdM#teWfesڅœm1%5`@P6dU:&Iq6jq }U0ݥGYMK0gS]rW9`Es,LQO!,#vn>@V 9^u͞=+3Ӟ yZ%hd &LXp)0<8kUi#($(_%2!,W &d7Z-Uo3ȃpO +J;0 T`3p5[!ՂTjȣ@|[ E.E,&Avދ.لOy;)ߓEfM=Sj-/]߉ 60Щ 盬WuC뗥zu/CdxV* Pbɦ+UWɀGX{&hQ7FF҇JOZTA~?ŵFpa)\ *!XҤWtdCLqUxX ņ+27ٲ|'VG-MlN8BYcbp&g-jW-6\f5Z ~E'$\ޥ1I/+hyG߫ henzkT&R֑R|5_㵇+g_g?g3?R?,@r#r$~b]50/ Nqx|oCd\l잼w;'{9>(0.ST\jmeŻ:<8=/gپ.}l"x=U *W..ޯxnBۯA=zG͙:E1twA8й\R^D`<\DkUQc?էOW׵ew25jvjDm~L5zo9؆֏wۇNt,F|t9 M#Fެ?2on.`/sVr^IQ{9VxTG+t$Ն/ ļ[h3᤹צy/?]X lSz {; UAQǐPByU<*.obeu pR=e`|w^83#DP>r"SL,ՂDJYKx G6 8 !mfjel~U+,0mzLf -VE{TSD l!7B~u(C.ˮ*AQx/X4_e@I˸_gu#0* ՃC+:}@+zYg13!ir=*RVVF zUdR(LQBF'Ftw9Q%Vg2#޹v4 ={meNjL4.y.k-aR |l矒Zx>.O" L{J"Z2NDxVAעgIѺ3_Xv!<.A@0TAnQ {4)iZ*ڸʉ j,ͤ]4SSR<8O:O*Хv\L]\Cln5NL)%WӭEQam3 2.,{&~\"q/=c rCaO` w5|D']3 ӝ _9VxCӥLF,_sV+; |\Mc C{|.zYMn̚Z9ܤG>}ZO"@%R%BB]ߡI:$2B$?ԙeζ'ZCSp|m@[5^,\U;-əbV<@~{UL֕uFsveH7F?> )981jZEre~0Hmzo$[\*s)v_cw^>z?|x5~f3{=g3﯆.  CKiJ r(vp/wv8E~ { u"1I $jakRjfTOb̭R J8I79t=1n*o%mL}XXV#^,{a%$D7.K^'f<fNzv{,~Δ6{96e㎾(R/?ܵ4W:YETN~r'vGp^jlV=~52Ris*TWYC ^2+i`FQ|IUIZG뵛Tl<iH3+Ish-6_ZHat/H f/I Mصqo67D5N7Hh1K|y}jDWinӧQe 4zcxkgip}rѪR ݎitOS:V<#8¢h;0AAgVvbjP y娭:V9EZ>ma`S=ړ-F &հWEGTWef\އK^=/5`ef9ULv&Zx5%V>2$ ^؉^/cܵGG[2//yx4&Pot0*=Y*O/ Swfs B_"{j6]7܇:Sk[ *v_}^AQ8_Uh5ֆFRxY"f=[򕐴"P[yՕPҊh<7T^b~ 9᎜ 6pH[U}񜮐+f?SKOȓ.e_|þ:~"cor UKXFTF4xGMJblY?]-F{{HG)<) + jTܪ:h3XHe:{R&`ԁ6E+U~bqC36u;Zmv[IW%+9)iaji >ȕ){/)/DN؊wb1 )v,_:8DU ȕ8ca@`3ZtZuQ&X\5`˷|S%j>_ʯNxΉD NcJ hWIw 54`3'W\h@>s"6SW"YsͲ?ǃ.n@?hnYZB%P8ނ&}ɽ̛3 w@ysVWSzguD6')6ag\9t:Amդ&^[qFyC8 :ĻHvi5"Y '^XS #is+}?[t{F=@1-hzZĤsNm 95ЛVDcv7-xEKl1ԅ7H c5+9mŻuÍ$Ÿۈ˼8Q$I $oܸ;*ʓ}6`{gavpiưL@duu˖L)cA9^nz,= wξc RK;% '+nՖFVq̞ ;1vV9f;ƨڣ"TLeG;O &TP[P&ݣOoZkutз?B,̶Op '9dN)9l|ўG'O#> RGu-0$ V 9~30"K>qa}r1&/ϰKӝXNe_$ ̔&dꕳ&Zztx*}04-O&eFz*FKee a}$㘞(^ A =O/0x[nu/UPuNd@( tluisAJ鈟F^g{Ч;q3<~s;OSǯ4ATM?w{9D瘪R6% / 0f,^s1Fϔ&7,CFpS90k߈g`OqTCY2&иO1&OuR?=>9;4TsV|ʀ9]UOKq2pO,dQ m#kZ5k]nsߘ.vum=Zװ,+GBgY,{=E}Ϣe)~}oM uC? лL2ª)YE&x'#y6i{KVgڿd*UJW*dj%ʵ`h1˯TS}C'A˯Ԛ8R^~E=xϩq 95=}5HԆTI{ g)lUؽNKҊ{9+V%4@?uzK_ԷOJX3ÃTz;~5B >x7CJBP*}TsR&q>9-V*O\h}եԛt >ޣ]J};.9(>^\?>1]{|7ѫa a@_A8` Oɉ ;}4^񄭅7м^_V#xY>:nu_F3Ef7X5bvsUhը8#GK1 K!zbflcnG%k1d$8Tei3QZ0`u|ސ6،[nh}v_b7 _(F[D6]OFtdTN̛M0=˞;^]/q>g%79iR*Tl ##*+ET= )A`kFRQƉ|bc#Gk这6rl5Da?j-+L5~3י/d,3K0,3ש_ @^"5kS^ y߉5|C2UAvCUTjXoT*Jd\OקcT) ʱp{5DX!b(^.?&Ja`'r`F}@_i7;(- ǧK.b5ux?+ol-=$WVw% DYvU y~X[_5Zâՠ]:qi9=f (f9Ld9Zp g ~.x^!@D4k^uO k R:5]OHٗWan_O(-Z6"oqo~^{-=fS w{-${-}^a7=8EpP/(hi> =( .f.tA ߙJS0|T^L0Ex3t n!Ú/ ѷC$i3'h; Ȗ@ (  wLS9E! FǏqа+ۓ:DfC]ۻ@]5eN%] k6#sqp(l2mA @me">HxD᥽; [&^]9މ,=1<'K48ت#g5I9TM( RyIM¿#Z]{thr K j9@r=mnG DN8.QF+)8G|`%!;;f@'iGl|F*Qu+u$kZ6=GՅ{d̏]Ό@Nt$ft`/1ʆ%,}],cIl" -.|߳{F??lߍE"Y:JTyH^cr4F-iC­ V7sQ͝ڏdyLlCg0uf U^'uS-] <7NtGNj+~?z<*?3_{=y}ϼg^3ww2,w:PIộC(E8dгKW#B-B':ӊ\?&du(mH>pz֎NAMYt 5dT҂q"tCֶ!|OϨW+\>оߕTTdNx*Wq&?q0Cr"r-JCsCyi4yZ[@x T dwtLׅtupx" 0|3 q+֔|Q$Fv3M٨X 1w Yu闧W q0E:XGÓ vm0hc$Sm 'bEY ܜAbO(`23>uɞ^N_͂`VzϺg~mӮ쇓][t5AC6<\xpxIFY %W+{UC)W{zj ?$[Q^P괺^b+/c{Fc0 i=G烨!$%Yl%f_'( kr- L]GmUi_²OtRKʹPPM1J5,kt}d7aJ{ta))P!Zpк:nE$F׃[h"r((@'ɒ64}J$2b$.Z!ŧ eY቟9=Lnm1>3IqnuΑ^ ojEs樈'qOֳ8uć%WTtl3ޚvHsrm-YLm%j((9RӶg}'\Fvs8B:^Pv4ٶ̉xј'Ҿ_v_:p '/b;>bRV&ЗyyBi#&DR"[6;y^qnL-&L"z>۲x=: ܺsöCF=-.B/0fF739j^0CEqKQ%(XY]=Y|E7=|Sa萪%Z0"pAIZZOI.Sz(ot*2dO zzpeouF~,.èЫa4!y?Ơ d'kOKvJ/jՆ_(_¬g=_p|.y2*/7nQe\VVV~n6&Ƣ&ȱFu܁|o߰[wvj9}޸py \7g8qƵ|.pvnxݿ#Gvߑ;qrG>n B\FSR˧;'{gt l h}2W- K_G%irydhg?nAaJ g}\_Rs|Tߝ>٩s7J4$hoB([2Z{L/wfD"V[7kfDaFtw gKfZkr9v3JoZ\c\b}wJ; wV.ë5N.- mT9"Bzi9,Sй\Vrwy-cve?|ڱZ/7|[hmU"ڷzA_2D NAg5_pڜ41Z(7fuM0Jli (ń #sHꝴ*h,+;$*^2`d'ѡD45̈́KThɷ8Ow=_"n4jh: =@0 y%1{ߡF}+|`$㮹LEO֏^gRLʞI3){&eϤ[IوJ q5ZhGX#sΝɅvʠ-q dCr|CR"}N)̗AG 8`έ!K"IBTrD ,V_UGk*gޛ=&ssسӷHDC:I;+eU1 )F!t֌R8(򤊥@̇" ԧ& ,x7g*m6Zt|deψyD^!WT.O}Y*OqWʌVYSνQ3"_YzlM#r"%-/ݹ{8Z HkboVcraʡ_2i]L}K~<ke +