#!/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=a4202ee66f53d0f90922541b290442e0 # 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 z~0UDt@Roj(vwQze(H?]J_fg9KxΔ2f&wc8jǻߏzpp{<9=cjv6WƏ6^>Uk?ITx/<_׏jrq?9]\E/\ bhR<?:<(2T %{V6sə9tu2 j{BȻj&Eur:Yy]ć*GyW^gǽmEWdjʛN7盈Y$)BpX+15'PVzHSJOkǽ^ߕAp`[VA*?V%Gzd WPSFUݕ7KIЫ86BUa餽ՀZ<Հz<@j@#p^xP NЖp\&`Hߩ-^vCu h#9nO  ^-шMÙP VmM+`Gj̆ zD^Pԑ e 0]I7w|83.mf Aź=kfÉ/0T!bT_xA@WpbMmj0u S /s {{*)! ʵ9 /_foX&rU)bqS l̩2x#y4Ҕe8<itF_*W%(S@dؑ'4üQ[; "r'e! : z^Ӊ7'^@V4S88}|%Ifn iej'%s-\brK[I}eUM?8g㋽\5r[d(Gؤ1ĸ=QM"^m+0;QM+xh55~CIMEZ5<͸ zQ |a m -;X,fS;DwtXpt3f9=iDmIޙ:0LYlallcpX'|y7Wx"lQɾhw[ڷ%2ھM3aǸɬ?\ݾn !p)ʅi5"WQl}P,5F\j$NS6tͶwGV3k֨?jfp=Aw4gayfz<}TuS9=؞aМ%O_ftn-,9]yRL(T*s {L=# oCّ ){A1_T~Y~" uEuh.Bb/aixjZ)ɒ9S nM:Yܦh-{lAEYw-"hn Ej1mAB["\Id#,`KhzCŪqpӣEѣNb6$ư4l^3C;L9x%'Caq3J 74mhq[h+ odcR0D0c.jZx(Dv8LRQ +p/+1yc LŽjY)4b>Ip>< cߚ[=l'#Bk:U1 sXX]3<lB=m:} Ԇ*3 4nҶegiQ摌BXt1YqtᬓTe0/5"h`{G(d疩o tn4cqkxaɓϹ43Ljk=!OwF3FDlwH )LAu; ["ATΌ`텟&X1Ѝ7|Tmb>l!L*t'6A酛#hBH6FKL@|xR7Isii$}{6oe8oyZ0S5I🳴jG~ ߵP83C Gê~h'ɍ+Hz-k<&^ݠ; vwSO4Ǘ6]vK}E/\֎Vj7G\]wWw߿]a!SR/ǫJ\IbV+ɜ˸(7/Q੪v1G۫3W`^9T%d~& TzW\ڕ%wŊȰh'qR/ Wj)#ؾQ?ZUfղ9W 0ЇhMK15&FRonsF}3Hqfrh&SPaPsҡ95D󣏃ծ7pih"^|ʙ*@ңn^0؇o, k-h],+[-qE3KA3 QoF0svч .6>e I98 ˠ7x5é*$ZiZYRبJ^jy acŭ)1en8V:a ;?V%,f/i10Dܿy xZ9ֹp7 j|㮷id`)OrIE%ߥ|O~/wbVXr~RJ#YhHZqsIqCkZa]-hz[MnB8ari?E^7{Xߧ31H3=cX^Md7ծ f.L|\=5̉v}G1qǼIwQ+ n$ "(2q'?~0ca>Pi E\ܜ R܃LA CΘ~?⣽!ޯxxTjY} x1Ӛ,KAŒ'!Fpҵ<-"ڤLR\i/nT&; vgJ.(H8RF9R݄W# W^JI Խ;x775"0z|D-x7Iܒġa0R61p"4r[UD7mx4%l1_[_ٖv2qsyD\$Ic#Afm8E߿ҧhHj gI^Fj@A[Yjd0I&Nk=uԩQ#>A HHg}=;xίye5I:K$W}{7\soms2tSR^{ц~9ZFOU܈[0 '}/YT\v2!(1$oٝjr+x[=9ץ`UarM$H`-j4bFRjhIC3,0:`Yn̴+fR5?sy]gL/8G{ ~Lh&]?BݖiG>xDg썂*>7m%~`[KN QEeA%x?<]taN 61eLxh;"wC6E8^8P* f%mv^۩#>(o`xd3D6|#7ʚyE)1KJ`0#XsG!x-;V D~%&=/!d!j9O4P9<:l!08` "A!|{(RMr&W85aSxI^l" 7b@y5Li ^`iezr)P|oʾ}݆i[Oy| !jˑM*iÒ9ˊ2R? gy3hǸSKKl b/^@A~ f8G iKrҴ `n#?6ClrO&elIdVv})bKeDKh"hN.bnqwɳ #YmE+2 BNQnZN((iE@!QD]QL`p QQݘ:ra8'.Ev[2/KJ ,#7q%g1 nr2t*4$Y6UU"s0/\f]nDDKCg:ZX=9Q\ۥH?nP!ܝ2G7?o9Kd&o 4#1K /)lD/D#љ+9g,28fP'܁3܎G ϝdX\T=E#YaꤰO(.1!Tvc_wj LbRMEŶԌl3vHj~Tof4e&G4ٝ Z>lԚ+n@+K73Ip4QY;ؗOf3AbD9{uue"yмbU˨BQ+.1ߖ653PXV+\ӀW~1}QlCL`6AG7EE8C*n_? ).C8+aL5cF:^N? t,F&@O$.`.4qq['eXZyIeh03ه|`\^BI4Ө7`P0qחhASzD8d+< qQ/Obu QwKEnm_ USSr·5YZ~1!0XsfL.8'sU41G3lơ֛ TSWļgI}},K懽קKBIAKViZmT4ljAh.Pыx3KZpedcUSM扆-5uU/OFdg`wRo@#w)EVK|τҐz;g ax<\+l΃nu%sˢ3΄6 }\̚#ⴆD.F# 6|M>XUƶUdC_O,eLh:=mS;!kQԪ+5ذHi 5eEr ĦH5pmlPۺyaMDbRi0vY3~on09lF-lx౎Jra~ ;@VOI>K(yX'u&%PsK9JT@sROb N(q$b H*5J3jѻ;!x`G댤nQX,QOy,.ġu"&C9Lc&뵺/^ cӷ*t7MJ8]m5rlY.'E/f`*qcxzR"N$D-}i4$99I۩򇣓9 RaX )GBX$J*f/>O\&ԤC$1a '2 6NԱ"d >Zqw%.qv٭Ɋ9TT Sm}QlMW3E2Gc %hЎ}@$Ej:gJZڑ6V ]Ԛ20nhEtK/Ω 4jp%6 w^=qRY- RVV2dYpOφ6CB90׼! W5r_v&)Y+7EH&WJ^i궥*4T%]}NF]=G[V)8;˥R'7)*WbZMR7dU؅S({X ,PJR.nK%[34ʿ2{SW(jDsCx[5D*lbU"vcQOmHIo:0wY*ݩhفS% !}3Sx2 CwyفcuTmohH L8ٻ O0׵W۵tmb ldka@$ye>@.x o&Ÿ顩΢V3K7m!"J!s6)HJ]V~E7I40HK򇠿JOI=skV꾜h6,~#VCloGB*b E}!(F@eU6;qMIrBY.&Fw@nC s>p&Hi.J )Gkä0lΚC&Tma.t=TQg'{NJzj/!X [1FȾS)G1V5Y-A2%Z_lcqN/^/F~ _ԡܖc`["K`dL1&ߚ5)gw5ߏ\ts (NeLrIxSt{5ϯxO2*AwR㹆cf|q4uXTغ/x|.+HSvw@IπoB£mRP{] .>\ݫx`oh?j1P7&~4(:Ĺ ӈe#v㆝+7%FXC9X Q ?O`1ж틛.Ztp3>Q`d:=g;M\qi.mc[Xe4iV9E|M{XeG"{|B8 s!ѰJ#G Y'KH$W%)3Q 3xj!ކ?%d (/ImPv\>gӌv{$yD%UXVv2 #n^寧y/ȤCT9&-8z}w*m2(RfOaenjTOcMfKP. l| QbD^Ǚ$ԖK j-H(PD:~H+LxBvB fd ܣ$q3\A JqOAyƱf_dj$3_СEؿt/K|q37-B ZIAv/Yq|/x5I&OOD*d4fZE&% eZhLS]_CLt@F1Q#Ȼ:|4`=lJyqES,'n9 UEٞ j!qV l\I{!n,5xa+Ŕaғs^N_Rp φqS =EH<\RW+aQ:75]T8R-Moi.΂8fJĤr /u^qOJ !ꈐPye8'>53=^I~fPO<וr'IPXXEdtL2p~]ܽ\" fJhN}tSLO9uRn.hIkvl={>|_3˟I^7d/P,{'r/r/_tFxpԚeYe@/\?< t(\u{@]j=T~ԭ8Fb x<q %v}r\'aYK±|"VYӜ(f #4l%Oy*9<+ۤRTxiح<5"lP݇bbZ)_Jm#ԓ~w~;!}T}.Id$ O@OBTj}`AV PM.VXKXC;5rv\CηG{t ˢȘKFy *m(2/6 .zPJ*#vO9@A'lT83Ak@)_W /|4cߞǿ,UHOeaR`n8%]Y4& D:Sx75 |n5=5^BniP24t[',9JriNv1>sl^K`ۃl96ykXn<ɶK-SDn#'O;k{I7KLa%:}N\1< ggjC^KG/E̩4ai[q/Ep(*{e2ٽLgO%Za8<4H,M4T'ܛ^,rt%#"? L*ևhIG-!i(I W~܎l84s`kRD3$pbJH2Mc12HMɛ(JTk2FL0!F5u1Z' eeғɨm3pϘ\rSvh",+4 CX@d.cT ͠0JT^r _|ɒm"z@fD1ezi'~W!wuܠb'1Jp\/v](({*+peI8e : M_AO$OWyRAqul\71!NwjVfj_ uJ ?lrصDx* >hr t%Tfb4M9|P6qJm0yۍYLzv(ގI0EWoD3m d22#Wa2%g6)Q y4]MrJq2@jxî&GW-A#Y*dYwshPO.qOÆN{3dneFfߺ`);ÆXBS|VbC.# }1Pd[46~ʵZؗ٫$lz7'$YkȓvôPK"6 7s)=F 5jyjhECP%c: vڋ.LلOi;ɻ0M TL誕_m skW]4mU T]4DXƫRSjy  ɦ[5n˨O<]e}4iJ"L0ŸZFpa)mJJҳ2͡`&)Bm fo scAߊbƶqxtp{gz$1Usp>e j66lb-H/~E'$a}R1UQĎMHK,y*.@aGd&s5ZXTCdl_Fn?J9֓B{_KC<_c~sx<]Y]v֞>r'r'rC>B)(-XT5UᑽӼ4vS\uS 8U޴ݓnsG*ტ`iy**\?reiE::8{۫+is%oLGlT֠ؠ]դ>pQEsG_W8 rV·=ՕIR~^d<_X~Z[ۛV xjVx ѓ1rd׿mZZJ֫gQ1W/75B݄+i_s d,ݬ2 *`/2޶~}3@- 55{}Z[D`}m"a\B1s]ebo}u"ꑱ9] le~h'Yh5DT:5[H]҈!8^/#m@Dޛ4t3|BN^1{'?^QhO_Y#\_AY{$bW\mO!h!tJV*MpT%Y4+`["4L)>oh@Ja[|j*< %m9Py;GۧPq_C G%[ogMݤ[b{89[TMXBKp w:> NOlǙ&TB[ B a8[KkODHeumSFXst0oTfB7X EA4mTRF#v632,M? /(>BO*]WsoFgW-jBaS^nq}^v퇥y8WgKgϢ: YϢggk˫X&k/7|l)X&kKO_3 6d8W( |G52Xj?;x8mHDEH'B!?uO&aՋ<~0[. WS pءJ~N\bCfI(3 Qzo[ ȴ}.ҟ1I&3KSfavߋ^@0Y Q`AW h\1^)L9|G xJ0Jϒׯ#ܬUU%ހyCђye8X~_c}#/hGpKe6OMzUdڄ+A3'[Y5VXBXƾGk< ê7 /?1(.q0ƚ&4*Z`&#Ge3T6F`f  Z7/h@=4v6`#}$G᩶}kRI~r:w=,YN(W, NtMK+)´.:Obe\L흐^dOџEj-`/cVX9 !a♦`<0D Q !sg .PfM :zGaZpBF7vO`s;/ r><˦n`8l .Ǧ8.O$v.3#vitFf!0 evLC^;PATU_ .Q<8cVkhs LQXw5^ W0ާ$ H!#Q!A܎2QD 2i-xhm7Ѿ !ݡsNTM%.ψ,f{L 0p4-x^.Vonjcٵ7ap] &<}%VaHDyK󑴒-=܍?<;+ֳ,hM/n+̻Rvr h*ngj qt^w99PJZn 9x!sX^ 9rz׸E7q,e/A@, hN_MS\%R+>!&['DF7fH+2l ޳(7)|FFD}a-9%'M sP:7D11ݍ#Ae:PN΅%g#sPu)#k_X}KեЗ> M C{x;!h!ܤG} Bpor0 ?!$,P1u^^b|M iGC`H= Ep֙gzќuO0jŴ0[8KFUY{-3-9 yh 2YswF=d K7B;>)93(t1(X(b `j |MnaRW5L aID §X[_Y??ޏqx?V.ÞS#x'?r#?r#?,p.wsdQҽXPJpC+nڇ{ a JDW; n0"ʢ4 [3z.v35%|m.@) )<9]j)7(FPedUQj/me=DI/!Fq%pQW qR ?l@UҺu1/$p:BCa97/<aVj%t;WkA `R, |͖Y.HkHͺWk'˻4(7eSX@k:H?jh!Xj_u[ ]@>F&Dˏul1< }D1 O1lA\u]f?7 26J#b%Aw~\GO5y}٬XE.ߦAiKV{ƫX=ׇ!\H9V XTJFeS崱%,ڎnH{zM |؎W9$VvZ(ȟ-/)zjjWVwG{%[ t3@ AèNJ:=A=d(JENgnu˸ޖ.B}M,[0|z.\pW雽]7DL vN2D٨}ip«g\9tFKMݽLx`j'\> % )| K*RP s Cqp%)$/2X CɝKsLIhԛh>S%q[y ZO)7cE[x$i*sS/)>RY]^bNtPwQ-\owsE^H]jP-)dxܖ[y(;NLP:0LHeߏ٘MĜtRn#YwKi@'6h5F/p v.#,~"\K2<` `V yҚ(7~^r ξcz|" RC:%.W i8&O48Snze!K+&co1f+?+ P"ݳOܘʵg0lֶ1BlZZ`Y*M4I:ͨ73DM2tz IxtO*i9gʫӝh&矵q=EjȐE/BׯID~];n<<Ix*Zczx(}o4ŸF!dM=4\uYfQH^,QȟB*Wɑ$#ȓ̓RleB ڠ?<}l>F?4`{MT<G8ƁmQu܉"i3Өst^ 90@]Qx;S:ut.4=L՛C6o6Q0ƺ7D}P`O,65 F%؄o*CH,U\?$üm8s#@0x|Z&̫hM0/dR!`#؁T@sq0jfּg*`wh* mb.4쑏EIO-uRn~Z{./JL8JL£ZpƱirF #493YR麡v!y !cs9 NÖN q;D"q@8G7wp6`R*~nk)w? @B;6iި>ټ(/we_̊o,2Sg jqr+͈+( eeWJt-_I0%`XpH34duEC9;ׇчC)QO! k2_1r1]0xH o6`%a4⌕Hb 9uʩ%竺\'IΕ{K?yxnjpx?,-֞.KC?yԇ,Tpv@ %B o{VU%D^jsRXJfYZJH215H}-6K).{ӛE&WMT=>!TC{|7aæX;῅;pg Ȉ{xVȴsw{yݞCWa<+ϽV1tvl?àN%a#ܬ )]#_"BZF)Z\ EGӞoS:H67(3$c\-+myB7na8Z_+@[AFCqR) QP7(Gݦ왴:qzVfM5.&H0po.c YsHdA@`Xu(zG4&Gi.PS+;XzGt.+X%Yw9nb*(hBTW @enzPJW*KHIt ju #Z% Š,SN_Z r (U+o¹,9IG@=0>6[˹!\~,}nzq ;{]~$u$k |q]9T}ދtģT`n+K:t7>}>7H#aR?鈀zGn [ ䷸9U|8bMD(qjAH#u?KE1}5W5EH5JlL "I+svpЋ0k;8y6eE n{K /C ViיF({fjOV,Az%mV ޅ8|U/AL(S4wExq+tIlN`-9WYw!=/%P G)\ (Z B%cfx[2+rA|1QGʎ!ްV/=!JV+5H:CA#Ɠk鏞zS3RGR/T! Q -QRNkPgk/#񙭦@ݨObNleӉlEj=s̯]ΌDF#?? 限zgArJqnQ]u7"RF:} ,cImb<6 RFTTbg^o85|7Dc AtR+gq=B[6hptT6QI[a݋7<c938tc os&bS"y6Bc%M dSIF׸TtIѤC$R9qhdeQ[2D=X{hQBRRJ\N+w;vz})X hD/x8q 0z!0|TdnL/{ [K]ݙ^8ZX+=+?6s#E-}Y$7QɡRS+YGVe(VȱaM軂Lzp@\nTݘ NC^K?3. f@D-gF1F|) ?VoMor#Ƚ>rlh^lG#n<pc&^ϒVtm/\)XwH"o)26!^K!r?C&h9h;mTB4dI'_GQv!53nz@MhOO(W+\>оCJ"ss^ĉ|Vw%wυH V[2G-L3ԒLth'Iݒ1KVW^YKAO U#bV %c#OYf^sY1TgM:l!ׇʍpy`qHGNLS! %k{SC)f*y&uXdV$[AZjPj7;%>6Vѥ3SUILEQ|d7e8d׭ ՝m )J{HpR&%Ml=pLiUg2ܧކ r. iS:%ᅂ O*]w_9MwR}KnK>  ژ H&Sh,R d'IR4 }_ )8 } ȧB|F.rxc)a2m>=ԙO{vCz3tu{8TƾH;lH"О? @C]` knҙ688xk U[-ڒ1e$M8=d+PhMxy}Jb5-Cf!V, = 26чvSiO(jmW(_iQ0yBAfjfde㾰OPIsKe漠i^!VM:/wEC, &sv>>2h=: ܺSMBf= *BЍVBfYAkm*L@t?:b[_`,z'{?r7l奤JnO)PȐ%4$ f!F5;I~/9KF_J[,t~]h#C${wYl5ƨ) .cȒb_^<5[ FXl&l ߔV7%VD"zFEF j{}LB孫nE,2M*EB#`a`.`1%17FO[|曥rQo|Ns޼(wOvn4<>a SR흷7Ŏ߾ 1gYvdUgT1Eߘ)̠$$K+/Ψ @D [(ef%f 1~7iFJ4Mk_QnLU\nMs?;F ﻽06i<,t%zLau't}JYb3/;IH:d4j hVmsk|>A!cE[G"2=f9ܱ@tG&3u!=S# xDs> jET9jDGN!X,N| ,Np LVx;O1[DvLcطbzCΜQBh Ec- IĬs?ysg(b?S젛U\˜yD#WҥτWK^z,>>]߿o5g?]]~ 5\Y)nB~ %[7/*bBR YZt$2OOOOOOOO<RU