File site/news/libreboot20241206.Revisions.md added (mode: 100644) (index 0000000..87d02c9) |
|
1 |
|
--- |
|
2 |
|
title: Libreboot 20241206 release revisions |
|
3 |
|
x-toc-enable: true |
|
4 |
|
... |
|
5 |
|
|
|
6 |
|
This article concerns Libreboot 20241206. For general information about that |
|
7 |
|
release, please read |
|
8 |
|
the [Libreboot 20241206 release announcement](libreboot20241206.md). |
|
9 |
|
|
|
10 |
|
Occasionally, stable releases such as this one may contain minor (or critical) |
|
11 |
|
issues that went unnoticed during testing. When this occurs, critical or |
|
12 |
|
otherwise desirable fixes are implemented, while not fundamentally altering |
|
13 |
|
the substance of the original release. |
|
14 |
|
|
|
15 |
|
When this occurs, the ROM image and source code archives are entirely re-built, |
|
16 |
|
and re-uploaded, replacing the old one. Patch files are provided alongside the |
|
17 |
|
updated source archive, so that you can revert (from it) back to the older |
|
18 |
|
revisions if you wish; by doing this, you can therefore also re-create the |
|
19 |
|
original release archive, for reference. |
|
20 |
|
|
|
21 |
|
Revision 1 (8 December 2024) |
|
22 |
|
---------- |
|
23 |
|
|
|
24 |
|
A bug was found whereby `seabios_` images are created twice, This was fixed in |
|
25 |
|
the revision `e3b77b132e6b5981c09bc1ce282afaae64058ab3`. This bug caused vendor |
|
26 |
|
file insertion to fail on release images, because the `vendorhashes` file would |
|
27 |
|
list the file twice, but one of the hashes would be wrong. |
|
28 |
|
|
|
29 |
|
This is because the build system wrongly created U-Boot-only images first with |
|
30 |
|
that name, because the `add_uboot` function in `rom.sh` unconditionally created |
|
31 |
|
images with U-Boot in them; the function also creates ARM64 images, where U-Boot |
|
32 |
|
is the primary payload. |
|
33 |
|
|
|
34 |
|
On x86 machines, SeaBIOS should be the main payload, chainloading U-Boot. |
|
35 |
|
|
|
36 |
|
The build system would then create the actual `seabios_` image, replacing the |
|
37 |
|
other one, on x86 machines. |
|
38 |
|
|
|
39 |
|
So, the command to create the first image was removed. However, just before |
|
40 |
|
uploading `rev1` images, it was discovered that this would cause no U-Boot |
|
41 |
|
images to be built for ARM64 devices, which lead to Revision 2: |
|
42 |
|
|
|
43 |
|
Revision 2 (8 December 2024) |
|
44 |
|
---------- |
|
45 |
|
|
|
46 |
|
See commit ID `b910424b5df8ed7c931a7b8f5cc8e34eacf0ca3e`. |
|
47 |
|
|
|
48 |
|
Revision 1 was reverted, and replaced with the following logic instead: |
|
49 |
|
|
|
50 |
|
In `add_uboot`, the instruction to create a ROM image was changed so that it |
|
51 |
|
only creates one where U-Boot is the primary payload (which is the case for |
|
52 |
|
ARM64). |
|
53 |
|
|
|
54 |
|
The source archive is now `20241206rev2` instead of `20241206`, and the same |
|
55 |
|
is true of affected images on x86, where `vcfg` is set in `target.cfg`. |
|
56 |
|
|
|
57 |
|
Revision 3 (11 December 2024) |
|
58 |
|
---------- |
|
59 |
|
|
|
60 |
|
See commit ID `3b6b283eabe7a655c861d1543aeae49d27566f53` and the two commits |
|
61 |
|
before that. |
|
62 |
|
|
|
63 |
|
This revision disables PCI-E Re-plug (hotplug feature) for the NVMe SSD on |
|
64 |
|
Dell OptiPlex 3050 Micro, to prevent the device from being renamed randomly; |
|
65 |
|
such renaming will cause a system crash if booting Linux from the NVMe. |
|
66 |
|
|
|
67 |
|
In my case, I was running RAID1 (SATA+NVMe) and every few days, the RAID1 got |
|
68 |
|
unsynced; I simply re-synced and it was fine, but what if that was a RAID0? It |
|
69 |
|
would possibly corrupt the entire array. |
|
70 |
|
|
|
71 |
|
This revision should prevent the issue from occuring. Without this patch, |
|
72 |
|
the `nvme0n1` device (as an example) might randomly rename to `nvme0n2`, because |
|
73 |
|
Linux would see it as a new device. |
|
74 |
|
|
|
75 |
|
This same fix was made to the ThinkPad T480/T480s to fix the same issue there, |
|
76 |
|
which manifested during S3 resume, but that bug never made it into the release |
|
77 |
|
because it was fixed *before* the initial release of Libreboot 20241206. |
|
78 |
|
|
|
79 |
|
The ROM images were all re-uploaded, compiled from the rev3 tarball, because it was discovered that the rev2 tarballs had a GRUB built showing the old Libreboot 20241008 version number; the actual code in GRUB matched the code for 20241206, but it was a cached GRUB build from just before updating the version number for release. This is because the rev2 ROM image tarballs were done manually, to avoid a full re-build of every target in lbmk. To avoid all doubt, all ROM images have been re-compiled with the version number corrected, from the rev3 tag. |
|
80 |
|
|
|
81 |
|
Revision 4 (17 December 2024) |
|
82 |
|
---------- |
|
83 |
|
|
|
84 |
|
Rev4 fixed a bug: GRUB was not allowing the background image to be changed, |
|
85 |
|
despite rules in `grub.cfg` that made one in CBFS load before memdisk. This fix |
|
86 |
|
was implemented by no longer inserting background images into GRUB's memdisk, |
|
87 |
|
instead inserting them into CBFS. |
|
88 |
|
|
|
89 |
|
This way, you can remove what's in CBFS and replace it with your own, if that's |
|
90 |
|
what you want to do. |
|
91 |
|
|
|
92 |
|
To celebrate this fix, the default background logo was also changed. The old |
|
93 |
|
one was a white silhouette of the Libreboot logo, whereas the new one is of |
|
94 |
|
the same shape but shows a rainbow-coloured gradient instead of all-white. This |
|
95 |
|
rainbow logo was also used in U-Boot on the very initial Libreboot 20241206 |
|
96 |
|
release, and it's also used for the main website logo at the time of this |
|
97 |
|
revision. |
|
98 |
|
|
|
99 |
|
Basically, this fix was done as an excuse just to do another revision update, |
|
100 |
|
to change the logo! The actual bug was actually quite minor and irrelevant. |
|
101 |
|
|
|
102 |
|
Revision 5 and 6 (17 December 2024) |
|
103 |
|
---------------- |
|
104 |
|
|
|
105 |
|
All current ROM/src archives in this release match changes up to rev6. |
|
106 |
|
|
|
107 |
|
I decided afterall to keep using the boring all-grey silhouette logo in GRUB. |
|
108 |
|
I also made the same decision for U-Boot. |
|
109 |
|
|
|
110 |
|
The plain logo is less eye catching and looks less out of place, and it's |
|
111 |
|
uncontroversial in every way. This revision still contains the fix allowing |
|
112 |
|
GRUB backgrounds to be changed. Rev5 made this change to GRUB and Rev6 made |
|
113 |
|
it to U-Boot. All ROM images were re-compiled to rev6, and re-uploaded. |
|
114 |
|
|
|
115 |
|
A minor change, to be sure. I need Libreboot to be as trouble-free as possible |
|
116 |
|
to everyone, and some countries are culturally hostile to the particular |
|
117 |
|
colour gradient used by the old logo (from rev4); even if I preferred that |
|
118 |
|
logo, I want those users to have no trouble at all using Libreboot in public. |
|
119 |
|
Libreboot's only purpose is to provide free boot firmware. |
File site/news/libreboot20241206.md changed (mode: 100644) (index 8b39856..49543f4) |
... |
... |
for reading, and have a wonderful day! |
351 |
351 |
Revisions |
Revisions |
352 |
352 |
========= |
========= |
353 |
353 |
|
|
354 |
|
Occasionally, stable releases such as this one may contain minor (or critical) |
|
355 |
|
issues that went unnoticed during testing. When this occurs, critical or |
|
356 |
|
otherwise desirable fixes are implemented, while not fundamentally altering |
|
357 |
|
the substance of the original release. |
|
|
354 |
|
Several revisions have been made to this release, since the original release. |
|
355 |
|
With stable releases, it's normal to make such revisions, when critical bugs |
|
356 |
|
are discovered, or desirable changes are otherwise identified. |
358 |
357 |
|
|
359 |
|
When this occurs, the ROM image and source code archives are entirely re-built, |
|
360 |
|
and re-uploaded, replacing the old one. Patch files are provided alongside the |
|
361 |
|
updated source archive, so that you can revert (from it) back to the older |
|
362 |
|
revisions if you wish; by doing this, you can therefore also re-create the |
|
363 |
|
original release archive, for reference. |
|
|
358 |
|
When these changes are made, the release is re-compiled, with the newly amended |
|
359 |
|
binaries and sources re-uploaded, replacing what was there before. Individual |
|
360 |
|
patch files are also provided, so that you can (using them as reference) revert |
|
361 |
|
the source archive back to previous revisions. |
364 |
362 |
|
|
365 |
|
Revision 1 |
|
366 |
|
---------- |
|
|
363 |
|
Please see: [Libreboot 20241206 release revisions](libreboot20241206.Revisions.md) |
367 |
364 |
|
|
368 |
|
A bug was found whereby `seabios_` images are created twice, This was fixed in |
|
369 |
|
the revision `e3b77b132e6b5981c09bc1ce282afaae64058ab3`. This bug caused vendor |
|
370 |
|
file insertion to fail on release images, because the `vendorhashes` file would |
|
371 |
|
list the file twice, but one of the hashes would be wrong. |
|
372 |
|
|
|
373 |
|
This is because the build system wrongly created U-Boot-only images first with |
|
374 |
|
that name, because the `add_uboot` function in `rom.sh` unconditionally created |
|
375 |
|
images with U-Boot in them; the function also creates ARM64 images, where U-Boot |
|
376 |
|
is the primary payload. |
|
377 |
|
|
|
378 |
|
On x86 machines, SeaBIOS should be the main payload, chainloading U-Boot. |
|
379 |
|
|
|
380 |
|
The build system would then create the actual `seabios_` image, replacing the |
|
381 |
|
other one, on x86 machines. |
|
382 |
|
|
|
383 |
|
So, the command to create the first image was removed. However, just before |
|
384 |
|
uploading `rev1` images, it was discovered that this would cause no U-Boot |
|
385 |
|
images to be built for ARM64 devices, which lead to Revision 2: |
|
386 |
|
|
|
387 |
|
Revision 2 |
|
388 |
|
---------- |
|
389 |
|
|
|
390 |
|
See commit ID `b910424b5df8ed7c931a7b8f5cc8e34eacf0ca3e`. |
|
391 |
|
|
|
392 |
|
Revision 1 was reverted, and replaced with the following logic instead: |
|
393 |
|
|
|
394 |
|
In `add_uboot`, the instruction to create a ROM image was changed so that it |
|
395 |
|
only creates one where U-Boot is the primary payload (which is the case for |
|
396 |
|
ARM64). |
|
397 |
|
|
|
398 |
|
The source archive is now `20241206rev2` instead of `20241206`, and the same |
|
399 |
|
is true of affected images on x86, where `vcfg` is set in `target.cfg`. |
|
400 |
|
|
|
401 |
|
Revision 3 |
|
402 |
|
---------- |
|
403 |
|
|
|
404 |
|
See commit ID `3b6b283eabe7a655c861d1543aeae49d27566f53` and the two commits |
|
405 |
|
before that. |
|
406 |
|
|
|
407 |
|
This revision disables PCI-E Re-plug (hotplug feature) for the NVMe SSD on |
|
408 |
|
Dell OptiPlex 3050 Micro, to prevent the device from being renamed randomly; |
|
409 |
|
such renaming will cause a system crash if booting Linux from the NVMe. |
|
410 |
|
|
|
411 |
|
In my case, I was running RAID1 (SATA+NVMe) and every few days, the RAID1 got |
|
412 |
|
unsynced; I simply re-synced and it was fine, but what if that was a RAID0? It |
|
413 |
|
would possibly corrupt the entire array. |
|
414 |
|
|
|
415 |
|
This revision should prevent the issue from occuring. Without this patch, |
|
416 |
|
the `nvme0n1` device (as an example) might randomly rename to `nvme0n2`, because |
|
417 |
|
Linux would see it as a new device. |
|
418 |
|
|
|
419 |
|
This same fix was made to the ThinkPad T480/T480s to fix the same issue there, |
|
420 |
|
which manifested during S3 resume, but that bug never made it into the release |
|
421 |
|
because it was fixed *before* the initial release of Libreboot 20241206. |
|
422 |
|
|
|
423 |
|
The ROM images were all re-uploaded, compiled from the rev3 tarball, because it was discovered that the rev2 tarballs had a GRUB built showing the old Libreboot 20241008 version number; the actual code in GRUB matched the code for 20241206, but it was a cached GRUB build from just before updating the version number for release. This is because the rev2 ROM image tarballs were done manually, to avoid a full re-build of every target in lbmk. To avoid all doubt, all ROM images have been re-compiled with the version number corrected, from the rev3 tag. |
|
424 |
|
|
|
425 |
|
Revision 4 |
|
426 |
|
---------- |
|
427 |
|
|
|
428 |
|
Rev4 fixed a bug: GRUB was not allowing the background image to be changed, |
|
429 |
|
despite rules in `grub.cfg` that made one in CBFS load before memdisk. This fix |
|
430 |
|
was implemented by no longer inserting background images into GRUB's memdisk, |
|
431 |
|
instead inserting them into CBFS. |
|
432 |
|
|
|
433 |
|
This way, you can remove what's in CBFS and replace it with your own, if that's |
|
434 |
|
what you want to do. |
|
435 |
|
|
|
436 |
|
To celebrate this fix, the default background logo was also changed. The old |
|
437 |
|
one was a white silhouette of the Libreboot logo, whereas the new one is of |
|
438 |
|
the same shape but shows a rainbow-coloured gradient instead of all-white. This |
|
439 |
|
rainbow logo was also used in U-Boot on the very initial Libreboot 20241206 |
|
440 |
|
release, and it's also used for the main website logo at the time of this |
|
441 |
|
revision. |
|
442 |
|
|
|
443 |
|
Basically, this fix was done as an excuse just to do another revision update, |
|
444 |
|
to change the logo! The actual bug was actually quite minor and irrelevant. |
|
445 |
|
|
|
446 |
|
Revision 5 and 6 |
|
447 |
|
---------------- |
|
448 |
|
|
|
449 |
|
All current ROM/src archives in this release match changes up to rev6. |
|
450 |
|
|
|
451 |
|
I decided afterall to keep using the boring all-grey silhouette logo in GRUB. |
|
452 |
|
I also made the same decision for U-Boot. |
|
453 |
|
|
|
454 |
|
The plain logo is less eye catching and looks less out of place, and it's |
|
455 |
|
uncontroversial in every way. This revision still contains the fix allowing |
|
456 |
|
GRUB backgrounds to be changed. Rev5 made this change to GRUB and Rev6 made |
|
457 |
|
it to U-Boot. All ROM images were re-compiled to rev6, and re-uploaded. |
|
458 |
|
|
|
459 |
|
A minor change, to be sure. I need Libreboot to be as trouble-free as possible |
|
460 |
|
to everyone, and some countries are culturally hostile to the particular |
|
461 |
|
colour gradient used by the old logo (from rev4); even if I preferred that |
|
462 |
|
logo, I want those users to have no trouble at all using Libreboot in public. |
|
463 |
|
Libreboot's only purpose is to provide free boot firmware. |
|
|
365 |
|
Many revisions are planned in the run-up to next year's stable release ETA Summer |
|
366 |
|
of 2025. In particular, there is much work that still needs to be done on the |
|
367 |
|
U-Boot payloads (x86 and ARM64). |