github.com/u-root/u-root@v7.0.1-0.20200915234505-ad7babab0a8e+incompatible/docs/index.md (about) 1 <center> 2 <img src="img/u-root-logo.png" alt="u-root logo" width=300 /> 3 </center> 4 5 6 # u-root 7 8 u-root is an embeddable root file system intended to be placed in a flash device 9 as part of the firmware image, along with a Linux kernel. Unlike most embedded 10 root file systems, which consist of large binaries, u-root only has five: an 11 init program and four Go compiler binaries. 12 13 ## Setup 14 15 On an Ubuntu system, install prerequisites and ensure Go is at least version 1.13: 16 17 ```sh 18 sudo apt-get install git golang build-essential 19 go version 20 ``` 21 22 Set your `GOPATH`: 23 24 ```sh 25 export GOPATH="$HOME/go" 26 ``` 27 28 Clone u-root: 29 30 ```sh 31 go get github.com/u-root/u-root 32 ``` 33 34 Generate an initramfs containing u-root Go tools: 35 36 ```sh 37 u-root -format=cpio -o initramfs.cpio 38 ``` 39 40 You can use this initramfs with your favorite Linux kernel in QEMU to try it 41 out. 42 43 More instructions can be found in the repo's 44 [README.md](https://github.com/u-root/u-root/blob/master/README.md). 45 46 ## Submitting Changes 47 48 We use [GitHub Pull Requests](https://github.com/u-root/u-root/pulls) for code 49 review. Pull requests must receive one approval and pass CI before being merged. 50 51 52 ## FAQs 53 54 ### So, why "u-root"? 55 56 It's to reflect a universal root, you can mount on every 57 local and get a userland portable (it's a goal). 58 59 ### Any publications? 60 61 - [USENIX 2015 ATC Paper](https://www.usenix.org/system/files/conference/atc15/atc15-paper-minnich.pdf) 62 - [USENIX 2015 ATC Talk](https://www.usenix.org/conference/atc15/technical-session/presentation/minnich) 63 - Related: Embedded Linux Conference 2017 LinuxBoot Talk ([YouTube video](https://www.youtube.com/watch?v=iffTJ1vPCSo), [slides](https://schd.ws/hosted_files/osseu17/84/Replace%20UEFI%20with%20Linux.pdf)) 64 65 66 ## Community 67 68 - [Join the mailing list](https://groups.google.com/forum/#!forum/u-root) 69 - [Join the Open Source Firmware Slack team](https://osfw.slack.com/) (Get an invite [here](https://slack.osfw.dev).) 70 - [Checkout the roadmap](https://github.com/u-root/u-root/blob/master/roadmap.md) 71 72 73 ## Contributors 74 75 * [Ron Minnich](https://github.com/rminnich) 76 * [Andrey Mirtchovski](https://github.com/mirtchovski) 77 * [Alexandre Beletti](https://github.com/rhiguita) 78 * [Manoel Machado](https://github.com/ryukinix) 79 * [Rafael C. Nunes](https://github.com/rafaelcn) 80 * [Matheus Pinto Rodrigues](https://github.com/mathgamain) 81 * [Gan Shun Lim](https://github.com/GanShun) 82 * [Ryan O'Leary](https://github.com/rjoleary) 83 * [Chris Koch](https://github.com/hugelgupf) 84 * [Andrea Barberio](https://github.com/insomniacslk) 85 * [Jean-Marie Verdun](https://github.com/vejmarie) 86 * [Max Shegai](https://github.com/n-canter) 87 88 ## Logo 89 90 The Go gopher was designed by Renee French. 91 The u-root logo design is licensed under the Creative Commons 3.0 Attributions license. 92 93 The logo is communicating several things: 94 95 - u-root has several flavors: firmware and as a root file system 96 97 - 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. 98 99 - the other gophers can make more copies of u-root; hence the u-root logo on their chest. 100 101 - the highest gopher is showing how u-root is a good root file system for a VM. 102 103 - the U itself is a stylized tree, evocative of roots.