#!/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=f9373ab0fd89bc9ab25e73972fe7c4e5 # 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 ]\{wȒ_S4pcqBJűݻGGD[Hr ,s?#!ݍ HU;&k෽E7w^6NsANck΃F@4'Qov(ăpV0XTZUh6㏟, & QL8ȋ;G|qZp/AH{Uv芙N8vGbWh& 'G M%"`XhmJhL~{[ l^fH&u&7uB0aN" !`t4q߇L(pS׏d6zB1c7II AŮhBS([R#0Azxq 4#p-\R$0%M vqb R0m;'GK/n7qc͚0IPnopثE@^}c ưK66Agꂘkfz 0OPGZShzȳ*uЩwtYm5$;51z#d#m𾦰 k`rd<~LCɾ94'C]zmNnNd:ֆO$b,=;uXw0bua7xOI5HG$H&$0#I\e~1nKygzf`PzŒr2ZxYq A+p(i(aѵy+˞L气z8|ɤc\6{'n6؛Υ}ͤY- X}mxJ[7PF0bvD9L0/ ɿV7V)_M'mTj<D +,ҺVK1+#_-]y;;/[_n>/'Qy?سgqsj,}g6 )T4Pxxo#7&"N#.Ļ DN" $YWi Jͭ﵎+is{o.@̧ -`[pYizj`\Ꟙn<"'cgG$Wj4m Q߇@r036-U+jvd"r@MZ34-YAq ~XNyUqVKȬmv  #cͷJ[]X۲*ˢB;ju&m,`:uxqƷC}\"}d+gtzxttB5d\HfL 9|ӦenR+@#yvIR-E[Vji8~唷K*elP5MfL[2_"D |l EOdkl).ijY"б[ڥ\|Li\ u9OWS|9noo\o'}_#zvk֎?=dOh_ KX#.B`֝BuxsQ4)8cU0Sw ԝxp:}]"<2 HZaqx#r* q_QԂ-r1$^zmOnTC-EͅiKl\ֵn2_55l6_Y-e ݉kGcbctO~`Mtk͞xz'i5kj5{$q^+օ?&)@⏱Z@w&r"0lijY*ߗ6ӅU@pxTzc T{a<'V$yaȺ.6P^Ӟ ~ \ȽHt_hg-{{⹎}`D3=ӎaMCy"vvh}Qeis$"-zz6i/6Q׉V=.X ;F'7/=X4քC #jÒ+U%% AQa%yQs0FYVVNDҟ5 0z~YxZŲN/,Ĩ>l*DgOx+G$Tܦs!(mgҕڎpyrwgذfesmE.eh% ռ -{ &-؉w l'00?SYᠭ"?G5z3Q%7JuCgb#Ұ2R^F¯ѭ"Z#V`|.ȴ}&/ EjD| q|P)Ah)EgrcTƅG32O"כu;ł`FOxQ*PoL H|8"TL%lY<\@ܘS8`L`E'yB2+Z8:r5[;^TkWW?D{?L>Sj)F`EQc NlOjAf/vR-ǔ=Ϣk:Sen sX"=M /nT A`^݌\Z*a]= ʋ"-pF\M{d$)* {!YЧQҤ$pe'K~P2閆 @خXV. Da\)rG,x h0hxhLI& 푣 b),l>y(I|:M 麺kj=,odP-+" S"#9"YWDp Uuy8y#_Cf!stJBDZJ"Rc5>FOK&MgtAgXA :Y\X\&e[Vc+QUOLa!>3yjIL) Y8XbpTZD͇aި1|E(jp4w0WE􂸙QQxj'C%OnTҫPZ.)R6Q,2@A1HIeCR.5<7M,SF/?H丟$[Ã%pR%Rǻ) R JF&+ُ1̡ukmItʕy~W7V3 |R8u{+Qk[6^3WALH"wC UրJ3ܪө6TLdi\TCKuվV_: s(%#ӤS.iXWd0hgMZ}*/5\A&MB[>ܦ0D]t>֋vBmÃݸaxcOm^ɬFAZ\&Kȵp^PO~46:R5jj_寲Gj<ĦĞ8_DD}{{"]3A֘ru&D5«_P׿ioȸ}hj鉻h a$_$e[Y_F iێs49JX[|5L$kzkE5"=^sQum*uo)86XW M2jGHʙԗi7!4 rWmaYpf+kc.,G nKvCթt}ɪ~YT :G;jW߅iĂzy3m6CǬ & 7j{iBݣG.S7ѻpKp'СoE#zԅ_d]t=';ޒh%Nm{%fJj$>3$=>-)L$Xi# $ FG0e2t|e̳MRM}6<ȶa}iW@>+2yg(B֒s,[AZR)r*;uKVLKkQHQN{N(m;`oV@w(FpV=pi(2>o^g;<}NN=Y?4MuKx;GN_"˙kq>zd6P(rIqeOT(k4>6ktUyA2{a|t (4U,LmD) ;|mBZ-0 M0*#Dx&4&\ =flfT:Wzum[QacJBF69Bp2I)VIHKt$$HQw9M)י>)yV ̄8ˌ0{Fb2og.t -PBaY[ӭ{؅Z!af8"SD3t zTV֋|9QBnDv3k(%ҋ{{ᆈkr5X ׁ[K3OB3FNdhW^cݮ\=F3dWN]|og[f[7@B5('W;2ٕ1a< 2Q+1L,*raZ0"E<$#E-sEs 3Ù )5;SQl+,"\^81MWS3kj{/)Ƥ*8O'ߴ67ȵ |$8I PAry7Hf'0tnGcX b} ЫӲkhIH*G! 3jъ(z74Ɔ,ɶ˶%#n@eqlHb[96!;:5d#d0Gt\UBgVT<6}mVD$~۹8n{8^9[k"{(]:i [ 1,jNnϣЪᚩ}93;R&lHh/kX+j퟽9ݯy/k-|Zx9C jK-JMߦ4lavgionȫr9!9tz$5h~S L x2i."}TN!ߐL(etՍ ?}#S4sWeŃИ%}k˵ ͜_ :ܜg_)οJ˂'-'rzYLJ0t - "OA@@Irpͫ,touKѢ1(NI/ =.]QayLX\ڝ1;zʷ5E!LÒ15'Vf$l6,$dr@"S,FD]i`e=MKznBeW4Nm<[tO$y(7{z>s9?s9WW0? ܿ_|LZkPGqdgGU?pCamh0٪kJ$ nXb|bU!DGa]ɣh`$n.7GQc#Ĵ?9JBpIzu)ak'Hxjo3pj;15iWKEiV5"3X]RVzapI$YtɊEzrF8_2/chU~iSR_/֏D=ǿZ⓯ bbsC^Mؘq(xU )VКcif,#4L ysnO'/R;S5sD'p*7ChOBy6u8XFk:° rhT^ncX芣c b8#bO yhY/냧ǮJ9LB~z>t= J=oKd='lߥS)C;wȒN;g655lGOJ=2PCPGg"s+I|_'[0 3`ghP{ 9;AJ\tGb`(Ms43^`jp VM p,2Vq x^;6$L!%\Ţڽ@ POJyٍ(=ptmqzo]65Wʼ=E",@ lLM(l(C/Qf?m{w}W?Q0L5Zl*v`!:f7ҏye+2&D A5a;90 yhޒ!'EEoP?0 OQaJledC86Uecf]*r6Ѱ?ܸOoäA5{^bo5xt|P6(EA}tÕ.8!mfc0N IarkIlnEЁUG"4(5)D@MИ}KO򐁟dbCIExf^XRP|v?5=28E_8GZQ äpb,6;KKu if iwuau)˫b([8 |[<ç˗bj%4@Ҏu ߮ oqe6#f X :vc(6kU,' gyYG8[@њ ēhHW'\ڻsbէX@v6*M¾<cxnu= 8F yΆ"HEBXBʽl0 E Tս'N ='j~:H75$~4ʭd(Խ;b<6=*Q1+KQ'[*+5;V?P9SM ih:1z|5nϖ\s b[(G5 crj'܄f80 ?&h]{gac($"(0? `^r#{PG aMCu\ p'IQ :^jb CFs nvBĚE|7_h!n^Y2H3"S)Rnm`0a^?y *TLe;+|Ni} )5g3V@r#^m1Vj1-d媨pܳ4Ic>,' XQMQCyiߵc:NϧLG'ϓ0a,RVVGB =ua;,B< #E{)DV=.L>z(wpniC ;}(.k/aGQ" ]2o YAGUzBa/4QT=vUm.5կ @d4K(Tڐ n1-i`ߖ vAAߚ Gr݅3Ps93T*HO?Xo V30$f cir>lâŶ$U2<=6-E2Tղg:Dm`$ŋM+Bal&U|4^ [g[^@fmfHw渔T$3-]{u~#ب8S 1?gPaf!ud.\NyzW/=jG+u|En9N y 'VU@ϰA߳=aC{&g%n{XWLT7||gg?2+jp ̔ [o !=ċrho0#*hzS4^=qkضHN{P l 3ZV6+ "\s߾"J^pUvxZZb]ehQTIHv΁X0*'ET3,j43:(]?~(9(!dK8@ vrԗ;1@ ZϜ6-Mڄ[E #m܋[׫yo67,%~uv^@=BuǷiZ^t>nn@ ifLJ';Ee>rH/$0`"%vr UݻBfCז}g'G;'?,B`V`3E7ED|9K&<7<"W~zRr4?ϟ?Z=#9#!܋67mڣ0'pW)-n" xY7.C[4 )7 miI /ְ+{ďS~wz+SsEuMjFhuy x16]ǖY-[=B/V̓_旄㥌v-(EbK&g0aV7d&/ :Pa,L`(R*Үz-4 ra;ٌz 偯ŨmÕJ:;J\?<8:>: /ڐ *88E;>ås SqƊҴHep$A P6  _5D@M@uy W#^ľ 3"k.>9O_9A^QwSQ`-HR-if4wzK_q*<\kt?sͽbG)˭(l'ԁ'ԃ' )m@$s>&` :Ё`*` Ûx5I}\rpBYk0iռE[@^`D^j21}lrȞ$||l]MyN\k<Z %G3R x2Ɔ¹d5HnAJ Rl{uz -kOa>VKkXWi 1v Pl`;m67tza /]8-ܖSh0K )~Eguu z/ hN,)J`;) h $sLIsP[9#au{r UP&#VWg"o <%|}޲T잀.y{MkcQ+:v#e!oRQJT ^"&U]zDH1 I>j\ŤԂ$8p4u ˜UM6  +ߤ_wБ J)KʂL)euFƃ`d VN 4bX ;H" `j =$Po[xm=n'!TiaO0{~|:|nn5>s߹wn;s?qTX/;_;ǀl'~urzF[kҀ>sMBZv"RIeMHɌBΧFPiMUx+UKuIkjmslYݐ.eU&5󾺚%܁?Sh?;eD%yq\*;#,(Nv IMbM8Jd_] gsVL]1II<^N\^5̫+K~- vRn)ӂ w 8?l8 4\6_6<ɽMA~> xsb5ڝcQ@l7VЭ7Ngxe=ǣw:j w4m~ "OM|U/_zÍ eYzdwo馅cmェfu~g2*cz:s}@柚E(Nq!3,BMFXeSr;:G磰h̙?c'x9#Znu5:w w}|"%k-p%v8mU훸&s Z_Q6Yu˽dy ]4^8da tC $Ä*~*z:͠`39a7Wbq`h~d$ڼ>lv7fǍ탾 _IjV ? ?R+;@MV?_ݜg߹w߹w]33.I{5LGr]ig_贛4? {ޠ[1) c4 1V2*T(IE&)h&YvO8bejLR') @3Gk߹x]a(Dw.fW XKͨ/(aL3{Zf9-zVnGY$MW*(:$ ZySd`:Iq[`06.ѩ PmHmD8[zc<[6bFs6CvЧđu38 Mg:`V;MӀ8E?洝8άy85M&cSa|_TMpٟr2/ʑ'sv$mPI mFr oo΍ˑt>~64%/+ @p_'vBk0Ug?%ң ޟQU.Oi!<َU2Dkiy+cFx1Ud{bgyo9$:Z|%N-~թ|6o1"[1ص}68Rj$~];=1~zlms&NpP-O,R Wkb,Jw|Bj;2Vr2n&i"[=Et*GOD%h=Օˢ"|luo mc]Q'v Ԅf4CQ[8H [}FtLPDBJ6+ c+xi m ُ[qgdvxμ z/VG'g r;8զPc׺d ٙZdb)6qt,;r/oYV!B2C*&eOD]8y=$/W>Q3~)IlS |rVFϔ>yhЁil4KDOD|C K=Om'м37Zb;bg.7*&^w[OQxwV>%(ا6M[b{c5, 'QECah9ݰ.n+qfi=`['O/J 6]1ޯq7zԮaپGxFq;56!3$? qRT|Ng ?he$ }:q HDK&#ÛJ1c<ST;ǣ*'(ƣ62,Ձ0i(΢,=5]'t۪pnI7nK 2Gt U[D9;xYWVN{ g.rI*/hJ r0 $C*!71m@ERo`J Xi z% <'U~!f/ȝKh!YQI'|Wl߸d"Ovvsz~Ѝ`1]Dv9"FK#m6;"l#%-^6s \Qߺ%/Q 4Ց Rސ*H%P,$E"(di--Ss-|g]O^ڽfId iim/ӊ&6窸Gy0٥AK rI$#!^.lDŽ u˸TK{Ys8Yx>!fAZIݶ{n֑)9g>܉*?QؤʱF=v\^!dV=zD*ܻ## E1"yhjH7%Q%A` L?Gٙ=<V23^_?v~< Hh5 d$mwu6_6+$nuy#\KzIGaUzWzi q}8`Ь FŽGTCLᙳx1’"^n;s.S=g4F'jn81.YNI&WɐQ4.ĖM2hg3(!j|D:~"B4*w qxxn҅m!KV(Wm@ed5"q5F~+Zۤ2}F!Q,YJ}y UQ,E#Dt6I* Cᅴ@naZ+bn~$=WWOzpIO/zw@gjv+}A>@g-3;1pzJ}پ0i$$%+TFkś,[C' [ȮZy.^m'hsR)dC":ȓo^ljv̈\eZI( }Wt3eYa/VvuZH9M2J^%UhgzRҪU[!GF^i/BdpyWsͰN\ق/UGA &4O dV1#:R,/;k&Jv]ſs?#~GLmV7?_3?sg3?⿓BdC?Ʊ t]z ,AجЫonpW f?(i Utݖ,X)!>uRh 7ډJ]~s Y\M#v޿ہ6nZC@W3Ǡ.Bvh ,H>2 <iѯS E{5駵J:9)h);N9r;8U툖Il+U1* ڽfL?a?hJ,sJe %<$ i"QpϣubGI[^3,ڰF$~rueV(7}v{;1@aK)/+:,N} *9}ueK͋˒,0fr1tz+سf*l_f+ZV*ư=TL:XamBGIAqmzqiۋ g.ˋW97Ǩ*_a5a璽؈xHp%1|yqNz3v2s:!ՁJf͒'3cVL%"+^{L-WφEViP5Bvtc)HB. RP4ҟ"qq̡n^pN 2,EjUs6lOW-U6z -8LoS}Q)P$]:*,#񟉍޳Z_]_}kn5_skn>KQڽf}*ޫp@vWzиtAO_<{`),! PI&7 ;ӛzzEA+6hܢ_t%ڎ;tܜ*?qlH.П2O!_RE꺐>2!9|Vq1z-(E)t֞dPt4'!UK15 XZbf$W1q:n4 .bw 7fp#8وIUT6Z<|-`LUc2as9ʪ63nT(3-n3r"kv7"#H*)[w :3C`ovNytM8G`]0&RMxw`tS~10L?cHFTxO7mkcsi]oK6&0d13%gY&^9xhFσG057$ *ۃsģZ+㑨y/ KTڽhGH_~+pէ˜_VKz$splDK/M h{\Gg][N39O?X(R-Nh5i(Iշzl;LuxE0JD6L~#"ߓ"JCY̔&e"LO6R~d P~n&oIq*[)fI!$J~}>),"N"!zM\Fؖh%SIWBBx5 벙9F՚ (6NscݓjT؝rI7!p:MIȺA-JGRGPô۔T-;uRxwMҤd |ݬ=,H$T{=x~,21* T%y.V=p*@m)XT~}a'u Ƒm2p ӛ6"Y Ce Nk(…'dH|3.TkU8PWYuCˮR՛iiՀ lK,P o)}wfvG|բ*D_א@u2. dݑqUO}ӳ0۸elA[~#Y*'`h6vGٮ$||G#ɑr{=j+s[Ӟ 4MjH;wS&,gg#0;?8í 50F!t(0."Ȕ0U t=B]Ԡ`4F/3F+.;1T|l[T*IŊbC(Q*tˊգT{3ES.CeY:HjœMk)o'+՝̈;i> {`yʮPFpF.Z`Mj{>wЬ͡Z t< 9_Շ$?Xn-fAsZOZTB7 V` kKp5h`QZ>0-#Z f&WppAf5[N(9ߩ .0rS8:>?[[;,1T'px.gAg.mYDSOD"[IV{2AjVԎMIKy*ʘBY@ao4I"c@[2r~G?%8GWV7<|ڭ^KTĊڛY ]^m5I^o~Z"n]e׿Z /wW&2xwpY/Vf;IM)J#r1nwœ{&7rhI7Ý/B,nSlH5,Rl7o2oJDaB&PT~s*ZnD `VQCw.gt9L/4޸/ G^ڃ>-/V>+] wUWiTYWq}m·wY]g3?sg:HGQao_*I= 垰ر%Gs`^ԐUсz.CPUm39/+AD@ H f{⟝?J]YhAE鴫-o% wTV9"ٳy=<2KGFDM]. Q5bY3eU B&sBdu;}U^xɟD0~3TTQE0J,AZ [C5K]v^j#oʐː`@)ԬUܪ[‚Hj^v(]7T%.w[j `87z:үn񍬽{w.im c0 mM$:Al qrb/5݋z b-#&Y@m@xd4^6BD,Eac@jcFSr阐ȯYTv`F V#g~pNJXZyDKK1k5y>կ݁5!V]s Ex&gS9N033צ.ד299=a8ٴt4*vetpPzUP -Xޞ\VӰKqΫy ʃWg6 AKF7I'|w6MGybr2J8l|:Uq1 p4'Dx|?Hٌۢ\6 ^pX1# > mdiO2x\$HƪxeGkIRT ?Gy#eKQ10t{K; ۣ6\C ie:vVj}K)WyMŽJCMrYY'ms מ4+f6U=nmk8L`t]hwB?|Ǎ5b %SA00z}Pq+H Jp05j=J9C'e/:W7Pgq.\x>ReТ e^ldj ="4^Ȃ0!l{Abjqq] #11Nbwt+IȓL(Eg vcMRAF@L#Er4կQF1y7FmT Zlµ4`!z=HZj#h;{&b4z A,跢'8~HG vqHOn * X$aNţ@ƬOfD.*ɡ96v;I|A0G_]UxZpȋI G>qF&:7zwXc$!JzXSZ1Zƥ"o(Fc ,`: yi{ax"}bvzo&S0I6DΎ?^#ɧ_.>?} wÓ7+F m&Lwx:N),|/^}4/%<4b!)4~0JW~:g=?W^}uLY]767_wzf׷* ӗrsXۆ3ûJl?E@ J>y+gWx^=|Zu|G+tr$k |U|\|lۣ.Yu\)V0x;6?{!7u򶠥/5tsfy` ?}2oȸٶ?~da a+EZN"`wON R=-BH74ݛFQ{gABbͯ7Y;;~{[ &.o](.?)5FOw:[H`џV/[o%QD_o#X|΋8jFM,+ʌ>7$&Bra5А)ӎ_~,9/`A, rg=Fy ?hzpq^k9<_s~^2 3?}Sjc9.G˽$Z~Id2nXdv<"sNiCaG 8̐ms+eΖ_ԓf`΁Gh_P =/5 .aNG'g3$tsڳXñʜR9jcLtQ~4VCi&w iD)UWd"B_| LT7u)ܖ{\<[lLa\0yb@e{%^/ŒrJN]>uK`[3x8sָH_rJKp8W?3?3?3?3?R;0