#!/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=9a28f840959cf0b10348e7eb7387b8dc # 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 [=kWƶ*if٩ ch] tiȒ+zޣ,AuP ̞=1# ~ \N6wwɿxm65۝7H[2^kSBs/oz,$]{u j4[-lG ۪4 uC]\SVB5ڥİka-ҭO k,mݘU%CɊ:KNV}mp-T4OuI4 [!o2ĞDe⥙K  6 B趶^RSI|㐥QPM7<0 $ ERF䖺ن1s v\(djJfQ+ Qf,ssD`e]Q h|D4:@~<=G/S b"d x8G %u "|OI" ʢ U8=qx\% G2Q@yTe7 d-NUե(4Ԯ #u1{>˵vժZRReiENu,'Z :5"tɼNTgTwᩳ|b.Rn^ߒPr1Th6tT iV"8arTѪJ++q3a#yR3=TJzX\ޣwW8 />VO>T:b!!B TnDD[PʍUeޖ802ۂ0gY1K4 uYQ r\Rڗ 5x_?iO%d7ikW!xq+ʣnnjDB9䧩NcK8 <^_ |o?$H3*F*5R_/Q8~PKҕ'T ~\nWjR  R;VK=IMK} W@%=H[[qiAeڐBTk]uCh` xP|+ >+UV*0UϹEc7 6UټY()l`˓d _fU9}Y6|x C*2|yT5 DT>َ^]Uq,u%*LUf'Il4X6;`F-TKS{_qG# Uᒳszs{B`8m̌G F^2*tf]%'#xRh,0ҰL$P/tU1%?Lz{/&ܕ%_@wd1|C24;#<}<0@&w,G~.I0NWC1(T]ٖ^ л/B%iBuъ|x`" 3.;<@/EѱdmK 7̂BBavp)Ϧz@; GZrtw[wXWfT| 86VB%Sά $G3H9]:ΰ5r={B#I+4mqFd58f%TUT{<,3ٚ'#Xrٌ0IvY u2?=cjQbFW'Eπ֋J>3es|иa 0K_ab,~aR6nA} F/{L/f\i72p&p wfu)l쀗NH.r'd*80Nc5"`]# X&Xlق*AJ[ j~o=}/{p?sO([l'R=P ʲȝ<7Ą|.S L2 bݖ$pAvjz` e ~ tWF_j-jqN̞wZ?Gkʻ/<x s|~M7x~Mizpݮhp =dN^(: <صrRz xȒub$x" k6`A|fTzɊEp֢Ҹi4YBɀZTQ &h^'R@UMt F=>ec~ N l$GBjl @S?f+EcP] A[ >Obveo;K5['g>oUƠԤ)^q`c$IE&[o2E K&VT:)\c{v G8 CgZk+&v*2rOsc)0rGCZ"7D3)h@v  jw,AxY{T'ed &ԭyg>8NL<]nK7ksՓlL5?4E'ōS[CX d-pG4P'Vs 4`(S.IvRfv,LWp90.BްF#XbKF*BkiָO]837O-`~K*KsgIK=٫dQMp }MdqCkYRk`cGh;8`)aYH0^9+OMzЏF/Uc,TZ1MS)xƥ,9IV*X\*٢g|?~ʓqbf~_֥^Vau/ X} "v+/n'XX 7HQpꊒH-YCΥ'2T5<ћ Iw2q@Y3V=B2Jˑ5`&M,tࣶmRXuT׺r3~oƼ^Tg5Ғ3!CW˚K`*/L;4ZT {+%H/W[Pc{'?šYS4~iev[L1x5"q3.a{;J؋X v>[$}OEYwX0zŎHL2THު5C=}1(>edoڄ]0Sp7(6OҐ9L#O7@h6ڭvyOj379POP[fsjX5;zdoiFJG㧵g@g*щ]ٯ[KY2=qMcVgwP.iB);i[N>[^Oz'W*TV@swAt +$8 Fǃ_߆OWԱY܍ދwϏݎn9+P'ud@k 2 -AyH:zFV'dM wP7(5kiBz ~zͰ?4Z|uRHO^h]:[םn;nǏo[T`H9>)CK+H$ר{Ǔi $stZt7${y=,UkU·$hc hjMF 4&7)z&Q3 0I 오~UM\\!-`*!sCi%㬚xT@a>DsQGsUQREt$zo!\uޥLYT9Ս|qRT-ѭf o^0|t{a8b6:(΂L&FJnlEK`FU  ZŒF 7`8ؘuj W,p-槁KQ{/V080g$A;$7^i 4N/1 =SRf{pKvXt6 ! LtXN>T[eo?_1G|9铟e%,.^yUqP1zyǶe7bwO}͵_3s߹wn;~5f[o;B/ =/0#JP#fq-3 ͋`o5Af-PJ@vkec&z=-5C;)ǖIvnBamLk+Kiҫk0kcL Y|Pl5F! G$9=Qr_Y“l9~2 7P@%|ς\T -2*Qh;okomC&dtUp0Z`R4s-T+ Z` KkpW ߌD!rj:;V\v|z:\dX\5fQ]5GI7i]! !:t2A#\>F.Z1-`0ifd] Es9-(pzes)#`uTedЬTZ ,mwg+.g#A[KZ"c|:0UA.,%SVX[AR”ljq(). PSޑJY,D6L-1#x+YAqŭEml$]B ɩDyx>H 9"ڡe71QeɑG`"@(?!2[H<v+ L(29N;n{isC_#b?yc"*Ӯ<Bo[&/eDhGLgң?0iW@(}EhT5t^P,epSGeEo#T~' A%,":BVn` Z(2HE#9i5R2UDS '7Uqc3J OvH} B-'-jۅ냳$ 훝 )A36N'.SH2HfE‹$Q j!jj73*S״^ ab,TӈTPxZL;Et%墱~d4OcM:(2ЯZW oG kwkkkw:xxbg *T;B^@}$!iYTV*8N;gC΢AG QXkM4,4._ ځ7 $\v AګȭBAΝ~! !>.ߜʩ!q^LDXtXY[~aM5K)2*b4|Eޣʾ-Q$*Pavp<7{VfH`:XLI29& icّtKlr >= 0DQc(dKh@3*Sx,K"؍2v -cO}tM(U\'4m^PQ[R7NJ <}]z){M[9 =}?huA)rv:9=c߽ԃQ/b3{xp7ޡo`,)zyc:ںU[]xٻe%| D:\Za='Uk69$cA0݆P>~w.+Ւ@i(VKXj ySS9y&N*Hxɋs\Kv;>zy*~2L瞛fҹRIe WSXCG'K0ܠ7Xm~ !,N@oN^{A1CnnTseH67Eh{Wɏ&dnW& ݗc-4 uB8zqx9}씌z'ͮ p46&Ruj _ed< p(=j~v^捷3`t qmHe6"} :;s2">c B{}RPnL=/?ĬɑX#C/XUYyW~mȄBuɥbcⳙ2sNVk>EkZ!2H^}fBT<Su",c==nf,<׾3"V2@ۖō uiͬ.cF./] ))]$oxcu Mō̥΂F'SAt5٫NJ=G`J8sk)73'` l|ƤJ\ήA ~R^}PlmLh>c<SPi V[ԫ g$Jf"yvyzy3v^G81WSFT)P!SeJ7Oi |YkJu7v^T ۈ?\x%ǟ[%-Xp]Rt䱁mb ^;[ΘVjpitƽu=WH.[.sTSXLhr0%[  QDY["%%>v^h?&fr;R%;GuNkFGiq3퀑sM#Ed\Z$D"pNViecBHt۶JgO6ZUzΏjR>uh_wH`]n' =ƋD8DDCso g2@QF Tz3Ӑ**ND!cړ)'iP <ҋ^SW{_ g|枣Cwj=lJ%F$;~stnPrOT䶮#Ʉir3X#5c磋@vl5gJr8Vi7I^nRడd  pp tW$*noA s~ɨhY(f.y:kam{2 mvn8} C|! Ke(gS1eӍZ]!sb(̖ՏXgVDaЦN?˷.K8PMkfy*YZj`O強\C}{Y7e6Vӡdlk(-ΘQm=[j[vJ%Wc>-Ͱd|ɚp; kKf$ҕŨU"5`Oݴd&󽲞tjz,c}ss_99?s9?O0}و]61%=?qy#u_f /i/lV/7i8c^4U$_ݹ[kLm ¨u=E@|3$-mak(xy2 'V0щc Ұidg~ 8!Oz &xx/=?><+Ow^Y2B@(@ 駍J:=!iVZA5S\h8/?^EJ̳qθV,5hoQ;@[%<6]uOqz^ l3,)0c bhoY%25@`w`EӐYX%^v KTƒb=ۍ[Sכc6Cэ=V,lmfgkD~S0qXxW*K-r[*}cL ڮ5M%FN$<4O6ݬ.02R:`|+ d74?]qg7U+wP 4 Ƒ;R& DqNF0 o3of{p {xк?,ic?CK (wwpG֨V6f^tZu4G~z&,) >$n@W:0,'S!͈9VhFL/&=v ٧b1+iWM"B^AkcG%/NE`˶_mo};-ZR8.c=Ka%5;:..x:%m'+^vd=[?STдb1&ьBY mQƴR1iQ_4}¥lj`_Ħp*Pcgbr"Jμ al;pdk`3>E(p0!1^#)QI?>˫ћ1#˨-# ziƨE[y3e;LQȉhD}gͶͶ 0.]oi1Kh7ɉ:da  a_iLx5vf4'}lNcC/Hdbc,6)OubD<&//Y#*4LkI*36廒^6xD(F"LC`~c@b{[urHK4aC+0&;&> @$!ɵcS[OFئ)e9%.~<٥ d{Զ7>8ܡv S?HiMgZOF%S 1?coM ϻٺ+eS^38&o_xԎrihWA{8]<9(pbU-`v4h%sKܚQ0^ӯ)O6?O7gg?_JFizdl0fzyPG)jzh]= l ;!=@{aj'7pa NRD L͋p \z56xŦ=Z¿s8;=-ȴHG NRRglP.m]B+.h {S_N9P7KZ侈*kls#zmT3&1y6n?g;p(ݙR3臠+a}u} 3n6j^ C~_X_OY=^8V^+r*U?+\4χˣݓ#~߇E< _Cy{p}$qA& /<8:>:Z/: cqpJB;>ås ӧOk.Lzp:H[m'aF4#CZBVsxB.&P6.Yr F{>ql"' J3i_#^79>9O(N{t\CkU6 ,QsZ$B-ZҾh):@nn{/dfC/&󭘰9*3ۿDX,%?1$t`2Fc#Lm{\'a` by! eä!$RD`xfŬ:Wh|XfޝkCt|.R8p6HQ&}~Dxpv-0u贇6oͥyQd("Æ[mtza #T]8U/\İIYI)?kkkfߐԌe)^”V``nrzc;d&9PueY D1 ױ"!VixJ-e S^:/l+u`] v:WrY+vfMWLF!1lbl~U 0+hZް꼵hcm5Zr$@<&1B7>+F? V/\yU:5*hr9Uheְ!|OqM)lN VY#wBl4.ߗlJZ]'_7W=iZ3tZp}Z3yl `jnH;p~}q*Q.wGe5w"oqN*#H5WWŴKGiws#$з4rقcYYcUIEEt#OXȂʍ2(ʒ> k#FVGQ(`%vvM(. _v6X 6n"knp8pԾ{-_y4:ɆO7Ŋ=tb G3P$tF*q.fDnvN< *d2bп_~c!5]TӶѨ4fw,f8M0k.ja1"^X~ *@@%%BlR}أKӐuL+HV.AO!QUpnV1]I`3a٠ACzyp 6s`'_s{UL)et?{$'hMt qO, ±^3kCaóႆq;ZyC mro$[ * ?s߹wn;s/j;unD{ם>6gM|R3Kjي!{֢;Q`cރֳEtDgSK")a qGpoEʂk UIZ^ׇEp7^])PhU`(N8]h1pyCbJ79kHn,ӌ~C՘;u`kUE|R}]TH[ti0ϖ>qP6U1#9[T; ̃H|قfHj:`Vm݀8Ⱦ8̚o5K{M|eEPy(hL BuE5RpN$UڳjD򇴛EԶ J %yU;! 4ʦj|'&|;!}LœICQŵ]B#ڷpT9FN􏊶M]YWM[So5+YSEp퇝$=e^/H*_uOj#{?m&6G"1kq'z7jMPZISZu&&LMej+JwU|@12e.s9UNVnū>׻RH]R,3DgBτ--m9*d4rP@dyp lzLWE$ GnC8,FB_ p0왬NΰdM!cֺL\r33Ȭa'l1H1:So{/uv1eh\p @Yv|DLY/&Y>E2MrO:pMC Ꙡv8Ksq'hY H\B,Y'15>u= ml0˶/M*e+kǑ0츓G<61F<wi}{bez밺dk=aB>~l&ŊTf:P^fІ^821GId*ulB cTuy:Qf} N_RD/Û5C7A9$$u\>D:PPR-,?[L:nDr(,}Ϭœt1i\(nbkjGDIz]V$g^9Iڈ4xBf.I̟RrUîa"nUMgrPƟ4[q)p[搓Y!KWq݄f24M[]%a'+ T?~4Ng继g9 1tRLAKTx&=˴PQ:ZIҷNnn.(Ƚm&BrAUraǔ?A$E#oҊciҫj;m]3)|o(髐{%:tw 56)'}0AK [eJIFBłR>*ԕ5 KlS-z5lS&qq8SfOw(Q-Y!!wO{hm3O叴 9l? l<$ 0( *"YE-vH񄦞;ֵ+_?v~<./O)>| djCgpk$!Enp88zyLU}#hy%\'m2%OR  +iI9J8;'\j /Zze0N (M=9I+Gn=S$W.O4WFP2.CM4H"r > \jHE^kS 0MQw\2mjՐ\JʷҲ ;9ew6D U'W'u^~w,r;U'^cfOcCl{ ,2hD.$= XoBޜAnYΟPB/M"sӐ <ȟ֖*VY+ţ,qqvC,_A{ g?8GW>ܳT3֙4MׁpQɼZ$ 7(/jO8uTD>ɐ(b&RS!j|^Zʎ\F]G[Ui)@\o+K"_I&KVqHQ '8֟QnQrHb5%|ֵ\]%#)meuR6 B(- VkZ-IdIU;Kz~ٻb>]ˎ[s ~dl9/\{cԔbpw$'zؤ÷~+)5+{֫wz-gMuӒ o<#OJxe8'>M0#jp<=aQ)vV8g蓳F_grdR1K*fzRQZH!GF^i.Wdpmdapd\ق/UGRÆ9M]w!ʊfrˬdו]a@?6;c]B_3?sc1)d{)pC|}pm5Z+RƏ.EU5T*y2ɬ2?3Hx` ?ݓ-5,hW:+ Xؚ)C,VI^K@"޹ ).1krp}ȌfW´] x-,BpIzu0=$Oov8R眕$OPEτ^[Nh-ao\f.6- |L|oTjW_L٭PG*JNH?-,}߲eww}W?[O+ɲLBM( ѳiYʟ,@s˨DY_'*~3Q&IX~3/_V6-JK20CԧlyQZ͞iX2ݐn?[v ڶFo<^JOŪu*0̲ے'Yo\IJUlJPwJL&^b9p#$۪ 0o_8o+߰ GaN c;@/*Oӳ!UL" f,/{`Y=[K  P[XׁV,+EUmA[pM9Hj.-bpne8C[Uis/f?SKtHQd] 9_|:TV?^4ڞ}Hu|r(x7grU")j 'iE[DP%ytCה `5`YmyN 7L IW9+ SEx|>3f; AʋVb;j!a;Mg/YhVaFֆ9<)6êpxIx).<4CbSWsPbʝ_OASpŘlF ]73BwC_#źΜklOX5ݞjej6vZxx s7Yv6Jec!av7Qܴl9M=tFJc/ӭ8#(~i~˥=Wtį'njP,t켧ojYܻK4Ynԟj~3fR#aioI~")f4zSgꢏM|0:16xzr5X"GөLm؈8㵫NQ–ML=d| 1O-w[@GubW8 q0txud&dx:I 73lWZ3:=`}ip܂%b(K>n[%U:@f"[nm[W g*L>W9]\UuzOu"l6 hfcA%t{ܜm!EMk1-d*f4 }rsP3.A||w2(^'ups: ,RVvG6H״Xم6}yF:ʆ/ivIfJ ں53vSϕGOcCi"hfKh]ȼ8ޭGSzltxēae)`VHxt0ܴq\ɠ?7Uݤp3Peǯw! P!1<mrA6IaKNfԌZp}t\hJ _G]\1)A=9!t_70j' c ǰWt±fłbݒEvY̒u'rrkD7D18Z+aɀ-﬌ \|f}"= w!P`(P&[ 2FVfٱ[@! v,dpZߠ2˥g|goNuA'S}Z|ry ww@-b,{aa]k.v~M 9P:1VE'5dXctGZw*0Zl!