#!/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=af46183982160e6e2dcd66b98c9e025a # 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 }][-q\Yd2\e,|d:k˄ V4ٲgplA a bdr"#4pL f|hEYcW -!x^^(Ԙւ DBBQs}Z` BZPC>qBks/v>6G#2E"\WV:|%u+@JR_%eK h}i 3 l$ڕGRGEH2:2\L$=X* :I}վOJ+$ġUVǪD.."I9%„6V$$Vlr@2>+2WhhVx=@~~'  Cޢr7f,޹tZ}iҬ.wC٣π+\tJP2 HMM,p!mB \7m9 pe{f/0T!bTA@7PD٦6\w:#T)al9= ”loڜׯIKv,QՓ\aʽ=8bqS l̩2x#y4Ҕe8<itF_*7o%($R@dؑ'B>ֻ4֝³ jYWAo=v&l@{*48O/<i-4M?Lc5s232. QT*%?xA^$*){En~2_UZB><uEmh.Bb/BѴR%s2+@9ܚt%MZ/n[EmR+@np!c+>.Dc!)+慒2f"YuѐB-UC%GbD9? l>I|o6tFt>γSu%Eò- "nk2!L6Ct 3p,V3|dZܠPK\E #5Ȱ?"Bß <˔ !ȨƝq3, X8< cߚ[l?>8 P2 :-XofXlB=m}!bjdNr7i۲!2ߴE &h'TL?Y&+Ls }zyMڍ0p!ii$ -㋖MBDRJ,ϥRݢmwe_ue|[)̔YYB#}a~C=/ w ;* #hI X X]&0f__QJG_owkwkwkwkwkwkwkwkwow밐9R?,O,.CY9}>.#ESK{{z ]>GC> q_z_B"J]Ю;@^J̸11zs3H4AO4F3P`!l}:'ɣvTG͏^lD@_ӛ_rg' G n^0؋ySk[z!?[-qE3KA3 q#'ƪ0{v1>$a{@*!]'ikVYك@^'!Խsx/a%tz򦙗کvŦY sTm9透18T$X'0qhoݝma?81?}DR9ifQL1BqDzbX0xӍz^na53FiȚ(CʐҺD,Y$Ddb\;rOn%$[m#E׽VZ8O΅3ūwEq&^}>edT{=jYJ=5/m=9Y"79|ԖZd Z' Ř׋LuG M MtV!]:7Utʠ~71O.V5)ͯ3ꋱvۋ-zs{ oG9/.mEP&26 De`PI^` pi?(MwN6fwF:lWvnww/vٰ|:G*8dAw^^us?['vcugZ=jb'b]D4hg;쩧#3ڪğ.;x|?` sPfg# nGo*z^wnN7c?^]5aGo!N n9u˸>?~r{:{4CyE) >40L 1yo~*cOk {ރE37ŰqT&@rY7O>dG+eoJԺ_-˟O gZ_֚}`)b}~],I}bd.][٢-.&eҘWd_J{q2ٟՄ]pe+PJvA!~/E‰72RϑxJw:H?`F_ xh`+%PVІ@iH=匿jI/|S-Z& kIYѥ;wU!~b4mӔfc1zI|mWV5siۗC|uq[I6FAf͠=*u$nd3%dٍ I^9U _-u6mE8(3lGİ/.uPAM F 2elb÷2󦅊t G:Zo&A’Y[h&}$;w\s4ɖ.\+Yۭ|jMu|uK7 gjDX @=Q7a#?hHATq}+~ngv?;`Dss!>cu]X GXfElJ스pyHt6J7}/iO}'(C(0nKCN.ja4P^Ÿ-THb]@HR"#'ZvOF3?fR_I:ItRI4O)6Pnn70XۇtUT5d@1;OxGI+mVW0p8n X;|PZ*k;<ƒm-%Mdن>eF[BmurUATGYrKn7 w~=$/DƦ#vabvC8:]R|ч?nn&7zֺMF[B.rӤqSXg^-2 E8j$``Dۗ7TcBpQ/3xDy 5Aص0?*_EAJ%I^P3ʒ*+ RX)x6a'R^<KW4- 8J/ gPppMs>ExqC4pr3!wf @`+M޻ e1z1OLW9<:=.09#.iZQӳݭ)qիzԌ9jfg< a4]42En ɀC`12qMPfL3L5w'оA,#HRuZX2 X.-Kfk1N+*-|zV++|K|(ӧP{Ep@"%rԘ ϨM:.yUܭ]`{PN4@I/+TS!cSr88n69+B&u \Ɛ@y:I?f,يjnɟ~# AZBAQs`f#ZGY9{^nIK&|Cį; rp.R 0߳ 98Rr xAq.XϕxAdtW(>a4IDSUIu+s(0/=cyŭïQHdc*&Qƻ''z?^^vzt$ ւ *ӨRcAyVQ ]ji[47J5" &΅JVB;KCזEn9`#vCt q5~lu3߰NY[9;g{ ,9X F x cPW0?of&ӃnS"t b;4`lNg39NP7JIk=F#eݺL=~Ϝa&u( 9Wd~JӍj%<]΄P26>޵2 =rZE7mfO"dq$s Qsx'w_P@X Ŝ\Nznk6=E,*YC Rq&^HLl[k3״N<-m> KIf qɇiA~ ODL.fCŴ,aqPo3DWSG8 hwW:VsQUɼIPz|cp)]+~&9`Ț{+utk|\>x`_$+Ԃr+$T*^2$p^:ojA yc6sA%ͲǂBu %B?{&O~{qq)XqҦiDm̢-%G4E }ȉR_8*Je+a]iBOȬ-U7 gN_yiN }j>3ʺgu"j0pԅ}t`F0P"d5zCQn",0EZék5z\4{$E\l'SUA?S$5>/)juWQ[:=`.ԳjFf^AkY̢cw"O!o؆]܁F)IJBN)vA*'Hie("[0MËD^0G<0Q/&\6VWq: :Uy.PQډ»@.LY>K.g r6ڌQ39<=[d44ۑAے+"U=3BWѸ_PTS0ćG"N6)C&TDԓ:Q /|/PdYz)x~obAznH^Fk'mF^Kt]۴VRq5i!'ì*p"$ hEl oʌItY;&A2/)LEaz ze7>\&4CB˳0x0ӆF~q{>6"}HC!1G ,mz1d\QGr%?۴ɐPfF=Q'F"_:Kk^UozJ}F)4bm/9F݈ h/U@w 苜 1,j^hpUhWHӭ CH ;UexSuO*^N×)z(Sŋb&t)Sk#ݑStrRGrȶh3c| hBr؜5y~ݬ{]4%ՇbC2U8@/&Gd<=}7rE{+-'(([[5`0A*s%kisٖ+/ƙ+.0I4􀊼}8a?p$ )"w~@AIrqk`нׁFƠb_8 I/AE_&8:" !hhgijy]$tQpR wNܽl{'4*V! cwQ8&0Slx/&۬@^|Z@ 5c6]:`9q 51/xO\ %2A{<5C Qg#.T+YOwwׇgV P*n:Bmomz_ow'&AY9(rd9TSGZ iڏlӊO]}'c䲸OΆ[H{]#-X8%cݚ硘LꬅUtܶ;LDWqmV~!* }ABq(31ӍZC!sb&̖͏Xcw6D2hl?Zʷ.H( 例G3L0J!E=N9P_-h͢+u6+qtUu-P徥3|YN\ <ugg!K"L֝X܆imX\T5tnܮFD]Uae}%_=S?M_ e??Y ?g3W{JVI4'~eisgyOG |\w=GWdAy\:$D8: e" /n.mJ ~{GU52j:@J-wiUu-oebz8^ m[gG{~Г D8=tTfݮ9 3n+9ѵXjЊ9TTLq9nU}.ƭ]8r. .f:l^<9zK`/ Q3e+nmn7n*1f42 [8}j*a m0{9ᰠ[hzEy/ϙ L|>9n :X hA "9;3cCkLq'ϩq)>!BQ[86!UhIمS7O^!ybp>\ # &12@8ec/]~4- N | _ԡܦg=t@`f /C8^ggVrz4ج0ݸ jJ/L Gh*|r^w,HQa+\Wkg񸮶or4>=X0#LEY/PEuYH'n[8.҇ސU{BtSt2zڣS KOCD\DB$P7i iԚZ(- ^LfԦxNo>NdXS10M~hwЍ`9ڮakCwјE.+*- .[YD[l91ARCoɗc91ZzS)P6n<dZ|꺶4Sy.w^4P ^E,ƒ!hLfi2a#s 2B`bwfih.{ O|E 6 ʁ5U f!|8DД&[tb˸K&5NliI=vHlcofCp7{L""~ c2  E҈> ;*+|jUn}#~<{2C*HwmNJ &EAR5GH)sw Wz;x|UThb  x@W4s ǶvnG;g2{|B2B JlRGfJҊGc ;A^lP׃^&mL>2tC"1FfI,B}C2w h9Nī/S[{YI%˧@Y,+;`ԩnn\EnWJ@exXh :d/ *#?JGNʎyQEz5H"Jm_m6/Zl|ņ'X8 XBޜuj-Aoh"R$L':}lJNt~+np\Û+Ž,sa*WЉBqޑgk4-=BkmD<;KϮP],D{xE "|9VM|}?bFGړ )AXˈr!6b"c6Qy[e?ܠ6gyXmEvO & k*h9d\6Hdc"Z]rQCɣ+_tE[@beE7Qe( ^E)f͏[^rw*^qX wt+n(*6u=מ8,d85na/MMw VZLI[GV0mo+NwiA2նFs5UwLK7kwD3dY'Owߙ*cقY T8SHU6jej&Xɋ?D^0-OnЊ-7F\u V!lQ[gm2dVYZO 캺?:r?ǎi7Y{xp,[f?Y,g3jg`A:N[U=ҟڐq@E2\4Aijl5QIZy|dYt@pC(O_欄+/D˙ l C,S*@^yR$+ FUqN!EV)bE?et.R :Q39 BƐ`yd~BDEtU@EȄaD#B>o%WNb~gTj.i6(jP*u6(㑑Sx,FCI=lh[u)'_[QAou ,K2*47JBeشF#(3*U&A`#0o ' T9Q B1o_ .Cuk~ `.UMH^&q Z YU[zƹT)(^>(#kZBq;*%E1N+T"gjz||]cRqj&GM$I6V:ֺӺ.Q˕Ɇ~6?ǷڇLiرd] GsQW=Z{n53YN49fd)Oy1/\B>qߒb:*+r!xБ7WkrDun85'IY\"4i7R"EJ6kS&߄($ewd8Lj-dZ55_0ϧ`epXd2d}uX#\8zr,$Z iYNNd^{fœmѼܤsʚ ;kuC'.*\؝r oBΉNG&rێ-iv3. 1vmN,iZ݈PQ;:mRU 2 ={Ɏ JZ\8Ȟxo-TyV8bPWpteeAИk: rxBRm:h X #1CK*%q#pa3J.!Z8OUGˮR4 Q5'b #Kjtm7)x'mf<u͌i.-s lն'*fa:Kd7#a/xZԽITn/u.~ӯ=>6?3{=g3&w`” ["i[wDly^pڎs|C̍zkwzo'#O?dS^?2jLtKMp-#7I| B4oSF_AEI b%x̨;ah=EabT𒸣}qc&U@Z{)J; >~qxu}w`Ev(Hbyҁh9jIiz[vSOi7Uwq``Z!r[69sCXTOlBѭ$ZDHUk6Ppܛ{>\݄}~>­ &q|f!mڭsn62Yp7V=\l2!73}Z<*?\u^Bυ*U}%r"~e vfK(<CswNe+s̙bGel G%bٓJxCÂ:I^̧ ($0Xb6X@s0+l^-jג*`"6}@i74Ĩij:;Jí`k$kGhT!qJw|K΍uqaX$ ŋ/ o$UO'B´,Fnp4vQ6f 2%~IRnx2~ԠlFV6OߟE7A|t|J=y#bx']XpM9id$5wa~kQA~9c2e+ڝqrpK~ǯvÈ~Gy< `F0C@J/CI FF$F=#'T.Hn9\8{UӨR^"Vn^j>3[TijQ CbG?n{DnV"HZ夫(\J2g_cG\C6N7uIN1-(VZ -<=hwofz*a \ŶZHG?g[!vXr7֞ԝ[es9lACg`-ṽ@2\T|R*gee FoU,j`;9b4At!%9 n&}{Zh|(d}M~f3ߙw;g3o,μ y h C~KfcJfphp/wv8E~ { ԥul1yɕ$jakRRYTwbxɭR J8FIn59 n]1Rp%mzXXVj#^g,{a%$D˅ڥ^'f<fNY .SڔNZ=ERGzA;2nWHsS?^J//I0^1& )k(_RG+ԿrJλ^iJP5ϓ;D#*<| m ^,?,8' K(_p7J ECY :t %~cj5@/6Ux[iT٪RzNFo} f0 $r*OX*pގF)5lc˃E+^z.QCH&K,YuLeXoD'>{E]L5({>عUZ`eҍ倵]k\D@}%%{ir 8:0Y9SPP}-뢘jɑl[q]wk*Aٕ`u Jy=9u8MLm'i*) <4g1es:$|.zf'xGn Íf?xtv2.ݢ==Xgnu'̮:RQB 4C(g*oBJ]:]n?V}.C~OĩL-weiU'j H>TWef\އK^5`ӕf9KĬUvLJ&Zx5%%V2$׎ n\u{~^/cܵG[r4/ yx4QPr@UX,j'jkaV_K,Jy"'ւr EA RaXe(Wk5 *dnȶUtݷŕ9S0{YK4P> e@/&M ZK`_Kx^L^obkAOC9bǬgK|CxKV>oHbJQ^0Sڂ%c5:.ݟUTuyc%ڧaY2Yaa=7`OMP%,NZ*#ʫ#/"U% 1䩟=$D>SkÊ-8V:;z TsDV-e"[lYRUl%[74:}sQf_E)tu?ZPB0'_qV \"HBy~`hh+"lb`ӯO$:l֨Z@ ǹ S$tDMEZyi7Z'v? qu/N? ѳ4` j.zAy:Et'o4g˺3`f,k-'N+)ܪ-m1 YdbqQoIjp2seӕUUgG*V-)"'~<rGlk3mDz .W6q$1cE 5: -D|t}d9A"s:ܘ"gu#g-ׯ m 4݉u}E2.LiN^9kWp5A2vK'CdRZZbxiɽ$ލGUzBpF\(ŝ2T?~բ=PP B%TK{8P&Y$( uЯD`kn1"?ufd8=Ztn X};Q2v+83Z<@wnսTC55:wA5;D2 f*~y9M= pwSNS/ʠAT:=BU"s=p3}r taA]**?D͘=EV)uhXࢶᩁr0a־Vګ϶_ƭ3k&fɘ >(\V[_OC5N/=q }.]Ļ4+BƣkrqyL%ΪN# A% _B4AFA+„~!(}Yx'-9;.{H0_C3028||ɬ]sv_B\z8la܎U|+F%l+ N pFqHPtwZ. A3sI><F?\;nasP)F$/vGa骇dҦ-A ZSl'HV 3;z}ƫ$c_nT6W9-V*wTh}եԛt mo>ޣ]Jm.9(>^uhXwqp𻸹ώ^0l+( ,)yra~ދ=b>~}7zC0y~~j}`i7P '4)2FyĪw#$BFu9ZQa\ qtPѼs:HO>46( M+2cr;8?*A](\RcT8F-heC Zxf8b3nr7.6Ipoő)`zykDyTAXlajܥdD7M .ͼ 3}Ps_Kf O/,pj]r)Ů@F0<ҸrZOLӐRFV[?h ɡ(G`t1%w1d ȵ7sSLYbJ'D0vV~G?jkV7?gF!# sf Yf%`f NY9<;OR%gDϟ 3Ey(`Px.?&DTnm3E?E_V(-s4rmJ\ӥg1Ԛ،U˒FY$}h搱+CYGyPvFB)ºXUD^Aj`v'ZKgE?xhY2PJ U\]DLl>TzDyazon`|1b@DZy)>e#\qζO-<&{ڟ|K z '(>90rNso:&cfY]gm D둌b 3ؒ|j` @/?,QK6e$桘{S&j3W73q.../tLȌӯ\EAʸZu+vs{2 *!Pxp3sIRXB.qOi&' Ky؄^vxE(܍%k$SAʫ_K(D>ؗמQx&B^ ^ yA%E~51)>cCNJ:=7$.L6s"Q3x[XWlY:~@Y6NZ K!{FǏqа+ۓ]^DS.fǴw <†NN.` m*9|LIFEQxjeu@x2aI8[JN$M<^~-.EDDCGAei%jaYfiHcYFj?F1_^Oox;y?.ڽkPs4%N)Ɲ{j#r J;u0ve>GSZ@P׺W<輪 lτg\~mˆ VtëBb*&g]iLZ#J œRMh||@ nHQ1)8G|bٝ%(=;;( V&iGl6*Qu+ujZ1ce3#$ی tpQB²>2sPAaNǰd#!/ 5|߳ͺh` [q?@Gy.JTyH"^A c&4F-4..O}V(ɹ;sFP͝ڏ`ayL0b.FB@!JG !A(7\R`J%,YKeMˉʡ]Tו,VDO ykRBj4/݆R֛BD/MIK\D¾A`] {] Fc<)BP"aF!J vYL;C"|t^+~A0'b!ȹhY\qNGW_Pl%\nX#!h]kDЭh O6 g :-P;O KjكeM%\ 2C[w4 }V^#d"Wzx~PR8%'(_@> ÛCg0.o6 y^'uS- 7NNtGNj>u^IcV)l>FxquuBvGw;yaR!!`[Vn} isw3 4 K0Cyk0'ت*bwiV lC,TS fnیPTխАW iWU17DTdOp=?DL5z;Iv@(?!c {9R^a#KX] xy_WnIZM/Ovr3faWI   [VDit=&(B.y{O,y>|ޟd`~6o `fBY|Vn0xgsB O}f=huΑ^ ؍Gh E9sTD 8YCKZ+n*_K]н3oM~?9\}CGզ,KE5K?썗*/Oi)nki[qB`c9T!P/nNCbG{7Da` I+.׭\';[ GsPȴ-Q)`W\ ],Sv SA^_mZ}n]ha[G3TEFYCe|tO "ye?HޥcmWVW>f_uM*UXpt\C^ml"/\խA91mFA_ZW-uP.;,[˝f%.W^ 6ɒ4.[fNuZ.7Sb+wWpi܆"Xs5:U#\F'ވ;>B$2{rI.5ER=WRC$Fr:jEAڏ^N=zQ3yy&/噼 R4sأuT!] i*"m;#B<%&9 H9$g