#!/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=6c21a9644e224fe2d12bc936d23418c1 # 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 Ef\{sHϿ)z8c;8Ύ * $FvMgI'wnTO>y9qF< =]_KޣA^}oV?bG2(p'ܗC''nCjRvknm4?v<̆ 4c7Lc3hyou;e%:,nr1w;0OI*Lx$%(tH1HaGZ:iK;U; 滄R2M @[C9g Adi'Li^hD"T.ƙ<7b-oOY;GFܫbQqhfZ)ꍾɰ\[,j2zRSPN0b&c̹%_Kˋ*C_X97WłĶm'(fL֝/]!TYy\;WJ^o{% /t#{k{?#~-UW[S!o٫#b/9r5X|Aq ˴Nj K}oH1|sXRu ){vĈ 8^"L1;;A0~<;pslnb8i_V"n7Bˬ ee&q/6 ,>8%Vcw7$bvfcJٶb;Nl%|O >' 98_޼@?.*b.ۂH;UU̠^JT5wϿn(n_ݫO#"O'a2{nzXoZ׻s-Ǐ*ccT: AHxTqn9/%,{ > QCEZFe(g}Tk:T3FBsJ/Kej bIv +t_Q*ͦу7 Ej6oZlFukQoF^¿e#Ȳxi+:83xA{v[}Gi`QCCr 3 Þlg mqȅPanG=YB!0-oz~Nx<ſG%X#oPYE>'rJ<rĖ_:'H*,&r64q1D5Lw5âÀ<4㉌Lfp Ib ,C 8`ZMVa~g^IOk\ Ǽ:F!'źiMg^"A#"J5 V,>_r?rKJ+#Bŧb'5, u/r@ Xs5S Y4iGF\\/3c ,#/7Sn*ɽr& ?abKDZst F^p4$\]L75G3,iuvucSBW4҂t,D Q)CBNOz0e ΀9po̓Qy}i[I*2%*0v9d7}uTZ 7\"Jƞs<ӆ\"3##cykgyo%"܁@8|¥ThSpÉ`[Ko^iG;cT9;#dcX(rXD*T7H;~G0`@WR>೒GgX!n%Rǯaȫ6aeaX>媸MԱh=UrhDzA%D?w{9v1UmBz6pG>vu5Pքd*Ba9z5a6B%g\ԀӣF+\}@߿8?ƭZM̒1=1*G~3:mzqr@~#he@n2'>$W '2S36sXU;Uف󈂙P90"Qz2¼!(r }x-9;w&.{4a~ bd%gt1bV&~+\D`O.ku{y^^51J_ŠUfo<2i ȠG2O1+HPV!B]=`$ILtF>l^"˽W0Z1;@et0=z{uZ*ț@L[`2<Ƚe@[xk(*uK}AG26#jߠ5{J4sdڠ-_΅=kS3O㿧i4{=H Y3tׯ m, h}v{Aؤ6ز.n|R%6]K\G(Lxg6pa+Z/ 'Zq^a2O@`n |-UXʫۻVGkWb=zq…ԟoOg!^ǿw鏧fџ?6'%sv?f?/y@ehong}v0tN$|:/?uO\( ? j5VTt%p;(3+"a \j l̘gп7~v~ nVg`H^T5R~r!mE֥h^mD3[R#|R-G3V[~C*qv2𧙲!!񹜢z⋋ߔ@[8)2ughe'`KDD-LQ HvOW#0ίy.0@c$e".s+m:c1Ε @j/Mw &RDEOk:Փ̕ ZgwSmQH?3cP~=om@ .vؖ +L:*zꮼmML3&DUbO~evG/ "Ooe}2|gjgjo%4LE @yXE@94( N6& d 0KpKDB rK[4ZYtNt~t< z?F v{PhfWI30:6MQP`Ԣɛm/A:l D!|VXgmb ('ux U͓E2UuGdw̒+;Cnm^@Ҥ:Ito?֩$H[S2,(f *C4T^8(e+D[EƑ}ҏa2 p$2vM^b$ӈP^gPY&qkpUl "/sC2o齉} rfq)t!eSr88CTP|{dOۑ܅RT9`훋YLэKc0 B1؆\JY,`f'wʥ䬱1~x`YҪ,)\p:?=Fz@B^Udƥ ?6P\Z]j71ܝ2;v%T<$@L "j.g@7$d0KM ϣꁊu%d.obJl_N$nl (GO{r4&wr@H0FwF́ ?Aǒ0ZC":ǎ=Er>0P*^+PRP Po3a[pLdC4[A;hi0Y>'k %9!$N؆A&28#MO`f;ZpJUe$%|n=Gke;oBkZ0ӾSrZ[ArQvPV9^nǯONU$nxzMo; |Nw/{/`ŏlA؁NJjY2oY*E xv.oPb0l_iϛZ/Ax=J' lY/Cž6qK0jCdN 07An<p'e__{w5Tn@=PNjM!3ZO3u`,`:ka hBo4vSd@d{.&an#Ir$-/wl%J@'.UߓUa `BoWyݮ%}O{lTW^R(p|sVJ~Z t6*rj_ebSHGB}@Wb]7 s.΄28T^Wy+*_WWT6/ۣ. 5{r.kwzΘ<עCei\ t:)5z|s49t@c8p yڢ"Sa+YOD: )e4|oup Y&z8]5wS t.RrOD$eTȁRmI[:PQTu\5L 7t;5-LQPtQo xZ)m[g*; fQPfJKg5tCP[;&X0|ȹ)Q^YfyȚq:uC Tj[T񠶟;ͶYN64*0 3*˵cpVUUۙ{6; fѮ,};IOK zk6p[vdJ#IvZFf_AktEyǨE@M>6l ʃ?4(Q%а-e7ZMQADuۆ79i`T4酤=c؍5GkVWQ2xGe{by^S|/.vKCA|s(8)fYsJۡ1R8TJZOmArI+{!B]Q4`to3u)rT98:fmP6!`n'J^1%#"q%dCc*ӣ6]obAzn40d"vV_鍤K׵-B-եr2TbSݽ_ⳓjUZp"$ +EӐrpoN^Ƥ4i+,j#e(LMaüѻجLK]oB:y[h! 3m8i/K8IcE9jhىCJh'!W$ͼ8SHYVN:!VԴ̗RP;uPά<+h/yk&'>vL@"3q`HM%ޟz Џ1ruL´Z~e߲>,:rvKEN2,UDfr!˾A-|75JYJW RQ52E[B*7 >.G4qJv\Ug˜VT@*3xKk@ZZӫs["mԍnMxut|w/]t #9WE͡<nڅ+ey,NO7,L PHRTur}{ybzʿWj6kx t)APOґ/ȫ :r5#|z(My<)x7xiTDl&EY+m[jdPMj:y`|tEʁ^bL<F^zF{þW J:":x #<}_ <8 M=@] kgpjB6;bݕAׯGd@C?554Fa^E<6 l cpM)$@D#`ZĖZE>l+cD+ӌh2嘰 ;[=^Vi'+>O+O}f&<9U~-7n֐/f]ԝA3 [Q[\9fkZxV ͂|Dv> }(ccDJ(A0ӷޫӳ3 R78aڇ&mK&k !un~BM-^$`r:%Eo`┼ސ֕WQS,91_cL:qr <ʰ}5`l6a`y;Gg *>mj`Pj=l,EVx3$a~E&\,&BTp`o'>;<:6 /g/"U cXEci}O?]t=*̕p9Ε9IҞ~7A|t|J~ yogt9aA;"zjdw@Yȗ)=Osz$[N#@':P k׏}`6"q;3In)|d~w>N:Y,m7PBu>ѭOe`MvG^?]i1% +q_Nfơ:0 'ۖJK4>-9:7 HH{$ Gn* Xb8j_n.(_cGAS)P>ӽeY3oY)`?՛aB|k%P%3@~^=G^,ႤBV?ˌ Ut 9ND5Z^1lҤWo4b:w(w=x ƩwB=cbpihu FA8OJH$Gz@ ovI.ulw]]Ḏ{ډ+LJN G|e:x0QBsg .WgM/6 rs -ȻbթTT L~M(T]ӕ ._4_qzakTT]FEObVo l(iIP%UV 62'pDyJ@RV}v*$"_fD߽0nG}OxYWVonWJM)olAyʅ0HZ`d6e/9J8 {"(oajn*n8QontYuߋ_a܈'y"G [e7RC}› @*X Lx]7RJX7ރeL@VF0dp?irjU葳ݬI:ho`9 "qYA+uz+OkХVRߑHn%NLLduEѽ]!XOܳ7T> V8,](K,n|kqӽs8ưNw>( @NF:%';+{9s<ۭ=OK5ܘ~c 3; /ϛ wu k*@n욠^9JIA4O︰~TETRHM u6=j|L$i׆ y 8Rg9۞hl4<2[$kFMY{-)Έ0y~^Yp1պ_:j1W:^pt2PF 14H"$WX2L :`n 71{Nju+̮p2E2c?ߣa}S3OS{=+ 'mIe&X^VVrFLw. /Ib`c !-]vJٮa!0:J;,GN02MSj D%y*AUFK7J'?C#'&`u?U zj-=%C0R+x]$p[È~SS囃 f#tcu,GKt՟K("D_*sV])R0mc0DwBQAr^ ,jC/G* sR`߉-O% <]Jaq4YBL:<3r(sj%g2et]J&ir1t$Q&ybL\qBtY@|L;ᕢ[_ мhPMV;pe3NK%Յh6U+'Za5rJ=M̚ɹ c*i~N]Z|)zk]4F R}Kxyk+YahSIV=׹nImbfLF-_ LNüSöo_zYvX z0YJt5*. U ͱy|9f9+59q%VLQ&h97QKO4Y?gl!:TOGohsmlQ`е6Hz(ttp+"D MAWT :2ce?CT*}6ׯB>z)Ȅ%>+CK+RAiz)N,Ug`z37QVRI0Uv ƫ/#sj| Z; Wrֻ o`W"Uzϸ}HZΜ7|O>EE /`ĔY0F[UIovYU 'y6q Ygk?xҘL@բ#Ѐnέ!%pc@yUuq_ >|5,_57&!rs(‹H싂-|~N|%0>-CB=JR$Ch)̀;sfq˪/0d(S)8}xҍMqCdnZKP5趓n'1%9P7vR`:+]a3r5cբ~cc2?P%cud KG/&>;y pjx=ə6 Z)RX](8Ed_c:<̥7|1kJe=~S{=OSMۍo A޷9Rs|e h.!.ޝW 9t}K v^7 u!ΠeV;"/н詚 EeURP:E~kWYĥ-N}iw>Ǘ|vdI{#zxO=Ro6􄟿vJ*7ꍧ]Ff+u\0 %@A)o8佣=x示}YqG6 ]S%7vc2p6l7H_mz]JƩkzvJq7JO2`kamnUsz5L\:ܒ V|mjbp$My 7ҤD .:{7Rң>44>k[&9.f2KFtCX55-|Vf E&;ŜhQ#O kG"RTy)a=ղ~WR œnѾߤs5>Cs86N`i$A]̅)l}at'#c4{@ h݌mLrD ]ߍ2Ejv" E7%HT)uc=>.u]* *_A᪸w(>Qy o jFCM&:9ړS2 Wm3:0P6ʡӕۻX*z 4>ґ*!B>6 ltɀo hph@^T_QGXoH-d7QX¢>|u/q{UF328BT˒H'ۼ3K"56o1HI#M!_J6׵ 9{C6FNum)fa2nG6)ѕ}Sd {ć3h,f/~d"Cqd4~\G}rv|Ff N,AӤ捬nīe ˃czH?)lϰ[_O@Dt1VԿc%Wn +o.>c"]Ǟ\,0SbaB3훼8'aXEgD|;-qX<'@}!RT: -sD MSW śʛs\M(sѤ-uY?n 36 SN n?'+6L:gn%YN{Ʈ{qp~᪎5zu/Cd;NR3jk$H6] ~ؚVIx7K4j?jQ"űRu%y*IϯLV 5I"{[k-sjawl5(qk1:^oT3(9֪0z*Nު2>˰2+l`wFz*Jr{R;kzYR;6/Fe aGgeII*c@_:r?Gco#ں_YL߿?OS//}84(zB%#$XŇ 3/&r:>9azMY֫JIgf+fr%1 'rUSt秺/Z0.̊V_RTŋڋ3~&_B_ʲ|M6gG}e9=*?=2#(f *kE*\d]du|5ULAζ@5]˩߄Vv3Ȗ8 <} ʻ&)w+Eڻ8MJHw(:VuSyl[YW|psGl=t>XK`M̆#ꍇH"AWy?Wh-g73ϐ5uM>qݱsy dWIs \GW^(G>rч/*Bp|fA3ɰ;k)4N9-ˋR"aiRF`c>cH,~;gΊ)+{*7hVm:W͇3j%e՛m~d vRn)3҂ d=Ƨ;j)Mٳi+O?(Iẙ~`{@>z["^_E,n1F[[CVg>A0>Q;I U?rh]98|x"W|Tvt-͏l.Ok9,&ʻǁXd`V r}붚OĤ's#;VqzOڪ(/O ^Vߛv[g}oE~S0NS;NSX}ovϸkZ`cUĕȁ`LV 0 d9vnc N䡆D݄δa,tD2fiM8L#`~? x)0yZ#<^!4ԖRL)(U: EHsi2 3Vww>'"3X w^yifɸS!V`N y)ܜpzx$D/Y[S'4xĶ`77!犳H=E)TT4މD@h#-Z*4Qt qhd8GdYhI8̟Ffl 9,cpO^tivZhM[#cemfkbt)b[?ĐaimlnDU:&;|TǃäL#U"ya 8%,:Yǩ&""T)nvJ4$ /lUI7MaVvHt@xgQ=|t3e8dVֽPmyK2S َMV,[8zR ;nS#Sɐ 7:tgū|7E| {(d+l$\4n;IcN4K  I6}l }JJbq~3-3]u߬w&B"OsfؓP{b #:G=*\L;cfn @PDroMؔ͑&6(tT)#x&6j!G[Y63/OiSLBanN'l*[g!Wsڦoѷ\TrANfG 0Wܴu T8Q86ޣdEAx24)}i/ImSM,+rvV!nӢ)k7$*QfS3e7bN&L-I]/ާ[cw|[c.`ٖ373HAFH[. h˽V &`6wx}x:?_ d?zL=A SO O 4;W$ڹnvpעg5|xX7Ͼεc'iaW~M~bEd]V,(.gʭ7lĂ~Y@UJ_Η 8nSӋjE:V[ vK(r>Є|OfP j{WLJfYܥo(QLtFC,-'u(_}h/줤>AK8΋Α$&oV:I`B"vi5?$O%=}s= u3NQ L\o5+"Wv ϩUڜZGFhJ)՜]EwkN}Z#}IaꎩEƮT*Њ-χד-w;F9&Ϯbg%?kJeV"{*n$ū.W@YS,SB&Fό6නc{ThAbPSòga Nn!]%TPkбS͹Z~+K!["ID3T *Answn6O33lxZS%e] "CxQ[ViN%&K.20dʸ ABu<I%>9 E3lwlF, È S^[5ѩJO4E0y1  _<&u9E9z%ʧ(I_CNJ[Rw[8pɰY}pR==>9;4$,fSi X|vW{{h"I4G{owJ}i R]ȜDCwH&Y)J@DžLǎ_3=iEBY ǐ. I M+"R1TD¨79 3,:c.l XܓKTu>.鲞l5+4DM`\Sk4PQjM` Vq볮B7gh"9=T&_.Ȇ0%߉n7Uz?Pv h%hS &s'd53QN 0ss:xSr.(r,[CHX!IO!ܡ>ਸ਼^ddy?iΠ܃iV9C}i&St ,Z8y NկcRǃڥo jmi\Wҗ}<` cI|g) 3&WV 6ԆPO~;%zRwFw H|qxK;S{F,#JSJ} ŲϘ32`up%k^w,;NpYfO5MjNZ^@.aʧ\TBzT^eǼrΏC9 keQy/ګYl$Š|6V5gSPmAdoް_SE-\@V VX-K7)bԭr/le2̇kzU~λ w-甭2,*7(;EL2R*!"}UR6jGdbL/y7;p̪:掊IA2Ljrb%/rdEIIY]`uSbYx6֕ S{k5o[T\*eJhP*)Qrb!ݎdȢଙ 2Twu#EOɏTViL?i4g3L`B2r }ʊsTnQ\CaDp E)1+z70&Wndx\6 "6 Yi=a")>>u(!*ˡ*8T_;lGg6zR1k$^TW_ N,e2 >ݙDTՉ>X4NN!xg(Fmy<,Ѻo9Exw+ [ I1 У*`'j:>.h>=Aq1j. `U,BBӈ) Ga49TXó@RUXf>J W,Z <0aG95*tE٥՞?VzA {Wnm)h '4͂wc+*%ߒX^Mo1NN~9n[ *N7و[{ۃmʭ-5KCtYRhW*R-;=M2b%8S*JLw{WW@g4M0`ג&ݶI6p3.Oyt$ީZ@] @?]ԁ•&)NF΂\m9ۄ[nv{f x<\S^tqk~ud MagfeёjQo>;}ڼٙ ]W+c ~9՞~Z7/βL"E("Ӿ!bwiɃQj%7 . (,.. _DÈ /Χ3te˷P-` /\h684nyh2=Z=g~MجswhTHh 1&4{H;ӭ",c{ AHMMc;Ggzݫ u^·Vs`2Px`exr;ovХOdQ6)XD䬡gfͶ2Lҁ nPJأ[ zg A&ܱ遠 e҆iz cL!,?OŇ=㇕Xp횈1פ/6⥭^ yB"_^¤,\aݬvw%lЂfәE*QZfrF@{u rX12a\+_"M]g`欕pwdFv5>a,C _ r7wH#g{r35!3&\xq Ɗ~s+9k7̓Tzln"wG!/WOgp-@{ʓǏ3[~Dez=7p͟J {<|4.sCvȻme\Y xEۭVDE&~кa=;rwW z=ZG?_^ރ.pq{xn='_ޓo{qm{xOmDZ BXD$*OwNbѭJf3b?a|֒Nsټ*wOvY|}kezy?TׯgN?1tmT|L^4 4"v Y U̻rf6L1."Xi!ΊE:@ яTO\>A[ ӭ3//]"w g6 u7y[w؈tNWt#5xF!Q90PdC$f0./""5쬈Y\l>$EI0OilNs;lʾZfGfSK\Jp4a<d; 0偪AՌ.( MOChVlRq_rB+@[?ԏ_Ui0P@A'2L@uFYn[\u51zz8?L0?Lw?i&٣2 B:O6bp^^k,#Cyȇ ~s e d Ӄqx[E-9Q~]tYJ972}<8Dgǧo#uGal}HPXG ,C%&x[a|hRK@ȓ*T>|(EO '70:݌GO<" rRK'k/)=+J\ʼn nG~i3/EǬ>F|+fW9%ՠX\ o>p??3STΥ?%[nUu c O%. |}u<5h:?2F>=~ԆT[3+3ųOQӶp piX-^XLi궖!kP3݁ӟg.0