summaryrefslogtreecommitdiffstats
path: root/docs/index.html
blob: 94fe68b97d0ca98f4ecdb512e1115a61119a05bc (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
<!DOCTYPE html>
<html>
<head>
	<meta charset="utf-8">
	<meta name="viewport" content="width=device-width, initial-scale=1">

	<style type="text/css">
		@import url('css/main.css');
	</style>

	<title>Libreboot project documentation</title>
</head>

<body>
	
	<div class="section">
		<h1 id="pagetop">Libreboot project documentation</h1>
			<p>
				Information about this release can be found at <a href="release.html">release.html</a>.
				Always check <a href="http://libreboot.org">libreboot.org</a> for updates.
			</p>
			<p>
				<a href="#why">What is libreboot?</a>
			</p>
	</div>
	
	<div class="section">
			
		<h1>Table of contents</h1>
			<ul>
				<li><a href="hcl/index.html">Hardware compatibility list</a> - <a href="https://www.gnu.org/distros/">GNU/Linux</a> is expected to be running on your device.</li>
				<li><a href="install/index.html">How to install libreboot</a></li>
				<li><a href="gnulinux/index.html">How to install GNU/Linux on a libreboot system</a></li>
				<li>
					<a href="git/index.html">How to use the git repository and build libreboot from source</a>
					<ul>
						<li><a href="maintain/index.html">Maintaining libreboot</a></li>
					</ul>
				</li>
				<li><a href="security/index.html">Hardware security</a></li>
				<li><a href="hardware/index.html">Hardware maintenance</a></li>
				<li><a href="grub/index.html">GRUB payload</a></li>
				<li><a href="future/index.html">Planned work</a></li>
				<li><a href="misc/index.html">Miscellaneous</a></li>
			</ul>
			
	</div>

	<div class="section" id="why">

		<h1>About the libreboot project</h1>

			<p>
				Libreboot is a <a href="http://coreboot.org/">coreboot</a> distribution (distro) with proprietary software removed,
				intended to be a <a href="https://www.fsf.org/about/what-is-free-software">free</a>
				(libre) 'BIOS' replacement for your computer. The project is aimed at users, attempting to make
				coreboot as easy to use as possible. 
				Read the full <a href="https://www.gnu.org/philosophy/free-sw.html">Free Software definition</a>.
			</p>
			
			<p>
				Libreboot also has many practical advantages over <a href="https://gnu.org/philosophy/proprietary/">proprietary</a> boot firmware, 
				such as faster boot speeds and better security. You can
				<a href="gnulinux/index.html">install GNU/Linux with encrypted /boot/</a>,
				<a href="http://www.coreboot.org/GRUB2#signed_kernels">verify GPG signatures on your kernel</a>, 
				run a <a href="http://proteanos.com/">full operating system</a> directly
				from the flash chip (planned for a future release), and more.
			</p>

			<div class="subsection">
				<h2>
					The libreboot project has three main goals:
				</h2>
					<ul>
						<li>
							<i><u><b>Recommend and distribute only free software</b></u></i>. The coreboot project distributes proprietary code/blobs on some computers;
							this can include things like CPU microcode updates, memory initialization code and so on. The project also actively
							recommends that the user install additional blobs in some cases (such as the video BIOS or Intel ME).
							While this can be necessary from the coreboot project's point of view, Libreboot is an attempt to support as many
							computers from coreboot as possible, without distributing any blobs and without having the user install additional
							proprietary software. This is not to say that the coreboot project is bad; a lot of extremely dedicated and talented
							individuals in coreboot work night and day to reverse engineer and free those blobs that still remain in coreboot. 
							<i>Any system from coreboot that can run without blobs is a viable libreboot candidate!</i>
						</li>
						<li>
							<i><u><b>Support as much hardware as possible!</b></u></i> This goes without saying. The list of officially supported hardware
							in libreboot is smaller than in upstream (coreboot), because some boards in coreboot require proprietary software which
							libreboot does not and will not distribute. The main goal of the libreboot project is to spread free software at a low-level
							(the boot firmware) to as many people as possible, so of course that means supporting as much hardware as possible (but without
							compromising on the main goal).
						</li>
						<li>
							<i><u><b>Make coreboot easy to use</b></u></i>. The main problem that many users have with coreboot is that it is extremely difficult to 
							understand, learn about, install and use. This is understandable; coreboot is a low-level piece of software and has many
							talented individuals working on it, but the project's resources are limited and so the developers focus their efforts on the code. 
							Coreboot offers wonderful support for other coreboot developers and those who wish to climb up
							that steep curve to learn everything that they can.<br/><br/>
							
							At the same time, those who simply want to use coreboot (for any number
							of reasons) are often left feeling intimidated and many of them give up in frustration. Libreboot attempts to bridge this gap;
							its documentation is entirely focussed on users, with detailed steps showing exactly how to install and use it and the issues
							that they may come across (and how to work around them).<br/><br/>
							
							Almost everything in libreboot is completely automated, with
							scripts for downloading, building and installing the various components used in libreboot. Pre-compiled ROM images built
							from the libreboot source code are provided, along with the utilities (statically compiled, from libreboot sources) that the user will need for installing them.<br/><br/>
							
							Libreboot is similar in concept to a GNU/Linux or GNU/Linux-libre distribution; it is composed of not just coreboot (deblobbed), 
							but everything else that the user will need, such as GRUB and flashrom. These are all fully integrated, in a way where
							most of the detailed steps otherwise required of the user (if they used coreboot, the upstream provider) are completely eliminated.<br/><br/>
							
							In much the same way that you can simply download an ISO image for your favourite GNU/Linux-libre distribution, and install it, 
							you can download pre-compiled libreboot ROM images (built from the sources) along with installation scripts and documentation
							that make libreboot as easy to use as possible.
						</li>
					</ul>
				</div>

				<p>
					Libreboot is <b>not</b> a fork of coreboot, despite misconceptions of this fact. Libreboot (downstream supplier) is a parallel effort 
					which works closely with and re-bases on the latest coreboot (upstream supplier) every so often.
				</p>

				<p>
					<b>
						As such, all new coreboot development should be done in coreboot, not libreboot!
						Libreboot is about deblobbing, and packaging coreboot in a user-friendly way, where most work is already done for the user!
						If, for example you wanted to attempt porting a new motherboard then you should do that in coreboot. Libreboot will (as a downstream supplier)
						receive your change at some point in the future, in a future release.
					</b>
				</p>
				
				<p>
					<i>Libreboot</i> as a whole is the distribution consisting of everything surrounding coreboot. However, the main component is coreboot;
					libreboot's deblobbed coreboot tree is sometimes referred to as <i>coreboot-libre</i> to distinguish it as a component of <i>libreboot</i>.
				</p>

			<h2>
				Libreboot is a 'stable' coreboot
			</h2>
				<ul>
					<li>
						Coreboot uses the <a href="https://en.wikipedia.org/wiki/Rolling_release">rolling release</a> model, which
						is quite volatile; one day when you build coreboot, it may or may not work correctly on your machine.
					</li>
					<li>
						Libreboot changes less often (as far as the release model is concerned), focusing instead on 'tested' releases for <i>specific machines</i>.
						At any given time, it might also be possible to build ROM images for systems other than those officially supported. If you get your board to work
						(without violating the <i>&quot;coreboot development goes in coreboot&quot;</i> rule), then others could benefit from it.
					</li>
				</ul>

				<p>
					On the other hand, coreboot is also strict about what it accepts (merges) into the main git repository: 
					most of the time, a lot of changes are under review at review.coreboot.org (as a way of encouraging as much further development
					as possible before accepting the patch).
				</p>

				<p>
					Meanwhile, libreboot is a lot less strict in this area and freely merges specific patches that are desirable, sometimes before they are merged into coreboot's main repository.
				</p>

			<p><a href="#pagetop">Back to top of page.</a></p>

	</div>

	<div class="section">
		
		<p>
			Copyright &copy; 2014, 2015 Francis Rowe &lt;info@gluglug.org.uk&gt;<br/>
			This document is released under the Creative Commons Attribution-ShareAlike 4.0 International Public License and all future versions.
			A copy of the license can be found at <a href="license.txt">license.txt</a>.
		</p>

		<p>
			This document is distributed in the hope that it will be useful,
			but WITHOUT ANY WARRANTY; without even the implied warranty of
			MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See <a href="license.txt">license.txt</a> for more information.
		</p>
		
	</div>

</body>
</html>