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
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
|
<?php
/*
Download page
Copyright (C) 2015 Leah Woods <info@minifree.org>
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as
published by the Free Software Foundation, either version 3 of the
License, or (at your option) any later version.
This program 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 the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see <http://www.gnu.org/licenses/>.
*/
header('Content-type: text/html; charset=utf-8');
ob_start();
include_once "../common/variables.php";
include_once "../common/functions.php";
?>
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="../common/css/main.css" />
<title><?php echo gettext("Download libreboot"); ?></title>
</head>
<body>
<div>
<h1><?php echo gettext("Download libreboot (stable releases)"); ?></h1>
<p>
<strong>
<?php echo gettext("The latest stable release is"); ?> <?php echo $lbRelease[0][0][0]; ?>,
<?php echo gettext("released on"); ?> <?php echo $lbRelease[0][0][1]; ?> and can be
found at <a href="#https">#https</a>.
</strong> <a href="../"><?php echo gettext("Back to home page"); ?></a>
</p>
<p>
<strong>The current stable release is quite old at this point. We're working on a new release,
and welcome everyone to get involved in testing for bugs in the <a href="#unstable">unstable releases</a>
which are up to date and usually updated at least once every week.</strong>
</p>
<p>
If you're more interested in libreboot development, go to the <a href="../git/">libreboot development page</a>, which
also includes links to the Git repositories. <strong>For a list of tasks remaining for the next stable release
of libreboot, see <a href="#tasks">#tasks</a>. Help is appreciated!</strong>
</p>
<h2>Do you have a mirror?</h2>
<p>
Let us know! We will add it here. Instructions for how to mirror libreboot
releases can be found <a href="../rsync/">here</a>.
</p>
<h2 id="https">HTTPS mirrors</h2>
<p>
These mirrors are recommended, since they use TLS (https://) encryption.
</p>
<?php
echo mirrorList($lbHttpsMirror, gettext("HTTPS mirrors not added yet."),0,count($lbHttpsMirror));
?>
<h2 id="http">HTTP mirrors</h2>
<p>
WARNING: these mirrors are non-HTTPS which means that they are unencrypted. Your traffic could be subject
to interference by adversaries. Make especially sure to check the GPG signatures, assuming
that you have the right key. Of course, you should do this anyway, even if
using HTTPS.
</p>
<?php
/* show HTTP mirrors */
echo mirrorList($lbHttpMirror, gettext("HTTP mirrors not added yet."),0,count($lbHttpMirror));
?>
<h2 id="ftp">FTP mirrors</h2>
<p>
WARNING: FTP is also unencrypted, like HTTP. The same risks are present.
</p>
<?php
/* show FTP mirrors */
echo mirrorList($lbFtpMirror,gettext("FTP mirrors not added yet."),0,count($lbFtpMirror));
?>
</div>
<div>
<h1 id="unstable">Download libreboot (unstable/beta releases)</h1>
<p style="font-size:120%">
<strong>WARNING: there is no guarantee that these releases will work. They may even render your system unusable (brick it).
Proceed with caution.</strong>
</p>
<p>
<a href="../beta/">Download the unstable releases here</a> (snapshot archives, with ROM images compiled).
This is useful if you want to help with testing for bugs/regressions before release, or if you just
want to run the latest version of libreboot compiled from the current git repository.
</p>
<p>
Over time, stable libreboot release cycles have become much slower, due to more boards being supported
and more work being done, which means a lot more testing/fixing needs to be done before each release.
Therefore, we now offer unstable releases in between stable releases.
These releases are updated fairly regularly, built from the latest version of libreboot
from the <a href="../git/">git repository</a>.
</p>
<h2 id="tasks">Work to do for the next stable release of libreboot (<a href="#tasks">#tasks</a>):</h2>
<p>
Go to the <a href="../git/">libreboot development page</a>, which
also includes links to the Git repositories. This shows how to submit patches.
</p>
<p>
D16 and D8 doesn't boot with GRUB payload, see
<a href="https://ticket.coreboot.org/issues/48">https://ticket.coreboot.org/issues/48</a>
- workaround: seabios as main payload, compress grub and put that in cbfs too, configure
seabios with 0s delay (no interface) and set it to boot grub from cbfs by default.
Some notes, courtesy of tpearson on IRC:<br/>
<strong>create a binary file with the single byte value numeric 0 in it, then add it to CBFS as 'etc/show-boot-menu'</strong> for 0s delay.<br/>
<strong>compress grub.elf with cbfstool and have seabios load that, or grub-mkstandalone can compress the resulting GRUB image</strong><br/>
<strong>Create a text file in CBFS called "bootorder", contents "/rom@img/grub2"</strong><br/>
<strong>Use cbfstool to add the GRUB ELF image as a raw file with name "img/grub2"</strong>
</p>
<p>
Fix uneven backlight levels when turning brightness down on all thinkpads.
</p>
<p>
Fix broken suspend on GM45 thinkpads (regression in coreboot. Will require bisect. It works in libreboot 20150518).
</p>
<p>
Make sure that the KCMA-D8 and KGPE-D16 ports are stable. Make sure generally that all boards work properly and are stable.
</p>
<p>
Make sure that keyboard initialization works in GRUB on the X60/T60. This was an observed issue a while ago,
and might still exist in upstream coreboot. (USB keyboards work)
</p>
<h2>OPTIONAL (but very desirable) work to do before the next release of libreboot, if possible:</h2>
<p>
BARELY OPTIONAL (and extremely desirable): reproducible builds.
</p>
<p>
OPTIONAL (but desirable): fix broken text-mode graphics initialization on GM45 laptops
(framebuffer mode works. Lack of text-mode means that memtest86+ is not usable easily).
</p>
<p>
OPTIONAL (but desirable): fix screen compatibility issues on some GM45 thinkpads
(see <a href="http://libreboot.org/docs/hcl/gm45_lcd.html">this page</a>)
and some T60 laptops (see <a href="../docs/future/index.html#lcd_i945_incompatibility,future/index.html#lcd_i945_incompatibility">this page</a>).
</p>
<p>
OPTIONAL (but desirable): fix VRAM size on X60/T60/Macbook2,1. This is a longstanding issue. It's currently only 8MiB,
but the hardware is capable of using 64MiB.
See <a href="../docs/future/index.html#i945_vram_size,future/index.html#i945_vram_size">this page</a>.
</p>
<p>
OPTIONAL (but desirable): re-write ich9gen/ich9deblob to be portable. It currently assumes endiannesses, uses bitfields, etc.
It's not portable at all, but works on x86 and little-endian ARM in most cases.
</p>
<p>
DUBIOUSLY OPTIONAL (actually probably required, and very desirable): Get more RK3288 and Tegra chromebooks supported.
PaulK is interested in this, and needs funding to get the hardware. PaulK's contact details can be
found in the <a href="../contrib/">contrib</a> page.
This could take months though, so probably won't be done before the next release.
</p>
<ul class="c">
<li>
Convert the documentation to texinfo - partially complete. The docs have been converted using pandoc,
but now require a serious cleanup.
We wish to merge these into 1 documentation file (manual) in texinfo file.
The <a href="https://www.gnu.org/software/texinfo/manual/texinfo/">texinfo manual</a> itself
is an example of how we would like to implement the new libreboot documentation. One file, but we
will distribute it separated into separate pages/sections,
and in other formats in addition to HTML. (info, PDF, etc). The current live documentation on the
libreboot website is the old pre-conversion documentation,
written in raw HTML. To encourage the transition, we are now refusing all new documentation submissions
that are not in texinfo format.
<ul>
<li>Texinfo is the official documentation format, for all GNU software.</li>
<li>GNU Emacs has decent integration for editing Texinfo documents. See <em>Texinfo mode</em>.
However, any text editor should be fine (the lead developer of libreboot uses Vim).</li>
<li>
i18n should be implemented from the start, so that we can start maintaining versions of the documentation
in non-English languages. GNU Gettext can be used for this.
</li>
</ul>
</li>
<li>
Modify the build system, to make use of standard GNU utilities: make, autoconf and so on. The current build system is
non-standard (but well documented), written mostly in BASH.Read these documents:
<ul>
<li><a href="https://www.gnu.org/prep/standards/html_node/Standard-Targets.html">https://www.gnu.org/prep/standards/html_node/Standard-Targets.html</a></li>
<li><a href="https://www.gnu.org/prep/maintain/maintain.html#Distributions">https://www.gnu.org/prep/maintain/maintain.html#Distributions</a></li>
</ul>
</li>
<li>
Modify the build system, to
directly download the
build dependencies
that libreboot
currently tells the
user to install from
their distribution
package repository.
(Only in Git. Release
archives would have
them already). Build
these from source,
with our own GCC
(re-using coreboot's
GCC, which libreboot
already uses). This
will make <em>complete
corresponding
source</em> provision
easier, because it
would be automated;
this is in contrast to
the present setup,
where the person
distributing binaries
has to include the
sources for build
dependencies from the
distribution that they
happened to use for
compiling those
packages.
<ul>
<li>This will also make everything self-contained, and coreboot already has integration for cross-compiling. We can make cross compilation
of utilities for non-x86 architectures much easier, without relying on quirks from the user's GNU/Linux distribution, where the
only thing we need from their distribution is the necessary toolchain for building <em>libreboot's own version of GCC</em>, which would then take over</li>
<li>
However, do not install these dependencies, only self-host them in the libreboot source archive. Also provide an option for the user to ignore libreboot's
GCC and dependencies, and use what their GNU/Linux distribution provides, when building from source.
</li>
</ul>
</li>
</ul>
</div>
<?php
include "../common/ccs.php";
include "../common/footer.php";
?>
</body>
</html>
<?php
$strHtml = ob_get_clean();
echo miniHtml($strHtml);
?>
|