index.html 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310
  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <meta charset="utf-8">
  5. <meta name="viewport" content="width=device-width, initial-scale=1">
  6. <style type="text/css">
  7. @import url('css/main.css');
  8. </style>
  9. <title>Libreboot project documentation</title>
  10. </head>
  11. <body><div class="section"><p>If you're using libreboot from git, note that only CrOS devices build at the moment. We merged a newly rewritten build system recently, and we've yet to complete re-integration of older boards into Libreboot. Use Libreboot 20160907 for the time being, unless you're involved in libreboot development</p></div>
  12. <div class="section">
  13. <h1 id="pagetop">Libreboot documentation</h1>
  14. <p>
  15. Information about this release can be found at <a href="release.html">release.html</a>.
  16. Always check <a href="http://libreboot.org">libreboot.org</a> for updates.
  17. </p>
  18. <p>
  19. <a href="#why">What is libreboot?</a>
  20. </p>
  21. <p>
  22. <a href="https://libreboot.org/faq/">Answers to frequently asked questions about Libreboot</a>
  23. </p>
  24. </div>
  25. <div class="section">
  26. <p>
  27. Libreboot is compatible with GNU+Linux and several BSD systems.
  28. </p>
  29. <p>
  30. For GNU+Linux,
  31. have a look at our <a href="distros/">list of GNU+Linux distributions that we recommend</a>.
  32. </p>
  33. <p>
  34. For BSD, refer to <a href="https://libreboot.org/faq/#bsd">the libreboot FAQ</a>. We wish
  35. to merge instructions into the official libreboot documentation, if someone
  36. will provide it. We do have some instructions now for NetBSD, FreeBSD and OpenBSD,
  37. but they are still incomplete. See <a href="bsd/">bsd/</a>.
  38. </p>
  39. <h1>Installing libreboot</h1>
  40. <ul>
  41. <li><a href="hcl/">What systems can I use libreboot on?</a></li>
  42. <li><a href="install/">How to install libreboot</a></li>
  43. </ul>
  44. <h1>Installing operating systems</h1>
  45. <ul>
  46. <li><a href="distros/">List of recommended GNU+Linux distributions for libreboot</a></li>
  47. <li><a href="gnulinux/">How to install GNU+Linux on a libreboot system</a></li>
  48. <li><a href="bsd/">How to install BSD on a libreboot system</a></li>
  49. </ul>
  50. <h1>Information for developers</h1>
  51. <ul>
  52. <li><a href="git/">How to compile the libreboot source code</a></li>
  53. <li><a href="depthcharge/">Depthcharge payload</a></li>
  54. <li><a href="grub/">GRUB payload</a></li>
  55. </ul>
  56. <h1>Other information</h1>
  57. <ul>
  58. <li><a href="hardware/">Hardware modifications</a></li>
  59. <li><a href="misc/">Miscellaneous</a></li>
  60. </ul>
  61. </div>
  62. <div class="section" id="why">
  63. <h1>About the libreboot project</h1>
  64. <p>
  65. Libreboot is a free BIOS or UEFI replacement (<a href="https://en.wikipedia.org/wiki/Free_software">free as in freedom</a>);
  66. libre <em>boot firmware</em> that initializes the hardware and starts a bootloader for your operating
  67. system.
  68. It's also an open source BIOS, but open source fails to
  69. promote freedom; <em>please call libreboot <strong><a href="https://en.wikipedia.org/wiki/Free_software">free software</a></strong></em>.
  70. </p>
  71. <p>
  72. Libreboot originally began during December 2013, as a commercial effort
  73. by the <a href="https://minifree.org">Ministry of Freedom</a> to achieve
  74. RYF endorsement for a modified ThinkPad X60
  75. (the first system to ever be added to libreboot), which it did then achieve.
  76. </p>
  77. <p>
  78. Back then, the name <i>libreboot</i> didn't exist; the project was nameless,
  79. referring to itself as a <i>deblobbed version of coreboot</i>. The project named
  80. itself libreboot at some point during early 2014, and has since rapidly expanded
  81. to support more hardware and become more user-friendly.
  82. </p>
  83. <p>
  84. Libreboot is a <a href="http://coreboot.org/">coreboot</a> distribution (distro) with proprietary software removed,
  85. intended to be a <a href="https://en.wikipedia.org/wiki/Free_software">free</a>
  86. (libre) 'BIOS' replacement for your computer. The project is aimed at users, attempting to make
  87. coreboot as easy to use as possible.
  88. </p>
  89. <p>
  90. Libreboot has many practical advantages over proprietary boot firmware,
  91. such as faster boot speeds and better security. You can
  92. <a href="gnulinux/">install GNU+Linux with encrypted /boot/</a>,
  93. <a href="http://www.coreboot.org/GRUB2#signed_kernels">verify GPG signatures on your kernel</a>,
  94. put a kernel in the flash chip and more.
  95. </p>
  96. <h2>
  97. The libreboot project has three main goals:
  98. </h2>
  99. <ul>
  100. <li>
  101. <i><u><b>Recommend and distribute only free software</b></u></i>.
  102. Coreboot distributes certain pieces of proprietary software which is needed on some systems.
  103. Examples can include things like CPU microcode updates, memory initialization blobs and so on.
  104. The coreboot project sometimes recommends adding more blobs which it does not distribute, such
  105. as the Video BIOS or Intel's <i>Management Engine</i>. However, a lot of dedicated and talented
  106. individuals in coreboot work hard to replace these blobs whenever possible.
  107. </li>
  108. <li>
  109. <i><u><b>Support as much hardware as possible!</b></u></i>
  110. Libreboot supports less hardware than coreboot, because most systems from coreboot still require
  111. certain proprietary software to work properly. Libreboot is an attempt to support as much
  112. hardware as possible, without any proprietary software.
  113. </li>
  114. <li>
  115. <i><u><b>Make coreboot easy to use</b></u></i>.
  116. Coreboot is notoriously difficult to install, due to an overall lack of user-focussed
  117. documentation and support. Most people will simply give up before attempting to install coreboot.<br/><br/>
  118. Libreboot attempts to bridge this divide, making sure that everything from building
  119. to installing coreboot is automated, as much as is feasibly possible. Secondly, the project
  120. produces documentation aimed at non-technical users. Thirdly, the project attempts
  121. to provide excellent user support via mailing lists and IRC.<br/><br/>
  122. Libreboot already comes with a payload (GRUB), flashrom and other needed parts. Everything
  123. is fully integrated, in a way where most of the complicated steps that are otherwise required,
  124. are instead done for the user in advance.<br/><br/>
  125. You can download ROM images for your libreboot system and install them, without having
  126. to build anything from source. The build system is also fully automated, so building
  127. from source is easy if you wanted to do that (for whatever reason).
  128. </li>
  129. </ul>
  130. <h2>
  131. Libreboot is a coreboot distribution, not a coreboot fork
  132. </h2>
  133. <p>
  134. Libreboot is not a fork of coreboot. Every so often, the project re-bases on the latest
  135. version of coreboot, with the number of custom patches in use minimized.
  136. </p>
  137. <p>
  138. All new coreboot development should be done in coreboot (upstream), not libreboot!
  139. Libreboot is about deblobbing and packaging coreboot in a user-friendly way, where most work
  140. is already done for the user.
  141. </p>
  142. <p>
  143. For example, if you wanted to add a new board to libreboot, you should add it to coreboot first.
  144. Libreboot will automatically receive your code at a later date, when it updates itself.
  145. </p>
  146. <p>
  147. The deblobbed coreboot tree used in libreboot is referred to as <i>coreboot-libre</i>,
  148. to distinguish it as a component of <i>libreboot</i>.
  149. </p>
  150. <h2>
  151. Libreboot is a 'stable' version of coreboot
  152. </h2>
  153. <ul>
  154. <li>
  155. Coreboot uses the <a href="https://en.wikipedia.org/wiki/Rolling_release">rolling release</a> model,
  156. which means that it is not guaranteed to be stable, or to even work at all on a given day.
  157. Coreboot does have a strict code review process, but being such a large project with so many contributors, regressions
  158. are always possible.
  159. </li>
  160. <li>
  161. Libreboot freezes on a particular revision of coreboot, making sure that everything works properly,
  162. making fixes on top of that and repeating this during each subsequent update to a later version
  163. of coreboot. By doing this, it provides a stronger guarantee to the user that the firmware
  164. will be reliable, and not break their system.
  165. </li>
  166. </ul>
  167. <p><a href="#pagetop">Back to top of page.</a></p>
  168. </div>
  169. <div class="section" id="version">
  170. <h1>How do I know what version I'm running?</h1>
  171. <p>
  172. If you are at least 127 commits after release 20150518
  173. (commit message <em>build/roms/helper: add version information to CBFS</em>)
  174. (or you have any <strong>upstream</strong> stable release of libreboot after 20150518), then you can
  175. press C at the GRUB console, and use this command to find out what version of libreboot you have:<br/>
  176. <strong>cat (cbfsdisk)/lbversion</strong><br/>
  177. This will also work on non-release images (the version string is automatically generated,
  178. using <em>git describe --tags HEAD</em>), built from the git repository.
  179. A file named <em>version</em> will also be included in the archives that you downloaded (if you are
  180. using release archives).
  181. </p>
  182. <p>
  183. If it exists, you can also extract this <em>lbversion</em> file by using the <i>cbfstool</i> utility
  184. which libreboot includes, from a ROM image that you either dumped or haven't flashed yet.
  185. In your distribution, run cbfstool on your ROM image (<em>libreboot.rom</em>, in this example):<br/>
  186. $ <strong>./cbfstool libreboot.rom extract -n lbversion -f lbversion</strong><br/>
  187. You will now have a file, named <em>lbversion</em>, which you can read in whatever program
  188. it is that you use for reading/writing text files.
  189. </p>
  190. <p>
  191. For git, it's easy. Just check the git log.
  192. </p>
  193. <p>
  194. For releases on or below 20150518, or snapshots generated from the git repository below 127 commits
  195. after 20150518, you can find a file named <em>commitid</em> inside the archives. If you are using
  196. pre-built ROM images from the libreboot project, you can press C in GRUB for access to the terminal,
  197. and then run this command:<br/>
  198. <strong>lscoreboot</strong><br/>
  199. You may find a date in here, detailing when that ROM image was built. For pre-built images distributed
  200. by the libreboot project, this is a rough approximation of what version you have, because the version
  201. numbers are dated, and the release archives are typically built on the same day as the release; you can
  202. correlate that with the release information in <a href="release.html">release.html</a>.
  203. </p>
  204. <p>
  205. For 20160818, note that the lbversion file was missing from CBFS on GRUB images. You can still find out
  206. what libreboot version you have by comparing checksums of image dumps (with the descriptor blanked out with 00s,
  207. and the same done to the ROMs from the release archive, if you are on a GM45 laptop).
  208. </p>
  209. <p>
  210. There may also be a ChangeLog file included in your release archive, so that you can
  211. look in there to figure out what version you have.
  212. </p>
  213. <p>
  214. You can also check the documentation that came with your archives, and in <em>docs/release.html</em> will be
  215. the information about the version of libreboot that you are using.
  216. </p>
  217. <p>
  218. Generally speaking, it is advisable to use the latest version of libreboot.
  219. </p>
  220. </div>
  221. <div class="section">
  222. <p>
  223. Copyright &copy; 2014, 2015, 2016 Leah Rowe &lt;info@minifree.org&gt;<br/>
  224. Permission is granted to copy, distribute and/or modify this document
  225. under the terms of the Creative Commons Attribution-ShareAlike 4.0 International license
  226. or any later version published by Creative Commons;
  227. A copy of the license can be found at <a href="cc-by-sa-4.0.txt">cc-by-sa-4.0.txt</a>
  228. </p>
  229. <p>
  230. Updated versions of the license (when available) can be found at
  231. <a href="https://creativecommons.org/licenses/by-sa/4.0/legalcode">https://creativecommons.org/licenses/by-sa/4.0/legalcode</a>
  232. </p>
  233. <p>
  234. UNLESS OTHERWISE SEPARATELY UNDERTAKEN BY THE LICENSOR, TO THE
  235. EXTENT POSSIBLE, THE LICENSOR OFFERS THE LICENSED MATERIAL AS-IS
  236. AND AS-AVAILABLE, AND MAKES NO REPRESENTATIONS OR WARRANTIES OF
  237. ANY KIND CONCERNING THE LICENSED MATERIAL, WHETHER EXPRESS,
  238. IMPLIED, STATUTORY, OR OTHER. THIS INCLUDES, WITHOUT LIMITATION,
  239. WARRANTIES OF TITLE, MERCHANTABILITY, FITNESS FOR A PARTICULAR
  240. PURPOSE, NON-INFRINGEMENT, ABSENCE OF LATENT OR OTHER DEFECTS,
  241. ACCURACY, OR THE PRESENCE OR ABSENCE OF ERRORS, WHETHER OR NOT
  242. KNOWN OR DISCOVERABLE. WHERE DISCLAIMERS OF WARRANTIES ARE NOT
  243. ALLOWED IN FULL OR IN PART, THIS DISCLAIMER MAY NOT APPLY TO YOU.
  244. </p>
  245. <p>
  246. TO THE EXTENT POSSIBLE, IN NO EVENT WILL THE LICENSOR BE LIABLE
  247. TO YOU ON ANY LEGAL THEORY (INCLUDING, WITHOUT LIMITATION,
  248. NEGLIGENCE) OR OTHERWISE FOR ANY DIRECT, SPECIAL, INDIRECT,
  249. INCIDENTAL, CONSEQUENTIAL, PUNITIVE, EXEMPLARY, OR OTHER LOSSES,
  250. COSTS, EXPENSES, OR DAMAGES ARISING OUT OF THIS PUBLIC LICENSE OR
  251. USE OF THE LICENSED MATERIAL, EVEN IF THE LICENSOR HAS BEEN
  252. ADVISED OF THE POSSIBILITY OF SUCH LOSSES, COSTS, EXPENSES, OR
  253. DAMAGES. WHERE A LIMITATION OF LIABILITY IS NOT ALLOWED IN FULL OR
  254. IN PART, THIS LIMITATION MAY NOT APPLY TO YOU.
  255. </p>
  256. <p>
  257. The disclaimer of warranties and limitation of liability provided
  258. above shall be interpreted in a manner that, to the extent
  259. possible, most closely approximates an absolute disclaimer and
  260. waiver of all liability.
  261. </p>
  262. </div>
  263. </body>
  264. </html>