#!/usr/bin/env bash # # Copyright (C) 2011-2019 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=edea99a469522b0b12dc3d924054755d # 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 ^\{s8Ͽ֧@Y/HcΎ}H͋,D9\M&!cԐcg3ٷ%ɏęb`h43he1hccю{d`h;=Sg8a:MLo7@N8W`8T;l8Mm jAN }eOЉ3j>$WSs >@͒ƚ 4`DP$*+'DtC> S²&44zNpF\ee1k?($C0 i6֩TQK8c$Zgy1nvR'|67*PT%z sgIs|A}@<a#hL Tλ!䒳 ?`<`(Z:ԁPAe(8L0JӬ`6ȞF) p@"9v(mB`,M 9鞳՟_XGL1a##]PcTq:LNIjθ@:~%h O<"R@_qʛ|a; ya2 Ka0 sZza.o~HW:Hl'EdteGL @췿SC# ^0nPm8; 8 wFmfowk?8\ɜYJY~9>D \#.)H*D{|/NB "w@C+T^T>TGL#q S`()y}7jZηæqpSN \mќ>bhM9kB+ƋCV3{&^L 쭍-K=" ˴DP:Wyoh\ElRyXO^d o)n19ZW^B 'Zέ{O6D/!lA ڄm+5-KZemA{ܠl׍jYewX#ǢG̑7l+ȣЇ> z^rzPܠ%MŰc Z  #>!D/(ڕ%Ycbf-с|5`';v&aF8ADč9zTS1h @l TJ7 D"=0ag=AOR.ė}^W%j:HV}7~$#[ dWS ",ܸڸY۴xZnlփuPUch vȺΪ1wr)mތE q,n*hŮj N_UBk Ϻ~< *8bs=c w?GnMW~J iyؾɢpXP\vh%o皚K>Y;5fz4Go+VY&c\FxkB-gA ^j{gFz &aȥ*ǢD2+zp b+fFÎIHi2[Z4EcKq2}ڐZǝI9 O.-|6bCk2mzMX=Vx,NどLs*%9B$~h+F^@Ihy4 -Bb]p KrQi%%?yݐrSH])[/`As. YNwRbvլt[&W5 0iHq\D&L%+{7ZθӲ2&,Nlu4̱cQSevqU"u!T_@DyT7%;xpm)i4x$Ym ~„Q,X,0)fYzr%7pcAk0as04?*+ *F! ‹C 5*W@2rmDm;m^Ēvg>\Rfg0%/2#+""RXVi@ꆟ OSgϬOIxHD2RyjX2uÄ=]~ |vkUuI|`LL i`GC(}"‚ݖjw \%JP|B-0w}AQHKQ(v=w_В@lpPLb6uݺM`7ⴠ~MH.vAǼ7t*þn4Dy(>:{M@CF *v.BO-}>cȲĉv*ߐ?H=ep[2U0) Azln"'TCdt{p`ɒ>mjȤYV*%- χ$'n'XPt݅ţ֕+pl&Yr %~k&}d %D"8܊Q>ƂhrLZB`'{EJlCǶzcvmv̀&0BRi̙5<=9^m}g TVZ6"-Iy<:z4o.gg7<2)+e٨P c&/e炶*\;:Dո8,Z>,T{IVXBE [RG=鬶0*V'ac=<l{ CƿDU.%=4肃:,jYUk9)'ھI{I)qyέOgccIP]#PrY΅jpxHwxiK; |5%ǫB^.iLDbSaP~o!h|PE\LoOs1AJoO:,^tr<ɲL]&4\e g; 4Gq&"Ś!J(|$oH ̤_)_}"IM{/sa:.b[z/.-mohWԳpbÆ/wDI=reR&~Jpj(:*ᱏ8F.X{ Je`cV.9+.dRȱK,AHH`&:Z}r,Y;ӖإbKJkZf+2xDt~g5Kx(qr\vRlfEr7'o|y)Ͽ?Oȟ˙ '!Eؿy<ɬ\<7sVws5{>]Wz9X_jmDf/BbD,_Q$T]-) kEךxG='u_va ȤcoU̟ßUUa ^BlU%ޗ7qd{J #I613x^\WFhYj $s[ybZNm;v-1nބćB5IMZ03׍p7Eek 05C|[tT˽ZB(RFpK\14)5'0Qsc 5 r5_YZF2, LtP(a^bWO5ў6X⹰_pd7̳xڄ UIewgrޡYek:wPpdCą^,k jMW95gJM']I#H,{O&l+fwQ@VA&T} ǒ1rg]=µ-\oڌ't l߈VPq4zK j&zq$_<Վ9G~ KP;5VU.<}gܷ"M^}?b_ vȐ {N4 6'oB4ړΊNF^bڳ5 cRRGm0dyoݧux}_oY?!%Ft`D"ƻjHN蛘x4JI!L.Gd q\؝ 7VDKCT>Gɸ:!56!.×M$>>R) 9تdThaQg&QZi}T `Fp-h<@UT~vD :U/ȳ!di̩8;^tEwbhjsxT8S siׯ,>2JO[+`80lgI /FMLZ$ I{>;Тnr%:<_)J/Dm}kH5ސFjsŽf b4dav,_nuj<@T3lB˼-z!r鰍 1WN d3.{$մ4BTU䜦(~( ~lJ{[ +_\i@HaKSd/ EgׯQ @gm07 Q /Fn? 9= 88D R>evH<"C:Ԕ|7_Ƨγ"xn#ZY G|>v˞s==Ui:F}w}An->i77sVon[VonmۚW}($`IzР@r &kMl|sհԴ;> 6#};bI{;*Nl0b]d>"|+_.M8"Gg!Bn2TVwVSu+(xrZJ2Z,*&KB\L]BbW*RYvN@YtQy/*j*㨶cy,[{+S*"7L8N:0mQcH -֐^&+-i)M [k w<;MRHHuGĒܓNTƵdZ4K  q:}||*8?1s?ל_YS0Db=tg| *"m XpV閘OΞ!k0 Zܙ8s{ 6fhR:dDd Dۨ <~n;HߍPCʌxZrFe\`7JY5mN I@v7c(iqT&%Nqݦ.ӄsG$&}(W  :1ƿ&a|ޝYJ>%< d(2y]ZhzpT"Hi*&,2(j,ɷ $Gkn˼V ^?ţvp&=-1 aɞQs`t ZS) H^^ m[Zv8Hmz镱G"Sv.K]Ъ*C?-3dG ؾs A@kaxB`=5ƳRm1|,1~,#kOOs?.xDj11ymCAѿ2_2ߐQYaɈ+-8Mv፶ϝZ[wր>-tYF{ҦCuwwAdP45HUeyjcgW̓NVu=[WZ}Nu/ZeZR*ݎ%z5i,yƺn:d7Ml4GqlgNORtFaeeBOE ݾQ&bZ[l3z}gq_~JT .uXhVq2+ST98~vKZ:zIgVorblrE̅5pY-Vc+r.Z:T̚UHdQf$eQū%]r@f)m(͆nehsshpmK¶^V4e7?V;t{(GmELz %(A}, &&1rh8'P@Y#?F0G9?j5Jlu#餎>j`1`00>ַ5Z;m%I*zX4 ȺBHf8t 2Opj O]kh `S%`MKbmM4@4vSleo-}36E޺p*(tW;q' xTxfц5BPu~n->Wn_Wn__˴j݈nEF~<0Zf[6wQ % G vvZ)qS{4;4Qxq U)/,JYIͣI9ԗlu>9j }7#+*U_ QN'ǜy]|uL?SVW63,;-Ƹ[Jk54QbTƔH_v/_ '.EFku7ɫQ Vx]mK󋽓fcsEVI(u2]e ɢ}"^drZ@-Y\ x:zʪuW"gg#s Q3 )%DDt}'ZN6ţ)߅FKs׏^4 KBR\źvU"Q WC[Ldj+J7ut.%i9Va47z^)]Ko BɌ3LUK?q7 2* 9^ 'uff*ާ7懷62eBȀ/ˍ V.$:S=CGz(yLY: {B]y wc$8֔mkMO|oF>ncU,J+8!eYM'3P3<{g@S °n~5>Ž$t^@*?嫃}4M[Z9y F(@ݼ?udCxMNȆ4"L &' N>"{n{o)Z٨ }>$o\zp6՜e:AiQZ['A9M(wU@51$y}1Ir<5[sFY^3x2KDNJ)$X2p1EMZ&קPƓLsɖ+JPխeE;`b43kpTS44XSKznM_.cY(G83Pcfb#147"wӎA ݣ8Ggi'/Q!T O fݯ$ZM,EϞŬ5ǁ,o4fd֪gQe" ' ) ᫐3$)o`D1{Uȡ‘[+>Z .BG<8o[$AfH^|ʳ[ǺPӚz tx6{{zRRNJ7۴Y y(X-!nK@jYkk`qgӷ=2s'gMׯ06zF)vEkOH)Χ^+Ԛ۹ijXekCS|R"WmE~ x7 "-V4 q9nG-!*Wخ!O9dMp ODTڐ *n]* JtE \ >;v`Y:DV>En/ݍIr\swp)bhTomVjc‡zB u'zwαMs&M>~7y|&,mP0*g/zU,J=p3}{4Ùӟ0ӷFob4':P1?qL*c) 3@:pzYZi>S?9;R1#Q,gq2VR:n6OO~< 8\ _4ԍ:OWwx6* en.Fkz\Zُ%o%'ǻL\$":hoOc.Wo3xA݉8zA8;wC"oga _aȀ  8 M,}\㯬 04zz:BQ $TB(San-JݟWP7J1㳣IlنZq&ojm+hduϜ뵚[ߨoo_dr+/u5uCS^_c,vЈ#%Fw+bNYl`+ZSyMQ5.T/-ɳ.IJVV++R{iQvK8~\d-2јʖ&F!f*䬝o݋Vfᐣ4hC ~ʵGj+(j$7<ͯQʾ2je7^ka0F-NYűGM;F⌆~xPa}z}RSFr% T#P U)ӃQ;~߅I lپH;.F wUt O\sESvKиC-MyKz54^\%ju@{eo;?,G ZER)T^6Nrseㅰ><Di҆L0+WϽj*hNyq9ی @o6K,ċ/Occ*rR;ԁ;ԃ; ɁH|L"A fp*lܕAoSQ]ز]=SY}8G*.5A͔Y(gk؁ׂùHt:l!o6+Grl䂯t]芶K|ĥD7$1-o$A-W/tUIhMu^aU18dcW04IY8P/=<Xe ʝQYIț97uR1Q \U-d+@k C n/p̹CtU~)HZ(`۰A}RwFfT @i,p96bT,>kixY9D1$HlR/i]oM0&TKN0aJ _桴bQ4lS扬 -;u~1џ;l- Ѡ6bF!Ԧs\(XADՍm&Va$BxΉX"?Bט&}*xxMuqdl NՊfJ #Ѱ#Gc!-ON^v>GI]dP'^X FBL̝f(`naP2TI% t0 AJT5il1d,!8XV&Gfk)mОuիZZEbć=zZUWtGn0tidG2cF.=Ք 8-(`υݷbicy\DBCxp@ +8Y"󣑄pL/ !y'}dN/fUNW5hG4M?> |An܏) n|p}dF Y Tĥ kʜTh@#܆xl>ʐ{~ڌ0U~"X )v(4@:0%C",W횚0NgnrxMC|FJ6/~0 F 4l0a~<O,#\R#Wڛw9gw@:r`B 1Н0ı~֝[金\G8S-F`)n@8~Ɉ hjijգZR0 $mhrC=6ĉ Q.] ‘zG{T'"׮K+~8)OlZNo%9* xY`]T%BkǓIbISve1zl> wȈ谥uӺk"iQ-$a<9iώOث^&lbdC^X=].:%=f|:^T0$ҩJg۸1t㔾x-_rq1STubmM8~GRmZcbGx4:˂uhxyk0)R`էǶj&aXwP3ຈ 3xB80.1(RxcRL @$2t3"I"PrI^@ޟk<ۮJrMEAzp=9=n>;!CsrLG/VoEݧF]6MZYvKX.1LΥԀP28 ^Wx _W>C cg1Zu]t'wiXJìpH [>Oc i0z2pdq4 )ND$|$S"vf}bnai[Uc̾v09$ n>:`0d0hK _S4C]!e ĬLp*KP̼!FxzQ$|/KZkV(t1.9j:a$^|Էwch `M6`fgRM5b\%b IPtɇeC(:@P'!5$S %zJJk%9jznB!Yz֦I|^Irݽ)I]K<$۫'Hj*(^z#INSWjYǨkrE1:Md۰>ʹ siY3F2QvԊ4LĢHVZ^$uK4`2["iR$=c:&A"}8ΒI)ݬ1b)a,Xpi(rD%/X`w@ IiMS)1B'Qo)R9s)9ӬGm86gD@7٨\zIޣ%Y;!x`G+PXhQ- *ġu&C6J 7mAJ B[Q1 #J8]m3DEe[2I08nOMJ‰(\%g1-nvNAp0mdFEaH "W:Y%(].Bu:[aYdLO^4G+Ce?;%"T`gxk!C콠,5Y<3_090$aa%r 0S@&UY!]։ZK)R{ыt~uM:eXj" > ㆲ4g3iA.:Xoyq\. ϸ2"]!LE=yj55c \U׉s܇uکLyIgƯ^68e/xo_ rc/)ӂ e_=}碫edOSr#A4\6S-"&e-r17yK J@6Zs}^5~ǃ`(۳y<:QG7uTxO.I7*ԗڛ~w>|M 0OzzgC3jcz:׌L?5I(N:q!v&;doSę|"m)`֤WSV7se.Aۣ^y«g]XXuIGp&c(i. C4s4?NFTEnq{rݨ"a&ϟIik|Lͳ6㋓M}}Yhe2C "cPnُF^1D5[<Ƅjf|AS@v?ZkwsSVgoF"2FػcN)W%+52]r R.K5| lGdǖ&ŌyGnqDF V@ ~g  "dJj/7 !y I_Y7xS8 $a4d Rκ{q`K1#WJ91ŏ2B~zV-?f, BKpKQ+aIӽrÎ]FItg `a*k .[5;{iT̶oxdۊI:/԰ޅo#J2rYw7\F-wn~9Ls;έs&3kv8ڳV $@Zhrlh4zX2b*זŵN"JjR֐Rh-X=K""Q^R UiM/d)RI^?_K"R`:ˆ\iYepex7MpXhFgW֠sob@R(Ԃ9 7f`=y䴁 k7 6PɋÝxP gX‹](wJ6^@ƒ4NBᡳw}81wJhSLjBյwkJ+lJl'/ mSj燽Q IQɥ)GۛJhaV D_6 d\?u(Æt9iunsPkAD^ :Mf-/^ (ac8we kSGKƫܑ ^ktqif4RRjSzr>)%A*ha "CNώwjIe}Z-bq:n;'cTLYqr7tnh5W ,(QrRNbi8Mv"&ֻ,Ό(0mĸ{Q/H[ ljgDV%A["m|J;hy}gmZQ_y77`?F|jt{lTۢ\{t GZ*>(iǏ F'拨uSEͽnE˝DoM>N8B)y 4(Ͻs/eQ-5˻H+o,h@ֈCt1] ~ {W M}B)EeL\(3H; 7@hxqp&9eyT8Rpq}m E5s~9s~9s~9痯/Á8E+wUAUït<Nq]KEgC&ο!l:.ۣ6'- ܚ0g d@ĻY"oRi}JS3/ZVLipDN7FeG'"GY^2tl=Dr{ם }تiO=aCb RmZ*6m8_bH[[X$5۫є EGbd?'O?'O?'?sV"0