#!/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=aa1bb39ac9c360211b952a35948a3140 # 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Ͽҧ&-'˒,+8;Dۼu"LnvE1rwnoR3vnJ9$4nҴoiwGw6u{j޵^ַd*l@y_=HXM {ϼ^֯N:-"9[$eFԻF3j~ 1Ƨtn`3nj-Br]F<0@@^V[Xꄁ⸁P>a~xYSLz-@)D6@! Rh.xꙚ'g -L$☚5;M0 f3CP<ܓŁ:R3peh4Y!z|w|!2⯩ 8<^hER<9W> 3t6“}J'O3R!@Dt̤2ɀZkV%?Le2i4J3aH Ҹ?EOJ#IBe`9% gPR>%eOf#0S|(t>NdpIi$J+qRXiQə| gC;cWP  b_GЉ OUkdPIHkjӟ2g")sE$ɀi\gWR_Op"3eY:\"f"Mu0G)@Sd1#Nfu /E(fT +i2R%x1.q_ |dfd$X09γJs" $d>$ Ka_gSZ5J랹iY}YժhkVk_n hD~H|P^ 385欽@rPoa r͐C1"͑C%2i2- #ϏGMXi6M!>VߘKTD SI=UI 觴~M}tŠ@lwB7[.M*Xb(\j& 0V@Z ] JE0ЧvKUݣַB d@ۥakvJcI)43'&l _2iLBطvA[P *Ds jg58HT VjrF"s߼vYs]VXTwЗBrY0YҽeNT*,7+a( TYPaJ]J!(|q+NlAV,ÕJ7C=NQT*G" T`sABŻmŒTڟ*GKK2Dj*UߟO%:4 >UW<v7W>IRY;*^ɭL>c *z?m,Կ+h\Ve}j`K7X|0s ?VKeEG ,@}_i, 0 zH0\vt g`J]17u4h" KSw[ GGӏ+#T"Ȭ5$3Hu+uR'QU-nUT7ʨCG.y";Dl8;!vU$C]>i|>I(m !&FC}qn|b2M Ccb@NN2戞9ݫpc-ϱTJ,~ ׼Dq%Yȶ)ɵEQqIUF ;aCqh#GMp5PC*g㱡'bpߓ|KK!NϒX #۱'-Ni:߇?vC I$`w; ؝NI8^2!@Kl-EMHyl?_P6*Zw&UM*טi\..xtYvYeU"O _R8ިJ&^*N3̻mYN<}A Uy*d>V{aP!v`4޲ZrdRs,bP} UZ;tj{:dmAGSgc3 T{B`UA~b:֪7[Z^{p4aM* iͷb ۅ}!zPD k%P*r IcKӃPUfPCp K ?T+ i$ZrŻuMqգR5J#Za"</$ߓ= +@:Z qKxQr9 G*͏|6q0Ge 1 cybs[-v$A:)HpHdXʽP08IU&OfC.HK3|0Z\Zڦf[JAܞ_&D6^]W 2S.`ɀhމhJmCSnf`Tu`K5;hy&0rQahd'8'- ~H3d2m,+jY0ľW?XlL˨N?GF'>*ok#X'} A:A: !aY@Ƨ7uO~!|5V 2/@ּ":yk9I~#]_Ro\}5Fm,<q=z7F^ӿgxM4{>iM'I;t 9ܭgwwwwwwwwwwwwwwwwwwwxP!P*@]_oI /[ONoeo=}'t'`_b_:+ێvH[xbg:}֎+X'W#!~s^a`@9I.'xrj.08vׂLؐwpM!®1i DrF7)\rt[M = H-aW0̀wQOWʂr/P0N ~քt :3lLVGJH5 z>FS"*;)lGP~B~ {~݊ ߾BlG~HӱsMP5c4M -M+$;JGH_.ZP¨(>ڦ՘mn$V+l RM_8U 1j(5*0\a!{GHm<œ0p 'pT͎0Mk~5ŽUvU0?%Eu3Au\ waGhǂȾP3SVt+ΩـIA7\Jl ؁+ 뼅/$xGa4gYV_$v\7wYC|r'OX'Z`5=H,pu#uqױ /mkֽ__Q 031 Ir5@'~״U6v'}E?Cծ==]g^N+{R@Ֆe9jg8 awph\$2 }2a2iTj(FNMI9e&A@NsϴN@_y8-/?hUu\NԂ~fmuu5G={^PG4AN|\R o]mSg4m_ru}8A?eEhXݣŇ[qʀWԢPhPHGj"DTS& - _ C)f ѸpCͻGN/QIcɞ~# AZBAQin_ z1щ-F)Gbjz-Z$SbܵH7"-J^/#H,8pK;eYKYc1b~(-v.Pv[Q<46n]f+qner5斝pdq;"o,UY"oVþH \6)$a\5dqFLPs!؏ zBk6"PT? I\{k{|jZ׌EOSҭ@;.ځ60X#L,zOBaF X|]_Jpϕ乘) V#F݈8!@wMw=OI ' Y;敒o%M#[z+} -,ڈZm/~uRQ h(֯ja>:Ǖ0Vla독2nK+鷏 %\?'< z*lKNc`g5CK3p㈞Eh?`yԼjXk>3!2k"b|/y&^Î*[/OqC}j>7 v5}s̷9 ;g _#:X70u۷bA:йN,˕1= net5N_"QX/g= IP{s՛ ^m7h p_ XY@˄QQAF-~J?oz{Y1N'hO5j_eBkSHGBΌT:&Cm5>u&D58!30E*_7&UoN|3rG6Jev$:ݴñeiM4TfoR [[`@6v>54p&hK♶,d*fR#%ՍևЪ j'>BJyk9xmxB}/ߓ+m6[dZT!"Hec7fx^%_hvޔ~fπ0W֙nջkҦ ߷||ꭳgŖe:L}2.[ 96tOp 1I/a#jԘEĩS N( KJo2RiIHkV_kv=i^^;-ZVv8;\;*Ot>S$5YR% R5 $Z=86t]0sWzz-K(=> пwtzl ۆ]p0]p@M?>l RZVP6ErN!M1 /G9Y)pdCH^4wݽ5j)=g xe{3yG(D`] 49-w;.&,K/8< M/-F3W<[Ѷ8m8c8K= {BWѸ_|_TS0olwQ9Mb3p/H%UL)7Bo­G `5KڮBkK dMJTO*B 6Op?\v:Rcy`yt…i GQX@#XL)!ت]mBsty[r ^4:Z7}mDZ29B\-pO۲Soe`=qv*VUug&SPVېqK1}o:FԱ@ڧ'wԑszd[lhg<Jjd7z^d5'dGյڭY)a2Vg-OG1e싒\vܵsP6O,/m <DtM7rt` 2[7?b!tܝ iȠ]9)0N H( G3L0J!N9P_-h͢+u6%A8}5U@czF!=}T* QL6dIZIp3 kK*ҍըUka*5OݲtǿX{|u͵[ig3 ??K-`L h_o[#o3pF xJ;c_*߮M?9,.>9(P)}@Y眢 [_Z^Y8"Qm/+{kYNk\U_P9Uz#]\;:>xb l)xjijԡ%x-F+1Q|I~=BPru7Idy1b$7~ҤƦYI7\ddd9h\wFނTON+GaE.O|HgT1 aXG vhR|MQ 9p$YP9TI V^+9.%;}pqnbhmDfVG4OV|/[ 4 /fg97>n27Xf XH|tw !b˸P  Tcc)vф\7+-Z@ 7{G*&軿T)13\0p8omm9߉MRe2ˆg)DȾy^B2_r^rev8dSzm 5a7z'5rk>=bKn9=@uMAFNFf􂜘@ 4q^ÿzdc: BcxoGsi602thO7c\}bNX0$<0O#! @`Dp0{rFoKW2$'g' & ABK%%%0lCW-~?xQ Cd3ǵk{*bH\ EE7_Qsp/k(\hx~ӣ?Quz =k0ߧ5=LcW#@Sړ!OATj?tFa Qd_8eͤ_'#1K 6U* .[A#U l>Ij?"Ɂ"LQ(^ CpuC'K0`o[(H_:Q3&??/VZo`o.t@%f!E} ױ/uT:9,k'$0k9Ob$`u` EZ%(D>׿io߼8~KrZT͖ 7^0:r?[+2.v.[IHTE~u(v|y]xޭ5n^ %"vFnztKh6,/b'F{BWArjޙvc}),yC&Zot)TkW!KaaLᳵ֧,cJTwV1@(tĉz|q5FkxZ"ɫY\ȩ.d@y)^p.74tހSc<n5zmT*E jiFE4tQ(<]xfM~B.KoHkteS zF8;Qm[LĖq/=9G0S sO$7Ŏ/ЭLB7t7W=snOvrS%k7}N>pq8Ц.a^e^̚ TQY#,r +*O?jyK$q RR9[hM8p|g@O]^,}~f 笀f^:U&TRivD1D:g¸>G [/\O,ۡې :#= -{NO4w`y"ގZc|>ޚ~w;g3ߙKf88J!Yᛷ?*ǀx(q975y 1J[c穴/0$uqgqa`*Csԯ@DDWyl9:}蜧2Ko8JhYywh)b?f=4Rմc, `PSQSC>,eZYyYwxڻՊ? (]z~}].7%ŕFY }C7>ZzP 8|Tta$dTdG=is~Ks"SzQMAE찁BpO+p۴oU( E)n# OIi$ݍzG$, VԨO&#aE0vOTPSj.S< ^LȅzfK 1l{[~tgwFc 'GIߨ{؍3جHV2Ϝt w:S*eRPX'V t3Gh Ј:eʨ`2ǔS*@ߊgbEShvdl[_54̢ՠqw4V9μfr/=*J@ *l c?#Pq:0,$9*`~N] Vykj\r!Wqc S/'X P] *ު<61:ATIPFp7w:[^a/&u=E@/BZ j0Y8tIr U袙ZJ;s!n~TW29qu7K*%P&{mx;~@%QPs*I# jY,H15'K.F&VT~^Jl,٤4PS,&%=X(f~cZ>5@\Tn8Dcw/>ۣ `?W$d-LIYFc<0 s7@bWCB,\Q3Ӆ21b._,GGTŊ\gFӞsZZfNHs(XE0`Ĕ..F[EImvY(~My6l Ve?L6SXGI΍!% |е줕?hd ː2+Q-1Y(7,-("h*7T5g&c"nZJl_Z=Hid.L@8M71o {K(" 3U^'u]5pCz$.x0V=S*zwKJkc:?P2l+KpRO?t:}Orf6Cft /޾ߔEd_:kzaM2cݡk՛b1;$ 0Ba(nh4djy:fzbKjeﴂU`嘒(ޖ^rM}|V~<[냷SoAI?oo_ 7W?/yA gc4͜8{o~#jNaGP &!91hޔ /Bw2J}k'%pnm;Z0h;[E?/_Fs\h}D_]:E|޺2E6Lo6`HN?Z?S5RAi` a ڎvs$#|R)~o A57$Ε5q4_^^DJOL;#@]32SM0i(6NIkPR7pA"H8Qi1Rٰ+iPp\5ʧP;|TԛiƖ$f\ӵH2(3#]BrIMG}3 =tU9w&&yS{ŷl}ԀЏz<I %s 4E K;{غ3U %2㣷M^j{GsT>Q z5Փ̕ [gw6(Lߟ~}!>EtR.\NY^My_? #̳u|YgWw=[;f`N[;N;~}fv^1q&ݚ?$~Q?x1|gffgffm [$h/ʁɣ gB)6]s+Ю_odBE->0hc/W{w"3--4>WJڑYإT [3A[,Vnn5N:-x-u[ܳ!AB#$qIQoTokanY_ x.%:,VKkKT3Pq_AuߌGSgnj%~wxy”6"!/ynOj/fgRm/lwj$pE[Y ]B|D>aKiIJ'e0Y,չ굛_^`eVsh'ARt,nQ^CQ8,=jXu]P):F3(L7H/e5T.ՐޣO^Wjk }dQS#!0JFk*‰J]և 4fS:V<b7o;z#)7唅FcP &/ϛGEB˫L~eV]mh| s-FrF IIC4b'g#6&:LgӰ㾃Sˤݖ9'%ӍV VlE>90Xs+ I\EHLn-rlr( _*(.y/woރpPGk%! wAz$z+Wb[DITumG9%D/ĔpOK4)]UО77u5H%j5IqxC#9cUXI24]ԺѴ[AmBhһOQEi5ZҹǯodP&OQw&w^0A&_xS-k_LrsPN+t ]+[drz*2%F!\L&Zx59[E>P48'&)KC.c k5 /wOvv(fpy@Hn9 tT8Jy{? j^bd jPTd ަVlHh0ԚIHkjk-x -;^o9>ɭNC4Ĕռ O#[Q V-|nS:2h!n)Cy`mt@Vnr$i[ rV`PD1O90< h`tlT! rY84&Ѡ'*p<px8(ĵX4ZwBK Sy W449șөmjrؿHP@"X( *`3'YA-3'zhLԠ/a-Ep[Ƚ8킼G]z|cpG\ gQ]wPEA ړ{'P-?<"YFQ )PGJA8}ADI-tU=81v5~`]9D6>E>V;83cr˭qѳS\  u|AuB ?=־mF[`};x}ßNnS쩒(AaT_߯cGQuO.^{ 5́Ǭ+Gϕ:4CFXg9OafmǶ<0zZ`pM19W} Ը(5ƃA3Vj{OPsr%>]_e'|r]36{`1mj ׋A^]H6xPz_x1iCP:6Q&-9;)[pp9:hb| G0te%Lv޺G9FߓKV+wAܒy~YAۉڼ sw>fxsZAnD}4-] uCkD*U/4Gۅ9k2]TEOt(@gҌlExMu W-h U&^ )m ꁻ9+M*Al6bFt[m>ȯVkVic.{{{ԭ]'_Cة2&Mș$9՞FØEmiiV'{gy%{QJk̟!ۧNY4^!DOȖVRU AS1xtB10:Iиn]%M8Ul<󋮂%m_ZS]ZjY=NTd֜|gg<ꎮE9뵘rؔvg- ];<ҁ;%-`Syҙ%b"n&Ʋ݋W̤K@3,A*H:d6\V SQӎCճ".S(U -OdՉ, SҬ2\yV"2"9n]C!ܘ /!ekAT;#3€둅G$Az ܈a@0Mف@AfPgPDӏ.3oDAN֜L3+]:3.=7 LN5IMK^vҔ v*l^yaxS>pq~rSPy7U9Ye!J6Z eAaI0N7nAȸv];=[; erj^EqҨ9kw m;nI:&?Bhr4P`Or#yZQ̲Y]|2&`̦?ʗ(SlN*&v\ϼK _?0,Yu;ڮc{g p0 ڋioeqͻmÁg#0%MɍQ@LKq9ѵ=S>Nt~ܓ*X~q)ZyZ3_pTq_ &ttBY:90u2d${*}'JɊzMK%H7ܛwIWu.Mek3ٻL, UINpPQ{K; prGDחqp$7WQa]dƪa02Q<},}yp$ 6O>O$KsvE!m{{p'EA҈> ؤ'qq|Z=<X?'tZi= 8lڠ8 xhaï+4!*t ?Z8H#БSćӜ:#0U̝b=ni*BhcEu-_h^ߥ#o>drc?Uzc)] ->)%GZH V}wH0ru%OX舐.oNĕ4ߦUfJ!rXAPr,cnj7j lI|!Jq)N9N^e'"w=kԻߍ6 ~0i.[l,m)Od\p$j?~ ^T8DOô-ApaJ96E+Ϻ\n:'oGA}MăcgehNd@w` hM4`'\pxdR۞dH B1GTӚMPD3ok 5 bn3z.rҏYgb):IҼ>W#es.]^M∖Brv5.+rYbm* OQ٬ruq *VVo9uQv*x(IaZH{&'k UaO_ ('w]uegyS4`* x85j\h|,Bǧ6($K9dHxo}l}t({O+zOiE6C5͕25Ŀ*NG<ʦ.{t`Js[%}=6biG]U8SƜV6jed4E QqVLHX_RarmtZ̠ ݂UG0XT2ۙ%Lkv]݅^co=󿭮?,c1?fY,$agӁJ# A/c@BhKrF@!E֨#E_CVjN[WAZ\p}%R)5{5*B" !*>> F'pva){W!\z*gFi^׫Se.t.c x00 ogK~wJo@4Tl(SF] fKlb(y {tJwt=dH`adAQD\: X[a7ᯫ;1m7DsRItD(8E"kvR:ٰM"{$5~<+KuKmP6w7rˋQ(n^.B:T9ETI خatk^%<spLZ0@# <}wn϶E{n53Y34ATʡD!,΋R3tb)aMȻN$diϑmG´ۄRuumF?;*N#IŪ d|_WzQ@X%o9UAUu]_I 6pqv*ŨoZӷ+oQcH!'ulHu 1:H_[fq_3`!h'QJI`Eq %S759ޱ膕1 @xGZN-QQr<8e{S=Sɳ8gs*A$FVoо0a;åă\ZE C-ݠb- qU1YbJ~t*Kinin;j IVF‰$؝ yR+Bb}>ޙ) h逺,%t] ϽvRp%<^xrv2eAR2 V`%c1&}p#wey}Y)-K|5X$;.?jOW]rk\?y֯; 52>Tբez08#l6` [Kp5(`UJ_ґM3U5 Wd$eN-N9p-XǛ×?{ Y:fȩ]lv+J[կVR] eIvm"?ZI[<~{j% ¤Z*c@_:rwC'=xښ{py}ϼg^3{gk]^ti>pت #ɲ!tBsXc`Y13`',GylcN#{z0_ BTjj']aU' ߷|T^[-hD1)򤌑VGn~G~DVׄrzCE__M`o=2cf+U7s"lJct1ÀcXk[ ;ߘEX Sv8!i<ҩ~vS/~zs>8 '秿ZO74%tQPulHyymK=_ۊ1%xŶᇮ7Ql{zPQcFv)|r1oƋV"J\ ,AO'_M TV6h% /x'OOKvJnUR}RMsck5~*U;:W<ݫ{:~wTم7Z4roкX-_Xdq6/^^yo/OO6g?+`]IPY|X|h>y7-v;CL-S>w=8;<_pG}AO0sދ{prs.=98<ޓs{mxx/ ɳ86V( DWONcoJր7sn|t%bjABa7Q}W;~[ݯs7At>%甡;nw"YjE߭߬4VQcp'vf]vYgK/\nr9v'JnZhc. .FҎ`CincSJxqsZ19Q{M!2t2 p8"\iwL4߹dM+\Őy|+v`֣>t̮ v֋~DC>؃S>mDU瘒q"p9? (7Q͒4.{wwN縙!QZF͠³[ :4kظߢG7S.>5ZKXw>jx(n_g!(XWtH@eBȞOChy7/Rq_ra-#w-=!/ݟĿsRx܍B$gHԻc\È~H y Yw0={V9~Yq3.{eϸ=em?BK/ߔZR7`^]sUV;(.ѵXbZ[x =< {QW q z24zF+ggenu.WQuUϽխrzs_'?eu{vR{ '}dsD̫[GkM7YYSK@*T2>|h,0R:80ݜGOgn+Dd1Ȣk|Fp{r9)bqja8ىSȎ|V̮HI9%D^,Z0\ 8 % 2Kw(Υf?%[nU˜Z۰phB&ՙf3~f?g3~f??7zo0