#!/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=1b19c7bdd7d1e8c2a856332629f445dc # 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 Rnqѩ5? W8bp5k͟jVq\mTV=D?Zy7׋ q5IS&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:ڔZͣя$*4^mRj]W\EHTL $lȪN̕>'gJb[!4Bo!sZya:.q m<8+Ιd W @`H@, ꔒʔ)2%g\73W_ cS(!hV|=@~~' ^ Av/n|X>sm=H܉ Tn.:<ү/{ۊr-+ CԂ 7nZ/7HR… )Vp.FDJr_V5e(`W j^Of\VA*? *%Gzd WHۍ:' g羅mZĨUՀZ<Հz<@j@#p^|X AЖP.?X,=)ᤥi5"WQlcP,5FBj$NS6 ͶwGV3k֨?jfp=Aw4gay{:L&V3< |z,1ñ=?z9Kߞx~[l\ҹ|jtMfH2]@pppPfS €&1tLH+rz3cX @ /p˷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:Wo5ŵ;;;;;;;;;;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ɗ?} {1{8ޠ=C{3v8X6]|t|:)x䤞;y'@~Att=~}AFPN{`SPO(4|"kg!nNKa^9<@L+fޘ~?{ꓽ!;(xLղiOA r5eY.ߋ%OB ҥkYyB#[4E֥ڤBrJ\7a~_ M؝w3arr$HPg9#_)0!3fM7R66S_g'B bK#*T!!8rK~&uK-,Éȝ?@m1niJp1_}%~W74+D!~C$Ic#O3fОO:gB7s2Ƅb_a窄ůJ:\s6"tWyhuE#b؏.uP~2 F 2elb2󦅊t G:Zo&T’Y[h&}$;w \s4ɖ.]+Yۭ|j]u|uK7dxT+b%AGHΆ= qr`<7v?ngO{_Ƒ~6NA,I3d`;Ԁbmb=;[]6v2{'Y?eV`v@z}Y՞tk9ʲ/eMKh~ i:xdN_2JdT;|s evvӭe䰾W-F V˥`"eroSd9 ̆=l:a;92^ q Y 2k4,^~B|3nK//Yp/ `+{Q*u:J+vc<UY#mw ( @_ЙNQ‡P`&KCn.kf4P^-THl $]s!ͻ'#S׀r3To z/QhbqbݡTKJ# [E ,>EU Y&̀ESޑJUüꄘ %8t,_ý=13x-^X#i9̖&vlA~ Բ9 {## @=Ӈ* AeSZi*l@ۂӀXחIƦ#[va`Ũqt V>mpT4HwD$S&:+jA\$* d !ؤ1P4p +QPZ !,ƤKwM/ֿe*; RX)*7$Rİb,FLz7T S-#~-I5t;0l`àƻ!W5OCsh,Ǜ.-Kfk1u\fR++|K|(ؓ'PМ{ߣyz`Qa9liIFTc X|N*l =ZLJN)a6I/+TK!cSr8i69;ku \Ɛ0$u+MM)҂L58ql}-DѲ>صq߻^t[ĸkM݄oh: Ue΁޵&Kc!QV<3]p3ݡHwbLy D"'7OW% ."ì{jF"k+uF5n4zy!42H *iTC<ȸ->0-U an:+PY|j"A>gBii=Af8Y:G#(p^5zC>Q~%-ؖEYZ k5z\4{i]9{ #~):BU{ +7y#* I:u=6RAm?:$ ^GY|8=Lg *0  ԂcpRwwuUYevN;-V6D; wT髦>Ij}ZR*ԃR5$ $ ]2JRn^e]/?GElgv ;%B; q&\ZZaDuśĔ`8 t[y`Q/&6V"8=<(D`]: 4S#Rw1rr4gC< :M雱Cc,6spJ0 8\ u?;nmN:siA|x$d-*zR'*^1#f,1/oM7uCo­vX߫:I[/kNĵ-kZn9.-䗓  089>;Uɟp"\vnNv̘D㟵bXEFq?ÿ GͰ$JCb3g`vu ycHhhM#8.Mb_VL6p[rpq þ'+XrL%[D/,XG ]O =qvnػgDiGf?=%6O4"f\R1XUB)UH26ޚ-X虰m/bc-Sk723,GAdN"]j ϵ!ОYkODG$qu˸lNv7u\ኄ˱"QUY8S.y'ϣ{17/^ڮoLRWS*\|ѹX13R94pˤc2/tݣ-> uvdw:p$g'gnqtw>f6K,Ӧ>h "Y,ZWc 54oY)Rr=xlMK'1XeQVUMm떮rAD<õb]5X٫'"lpuMql9L CVlf 70n{-oaޜkhHyYX]Da|c$'kզ|Q>wWٶme1YZ -mW'U[{[N)4?ϥR'9*߀^LR;ȪoPq Τaf`RBpY6wC_D/5U\{-*trMC_}Keu[|ms*;`nT1{!2GgϠ_8Sό^A _&8:@3 L d{. fsPrEDK"m褝F}*Gwe2̕KS@A: /"RjbSK%7ˋEPӣ06nCvOjZ^FG\ac6CT\ tDB@N@Qvˁ[˪mg"dV1ˀ^l"z2%(kQO΄M&ݥ>8M.IέQ:oh7isA7ݷd>GC?55F0"nІ` [#) qDlɊح5j#Zd݁meKBsyM.۱ag=*d ڷ>N= )'d!dˁY ԝAi".m:ʝyX`61f gyeP$ȷH'!X316FH4 !}(8=;ys;PA99;zY? s8h?j!*!ހR{^'D &b $o`Nl0Gә l4`s*JoijKkgr'^WhɿbͽGo{h/!j%z89zuxfQ߹nCUwUܶl{g=lnLp$YJȪrXqewBȓSǹӴ:oZ&cO[87)f rXPI5u3#L1(?mwT#FZ7< 6O,/m < މ,nOղ-48eoHBVסtE\ 65Ce_̮v+]B?Qh%km3-gkb~OLZ`tv5jlFZ-}+J #S,91ůHa $(p#?+g,,,,,,,,,0eve+vZ]Dk'ѓ%tI8?#{Ҡ?j7m7+ti |߇%ROf7 Reв{ZrʾwMzp$Jiġ6e è)028SUk LO|N/ H&xA=M nS`3e7f=Rbr.үC_6z#ۋj:`VMVTJkhA3@x(״d]U0UbXP-l@=(俿i#jby^%CoxU{9[Tq1Q .x7NY:Lgmަ{:2B+^oNપMHq7۸/L܌Co7+hx`oǏ`sQ%gp$^5wզ]!;KڱÖZwb߂7nغO8X^eL݋'Go]`/8@D{6)g‡V\%Γo^& BpP+]1"Q2E 7]AlpYFF^|`usօZ)#O'8 O%iggelg܉t2e3>!TC83d.8T&e.A?{:L:4&j=4}/.c~|b̿siq:TG06{ g%MڗNmI=vl#.|& ,$E*d/"{k&CA K\̠ϓA\v ʰAS-oNpxG0enCV?.( r n ) G>2x`jyH {9 5VQFءJmoB h9T$ ߹xF$ͫ>=Ch,ZOhpara70 WB@ ;I1Lژg Ľ~%J"d (ddFwhB:.iDƩv{IꊲK-%bY=8\e29d A!VA*NK*ewi#J '8ZnNVumY*(Jg0eǼ"w?k$6=A fQEؐ4-2$C|2Vf؎m/@o ke߄=Gvƹ ~& e:_Vϗ'zB$]yֵ 2,XMăM_Xbŕg am WJOSdxJOPEq|ΟLnkp^naSé%V:0>$q(Z' ZlU Y[*&K˴ry8#*YR`yg&pgW=N|:13hr f B( *ZJ~Vk]k W)Jd\ n>yrn|[Pq,–)eulR C).JuWwg|?vOzʣu/Yf?Y,g3|ONǃtxͫ$z2?k!=〦0ei X4kأړnZy|dYt@ȉС 'CϯwN4 b*FL`SeZҔ)f #v^Tf4'QU`lHU*lJ+CO lNLipno $!={Zn16}tj!Ow$c'13*NZ1XN] O UDw(ĺVRC;Qc9o@ ˲ḍNs$;ȳQE\n=R~ Fө]%;b(8p*=:gbYatG!u^ o?_f&d#ג8fs-pvފ*-=ݩc .e}ã,آNwnq.o}}J1u|5-L!>w.e3y61\pGr,Q4f^@-'Vvlh)3,'|а抟BTk|g& Pr]u" 3C4hml&kTT-a@d:iWld}HT|#vZ:2fh b pqM(UhOn}tgɼFx&;IQc ;曓z*l  o+sP3"0UI0țpq*Ũo\+(b'6 #{D[)Cv3˟A)&a9RIa5*v6XBM]U Tu.LMsnЬ|rf[ pd}MP6{u-w h ŝ'oSK2[ӌCq$@nfu.{mOg]Lnd n,d30=?8k Ui#a($(c_-2!,W &d7G*7эMmwͤZ~A8'b`Ik|jA*BVf >㭙 &v:.Ka }Ϣw sSI ?8xᡪYSϔE[lpw9 t9C&E-wez>2^ʂT#MrtlU2 ?1ZM.RUf#XJw kV4ŕ)P1S\PpEFXK- jawb5qkь:oԏsf(rLU|^,EA`ņK]+SկVR]SI"'-qZh_O@^L%?װ%<K=\?g38Xj3FIj41a^ܶw-{7^/SM=yOwN@Es|Q`]9~GskwQuxpzm?\׷❳}]DLh_{J VUz#]\;8}_Y]T_S{R3u(yk]z0"'Z Z8of8}`zQv^{SfgMԶGKd:P{|yc7cWm8,6ĝ&~fyssg3&pci QJUX"0J@GRmQx똙@ U0H6NKmwA|`8fK߻QTY CB sC 9&<0r)$sdߵnޫe"論#H< 2[QС C>tѩ'ZDȫUk6Pp>\هâzXoK ȇ@G0vk^˛ #yU H>{#5Y77ms4TwVFpr5UGY1@e-=n9>AJ'(x(AfCsd%UlWY1xN h LQdr%|>аakn:n;q eX@)9:8>oxτnԒz`c-mbn*O=%}GcjPH2/{; &kGhˬᬔ <,"uqEZX$E/ oVOH.,rtp,6Qq:ZhuIؘ|nR"z}x5+ӯᡍ"d!Fq|6}ڕ}BSm|tl~/?mjan4_ /f*0>fqqppX*~\]o>e棋+\s Vdq*? ȞS :>>Oa9xw갡y I74'asOӼxd?p%fyt24y< nF{YoV҄`@v~o02&45M3  PRo̹BWԵ =yU*KDo-En9aVlu1N3Vy.|sRvFI7L`-(9T :I+!{g .sZxWώ^4 @CJֹ@yGVIDKƅz pg}{qzV/b9ZpG n0%p!&Lno(T2qۻWh@Ӟ»K&b+nIXPحP9ifM np@> Q=0$r SЁt4tKNw/|U^pxZ[;{ Mhn_[qo75  ֺUf!4]0{isDI}"B7ly; _IET( K&T[ZC-5 >)$#`< Ep(͝7$(1 ns=.r҂ıY3կ˂mVvN٫ZTeB.3ڶ{;G$Y1˜x,㮞pdYE邎q?ZySmzo$[\*s)Nß6n>^}33g3{=5wq.@o]G" 2MSJxCk~71lS8[h/k.NNZ&)դT GR3z-en57:DhP1Ha̩s!qCTy(id²\:fѼV[kKtS2Buoƣ[k8obׯ<Ӧup/"P:bԦ b<їq0 O1w? ?䝎?|VQ5I}}n.\Z([ z@'%i ahZƿ UVP6 FZ(Q_jUhQ*:o{)U".*Ul>֤@k\;ma`S=ړ-F &հWEGXgnuΟXՙRQDVDoQW14{7un9#栶< %'|ٸw{%.=pgBnyD`/ᳺQv1- .>TT"0h/yw+3$6^H^Nw}gd)?F(#X>LeNL<?<^g&~Γ[F4N~S]Vy`։>gp ouZzfa 6)RX g';NL5oq'mݫxa0%5 30 !B{ЋIouC}㰴V5 "% pSZ s3KĬ#WK)-&(zmYJy(iVvLgq_J*/1?;pGMWMA]hpu8S[U}񜮐+f?S[Oȓ/e_}þ:~"}#o@rZ U:KXFݴTF4xGMblY?]-F{{H8!RxRf?VvUmu6J'ykaבʠuLm>V*nɆ\mMl'JD']k`DW\gKk\EXHMpBy~`hh,f"l`ߜ^qtجQ`\36êp($5 `v{&[@P Α[Dxr7LG`|^T>hIʾ||cj9=N'mT?$g7S#'ErduJe8oVW` Ǔ() }NF-z^`^;ɀP"%Bk?o$OwfxF2vx*_h,"¨DWrv1UP&%Æ_*aNX2Ž9bX*Mn)⭁r1f֖g`gNqTCt3&иO1&OuR?=>9;4TsV,hhe@/*oxܯ KsXS79:! ( ϊ2 } )R  3ҁ)En8 Gr Ord.yH0iCk08||ɤMnkNiv߻uz {y¸+aV4Hq*_t+ݣ7J_ק,^ o1\JgK[TlHe̴kJLp2n6ጵH&5wJW7g~r~oLW6Wkk= ~5BgQ߳Y,{=M*^}z@~Aġwe1? USL2 oԛGlr e%09ܫU9+UȂբKNk*b_'sϩGBNۗ_-%wϩ5qj00{N=緩ISa6Zskz*j 5 ϩ,R8,vpz̝J7fo7>{ysV*KhRɍlȃj0M͒0"R,EU{|o>s5]>.L/%ƙ-QIh_{6[! )e D5"Q 0Ghc`E<(ha<8aS u^iCxB@Q8ko`x&foT7"HV1iLdI>` ؓ9lQUdQ%B0(=yhGZ[!ΎhZ XGXYuwU5,Z ժkQ(b&DfLpIIJ>01VhiP{@/;,Ssdd;}yE`dfE+FmMkOͥAKx^罖}^a7=8EpP/(hi> =(.V.tA ݙJS0|U^L0EBDd+C`kB0 Πq9ej,JB) |*(2d1s?|"~swVp4U8aHk{  DMao>F3pv.? SFEQᶁjev2IhzO$M<^-I >gѻ0БQ!xzZd|[52RZ!{aƘ"9* Ad*;vڛ(9Z\CBZ`O[ǽ5Օ?IC\k1V^ɭ-ϰxV]ؕo vAkA_KhuO/8 Ē7({_ӫmX1XU#LEVDÚ'ܘGCf', rC#Q&rq&%lBYbRN1H{ [@r3n~vxgthUROfڮeC{tZ]GLW`@z`FAr)qaY] slQ¬!2&H R7=gA= ^ʦ]4 :yO5n٨9&I IcBv|=Ļo/ bx#8g`5ӗc /GX!f=DQ騻!% X ,R0E5{쓢i)Q9áRb@_2uQ{M~)\٘zx0,Srd ^PnA3D/21b.kсIEcz}H- -3^{ZU~j +;1s EQɢO Cr3y4S}M&*怤U/|е@keHV@|nTKL'! o U ⩾RO`3sZ?,Y8ﲊwUh &Γi@# 0DwR|89. bj뤽nKgII wGOBe+9"2/ݹ El|Ey  ?/+85ݥҳW/Ê}Z>HS=&tx{p$W~\3{=y}ϼagӁJʹ  @.2y| -$W-cve7ش^nYaum0cGG`n@ _yy 2:E NAmk=O#ib]^n\TO(a*\/=Щjq5EH ]TcqVٙ' Fz<:3[`8/١ӊq;zL}ݯ_$rJ@JU8 ^؜Q _$TXQΕ?Cҹ` wWU7g{LVgǧo"Q>tvV 0 3)^! R8(򸊥@̇, ԟ ']YnTģ' M2h.Pƒ;cB.'=X.O-3Hyʹl1ÂO`)X ek D-1_jvʲ/Zj#Qb[!9q1nc%i_̌Ώga1ceugyh}uf?r %.dkn2W>>y5m[0pcxWP]\h궖{kPʞ3;g!0