#!/usr/bin/env bash # # Copyright (C) 2011-2018 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=053845c1415fc0f8a40de148f3a70467 # 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 AqZ;sȒ+;p0q^ű_0Ȏn1ǽ{aF_wχFB''~98ߝ7/~zSsb?(Y$3SrAuK??Wfh~7)5ق2g)( 5Xk:e'ЊhL c( FA¦d{y`B7VQJ,1FR_-6G=1 ǁ?M2ӂAD`2XF#rlI #HH8GE"gch3@S a6XPFeBGA;tCk>:m=dݾKBtm$hr@2x>tڃj؟@:@g wH2L:c_1ʂ֡>}}%P.H=4`F$rzY9{m5X6EUY/q\. 4uZV朲V磃KpPבjCkPt2@H0Œb.4 mG d>@8`pmEX#JS0MySHx ĜH3h?Ua0%#BTR  E/sֻdg|c b]3${uO#N WE c&hEJT~ cy@"O"Tˡp> 0؟.F #, +A5\ΕPhQ2!9c̿IC4$3#[lW?3 ݯHdi0[|kPE1q̦;qڬA`k?q0{Sgݝ&yI@ZAu|5[h.K[ 3yz H'eDϒ3Iѓtx 'o&yz h'szYlQ(Cyr`<ٻ^Wy|Y KǗ" X_w? bƭnX R&3f%ag_\s~v*q2kx'vcD=S ɲ0!˺iNRtNuz=PHk;6;>b؃U~@,P|2A3JX4%`x! K$'SK?Ir$(o`_z?{sZ10c}NcD'=!p 1 BftaI{AO3 o156\0|[!d=Z1bg#7|tBrD[G-a>.09 rT4) 9Fe7wvf'͔&@I<#Vm=?`dYQb cV/A )791{vKu:kF:!*/̚cڙl#sahF)"Ce 5pq={0 &DHTA! wJ# A3[$zf]*eq"};؇Wځ "b4KIH0i.. r-GDWӿPʖ1!=; _e~ɔR{<֌R k#MtLFl c9rw4cY]ʧ\HHt\MZ4 c.4\ JMPRlʚMq X6x0?um o`な[/L1"i@w'U`2V=<*i.8uf X](Q WK=8m¢/`Zl#(r]@y:* (ݟ5tN1V#~HG =8\G[ 'E=]Y^i`y^g`t.3a:!Ů}ѵZ^Hy9ɽerYYLT2]vdGX.Qa,d <:O@Cyz\p}Iqglp\ǭ̀l95[:@ɇ flk .UsC3\SNx<$lDtC2 &.#Ҟ.Cܷt:_ jr碵DBe06W%-*>Ij`%!;7tCLAV/PEM̆ƅVmȲ.ͤ~κ UpL$071|Y./ڼGo>u)ZԚ^(gIXy>l,a;./=*U[O(%oN,H#3?Et.xRrh>Iyx}mwHrKa朢2\uӟ,׈(S V)_e/6h6Xb,%ZD\RW[/>wG`xf5ptъ:ӂVP8kʩkAiMd K% o)òU!^;4tĊ)t)];24%j^Wʮ( l[\O"[c7XZaXG854zެgoK\ikf***ȴF';.Uʑb' \jtzpld8A<'q ]5c3_堆>ml(j`8)}BvPc۪Y+w{_ƕ{J [ 2L' P):q=׮S,Uqi5N0́T&ImiY m◧A2?g'cQOɏ ҚZcܯYujlČߏ6-ԊZ;wR^3 ]AWj:Hov޼=:>;LlL~h@ŀllmjz{f LMͩ8^GzuCS*Pd†(E~Y.Fx@жj¿gr6"[R| 7}Ұ:9S<2K!ݐ34rZC鱩Mۣ۟q C}mNޚ^LwoTB>X1KOͫ+xFhb/ 22J֖hgat.3n9VWܜc^ S^V/Í3*mלϝy{}8=.~s6Z;DB דG@Irpͩ^woyJѢ+V- }W3d 8-Y,@];DxK&0 {nm F"^ a<Lwk.2 f88}q hHąHKa*;lu?FKrRN K xt=qb ̋Tز_ZB,^ Є`%^Ă'ȌQ@<[3F#`M֛A1LTSX"Lh?%))#DRJ'i ?s@ggO0=Ϫ{a~@P(!?/tv9&({UATzW]m 9xa{xQp؎Xdug Jir$Y2jG;' *<ᡑ%{M6RK.rR1{?q),COᖣ+΄$p wR R!xd_T1j \=˭حAK6d=I.W@k\Jf]sޜj]ùܚ(fhs[,a]^`>xԙ)T˽tVv}t^-nWm Q57ݚ6W>$8>;ޣ6ۇHM.q r5OBմk]$ 5濃p1 OX{{<`d>>W+{z@fWz?_+t?} }J2B[a9+h rHTʤmE(4T$4M|pyZaS<Mc|rQi| P'a((ZaH&;6L=˞NOw{j/]C4Q*<"㗑=׾t\t"z'q!`mN`#WX؊mq,dX]dH8"Fn'{vuF FNgHhqeN^J{s$9Z@({鬫a,3^ RR$iD f8YQe^໸u@%!"H$necYfNk];g[5$>uHmdȶ>i umi=`qa]oJ2rDͬ1A0rЎArs E4ncAiNkn8Ӥ}"Eנt y  T88aɮ#HW}v˪79 6B'nZr°C41/pGpUiͱ`xx@ " ˤ|/BOR[&Q.F"9$F/͖g,~?h:βμҠ,$SwFT$BiMYk sZE7;"ֱH+tS\hinm_22NȀx]Òۺ\3&rPI YPA/)^N+Ntb'^~9Js~b ^}Wټ CnngvC[]ģR_Px”Tŀ6 HlGÏ >!#E-JvI'r?8AF[6e}=OQ W b4? 3)+ o@3OW/vWc}` VUrt zшo `t%P8F'*j4nQKB{70[AXBIVaqU6,y&v>ӒH'b Gjy]^vS}wVcjQcmoh:ҿ!%:11QOlt-]lV ۥǦA,'I6RڥU؅$IߖѣF:;>egc5Cm4LbH;S,aexeXJa(T(X 8\aOtc{I`x Li%_=݂=^q2Kez-r S<>,X0#%]1~!BFpW0ƘTxdɦΓ׹?r'MᇈFh1%h\۹eFJ5B%FGDM`#c\46۳;,KPb„E(j)i%yZ8ࡊq M"&M3mT۩6i.MW ?ex'*_LCwⶏ^S4*u0G+o%@>+w͋͟{?8Qeޜ*xAYhM?5~$~uIwK9xEWwTeT`ݴ "օbz^6 9s>isvNߚIZ isEEE(R(u?0F?liH0b\0:#. 3iXmP8[Ŧ a _=U! 4ZYT%l_Hf;Slgyا4 a zAIZ&&|;[wRk:bpInIv*B;$t~-873 T6lRY)bfsNvnXj6a 9Ԙ1xt>v֤%*nE%4pOFSXGb~foϠ1(T. \w:%{{>'wg@{ֳ[-KC!BǴJ'V,5Jf{Nc dHl4Jᝃ󢲞'dL2O?'?)\п#(A p?6v:| 5-[L80밶ƒd./{Zub" K⬢N@v1*(Jq[ďvwR R@WOɲfBc0Ǎ 66Xb u1\` N| Fclm,c?\ʛaTe 3"%Crzb@|h(?ďA,ٞ<evWK-b,iA3[j2Bel:vQl?C !1S N})2f‚(N]&3^mmyYő 9 pEY] ~ (𳐿;BvcY0$*ۺp{?\U*mVSPM"2nj aؿۺ 7/jG1Nb`= +/1h= ohcBY{vrR!y0[||zbNnX TTNK8dRaNHzt^Lk=U݇Ck[i$B +Pfci4l q+E@eh\)y@3gʊvȖ0ʦaki!tyuÀ \uQ2wZKfg/"-iLN9y)37WO_y fߒ7rik ,P%L#OZJFOTӿ1Z  G GpKU9b+ m\k#u$2h#Jݻ΢@ |%I4ʥ nw`v7%'m嬢vslAD& .RQ]A.Y@y9HB [|OP͖2z8EXN@qw9Z-j<E{6ͪpxI sA\xFbF S@QI8f,-$ r]^sMYݥg"h "PZ6XէUտWt1X)A"珜A[}*X *(lB;[6XZ2'poAU^u+yr5OuyuīkOkb&YlY¾d!iWszxFҐkn1 iOD#ȃ\mv=gS&wSc q[A\fKh˾;) `<6j\B2] ւOPuEk.m=! VNӵ?ْKX N!2GAߋËIBC :yw < [6; (,״-aaq;8EƉ=h G8q a:k~hӧ_aN[a/"tzZS8c;xSߜb,] H9c2 ppYeՓOu_s92bECݨStup>qAV-uQ%i{&~֬yD-(ĕ;WFp1Ѡaj 擄$'0p%7نq9=4~h^Ph2? '\@`, '޽ږc ǰmt1/kfE d]3x^݉8zAx;wC"og{$0dwVf},tFTV+jpp+;Gk@zTB(b T̵T)Yx}lRBNĨR],X Q8c7U&8dUucx\_"Z/f7ͼ~37ͼ~ӽ~PAW} @.Ž7V^ctENLXUxERbha U,>"\cB𣂓ZԔ0'JU!Yht!Q܍@ ( G=a)z׹ppAU |>BiI >1 CEh ĺ:S<>";27 &,pEx4q9n*7"&!7Sh@Gʄ\$q[-2Z,*&5 5$%UnW.ye[*Y=u]NWWK糠 )sk >ZgJ!uK>IT݈8S6طnLw'a9! kɂxSN,KlXΛ'; J\XMspO٠bBICxLD$JM }>$'Nv?2s?_iSGb=tg|S$av͘:ك[6)>S-UTdc9ȈLG+0%c!h).<j j0$+ŶI4 quVJkC)`̐rR*(ۯSwD4E(h dDg&o$hGnwq1y݆]րvqGsPZȴ VH" 'ږ'+&;"dԐ=`^^*ɖaq \Pz(4vzV0B%th˾? &`BVSf18@W_doK3Odg%@f Yd%)*|[x@ެO/9:&[h 4!Zl]Qm102 @qb1NJ渎\X!tEHCoBYyDsm-nVs:g!văbTaHܵ3Vhmy,uvCÓwesɻ,Ȕ^CObS¶.4YkDkmʤyc6-[ bJRI{z v Nʐ-` Gs_oVTLCtH8OEyB+4k:v\}a+I~-HzooL@-F(%դ J_LYXȖh6&/|75QӬX@5ca&0'{{i3̈́r&p*ijc RQJiJaIXNJ4}$D#F )3d:-z5*ySXgh3ca98~md'pbxܨCOPAsJ>}h1!nxu":'(>&@scrRXӔHcM T-Fx .;7;R5)+w W {N?~tـ ms(^(x6 +*rq0wb8267cecŷ)m`@R={[7$<+M$6&bgf/ꫝmbo6<J|vD jZ7vydv,e3oCZB6v,FpL3඿d0bҽKqaY]Mu!Y"0dxɄ1u6Hh>QD=unҫ1Z(`{)!ZXmКPؠq}T ?!Fp-@xI dolq6#_vE!ґgAh.`H$ÜJ>\ϥͺ}S+>ϵz.HC'SǢ#'ǚ5 |Өߍ?U2+'P7jn(, ;դO)Hشa[JuL-_'3737d{C0² qtCJyxx.ޗpu}VM3l57b4Doq$ģ iվ[JjLn aؼ@OaSEO/i{_ϓ–+`)z Nm\{Jb +Vn`huZj&ޤkX5t"y+v=A񪡺٩~R qa鏁)D8N#*,i肒QHlhf)`,=.(=B܋%$VXau(ДDrU`Z"0!%c9۲X+T^р lp>BVRs|2&옍ٝ|Dr<m%2^%Xeoj\He=M4TQuS(q| hoIUmW| [ hI;L^;R3`aY$5Zcg~1bŰ$#|ϺJ$fcaK}LY{z)C[X2~gX9 }6_W 7$yT|t2"w:.66Gl 5Blɀ"x57MCܭ{A5̢#UM'P/*<{CZ ۸ W+Sz AKYJc+5n$Ku[W4$>) C &ERTgXY->~@_9*K-l@6/.3LWžxWOðhwIT@Oo[SY,E\2X~ZtbR!嬅ʺibҴbӋ,%ImA)^ \0O44uMȜI+7jhv8fʾ>+#ewjEon*娭T~Iyq.Pce;ɇ4FJO<"BZ&aS9slzKo+ ٸiU8K4S56SnI-'ŢwO83Xh">^

