github.com/TrenchBoot/u-root@v6.0.1-0.20200623220532-550e36da3258+incompatible/docs/index.html (about) 1 <center> 2 <img src="img/u-root-logo.png" alt="u-root logo" width=300 /> 3 </center> 4 <h1 id="u-root">u-root</h1> 5 <p>u-root is an embeddable root file system intended to be placed in a flash device as part of the firmware image, along with a Linux kernel. Unlike most embedded root file systems, which consist of large binaries, u-root only has five: an init program and four Go compiler binaries.</p> 6 <h2 id="setup">Setup</h2> 7 <p>On an Ubuntu system, install prerequisites and ensure Go is at least version 1.13:</p> 8 <div class="sourceCode" id="cb1"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true"></a><span class="fu">sudo</span> apt-get install git golang build-essential</span> 9 <span id="cb1-2"><a href="#cb1-2" aria-hidden="true"></a><span class="ex">go</span> version</span></code></pre></div> 10 <p>Set your <code>GOPATH</code>:</p> 11 <div class="sourceCode" id="cb2"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb2-1"><a href="#cb2-1" aria-hidden="true"></a><span class="bu">export</span> <span class="va">GOPATH=</span><span class="st">"</span><span class="va">$HOME</span><span class="st">/go"</span></span></code></pre></div> 12 <p>Clone u-root:</p> 13 <div class="sourceCode" id="cb3"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true"></a><span class="ex">go</span> get github.com/u-root/u-root</span></code></pre></div> 14 <p>Generate an initramfs containing u-root Go tools:</p> 15 <div class="sourceCode" id="cb4"><pre class="sourceCode sh"><code class="sourceCode bash"><span id="cb4-1"><a href="#cb4-1" aria-hidden="true"></a><span class="ex">u-root</span> -format=cpio -o initramfs.cpio</span></code></pre></div> 16 <p>You can use this initramfs with your favorite Linux kernel in QEMU to try it out.</p> 17 <p>More instructions can be found in the repo’s <a href="https://github.com/u-root/u-root/blob/master/README.md">README.md</a>.</p> 18 <h2 id="submitting-changes">Submitting Changes</h2> 19 <p>We use <a href="https://github.com/u-root/u-root/pulls">GitHub Pull Requests</a> for code review. Pull requests must receive one approval and pass CI before being merged.</p> 20 <h2 id="faqs">FAQs</h2> 21 <h3 id="so-why-u-root">So, why “u-root”?</h3> 22 <p>It’s to reflect a universal root, you can mount on every local and get a userland portable (it’s a goal).</p> 23 <h3 id="any-publications">Any publications?</h3> 24 <ul> 25 <li><a href="https://www.usenix.org/system/files/conference/atc15/atc15-paper-minnich.pdf">USENIX 2015 ATC Paper</a></li> 26 <li><a href="https://www.usenix.org/conference/atc15/technical-session/presentation/minnich">USENIX 2015 ATC Talk</a></li> 27 <li>Related: Embedded Linux Conference 2017 LinuxBoot Talk (<a href="https://www.youtube.com/watch?v=iffTJ1vPCSo">YouTube video</a>, <a href="https://schd.ws/hosted_files/osseu17/84/Replace%20UEFI%20with%20Linux.pdf">slides</a>)</li> 28 </ul> 29 <h2 id="community">Community</h2> 30 <ul> 31 <li><a href="https://groups.google.com/forum/#!forum/u-root">Join the mailing list</a></li> 32 <li><a href="https://u-root.slack.com/">Join slack</a> (Get an invite <a href="http://slack.u-root.com">here</a>.)</li> 33 <li><a href="https://github.com/u-root/u-root/blob/master/roadmap.md">Checkout the roadmap</a></li> 34 </ul> 35 <h2 id="contributors">Contributors</h2> 36 <ul> 37 <li><a href="https://github.com/rminnich">Ron Minnich</a></li> 38 <li><a href="https://github.com/mirtchovski">Andrey Mirtchovski</a></li> 39 <li><a href="https://github.com/rhiguita">Alexandre Beletti</a></li> 40 <li><a href="https://github.com/ryukinix">Manoel Machado</a></li> 41 <li><a href="https://github.com/rafaelcn">Rafael C. Nunes</a></li> 42 <li><a href="https://github.com/mathgamain">Matheus Pinto Rodrigues</a></li> 43 <li><a href="https://github.com/GanShun">Gan Shun Lim</a></li> 44 <li><a href="https://github.com/rjoleary">Ryan O’Leary</a></li> 45 <li><a href="https://github.com/hugelgupf">Chris Koch</a></li> 46 <li><a href="https://github.com/insomniacslk">Andrea Barberio</a></li> 47 <li><a href="https://github.com/vejmarie">Jean-Marie Verdun</a></li> 48 <li><a href="https://github.com/n-canter">Max Shegai</a></li> 49 </ul> 50 <h2 id="logo">Logo</h2> 51 <p>The Go gopher was designed by Renee French. The u-root logo design is licensed under the Creative Commons 3.0 Attributions license.</p> 52 <p>The logo is communicating several things:</p> 53 <ul> 54 <li><p>u-root has several flavors: firmware and as a root file system</p></li> 55 <li><p>the gopher at the bottom is a firmware u-root; that gopher brings the machine up, hence the wrench. Its work is also done, so it is resting.</p></li> 56 <li><p>the other gophers can make more copies of u-root; hence the u-root logo on their chest.</p></li> 57 <li><p>the highest gopher is showing how u-root is a good root file system for a VM.</p></li> 58 <li><p>the U itself is a stylized tree, evocative of roots.</p></li> 59 </ul>