#!/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=06958f9687b53a529595c9de60e374d4 # 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 )qZ=kwH~E_Lv  .89:BXc!cfVUL&UUmrݘS6:|F_5k7_6GloԏX[2~~y}7==kϚ].f؅WLvӆ^ozZ`Nl<7[Ө4,?lr.=ݤhܯ;+fG]ÚZ:Ѫ23V[xeCpev,gt1,67cbJ5Ӑ'5, 4jN cXYg6C41]/m͚^m #@0Xs߆ * ˹Z8i{0.xlgik& :0=Ӣш&rbF @ Aa@ bplb!@.3ZMi&k4Y0Fe \=; $1ahd0BмnhE,”5<rG갳)vq(_nG*@ko4ƣP,;-PWICIQXAWtdI2;rG+_#Dxu 럳Ki~ 3+>syCj!iAk8nkᠯH Jے/N 8Lz/FLyvӲUOIQٙ|κ#Q;PjP U  $j ?VVE1A'.[ `QCu(3e$#]Ҹ" mI9aݾBJ+iZDƊLړ{#i8FrWɾ-!5{(0ٌ~DĨ *z+A5Kk*\{H*|!ϕHe6YAH)1 DJs꼗ylHuB Ţ"{",LnԚJY` <ЈsdH 3sl `Zv&/; V 0Ov$Go1=eOؼ59*k-L5ӜTH,sJ0 4CФeJz l4$zS[nn\h77ljhٶ} ncca`Lnˣ_>hUY83_` ?4?iOP"'KT$s֞L&,_['a '+e+Je!]+ 1XhZh\ f@3 y=I xhD_]5gf@4u3΀i*g([G?)KbƵ^Z|j9W,~oM![2\^m{hf~]މ[_CUGD#7w<,LA&ڃaFX4!#bib!Pۭvp)Ww,jA[=kaOZ|$}$Rk$!{D.:zAtܓG7{!>WCz}҇݇uwZ3z>g&~gI╳zΥ@7:/hv~aM7=&Esϛ0 A V7/rPT,(gPpE[׆%6KaN&RLo}zp'g'BSMԺ_.vO;!ge?6; >X~/Xsb$ ϼܥh$Yh]jLlR]lT)pB܄-}v&4'tz2 a&;H9syE9jT頩{XI+ji<b$Pja 1/!eqoHlRJ43!G,Aŝ63-nXe101*:\H,='q,G@nIr9= 6ﱰ)CBBϥCU 6# a6k;cP֌c"po` Y(n<0[:m`l J!⫎p}ٝ3RXf-wJhrmy6֩" W\xhL3$Ŏ)XSV/tuJ)C̐(` ub|ɣ|einVɦW8Ykِ{dWLLlBB,-f3@R߷Vi 5ut&[6ϯWghbrUu|u /IB')4h)UpiCgJj:_s4ONcOã~q|W|`f&kAr}|ihN ~][BC&jX Rڃ0. f.aלo5=՜s8_Z=Z㗼"ô'گ!s*m";ԕ{*֩9eaOͥ*kVx\,dQ:q{Xgj6aU$WͿI> NIX̀nf^zg`XP,sU?n*,Zy;v[^m(J`5Pa+ɽ.uf^HK[@y?/{!r|^ک?<+X0 :wj䫸 8 ą}3bM*c*^Į oDP- /n]T"Gg" O/1V1]$JP_7X{8v<$pbfv^avKVC y +I<9@Q}i. xz-E[ s*000,HޱBɾ̵i"ЍxĶ.z8"g5aL?o0:*|A4:ҤT{]!#cx!'6Jpdep| bfu8,8)!N k"Fdob)B 3} s) Xs}K\dɮ!shK\L*n _C7DlN:J]lS LNEQSǑGH( S2R,U-s6x9m9 4:b@3 ՐlS- {|qy5P*ʽ:dǒW[ cXS8ŋ":|̾Te!rJj2,xǽyI|Y88j+5~:hJ.m0aatAPK"4|>#[miS\cp BLq|h-{V*L׬vyZM%gVjj@7˛s{D|?mUsK-bV&aY'9O(qo$'Zb.8ZU{,ٶJglC5?/[9>MsasxʏݹtWeVͬai1B NZ{WK1'l0"yF@>SiFǫLHk`|@.f$'U(pCb$ҟ* O@Ūo3(ZPg%a"y3H* T]/N!Gn#o4T8Y_VsW*;zyN $Yύx0 'gD4damT:&r&J$V:7Lȅ#JmLfbc 48S<)$('ַh_'>ȨNUtퟺ5Km%̓ M\A~:\r ??N?[;Z Y|\Yx-3N^tcG~$oSq# Nӽ`Ăn25Ή(c>NnЈniQnI][!ҩ>LSQjFiFMG [g͝=6$711 o~͎FujC?)'N^v?1a~En(|]jLj6懱tS#'1qݷ{m`djsgn'hjDIMyC'b0EúH.X7- 9966F {qeg13nr^(g>$RIKhFU`\dUlC`y,UC j=^z 62,Tw'DTxz Pg SqrޢG_ƺs/lhQP{y.!R, w5N$JlJ)Xm S6#;Ao"&p AKE}zD G? 7+!Nn,$Y[,߭l[COZ=THwc7Ei5OﻭS2OnCTF]i&sR,{$a,JE/QxC]m _VW6(|}Z[cc&ʹIoX|:+l²̭Y_Fb &ok^HW5 ɢ2۸5*۹d;y"뵩{wk_p/ GUo)On\U$gz"Ǔ[ߤۃ˔n&%["RAf+k6feNwcYbus\=(7zb-YmUZkVhImFbwM}K31&  77| ;Y^#1P/-hSaPb #j* O2}%F5%EZmK{➓\Qσ6Z*~UmrX*I|f^IrݽR(IzSK<$۫'Hn*`PeUmd:IuR}b12]Ћ{\6cj<6}iY!r lT#s ҼPGףEk(F7dG%ex0@}NS@:ƃ 1EuI">Lj(`aw2g=50<:tՊT)BU+ 05+HRА!{&C6LBvh{|5N-􀚱:[XIہ{W.]׶԰-IM r62 _%g1mknvN7> yV`xr{$PUfNqyl.:yYȭð4**bY'ylX>TV0ω҈;@]-cP;gs/(4d>ڶKa#Bպ6R &X{ܣK5<99nf9k ~\Q)vJpey*/Aђ6̋-uM.%;5>,3HYV672:ydJ!`GYGls/=1ݯ~Ft8̝뫚/#˛ְy|Pݬy5(RUR T{<4:91a-f$榽nޙ \ۍH i_ixW7ѶN rs6_(d\=}&hm@=Xi@Ⱥ73Os#d`Il۾ls^B[e>ZfŶqX2؈ZX G'c_ZSk92O&V`\GBs~; 3Mt6NKfP C?őM XݦopTOq)(2aC|ba P:C^^k(Zx5k _A fhmJW^ 7}ҰW-rPye>KC!ghմcSc[G[?B)c9ykr,Ys3R%%y]d~.8_LXzj^]Y72ES{QV8(}YFIr,ex͜_<)̕T|2mznWi5D}(93Rg=QIH -L%]-5/-߽+FF`r[W28u sd ,-Y,@];x'0 ntÏ5# fƋ;5W`ip3ELCvCszi{8fc 4$= O]RfJMv@x--@N ۝yQhӓ[J.ư*dZGыjN?\ fŁ`p #\tt8c ĠN-(5Jǘ1l$mkA ǓKQB8A:ؚ#8 ֋0/vpޓn^c⁹_@ph2Jo&tREPya8\lCg2"$6^"v <_=^#Н|枣}j>LJ%|< wϏ _ww;wu5hb=?[_s/$p>Y+{Ay՜*)FGZ8jb&ݸld  pJp it[$U ޼QjͳP\&turd;L-KhvC_wD0ybh^9AtLgtWMW\) ]#o)B'} gj8|ZQZ.tQ\MeM,68"9Co4hDnd}m!ln6vFÔ͓C8^{!->Rl&]1;ʢʵUUIZ&ZY%ck&kb,L;ߔXa< V=S',FjRImM@\K{vFaWUNm~ lmq]>%_%_%7uGnp&4jO ȸ1o-hQF5da76A|Q|ێk u̖nhEHAfܷ'#aHs%S._l ' -sHJ0_lPJg Rh]D^N]L䳋]{x]AsD$K9pe1;<4Lv1AZᦆϥyUȐtgHS_mÑ:q_\KZsuBz(%S[,!&;'U`'cgB}d}?,{x0dTd_h,p,$AmXmBޘۆ2n{CD&GHA,x7Dn(䒖 }!ZING0?3!1}|8Ҽ#8lVF8"qjee9BEu.R0Y#Ȯą7Ϧi2>N}b$}ULj>ͼ֟SMi=-;<ijgCl?pplQnVE)Yeruu.%G'AvxpEauDJNGi,^QX/Kzs[T-v/( (i?Vkx89@3ޱ_ ŋ. E+6Q p߫vq7Y7ҜDC~[#R!pfN|^>ZIR ƑJܬϕ:QK=W(J( =@ly8rߒWx : wìI~'}ŭT[vG[Mߢb啕c|>\(k?؀yi5 p$ŏ6]IqQ=ul\h,g ^[M? \jӠj-FvLY42Crsyy D!DwcEA4]׽Ic7Dlbcw*U_0*4푄r]33FkdڮV(IC7[m9EU{BCGIfhwvSA?Md]nϣbmLONXܫ//7!p38}iI# lGA`r`ҦCB2^~xvTۢSź^Nk'z#5"υO'aW7[S>b q͡o(x ۯX22hl)>$n*nJB)NBAdAާ29ϣ)°9_9kŕiñ$1e e5s4MRLeX }zxs|ʜ.0r3q49~zgTÑNvyB\t q7VDKC>묇:!5>M.̀tuA!H 2ZXmЙH=NP7H@kn ׂn?N.KT5K Zoɐ_P!hvK4tQt#eL< Tڨ[Ѭ;Q7*c2C1b -Y YI+ZFp0ʛ&oJȓAؠݞ*?_ 2!4OكQxFdINqU3=RF6dn(mu?6|S]m3/:eߋEFU8t!Zg>̄WWx˘ʧa[rNu)2Mt-, n7NKj fDRUJ)0*fCVr'Jp-\\o.K4ν.+ E懤 @gm0ߔz+Otť ԋ> 9?88fDR>v7Ht!N>H'ͷCxYvᙛ;23:V*/_G54|f\<=4xzxaqqblSoi[oi[Y_2.;lB݃?M-(g,,_5ޔiA102E%ZS}աs11=%LQڢ={Oh)np/][<π3Hnl݁85xj wS0%a8 MF_o|ey '=CĂ6-U;-5L񪡺kž~ Ý\+Y,;u .В:Hp+ ~GĆG<ɸƢV q/ܓAXcQ(ДDrσ5"M$^i1E ]fY86Ix-˴+<(_@V2CQAJa٘jۓ۲c6fwů9V9GfS eG$e^Xgeo5YE*-m2̯( %.a| hoIUmWv [ hzD;L^;R"1L˒D@kapDc!V]zp NM2QaLYO)wz=LY[b~,l!#kOO2vwⱔ}F#[qbjZVN͠uԯRQ( I杌Hy;M-'یdgѶPݩ"d<]Dn8W_~7|W,ܬEqijfё~yj#7WNVu=pmuJL\O!;hɔUJt;PԻ4,E׍uruI MMim (>)B/Ժm, 0 FNߪ<~P&b:Glf:h[0GRm [7ПMflwVw2+3]T9suKZ:zzۉ/&WVorb,xr LvӊŬm 9g-PM+^g(AJZQ]ӂ'BxU9$e]#'qc-6)t}6dB< d:wmČX[8 /8gEф ^ \:I5Ƅ&.z GC%o4KjgЎ#wof\s޺Z,"ۓ.,4";x;!n k;o9lzjic|gt D^p"}TL8h #\4 )Oe Y`ap[B#6n2-ip;g,V\$ ݓ= ?OퟧS Hi:9`,w&`4TF{al SP8ĔJ,^(k Mk5h%ڨݫWښ.p`ƻzW |Xd[vOfTKZi!)\qZe1JQ\:[AlAXfeI 0+A:Z5 ;3֤j27.Æm͡djj^h2Z}_Y IZe*Q@v(7Xټ .pE@6 `p ٪.8o ,4XH#[!ܐeo,.ʹ(FW2yzcy;SqeY(GLJC  x-@[F4r.|u-smPLߪ E bu%7ΝEȸH.9)G/?^62:FȨ{ 'š[y]W+LwAfҜmerouՏol_\ TNS[&'Bl4PF-.ߗlmkw+|ą`ynHb4FUHWV az˜bDq8l `hnI;H8Po=>efyt \NਬN]ś:(iN/uk-hjHokXe9WHb 6Uq"֢ ' |w,ldAZB{> k#F\G0 5[;C&urzC7|: b`ekWW, m 7) ջ*-9{_|{ 8P+̀WM @N;zfgZψRf;BT I ~o <| }TgkXSao7A #3GȯؑxB O,#`(  !61yC$hܾIyYpt Ӝu4M566eF Y唯7 6hګʔbmʚg4m)ddnL?Ak* Shj m Z ;b !=df[InaT3L ybWk\liڏkoi[oi[wl? ssfe2t G;R3m]+lڪn$IނJʆŸ;{5- P,,MzD-b,He񋝁\!G|&8*0rD/G< ^XNI.!C{DekzѰI#L? a>o2uQ2~AgpOHe*Ɲa&ARw 8Besnݎšy4y|{#$1]\=ER/ ءsQf+!?q6+2̔ \Rdn2ۨM|G:iXI*S MJUЫAmKN+NmF!xYHQNmžP (+ r]G)4=%&SX2~mQfjtR;{#ohTV*DN^Py36a{| _w[LR*X .vW[N't@`~覔LfV&-qgԬAP@Ǽ)2 ]Րa}$8e;c UlJ0l"`U4;l!^ y (@1]?OiIWñT)\۝cyߗxUDܒAŢ_HRfփy xX 55N&z.g&'SX'ԏl. =zpuD߲v"= )isO1); BOQׁ~*@)*Z-pYK/1mYd`xlUS~Tkًr]h9\FUMeCwS2LϘBhx8+G`.RQ]X!u\lwAZ緃n!a9MgpkvaN\<zq74V%Eit' +ޡŢ,f2/x /$2/+_ +F._$D~2:Ӓt;VA;}*X9VUzAFM{_{#L%fq6bxo9Z( }[iWsv%WhT)ᱻVސU{"oA@Ӹ'Z,#nMiaQW(wa^nN+ mow',ѐGQRچ0L`VWj";-%I*H Y i'#kZ'۳e\,r4rTJ7ΠR0Xn?E06H5Na4Jqv?ǽ]gs8%hu@c _\֬&ׯNBvʢ=}1z_2 . L"[p3DŲ8!p XHamMյrPuOizSnm `z-C#i&+So|bh >\!E:7@iM;Wpf4=Iq̩'sXx:K1+%DiczI{q8Qge0jOjoyzdN/`2f'W#/4;%=#8zլ^'-*[~Ed%4Evxn+ݬt4?'Hg("!*2WخFO #*8)3y,ZP RՈp.P}BA7+"R"` J$^IL0GcځeYL'e|\sҿ C1E#+kuP>Da *~F"ד!7qC(H?~6y|ai۠`T-^X!"=p3}p+&0> /W5P+!~LzfSެP? lS YZi>SqamcV񨒁ܴp=A6Y~ rgvjn" Ѡaj擄$'0p%cHaXY%zA䊷ԓ] R$"hoOcʫpKe. -!Nɭ »ݑy8 Ӎpsr8 !󝕱 \! V 04<_;yu;BaT+DHR LED!**E6:z 7JBt2fVDdh?$E+weu}%ٳ{|K_-~K-~_r+~:DUN0N}nq^nzn??%po <~WSa{^ s{Z-rgor ]*1Es"WE,iNahH`=|s)5J%`]sqr`pgwyG} &r$>x? ʀۨ;Y+^ZJen  [Cw*o^/޴vyeas%Je>>#[7<(*gVk,`ݰW;c^gRYŻr aWV/XhWZB+6p{~Oo۔y3D")Vlr5cPYYwN<99TM{|Q6B@]8`! [d OXyViwe~-%o]R_K)/Qo^ :qI@. 3S^^%*jGzԆ'֗Fy1|iA:[jwMvy{Fgfc_EEU!Yh" /vMѱ{H{a|=Qi({f+ dou84Nq E 7DrOD&#BV;^9ع++ bG ;F_N$_b#iC:Cn)J픩Zƛei%E| ɞEd4wh Bd^ d}F=R? ;r>}R@>6ƿ$ 0$%87H*^]V0ǑG0 Y&͋F]2Rxbri>ĺ6(.>"?r+k1z~B}HXG7a{uB%T aoS$yk7歖ҡL˱)|P*W/רK@^HLԬ"jiVk5O8ϧAMVS^+bswؿDg>By,[(SV,G1 *wL|%I@HCm|aK_qrً+u^E${~TNWXH8ihR"I{h*r(pi>}A< 3ٙ?/&=7#qXO>5Y(&}a9aR! }R|XtXk=Α'!6Ҩ/rsp s|aNѩT7qgkQX̜ńcq%s>P$av(VeH<їRg\n>G.%7ƙJi)=UbZ2%c u<Hj j0+$t quVˆRƲ!2>T,&P/64#k>QК)$8vHr$v89At9GU^ka <>9h/ueruH&2wmJJcyzsr Dkm踈B i(jWVu O:9y{i0/.*J>y)o;_Yq5crGKttmp%풉 Fc fM)640}y/ 6^?Ջ!7z5yyxy/yc`L]?2tyv.Y<~#daL\`)TUh/0'g!N2%>\*~y>7dZgABf7Y:>?ms*,oVǣhx9 ~p2/:Rnt^ ?,u,Hnn]2悟OpBu8V'u'Pm2Zaxؙ̲ei#f$ `+?j!g]&=Ks3!/gn&2G6s Q8 ~0¶s-F07n;}.3~ 0jba2mQ.\,{Oţ4n_NjVRщ=yDP7UYM._Gb'ҏif\6_͟{m^&eQ-5˻+o-h)p]61+xz7 - H).bb"ON/,lYy{s)EFXa'2"Ҵ|&}} ?o