#!/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=81c0033bb7ec259cfefd93fe0e18ff2d # 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 "b Y85 6W.%K.,ߧ&Y2¿}C||1۴pHp؂YH3 i2`_Z>qȄ!!v|ˠ<2|&$ &5溵B`BA"!!~ -0i!LX-AdԵK) :"3!}jш)˘0C0}X 68R2hHCmB+EO X Ă1X9S D`e[R Zh|. 8+E H"p= ]K>BD:Ǒ|qA+w䳱:)e=$҇HR2jؓ,)";qW_T 8z:\I%ܶ䞬~d3jg;O #U{GÁ"d++^[@JR_%eK h}i 3 l$ڕGRGEHU2:2\L$=X * :I}վKOJ+$ġUVǪD.."I9%„6V$$Vlr@2>+2WhhV|=@~~'  Av/n|X>sm=H܉ Tn.:<ү/{ۊr-+ CԂ 7nZ/7HR… )Vp.FDJr_V5e(`W j^Of\VA*? *%Gzd WHۍ:' g羅mZĨUՀZ<Հz<@j@#p^|X AЖP.?X,=)ᤥi5"WQlcP,5FBj$NS76 ͶwGV3k֨?jfp=Aw4gay{:L&V3< |z,1ñ=?z9Kʟx~[l\ҹ|jtMfH2]@pppPfS €"1tLH+rz3cX @ /p˷Er Ҏrkۣ EIɬbpkj6WDkSgK-/koAEK]wK-RÅi;byJ*$`fIk]GC (W -epTL'iQx3C;ϢM9KNf J˶M4YJ˄0XD;w 5̘_ŲXpi^@-qE hGT < u .S2#wVNDZjVc솳XOՇd[s ӕmb!A5j^&3YZbEr-V Am0bMu>@Lm̉Z[2A&m[6DF_[UhxNR@9&+.4.u FC xl22Wޭf,W88n\ v(Y=5A7?IH;|o 3FD;D^$"kJ'qRu2DqZ)2 aYJ=3#xO 0q`,5trM,ټm'+݄`u`.aA/t>OI1 m0D`AE||R7IUJ年4cP[ss q,㋳/}ӂ<?y8k9K^v$ozAAM8Vuc$7 uԣ@L 6X&n0_P~O8lJ=5[z~;Wvvvvvvvvvv#eÒzTYp*\b2>ӗ8(mb8R4ET(N+wM ^Lĭ}Ɵ(PxCj+:RWj*k}/)`羅Vi9uN, qRbƣ#779H4H39i4)٦ @x*FGvTG͏>PdDPD_ӛ9SճSSH7hdq48 eZa{햷^ceGrVom-||(rR )H'* ] Åw JHnIښUaGVx#m<%'sI1uo= MX ]&`i業v YihbCU3? ۓ9G P&n-S-8g;'bi>gJz;sCi]Sbt5DZsRްj5Xb Iq'槆 jω5qv2]#"myHH,@?%qZHR_bO;a{j)+}DR9ifQL1BqbDzbX0xӍz^na53FiȚtGʐҺD,Y$Ddb\;rOn%$[m#E׽V,Z8Oʈ3ū7Eq&^}>edT{=jYJP5/Ɠk{NsDns5-F$V5>O1ř>@B:St\?To̫6Ao_7(gc\j- $]_wgc&Ʒ[,4r^\ۊz0!A3>gZ=j+b'b]D4hg;쩧#3ڪğ.;x|?` sPfg# nGo*z^wnN7c^]5aGo!N n9uɡ>?_~q{:{4Cyk+>4J0B 1y/~*J`Qd!i)lܫ"Ti%ìO'_}"{e/uZV>87^Aδ&?5+{R k$I!\tm9+Ohd޺TTHcR^7^ +&l7 2`W&\8BW o,g#-&t=&Y&VJVІw0@iwj=匿"o[|S-ZL ZYѥ;wU!~b4mӔfc1zK|xw65siWC|!xqI6FAf͠=*u$nd3%dō IU _5-u6mE8(3lGİ.uP~2 F 2elb2󦅊t G:Zo&T’Y[h&}$;w \s4ɖ.\+Yۭ|j]u|uK7' gjDX @#Q7a#?hHA??GqFcWv?ngv???mپWhHb$`EU Y&̀ESޑJUüꄘ %8t,_ý=13x-^X#i9̖&vlA~ Բ9 {## @=Ӈ* AeSZi*l@ۂӀXחIƦ#[va`Ũqt V>mpT4HwD$S&:+jA\$* d !ؤ1P4p +QPZ !,ƤKwM/ֿe*; RX)*7$Rİb,FLz7T S-#~-I5t;0l`àƻ!W5OCsh,Ǜ.-Kfk1u\fR++|K|(ؓ'PМ{ߣyz`Qa9liIFTc X|N*l =ZLJN)a6I/+TK!cSr8i69;ku \Ɛ0$u+MM)҂L58ql}-DѲ>صq߻^t[ĸkM݄oh: Ue΁޵&Kc!QV<3]p3ݡHwbLy D"'7OW% ."ì{jF"k+uF5n4zy!42H *iTC<ȸ->0-U an:+PY|j"A>gBii=Af8Y:G#(p^5zC>Q~%-ؖEYZ k5z\4{i]9{ #~):BU{ +7y#* I:u=6RAm?:$ ^GY|8=Lg *0  ԂcpRwwuUYevN;-V6D; wT髦>Ij}ZR*ԃR5$ $ ]2JRn^e]/?GElgv ;%B; q&\ZZaDuśĔ`8 t[y`Q/&6V"8=<(D`]: 4S#Rw1rr4gC< :M雱Cc,6spJ0 8\ u?;nmN:siA|x$d-*zR'*^1#f,1/oM7uCo­vX߫:I[/kNĵ-kZn9.-䗓  089>;Uɟp"\vnNv̘D㟵bXEFq?ÿ GͰ$JCb3g`vu ycHhhM#8.Mb_VL6p[rpq þ'+XrL%[D/,XG ]O =qvnػgDiGf?=%6O4"f\R1XUB)UH26ޚ-X虰m/bc-Sk723,GAdN"]j ϵ!ОYkODG$qu˸lNv7u\ኄ˱"QUY8S.y'ϣ{17/^ڮoLRWS*\|ѹX13R94pˤc2/tݣ-> uvdw:p$g'gnqtw>f6K,Ӧ>h "Y,ZWc 54oY)Rr=xlMK'1XeQVUMm떮rAD<õb]5X٫'"lpuMql9L CVlf 70n{-oaޜkhHyYX]Da|c$'kզ|Q>wWٶme1YZ -mW'U[{[N)4?ϥR'9*߀^LR;ȪoPq Τaf`RBpY6wC_D/5U\{-*trMC_}Keu[|ms*;`nT1{!2GgϠ_8Sό^A _&8:@3 L d{. fsPrEDK"m褝F}*Gwe2̕KS@A: /"RjbSK%7ˋEPӣ06nCvOjZ^FG\ac6CT\ tDB@N@Qvˁ[˪mg"dV1ˀ^l"z2%(kQO΄M&ݥ>8M.IέQ:oh7isA7ݷd>GC?55F0"nІ` [#) qDlɊح5j#Zd݁meKBsyM.۱ag=*d ڷ>N= )'d!dˁY ԝAi".m:ʝyX`61f gyeP$ȷH'!X316FH4 !}(8=;ys;PA99;zY? s8h?j!*!ހR{^'D &b $o`Nl0Gә l4`s*JoijKkgr'^WhɿbͽGo{h/!j%z89zuxfQ߹nCUwUܶl{g=lnLp$YJȪrXqewBȓSǹӴ:oZ&cO[87)f rXPI5u3#L1(?mwT#FZ7< 6O,/m < މ,nOղ-48eoHBVסtE\ 65Ce_̮v+]B?Qh%km3-gkb~OLZ`tv5jlFZ-}+J #S,91ůHa $(p#?+f,,,,,,,,,0eve+vZ]Dk'ѓ%tI8?#{Ҡ?j7m7+ti |߇%ROf7 Reв{ZrʾwMzp$Jiġ6e è)028SUk LO|N/ H&xA=M nS`3e7f=Rbr.үC_6z#ۋj:`VMVTJkhA3@x(״d]U0UbXP-l@=(俿i#jby^%CoxU{9[Tq1Q .x7NY:Lgmަ{:2B+^oNપMHq7۸/L܌Co7+hx`oǏ`sQ%gp$^5wզ]!;KڱÖZwb߂7nغO8X^eL݋'Go]`/8@D{6)g‡V\%Γo^& BpP+]1"Q2E 7]AlpYFF^|`usօZ)#O'8 O%iggelg܉t2e3>!TC83d.8T&e.A?{:L:4&j=4}/.c~|b̿siq:TG06{ g%MڗNmI=vl#.|& ,$E*d/"{k&CA K\̠ϓA\v ʰAS-oNpxG0enCV?.( r n ) G>2x`jyH {9 5VQFءJmoB h9T$ ߹xF$ͫ>=Ch,ZOhpara70 WB@ ;I1Lژg Ľ~%J"d (ddFwhB:.iDƩv{IꊲK-%bY=8\e29d A!VA*NK*ewi#J '8ZnNVumY*(Jg0eǼ"w?k$6=A fQEؐ4-2$C|2Vf؎m/@o ke߄=Gvƹ ~& e:_Vϗ'zB$]yֵ 2,XMăM_Xbŕg am WJOSdxJOPEq|ΟLnkp^naSé%V:0>$q(Z' ZlU Y[*&K˴ry8#*YR`yg&pgW=N|:13hr f B( *ZJ~Vk]k W)Jd\ n>yrn|[Pq,–)eulR C).JuWwg|?vOzʣu/!,kf?Y,g3h']`A:N[U=ҟڐq@E2\4Fijd5QI{Xf{wڲ۾Q}Sl`;Z8\zY෾>%yyZ:F]}w2h ޤɾ@X:& z`rkfiSlǂn&VtTs (~M}# NwfӣC`/ImiԔebp0eTHUˋz%iMSc !"pikhXsO!]GZ>ͳ~[Boy9:z!d6OErr5*{*|P0 4{Zh6Sawm2 y$*JBc;-HEl8͸&FDPQ>:yd^ku#JJox-8S>X|&LyJvv(IiEupK8`h텸J>UnޥGi7#vè>=躖 }SPΓ7)%N߭ZZiơ8UBkw]W: =鶧3CޮV Z&Y7z s2Hȵz*Ռ?u|p/^n#Vg{gƌ&fm_-? Šv0L$ \V5d Z!+h3LAw;@P0݄>Ig;9PZ)${PլgPe6;qf:C~nauUomdvJeA_[&t9Q{r[*k-h^PW*Oqa,%SWZA5Rʔlbu) EpXl"#YM%0;8µhFnbGg{wv93e9&*GsТvep|0b%VPWd+[xCu.$HzYEӖ8^U@[4/' aGT&S[XTKekXG?Ky~lDI?Vf_g?g3?R?,r#r$~b\50/ nqx|oCd\l잼w;'{t9(0.ST\jmeŻ:<8=gپ.}d"x=U *W..گxnBۯ=D͙:5c.u=prI{U~p-zUM73 >0=(SY}d];Km/ڽsQS&j[%g2IǦ`Z?މm<~pұy}1G6uJw` n돌bfNr?\{ȼ@[CxL 8˱4oeF?^mt#6t|(uL *G 'ͥ6;u >~~x}}wagM%Wv(@zy!ɉyiz[йri7Uwq@$P-(ByrkYO^op:?Z"A5JP(pVJLMZQYzCaQ=Z,̏pۉ`%MCC#}V5z/Ǒ< *$ @h?RR6Ol9*N;WY+W8B*, ϲÖf v%<A3Wuڪt6+,gtRY?4D(Dl> hذu7@gր8x K2,Mgޔo7g_m 7jI?얶}P7֧NΒEN K$x탽`Da^ε#epVJBw|{Ӹ"N,|"Bҗ׷M'$[Ow:AL(8Hjy-$lLFc7Al)Tc\FQ z2鐿 {?>[J F>)X6j>:_?~eOZY{5Y_y0]yIϿO/z3M{޸8O8O~8xhavUaG?7b߲XE?x9@ PPxdO)|GǧcmuЎ餛Xpذ9id<2I 8֒adw衒gTcGeEnΕ~%mxK\[w_;lleu pR=m`|w^83#4|D:xXֽq9- gGH?6+d5f.6eX6=&3vk颳l [D l!7B~u(C.@*AVhXsp:2qFaTgku>W[&cV`C8J{T22h%Ȥ Q&^,'F$C㜨\+H}YA\z`t[!.}kt7KޥZa[ Sr!m %O\fX RQҼ#$%B8ó= ̸f=+ my7RC8T v7M@*8H ݫ\4iO]ͥduNRTN^(VUK4fi&^%yb=]j܅buۤKyDDQ]0:YvV>##FgW9)_'&78 r(Þ@j9)@nf%*y/s<ۭ=OKYX47?~c WvC_䷏ Ouk]*.=A9ܤG>}ZO"@%R-BL]ߡӔtp0d"8qRg9۞h9xNixsleAT6+;Gw'gYU-2Zsm[=C,`NảEAL<ߍqWE_8W"tAǸL6q-.u]v_cw^>kg3{=g_ ] 'PsQ;LӔ2P_q KZEb"IJ5)Ѥ̨v*}[M ?(%p!"ns*{cUި7J:F+.WΫY4j/P|xhZ5N:ϴ)}F܋1)Oe8G)L_OyUxM'(wR߯ojy )lEj+?I=IZC.#5Vx.?Bup>M%֠? fŗZZuxJ^iJȶ ϓ440wbEDFgbWP܄]FIahx||C!I2 mŜ/U5ů[ݦOv7y5i>? A|@XhUyxS)n 4ac+X(:>~3LPЙZ#$s^z9jUstNֶO%~ FX~sd)aƱv}`5!8~UIؠi 6x뼕 >{IiU`ez!73my!:Nӷً]\![D%%;>izI;G s +9@[%Q=GYdEz$z+N\JOR &.oՓ^w7. JTWp 9:)6g'⓳{p37<g'"Hjt7ׯwhC c˞ߛO3噲['VuT8*?[Ub̠4wn~9-OC _6FKܙ[7#ygKn@]`}L勇Eˬt7˽ Z2K{^j-ɳv)]9Dy5CDjJvV>2S=f2 ;>k&We~__cqif#MࡤT``WyU<حuOi=\[]YD swlىN`[Ɖd[uAgy&^LI b,L3~a{^`bRtP8,o *+~IyE|B641ՒdJ x[V>o bJZYװR:KOa#'ܑsUFuP:#\?}V}_<+>K!g~l߰H\HUQ7- ob[OFW%#N菇]*nU{j I,}u2hcj)0bcO@?19xy6u;o[mv[IW9+9%iZe!|+#R0>a+wޅ'Yi2|97Wx6kT-X ㌅Ͱj) PO[3ͱ.)Ms)˫j(|S@%j>_ʯNxi'()MG*^%5Loq#~r}Q E+H+'i~͘hg֥HNe_$ ɳWΚDٚԻÓ'qAӌ䩴(Y]W3"/GYq<3Y({8'ʭAr%sT66N دZG $Ij)yw$d0QUlRpS)AfPc7Gk]׭!$J q GbQ-cFN2 :C>: tZt[#/ɳnӝG̹'fȠ0*&{_2)AZw .iu{y^^0*l>?E.eR@>rskˈ x˘{PזzZrTO3 xOex͡)*ț@L-"uV -A3ZS' q8cm>R ;`kRa;ծյG~,kGBgY,{=E}Ϣe)~}otq]&DsCaՔ" f<=\o*3D_Yh2Ljn*y{NJ`~SZJWs*ѩоᡓWKsjMZ)L/"LSmqRTظMVvꚞH $js*=*^ sRi ۍO^@^휕JTr<=祇/ۧBKGnEQ*=vwu~|{o^|7CJBP*TsR&q=\U;S}(pxvgj秽}8ۉSN>G˳_G;?źk>;zY?,!l3kK(,>3Ć!<5p񂭅7м^_V#xӳCuLロ?^'lx 0gj H;|~dJvctQnU6[tq5R~2"IQ:iK3o]r߹z{9Tf .IbW bdYޤҸr&TJ5!0 h IA(DGdt1Ewk ȵWsSLpYrJGD@0vV~G?jkw_kGg3#_0Yf%`f YfSE|1k NU$5$k*|!eGxиU'mm@w:u.RO$LZ#ڎ|:5토% jxˑ|Պ?ި+%JU> (6>ZzIJ&fyQETP8nmti*`)z={󹝃-W/YuwgzQ-g7lJBh'P[lW`H9,{on Ĩ1db$Ϗq?B;بF-AA AѨ Zk?5H,DP‘(}tfBəwZ{37{q $OfoF2y&(NKOUg"K=S|If̨ 밟(B@AEAIC;r֪B qvG ]WXCq3 @#{6>SDۨ:x5{v-ڣ=2.gF ' `3 0ЗK1 ˚jeCWf >.$6@JȖFQ=i`rP6F,%{@\Avr/^{;zk<O+rpВ):Qڐ|h9*!|H 5dT҂q"tCֶ!|OϨW@wU6S4^*5UOhEz\\ r\?u^F#`V)>."$ȴ;:&5ׅtupxND a*=bVn'%}H4 ff:c/܅2tf٤_~FTQ #Z]8WghxaҮMLLk0'ت;a ,ÉeXQ7g>|r- '8ܯ{/S7[Duo, f;|w-/V;1~8UEw_*?$i iŨ4<`TiPy_u䀘" ~%,:YǩLr uN[!˖Ute,h fQ?~|UT3UdVם$KmbyҞA)ג!tu4V%l$o'{[S|mŦh l>](EO̡erhcs{;wlF;Et,UxǾSv.P;gx/`Qw}xYRqM尪KȆ;o[+7߶oڒmɳ#xQ e\To{˽[ZNk4sl=dKn. T׋Y&ۖQؿ!YQ1y E+m7ub8yY%t Y]Ir2Q>k J"ٲp]en`*ԋ4zoˢ7BcL BI00Xfya5TYO|̢і+V ̌."ߟml (m:/FJi]t?7VTC^zml!7]DխB9uoF"AL_HଗZ"K {'ؙv|ìo*ë؀1YRq,ٍz߿nVfJdb\rB7I2zF'F$ߙO϶9ަ!vLt*?˥fڇg6\WRCHFr:jqFAڏAWuڸO:eQKm;DKB-.} ׵FTu8 BфvF? V4\m h||hDdr_QmÇk5~[r}'ë}Uvmuimem5mcm,jkTݿ Ϸ uno?Ϭӑ;}~_k 7x!~Wn\繻ƹ gwv\ߍ;rt~nyݿ'wvn\(e4,Q|sw|Fb7fk@G|jYH72e>*Nc׽h]˻'{0wY|}:;/qo%Ŏ_1Gѫ::>.~D Gs( ] lhr3}ۛ]HbZwo9bfDaFES]CE֚\݌қ(z8X_E@읁@z#ZVH 7>?Η=Yy T6)v HҜ{ i#:S>\ݞUEm%8IrqI *f8r?^5ͪXIަedI8Ub(^SGv(X:d_ 7Io5 ='ϕ;oa?GK}]zF 6}VX|`/gXX=Z_ƏH ٚ[̕϶O!=EM z 4`j,3^3Ng3~?0