#!/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=3cc3d890b0c99cf19986f06b0e992159 # 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 x];S㸒kWhfQ0&$|\޽rG/q;[-;aR3-ZݭVI\|OOg >{}v[Oۻov}{`g'g>8q#~> Ϭ"&aFv7ߘ5MzYN90YcQ8|I_ǜSrO聍(OnXo8OI\uFxIGlw7/h&ޟ^3/|zcE4I\ѺWvIƦa{~&d{y`RoK 5(BshI%yO79c0DZ B[g¹Q!,cE c˄8|D'S Ҕ}LSJ O\7ב c4 <$Lk∆8Hǩ?`b{`jݷ[{ǐ魛Amlo13$ _ Ȁrd&ɂH s%DLYyF,1se3eٲDtYڪH3f@2)3 zL 5i3 zt3y%Rg-sGQ 90{ht1615|(蚳&7=Ɨ/EɷonG ۴a+JX8ݝ6~mxjgU>x !tuލ $7Z+`s'@PIƓe7`u%3cu/?;6hMv|~1]:ކXxeASwBX$%`x& $K7Iܫr(gc_z;93Qh]u>\h118Ϙ> \o3Ht wGtXZ\N3 o056\ xWdͣ\13 ?ѻ ~C3]`>ESKG69/>Me5fW>S/SE Dn+q$MȆ^}"3L$N;@lT?z1= qfb#->ek2D<{(z~)$x/1p:?'D$$(4uHpI W+.p q! jBG*Պ`G3 Ƽ ߿K8iY^F 8,၉PJ85rCpvbs }tav.WXwj-`Cjr/8TMJ3ֱQc~,|d@z7 $z0.d@Q03vfbGGL6;*d{)5BK wG@Nt(4HX F>*.@2%sT[;C'&S?Њ`)ForyF@'n'Ѻ@j{ 0%Ah&ijT">k esٖd$oRA4jT`&x.rpp7J)e=Ą$dbq0=Cz]|<r)(OɉD U&b\婠يwU YT݊1$R ÉXah)cY7TiCUS]r::7ӳ,F25pU{1ώmu6Ҧ6ƚ] he1sJ1Lt0 Dzj8bBgَ9 :kD'A9;%F azjߊc2RꫨXQ8\m*Ml҄] e<5@%vvS7k3Si3t~D^duC TAJ6F,ڀFT /sk3g JcCFSa+Lοkc'Bsf Iu4y&THB6$Yny\ _Dz݂*3SACuÃY򐵧\΀T29i[BZX?O!BEgw,NuDӬPj[\Q?oQz`b]$k9Klh횰^J'$|&^$ep& @~MTLE$hC%^Ku?-qch,@V? ǃf-㲬Tب"Ld@*/4@ WIp= jd]tNiA.QN<'qǹ7n`O^ 8<@:c_Q@{X)Ha֥\#=}FO$mH.!u-Fd fM?iN{"*R }/,嘟iOl`D&ìK#qx:XJAr%F&X[òΝ#,4@\0' TI.#"G5ȾFj-<0**gS\ ^1M"etxkKJ[g4Qc]@wb ).#>SSҌl8$/גvj%LHzS7Wx,*F!bh`1 &j.`uO|A8 |W$7ht:bS[ Qvl}u%NZZ\i`өn{`t[S9"`u&B]{k6%r{?f@0d̖nmaDm+;<*@ rw1b>ĝrփb&wh<^,Vo'豭.`pP dsM99!pmZCrTu:WAdL: H+S^ܺ46kiDJȝ泔;׉#. q-ɗ/;$Ve> qHX8,ZD!PNIFBXlɲ{-@j6]{rN~NW<fU/$?,A(Wwx0l]^]}>K'+.R*5u RMR}Xw6q]^ ^ Nˆv#];# YN޽A 8qUת W8Q§!i+Lk//Qs"tsّONԳx$g^0R-S:"sU9^̧9r."mXdCF鎸d>3^mOZ.j KcN'@0TYIQN Z!Nk&HX_^Y8,[CAIGҧ.kGD;6JZ%%Er0Ġٶ>;Ái*’G*c_]gNv7e'Y3_<Ю (Fy R SGI_Sz |! ְM)G-n:aȇ^͓nnE<̵[2ڒ@3|'UWdl |ʕ}ʪ=G[?wSzk mOuzL6G3i-jEBC —v#p,6"~ZZXB]%"j^fܪoX;l+-&cTP2_ V*lݳ)^ P0~I6E][zE(cszPoztu&.b#k$B49m hy]t+\0VVIeT(\Qv~u* ]{H0TNCD2l0壄L j):XvGkk~uJnUS0evgRԑD\lM@ofאQ)|nEv]/G`%k'nDcqУ{8{]5.ğ "ߣ?mn ʾ9ldr$3r8 /}SΝ͝i'ѝ$˺5mlF§nK8߯үh#H`2c0\;sܾBj@%$n ;V`SN:3.:n(d\=}&hm@9XeWo`~@p*d`Il۾lsYXYP>SBMO %x7212c_Z5Fzebթ9Oa,4Q[@-;) ËI .;=2\MwpۯwNަKPCo9B@Vxljx{T ÓTA]x@0Æ'^:O #[0)wvv꛾M <2[e <r9m )tzljlhUaS 9ykrIx9TKrR)|CM< G{$,=5lh+G,([[1`q%_9۽f^gUl8CM9Q p{ 1j;w$ 'CAǽ߽ EW0/vgz\8u -V0n&IXX^Z{ ijx(8^A; ^ZQc^L%a+fLx"ǐn]O7m#Lp,@ iS8Tehk].@I4ai{ɖl@"^d$.ҬKʪ~&)WyYNńQ-nc mH̥`%q8E)!'"xKqhƝygL؄\?Ŷkׂ{{jҿ&9-c_蟥oBV"Cmp\ 2c([s\f 7.F ̐oBylf:G,MVMנiL%R$xϴSB1Yofz*o%%5'ꫂY>X:@ LՅ/fhgа] WKBe B4eR8l3 !Qc[/힜m6TF^~N4zJ}8?`$= ME8֛"=G&mĸ}h=e0pAXC`F Tz3!Uul]+ړ)'qhnGA500c^|6O^r$5}c}AΌPR?o4­ó ]h,Yu=hb={vH!"d8 Γ UIJ3<*F0T9F%{ u'e¢^p6gЅ؎bȋd~$͟wpMF#c]rtz96>Qc*nՏxa6Ɇ^DlXjjmoncOlQD?96ѯ=s\xU|L? LMk{~Ͽϣ:}k;mv688>'ug >"Wܷߎws"P&7rDcɟbюKPu!iߕ OB7W)2AnTAty /ܵ.6~4Bs9Crѹ ~k4E:L77Յ9xEGoeptxHVuzū`n9GB˂~Ozӷ|kѷ6|C(qY++(@Ꮟ=T*_;8 0zS/X Zydkdk^hɓZM *Ø\.ۊLpκq*}0C:qb6-K z^HJ1)dIQ\r/DXf*p選d ]:kڳt Ctj8`,Ǡe92P3KoNcuۓR_H #Il=:}示Ix@!g`T+6}WO].ˋNiޞH߾)P;HϢgA{8rr|Ђj̰`@/90׋} Yq>nHYY%?/'\rO?'|QόٙNl]uޥ ^6IR>/Vio&W{[=յ,FjrDTAuYK_[)@RO+]#vҹ*Zj&ռlbhJ>ᨀ&2BZo)c҅ _GSc3X5As.cb\o|Yf@Ntvjl]M6=p%[$O_T&:ӯ'ǁ=.<1ʁ/2І&M\`XFf^X5oN*^! uAjbLT n#P&jXPv}鉊$]?*C:,bU- 3ceD`[a`o zgvF=-m5=;i ݖ32 GbIalzQD~ؼfc׋C7fK"r2lGqbb=% wI{p‘g‡h+Ni<,*3MtSΈ1]y@!3a G7֘H0* @nC8,F:yOYT:ttriłG4Bgkea[4&ħDT-+I؅K6Ï^> ž*7PǠL$d e昝\9foQF%da|QrLix~<6.+*h<4R?<.NeY0z"S +qHj'8TWlo ʡ}5s ^a&zOv՜v T7s`|p_UxpT Nv_`@uZF#LM*.f KRoULF A".ϔxP7DaP )bg [2+IҏxfbgWЩcMqڑgk67-V#yd.edgf|Y  GdMl_LsH2>Nb%}BJDxDq!l"1N7A^- p OBG6XrpT訌׋"x,YJsyDS,hsthʛUE" t lt)R\=靅ŋ) K+?ezt.Y֭jvXHC䒺}#9LxS]-QǛe ޳^e֫mƍ6>+%lp9!WpfN|`B`+C3{%y#vqpfs\)$O ]svJ&%[HUb؊xfhhZ{^ق+UG0 Q2{OҧVY\ܘ!dRk.hωC۱l]E4g l|O?O?O6݅N"`F@CYZo+w B/ y/ƞ;WGL7UacKQ{s"PK3 P)L 3m6 VjnVxPSB.4 [}m7BD@"~ Ȉ"*%-fd_ZTX? ǃq̲J] x%΂{f#N_B::nJnz 1Z85i֥o1fs8yiYygq^hW^QF(s['ŗlLjt)5`<"eMLPPؠٳ"OPfĵ25U 'KLI} &Ň)HτDx2HgU&yno Mg?8pzbn]`5$0(ϔ X9ƬW 9|(fM5ʣX!jT@X3geC7cd 'l[~_!Qx&q6pY&a9P1DRSzMHFוE!:H3ME@;?^4}Ar%g/KGYUv%sgomL.f|3ػKA2Vv pd/7}?df9A86|)`d-C!Cw9W 91I.Qpˌr߫2-R2%4V@YdauOMic{nЍk`g5qCtv5xe?؛"G7i$y\Z9$t^hRnPyfNt6f8vE-lQ0-æY / .|::Q)[l1 5v|[H0ߵ-ï}wR y%'mJ42?~30!*XKe}Fraioڟ~")D.GdHCK$tmpOl3%`lM$Qcix=h!aY*:0 fxl E'D'[: =z{ňODǀߒA>ڬ!$"Ned*`hpN?h껠Bs nv5X.!f fHٿ4d1Ŕ%c0(]ނ TRa2ul3M7]>6ʱdH{X0ǚPӚjw, U]M&I9dN+BYuhX;,DxxO*!lLr5Gx>%&>ga5>FE`7<32MCOB/ID~zi /q%=+8zdZS8cxN-9_5;/oomZV{~Ooo~)f[ţ0S'pkp5<||0V>{=f̆%xQ4+r|q*wvdx6T06 欢§9UWŃDiP ܃uN! sG vS =!LXcw^ԂZY DeA"![A~J՗//($;8-)Ro_&$RNiA@R_6,CIő$jQ4\UdmU[Byެ7wJ&VB _?7$amFbe$ٍ#:<8r4]z8 ZcE7y;tq<${m5&S,;4$;WRR#J1`*lV(Я Nل;vԏ6 !0+u'~o{7^ C9sFrKK|ו.WEK$"SP ב?(0>zZxt~\C.RQ3ZP! ϽkhFeq;Pt[  Z 29h^po;ng|/#3w7=bѵUi.GB/`[f/Þyڪʲp5(K 6YFq2 F@8b$\,ezpSEacK*-S*Ѐm?`7 TXO%bYBŤulA: d}&\ PB34v1)^Qcȍ'^#\*wMS3D}XK87֬ΕP/Eb,'ZzmuIP7M&V!0g2슁\4'ռ?? <<) |L&@&`4WVbh'I ҪmPa텶h˗kߡW $nw;;Z QJL_=g%w>z[0m0PMƢI<^dO!H_0!02x2pM/’W3F'O>12X2N6,q܂ddnƹɦ9Ś3FPTj  Y,0,.aUxk/GItka xЮO GMaM)c/֫" <T\hr9Fvowk\ǩSf2r$wvI.LEK[7k]]!R~jIc+ mo1K|{bEdcw47MH[P=<Q¿.VTr'pTSQy38GN*& wbţnT_`zmtтcΕ_rLEDk;f2s-LJCEgQٽRZ$uIޚK!u<co2Jt8!CJ0rU(a2Od _lZ䬻3FLрlʩtC]hSG-F k T@G;=QJBV{X=G '0T?9|ˍ-y?.V4&UHJ-(#tgJPOTEsVy4mڹ i__o59:9lٖRh 2YCL'Cd=tNa*00&}`]`E pxLC6v- Jsۆi 6g?p?~ڪ_Ms 7ͭ~s7~̖M+ó:\'$uA1Z.a:F>m2oIP(pv7Bnv5+Jxe[jC]=<ه[[gG{Tۆ{AQaQįe^۝dV$Xsj܊9%UvZӇ=͵rt%264FI4T['F Ws_][* ;W2Wy<: lBd;3ڋ 71~&RB.DDU3Pi eȶFV?T>|V,) ԴԉZ ;a\x,`TO=3~\Ci^-[Xn{zd22j3T賨LԲPs3ff#Z}b6t _;N_" S 'rrWH8$"9dz OrhG┓iI6#@Z;ڛc[&ZdE .;S6Xb7]1ݗ A< YPPLlg8tgZcEEsUc<,CYvI8ܒd$5U81&l&i+xYL=+j5:X(32nNĸ "B:V"͍8"2=)$ɔ6@7 1bJ9$YZe+kv $5oN5dVSnVVnh&6[(㬴v">="4e5KELHdҳ \$8y SQf+#w) 3qN KGHh>QF=M3b_hC.h69yjFTFv'dMwP7H0yBk BAs> Aɛs#j͇12ωHG 䘄JSCE"T o.]R4+%*P+TN>^g(*ۖ#+see!'CXIef.k\F.݁`"(DW7+l`FK^^ДZ(Ѽ@'MH,z -@x;\Và 5TL[ǐH5>R>P+֢8C 0 QtYh|;a>Q]8E>_$OS 4 rBHTrȸ)o@-%7knd)L`eKѵ&Nd݊ft ..qs3 ]胅HFx}7%/9@G32$e7B0*QABX!JO=B +!y@)2ǂ4ؑÆUV:GA/#ܑ̹<1{Q?"aKjz7Ԕ>?0=d!'b <+FOWaPf ..k|.A6zLD6z|܈y#wZsW_ӹGoJ̷7Fyv>F_7C$cȁcnKTE& x?kA08b/%ߗwx7{8n\e)Wc['}oXX޶b;xoJ70.nAlO7%\D vQ[W{{r \t u[\D0hXor:^-hܒS ~.G0XܹyՀze+ oz"@W`oP *c ¬9*Jsudkn<GGW)WQ8_FHXmKb{y@y[F,JPJ]kkKeNT pc)!(&}10$e+VFej5=9O%Zahh/Y|hEa?+v͵b;a[< H`A3֋hIGkPo=򢘊by& vhflS; 5Ң4K) 硍$Hqve1.Uέio8>& }[c ÜjȱLĚ:ڼ32]2IdT@=gaˮn;MNT)[ y9<:)$:4'٣~9K8?C3(6Naad χ_I KnaC-JBvA{8L"ݦ*DPl)Ȕ;jScLibqp4eJC0J?ɕ@$ ERnGAX>Kj#ccJfVr3h-te:paK >jo;c8xuRa`-!F?*#QpإRQᘬcӿn Hq {Q; 1_h7׵_vN|P\f Va6%g6+Ѕ'cCx Q1@xcԾڝOBU=A#Y*$N b .)ǿӞ .YIW;Q~ʂ S X'F6 H? e%qY9-cirN~Bþ(%|6%0f_ ݤxʆ Qe@NV&5%ʻDcRWIqMC$l/ zƵFyoac7i>"(af6i8M` Тo񈞠ӧ<2Ø)M""7n:,KP^tva&~񔶓 9p*'u'37r@/ WvmxV/Px!}̚CRWj8A wgk.ZWɏ>Ԟ,)hJ"}(j#t[~m bt 6%%ٍIP0^69x f(NF+Nm9+چm'cH1U#NFUƴQI($Wd+iXxB.!v$H$vm"7)UR xxvZh%3V&<ٯ_"/}WWVwuV's;s;f~&ia ^a3g,,Y9FS -\כe׾ݹ[LL aԺ@OzO( ON[To4DNd%>8pfoj#c904"uR+2CoIuEIψ+NJYɍ-W\^pSNdvhq#G; I'}-@KƧ'KΫ7TJ/5 θġ2F)dKO"g K "{nebAѮaڬD[ $yz#KިPOC+$ +`"Gm10y)cd 8|c%*ƥ)$ɷJ.ջZۍg2q!+%Re2ۭofW hL  Ũ.PblkQ $K\ɅWFOJv4z0n^`_2ѵ@L(ǣM 駯Tw 7$xT|v2 fo~$V˕ϛ$icEsۥkn,'+ܭ5fёˆS#*+HV/'kz%5•ڔkBN$߬ʮB 9.F]Tkz*c ֠94/74ÇPyLFR7DBR)ASuӧ/V9Em{>Q+\]s+VaEi ypx$ 6m;:\Zu5ESeٚ5lLkڬε0U(9kFibѬfu;Jjrm3HK^5ϮW%J25[s˺PwvyyٺXE0ic+&//@\fR3VYfEQN$ZۘJ mfɑYK&MCp2ǥ~?d/j O 0K}4 7ج4eG?a7 n̒q6ز,}f.egKUm93C44q3)KB%]Z*<3hÚ?njz?4Znkrӯ_+ʭr+ʭm~7K(ܩPu}Bco^ 8B94wL$0uޓ}|5e2(IERW1Q^ ƃUԺ{y0)|Ux2!H"+3.긛ߧe dC;dɒ (ѐ 2ɦODEΘ *!i/T0N{ '& gD(@|ְhh"{H2c E99*wFITrj(l2SW22 56sH]1'4ױI2+*0,>\nw|8nˬqE|-{5]xHc0p#=y=S&o`؎Lf"OJjPu%^vV~Q9*%6?:PJLeQ.(nxoՁ)y)H6M[>I̊OxnV痀ZƗF.o-U|"^9OoȀ#!qvj^D4Tu1  xLݎ J |' *!a20A@4b BA5)t50 RPg>)>s:5Vt8TxG]H;KBdH'fLw O\GVcEH4t_fg.Y ֨3uF)a+663Q% muE$J.!89~n3Ph/˓SZR-cpDLOI#7yCbfzUG*1NƷWI*Q9#$MD6ZE)db qLˮDobI`ŢdX0]_l օbK s]ۀYV(&%|ڴO(gcښ_[__r#!#U-UJ4BՑFAlc%NCuM>N|sG,ş07} Y&G*G`š@72l=VnZmPAI^X]K+r<؜Nq p }= ᫶faL¤"sll}"3J:ߝWīƮMwu~l`m'>R3-أP9G *|.ZJ+(;q) 6Cm&Nemr9V-amV2 Fo{(ex5[L<ى<Q“'iꇚu*Ѕ|vh"׫9[{|XM#=A^xsj֖v0 a1:Wjszx.S3Da".P"kCkqwpZn8r(x25W x_#5T\616|[Ņ0{һMpjVӐ/}/~/9(&l?FXueum%޻Ʊ#؜V犧m oh»`Թ*|yzr`8^"uQ|fi߈z?_'WkHydi;BSmȺ X7n7b*#<<} {O?:|X:<9<\3bq#X8<}$c~uG2nxH OŴ#Y6<} b]㽣VtR3->\(H72FQ'ABao7Q;9<;jp9ULqI7QsM]8ګvtԟtH`;_g7KKѸD(8X ~8;Bl48;-1#X5"YXRfޒ bS HۓSyKιM[FM̑\w k,o̶p,{܋w5 pAx1f=7G=s$ɰg`qjTՀze..ŸhA.C$XlsT+Y>ŋN1z;jf{i-@ (< n]໻*PQ(/+m<%p`p Qg8&2P| r0l;E_%ҤE˗Ýb/r/r/e81|70r؏Ѝ>)lN7$,ԶuFpHq1d;!9t89hb tnfs1/&'PBbn?'O?'O??x0