#!/usr/bin/env bash # # Copyright (C) 2011-2021 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=23bab3bcddeaff218a6668917dcb78fc # 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 ]d\{sHϿ)z8G6#lk"'J%$a4gt@<ݭUņӧ9}-mN9§`o~kOOX#݆8fFni~x gAhnWyF,t"'vjpۍ \E<>2t}3e Fvcw0dȵ^f9ԍcf0vm|fx^pW |ۥEвd1#-b( lBLlVBkk2Hص ܈yGhrDaS3ݩV7 SI5`S O?6Cy Ԍ5h)y~`$,v&9u5K~nI`C 4ܲC6F4 b aAm eXF≂Q|C*!E3"%R/$E`XR {[6{Lkgvm5վΔNA_;t:ڽtW:M+L4ZMsVa@:p6[.dSVs|UN6xw<@k\>]{]]e\S-Ek*(L}vL?WZ,@ӽ}b *;QArRi3jS뫍ԀAbsc'zs׺ek9~TrGaB:vy9o(%f+H&(*@"6*C9S,ަ:Xӡ!0rSi:΢pĩL?M/XC Z];ᔷ+{df:͇W̌όl6+N =iNNtL60Py"ʉ^hU ͥ68PTah qʝ<:kc3;TSq4Cƻ~8/>Y;SΜ:~2!*{L,M׺ 'RުF*P.,-!~* ^%=1Ё-oD4F߀iۼiPEn6{ A if7l.vaW x߂>F;}o($?[PݷNخ 3+q rEx،b)ykӛ#XһzBPRykgEcP(B(Ba7pz/<_*Å^=iuo(P ah5 3A NMt,^䬸a4m=ݒ4([kyz |PJb-tWg%8Zg|.zV\ 3(r{m 2qo@oA6`1"qIzֵSMzej.iM˧,^tڊ m^]F}QڴXԠu>H C'[YEv[r!TxQfq cPfLe˛6hQh,#BF VF3T& d1{:*~faƲ6R0Q؆Q.pbo6q[Vhj Y.i>*:%x4yY1}XB2s* T#C7MJ]Mq${ (iQI+!R`/ KGI Mv\,Q(jq0 x"#5\cCB>B:2V#ByoW~/פDu;?>z=?߯??/~^{\|A y&Mϛ&7D% TM[1ͩb`+8 fYQ~^s1!|+ }7VpSgnjCǴMq:(&G: e4ݦ^3c2\ګz\.(#EU&y_I\K7VLdLi)k ܐF9ѳF`y BTx dáo?PLCvXh`-,']L> ٜ)ld5N(6?\.Pұ>7[GW NBgd\  2Bas3yGw®0A酣H+<68䐾$a!'g uF y[,+>ZsˏTyS&!:NϔHN&Ϫηj?N?O*YɇV2.sIGL:oYoБMHPTL5VPR(MU <Z*h+rjyna%0L-|o uRd936w.X9_M*s|WJ|o|3ܬJc>Z놦5A~YS{劜`4(,Z|ESйR)uN$\;@!zίVKd6KFp׃u6r]KG$Ow4.KkUB$`s RN<Ϧ5;e\)œo2:vj!9@+kevGvJEm@cZc߈̑<)(thCQ,CԦjmC,p<}*͍GxALR3f&U9yC.5KB ơ%ni7o`1Ғ1) r}v"HtH` ΰ@M-)::Mu ]hJ Mr5OWYelC}5+ H|vxtP;puV,uFjSXUfie\ ]˓H+y2gND)9PjXJ{vrD 9J<S͕0/`7# 닖7X6yym]ĺ]և%)C+M".&n0\U$)ahFpLJaFzX*Fq 7 =z $3jPJmlOa@_K9W (%tK8P&Y 8-}HT(l6f1=S܃DI-==ڣ^[CENdY4\0j#X^$-WcN~@Pb=X!4}DŽ/5aX7GO Xw?G? J_D6hn~5"9*TMH/GQΜǞ"|x2њ0L^s1,Gϵ&7,CF䬖 pzhYy#O`秿ҸP Y2&иO1&Wx0Hrf]'ӳ퓳_OC5N/=ou ȑ]ć$K 䦍,VSrUhu<`&?kΠC7.H!d4 0oB_&^aKaNnq=+-`qo]J,0z7XhZ]7|ްW-ŗbէ[2ϥL2hQ' aLp=ԨtPWO+Ŧ. {TǡC6[str VƩ-| Ik?V}׵'33g߳Y,{=ώH Yst4 m, h}Ad6ز.nT]bq D}UK‰VWb5.m3bK5Īo.UſXA߻^p5 Yvȯs)AYO6}A{ܡ?v?kOKm/&%9}kw$(*"0.D OӼ- BZ ݠs JFDX0ȷr۸|}?BՍ9SAtٺoq|2Mŕ9zEGU/tTaܴzxHfuib!Z(WV}bo vA5քߐJ\ ilc|.7%:P"`Zo R30$Q SOqi4N#0i2*&xc^+d`cWi!WRQ8$InbSPjY}'7)Ɩ$Y;Z4 0( hj %k~WN͹&F*u3=LU9S*twŦBM<+>u'J!IvwhlМ,RewNvMgs1Z#=2BM𥠩݂>ܵR]iMzAON?u# ?_bf *ٯǵvHYծے7}C~v[W_[_ݕvz@pcڼӄJT)ҡCoٟPT__ɷ 5@G=*k*wxM!2[Jɢ\i(\R$H8s䡯 @]h"bE VZrxxCWO(@Ed9P[@(: s1*Рh41Ը AAr&D Q9 S0K &n3HPHMfbeGM䦁(`*R`f[L”HxHlq[-tC qϺ L#6ԃ!!C[`lQBBH6le2Vmx6tLE5 ye'Vq$f b `!IL\"浟u004wz*9Ը*Tp4ƱѻF4" + Y Kfk! yܮT*AB|X3(h?GipF4A3A KYr`swV`yGs}3MMK3SM+(|@ )[āԜ  r _&{ݎ.in\b"(nX:}゙V(N6T "Uʺ`Õ0;T.%gM˒VeL7W炃,qp7:B$ 5.x_]F Tً4*)ر.a0 bZQݨX,qD4*8$2Δr̂ҰC 놤EPA/ZCƥͥԱ3@V/-a:ra LQs 7=^jsD 1xNT<vRu![40v{*ysīKxnEAE}̙Z}hRv,(a|.OR)JrJ,I ~MdpG^vZz[LJ6Pz&עA}38Q`8}ʷ5/ŃRi| \@Zxyz:>9Vᒈco4E]7U09;݉k7C7+:qgɼ}l-^j\o5K@ȻK}Qs8hŖ>oiG,*!@D|N89(Uc,>G:;;1Ab_8Lr<] n旵w;~}.`SsC9E6k~ΌRh=pԅ0~5Hk*!ӨE\n-h[puzD' ޥ(V~OC#TR#/ ܮj]EK_ب32QI);'䭔>lUN+^e=Ħđ8?҅5ĺZo\g a8dp:WT:կ|mRkٕ;jq_t1:]@j4]461/yEҢl/erE,(uSj thrvq%EV&9Th9I#iuSiR,i? MpLk>]m䐟IR1X#@K,F1 Ɠt ա!ꆹkdCA6fo 8vok0W[!$Sj MΞUv8A̢̔j醠~wL72`s9SN$"5)tԶ"Am?#vћm9l:'i{U`@fTk5*z3 iJ+3Uimu͢]Yw@r l(tɬ?F̾24j2QK#9*|m؞ڕiQ32K}auQoR2T"i)zncÈ /(o"rF7i I{h[Ǩ md^D]"f炵Q 9!pRhͲCcNp/ ̵;}fӳ#h IۂW B ]F~i]3tS~s)qtH lBN½ KNGDKT1Ʉ^TGmx^7& =0i 3aD줭ȿIk[b E[K d|$'ۻ{g'.BDIѱWH!4oNIiV YA2*3P=ywYS`Qބu(:ЬC8#fpҨ_`qc#2NJ*s("y0g<'.>iXK6;^iO6=pM>'8pBLXRR&G#Y<,t2/*]2bռDgFMmժgJH[KX >eT*5UGvw.&8ghNH5LyOpDRnمN G$%]sI=*+G]G'ˣ{27/Ņ7S6#⭜IڋW8Gz( չ,bQHach)iZvK:zg:Nݝnlqo.#8ʡv}кrE,1刄e4/cjiUIM|)XMt7iE.syN xcE2] %T> _P]agLfojcX ]Yg#[n%9 S̺K Frg Fa|~c-2NNdh9T_LSj)[d)L%[-CN[[N3+=RQfګ KU(Q=,-w@ȲoPq ͤbab`RBld(ԣCn-!eܿRxԘ#8J#%x;Kk\X3aR+* h`K<%5[չ-|6F&`v_::>;.`:@􅈜+ ^\j~V L]<^GR&(u$D):v9cw<}}Z[T_ëi{ zx5EjR5y|Ro: c~ڧwԑ >=<f4{V* 6g|LEÁ-52\}(&U5C]}<09"k/1&~#/=Pu+%}t@K RO_ XSۑčHslw,d9 V  kzuKZAKinI_xy ~; ]y*st jS8pe9$@@e.th S$砡͕Re5Tp*#-*Bx+({X" nxA-pR= ry"^5=c~:ZjN;74=簠vkf2e kQ|iwT#(<!ᆉ ebR^Pc%ʩNT.Lo )},@ ;&Ғ81R4>BB֞Np#xJR&t$v b]jQZoXWUiD)LϨq+]B?q++J +6.ۖ,)gAn&ajr STӁBqY^![ѺVKʫ@(GE[݂ʯh&?8?TTWWRV*gaaaaaaaaa[tb )7D:5'47{Qی,pڎ3r-ϻsl #4w5g>قbM3(D: &/"*;d=eã H#^Fʳg+OM|k{]Lv%kʐ*7MtkZ?މ_l>=Ec.on؂E ! eY_o nǮ Gʸ,æD+(4G'șAo &Dliq' $mU{Gџޠ(z+{%&<06k kفWtwwh@h>0|vtvO a`^c.($c#|k&O[…Z(ԥzKQ bGX_ilRKw=>ۉNMl˹|~KHbs;>5y}}i\~'VrfB/iV`/I(Cgl2z(0efxgft*t*3ٚopfxC OkpA~ ۺ~ۯx]ӟ+ p+OVʓꏕ}g*LSG]o\^$O/O/V/VVwU4~ZYoeb'wbh]>mTT VdqȩH(vScln`.x=  _'[BuL>O1}%#ߚv:aJXcALs$ͥo͜{wxߝ#NqK vv"k}q<===J(:ç2NS`~7Yx4`Xʕ8/'j3 umK%%U興[|$Q =ZW_NԔx"q1z5FA M/7Ja FIu(^=k0K1qz7#,^Tps}͠d *4:dt/˲ԯ%\T|R*Rap+hVHU50ρLv"Qע=a&mҵ~[I/GٿV0NտSM'F+7H0 yR Fd'9Ш8,>gnoW|~n˓Z2dDy;C1l`l~eȇYNxXŖxw_:* tP˲+pRP +ӽt@vqbq2~݈1y+:}(I̊? 7m(꣤ʪFB3H]9O (\ ފώZ^Qˌ(bz Iw/jUmW"B (O ZK5all&%}g_ 'aO"-L Y%' ܍@?<{ ѳcѺ$xVe PD0"& V7^MRq6tـ=w99LPN΅sO+vk{xSRMF47XJz>P}޴04gKXWr`]QM:xg~Dž%|* @jBDH[w#FDN} GC!A!ufpV1) fKN#/ HbfԫߔjߖiWP+&s;G,E1Oa SK!bJr%,cV顀zKyӽVr+ 'S$ÿ1=o^q=~f3{=g3o㴭2 ݴk ʊXNՈ);Υ}%T llG!n)54 !FGxGh ^Vشo0F\ROT.04jP;hpt34rRۯmhB<ΉPSQS29>,e[^~EgxڻՊ?(<5U9 b&>rdΫ>l #i&OEs .> 떕'~głsTrj>~QI=(; #!KXA(UTɢTD'e9i -y:^SPv]$_yUAJ ?H C7[wԘcL{#zR(uiT& (Jzj((p F,5lŤ`eW(DZ#"0/P.ڜ cvSRӑ دYRie*ц= *hLS'_"qkEuzp -m|؞i Xkbjgg%9ԔJm:e/屧+Yg(|S](4g .K^ v/ۣKL tLVzk!  ( i3zehTˤwLV0)Ege{ ۹~=;A}J'n,G{:X"o)#\ {1& ;Y8i eALmk8 UU_{@1:bTA`>BT )p{,ƘTy^c| F? yI@7ٌ?.۽Lhrf@RJix0 `m0 GK; up_UMn]/y7+ۿqE%- h+U/O ~rUY'Üd176sIsfnSqbԩz؁~dWNjVJ3'5b fSߠ@G+M)\mXGnwgS 2V[b.a쌛ы:%.I;*J SyebaB\pȷ+H@fG0Y#XQ"Zh$"vLrHP N>|bInFh[*]D߳{F??dQFR;Ed kbQsLi"Aڴc롰­;*4Ms#F_S%Ȍz@Qt`Gܸn~"T<oZ*hZNT -J% ` s$^;:T}{AJSFZI5&FT-hC̫AhABB,\Q3t21.]-EGGKTŲ:>!uki;s*B?+mSfmW%YgW:I@tGϴ}U_:m*CMC1ADCR藜geU!ȆXu^'BJ|_ F:URAc!r*Okq?zt?._>n׈f{wl`j}ͣ/Y 6~ueu~]˹iFʑ8>RgxvЕؐv;KiMSr o>2 =~ÅUkO&h ) V%-/?Í .'Ø_׼F#CX*[}& r4'&#ٹ[f@-f'u*'6ލHP ;b:^xD(z}O}RĨ X!l[]fCGߒ#J iԜ&e%bp0gĐU$1_2qGeX`65r~`Dz55nS2[8,2A($>@7}bhXo>Y_j63O D쩖DgjP,t&cTñiw*?K# ?5f.Nd;;f0=EZ@&Ah;obGWZJ'8G \Ho%9{)'8agih4Mj ڟ&LXp)0<8 xgj1x5ز'zJ'%!}4+OBWw^\a3uqw<#qlk%wA8 BxWl[6 ZPnZzDO.RnBф&mRAt] ]/>vRp%= ^P崩gF9K,p+Xum΂u3vKMW Wu_-;C"GqҼ9TwX#EJte,u}@w')\ظ PIVJ) `Gl+l-ՠ=΃UiMz~eZG6:TWWvOٛj^lS KA#\&qxtx{gvA1VS9uVX YAg;6Sկ(VR޻Y ˒Q ~5Z,MM[<:?+(N-LP֑XK`M̆#ꍇH"AOy?Wh-g73ψ5uM>qݵsy dWIw \GWC^)G>rчTVC8r T dXA UsεgŖqToZ-N0X1NR$Nb~;J%b J:g4ZjĵUaLZI:r}f߬;;0G[ʌ8xg)~ZJ z,zZ2J#Aҥin_7:&nmr~-g"[ Lk7J3A߭UЩ7OdL@z~GtuuRGՏ6?ZyWuNNm.4=U8x|>]K#۹^Z06OUY,~* a|ӫ9*2L-8FuҌc Y??ιz.eJ;3Omr(S̞1O_q(Jfu5:ssZLאA-݁!wv}NZdUrd<ƪucքn; HIzg]sXuIf%c-iC ZhuJڱNs3> O)vV!ׇ߾*ɳ6kӓ}m[{e>Nf1j(7G^ILzb:N-Ndd;&4YuWlMfPz#J)줻MS⦎O%C*PtҝNv3)ҟ!MZpк:D$I;h"2((@'II4u+[?VsV8o HlYn*lf};r02yz3Þp92cW/h M9{TD6tߐZj&"&s-~kŦtnpg5GJMDLm-Q !x<ފ̲xyJb wu:`S: R6}&: r5{8B>^xLkĉ=$+ “1O;H~JM~5lfYsv9'2t ȗ-H ^ $Q2[׊Wat9;36++O:YR+;/؏e5X@[/i=b"C?p,^NTa[XsPIO?SxCR'8w"sp6IBrONǏJunbPJj`DJصyi,>S#XPM-R`PN8dR 채]vx=iƍc;Qzus?*#U^I;-?өFUB3Jޅ Rw`Baţ $ Jc|r15<)M; wwyh= K}1-I6PbSr;J OL"v<J}lS.Ї-p]܈"Q~{ak<:U鉆~b&;A?^kGۤz6G3:GTVQ<"voXq2aOٮjorm[Ȥr-HFO ɗD !"&L wb {9B%1(eh"-ZrÇ>-ɜ&YL? sun^xJNԅbW?׶wKzzH k9{6)#$b;Gvl×,O'<->q<{vB"=}PcZI?T&8:#NtDk>.s~) Zt8ו%F ˜?gY ȌU) f0{$n20ԡcS_`Fԝ]?_)~~<1ԫ)ÁqDxJOXr >=Cp~x&]Fqÿndr۫eg).K@svߌ)ⷆCͩ[>^R:E1=LJrXZj8٫\Xa9G=| ٻ,2j?oZ{ury" Ԗ~ a Q51M XY`oraǍzPe~+n\ȳ@D6 ܈aJop#OkEFFTq +_\LSRIz1-dj?bn{5 ѪTV04=!5Z?y$!vXYбeZ}ƿ+Ɩ5jZTV9Gd,n-/E/ZWW@Uz6bT;ޱEٟ n#sѺj]%p&ŢW왺Wŭ WpM{dδ6[6EAeIS[%DsJSʛf[PL%&{.2@YUQ11^"]ź/㶹R+r7XEwDʓr Y{t`^kmTlG]8Sּ}ZÓZE @#)i0 lnJUl5 ƺr!yjos͠m뙊 _eLimJ%%ZYL! Y5!\!DϷHI??jemŋYY<|Y,g3f?Y 6.Dq@*(ݧ?DZM5za'F Px8 c ~^| >>N:qGe  luՙ& qPS'Z {ZZ ߯ՎU'΀e*puyf>>:ѓY 'jzv|uןO08#4tgVS}PԦ`~89lţFVM6$#i&߭p|/l{ViU<G58Nj1t}\"Bzك%b X!],;X,VSAdЋ/Zirzg?B$* Yy4`Žr.kT6!v!K1vIA==KUP SV)/A"Nhfa.nr/Vw!U%V%TVK|[M%űza,C _) r7tH#g{r35!3\xq Ɗ~k+9k7̓Tzln"wG!/VOgh-@{ʏOdяWqEOez=¥7p͟Zu=~>XrҽAMuaunJ;ݶXTWmvQѡ_:}=nح{pv{xnna׺=/ >\ރ{rp{x?mɽ{='綇^\ޓgqlP,_a1ӝftofk@[|orQԿa|֒N{ٺ*wOvY|}kezyobǯ_Ňӣ:g>/b.hx JϗrwnoFt "YlE?,[n-'2Iv2܌2~64lЈef)TT=[D3RᷛQrEsǸĢuwJ; wV,m]ꖮP~G֧' :n]n .8CŸn./qǁ@y.m?o*i\ALM/RN:q5qE?$no>\U,"[ΊNCRD kFV#O쫵aj"߹e2W0M5W|-c2̌ 'ض^l#p~a(|e^a~dgDF4ۋ/o(tC\ͤeLաuj*n\3ad.H51*/6TO)َ!">.jyiq5/ Cdi,*:$zjBP"z$6 `8/9i NӭazL}*rJ@RU t݀ % Sֻc\~@߬~H yE.={V;zYfavf;G o2 B:O6bp^^k,#Cyȇ ~s e d ۵Ӄqx[CE=v9Q~]/tplc}TϝVe|{Lsسӷ0>}$tf( hcptz<0B>4)%w QI^>" ԧɓYnVģ' lt9)ʓ |F[IĞxr%)h A4y"cV +wjP,IwC.]Qط W[zߝ+uğiP-7Ӫ'^^IE>Ӻ Ώga=; `{V*sųOQӶp zpiX-]XLi궖{kP3ہgV_0