#!/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=41960177ac11f76a1f86b72b1978242c # 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  9bP@3;_,{F 6-llkF!)u-}Œg LbZ5"E2f LH q=L(0jPJfS…h`)Tsx&X@#esC< `Q/e(s=GrW꒳P)`q$_\rJ#](#lF `k+vUa8 FDd@G*KJNoܕ(H|%*lC28'WҨs 3'Y#&H;^{DpHJזPWru_!"L:g= ;cvQ{  8j>V?cJm_/ғt# q(3Eձ*$HrGRNIo0 I6Ɗ̤'Ui4Uy/A:@gw}dٌ4}D( |ek(\GG$rJEO ZV2MV@f])@c8 (CE'Js Aa\gCXlc3\k{ >s>8Ԛ`t> < 1ßJQOJW.M:WsŀBpG^$'( ӷpIBy~:|B0;>:ᕎZG^P^6k)Z`/*aH,![U+}NΔŰCiPۣ\B0t\ .! ypV,3A:ؑ _tuAP)%)-HSj9iJϸnf@Ʀ.Q@xH2t[$0%#8BT`1+8( I?&Ԧ.Hk[Y#xX݂d'9<@LIlYR_,<`ZV/1<?F1]SZ,|atd ܰLC4 Sj\L;4 9j13b2ywwQ;xA?施?`qā,~F>-{"grTGǭjUIiw"oJ$o8I`Y~9>C X!G,QI{4a` %Qz?uiux4֚Ey.=q'-nٚD7 U)-54ωL!lO]L$ye0f:0ыya\@pgD'mibxhV7/063p(P29o{jn^IM 8G>>1(*cODfTȓg`E`2<@uYXHn=+Ef." 4K53g/4u",nR>jC.aʀhar6^bJ7a>e|]<ؔqN/|@F8B4^b NAK}Wߌ&!")%ҌI@)nqm˟2sqv*C Nap@\f' ҶW7R|Z@cRϠ&l :t S$7 q#GL6&n_P]?RjGV+uުwkwowowowowowowowowowﰘ9R?,OY!L.Cy9u^.#ESJB{פr|j-a e2_#Q28vVyz≨p>:RWj*kul^R(IYu*Vr׫Y 4ČG65&FRonsF}3Hifrh&)٦ @*FGrTG͏>PdD(眮ٮꉮ$lyM(8Y,j7VX^kAbّ[b o\44C Gspe=>B&~8pqm@Hvq>I[*hc⢄d8`? !óЄe` &ʋf^jېf"0Q9sWٞ1LᩰH uaB<˂?&p/-4TlQԨlQ?58CHZ3JYY~/>OnQ m4/ɵwnw~_/ˆY&yY! _6Xjh:.nօy-3\gZ=j wdq`ZJvvS Ll_ꌤ*{e|p_{ Rlā=AW[ >w|݋6_3:1ՠ;I#'<ع{?9Ϯ~Zsk(om_OM+ĝ?=0X(Q`' = ڙRXW{M&@JY7OdE<^#S~|?qoiM~zUkVՁbI#CtrVP hgRmR!I9zM{%`\D/W&΀;ݙpR 1^9N$(|zăAR3bjd6V@[) ZZAeߩ3k_l >j<*$G@nIrgbPԲR<.~T-:Ms6u lv=Fo>o棢fS+D!E$Ic#0Af͠<*u$fJ~;*k[:sm:$pCHΨ+>N_8A˸&h)Ȕu Ps_*N̦3ll=z3L'lORB3 پKeӦ~Lu޸,_fܺ}:ڹuK7' gjD @#Q7a#?hHA?Gqn篸v?ngv???6lWqB$ b cN$o#5X[<VkW̽މSUN{@Pڹg {T{ҭVk8(˾5-%d*jmPʓW;a(!QeO1,H9ڭG϶Wz\y*Z-M$[*@C {4tvre2%a [ج 2k4,^~B|cg,^^_F2GW,NgTtfW$x0ϳF:Q&%߿=dM7۲/A:l#8Ż @-z #P"]taI Jh=θz[xK} & 'J%Ѽ??@ rP`mQTQՐe XXT<%Y5+NH_Pḁs`w쉡Tx)wxM!2[Jɲ%PRf+yd*QO`7MiȒ[zѽ-0 H],p}!26Mٲ pZ>L [fkmGRdt%rX,8MW1uV"A\$.F LAFƂjlҘuzU(N8e(&TV2G+£(HD1A *oEYr@eEU +?P6DJQ'b)*c`GI J!Ni>nNngЌR2b{lu1z8CXo"==GM&tD2(5^k;ʟwzXޕj8A͘C뻪ov6S q O- ^$fb `1 #*״^ ~j4Tӈߩ|;xR  0&qnEU- xSۥel-FᴢY݌Zwbe%z0{ ~[4A\' d>ʷR",- 3Ɉjд ~ \a{5VQ[)E#̦P09i`e2<_Yj ]@5dlJnM&v6{eX`2(]' [QnxoHBPPiE@/&∖Ů-gV}ע۪EE :\4T% ,.s566FregF nJ 2+U0`vSU+s(0/=cyŭïQHdcΨ9QBU//D= kAiT}ٱ_`}(P.|U4-H̉ \_PLg*é_'ΞIFTpzQS&51PmnE,U:zͪJ|I|W瀔\Th]]UVYuNm >'yw@ (Tɭ?E# lC0̼҃ԿײtEyǨE ɇrA 3BxOSTfS^\U~P6ES-z#aDuśĔ`8 hw[y`n^4L(5j%mt򼦆:wiå9|9AOirNߌ3f9<M[d4Aے+"U={@BWѸ_G3}mΩY`9-9Dl3REMrP'uq_ :Bi^2SFyx^7& =lǁYiLWz-umZ!HQ-եrrTb6'ۻ{?g'* p"$ +El!oʌI4Y+YA2)LEaI *ze7>\&4CB1x0ӆF~q\>6"}HC!1G ,>߮{Rr^NCYmV<^x!>ۄ8%HX_vt;r\NH٦"f4sQӾIQuVyZEÁ-52\}(&S5 s~&`MeGn$Z}vw $ A > kIuCZAݸܒw:UԘ ^p+!GX0u\ВH0!ACÛ+" xY'0 ؖNi?TBxQ&\4EZ/p,-{vɍ/x([hŻ5kz}_F[\R1!*al:"!waBg'BQvˁ[ӪmgrMrX.F{y,n˔F>a86qcrRb .4yl&F5Մmvź= q5#9)p0"yev[Wڀ%1BRHG+IĖZ6E6|V&DA/4W,1a)Kv zZ٣NVJ}%>wQ4(0nV/&s^Z 5cV+lbN(pq f/ 47)f qXPI5u3s3bZ kQh|0QG6oݵ  nL,/ #}x,D9Y1ݘe;5[hqly.xܝF iȠ}Ih)ߺ4#Ekf`*\P r[#['FmPm:JW\ 6Ce_Ψv+]B?q++J +.ۆ,g0Y?knajr SLӁBqCJcu>֕WGE[݂X֓N}?$C@X_ya&'_gaaaaaaaa2;vF;W."͵iOjk :Ꟑ=m64NCow~|}Lf7Reв{[JʾwMzpdJiġ6a è)028S>>Qs B\#&|N/ X&x~A=M nS` e7f=Rbr.үC8_6z#Ӌj!+*%54G!9Pr9J5M&YoLjG/Th*(p*ef7F5 oH3ZeGX^W-k[*^sAU$1&* F)N(LwۭwiC垎P78_RoE6Kky+[ %(gh'>;:#\T  W3v)q)DW鎮R}Vl~֝ط2f4.?FS1:tplp7afxDK#x<ڃ{JAW 6DךAh-o5FtLQExVz=K ܜpX-J"'j ?A~C/Pn˳xw̝E/tmAogPNn96K& }7jNdUJS #tkA 2Juf:}>WFyt1wо|74?TLd; P/|Mhz6P& ,Iɹ²afJmS$QvØ9K ?s?y=[bRLz?׋{IޑgkEFf#{P xp_g />,z (A "?߃ݟp1sMAړ [ 02(~Qy[=? 04gyO'\ kh9gʦgTHi"Z}LGp,Ol/Z\\./ӁTzc1|.\@vVkZ-K7)bO_{/m2,kzW~ w-g 3?M=מ8,vd85UJ Qԟƛ.*E~9GV0m.B:斊iA2:s7UXK-kUqGWwO+UM8F/N-ΑV|u $zFI Kש>?.^AkX:L.nR8佣5֘P8F n2],@(Il}C~t|W;&-1HRGLD5/c<60 ӭZ2T5!1hVgUn 3s8*l1 qJ|K(RTfI t*XXraiQ 1pl^[VWd٥`6& H*ۃ 5xeg.WM|atk^>id] Gs,sRW=0`{n53YNc4)cg)Iey1/B>a_b**+!xБ7KrDvn85'IY\"k7R"E^Ix7kS&Ԅ@$eadLj-_55pZ0ϧ`epXd2d}uX#\Sztr,_ jYNNd^{fœmѼܤsʚ ; luC'͞*\؝r oBoNG&r-Alv3. 1vmN$Z݈!wuڤb')jd|{]/]ma`=|zԌ/L?'oaUg+6\/=J<7lj /td?$𺅐2d891ӸlbK*%qVOphg3J.!ZOUGˮR4 Q5'b #Kjm7)١x'mf<uM>)Γ.-s lն'*fa:Kd7#aTϦ(0.ST\jmeŻ:<8=xl_y>6F<RawuȫGv_qVqW7U ԞTnLAޢˠ~8й\R^D`E(^Fӧ;5;5kE?Zr&Ӂx7tlC;WN:~#>O?|릎CLCFkyo?4on.`/sVr/Ȥ+MfZVjt+t$Ն/ ļ[h3᤹צy/?]X lSz {; UAQǐPBB[f R63\0?~4Xkem*ww VENņ>p43Nۀ?ҿZ^ { Mb#[J@fe52q<<|zvUa?>nGbh>臕.~8`A*lҞ~7A|t|J {X:6xRΫOO9M#鸀o-$C<8*s$0QDܻ/9⤍z)k]v_cNf6Ocp}/, FF1ޤ+MNӌ7T.~Ŀ6sQu|FOF ۾dzd zB+]NtVz̝PXi=/ Zi= BUZ N@џʮBLu$:)*'IWՂy$A0ˉL1u:T :I+!sg .s&Ư0^/T0!7ۗuWů1[+Xw eSLNK)N_]=ң,EA]`td'-~׍è+TϮ}}@(}fşM3q&HYY9ld:.;nW!NIA1ELFN DXAˌ(bzI/2ҷFӸUHh߫)ZK)J8DkW2<T705*h8QontY}a\'E"Gh:Av[c PIU;dR;뺉JF=7U.дr: j؊k~R*'V/v+ԪGow4vLQOJD$<5Vn&?@ir1#wq ź|:2iR\QToW#L{Fݶ(pP;sǍ􌏓&078 s Q=0$v St4tJNw.|U^pxZ[;{ M2hn_[쀄qo75  ֺUf!4]0kjrAj= oVQHM u~[j|L$$#`< EpRg9۞h9xNiixd%Il}֌zpU۶(;Gg'gYiU-2ZWs-[=C"0 &Ƹi'U"t#= nqZNH?1ɏm8z?Z}^h5~f3{=g3﯆.  CKiJ r(v;}}"?c"1I $jakRjfTOb̭R J8I79t=1n*o%mL}XXV#^,{a%$D7.K^'f<fNzv{,~Δ6{96e㎾(R/?ܵ4+k*'?B~}T;#\V/HMQ@t+ U[O ?KpѴ{}9l /4Q0(٪$eãTJuMSD]x4AC4_/ -$0:$͗B&7J G ^t %~cj5bs "m`qqӨ]M^cMbƵ3H4D>BXhUyxS)n 4ac+XaQ}H[f3;1F(qIPkrVLY"gmJ6A0 Ah~R#Sc jCpxԃ#6nA!&2;lpy+|« 4!73my!:Nw˽]7B\'K5i{{e+2 rC%VҞAy2sKletW*QywvpM&{`Q-]cw+zkYL/zdNZ#U|F_n>;q)v`~8m.^ 9TY\4P@/&M Zր2{WP;@Zѧ>fYGdϖ|%$-=|nu%@tKag~,߰\&HUQ'- o[OFW%$D O lÊ.mZ$ >:R1^ u`gJUmluLlEλV}D|`kA }FhJt|EZZ,r%bD #A yXd H&Nsz'aFՂre8X،V %9*ii9ga%E.V=ee5W m!_T'pAx!s@`"St4H8U]y{+M:،G9)A"ЧϜȠԕ>`mq{&[@P ιfo{dr7LG|ThIʾ||cjWsz&NPh5 ౿VQNA=.#]Z HV/~pT_4{At xOde}^QO>/P C78@1iǜ%FzłFN fsy&ØM iRcu!ͫ&˜A`Jvtq[np#j)I@q|1682l4N eg69t~7 $nzmv_j~2Y~0\#1l7zn#&~]]%3q` 8\"1_42@Nwxܯ M9XΩUḠgTޅ)BՃ NiCP"7: [r wr-/\!`&`dqY %fRпv?uz {y¸+V4KR{`kRa;ծյ~Y,=E}ϢgQ߳YlR1ůnGDz QPX5%/ðD~>&m~)ۊ QWV2 ý[JޞSjR,_-T-fq2 p*Ox$}RrZV ˯ӻs~z96nS=gR2>i,b iTZq{yovӽ1;gj/xN϶yi=A}TpЍ?:#=<(JGλX.yۇOsHIJ]ÙjN1$z>g`[Ŋ_ zC{Ka?o'b%8Շ˳G;?ƺk>;zU?,!l3+(,)9aދ=b9~}7;ׇի0y־~i|Gi7:/^pB# "3lq;h9Lr*jTylݑǥX =J68Ac2Caȸ2l]}K31h%k1d$8Tei3QZ0`u|ސ6،[nh}v_b7 _(F[D6]OFtdTN̛M0=˞;^}\}l93%n3CKnr㣌)(!F-"^M3md*k ?[վ[W)=3kGg3#_0Yf%`f YfSE|1k NU$5$k*|!eGxиU'mm@w:w.RO$LZ#ڎ|65토% kxʑ|Պ?ި+%JU9 (6>ZzIJ&fyQETP8nmti*`)z={󹝃-W/Yuw)gG%e(ZJXO -l F* 07v7Eb2D1HG8Ŏ @lTV#e󠠅h\vN-5{ڟ  z {(FBo>:PorNso`x&fOT7"ɬHV1iLlI>i0瀜d(SF%Y|@ *b5ș~ 1M+8vh++0NjEAZuvs{2 %PsLsI\B>8cuKCwv̀OҎNU>mVIA۵lzhR Ș0#7<> HP(@_.%4.,kc/# !J\Y58XƒD<)![*]Dg~:h15BtD@t\'󴑠_F-658 :iZhx [Ao L(;}10*AOy]`C:BP`" K*Y_>+CK+<:+Ez)N,Sg9꺗kHW"X霅j ˮh2%i9Kz uTۇ̭֢"~ZBN̷B6tQTGT_j JtmUA_>Xv Grj. dۇKdIFYpQ!J#A<= [J  sFy.V/D<"h!rU+Z=hD4ps;O)P8}:>Ϊa NZx6nHO4ZHWXy4]v(/C)*e#K y ϝN?Fz tJ_+Ni8#MЉcߓ_?z?|4*?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烨!IJTنK̾8OP<ր3(Z6d&ڪoO%Gmh-'k+I|eH\C$6O/7wr?s{6ژ bN}fݐ=G# >vޱ/Ԣ6qQO֟gq#./9K*VuBpg5xk U[,J0PvQx.E7x+>eOٮ}Ls:mFOƹPq@u>:^im=$+ :1O}h&nuN^V(wV}<ܭL/?FMlzHyElv:hm[LE$}eztLJu1m$z[\^`Pt3oe gsh˽V &`g? yKQX{2?n{T !UK`K-Dঃ"](QTd"ɞ \xR)< ݽruaV7U b,KnFXX_7r3%6Q.}S9~UK7I2zF'F$ߙO϶9ޥ !vLt*?˥fڇg6WRCHFr:jqFD-GuڸϞ9eQKm;DKP{L BZm}Z#:X\QmWhBz;~A?.6?+OOKvJ/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 gKfZkr9v3JoZh}.1.;`;+Ur'y6wM*rbJ!4 U)\[]{n9;WY12>OX}-46pyLjE[=sWKryyswoh]hZF͠³[/8mHf-Wxp3USغc%Kp܇bBWv$NE?w/Pt0P"fy%X*4Kv{[m; S߁ }Kg/Rq7 5Z ZCaz |RPݾi> 0q\OG/3){&eϤ왔=gRlDHM-uS4#9NBV;eЖA@mhZh!Nx)>v £x~0@֐a~NS!*9G"T@W~s+sѯꎪzn3o9H$yFp!ɲZptP{#:kFb)HyRҀjW{mFSB{@G3BD@-ezxgļE"c+IOqY*,+eF+,r)^(|VίH, Jn\&@tIK\\Y=K-5JBtr c O1D\۰px/Vf%?2w=Ç3V#q![ss<)PӶ~ j=ՀbMr?bPؙzfe3~?0