#!/usr/bin/env bash # # Copyright (C) 2011-2020 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=916fd74d6c1331c47ec1c8bb6299ab5d # 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 I_Rnqѩ5/~UlQUW|Qk@qU^TkZHkK ov(SGŗ,\kvRLZUZzݥ=z]S8FԴ<ߵ&+$mGeYe-2u܅W!_,8.|@pLkjl ]J]XOMteb3b8i _3Ogd8&3"Z}⬱+ CBA+aydMqBks/v>6G#2E"\WV:|%uH量Jv Y%g>I8c+E36cEa[|S+)*HY'gJb[!4Bo!sZya:.q m<8+Ιd W @`H@, ꔒʔ)2%g\73W_ cS(!)ᤥi5"WQlcP,5FBj$NS6 ͶwGV3k֨?jfp=Aw4gay{:L&V3< |z,1ñ=?z9Kߞx~[l\ҹ|jtMfH2]@pppPfSK€&1tLHkrz3cX @ /p_Cwp{&0G,Y)"֤,m ֲΖxt[_t-nXr[ vX1p! IY)/TH6֮̒T:dmQ,9H7=Z#>)`N7Ӱ3*>gJNf J˶M4YJۄ0XD;w =̘_ŲXpi^@-qE hWT < u .S2#wVNDZjVc솳XOՇd[s ӕmb!A5j^&;YZbEr-V Am0bMu>@Lm̉Z[2A&m[6DF_[UhxNR@9&+.4.u FC xl22Wޭf,W88n\ v(Y=5A7IH;|o 3FD;D^$"kJ'qRu2DqZ)2 aYJ3#xO 0q`,5trM,ټm'+݄`u`.aA/t>OI1 m0D`AE||R7IUJ年4cP[ss q,㋳/}ӂ<?y8k9K^v$ozAAM8Vuc$7 uԣ@L 6X&n0oP]?R?jGV+uު7wkwowowowowowowowowowﰘ9R?,OY!,.Cy9}^.#ESIB{פr|j-mn酯HܪWk9ϓODy(U `zEtVLVy_Sc~I|'}dݵN˩wR_f`33}ԘIA AIxO6uN@P<7؟<:=:h~ HF4/E593U=;U=1Uq8 !FG#`ZMZny5Xv$GlֶǍ",͐|x?n?\xrm@JvџYf{d51yQz2nSv٫Єe` &ʛf^jېf&60Q9s=IcpᩰH uaB<ۂ?&p/-vyV*sRԨ~j3砸 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$gFR90n篸v?ngv?ޗqd_"am cN$o#5X[TWn*JSd-=eL$].GxlمA8{dQ tKE &pCͅt}56A# fm2HwD,S&:+ji .Q#& #cyHcA56iL:|* '2GR_YQT"Řt,i*Krnv"ʨP|Kӂ10 $ {']4GmcG7DS '73rghF`_ ? y佋 Rx~!7T}tUã:"V5 ;=oJ 5_k͠f̡]U7;hs /pO1L|MkZ|?5`aiTE[;^o~ RED':Yb Sk C'Ke w hvŜݞAݯ EE2%1sQ }1X2s [[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?=%LSPVU$ϟO6cO :]4䎼#:çG)G;oǟ/ܴEEoRkUVpz˷3B WT㰂>O]q5AxH]q4JAAI]gsPed[Ϝ_ XSّ<}_`yh:#HPùg~ bAlݐz{;4p<?.|9:{5©W~fgvj29$@@1:d{. fs抈B)^VI; <%vo/ށ#*v=W.Mpip7,KEk]rc +^5= c~*Z8 M.IᵳQ:oh5isA7ݷd>GC?55F0"nЂ` ^1FȿS@ c%ؒ[kFTȆϻ(4%\9&,ecVAO+:{UJϳڧ>N= jqs%dˁY ԝA}fWV6j_MYGh`f^Y% -!,k!ƈ鵕Qa$oӽg'v|*H=<'gG/뇁R-G-D%Bjhx6D D !‰ Xs[!;u6KK~~:<ˆ\wޡ**n[iBmogmz_⭯#]H%U98;eɩF#4zai'A].쥁t&`:ьAS ?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??|:5~fffffffffh)3lw/[is"\;$>/NyޓQ?n!\Lc>$xW/ɔ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ϸnM+td2W>ߜQU n~+q%^ZU][j$W)A1?t19 8 *(n#B|Qr[D`,}mx;rsY2ap4Up%ӨT.i[ jV98UTro6Ṇc4n<8#TFICPDuYHػ'.+.҇ސ܈U{oBt٫S2jΣSM满qZ`"zkGӛz4i`IjM-}FH/ 3WjSR'R[lO\2,q_>ƃ%$,S/l {!-(zEe! y_>v\q\&Px 8R4x, }ok*AF)•3ئ"zK0X4Va 'O >.x3EGX5 6wTusr`2E_bvfi\.%Env=4$#j1r_6:{ g%MZNmI=vls](B4M`ɮ e{#pvzXF,.iD*d=e} *L2SPFp.;UGЏws&9?mς vpC)&P\cʼnK:;eѦ6|b * x0i{g$i^9G}m8Gg2{|Bk> [Jl4\纒ĨSx~ޑ2 e'Y Ȍe >clHW$Hp^p?XO͑PHǥc1ϘxiqU?y|{ځ5"+IQv 53hr f B( *ZL~Vk]k W)J^d\ n>yrn|[Pq,–)eulR C).JuWwg|?vOzʣu/,kf?Y,g3h'`A:N[U=ҟڐq@E2\4Aijl5QI{khXsO!]GZ>ϳ~SB/e9:z!dOErr1*k*|p0 4{Zx6sawm6 y$*NBc;-El͸&FPQ>:yd^ku#JJoAioIt܋NvUPo+sP3"0UI0țpq*Ũo\+(b'6 БBʐlLgmvIXN/aRX?(3PSjU"{>n?Uc/Je4S/Ӝ.DՀO.l,Bdg❴%ZY78Oύ&V۞dӮ.=ʒ݌lZQ}>躖 }$(eqgz aIw{8G \zkQx\=g*A$FVo~?arvK\gH[-C!A]b- aUi6!9j/lL|ݘd6~vG|"_X.Vi ƗR+dEm>Z(pѤ-pe)L7^va&>xI0/2T5k2ThzN\Tբ B#)=l6 KjPa &2#X*f+j8,6\YM%Ȗ;8µhAnbGg{wv9ʊk9hqP2>m2+l`׊DTa+-?g3Kpaʍ-4;vh"![n 귓pΛ{:ޭцջsNQqj9r$~?o;g 6ѾW/G^=Twpjn⍻ m2w5gP]z@rI{U~p-zUMG@n 2 TV>ﻰA٦yw} UAQǐPBfqqppX*~\]o>e棋+\s Vdq*? &)P|Gǧc-uXЎZXpX9id<2I 8֒N:P3?12GBpL sEnν;ڝ#NqKew:5>8dih4y<xʩ ҁ`dM4|0CGKKaPzr3 uP*gIT@/.㦱{=>]]Z,,& fMYQc#>rP' [JWRU )!yKa$d ByCC2g+!)M8m l6 ٬:P~].~Z0+>U&TJz:eYf~pt2PxFXD^w5-"IJX䂎q?[y6v-s]˝g ?[/bW}g3{=8sO.{wo )%dˡ5)-4V׵d''-DnjRIQiU2Ǜ ^K"~v PJ4(C$E0T9Ǹ! Qou2aaYRW\ xWj/P|xh֚85N:SڔNZ?E RG:A;2nWHs"C^xg^S9 ʝۧAzEj'[Qd|_O_.HUk+ϩPm\eeS0xɬv9菂E%V&)kRnR%d!ͬ$ z|Qh! m$U7:7aFuQR<_0դ; mŜ/Ukn_MF*6nh }5~A"!aRFÛJ)t;V^`=M XpC 7Ym؉5B+LZ;祗j:G9kmU bUjO}@;kOjX7X\t ] 6٩`[ೇ^e V,9Xn q^0E:YQsk&瀟q%^D^[u8c3Lx ~Fғ8~= k{6{fzr.qVp.*$jϛ̀4@y@ iO ,#asVL>9=3 {Zzv"+iFw<~@Cm[v^Uf,_s3g:VuT8*Q>[Ub̠4w.ۮ~9%OC _6FSҙ0[o`FYO S-k_np{*.ze֗ ;Ԁ[gt/S$/rW󾳃k2j Ԕ##X>Ȑ\{2dzAp׏'&xz}sגMqo3ҿtwI-~FCI'пdQ!Oʺv旑 >-jTj/auR!(69*apedtQ"IB0F<(RqWlN`ê#A#UKQ|TUzV Ć\mylgJ']#l`DW\. W"F09a+wށ'Eƀi|97Wx6kT-X W㌅͈j)^Ÿf ckyF]R$bSVVsP-O~)~;ᙊ;' /8)MG*^%5׸Ҥ͈\_{s$}̉ L]Sf7*lei @{ hJ&z3ojt$_Y]a,O%>띍؟̇7 p5gV*{n *`"9ڥPd27{ W` L%>uK$,ΎH-.ϭDoY^WOD;x kv9]bW,o@o6WX`]_h;9ܴ-En9\PR߼j/h +kG7fn#3FDRvfsN'g0Zq@+OoK'!Qå1v3W6iE/[23 ɓ {鵳9@#.v8K NWܪ-=wfc슭rvƍQGE$™tĉw T,L$LGk1:$0og[#~XmO , rn3w ORa5sɜ>ES_s*8ݏ=NG&Z(a?I,rVf`D}cvM^a[;n4H%)M+gM".&n0\U$)ahZpLJˌBu0Td9.AFIޣ1=Qn@8#.yQ(B;`j9W ($(,QlhtbK SD:Wgtؘڇ:LqB ʻB@Gu-:^>ǝ() }NF-z^`^;ɀP"%zBk?o$OwfxF2v*_h,b"DW-rv1UMJz9Ձ33u_*aNX2Ž%bX*MnX)⩁Qr0a־۫6P^B֩hdL~qbL.+Xͭ~z}rvir>tx~e>Xxt@n8.buNꄐ&<`&?+ΠB7.H!d4`^@pJ"iؒcXnpGmr\s61#;.0ǗJ/60j,e}O>o]Yŗbԧ[ȥ6Y ȠGNnmp`2|ժkK}mlb3=`*!H,25,TܿVƻGoOYDWAb2Uoz^g-mRݲ!1Ӻ*1u|AG2#j#ѻ++5^ܟ:1]\(^]{?^Y,=E}ϢgQ߳YlR1ůn'Dz QPX5%/ðD~>&m~- QWV2 ý[JޞSjR7_-T-fq2 t*Ox$}RrZV ˯ӻs~z96nS=gRËڠ2.i,b iTZq{yovӽ1W;gj/xg/O϶ya˃RtF>{xPJw/]wy<ۇ 搠sK]ÙjN1$z>c[Ŋ_ zCW{Ka?o'b%8G˳_G;?źk>;zY?,!l3kK(,>CSrb& {~!~H*g 4n c[[1Н3@w  V#"~a?Ny!f gy*r8vG7@RbP%~q2.'S1kHDX8A=VL@I"bp Z]/n%ڰxO0fg0ˋ>l /JE4mJ\ӥ1Ԛ:یU odK7Lb+Y8|Tla$?"D%ݟaZE|XD|ng#~KAk }V]dJ/)ƙ%QIh_{6[! )e D5"Q`0Ghc`E<(ha<85aS u͞iCxBQ8-ԛ Սk$}2|3U3AqZz?[OmL{9 '%ʔQuFa?P"DC;rB qvG ΅]Pb" |8Fd\l4Aa nT3`LB%) K>*f/&KDW:H7Oa!qaA tdшY  ;֢M#8hYW"Ta !]2@\'6``ڹ88|LIFEQᶁjev2IhzJN$M<^-I-.EDDCGAfi%lߑ ߳cKH&)<$w&P.ڽkPs4%N 9{k#:֨אZ'<ܷ<®|g \ Z*&2홐aN,Y}x{kz6=M+&j$ŠxXWֈleS ?=B^h"'(f{rAڣt>WXÝq3 @#{6>SDۨ:x5{v-ڣ=2.gF ' `3 :0ЗK ZjeCWf >.$6@JȖF>Q=i`rP6F,%{ǩ_姖и-03 ],48,73՗dBt[UP8:ȑ 2t+gҨ1Y(7"~\lHOAς|CQ .H~'Z\Պ*p2;3? hS / CFΡj3a.RS'MV'5V= kp:_sAJ6x?Ay^psgӏ5ݥҳW/Ê}>HS<&txy߰$>~?Zh=y}ϼg^3;v;$LС "C ނC2YN΃%ë{OtGygiE.`Z2~6$8ZN=kGJH&,p ei8XHBFQk ~> 'QyIg+.hUJ *l2hTjh88? nw9k㡹h!|4b[?" dWi}d@3bl& ^QrVEBIUf(`fO0VW*ԥ:n䅗-JX&̢"Q fpȬ;II;p J{Br\K†,qD[U痰l`3ťqwr.T)aS:dak ]v8͵wX]}a@JoWH}+l$\4n[ɦV4H  I>} MZdr~1-]\&6fC椸c7dsOlQDB]w 7h E9sTDƓ'xY Β+n*U]G6oM~;9Z}CGՖ,KE5]KrQ썫//Oi)njSki[>q.a#9T!P/nN{dGWl[DajGɊh}i/Ziɯ[Ur1Jed1)w+eˏ<n7VjLMlKT_EjtM>FRwIw泽ӳ}|㭷)He.1]ꏥrY UQjчr7QNW=S\, !tph"Zj/IAH w|]kDQ0-jMHogϰ1hG/2?Ddr_QmÕ~?;{`]NdxU_o<ܢ.ܢmLEMc׷wv8agr:r{ q-otvW H'˪bhAAzS<0Bp QIK^>EO MYnTģ' l";B$=e\T⮔ijȝ{+8fD [9"u,(!rٚtG8%EHKd[s_seYp.@( rӭ%%<q1nÕCW%dҺZxq?VVy?Ə ٚ[̕϶OI-8cxWu]\h궖{ʞ3-g0