Files
slimbootloader.github.io/getting-started/build-host-setup.html
Kevin Tsai bc9010f2c7 Deploy documentation latest version
Manually commit documentation up to Sep 2024

Signed-off-by: Kevin Tsai <kevin.tsai@intel.com>
2024-11-15 16:29:43 -07:00

245 lines
14 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<!DOCTYPE html>
<html class="writer-html5" lang="en" >
<head>
<meta charset="utf-8" /><meta name="generator" content="Docutils 0.18.1: http://docutils.sourceforge.net/" />
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<title>Build Environment &mdash; Slim Bootloader 1.0 documentation</title>
<link rel="stylesheet" href="../_static/pygments.css" type="text/css" />
<link rel="stylesheet" href="../_static/css/theme.css" type="text/css" />
<link rel="stylesheet" href="../_static/graphviz.css" type="text/css" />
<link rel="stylesheet" href="../_static/custom.css" type="text/css" />
<link rel="shortcut icon" href="../_static/sbl_logo_blue_32x32_icon.ico"/>
<!--[if lt IE 9]>
<script src="../_static/js/html5shiv.min.js"></script>
<![endif]-->
<script src="../_static/jquery.js"></script>
<script src="../_static/_sphinx_javascript_frameworks_compat.js"></script>
<script data-url_root="../" id="documentation_options" src="../_static/documentation_options.js"></script>
<script src="../_static/doctools.js"></script>
<script src="../_static/sphinx_highlight.js"></script>
<script src="../_static/js/theme.js"></script>
<link rel="index" title="Index" href="../genindex.html" />
<link rel="search" title="Search" href="../search.html" />
<link rel="next" title="SBL Build Steps" href="build-source.html" />
<link rel="prev" title="Getting Started" href="index.html" />
</head>
<body class="wy-body-for-nav">
<div class="wy-grid-for-nav">
<nav data-toggle="wy-nav-shift" class="wy-nav-side">
<div class="wy-side-scroll">
<div class="wy-side-nav-search" >
<a href="../index.html" class="icon icon-home">
Slim Bootloader
<img src="../_static/sbl_logo_white_200x200.png" class="logo" alt="Logo"/>
</a>
<div class="version">
1.0
</div>
<div role="search">
<form id="rtd-search-form" class="wy-form" action="../search.html" method="get">
<input type="text" name="q" placeholder="Search docs" aria-label="Search docs" />
<input type="hidden" name="check_keywords" value="yes" />
<input type="hidden" name="area" value="default" />
</form>
</div>
</div><div class="wy-menu wy-menu-vertical" data-spy="affix" role="navigation" aria-label="Navigation menu">
<ul class="current">
<li class="toctree-l1"><a class="reference internal" href="../introduction/index.html">Introduction</a></li>
<li class="toctree-l1 current"><a class="reference internal" href="index.html">Getting Started</a><ul class="current">
<li class="toctree-l2 current"><a class="current reference internal" href="#">Build Environment</a><ul>
<li class="toctree-l3"><a class="reference internal" href="#building-on-linux">Building on Linux</a></li>
<li class="toctree-l3"><a class="reference internal" href="#build-tools-download-ubuntu">Build Tools Download - Ubuntu</a><ul>
<li class="toctree-l4"><a class="reference internal" href="#build-using-dockers-optional">Build using Dockers (Optional)</a></li>
</ul>
</li>
<li class="toctree-l3"><a class="reference internal" href="#building-on-windows">Building on Windows</a></li>
<li class="toctree-l3"><a class="reference internal" href="#spn-keys-generation">SBL Keys Generation</a></li>
<li class="toctree-l3"><a class="reference internal" href="#build-tools-download-windows">Build Tools Download - Windows</a></li>
</ul>
</li>
<li class="toctree-l2"><a class="reference internal" href="build-source.html">SBL Build Steps</a></li>
<li class="toctree-l2"><a class="reference internal" href="misc-build-setup.html">Miscellaneous: Dockers</a></li>
<li class="toctree-l2"><a class="reference internal" href="misc-build-setup.html#miscellaneous-proxy-settings">Miscellaneous: Proxy Settings</a></li>
</ul>
</li>
<li class="toctree-l1"><a class="reference internal" href="../supported-hardware/index.html">Supported Hardware</a></li>
<li class="toctree-l1"><a class="reference internal" href="../developer-guides/index.html">Developers Guide</a></li>
<li class="toctree-l1"><a class="reference internal" href="../security/index.html">Security Features</a></li>
<li class="toctree-l1"><a class="reference internal" href="../how-tos/index.html">How-Tos</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tools/index.html">Tools</a></li>
<li class="toctree-l1"><a class="reference internal" href="../tutorials/index.html">Tutorials</a></li>
<li class="toctree-l1"><a class="reference internal" href="../specs/index.html">Specifications</a></li>
<li class="toctree-l1"><a class="reference internal" href="../references/references.html">References and Links</a></li>
<li class="toctree-l1"><a class="reference internal" href="../references/terminology.html">Terminology and Acronyms</a></li>
</ul>
</div>
</div>
</nav>
<section data-toggle="wy-nav-shift" class="wy-nav-content-wrap"><nav class="wy-nav-top" aria-label="Mobile navigation menu" >
<i data-toggle="wy-nav-top" class="fa fa-bars"></i>
<a href="../index.html">Slim Bootloader</a>
</nav>
<div class="wy-nav-content">
<div class="rst-content">
<div role="navigation" aria-label="Page navigation">
<ul class="wy-breadcrumbs">
<li><a href="../index.html" class="icon icon-home" aria-label="Home"></a></li>
<li class="breadcrumb-item"><a href="index.html">Getting Started</a></li>
<li class="breadcrumb-item active">Build Environment</li>
<li class="wy-breadcrumbs-aside">
</li>
</ul>
<hr/>
</div>
<div role="main" class="document" itemscope="itemscope" itemtype="http://schema.org/Article">
<div itemprop="articleBody">
<section id="build-environment">
<span id="host-setup"></span><h1>Build Environment<a class="headerlink" href="#build-environment" title="Permalink to this heading"></a></h1>
<p>SBL build is supported on both Windows and Linux environments</p>
<section id="building-on-linux">
<span id="running-on-linux"></span><h2>Building on Linux<a class="headerlink" href="#building-on-linux" title="Permalink to this heading"></a></h2>
<p>Supported environment: <strong>Ubuntu Linux 18.04 LTS</strong></p>
<p>Install the following software:</p>
<ul class="simple">
<li><p>GCC 9.4.0 or above</p></li>
<li><p>Python 3.8.10 or above</p></li>
<li><p>NASM 2.16.01 or above</p></li>
<li><p>IASL 20190509</p></li>
<li><p>LLVM (needed for UEFI payload build)</p></li>
<li><p>OpenSSL</p></li>
<li><p>Git</p></li>
</ul>
</section>
<section id="build-tools-download-ubuntu">
<h2>Build Tools Download - Ubuntu<a class="headerlink" href="#build-tools-download-ubuntu" title="Permalink to this heading"></a></h2>
<p>Install required packages on Ubuntu:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>$ sudo apt install -y build-essential python3 uuid-dev openssl gcc-multilib qemu-system git iasl nasm
</pre></div>
</div>
<section id="build-using-dockers-optional">
<h3>Build using Dockers (Optional)<a class="headerlink" href="#build-using-dockers-optional" title="Permalink to this heading"></a></h3>
<p>You can also consider Dockers containers to build SBL. See <a class="reference internal" href="misc-build-setup.html#misc-setup-docker"><span class="std std-ref">Miscellaneous: Dockers</span></a> for more details.</p>
</section>
</section>
<section id="building-on-windows">
<span id="running-on-windows"></span><h2>Building on Windows<a class="headerlink" href="#building-on-windows" title="Permalink to this heading"></a></h2>
<p>Supported environment: <strong>Microsoft Visual Studio 2015 or Microsoft Visual Studio 2017 Community</strong>
Please ensure to install <strong>Dekstop Development with C++</strong> along with Microsoft Visual Studio installation.</p>
<p>Install the <strong>exact</strong> versions (if specified) of the following tools to the designated directories:</p>
<ul class="simple">
<li><p>Python 3.8.10 - <strong>C:\Python38</strong></p></li>
<li><p>NASM 2.16.01 - <strong>C:\Nasm</strong></p></li>
<li><p>IASL 20190509 - <strong>C:\ASL</strong></p></li>
<li><p>LLVM (needed for UEFI payload build) - <strong>C:\LLVM</strong></p></li>
<li><p>OpenSSL - <strong>C:\openssl</strong></p></li>
<li><p>Git (ex. GitBash)</p></li>
</ul>
</section>
<section id="spn-keys-generation">
<span id="sbl-keys"></span><h2>SBL Keys Generation<a class="headerlink" href="#spn-keys-generation" title="Permalink to this heading"></a></h2>
<p>Generate SBL keys and this is pre-requiste before SBL build:</p>
<p>Generate SBLKeys:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span>python $(SBL_ROOT)\BootloaderCorePkg\Tools\GenerateKeys.py -k $SBL_KEY_DIR
</pre></div>
</div>
<p>Set of private and public keys would be generated for specified key sizes.</p>
<p>Set environment variable for SBL Key directory:</p>
<div class="highlight-default notranslate"><div class="highlight"><pre><span></span><span class="n">Linux</span><span class="p">:</span> <span class="n">export</span> <span class="n">SBL_KEY_DIR</span><span class="o">=&lt;</span><span class="n">path</span> <span class="n">to</span> <span class="n">SblKeys</span> <span class="n">directory</span><span class="o">&gt;</span>
<span class="n">Windows</span><span class="p">:</span> <span class="nb">set</span> <span class="n">SBL_KEY_DIR</span><span class="o">=&lt;</span><span class="n">path</span> <span class="n">to</span> <span class="n">SblKeys</span> <span class="n">directory</span><span class="o">&gt;</span>
</pre></div>
</div>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>In case a pre-signed OS Image is used, replace the public key that was generated by GenerateKeys.py (OS1_TestKey_Pub_RSAxxxx.pem) with the public key corresponding to the private key that was used to sign the image. Please refer <a class="reference internal" href="../security/key-management.html#key-management"><span class="std std-ref">Key Management</span></a> section for details</p>
</div>
</section>
<section id="build-tools-download-windows">
<h2>Build Tools Download - Windows<a class="headerlink" href="#build-tools-download-windows" title="Permalink to this heading"></a></h2>
<p>Python 3.8.x 64 bit version.</p>
<p><a href="https://www.python.org/downloads/windows/" target="_blank">https://www.python.org/downloads/windows/</a></p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Add Python to the PATH</p>
<p>Python version 3.8.10 is the tested version.</p>
</div>
<p>Nasm 2.16.01</p>
<p><a href="https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/" target="_blank">https://www.nasm.us/pub/nasm/releasebuilds/2.16.01/</a></p>
<p><strong>Require:</strong> Install to C:\Nasm</p>
<p>IASL 20190509-64</p>
<p><a href="https://acpica.org/sites/acpica/files/iasl-win-20190509.zip" target="_blank">https://acpica.org/sites/acpica/files/iasl-win-20190509.zip</a></p>
<p>unzip then copy files to C:\asl</p>
<p><strong>Require:</strong> Install to C:\Asl</p>
<p>LLVM 15.0.7</p>
<p><a href="https://github.com/llvm/llvm-project/releases/tag/llvmorg-15.0.7/" target="_blank">https://github.com/llvm/llvm-project/releases/tag/llvmorg-15.0.7/</a></p>
<p><strong>Require:</strong> Install to C:\LLVM</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Add an environment variable: CLANG_BIN=C:\LLVM\bin\</p>
</div>
<p>Openssl (latest)</p>
<p>Download latest win64 version from <a href="https://wiki.openssl.org/index.php/Binaries" target="_blank">https://wiki.openssl.org/index.php/Binaries</a>)</p>
<p><strong>Require:</strong> Install to C:\Openssl</p>
<div class="admonition note">
<p class="admonition-title">Note</p>
<p>Set environment variable OPENSSL_PATH to openssl directory where openssl.exe is present.
For example: set OPENSSL_PATH=C:\Openssl\bin</p>
</div>
<p>Git on Windows</p>
<p>Install Git or add its executable path in your PATH environment if already exists.</p>
<p>Here is GitBash as an example.</p>
<p>Download GitBash from <a href="https://git-scm.com" target="_blank">https://git-scm.com</a></p>
<p>Below are <strong>RECOMMENDED</strong> options. For others, its okay to use default selected option.</p>
<p>Make sure <strong>“Git LFS (Large File Support)”</strong> is selected.</p>
<img alt="Make sure &quot;Git LFS (Large File Support)&quot; is selected" src="../_images/gitbash_components.png" />
<p>Make sure <strong>“Git from the command line…”</strong> is selected.</p>
<img alt="Make sure &quot;Git from the command line...&quot; is selected" src="../_images/gitbash_path_env.png" />
<p>Make sure <strong>“Checkout as-is, commit as-is”</strong> is selected.</p>
<img alt="Make sure &quot;Checkout as-is, commit as-is&quot; is selected" src="../_images/gitbash_line_ending.png" />
</section>
</section>
</div>
</div>
<footer><div class="rst-footer-buttons" role="navigation" aria-label="Footer">
<a href="index.html" class="btn btn-neutral float-left" title="Getting Started" accesskey="p" rel="prev"><span class="fa fa-arrow-circle-left" aria-hidden="true"></span> Previous</a>
<a href="build-source.html" class="btn btn-neutral float-right" title="SBL Build Steps" accesskey="n" rel="next">Next <span class="fa fa-arrow-circle-right" aria-hidden="true"></span></a>
</div>
<hr/>
<div role="contentinfo">
<p>&#169; Copyright 2018 - 2024, Intel Corporation.
<span class="lastupdated">Last updated on Nov 15, 2024.
</span></p>
</div>
Built with <a href="https://www.sphinx-doc.org/">Sphinx</a> using a
<a href="https://github.com/readthedocs/sphinx_rtd_theme">theme</a>
provided by <a href="https://readthedocs.org">Read the Docs</a>.
</footer>
</div>
</div>
</section>
</div>
<script>
jQuery(function () {
SphinxRtdTheme.Navigation.enable(true);
});
</script>
</body>
</html>