-]vi k"hǕXr9+2+2+Zq4\"()$Zт1!f,5V }|PGTvNއ;-`;:g%J\vkf DAD3` O ss id+Zvs΋wcYP)*iL,.pė!OUezvyv3rveiwPj7wWnkc~Ѳ[לdN.ʈ4s /Z4uO 4ߴՈ# 0V+S+ b)!8SS)A8$/{@; ~'xLabڮ9^!#8AԢ{&Pw*a&dD"e಻q.)>*ai}u_s`WmQ 1 e; yO Df09<+ 'F7'hiT M~]vFJ8iNvюDsyJkʲ6B.-^*,laI΄-!TwV#pQs"PU/#RA*/cYpF2,laŠۋ9C-c 1^tvLEޖ+a>[TJ%9`1" {ѴZ(ŠJtC] J6\s;?VÃãr (''5pXh) ER7tD[_?A[YFg* ,r, &|&Hٴ-j6#a!\c%a(nò+2ĐxD}x|15"/:V[&r4 \4 TOb8lyT:`M\; nl>`}|5ܮOOOO Hi:9`,w&A8TF{alS?P8ĔJ(/`ѷBYe44/h7ݢsy1+ac >`2GUY>S2xI+4$s.Y(,k F)?jXg4r-k.c]jI0_,qwƚt#7p lC* MF3c{a!A,DqI (Z@3V lIbx  D dc< .![KC;Khd$yAp[_ IX_G¥FJ&OoHATjBn4A8r 1-) ܉uVrJ'Zڠ8y_<6F'Jn;Kp\rnS = ~j2:FȨ{ 'š[yQW+Lw)Ocj#S*STP^1*4>ǀixY9$HlR'j\Loc0&TNNV?bJ _L8bQ4lSIaފkޣq۰- unO 8xմ@ؿϰ hEgnIŘ(nVuxI F(L2կ_X|+myW>-Ӧ֨4c"I1n^$H8t?DUiκ t&pACb,rWitLpNN\qPi]eJ6Se3tћ -'hM} ^D@TZA`]bI rAø[9mto$f0l*~H?<1|叴=h\G(ju+.c~O+p ͓~ZaD}E@~3xHMaRBVJ|n #]R;,w^c]at3!aq|vL,na~@ppP}W+KېK.[6Fe Bp.@4z`u:(\wX?c!u {Qg2ahwo6@V/E]KM1qSR =F`iW"*eU~mC.Q8B "XqX(]mJ.6AR3(PX=B춲1?Hʱ}%'?2#?2#>ƒ`|?FZ Py0*:Ay=,z=>Qo.W~Y&ڏ{Gn@U1Ryn"d˖>fEvP֧o¿JBzzzAʢܵ7{n|GD+kB==zWS++Pl}!3<QFIWVW0f):C~hl3_*;?°PhtLnJ,akk'WnE)`^O5_ݕ6k^[2A$g:WwU9U~/y{IVD>1g%j!N4|YtcOR#A᩿l[6<ɝE qK[j%e$6,u]VWFlSڊw͏u-guyٽ.bl%e>i9{"8F(___#ݸ~^6%9++;^_T&&:yW+wx.26Q+ 9)%c6iL kA2F0o?޳lQrbu:q {VLkۧ>͚@'z&Yy89%7 D_lDJu"cyӽ'z5/UZX dErZu]GK4s4"Y?=apfdWb0h7˞ҟEqcxͳ6㳓M}m|\{ie:Fj1 7G~ݼO$&=Q-cB}53]sI> \[Ul C_x|)/Vb|2o7fL3WΈW]`XkFOJ7ze~QkG^5G~}*=8uH pw$Nnuǒ1?%?kDQ@p4l F!Cv -nhHU3d"0P'.b2]s[iY >8쿝萀jKu*ZIv[BǽDxtD[`$ g0<[zŵCTmlPOOD3"u^7}Y-Hj)I쫇2_1fX#\ Ĕ 2heE.hI(hM UB؋b IPqRw݀(Ua G/ɋ @lHf$1ۈo' P&N:l콧* TB{ʲiI3'ș匡" ;x!KT읫gêDmWGdѓTHl*EFŭԚ|/݇_~=[Im׃o^O5hașng+`2J[Ka+5Kf+ޞ}w ѥ<}<YRL:F⍞7>7qeWQ'#N= PԔTV< 5,aMU2B iD7 [-K ܜpX-|S2Ҳްb8 \Vv(\lsF&Av#wXb`mܢxNg.6۠uyiH i%aAR @4 H,NYbτz(Ln-otQ)P\aI)g@MLD!:~{"xn}"+̲iKvgEwXq+xA6Wb1&ոcXxhOt̍:.ƘzzPϞA1#s;% :*#}%Vp矍.4 Ɩ*O#D| Yrz7AO%k!Wma(uPvyĨ.鏝zb֐6=l~\Bl9}a;`~*~pRVON?};|2m;M,h.q֢eGzF4ύT߭7I8*qag7丑&ض^U{(B20Y)%y#lyo~nT {E4-% i[.@XEm"o,qPr41`+Nǻ?y"n^͠r %qG4 tإQ@YL~wn b+ ~Zᦆ *$.ed9e Cu"6[ĵ߆PJI|s#:L;3G4c*ʠͬ!T#Pmk=3"^xR`ԧuNYxC P_@_oIo % 8(byy5AEP^rA!ш#8JMK%\׹(4Z"ԫlCX[WkDdp8P<1H0*"IA.]>!:W!0l#T jObNBj d8G$]71ms>]Ғ5g˸8Ֆ]і}Fa{0-:O$W8+/*'x5%?? +?&y|h|-G}sCP&2z7x7U`)HIKT#8w`) yJZ!-Vy~NIrE29څ;Sȝ f2=o"aIl8J&K,1b|$ *[roltI,(jsg8!:; `^;Ѣ6-6<T3^Ez0/Q H[ĔZPs#Agn9 k~.߽1 wfYؖ=Ũ;0u? 1fsFaG'd2G {Cm?h@Te'R+\Qf\&q^)|r~?R򖉠‰˜@1ҋ+<)6uB )E%|YjȓK; 7血oqpFXZLy/a-))yFb25W.O'op{BIt\D!w>0%X|LRYڐw$6f4d}O>'d}O>'d}O~ 0