From 3f427a43a575148474f15732f457447f7d00ae56 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 12 Jun 2024 09:28:12 +0100 Subject: [PATCH 001/399] update freedom status this entire page is due for an audit, but i'll do that later as part of a lbwww-wide audit. the entire docs need to be purged clean and re-done in a few places Signed-off-by: Leah Rowe --- site/freedom-status.md | 3 ++- site/freedom-status.uk.md | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/site/freedom-status.md b/site/freedom-status.md index 1e313cf..19c99d0 100644 --- a/site/freedom-status.md +++ b/site/freedom-status.md @@ -243,7 +243,8 @@ Neutered ME required on these targets: `t420_8mb`, `t420s_8mb`, `t430_12mb`, `w541_12mb`, `w541mrc_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230edp_12mb`, `x230t_12mb`, `x230t_16mb`, `hp8200sff`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8300usdt_16mb`, `hp2170p_16mb`, `hp9470m_16mb`, -`hp820g2_12mb` and `t1650_12mb`. +`hp820g2_12mb`, `t1650_12mb` and the OptiPlex 9020 ports, also +Sandybridge/Ivybridge/Haswell Dell Latitude. As stated, Libreboot provides this in a state where the ME is no longer a threat to security. It initialises itself, but then does nothing, so it's diff --git a/site/freedom-status.uk.md b/site/freedom-status.uk.md index 9534360..6ec5c28 100644 --- a/site/freedom-status.uk.md +++ b/site/freedom-status.uk.md @@ -333,7 +333,8 @@ Intel/x86 `t440p_12mb`, `t440pmrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `w541mrc_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230edp_12mb`, `x230t_12mb`, `x230t_16mb`, `hp8200sff_8mb`, `hp2560p_8mb`, -`hp2570p_16mb`, `hp2170p_16mb`, `hp9470m_16mb`, `hp820g2_12mb` та `t1650_12mb`. +`hp2570p_16mb`, `hp2170p_16mb`, `hp9470m_16mb`, `hp820g2_12mb`, `t1650_12mb` та +Dell OptiPlex 9020, Sandybridge/Ivybridge/Haswell Dell Latitude. Як заявлено, Libreboot надає це в стані, де ME більше не є загрозою для безпеки. Він ініціалізує себе, але потім нічого не робить, тому його From f81b24134d714dd148086a73b99160c660f69a19 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 12 Jun 2024 13:59:32 +0100 Subject: [PATCH 002/399] fix date Signed-off-by: Leah Rowe --- site/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/index.md b/site/index.md index 755d8fe..055de19 100644 --- a/site/index.md +++ b/site/index.md @@ -24,7 +24,7 @@ The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. **NEW RELEASE: The latest release is Libreboot 20240612, released on -6 June 2024. +12 June 2024. See: [Libreboot 20240612 release announcement](news/libreboot20240612.md).** *We* believe the freedom to [study, share, modify and use From f5db507ecdfd2d3ae5a3269a8488c4b29883e7cd Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 13 Jun 2024 16:34:45 +0100 Subject: [PATCH 003/399] stick to the plan again: don't promote my other project keep libreboot.org clean Signed-off-by: Leah Rowe --- site/news/audit5.md | 18 ++++-------------- site/news/libreboot20240612.md | 17 ++++------------- 2 files changed, 8 insertions(+), 27 deletions(-) diff --git a/site/news/audit5.md b/site/news/audit5.md index dcb8b30..8de0178 100644 --- a/site/news/audit5.md +++ b/site/news/audit5.md @@ -128,15 +128,10 @@ Feature changes robust these days, pretty much booting anything automatically, but you used to have to (regularly) use a `libreboot_grub.cfg` file to override the default one provided by your distro. This legacy cruft has been removed, entirely! -* Import the `nuke()` function from Canoeboot; even though Libreboot does not - deblob (that's what Canoeboot is for), it still needs to delete certain files - from time to time, and this function does a very efficient job of that. - This is used to delete a poorly licensed source file from U-Boot, - namely `test/lib/strlcat.c` (the license name has a typo in it which makes - the file technically non-free or otherwise tainted) - that file was already - deleted before, but the deletion was hardcoded, so now it is deleted - systematically, and it is now possible to add new deletions without modifying - more code in lbmk. +* Added the `nuke()` function to delete files systematically, based on the + presence of a `nuke.list` file which contains files/directory paths relative + to the root directory of a given Git repository. This is used to delete a + poorly licensed source file in U-Boot (strlcat.c). * **T440p/W541 laptops: Enable NVMe SSDs in `grub_scan_disk`**; an e-key adapter can be used in the WLAN slot, to add an NVMe SSD. Even though throughput is limited by the x1 PCI-E width, it's still a viable upgrade as it offers @@ -418,7 +413,6 @@ The changes are, from newest to earliest: a new Git history when you run it for the first time. * Main build script: define `xp` as a global variable, to prevent it from being lost between functions. -* Fixed missing deletion of strlcat.c in U-Boot sources * script/roms: Create full release tarball name, when generating releases. * Main build script: exit (with error status) if not running directly from the root of the lbmk work directory. @@ -513,10 +507,6 @@ where possible and so on: the `main` function, and then `main` was cleaned up significantly. * Main build script: don't make `script_path` a global variable; this allowed a reduction in code size by precisely *one line of code*. -* Made certain variables generic (lbmk and LBMK variables are now xbmk - and XBMK respectively). The same change has been made in Canoeboot; this - single change makes merging patches between Libreboot/Canoeboot much easier, - by reducing the number of merge conflicts during `git cherry-pick`. * Main build script: merged the functionality of function `check_git` into the `main` function, then deleted function `check_git` (which was in the file include/option.sh). diff --git a/site/news/libreboot20240612.md b/site/news/libreboot20240612.md index 752650d..37d75d9 100644 --- a/site/news/libreboot20240612.md +++ b/site/news/libreboot20240612.md @@ -170,15 +170,10 @@ Feature changes robust these days, pretty much booting anything automatically, but you used to have to (regularly) use a `libreboot_grub.cfg` file to override the default one provided by your distro. This legacy cruft has been removed, entirely! -* Import the `nuke()` function from Canoeboot; even though Libreboot does not - deblob (that's what Canoeboot is for), it still needs to delete certain files - from time to time, and this function does a very efficient job of that. - This is used to delete a poorly licensed source file from U-Boot, - namely `test/lib/strlcat.c` (the license name has a typo in it which makes - the file technically non-free or otherwise tainted) - that file was already - deleted before, but the deletion was hardcoded, so now it is deleted - systematically, and it is now possible to add new deletions without modifying - more code in lbmk. +* Added the `nuke()` function to delete files systematically, based on the + presence of a `nuke.list` file which contains files/directory paths relative + to the root directory of a given Git repository. This is used to delete a + poorly licensed source file in U-Boot (strlcat.c). * **T440p/W541 laptops: Enable NVMe SSDs in `grub_scan_disk`**; an e-key adapter can be used in the WLAN slot, to add an NVMe SSD. Even though throughput is limited by the x1 PCI-E width, it's still a viable upgrade as it offers @@ -555,10 +550,6 @@ where possible and so on: the `main` function, and then `main` was cleaned up significantly. * Main build script: don't make `script_path` a global variable; this allowed a reduction in code size by precisely *one line of code*. -* Made certain variables generic (lbmk and LBMK variables are now xbmk - and XBMK respectively). The same change has been made in Canoeboot; this - single change makes merging patches between Libreboot/Canoeboot much easier, - by reducing the number of merge conflicts during `git cherry-pick`. * Main build script: merged the functionality of function `check_git` into the `main` function, then deleted function `check_git` (which was in the file include/option.sh). From d8bcd5c7044e28c6e20778ea25f6b907092a7e52 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 19 Jun 2024 01:21:40 +0100 Subject: [PATCH 004/399] remove obsolete mentions of t440pmrc_12mb also w541mrc_12mb remove these mentions. clarify that only NRI is provided now, for libre raminit on haswell machines. Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 35 +++++++++++++++------ site/docs/install/ivy_has_common.uk.md | 34 ++++++++++++++------ site/docs/install/t440p_external.md | 43 ++++++++++++++++++-------- site/freedom-status.md | 4 +-- site/freedom-status.uk.md | 4 +-- 5 files changed, 84 insertions(+), 36 deletions(-) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index a048037..7474899 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -86,7 +86,7 @@ In order to inject the necessary files into a rom image, run the script from the If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. Run the injection script pointing to the release archive you downloaded: - ./vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440pmrc_12mb.tar.xz + ./vendor inject libreboot-RELEASE_targetname.tar.xz The script can automatically detect the board as long as you do not change the file name. You can then find flash-ready ROMs in `/bin/release/` @@ -136,14 +136,31 @@ You'll note the small size of the Intel ME, e.g. 84KB on sandybridge platforms. This is because lbmk *automatically* neuters it, disabling it during early boot. This is done using `me_cleaner`, which lbmk imports. +NOTE: the MAC changer makes use of `nvmutil`, which you can read more about in +the [nvmutil documentation](nvmutil.md). + Errata ====== -**NOTE: Haswell machines come with `mrc.bin` or without, depending on the -ROM image configuration. These ROM configs have `mrc.bin`: `t440pmrc_12mb` -and `w541mrc_12mb`. These ROM configs have libre MRC: `t440p_12mb` -and `w541_12mb` - it is critical that you choose the right one, when using -the `-b` flag in the `./vendor inject` command. For example, if you -used `-b t440p_12mb` on a ROM image that actually corresponds -to `t440pmrc_12mb`, then the required `mrc.bin` file would not be added -and that ROM would not boot when flashed.** +NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer +included for Haswell; MRC is a blob for raminit, but we now provide libre +raminit. The following targets no longer exist in the build system: + +* `t440pmrc_12mb` (use `t440plibremrc_12mb` instead) +* `t440pbmrc_12mb` (use `t440plibremrc_12mb` instead) +* `w541mrc_12mb` (use `w541_12mb` instead) +* `w541bmrc_12mb` (use `w541_12mb` instead) +* `dell9020sff_12mb` (use `dell9020sff_nri_12mb` instead) +* `dell9020sffbmrc` (use `dell9020sff_nri_12mb` instead) +* `dell9020mt_12mb` (use `dell9020mt_nri_12mb` instead) +* `dell9020mtbmrc` (use `dell9020mt_nri_12mb` instead) + +This is written as errata because some users may still be using older release +images but on the newer build system from May 2024 onward; you must use the +Libreboot 20240225 release if you want to inject MRC and so on, for these older +targets. + +Libreboot's [binary blob reduction policy](../../news/policy.md) is very strict, +and states: if a blob can be avoided, it must be avoided. Therefore, the MRC +is removed on Haswell and Libreboot will only use the libre raminit (called +NRI, short for Native Ram Initialisation). diff --git a/site/docs/install/ivy_has_common.uk.md b/site/docs/install/ivy_has_common.uk.md index 3f9dd38..eb10831 100644 --- a/site/docs/install/ivy_has_common.uk.md +++ b/site/docs/install/ivy_has_common.uk.md @@ -140,17 +140,31 @@ You'll note the small size of the Intel ME, e.g. 84KB on sandybridge platforms. This is because lbmk *automatically* neuters it, disabling it during early boot. This is done using `me_cleaner`, which lbmk imports. +NOTE: the MAC changer makes use of `nvmutil`, which you can read more about in +the [nvmutil documentation](nvmutil.md). + Errata ====== -**NOTE: Haswell machines come with `mrc.bin` or without, depending on the -ROM image configuration. These ROM configs have `mrc.bin`: `t440pmrc_12mb` -and `w541mrc_12mb`. These ROM configs have libre MRC: `t440p_12mb` -and `w541_12mb` - it is critical that you choose the right one, when using -the `-b` flag in the `./vendor inject` command. For example, if you -used `-b t440p_12mb` on a ROM image that actually corresponds -to `t440pmrc_12mb`, then the required `mrc.bin` file would not be added -and that ROM would not boot when flashed.** +NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer +included for Haswell; MRC is a blob for raminit, but we now provide libre +raminit. The following targets no longer exist in the build system: -NOTE: the MAC changer makes use of `nvmutil`, which you can read more about in -the [nvmutil documentation](nvmutil.md). +* `t440pmrc_12mb` (use `t440plibremrc_12mb` instead) +* `t440pbmrc_12mb` (use `t440plibremrc_12mb` instead) +* `w541mrc_12mb` (use `w541_12mb` instead) +* `w541bmrc_12mb` (use `w541_12mb` instead) +* `dell9020sff_12mb` (use `dell9020sff_nri_12mb` instead) +* `dell9020sffbmrc` (use `dell9020sff_nri_12mb` instead) +* `dell9020mt_12mb` (use `dell9020mt_nri_12mb` instead) +* `dell9020mtbmrc` (use `dell9020mt_nri_12mb` instead) + +This is written as errata because some users may still be using older release +images but on the newer build system from May 2024 onward; you must use the +Libreboot 20240225 release if you want to inject MRC and so on, for these older +targets. + +Libreboot's [binary blob reduction policy](../../news/policy.md) is very strict, +and states: if a blob can be avoided, it must be avoided. Therefore, the MRC +is removed on Haswell and Libreboot will only use the libre raminit (called +NRI, short for Native Ram Initialisation). diff --git a/site/docs/install/t440p_external.md b/site/docs/install/t440p_external.md index 3b8cf44..0bf7166 100644 --- a/site/docs/install/t440p_external.md +++ b/site/docs/install/t440p_external.md @@ -40,29 +40,20 @@ In order to inject the necessary files into a rom image, run the script from the If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. Run the injection script pointing to the release archive you downloaded: - ./vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440_12mb.tar.xz + ./vendor inject /path/to/libreboot-RELEASE_targetname.tar.xz The script can automatically detect the board as long as you do not change the file name. You can then find flash-ready ROMs in `/bin/release/` Alternatively, you may patch only a single rom file. -For example (libre replacement of `mrc.bin`): +For example: - ./vendor inject -r t440p_libreboot.rom -b t440p_12mb + ./vendor inject -r t440p_libreboot.rom -b t440plibremrc_12mb Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. For example: - ./vendor inject -r t440p_libreboot.rom -b t440p_12mb -m 00:f6:f0:40:71:fd - -If you're flashing a ROM that needs vendor file `mrc.bin`, you would do one of these -instead, for example: - - ./vendor inject -r t440p_libreboot.rom -b t440pmrc_12mb - -or (inserting a different MAC address) - - ./vendor inject -r t440p_libreboot.rom -b t440pmrc_12mb -m 00:f6:f0:40:71:fd + ./vendor inject -r t440p_libreboot.rom -b t440plibremrc_12mb -m 00:f6:f0:40:71:fd NOTE: this makes use of `nvmutil`, which you can read more about in the [nvmutil documentation](nvmutil.md). @@ -107,3 +98,29 @@ You should now be able to see the two flash chips near the RAM.\ You can now proceed to [flashing](/docs/install/spi.html) this machine. + +Errata +====== + +NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer +included for Haswell; MRC is a blob for raminit, but we now provide libre +raminit. The following targets no longer exist in the build system: + +* `t440pmrc_12mb` (use `t440plibremrc_12mb` instead) +* `t440pbmrc_12mb` (use `t440plibremrc_12mb` instead) +* `w541mrc_12mb` (use `w541_12mb` instead) +* `w541bmrc_12mb` (use `w541_12mb` instead) +* `dell9020sff_12mb` (use `dell9020sff_nri_12mb` instead) +* `dell9020sffbmrc` (use `dell9020sff_nri_12mb` instead) +* `dell9020mt_12mb` (use `dell9020mt_nri_12mb` instead) +* `dell9020mtbmrc` (use `dell9020mt_nri_12mb` instead) + +This is written as errata because some users may still be using older release +images but on the newer build system from May 2024 onward; you must use the +Libreboot 20240225 release if you want to inject MRC and so on, for these older +targets. + +Libreboot's [binary blob reduction policy](../../news/policy.md) is very strict, +and states: if a blob can be avoided, it must be avoided. Therefore, the MRC +is removed on Haswell and Libreboot will only use the libre raminit (called +NRI, short for Native Ram Initialisation). diff --git a/site/freedom-status.md b/site/freedom-status.md index 19c99d0..650ff4a 100644 --- a/site/freedom-status.md +++ b/site/freedom-status.md @@ -239,8 +239,8 @@ Intel/x86 ### Intel ME: Neutered ME required on these targets: `t420_8mb`, `t420s_8mb`, `t430_12mb`, -`t440p_12mb`, `t440pmrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, -`w541_12mb`, `w541mrc_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, +`t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, +`w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230edp_12mb`, `x230t_12mb`, `x230t_16mb`, `hp8200sff`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8300usdt_16mb`, `hp2170p_16mb`, `hp9470m_16mb`, `hp820g2_12mb`, `t1650_12mb` and the OptiPlex 9020 ports, also diff --git a/site/freedom-status.uk.md b/site/freedom-status.uk.md index 6ec5c28..c613e4d 100644 --- a/site/freedom-status.uk.md +++ b/site/freedom-status.uk.md @@ -330,8 +330,8 @@ Intel/x86 ### Intel ME: Нейтралізований ME потрібен на цих цілях: `t420_8mb`, `t420s_8mb`, `t430_12mb`, -`t440p_12mb`, `t440pmrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, -`w541_12mb`, `w541mrc_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, +`t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, +`w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230edp_12mb`, `x230t_12mb`, `x230t_16mb`, `hp8200sff_8mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp2170p_16mb`, `hp9470m_16mb`, `hp820g2_12mb`, `t1650_12mb` та Dell OptiPlex 9020, Sandybridge/Ivybridge/Haswell Dell Latitude. From 955e3ade941b77d45993b0e0a90525c21fa7549d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 23 Jun 2024 21:15:29 +0100 Subject: [PATCH 005/399] light theme i feel like changing the theme. it's too dark. i guess it's june right now, so let's make it a light theme instead of dark. totally done on a whim. Signed-off-by: Leah Rowe --- site/global.css | 24 +++++++++++++++--------- site/template.de.include | 2 +- site/template.include | 2 +- site/template.it.include | 2 +- site/template.uk.include | 2 +- site/template.zh-cn.include | 2 +- 6 files changed, 20 insertions(+), 14 deletions(-) diff --git a/site/global.css b/site/global.css index ce8b686..5fe6313 100644 --- a/site/global.css +++ b/site/global.css @@ -2,6 +2,9 @@ * This CSS is released under Creative Commons Zero 1.0 Universal license: * https://creativecommons.org/publicdomain/zero/1.0/legalcode.txt */ + +h1,h2,h3,h4{font-weight:normal; font-size:2em} + .specs { float: right; @@ -14,7 +17,7 @@ } -@media (max-width:89em) +@media (max-width:90em) { html { @@ -31,21 +34,24 @@ html { - background: #280b22; - color: #eee; + color: #280b22; + background: #f0f0f0; font-family: sans-serif; line-height: 1.4; - text-shadow: 1px 1px #000; +} +hr { + color: #eee; } -code,pre, #TOC, a:hover +code,pre, #TOC, a:hover, img { - background: #4e324e; + background: #d9d6d6; + border-radius:0.25em; } a { - color: #fcc; + color: #4e324e; } img,video,iframe,pre @@ -81,12 +87,12 @@ html, ul, #TOC { .title-logo{display:none} div.title,h1.title { - background:url("/favicon.ico") no-repeat; + background:url("https://av.libreboot.org/logo/logo.png") no-repeat; background-size:auto 99%; min-height:2em } div.title {background-position:right} - h1.title {padding:0 4em} + h1.title {padding:0 4em; font-size:2.5em; font-weight:normal;} #TOC { float: left; diff --git a/site/template.de.include b/site/template.de.include index 106168d..608bd32 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -53,7 +53,7 @@ $if(title)$

$title$

diff --git a/site/template.include b/site/template.include index 6a5d9cc..0472d70 100644 --- a/site/template.include +++ b/site/template.include @@ -53,7 +53,7 @@ $if(title)$

$title$

diff --git a/site/template.it.include b/site/template.it.include index 4a257bf..c05181f 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -53,7 +53,7 @@ $if(title)$

$title$

diff --git a/site/template.uk.include b/site/template.uk.include index 3592267..da1c2b0 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -53,7 +53,7 @@ $if(title)$

$title$

diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index 805614a..fdf1232 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -53,7 +53,7 @@ $if(title)$

$title$

From 7df6bdc9acd1f5d0348c7958c9a0cf0e00f4d8ee Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 23 Jun 2024 21:22:10 +0100 Subject: [PATCH 006/399] correction Signed-off-by: Leah Rowe --- site/template.de.include | 2 +- site/template.include | 2 +- site/template.it.include | 2 +- site/template.uk.include | 2 +- site/template.zh-cn.include | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/site/template.de.include b/site/template.de.include index 608bd32..2929f89 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -53,7 +53,7 @@ $if(title)$

$title$

diff --git a/site/template.include b/site/template.include index 0472d70..eea3673 100644 --- a/site/template.include +++ b/site/template.include @@ -53,7 +53,7 @@ $if(title)$

$title$

diff --git a/site/template.it.include b/site/template.it.include index c05181f..b9145ca 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -53,7 +53,7 @@ $if(title)$

$title$

diff --git a/site/template.uk.include b/site/template.uk.include index da1c2b0..e18fca7 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -53,7 +53,7 @@ $if(title)$

$title$

diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index fdf1232..9be2c54 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -53,7 +53,7 @@ $if(title)$

$title$

From c5e54b63f0e9b21bca08a2d0ce8df31c0b85844a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 23 Jun 2024 21:26:05 +0100 Subject: [PATCH 007/399] don't set background on the title logo Signed-off-by: Leah Rowe --- site/global.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/global.css b/site/global.css index 5fe6313..7d766f4 100644 --- a/site/global.css +++ b/site/global.css @@ -85,7 +85,7 @@ html, ul, #TOC @media (min-width:60em) { - .title-logo{display:none} + .title-logo{display:none; background:none;} div.title,h1.title { background:url("https://av.libreboot.org/logo/logo.png") no-repeat; background-size:auto 99%; From 37a9893a2dab08d16a9cfe565ec91dedfd7f71d5 Mon Sep 17 00:00:00 2001 From: Daniil Prokofev Date: Sat, 29 Jun 2024 13:31:55 +0300 Subject: [PATCH 008/399] Russian index.md translate --- site/index.ru.md | 79 ++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 79 insertions(+) create mode 100644 site/index.ru.md diff --git a/site/index.ru.md b/site/index.ru.md new file mode 100644 index 0000000..40a91f5 --- /dev/null +++ b/site/index.ru.md @@ -0,0 +1,79 @@ +--- +title: Проект Libreboot +x-toc-enalbe: true +... + +Проект *Libreboot* предоставляет [свободную, с открытым исходным кодом](https://writefreesoftware.org/) загрузочную прошивку, основанную на coreboot, заменяющую проприетарные BIOS/UEFI на [некоторых Intel/AMD x86 и ARM материнских платах](docs/hardware/), включая ноутбуки и десктопы. Она инициализирует аппаратное обеспечение компьютера (например, контроллер памяти, процессор, переферию) и запускает загрузчик для вашей операционный системы. [Linux](docs/linux/) и [BSD](docs/bsd/) хорошо поддерживаются. Можно попросить помощь через [\#libreboot](https://web.libera.chat/#libreboot) на [Libera](https://libera.chat/) IRC. [Страница с заданиями](tasks/) показывают, над чем мы работаем (мы приветствуем ваши предложения, если вы хотите поработать над некоторыми задачами самостоятельно). + + + +Вы также можете купить [Libreboot предустановленным](https://minifree.org) от Minifree Ltd, а также присылать нам свои совместимые устройства для [установки Libreboot](https://minifree.org/product/installation-service/). Основатель и ведущий разработчик Libreboot, Лия Роу, также владеет и управляет Minifree; продажи обеспечивают финансирование для Libreboot. + +**НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 20240612, опубликован 12 июня 2024 года. Смотрите: [Libreboot 20240612 release announcment](news/libreboot20240612.md).** + +*Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://yewtu.be/watch?v=Npd_xDuNi9k) важно; Libreboot позволяет вам продолжить использовать ваша оборудование, с продолжающимися обновлениями программного обеспечения. Вот *почему* Libreboot существует. + +Обзор устройства Libreboot +============================ + + + +Libreboot предоставляет [coreboot](https://coreboot.org/) для [инициализации машины](https://doc.coreboot.org/getting_started/architecture.html), которая затем переходит к [полезной нагрузке](https://doc.coreboot.org/payloads.html) в загрузочной флэш-памяти; coreboot работает со многими программами, но Libreboot предоставляет только SeaBIOS, GNU GRUB и U-Boot. Memtest86+ также предоставляется, но только на некоторых материнских платах. Полезная нагрузка - программа во флэш-памяти, которая предоставляет "ранний" пользовательский интерфейс для загрузки операционной системы. Такая инфраструктура означает, что вы можете запустить все что угодно (даже Linux!) из загрузочной флэш-памяти. + +Libreboot - это *дистрибутив coreboot* также, как и Debian - *диструбутив Linux*. Libreboot делает coreboot простым к использованию для обычных пользователей, предоставляя [полностью автоматизированную систему сборки](docs/build/) и [дружелюбные к пользователю инструкции к установке](docs/install/), в дополении к регулярному бинарному релизу, дающему скомпилированные ROM образы для установки на поддерживаемом оборудовании. Без автоматизации, предоставляемой Libreboot, coreboot был бы недоступен для большинства пользователей; однако вы также можете [сконфигурировать](docs/mantain) Libreboot как вы желаете. + +Почему стоит использовать Libreboot? +================== + + + +Если вы уже склоняетесь к свободному программному обеспечению, возможно, вы уже пользователь coreboot, Libreboot помогает проще начать использовать или поддерживать coreboot на вашей машине, с помощью автоматизированной сборки. Мы предоставляем регулярные протестированные релизы, предварительно собранные, часто с некоторыми патчами coreboot (и другим кодом) для того, чтобы гарантировать стабильность. Для сравнения, coreboot использует модель плавающих релизов, со снимками кода каждые несколько месяцев, он скорее всего ориентирован на разработчиков, когда как Libreboot специально сделан для конечных пользователей. По-другому, цель Libreboot - *просто работать*. Конфигурация и установка coreboot также возможна, но Libreboot делает процесс *намного* проще. + +Libreboot дает вам [свободы](https://writefreesoftware.org/), которые вы наверняка не получите с другими загрузочными прошивками, плюс более быстрый запуск ОС и [лучшую безопасность](docs/linux/grub_hardening.md). Он невероятно мощный и [настраиваемый](docs/maintain/) для многих случаев. Если вас не устраивают ограничения (также стоит упомянуть проблемы с безопасностью), наложенные на вас вашим поставщиком проприетарного BIOS, то Libreboot один из возможных вариантов для вас. Поскольку он наследует coreboot, в его коде нет никаких известных бэкдоров, и он не содержит устаревших ошибок 1980-х годов. Libreboot обеспечивает гладкую и быструю загрузку систем Linux/BSD на основе coreboot, которая регулярно проверяется и совершенствуется. + +Libreboot надежнее многих проприетарных прошивок. Многие люди используют проприетарные загрузочные прошивки, даже если они используют [свободную операционную систему](https://www.openbsd.org/). Проприетарные прошивки часто [содержат](faq.html#intel) [бэкдоры](faq.html#amd) и множество багов. Проект Libreboot был основан в декабре 2013 года, с целью сделать coreboot доступным для людей, отдаленных от технологий. + +Libreboot ориентирован на сообщество, с фокусом на помощь людям перестать пользоваться проприетарными загрузочными прошивками; мы сами хотим жить в таком мире, где все программное обеспечение [свободное](https://writefreesoftware.org/), и поэтому, Libreboot - это попытка приблизиться к этому миру. В отличие от больших поставщиков, мы не пытаемся задушить вас любыми способами, мы тажке не видим в вас никакой угрозы; мы уважаем возможность использовать, изучать, модифицировать и распространять программное обеспечение без ограничения и считаем, что все должны иметь это право. Что касается компьютеров, это вещи, которые вы купили, и у вас есть право изменять их как вам угодно. Когда вы слышите, что Intel разговаривает о *Boot Guard* (который мешает coreboot разрешая запускать только прошивку, имеющую их подпись) или других крупных производителей, налагающих похожие ограничения, и вы слышите о "безопасности", они только говорят о *своей* безопасности, но не вашей. В Libreboot все наоборот: мы видим Intel Boot Guard и похожие технологии как покушение на ваши свободы и собственность (ваш компьютер), и поэтому наша миссия - помочь вам [вырвать](https://trmm.net/TOCTOU/) контроль обратно. + +Libreboot это не форк coreboot +=================================== + + + +По факту, Libreboot пытается быть как можно более похожей на *стоковый* coreboot для каждой материнской платы, но с множетсвом доступных опций для конфигурации, предоставляемых автоматической системой сборки. + +Также, как и *Alpine Linux* - дистрибутив Linux, Libreboot - *дистрибутив coreboot*. Если вы хотите создать ROM образ с нуля, вам нужно быть экспертом в конфигурации coreboot, GRUB и любого другого программного обеспечения, которое может вам понадобится. С *Libreboot*, вы можете буквально скачать все с Git или архива с исходным кодом и запустить простой скрипт, которой и соберет весь ROM образ. Автоматизированная система сборки, названная `lbmk` (Libreboot MaKe), собирает ROM образы автоматически, без какого-либо пользовательского ввода и без каких-либо манипуляций, требуемых от пользователя. Все необходимая настройка уже была выполена заранее. + +Если бы вы собирали обычный coreboot не использую систему автоматической сборки Libreboot, вам бы потребовались специфические знания, для того, чтобы получить работающую конфигурацию. + +Регулярные бинарные релизы Libreboot предоставляет эти ROM образы уже собранными, и вы просто можете их установить, без каких-либо дополнительных знаний или навыков, исключая способность следовать [упрощенной инструкции, написанной для пользователей, не обладающими техническими знаниями](docs/install/). + +Как помочь? +----------- + +[Страница задач](tasks/) показывает задачи, над которыми нужно работать. Она будет обновляться по мере того, как задания будут выполнены/добавлены. Если вы хотите помочь, выбирайте одно из заданий и работайте над ним. + + + +*Больше всего* вы можете помочь, *добавив* новые материнские платы в Libreboot, отправя ваш конфигурационный файл. Все, что поддерживает coreboot, может быть интегрировано в Libreboot с помощью ROM образов, предоставляемых в релизе. Смотрите: + +* [Подайте заявку на сопровождающего/тестировщика платы](docs/maintain/testing.md) +* [Руководство по портировании на новые платы](docs/maintain/porting.md) +* [Документация по системе сборки Libreboot](docs/maintain/) + +После следует обслуживание системы сборки (см. выше) и *документация*, которую мы воспринимаем очень серьезно. Документация очень важна в любом проекте. + +*Поддержка пользователей* также важна. Оставайтесь в IRC, и если вы компетентны в том, чтобы помочь кому-то с их проблемой (или достаточно хитры, чтобы учиться у них), это отличная услуга для проекта. Многие люди также обращаются за поддержкой в раздел `r/libreboot` на Reddit. + +Вся дискуссии насчет разработки и поддержка пользователей осуществляется через IRC. Больше информации можно найти на [странице контактов](contact.md) + +Требуется помощь с переводом libreboot.org +-------------------------------------- + +Сейчас Libreboot перевел веб страницы на украинский и французский (но не все страницы). + +Если вы хотите помочь с переводом, обновляйте существующие переводы и отправляйте нам переведенные версии. Для инструкций посетите: + +[Как отправлять переводы для libreboot.org](news/translations.md) + +Даже если кто-то уже работает над переводом на определенным языке, мы всегда можем использовать несколько людей. Чем больше, тем веселее! \ No newline at end of file From 7755cc9d3a72cca826d891c9427914ddbf4f417b Mon Sep 17 00:00:00 2001 From: Daniil Prokofev Date: Sat, 29 Jun 2024 13:40:22 +0300 Subject: [PATCH 009/399] Updated rus translate --- site/index.ru.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/site/index.ru.md b/site/index.ru.md index 40a91f5..6dca673 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -11,14 +11,14 @@ x-toc-enalbe: true **НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 20240612, опубликован 12 июня 2024 года. Смотрите: [Libreboot 20240612 release announcment](news/libreboot20240612.md).** -*Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://yewtu.be/watch?v=Npd_xDuNi9k) важно; Libreboot позволяет вам продолжить использовать ваша оборудование, с продолжающимися обновлениями программного обеспечения. Вот *почему* Libreboot существует. +*Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://yewtu.be/watch?v=Npd_xDuNi9k) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. Обзор устройства Libreboot ============================ -Libreboot предоставляет [coreboot](https://coreboot.org/) для [инициализации машины](https://doc.coreboot.org/getting_started/architecture.html), которая затем переходит к [полезной нагрузке](https://doc.coreboot.org/payloads.html) в загрузочной флэш-памяти; coreboot работает со многими программами, но Libreboot предоставляет только SeaBIOS, GNU GRUB и U-Boot. Memtest86+ также предоставляется, но только на некоторых материнских платах. Полезная нагрузка - программа во флэш-памяти, которая предоставляет "ранний" пользовательский интерфейс для загрузки операционной системы. Такая инфраструктура означает, что вы можете запустить все что угодно (даже Linux!) из загрузочной флэш-памяти. +Libreboot предоставляет [coreboot](https://coreboot.org/) для [инициализации машины](https://doc.coreboot.org/getting_started/architecture.html), которая затем переходит к [полезной нагрузке](https://doc.coreboot.org/payloads.html) в загрузочной флэш-памяти; coreboot работает со многими программами, но Libreboot предоставляет только SeaBIOS, GNU GRUB и U-Boot. Memtest86+ также предоставляется, но только на некоторых материнских платах. Полезная нагрузка - программа во флэш-памяти, которая предоставляет "ранний" пользовательский интерфейс для загрузки операционной системы. Это значит, что вы можете запустить все что угодно из загрузочной флэш-памяти (даже Linux!). Libreboot - это *дистрибутив coreboot* также, как и Debian - *диструбутив Linux*. Libreboot делает coreboot простым к использованию для обычных пользователей, предоставляя [полностью автоматизированную систему сборки](docs/build/) и [дружелюбные к пользователю инструкции к установке](docs/install/), в дополении к регулярному бинарному релизу, дающему скомпилированные ROM образы для установки на поддерживаемом оборудовании. Без автоматизации, предоставляемой Libreboot, coreboot был бы недоступен для большинства пользователей; однако вы также можете [сконфигурировать](docs/mantain) Libreboot как вы желаете. @@ -33,7 +33,7 @@ Libreboot дает вам [свободы](https://writefreesoftware.org/), ко Libreboot надежнее многих проприетарных прошивок. Многие люди используют проприетарные загрузочные прошивки, даже если они используют [свободную операционную систему](https://www.openbsd.org/). Проприетарные прошивки часто [содержат](faq.html#intel) [бэкдоры](faq.html#amd) и множество багов. Проект Libreboot был основан в декабре 2013 года, с целью сделать coreboot доступным для людей, отдаленных от технологий. -Libreboot ориентирован на сообщество, с фокусом на помощь людям перестать пользоваться проприетарными загрузочными прошивками; мы сами хотим жить в таком мире, где все программное обеспечение [свободное](https://writefreesoftware.org/), и поэтому, Libreboot - это попытка приблизиться к этому миру. В отличие от больших поставщиков, мы не пытаемся задушить вас любыми способами, мы тажке не видим в вас никакой угрозы; мы уважаем возможность использовать, изучать, модифицировать и распространять программное обеспечение без ограничения и считаем, что все должны иметь это право. Что касается компьютеров, это вещи, которые вы купили, и у вас есть право изменять их как вам угодно. Когда вы слышите, что Intel разговаривает о *Boot Guard* (который мешает coreboot разрешая запускать только прошивку, имеющую их подпись) или других крупных производителей, налагающих похожие ограничения, и вы слышите о "безопасности", они только говорят о *своей* безопасности, но не вашей. В Libreboot все наоборот: мы видим Intel Boot Guard и похожие технологии как покушение на ваши свободы и собственность (ваш компьютер), и поэтому наша миссия - помочь вам [вырвать](https://trmm.net/TOCTOU/) контроль обратно. +Libreboot ориентирован на сообщество, с фокусом на помощь людям перестать пользоваться проприетарными загрузочными прошивками; мы сами хотим жить в таком мире, где все программное обеспечение [свободное](https://writefreesoftware.org/), и поэтому, Libreboot - это попытка приблизиться к этому миру. В отличие от больших поставщиков, мы не пытаемся задушить вас любыми способами, мы тажке не видим в вас никакой угрозы; мы уважаем возможность использовать, изучать, модифицировать и распространять программное обеспечение без ограничения и считаем, что все должны иметь это право. Что касается компьютеров, это вещи, которые вы купили, и у вас есть право изменять их как вам угодно. Когда вы слышите, что Intel разговаривает о *Boot Guard* (который мешает coreboot, разрешая запускать только прошивку, имеющую их подпись) или других крупных производителей, налагающих похожие ограничения, и вы слышите о "безопасности", они только говорят о *своей* безопасности, но не вашей. В Libreboot все наоборот: мы видим Intel Boot Guard и похожие технологии как покушение на ваши свободы и собственность (ваш компьютер), и поэтому наша миссия - помочь вам [вырвать](https://trmm.net/TOCTOU/) контроль обратно. Libreboot это не форк coreboot =================================== @@ -44,7 +44,7 @@ Libreboot это не форк coreboot Также, как и *Alpine Linux* - дистрибутив Linux, Libreboot - *дистрибутив coreboot*. Если вы хотите создать ROM образ с нуля, вам нужно быть экспертом в конфигурации coreboot, GRUB и любого другого программного обеспечения, которое может вам понадобится. С *Libreboot*, вы можете буквально скачать все с Git или архива с исходным кодом и запустить простой скрипт, которой и соберет весь ROM образ. Автоматизированная система сборки, названная `lbmk` (Libreboot MaKe), собирает ROM образы автоматически, без какого-либо пользовательского ввода и без каких-либо манипуляций, требуемых от пользователя. Все необходимая настройка уже была выполена заранее. -Если бы вы собирали обычный coreboot не использую систему автоматической сборки Libreboot, вам бы потребовались специфические знания, для того, чтобы получить работающую конфигурацию. +Если бы вы собирали обычный coreboot, не использую систему автоматической сборки Libreboot, вам бы потребовались специфические знания, для того, чтобы получить работающую конфигурацию. Регулярные бинарные релизы Libreboot предоставляет эти ROM образы уже собранными, и вы просто можете их установить, без каких-либо дополнительных знаний или навыков, исключая способность следовать [упрощенной инструкции, написанной для пользователей, не обладающими техническими знаниями](docs/install/). From f91d62d5ae5018e22136ed8a35bf251a6ceccc4f Mon Sep 17 00:00:00 2001 From: Daniil Prokofev Date: Sat, 29 Jun 2024 14:18:54 +0300 Subject: [PATCH 010/399] contact page translated --- site/contact.ru.md | 78 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 site/contact.ru.md diff --git a/site/contact.ru.md b/site/contact.ru.md new file mode 100644 index 0000000..542cc80 --- /dev/null +++ b/site/contact.ru.md @@ -0,0 +1,78 @@ +--- +title: Контакты +x-toc-enable: true +... + +Купите Libreboot предустановленным +================================== + +Если вы хотите, чтобы профессионал установил Libreboot для вас, то Minifree Ltd продает [Libreboot предустановленным](https://minifree.org/) на определенном оборудование, и также предоставляет сервис по [установке Libreboot](https://minifree.org/product/installation-service/) на ваши машины. + +Основатель и ведущий разработчик Libreboot, Лия Роу, владеет и управляет Minifree; продажи обеспечивают финансирование для Libreboot. + +Если вы самостоятельно устанавливаете Libreboot, вы можете получить поддержку: + +Поддержка пользователей +======================= + +IRC и Reddit предпочительнее, если вы хотите попросить помощи (IRC рекомендуется). Информация об IRC и Reddit ниже. + +Почтовая рассылка +================= + +У Libreboot есть своя почтовая рассылка: + +Адрес электронной почты: [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) + +Обсуждение разработки +===================== + +Смотрите [страницу по Git](git.md) для того, чтобы узнать, как помогать с разработкой Libreboot. + +На этой странице также содержаться инструкции, как отправлять патчи (с помощью pull request). + +Чат в IRC +========== + +IRC - главный метод связи с проектом Libreboot. `#libreboot` на Libera IRC. + +Чат в вебе: + + +Libera - самая большая сеть IRC, используемая для свободных проектов. Узнайте больше здесь: + +Если вы хотите подключиться к IRC через ваш любимый клиент (например, weechat или irssi): + +* Сервер: `irc.libera.chat` +* Канал: `#libreboot` +* Порт (TLS): `6697` +* Порт (не TLS): `6667` + +Мы рекомендуем использовать порт `6697` со включенным TLS шифрованием. + +Мы также рекомендуем использовать SASL для аутентификации. Эти страницы на сайте Libera IRC расскажут как это сделать: + +* WeeChat SASL guide: +* Irssi SASL guide: +* HexChat SASL guide: + +В общем, вы должны проверить документацию вашего клиента для IRC. + +Социальные сети +=============== + +Mastodon +-------- + +Основатель и велущий разработчик, Лия Роу, есть на Mastodon: + +* + +Связаться с Лией также можно и по этому адресу электронной почты: +[leah@libreboot.org](mailto:leah@libreboot.org) + +Reddit +------ + +Чаще всего используется для поддержки пользователей, а также для новостей и анонсов: + \ No newline at end of file From ece40bf572f09e7c424e5a1676656485b0ffb2ce Mon Sep 17 00:00:00 2001 From: Daniil Prokofev Date: Sat, 29 Jun 2024 15:46:30 +0300 Subject: [PATCH 011/399] index.ru.md edited --- site/index.ru.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/index.ru.md b/site/index.ru.md index 6dca673..ab6834b 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -65,7 +65,7 @@ Libreboot это не форк coreboot *Поддержка пользователей* также важна. Оставайтесь в IRC, и если вы компетентны в том, чтобы помочь кому-то с их проблемой (или достаточно хитры, чтобы учиться у них), это отличная услуга для проекта. Многие люди также обращаются за поддержкой в раздел `r/libreboot` на Reddit. -Вся дискуссии насчет разработки и поддержка пользователей осуществляется через IRC. Больше информации можно найти на [странице контактов](contact.md) +Вся дискуссии насчет разработки и поддержка пользователей осуществляется через IRC. Больше информации можно найти на [странице контактов](contact.ru.md) Требуется помощь с переводом libreboot.org -------------------------------------- From b8f4f28e56c538c022b43748de99f71361b9c982 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 6 Jul 2024 03:12:04 +0100 Subject: [PATCH 012/399] 20240612 errata update (and fix) Signed-off-by: Leah Rowe --- site/news/libreboot20240612.md | 35 ++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/site/news/libreboot20240612.md b/site/news/libreboot20240612.md index 37d75d9..d9314e6 100644 --- a/site/news/libreboot20240612.md +++ b/site/news/libreboot20240612.md @@ -938,3 +938,38 @@ The latest changes are listed first, going all the way down to earlier changes: ``` This is 211 changes, since Libreboot 20240504. + +Errata +====== + +Revision 1 +---------- + +A bug was found, where booting GRUB (payload) on Haswell ThinkPads with a USB +device plugged in would sometimes cause GRUB to hang. This was fixed with the +following patch: + + +This patch is included now, on the release archives. + +The following archives have been *replaced*, with ones that include this fix: + +* Source archive (now marked `20240612rev1`, not `20240612`) +* ROM image archives for: T440p, W541, 9020 SFF and 9020 MT. The new archives + are marked `20240612rev1`, not `20240612`. + +This particular bug was nasty, because some of these machines might have +internal USB devices plugged in, such as smartcard readers. It would not have +caused the system to be unusable, because SeaBIOS is the primary payload and +GRUB (payload) is loaded from that. + +If you were affected by this bug, please consider switching to the new images, +where this has been fixed. The fix was very simple: + +Don't load the xHCI module in GRUB, where it is used, immediately upon booting +GRUB; instead, load it much later on, from `grub.cfg`. This is done, by putting +it on *install* modules, instead of modules. The *install* modules do not +auto-load when GRUB starts. + +A full investigation is still required, but this workaround fixes the issue as +far as the user is concerned. From 91ce04330a7410db0c40f878aee1f62024bf31f1 Mon Sep 17 00:00:00 2001 From: beeburrt Date: Mon, 8 Jul 2024 07:28:54 +0000 Subject: [PATCH 013/399] Update faq.md - link led to a 404 --- site/faq.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/faq.md b/site/faq.md index b74a31b..8afffeb 100644 --- a/site/faq.md +++ b/site/faq.md @@ -362,7 +362,7 @@ detail the ME's hardware architecture and firmware application modules. If you're stuck with the ME (non-libreboot system), you might find this interesting: - + ### Firmware Support Package (FSP) {#fsp} From a99f091b1291daa4e93a03db5e518d9de38270b6 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 8 Jul 2024 11:12:08 +0100 Subject: [PATCH 014/399] don't grey the header image Signed-off-by: Leah Rowe --- site/global.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/site/global.css b/site/global.css index 7d766f4..9e44eb1 100644 --- a/site/global.css +++ b/site/global.css @@ -48,6 +48,10 @@ code,pre, #TOC, a:hover, img background: #d9d6d6; border-radius:0.25em; } +header img +{ + background: none; +} a { From 88965c3a3485e516cd084dc95a87b523a037cb16 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 8 Jul 2024 11:25:29 +0100 Subject: [PATCH 015/399] red tint on the site theme to make text easier on the eyes Signed-off-by: Leah Rowe --- site/global.css | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/site/global.css b/site/global.css index 9e44eb1..0625eae 100644 --- a/site/global.css +++ b/site/global.css @@ -34,8 +34,8 @@ h1,h2,h3,h4{font-weight:normal; font-size:2em} html { - color: #280b22; - background: #f0f0f0; + color: #280518; + background: #ffe9e9; font-family: sans-serif; line-height: 1.4; } @@ -45,7 +45,7 @@ hr { code,pre, #TOC, a:hover, img { - background: #d9d6d6; + background: #ead6d6; border-radius:0.25em; } header img @@ -55,7 +55,7 @@ header img a { - color: #4e324e; + color: #3e223e; } img,video,iframe,pre From 04af40baf20bba3b93e0c979b10f45e965f3d0c1 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 8 Jul 2024 22:11:33 +0100 Subject: [PATCH 016/399] make the site slightly less pink tone it down a bit. it needs to only be a subtle tint. Signed-off-by: Leah Rowe --- site/global.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/global.css b/site/global.css index 0625eae..20d52b0 100644 --- a/site/global.css +++ b/site/global.css @@ -35,7 +35,7 @@ h1,h2,h3,h4{font-weight:normal; font-size:2em} html { color: #280518; - background: #ffe9e9; + background: #efe9e9; font-family: sans-serif; line-height: 1.4; } @@ -45,7 +45,7 @@ hr { code,pre, #TOC, a:hover, img { - background: #ead6d6; + background: #e3d6d6; border-radius:0.25em; } header img From 26864828a705af3a51f46c1dbf9b345e227cf769 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 12 Jul 2024 02:41:14 +0100 Subject: [PATCH 017/399] ivy_internal: add link to ch1p's guide Signed-off-by: Leah Rowe --- site/docs/install/ivy_internal.md | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/site/docs/install/ivy_internal.md b/site/docs/install/ivy_internal.md index 73e8878..906cd3b 100644 --- a/site/docs/install/ivy_internal.md +++ b/site/docs/install/ivy_internal.md @@ -6,6 +6,29 @@ x-toc-enable: true **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +Side-note: + +Ch1p's own guide also tells you how to do exactly the same thing (same result) +as this guide, but this guide (from the Libreboot project) was made +independently, without knowing that ch1p's guide existed at the time. Ch1p, +aka Evgeny Zinoviev, is the author of the ME Soft Temporary Disable support +patch in coreboot, that the guide below makes use of. Specifically, this +coreboot patch: + +``` + commit 833e9bad4762e0dca6c867d3a18dbaf6d5166be8 + Author: Evgeny Zinoviev + Date: Thu Nov 21 21:47:31 2019 +0300 + + sb/intel/bd82x6x: Support ME Soft Temporary Disable Mode +``` + +Anyway, follow ch1p's guide or this one. Ch1p was on Libreboot IRC and linked +the above guide, so it has been added here to honour him. + +Introduction +============ + External flashing still recommended ----------------------------------- From e62faf0485b85ada0c8f4096e688ca854bb9954e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 12 Jul 2024 02:43:36 +0100 Subject: [PATCH 018/399] better formatting Signed-off-by: Leah Rowe --- site/docs/install/ivy_internal.md | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/site/docs/install/ivy_internal.md b/site/docs/install/ivy_internal.md index 906cd3b..0a5fd0c 100644 --- a/site/docs/install/ivy_internal.md +++ b/site/docs/install/ivy_internal.md @@ -6,7 +6,15 @@ x-toc-enable: true **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** -Side-note: +Ch1p's guide +============ + +This page tells you how to flash an ivybridge ThinkPad with Libreboot, +internally, when it has the Lenovo firmware on it. It was written independently +of ch1p's original guide, the existence of which was later made clear to the +Libreboot project, by ch1p himself. + +See: Ch1p's own guide also tells you how to do exactly the same thing (same result) as this guide, but this guide (from the Libreboot project) was made From 26281ea864a22bca7cc7d56cd102caac8c944f88 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 12 Jul 2024 17:02:52 +0100 Subject: [PATCH 019/399] say 9010/7010 mt works with t1650 rom crossflashed Signed-off-by: Leah Rowe --- site/docs/hardware/index.md | 3 ++- site/docs/hardware/index.zh-cn.md | 3 ++- site/docs/install/index.md | 12 ++++++++++++ site/docs/install/ivy_has_common.md | 3 ++- site/docs/install/ivy_has_common.uk.md | 3 ++- site/tasks/index.md | 2 +- 6 files changed, 21 insertions(+), 5 deletions(-) diff --git a/site/docs/hardware/index.md b/site/docs/hardware/index.md index 4cc73f4..1cb5115 100644 --- a/site/docs/hardware/index.md +++ b/site/docs/hardware/index.md @@ -44,7 +44,8 @@ libreboot currently supports the following systems in this release: - [Apple iMac 5,2](imac52.md) - [ASUS KCMA-D8 motherboard](kcma-d8.md) - Dell OptiPlex 7010 **MT** (known to work, using the T1650 ROM, but more - research is needed) + research is needed) - 9010 also known to work. No GPIO changes, so it should + be safe to flash. - [Dell Precision T1650](t1650.md) - [Gigabyte GA-G41M-ES2L motherboard](ga-g41m-es2l.md) - [HP Elite 8200 SFF/MT](hp8200sff.md) (HP 6200 Pro Business probably works too) diff --git a/site/docs/hardware/index.zh-cn.md b/site/docs/hardware/index.zh-cn.md index d4ecb0f..a6f7c08 100644 --- a/site/docs/hardware/index.zh-cn.md +++ b/site/docs/hardware/index.zh-cn.md @@ -56,7 +56,8 @@ Introduction - [Apple iMac 5,2](imac52.md) - [ASUS KCMA-D8 主板](kcma-d8.md) - Dell OptiPlex 7010 **MT** (known to work, using the T1650 ROM, but more - research is needed) + research is needed) - 9010 also works, with no GPIO changes. It should be + safe to flash. - [Dell Precision T1650](t1650.md) - [Gigabyte GA-G41M-ES2L 主板](ga-g41m-es2l.md) - [HP Elite 8200 SFF/MT](hp8200sff.md)(HP 6200 Pro Business 多半也能用) diff --git a/site/docs/install/index.md b/site/docs/install/index.md index c376eea..943db1d 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -653,6 +653,18 @@ chips, but it is hard to find now. A custom flasher may be made such as [flashprog serprog stm32](https://github.com/wosk/stm32-vserprog-lpc) or [teensy flasher](https://www.flashprog.org/Teensy_3.1_SPI_%2B_LPC/FWH_Flasher) +TARGET: DELL OptiPlex 7010 and 9010, MT +--------------------------------------- + +Coreboot officially only has SFF for the 7010/9010 boards, but the MT +ones have been studied, and verified to contain the same GPIO configuration +among other things, compared to T1650; the latter merely has extra wiring +for ECC. + +Simply flash a T1650 image onto one of these machines. We may or may not +provide this as a separate target (coreboot variant) in a future release, +but re-using the T1650 image is OK for now. + TARGET: DELL Precision T1650 desktop ------------------------------------ diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 7474899..7564261 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -64,7 +64,8 @@ Libreboot build system: * ME firmware: `vendor/*/me.bin` - the `*` can be any given directory. Different ones will be used by given boards, but the directory name may not match the board target name. -* SMSC SCH5545 fan control firmware (for Dell T1650): `vendor/t1650/sch5545ec.bin` +* SMSC SCH5545 fan control firmware (for Dell T1650): `vendor/t1650/sch5545ec.bin` - + ditto 9010/7010 MT/SFF optiplex machines. * SMSC KBC1126 embedded controller firmware, on HP EliteBooks: `ec/` * Intel MRC firmware, provides raminit on HP EliteBook 820 G2 diff --git a/site/docs/install/ivy_has_common.uk.md b/site/docs/install/ivy_has_common.uk.md index eb10831..03f54c9 100644 --- a/site/docs/install/ivy_has_common.uk.md +++ b/site/docs/install/ivy_has_common.uk.md @@ -68,7 +68,8 @@ Libreboot build system: * ME firmware: `vendor/*/me.bin` - the `*` can be any given directory. Different ones will be used by given boards, but the directory name may not match the board target name. -* SMSC SCH5545 fan control firmware (for Dell T1650): `vendor/t1650/sch5545ec.bin` +* SMSC SCH5545 fan control firmware (for Dell T1650): `vendor/t1650/sch5545ec.bin` - + ditto 7010/9010 MT/SFF optiplex machines. * SMSC KBC1126 embedded controller firmware, on HP EliteBooks: `ec/` * Intel MRC firmware, provides raminit on HP EliteBook 820 G2 diff --git a/site/tasks/index.md b/site/tasks/index.md index 1286f92..1994366 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -79,7 +79,7 @@ inject scripts to the Heads build system. Libreboot provides these scripts for automatically downloading certain firmwares at build time, as and when required for a given mainboard. These are provided by the vendor, e.g. SMSC SCH5545 Environment Control (EC) firmware used for fan control on Dell -Precision T1650. +Precision T1650. (ditto 7010/9010 MT/SFF machines) Heads has such logic, but it's not as developed as the logic in Libreboot, which was originally inspired by the Heads logic and then greatly expanded upon. From ed8ccc47a7e4b10570457959a25273da67a358eb Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 19 Jul 2024 05:04:05 +0100 Subject: [PATCH 020/399] Libreboot Build System Audit 6 (announcement) Signed-off-by: Leah Rowe --- site/news/MANIFEST | 1 + site/news/audit6.md | 1101 +++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 1102 insertions(+) create mode 100644 site/news/audit6.md diff --git a/site/news/MANIFEST b/site/news/MANIFEST index 05e7d2a..624a338 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -1,3 +1,4 @@ +audit6.md libreboot20240612.md audit5.md libreboot20240504.md diff --git a/site/news/audit6.md b/site/news/audit6.md new file mode 100644 index 0000000..266b8aa --- /dev/null +++ b/site/news/audit6.md @@ -0,0 +1,1101 @@ +% Libreboot Build System Audit 6 +% Leah Rowe +% 19 July 2024 + +Heavy amount of code reduction in this audit, and general cleanup. A new +Libreboot release is planned, for the early days of August 2024. + +Introduction +============ + +Libreboot is a free/opensource boot firmware project. It replaces your +proprietary BIOS/UEFI firmware, on supported x86 and ARM computers. It does +this by providing an automated build system to download, patch and compile +the various upstream sources (e.g. coreboot, GRUB, SeaBIOS). Coreboot is used +for hardware initialisation, configuring everything from your CPU, memory +controller all way to peripherals, readying the hardware so that it can run +software, e.g. Linux/BSD operating systems. You can essentially think of *lbmk*, +which is Libreboot's build system, as a *source-based package manager*. It is +what the Libreboot releases are built with. The *lbmk* build system essentially +implements a *coreboot distro*, the same way you might think of a Linux +distribution; it systematically downloads, resets (to specific revisions) and +patches various upstream project sources such as coreboot, U-Boot and GRUB, +automatically building entire coreboot images. This build system is what creates +Libreboot release images and source tarballs. + +Extensive auditing has been performed on lbmk, since the Libreboot 20240612 +release. These audits fix bugs, reduce code bloat and generally improve the +efficiency of lbmk, adding and removing features in a careful, *conservative* +way, with a focus on *clean code*. + +Remember the magic words: code equals bugs. Fewer lines of code will yield +fewer bugs. + +This article covers changes from Libreboot 20240612, up to +revision `31f1e4dadfcc1ceecacec50dd2a14e63a44364bd` from 19 July 2024. + +You can read about the *previous* audit in the article +for [Libreboot Build System Audit 5](audit5.md). + +Notable code size reduction +-------------------------- + +There are 1109 lines of shell script in the build system, versus 1482 in the +Libreboot 20240612 release. Libreboot's build system is written *entirely* in +POSIX sh; not BASH, not KSH, not ZSH, jush sh! It is the *build system of +build systems*; the design focuses on re-using (read: abusing) the build systems +of the projects it uses, avoiding as much bloat as possible. More information is +available in the [lbmk build system documentation](../docs/maintain/). + +This is a difference of 373 lines, or a *25% reduction*. The main focus has been +on removing legacy bloat from the build system, vastly increasing the overall +code cleanliness and efficiency. Several new safety and redundancy features were +added, such as auto-rebuild when configs change(and auto-redownload) for sources, +and additional redundant handling of both repositories and file downloads, cached +during operation to avoid over-use of internet bandwidth. + +Plan for next release +--------------------- + +This code reduction has been the main focus; the focus now, at the next release, +will be new payloads and boards, in addition to testing newer upstream revisions +of projects such as coreboot, on every machine supported by Libreboot. A release +is planned for early August 2024. + +A *lot* of work on new ports is planned. There are a number of new mainboards +that will be available, in the next Libreboot release. + +Summarised list of changes +========================== + +Changes are in order per category, from newest to oldest: + +Feature changes +--------------- + +Some unused features have been removed, and yet more added. The overall focus of +Audit 6 has been to remove legacy cruft from lbmk, and in general to simplify +the operation of lbmk, Libreboot's build system. Several new safety features +were implementated for this audit, in addition to features that generally +improve the redundancy of certain operations, and overall reliability in lbmk. + +The changes are as follows: + +* Put the cache directory location in an environmental variable, + named `XBMK_CACHE`. If unset, it defaults to `$PWD/cache`, where PWD is the + current location that the instance of lbmk is running from, otherwise if + defined, the location is used. This means that the same cached files are + re-used on the lbmk copy created when running `./update release`, thus + saving on a lot of internet bandwidth if the main instance already has + a lot of files cached - it also means that you can re-use another cache + from elsewhere, like if you have multiple clones of lbmk on your system. +* Allow using coreboot's own build system, to build payloads. Libreboot's + build system builds and adds payloads, with coreboot configurations + enabling `CONFIG_PAYLOAD_NONE` exclusively. However, advanced users may + wish to use something else such as Tianocore, which Libreboot may/will not + provide (with Tianocore it's **will not**). Simply set `build_depend=""` + in the `target.cfg` file for a given mainboard, and then enable a payload + under coreboot's menuconfig interface, or by direct modification of + the defconfig file. When `CONFIG_PAYLOAD_NONE` is not set, lbmk will skip + adding a payload, because it's a given that then coreboot's own build system + would have done it. Libreboot will always enable `CONFIG_PAYLOAD_NONE` on + all official targets, so this feature is only intended for power users. +* Unified cache file handling for vendor files, and files defined as modules + for specific projects. They are now cached within the same base directory. +* `script/trees`: Automatically re-download and re-build a given project, when + configuration changes, on any file under specific directories in `config/` + pertaining to it; this is done by concatenating the sha512sum hashes for + each of those files, and then making a sha512sum hash from that. The hash + is stored, and compared to the current one; if it differs, then you know + something changed. This feature does not track modifications to the actual + downloaded source code for a given project, because this change also tracks + the `patches/` directories; direct modification (by the user) of the source + is not assumed, under the lbmk model, but checking for this may be possible. + For example, run the same concatenation logic on a file containing the output + of commands such as `git describe` and `git status`, perhaps `git diff`. It + was decided that the latter would be undesirable, because *developers* (of + Libreboot, working with lbmk) may want to experiment with quick changes, + before preparing patch files to go under `config/`. - the user previously + had to know which files and directories to manually remove, when re-running + build commands after modifying a given project within lbmk. Now it's automatic. +* `include/git.sh`: Don't download multi-tree projects to `src/project/project`, + e.g. `src/coreboot/coreboot`, when downloading the upstream repository, for + later copying to the actual destination e.g. `src/coreboot/default` - instead, + use the same cached location as alluded to in the two changes below. This + avoids needing to delet those directories, when preparing release archives. +* `include/git.sh`: Complementing the change seen below, also cache *files* + universally, for vendor files and for submodules files (e.g. crossgcc files). + This avoids wasting bandwidth when building for multiple coreboot trees, in + cases where multiple trees share the same URLs for crossgcc tarballs. +* `include/git.sh`: Cache all git downloads, reset to `HEAD`, before copying + to the final location; this is also done on submodules. If a cached repository + exists, run `git pull` on it but without an exit under fault conditions; if + a fault occurs, including when trying to reset on a copy of it, fall back to + the old logic where the repository is downloaded (online) directly to the + destination. This change results in substantially reduced internet bandwidth + usage, especially when downloading submodules for multiple coreboot trees, + in cases where those trees share common revisions. +* `script/trees`: Support `-d` (flag) for custom build logic; it does the same + thing as `-b`, but with a variable named `dry` being set to `:`; this is + prefixed on most build-related commands, and can be further prefixed as + desired, in mkhelper functions. The result is that you can do *dry runs* on + a given build. This is used, to provide building of coreboot utilities and + downloading of vendor files, without needing specific hacks to be hardcoded + in `script/trees`. The `./update trees -b coreboot TREE utils` command is + no longer available; instead, do `./update trees -d coreboot TREE`; if + the TREE argument is instead an actual mainboard target, it also does the + vendor file download, if required. The `./vendor download` command is still + available, and multiple board names can now be provided as argument, because + for example, `./build roms x220_8mb x230_12mb` would + run `./update trees -d coreboot x220_8mb x230_12mb`, and the trees script + already supports running for multiple target names, within multi-tree + projects. The result of `-d`, combined with use of mkhelper functions, + permits very flexible use of the `trees` script, essentially allowing it + to be extended on a plugin-type infrastructure, in any number of ways. The + reason for implementing this is precisely so that project-specific hacks can + be removed; the `trees` script now contains much more generalised logic, + and project-specific logic was moved to mkhelper functions. +* SeaBIOS-only images are no longer provided, where GRUB is specified on a + given mainboard; similarly, GRUB-first images are not provided. If GRUB is + enabled on a board, *SeaGRUB* is provided. The get SeaBIOS-only startup, you + can either remove the `bootorder` file from CBFS, or disable + GRUB in `target.cfg` before building, for a given mainboard. +* `script/trees`: A `premake` variable is supported in `mkhelper.cfg` files, + defining a function to be executed *before* running `make`, on a given project. +* `script/trees`: A `postmake` variable is supported in `mkhelper.cfg` + and `target.cfg` files, defining a function to be executed immediately after + running `make`, on a given project. This is used during coreboot builds, to + add payloads on a given coreboot image. It can be used for any other purpose. + More specifically: `postmake` is executed after handling the defconfig file + entirely, rather than just after running `make`; the latter is handled + by `mkhelper`. +* `script/trees`: Support *build* dependencies, complementing the + existing *fetch* dependencies. The `build_depend` variable can define + which other sources need to be built, before building the current target. + This is being used on coreboot targets, to manually and surgically specify + which GRUB and SeaBIOS trees should be compiled, *per* coreboot target. + A fallback declaration is specified in `config/data/coreboot/mkhelper.cfg`, + for cases where a `target.cfg` file does not specify it. This change means + that certain hardcoded *build dependency* logic was then removed, instead + relying on this much more generalised `build_depend` logic. +* `script/trees`: Allow global configuration on multi-tree projects, via + file `config/data/PROJECT/mkhelper.cfg`, + e.g. `config/data/coreboot/mkhelper.cfg`. This is loaded before `target.cfg`. + That way, global configuration can be provided and then overridden. +* `script/trees`: If a valid flag is passed, but without argument, a loop is + now executed with that flag on every defined project, both single- and + multi-tree. For example, if `-f` is passed, it will download every project. + If `-b` is passed, it will build every project. When it passes over multi-tree + projects, it operates on every tree within that project. This fact enabled + other parts of the build system to be simplified; for example, the logic + in `mkrelease()` no longer needs to implement the same kind of loop, instead + simply running `./update trees -f` to download every project and tree. Similar + changes have been made, on that same basis. +* `script/trees`: Support use of a variable named `mkhelper`, first defined in + project `target.cfg` files. This variable defines the name of a function, to + be called immediately after running `make` for that project, under + the `run_make_command()` function. This was initially implemented, so that + GRUB's `grub-mkstandalone` utility could be called from the `trees` script, + but in a way that doesn't hardcode such execution. This is because part of + the audit's main focus is to remove project-specific hacks, generalising a + lot more logic. Prior to Audit 6, the `trees` script contained a lot of hacks + for specific projects, notably coreboot and GRUB, to compile them properly. +* `script/trees`: Only permit one single-tree project to be built, where an + argument is provided. This script previously supported building multiple + single-tree projects, defined *by argument*, but it was quite error prone + and there's no clean way to otherwise do it. We don't use the script this + way, anywhere in lbmk, and users are advised the same. +* `script/roms`: *Only* Support SeaBIOS and Sea*GRUB*, on x86 coreboot targets. + SeaGRUB is a configuration whereby SeaBIOS starts first, but immediately tries + to load GRUB from the flash. This complements the other change, listed below. + We will no longer provide configurations where GRUB is the primary payload, + precisely to mitigate the same issue as described below (lbmk issue 216). + If *GRUB* is enabled, on a given mainboard, SeaBIOS-only setups are not + provided; only SeaGRUB is provided. You can press ESC in the SeaGRUB menu, + to access other boot methods besides *GRUB from flash*, so you can use it + in the same way; additionally, you can remove the `bootorder` file from CBFS + if you wish, or change the bootorder file, in such a way that GRUB does not + load first. For example, you might want a BSD installation, and BSD + bootloaders should be loaded from SeaBIOS directly. This can be done as + follows: `cbfstool libreboot.rom remove -n bootorder` - then flash it. The + SeaBIOS code is much smaller and more robust than GRUB, so it's a safe choice + of primary payload, and it's extremely unlikely that SeaBIOS would ever break. +* `script/roms`: Removed support for `grubonly` SeaBIOS. This was a feature + where SeaBIOS would try to load GRUB first (from CBFS), but also disable the + SeaBIOS menu. We still provide SeaGRUB, but the SeaBIOS menu is always + accessible now. This is to mitigate future issues similar to [lbmk + issue 216](https://codeberg.org/libreboot/lbmk/issues/216). The + Libreboot 20240612 already removed actual configs using `grubonly`, and we + will no longer provide them in Libreboot, so this feature in lbmk became + legacy cruft that can simply be removed. The idea is simple: *safety first*. + This has implications for [GRUB hardening](../docs/linux/grub_hardening.md); + you can insert the correct bootorder file, to once again disable SeaBIOS, but + you must first verify that GRUB is stable. The GRUB hardening guide already + documents how to do this. +* `script/roms`: Don't insert `timeout.cfg`. Instead, hardcode the GRUB timeout + to a reasonable default (8 seconds). You can still insert your own timeout + config as before, and GRUB will honour it. +* `script/roms`: Insert the background image in GRUB's memdisk, instead of + coreboot's CBFS. This reduces the amount of code, because we use it as an + argument on the `grub-mkstandalone` command, and it means that the GRUB + images can be used standalone in other build systems. The image is very + small, so it's OK to do it this way. +* `script/roms`: Don't insert GRUB keymaps, at all. This feature was using a + lot of disk space during testing. If no keymap is inserted, GRUB defaults to + US Qwerty. You can still insert the keymap file as `keymap.gkb` in CBFS, and + that keymap will be used by GRUB (e.g. US Dvorak, French Azerty, French BEPO). +* `script/roms`: Removed extra checks on `grub_scan_disk`, because we no longer + allow it to be overridden, instead relying only on `target.cfg` files, which + are carefully crafted per board. This setting configures the order of which + types of devices Libreboot's `grub.cfg` scans first, between device types: + PCI-E/NVMe, SATA/AHCI and IDE/ATA. Mate Kukri added NVMe SSD support no GRUB, + in the Libreboot 20240612 release. +* `script/roms`: Removed dangerous `-p`, `-s` and `-d` options. Due to lbmk + issue 216 (GRUB memory issue) in Libreboot 20240504, several safety + mitigations have been made, for anti-brick purposes. These options enabled + use of a custom payload and keymap, which meant that users were able to more + easily create a setup affected by 216. See: + - this was fully mitigated, + by virtue of configuration, but the issue itself is not yet fixed as of the + day of today's announcement, the one you're reading now, so it's still + possible to create such a broken setup. Libreboot mitigates this fact, by + avoiding such configurations. + +Configuration changes +--------------------- + +This pertains to anything under `config/`, for any changes that are of note, +but it does not pertain to *revisions* for specific projects, nor does it +cover specific patches applied to projects; the latter will be covered in other +sections of this audit announcement. + +The changes are as follows: + +* coreboot: Set `postmake` in `config/data/coreboot/mkhelper.cfg`, defining + a function that adds payloads to the coreboot image that was just built. + This mkhelper config also integrates `include/rom.sh`, containing these + functions. This replicates the functionality originally provided + by `script/roms`. +* coreboot: Set `build_depend` on `target.cfg` files for specific mainboards. + This is used to manually specify which GRUB and SeaBIOS trees should be + compiled, required when compiling for a specific target, for the next + stage where a payload is added to the coreboot image, because lbmk does + not use coreboot's own payload logic, instead building and adding everything + itself (the coreboot configs all enable `CONFIG_PAYLOAD_NONE`). For cases + where a `target.cfg` file does *not* specify `mkhelper`, a fallback default + entry is dictated within `config/data/coreboot/mkhelper.cfg`. +* GRUB: Only load the `xhci` module from `grub.cfg`; the `install_modules` + variable now defines `xhci`, instead of `modules` defining it. This means + that the xHCI module is no longer automatically loaded during GRUB machine + initialisation, but it's then loaded immediately when the GRUB shell starts, + and the `grub.cfg` file is first parsed, then executed. This mitigates a + previous issue where booting into GRUB with a USB device connected sometimes + made GRUB hang; this issue affected Libreboot 20240612, on Haswell thinkpads, + and revised images (and a revised source tarball) was then issued for that + release, containing the very fix described here. +* coreboot: Define `makeargs` in `config/data/coreboot/mkhelper.cfg`. It was + not practical to define this, and other settings, in each `target.cfg` file + due to how many targets there are, but the mkhelper feature makes this much + easier. To mitigate the previous issue, the `trees` script hardcoded + coreboot makeargs in a special variable, `cbmakeargs`; this variable has + since been removed, because it's no longer used. +* GRUB: Define common build options in `config/data/grub/mkhelper.cfg`, + instead of repeating them in `target.cfg` files for each GRUB tree. + The `mkhelper.cfg` feature was added, defined in the Features section above, + which is loaded per-project on multi-tree projects, before each target + file. It allows easier configuration tree-wide on multi-tree projects. + +Bug fixes +--------- + +There are fewer *acute* bug fixes in Audit 6, because bugfixes was the primary +focus of *Audit 5*. The word *acute* is used, referring to triggered bugs, because +many of these changes are *pre-emptive* bug fixes, *preventing* future bugs that +have been foreseen, based on future modification to existing logic. The focus of +Audit 6 has been general code reduction, feature simplification and improvements +to safety features / error handling (many pre-emptive bugfixes implement newer +safety features, but are listed as pre-emptive fixes, not features). + +The changes are as follows: + +* `script/trees`: Hardcode `makeargs` for crossgcc specifically, by using + another variable (within that script) called `xgccargs`. This prevents + the build threads being default (one thread), ensuring that we set it to + the value as defined by `XBMK_THREADS`. The bug was triggered when building + the U-Boot images, because U-Boot does not specify `CPUS=` on makeargs. +* `include/git.sh`: Re-try `git pull` three times, when updating the cache + Git repository for a given project or submodule. This mitigates possible + instability in the user's internet connection, where it's online but may + otherwise experience jitter (the same issue could also occur on the internet + connection hooking up whichever server lbmk is interacting with, such as + the coreboot web server). +* U-Boot (patch): Courtesy of Alper Nebi Yasak, a mitigation is provided in + U-Boot working around the lack of support for clock timings on eDP displays; + the clock setting was removed in the devicetree, because display works without + it, but with it, display breaks because drivers do not yet support it. +* U-Boot (patch): Courtesy of Alper Nebi Yasak, a fix was made that prevents + breaking the build process for U-Boot, when building binman images. In lbmk, + we do not use the BL31 firmware from U-Boot itself, because coreboot does + this, so it's patched out in Libreboot and we defer to coreboot's logic. +* `script/trees`: Don't continue, when no argument is given. `main()` used to + be the only funsction that runs, in this script, but now we source a config + file afterward, and run the build after that. Whan a flag is provided without + OPTARG, this means that we are continuing such action in error; in practise, + it meant that nothing was done because the command was set by `mkhelpercfg` + and `cmd`, which would be empty in this situation, but it might cause issues + depending on the `sh` implementation, so this fix is pre-emptive. +* `include/`: Remove `+x` permissions on these files, because they must never + be executed directly; they are stubbed from `build` and `script/trees`. This + is listed as a bug fix, because having executable permission on these files + is a potential security issue, depending on how lbmk might be modified in + the future, so it's a pre-emptive fix. +* `include/rom.sh`: Only build coreboot utilities *before* building coreboot + itself. This prevents `coreboot.rom` from being wiped out, when building it, + due to idiosyncrasis in coreboot's own build system. This is a pre-emptive + fix, because the issue didn't really cause actual trouble in practise, + except under certain test conditions that are unlikely in real use. +* `include/vendor.sh`: Properly quote the filename, in a check for `ec.bin`, + on the `extract_kbc1126ec()` function - in practise, this caused no issue, so + this is a pre-emptive bug fix, but quotes are now used to prevent globbing. + Overlooked in a previous audit, where anti-globbing was actually a priority + in that audit. +* `include/vendor.sh`: Skip serprog targets, if defined, because these are + not coreboot and they are built using separate logic, but they are placed in + the same directory within release archives. This prevents an exit under + fault conditions, instead causing a regular exit (zero status). This was never + triggered during regular builds, because of other conditions checked + throughout, but some users may run the `inject` command, which this fix is for. + The issue was previously fixed for `download`, but overlooked for `inject`. +* `include/vendor.sh`: Don't inject `/dev/null` into an image. In some cases, + a given board may define empty option ROMs which refer to `/dev/null`. This + is used during the coreboot build process, in cases where we want such images + inserted, but not handled by vendor scripts. Specifically: PIKE2008 images + were inserted empty, for KGPE-D16, by re-using the *VGA ROM* options in the + coreboot build system. The `vendor.sh` logic also uses that same config item, + which was tripping up on these boards. Simply skip insertion (in `vendor.sh`) + file location is `/dev/null`. This prevents errors during the build process, + in some limited cases. +* `include/lib.sh`: Much stricter checks in `chkvars()`; the variable string + may have been set, but otherwise empty. This function was only checking `+x` + via variable expansion, which only yields negative if the variable was never + declared. The intention is to check both unitialised and empty strings, per + variable. This is a *pre-emptive* bug fix, because this bug did not seemingly + cause any issues in practise, but a bug is still a bug. +* `include/vendor.sh`: Re-added the `modify_gbe()` function, seldom used but + nonetheless required; it's called when the user specifies a MAC address, + during vendorfile insertion on release images. Direct use of `nvmutil` is + still recommended, simply to gain an understanding of how it works; the MAC + address feature in `vendor.sh` simply runs `nvmutil`. +* `script/roms`: Made U-Boot be built *before* checking `ubootelf`, instead + of after. The check was flawed, because if U-Boot didn't exist, but a given + build would be vzerified by the first check, the check would still fail after + build, because the check works by first checking the existence of a given + U-Boot build file, deferring to another and then exiting if that doesn't + exist, with error status. This is a *pre-emptive* bug fix, because this + bug wasn't triggered in practise since actual targets already used the + fallback build, not the first one. Therefore, this fix is pre-emptive for + future U-Boot targets in lbmk. +* `include/lib.sh`: Do not exceed 80 characters on the line that checks + the `versiondate` variable. Such excess is considered a bug. +* `include/vendor.sh`: Rename variable `release` to `vrelease`. Also remove + the `inject_vendorfiles()` function and merge into `vendor_download()`. + The `release` variable is included now in some `target.cfg` files, so we want + to avoid conflicting with it. This is a pre-emptive bug fix, because the bug + described had not been triggered in practise, but was theoretically possible. +* `script/trees`: Exit with error status if `target.cfg` not provided, on + multi-tree projejcts. It was already by design that this should occur, + but we previously did not support `target.cfg` files on single-tree projects. + Single-tree `target.cfg` support was later added, done by making `target.cfg` + optional there, but the change accidentally made it optional on multi-tree + projects. In practise, all multi-tree projects included this file per target, + so this is a pre-emptive bug fix on the theory that future maintainers might + accidentally exclude `target.cfg` on a given tree, within a multi-tree + project. +* `build`: Don't delete `TMPDIR` if it's `/tmp`. We set it to a subdirectory + under `/tmp`, and subsequent `mktemp` calls create resources under it, but + it's possible in the future that this functionality might be broken; therefore, + this is a pre-emptive bug fix, on the (correct) theory that code equals bugs, + and that regressions can and will occur in the future. One could say that this + is a *safety feature*; it could just as easily be listed on *Feature changes*. + This is more strongly a pre-emptive bug fix, as opposed to an actual feature. + Upon exit from the main parent instance of lbmk, `TMPDIR` is deleted. It is + set to a subdirectory of `/tmp`, precisely so that we have a unified directory + location for all temporary files, which then get deleted in bulk (upon exit). +* `script/trees`: Explicitly err if `OPTARG` is not set, for a given flag. We + otherwise rely on `-e`, but different `sh` implementations may behave + differently. Therefore, this is a emp-emptive bug fix, on the theory that + execution may otherwise continue erroneously (depending on the implementation). + NOTE: this is only listed for documentary reasons, but the script was later + modified to *allow* a lack of argument, whereby the script would be re-called + recursively on all projects with the exact same flag, while defining an + argument throughout. +* `script/trees`: Call err if multiple flags are provided. The script is only + designed for one flag. Exit with error status if multiple flags are provided. +* `script/trees`: Explicitly set `mode` for flag `-b`, rather than leaving it + at the default state (empty). This is to mitigate the possibility (from later + code changes) where other flags might set the string. We need the string to be + empty, when the `-b` flag is used; this is a pre-emptive bug fix, fixing a + bug that doesn't actually exist, but rather, preventing such a bug later on. +* `include/lib.sh`: Make the presence of a `projectname` file mandatory, with + the project name inside. This prevents the theoretical issue where a project + is nameless, because this file is used during the build process when naming + release tarballs; theoreticaly, because in practise, lbmk would never remove + this file, but the build system is designed to be as adaptable as possible. +* `script/trees`: If the crossgcc build fails, run it *again* first, before + returning with error status. If the second build passes, don't yield an error. + Sometimes the crossgcc build can fail for whatever reason, but a second run + will succeed. This avoids having to re-run the *rest* of lbmk, just to re-run + the crossgcc build. In most cases, the first attempt passes. Coreboot's + own `buildgcc` script is quite complex, and error-prone. +* `script/trees`: Don't check if crossgcc is already built. The check was done + based on whether the `xgcc` directory exists, but coreboot's build system + may have exited with error status before, having not completed all builds. + The result was that subsequent runs would result in a permanently broken + crossgcc build, unless the user manually intervened. Instead, lbmk always + runs the crossgcc build script from coreboot; coreboot itself has a much + more thorough set of checks, skipping a given build that was already performed, + but the check is a bit slower, adding a few additional seconds to the build + time per target. The bug that this fixes was in fact triggered, during random + testing, leading to the fix. +* `include/lib.sh`: Fixed error when running `./build dependencies`. The `e()` + and `setvars()` functions were declared *after* the dependencies function, + but are now declared before. Also: after calling `install_packages`, it + was doing a return when it should have done an exit. All of this lead to + certain temporary files being created; the context here was that the user + would be running `./build dependencies` as root, which lead to some of those + files being created as root, but lbmk exits with not-zero status when you + run it as root, except when running the dependencies command. Therefore, this + could create situations where the user can longer run lbmk without intervention + such as changing permission on certain files. Avoid the issue entirely. + +General code cleanup +-------------------- + +Extensive code cleanup has been performed, as was the main purpose of Audit 6. + +The changes are as follows: + +* Removed `util/autoport`, because the Haswell support that we merged for it + is now included in upstream(coreboot), so it will be included in future + coreboot revisions for lbmk. +* `script/trees`: Move dependency building (based on `build_depend`) to a new + function, called from `configure_project()`, instead of including the logic + directly within the latter. +* `script/trees`: Merge `build_targets()` into `handle_targets()`. +* `script/trees`: Use `:` as a prefix on certain build commands, when doing + try runs (dry builds); the `-d` flag was initially implemented with a lot + of if/else chains, but `:` does nothing in sh (that's what it's for, to do + nothing), including if arguments are provided to it. This change enables + much more granually disablement of certain commands, which would otherwise + require many more if/else chains. This change reduced the amount of code. +* `script/trees`: Remove all project-specific hacks. The coreboot-specific + includes were moved to coreboot's `mkhelper.cfg` file. Serprog and coreboot + images are handled by mkhelper functions now. +* `include/rom.sh`: It also provides building of serprog images. The mkhelper + configuration is provided for `pico-serprog` and `stm32-vserprog`. The + old `./build roms serprog` commands still work, but you are now advised to + run `./update trees -b stm32-vserprog` or `./update trees -b pico-serprog`, + which will now result in the same builds being provided under `bin/`. +* `include/rom.sh`: New file, replacing `script/roms`. It contains the same + functions, more or less, for building coreboot images. The `trees` script + already produces coreboot images, and payloads were added by `script/roms`; + now, those same functions (for adding payloads) are stubbed + via mkhelper configuration in `config/data/coreboot/mkhelper.cfg`. + The command `./update trees -b coreboot` (whether specifying additional + targets, or specifying none and thus building all of them), now builds + coreboot images with payloads inserted, and never leaves them on-disk without + payloads; this removes an existing issue where the user might accidentally + use the no-payload images, mitigated by provided a warning but still an issue + regardless (for example, what if the user doesn't understand English very + well?). The old `./build roms` command is now deprecated, but still provided + for backward compatibility, but you are now advised to run the trees command. + The `bin/` directory is still the place where coreboot images go, but they + no longer appear(without payloads) under `elf/` - only the `bin/` images are + provided. +* `script/roms`: Removed unnecessary calls to `./update trees -b` for payloads, + because coreboot targets now specify `build_depend` which is used generically + per tree, per multi-tree project, to provide such build dependencies. +* `script/trees`: Rename function `load_target_config()` + to `configure_project()`, because the function also now handles building to + some extent (based on `build_depend`), not just mere loading of config files. +* `include/vendor.sh`: Removed `mkdirs()` and merged its logic into the only + calling function, `fetch()`. +* `include/git.sh`: Simplified `git_am_patches()` by condensing several `for` + loops together, into a single `for` loop performing each task. +* `include/git.sh` and `script/trees`: Tidy up the use of global variables. + Some of them were only initialised in `git.sh` but also used in the `trees` + script, which means they should be initialised in the `trees` script. +* `include/git.sh`: Simplified initialisation of `loc` (single code line) +* `script/trees`: Simplified `distclean` directory check, by reducing the + nesting of if/else statements. +* `include/git.sh`: Condensed a few code lines in `fetch_targets()`. +* `include/git.sh`: Shorter `git_prep` command in `fetch_targets()`. +* `script/trees`: Simplified multi-tree bare repository cloning. The `git_prep` + function already creates a given directory where source code goes, so we + don't need to handle it from the `trees` script. +* `script/trees`: Merged `prepare_new_tree()` with `fetch_targets()`. +* `script/trees`: Simplified `distclean` handling; condensed a few code lines. +* `script/trees`: Further simplified `copy_elf()`; condensed a few code lines. +* `script/trees`: Added explicit return to the end of `handle_defconfig()`. +* `script/trees`: Renamed `check_config()` to `check_defconfig()`, for clarity. +* `script/trees`: Removed variable `config_name`, because it's only used + once, so its value was instead hardcoded, without declaring a variable. +* `script/trees`: Renamed variable `config` to `defconfig`, for clarity. +* `include/git.sh`: Removed redundant `xtree` variable, already defined + in `trees`. +* `script/trees`: Removed various comments that were redundant, because the + code that they covered was already simple enough that what they did was + obvious. +* `script/trees`: Cleaned up `handle_makefile()` a bit; condensed a few lines. +* `script/trees`: Renamed `load_project_config()` to `load_target_config()`, + for clarity. +* `script/trees`: Download multi-tree *bare* repositories *before* given trees. + When downloading multi-tree projects, revisions can be reset to `HEAD` + instead of the actual revision for a given target. This occurs when the bare + repository (e.g. `src/coreboot/coreboot`) does not exist and has to be fetched + first. Bare repository downloading does not rely on `target.cfg`, + only `pkg.cfg`, but uses the same variables, e.g. `rev`. So: instead of + using a separate variable name, do the bare repository download first. + This means that the `git.sh` logic can be much cleaner, in that it *only* + copies the bare repository and then runs `git_prep`. The bare repository is + closed directly by calling the relevant function from `trees`, which is + therefore the same behaviour as when cloning single-tree projects. +* `script/trees`: The `_setcfgarg` variable was removed, in + function `load_project_config()` because it became disused and thus redundant. +* `script/trees`: Unified multi-tree and single-tree configuration handling. + The same functions that load configurations for single- and multi-tree have + been merged with the one in `git.sh`, and then that was moved back into + the `trees` script. Now `git.sh` only handles the actual downloading and + patching of sources, but not configuration of them; the latter is handled + directly within the `trees` script. The benefit of this change is that it + generally allows far more flexibility; many functions that use such + configuration logic can now be unified under this script, for instance + using the `mkhelper` feature mentioned elsewhere on this page - and that is + precisely what was later done, in further changes that are detailed above. +* `script/trees`: Unified handling of source downloads. Run it from + function `load_project_config()`. The logic used to be split, between + single- and multi-tree projects, but now it is consistent throughout. +* `include/git.sh`: Rename `fetch_project_trees()` to `fetch_targets()`. +* `include/git.sh`: Rename `fetch_project_repo()` to `fetch_project()`. +* `script/trees`: Add explicit return at the end of `check_coreboot_utils()`. +* `include/vendor.sh`: Remove unnecessary check; we don't need to check whether + the `grub_install_modules` and `grub_modules` variables are set, because they + always are, and we may want to have a setup in the future where no such + modules are defined anyway, for testing purposes. Remove this check entirely. + This pertains to `mkpayload_grub()`, which produces the `grub.elf` payload + builds. +* `include/vendor.sh`: Remove unnecessary check; we don't need to check + the existence of the option ROM in `extract_e6400vga()`, because a command + comes right after it that copies it. If the file doesn't exist, `cp` will + yield error status, causing the same kind of error returned from lbmk. +* `include/vendor.sh`: Condensed `inject()` a bit, by simplifying some of + the if/else chains and especially the way in which they return. +* `include/vendor.sh`: Simplified checks for E6400 VGA config; it was being done + in a complicated for loop running `eval`, but similar functionality is + already implemented in `chkvars()`, which is now used instead. +* `include/vendor.sh`: Simplified the otherwise over-engineered path checks, + when reading vendor paths from inside coreboot configuration files. +* `include/vendor.sh`: Simplified handling of the kbc1126 utility in coreboot. + We were checking whether the binary exists, but `make` already does this. + We still check whether the directory exists, because not all coreboot trees + contain this utility; where they don't, but it is needed, we can always + add it with a patch, but this is currently not required. +* `include/vendor.sh`: Simplified utils handling in `bootstrap()`; a single + for loop is now used, for all utilities, when running the `trees` script. +* `include/vendor.sh`: Simplified initialisatino of the `_7ztest` variable; + it is included now in the main call to `setvars`, under global variables. +* `include/vendor.sh`: Condensed a few code lines in `detect_board()`. +* `include/vendor.sh`: Condensed a few code lines in `patch_rom()`. +* `include/vendor.sh`: Add explicit return at the end of `bootstrap()`. +* `include/vendor.sh`: Renamed `getcfg()` to `readkconfig()`. +* `include/vendor.sh`: Merged `cfgutils()` into `readcfg()`. +* `include/vendor.sh`: Merged `build_dependencies_inject()` + into `vendor_inject()`. +* `include/vendor.sh`: Tidied up a few variable initialisations, and the + handling of `cbutils` (coreboot utilities) in this context. +* `include/vendor.sh`: Clean up GbE region handling; there were actually two + separate sets of logic for handling the MAC address. It was unified, so that + only `modify_gbe()` is used throughout. +* `include/vendor.sh`: General code simplification. Many variables were declared + separately, instead of being declared with `setvars`, and a lot of for loops + were condensed. +* `include/vendor.sh`: Simplified the `modify_gbe()` function. It was re-added, + and the function was still using a much older coding style from before all + the various lbmk audits. The function is now about half the size, while + performing the same task. +* Generally tidied up a few `setvars` calls, condensing them them so that they + used fewer code lines, while still observing the 80-character rule. +* `script/roms`: Explicitly shift by 1 for all targets. The way this script + worked, it would go through all arguments populating each one inside a + single string containing them, shifting until no arguments were left. We want + to make sure it is shiftedh by *one*, and make this intention clear. +* `script/roms`: Add return value for the `list` command, because we want a + specific return value but `return` passes the value of the previous return, + if a given `return` call does not specify an argument, and there's no way to + predict what the previous value would have been. However, this is not a bug + fix, pre-emptive or otherwsise, because nothing actually using this command + relied in any way on its return value. +* `include/vendor.sh`: Remove unnecessary checks. The trees script already checks + the existing of binaries and sources, so it didn't need to be done here. +* `include/vendor.sh`: Remove unnecessary coreboot tree check. We didn't need to + download a coreboot tree, because this script also handled coreboot utilities, + which in turn would download the necessary coreboot tree in the same way. +* `include/vendor.sh`: Remove unnecessary `cbutils` variable check; the same + check (of coreboot utilities) was already performed in `script/trees`. +* `include/vendor.sh`: Remove unnecessary check; `mktemp` will never return + empty output, and it was used just prior to an `mkdir` command on that output, + which would subsequently return an error if the argument is empty. +* `include/vendor.sh`: Condensed a few code lines in `check_board()`. +* `include/vendor.sh`: Condensed some code lines handling variable initialisation. +* `include/vendor.sh`: Remove unnecessary `cbfstool` variable check; the same + check is also performed in `script/trees`. +* `include/vendor.sh`: Simplified the `cbfstoolref` variable check; condense + a few code lines. This variable refers to cbfstool from coreboot 4.13, used + for extraction of the *refcode* file on HP EliteBook 820 G2, at build time. +* `include/lib.sh`: Tidy up `err_()`; condense a few code lines. +* `include/lib.sh`: Add explicit return to the end of `chkvars()`. +* `include/vendor.sh`: Unified reading of board configs. The `inject` + and `download` functions had separate logic for this, which is now implemented + in a single function throughout. +* `include/vendor.sh`: Simplify variable check in `getcfg()`; use `chkvars()` + to check the `vcfg` and `tree` variables (exit with error status if they + were not initialised). +* `include/vendor.sh`: Removed unnecessary `cbdir` check. We don't need to + check it, because the `trees` script already checks it. +* Remove use of `_xm` in the build system, which was a variable containing a + given prefix as set throughout, for each function. It was included in error + messages, when returning from a function under fault conditions, but it was + no longer used; a relic of lbmk from several audits ago. +* `script/trees`: Simplify single- and multi-tree handling in `main()`. Use + shorthand notation on a single line, initialising it based on single-tree + and then checking that the given project is multi-tree. +* `script/trees`: Rename `build_projects()` to `build_project()`. The script used + to support building multiple single-tree projects, but this behaviour was buggy + and unused, so it was removed. Rename the function accordingly. +* `script/trees`: Set `btype` if `target.cfg` doesn't exist; set to `auto`. + The build system assumes multi-tree, if Kconfig files are used. Single-tree + projects will not typically define `btype`, so just default it to `auto`. +* `include/lib.sh`: Removed unused `cbdir` variable. +* `script/roms`: Don't assign `cbdir`, because it wasn't even used here. +* `script/trees`: Don't hardcode skipping kconfig files based on whether the + project is GRUB. Instead, define `btype` in project `target.cfg` files, and + define this in GRUB. Some projects are multi-tree but do not use Kconfig files, + and GRUB is one of them; we must avoid commands such as `make menuconfig`, + doing nothing and returning with zero status explicitly, otherwise it would + yield an error, which is a problem if you ran the trees script with a flag + but no argument (which, as documented elsewhere in this report, was later + made to operate that flag on every project in succession). +* `include/git.sh`: Don't check that a given source directory exists, because + the main `trees` script already does this before running fetch commands, which + are implemented in `git.sh`. +* `build`: Move `git_err()` here, from `include/lib.sh`, because it's only used + in the main `build` script. +* `include/lib.sh`: Simplify `singletree()`; condense a few code lines. +* `include/lib.sh`: Add an explicit return to the end of `check_defconfig()`. +* `include/lib.sh`: condense the `e()` function a bit (was already done before, + and done again). +* `include/lib.sh`: Simplified `TMPDIR` handling; remove the `tmpdir` variable + and use `TMPDIR` directly. Use a new variable `xbmk_parent`, which is set + to `y` only on the main instance; child instances of lbmk do not set it, + signalling that `TMPDIR` should not be removed upon exit (it should only + be removed upon exit from the main parent instance of lbmk, not child + instances executed by it). +* `include/lib.sh`: Condense if/else logic in `setcfg()`. Use shorthand + notation instead, on conditional statements. +* `include/lib.sh`: Condensed `setvars()` a bit. +* `include/lib.sh`: Simplified lock message, when a lock file exists while + trying to run lbmk. +* `include/lib.sh`: Simplified reading of version files. A single for loop + now initialises all of these variables with a single `eval` command inside. +* `include/git.sh`, `include/lib.sh`, `script/roms` and `script/trees`: Simplify + use of environmental variables. The variables themselves were being copied + to other variables, of lowercase naming, but this was unnecessary. The + environmental variables are now used, directly, while being properly set per + each running instance of lbmk. +* `script/roms`: Remove the `t` variable, which was used for temporary ROM + images. The script now operates on images more directly, and this variable + is no longer used (previously used for storing paths to temporary images). +* `script/roms`: Simplified logic for checking U-Boot builds. +* `script/roms`: Simplify initmode/displaymode loop, when building multiple + coreboot images per target. +* `script/roms`: Renamed a few functions and variables for code clarity. +* `script/roms`: Build coreboot images earlier on in the process, to avoid + duplicate work. It was built per coreboot configuration, but the logic + builds all images per target, so it doesn't make sense to run the build twice. + The subsequent runs would just skip, because the images already existed. +* `script/roms`: Generalised more logic, merging a lot of functions and + reducing a lot of code repetition. +* `include/lib.sh`: Remove `badcmd()`, because it's bloat. This function + simply write "bad command", followed by a call to the err function. Instead, + simply call err with the same string, when required. +* `include/lib.sh`, `include/git.sh` and `include/vendor.sh`, `script/trees` + and `script/roms`: More unified handling of project configurations. Remove + the function `scan_config()`, which worked with a specially crafted format + that we had for vendor files and project (source repo) configs. Instead, + use flat config files. Individual `target.cfg` files for coreboot now contain + a `vcfg` variable pointing to a directory, containing vendorfile config. + This change resulted in a sloccount reduction of about 20, in the build + system, and the new config handling is much more robust. +* `script/trees`: More robust check for `make fetch`, when handling source + downloads. Don't use shorthand form; instead, use if/else chains to + determine whether to skip a target after download. +* `include/vendor.sh`: Minor code cleanup (condense a few code lines). +* `include/git.sh`: General code cleanup in `fetch_submodules()`. Several + code lines have been condensed. +* `script/roms`: Merge `mkserprog()` into `main()`, because it was essentially + performing the same functions, but for checking serprog targets. Unify the + logic, for handling coreboot, stm32 serprog and rp2040 serprog targets. +* `script/roms`: Reduced code indentation in `build_grub_roms()`. +* `script/roms`: Remove `build_payloads()` and split it into smaller functions. +* `script/roms`: Condense lines together that check for various payloads. +* `script/roms`: Removed the `mt86bin` variable, because it's only used once. + Instead, hardcode the path to memtest86plus when building it. +* `script/roms`: Merge `build_uboot_payload()` into `build_payloads()`, because + both functions are very simple and do essentially the same thing. +* `script/roms`: Simplified check for u-boot payload; we only need to know + whether it's enabled, not whether it's also disabled. If set to enable + other than `y`, set it to `n` blindly. +* `script/roms`: Simplify the check for serprog source directories. Instead + of an if/else chain, re-use variables and use a single `eval` command + between the two types; serprog rp2040 and serprog stm32. +* `script/roms`: Simplify the loop for building serprog images, by re-using + variables more aggressively and removing the if/else chain for serprog type. +* `script/roms`: Shorter variable names for serprog build logic. +* `script/roms`: Simplified serprog image copy, by using a single `eval` + call referencing `stm32src` or `rp2040src`, thus unifying this logic between + both types of serprog build. +* `script/roms`: Rename `picosrc` to `rp2040src`; this is in preparation for + the next change, mentioned above. +* `script/roms`: Remove confirmation dialog at the end of a serprog build, + because the message was overly pedantic and something the user already knows. +* `script/roms`: Merge the serprog handling into a single helper function. +* `script/roms`: Renamed the `x` variable to `it` in a for loop, to avoid + possible conflict with another same-named variable elsewhere in this script. +* `script/roms`: Don't call `x_` when using `cproms()`, since it never returns + with non-zero status anyway. +* `script/roms`: Move the U-Boot images, instead of copying. This way, we don't + have to clean up the temporary file that was used for it. +* `script/roms`: Allow flexible use of `mv` or `cp` in `cproms()`. +* `script/roms`, `include/lib.sh` and `script/trees`: Use a common string + for setting `elfdir`, which is where builds are copied to upon completion. +* `script/roms`: Merge `mkUbootRom()` into `build_uboot_roms()`. +* `script/roms`: Remove unused variables in `mkSeabiosRom()`. +* `script/roms`: Remove unused variables in `mkUbootRom()`. +* `script/roms`: Remove unnecessary variable assignment; `cbcfg` was already + properly initialised as a global variable, so this was re-used instead. +* `script/roms`: Removed unnecessary check for `payload_uboot`; + the `uboot_config` variable, if set, clearly indicates use of U-Boot. +* `build`: Remove unused `linkpath` and `linkname` variables. +* `script/roms`: Make `tmpcfg` a variable, re-used elsewhere when a temporary + file needs to be written. Simply overwrite the file as required, instead of + always calling `mktemp`. +* `script/roms`: Simplified timeout/scandisk insertion. We don't need to + call `mktemp` every time. Just use a static temporary file and keep + overwriting it, when we need to make a new configuration file inside CBFS. +* `script/roms`: Simplified SeaGRUB check in `build_grub_roms()`; condensed + a few code lines. +* `script/roms`: Simplify `mkserprog()`; condensed several code lines and + removed unused variables! +* `script/roms`: Simplify the Serprog build functions; condensed several + code lines and removed unused variables. +* `script/roms`: Simplify U-Boot payload check (same change as below). +* `script/roms`: Simplify GRUB-only check on SeaGRUB (same change as below). +* `script/roms`: Simplify SeaGRUB check in `configure_target()`; condensed + the if/else checks based on which payloads are configured. +* `script/roms`: don't use `x_()` to call `build_grub_roms()`, since that + function never returns non-zero status anyway. +* `script/trees`: Simplify `copy_elf()`; condense the `while` loop handling + file copies, for copying builds to their destination paths once complete. +* `script/trees`: Remove unnecessary check in `copy_elf()`; we don't need to + check whether the `listfile` string is empty, because a check comes after + it as to whether the file it defines exists, and checking an empty string + there will always yield a negative result, as intended. +* `include/lib.sh`: Add generic `cbfs()` function, which is now used throughout + lbmk when adding files to CBFS on coreboot images. This simplifies handling + of CBFS in lbmk. +* `script/roms`: merged handling of build targets into the main script, + simplifying the loop going through them all; each helper function returns + with non-zero status if the build is to cease, and the target is skipped. +* `script/roms`: Simplified handling of multiple coreboot build targets, when + looping through them all during the build process. +* `include/lib.sh`: added a unified function `chkvars()`, now used for checking + variable initialisation; if a variable is not initialised, it causes an exit + with non-zero status. +* `script/roms`: shorter variable names, condensed several functions. + +Revision updates +================ + +U-Boot +------ + +Alper Nebi Yasak is the maintainer of U-Boot, within Libreboot, and submitted +a patch updating U-Boot to v2024.07, on the `gru_bob` and `gru_kevin` +Chromebooks. Several improvements have been merged upstream, like Alper's +patches for Qemu, so these patches have been dropped in lbmk because they're +now included by default, in the new U-Boot revision. + +Alper also tested the latest coreboot revision and it worked fine, on these +boards, but revision updates will be done *immediately after* Audit 6 +is announced, as a priority for further work that is to be completed for +the next Libreboot release, ETA August 2024. + +Git log +======= + +This git log covers all changes in this audit, relative to Libreboot 20240612. + +``` +* 31f1e4dad vendor.sh: don't use XBMK_CACHE for appdir +* 2b50b3ea9 put cachedir in environmental variable +* 0e0b12a63 git.sh: warn when a cached clone fails +* 9b1b95576 git.sh: fix typo in git command +* 82bdf2707 git.sh: fix lack of error exits on fault +* 64283a1fb build: remove tmp/ on release archives +* bf85246c4 trees: hardcode makeargs for xgcc +* c6e6d96ce allow using coreboot's build system to add payload +* 78cdc56ae trees: remove unnecessary command +* e69903789 build: remove cache/ on making releases +* 79f50b379 unify caching of files into cache/ +* a9f9de885 unified cache file handling for vendorfile/subfile +* ef867eccc git.sh: remove previous tmprepo if args>5 +* 4d5385a14 git.sh: try direct clone if cached git fails +* 0cd52fc7f git.sh: re-try git pull three times +* 0b9cd77fe trees: auto-delete+auto-rebuild if project changes +* 4438368c0 trees: also remove single-tree repo/p/ +* 570e3abb2 trees: remove repo/p, not src/p/p +* 583502027 git.sh: don't download to src/project/project/ +* 9f09728ac git.sh: cache git downloads to repo/ +* f367afabc remove util/autoport +* 373c2eb23 trees: move dependency building to new function +* 12c3956f5 Merge pull request 'Update U-Boot to v2024.07' (#225) from alpernebbi/lbmk:uboot-v2024.07 into master +|\ +| * 708fc14c6 u-boot: Fix display initialization on gru boards +| * 0cc7736b4 u-boot: Avoid breaking build for U-Boot-only binman images +| * 2ecec55af u-boot: Update to v2024.07 +|/ +* 090cf7ad5 trees: fix bad comparison in configure_project() +* e37779c11 trees: don't continue if no argument given +* 3263eeb6b trees: general code cleanup +* 17f3e61a0 trees: merge build_targets() with handle_targets() +* c0a4df688 trees: use wrapper for dry-running make commands +* 459db1cc2 trees: remove project-specific hacks +* e9f66ec4a remove executable permission on include/ +* 91994b785 rom.sh: actually say if a cbutil exists +* 97b777715 rom.sh: avoid re-building cbutils if built +* 494b94799 rom.sh: only before cbutils before coreboot +* 469cc64f9 trees: fix bad comparison +* 5a1d2401c minor cleanup +* 964617214 trees: support -d (dry run) for custom build logic +* e850c06bd rom.sh: only make rom tarball if release=y +* 2f3cc5d37 rom.sh: new file, to replace script/roms +* 889afe168 roms: remove unnecessary trees checks +* c241a3ef4 coreboot: set build_depend on target.cfg files +* 6d4fb200a trees: rename load_target_config() +* 87df6ae36 trees: support build dependencies, not just fetch +* 23ca49bee GRUB: only load xhci from grub.cfg +* 065453b72 trees: just do makeargs on coreboot, not cbmakearg +* 2ab1d9949 trees: fix bad rm -Rf command (-Rf, not Rf) +* d6ff009e2 roms: fix bad comparison in configure_target() +* 3ee045f9a GRUB: use mkhelper.cfg for common variables +* 3ef84af9f trees: allow global config on multi-tree projects +* 2b49714a6 trees: handle all projects if project undefined +* b7f12ade0 vendor.sh: remove mkdirs() +* 0018600d6 git.sh: simpler for loop in git_am_patches() +* 5882056a2 git.sh: merge for loops in git_am_patches() +* 67421a21f trees and git.sh: tidy up global variables +* 55dbd72aa git.sh: simplified initialisation of "loc" +* 0cb84a8dd trees: simplified distclean directory check +* 5ba0433b5 git.sh: condense fetch_targets() a bit +* 4772186b1 git.sh: short git_prep command in fetch_targets() +* c62dbdbe8 trees: only do bare multi-tree clone on git +* 89a81a291 trees: simplified multi-tree bare repo clone +* 017fd8259 git.sh: merge prepare_new_tree with fetch_targets +* f937a1142 trees run_make_command: simpler distclean handling +* 88f741db9 trees: condense copy_elf() a bit +* d5928c9ba trees: add return to handle_defconfig() +* 1a7c8acb0 trees: rename check_config to check_defconfig +* ba7b3a3b2 trees: remove variable "config_name" +* 030f1afd8 trees: rename variable "config" to defconfig +* 739496061 git.sh: remove duplicate "xtree" variable +* 0c4ad24b0 trees: remove unnecessary commonts +* eacc41e82 trees: condense run_make_command() a bit +* 563948141 trees: condense handle_makefile() a bit +* 1ec9fc336 trees: mv load_project_config load_target_config +* 789631ccb trees, multi: download bare project *before* trees +* a5e724e51 trees: unified multi-tree configuration handling +* cfc9f62ff trees: unified handling of source downloads +* 7bf283520 git.sh: rename Fetch_project_trees fetch_targets +* e0c244f37 git.sh: rename fetch_project_repo to fetch_project +* 02f741795 trees: better skip-clean string in handle_src_tree +* f7ec42d37 trees: add return to check_coreboot_utils() +* 8d02adfbb trees: simplify "utilmode" variable initialisation +* d1b7882c5 vendor.sh readcfg: split the -b coreboot command +* fbe36b01a trees mkpayload_grub: remove unnecessary check +* 088a79918 vendor.sh: remove unnecessary check +* 8c5f78d3d vendor.sh: condense inject() a bit +* 42925ce79 vendor.sh extract_kbc1126: use quote on file check +* ddcc74777 vendor.sh extract_kbc1126ec: simplify build check +* 7a12cd770 vendor.sh: simplify e6400 vga rom file check +* 163bcfcdf vendor.sh: simplify variable checks for e6400vga +* cbac2087c vendor.sh: condense fetch() a bit more +* 675d2c037 vendor.sh: remove unnecessary check +* 5e46b9f43 vendor.sh: simplify kbc1126 util handling +* 7086b6868 vendor.sh: simplify bootstrap() utils handling +* 6a05487ef vendor.sh: simplified initialisation of _7ztest +* 972e61070 vendor.sh: condense detect_board() a bit +* bf5acedb1 vendor.sh: condense patch_rom() a bit +* 8b8cf070d vendor.sh: add return to end of bootstrap() +* d85b9de2d vendor.sh: rename getcfg() to readkconfig() +* 53b69f673 vendor.sh: merge cfgutils() into readcfg() +* 55677d821 vendor.sh: remove build_dependencies_inject() +* c76419861 vendor.sh: simplify initialisation of variables +* d63da943c vendor.sh inject: skip serprog targets +* c6df9666a vendor.sh: don't inject /dev/null +* f7ab70f60 vendor.sh: simplify inject() +* ee5bab2c9 vendor.sh: clean up GbE handling +* f2d53eb84 vendor.sh: condense fetch() a bit +* 85c2eb0f7 vendor.sh: general code cleanup +* a8f272536 lib.sh: stricter check in chkvars() +* fa5af956c vendor.sh: simplified modify_gbe handling +* 155ce49b1 vendor.sh: simplify modify_gbe() +* 08bce7ad3 vendor.sh: minor code cleanup +* 636b86237 vendor.sh: re-add modify_gbe() +* 2eb0163cc Revert "vendor.sh: remove unnecessary check" +* 3f37c3788 tidy up some setvars lists +* ed3cce84b roms: explicitly shift by 1 on the "all" target +* 359d00bd5 roms: add return value for the list command +* 3f540e756 roms: build u-boot *before* checking ubootelf +* afc003068 remove more unnecessary checks on trees commands +* 35c487106 vendor.sh: remove unnecessary checks +* ce03786f6 vendor.sh: remove unnecessary command +* e01b5c974 vendor.sh: remove unnecesessary cbutils check +* 8196ce6dd vendor.sh: remove unnecessary check +* 8f50131e1 vendor.sh: condense check_board() a bit +* d12a68601 vendor fetch(): condense variable initialisation +* 708e306e5 vendor.sh: remove unnecessary cbfstool check +* 75951c469 vendor.sh: simplified cbfstoolref check +* d36c07847 lib.sh: keep versiondate check to 80 characters +* 40d3bb19b lib.sh: condense for loop +* 5725e3c4e lib.sh: condense err_() a bit +* e3546f77b lib.sh: add a return to the end of chkvars() +* d0f68a0fb vendor.sh: rename release to vrelease +* 473f27784 vendor.sh: unified reading of board configs +* a2f4eba58 vendor.sh: simplify variable check in getcfg() +* 4afcbcb64 vendor.sh: remove unnecessary cbdir check +* fd037722a remove use of _xm variable in the build system +* 136787185 trees: don't hardcode use of mkpayload_grub +* c59fbb365 trees: simplify single/multi handling in main() +* 902b98d1a trees: rename build_projects to build_project +* e1e04aa80 trees: err if target.cfg not given if multi-tree +* 93ff80d96 trees: set btype if target.cfg doesn't exist +* 732c5908d lib.sh: remove unused cbdir variable +* 119cebc4d roms: remove unnecessary assignment to cbdir +* 7a15ba18c trees: avoid kconfig make commands generically +* eb9c1872b git.sh: remove unnecessary check +* 9aec992ff lib.sh: move git_err() to build +* 6fc7cd3c1 lib.sh: condense singletree() a bit +* 35d09e426 lib.sh: add a return to the end of check_defconfig +* 144b3c93a trees: condense elfcheck() a bit +* 7b8c2bd41 lib.sh: condense e() a bit +* ffdecb0ce trees: shorten the final confirmation message +* ed6acfee8 lib.sh: make elf/coreboot* a dot directory +* 44fb98736 build: don't rm TMPDIR if it's /tmp +* fac74cd60 lib.sh: simplified TMPDIR handling +* 671893a80 lib.sh: condense setcfg() if/else logic +* 19bc5845a trees: remove redundant space in printf +* 9154ba5b8 trees: explicitly err if OPTARG is not set +* f383b1ad7 trees: only permit one single-tree project +* a64e2db58 trees: call err if multiple flags are provided +* 0e97e98fe trees: explicitly set mode for -b +* 7f7b640d3 roms: re-add compression of coreboot images +* 1ab9189cb roms: build coreboot *after* checking variables +* 2b4c6ee5c lib.sh: introduce mandatory check of projectname +* c79fb125e lib.sh: condense setvars() a bit +* 1387dc0ae simplified lock message +* 20ac7ec67 lib.sh: simplify reading of version files +* 4e48fa808 lib.sh: simplify use of environment variables +* b4fb25100 roms main(): confirm what serprog images are built +* 5e2308ce0 roms: remove unused variable name +* 2960abd00 roms: remove redundant printf +* c661eca6b roms: optimise u-boot elf check +* 8af9f904c roms: simplify build_roms() +* c9f26dbc9 roms: make the bin/elf message more polite +* 9484eda5a roms: re-add final confirmation of targets +* 2b7df7ab2 roms: rename functions for extra clarity +* 6753222d0 roms: build coreboot early to avoid duplicate work +* 19e7c1eab trees: try xgcc build twice if first attempt fails +* 6468bdb3a trees: don't check if xgcc is already built +* d5baaff0e lib.sh: fix error running ./build dependencies +* 0158a0811 roms: general code cleanup +* e67cd1716 roms: only support SeaBIOS/SeaGRUB on x86 +* 71137b12b roms: remove support for "grubonly" seabios +* d4d5d2902 use backticks on eval commands, not subshells +* c1527b611 lib.sh: remove badcmd() +* fc7ae3e59 lib.sh: more unified config handling +* ad1602569 trees: more robust check to avoid "make fetch" +* a6b1a6bdd roms: fix lack of backslash on multi-line command +* 8c4a91850 vendor.sh: more cleanup +* 471129684 Revert "roms: remove build_payloads() and split it up" +* 5a4fc97c6 vendor.sh: correction (s/scancfg/scan_config) +* d65e4fac1 git.sh: revert modification to for loop +* bc61c39ec vendor.sh: minor code cleanup +* 808458ced minor code cleanup in the build system +* 4ab99d546 git.sh: general code cleanup in fetch_submodule() +* cd1d84789 git.sh: reduced indentation on repo/file check +* 4f6dda136 git.sh: simplified repo/backup check +* 185d76f57 roms: merge mkserprog() into main() +* 893e88bc8 roms: don't insert timeout.cfg +* abfc799fd correction +* a0da8fdef roms: reduce indentation in build_grub_roms() +* 383433d4f roms: re-introduce accidentally disabled check +* 3610667e3 roms: remove build_payloads() and split it up +* 29a7123c0 roms: group some commands that are similar +* 2d6946775 roms: remove mt86bin variable +* 920e5ba2d roms: merge build_uboot_payload to build_payloads +* a96c4b59f roms: simplify payload_uboot y/n check +* 28682b1a4 roms: simplify the check for serprog srcdir +* b61dd4c25 roms: simplify the loop for building serprog roms +* 6df17860e roms: shorten variable serprog_boards_dir +* ea5b5b072 roms: simplified serprog image copy +* ea9bdfce4 roms: rename picosrc variable to rp2040src +* 1a4f97ffd roms: remove useless confirmation in mkserprogfw +* 1881d34db roms: merge serprog build into one function +* f7e28964a roms: remind the user about gkb files +* f928ac5c7 roms: rename x variable to it in for loop +* 58a451865 roms: don't use x_ to call cproms() +* bc853fbb8 roms build_uboot_roms(): move rom, don't copy +* 12b26f207 roms cproms(): allow other commands besides cp +* e67628c6a unify coreboot elfdir (DO_NOT_FLASH) +* 8b58c1eac roms: merge mkUbootRom() into build_uboot_roms() +* c3f0a109c roms: simplify mkSeabiosRom() +* c8944f1ca roms: simplify mkUbootRom() +* 92aa83a23 roms: simplify build_roms() +* d3e788645 roms: remove unnecessary check +* ef411c596 build: remove unused variables +* 6dc051558 roms: further clean up build_grub_roms() +* 0e9b36c58 roms: simplify timeout/scandisk insertion +* 3a7b3660f roms: simplify seagrub check in build_grub_roms +* 4b764d26f roms: simplify mkserprog() +* 167e7447a roms: simplify the serprog build functions +* 7bc9fcc34 script/roms: fix serprog build commands +* 0dfe3aed9 roms: simplified ubootelf check +* a9166898d roms: simplify grubonly check in configure_target +* 90017cdc5 roms: simplify seagrub check in configure_target +* 817004e15 roms: don't use x_ to call build_grub_roms +* 0812d5321 trees: simplify copy_elf() +* 331c4097f trees: remove unnecessary check in copy_elf +* 340eea0b1 grub: insert background in memdisk instead +* ed9c90e59 roms: unify all add-payload commands +* 26451775d roms: don't add grub keymaps at all +* af8296ce6 roms: merge handle_coreboot_target into main() +* d1c0c3464 roms: simplify target check (whether roms built) +* f626b25db roms: simplify main() again +* eb9a688ee roms: remove redundant check on grub_scan_disk +* a4328cb11 roms: remove dangerous runtime p/s/d options +* 167e1a0fb unified checks for variable initialisation +* 98724d701 lib.sh: remove the items() function +* baea03c67 roms: simplify main() +``` + +This is 247 changes in total, between 12 June 2024 and 19 July 2024. From 54962a782c0a92c1f5a32132cc6d527d95a5e2a7 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 19 Jul 2024 19:00:32 +0100 Subject: [PATCH 021/399] audit6.md: mark the interesting changes in bold i forgot to do this. it's something that i started doing since audit 5, to help lazy people who tl;dr Signed-off-by: Leah Rowe --- site/news/audit6.md | 38 +++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 17 deletions(-) diff --git a/site/news/audit6.md b/site/news/audit6.md index 266b8aa..04c8849 100644 --- a/site/news/audit6.md +++ b/site/news/audit6.md @@ -68,6 +68,10 @@ that will be available, in the next Libreboot release. Summarised list of changes ========================== +The most interesting changes are marked in **bold**. "Interesting" means that +the change greatly improves the usefulness/reliability of Libreboot, or that it +affects the user in a profound and noticeable way. + Changes are in order per category, from newest to oldest: Feature changes @@ -81,8 +85,8 @@ improve the redundancy of certain operations, and overall reliability in lbmk. The changes are as follows: -* Put the cache directory location in an environmental variable, - named `XBMK_CACHE`. If unset, it defaults to `$PWD/cache`, where PWD is the +* **Put the cache directory location in an environmental variable, + named `XBMK_CACHE`.** If unset, it defaults to `$PWD/cache`, where PWD is the current location that the instance of lbmk is running from, otherwise if defined, the location is used. This means that the same cached files are re-used on the lbmk copy created when running `./update release`, thus @@ -100,10 +104,10 @@ The changes are as follows: adding a payload, because it's a given that then coreboot's own build system would have done it. Libreboot will always enable `CONFIG_PAYLOAD_NONE` on all official targets, so this feature is only intended for power users. -* Unified cache file handling for vendor files, and files defined as modules +* **Unified cache file handling** for vendor files, and files defined as modules for specific projects. They are now cached within the same base directory. -* `script/trees`: Automatically re-download and re-build a given project, when - configuration changes, on any file under specific directories in `config/` +* **`script/trees`: Automatically re-download and re-build a given project, when + configuration changes**, on any file under specific directories in `config/` pertaining to it; this is done by concatenating the sha512sum hashes for each of those files, and then making a sha512sum hash from that. The hash is stored, and compared to the current one; if it differs, then you know @@ -127,7 +131,7 @@ The changes are as follows: universally, for vendor files and for submodules files (e.g. crossgcc files). This avoids wasting bandwidth when building for multiple coreboot trees, in cases where multiple trees share the same URLs for crossgcc tarballs. -* `include/git.sh`: Cache all git downloads, reset to `HEAD`, before copying +* **`include/git.sh`: Cache all git downloads**, reset to `HEAD`, before copying to the final location; this is also done on submodules. If a cached repository exists, run `git pull` on it but without an exit under fault conditions; if a fault occurs, including when trying to reset on a copy of it, fall back to @@ -135,7 +139,7 @@ The changes are as follows: destination. This change results in substantially reduced internet bandwidth usage, especially when downloading submodules for multiple coreboot trees, in cases where those trees share common revisions. -* `script/trees`: Support `-d` (flag) for custom build logic; it does the same +* **`script/trees`: Support `-d` (flag) for custom build logic**; it does the same thing as `-b`, but with a variable named `dry` being set to `:`; this is prefixed on most build-related commands, and can be further prefixed as desired, in mkhelper functions. The result is that you can do *dry runs* on @@ -155,14 +159,14 @@ The changes are as follows: reason for implementing this is precisely so that project-specific hacks can be removed; the `trees` script now contains much more generalised logic, and project-specific logic was moved to mkhelper functions. -* SeaBIOS-only images are no longer provided, where GRUB is specified on a +* **SeaBIOS-only images are no longer provided,** where GRUB is specified on a given mainboard; similarly, GRUB-first images are not provided. If GRUB is enabled on a board, *SeaGRUB* is provided. The get SeaBIOS-only startup, you can either remove the `bootorder` file from CBFS, or disable GRUB in `target.cfg` before building, for a given mainboard. -* `script/trees`: A `premake` variable is supported in `mkhelper.cfg` files, +* **`script/trees`: A `premake` variable is supported in `mkhelper.cfg`** files, defining a function to be executed *before* running `make`, on a given project. -* `script/trees`: A `postmake` variable is supported in `mkhelper.cfg` +* **`script/trees`: A `postmake` variable is supported in `mkhelper.cfg`** and `target.cfg` files, defining a function to be executed immediately after running `make`, on a given project. This is used during coreboot builds, to add payloads on a given coreboot image. It can be used for any other purpose. @@ -205,7 +209,7 @@ The changes are as follows: single-tree projects, defined *by argument*, but it was quite error prone and there's no clean way to otherwise do it. We don't use the script this way, anywhere in lbmk, and users are advised the same. -* `script/roms`: *Only* Support SeaBIOS and Sea*GRUB*, on x86 coreboot targets. +* **`script/roms`: *Only* Support SeaBIOS and Sea*GRUB*, on x86 mainboards**. SeaGRUB is a configuration whereby SeaBIOS starts first, but immediately tries to load GRUB from the flash. This complements the other change, listed below. We will no longer provide configurations where GRUB is the primary payload, @@ -240,7 +244,7 @@ The changes are as follows: argument on the `grub-mkstandalone` command, and it means that the GRUB images can be used standalone in other build systems. The image is very small, so it's OK to do it this way. -* `script/roms`: Don't insert GRUB keymaps, at all. This feature was using a +* **`script/roms`: Don't insert GRUB keymaps, at all.** This feature was using a lot of disk space during testing. If no keymap is inserted, GRUB defaults to US Qwerty. You can still insert the keymap file as `keymap.gkb` in CBFS, and that keymap will be used by GRUB (e.g. US Dvorak, French Azerty, French BEPO). @@ -284,7 +288,7 @@ The changes are as follows: itself (the coreboot configs all enable `CONFIG_PAYLOAD_NONE`). For cases where a `target.cfg` file does *not* specify `mkhelper`, a fallback default entry is dictated within `config/data/coreboot/mkhelper.cfg`. -* GRUB: Only load the `xhci` module from `grub.cfg`; the `install_modules` +* **GRUB: Only load the `xhci` module from `grub.cfg`**; the `install_modules` variable now defines `xhci`, instead of `modules` defining it. This means that the xHCI module is no longer automatically loaded during GRUB machine initialisation, but it's then loaded immediately when the GRUB shell starts, @@ -323,7 +327,7 @@ The changes are as follows: the build threads being default (one thread), ensuring that we set it to the value as defined by `XBMK_THREADS`. The bug was triggered when building the U-Boot images, because U-Boot does not specify `CPUS=` on makeargs. -* `include/git.sh`: Re-try `git pull` three times, when updating the cache +* **`include/git.sh`: Re-try `git pull` three times**, when updating the cache Git repository for a given project or submodule. This mitigates possible instability in the user's internet connection, where it's online but may otherwise experience jitter (the same issue could also occur on the internet @@ -381,7 +385,7 @@ The changes are as follows: declared. The intention is to check both unitialised and empty strings, per variable. This is a *pre-emptive* bug fix, because this bug did not seemingly cause any issues in practise, but a bug is still a bug. -* `include/vendor.sh`: Re-added the `modify_gbe()` function, seldom used but +* **`include/vendor.sh`: Re-added the `modify_gbe()` function**, seldom used but nonetheless required; it's called when the user specifies a MAC address, during vendorfile insertion on release images. Direct use of `nvmutil` is still recommended, simply to gain an understanding of how it works; the MAC @@ -441,7 +445,7 @@ The changes are as follows: is nameless, because this file is used during the build process when naming release tarballs; theoreticaly, because in practise, lbmk would never remove this file, but the build system is designed to be as adaptable as possible. -* `script/trees`: If the crossgcc build fails, run it *again* first, before +* **`script/trees`: If the crossgcc build fails, run it again first**, before returning with error status. If the second build passes, don't yield an error. Sometimes the crossgcc build can fail for whatever reason, but a second run will succeed. This avoids having to re-run the *rest* of lbmk, just to re-run @@ -475,7 +479,7 @@ Extensive code cleanup has been performed, as was the main purpose of Audit 6. The changes are as follows: -* Removed `util/autoport`, because the Haswell support that we merged for it +* **Removed `util/autoport`**, because the Haswell support that we merged for it is now included in upstream(coreboot), so it will be included in future coreboot revisions for lbmk. * `script/trees`: Move dependency building (based on `build_depend`) to a new From c2f9253c45fd4727a641ffced3d39d1752707955 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 22 Jul 2024 09:38:11 +0100 Subject: [PATCH 022/399] remove obsolete mentions on audit6 the removed notes pertain to feature changes that i've since reversed; seabios-only images provided now, alongside seagrub, where seabios and grub are both enabled on a given board. and multiple keymaps now provided again, but only on seagrub. Signed-off-by: Leah Rowe --- site/news/audit6.md | 9 --------- 1 file changed, 9 deletions(-) diff --git a/site/news/audit6.md b/site/news/audit6.md index 04c8849..eaa6b89 100644 --- a/site/news/audit6.md +++ b/site/news/audit6.md @@ -159,11 +159,6 @@ The changes are as follows: reason for implementing this is precisely so that project-specific hacks can be removed; the `trees` script now contains much more generalised logic, and project-specific logic was moved to mkhelper functions. -* **SeaBIOS-only images are no longer provided,** where GRUB is specified on a - given mainboard; similarly, GRUB-first images are not provided. If GRUB is - enabled on a board, *SeaGRUB* is provided. The get SeaBIOS-only startup, you - can either remove the `bootorder` file from CBFS, or disable - GRUB in `target.cfg` before building, for a given mainboard. * **`script/trees`: A `premake` variable is supported in `mkhelper.cfg`** files, defining a function to be executed *before* running `make`, on a given project. * **`script/trees`: A `postmake` variable is supported in `mkhelper.cfg`** @@ -244,10 +239,6 @@ The changes are as follows: argument on the `grub-mkstandalone` command, and it means that the GRUB images can be used standalone in other build systems. The image is very small, so it's OK to do it this way. -* **`script/roms`: Don't insert GRUB keymaps, at all.** This feature was using a - lot of disk space during testing. If no keymap is inserted, GRUB defaults to - US Qwerty. You can still insert the keymap file as `keymap.gkb` in CBFS, and - that keymap will be used by GRUB (e.g. US Dvorak, French Azerty, French BEPO). * `script/roms`: Removed extra checks on `grub_scan_disk`, because we no longer allow it to be overridden, instead relying only on `target.cfg` files, which are carefully crafted per board. This setting configures the order of which From 3703d3737c05b7f38ae1b251f0d95704ffb1704a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 23 Jul 2024 02:49:08 +0100 Subject: [PATCH 023/399] document utils command change Signed-off-by: Leah Rowe --- site/docs/hardware/ga-g41m-es2l.md | 2 +- site/docs/install/ivy_has_common.md | 2 +- site/docs/install/ivy_has_common.uk.md | 2 +- site/docs/linux/grub_hardening.md | 2 +- site/docs/maintain/index.md | 10 +++++----- 5 files changed, 9 insertions(+), 9 deletions(-) diff --git a/site/docs/hardware/ga-g41m-es2l.md b/site/docs/hardware/ga-g41m-es2l.md index c45afb7..3cf3e7e 100644 --- a/site/docs/hardware/ga-g41m-es2l.md +++ b/site/docs/hardware/ga-g41m-es2l.md @@ -79,7 +79,7 @@ image is named `libreboot.rom` for your board. You can find cbfstool under `cbutils/` after running the following command in the build system: - ./update trees -b coreboot utils + ./update trees -d coreboot TREENAME You can learn more about using the build system, lbmk, here:\ [libreboot build instructions](../build/) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 7564261..0bff56e 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -110,7 +110,7 @@ You *must* ensure that the files were inserted. Some examples of how to do that in lbmk: - ./update trees -b coreboot utils + ./update trees -d coreboot TREENAME Now you find `cbutitls/default`, which is a directory containing `cbfstool` and `ifdtool`. Do this on your ROM image (`libreboot.rom` in the example diff --git a/site/docs/install/ivy_has_common.uk.md b/site/docs/install/ivy_has_common.uk.md index 03f54c9..d001dee 100644 --- a/site/docs/install/ivy_has_common.uk.md +++ b/site/docs/install/ivy_has_common.uk.md @@ -114,7 +114,7 @@ You *must* ensure that the files were inserted. Some examples of how to do that in lbmk: - ./update trees -b coreboot utils + ./update trees -d coreboot TREENAME Now you find `cbutitls/default`, which is a directory containing `cbfstool` and `ifdtool`. Do this on your ROM image (`libreboot.rom` in the example diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index 50caf76..cdae75b 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -83,7 +83,7 @@ image: You can build `cbfstool` in the libreboot build system. Run this command: - ./update trees -b coreboot utils + ./update trees -d coreboot TREENAME This assumes that you already downloaded coreboot: diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 3938342..23e421e 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -1326,12 +1326,12 @@ Basic command: `./update trees FLAG projectname` Special operation: for building coreboot utilities `cbfstool` and `ifdtool` to go under `cbutils/`, do this: - ./update trees -b coreboot utils + ./update trees -d coreboot TREENAME Or define specific coreboot tree such as: - ./update trees -b coreboot utils default - ./update trees -b coreboot utils cros + ./update trees -d coreboot default + ./update trees -d coreboot cros FLAG values are (only *one* to be used at a time): @@ -1365,8 +1365,8 @@ Example commands: ./update trees -u seabios ./update trees -m u-boot gru_bob ./update trees -f coreboot - ./update trees -b coreboot utils default - ./update trees -b coreboot utils + ./update trees -d coreboot default + ./update trees -d coreboot NOTE: the `-x` and `-c` options will cause an exit with zero status, when the target's corresponding source tree is unavailable; a non-zero status is From 68062ce60804efdbb20e0da6b16b7dc9e8e1a93a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 29 Jul 2024 06:15:27 +0100 Subject: [PATCH 024/399] document 20240612 rev2 and rev3 changes Signed-off-by: Leah Rowe --- site/news/libreboot20240612.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/site/news/libreboot20240612.md b/site/news/libreboot20240612.md index d9314e6..f2ced13 100644 --- a/site/news/libreboot20240612.md +++ b/site/news/libreboot20240612.md @@ -973,3 +973,36 @@ auto-load when GRUB starts. A full investigation is still required, but this workaround fixes the issue as far as the user is concerned. + +Revision 2 +---------- + +NOTE: Source code archive not available for rev2, because another revision +was made that also includes the rev2 change; a 'rev3` source archive is +available. + +Revision 2 fixed a minor mistake in the Intel Flash Descriptor on HP 8200 +machines, specifically the 4MB target; the Platform Data region was wrong, +which caused issues when flashing. The +file `libreboot-20240612rev2_hp8200sff_4mb.tar.xz` is available, +replacing `libreboot-20240612_hp8200sff_4mb.tar.xz`, on Libreboot rsync. + +Revision 3 +---------- + +Removed `util/autoport/`, becaues it's not required in release archives. + +The source code archive is now `libreboot-20240612rev3_src.tar.xz` for this +release, on Libreboot rsync. It contains the original 20240612 changes, in +addition to rev1 and rev2 changes, alongside rev3 (removal of autoport). + +The autoport source files lack license headers, which is OK in the context +of `coreboot.git` which contains a fallback COPYING file, but our own +equivalent of that file contains a different license, so the way we were +packaging autoport wasn`t ideal; it's possible that we may have unintentionally +violated the license. This is the first reason for the removal. + +The second reason for the removal is that we only intend for this to be used +for development anyway, where it is recommended that you use `lbmk.git`, not +the release archives, and upstream (coreboot) has merged the Haswell support +patches that we were importing, so our copy of autoport is no longer useful. From cba73bc3828107af880fc8d9b06a7e22d1457a06 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 2 Aug 2024 09:58:31 +0100 Subject: [PATCH 025/399] link wikipedia page instead, for right to repair the louis rossmann video previously linked is no longer acceptable for promotion, due to louis rossmann's work promoting FUTO's "source first" license, which is a proprietary software license because it restrictions commercial usage of software released under it. context is available on my mastodon thread: https://mas.to/@libreleah/112888424905996535 Signed-off-by: Leah Rowe --- site/index.de.md | 2 +- site/index.fr.md | 2 +- site/index.it.md | 2 +- site/index.md | 2 +- site/index.uk.md | 2 +- site/index.zh-cn.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/site/index.de.md b/site/index.de.md index d8c739c..9aebeaa 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -36,7 +36,7 @@ Es ist extrem leistungsfähig und für viele Einsatzzwecke [konfigurierbar](docs Du hast Rechte. Das Recht auf Privatsphäre, Gedankenfreiheit, Meinungsäußerungsfreiheit, und Informationsfreiheit. In diesem Zusammenhang, Libreboot gibt dir diese Rechte. Deine Freiheit ist wichtig. -[Das Recht auf Reparatur](https://yewtu.be/watch?v=Npd_xDuNi9k) ist wichtig. +[Das Recht auf Reparatur](https://en.wikipedia.org/wiki/Right_to_repair) ist wichtig. Viele Menschen verwenden proprietäre (non-libre) Boot Firmware, sogar wenn Sie ein [Libre OS](https://www.openbsd.org/) verwenden. Proprietäre Firmware [enthält](faq.html#intel) häufig [Hintertüren](faq.html#amd), diff --git a/site/index.fr.md b/site/index.fr.md index 4166d10..73a8ce8 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -32,7 +32,7 @@ et [configurable](docs/maintain) pour plein de cas d'utilisations. Vous avez des droits. Un droit à la vie privée, liberté de pensée, liberté d'espression et le droit de lire. Dans ce contexte là, Libreboot vous permet d'avoir ces droits. Votre liberté compte. -Le [Droit à la réparation](https://yewtu.be/watch?v=Npd_xDuNi9k) est important. +Le [Droit à la réparation](https://en.wikipedia.org/wiki/Right_to_repair) est important. Beaucoup de personnes utilisent un micrologiciel de démarrage propriétare (non libre), même si ils utilisent [un système d'exploitation libre](https://www.openbsd.org/). diff --git a/site/index.it.md b/site/index.it.md index eb36cb7..fee6a0f 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -35,7 +35,7 @@ E' estremamente flessibile e [configurabile](docs/maintain/) per la maggior part il software](https://writefreesoftware.org/), senza restrizione alcuna, in quanto e' uno dei fondamentali diritti umani che chiunque deve avere. In questo contesto, *il software libero* conta. La tua liberta' conta. La formazione personale conta. -[Il diritto di riparare](https://yewtu.be/watch?v=Npd_xDuNi9k) conta. +[Il diritto di riparare](https://en.wikipedia.org/wiki/Right_to_repair) conta. Molte persone usano firmware di boot proprietario (non-libero), anche se usano [un sistema operativo libero](https://www.openbsd.org/). Firmware proprietari spesso [contengono](faq.html#intel) [vulnerabilita'](faq.html#amd), diff --git a/site/index.md b/site/index.md index 055de19..a26cec9 100644 --- a/site/index.md +++ b/site/index.md @@ -32,7 +32,7 @@ software](https://writefreesoftware.org/), without any restriction, is one of the fundamental human rights that everyone must have. In this context, *software freedom* matters. Your freedom matters. Education matters. -[Right to repair](https://yewtu.be/watch?v=Npd_xDuNi9k) matters; Libreboot lets +[Right to repair](https://en.wikipedia.org/wiki/Right_to_repair) matters; Libreboot lets you continue to use your hardware, with continued firmware updates. All of this is *why* Libreboot exists. diff --git a/site/index.uk.md b/site/index.uk.md index 786bc8e..399d3f8 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -35,7 +35,7 @@ Libreboot надає вам [свободи](https://writefreesoftware.org/), я У вас є права. Право на конфіденційність, свобода мислення, свобода висловлювання та право читати. В цьому контексті, Libreboot надає вам ці права. Ваша свобода має значення. -[Право на ремонт](https://yewtu.be/watch?v=Npd_xDuNi9k) має значення. +[Право на ремонт](https://en.wikipedia.org/wiki/Right_to_repair) має значення. Багато людей використовують пропрієтарну (невільну) завантажувальну прошивку, навіть якщо вони використовують [вільну операційну систему](https://www.openbsd.org/). Пропрієтарна прошивка часто [містить](faq.uk.html#intel) [лазівки](faq.uk.html#amd), diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index b44199c..e3fa0f3 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -19,7 +19,7 @@ Libreboot 的创始人和主要开发者,Leah Rowe,也是 Minifree 的所有 Libreboot 赋予了你从其他大多数引导固件得不到的[自由](https://writefreesoftware.org/)。同时,它启动速度更快,[安全性也更好](docs/linux/grub_hardening.md)。它功能强大,可针对多种使用情况进行配置。 -*我们*相信,不受限制地[研究、分享、修改及使用软件](https://writefreesoftware.org/)的自由,是每个人都必须享有的基本人权的一部分。这时,*软件自由*至关重要。你的自由至关重要。教育至关重要。[修理权](https://yewtu.be/watch?v=Npd_xDuNi9k)至关重要。尽管许多人在用[自由的操作系统](https://www.openbsd.org/),但他们用的引导固件却是专有(非自由)的。专有固件常常[包含](faq.html#intel)了[后门](faq.html#amd),而且可能有很多缺陷。为了让不懂技术的用户也能使用 coreboot 固件,我们于 2013 年 12 月成立了 Libreboot 项目, +*我们*相信,不受限制地[研究、分享、修改及使用软件](https://writefreesoftware.org/)的自由,是每个人都必须享有的基本人权的一部分。这时,*软件自由*至关重要。你的自由至关重要。教育至关重要。[修理权](https://en.wikipedia.org/wiki/Right_to_repair)至关重要。尽管许多人在用[自由的操作系统](https://www.openbsd.org/),但他们用的引导固件却是专有(非自由)的。专有固件常常[包含](faq.html#intel)了[后门](faq.html#amd),而且可能有很多缺陷。为了让不懂技术的用户也能使用 coreboot 固件,我们于 2013 年 12 月成立了 Libreboot 项目, Libreboot 项目使用 [coreboot](https://www.coreboot.org/) 来[初始化硬件](https://doc.coreboot.org/getting_started/architecture.html)。对大部分不懂技术的用户来说,coreboot 是出了名地难安装;它只处理了基础的初始化,然后跳转进入单独的 [payload](https://doc.coreboot.org/payloads.html) 程序(例如 [GRUB](https://www.gnu.org/software/grub/)、[Tianocore](https://www.tianocore.org/)),而后者也需要进行配置。*Libreboot 解决了上述问题*;作为 *coreboot 发行版*,配有[自动构建系统](docs/build/),能构建完整的 *ROM 映像*,从而让安装更加稳定。另有文档可参考。 From 649118fc65522729306a5077cd4a5acadd950fbd Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 18 Aug 2024 01:02:29 +0100 Subject: [PATCH 026/399] fix link Signed-off-by: Leah Rowe --- site/index.ru.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/index.ru.md b/site/index.ru.md index ab6834b..2cd5db0 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -11,7 +11,7 @@ x-toc-enalbe: true **НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 20240612, опубликован 12 июня 2024 года. Смотрите: [Libreboot 20240612 release announcment](news/libreboot20240612.md).** -*Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://yewtu.be/watch?v=Npd_xDuNi9k) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. +*Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://en.wikipedia.org/wiki/Right_to_repair) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. Обзор устройства Libreboot ============================ @@ -76,4 +76,4 @@ Libreboot это не форк coreboot [Как отправлять переводы для libreboot.org](news/translations.md) -Даже если кто-то уже работает над переводом на определенным языке, мы всегда можем использовать несколько людей. Чем больше, тем веселее! \ No newline at end of file +Даже если кто-то уже работает над переводом на определенным языке, мы всегда можем использовать несколько людей. Чем больше, тем веселее! From 18940ed35d8610ccea7d90ef40df75a00a35ac21 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 18 Aug 2024 01:03:32 +0100 Subject: [PATCH 027/399] fix toc on ru homepage Signed-off-by: Leah Rowe --- site/index.ru.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/index.ru.md b/site/index.ru.md index 2cd5db0..b7e0604 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -1,6 +1,6 @@ --- title: Проект Libreboot -x-toc-enalbe: true +x-toc-enable: true ... Проект *Libreboot* предоставляет [свободную, с открытым исходным кодом](https://writefreesoftware.org/) загрузочную прошивку, основанную на coreboot, заменяющую проприетарные BIOS/UEFI на [некоторых Intel/AMD x86 и ARM материнских платах](docs/hardware/), включая ноутбуки и десктопы. Она инициализирует аппаратное обеспечение компьютера (например, контроллер памяти, процессор, переферию) и запускает загрузчик для вашей операционный системы. [Linux](docs/linux/) и [BSD](docs/bsd/) хорошо поддерживаются. Можно попросить помощь через [\#libreboot](https://web.libera.chat/#libreboot) на [Libera](https://libera.chat/) IRC. [Страница с заданиями](tasks/) показывают, над чем мы работаем (мы приветствуем ваши предложения, если вы хотите поработать над некоторыми задачами самостоятельно). From 47c02c29b71c7a08c06344b310841e8b53255c32 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 18 Aug 2024 01:09:45 +0100 Subject: [PATCH 028/399] ivy_has_common: add clarification Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.uk.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/site/docs/install/ivy_has_common.uk.md b/site/docs/install/ivy_has_common.uk.md index d001dee..cb636c7 100644 --- a/site/docs/install/ivy_has_common.uk.md +++ b/site/docs/install/ivy_has_common.uk.md @@ -3,6 +3,9 @@ title: Insert vendore files on Sandybridge/Ivybridge/Haswell x-toc-enable: true ... +Regarding vendorfile insertion: if unsure, just follow these instructions. +If a given target does not require vendor files, none will be inserted. + **TODO: Re-translate this again to Ukrainian. It was translated before, but the english page got heavily re-written.** From f1151c0f3e620907bebf708efe1251c1aba894f9 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 18 Aug 2024 01:20:56 +0100 Subject: [PATCH 029/399] install/w541_external: new guide based off of t440p_external it tells how to flash libreboot on the w541 Signed-off-by: Leah Rowe --- site/docs/install/index.md | 12 +-- site/docs/install/w541_external.md | 137 +++++++++++++++++++++++++++++ 2 files changed, 144 insertions(+), 5 deletions(-) create mode 100644 site/docs/install/w541_external.md diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 943db1d..038ba2f 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -304,7 +304,7 @@ If you are re-flashing a GM45+ICH9M laptop (e.g. ThinkPad X200/X200S/X200T, T400, T500, R400, W500 etc - but not R500), you should run the ich9gen utility to preserve your mac address. Please read the ich9utils documentation: -[/docs/install/ich9utils.html](/docs/install/ich9utils.html) +[ich9utils.md](ich9utils.md) NOTE: `force_I_want_a_brick` is not scary. Do not be scared! This merely disables the safety checks in flashprog. Flashrom and coreboot change a lot, over the years, @@ -390,7 +390,7 @@ reference this paragraph on this web page. Ignore this section. Internal flashing *is* possible, but there are two chips and you must flash both chips. Refer to the guide:\ -[Gigabyte GA-G41M-ES2L installation guide](ga-g41m-es2l.html) +[Gigabyte GA-G41M-ES2L installation guide](ga-g41m-es2l.md) #### Macbook1,1 running original Apple EFI firmware @@ -865,7 +865,7 @@ Refer to the [ivybridge/haswell common guide.](ivy_has_common.md) for how to make the rom image usable for external flashing (with a clip). **If using release ROMs, you must insert the neutered ME. Look at the info on that page.** -Read [board documentation](/docs/install/x230_external.html) for disassembly. +Read [board documentation](x230_external.md) for disassembly. TARGET: Thinkpad X230t --------------------- @@ -876,7 +876,7 @@ LIBREBOOT](../../news/safety.md).** Refer to the [ivybridge/haswell common guide.](ivy_has_common.md) for how to make the rom image usable for external flashing. -Read [board documentation](/docs/install/x230_external.html) for disassembly. +Read [board documentation](x230_external.md) for disassembly. (same instructions as X230, for this purpose of external flashing, but full disassembly will differ slightly) @@ -892,7 +892,9 @@ LIBREBOOT](../../news/safety.md).** Refer to the [ivybridge/haswell common guide.](ivy_has_common.md) for how to make the rom image usable for external flashing. -Read [board documentation](/docs/install/t440p_external.html) for disassembly. +T440p: Read [board documentation](t440p_external.md) for disassembly. + +W541: Read [board documentation](w541_external.md) **If using release ROMs, neutered ME must be inserted. Refer to the above guide.** diff --git a/site/docs/install/w541_external.md b/site/docs/install/w541_external.md new file mode 100644 index 0000000..5791ac1 --- /dev/null +++ b/site/docs/install/w541_external.md @@ -0,0 +1,137 @@ +--- +title: ThinkPad W541/W540 external flashing +x-toc-enable: true +... + +NOTE: The same image for W541 also works on W541, as it's the exact same +mainboard. + +Buy Libreboot preinstalled +========================== + +This laptop is available to buy with Libreboot pre-installed: + + +Introduction +============ + +NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +now, as of 27 January 2024, which is a fork of flashrom. + +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), +OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** + +Read the [Ivybridge/Haswell common guide](/docs/install/ivy_has_common.html) if you want more information. +All of the following instructions assume that you've cloned lbmk and are operating from the +root of that project. To do so, run + + git clone https://codeberg.org/libreboot/lbmk + cd lbmk + +You can now follow the rest of the instructions. + +Preparing a release Rom +----------------------- + +You must patch the release rom with the necessary vendor files *and then* flash it to your board. + +Lbmk includes a script that will automatically inject the necessary files into a rom file. +The script can determine the board automatically if you have not changed the name, but you can also manually set the board name with the `-b` flag. + +In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image. + +If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. +Run the injection script pointing to the release archive you downloaded: + + ./vendor inject /path/to/libreboot-RELEASE_targetname.tar.xz + +The script can automatically detect the board as long as you do not change the file name. +You can then find flash-ready ROMs in `/bin/release/` + +Alternatively, you may patch only a single rom file. +For example: + + ./vendor inject -r w541_libreboot.rom -b w541_12mb + +Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. +For example: + + ./vendor inject -r w541_libreboot.rom -b w541_12mb -m 00:f6:f0:40:71:fd + +NOTE: this makes use of `nvmutil`, which you can read more about in +the [nvmutil documentation](nvmutil.md). + +Splitting The Rom +----------------- + +You can use `dd` to easily split your rom into the two separate portions for +external flashing. + + dd if=libreboot.rom of=top.rom bs=1M skip=8 + dd if=libreboot.rom of=bottom.rom bs=1M count=8 + +Flash the top chip with top.rom, and tho bottom chip with bottom.rom. +Don't worry about knowing which chip is which on a standard setup; flashprog will let you know if the +image size is incorrect for the chip you're flashing. + + +Disassembly +----------- + +No disassembly pics yet. The W540/T540p hardware maintenance manual also +applies to W541: + + + +This shows disassembly. When you disassemble, and get to flashing, please note: + +MOSI/MISO lines are linked between the two flash ICs, at zero ohms. This is OK +for internal flashing and normal operation, because the PCH turns each chip on +or off as needed, by controlling each IC's own *chip select* pin, which is +pin 1. + +When you wire the clip, to flash one of the ICs, the same voltage rail also +turns on the other IC and the other IC's own chip-select is in a *floating* +state, which in practise means *high logic state*; in other words, the other +flash will be active. + +This means that external flashing would not ordinarily work, unless you use +the following trick: + +Use a *test hook* wired to VCC (+3.3v), to pull the other flash's chip-select +high. So: when flashing one of the two ICs, the other chip must have pin 1 +connected to VCC. You can do this with the same 3.3v power source that you use +on pin 8 of the chip that you're flashing. Ideally you should pull the other +chip select high via 47ohm resistor, which should be enough to prevent damage +in the case of accidentally shorting the wrong pin. + +If you do it right, the chips should flash reliably. This same trick must be +used when flashing either of the chips. + +You can now proceed to [flashing](/docs/install/spi.html) this machine. + +Errata +====== + +NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer +included for Haswell; MRC is a blob for raminit, but we now provide libre +raminit. The following targets no longer exist in the build system: + +* `t440pmrc_12mb` (use `t440plibremrc_12mb` instead) +* `t440pbmrc_12mb` (use `t440plibremrc_12mb` instead) +* `w541mrc_12mb` (use `w541_12mb` instead) +* `w541bmrc_12mb` (use `w541_12mb` instead) +* `dell9020sff_12mb` (use `dell9020sff_nri_12mb` instead) +* `dell9020sffbmrc` (use `dell9020sff_nri_12mb` instead) +* `dell9020mt_12mb` (use `dell9020mt_nri_12mb` instead) +* `dell9020mtbmrc` (use `dell9020mt_nri_12mb` instead) + +This is written as errata because some users may still be using older release +images but on the newer build system from May 2024 onward; you must use the +Libreboot 20240225 release if you want to inject MRC and so on, for these older +targets. + +Libreboot's [binary blob reduction policy](../../news/policy.md) is very strict, +and states: if a blob can be avoided, it must be avoided. Therefore, the MRC +is removed on Haswell and Libreboot will only use the libre raminit (called +NRI, short for Native Ram Initialisation). From b7c7fd53e48b2300048b298191ce41cb49a47718 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 18 Aug 2024 01:26:14 +0100 Subject: [PATCH 030/399] w541: clarify notes about chip select Signed-off-by: Leah Rowe --- site/docs/install/w541_external.md | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/site/docs/install/w541_external.md b/site/docs/install/w541_external.md index 5791ac1..e5f9ece 100644 --- a/site/docs/install/w541_external.md +++ b/site/docs/install/w541_external.md @@ -92,8 +92,8 @@ pin 1. When you wire the clip, to flash one of the ICs, the same voltage rail also turns on the other IC and the other IC's own chip-select is in a *floating* -state, which in practise means *high logic state*; in other words, the other -flash will be active. +state, which in practise means *random logic state*; in other words, the other +flash may or may not be active, randomly. This means that external flashing would not ordinarily work, unless you use the following trick: @@ -105,6 +105,13 @@ on pin 8 of the chip that you're flashing. Ideally you should pull the other chip select high via 47ohm resistor, which should be enough to prevent damage in the case of accidentally shorting the wrong pin. +Doing this means that you *disable* the chip fou're not flashing. It's very +important that you ensure only the one you want to flash is active, when using +an external flasher. + +**This is not required for internal flashing. It is only required for +external flashing.** + If you do it right, the chips should flash reliably. This same trick must be used when flashing either of the chips. From b5ca9e1686854c4c75fe90b0d18975319b726d9c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 23 Aug 2024 00:38:56 +0100 Subject: [PATCH 031/399] re-add news/10.md it kinda needs to be there. my intention to be at peace with *those people* is still on. you know the ones. but there's no way to host this page without revealing that hostility, which is currently *former* (or rather, dormant) hostility. rather than censor specific information, the entire page was deleted as part of the reconciliation with fsf, referenced in the article itself, but this too was a mistake. no, the correct thing to do is *continue to host this page*. the other hostile pages are not being re-added. i'll probably delete this page again at some point, and redirect it to a new history page, that will contain all of the same substance and *more*, because: this page was written in a day. it was written from start to finish *on the same day* of libreboot's 10 year anniversary. therefore, it's not as long as it could be. a more complete history is on my TODO. one that also goes into a lot more technical detail. libreboot has a rich and vibrant history, yet has so far not documented its own history well, and the relatively niche nature of libreboot is that a lot of people don't really get what it's about, so you won't find a lot of that info online - the history of the project is entirely in my head. there are other people who can provide their own accounts, but i'm the only person that's been here since the beginning. anyway, i digress. dubiously happy hacking Signed-off-by: Leah Rowe --- site/news/10.md | 1555 ++++++++++++++++++++++++++++++++++++++++++++ site/news/MANIFEST | 1 + 2 files changed, 1556 insertions(+) create mode 100644 site/news/10.md diff --git a/site/news/10.md b/site/news/10.md new file mode 100644 index 0000000..9dfbf55 --- /dev/null +++ b/site/news/10.md @@ -0,0 +1,1555 @@ +% Libreboot 10-year anniversary +% Leah Rowe +% 12 December 2023 + +**This page was restored during August 2024, having been deleted earlier on +in 2024 - it was deleted as part of Libreboot's attempt to reconcile +differences with FSF/GNU, and much of this page is hostile to it (and has to be, +because it's focusing on the history of the Libreboot project, which has +historically been at odds with the FSF both socially, technically and +politically. The restored version is essentially identical, but has been +edited without altering any of the substance, and further information going +up to the month of August 2024 has been added at the end, which was not +available earlier on because... Libreboot not not yet invented time travel.** + +Anyway, article time: + +I'm very proud of the work done in Libreboot, both by myself and by others +who I work with. Many people make Libreboot possible, be it direct contributors +to the project, or the countless individuals and companies that work on all +the upstream projects used in Libreboot, projects like coreboot. I'm *very* +pleased now to announce the 10-year anniversary of the project. + +I've decided to celebrate this event, by reflecting on the history of the +project during all these years. This article will go into depth about Libreboot +history. This article complements the pre-existing [contrib](../contrib.md) +page, which attempts to list the numerous contributions made by people to +Libreboot, over the years. + +Introduction +============ + +The *Libreboot* project provides +[free, open source](https://writefreesoftware.org/) (*libre*) boot +firmware based on coreboot, replacing proprietary BIOS/UEFI firmware +on [specific Intel/AMD x86 and ARM based motherboards](../docs/hardware/), +including laptop and desktop computers. It initialises the hardware (e.g. memory +controller, CPU, peripherals) and starts a bootloader for your operating +system. [Linux](../docs/linux/) and [BSD](../docs/bsd/) are well-supported. The +goal of Libreboot is to provide well-tested binary releases of coreboot, along +with a fully automated build system, so as to make coreboot *easy to use* for +non-technical users, who believe in the principles of the [Free +Software](https://writefreesoftware.org/) movement - Libreboot is also more +secure and generally works more reliably than most vendor firmware. + +As of today, Libreboot is 10 years old. The very first release was +Libreboot 20131212, released on 12 December 2013, and today +is 12 December 2023, exactly 10 years after that first release. + +I actually wasn't sure what to do for this day, and I contemplated doing +nothing at all. In the end, I've decided to simply acknowledge it, and +reflect on the last 10 years of history. So, I spent all of today writing this +article, which is being published just before midnight, in the final hour +of 12 December 2023, relative to UK timezone which is (on this day) UTC+0000. + +You can otherwise read the Libreboot git repositories, the contrib page, and +you can find historical articles all over the internet pertaining to the +subject. This article, that you are reading now, is written solely from my +own perspective, through my eyes, describing project history the way I see it, +since I've been here all this time. + +Let's get started! + +How did Libreboot start? +======================== + +*Why* did it start? +------------------- + +I'm a free software activist. First and foremost, my focus is on using as much +Free Software *myself*, and I want to help other people achieve a level of +software freedom themselves. Many people reading this article today will know +that Libreboot no longer strictly aligns to FSF policy, but I still very much +believe in the ideology behind it. I merely apply it in different, more +[pragmatic](policy.md) ways - but this page is about the history of the project, +so I have to put myself in the headspace I was in, during each development year +relative to when Libreboot started. + +Early history +------------- + +The name *Libreboot* actually existed from about February 2014 onward. +The *libreboot.org* domain name was registered on 26 January 2014. I initially +started Libreboot as a commercial project, then unnamed, hosted on my company +website (nowadays called [Minifree Ltd](https://minifree.org/)). I sell +computers with Libreboot preinstalled, but I started providing coreboot-based +services in mid-2013. People started noticing what I was doing around August +or so, in 2013. Back then, Libreboot did not exist, not even anything that I +later referred to as Libreboot, I just provided coreboot pre-compiled +and pre-flashed. + +One of the people who noticed me, reported my company to the Free Software +Foundation who were, at that time, interested in providing a Libreboot-like +project. They approached *me*, asking if I'd like my company to be promoted, +if I complied with certain policies of theirs. Long story short, I was interested +and turned my work into a formalised project. I still remember who told the +FSF, but I won't say his name, for the sake of his privacy. It was Joshua Gay, +FSF's licensing and compliance manager, who initially contacted me, expressing +his own excitement about the prospect. Joshua is the one who initially reviewed +Libreboot for compliance, and worked with me on getting Minifree products to be +RYF-endorsed; RYF is the FSF's certification program, for companies selling +free software oriented hardware. Joshua also taught me a *lot* about licensing, +especially the pitfalls of the GPL when it comes to compliance. He taught me +what to watch out for. Many of Libreboot's practises today are still inspired +by his initial guidance, for which I remain grateful; he was an excellent +teacher. + +When I first started this work, coreboot had already existed for 14 years, +having been founded in the year 1999 as LinuxBIOS, renaming to coreboot in +the mid-2000s. However, coreboot wasn't (and still isn't) made for end users. +Coreboot's infrastructure is intended for use by other developers, who work on +boot firmware. Nothing user-friendly (for regular non-technical users) existed. + +When Libreboot started, the first goal was to solve *this* problem. Libreboot's +mission today is exactly the same as it was then: to provide free boot firmware +that normal people can easily use. Something that normal users don't have to +think about, that *Just Works*, with regular updates. Clean, simple +and professional, with clear documentation. Coreboot documentation today is +much better, but it was very poor quality in 2013 (MediaWiki site with lots +of errant pages, poorly organised). + +It came with a twist: Libreboot initially complied with the FSF's own RYF +criteria, and the GNU FSDG (Free System Distribution Guidelines). Under this +policy, no binary blobs are allowed. I believed in it then, because in practise +it seemed like a good idea and didn't do any harm. It would later become a +liability, for reasons laid out in Libreboot's modern [Binary Blob Reduction +Policy](policy.md) - a policy that was enacted during November 2022, in the +Libreboot project. This meant that Libreboot could only support a small subset +of hardware from coreboot because, although it is nominally a free software +project, coreboot does require binary blobs on some boards. More on this later! + +Since the project was nameless until February 2014, early promotion of my work +was talking only about my company and about the FSF endorsement of it; Minifree +used to be called Gluglug, hosted at `gluglug.org.uk` (you can check it +in the Wayback Machine. The shop itself was on `shop.gluglug.org.uk`). For +example, [this video](https://www.youtube.com/watch?v=08HKcH2GguE&t=1565s) +talked about the ThinkPad X60 running Libreboot 20131212, but I only +retroactively named that to Libreboot in February 2014, so that video is +talking about my company, which is where you could download my source tarballs +at the time. + +2013-2014: early days +===================== + +When Libreboot first started, it *only* provided very basic releases: pre +compiled ROM images, with source code, but there was no automated build system. +The [build system](../docs/maintain/) evolved over time. + +The first releases of Libreboot supported only the ThinkPad X60. Later, T60 +support and MacBook 2,1 support were added. This first year of the project +was spent on building solid infrastructure, specifically documentation and an +automated build system. The design of Libreboot revolves around scripts that +automatically download, patch, configure and then compile various codebases, +so you can think of it like a *coreboot distribution*; Libreboot's build +system is essentially a source-based package manager, for coreboot components. + +The very first Libreboot releases only provided a *GNU GRUB* payload. The +GRUB bootloader had been adapted for coreboot many years before then, but there +weren't any ready-made coreboot images available that used it, and it wasn't +very well-developed for end users. GRUB is a lot more complex than many people +realise, containing a small kernel, shell, utilities, even its own subset of a +standard libc. It even has its own malloc functions, and it's quite decent. Then +there are *modules*, basically small programs that run inside GRUB. The GRUB +shell even has things like `cat` and `ls`, adapted for it. GRUB configuration +files behave similarly to BASH scripts, with similar syntax and overall logic +flow/style. It is an extremely configurable bootloader. + +GRUB revolves around the shell, which is basically an extension of the Bash +shell, adapted for use in a Multiboot context. GRUB is the reference Multiboot +implementation, which boots Linux. Libreboot provides GRUB so that it can +directly boot Linux kernels. GRUB has many advanced features, such as GPG and +LUKS support, and it has support for virtually all of the major file systems in +use today. + +Libreboot logo +-------------- + +Of note, though it doesn't fit anywhere else in the article, so I'll just say +it now: + +I went on the GNU mailing lists during 2014, asking people to make a logo for +the project. Several people then emailed me their submissions. I finally picked +the logo design that Libreboot now uses, and has used since then. That design +was created by a person named Marcus Moeller, for use in the Libreboot project. + +Why GRUB? +--------- + +Libreboot has always, at least on x86, preferred *GRUB* as a coreboot payload. + +Libreboot's initial no-binary-blob policy meant that SeaBIOS could not be used. +SeaBIOS then was the most popular payload, and the default one in coreboot, at +least on x86. Although SeaBIOS is free software, it did not have a free video +BIOS back then. Coreboot's native video initialisation was developed at around +that time, for Intel video chipsets, providing a basic framebuffer, but no +video BIOS services, so operating systems like Windows could not boot (and they +still cannot, on most Libreboot setups). + +Nowadays, SeaBIOS comes with a feature called SeaVGABIOS, which piggybacks off +of the coreboot framebuffer, providing a basic video BIOS and initialisation +on top of the coreboot framebuffer, but this capability did not exist +in 2013 when Libreboot started. So, SeaBIOS could not be used in Libreboot +then. Libreboot provided just the coreboot framebuffer, then loaded GRUB, which +then loaded Linux; Linux itself could interact with the coreboot framebuffer, +and the Intel video driver (`i915`) sets modes directly, so it doesn't need +BIOS INT10H or UEFI GOP services for video-related functions. In Linux, your +video drivers just write to a framebuffer directly in memory. No abstractions. +This feature, called KMS (Kernel Mode Setting) was later ported to the BSDs, +first made stable in 2016; that means, that when Libreboot first started, it +could only boot Linux. + +Linux as a payload wasn't very well developed in practise, even though Linux +in flash was the original aim of the coreboot project, and the systems that +Libreboot supported in 2013 only had 2MB of flash, which could not fit Linux; +the Heads project did not exist either! However, GRUB could (and still can) fit +in such a tiny space. In fact, even to this day, a compressed GRUB payload +can be optimised to fit within 512KB, though the Libreboot version adds a few +additional modules so the compressed size in flash is about 600KB (at least for +configurations that were provided on 12 December 2023). + +Tianocore did exist then, but Tianocore is bloat. It has always been policy not +to provide Tianocore, because of this. Code==bugs, and Tianocore is +extremely over-engineered; the UEFI specification is completely redundant, +because BSD and Linux kernels run on bare metal anyway (without making use of +any BIOS or UEFI services). Linux/BSD video drivers set modes directly, without +needing to use BIOS/UEFI-based services e.g. BIOS INT10H or UEFI GOP. + +Other payloads weren't really suitable either, so: Libreboot provided GRUB +right from the start. GRUB provides a special build target for coreboot, where +GRUB provides all of its own drivers and runs on the bare metal, without relying +on abstractions such as BIOS or UEFI. + +*GRUB* wasn't very useable either. Back then, it was basically assumed that if +you used the GRUB payload, you just had to reconfigure it in flash, every time +you wanted to boot another Linux distro, or otherwise manually boot from the +GRUB shell. This was in fact how GRUB was used. However, GRUB otherwise worked +perfectly, and had (still has) support for the coreboot framebuffer, and text +mode. It is the preferred payload, for our purposes. It was there and just +worked. Libreboot then spent a lot of time tweaking GRUB, configuring it so +that it is as user-friendly as possible, roughly matching the user experience +that is found on most BIOS/UEFI systems, at least for booting Linux and BSD. + +Libreboot's innovation was that it made GRUB *user-friendly* as a payload. +Over time, GRUB was configured in clever ways. These days, Libreboot's GRUB +is well-configured and can auto-boot almost any Linux distribution. The way +it works is by systematically scanning for GRUB configurations on many different +partition layouts, including encrypted (LUKS), to then load a GRUB config +provided by the installed distro. GRUB also has a parser in it, that lets you +show ISOLINUX/SYSLINUX menus, converted on the fly for use with GRUB. +Nowadays, many UEFI-based distros also provide GRUB on installation media, +which means that many Linux distro installers come with GRUB, making +installers even easier to boot from Libreboot. + +Libreboot's GRUB configuration is unique. Even with coreboot's earlier work, +nothing quite like Libreboot's GRUB config exists that pre-dated it. The way +Libreboot configures GRUB is extremely unique. Several other projects now exist +inspired by it, such as [Canoeboot](https://canoeboot.org/). GRUB also has +several flaws, but it mostly *Just Works*. Libreboot made it work *well*, for +the casual coreboot user. + +With the Libreboot version of GRUB, you can normally use it intuitively, where +most users who are used to UEFI/BIOS systems can just use the GRUB payload, +without knowing much about it. In fact, many users are (to this day) still +surprised that they have GRUB in the flash. They install their favourite Linux +distro, unmodified, and it just boots, needing no manual intervention or +customisation whatsoever, so long as the distro provided a GRUB configuration +during installation. Libreboot did that! + +The only real downside is that GRUB isn't very good at booting BSD systems, +though it does have BSD partition support and it has code tailed to specific +types of BSD kernels, but it usually cannot be relied upon; that said, GRUB +does have GELI support and can load a FreeBSD kernel. If configured properly, +it might work. However, Libreboot provides SeaBIOS these days and SeaBIOS is +what is recommended to boot BSD systems in Libreboot, where you would then +execute the bootloader provided by your BSD system. + +Another benefit of using GRUB (as a payload) is that, when installing Linux, +you no longer need to install anything bootloader-related on your HDD/SSD. +Although excluding this usually requires re-configuring `grub.cfg` in flash, +Libreboot does provide this capability. + +Automatic build system +---------------------- + +One of Libreboot's other main innovations, in addition to providing binary +releases, was to provide an automated *build system* interface. With it, the +user could run a few simple commands, to build entire sets of ROM images. + +By contrast, configuring coreboot on your own has always been quite complicated. +The average user would look at coreboot and become overwhelmed. It's easy to +just run `make menuconfig` in coreboot, pick a board, come out of that and +type `make`, but this only gets you a very basic setup (with SeaBIOS), and this +assumes that no other components are needed e.g. extra firmware that coreboot +does not provide. Especially for more modern systems, there are *many* moving +parts that the user otherwise has to deal with, whereas Libreboot automates all +of it. Such automation *did not exist* anywhere, prior to Libreboot. The only +noteworthy exception would have been the Chromebook products, where Google +did(does) provide updates, but without so much community focus as Libreboot and +without quite the same user-accessible build system automation; their +infrastructure is designed so that vendors can sell more Chromebooks. + +Libreboot takes everything needed for each board, auto-downloading, +auto-patching, auto-configuring and auto-building the various software +components. Nowadays, this automation is very sophisticated, and can be done +with only a single command per board. + +During 2014, this automation was already established, though it wasn't as +well-developed then, and a lot of manual user intervention was still required; +in other words, it wasn't full automation. It was more like 5 commands instead +of 1; but coreboot was (still is) like 15+ commands, depending. + +A lot of Libreboot users today can't easily appreciate how much easier Libreboot +makes everything for them, because of how entrenched it is, at least on what it +supports. There are *many* coreboot users today, who have only ever set it up +by way of Libreboot installation. Many such users are people who would never use +coreboot on their own. Libreboot's build system *just works*, to the extent +that people today even take it for granted. It works so well that you forget +it exists, which is the essence of all good user interface design. + +Before 2014, nothing like Libreboot ever existed. Coreboot existed, but nothing +that is easy to use based on it. Nothing quite as developed as Libreboot, for +end users. Libreboot's main innovation was (and is) precisely this, that it +automates the process of building ROM images, and then provides releases. + +*Everything* in Libreboot is automated, and that is the entire purpose of it, to +provide such automation. It's the same concept as a *Linux distribution*, but +in the context of boot firmware. A project like *Debian* automatically builds +many codebases from all over the internet, putting it all together to provide +an operating system that users can simply install. Libreboot applies that same +concept to *coreboot*, so it is a *coreboot distribution*. + +Libreboot was the *first* coreboot distro ever, and today is still the most +popular one. Several similar projects now exist, inspired by the example that +Libreboot had set, all those years ago! + +You can learn more about the build system by reading [lbmk +documentation](../docs/maintain/). + +late 2014-2016: expansion +======================== + +Libreboot up until late 2014 was mainly a proof of concept. It *worked*, but +not well. The precursor of what became Libreboot's automated build system, +began development from early 2014 onward. + +Almost all of 2014 was spent entirely on the build system, and on documentation, +without much additional focus on hardware support; I always knew then that it +would later expand, so I focused solely on the infrastructure. + +GM45 hardware (e.g. ThinkPad X200) +--------------------------------- + +I was approached by another developer, named Steve Shenton, around October +of 2014. I'd expressed interest in the ThinkPad X200, as an upgrade to the X60 +offering in Libreboot. Coreboot supported the X200 at that time, done by +coreboot developer Vladimir Serbinenko based on Nico Huber's work on the Roda +RK9. + +The Intel Management Engine was the only issue. At that time, nothing +like `me_cleaner` (which strips out code from the ME, usually leaving only +the bringup code intact) existed. On the GM45 machines, +[Intel ME](https://en.wikipedia.org/wiki/Intel_Management_Engine) +is usually disabled on most vendors, but Lenovo provided it because their +machines came with Intel Gigabit Ethernet, which requires an Intel Flash +Descriptor and Gigabit Ethernet config in the flash; Intel's standard setup +here is to then provide the Intel ME, in two separate versions: a 1.5MB version +without [AMT](https://en.wikipedia.org/wiki/Intel_Active_Management_Technology), +and a 5MB version with AMT. + +The X200 was always possible to use without Intel ME, because the ME only +handled AMT and [TPM](https://en.wikipedia.org/wiki/Trusted_Platform_Module) on +that platform, which are not required for boot, but +the only known way at that time was to flash a *descriptorless* setup, which +meant that you would lose use of the Intel Gigabit Ethernet. This didn't seem +all that useful for Libreboot users, who expect everything to just work. + +Steve reverse engineered the Intel Flash Descriptor, finding disable bits in it +that put the Intel ME into a permanent reset loop. In this configuration, the +ME bootrom does not load any firmware from the flash. The full ME firmware +otherwise goes in the main boot flash, alongside the BIOS software (e.g. +coreboot). In Libreboot, the Intel ME firmware is excluded on GM45 hardware. + +I worked with Steve between October 2014 to mid-January 2015. Steve provided +instructions for disabling the Intel ME in the ICH9M flash descriptor, and +wrote a proof of concept utility that would take a *factory* ROM image dump, +for instance X200 LenovoBIOS dump, and create a file containing just +the descriptor and Gigabit Ethernet config, but without the Intel ME. That +utility was called *ich9deblob*. + +Under Steve's guidance, I wrote a utility that would *generate* an ICH9M +descriptor from scratch. I then studied the datasheets for Intel's gigabit NIC, +writing a tool to generate the Ethernet config from scratch. I had a new program +written by around mid-January 2015, and I called it *ich9gen*. You can +read about ich9gen and ich9deblob on +the [ich9utils](../docs/install/ich9utils.md) page. The ich9gen utility was +used to provide blobless configurations on the ThinkPad X200 machines. + +Based on this, and extensive amounts of documentation was written during the +same period, I then provided the Libreboot 20150124 release on 24 January 2015. +It added ThinkPad X200, X200S and X200 Tablet support. + +2015: T400, T500, W500... R400 +------------------------ + +Coreboot lacked supported for other GM45 thinkpads at this time, when X200 +support was first added to Libreboot. Testing was later done on these other +machines. In particular, Timothy Pearson (of Raptor Engineering) added support +for switchable graphics, enabling video initialisation on versions of these +boards that have both Intel and AMD graphics. Without such support, no video +init was available unless you used a board that only had the Intel GPU. A +hardware mux is present on the ones with AMD graphics, enabling you to still +use just the Intel one, or switch to the AMD one. + +So, during 2015, Libreboot added support for many newer laptops. ASUS KCMA-D8 +and KGPE-D16 support was also first added to Libreboot during this year, +worked on by Timothy Pearson and integrated into Libreboot. + +2015-2016: Major build system improvements +------------------------------------------ + +The build system was heavily improved during this period, improving the +automation and greatly expanding the supported features. + +During this time, Paul Kocialkowski got involved with the project and used +his expertise to integrate Depthcharge as a payload. This is the bootloader +used on Google Chromebooks; he has previously worked on Replicant and several +other projects. The ASUS Chromebook C201 was added during this time +as a proof of concept, which is a Rockchip RK3288-based machine (ARM). SeaBIOS +wasn't available, nor was GRUB(at that time, for ARM). Libreboot today uses +U-Boot (adapted for use as a coreboot payload) on ARM machines, but that work +hadn't been done in 2016. + +In general, Libreboot's first years (2014-2016) were spent writing extensive +amounts of end user documentation, and implementing the automated build system, +so as to support many machines. Libreboot's design is kept as efficient as +possible, so that it can run on very inexpensive infrastructure, with many more +releases; the main focus has always been to further extend the number of +machines that are supported, and to reduce the amount of maintenance required, +so I try to keep everything very simple. + +Several other desktop boards were also added during this period, such as +the Gigabyte GA-G41M-ES2L board that was ported to coreboot by Damien Zammit. +He was compensated for his work; I paid him 4000 AUD for the trouble. Arthur +Heymans contributed several ports aswell, and today still does extensive work +on coreboot - both Damien and Arthur left the Libreboot project, after its +departure from GNU (more on this next). + +This period was a watershed moment in general, for the Libreboot project. Many +people contributed to the project, during this period. You can check +the [contrib](../contrib.md) page for a list of people, and check git logs. + +2016: GNU Libreboot +=================== + +Yes. *That* is also covered here. Naturally, Libreboot was becoming very +popular and I looked for ways to extend that. Back in 2015 and most of 2016, +I saw GNU membership as a natural step for the project to take. Libreboot had +a mailing list at that time, hosted on the GNU Savannah infrastructure, so it +seemed only logical to give it a go. + +Evaluation and accession +--------------------------- + +Libreboot was briefly a GNU project, between 14 April 2016 to 15 September 2016. +I had proposed this during the summer of 2015, and worked with the GNU Eval +team lead by Mike Gerwitz. + +Libreboot's build system and documentation used a very peculiar design, which +did not fit well into GNU's design policies. GNU had several technical +requirements for projects, such as use of Texinfo files for documentation, to +be generated into HTML by a static site generator. At that time, Libreboot's +website was written in static HTML, manually. It did not use a static site +generator of any kind. + +On the coding side of things, many GNU programs use things like GNU Autoconf +for configuration, in build systems, and GNU has a certain *coding style* that +is preferred. To speed up entry into GNU, many of the requirements were +overlooked since, ideologically speaking, Libreboot aligned with the GNU +Free System Distribution Guidelines (FSDG) at that time, so Libreboot officially +joined GNU on 14 April 2016, under the assumption that it would gradually +start integrating with the GNU infrastructure. + +*Three* Libreboot releases were released, during its GNU membership, namely: +Libreboot 20160818, 20160902 and 20160907. + +Initial outcomes +------------- + +Libreboot's popularity reached great heights during this time, greatly expanding +and attracting many new developers. Joining GNU accelerated this further, +though it came with certain drawbacks. + +At that time, I believed in the GNU FSDG policy, and I saw GNU membership as +beneficial to the Libreboot project, not because I was interested in GNU for +any technical merit; Libreboot is boot firmware, whereas GNU has always been +about providing an operating system with the libc and many useful applications. +Libreboot did not really fit into the GNU infrastructure, but it aligned with +the ideology both in theory and in practise, and the prestige of it at that time +would attract more help. + +I later realised otherwise, regarding the ideology; more on this later, in +the sections about osboot, and the osboot/libreboot merge, and events after +that. + +Regret +------ + +Anyway: during Libreboot's membership, I started to realise that many of the +technical requirements imposed on Libreboot were unworkable, especially the +GNU coding standards, and in general how a GNU project is supposed to be run, +which turned out to be quite inflexible for the Libreboot project. GNU projects +tend to be highly collaborative, with decisions taken on a collective level, +and not just on behalf of the given project, but with thought also given to +how it integrates with the rest of GNU; the assumption is that there would be a +complete GNU system, everything all integrated very tightly together. Libreboot +wasn't (and isn't) like that, because the knowledge is highly specialised and +it pertains to a lower level than GNU (that of the boot firmware). + +RMS, a man who had no technical merit to lead the Libreboot project, began +trying to *tell me what to do*. I started noticing that the GNU project was not +run very democratically, or transparently either; as a maintainer, I had access +to the `gnu-prog-discuss` mailing list, which is otherwise unavailable to the +public, and I saw the true nature of it. Individual projects, even maintainers, +had little to no oversight or say in how RMS or the GNU Advisory Committee made +decisions, but they could impose policy on projects. In practise, *many* +projects ignore the leadership of RMS and the committee, and they don't use GNU's +stagnant infrastructure such as Savannah. Most modern GNU projects have their +own management, their own infrastructure and their own practises, where their +only connection to GNU is the prestige of the GNU brand name itself. However, +that mailing list existed, and RMS (plus others) used it to leverage other +GNU projects. Prior to joining, I saw it as a great and noble organisation, but +my experience as a maintainer within it showed me that it was actually just the +personal fiefdom of a very small group of people, lead by RMS. + +I could begin to see a future very clearly where I was no longer +in control of the Libreboot project. I'll provide an example: one of the last +threads I saw, before being kicked off of the list due to Libreboot's +departure, was a thread started by RMS where he told all the GNU projects +that they should start implementing reproducible builds, in all of their build +systems; this is a noble goal in and of itself, but it was started based on the +whim of one man, who would not implement the policy himself. RMS has no coding +experience anymore, because he mostly stopped doing any real programming ever +since the 90s, yet he had the audacity to try to claim authority over my +project? [He does not even know how to install +Linux!](https://www.youtube.com/watch?v=umQL37AC_YM) - Libreboot's membership +was a gift to GNU, and I don't try to rub things in people's faces, but he +owned me a debt of gratitude. Instead, he showed me contempt. However, I cannot +reveal the emails due to privacy concerns (I would never publish without +consent). + +Libreboot is a lifelong passion of mine. It's one of the best things I've ever +done, and I have no intention of ever letting it go, something I realise could +happen with GNU membership. There is *another* freedom that exists, namely the +freedom to say no. I reclaimed this freedom, by removing Libreboot from GNU. + +I realised that if Libreboot stayed in GNU for too long, then I would start to +lose control over the project as it became more associated. I had been deciding +already, early into Libreboot's membership, whether to reverse the decision +and take Libreboot out of GNU, thereby making it an independent project again. +You could try to assert control by doing good work, but eventually everything +grows, and who will the other people who join answer to; you? No, I saw +definite coup possibility in the future. RMS could have put someone else in +charge, and I'd seem ungrateful if I resisted or challenged it, people would +side with him. + +I know I'm right, and I don't regret the fact that Libreboot left GNU; I do +regret how it left, and I'll have more to say on this in the next section. I had +the wisdom then to know what might happen in the future. I'd seen it before, +with other projects (for example GnuTLS, whose founder and author did all the +work and later took it out of GNU - something that RMS tried to prevent, and +only failed by chance). I *did* initially offer for Libreboot to re-join GNU, +mostly because I felt regret about the *manner* in which it left, but not the +fact alone that it did leave. Again, more on this will be written in the next +sections. My re-join proposal was neither accepted nor rejected; RMS simply +ignored it, and did not respond. I offered for it to re-join because I felt bad +about everyone else I'd affected during its later departure, but I'd hoped RMS +would say no. So I gambled on it; making such an offer reliably absolved me of +any guilt, mitigating my past actions entirely, but he didn't have to accept +it, and he didn't. If he had accepted it, Libreboot in 2023 would be unrecognisable +today, at least compared to the Libreboot project that does now exist, in 2023. + +So I thought at that point: was Libreboot's membership really worth it? I +concluded that it wasn't necessarily a bad idea, not a liability for the project, +at least in the short term. I basically continued running the project the same +way I always did, but under the GNU name, while being wary of my decision. I had +begun to contemplate whether I should remove Libreboot from the GNU orbit. + +In retrospect, I believe Libreboot's membership was always doomed from the +start. The way I operate, and the way I think, is incompatible with their style +of leadership, and with the expectations put upon GNU projects. Actually, I +only half-expected that they'd even accept Libreboot, at the time. I didn't +even know it had become a GNU project, on the day it became one, which was 14 +April 2016; I was quite preoccupied with many other things during that month, +and I only *noticed* RMS's acceptance email on the 18th of April in that year. +He just sent the email on a whim, and Libreboot had become part of GNU, just +like that - even in the days after the 14th, but before 18th, I had been +thinking about the changes that Mike Gerwitz wanted me to make first, which had +even been discussed during that time, only for RMS to sidestep all of it and +accept Libreboot early; yet another example of the power that he held. + +Needless to say, I was stunned. And now, I will write about Libreboot's +subsequent exit from the GNU project: + +Exit +---- + +Later, a member of the FSF staff got fired, who happened to be transgender, and +I had been friends with that person. I myself had only recently come out +as trans (I came out publicly as trans during May 2016), and I wasn't very +secure about myself at that time. Needless to stay, I wasn't very stable, and +I took the friend's firing personally. I publicly accused the FSF of firing +the person on discriminatory grounds, accusations which later turned out to be +false, for which I apologised, but this went on for about 6 months. + +That incident alone wasn't solely my reason for removing Libreboot from GNU, +and I probably would have done so anyway, but it served as a sufficient +catalyst that motivated me into action, though the way I handled it was +regrettable. Rather regrettably, I went on an angry tirade against the entire +apparatus of the FSF and the GNU project, denouncing them both, an act which I +know now made no sense whatsoever, because only one person was responsible for +the firing; and even if my diatribes were justified, they did not belong on +the Libreboot website. I should have put them on a personal blog, not the +homepage of a major free/opensource software project that I'd poured 3 years +of blood, sweat and tears into. What I did, nearly destroyed the Libreboot +project. + +Because of that incident, I announced on 16 September 2016 that Libreboot is +no longer part of GNU. GNU did not officially have a mechanism for projects +to *leave*, and that's still true to this day. It has an evaluation process +for projects to join, and then integrate with the GNU infrastructure. They *do* +have a tendency to list projects as *unmaintained* or *decommissioned* if no +longer developed within GNU, but they do not have language pertaining +to *active* projects that leave, that stay active. + +GNU's response +-------------- + +Libreboot's decision to leave was not without precedent. GnuTLS also left, as +did Nano (Nano later re-joined), though GnuTLS's departure was never officially +acknowledged; it's still non-GNU to this day, but the GNU project still lists it +as an official member project. GNU initially did not accept Libreboot's +departure. The GNU Advisory Committee, under Stallman's leadership, went +around trying to find people who could take my place as leader of the project. +In other words: they had the goal of keeping GNU Libreboot going, despite my +intentions as leader of the project. I regarded this as their intent to create a +hostile fork of Libreboot, under the same name, and I still hold them to account +for it today, even if other actions that I did take were regrettable in the way +that I did them. They had no moral or technical authority over the project. + +In the event, nobody else wanted to take my place under GNU auspices, and RMS +finally acknowledged Libreboot's departure, during January of 2017. At the time, +I wore this badge with pride. GnuTLS had left, but their leaving was never +officially acknowledged, and was in fact opposed by the GNU Advisory Committee; +it is even still listed today as a GNU project, when it has de facto not been +that way for many years. RMS published this acknowledgement, on the GNU +mailing lists, for everyone to see. + +I still, to this day, believe that Libreboot's membership was flawed. It did not +need to join in the first place, regardless of ideology. It was already +thriving as an independent project, but GNU membership made no sense due +to the very nature of the project: as an aggregate of other codebases, it could +be *anything* at any given time, which would make auditing very difficult. It'd +be like Debian joining GNU, to become GNU Debian. GNU Debian GNU/Linux. This +may seem hilarious, in fact, but consider that Libreboot provides a modified +version of GRUB, which itself is a GNU project. + +GNU Libreboot just didn't quite feel right, on any level, but this realisation +was only made after the fact. If there are infinite universes, ours is the only +one that had GNU Libreboot. + +An *alternative* might have been to just provide a deblobbed coreboot in GNU, +which is something I also considered at the time, but that would have required +maintaining a full coreboot repository, merging and overseeing a lot more +patches from upstream, and diverging heavily. The way Libreboot's deblobbing +worked was that it just deleted the blobs, and (by way of configuration) avoided +all boards except those that could be booted entirely blob-free in the flash. +This method required far less maintenance - the original blob-free policy of +Libreboot has been continued, as of 2023, in a new project I maintain +called [Canoeboot](https://canoeboot.org/) - I'll have more to say about this, +and Libreboot's newer [Binary Blob Reduction Policy](policy.md), later in the +article. + +2017-2021: Post-GNU years +========================= + +GNU cuts Libreboot loose +-------------------------- + +Libreboot's departure from GNU came about 1 week after a big stable release, +the Libreboot 20160907 release. I pretty much burned out after that release, +especially during the *Librexit* saga (which is what I called Libreboot's +departure from GNU, in my head, at the time). + +The Libreboot project pretty much ground to a halt, until around April or +May of 2017. I had a lot of other things going on in my life at the time, +especially transition-related (I was preparing financially for gender +reassignment surgery in Thailand, which was to be performed on me on 1 +August 2018 - I did in fact go there and get it done, on that day, but I will +not talk about it further in this article). + +In any case: tensions calmed, after January 2017 and the dust settled. I +remained angry, bitter in fact, but I did calm down after a while. I can look +back at these years now with pride; I did the right thing, even if I caused a +lot of trouble while doing it, trouble that I had to later correct, and atone +for. It's a bittersweet realisation, but it is what it is. + +Apology to GNU +-------------- + +Alyssa Rosenzweig, who later founded the Panfrost project and nowadays works +on free graphics drivers for Asahi Linux, briefly joined the Libreboot project +during mid-2017. She had a stern talk with me, telling me the folly of my ways. +I'd already been reconsidering my actions, but her talks with me made me finally +see sense. + +I learned by April 2017 that my allegations against the FSF were false. The +employee was fired on other grounds. Even if my allegations were true, my +public reaction to it was wholly inappropriate. I used my position then to +attack the entire FSF and GNU apparatus, when in reality the firing had only +been decided upon by one man, namely John Sullivan who was the FSF's +executive director. Even if my allegations were true, I did a lot of damage +to the reputation of the FSF and the GNU project, and to Libreboot, and although +it wasn't my intention at that time, it brought a lot of undue attention upon +the person in question, who only wanted privacy. + +I felt bad about all of it, so I publicly recanted my allegations on 2 +April 2017, and stepped down as leader of the project. You can read about +the event here: + + +Also of note: Alyssa contributed to Libreboot a custom-written static site +generator, converting its static HTML into Markdown files for documentation +on the website, then generating pages with Pandoc. This static site generator +is included in the original Libreboot git repository, and it later became the +basis for my own [Untitled Static Site Generator](https://untitled.vimuser.org/) +which libreboot.org now uses. Alyssa acted as a sort of spokesperson during +this period, acting in my place and I briefly gave her sysadmin privileges for +the Libreboot hosting infrastructure, during that year (2017), because she +was helping me improve my infrastructure - for example, she taught me how to +use Nginx, where I'd previously used lighttpd as Libreboot's web server. + +And that is the greatest irony of all. One of my main concerns about Libreboot's +GNU membership was that I would lose control of the project, but I soon stepped +down and handed it over to other people, after its departure; I'll have more to +say about this, in later sections. I was absent from leadership during 2017 +to 2021, though I retained exclusive control of the domain name and +infrastructure, while fully delegating all day to day development, maintenance +and user support to other people - I later took over the project again in 2021, +a topic which I will also cover, later in this article. + +2017-2021: the great rewrite +============================ + +Initial work, and why +--------------------- + +While Libreboot was a member of the GNU project, I did a thought experiment: +what if Libreboot's build system and general infrastructure *did* adhere to +GNU standards? + +I attempted to answer this, by actually doing it. I commissioned work, on the +Libreboot mailing list (which existed at the time, and was hosted by GNU), to +convert the website's static HTML files. Work was underway for converting the +entire documentation to Texinfo files, GNU's preferred format for documents. +This was later scrapped, when I decided to accept Alyssa's work instead; she +converted the website to use Markdown instead, with a custom static site +generator. + +Paper build system +------------------ + +I simultaneously commissioned a re-write of the build system. There wasn't +anything seriously wrong with the one I wrote, but I wanted to see if it could +be done better, so I went along with this. Paul Kocialkowski began the work. +Paul was at that time a Libreboot developer. He is listed on +the [contrib page](../contrib.md). + +Paul's build system, the so-called *Paper build system*, was provided by him as +a proof of concept. It initially only supported CrOS-based devices, for example +the ASUS Chromebook C201, integrating coreboot, Depthcharge and various +ChromeOS utils that were needed. + +The goal of the build system re-write was to make Libreboot much more flexible +and generally more configurable. Libreboot's build system *worked* very well at +that time, but a lot of functionalities were hardcoded; the entire design was +basically geared towards providing a useful sane default configuration per +board, in the quickest way possible, so as to provide releases for end users. +Reconfiguration *required* code modification. It was basically similar to +the *suckless* design philosophy. + +I was initially impressed by Paul's work. He got a proof of concept done in +only a few months, writing thousands and thousands of lines of code. Indeed, +his build system design was much more complex. Too complex, but its flaws +would not be realised until later. + +All development history on *Paper* can be found in the *old* pre-2021 Libreboot +git repository, here (roll back by a few commits to see the code, because the +code was nuked in the last commits, adding a notice that the repository had +been split into multiple smaller repositories): + + +I keep that repository there for archival, but it is no longer developed. I +took over the project again in 2021, and scrapped the rewrite. More on this +later in the article! + +Andrew Robbins and Sebastian Grzywna +------------------------------------ + +Sebastian had joined the project during early 2016, advising about hardware +and he made quite a few useful code contributions at first. For example, he +added support for 16MB IFD configurations in ich9gen. + +Some time around mid-2017, another person named Andrew Robbins joined the +Libreboot project. His ambition was to expand upon Paul's work in the Paper +build system, adding support for x86 machines. + +As we discovered very early on, the *Paper* design was very, very complex and +required a lot more heavy maintenance than the original Libreboot build system. +The Paper design was the antithesis of the original Libreboot design (now +named lbmk, but back then it was just called *the old libreboot build system*). + +The *Paper* design was implemented with the assumption: the user must be able +to reconfigure absolutely anything, without ever touching code. Sort of like +when you have a game engine, and then a scripting engine and editors, and the +like, in videogame development. Everything completely modularised, where one +component could work independently of the other. If I had to make an analogy, +it was sort of like the monolith vs microkernel argument, paper being the +same sort of mentality for the latter. + +I was AWOL for years +-------------------- + +I wasn't active in the project during these years, at all. I first was prepping +mentally and financially for gender reassignment surgery scheduled for late +August 2018; then I spent a year recovering from that. And lots of other things. +A lot of events, most/all of which won't be covered in detail here, were going +on in my life, such that I never had the time nor mental energy to get involved +in Libreboot. And then the COVID pandemic threw me off for a further year. I +was planning a takeover of Libreboot in early 2020, but ended up doing it +in 2021 instead. I had discussed the possibility publicly, several times +during 2020, but nobody took me seriously at the time. + +During my hiatus, I did still keep up to date with developments in the project. +I occasionally engaged in code review, helping out where I could, but I wasn't +in charge. One of the problems I had during this period, was that the other +people I put in charge were regularly hostile to my ideas, and seemingly did +not want my help at all. They wanted to maintain everything themselves, their +way. Which, fair enough, and for a while they did actually do a lot of work. +Good work, even. The problem was not their competence, or passion, both of which +they had in abundance, but the build system design that they were working on +was inherently unmaintainable; to put it most succinctly, it was crap. But they +wanted to do that, and I wasn't ready to fully take over again, so I left them +to it, hoping they'd prove me wrong. + +When I stepped down, the project had adapted a formalised "democratic" +governance policy, implementing a horizontal hierarchy form of collective +management. In practise, the former BDFL leadership under me was replaced +by basically the same thing, only it was two people; Andrew and Sebastian +called all the shots. They would regularly turn away code contributions, and +Sebastian in particular was often extremely rude to users on the IRC channel, +acting in a very elitist manner. + +Another general problem that Sebastian's leadership had was, that everything +was always *later*. You want X new feature added? Wait until after next release. +When's the next release? Soon. That account of events is quite reductive, but +it more or less sums everything up perfectly. The 2017-2021 leadership under +Andrew and Sebastian had no focus. It was overly ambitious, trying to focus on +and perfect everything, but the scope of the work required at least 5 developers +not 2, but those extra 3 developers weren't welcome in the project. They tried +to control everything themselves. It was their Libreboot. They were trying to +do what I do: lead a project. But they weren't competent at leading it. The +total lack of releases during that time is evidence of it. I provided them with +all the infrastructure they needed, funding too (from my own pocket), they had +an existing prestige (Libreboot was and still is very popular) to fall behind, +all they had to do was finish their work. They never finished it, because the +design of the Paper build system was unworkable. + +But that's how it all was, for many years. I regard Libreboot as having been +a *dead project*, during this period. All (*all*) of the work put into it at +that time, was a complete waste of energy and effort. + +Paper never worked +------------------ + +The rewrite largely failed. During 2017-2021, Libreboot no longer had any +releases. The Paper build system *never* reliably built any ROM images, due +to its design; it wasn't actually designed to build anything on its own. The +whole point of it was to provide a large framework for *other* people to make +their own configs, in any number of permutations, on whatever hardware they +liked, with many different payloads and machines supported. + +In other words, they were re-creating the coreboot build system. Poorly. The +sad thing is that, in retrospect, those two could have helped coreboot +directly, working on its own build system. Many of the features they worked on +would have been suitable to upstream, and *all* coreboot distros (not just +Libreboot) could have benefited, but I digress. + +It was an extremely complex design. The *old* build system was still provided, +by the script named `oldbuild` and the directory named `resources/` - if I +remove those in a branch, and then run `sloccount .` (using David Wheeler's +sloccount utility), I see: + +``` +SLOC Directory SLOC-by-Language (Sorted) +7874 tools sh=7874 +5343 projects sh=3278,ansic=2065 +2359 libs sh=2359 +472 www ansic=369,sh=103 +282 top_dir sh=282 +``` + +In total, 13896 of shell scripts and several thousand lines of C for various +utils (most of the C sloccount is ich9utils). + +If you actually look at the Paper system, almost all of it is covering +utilities that don't need to be included in the project, many of them +ChromeOS-related; modern Libreboot (using my design, the lbmk build system), +uses U-Boot, courtesy of work done by Alper Nebi Yasak (more on this later). +I compile U-Boot with the *same* generic script that I maintain, which is +less than 300 sloc in size, and compiles SeaBIOS, coreboot and U-Boot, without +any project-specific logic for the most part, and it doesn't just clean. It +also configures, updates configs, fetches, patches... it does it all. + +For comparison, here is *modern* lbmk (the current Libreboot build system +today on 12 December 2023): + +``` +SLOC Directory SLOC-by-Language (Sorted) +1410 script sh=1410 +1007 util ansic=601,python=406 +321 include sh=321 +127 top_dir sh=127 +0 config (none) +``` + +I will write more about *lbmk* later in the article, but what you need to +know for now is: lbmk supports more boards than Paper (a lot more), and actually +does a lot *more*, but the design is extremely efficient. The *Paper* design +results in an extreme amount of code repetition, where each module (e.g. +packaged util) is handled by scripts conforming to a uniform design, but each +script is tweaked per task. On the one hand, that offers Paper some flexibility +but a project like Libreboot is only ever managed by a few people, and the +Paper design was very overwhelming to new contributors. + +Actually, I won't write much about lbmk at all. You can just read the +[lbmk documentation](../docs/maintain/). Paper also has in excess of 100 +scripts. The lbmk design, at least on 12 December 2023, is currently 12 +scripts. Just 12, but don't be fooled by simplicity. It can do everything +Paper can. + +The lbmk design is so light because it generalises everything as much as +possible. The lbmk design is about 1800 lines of shell script and a couple +hundred lines of C; ich9utils is no longer included, because lbmk instead +includes the ifd/gbe configs generated by it, directly, and many other utils +are now handled (downloaded, patched and compiled) by the shell scripts. So, +the modern lbmk design does/can do everything Paper does/can do, but in 90% +fewer lines of code. + +This sloccount comparison is valid, comparing Paper from 2021 (I ended all +development of it in 2021), versus lbmk in December 2023. I saw as early +as *2017*, when Paper was in very early development stages, that the design +was completely unworkable due to complexity, versus the scope of the project +which is to provide firmware images for end users. + +I was going to scrap Paper in 2017, and revive my work on the original design, +but as I said: I had other real-life concerns going on, and had to go on +hiatus for many years. I let development of Paper continue during all those +years, in the hope that it would be stabilised at some point, and I had intended +to take it over myself at some point; but it was too complex. + +I would later take over the Libreboot project. This is what I will cover, +in the next sections. Paul stopped working on Libreboot after around +late 2017, leaving the work solely in the hands of Andrew and Sebastian. + +late 2020: osboot +================ + +I started the [osboot project](https://notabug.org/osboot) in December 2020. +Check *osboot.org* on the Wayback Machine. Osboot was initially called +Retroboot, but soon renamed to osboot, so also check *retroboot.org* on the +wayback machine. + +Osboot started as an experiment: what if Libreboot hardware support could be +greatly expanded, by adopting a more pragmatic policy? That was answered, with +the [Binary Blob Reduction Policy](policy.md) - today, that is the Libreboot +policy, since osboot later merged with Libreboot, in November of 2022, but it's +the same policy that osboot used. + +I was commissioned by a Minifree customer to provide a ThinkPad X230. I already +knew then that the X230 (an Ivy Bridge platform) could boot entirely blob-free +in coreboot, except for the neutered Intel ME (using `me_cleaner`) and +microcode updates. To my mind, it seemed acceptable in terms of software +freedom. A solid, all-round very useful machine. + +I had a problem: what firmware would I provide? Skulls? Heads? This customer +wanted something easy. Skulls is great but lacks a build system as advanced +as Libreboot's (Paper *or* lbmk), though it does have one that is reminiscent +of ours, and they standardize on SeaBIOS. They didn't (and still don't) have +very good documentation, in my view. Then there is Heads: an excellent +project, but quite excessive for this customer's needs. In fact, the customer +specifically wanted *UEFI* at that time. + +I decided to fork the Libreboot 20160907 build system, during December 2020, +for this customer. The 20160907 build system had many flaws, and it was 4 years +unmaintained at that point; the Paper build system was nominally still in +development, and the official build system of Libreboot, but not developed by +myself. Although I understood the Paper design well, I didn't like the code. +I still hate it. I *hate* that design, passionately. I wanted something clean, +and efficient. + +Thus, osboot was born. It initially began with Tianocore integrated in it, +using MrChromebox's branch for coreboot. MrChromebox is a coreboot distro that +provides Tianocore as a payload, on many Chromebooks, so I leaned on his +expertise to provide experimental Tianocore support, in my Libreboot 20160907 +fork. I completely gutted about half of the build system in that Libreboot +release, when forking it, because most of it no longer worked for modern +upstreams like coreboot and GRUB, both of which had gone through massive +changes over the years. + +One of Libreboot's earlier design flaws was that parts of the build system +ran completely standalone, while relying on work done by other parts of the +build system, *while not* checking automatically whether other steps had been +done. For example, the final preparation of a ROM image did not check whether +GRUB had been built. So you had to *know* the build system well, and know which +parts of it to run, and in what precise order. The Libreboot documentation +used to cover this, telling you how to use it in different ways, depending +on the desired configuration. *This was fixed*, very early on in the osboot +project. + +Osboot greatly improved the configurability of everything. For example, it +enabled you to more easily mix and match different payload combinations per +mainboard, whereas the Libreboot 20160907 design only allowed *one* payload +type, per target, and it contained a lot of target-specific logic that was +hardcoded, baked into the build system's design - even in December 2020 when +osboot started, I envisioned that it would one day support many more boards, +whereas Libreboot only supported like 15 mainboards in 2016. + +The osboot redesign, relative to Libreboot 20160907, made handling of source +tree revisions and patches much cleaner, especially for multi-tree projects +like coreboot, where multiple revisions could be used depending on mainboard. + +Of course, the first osboot revision also updated to a modern coreboot +revision at that time, which (in that month, December 2020) was +coreboot 4.14. + +Although I only did osboot initially for the X230, for a customer, it took +weeks of work to get the build system up to date, and I spent time updating +all of the documentation too. At that point, I realised what I had *actually* +done: I had gotten back into development again. Moreover, I found the experience +fun again, and I found that I once again had the energy. + +In short, I had my mojo back. My then 4-year hiatus was over. + +December 2020 Libreboot takeover +-------------------------------- + +Perhaps getting too carried away too soon, I actually took over the Libreboot +project again in late December 2020. I was rapidly working on adding all the +Libreboot boards to osboot, and I would have just very quickly updated the +deblob scripts; I acted on this desire too soon, running under the gun. + +I actually did remove Sebastian and Andrew's access to the Libreboot +infrastructure, for a few hours, before re-instating them - I wasn't ready for +a Libreboot takeover yet. I needed more time to polish everything. Doing a +tiny release for 1 customer, on 1 machine (the X230) was all well and good, but +I decided that I had time to polish it more. + +March 2021 Libreboot takeover +----------------------------- + +I wanted to get rid of Sebastian and Andrew for some time, at that point. Too +many years had gone by, without any releases in Libreboot, and the Paper build +system was only growing more complex; it was completely unworkable, and their +time was up. They failed. An unwritten rule in the new constitution of 2017 +was that they would *competently* run the project; I entrusted this to them, +in that year. They failed, miserably. Despite their clear passion and desire +to do good for the project, they were adamant. + +I had tried to sell to them the idea of scrapping the Paper build system (the +re-write), instead opting for my cleanly revived build system based on Libreboot +20160907, which at that time was called *osbmk* (osboot make). They would have +worked under me on it. They refused this, but asserted that Libreboot would have +two projects within it: one run by me, using my newly updated design, and one +with theirs. Now, I ask: why should I accept/enable the authority of those who +clearly had none? I was at a point then that I knew my work was viable, and that +I would have a release soon. + +I'd had too many arguments with them over the years, largely technical in +nature. They regularly derided my own work, even the improved build system +design and all the rapid early progress I'd already made with the new osboot +project; I actually did make some temporary releases of osboot (tarballs, with +ROM images and source code) in December 2020, but deleted them, because they +weren't intended for general use. I was only testing everything. + +Sebastian had a lot of knowledge about hardware, but did almost no coding +himself; he left that all to Andrew. And Andrew hadn't done any substantial +work in over 6 months at that time. And the work that was done, was still far +from complete. I anticipated that there would be years left before the Paper +design would yield a stable release, so I came to the conclusion: + +I should not carry around so much baggage. I had a clean new design, that worked. + +So I removed all their access to everything, and took over the Libreboot +project. Naturally, they both started denouncing me, but it didn't matter: I +was in charge. I was (and still am) grateful for their efforts, but Libreboot +must have stable releases, and there must be a clear direction. Having two +projects within it would only confuse people, and I was already addressing many +of the previous flaws in my design, fixing them one by one. + +However, I only had osboot then. I started actually working on a new Libreboot +release *after* I took over. + +2021 (lib)reboot +=============== + +New Libreboot repositories +-------------------------- + +The original Libreboot git repository can be found here: + +(if this link ever goes offline, I'll mirror that repository to another git +site, or self-host it) + +From mid-2021 onward, the Libreboot project was revived. The original repository, +linked above, contained the build system, documentation and images, along with +the *static site generator* that generates the Libreboot website (from Markdown +files). All in the same repository. + +In mid-2021, Libreboot was split into smaller repositories: + +* `lbmk`: the build system +* `lbwww`: the website (markdown files) +* `lbww-img`: images +* various other repositories, containing random utilities +* `untitled`: the static site generator, which creates the website, by creating + HTML files from the Markdown files in `lbwww` + +Untitled Static Site Generator +------------------------------ + +Untitled Static Site Generator was going to be part of Libreboot officially, but +by that time, I had forked the Libreboot static site generator many times, for +other websites that I also host. Therefore, the static site generator was split +into its own standalone project, independent of Libreboot. It is +hosted [here](https://untitled.vimuser.org/). It combines all of the features +of the forks, and it can handle many different websites simultaneously. Many +changes were made, to make Untitled more reliable and user-friendly than the +original scripts. The *original* static site generator, that Untitled was +forked from, was submitted to the Libreboot project by Alyssa Rosenzweig +in 2017. + +The osboot project greatly expanded, during this time. It never made any +releases officially, but it provided an excellent proof of concept, and it +became the basis for modern day Libreboot. + +May 2021 Libreboot release +-------------------------- + +Somewhat annoyingly, it coincided with the Freenode/Libera drama at that time, +when the latter forked from Freenode after a hostile takeover. Thankfully, that +drama ended quickly and we ended up with Libera being the clear winner. + +Anyway: I finally did get a new Libreboot release out, based on the work that +I had started in osboot, but at that time still complying with the GNU Free +System Distribution Guidelines, like 2016 Libreboot did. + +I did not use any of the work in the *Paper* re-write. I used precisely zero +lines of code from Sebastian and Andrew's work. I did it all myself. My decision +to take over the project had been vindicated. I did it for the users. People +had been complaining for years about the lack of a release. The Libreboot +project was dead. A joke to everyone, and it was no longer my fault; it was +theirs, for utterly failing to do any releases, and for running it into the +ground. + +I still feel anger to this day, about my own failure. I should have never stepped +down, in 2017. I should have stuck it out, and carried on my work. There are +many works that I and others are completing today, that would have been +done *then*. Alas, hindsight is 20/20. + +The [Libreboot 20210522 release](libreboot20210522.md) was the first release +in about 5 years, at that point, and it added many new boards. It inherited all +of the massive build system design improvements from osboot. + +Osboot from 2021-2022 +==================== + +The *osboot* project continued, since December 2020 when it started. I started +adding many new boards to it. The purpose of Osboot was the same as Libreboot, +except that it had the [Binary Blob Reduction Policy](policy.md) that Libreboot +now uses, but back then, Libreboot adhered to GNU FSDG. + +Goals of osboot +--------------- + +I *wanted* to start a project like osboot much earlier, in 2017. In fact, I was +going to, but real life got in the way and I went on hiatus for a few years. +I concluded as early as 2017 that the FSDG policy was a liability, especially +after `me_cleaner` became available. I realised that there were many more +machines out there, that I then considered acceptable from a software freedom +perspective, even if they did not comply with FSF RYF or GNU FSDG; I regard +the FSF policy as overly dogmatic, and I've always thought so, but in practise +it didn't hurt anything because Intel ME was always a problem. I didn't know +ME neutering was possible, until I found out about `me_cleaner` - I would never +provide anyone with a setup that uses a non-neutered ME, because of the networking +and backdoors provided in such setups. The `me_cleaner` project removes such +backdoors from the Intel ME, resulting in a clean image that only contains the +init firmware in the ME. In this configuration, the ME initialises itself but +doesn't actually run anything, so it just sits there permanently in the init +stage. Things like AMT no longer work, when you run `me_cleaner`. + +To put it simply: at least on the Intel side, `me_cleaner` changed everything +and opened up a lot more machines for me. But to do that, I had to abandon +Libreboot policy. Hence, osboot was born. Libreboot policy was a liability to +the free software movement, because it limited the amount of free software that +people could easily use. Remember, nothing else as easy to use as Libreboot +existed, within the coreboot community. I saw that many people have machines +which *can* have most of the proprietary firmware replaced with free software, +namely coreboot, but Libreboot set very arbitrary limits on what boards I could +add. These restrictions *became* a liability to the project. + +The plan therefore was to modify Libreboot policy, and adapt to this new +reality, but I wasn't really sure, and at that time I wasn't sure whether my +work would succeed; this is why I created a separate project, rather than +directly taking back over Libreboot from the start. To my surprise, osboot +started becoming popular within my communities, early on, so I kept it going +for another 2 years or so, to see how it would go. + +The feedback I kept getting was that most people saw essentially no difference +between in and Libreboot, except that Libreboot had a bunch of limitations in +it preventing people from using more hardware. People often got confused, asking +what differs between the two projects. I decided later that they would merge. + +The purpose of osboot was then to support *every* board from coreboot, which is +more challenging, especially when dealing with code from the vendor that often +must be added, in different ways depending on the machine. + +At first, osboot was very hands-on. For example, you had to dump the original +vendor BIOS to extract Intel ME, to then run `me_cleaner`, extracting the IFD, +GBE and (neutered) ME region with *ifdtool* to then insert into the ROM image. +Nowadays, that is completely [automated](../docs/install/ivy_has_common.md), +based on initial work done in osboot by Caleb La Grange. Caleb adapted logic +from Heads that extracts Intel ME images from Lenovo UEFI firmware updates, +thus eliminating the need for vendor firmware dumps prior to flashing; though, +backing up the factory firmware is still recommended, on any mainboard. + +I later expanded Caleb's work, making the logic much more generic, expandable +more easily to other boards/vendors and platforms. I also added support for +other files such as Intel MRC firmware and SMSC KBC1126 EC firmware (KBC1126 EC +firmware extraction was only done in Libreboot, after it merged with osboot - +more on this later) + +November 2022: osboot/libreboot merger +------------- + +I *shut* down the osboot project, formerly hosted on *osboot.org*, during +November 2022. The website was redirected to Libreboot. I then added all +extra documentation and code from osboot, into Libreboot, thus merging the +two projects together, and Libreboot formally adopted osboot's [Binary Blob +Reduction Policy](policy.md). I concluded that the two projects were essentially +the same, and I'd decided during the two years of osboot's existence that it +was vastly superior to Libreboot. I had a lot more fun working on it. Libreboot +became a side hobby at that point. OSBoot was my primary focus. + +This was a resounding success. It was done in a day. Caleb adapted the +documentation, while I worked on the build system. *We did it in a day*. + +My efforts in osboot and my extensive research revealed to me that almost +everyone supported this move. Sure enough, I saw a relative lack of opposition +to it; though, some of the more dogmatic members of the FSF were quite upset. +This level of upset later caused.... well, that's what I'm going to cover next. + +GNU Boot +======== + +The purpose of today's article has been to write a rigorous history section for +the Libreboot project, because a lot of earlier history for the project wasn't +available. Many of Libreboot's early years were turbulent, and I never expected +then that the project would last 5 years, let alone 10. + +Initial hostile fork +-------------------- + +During Libreplanet 2023, which is the FSF's annual conference, the FSF, through +Denis Carikli who is part of their inner circle, announced a *hostile fork* of +Libreboot. I anticipated a fork of Libreboot by the FSF, as a result of the +osboot merger, and I was OK with it, but: + +They tried to steal the name *Libreboot*, and sell themselves as the real +Libreboot project. This, I could not tolerate. I already knew of their effort +in December 2022, because its existence was leaked to me; they asked all of the +people I'd worked with to that point, asking them to betray me and work for them +instead. None were interested, and one of them leaked it to me. + +So I was prepared. I expected they'd announce it during Libreplanet and I was +right; Denis had a talk scheduled for 19 March 2023, a Sunday, about boot +firmware, though the fork wasn't announced until he spoke, in the talk. But I +knew. So I prepared. + +I released [Libreboot 20230319](libreboot20230319.md), several hours before +his talk, and I started an aggressive *countercoup*, whereby Libreboot was +developed much more aggressively than ever before, to completely outcompete them +in every way. It worked. What's more, I did the unthinkable: I got them to back +down. That almost never happens, as the FSF tends to be extremely dogmatic, too +drunk on their own prestige; set in their ways. + +They initially hosted their project on the official sourcehut instance run by +Drew DeVault. I simply asked Drew to terminate their hosting. He complied. He +gave them two weeks to rename their project, or be deleted, and they did not +rename. Their website was hosted on sourcehut at the time, so their website +went offline for a day; on that same day, I announced the [Libreboot +20230423 release](libreboot20230423.md). Drew's assessment, matching my own, +was that it would be inappropriate to host a hostile same-named fork of an +active project. *I* now own access to , at least +on 12 December 2023, and I even pay for it, though it is currently empty - I may +very well use at a later date, to provide *mailing lists* for Libreboot. + +If you run `whois` on libreboot.at (the domain name of their original fork site), +you will see that it says *GNU Hostmaster*. Owned by the FSF. Same config as +used for several other domains used by GNU projects - they were going to make +another *GNU Libreboot*, against my will. This, in spite of the truce established +in 2017. + +I don't feel bad about what I did. What they did is widely considered to be +a *dick move* in the free software movement; it is widely considered impolite +to fork an active project and use the same name. The unwritten rule is always +that you use a new name. It's more than that though: in their initial fork, and +also in GNU Boot, they didn't just say: this is what we are, what we do and why +you should use our product. No. They put a paragraph in their documentation, +urging people to *delete* links to libreboot.org, and link to them. *They were +out for blood*. + +Fork attempt 2: GNU Boot +------------------------ + +So I've responded in kind, ever since. Regardless of whether they succeed or +whether they are competent, a thought exists in their head. A dream, you could +say. Their dream is a world in which Leah Rowe and Libreboot no longer exist. +They wanted to destroy me. It's evident in Denis's LP2023 talk, where he said +he wanted to "continue" the Libreboot project. In his mind, there is no room for +disagreement over policy; it's FSDG or nothing. I had to play by their rules, +or go home. + +During that time, and subsequently, I and others had repeatedly put pressure +on them to rename. I personally came up with the name *GNU Boot* - and suggested +that they use it. It's a name that I myself came up with several years prior, +when I was considering whether to work for GNU again *myself*, but as an actual +fork of coreboot. The name just works. + +They did rename, to GNU Boot, but only after I forced them to do so. I forced +them to do so, by exposing the moral bankrupcy on their part, in their initial +effort to steal the Libreboot name. + +The points raised in the GNU Boot article are *still valid* on today, 12 +December 2023. GNU Boot 0.1 RC3 is imminent for release, on this day, and it +is still based largely on Libreboot 20220710, with only superficial changes on +top of it. it still has all the old, obsolete revisions for all projects, +including coreboot. It still has all of the same bugs, that Libreboot has since +fixed, especially during 2023. + +Unlike with their first attempt, GNU Boot is fully hosted on the GNU Savannah +infrastructure, as any proper GNU project should be. I *respect* the GNU Boot +project more, because it is its own thing, that doesn't try to ride off of my +coattails. However, my perception of them is permanently coloured by their +initial hostile actions; and the only reason they ceased such actions was +because I made it clear that they would not be allowed. The fact that they even +tried, means they thought I would roll over, or otherwise fail to counteract it +meaningfully. They still want to damage Libreboot. + +So, my strategy has been to constantly develop Libreboot from now on, much +more aggressively, and generally stay on top of my game. And I made no secret +of this strategy; I've been pretty open about everything, throughout 2023. + +Countercoup +----------- + +My countercoup has essentially consisted of a single strategy: be the best, on +a technical level. During all of 2023, roughly 5x as much work has gone into +Libreboot compared to any other average development year (2017-2021 +notwithstanding). Essentially, the *FSF's* strategy was to overwhelm Libreboot; +they wanted to make a big splash about their fork, and get devs on board as +quickly as possible, before Libreboot could develop much further under the new +policy, because Libreboot had not yet fully asserted itself in this regard, at +least so far as public recognition was concerned. So I doubled, tripled +and quadrupled down, and maintained absolute laser focus from 19 March 2023 +onward, a focus that I still maintain to this day - I have many plans for +Libreboot. If you think 2023 has been crazy, 2024 will be even better. 2024 +will be Libreboot's biggest development year yet. 2023 was only a warmup. + +I've done *three* major audits to the Libreboot build system, during 2023. +The build system has been *re-engineered*, 3 times, each time becoming +infinitely more efficient. + +Many new boards have been added. Many new features. *Non-coreboot* firmware +is now supported; for example, the (libre) stm32-vserprog and pico-serprog +code is now used by Libreboot, to provide serprog firmware on many STM32- +and RP2040-based microcontroller boards; we use them as SPI flashers, but you +can use them for many other purposes. They're quite handy little machines. The +serprog firmware integration was done by Riku Viitanen, who also added many +HP EliteBook machines to Libreboot during 2023. + +Thanks to the work done by Nicholas Chin, several Dell Latitude laptops are now +supported in Libreboot, which can be flashed without disassembly. We support +GM45 and Ivy Bridge models, and we're adding many more (we have identified +about 20 of them). + +You can actually just read the Libreboot release announcements from 2023, if +you want to know about all of the rapid progress made in Libreboot this year. +It is quite simply impossible to adequately describe, in only a short few +paragraphs, just how much Libreboot has improved during 2023. The development +pace during all of 2023 has been completely insane. Here are all of the +Libreboot release announcements from 2023: + +* [Libreboot 20230319](libreboot20230319.md) +* [Libreboot 20230413](libreboot20230413.md) +* [Libreboot 20230423](libreboot20230423.md) +* [Libreboot 20230625](libreboot20230625.md) +* [Libreboot 20231021](libreboot20231021.md) +* [Libreboot 20231101](libreboot20231101.md) +* [Libreboot 20231106](libreboot20231106.md) + +I also previously wrote about each of the three audits during 2023: + +* [Libreboot Build System Audit 1](audit.md) +* [Libreboot Build System Audit 2](audit2.md) +* [Libreboot Build System Audit 3](audit3.md) + +and now: + +Canoeboot +--------- + +Purely for my own entertainment, I decided to re-create FSDG Libreboot *myself*. +FSDG is the policy that GNU Boot uses, that Libreboot previously used, before +it adopted the modern [Binary Blob Reduction Policy](policy.md) - GNU Boot +started, specifically because it opposed the new policy in Libreboot. + +Well, GNU Boot seemed to be going nowhere fast. I monitor their Git activity +daily, and their development pace is much slower than mine; slower than mine, +even when I'm going slow. I thought to myself: what if a *competently* +engineered solution existed, like GNU Boot but not? + +And thus, [Canoeboot](https://canoeboot.org/) was born. I still mainly develop +Libreboot, but I spend a few hours after each release, bringing Canoeboot up +to date and running the deblob scripts, to update the `blob.list` files in +its build system. + +Canoeboot is even listed on the FSF's +[Free Software Directory](https://directory.fsf.org/wiki/Canoeboot) - Craig +Topham approved it, he's the FSF's current licensing and compliance manager, +at least on 12 December 2023. + +The purpose of Canoeboot is to simply exist, complying with GNU Boot policy +while being superior to it in every way, outcompeting it so fast that the +GNU Boot project is constantly behind - it's done, specifically to demonstrate +the superiority of Libreboot policy, by showing what Libreboot *would have +been*, if it didn't adopt the new policy. + +The FSF failed in its coup. My countercoup was a success. I madly beat them at +their own game. The FSF's strategy *might* have worked, if I hadn't been so +vigilant; Libreboot's development pace was much more conservative at that point, +and most of the works that have now been completed or are now underway, were +not even started. Libreboot was very young into its existence, relative to +the merging of the osboot project. They probably didn't expect any of the +actions that I've taken, or the massive leapfrog year of development this has +been for Libreboot. As far as I'm concerned, Libreboot has *won* 2023 - 2024 +is the next battle. + +And I *will* maintain Canoeboot. It is currently completely in sync with the +latest Libreboot release, and it will *keep* staying in sync, relative to each +new Libreboot release. I actually *describe* how this syncing is done, in great +detail, on Canoeboot's [about page](https://canoeboot.org/about.html) - and +the first Canoeboot release was done, based on the latest Libreboot release at +that time, in only 2 days, with all of Libreboot's vast improvements in it +compared to GNU Boot. As of this day, 12 December 2023, Canoeboot is about 1 +year ahead of GNU Boot in terms of code development, and 2 years ahead on the +writing of documentation. Conversely, GNU Boot is 1 year and 2 years out of +date, in terms of code and documentation respectively. + +2024 reconciliation intentions +============================== + +The *FSF* started the coldboot war. Libreboot merely won it. + +From 2024 onward, unless more hostilities develop from FSF/GNU's side, I intend +to adopt a more conciliatory approach toward GNU Boot. I won the battle of 2023. +I won the *cold boot war*, but the real battle is this: how do we get free boot +firmware to non-technical end users, efficiently and reliably? The answer to +that question is projects such as Libreboot, or indeed others like GNU Boot, +Heads, Skulls, MrChromebox... you name it. Distros, designed similarly to +Linux distros, but for building boot firmware instead. + +Much of 2023 was spent counteracting the FSF's coup, because they were hostile +to the Libreboot project, but I decided that I will avoid any such counter +action from now on. I will stil develop Canoeboot, but my main focus is +Libreboot. My conclusion is that, so long as my own efforts exist, and I keep +working on everything, the GNU Boot project is no threat to Libreboot whatsoever. + +Towards the end of 2023, there *was* in fact cooperation, between the GNU Boot +and Libreboot projects, in the form of small patches; Denis Carikli sent a few +patches and reports to Canoeboot and the Untitled Static Site Generator, and I +did similar for the GNU boot project. The FSF themselves even decided to +accept Canoeboot, on their Free Software Directory. See: + + +My only issue with GNU Boot at the start of 2023 was that they wanted +to *replace* the Libreboot project, by using the same name. They *did* try to +destroy the Libreboot project, and take it for themselves. Things pretty much +calmed towards the end of 2023, and now the two projects/communities operate +to their own ends, not taking much stock of the other. If they don't bother me +from now on, I won't pay any attention to them. + +They are welcome to send me patches, and I *may* help them if I feel like it. + +Aside from remarks made on *this* page, which are necessary for historical +context, neither Libreboot nor Canoeboot aggressively act against the FSF +anymore; to do so was necessary, when they themselves did the same, because +the FSF is a well-funded organisation with much bigger reach and would walk +all over me if I allowed it, so it was necessary to show strength. + +However, throughout 2024, GNU Boot has essentially been a dead project; they +haven't done any work on their build system of any consequence, and haven't +even updated their documentation that heavily. Their main focus was on +integrating the Untitled Static Site Generator into their infrastructure, +which otherwise relies heavily on TexInfo documents and CVS (Untitled relies on +Markdown and Git heavily - the FSF actually made a special rsync server for +GNU Boot to manually upload HTML files to, generated by Untitled, which they +wrapped around directly, within the GNU Boot build system). + +Last remarks +============ + +I've pretty much gone through the entire history, to the best of my ability. +I probably did forget a few things, but these are the broad strokes. If you +managed to read this far, I salute you. In any case, this article describes +both the history and nature of the Libreboot project up to this day, 12 +December 2023, marking the 10th anniversary of the Libreboot project, relative +to its first release on 12 December 2013. I *was* planning a new release for +this day, but I decided not to rush that; more testing is needed, and there +are several new features/boards that I and others in the Libreboot project +are working on. + +If you made it this far, reading all the way to the end, I will now reward +your patience and your courage with a cool easter egg: + +The `minifree.org` domain name initially hosted a website that was teaching +people how to use VPNs and Tor, and it contained information about how to +be private on the internet. I later planned on making it into an FSDG-compliant +fork of *Puppy Linux* - because Puppy is small, lightweight, and mini is another +word for *small*, and it was to be a fully free distribution, containing no +blobs, not even firmware. Minifree GNU/Linux. I later scrapped the plan, and +realised that *Minifree* was also newspeak, that could mean *Ministry of +Freedom*. The domain name was re-purposed to provide my company website, with +the erstwhile *gluglug* domain then redirecting to it, and I registered Minifree +Ltd in the UK. Minifree is how I fund the Libreboot project, by selling computers +with Libreboot pre-installed. You can find it +on [minifree.org](https://minifree.org/). diff --git a/site/news/MANIFEST b/site/news/MANIFEST index 624a338..c54b9c7 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -9,6 +9,7 @@ libreboot20240126.md x201.md hp820g2.md audit4.md +10.md libreboot20231106.md libreboot20231101.md libreboot20231021.md From a2164297b94a5cc348a61af3e3ea3daa0329b23e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 23 Aug 2024 01:28:08 +0100 Subject: [PATCH 032/399] snip Signed-off-by: Leah Rowe --- site/docs/build/index.md | 31 ++-- site/docs/build/index.uk.md | 28 ++-- site/docs/grub/index.md | 11 +- site/docs/hardware/dell9020.md | 4 +- site/docs/hardware/hp2170p.md | 2 +- site/docs/hardware/hp2560p.md | 2 +- site/docs/hardware/hp2570p.md | 2 +- site/docs/hardware/hp8200sff.md | 4 +- site/docs/hardware/hp820g2.md | 2 +- site/docs/hardware/hp8460p.md | 2 +- site/docs/hardware/hp8470p.md | 2 +- site/docs/hardware/hp8560w.md | 2 +- site/docs/hardware/hp9470m.md | 2 +- site/docs/hardware/t1650.md | 2 +- site/docs/install/ivy_has_common.md | 10 +- site/docs/install/ivy_has_common.uk.md | 2 +- site/docs/install/spi.md | 14 +- site/docs/install/spi.zh-cn.md | 14 +- site/docs/linux/grub_cbfs.md | 12 +- site/docs/linux/grub_hardening.md | 32 +--- site/docs/maintain/index.md | 213 ++++++++++++++++--------- site/news/10.md | 9 +- 22 files changed, 218 insertions(+), 184 deletions(-) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index 2e56a89..06ddc41 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -108,6 +108,9 @@ On Fedora, you can use the following sudo dnf install python-unversioned-command +On most modern distros, Python 2 is no longer included and Python 3 will be +the only one available on the `python`. + How to compile Libreboot ======================== @@ -132,24 +135,24 @@ Fedora, Arch Linux/Parabola or Void Linux. Some examples (run them as root, use use e.g. `sudo`, `doas`): - ./build dependencies ubuntu + ./mk dependencies ubuntu or - ./build dependencies debian + ./mk dependencies debian or - ./build dependencies fedora38 + ./mk dependencies fedora38 or - ./build dependencies arch + ./mk dependencies arch NOTE: In case of Ubuntu 20.04 LTS or derived distros for that specific release, use the dedicated configuration file: - ./build dependencies ubuntu2004 + ./mk dependencies ubuntu2004 Check: `config/dependencies/` for list of supported distros. @@ -161,32 +164,32 @@ Next, build ROM images ---------------------- Libreboot MaKe (lbmk) automatically runs all necessary commands; for -example, `./build roms` will automatically run `./build grub` -if the required GRUB payload (under `elf/grub/`) does not exist. +example, `./mk -b coreboot` will automatically build the required payloads +if not already compiled. As a result, you can now (after installing the correct build dependencies) run just a single command, from a fresh Git clone, to build all ROM images: - ./build roms all + ./mk -b coreboot or even just build specific ROM images, e.g.: - ./build roms x60 + ./mk -b coreboot x60 or get a list of supported build targets: - ./build roms list + ./mk -b coreboot list Or maybe just build payloads? ----------------------------- If you wish to build payloads, you can also do that. For example: - ./build grub + ./mk -b grub - ./update trees -b seabios + ./mk -b seabios - ./update trees -b u-boot + ./mk -b u-boot Previous steps will be performed automatically. However, you can *still* run individual parts of the build system manually, if you choose. This may be @@ -199,7 +202,7 @@ Want to modify Libreboot? Check the [lbmk maintenance manual](../maintain/) for guidance. You may for example want to modify a config, e.g.: - ./update trees -m coreboot x200_8mb + ./mk -m coreboot x200_8mb Or perhaps add a new board! The maintenance manual will teach you how the Libreboot build system (lbmk) works! diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index 69826da..de7ca0a 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -43,7 +43,7 @@ marked as stable, the build proceeds without further input. If the board is marked anything other, a warning appears asking if you wish to proceed; to disable these warnings, do this before building (not recommended): - export LBMK_STATUS=n + export XBMK_STATUS=n In Libreboot, we specify: `stable`, `unstable`, `broken` or `untested`. The "unstable" marking means that the board boots mostly/entirely reliably @@ -64,7 +64,7 @@ Multi-threaded builds Libreboot's build system defaults to a single build thread, but you can change it by doing e.g. - export LBMK_THREADS=4 + export XBMK_THREADS=4 This would make lbmk run on 4 threads. @@ -74,7 +74,7 @@ Environmental variables Please read about environmental variables in [the build instructions](../maintain/), before running lbmk. You should set your variables accordingly, though you do not technically need to; some -of them may be useful, e.g. `LBMK_THREADS` (sets the number of build threads). +of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). Environmental variables ======================= @@ -82,7 +82,7 @@ Environmental variables Please read about environmental variables in [the build instructions](../maintain/), before running lbmk. You should set your variables accordingly, though you do not technically need to; some -of them may be useful, e.g. `LBMK_THREADS` (sets the number of build threads). +of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). Git === @@ -127,15 +127,15 @@ time or date can cause connections to be dropped during negotiation. libreboot включає сценарій, який автоматично встановлює apt-get залежності в Ubuntu 20.04: - sudo ./build dependencies ubuntu2004 + sudo ./mk dependencies ubuntu2004 Окремі сценарії також існують: - sudo ./build dependencies debian + sudo ./mk dependencies debian - sudo ./build dependencies arch + sudo ./mk dependencies arch - sudo ./build dependencies void + sudo ./mk dependencies void Check: `config/dependencies/` for list of supported distros. @@ -150,23 +150,23 @@ libreboot Make (lbmk) автоматично виконує всі необхі В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати лише одну команду, з свіжого Git clone, для побудови образів ROM: - ./build roms all + ./mk -b coreboot або навіть побудувати конкретні образи ROM, такі як: - ./build roms x60 + ./mk -b coreboot x60 or get a list of supported build targets: - ./build roms list + ./mk -b coreboot list Якщо ви бажаєте побудувати корисні навантаження, можете зробити це. Наприклад: - ./build grub + ./mk -b grub - ./update trees -b seabios + ./mk -b seabios - ./update trees -b u-boot + ./mk -b u-boot Попередні кроки буде виконано автоматично. Однак, ви можете *досі* виконати окремі частини системи побудови власноруч, якщо виберете. Це може бути diff --git a/site/docs/grub/index.md b/site/docs/grub/index.md index 8be58d4..21f4ce8 100644 --- a/site/docs/grub/index.md +++ b/site/docs/grub/index.md @@ -3,9 +3,6 @@ title: GRUB payload x-toc-enable: true ... -TODO: this guide should be reviewed and updated. Some info might be out of -date. - GRUB already has excellent documentation, but there are aspects of libreboot that deserve special treatment. libreboot provides the option to boot GRUB directly, running on @@ -33,10 +30,16 @@ files: When you build GRUB from source, you can use the `grub-mklayout` program to create a special keymap file for GRUB. [Learn how to build GRUB](../build/) +Te compile GRUB, in lbmk, do this: + + ./mk -b grub default + +Other GRUB trees are available, but the `default` one will do for now. + When you've built GRUB, using `lbmk` (libreboot build system), take your kepmap file (generated by ckbcomp) and run it through `grub-mklayout` like so: - cat frazerty | ./src/grub/grub-mklayout -o frazerty.gkb + cat frazerty | ./src/grub/default/grub-mklayout -o frazerty.gkb Place the newly created `.gkb` file under `config/grub/keymap` in lbmk. When you build libreboot, a ROM image with GRUB payload and your newly created diff --git a/site/docs/hardware/dell9020.md b/site/docs/hardware/dell9020.md index 1216438..72712c2 100644 --- a/site/docs/hardware/dell9020.md +++ b/site/docs/hardware/dell9020.md @@ -164,11 +164,11 @@ Build ROM image from source For the MT variant (7020 MT and 9020 MT): - ./build roms dell9020mt_12mb + ./mk -b coreboot dell9020mt_nri_12mb For the SFF variant (7020 SFF and 9020 SFF): - ./build roms dell9020sff_12mb + ./mk -b coreboot dell9020sff_nri_12mb It is important that you choose the right one. The MT variant is the full MTX tower. diff --git a/site/docs/hardware/hp2170p.md b/site/docs/hardware/hp2170p.md index 77b44f8..90c233b 100644 --- a/site/docs/hardware/hp2170p.md +++ b/site/docs/hardware/hp2170p.md @@ -72,7 +72,7 @@ Build ROM image from source The build target, when building from source, is thus: - ./build roms hp2170p_16mb + ./mk -b coreboot hp2170p_16mb Installation ============ diff --git a/site/docs/hardware/hp2560p.md b/site/docs/hardware/hp2560p.md index 4b57ce9..b6f31b0 100644 --- a/site/docs/hardware/hp2560p.md +++ b/site/docs/hardware/hp2560p.md @@ -68,7 +68,7 @@ about this: Refer to the coreboot guide for flashing instructions, and you can build the images for it in Libreboot like so: - ./build roms hp2560p_8mb + ./mk -b coreboot hp2560p_8mb More information about building ROM images can be found in the [build guide](../build/). diff --git a/site/docs/hardware/hp2570p.md b/site/docs/hardware/hp2570p.md index 34b72e2..f3a9842 100644 --- a/site/docs/hardware/hp2570p.md +++ b/site/docs/hardware/hp2570p.md @@ -103,7 +103,7 @@ a SOIC-16 chip instead of SOIC-8. Follow these instructions: Refer to that coreboot guide for flashing instructions, and you can build the images for it in Libreboot like so: - ./build roms hp2570p_16mb + ./mk -b coreboot hp2570p_16mb More information about building ROM images can be found in the [build guide](../build/). diff --git a/site/docs/hardware/hp8200sff.md b/site/docs/hardware/hp8200sff.md index fd673be..0255282 100644 --- a/site/docs/hardware/hp8200sff.md +++ b/site/docs/hardware/hp8200sff.md @@ -88,7 +88,7 @@ to recover from an unbootable BIOS: You can build the images for it in Libreboot like so: - ./build roms hp8200sff_8mb + ./mk -b coreboot hp8200sff_8mb More information about building ROM images can be found in the [build guide](../build/). @@ -154,7 +154,7 @@ Pin-Strap is set". If it doesn't, start again from the beginning. Now build the **4** MiB Libreboot image. - ./build roms hp8200sff_4mb + ./mk -b coreboot hp8200sff_4mb More information about building ROM images can be found in the [build guide](../build/). diff --git a/site/docs/hardware/hp820g2.md b/site/docs/hardware/hp820g2.md index c352d16..f5bacb0 100644 --- a/site/docs/hardware/hp820g2.md +++ b/site/docs/hardware/hp820g2.md @@ -95,7 +95,7 @@ release after Libreboot 20231106, you *must* use the latest `lbmk.git`. The build target, when building from source, is thus: - ./build roms hp820g2_12mb + ./mk -b coreboot hp820g2_12mb NOTE: The actual flash is 16MB, but you must flash only the first 12MB of it. The ROM images provided by Libreboot are 12MB. diff --git a/site/docs/hardware/hp8460p.md b/site/docs/hardware/hp8460p.md index 487b9f0..414a78e 100644 --- a/site/docs/hardware/hp8460p.md +++ b/site/docs/hardware/hp8460p.md @@ -69,7 +69,7 @@ Build ROM image from source The build target, when building from source, is thus: - ./build roms hp8460pintel_8mb + ./mk -b coreboot hp8460pintel_8mb Installation ============ diff --git a/site/docs/hardware/hp8470p.md b/site/docs/hardware/hp8470p.md index b963e29..85afd7f 100644 --- a/site/docs/hardware/hp8470p.md +++ b/site/docs/hardware/hp8470p.md @@ -72,7 +72,7 @@ Build ROM image from source The build target, when building from source, is thus: - ./build roms hp8470pintel_16mb + ./mk -b coreboot hp8470pintel_16mb Installation ============ diff --git a/site/docs/hardware/hp8560w.md b/site/docs/hardware/hp8560w.md index 4dc03be..e5a261a 100644 --- a/site/docs/hardware/hp8560w.md +++ b/site/docs/hardware/hp8560w.md @@ -94,7 +94,7 @@ Build ROM image from source The build target, when building from source, is thus: - ./build roms hp8560w_8mb + ./mk -b coreboot hp8560w_8mb Installation ============ diff --git a/site/docs/hardware/hp9470m.md b/site/docs/hardware/hp9470m.md index e815ac4..f26209b 100644 --- a/site/docs/hardware/hp9470m.md +++ b/site/docs/hardware/hp9470m.md @@ -47,7 +47,7 @@ Installation of Libreboot You must first compile the Libreboot ROM - ./build roms hp9470m_16mb + ./mk -b coreboot hp9470m_16mb More information about building ROM images can be found in the [build guide](../build). diff --git a/site/docs/hardware/t1650.md b/site/docs/hardware/t1650.md index 8d9fa30..e33e9f5 100644 --- a/site/docs/hardware/t1650.md +++ b/site/docs/hardware/t1650.md @@ -70,7 +70,7 @@ Build ROM image from source The build target, when building from source, is thus: - ./build roms t1650_12mb + ./mk -b coreboot t1650_12mb Installation ============ diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 0bff56e..e1a3126 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -80,7 +80,7 @@ Injecting vendor files into ROM You must determine the correct board name, for your board, based on the list generated when running this command: - ./build roms list + ./mk -b coreboot list In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image. @@ -110,20 +110,20 @@ You *must* ensure that the files were inserted. Some examples of how to do that in lbmk: - ./update trees -d coreboot TREENAME + ./mk -d coreboot TREENAME -Now you find `cbutitls/default`, which is a directory containing `cbfstool` +Now you find `elf/cbfstool`, which is a directory containing `cbfstool` and `ifdtool`. Do this on your ROM image (`libreboot.rom` in the example below): - ./cbutils/default/cbfstool libreboot.rom print + ./elf/cbfstool/TREENAME/cbfstool libreboot.rom print You should check that the files were inserted in cbfs, if needed; for example, EC firmware or MRC firmware. Next: - ./cbutils/default/ifdtool -x libreboot.rom + ./elf/ifdtool/TREENAME/ifdtool -x libreboot.rom This creates several `.bin` files, one of which says `me` in it (Intel ME). Run hexdump on it: diff --git a/site/docs/install/ivy_has_common.uk.md b/site/docs/install/ivy_has_common.uk.md index cb636c7..d5edc98 100644 --- a/site/docs/install/ivy_has_common.uk.md +++ b/site/docs/install/ivy_has_common.uk.md @@ -87,7 +87,7 @@ Inject vendor files into ROM You must determine the correct board name, for your board, based on the list generated when running this command: - ./build roms list + ./mk -b coreboot list In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image. diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index c911b34..b3264d3 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -95,15 +95,11 @@ could build it yourself or you could also clone `lbmk.git` and [install build dependencies](../build/#first-install-build-dependencies), then inside lbmk, do: - ./build serprog rp2040 pico - -or for the W version: - - ./build serprog rp2040 pico_w + ./mk -b pico-serprog This will automatically build the rpi-pico firmware, and the file will be -at `bin/serprog_rp2040/serprog_pico.uf2`. This binary will be provided -pre-compiled in the next Libreboot release, after the 20230625 release. +at `bin/serprog_rp2040/serprog_pico.uf2` +and `bin/serprog_rp2040/serprog_pico_w.uf2`. Disconnect the Pico and proceed to wire it to your [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). @@ -482,12 +478,12 @@ install flashprog. Do this after downloading the [lbmk Git repository](https://codeberg.org/libreboot/lbmk): cd lbmk - sudo ./build dependencies ubuntu2004 + sudo ./mk dependencies ubuntu2004 NOTE: debian, arch or void can be written instead of ubuntu2004. the debian script is also applicable to newer ubuntu versions - ./update trees -b flashprog + ./mk -b flashprog If the `ubuntu2004` script complains about missing dependencies, just modify the dependencies config to remove those dependencies. The script is located diff --git a/site/docs/install/spi.zh-cn.md b/site/docs/install/spi.zh-cn.md index 8bef4c8..44f1a92 100644 --- a/site/docs/install/spi.zh-cn.md +++ b/site/docs/install/spi.zh-cn.md @@ -71,15 +71,11 @@ could build it yourself or you could also clone `lbmk.git` and [install build dependencies](../build/#first-install-build-dependencies), then inside lbmk, do: - ./build serprog rp2040 pico - -or for the W version: - - ./build serprog rp2040 pico_w + ./mk -b pico-serprog This will automatically build the rpi-pico firmware, and the file will be -at `bin/serprog_rp2040/serprog_pico.uf2`. This binary will be provided -pre-compiled in the next Libreboot release, after the 20230625 release. +at `bin/serprog_rp2040/serprog_pico.uf2` +and `bin/serprog_rp2040/serprog_pico_w.uf2`. Disconnect the Pico and proceed to wire it to your [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). @@ -335,11 +331,11 @@ Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。 使用 Git 仓库中的 libreboot 构建系统,你可以下载并安装 flashprog。首先下载 [lbmk Git 仓库](https://codeberg.org/libreboot/lbmk),然后执行: cd lbmk - sudo ./build dependencies ubuntu2004 + sudo ./mk dependencies ubuntu2004 注意:你可以输入 debian、arch 或 void 来替换 ubuntu。debian 脚本也可以用于新版 ubuntu。 - ./update trees -b flashprog + ./mk -b flashprog 如果 `ubuntu2004` 报告了依赖缺失,编辑一下这个脚本,把缺失的依赖移除就行了。脚本位于 `config/dependencies/ubuntu2004`,它是写给 Ubuntu 20.04 的,但在其他使用 `apt-get` 包管理器的 Linux 发行版应该也能用。 diff --git a/site/docs/linux/grub_cbfs.md b/site/docs/linux/grub_cbfs.md index 37148b0..c5085d9 100644 --- a/site/docs/linux/grub_cbfs.md +++ b/site/docs/linux/grub_cbfs.md @@ -59,15 +59,15 @@ Install the build dependencies. For Ubuntu 20.04 and similar, you can run the following command in the libreboot build system, from the root directory of the libreboot Git repository. - ./build dependencies ubuntu2004 + ./mk dependencies ubuntu2004 Then, download coreboot: - ./update trees -f coreboot + ./mk -f coreboot Finally, compile the `cbutils` payload (and you will then have the utils): - ./build grub + ./mk -b grub Among other things, this will produce a `cbfstool` executable under any of the subdirectories in `src/coreboot/` under `util/cbfstool/cbfstool`. @@ -82,9 +82,9 @@ You will also want to build `flashprog` which libreboot recommends for reading from and/or writing to the boot flash. In the libreboot build system, you can build it by running this command: - ./update trees -b flashprog + ./mk -b flashprog -An executable will be available at `src/flashprog/flashprog` after you have done +An executable will be available at `elf/flashprog/flashprog` after you have done this. Dump the boot flash @@ -96,7 +96,7 @@ your computer, you can use `flashprog` to acquire it. Simply run the following, after using libreboot's build system to compile flashprog: - sudo ./src/flashprog/flashprog -p internal -r dump.bin + sudo ./elf/flashprog/flashprog -p internal -r dump.bin If flashprog complains about multiple flash chip definitions, do what it says to rectify your command and run it again. diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index cdae75b..ade05aa 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -83,16 +83,12 @@ image: You can build `cbfstool` in the libreboot build system. Run this command: - ./update trees -d coreboot TREENAME - -This assumes that you already downloaded coreboot: - - ./update trees -f coreboot + ./mk -d coreboot TREENAME This, in turn, assumes that you have installed the build dependencies for libreboot. On Ubuntu 20.04 and other apt-get distros, you can do this: - ./build dependencies ubuntu2004 + ./mk dependencies ubuntu2004 The `cbfstool` executables will be under each coreboot directory, under each `coreboot/boardname/` directory for each board. Just pick one, presumably @@ -159,11 +155,9 @@ GRUB using the libreboot build system. Run the following commands (assuming you have the correct build dependencies installed) to build GRUB, from the libreboot Git repository: - ./update trees -f grub + ./mk -b grub default - ./build grub - -The following executable will then be available under the `src/grub/` directory: +The following executable will then be available under `src/grub/default/`: grub-mkpasswd-pbkdf2 @@ -249,24 +243,6 @@ NOTE: Before disabling the boot menu, make sure GRUB works. Access it using the `bootorder` file and/or press ESC in the SeaBIOS menu. Then disable the SeaBIOS menu. -Alternative: GRUB as primary ----------------------------- - -The *SeaBIOS first* policy is now law, in Libreboot releases. The only -exception is the x86 QEMU target. You can do this if building from source: - - ./build roms -p grub targetname - -Where `targetname` is e.g. `x200_8mb` (use the correct one for your board). - -Again: make sure GRUB works. Also: don't do this if you're using a non-Intel -graphics card because only the Intel graphics have native video initialisation -in Libreboot, and we rely on SeaBIOS to execute the VGA ROM for others. - -(it is assumed that you know to add the VGA ROM in CBFS if needed, if using -a dGPU, or that you're using a graphics card on a desktop so SeaBIOS will use -that automatically) - GPG keys ======== diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 23e421e..1cc4265 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -126,17 +126,74 @@ bin/ This directory is created when running any of the following commands, with the right arguments: - ./build roms ARGUMENTS_HERE - ./build roms serprog stm32 - ./build roms serprog rp2040 + ./mk -b coreboot ARGUMENTS_HERE + ./mk -b stm32-vserprog + ./mk -b pico-serprog Simply speaking, `bin/` shall contain finished ROM images or firmware, that can then be installed (flashed) to the target device. The files under `bin/` are provided in regular Libreboot releases. -**These** are the ROM images that you should flash. Do *not* flash the ROM -images contained under `elf/`! +**These** are the ROM images that you should flash. + +Older versions of lbmk build coreboot images separately under `elf/`, but +without payloads, using `elf/` as a build cache, then inserting payloads +into copies of these images in files under `bin/`. However, modern lbmk +now only puts coreboot images in `bin/`, with payloads included. + +If you still have `elf/` coreboot images in your lbmk tree, please do not +use them (and you may aswell delete them). + +cache/ +--------------- + +Certain files are cached here automatically, by lbmk. The user need not touch +these files. + +cache/app +-------------- + +When vendor updates are extracted, they go here, which is then processed to +find individual files for use in coreboot images (e.g. KBC1126 EC firmware). + +This directory is constantly over-written, so it's essentially another temporary +directory used by the build system. + +cache/file/ +-------------- + +Files that are downloaded are hashed, and the cached version of the file +is stored there, named as the SHA512 checksum. This is used for vendor file +downloads, and subfile downloads. + +A *subfile* is like a Git submodule, but it's a *file* (just a humble file), +downloaded via curl/wget. The build system does not +run `git submodule update` commands when handling Git repositories anymore, +instead processing submodules manually; it supports both repositories *and* +files relative to the directory locations for those repositories, but subfiles +are not downloaded to the *cached git repository*, only the work directory used +for building in lbmk. + +cache/hash +--------------- + +When lbmk is handling any project, it sorts a list of files under `config/` +including `config/project` (or `config/project/TREE`) and `config/data/project`. + +SHA512 checksums are calculated from these files, in the sorted order, and +written in that order, to a file. *That* file is then checksummed, and this +hash is stored in `cache/hash` for that project. + +If the currently stored hash differs from what's calculated, it means that +the project has changed, and the source directories plus builds are deleted. +The project source is then re-prepared and re-build. + +cache/repo +-------------- + +Git repositories are cached here. This avoids wasting bandwidth, when downloading +multiple repositories. **Git submodules are also cached here!** ec/ --------------- @@ -148,21 +205,30 @@ elf/ --------------- **DO NOT flash coreboot ROM images contained under `elf/`. Please use ROM images -under `bin/` instead!** +under `bin/` instead! - In modern lbmk, only the ones under `bin/` are ever +created anyway.** Compiled binaries (compiled by lbmk) go here, but they are not the final binaries; coreboot ROM images are compiled without payloads, then cached here -under `elf/coreboot` as one example; ditto GRUB and SeaBIOS which go -under `elf/grub` and `elf/seabios` respectively - `elf/u-boot` is another -example. +under `elf/coreboot` as one example -Binaries under `elf/` are compiled first, which lbmk then uses to generate -the files under `bin/`; the latter files under `bin/` are intended for -installation by the user. +GRUB and SeaBIOS which go +under `elf/grub` and `elf/seabios` respectively - `elf/u-boot` is another +example. A given project can include a `build.list` file +at `config/data/PROJECT/build.list`, which would contain a list of file paths +relative to the *source directory*; these files would be copied, after a build +operation, to `elf/PROJECT` for single-tree projects, +or `elf/PROJECT/TREE` for multi-tree projects. It is technically possible to re-use these files elsewhere. For example, you may wish to only compile GRUB with lbmk, and then use the `grub.elf` file from -lbmk in your own custom coreboot ROM (that you didn't build with lbmk). +lbmk in your own custom coreboot ROM (that you didn't build with lbmk). However, +this use is not officially supported by the Libreboot project; these files are +simply used by the Libreboot build system. + +Some utilities are also provided compiled here, when building. For +example: `elf/flashprog/flashprog`. This is because lbmk tries to provide +out-of-source builds whenever feasible. This is only used by the build system, but these images are *not* provided in releases (only the images under `bin/` are provided). @@ -176,6 +242,9 @@ mrc/ Intel System Agent downloaded at build time for HP EliteBook 820 G2. +The *Haswell* MRC file is no longer downloaded here, because Haswell machines +now use native raminit *exclusively*; only Broadwell uses MRC, at present. + pciroms/ --------------- @@ -198,20 +267,20 @@ the user. You can create release archives by doing: - ./update release + ./mk release By default, this creates a release under `release/`, but you can change the directory, for example: - ./update release -d path + ./mk release -d path You can also specify that only a *source archive* be created, like so: - ./update release -m src + ./mk release -m src Or with a custom directory: - ./update release -d path -m src + ./mk release -d path -m src The build system expects there to be a *git tag*, so make sure there is one. This is used to create the version number for a given release. @@ -270,7 +339,7 @@ convenience of users, and this is copied to release archives. Flashrom is the program that you will use to read, erase and write the flash, containing coreboot firmware. -src/grub/ +src/grub/TREE --------------- Please also visit: @@ -286,7 +355,23 @@ the `grub-mkstandalone` utility is executed from here to create the final GRUB image under `elf/grub/`. NOTE: This is *only* provided for x86 machines, in Libreboot. For ARM, we ship -U-Boot instead. +U-Boot instead. Since Libreboot 20240612, the GRUB builds are *multi-tree*, +much like, say, coreboot or SeaBIOS. + +As of August 2024, the following GRUB source trees can be downloaded: + +* `src/grub/default` +* `src/grub/xhci` +* `src/grub/nvme` + +Simplify specify the tree. For example: + + ./mk -b grub xhci + +The `xhci` tree contains patches for both NVMe SSD support, and xHCI. The `nvme` +tree contains NVMe SSD support but not xHCI support. The `default` tree contains +no NVMe or xHCI support. All trees otherwise have the same fixes on top of +upstream GRUB, e.g. fix for Dell Latitude keyboard controllers. src/memtest86plus/ --------------- @@ -498,8 +583,6 @@ other example. Deletions occur when the source tree is created. config/vendor/ --------------- -### config/vendor/sources - URLs and hashes for vendor files containing Intel ME images within them. Where feasible, backup URLs are also provided. SHA512 checksums are defined, so that lbmk can verify the integrity of downloaded files. @@ -517,25 +600,6 @@ E6400. config/coreboot --------------- -### config/coreboot/build.list - -When a given coreboot tree is compiled, for a given target, this file defines -which files to copy from the coreboot directory, which are then copied to -a location under `elf/coreboot`. - -The presence of this file affects behaviour in `./update release` commands; -specifically, PROJECT is then downloaded to `src/PROJECT/PROJECT`, and files -under `config/PROJECT/TARGET/target.cfg` define which tree to use, which then -looks under `config/PROJECT/TREE/target.cfg` to get the git revision; then -the src directory `src/PROJECT/TREE` is created, copied -from `src/PROJECT/PROJECT`. - -For example, coreboot target `x200_8mb` refers to tree name `default` which -would create `src/coreboot/default`. - -If the `build.list` file is *not* included, then the git revision -under `config/git` is used, and only `src/PROJECT` is created. - ### config/coreboot/BOARDNAME/ Each target name (e.g. `x200_8mb`) has its own directory under here. Targets @@ -567,12 +631,9 @@ as: * `rev="ad983eeec76ecdb2aff4fb47baeee95ade012225"` (example entry) * `xarch="i386-elf"` (example entry) * `payload_grub="y"` (example entry) -* `payload_grub_withseabios="y"` (example entry) * `payload_seabios="y"` (example entry) * `payload_memtest="y"` (example entry) * `payload_uboot="y"` (example entry) -* `payload_seabios_withgrub="y"` (example entry) -* `payload_seabios_grubonly="y"` (example entry) * `grub_scan_disk="ata"` * `uboot_config=default` (specify which U-Boot tree to use) * `release="n"` (example entry) @@ -630,7 +691,7 @@ on a ThinkPad X60 with the optical drive may cause GRUB to hang, so on that machine it is advisable to set this option to `ahci` (becuse the default HDD slot is AHCI). -The `release` variable can be set to n, which makes the `./update release` +The `release` variable can be set to n, which makes the `./mk release` call skip that target, when creating release images. For example, a given board may not be stable and you don't want images for it to be included in the release. @@ -708,7 +769,7 @@ VESA frame buffer (NOT to be confused with the coreboot frame buffer), or just normal text mode. Text mode startup is always recommended, and in that setup, GRUB (including coreboot GRUB, but also PC GRUB) can use VGA modes. -The name `libgfxinit` is simply what `./build roms` uses, but it may be +The name `libgfxinit` is simply what `./mk -b coreboot` uses, but it may be that a board uses the old-school native video init code written in C. On some platforms, coreboot implemented a 3rd party library called `libgfxinit`, which is written in Ada and handles video initialization. In this setup, coreboot @@ -729,7 +790,7 @@ config/dependencies/ Files here are so named, and called like so: e.g. the `debian` file would be referenced when running: - ./build dependencies debian + ./mk dependencies debian These files define a list of packages, and the correct package manager command to use on a given distro. This can be used to install build dependencies, which @@ -940,7 +1001,7 @@ These are similar in meaning to their coreboot counterparts. The tree` entry is actually a link, where its value is a directory name under `config/u-boot`. For example, `tree="default"` would refer to `config/u-boot/default` and the corresponding U-Boot source tree created -(when running `./update trees u-boot`, which makes use of `target.cfg`) +(when running `./mk u-boot`, which makes use of `target.cfg`) would be `u-boot/default/`. In other words: a `target.cfg` file in `config/u-boot/foo` might refer to `config/u-boot/bar` by specifying `tree="bar"`, and the created u-boot source tree would @@ -1054,7 +1115,7 @@ You create a config, for `config/u-boot/TREENAME/configs`, by finding the corresponding board name in the upstream U-Boot `configs` directory, and running `make BOARDNAME_defconfig` and `make menuconfig` commands in the *U-Boot* build system. You should do this after -running `./update trees u-boot` in lbmk. +running `./mk u-boot` in lbmk. You might want to consider basing your config on the upstream `coreboot` boards when possible, but such a board is not available upstream for ARM yet. @@ -1114,27 +1175,27 @@ Take any given file under `script/` and you can do: For example: - ./build roms - ./update trees + ./mk -b coreboot + ./mk Special commands available (not provided by files under `script/`): - ./update release - ./vendor download - ./vendor inject + ./mk release + ./mk download + ./mk inject The `vendor` commands are handled by the `build` script, calling functions -inside `include/vendor.sh`, and the `./update release` logic is handled +inside `include/vendor.sh`, and the `./mk release` logic is handled directly by the `build` script. More information about `./vendor` commands can be found here: [inserting vendor files](../install/ivy_has_internal.md) -Information about `./update release` is written elsewhere on this page. +Information about `./mk release` is written elsewhere on this page. You can also know what build system revision you have by running: - ./build version + ./mk version This script is the beating heart of Libreboot. Break it and you break Libreboot. @@ -1150,7 +1211,7 @@ include/git.sh These functions in here previously existed as independent scripts, but they were unified here, and they are used when you pass the `-f` argument -to `script/update/trees` (e.g. `./update trees -f coreboot`). +to `script/update/trees` (e.g. `./mk -f coreboot`). These functions deal with git cloning, submodule updates, revision resets and the application of patch files via `git am`. *Every* git repository downloaded @@ -1199,20 +1260,20 @@ script/roms This builds coreboot ROM images. -Command: `./build roms targetname` +Command: `./mk -b coreboot targetname` The `targetname` argument must be specified, chosen from this output: - ./build roms list + ./mk -b coreboot list Pass several board names if you wish to build only for specific targets. For example: - ./build roms x60 x200_8mb + ./mk -b coreboot x60 x200_8mb To build *all* targets, specify: - ./build roms all + ./mk -b coreboot Since November 2022, this script can build images for x86 *and* ARM targets. The *ARM* targets are ChromeOS devices (chromebooks and such); Libreboot uses @@ -1321,17 +1382,17 @@ the directory `src/PROJECT/TREE` will be created, reset to the specific revision - for multi-tree projects, all defined targets are scanned for their corresponding tree, and the trees are prepared as defined above. -Basic command: `./update trees FLAG projectname` +Basic command: `./mk FLAG projectname` Special operation: for building coreboot utilities `cbfstool` and `ifdtool` to go under `cbutils/`, do this: - ./update trees -d coreboot TREENAME + ./mk -d coreboot TREENAME Or define specific coreboot tree such as: - ./update trees -d coreboot default - ./update trees -d coreboot cros + ./mk -d coreboot default + ./mk -d coreboot cros FLAG values are (only *one* to be used at a time): @@ -1358,15 +1419,15 @@ As for *projectname", this can either be `coreboot`, `u-boot` or `seabios`. Example commands: - ./update trees -b coreboot - ./update trees -b coreboot x200_8mb - ./update trees -b coreboot x230_12mb x220_8mb t1650_12mb - ./update trees -x coreboot default - ./update trees -u seabios - ./update trees -m u-boot gru_bob - ./update trees -f coreboot - ./update trees -d coreboot default - ./update trees -d coreboot + ./mk -b coreboot + ./mk -b coreboot x200_8mb + ./mk -b coreboot x230_12mb x220_8mb t1650_12mb + ./mk -x coreboot default + ./mk -u seabios + ./mk -m u-boot gru_bob + ./mk -f coreboot + ./mk -d coreboot default + ./mk -d coreboot NOTE: the `-x` and `-c` options will cause an exit with zero status, when the target's corresponding source tree is unavailable; a non-zero status is @@ -1376,11 +1437,11 @@ if unavailable and *that* too will return with non-zero status under fault conditions. NOTE: "target" can indeed be the tree name, under some circumstances. For -example, `./update trees -m seabios default` +example, `./mk -m seabios default` After `projectname`, a target can be specified, but if no target is specified, then *all* targets will be operated on. For -example, `./update trees -b coreboot` will attempt to build *all* +example, `./mk -b coreboot` will attempt to build *all* coreboot ROM images. NOTE: the `coreboot` projectname here shall cause the ROM images to go diff --git a/site/news/10.md b/site/news/10.md index 9dfbf55..c14d6dd 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -10,7 +10,7 @@ historically been at odds with the FSF both socially, technically and politically. The restored version is essentially identical, but has been edited without altering any of the substance, and further information going up to the month of August 2024 has been added at the end, which was not -available earlier on because... Libreboot not not yet invented time travel.** +available earlier on because... Libreboot has not yet invented time travel.** Anyway, article time: @@ -1349,12 +1349,11 @@ They did rename, to GNU Boot, but only after I forced them to do so. I forced them to do so, by exposing the moral bankrupcy on their part, in their initial effort to steal the Libreboot name. -The points raised in the GNU Boot article are *still valid* on today, 12 -December 2023. GNU Boot 0.1 RC3 is imminent for release, on this day, and it -is still based largely on Libreboot 20220710, with only superficial changes on +On this day, GNU Boot 0.1 RC3 was imminent for release, on this day, and it +was still based largely on Libreboot 20220710, with only superficial changes on top of it. it still has all the old, obsolete revisions for all projects, including coreboot. It still has all of the same bugs, that Libreboot has since -fixed, especially during 2023. +fixed, especially during 2023. Libreboot is *vastly* superior, in every way. Unlike with their first attempt, GNU Boot is fully hosted on the GNU Savannah infrastructure, as any proper GNU project should be. I *respect* the GNU Boot From bae3fad52cb2c9527024f7b0bd340e452b112057 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 23 Aug 2024 12:14:00 +0100 Subject: [PATCH 033/399] switch libreboot.org back to purple --- site/global.css | 25 ++++++++++--------------- site/template.de.include | 2 +- site/template.include | 2 +- site/template.it.include | 2 +- site/template.uk.include | 2 +- site/template.zh-cn.include | 2 +- 6 files changed, 15 insertions(+), 20 deletions(-) diff --git a/site/global.css b/site/global.css index 20d52b0..d7aab89 100644 --- a/site/global.css +++ b/site/global.css @@ -2,9 +2,6 @@ * This CSS is released under Creative Commons Zero 1.0 Universal license: * https://creativecommons.org/publicdomain/zero/1.0/legalcode.txt */ - -h1,h2,h3,h4{font-weight:normal; font-size:2em} - .specs { float: right; @@ -17,7 +14,7 @@ h1,h2,h3,h4{font-weight:normal; font-size:2em} } -@media (max-width:90em) +@media (max-width:89em) { html { @@ -34,19 +31,17 @@ h1,h2,h3,h4{font-weight:normal; font-size:2em} html { - color: #280518; - background: #efe9e9; + background: #280b22; + color: #eee; font-family: sans-serif; line-height: 1.4; -} -hr { - color: #eee; + text-shadow: 1px 1px #000; } -code,pre, #TOC, a:hover, img +code,pre, #TOC, a:hover { - background: #e3d6d6; border-radius:0.25em; + background: #4e324e; } header img { @@ -55,7 +50,7 @@ header img a { - color: #3e223e; + color: #fcc; } img,video,iframe,pre @@ -89,14 +84,14 @@ html, ul, #TOC @media (min-width:60em) { - .title-logo{display:none; background:none;} + .title-logo{display:none} div.title,h1.title { - background:url("https://av.libreboot.org/logo/logo.png") no-repeat; + background:url("/favicon.ico") no-repeat; background-size:auto 99%; min-height:2em } div.title {background-position:right} - h1.title {padding:0 4em; font-size:2.5em; font-weight:normal;} + h1.title {padding:0 4em} #TOC { float: left; diff --git a/site/template.de.include b/site/template.de.include index 2929f89..106168d 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -53,7 +53,7 @@ $if(title)$

$title$

diff --git a/site/template.include b/site/template.include index eea3673..6a5d9cc 100644 --- a/site/template.include +++ b/site/template.include @@ -53,7 +53,7 @@ $if(title)$

$title$

diff --git a/site/template.it.include b/site/template.it.include index b9145ca..4a257bf 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -53,7 +53,7 @@ $if(title)$

$title$

diff --git a/site/template.uk.include b/site/template.uk.include index e18fca7..3592267 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -53,7 +53,7 @@ $if(title)$

$title$

diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index 9be2c54..805614a 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -53,7 +53,7 @@ $if(title)$

$title$

From 918b8a968a716a74eea575050df3010a35764a81 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 23 Aug 2024 15:30:41 +0100 Subject: [PATCH 034/399] make text a bit darker (#ccc, not #eee) i normally use redshift, and the #eee shade looks fine, but the text is a bit too bright when i turn off redshift. ccc looks fine with or without. the dark purple theme was restored, because the light theme was a bit of an eye sore, but the shiny bright text on the dark theme was also an eye strain the slightly darker shade should be easier on the eyes Signed-off-by: Leah Rowe --- site/global.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/global.css b/site/global.css index d7aab89..a5b0384 100644 --- a/site/global.css +++ b/site/global.css @@ -32,7 +32,7 @@ html { background: #280b22; - color: #eee; + color: #ccc; font-family: sans-serif; line-height: 1.4; text-shadow: 1px 1px #000; From 111405dfe70c79b9da02dddc5ff8e801e9d0979c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 24 Aug 2024 14:46:29 +0100 Subject: [PATCH 035/399] rounded borders on images Signed-off-by: Leah Rowe --- site/global.css | 1 + 1 file changed, 1 insertion(+) diff --git a/site/global.css b/site/global.css index a5b0384..e80c1af 100644 --- a/site/global.css +++ b/site/global.css @@ -57,6 +57,7 @@ img,video,iframe,pre { max-width: 100%; overflow: auto; + border-radius:0.25em; } .title>*, header ul>li, .nav ul>li, From f8f58a679e6e9ecdcf67cbc2fbdb2c74bda3cb65 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 25 Aug 2024 12:05:23 +0100 Subject: [PATCH 036/399] update freedom-status re-populate the list of boards that need neutered ME Signed-off-by: Leah Rowe --- site/freedom-status.md | 10 +++------- site/freedom-status.uk.md | 9 +++------ site/template-license.md | 2 +- 3 files changed, 7 insertions(+), 14 deletions(-) diff --git a/site/freedom-status.md b/site/freedom-status.md index 650ff4a..a1f67d0 100644 --- a/site/freedom-status.md +++ b/site/freedom-status.md @@ -238,13 +238,9 @@ Intel/x86 ### Intel ME: -Neutered ME required on these targets: `t420_8mb`, `t420s_8mb`, `t430_12mb`, -`t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, -`w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, -`x230edp_12mb`, `x230t_12mb`, `x230t_16mb`, `hp8200sff`, `hp2560p_8mb`, -`hp2570p_16mb`, `hp8300usdt_16mb`, `hp2170p_16mb`, `hp9470m_16mb`, -`hp820g2_12mb`, `t1650_12mb` and the OptiPlex 9020 ports, also -Sandybridge/Ivybridge/Haswell Dell Latitude. +Neutered ME required on these targets: + +`dell9020mt_nri_12mb`, `dell9020sff_nri_12mb`, `e5420_6mb`, `e5520_6mb`, `e5530_12mb`, `e6220_10mb`, `e6230_12mb`, `e6320_10mb`, `e6330_12mb`, `e6420_10mb`, `e6430_12mb`, `e6520_10mb`, `e6530_12mb`, `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8200sff_4mb`, `hp8200sff_8mb`, `hp820g2_12mb`, `hp8300cmt_16mb`, `hp8300usdt_16mb`, `hp8460pintel_8mb`, `hp8470pintel_16mb`, `hp8560w_8mb`, `hp9470m_16mb`, `t1650_12mb`, `t420_8mb`, `t420s_8mb`, `t430_12mb`, `t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230t_12mb`, `x230t_16mb` As stated, Libreboot provides this in a state where the ME is no longer a threat to security. It initialises itself, but then does nothing, so it's diff --git a/site/freedom-status.uk.md b/site/freedom-status.uk.md index c613e4d..a6ac32a 100644 --- a/site/freedom-status.uk.md +++ b/site/freedom-status.uk.md @@ -329,12 +329,9 @@ Intel/x86 ### Intel ME: -Нейтралізований ME потрібен на цих цілях: `t420_8mb`, `t420s_8mb`, `t430_12mb`, -`t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, -`w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, -`x230edp_12mb`, `x230t_12mb`, `x230t_16mb`, `hp8200sff_8mb`, `hp2560p_8mb`, -`hp2570p_16mb`, `hp2170p_16mb`, `hp9470m_16mb`, `hp820g2_12mb`, `t1650_12mb` та -Dell OptiPlex 9020, Sandybridge/Ivybridge/Haswell Dell Latitude. +Нейтралізований ME потрібен на цих цілях: + +`dell9020mt_nri_12mb`, `dell9020sff_nri_12mb`, `e5420_6mb`, `e5520_6mb`, `e5530_12mb`, `e6220_10mb`, `e6230_12mb`, `e6320_10mb`, `e6330_12mb`, `e6420_10mb`, `e6430_12mb`, `e6520_10mb`, `e6530_12mb`, `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8200sff_4mb`, `hp8200sff_8mb`, `hp820g2_12mb`, `hp8300cmt_16mb`, `hp8300usdt_16mb`, `hp8460pintel_8mb`, `hp8470pintel_16mb`, `hp8560w_8mb`, `hp9470m_16mb`, `t1650_12mb`, `t420_8mb`, `t420s_8mb`, `t430_12mb`, `t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230t_12mb`, `x230t_16mb` Як заявлено, Libreboot надає це в стані, де ME більше не є загрозою для безпеки. Він ініціалізує себе, але потім нічого не робить, тому його diff --git a/site/template-license.md b/site/template-license.md index b197464..36feeb8 100644 --- a/site/template-license.md +++ b/site/template-license.md @@ -6,7 +6,7 @@ This website is written in Markdown, and compiled into static HTML using Pandoc. An HTML template is used, Copyright (c) 2014--2017, John MacFarlane -Modifications to it are copyright 2021 Leah Rowe, released under the terms of +Modifications to it are copyright 2021-2024 Leah Rowe, released under the terms of Creative Commons Zero license version 1.0 universal, which you can find here: From 82120ac94e131f56d965bbacabf016f502e224e2 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 25 Aug 2024 14:08:18 +0100 Subject: [PATCH 037/399] delete unused page Signed-off-by: Leah Rowe --- site/docs/install/x220_external.md | 13 ------------- 1 file changed, 13 deletions(-) delete mode 100644 site/docs/install/x220_external.md diff --git a/site/docs/install/x220_external.md b/site/docs/install/x220_external.md deleted file mode 100644 index 3e982fe..0000000 --- a/site/docs/install/x220_external.md +++ /dev/null @@ -1,13 +0,0 @@ ---- -title: ThinkPad X220/X220T external flashing -x-toc-enable: true -... - -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** - -Make sure to read the [Ivybridge/Haswell common guide](/docs/install/ivy_has_common.html) before attempting to flash this board. -After you have prepared a rom and split it into two section, refer to this guide for disassembly instructions. - -We don't currently have disassembly instructions for this board. -See [coreboot docs](https://www.coreboot.org/Board:lenovo/x220) for how to disassemble this machine to reveal the flash chips. From d2e8cda2d111f9316c6d24086cdc079af179fba6 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 26 Aug 2024 02:22:04 +0100 Subject: [PATCH 038/399] unified internal dell latitude flashing guide Signed-off-by: Leah Rowe --- site/docs/install/dell_internal.md | 91 ++++++++++++++++++++++++++++ site/docs/install/e6400.md | 86 +++++--------------------- site/docs/install/e6430.md | 97 ++---------------------------- 3 files changed, 111 insertions(+), 163 deletions(-) create mode 100644 site/docs/install/dell_internal.md diff --git a/site/docs/install/dell_internal.md b/site/docs/install/dell_internal.md new file mode 100644 index 0000000..275bf19 --- /dev/null +++ b/site/docs/install/dell_internal.md @@ -0,0 +1,91 @@ +--- +title: Internally flash Dell Latitude laptops +x-toc-enable: true +... + +Make sure SecureBoot is disabled, if you're running a UEFI-based Latitude. +Other steps also required, described on this page and in the `README.md` +file included with `dell-flash-unlock`. + +Internal flashing +================= + +You can simply boot Linux/BSD, on the Dell Latitude you wish to flash, and +run `flashprog` from there, for Libreboot installation. Certain other steps +are also required, documented in the steps below: + +Flashing from BSD +----------------- + +Basically identical to Linux, except that you must +set `kern.securelevel` to -1 on boot, which is equivalent to `iomem=relaxed` +under Linux, for this purpose. + +The `dell-flash-unlock` utility will compile and run just fine. It has been +tested on OpenBSD, NetBSD and FreeBSD. With this in mind, simply follow the +Linux instrucctions but adapt accordingly. + +If unsure, just boot a live Linux distro via USB and run it all there. + +Flashing from Linux +------------------- + +MAKE SURE you boot with this Linux kernel parameter: `iomem=relaxed` - this +disables memory protections, permitting `/dev/mem` access needed by flashprog. +The flash is memory mapped and flashprog accesses it via `/dev/mem`. + +You can flash Libreboot directly from the vendor (Dell) BIOS, without taking +the machine apart. It can be done entirely from Linux. It will probably also +work on BSD systems, but it has only been testing on Linux thus far. + +**NOTE (15 October 2023): The util is now called `dell-flash-unlock`, but it +was previously called `e6400-flash-unlock`. Links have been updated.** + +Check `util/dell-flash-unlock` in the `lbmk.git` repository, or in release +archives for Libreboot releases from 20230423 onwards. + +Go in there: + + cd util/dell-flash-unlock + make + +**With this program, you can unlock the flash in such a way where everything +is writeable. Information about how to use it is in the `README.md` file which +is included in that program's directory, or you can read it online here:** + +**** + +**Please make sure that you do fully read the README, because it contains +useful information.** + +Literally just run that program, and do what it says. You run it once, and shut +down, and when you do, the system brings itself back up automatically; on some +systems, you have to boot the machine back up manually, after power down. Then +you run it and flash it unlocked. Then you run it again. The source code is +intuitive enough that you can easily get the gist of it; it's writing some EC +commands and changing some chipset config bits. The EC on this machine is +hooked up to the `GPIO33` signal, sometimes called `HDA_DOCK_EN`, which sets +the flash descriptor override thus disabling any flash protection by the IFD. +It also bypasses the SMM BIOS lock protection by disabling SMIs, and Dell's +BIOS doesn't set any other type of protection either such as writing to +Protected Range registers. + +MAKE SURE to back up the original firmware image first: + + flashprog -p internal -r factory.rom + +When you flash it, you can use this command: + + flashprog -p internal -w libreboot.rom + +Where `libreboot.rom` is your Dell Latitude ROM. *Make sure* it's the right +one. If flashprog complains about multiple flash chips detected, just pick one of them (doesn't matter which one). On *most* Dell machines, the most correct +would probably be this option in flashprog: `-c MX25L3205D/MX25L3208D`. + +So: + + flashprog -p internal -w libreboot.rom -c MX25L3205D/MX25L3208D + +When you see flashprog say `VERIFIED` at the end, that means the flash was +successful. If you don't see that, or you're unsure, please [contact the +Libreboot project via IRC](../../contact.md). diff --git a/site/docs/install/e6400.md b/site/docs/install/e6400.md index 3b66973..79aa481 100644 --- a/site/docs/install/e6400.md +++ b/site/docs/install/e6400.md @@ -70,8 +70,16 @@ Use this to find out: flashprog -p internal -We believe most/all are 4MB (32Mb) flash sizes, but larger ROM images are -provided for people who wish to upgrade. +We believe most/all are 4MB (32Mb) flash sizes. The schematics hint that +some boards may have 6MB flash (4MB and 2MB, dual chip), but we've only ever +seen 4MB setups in the wild. You can still flash the 4MB image on 6MB setups, +if it's encountered, by just leaving the higher 2MB part unflashed, because +the flash descriptor (in Libreboot) configures everything so that the BIOS +region ends just before the 4MB mark, in flash; the BIOS region is the final +region, in the higher part of flash as defined *by the descriptor*, regardless +of whether that is the actual end of the flash. + +Libreboot does currently provide 6MB images on this board, for these reasons. MAC address {#macaddress} =========== @@ -171,77 +179,13 @@ codeberg](https://codeberg.org/libreboot/lbmk/issues/14#issuecomment-907758). How to flash internally (no diassembly) ======================================= -Flashing from Linux -------------------- +Please read the article: -MAKE SURE you boot with this Linux kernel parameter: `iomem=relaxed` - this -disables memory protections, permitting `/dev/mem` access needed by flashprog. -The flash is memory mapped and flashprog accesses it via `/dev/mem`. +[Internally flash Dell Latitude laptops](dell_internal.md) -You can flash Libreboot directly from the vendor (Dell) BIOS, without taking -the machine apart. It can be done entirely from Linux. It will probably also -work on BSD systems, but it has only been testing on Linux thus far. - -**NOTE (15 October 2023): The util is now called `dell-flash-unlock`, but it -was previously called `e6400-flash-unlock`. Links have been updated.** - -Check `util/dell-flash-unlock` in the `lbmk.git` repository, or in release -archives for Libreboot releases from 20230423 onwards. - -Go in there: - - cd util/dell-flash-unlock - make - -With this program, you can unlock the flash in such a way where everything -is writeable. Information about how to use it is in the `README.md` file which -is included in that program's directory, or you can read it online here: - - - -Literally just run that program, and do what it says. You run it once, and shut -down, and when you do, the system brings itself back up automatically. Then -you run it and flash it unlocked. Then you run it again. The source code is -intuitive enough that you can easily get the gist of it; it's writing some EC -commands and changing some chipset config bits. The EC on this machine is -hooked up to the `GPIO33` signal, sometimes called `HDA_DOCK_EN`, which sets -the flash descriptor override thus disabling any flash protection by the IFD. -It also bypasses the SMM BIOS lock protection by disabling SMIs, and Dell's -BIOS doesn't set any other type of protection either such as writing to -Protected Range registers. - -When you flash it, you can use this command: - - flashprog -p internal -w libreboot.rom - -Where `libreboot.rom` is your E6400 ROM. *Make sure* it's the right one. -If flashprog complains about multiple flash chips detected, just pick one of -them (doesn't matter which one). On *most* Dell machines, the most correct -would probably be this option in flashprog: `-c MX25L3205D/MX25L3208D`. - -So: - - flashprog -p internal -w libreboot.rom -c MX25L3205D/MX25L3208D - -When you see flashprog say `VERIFIED` at the end, that means the flash was -successful. If you don't see that, or you're unsure, please [contact the -Libreboot project via IRC](../../contact.md). - -BACK UP THE FACTORY BIOS -======================== - -The `-w` option flashes `libreboot.rom`. You may consider *backing up* the -original Dell BIOS first, using the -r option: - - flashprog -p internal -r backup.rom -c MX25L3205D/MX25L3208D - -Do this while in a flashable state, after the 2nd run of `dell-flash-unlock`. - -Make sure the `backup.rom` file gets backed up to an external storage media, -not the E6400 itself. - -With this method, you can probably flash it within 5 minutes. Again, zero -disassembly required! +Dell's original BIOS/UEFI firmware typically prevents write access, but it +has bugs which can be exploited, to enable Libreboot installation very easily. +You do not have to disassemble the machine. How to flash externally ========================= diff --git a/site/docs/install/e6430.md b/site/docs/install/e6430.md index 602e3ac..a33591e 100644 --- a/site/docs/install/e6430.md +++ b/site/docs/install/e6430.md @@ -22,10 +22,6 @@ and should be assumed *broken* by default. Flash chip size {#flashchips} =============== -Use this to find out: - - flashprog -p internal - The internal flash size is 12MiB on this board; physically, an 8MiB and 4MiB chip (two chips) but this distinction only matters for external flashing. @@ -72,96 +68,13 @@ that the Nvidia models do not work. How to flash internally (no diassembly) ======================================= -Warning for BSD users ---------------------- +Please read the article: -**NOTE (15 October 2023): The util is now called `dell-flash-unlock`, but it -was previously called `e6400-flash-unlock`. Links have been updated.** +[Internally flash Dell Latitude laptops](dell_internal.md) -BSD *boots* and works properly on these machines, but take note: - -Nicholas's [dell-flash-unlock](https://browse.libreboot.org/lbmk.git/plain/util/dell-flash-unlock/dell_flash_unlock.c) -utility has been ported to OpenBSD, but *other* BSDs are assumed unsupported for -now. - -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. - -NOTE: BSD is mentioned above, but the only BSD tested for `dell-flash-unlock` -is OpenBSD, as of 15 October 2023. - -Flashing from Linux -------------------- - -MAKE SURE you boot with this Linux kernel parameter: `iomem=relaxed` - this -disables memory protections, permitting `/dev/mem` access needed by flashprog. -The flash is memory mapped and flashprog accesses it via `/dev/mem`. - -You can flash Libreboot directly from the vendor (Dell) BIOS, without taking -the machine apart. It can be done entirely from Linux. It will probably also -work on BSD systems, but it has only been testing on Linux thus far. - -**NOTE (15 October 2023): The util is now called `dell-flash-unlock`, but it -was previously called `e6400-flash-unlock`. Links have been updated.** - -Check `util/dell-flash-unlock` in the `lbmk.git` repository, or in release -archives for Libreboot releases from 20230423 onwards. - -Go in there: - - cd util/dell-flash-unlock - make - -With this program, you can unlock the flash in such a way where everything -is writeable. Information about how to use it is in the `README.md` file which -is included in that program's directory, or you can read it online here: - - - -Literally just run that program, and do what it says. You run it once, shut -down, and then power on the machine. Then run it again to confirm that the -flash is unlocked. The source code is intuitive enough that you can easily get -the gist of it; it's writing some EC commands and changing some chipset config -bits. The EC on this machine is hooked up to the `HDA_SDO` signal, also known -as the Flash Descriptor Override (FDO), which disables any flash protection by -the IFD. When booted with the FDO set, the original Dell firmware disables all -other BIOS write protections such as SMM BIOS lock bits. - -*Make sure* to make a backup of the original firmware before proceeding to -flash; see the instructions below. - -When you flash it, you can use this command: - - flashprog -p internal -w libreboot.rom - -Where `libreboot.rom` is your E6430 ROM. *Make sure* it's the right one. -If flashprog complains about multiple flash chips detected, just pick one of -them (doesn't matter which one), with the `-C` flag as directed; just pick one, -and if it doesn't work, try the next. - -When you see flashprog say `VERIFIED` at the end, that means the flash was -successful. If you don't see that, or you're unsure, please [contact the -Libreboot project via IRC](../../contact.md). - -BACK UP THE FACTORY BIOS -======================== - -The `-w` option flashes `libreboot.rom`. You may consider *backing up* the -original Dell BIOS first, using the -r option: - - flashprog -p internal -r backup.rom - -AGAIN: make sure to use `-C` accordingly, if you need to pick a chip (where -flashprog has detected multiple chip definitions). Just pick one, any of them -will probably work, if not try the next. - -Do this while in a flashable state, after the 2nd run of `dell-flash-unlock`. - -Make sure the `backup.rom` file gets backed up to an external storage media, -not the E6430 itself. - -With this method, you can probably flash it within 5 minutes. Again, zero -disassembly required! +Dell's original BIOS/UEFI firmware typically prevents write access, but it +has bugs which can be exploited, to enable Libreboot installation very easily. +You do not have to disassemble the machine. How to flash externally ========================= From 1a330900d4b5934e043047d1c6dc7ea4b7702189 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 26 Aug 2024 03:12:42 +0100 Subject: [PATCH 039/399] unified iomem=relaxed instructions Signed-off-by: Leah Rowe --- site/devmem.md | 79 ++++++++++++++++++++++++++++++ site/docs/hardware/hp8200sff.md | 14 ++++-- site/docs/hardware/hp8300usdt.md | 11 ++++- site/docs/install/dell_internal.md | 31 ++++-------- site/docs/install/ich9utils.md | 5 +- site/docs/install/index.md | 62 ++--------------------- site/faq.md | 29 +++-------- 7 files changed, 120 insertions(+), 111 deletions(-) create mode 100644 site/devmem.md diff --git a/site/devmem.md b/site/devmem.md new file mode 100644 index 0000000..d4ded98 --- /dev/null +++ b/site/devmem.md @@ -0,0 +1,79 @@ +--- +title: Disabling /dev/mem protections +x-toc-enable: true +... + +This section applies to any program that makes use of lower memory +below 1MB. This applies to `flashprog` and `dell-flash-unlock` plus any other +tool that uses lower memory and/or port I/O + +Port I/O is up to you, BUT it is recommended that you re-disable lower memory +access once you no longer need it, as this is a useful security layer against +any wrongful operations that you may later inadvertently run as root. + +Also disable SecureBoot +======================= + +If you're using a UEFI setup, it's probably because you're using +a latter Intel platform and want to flash Libreboot internally, from +the factory firmware to Libreboot. + +If the factory firmware implements UEFI, and this is how you boot when +using the factory firmware, please ensure that *SecureBoot* is disabled, +because it will interfere with lower memory accesses if left enabled. + +FLASH ERRORS (and workarounds) +======================= + +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +now, as of 27 January 2024, which is a fork of flashrom.** + +This section relates to installing libreboot on supported targets. + +Right out of the gate, some users may experience errors with flashprog when +using the internal programmer. They are: + +/dev/mem access error +--------------------- + +NOTE: if running `flashprog -p internal` for software based flashing, and you +get an error related to `/dev/mem` access, you should reboot with +`iomem=relaxed` kernel parameter before running flashprog, or use a kernel that +has `CONFIG_STRICT_DEVMEM` not enabled. + +On NetBSD and OpenBSD systems, the equivalent to `iomem=relaxed` in this case +is `kernel.securelevel=-1`; see [NetBSD securelevel +manual](https://wiki.netbsd.org/tutorials/kernel_secure_levels/) +and [OpenBSD securelevel manual](https://man.openbsd.org/securelevel). + +ERROR: Could not get I/O privileges +------------------------------------ + +Error message: `ERROR: Could not get I/O privileges (Function not implemented)` + +If you get this while running `flashprog -p internal -w filename.rom` (or any +internal flash operation), note: flashprog heavily uses ioperm/iopl functions +to operate the internal flasher, at least on x86 machines. + +See: + +Yeah, just enable `CONFIG_X86_IOPL_IOPERM` in your Linux kernel. This is +a *build-time* option, so you must re-compile your kernel, or find a build that +has this option enabled (IOPL emulation). Many default kernel configurations +now disable this option. + +Here's a handy-dandy guide for building a kernel from source: + + +**BSD users:** On OpenBSD and NetBSD if you get similar errors, note that it +should work here, but you need to boot with `kern.securelevel=-1`. +See: [NetBSD securelevel manual](https://wiki.netbsd.org/tutorials/kernel_secure_levels/) +and [OpenBSD securelevel manpage](https://man.openbsd.org/securelevel). + +Otherwise, if you get such errors, it may just be that you're not root. You +must run flashprog as root, at least to use the internal flasher (using external +USB flashing dongles doesn't normally require root). + +NOTE: BSD kernels seem to still enable IOPL by default. However, many modern +Linux setups disable it by default these days, so it may be in teh future +that most users will start needing to compile their own kernels. (go BSD!) diff --git a/site/docs/hardware/hp8200sff.md b/site/docs/hardware/hp8200sff.md index 0255282..8897646 100644 --- a/site/docs/hardware/hp8200sff.md +++ b/site/docs/hardware/hp8200sff.md @@ -49,6 +49,14 @@ P*: Partially works with blobs | **SeaBIOS with GRUB** | Works | +Disable security before flashing +================================ + +Before internal flashing, you must first disable `/dev/mem` protections. Make +sure to re-enable them after you're finished. + +See: [Disabling /dev/mem protection](../install/devmem.md) + Introduction ============ @@ -138,10 +146,6 @@ between the pins until you can see the normal BIOS boot screen. ![](https://av.libreboot.org/hp8200sff/fdo\_screwdriver.jpg) -Boot into an OS supported by flashprog. On Linux, make sure you add the -kernel parameter **iomem=relaxed** which disables memory protections that -prevent BIOS flashing. - NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. @@ -179,7 +183,7 @@ Power off the computer. Make sure to power off, rebooting is not enough! Power on the computer. Now we can flash the full 8 MiB image. Boot to an OS with flashprog -again. On linux, remember the **iomem=relaxed** kernel parameter. +again. NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. diff --git a/site/docs/hardware/hp8300usdt.md b/site/docs/hardware/hp8300usdt.md index ce94501..0585c8b 100644 --- a/site/docs/hardware/hp8300usdt.md +++ b/site/docs/hardware/hp8300usdt.md @@ -24,6 +24,14 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** | **Intel ME/AMD PSP** | Present, neutered | | **Flash chip** | SOIC-16 16MiB | +Disable security before flashing +================================ + +Before internal flashing, you must first disable `/dev/mem` protections. Make +sure to re-enable them after you're finished. + +See: [Disabling /dev/mem protection](../install/devmem.md) + # Introduction This is a small but powerful desktop using Sandy or Ivy Bridge CPUs @@ -71,8 +79,7 @@ crystal (small metal cylinder) and the power cable for the optical drive. ![](https://av.libreboot.org/hp8300usdt/jumper_to_fdo.jpg) -Boot into an OS of your choice (that has flashprog support). When using Linux, -you need to supply the kernel parameter `iomem=relaxed`. +Boot into an OS of your choice (that has flashprog support). NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. diff --git a/site/docs/install/dell_internal.md b/site/docs/install/dell_internal.md index 275bf19..33e10b9 100644 --- a/site/docs/install/dell_internal.md +++ b/site/docs/install/dell_internal.md @@ -7,6 +7,14 @@ Make sure SecureBoot is disabled, if you're running a UEFI-based Latitude. Other steps also required, described on this page and in the `README.md` file included with `dell-flash-unlock`. +Disable security before flashing +================================ + +Before internal flashing, you must first disable `/dev/mem` protections. Make +sure to re-enable them after you're finished. + +See: [Disabling /dev/mem protection](devmem.md) + Internal flashing ================= @@ -14,29 +22,8 @@ You can simply boot Linux/BSD, on the Dell Latitude you wish to flash, and run `flashprog` from there, for Libreboot installation. Certain other steps are also required, documented in the steps below: -Flashing from BSD ------------------ - -Basically identical to Linux, except that you must -set `kern.securelevel` to -1 on boot, which is equivalent to `iomem=relaxed` -under Linux, for this purpose. - -The `dell-flash-unlock` utility will compile and run just fine. It has been -tested on OpenBSD, NetBSD and FreeBSD. With this in mind, simply follow the -Linux instrucctions but adapt accordingly. - -If unsure, just boot a live Linux distro via USB and run it all there. - -Flashing from Linux -------------------- - -MAKE SURE you boot with this Linux kernel parameter: `iomem=relaxed` - this -disables memory protections, permitting `/dev/mem` access needed by flashprog. -The flash is memory mapped and flashprog accesses it via `/dev/mem`. - You can flash Libreboot directly from the vendor (Dell) BIOS, without taking -the machine apart. It can be done entirely from Linux. It will probably also -work on BSD systems, but it has only been testing on Linux thus far. +the machine apart. It can be done entirely from Linux/BSD. **NOTE (15 October 2023): The util is now called `dell-flash-unlock`, but it was previously called `e6400-flash-unlock`. Links have been updated.** diff --git a/site/docs/install/ich9utils.md b/site/docs/install/ich9utils.md index c889f95..2be3496 100644 --- a/site/docs/install/ich9utils.md +++ b/site/docs/install/ich9utils.md @@ -196,10 +196,7 @@ Read on for more information. Use the `ro` files mentioned below, and your flash will be read-only in software (you can still externally re-flash and read the contents of flash). -For ease of use, libreboot provides ROMs that are read-write by default. In -practise, you can boot a Linux kernel with access to lower memory disabled -which will make software re-flashing impossible (unless you reboot with such -memory protections disabled, e.g. `iomem=relaxed` kernel parameter). +For ease of use, libreboot provides ROMs that are read-write by default. ICH9 deblob utility {#ich9deblob} =================== diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 038ba2f..19757ef 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -22,57 +22,13 @@ if you want to send your machine in to have Libreboot installed for you. Leah Rowe, the founder and lead developer of Libreboot, also owns and operates Minifree Ltd; sales provide funding for the Libreboot project. -FLASH ERRORS (and workarounds) -======================= +**Disable security before flashing** +================================ -**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom.** +**Before internal flashing, you must first disable `/dev/mem` protections. Make +sure to re-enable them after you're finished.** -This section relates to installing libreboot on supported targets. - -Right out of the gate, some users may experience errors with flashprog when -using the internal programmer. They are: - -/dev/mem access error ---------------------- - -NOTE: if running `flashprog -p internal` for software based flashing, and you -get an error related to `/dev/mem` access, you should reboot with -`iomem=relaxed` kernel parameter before running flashprog, or use a kernel that -has `CONFIG_STRICT_DEVMEM` not enabled. - -On NetBSD and OpenBSD systems, the equivalent to `iomem=relaxed` in this case -is `kernel.securelevel=-1`; see [NetBSD securelevel -manual](https://wiki.netbsd.org/tutorials/kernel_secure_levels/) -and [OpenBSD securelevel manual](https://man.openbsd.org/securelevel). - -ERROR: Could not get I/O privileges ------------------------------------- - -Error message: `ERROR: Could not get I/O privileges (Function not implemented)` - -If you get this while running `flashprog -p internal -w filename.rom` (or any -internal flash operation), note: flashprog heavily uses ioperm/iopl functions -to operate the internal flasher, at least on x86 machines. - -See: - -Yeah, just enable `CONFIG_X86_IOPL_IOPERM` in your Linux kernel. This is -a *build-time* option, so you must re-compile your kernel, or find a build that -has this option enabled (IOPL emulation). Many default kernel configurations -now disable this option. - -Here's a handy-dandy guide for building a kernel from source: - - -**BSD users:** On OpenBSD and NetBSD if you get similar errors, note that it -should work here, but you need to boot with `kern.securelevel=-1`. -See: [NetBSD securelevel manual](https://wiki.netbsd.org/tutorials/kernel_secure_levels/) -and [OpenBSD securelevel manpage](https://man.openbsd.org/securelevel). - -Otherwise, if you get such errors, it may just be that you're not root. You -must run flashprog as root, at least to use the internal flasher (using external -USB flashing dongles doesn't normally require root). +**See: [Disabling /dev/mem protection](devmem.md)** PRECAUTIONS =========== @@ -564,14 +520,6 @@ Your flash chip is in an unknown state. If you see this, rejoice! It means that the flash was successful. Please do not panic. Shut down now, and wait a few seconds, then turn back on again. -**WARNING: if flashrom (from Libreboot 20160907 utils) complains -about `/dev/mem` access, please -run `sudo ./bucts 0`. If flashrom is complaining about `/dev/mem`, it means -that you have `CONFIG_STRICT_DEVMEM` enabled in your kernel. Reboot with the -following kernel parameter added in your bootloader: `iomem=relaxed` and try -again with the above instructions. DO NOT continue until the above works, and -you see the expected flashrom output as indicated above.** - If you *did* run flashrom and it failed to flash, but you set bucts to 1 and shut down, don't worry. Just remove the yellow coin-cell battery (it's underneath the keyboard, connected to the mainboard), wait a minute or two, reconnect the diff --git a/site/faq.md b/site/faq.md index 8afffeb..f66e56a 100644 --- a/site/faq.md +++ b/site/faq.md @@ -8,6 +8,14 @@ now, as of 27 January 2024, which is a fork of flashrom. AKA Frequently Questioned Answers +Disable security before flashing +================================ + +Before internal flashing, you must first disable `/dev/mem` protections. Make +sure to re-enable them after you're finished. + +See: [Disabling /dev/mem protection](install/devmem.md) + Buy Libreboot pre-installed ========== @@ -55,27 +63,6 @@ Testing involves minimal effort and really helps out the project. See the [board maintainers documentation](/docs/maintain/testing.md) if you are interested in testing roms before they are released. -Flashrom complains about DEVMEM access --------------------------------------- - -If running `flashprog -p internal` for software based flashing, and -you get an error related to /dev/mem access, you should reboot with -`iomem=relaxed` kernel parameter before running flashprog, or use a kernel -that has `CONFIG_STRICT_DEVMEM` and `CONFIG_IO_STRICT_DEVMEM` not enabled. - -Example flashprog output with both `CONFIG_STRICT_DEVMEM` and `CONFIG_IO_STRICT_DEVMEM` enabled: -``` -flashprog v0.9.9-r1955 on Linux 4.11.9-1-ARCH (x86_64) -flashprog is free software, get the source code at https://flashprog.org - -Calibrating delay loop... OK. -Error accessing high tables, 0x100000 bytes at 0x000000007fb5d000 -/dev/mem mmap failed: Operation not permitted -Failed getting access to coreboot high tables. -Error accessing DMI Table, 0x1000 bytes at 0x000000007fb27000 -/dev/mem mmap failed: Operation not permitted -``` - Uneven backlight on GM45 ThinkPads ---------------------------------- From 41861ae96f70d243634198c19c4353ed1d529bc1 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 26 Aug 2024 03:14:08 +0100 Subject: [PATCH 040/399] move devmem.md to correct location Signed-off-by: Leah Rowe --- site/{ => docs/install}/devmem.md | 0 site/faq.md | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) rename site/{ => docs/install}/devmem.md (100%) diff --git a/site/devmem.md b/site/docs/install/devmem.md similarity index 100% rename from site/devmem.md rename to site/docs/install/devmem.md diff --git a/site/faq.md b/site/faq.md index f66e56a..bbaca8f 100644 --- a/site/faq.md +++ b/site/faq.md @@ -14,7 +14,7 @@ Disable security before flashing Before internal flashing, you must first disable `/dev/mem` protections. Make sure to re-enable them after you're finished. -See: [Disabling /dev/mem protection](install/devmem.md) +See: [Disabling /dev/mem protection](docs/install/devmem.md) Buy Libreboot pre-installed ========== From 9bc8fb3eba363f5d68086d55fb6ad8222c4de687 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 26 Aug 2024 03:47:30 +0100 Subject: [PATCH 041/399] remove redundant i945 thinkpad unbrick info the bucts unbrick instructions are not useful, because libreboot already provides both bootblocks as duplicates. we only need these guides to be for teardown, then linking to the SPI flasher guide Signed-off-by: Leah Rowe --- site/docs/install/t60_unbrick.md | 71 ++------------------------ site/docs/install/x60_unbrick.md | 68 ++---------------------- site/docs/install/x60tablet_unbrick.md | 68 ++---------------------- 3 files changed, 13 insertions(+), 194 deletions(-) diff --git a/site/docs/install/t60_unbrick.md b/site/docs/install/t60_unbrick.md index efa9e1c..f4200a4 100644 --- a/site/docs/install/t60_unbrick.md +++ b/site/docs/install/t60_unbrick.md @@ -6,76 +6,11 @@ x-toc-enable: true NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. -This section documents how to recover from a bad flash that prevents -your ThinkPad T60 from booting. - -This section documents how to recover from a bad flash that prevents -your ThinkPad X60 from booting. - -ROM images for this machine are well-tested in libreboot, so bricks are rare. -The most common cause of a brick is operator error, when flashing a ROM image. -In *most* cases, the cause will be that there is no bootblock, or an invalid -one. - -Brick type 1: bucts not reset. {#bucts_brick} -============================== - -You still have Lenovo BIOS, or you had libreboot running and you flashed -another ROM; and you had bucts 1 set and the ROM wasn't dd'd.\* or if -Lenovo BIOS was present and libreboot wasn't flashed. - -There are *2* 64KiB bootblocks possible, in the upper part of the ROM image. -By default (bucts set to 0), the top one is used. If bucts is set to 1, the -lower one (the one before the top one) is used. This bootblock is the first -code that executes, during *romstage* as per coreboot hardware initialization. - -BUC is short for *Backup Control* and TS is short for *Top Swap*. This is a -special register on Intel platforms. Lenovo BIOS sets PRx registers, preventing -software re-flashing, but there is a bug in the protection, allowing everything -*except* the upper 64KiB from being flashed. By default, coreboot only puts a -bootblock in the upper region. If you flash such a ROM, while bucts is set to 1, -the system won't boot because there's not a valid bootblock; this is common if -you're re-flashing when coreboot is already installed, and you didn't set bucts -back to 0. - -When you install on X60/T60 the first time, you set this bucts bit to 1, then -you re-flash a second time and set it back to 0. - -In this case, unbricking is easy: reset BUC.TS to 0 by removing that -yellow cmos coin (it's a battery) and putting it back after a minute or -two:\ -![](https://av.libreboot.org/t60_dev/0006.JPG) - -\*Those dd commands should be applied to all newly compiled T60 ROM -images (the ROM images in libreboot binary archives already have this -applied!): - - dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k - dd if=coreboot.rom bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k | hexdump - dd if=top64k.bin of=coreboot.rom bs=1 seek=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k conv=notrunc - -(doing this makes the ROM suitable for use when flashing a system that -still has Lenovo BIOS running, using those instructions: -. (it says x60, -but instructions for t60 are identical) - -Brick type 2: bad ROM image {#recovery} -=========================================== - -In this instance, you might have flashed a ROM without the top bootblock copied -to the lower 64KiB section in the ROM, and you flashed the ROM for the first -time (from Lenovo BIOS), in which case there is not a valid bootblock. - -In this scenario, you compiled a ROM that had an incorrect -configuration, or there is an actual bug preventing your system from -booting. Or, maybe, you set BUC.TS to 0 and shut down after first flash -while Lenovo BIOS was running. In any case, your system is bricked and -will not boot at all. - "Unbricking" means flashing a known-good (working) ROM. The problem: you can't boot the system, making this difficult. In this situation, -external hardware (see hardware requirements above) is needed which can -flash the SPI chip (where libreboot resides). +external hardware is needed which can flash the SPI chip (where libreboot +resides). First, disassemble the machine using the following steps, and refer +to the external flashing guide linked later from *this* guide. Remove those screws and remove the HDD:\ ![](https://av.libreboot.org/t60_dev/0001.JPG) ![](https://av.libreboot.org/t60_dev/0002.JPG) diff --git a/site/docs/install/x60_unbrick.md b/site/docs/install/x60_unbrick.md index 44621f7..2c0263a 100644 --- a/site/docs/install/x60_unbrick.md +++ b/site/docs/install/x60_unbrick.md @@ -3,72 +3,14 @@ title: ThinkPad X60 Recovery guide x-toc-enable: true ... -This section documents how to recover from a bad flash that prevents -your ThinkPad X60 from booting. - -ROM images for this machine are well-tested in libreboot, so bricks are rare. -The most common cause of a brick is operator error, when flashing a ROM image. -In *most* cases, the cause will be that there is no bootblock, or an invalid -one. - -Brick type 1: bucts not reset. {#bucts_brick} -============================== - -You still have Lenovo BIOS, or you had libreboot running and you flashed -another ROM; and you had bucts 1 set and the ROM wasn't dd'd.\* or if -Lenovo BIOS was present and libreboot wasn't flashed. - -There are *2* 64KiB bootblocks possible, in the upper part of the ROM image. -By default (bucts set to 0), the top one is used. If bucts is set to 1, the -lower one (the one before the top one) is used. This bootblock is the first -code that executes, during *romstage* as per coreboot hardware initialization. - -BUC is short for *Backup Control* and TS is short for *Top Swap*. This is a -special register on Intel platforms. Lenovo BIOS sets PRx registers, preventing -software re-flashing, but there is a bug in the protection, allowing everything -*except* the upper 64KiB from being flashed. By default, coreboot only puts a -bootblock in the upper region. If you flash such a ROM, while bucts is set to 1, -the system won't boot because there's not a valid bootblock; this is common if -you're re-flashing when coreboot is already installed, and you didn't set bucts -back to 0. - -When you install on X60/T60 the first time, you set this bucts bit to 1, then -you re-flash a second time and set it back to 0. - -In this case, unbricking is easy: reset BUC.TS to 0 by removing that -yellow cmos coin (it's a battery) and putting it back after a minute or -two:\ -![](https://av.libreboot.org/x60_unbrick/0004.jpg)\ - -\*Those dd commands should be applied to all newly compiled X60 ROM -images (the ROM images in libreboot binary archives already have this -applied!): - - dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k - dd if=coreboot.rom bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k | hexdump - dd if=top64k.bin of=coreboot.rom bs=1 seek=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k conv=notrunc - -(doing this makes the ROM suitable for use when flashing a system that -still has Lenovo BIOS running, using those instructions: -. - -Brick type 2: bad ROM image {#recovery} -=========================================== - -In this instance, you might have flashed a ROM without the top bootblock copied -to the lower 64KiB section in the ROM, and you flashed the ROM for the first -time (from Lenovo BIOS), in which case there is not a valid bootblock. - -In this scenario, you compiled a ROM that had an incorrect -configuration, or there is an actual bug preventing your system from -booting. Or, maybe, you set BUC.TS to 0 and shut down after first flash -while Lenovo BIOS was running. In any case, your system is bricked and -will not boot at all. +NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +now, as of 27 January 2024, which is a fork of flashrom. "Unbricking" means flashing a known-good (working) ROM. The problem: you can't boot the system, making this difficult. In this situation, -external hardware (see hardware requirements above) is needed which can -flash the SPI chip (where libreboot resides). +external hardware is needed which can flash the SPI chip (where libreboot +resides). First, disassemble the machine using the following steps, and refer +to the external flashing guide linked later from *this* guide. Remove those screws:\ ![](https://av.libreboot.org/x60_unbrick/0000.jpg) diff --git a/site/docs/install/x60tablet_unbrick.md b/site/docs/install/x60tablet_unbrick.md index 652ea74..110a912 100644 --- a/site/docs/install/x60tablet_unbrick.md +++ b/site/docs/install/x60tablet_unbrick.md @@ -3,72 +3,14 @@ title: ThinkPad X60 Tablet Recovery guide x-toc-enable: true ... -This section documents how to recover from a bad flash that prevents -your ThinkPad X60 Tablet from booting. - -ROM images for this machine are well-tested in libreboot, so bricks are rare. -The most common cause of a brick is operator error, when flashing a ROM image. -In *most* cases, the cause will be that there is no bootblock, or an invalid -one. - -Brick type 1: bucts not reset. {#bucts_brick} -============================== - -You still have Lenovo BIOS, or you had libreboot running and you flashed -another ROM; and you had bucts 1 set and the ROM wasn't dd'd.\* or if -Lenovo BIOS was present and libreboot wasn't flashed. - -There are *2* 64KiB bootblocks possible, in the upper part of the ROM image. -By default (bucts set to 0), the top one is used. If bucts is set to 1, the -lower one (the one before the top one) is used. This bootblock is the first -code that executes, during *romstage* as per coreboot hardware initialization. - -BUC is short for *Backup Control* and TS is short for *Top Swap*. This is a -special register on Intel platforms. Lenovo BIOS sets PRx registers, preventing -software re-flashing, but there is a bug in the protection, allowing everything -*except* the upper 64KiB from being flashed. By default, coreboot only puts a -bootblock in the upper region. If you flash such a ROM, while bucts is set to 1, -the system won't boot because there's not a valid bootblock; this is common if -you're re-flashing when coreboot is already installed, and you didn't set bucts -back to 0. - -When you install on X60/T60 the first time, you set this bucts bit to 1, then -you re-flash a second time and set it back to 0. - -In this case, unbricking is easy: reset BUC.TS to 0 by removing that -yellow cmos coin (it's a battery) and putting it back after a minute or -two:\ -![](https://av.libreboot.org/x60t_unbrick/0008.JPG)\ - -\*Those dd commands should be applied to all newly compiled X60 ROM -images (the ROM images in libreboot binary archives already have this -applied!): - - dd if=coreboot.rom of=top64k.bin bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x10000] count=64k - dd if=coreboot.rom bs=1 skip=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k | hexdump - dd if=top64k.bin of=coreboot.rom bs=1 seek=$[$(stat -c %s coreboot.rom) - 0x20000] count=64k conv=notrunc - -(doing this makes the ROM suitable for use when flashing a system that -still has Lenovo BIOS running, using those instructions: -. - -Brick type 2: bad ROM image {#recovery} -=========================================== - -In this instance, you might have flashed a ROM without the top bootblock copied -to the lower 64KiB section in the ROM, and you flashed the ROM for the first -time (from Lenovo BIOS), in which case there is not a valid bootblock. - -In this scenario, you compiled a ROM that had an incorrect -configuration, or there is an actual bug preventing your system from -booting. Or, maybe, you set BUC.TS to 0 and shut down after first flash -while Lenovo BIOS was running. In any case, your system is bricked and -will not boot at all. +NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +now, as of 27 January 2024, which is a fork of flashrom. "Unbricking" means flashing a known-good (working) ROM. The problem: you can't boot the system, making this difficult. In this situation, -external hardware (see hardware requirements above) is needed which can -flash the SPI chip (where libreboot resides). +external hardware is needed which can flash the SPI chip (where libreboot +resides). First, disassemble the machine using the following steps, and refer +to the external flashing guide linked later from *this* guide. ![](https://av.libreboot.org/x60t_unbrick/0000.JPG) From 2e6ed95570fd8997179085a7619148e25df11093 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 26 Aug 2024 18:51:02 +0100 Subject: [PATCH 042/399] improved grub hardening guide some steps were outdated based on recent changes to libreboot. update it accordingly. Signed-off-by: Leah Rowe --- site/docs/linux/grub_hardening.md | 321 ++++++++++++++++-------------- 1 file changed, 175 insertions(+), 146 deletions(-) diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index ade05aa..07f4c93 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -4,102 +4,62 @@ x-toc-enable: true ... **NOTE: [Encrypted /boot with LUKS2 on argon2 key derivation is now -possible](../../news/argon2.md) but not yet documented by this guide.** +possible](../../news/argon2.md). This is covered in +the [main Linux guide](./).** -This article only applies to those people who use the GRUB bootloader as -their default payload (options besides GRUB are also available in -libreboot). Whenever this article refers to GRUB, or configuration files -used in GRUB, it is referring exclusively to those files hosted in CBFS -(coreboot file system) in the libreboot ROM image. In this configuration, -GRUB is running on *bare metal* as a coreboot payload (instead of relying on -BIOS or UEFI services, like it does on *most* x86 based configurations). +GRUB can have password protection at boot, prevent unauthorised access to the +shell and to menuentries. You can also boot from fully encrypted distros, where +the `/boot` directory is already encrypted, containing your kernel. You can +additionally verify each file, including GRUB configuration files and Linux +kernels, using GPG; GRUB supports putting a GPG pubkey in CBFS, and using it +to verify all files that it accesses. -This guide deals with various ways in which you can harden your GRUB -configuration, for security purposes. These steps are optional, but *strongly* -recommended by the libreboot project. +Let's begin. -GRUB provides *many* advanced security features, which most people don't -know about but are fully documented on the libreboot website. Read on! +Build dependencies +================== -This article doesn't cover how to dump your ROM, or flash a new one. Please -read other sections in the libreboot documentation if you don't know how to do -that. As such, this is an *expert only* guide. There is a great possibility for -bricking your system if you follow this guide incorrectly, or otherwise don't -know what you're doing. +You need `cbfstool` from coreboot. For whatever board you have, check which +coreboot tree it uses in Libreboot's build system, lbmk. For example, let's +say your board is `x200_8mb`, you would do: -GRUB secure boot with GPG + grep tree= config/coreboot/x200_8mb/target.cfg + +In this example, the output might be: + + tree="default" + +This means you should compile `cbfstool` from the `default` coreboot tree, +like so: + + ./mk -d coreboot default + +This will result in the following binary: `elf/cbfstool/default/cbfstool` + +We won't assume the path to cbfstool, in the remainder of this guide, so +adapt accordingly. + +Background information ========================= -GRUB contains code, based on [GPG](https://gnupg.org/), that can verify -PGP signatures on *any* type of file, on any storage medium supported by -GRUB (it supports basically everything, including CBFS which is short -for coreboot file system and it is what we will focus on in this article). -We will be using this functionality to verify the signature of a Linux kernel, -at boot time. In conjunction with reproducible builds (both libreboot and your -Linux kernel), this can greatly improve system security; Debian is an excellent -example of a project striving towards this goal; see: - +By default, the `grub.cfg` file and `grubtest.cfg` file are not present in +CBFS, because the GRUB memdisk, contained within the GRUB binary itself, within +CBFS, contains a GRUB configuration file. -For your reference: a reproducible build is one where, given a precise (and -well documented) development setup, the exact same binary can be produced each -time the source code is compiled when that *very same development setup* is -replicated by another person. In other words, the file checksum (e.g. -SHA512 hash) will be exactly the same at all times. In practise, this means -that metadata such as time stamps are not included in the binary, or if they -are, they are constant (in many scenarios, it's based on the date of a Git -commit ID that the build is based on, if the software is built from a Git -repository). More information about reproducible builds can be found here: +Libreboot will switch to `grub.cfg` from flash instead, if it exists, +skipping the one in memdisk. - +Because we need to put a signature next to each file, that would mean +re-building GRUB if you wanted to use the one in memdisk. Therefore, we can +insert a custom one in CBFS, to mitigate that fact. -Reproducibility is a key goal of the libreboot project, though it has not yet -achieved that goal. However, it is an important part of any secure system. We -suggest that, when securing your libreboot system as instructed by this guide, -you should also use a reproducible Linux distribution (because checking GPG -signatures on a non-reproducible binary, such as a Linux kernel, is meaningless -if that binary can be compromised as a result of literally not being able to -verify that the source code *actually* corresponds to the provided binary, -which is exactly what reproducible builds allow). If *someone else* compiles an -executable for you, and that executable is non-reproducible, you have no way to -verify that the source code they provided *actually* corresponds to the binary -they gave you. Based on these facts, we can observe that checking GPG -signatures will improve your *operational* security, but only in specific -circumstances under *controlled conditions*. - -This tutorial assumes you have a libreboot image (ROM) that you wish to modify, -which from now on we will refer to simply as *`my.rom`*. It should go without -saying that this ROM uses the GRUB bootloader as payload. This page shows -how to modify grubtest.cfg, which means that signing and password protection -will work after switching to it in the main boot menu and bricking due to -incorrect configuration will be impossible. After you are satisfied with the -new setup, you should transfer the new settings to grub.cfg to make your -machine truly secure. - -First, extract the old grubtest.cfg and remove it from the libreboot -image: - - cbfstool my.rom extract -n grubtest.cfg -f my.grubtest.cfg - cbfstool my.rom remove -n grubtest.cfg - -You can build `cbfstool` in the libreboot build system. Run this command: - - ./mk -d coreboot TREENAME - -This, in turn, assumes that you have installed the build dependencies for -libreboot. On Ubuntu 20.04 and other apt-get distros, you can do this: - - ./mk dependencies ubuntu2004 - -The `cbfstool` executables will be under each coreboot directory, under -each `coreboot/boardname/` directory for each board. Just pick one, presumably -from the coreboot directory for your board. libreboot creates multiple coreboot -archives for different board revisions, on different boards. +By doing it this way, you can avoid re-building GRUB, or indeed anything inside +your current Libreboot images. References: * [GRUB manual](https://www.gnu.org/software/grub/manual/html_node/Security.html#Security) * [GRUB info pages](http://git.savannah.gnu.org/cgit/grub.git/tree/docs/grub.texi) -* [SATA connected storage considered dangerous.](../../faq.md#hddssd-firmware) * [Coreboot GRUB security howto](https://www.coreboot.org/GRUB2#Security) GRUB Password @@ -110,36 +70,14 @@ checking can be disabled through the interactive console: set check_signatures=no -This is useful because it allows you to occasionally boot unsigned live CD/USB -media and such. You might consider supplying signatures on a USB stick, but the -signature checking code currently looks for `/path/to/filename.sig` when -verifying `/path/to/filename` and, as such, it will be impossible to supply -signatures in any other location (unless the software is modified accordingly). +Disabling signatures, using the above command, is useful when you're booting +regular media such as live distros via USB. -It's worth noting that this is not your LUKS password but, rather, a password -that you must enter in order to use *restricted* functionality (such as the -GRUB terminal for executing commands). This behaviour protects your system -from an attacker simply booting a live USB key (e.g. live Linux -distribution) for the purpose of flashing modified boot firmware, which from -your perspective is *compromised* boot firmware. *This should be different than -your LUKS passphrase and user password.* - -GRUB supports storing salted, hashed passwords in the configuration file. -This is a far more secure configuration, because an attacker cannot simply read -your password as *plain text* inside said file. - -Use of the *diceware method* is *strongly* recommended, for generating secure -passphrases (as opposed to passwords). The diceware method involves rolling -dice to generate random numbers, which are then used as an index to pick a -random word from a large dictionary of words. You can use any language (e.g. -English, German). Look it up on a search engine. Diceware method is a way to -generate secure passphrases that are very hard (almost impossible, with enough -words) to crack, while being easy enough to remember. On the other hand, most -kinds of secure passwords are hard to remember and easier to crack. Diceware -passphrases are harder to crack because of far higher entropy (there are many -words available to use, but only about 50 commonly used symbols in -pass*words*). This high level of entropy is precisely what makes such pass -phrases secure, even if an attacker knows exactly which dictionary you used! +You are strongly advised to use an *open diceware* passphrase (look that up). +Generate a strong passphrase of completely random words, at least 20 words in +total is ideal. Passphrases are better than pass*words* containing lots +of random letters and symbols, because pass*phrases* have higher entropy and +are therefore harder to crack. The GRUB password can be stored in one of two ways: @@ -161,53 +99,63 @@ The following executable will then be available under `src/grub/default/`: grub-mkpasswd-pbkdf2 -Its output will be a string of the following form: +Run that program. It will ask you to choose a new passphrase. Its output will +be a string of the following form: grub.pbkdf2.sha512.10000.HEXDIGITS.MOREHEXDIGITS +Make sure to copy this into the correct GRUB config. The correct GRUB config +can be determined as follows. Again, let's assume that you have `x200_8mb`: + + grep grubtree= config/coreboot/x200_8mb/target.cfg + +It *may* or *may not* output anything. If it outputs *nothing*, then the +GRUB tree is `default`, otherwise it might output something like: + + grubtree="nvme" + +Make *sure* to use the correct GRUB tree. We will assume `default`, so you +should adapt accordingly, when doing this yourself: + + cp config/grub/default/config/payload grub.cfg + +Now, your `grub.cfg` file is correct for the board, and you can insert +the salted, hashed passphrase that you get from `grub-mkpasswd-pbkdf2` earlier. + Now open my.grubtest.cfg and put the following before the menu entries (prefered above the functions and after other directives). Of course use the pbdkf string that you had generated yourself: +Put this *before* the menuentries (just before) in `grub.cfg`, but note that +you should **not** literally use what is below; the hash below is not the one +you generated yourself. Make sure to adapt accordingly. + +Example: + set superusers="root" password_pbkdf2 root grub.pbkdf2.sha512.10000.711F186347156BC105CD83A2ED7AF1EB971AA2B1EB2640172F34B0DEFFC97E654AF48E5F0C3B7622502B76458DA494270CC0EA6504411D676E6752FD1651E749.8DD11178EB8D1F633308FD8FCC64D0B243F949B9B99CCEADE2ECA11657A757D22025986B0FA116F1D5191E0A22677674C994EDBFADE62240E9D161688266A711 -Obviously, replace it with the correct hash that you actually obtained for the +**Again**, replace it with the correct hash that you actually obtained for the password you entered. In other words, *do not use the hash that you see above!* -With this configuration in place, you must now enter the passphrase *every -single time you boot your computer*. This completely restricts an attacker in -such a way that they cannot simply boot an arbitrary operating system on your -computer. NOTE: An attacker could still open your system and re-flash new -firmware externally. You should implement some detection mechanism, such as -epoxy applied in a *random pattern* on every screw; this slows down the attack -and means that you will know someone tampered with it because they cannot -easily re-produce the exact same glob of epoxy in the same pattern (when you -apply it, swirl it around a bit for a few minutes while it cures. The purpose -is not to prevent disassembly, but to slow it down and make it detectable when -it has occured). +Once this configuration is inserted, you will need to enter a passphrase every +time you boot. GRUB will also ask for a username. In the above example, we +made a username `root`, but you can set it to what you want and +adapt accordingly. Another good thing to do, if we chose to load signed on-disk GRUB -configurations, is to remove (or comment out) `unset superusers` in -function try\_user\_config: +configurations, is to remove (or comment out) `unset superusers`. Find any line +that says this, in your `grub.cfg` file: -``` -function try_user_config { - set root="${1}" - for dir in boot grub grub2 boot/grub boot/grub2; do - for name in '' autoboot_ libreboot_ coreboot_; do - if [ -f /"${dir}"/"${name}"grub.cfg ]; then - #unset superusers - configfile /"${dir}"/"${name}"grub.cfg - fi - done - done -} -``` + unset superusers + +Change it to this: + + # unset superusers The `unset superusers` command disables password authentication, which will allow the attacker to boot an arbitrary operating system, regardless of -signature checking. The default libreboot configuration is tweaked for *easy of +signature checking. The default libreboot configuration is tweaked for *ease of use* by end users, and it is *not* done with security in mind (though security is preferred). Thus, libreboot is less restrictive by default. What you are doing, per this article, is making your system *more secure* but at the expense @@ -218,6 +166,8 @@ That just about covers it, where password setup is concerned! SeaBIOS first? ============== +**Very important. Make sure you read this carefully.** + In releases after Libreboot 20240504, SeaBIOS is the primary payload on all images, but GRUB is available in the boot menu. Select a ROM image with `grubfirst` at the end, and do this to the ROM image: @@ -241,7 +191,31 @@ the default one, as of Libreboot 20240612. NOTE: Before disabling the boot menu, make sure GRUB works. Access it using the `bootorder` file and/or press ESC in the SeaBIOS menu. Then disable the -SeaBIOS menu. +SeaBIOS menu: + + cbfstool libreboot.rom add-int -i 0 -n etc/show-boot-menu + +Although the `bootorder` file only specifies *GRUB*, this just means that +SeaBIOS won't automatically try to boot anything else. The SeaBIOS menu is still +accessible, by pressing ESC when prompted; the above `add-int` command disables +that menu, so that *only* the GRUB payload will be executed. + +SeaBIOS option ROMs +=================== + +SeaBIOS will also still execute PCI option ROMs. Depending on your preference, +you may wish to disable this, but please note that this will break certain +things like graphics cards. More information is available here: + + + +On a laptop, you probably don't have to worry about option ROMs at all, but +desktops are much more easily upgradeable; though, in practise, anyone +inclined to insert a card with a malicious option ROM on it wouldn't do that +anyway, because if they have access to your hardware, they could just +externally re-flash the machine anyway, so I wouldn't worry, but it's up to you. + +If you're using a graphics card, you *need* VGA option ROMs at least. GPG keys ======== @@ -266,7 +240,10 @@ Now that we have a key, we can sign some files with it. We must sign: - (if we wish to transfer control to it) an on-disk `grub.cfg` - `grubtest.cfg` (so that you can go back to `grubtest.cfg` after signature checking is enforced. You can always get back to `grub.cfg` by pressing ESC, - but, afterwards, `grubtest.cfg` is not signed and it will not load. + but, afterwards, `grubtest.cfg` is not signed and it will not load. The + GRUB config we made earlier can be copied to `grubtest.cfg` and inserted, + but please only do this at the end of the guide when it tells you to insert + the GRUB config, because there are still osme things you need to do. Suppose that we have a pair of `my.kernel` and `my.initramfs` and an on-disk `libreboot_grub.cfg`. We will sign them by running the following @@ -279,7 +256,7 @@ gpg --homedir keys --detach-sign libreboot_grub.cfg gpg --homedir keys --detach-sign my.grubtest.cfg ``` -Of course, some further modifications to my.grubtest.cfg will be required. We +Of course, some further modifications to grubtest.cfg will be required. We need to *trust* the key and enable signature enforcement (put this before menu entries): @@ -292,9 +269,61 @@ What remains now is to include the modifications into the libreboot image (ROM): ``` -cbfstool my.rom add -n boot.key -f boot.key -t raw -cbfstool my.rom add -n grubtest.cfg -f my.grubtest.cfg -t raw -cbfstool my.rom add -n grubtest.cfg.sig -f my.grubtest.cfg.sig -t raw +cbfstool libreboot.rom add -n boot.key -f boot.key -t raw + +# You might consider copying `grub.cfg` to `grubtest.cfg` and adding that. +# Otherwise, adding just `grub.cfg` is also fine. + +cbfstool libreboot.rom add -n grub.cfg -f my.grub.cfg -t raw +cbfstool libreboot.rom add -n grub.cfg.sig -f my.grub.cfg.sig -t raw + +cbfstool libreboot.rom add -n grubtest.cfg -f my.grubtest.cfg -t raw +cbfstool libreboot.rom add -n grubtest.cfg.sig -f my.grubtest.cfg.sig -t raw ``` -Now, flash it. If it works, copy it over to `grub.cfg` in CBFS. +Congratulations! +================ + +With any luck, this should work perfectly. Your system will no longer boot +anything unless it's signed by your key. + +If your entire system is also encrypted, including `/boot`, then that protects +everything including the privkey much more robustly, and it further prevents +tampering with your kernel (where GPG only detects tampering, encryption can +prevent it). + +Encryption, combined with a GRUB passphrase, combined with a GPG check, should +make you pretty damn secure at boot time. All that's left now is one final, +optional step: + +Flash write protection +====================== + +Although not strictly related to GNU GRUB, flash protection will prevent anyone +except you from overwriting the flash without permission. This is important, +because you don't want some malicious software running as root from overwriting +your flash, thus removing any of the above protections. + +The simplest way is to just do this: + + ifdtool -x libreboot.rom -O libreboot.rom + +Note that this only works for Intel-based systems that use an Intel Flash +Descriptor, which is actually most Intel systems that Libreboot supports. + +You can still flash externally, or strap `HDA_SDO` (`HDA_DOCK_EN` on older +GM45 machines) accordingly. Note that the x4x/ich10-based machines don't have +flash descriptors, and neither do the i945 machines, but the GM45 and newer +Intel platforms do. + +Install the new image +===================== + +Now simply flash the new image, using +the [flashing instructions](../install/). + +If you did all of the above steps correctly, your system should boot +up just fine. Shut it down and wait a few seconds. If you screwed it up +and the system is now unbootable, that's OK because you can use an +external flasher; please +read [external flashing instructions](../install/spi.md) From 972de7d8405dace7601046e76a1057369b4a0b84 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 26 Aug 2024 18:53:47 +0100 Subject: [PATCH 043/399] clarify ifdtool location for grub hardening Signed-off-by: Leah Rowe --- site/docs/linux/grub_hardening.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index 07f4c93..20abfcd 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -308,6 +308,11 @@ The simplest way is to just do this: ifdtool -x libreboot.rom -O libreboot.rom +If you did the step before, to compile `cbfstool`, you can find ifdtool in +the `elf/` directory, e.g. `elf/ifdtool/default/ifdtool`. Make sure to use +the correct version, as per `tree=` (same as before when deciding to which +cbfstool version to use based on the coreboot tree used by your board). + Note that this only works for Intel-based systems that use an Intel Flash Descriptor, which is actually most Intel systems that Libreboot supports. From a54283de34b7a676ca92c18dbe25b81f81467399 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 26 Aug 2024 21:24:32 +0100 Subject: [PATCH 044/399] clarifification about flash descriptor override Signed-off-by: Leah Rowe --- site/docs/linux/grub_hardening.md | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index 20abfcd..18afe0f 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -321,6 +321,23 @@ GM45 machines) accordingly. Note that the x4x/ich10-based machines don't have flash descriptors, and neither do the i945 machines, but the GM45 and newer Intel platforms do. +Other facts +----------- + +Strapping `HDA_SDO` or `HDA_DOCK_EN` requires physical access, because you have +to short a pin on the HDA chip on the motherboard, or there will be a header +for this on the board (e.g. "service mode" jumper). + +On *Dell Latitude* laptops specifically, the EC can unlock flash by setting +the SDO/DOCK\_EN signal as described, and this is in fact what +the `dell-flash-unlock` utility does, so you can consider IFD locking there +to be basically useless. + +In addition to the above, you may also consider `/dev/mem` protection. +Enable `CONFIG_STRICT_DEVMEM` in your Linux kernel, or set `securelevel` above +zero on your BSD setup (but BSD cannot be booted with GRUB very easily so +it's a moot point). + Install the new image ===================== From c6fde88de753766836a7ab5d579671b9853e4a7d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 26 Aug 2024 21:55:49 +0100 Subject: [PATCH 045/399] grub_hardening: document addition security/safety Signed-off-by: Leah Rowe --- site/docs/linux/grub_hardening.md | 55 +++++++++++++++++++++++++++++++ 1 file changed, 55 insertions(+) diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index 18afe0f..6469e98 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -16,6 +16,24 @@ to verify all files that it accesses. Let's begin. +**Disable security before flashing** +================================ + +**Before internal flashing, you must first disable `/dev/mem` protections. Make +sure to re-enable them after you're finished.** + +**See: [Disabling /dev/mem protection](../install/devmem.md)** + +This only applies if you're following these instructions via internal +flashing, from an existing installation. + +Back up your flash first! +========================= + +Make sure you also back up the current flash contents, before you proceed with +this guide. See: [Libreboot flashing guides](../install/) (it also says how +to read the flash, in addition to writing it) + Build dependencies ================== @@ -338,6 +356,43 @@ Enable `CONFIG_STRICT_DEVMEM` in your Linux kernel, or set `securelevel` above zero on your BSD setup (but BSD cannot be booted with GRUB very easily so it's a moot point). +Other write-protect methods +--------------------------- + +The steps above do not require recompilation of the Libreboot images. However, +coreboot offers additional security at build time, which you can select if you +wish. + +Let's assume your board is `x200_8mb`, do: + + ./mk -m coreboot x200_8mb + +Find this section: Security -> Boot media protection mechanism + +In the above example, I found: + +* Lock boot media using the controller +* Lock boot media using the chip + +Which one to pick depends on your board. Let's pick "controller". + +Now we can see: Security -> Boot media protected regions + +In there, there is the option to ban writes, or to ban both reads and writes. +Banning reads may be desirable, for example if you have a salt hashed password +stored in `grub.cfg`! (as this guide told you to do) + +You'll have to play around with this yourself. These options are not enabled +by default, because Libreboot images are supposed to allow writes by default, +when booted. You have to enable such security yourself, because the design of +Libreboot is to be as easy to use as possible by defalut, which include updates, +thus implying read-write flash permissions. + +This example was for `x200_8mb`, but other boards may look different in config. +Anyway, when you're done, save the config and then build it from source in lbmk. + +See: [build from source](../build/) + Install the new image ===================== From 30cae6536afde27d05c2e5c8c44a51ae2b89590c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 26 Aug 2024 22:36:21 +0100 Subject: [PATCH 046/399] make grub_cbfs.md a bit clearer a lot of the instructions are really old make it relevant to the way libreboot currently works some legacy information has been removed, pertaining to libreboot 20230625 which is oldstable; 20240612 is the current stable release, so the 20230625 information no longer needs to be written here. Signed-off-by: Leah Rowe --- site/docs/linux/grub_cbfs.md | 194 +++++++++++------------------------ 1 file changed, 62 insertions(+), 132 deletions(-) diff --git a/site/docs/linux/grub_cbfs.md b/site/docs/linux/grub_cbfs.md index c5085d9..7de647a 100644 --- a/site/docs/linux/grub_cbfs.md +++ b/site/docs/linux/grub_cbfs.md @@ -9,26 +9,13 @@ now, as of 27 January 2024, which is a fork of flashrom. Before you follow this guide, it is advisable that you have the ability to flash externally, just in case something goes wrong. -This guide assumes that you use the GRUB bootloader as your default -payload. In this configuration, GRUB is flashed alongside coreboot and runs -on *bare metal* as a native coreboot payload and does *not* use BIOS or UEFI -services (but it *can* load and execute SeaBIOS, in addition to any other -coreboot payload, by chainloading it). +Libreboot's own GRUB configuration automatically scans for one provided by +your distro, and this automation will usually work. Sometimes, you might wish +to override it with your own custom menuentry or additional logic in the GRUB +config. You can configure GRUB however you like, and this topic is vast so what +to actually *put in the config* will not be covered here. -In most circumstances, this guide will not benefit you. libreboot's default -GRUB configuration file contains scripting logic within it that intelligently -searches for GRUB partitions installed onto a partition on your SSD, HDD or -USB drive installed on your computer. If such a file is found, libreboot's -default GRUB configuration is configured to switch automatically to that -configuration. While not perfect, the logic *does* work with most -configurations. - -Therefore, you should only follow *this* guide if the automation (described -above) does not work. It goes without saying that modifying the default GRUB -configuration is risky, because a misconfiguration could create what's called -a *soft brick* where your machine is effectively useless and, in that scenario, -may or may not require external flashing equipment for restoring the machine to -a known state. +This guide will simply teach you how to modify the config, but not what to put. Compile flashprog and cbfstool ============================= @@ -55,20 +42,28 @@ This can be found under `coreboot/*/util/cbfstool/` as source code, where `*` can be any coreboot source code directory for a given mainboard. The directory named `default` should suffice. -Install the build dependencies. For Ubuntu 20.04 and similar, you can run +Install the build dependencies. For Debian and similar, you can run the following command in the libreboot build system, from the root directory of the libreboot Git repository. - ./mk dependencies ubuntu2004 + ./mk dependencies debian -Then, download coreboot: +Determine what coreboot tree you need for your board. For example, if building +for `x200_8mb`, check `config/coreboot/x200_8mb/target.cfg` and it might +say `tree="default"` - in this case, the coreboot tree is named `default`. - ./mk -f coreboot +Then, download coreboot (we'll assume the `default` tree is correct): + + ./mk -f coreboot default Finally, compile the `cbutils` payload (and you will then have the utils): ./mk -b grub +GRUB is multi-tree, but for GRUB utilities that's fine because we don't patch +those in any tree; we only patch the GRUB kernel to add various drivers and +extra crypto such as argon2. + Among other things, this will produce a `cbfstool` executable under any of the subdirectories in `src/coreboot/` under `util/cbfstool/cbfstool`. @@ -78,6 +73,13 @@ The `cbfstool` utility is what you shall use. It is used to manipulate CBFS (coreboot file system) which is a file system contained within the coreboot ROM image; as a *coreboot distribution*, libreboot inherits this technology. +You can compile cbfstool and ifdtool for the given coreboot tree, e.g.: + + ./mk -d coreboot default + +This will create `elf/cbfstool/default/cbfbstool` +and `elf/ifdtool/default/ifdtool`. + You will also want to build `flashprog` which libreboot recommends for reading from and/or writing to the boot flash. In the libreboot build system, you can build it by running this command: @@ -90,125 +92,53 @@ this. Dump the boot flash =================== -If you wish to modify your *existing* libreboot ROM, which was installed on -your computer, you can use `flashprog` to acquire it. +[Learn how to externally reprogram these chips](../install/spi.md) and use +the `-r` option in flashprog; alternatively, for internal flash access, +look at the [main flashing guide](../install/). -Simply run the following, after using libreboot's build system to compile -flashprog: - - sudo ./elf/flashprog/flashprog -p internal -r dump.bin - -If flashprog complains about multiple flash chip definitions, do what it says to -rectify your command and run it again. - -You may want to use the following, instead of `-p internal`: -`-p internal:laptop=force_I_want_a_brick,boardmismatch=force` - -Do not let the word *brick* fools you. This merely disables the safety checks -in flashprog, which is sometimes necessary depending on what ROM was already -flashed, versus the new ROM image. - -The `internal` option assumes that internal read/write is possible; this is -when you read from and/or write to the boot flash from an operating systems -(usually Linux) that is *running on* the target system. - -In other cases, you may need to connect an SPI programmer externally (with the -machine powered down) and read the contents of the boot flash. - -[Learn how to externally reprogram these chips](../install/spi.md) - -Extract grub.cfg -================ - -Libreboot 20231021 or newer ------------------------------------ - -Releases or or after 20231021 contain `grub.cfg` inside the GRUB memdisk, -inaccessible directly from CBFS, but the memdisk is inside `grub.elf` which -gets put inside CBFS. - -An override is possible, on these Libreboot revisions. If `grub.cfg` is present -in CBFS, Libreboot's GRUB will use *that* and not the memdisk one; it will not -auto-switch to `grubtest.cfg`, but the test config will be available in the -menu to switch to, if present. - -You can find `grub.cfg` under lbmk (for this purpose, it's best to use the -lbmk one, not the release one - unless you're using a release image). -Find it at path (in current lbmk): `config/grub/config/grub.cfg`. - -So, you can *add* `grubtest.cfg` as normal, test that, and -then *add* `grub.cfg` once you're happy, and it will override the default. - -Libreboot 20230625 or older ----------------------------- - -NOTE: This information will probably be deleted after a certain time has passed. -Libreboot changed a lot, as of release 20231021 in reference to 20230625, so it -may take a while before people adjust; therefore, this information is provided -for reference, but you should consider it to be deprecated: - -libreboot images that use the GRUB bootloader will have *two* configuration -files in CBFS: - -* `grub.cfg` -* `grubtest.cfg` - -We recommend that you modify `grubtest.cfg` first, and boot. Select the boot -menu option for loading `grubtest.cfg` and verify that your new config works -correctly. If it doesn't, keep modifying `grubtest.cfg` until it does work. -When that it done, copy the changes over to `grub.cfg - -You can use the following commands to modify the contents of CBFS, where -GRUB's configuration file is concerned (dump.bin is the ROM that you dumped, -or it could refer to the libreboot ROM image that you compiled or otherwise -acquired). - -Show the contents of CBFS, in your ROM: - - cbfstool dump.bin print - -Extract `grub.cfg` (substitude with `grubtest.cfg` as desired): - - cbfstool dump.bin extract -n grub.cfg -f grub.cfg - -You will now have a file named `grub.cfg`. - -Make your desired modifications. You should then delete the old `grub.cfg` -from your ROM image. +Those guides show how to dump the flash contents, which you are advised to do. Insert new grub.cfg =================== -NOTE: As stated above, releases on or after Libreboot 20231021 only default to -the config in memdisk, and lack a CBFS config, so you can skip the *remove* -step below and just directly add the new `grub.cfg` - unless you already -added one before, in which case removal is required first. +If you already have a `grub.cfg` in cbfstool, you can extract and modify that +one, e.g.: -Remove the old `grub.cfg` (substitute with `grubtest.cfg` as desired): + cbfstool libreboot.rom extract -n grub.cfg -f grub.cfg - cbfstool dump.bin remove -n grub.cfg +Now remove it: -Add your modified `grub.cfg` (substitute with `grubtest.cfg` as desired): + cbfstool libreboot.rom remove -n grub.cfg - cbfstool dump.bin add -f grub.cfg -n grub.cfg -t raw +It's important that you re-add `grub.cfg` before flashing: + + cbfstool libreboot.rom add -f grub.cfg -n grub.cfg + +Repeat this for `grubtest.cfg` if you wish. + +If you're using a default Libreboot image, there *is no `grub.cfg` in flash*. +This is because there is also a default one embedded inside the GRUB binary, +which is inside CBFS. So: + +The coreboot image has its own filesystem, CBFS, and within CBFS is the GRUB +binary, and within the GRUB binary is another filesystem called memdisk, where +the default GRUB configuration is located. + +You can insert a `grub.cfg` into CBFS and it will override the one in memdisk. + +Check your board, e.g. `x200_8mb`, look at the file: `config/coreboot/x200_8mb/target.cfg` +and check for `grubtree` - if it's not sot, then it's `default`, otherwise check +what it's set to. + +We'll assume it's `default`, so the +file `config/grub/default/config/payload` is your GRUB config; this will be the +same as what yo uhave in memdisk. + +Modify *that* file, or the one you extracted if you already inserted a custom +one before, and you will re-insert it when you're done. Flash the modified ROM image ============================ -Your modified `dump.bin` or other modified libreboot ROM can then be re-flashed -using: - - sudo ./flashprog -p internal -w dump.bin - -If a `-c` option is required, use it and specify a flash chip name. This is -only useful when `flashprog` complains about multiple flash chips being -detected. - -If flashprog complains about wrong chip/board, make sure that your ROM is for -the correct system. If you're sure, you can disable the safety checks by running -this instead: - - sudo ./flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w dump.bin - -If you need to use external flashing equipment, see the link above to the -Raspberry Pi page. +Check the [Libreboot flashing guide](../install/) which says how to flash the +new image. From c50c0e16768ac5e62a3a4cb8d0f6455bf280afdd Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 27 Aug 2024 01:38:53 +0100 Subject: [PATCH 047/399] complete cleanup of grub.cfg docs remove all the redundant information, and merge some of it between the two articles (grub hardening and grub cbfs guides) Signed-off-by: Leah Rowe --- site/docs/linux/grub_cbfs.md | 175 +++++---- site/docs/linux/grub_hardening.md | 574 ++++++++++++------------------ 2 files changed, 330 insertions(+), 419 deletions(-) diff --git a/site/docs/linux/grub_cbfs.md b/site/docs/linux/grub_cbfs.md index 7de647a..9f2cc04 100644 --- a/site/docs/linux/grub_cbfs.md +++ b/site/docs/linux/grub_cbfs.md @@ -3,11 +3,11 @@ title: Modifying grub.cfg in CBFS x-toc-enable: true ... -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. +Read [Libreboot flashing guides](../install/) before continuing, and make sure +to back up the current flash contents before you consider following this guide. Before you follow this guide, it is advisable that you have the ability to -flash externally, just in case something goes wrong. +[flash externally](../install/spi.md), just in case something goes wrong. Libreboot's own GRUB configuration automatically scans for one provided by your distro, and this automation will usually work. Sometimes, you might wish @@ -15,82 +15,89 @@ to override it with your own custom menuentry or additional logic in the GRUB config. You can configure GRUB however you like, and this topic is vast so what to actually *put in the config* will not be covered here. -This guide will simply teach you how to modify the config, but not what to put. +This guide will simply teach you how to modify the config, but not what to put, +whereas the [GRUB hardening](../linux/grub_hardening.md) guide specifically +says what to modify; cross reference that page and this page. -Compile flashprog and cbfstool -============================= +**Disable security before continuing** +================================ -libreboot does not currently distribute utilities pre-compiled. It only -provides ROM images pre-compiled, where feasible. Therefore, you have to build -the utilities from source. +**Before internal flashing, you must first disable `/dev/mem` protections. Make +sure to re-enable them after you're finished.** -As for the ROM, there are mainly three methods for obtaining a libreboot ROM -image: +**See: [Disabling /dev/mem protection](../install/devmem.md)** -1. Dump the contents of the the main *boot flash* on your system, which already - has libreboot installed (with GRUB as the default payload). Extract the - GRUB configuration from *that* ROM image. -2. Extract it from a libreboot ROM image supplied by the libreboot project, on - the libreboot website or mirrors of the libreboot website. -3. Build the ROM yourself, using the libreboot build system. Instructions for - how to do this are covered in the following article: - [How to build libreboot from source](../build/) +This only applies if you're following these instructions via internal +flashing, from an existing installation. If you're externally flashing the +machine, you can ignore this advice. -In either case, you will use the `cbfstool` supplied in the libreboot build -system. -This can be found under `coreboot/*/util/cbfstool/` as source code, -where `*` can be any coreboot source code directory for a given mainboard. -The directory named `default` should suffice. +Build dependencies +================== -Install the build dependencies. For Debian and similar, you can run -the following command in the libreboot build system, from the root directory -of the libreboot Git repository. +**Please first [install build dependencies](../build/).** - ./mk dependencies debian +Coreboot utilities +------------------ -Determine what coreboot tree you need for your board. For example, if building -for `x200_8mb`, check `config/coreboot/x200_8mb/target.cfg` and it might -say `tree="default"` - in this case, the coreboot tree is named `default`. +You need `cbfstool` from coreboot. For whatever board you have, check which +coreboot tree it uses in Libreboot's build system, lbmk. For example, let's +say your board is `x200_8mb`, you would do: -Then, download coreboot (we'll assume the `default` tree is correct): + grep tree= config/coreboot/x200_8mb/target.cfg - ./mk -f coreboot default +In this example, the output might be: -Finally, compile the `cbutils` payload (and you will then have the utils): + tree="default" - ./mk -b grub - -GRUB is multi-tree, but for GRUB utilities that's fine because we don't patch -those in any tree; we only patch the GRUB kernel to add various drivers and -extra crypto such as argon2. - -Among other things, this will produce a `cbfstool` executable under any of the -subdirectories in `src/coreboot/` under `util/cbfstool/cbfstool`. - -For example: `src/coreboot/default/util/cbfstool/cbfstool` - -The `cbfstool` utility is what you shall use. It is used to manipulate CBFS -(coreboot file system) which is a file system contained within the coreboot -ROM image; as a *coreboot distribution*, libreboot inherits this technology. - -You can compile cbfstool and ifdtool for the given coreboot tree, e.g.: +This means you should compile `cbfstool` from the `default` coreboot tree, +like so: ./mk -d coreboot default -This will create `elf/cbfstool/default/cbfbstool` -and `elf/ifdtool/default/ifdtool`. +This will result in the following binary: `elf/cbfstool/default/cbfstool` -You will also want to build `flashprog` which libreboot recommends for reading -from and/or writing to the boot flash. In the libreboot build system, you can -build it by running this command: +We won't assume the path to cbfstool, in the remainder of this guide, so +adapt accordingly. + +GRUB utilities +-------------- + +Again, let's assume the coreboot board is `x200_8mb`. Check the +file `config/coreboot/x200_8mb/target.cfg` for `grubtree` - if it's not set, +then the GRUB tree is `default`. We will assume `default`: + + ./mk -b grub default + +This will compile GRUB for the given tree. If you need to use any of the GRUB +utilities, this command will build them and in this example, they will be +available under `src/grub/default/`. + +Flashprog +--------- + +Compile flashprog like so: ./mk -b flashprog -An executable will be available at `elf/flashprog/flashprog` after you have done -this. +A binary will appear at `elf/flashprog/flashprog`. + +Default GRUB config +=================== + +The coreboot image has its own filesystem, CBFS, and within CBFS is the GRUB +binary, and within the GRUB binary is another filesystem called memdisk, where +the default GRUB configuration is located. + +You can override it by inserting your own GRUB config within CBFS. + +Acquiring a GRUB config +======================= Dump the boot flash -=================== +------------------- + +This is only useful if you already inserted a GRUB config in CBFS. Otherwise, +you can grab it from Libreboot's build system, lbmk. [Learn how to externally reprogram these chips](../install/spi.md) and use the `-r` option in flashprog; alternatively, for internal flash access, @@ -98,6 +105,28 @@ look at the [main flashing guide](../install/). Those guides show how to dump the flash contents, which you are advised to do. +Default GRUB config location +---------------------------- + +We'll assume that your GRUB tree is `default`, so the +file `config/grub/default/config/payload` is your GRUB config; this will be the +same as what you have in memdisk. Make a copy of this file, for modification. + +Modify *that* file, or the one you extracted if you already inserted a custom +one before, and you will re-insert it when you're done. + +Insert grubtest.cfg +=================== + +Before reading the next section, please note: if you only have the fallback +GRUB config in memdisk, and no configs in CBFS, you can test the modified +version by inserting it as `grubtest.cfg`, instead of `grub.cfg`: + + cbfstool libreboot.rom add -f grubtest.cfg -n grubtest.cfg + +Libreboot will not automatically load it, but it will be available from the +default GRUB menu. This can be useful for test purposes, hence the name. + Insert new grub.cfg =================== @@ -110,32 +139,20 @@ Now remove it: cbfstool libreboot.rom remove -n grub.cfg -It's important that you re-add `grub.cfg` before flashing: +It's important that you re-add `grub.cfg` before flashing (or just add it, if +it was never there in the first place): cbfstool libreboot.rom add -f grub.cfg -n grub.cfg -Repeat this for `grubtest.cfg` if you wish. +**If you flash the Libreboot image without a `grub.cfg` in CBFS, it will +default back to the one in GRUB memdisk. -If you're using a default Libreboot image, there *is no `grub.cfg` in flash*. -This is because there is also a default one embedded inside the GRUB binary, -which is inside CBFS. So: +AGAIN: -The coreboot image has its own filesystem, CBFS, and within CBFS is the GRUB -binary, and within the GRUB binary is another filesystem called memdisk, where -the default GRUB configuration is located. - -You can insert a `grub.cfg` into CBFS and it will override the one in memdisk. - -Check your board, e.g. `x200_8mb`, look at the file: `config/coreboot/x200_8mb/target.cfg` -and check for `grubtree` - if it's not sot, then it's `default`, otherwise check -what it's set to. - -We'll assume it's `default`, so the -file `config/grub/default/config/payload` is your GRUB config; this will be the -same as what yo uhave in memdisk. - -Modify *that* file, or the one you extracted if you already inserted a custom -one before, and you will re-insert it when you're done. +If you only want to test your changes first, insert it first as `grubtest.cfg` +and ensure that no `grub.cfg` exists in flash. This will let you access the +test config from the default menu, before deciding whether to make it the +main config, as `grub.cfg`, overriding the one in GRUB memdisk. Flash the modified ROM image ============================ diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index 6469e98..efdf128 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -3,316 +3,40 @@ title: Hardening GRUB x-toc-enable: true ... -**NOTE: [Encrypted /boot with LUKS2 on argon2 key derivation is now -possible](../../news/argon2.md). This is covered in -the [main Linux guide](./).** +GRUB supports various security mechanisms that are not enabled by default. +This page will tell you how to enable them, for the purpose of boot security, +both detecting and attempting to prevent certain types of attack. -GRUB can have password protection at boot, prevent unauthorised access to the -shell and to menuentries. You can also boot from fully encrypted distros, where -the `/boot` directory is already encrypted, containing your kernel. You can -additionally verify each file, including GRUB configuration files and Linux -kernels, using GPG; GRUB supports putting a GPG pubkey in CBFS, and using it -to verify all files that it accesses. +**Make sure you have an [external SPI programmer](../install/spi.md), for +recovery purposes, just in case you brick your machine. The modifications +documented here are highly invasive and it would be easy to make mistakes.** -Let's begin. +Full disk encryption +==================== -**Disable security before flashing** -================================ +[Encrypted /boot with LUKS2 on argon2 key derivation is now +possible](../../news/argon2.md). -**Before internal flashing, you must first disable `/dev/mem` protections. Make -sure to re-enable them after you're finished.** +This is covered in +the [main Linux guide](./#encrypted-boot-via-luks2-with-argon2), in the +section pertaining to LUKS2/argon2. -**See: [Disabling /dev/mem protection](../install/devmem.md)** +You are strongly advised to create an encrypted Linux installation, before +setting up GRUB as shown in the guide below. Adapt it for whichever distro +you're installing (documenting every distro on the Libreboot documentation +would be a futile exercise and will not be attempted). -This only applies if you're following these instructions via internal -flashing, from an existing installation. +You are advised to do this *first*, because steps below depend on certain +configuration changes to be made on your installed Linux distro. -Back up your flash first! -========================= +**Dependencies (do this first)** +============================= -Make sure you also back up the current flash contents, before you proceed with -this guide. See: [Libreboot flashing guides](../install/) (it also says how -to read the flash, in addition to writing it) +**Please read this: [Modifying GRUB in CBFS](grub_cbfs.md)** -Build dependencies -================== - -You need `cbfstool` from coreboot. For whatever board you have, check which -coreboot tree it uses in Libreboot's build system, lbmk. For example, let's -say your board is `x200_8mb`, you would do: - - grep tree= config/coreboot/x200_8mb/target.cfg - -In this example, the output might be: - - tree="default" - -This means you should compile `cbfstool` from the `default` coreboot tree, -like so: - - ./mk -d coreboot default - -This will result in the following binary: `elf/cbfstool/default/cbfstool` - -We won't assume the path to cbfstool, in the remainder of this guide, so -adapt accordingly. - -Background information -========================= - -By default, the `grub.cfg` file and `grubtest.cfg` file are not present in -CBFS, because the GRUB memdisk, contained within the GRUB binary itself, within -CBFS, contains a GRUB configuration file. - -Libreboot will switch to `grub.cfg` from flash instead, if it exists, -skipping the one in memdisk. - -Because we need to put a signature next to each file, that would mean -re-building GRUB if you wanted to use the one in memdisk. Therefore, we can -insert a custom one in CBFS, to mitigate that fact. - -By doing it this way, you can avoid re-building GRUB, or indeed anything inside -your current Libreboot images. - -References: - -* [GRUB manual](https://www.gnu.org/software/grub/manual/html_node/Security.html#Security) -* [GRUB info pages](http://git.savannah.gnu.org/cgit/grub.git/tree/docs/grub.texi) -* [Coreboot GRUB security howto](https://www.coreboot.org/GRUB2#Security) - -GRUB Password -============= - -The security of this setup depends on a good GRUB password as GPG signature -checking can be disabled through the interactive console: - - set check_signatures=no - -Disabling signatures, using the above command, is useful when you're booting -regular media such as live distros via USB. - -You are strongly advised to use an *open diceware* passphrase (look that up). -Generate a strong passphrase of completely random words, at least 20 words in -total is ideal. Passphrases are better than pass*words* containing lots -of random letters and symbols, because pass*phrases* have higher entropy and -are therefore harder to crack. - -The GRUB password can be stored in one of two ways: - -* plaintext -* protected with [PBKDF2](https://en.wikipedia.org/wiki/Pbkdf2) - -We will *obviously* use the latter method. Generating the PBKDF2 derived key is -done using the `grub-mkpasswd-pbkdf2` utility. You can get it by -installing GRUB version 2. Generate a key by giving it a password: - -NOTE: This utility is included under the `grub/` directory, when you build -GRUB using the libreboot build system. Run the following commands (assuming -you have the correct build dependencies installed) to build GRUB, from the -libreboot Git repository: - - ./mk -b grub default - -The following executable will then be available under `src/grub/default/`: - - grub-mkpasswd-pbkdf2 - -Run that program. It will ask you to choose a new passphrase. Its output will -be a string of the following form: - - grub.pbkdf2.sha512.10000.HEXDIGITS.MOREHEXDIGITS - -Make sure to copy this into the correct GRUB config. The correct GRUB config -can be determined as follows. Again, let's assume that you have `x200_8mb`: - - grep grubtree= config/coreboot/x200_8mb/target.cfg - -It *may* or *may not* output anything. If it outputs *nothing*, then the -GRUB tree is `default`, otherwise it might output something like: - - grubtree="nvme" - -Make *sure* to use the correct GRUB tree. We will assume `default`, so you -should adapt accordingly, when doing this yourself: - - cp config/grub/default/config/payload grub.cfg - -Now, your `grub.cfg` file is correct for the board, and you can insert -the salted, hashed passphrase that you get from `grub-mkpasswd-pbkdf2` earlier. - -Now open my.grubtest.cfg and put the following before the menu entries -(prefered above the functions and after other directives). Of course use -the pbdkf string that you had generated yourself: - -Put this *before* the menuentries (just before) in `grub.cfg`, but note that -you should **not** literally use what is below; the hash below is not the one -you generated yourself. Make sure to adapt accordingly. - -Example: - - set superusers="root" - password_pbkdf2 root grub.pbkdf2.sha512.10000.711F186347156BC105CD83A2ED7AF1EB971AA2B1EB2640172F34B0DEFFC97E654AF48E5F0C3B7622502B76458DA494270CC0EA6504411D676E6752FD1651E749.8DD11178EB8D1F633308FD8FCC64D0B243F949B9B99CCEADE2ECA11657A757D22025986B0FA116F1D5191E0A22677674C994EDBFADE62240E9D161688266A711 - -**Again**, replace it with the correct hash that you actually obtained for the -password you entered. In other words, *do not use the hash that you see above!* - -Once this configuration is inserted, you will need to enter a passphrase every -time you boot. GRUB will also ask for a username. In the above example, we -made a username `root`, but you can set it to what you want and -adapt accordingly. - -Another good thing to do, if we chose to load signed on-disk GRUB -configurations, is to remove (or comment out) `unset superusers`. Find any line -that says this, in your `grub.cfg` file: - - unset superusers - -Change it to this: - - # unset superusers - -The `unset superusers` command disables password authentication, which will -allow the attacker to boot an arbitrary operating system, regardless of -signature checking. The default libreboot configuration is tweaked for *ease of -use* by end users, and it is *not* done with security in mind (though security -is preferred). Thus, libreboot is less restrictive by default. What you are -doing, per this article, is making your system *more secure* but at the expense -of user-friendliness. - -That just about covers it, where password setup is concerned! - -SeaBIOS first? -============== - -**Very important. Make sure you read this carefully.** - -In releases after Libreboot 20240504, SeaBIOS is the primary payload on -all images, but GRUB is available in the boot menu. Select a ROM image -with `grubfirst` at the end, and do this to the ROM image: - - cbfstool libreboot.rom add-int -i 0 -n etc/show-boot-menu - -This disables the SeaBIOS menu, so that it only loads GRUB. The `grubfirst` -image had this done to it by lbmk (Libreboot build system) during build: - - cbfstool libreboot.rom add -f config/grub/bootorder -n bootorder -t raw - -This `bootorder` file has the following contents: - -``` -/rom@img/grub2 -``` - -You can add it yourself if your image doesn't have it. With this, SeaBIOS -only loads GRUB first. You can still put a GRUB config in CBFS to override -the default one, as of Libreboot 20240612. - -NOTE: Before disabling the boot menu, make sure GRUB works. Access it using -the `bootorder` file and/or press ESC in the SeaBIOS menu. Then disable the -SeaBIOS menu: - - cbfstool libreboot.rom add-int -i 0 -n etc/show-boot-menu - -Although the `bootorder` file only specifies *GRUB*, this just means that -SeaBIOS won't automatically try to boot anything else. The SeaBIOS menu is still -accessible, by pressing ESC when prompted; the above `add-int` command disables -that menu, so that *only* the GRUB payload will be executed. - -SeaBIOS option ROMs -=================== - -SeaBIOS will also still execute PCI option ROMs. Depending on your preference, -you may wish to disable this, but please note that this will break certain -things like graphics cards. More information is available here: - - - -On a laptop, you probably don't have to worry about option ROMs at all, but -desktops are much more easily upgradeable; though, in practise, anyone -inclined to insert a card with a malicious option ROM on it wouldn't do that -anyway, because if they have access to your hardware, they could just -externally re-flash the machine anyway, so I wouldn't worry, but it's up to you. - -If you're using a graphics card, you *need* VGA option ROMs at least. - -GPG keys -======== - -First, generate a GPG keypair to use for signing. Option RSA (sign only) -is ok. - -WARNING: GRUB does not read ASCII armored keys. When attempting to -trust ... a key filename it will print `error: bad signature` on the screen. - -``` -mkdir --mode 0700 keys -gpg --homedir keys --gen-key -gpg --homedir keys --export-secret-keys --armor > boot.secret.key # backup -gpg --homedir keys --export > boot.key -``` - -Now that we have a key, we can sign some files with it. We must sign: - -- a kernel -- (if we have one) an initramfs -- (if we wish to transfer control to it) an on-disk `grub.cfg` -- `grubtest.cfg` (so that you can go back to `grubtest.cfg` after signature - checking is enforced. You can always get back to `grub.cfg` by pressing ESC, - but, afterwards, `grubtest.cfg` is not signed and it will not load. The - GRUB config we made earlier can be copied to `grubtest.cfg` and inserted, - but please only do this at the end of the guide when it tells you to insert - the GRUB config, because there are still osme things you need to do. - -Suppose that we have a pair of `my.kernel` and `my.initramfs` and an -on-disk `libreboot_grub.cfg`. We will sign them by running the following -commands: - -``` -gpg --homedir keys --detach-sign my.initramfs -gpg --homedir keys --detach-sign my.kernel -gpg --homedir keys --detach-sign libreboot_grub.cfg -gpg --homedir keys --detach-sign my.grubtest.cfg -``` - -Of course, some further modifications to grubtest.cfg will be required. We -need to *trust* the key and enable signature enforcement (put this before menu -entries): - -``` -trust (cbfsdisk)/boot.key -set check_signatures=enforce -``` - -What remains now is to include the modifications into the libreboot image -(ROM): - -``` -cbfstool libreboot.rom add -n boot.key -f boot.key -t raw - -# You might consider copying `grub.cfg` to `grubtest.cfg` and adding that. -# Otherwise, adding just `grub.cfg` is also fine. - -cbfstool libreboot.rom add -n grub.cfg -f my.grub.cfg -t raw -cbfstool libreboot.rom add -n grub.cfg.sig -f my.grub.cfg.sig -t raw - -cbfstool libreboot.rom add -n grubtest.cfg -f my.grubtest.cfg -t raw -cbfstool libreboot.rom add -n grubtest.cfg.sig -f my.grubtest.cfg.sig -t raw -``` - -Congratulations! -================ - -With any luck, this should work perfectly. Your system will no longer boot -anything unless it's signed by your key. - -If your entire system is also encrypted, including `/boot`, then that protects -everything including the privkey much more robustly, and it further prevents -tampering with your kernel (where GPG only detects tampering, encryption can -prevent it). - -Encryption, combined with a GRUB passphrase, combined with a GPG check, should -make you pretty damn secure at boot time. All that's left now is one final, -optional step: +**Assimilate that knowledge before continuing with the instructions below, +which tells you what modifications to actually perform, whereas the guide +linked above tells you how to apply your modifications for flashing.** Flash write protection ====================== @@ -322,47 +46,9 @@ except you from overwriting the flash without permission. This is important, because you don't want some malicious software running as root from overwriting your flash, thus removing any of the above protections. -The simplest way is to just do this: - - ifdtool -x libreboot.rom -O libreboot.rom - -If you did the step before, to compile `cbfstool`, you can find ifdtool in -the `elf/` directory, e.g. `elf/ifdtool/default/ifdtool`. Make sure to use -the correct version, as per `tree=` (same as before when deciding to which -cbfstool version to use based on the coreboot tree used by your board). - -Note that this only works for Intel-based systems that use an Intel Flash -Descriptor, which is actually most Intel systems that Libreboot supports. - -You can still flash externally, or strap `HDA_SDO` (`HDA_DOCK_EN` on older -GM45 machines) accordingly. Note that the x4x/ich10-based machines don't have -flash descriptors, and neither do the i945 machines, but the GM45 and newer -Intel platforms do. - -Other facts ------------ - -Strapping `HDA_SDO` or `HDA_DOCK_EN` requires physical access, because you have -to short a pin on the HDA chip on the motherboard, or there will be a header -for this on the board (e.g. "service mode" jumper). - -On *Dell Latitude* laptops specifically, the EC can unlock flash by setting -the SDO/DOCK\_EN signal as described, and this is in fact what -the `dell-flash-unlock` utility does, so you can consider IFD locking there -to be basically useless. - -In addition to the above, you may also consider `/dev/mem` protection. -Enable `CONFIG_STRICT_DEVMEM` in your Linux kernel, or set `securelevel` above -zero on your BSD setup (but BSD cannot be booted with GRUB very easily so -it's a moot point). - -Other write-protect methods +Build-time write protect --------------------------- -The steps above do not require recompilation of the Libreboot images. However, -coreboot offers additional security at build time, which you can select if you -wish. - Let's assume your board is `x200_8mb`, do: ./mk -m coreboot x200_8mb @@ -393,6 +79,207 @@ Anyway, when you're done, save the config and then build it from source in lbmk. See: [build from source](../build/) +IFD-based flash protection +-------------------------- + +The simplest way is to just do this: + + ifdtool -x libreboot.rom -O libreboot.rom + +If you did the step before, to compile `cbfstool`, you can find ifdtool in +the `elf/` directory, e.g. `elf/ifdtool/default/ifdtool`. Use the ifdtool +version matching the coreboot tree for your mainboard. + +Note that this only works for Intel-based systems that use an Intel Flash +Descriptor, which is actually most Intel systems that Libreboot supports. + +Other facts +----------- + +Strapping `HDA_SDO` or `HDA_DOCK_EN` requires physical access, because you have +to short a pin on the HDA chip on the motherboard, or there will be a header +for this on the board (e.g. "service mode" jumper). If you strap those pins, +it disables descriptor-based flash protections. + +On *Dell Latitude* laptops specifically, the EC can unlock flash by setting +the SDO/DOCK\_EN signal as described, and this is in fact what +the `dell-flash-unlock` utility does, so you can consider IFD locking there +to be basically useless. + +In addition to the above, you may also consider `/dev/mem` protection. +Enable `CONFIG_STRICT_DEVMEM` in your Linux kernel, or set `securelevel` above +zero on your BSD setup (but BSD cannot be booted with GRUB very easily so +it's a moot point). + +FLILL +----- + +On Intel Flash Descriptor, you can insert up to four (4) commands on a list +within, called *FLILL*; not yet documented, but any SPI command listed here +would no longer work during internal flash operations. For example, you could +use it to disable certain erase/write commands. You could also use it to +disable *reads*. + +PRx registers +------------- + +Protected Range registers are available on Intel platforms, to disable flash +writes. This is not yet documented, and it varies per platform. + +GRUB Password +============= + +The security of this setup depends on a good GRUB password as GPG signature +checking can be disabled through the GRUB console with this command: + + set check_signatures=no + +The above GRUB shell command is required when you want to live USB media, +or other Linux setups that don't yet have signatures on files e.g. linux. + +We will assume that you're using the `default` GRUB tree; the GRUB CBFS guide +linked above tells you how to determine which GRUB tree to use. + +The following executable will then be available under `src/grub/default/`: + + grub-mkpasswd-pbkdf2 + +Run that program. It will ask you to choose a new passphrase. Its output will +be a string of the following form: + + grub.pbkdf2.sha512.10000.HEXDIGITS.MOREHEXDIGITS + +Put this *before* the menuentries (just before) in `grub.cfg`, but note that +you should **not** literally use what is below; the hash below is not the one +you generated yourself. Make sure to adapt accordingly. + +Example: + + set superusers="root" + password_pbkdf2 root grub.pbkdf2.sha512.10000.711F186347156BC105CD83A2ED7AF1EB971AA2B1EB2640172F34B0DEFFC97E654AF48E5F0C3B7622502B76458DA494270CC0EA6504411D676E6752FD1651E749.8DD11178EB8D1F633308FD8FCC64D0B243F949B9B99CCEADE2ECA11657A757D22025986B0FA116F1D5191E0A22677674C994EDBFADE62240E9D161688266A711 + +**Again**, replace it with the correct hash that you actually obtained for the +password you entered. In other words, *do not use the hash that you see above!* + +GRUB will also ask for a username in addition to the password; the "root" user +is specified above, but you can cahnge it to whatever you want. + +Unset superusers +================ + +Find this line in `grub.cfg`: + + unset superusers + +Change it to this: + + # unset superusers + +Commenting it, as shown above, ensures that password authentication works, +because `unset superusers` in fact disables passwordh authentication, so it's +very important that you comment out this line. + +Disable the SeaBIOS menu +==================== + +**Very important. Make sure you read this carefully.** + +In releases after Libreboot 20240504, SeaBIOS is the primary payload on +all images, but GRUB is available in the boot menu. + +Do this: + + cbfstool libreboot.rom add-int -i 0 -n etc/show-boot-menu + +This disables the SeaBIOS menu, so that it only loads GRUB. + +If your ROM image doesn't auto-start GRUB, you should also insert the +bootorder file: + + cbfstool libreboot.rom add -f config/grub/bootorder -n bootorder -t raw + +This `bootorder` file has the following contents: + +``` +/rom@img/grub2 +``` + +Release images with `seagrub` in the name already have this bootorder file, +so you only need to disable the menu on these images. If you have the +image with `seabios` in the name (instead of `seagrub`), you must do both. + +SeaBIOS option ROMs +------------------- + +SeaBIOS will also still execute PCI option ROMs. Depending on your preference, +you may wish to disable this, but please note that this will break certain +things like graphics cards. More information is available here: + + + +If you're using a graphics card, you *need* VGA option ROMs at least. + +GPG keys +======== + +First, generate a GPG keypair to use for signing. Option RSA (sign only) +is ok. + +WARNING: GRUB does not read ASCII armored keys. When attempting to +trust ASCII armor keys, it will print `error: bad signature` on the screen. + +``` +mkdir --mode 0700 keys +gpg --homedir keys --gen-key +gpg --homedir keys --export-secret-keys --armor > boot.secret.key # backup +gpg --homedir keys --export > boot.key +``` + +Now that we have a key, we can sign some files with it. We must sign: + +- a kernel +- (if we have one) an initramfs +- (if we wish to transfer control to it) an on-disk `grub.cfg` +- `grubtest.cfg` in CBFS, if it exists +- `grub.cfg` in CBFS, if it exists + +You must provide a *detached signature* alongside each file. For example, if +a file in a directory is named `foo`, and GRUB uses this file, an accompaning +file `foo.sig` must exist alongside it. + +Suppose that we have a pair of `my.kernel`, `my.initramfs` and an +on-disk `grub.cfg`. We will sign them by running the following +commands: + +``` +gpg --homedir keys --detach-sign my.initramfs +gpg --homedir keys --detach-sign my.kernel +gpg --homedir keys --detach-sign grub.cfg +``` + +You must also do the above on any file that goes in CBFS, and insert it +into CBFS, using instructions already provided on the GRUB CBFS guide linked +above, earlier on in this guide. + +Enforce GPG check in GRUB +========================= + +The following must be present in `grub.cfg`, but please note that the +background image used by GRUB is in the memdisk by default, not CBFS, so you +might want to put it *after* the command that enables a background: + +``` +trust (cbfsdisk)/boot.key +set check_signatures=enforce +``` + +What remains now is to include the modifications into the libreboot image +(ROM): + +Please read and follow the [GRUB configuration guide](grub_cbfs.md); this is +the GRUB CBFS guide that was also linked above, earlier on in the article +you're currently reading. + Install the new image ===================== @@ -404,3 +291,10 @@ up just fine. Shut it down and wait a few seconds. If you screwed it up and the system is now unbootable, that's OK because you can use an external flasher; please read [external flashing instructions](../install/spi.md) + +References +========== + +* [GRUB manual](https://www.gnu.org/software/grub/manual/html_node/Security.html#Security) +* [GRUB info pages](http://git.savannah.gnu.org/cgit/grub.git/tree/docs/grub.texi) +* [Coreboot GRUB security howto](https://www.coreboot.org/GRUB2#Security) From 87fb10032cdd73a1880478c0467c92fd9c68f93a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 27 Aug 2024 04:06:28 +0100 Subject: [PATCH 048/399] shorten ivy_has_common.md it contains so much useless babble fix that Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 77 ++++++----------------------- 1 file changed, 15 insertions(+), 62 deletions(-) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index e1a3126..1614ca5 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -3,76 +3,29 @@ title: Insert vendor files on Sandybridge/Ivybridge/Haswell x-toc-enable: true ... -**NOTE: This page also applies to PM45 machine Dell Latitude E6400 if it -contains an Nvidia GPU (Libreboot vendor scripts can insert the VGA ROM)** - -This is not a general purpose installation guide, but you *should read it* -before installing Libreboot! *This* guide *must* be followed, no matter what -method you use to install Libreboot; even if you compile from source, you should -still read this page for later reference. - -For how to use an external programmer see the [25xx NOR flashing guide](/docs/install/spi.html) - -Introduction -============ - -**PLEASE MAKE SURE you have build dependencies installed first. Although you -do not need to re-compile release ROMs, you should follow these instructions -before reading the instructions below: -** +Please make sure to install [build dependencies](../build/) if following this +guide, and note that this guide assumes you use [lbmk.git](../git.md), not the +release archives, even if you're using release *ROM images*, which is fine. Coreboot is nominally free software, but requires certain vendor code on some boards, for certain functionalities; we cover this more thoroughly in the [Freedom Status](../../freedom-status.md) page and in the [Binary Blob Reduction Policy](../../news/policy.md). -Well, not all of these files are freely redistributable. Coreboot does provide -vendor files in some cases, if the vendor has allowed it. In other cases, -extraction from factory firmware is required, or you can extract them from -vendor-supplied updates - Libreboot's build system does the latter. +Therefore, you should just follow this guide if in any doubt. Otherwise, the +freedom status page lists all boards that require vendor files, and it says +what they are. This is because Libreboot cannot directly distribute some of them, +but they are extracted from vendor updates at build time, and inserted into +images; when those images are then archived for release, the non-redistributable +filejs are removed. -When you [compile Libreboot ROM images from source](../build/), Libreboot will -automatically download any given files that are required, for any given board -target. This is done without user intervention, and only when absolutely needed -to make the machine boot properly. +The same logic can be used after the fact, to re-download and re-insert these +files; the page that you're reading now will tell you how to do so. -The problem? ------------- - -Well, if the files cannot be freely redistributed, then we can't provide them. -So how do we handle *that*, in the context of Libreboot releases? - -The solution ------------- - -The answer is very simple: these files are **NOT** provided, at all! However, -the very same logic used by the build system can be run standalone, to re-insert -these vendor files on release ROMs. The `inject` script detects what files are -needed for your ROM image. - -The script will detect what board you're inserting on, or you can manually tell -it what board, and it will fetch them for you, inserting them, so that your -board is ready to flash - flashing it without these required files may result in -a brick. - -Vendor file locations --------------- - -During auto-download of files, they are saved to these locations within the -Libreboot build system: - -* ME firmware: `vendor/*/me.bin` - the `*` can be any given directory. Different ones will - be used by given boards, but the directory name may not match the board - target name. -* SMSC SCH5545 fan control firmware (for Dell T1650): `vendor/t1650/sch5545ec.bin` - - ditto 9010/7010 MT/SFF optiplex machines. -* SMSC KBC1126 embedded controller firmware, on HP EliteBooks: `ec/` -* Intel MRC firmware, provides raminit on HP EliteBook 820 G2 - -The above list refers to the *non-redistributable files*, and these are not -directly included in releases. These are auto-downloaded during the build. -The `me.bin` files are produced by extracting them from vendor updates and -neutering them with `me_cleaner` so that Intel ME is disabled during early boot. +*If in doubt, just follow these instructions anyway; if your board doesn't need +vendor files inserted, nothing will happen. You only need to follow this guide +if you use release ROMs; if you're building directly from source, using the +Libreboot build system, then you can just flash the result.* Injecting vendor files into ROM ------------------------------------ From 3c4f5d78e314e405cdb1215230c7ae9d490805e4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 27 Aug 2024 04:12:07 +0100 Subject: [PATCH 049/399] add safety instructions on ivy_has_common Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 1614ca5..faa34bd 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -42,6 +42,11 @@ Run the injection script pointing to the release archive you downloaded: ./vendor inject libreboot-RELEASE_targetname.tar.xz +**You are strongly advised only to insert it on the tarball, because then +checksums are verified to ensure that the vendor files were inserted correctly. +Otherwise, you can do it manually on each individual image, specifying the +board name with the instructions provided below:** + The script can automatically detect the board as long as you do not change the file name. You can then find flash-ready ROMs in `/bin/release/` @@ -59,12 +64,20 @@ For example: Check that the files were inserted ================================== -You *must* ensure that the files were inserted. +You *must* ensure that the files were inserted. The inject command automatically +verifies checksums of the complete images, when you run it directly on a +release tarball, but not when running it manually on an individual image; +checking it manually is useful for the latter, but you should probably just +insert it into the tarball. Some examples of how to do that in lbmk: ./mk -d coreboot TREENAME +TREENAME should be the coreboot tree corresponding to your board. Check +this in `config/coreboot/BOARD/target.cfg` for your board, and `tree` will be +set to e.g. `default`, or some other tree name. + Now you find `elf/cbfstool`, which is a directory containing `cbfstool` and `ifdtool`. Do this on your ROM image (`libreboot.rom` in the example below): From e8aaa24fb8b747f790a26931d7ba669a5f30ec97 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 27 Aug 2024 16:27:19 +0100 Subject: [PATCH 050/399] policy: re-add section saying why fsdg sucks but in a more diplomatic way, and fsf/fsdg/ryf isn't even mentioned directly, but their ideology is referenced, spoken in tongues. Signed-off-by: Leah Rowe --- site/news/policy.de.md | 209 +++++++++++++++++++++++++++++++++++++++++ site/news/policy.md | 209 +++++++++++++++++++++++++++++++++++++++++ site/news/policy.uk.md | 209 +++++++++++++++++++++++++++++++++++++++++ 3 files changed, 627 insertions(+) diff --git a/site/news/policy.de.md b/site/news/policy.de.md index 203ab7d..037d059 100644 --- a/site/news/policy.de.md +++ b/site/news/policy.de.md @@ -176,3 +176,212 @@ exist, for example, the work done by Sam Zeloof and the Libre Silicon project: * (Sam literally makes CPUs in his garage) + +Why? +==== + +This next section previously existed in a less than diplomatic manner. It +has been restored, as of August 2024, because the wisdom that it provides is +important, yet being respectful of our friends in Massachussets is also +a good thing to do, where feasible. This section was previously deleted, as +a gesture of good will to this people, but it can't not be here, so without +further ado: + +Firstly, observe the following graphic: + +![](https://av.libreboot.org/firmware.png) + +Why does this policy page need to be written? Isn't it just describing basic +common sense? The common sense that free software activism must demand all +software to be free; why even talk about it? + +This page has talked about Libreboot's *blob reduction policy*, but more +context is needed. We need to talk about it, because there are many different +interpretations for the exact same argument, depending on your point of view. + +If you use a piece of hardware in Linux, and it works, you might see that it has +free drivers and think nothing else. You will run free application software +such as Firefox, Vim, KDE Plasma desktop, and everything is wonderful, right? + +Where drivers and applications (and your operating system) are concerned, this +is much clearer, because it's software that you're running on your main CPU, +that you installed yourself. What of firmware? + +Libreboot is not the only firmware that exists on your machine, when you have +Libreboot. Look at these articles, which cover other firmwares: + +* +* + +You may ask: should the other firmwares be free too? The answer is **yes**, but +it's complicated: it's not always practical to even study those firmwares. For +example, there are so many webcams out there, so many SSDs, so many devices +all doing the same thing, but implemented differently. Coreboot is already +hard enough, and there are so many mainboards out there. + +For example: every SSD has its own controller, and it has to do a lot of +error correction at great speed, to mitigate the inherent unreliability of +NAND flash. This firmware is highly specialised, and tailored to *that* SSD; +not merely that SSD product line, but *that* SSD, because it often has to be +tweaked per SSD; ditto SD cards, which fundamentally use the same technology. +Would it be practical for something like Linux to provide firmware for +absolutely every SSD? No. Absolutely not; and this is actually an example of +where it makes more sense to bake the firmware into the hardware, rather than +supply it as a firmware in Linux (even if the firmware is updateable, which it +is on some SSDs). + +Another example: your wireless card implements a software defined radio, to +implement all of the various WiFi protocols, which is what your WiFi drivers +make use of. The drivers themselves are also quite complicated. However, the +same driver might be able to operate multiple wireless cards, if there is +some standard interface (regardless of whether it's documented), that the +same driver can use between all the cards, even if those cards are all very +different; this is where firmware comes in. + +Coreboot only covers the main boot firmware, but you will have other firmware +running on your machine. It's simply a fact. + +Historically, a lot of hardware has firmware baked into it, which does whatever +it does on that piece of hardware (e.g. software defined radio on a wifi +device, firmware implementing an AHCI interface for your SATA SSD). + +In some cases, you will find that this firmware is *not* baked into the device. +Instead, a firmware is provided in Linux, uploaded to the device at boot +time, and this must be performed every time you boot or every time you plug +in that device. + +Having firmware in Linux is *good*. Proprietary software is also *bad*, so why +is having *more* proprietary firmware in Linux *good*? Surely, free firmware +would be better, but this firmware has never been free; typically, most +firmware has been non-free, but baked into the hardware so you just didn't +see it. We can demand that the vendors release source code, and we do; in some +cases, we even succeed (for example `ath9k_htc` WiFi dongles have free firmware +available in Linux). + +The reason vendors put more firmware in Linux nowadays is it's cheaper. If the +device itself has firmware baked in, then more money is spent on the EEPROM +that stores it, and it makes research/development more expensive; having an +easy software update mechanism allows bugs to be fixed more quickly, during +development and post-release, thus reducing costs. This saves the +industry *billions*, and it is actually of benefit to the free software +community, because it makes reverse engineering easier, and it makes +actually updating the firmware easier, so more proprietary software can +actually be *replaced with free software*. If some standard interface exists, +for the firmware, then that makes reverse engineering easier *across many +devices*, instead of just one. + +Hardware is also very complex, more so now than in the past; having the +hardware be flexible, configured by *firmware*, makes it easier to work +around defects in the hardware. For example, if a circuit for a new feature +is quite buggy on a bit of hardware, but could be turned off without ill +consequence, a firmware update might do exactly that. + +The existence of such firmware also reminds more people of that fact, so more +people are likely to demand free software. If the firmware is *hidden in the +hardware*, fewer people are likely to raise a stink about it. We in the +Libreboot project want all firmware to be free, and we've known of this +problem for years. + +Some people take what we call the *head in the sand* approach, where any and +all software in Linux must be excluded; certain distros out there do this, and +it is an entirely misguided approach. It is misguided, precisely because it +tells people that *compatible* hardware is more free, when it isn't; more +likely, any hardware that works (without firmware in Linux) likely just has +that same firmware baked into it; in other words, hidden from the user. Hence +the *head in the sand approach* - and this approach would result in far less +hardware being supported. + +Libreboot previously had its head in the sand, before November 2022. Since +November 2022, Libreboot has been much more pragmatic, implementing the +policy that you read now, instead of simply banning all proprietary firmware; +the result is increased hardware support, and in practise many of the newer +machines we support are still entirely free in coreboot (including memory +controller initialisation), right up to Intel Haswell generation. + +You are advised not to put your head in the sand. Better to see the world as +it is, and here is the actual world as it is: + +These firmwares are *required*. In some cases, hardware might have firmware +baked in but provide an update mechanism, e.g. CPU microcode update +mechanism. These firmware updates fix security bugs, reliability issues, +and in some cases even *safety issues* (e.g. thermal safety on a CPU fixed by a +microcode update). + +Baking firmware into the device means that the firmware is less likely to be +seen by the user, so fewer people are likely to raise a fuss about it; if +the main boot firmware for example was baked into the PCH on your Intel +system, completely non-replaceable or even inaccessible, fewer people would +demand free boot firmware and a project like coreboot (and by extension +Libreboot) may not even exist! + +Such is the paradox of free firmware development. Libreboot previously took +a much more hardline approach, banning absolutely all proprietary firmware +whatsoever; the result was that far fewer machines could be supported. A more +pragmatic policy, the one you've just read, was introduced in November 2022, +in an effort to support more hardware and therefore increase the number of +coreboot users; by extension, this will lead to more coreboot development, +and more proprietary firmware being replaced with free software. + +Facts are facts; how you handle them is where the magic happens, and Libreboot +has made its choice. The result since November 2022 has indeed been more +coreboot users, and a lot more hardware supported; more hardware has been +ported to coreboot, that might not have even been ported in the first place, +e.g. more Dell Latitude laptops are supported now (basically all of the +IvyBridge and SandyBridge ones). + +The four freedoms are absolute, but the road to freedom is never a straight +line. Libreboot's policies are laser-focused on getting to that final goal, +but without being dogmatic. By being flexible, while pushing for more firmware +to be freed, more firmware is freed. It's as simple as that. We don't want +proprietary software at all, but in order to have less of it, we have to +have more - for now. + +Let's take an extreme example: what if coreboot was entirely binary blobs +for a given mainboard? Coreboot itself only initialises the hardware, and +jumps to a payload in the flash; in this case, the payload (e.g. GNU GRUB) +would still be free software. Surely, all free firmware would be better, +but this is still an improvement over the original vendor firmware. The +original vendor firmware will have non-free boot firmware *and* its analog +of a coreboot payload (typically a UEFI implementation running various +applications via DXEs) would be non-free. *Coreboot does* in fact do this +on many newer Intel and AMD platforms, all of which Libreboot intends to +accomodate in the future, and doing so would absolutely comply with this +very policy that you are reading now, namely the Binary Blob Reduction Policy. + +You can bet we'll tell everyone that Intel FSP is bad and should be replaced +with free software, and we do; many Intel blobs have in fact been replaced +with Free Software. For example, Libreboot previously provided Intel MRC +which is a raminit blob, on Intel Haswell machines. Angel Pons reverse +engineered the MRC and wrote native memory controller initialisation (raminit) +on this platform, which Libreboot now uses instead of MRC. + +This is a delicate balance, that a lot of projects get wrong - they will +accept blobs, and *not* talk about them. In Libreboot, it's the exact +opposite: we make sure you know about them, and tell you that they are bad, +and we say that they should be fully replaced. + +Unlike some in the community, we even advocate for free software in cases +where the software can't actually be replaced. For example: the RP2040 Boot ROM +is free software, with public source code: + + + +This is the boot ROM source code for RP2040 devices such as Raspberry Pi Pico. +It is a reprogrammable device, and we even use it as a +cheap [SPI flasher](../docs/install/spi.md) running `pico-serprog`. The +main firmware is replaceable, but the *boot ROM* is read-only on this machine; +there are some people would would not insist on free software at that level, +despite being free software activists, because they would regard the boot +ROM as "part of the hardware" - in Libreboot, we insist that all such +software, including this, be free. Freedom merely to study the source code +is still an important freedom, and someone might make a replica of the +hardware at some point; if they do, that boot ROM source code is there for +them to use, without having to re-implement it themselves. Isn't that great? + +I hope that these examples might inspire some people to take more action in +demanding free software everywhere, and to enlighten more people on the road +to software freedom. The road Libreboot takes is the one less traveled, the +one of pragmatism without compromise; we will not lose sight of our original +goals, namely absolute computer user freedom. + +The article will end here, because anything else would be more rambling. diff --git a/site/news/policy.md b/site/news/policy.md index b2e6b29..1686f9f 100644 --- a/site/news/policy.md +++ b/site/news/policy.md @@ -168,3 +168,212 @@ exist, for example, the work done by Sam Zeloof and the Libre Silicon project: * (Sam literally makes CPUs in his garage) + +Why? +==== + +This next section previously existed in a less than diplomatic manner. It +has been restored, as of August 2024, because the wisdom that it provides is +important, yet being respectful of our friends in Massachussets is also +a good thing to do, where feasible. This section was previously deleted, as +a gesture of good will to this people, but it can't not be here, so without +further ado: + +Firstly, observe the following graphic: + +![](https://av.libreboot.org/firmware.png) + +Why does this policy page need to be written? Isn't it just describing basic +common sense? The common sense that free software activism must demand all +software to be free; why even talk about it? + +This page has talked about Libreboot's *blob reduction policy*, but more +context is needed. We need to talk about it, because there are many different +interpretations for the exact same argument, depending on your point of view. + +If you use a piece of hardware in Linux, and it works, you might see that it has +free drivers and think nothing else. You will run free application software +such as Firefox, Vim, KDE Plasma desktop, and everything is wonderful, right? + +Where drivers and applications (and your operating system) are concerned, this +is much clearer, because it's software that you're running on your main CPU, +that you installed yourself. What of firmware? + +Libreboot is not the only firmware that exists on your machine, when you have +Libreboot. Look at these articles, which cover other firmwares: + +* +* + +You may ask: should the other firmwares be free too? The answer is **yes**, but +it's complicated: it's not always practical to even study those firmwares. For +example, there are so many webcams out there, so many SSDs, so many devices +all doing the same thing, but implemented differently. Coreboot is already +hard enough, and there are so many mainboards out there. + +For example: every SSD has its own controller, and it has to do a lot of +error correction at great speed, to mitigate the inherent unreliability of +NAND flash. This firmware is highly specialised, and tailored to *that* SSD; +not merely that SSD product line, but *that* SSD, because it often has to be +tweaked per SSD; ditto SD cards, which fundamentally use the same technology. +Would it be practical for something like Linux to provide firmware for +absolutely every SSD? No. Absolutely not; and this is actually an example of +where it makes more sense to bake the firmware into the hardware, rather than +supply it as a firmware in Linux (even if the firmware is updateable, which it +is on some SSDs). + +Another example: your wireless card implements a software defined radio, to +implement all of the various WiFi protocols, which is what your WiFi drivers +make use of. The drivers themselves are also quite complicated. However, the +same driver might be able to operate multiple wireless cards, if there is +some standard interface (regardless of whether it's documented), that the +same driver can use between all the cards, even if those cards are all very +different; this is where firmware comes in. + +Coreboot only covers the main boot firmware, but you will have other firmware +running on your machine. It's simply a fact. + +Historically, a lot of hardware has firmware baked into it, which does whatever +it does on that piece of hardware (e.g. software defined radio on a wifi +device, firmware implementing an AHCI interface for your SATA SSD). + +In some cases, you will find that this firmware is *not* baked into the device. +Instead, a firmware is provided in Linux, uploaded to the device at boot +time, and this must be performed every time you boot or every time you plug +in that device. + +Having firmware in Linux is *good*. Proprietary software is also *bad*, so why +is having *more* proprietary firmware in Linux *good*? Surely, free firmware +would be better, but this firmware has never been free; typically, most +firmware has been non-free, but baked into the hardware so you just didn't +see it. We can demand that the vendors release source code, and we do; in some +cases, we even succeed (for example `ath9k_htc` WiFi dongles have free firmware +available in Linux). + +The reason vendors put more firmware in Linux nowadays is it's cheaper. If the +device itself has firmware baked in, then more money is spent on the EEPROM +that stores it, and it makes research/development more expensive; having an +easy software update mechanism allows bugs to be fixed more quickly, during +development and post-release, thus reducing costs. This saves the +industry *billions*, and it is actually of benefit to the free software +community, because it makes reverse engineering easier, and it makes +actually updating the firmware easier, so more proprietary software can +actually be *replaced with free software*. If some standard interface exists, +for the firmware, then that makes reverse engineering easier *across many +devices*, instead of just one. + +Hardware is also very complex, more so now than in the past; having the +hardware be flexible, configured by *firmware*, makes it easier to work +around defects in the hardware. For example, if a circuit for a new feature +is quite buggy on a bit of hardware, but could be turned off without ill +consequence, a firmware update might do exactly that. + +The existence of such firmware also reminds more people of that fact, so more +people are likely to demand free software. If the firmware is *hidden in the +hardware*, fewer people are likely to raise a stink about it. We in the +Libreboot project want all firmware to be free, and we've known of this +problem for years. + +Some people take what we call the *head in the sand* approach, where any and +all software in Linux must be excluded; certain distros out there do this, and +it is an entirely misguided approach. It is misguided, precisely because it +tells people that *compatible* hardware is more free, when it isn't; more +likely, any hardware that works (without firmware in Linux) likely just has +that same firmware baked into it; in other words, hidden from the user. Hence +the *head in the sand approach* - and this approach would result in far less +hardware being supported. + +Libreboot previously had its head in the sand, before November 2022. Since +November 2022, Libreboot has been much more pragmatic, implementing the +policy that you read now, instead of simply banning all proprietary firmware; +the result is increased hardware support, and in practise many of the newer +machines we support are still entirely free in coreboot (including memory +controller initialisation), right up to Intel Haswell generation. + +You are advised not to put your head in the sand. Better to see the world as +it is, and here is the actual world as it is: + +These firmwares are *required*. In some cases, hardware might have firmware +baked in but provide an update mechanism, e.g. CPU microcode update +mechanism. These firmware updates fix security bugs, reliability issues, +and in some cases even *safety issues* (e.g. thermal safety on a CPU fixed by a +microcode update). + +Baking firmware into the device means that the firmware is less likely to be +seen by the user, so fewer people are likely to raise a fuss about it; if +the main boot firmware for example was baked into the PCH on your Intel +system, completely non-replaceable or even inaccessible, fewer people would +demand free boot firmware and a project like coreboot (and by extension +Libreboot) may not even exist! + +Such is the paradox of free firmware development. Libreboot previously took +a much more hardline approach, banning absolutely all proprietary firmware +whatsoever; the result was that far fewer machines could be supported. A more +pragmatic policy, the one you've just read, was introduced in November 2022, +in an effort to support more hardware and therefore increase the number of +coreboot users; by extension, this will lead to more coreboot development, +and more proprietary firmware being replaced with free software. + +Facts are facts; how you handle them is where the magic happens, and Libreboot +has made its choice. The result since November 2022 has indeed been more +coreboot users, and a lot more hardware supported; more hardware has been +ported to coreboot, that might not have even been ported in the first place, +e.g. more Dell Latitude laptops are supported now (basically all of the +IvyBridge and SandyBridge ones). + +The four freedoms are absolute, but the road to freedom is never a straight +line. Libreboot's policies are laser-focused on getting to that final goal, +but without being dogmatic. By being flexible, while pushing for more firmware +to be freed, more firmware is freed. It's as simple as that. We don't want +proprietary software at all, but in order to have less of it, we have to +have more - for now. + +Let's take an extreme example: what if coreboot was entirely binary blobs +for a given mainboard? Coreboot itself only initialises the hardware, and +jumps to a payload in the flash; in this case, the payload (e.g. GNU GRUB) +would still be free software. Surely, all free firmware would be better, +but this is still an improvement over the original vendor firmware. The +original vendor firmware will have non-free boot firmware *and* its analog +of a coreboot payload (typically a UEFI implementation running various +applications via DXEs) would be non-free. *Coreboot does* in fact do this +on many newer Intel and AMD platforms, all of which Libreboot intends to +accomodate in the future, and doing so would absolutely comply with this +very policy that you are reading now, namely the Binary Blob Reduction Policy. + +You can bet we'll tell everyone that Intel FSP is bad and should be replaced +with free software, and we do; many Intel blobs have in fact been replaced +with Free Software. For example, Libreboot previously provided Intel MRC +which is a raminit blob, on Intel Haswell machines. Angel Pons reverse +engineered the MRC and wrote native memory controller initialisation (raminit) +on this platform, which Libreboot now uses instead of MRC. + +This is a delicate balance, that a lot of projects get wrong - they will +accept blobs, and *not* talk about them. In Libreboot, it's the exact +opposite: we make sure you know about them, and tell you that they are bad, +and we say that they should be fully replaced. + +Unlike some in the community, we even advocate for free software in cases +where the software can't actually be replaced. For example: the RP2040 Boot ROM +is free software, with public source code: + + + +This is the boot ROM source code for RP2040 devices such as Raspberry Pi Pico. +It is a reprogrammable device, and we even use it as a +cheap [SPI flasher](../docs/install/spi.md) running `pico-serprog`. The +main firmware is replaceable, but the *boot ROM* is read-only on this machine; +there are some people would would not insist on free software at that level, +despite being free software activists, because they would regard the boot +ROM as "part of the hardware" - in Libreboot, we insist that all such +software, including this, be free. Freedom merely to study the source code +is still an important freedom, and someone might make a replica of the +hardware at some point; if they do, that boot ROM source code is there for +them to use, without having to re-implement it themselves. Isn't that great? + +I hope that these examples might inspire some people to take more action in +demanding free software everywhere, and to enlighten more people on the road +to software freedom. The road Libreboot takes is the one less traveled, the +one of pragmatism without compromise; we will not lose sight of our original +goals, namely absolute computer user freedom. + +The article will end here, because anything else would be more rambling. diff --git a/site/news/policy.uk.md b/site/news/policy.uk.md index ad25505..4ba7616 100644 --- a/site/news/policy.uk.md +++ b/site/news/policy.uk.md @@ -170,3 +170,212 @@ Libreboot вирішує цю ситуацію *суворо* та *принци * (Сем буквально виробляє процесори в своєму гаражі) + +Why? +==== + +This next section previously existed in a less than diplomatic manner. It +has been restored, as of August 2024, because the wisdom that it provides is +important, yet being respectful of our friends in Massachussets is also +a good thing to do, where feasible. This section was previously deleted, as +a gesture of good will to this people, but it can't not be here, so without +further ado: + +Firstly, observe the following graphic: + +![](https://av.libreboot.org/firmware.uk.png) + +Why does this policy page need to be written? Isn't it just describing basic +common sense? The common sense that free software activism must demand all +software to be free; why even talk about it? + +This page has talked about Libreboot's *blob reduction policy*, but more +context is needed. We need to talk about it, because there are many different +interpretations for the exact same argument, depending on your point of view. + +If you use a piece of hardware in Linux, and it works, you might see that it has +free drivers and think nothing else. You will run free application software +such as Firefox, Vim, KDE Plasma desktop, and everything is wonderful, right? + +Where drivers and applications (and your operating system) are concerned, this +is much clearer, because it's software that you're running on your main CPU, +that you installed yourself. What of firmware? + +Libreboot is not the only firmware that exists on your machine, when you have +Libreboot. Look at these articles, which cover other firmwares: + +* +* + +You may ask: should the other firmwares be free too? The answer is **yes**, but +it's complicated: it's not always practical to even study those firmwares. For +example, there are so many webcams out there, so many SSDs, so many devices +all doing the same thing, but implemented differently. Coreboot is already +hard enough, and there are so many mainboards out there. + +For example: every SSD has its own controller, and it has to do a lot of +error correction at great speed, to mitigate the inherent unreliability of +NAND flash. This firmware is highly specialised, and tailored to *that* SSD; +not merely that SSD product line, but *that* SSD, because it often has to be +tweaked per SSD; ditto SD cards, which fundamentally use the same technology. +Would it be practical for something like Linux to provide firmware for +absolutely every SSD? No. Absolutely not; and this is actually an example of +where it makes more sense to bake the firmware into the hardware, rather than +supply it as a firmware in Linux (even if the firmware is updateable, which it +is on some SSDs). + +Another example: your wireless card implements a software defined radio, to +implement all of the various WiFi protocols, which is what your WiFi drivers +make use of. The drivers themselves are also quite complicated. However, the +same driver might be able to operate multiple wireless cards, if there is +some standard interface (regardless of whether it's documented), that the +same driver can use between all the cards, even if those cards are all very +different; this is where firmware comes in. + +Coreboot only covers the main boot firmware, but you will have other firmware +running on your machine. It's simply a fact. + +Historically, a lot of hardware has firmware baked into it, which does whatever +it does on that piece of hardware (e.g. software defined radio on a wifi +device, firmware implementing an AHCI interface for your SATA SSD). + +In some cases, you will find that this firmware is *not* baked into the device. +Instead, a firmware is provided in Linux, uploaded to the device at boot +time, and this must be performed every time you boot or every time you plug +in that device. + +Having firmware in Linux is *good*. Proprietary software is also *bad*, so why +is having *more* proprietary firmware in Linux *good*? Surely, free firmware +would be better, but this firmware has never been free; typically, most +firmware has been non-free, but baked into the hardware so you just didn't +see it. We can demand that the vendors release source code, and we do; in some +cases, we even succeed (for example `ath9k_htc` WiFi dongles have free firmware +available in Linux). + +The reason vendors put more firmware in Linux nowadays is it's cheaper. If the +device itself has firmware baked in, then more money is spent on the EEPROM +that stores it, and it makes research/development more expensive; having an +easy software update mechanism allows bugs to be fixed more quickly, during +development and post-release, thus reducing costs. This saves the +industry *billions*, and it is actually of benefit to the free software +community, because it makes reverse engineering easier, and it makes +actually updating the firmware easier, so more proprietary software can +actually be *replaced with free software*. If some standard interface exists, +for the firmware, then that makes reverse engineering easier *across many +devices*, instead of just one. + +Hardware is also very complex, more so now than in the past; having the +hardware be flexible, configured by *firmware*, makes it easier to work +around defects in the hardware. For example, if a circuit for a new feature +is quite buggy on a bit of hardware, but could be turned off without ill +consequence, a firmware update might do exactly that. + +The existence of such firmware also reminds more people of that fact, so more +people are likely to demand free software. If the firmware is *hidden in the +hardware*, fewer people are likely to raise a stink about it. We in the +Libreboot project want all firmware to be free, and we've known of this +problem for years. + +Some people take what we call the *head in the sand* approach, where any and +all software in Linux must be excluded; certain distros out there do this, and +it is an entirely misguided approach. It is misguided, precisely because it +tells people that *compatible* hardware is more free, when it isn't; more +likely, any hardware that works (without firmware in Linux) likely just has +that same firmware baked into it; in other words, hidden from the user. Hence +the *head in the sand approach* - and this approach would result in far less +hardware being supported. + +Libreboot previously had its head in the sand, before November 2022. Since +November 2022, Libreboot has been much more pragmatic, implementing the +policy that you read now, instead of simply banning all proprietary firmware; +the result is increased hardware support, and in practise many of the newer +machines we support are still entirely free in coreboot (including memory +controller initialisation), right up to Intel Haswell generation. + +You are advised not to put your head in the sand. Better to see the world as +it is, and here is the actual world as it is: + +These firmwares are *required*. In some cases, hardware might have firmware +baked in but provide an update mechanism, e.g. CPU microcode update +mechanism. These firmware updates fix security bugs, reliability issues, +and in some cases even *safety issues* (e.g. thermal safety on a CPU fixed by a +microcode update). + +Baking firmware into the device means that the firmware is less likely to be +seen by the user, so fewer people are likely to raise a fuss about it; if +the main boot firmware for example was baked into the PCH on your Intel +system, completely non-replaceable or even inaccessible, fewer people would +demand free boot firmware and a project like coreboot (and by extension +Libreboot) may not even exist! + +Such is the paradox of free firmware development. Libreboot previously took +a much more hardline approach, banning absolutely all proprietary firmware +whatsoever; the result was that far fewer machines could be supported. A more +pragmatic policy, the one you've just read, was introduced in November 2022, +in an effort to support more hardware and therefore increase the number of +coreboot users; by extension, this will lead to more coreboot development, +and more proprietary firmware being replaced with free software. + +Facts are facts; how you handle them is where the magic happens, and Libreboot +has made its choice. The result since November 2022 has indeed been more +coreboot users, and a lot more hardware supported; more hardware has been +ported to coreboot, that might not have even been ported in the first place, +e.g. more Dell Latitude laptops are supported now (basically all of the +IvyBridge and SandyBridge ones). + +The four freedoms are absolute, but the road to freedom is never a straight +line. Libreboot's policies are laser-focused on getting to that final goal, +but without being dogmatic. By being flexible, while pushing for more firmware +to be freed, more firmware is freed. It's as simple as that. We don't want +proprietary software at all, but in order to have less of it, we have to +have more - for now. + +Let's take an extreme example: what if coreboot was entirely binary blobs +for a given mainboard? Coreboot itself only initialises the hardware, and +jumps to a payload in the flash; in this case, the payload (e.g. GNU GRUB) +would still be free software. Surely, all free firmware would be better, +but this is still an improvement over the original vendor firmware. The +original vendor firmware will have non-free boot firmware *and* its analog +of a coreboot payload (typically a UEFI implementation running various +applications via DXEs) would be non-free. *Coreboot does* in fact do this +on many newer Intel and AMD platforms, all of which Libreboot intends to +accomodate in the future, and doing so would absolutely comply with this +very policy that you are reading now, namely the Binary Blob Reduction Policy. + +You can bet we'll tell everyone that Intel FSP is bad and should be replaced +with free software, and we do; many Intel blobs have in fact been replaced +with Free Software. For example, Libreboot previously provided Intel MRC +which is a raminit blob, on Intel Haswell machines. Angel Pons reverse +engineered the MRC and wrote native memory controller initialisation (raminit) +on this platform, which Libreboot now uses instead of MRC. + +This is a delicate balance, that a lot of projects get wrong - they will +accept blobs, and *not* talk about them. In Libreboot, it's the exact +opposite: we make sure you know about them, and tell you that they are bad, +and we say that they should be fully replaced. + +Unlike some in the community, we even advocate for free software in cases +where the software can't actually be replaced. For example: the RP2040 Boot ROM +is free software, with public source code: + + + +This is the boot ROM source code for RP2040 devices such as Raspberry Pi Pico. +It is a reprogrammable device, and we even use it as a +cheap [SPI flasher](../docs/install/spi.md) running `pico-serprog`. The +main firmware is replaceable, but the *boot ROM* is read-only on this machine; +there are some people would would not insist on free software at that level, +despite being free software activists, because they would regard the boot +ROM as "part of the hardware" - in Libreboot, we insist that all such +software, including this, be free. Freedom merely to study the source code +is still an important freedom, and someone might make a replica of the +hardware at some point; if they do, that boot ROM source code is there for +them to use, without having to re-implement it themselves. Isn't that great? + +I hope that these examples might inspire some people to take more action in +demanding free software everywhere, and to enlighten more people on the road +to software freedom. The road Libreboot takes is the one less traveled, the +one of pragmatism without compromise; we will not lose sight of our original +goals, namely absolute computer user freedom. + +The article will end here, because anything else would be more rambling. From feda02a728026e6e3dd92d0d957bbe4a4c433d0d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 27 Aug 2024 16:29:19 +0100 Subject: [PATCH 051/399] grammar Signed-off-by: Leah Rowe --- site/news/policy.de.md | 2 +- site/news/policy.md | 2 +- site/news/policy.uk.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/site/news/policy.de.md b/site/news/policy.de.md index 037d059..c3b071a 100644 --- a/site/news/policy.de.md +++ b/site/news/policy.de.md @@ -184,7 +184,7 @@ This next section previously existed in a less than diplomatic manner. It has been restored, as of August 2024, because the wisdom that it provides is important, yet being respectful of our friends in Massachussets is also a good thing to do, where feasible. This section was previously deleted, as -a gesture of good will to this people, but it can't not be here, so without +a gesture of good will to those people, but it can't not be here, so without further ado: Firstly, observe the following graphic: diff --git a/site/news/policy.md b/site/news/policy.md index 1686f9f..f5d5026 100644 --- a/site/news/policy.md +++ b/site/news/policy.md @@ -176,7 +176,7 @@ This next section previously existed in a less than diplomatic manner. It has been restored, as of August 2024, because the wisdom that it provides is important, yet being respectful of our friends in Massachussets is also a good thing to do, where feasible. This section was previously deleted, as -a gesture of good will to this people, but it can't not be here, so without +a gesture of good will to those people, but it can't not be here, so without further ado: Firstly, observe the following graphic: diff --git a/site/news/policy.uk.md b/site/news/policy.uk.md index 4ba7616..a808979 100644 --- a/site/news/policy.uk.md +++ b/site/news/policy.uk.md @@ -178,7 +178,7 @@ This next section previously existed in a less than diplomatic manner. It has been restored, as of August 2024, because the wisdom that it provides is important, yet being respectful of our friends in Massachussets is also a good thing to do, where feasible. This section was previously deleted, as -a gesture of good will to this people, but it can't not be here, so without +a gesture of good will to those people, but it can't not be here, so without further ado: Firstly, observe the following graphic: From 9909590362282181f8507320d0738171e9e270b1 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 29 Aug 2024 01:00:37 +0100 Subject: [PATCH 052/399] ivy_has_common: explicitly mention latitudes Signed-off-by: Leah Rowe --- site/news/safety.md | 7 +++++++ site/tasks/index.md | 4 ++++ 2 files changed, 11 insertions(+) diff --git a/site/news/safety.md b/site/news/safety.md index 0ba334d..07b62ac 100644 --- a/site/news/safety.md +++ b/site/news/safety.md @@ -2,6 +2,13 @@ % Leah Rowe % 7 July 2023 +**Please also follow this guide if using Dell Latitude laptops.** + +**If unsure, just follow this guide. If you follow this guide on a board that +does not need vendor files, the resulting ROM images will be identical and +therefore nothing will have happened. The inject script is designed to insert +certain files, only if required on a given mainboard.** + NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. diff --git a/site/tasks/index.md b/site/tasks/index.md index 1994366..797c200 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -68,6 +68,10 @@ reduces the sloccount by only 1 line, maybe 3, but they all add up. Audit 3 contained hundreds of changes, small changes, that together accounted for about 1000 lines of code removed, while not affecting functionality in any way. +This will always remain on the TODO list, because there will always be a need +for auditing, as is true of any codebase. It is always possible to fix more +bugs or improve a piece of code. As they say: the code is never finished. + Port vendor scripts to Heads ============================ From d450d080ffd70161feaa7734140378987c834d58 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 29 Aug 2024 21:11:48 +0100 Subject: [PATCH 053/399] maintain/style: update err reference it's a variable now, called err, rather than a function called err. the variable defines the name of a function that handles errors. Signed-off-by: Leah Rowe --- site/docs/maintain/style.md | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/site/docs/maintain/style.md b/site/docs/maintain/style.md index cb2bdbd..5dc773c 100644 --- a/site/docs/maintain/style.md +++ b/site/docs/maintain/style.md @@ -82,7 +82,7 @@ attention to how the functions are formatted, e.g. where `{` and `}` go: ``` #!/usr/bin/env sh -. "include/err.sh" +. "include/lib.sh" main() { @@ -94,7 +94,7 @@ main() foo() { printf "I'm a function that does stuff.\n" - bar || err "foo: an error occured" + bar || $err "foo: an error occured" do_something_else } @@ -107,7 +107,7 @@ bar() do_something_else() { complicated_function bla bla bla || \ - err "do_something_else: something happened that wasn't nice" + $err "do_something_else: something happened that wasn't nice" } complicated_function() @@ -169,7 +169,7 @@ However, neither of these should be relied upon exclusively. When a script runs must be handled. The general rule is to call `err()`, which is provided in lbmk by -the file `include/err.sh`. This is inspired by the way `err()` is called in +the file `include/lib.sh`. This is inspired by the way `err()` is called in BSD programs (from `err.h`, a non-standard BSD libc extension). Where a script must perform certain cleanup before exiting, the script should @@ -177,11 +177,11 @@ implement its own `fail()` function that performs cleanup, and then calls `err()`. The `err()` function takes a string as argument, which will be printed to the screen. -If `err` is being called from `main()`, just write the error message. However, +If `$err` is being called from `main()`, just write the error message. However, if it's being called from another function, you should write the function name. For example: - err "function_name: this shit doesn't work. fix it." + $err "function_name: this shit doesn't work. fix it." Do not directly exit -------------------- @@ -276,7 +276,7 @@ follow-up line. For example: function_name() { really stupidly long command that may also return error state || \ - err "function_name: you fucked up. try again." + $err "function_name: you fucked up. try again." } ``` From a2e2d85ca17e070f93a9d955c505034b08cc0deb Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 29 Aug 2024 22:19:58 +0100 Subject: [PATCH 054/399] add safety link on the 20240612 page Signed-off-by: Leah Rowe --- site/news/libreboot20240612.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/site/news/libreboot20240612.md b/site/news/libreboot20240612.md index f2ced13..ed9808c 100644 --- a/site/news/libreboot20240612.md +++ b/site/news/libreboot20240612.md @@ -2,6 +2,9 @@ % Leah Rowe % 12 June 2024 +**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING +LIBREBOOT](safety.md).** + Introduction ============ From 1687ff6e98205ce7f430fdc42e7089882903c2c0 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 29 Aug 2024 22:20:29 +0100 Subject: [PATCH 055/399] add safety link on the e6400 news page Signed-off-by: Leah Rowe --- site/news/e6400.uk.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/site/news/e6400.uk.md b/site/news/e6400.uk.md index 7aa9987..164e96c 100644 --- a/site/news/e6400.uk.md +++ b/site/news/e6400.uk.md @@ -2,6 +2,9 @@ % Лія Роу % 19 квітня 2023 року +**Please make sure to insert vendor files if using the Nvidia GPU model of +E6400. See: [flash safety](safety.md)** + Вступ ============ From 040a918adf09eac5ed119bcb7d721dbace29ff2f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 29 Aug 2024 22:21:02 +0100 Subject: [PATCH 056/399] update commands on the porting page Signed-off-by: Leah Rowe --- site/docs/maintain/porting.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/maintain/porting.md b/site/docs/maintain/porting.md index 71cc014..294757b 100644 --- a/site/docs/maintain/porting.md +++ b/site/docs/maintain/porting.md @@ -67,7 +67,7 @@ starting point. You can then easily modify the existing coreboot configs for you board via lbmk. - ./update trees -m coreboot t420s_12mb + ./mk -m coreboot t420s_12mb This script will provide a curses interface through which you can easily modify the necessary variables and settings. @@ -82,7 +82,7 @@ a corebootfb and txtmode config for each board (the script will handle this for Now you can build and test the rom for `board.` Once you have finished this, you can try flashing the resulting rom to your board as a test. - ./build roms t420s_12mb + ./mk -b coreboot t420s_12mb If you try to flash this rom and it fails, then there are two probable reasons: From ac0e6833360bd9b0e7ccd51b07bd0c80ce5168da Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 29 Aug 2024 23:54:48 +0100 Subject: [PATCH 057/399] unified dell latitude instructions 90% of the info on the old pages was fluff, copied and pasted to all the other pages. replace them all with a single page. i've already directed the old pages to the new one, in libreboot.org's httpd Signed-off-by: Leah Rowe --- site/contrib.md | 2 +- site/docs/hardware/e5520.md | 84 -------- site/docs/hardware/e5530.md | 86 -------- site/docs/hardware/e6400.md | 277 -------------------------- site/docs/hardware/e6420.md | 84 -------- site/docs/hardware/e6430.md | 84 -------- site/docs/hardware/e6520.md | 84 -------- site/docs/hardware/e6530.md | 84 -------- site/docs/hardware/index.md | 14 +- site/docs/hardware/index.zh-cn.md | 4 +- site/docs/hardware/r400.md | 2 +- site/docs/hardware/r500.md | 2 +- site/docs/hardware/t400.md | 2 +- site/docs/hardware/t500.md | 2 +- site/docs/hardware/x200.md | 2 +- site/docs/install/dell_internal.md | 78 -------- site/docs/install/e6400.md | 203 ------------------- site/docs/install/e6430.md | 92 --------- site/docs/install/index.md | 37 +--- site/docs/install/r400_external.md | 2 +- site/docs/install/t400_external.md | 2 +- site/docs/install/t500_external.md | 2 +- site/docs/install/x200_external.md | 2 +- site/docs/install/x200_external.uk.md | 2 +- site/news/e6400.md | 3 +- site/news/e6400.uk.md | 3 +- site/news/e6400nvidia.md | 6 +- site/news/libreboot20230423.md | 2 +- site/news/libreboot20230625.md | 2 +- site/news/libreboot20231021.md | 6 +- site/news/libreboot20231101.md | 4 +- site/news/libreboot20231106.md | 4 +- site/news/libreboot20240225.md | 14 +- site/news/libreboot20240504.md | 14 +- 34 files changed, 51 insertions(+), 1240 deletions(-) delete mode 100644 site/docs/hardware/e5520.md delete mode 100644 site/docs/hardware/e5530.md delete mode 100644 site/docs/hardware/e6400.md delete mode 100644 site/docs/hardware/e6420.md delete mode 100644 site/docs/hardware/e6430.md delete mode 100644 site/docs/hardware/e6520.md delete mode 100644 site/docs/hardware/e6530.md delete mode 100644 site/docs/install/dell_internal.md delete mode 100644 site/docs/install/e6400.md delete mode 100644 site/docs/install/e6430.md diff --git a/site/contrib.md b/site/contrib.md index 82451f2..6f9dcf5 100644 --- a/site/contrib.md +++ b/site/contrib.md @@ -245,7 +245,7 @@ Nicholas Chin ------------- [Ported Dell Latitude E6400 to Libreboot](news/e6400.md) -and also [Dell Latitude E6430](hardware/e6430.md) - author of +and also [Dell Latitude E6430](docs/install/latitude.md) - author of the `dell-flash-unlock` (formerly `e6400-flash-unlock`) utility, which can unlock the flash on these boards, allowing internal flashing of Libreboot directly from host OS running under the original Dell firmware. diff --git a/site/docs/hardware/e5520.md b/site/docs/hardware/e5520.md deleted file mode 100644 index 6adf82f..0000000 --- a/site/docs/hardware/e5520.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Dell Latitude E5520 -x-toc-enable: true -... - -**Thermal safety**: this machine shuts down very quickly, when the machine -exceeds 80c CPU temperature, which is far more conservative than on most -laptops (non-Dell ones), so you should make sure that your thermals are -excellent. More info available [here](dell_thermal.md). This is a known bug, -but otherwise the machine will be mostly stable. - -
-
-Dell Latitude E5520 -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Dell | -| **Name** | Latitude E5520 | -| **Variants** | E5520 with Intel GPU supported | -| **Released** | 2012 | -| **Chipset** | Intel Sandy Bridge | -| **CPU** | Intel Core i3, i5 or i7 | -| **Graphics** | Intel HD 4000 and unsupported Nvidia NVS 5200M | -| **Display** | 1366x768/1600x900 TFT | -| **Memory** | 4 or 8GB (Upgradable to 16GB) | -| **Architecture** | x86_64 | -| **EC** | SMSC MEC5055 with proprietary firmware | -| **Original boot firmware** | Dell UEFI | -| **Intel ME/AMD PSP** | Present, neutered | -| **Flash chip** | 2xSOIC-8, 6MiB (4MiB and 2MiB in combination) | - - -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|---------------------------------------------------|----| -| **Internal flashing with original boot firmware** | W+ | -| **Display (if Intel GPU)** | W+ | -| **Display (if Nvidia GPU)** | U | -| **Audio** | W+ | -| **RAM Init** | W+ | -| **External output** | W+ | -| **Display brightness** | P+ | - -| ***Payloads supported*** | | -|---------------------------|-----------| -| **GRUB** | Works | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | -
-Introduction -============ - -**Libreboot 20231021 and releases newer than this have ROMs available for -Dell Latitude E5520.** - -ROM images for Dell Latitude E5520 are available for flashing in the Libreboot -releases *after* 20230625, or you can compile a ROM image for installation via -lbmk, see: [build instructions](../build/) - -Only the Intel GPU variants are supported, currently. All models with Intel GPU -are assumed to work. - -Unlike the E6400, this one does require a neutered Intel ME image to run. This -means running it through `me_cleaner` before flashing; the Libreboot build -system does this automatically, during build, or you can insert a neutered -ROM image using the vendor scripts, see guide: - -[Insert vendor files](../install/ivy_has_common.md) - -As with the E6400, this one is flashable in software, from Dell UEFI firmware -to Libreboot. Please refer to the installation instructions. - -**To install Libreboot, see: [E5520 installation -instructions](../install/e6430.md)** diff --git a/site/docs/hardware/e5530.md b/site/docs/hardware/e5530.md deleted file mode 100644 index 96bfe33..0000000 --- a/site/docs/hardware/e5530.md +++ /dev/null @@ -1,86 +0,0 @@ ---- -title: Dell Latitude E5530 -x-toc-enable: true -... - -**Thermal safety**: this machine shuts down very quickly, when the machine -exceeds 80c CPU temperature, which is far more conservative than on most -laptops (non-Dell ones), so you should make sure that your thermals are -excellent. More info available [here](dell_thermal.md). This is a known bug, -but otherwise the machine will be mostly stable. - -
-
-Dell Latitude E5530 -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Dell | -| **Name** | Latitude E5530 | -| **Variants** | E5530 with Intel GPU supported | -| **Released** | 2012 | -| **Chipset** | Intel Ivy Bridge | -| **CPU** | Intel Core i3, i5 or i7 | -| **Graphics** | Intel HD 4000 and unsupported Nvidia NVS 5200M | -| **Display** | 1366x768/1600x900 TFT | -| **Memory** | 4 or 8GB (Upgradable to 16GB) | -| **Architecture** | x86_64 | -| **EC** | SMSC MEC5055 with proprietary firmware | -| **Original boot firmware** | Dell UEFI | -| **Intel ME/AMD PSP** | Present, neutered | -| **Flash chip** | 2xSOIC-8, 12MiB (8MiB and 4MiB in combination) | - - -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|---------------------------------------------------|----| -| **Internal flashing with original boot firmware** | W+ | -| **Display (if Intel GPU)** | W+ | -| **Display (if Nvidia GPU)** | U | -| **Audio** | W+ | -| **RAM Init** | W+ | -| **External output** | W+ | -| **Display brightness** | P+ | - -| ***Payloads supported*** | | -|---------------------------|-----------| -| **GRUB** | Works | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | -
-Introduction -============ - -**Libreboot 20231021 and releases newer than this have ROMs available for -Dell Latitude E5530.** - -ROM images for Dell Latitude E5530 are available for flashing in the Libreboot -releases *after* 20230625, or you can compile a ROM image for installation via -lbmk, see: [build instructions](../build/) - -Only the Intel GPU variants are supported, currently. All models with Intel GPU -are assumed to work. - -Unlike the E6400, this one does require a neutered Intel ME image to run. This -means running it through `me_cleaner` before flashing; the Libreboot build -system does this automatically, during build, or you can insert a neutered -ROM image using the vendor scripts, see guide: - -[Insert vendor files](../install/ivy_has_common.md) - -As with the E6400, this one is flashable in software, from Dell UEFI firmware -to Libreboot. Please refer to the installation instructions. - -**To install Libreboot, see: [E5530 installation -instructions](../install/e6430.md)** - -Of note: this machine features a Broadnic nic, for ethernet. diff --git a/site/docs/hardware/e6400.md b/site/docs/hardware/e6400.md deleted file mode 100644 index a268527..0000000 --- a/site/docs/hardware/e6400.md +++ /dev/null @@ -1,277 +0,0 @@ ---- -title: Dell Latitude E6400 -x-toc-enable: true -... - -**Thermal safety**: this machine shuts down very quickly, when the machine -exceeds 80c CPU temperature, which is far more conservative than on most -laptops (non-Dell ones), so you should make sure that your thermals are -excellent. More info available [here](dell_thermal.md). This is a known bug, -but otherwise the machine will be mostly stable. - -
-
-Dell Latitude E6400 Dell Latitude E6400 XFR -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Dell | -| **Name** | Latitude E6400 | -| **Variants** | E6400, E6400 XFR and E6400 ATG are supported | -| **Released** | 2009 | -| **Chipset** | Intel Cantiga GM45(Intel GPU)/PM45(Nvidia GPU) | -| **CPU** | Intel Core 2 Duo (Penryn family). | -| **Graphics** | Intel GMA 4500MHD (and NVidia Quadro NVS 160M - on some models) | -| **Display** | 1280x800/1440x900 TFT | -| **Memory** | 2 or 4GB (Upgradable to 8GB) | -| **Architecture** | x86_64 | -| **EC** | SMSC MEC5035 with proprietary firmware | -| **Original boot firmware** | Dell BIOS | -| **Intel ME/AMD PSP** | Present. Can be completely disabled. | -| **Flash chip** | SOIC-8 4MiB or 2MiB+4MiB | - - -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|---------------------------------------------------|----| -| **Internal flashing with original boot firmware** | W+ | -| **Display (if Intel GPU)** | W+ | -| **Display (if Nvidia GPU)** | W* | -| **Audio** | W+ | -| **RAM Init** | W+ | -| **External output** | W+ | -| **Display brightness** | P+ | - -| ***Payloads supported*** | | -|---------------------------|-----------| -| **GRUB** | Works | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | -
-Introduction -============ - -Known supported variants: E6400, E6400 XFR and E6400 ATG. This page has -been updated to include information about Nvidia GPU variants. See news post: -[Dell Latitude E6400 XFR support confirmed, plus experimental Nvidia GPU -support on E6400 variants](../../news/e6400nvidia.md). - -**To install Libreboot, see: [E6400 installation -instructions](../install/e6400.md)** - -ROM images for Dell Latitude E6400 are available for flashing in the Libreboot -release 20230423 onwards, or you can compile a ROM image for installation via -lbmk, see: [build instructions](../build/) - -There are two possible flash chip sizes for the E6400: 4MiB (32Mbit) or 2+4MiB -(16Mbit+32MBit). Libreboot presently supports the 4MiB version, and provides -8MiB images for those who upgrade their flash to 8MiB or 16MiB. There appears -to be several possible mainboard PCBs for the E6400, which we believe mostly -affects the GPU configuration and the number of available SPI flash footprints: - -- LA-3801P: iGPU, possibly dual SPI (however only one may be populated) -- LA-3803P: dGPU, dual SPI (however only one may be populated) -- LA-3805P: iGPU, single SPI flash (4MiB) -- LA-3806P: dGPU, unknown SPI configuration (likely at least 4MiB) - -These PCB numbers can be found either under the black plastic in the RAM slots -on the bottom (CPU side) of the board, the top left corner near the VGA port -(top side, under the keyboard and palmrest), or near the CPU backplate (only -requires removal of the keyboard). - -We believe that all boards will have at least a single 4MiB flash chip, -regardless of the number of SPI footprints. This is likely the most common -configuration on most available systems. The 2+4MiB configuration likely -would have only been used on systems with full Intel ME firmware with AMT -functionality, though this configuration has not yet been encountered. - -Most people will want to use the 4MiB images. - -Intel GPU: 100% Free Software is possible ---------------- - -This is a GM45/PM45 platform, so completely libre initialisation in -coreboot is possible, provided by default in Libreboot. - -Management Engine (ME) firmware removed -------------------------- - -This port in Libreboot makes use of `ich9gen` from ich9utils, which -you can read about in the [ich9utils manual](../install/ich9utils.md) - this -creates a no-ME setup. The Intel Management Engine firmware (ME) is completely -removed, and the ME disabled, just like on ThinkPad X200, T400 and so on. - -*The E6400 laptops may come with the ME (and sometimes AMT in addition) before -flashing libreboot. Dell also sold configurations with the ME completely -disabled, identifiable by a yellow sticker reading "3 ME Disabled" inside the -bottom panel. This config sets the MeDisable bit in the IFD and sets the ME -region almost entirely to 1's, with the occasional 32-bit value (likely not -executable). libreboot disables and removes it by using a modified descriptor: -see [../install/ich9utils.md](../install/ich9utils.md)* -(contains notes, plus instructions) - -Issues pertaining to Nvidia GPU variants -======================================== - -Copper shim for GPU cooling ---------------------------- - -NOTE: this section does *not* apply to XFR or ATG variants of E6400, which have -a much beefier heatsink by default. - -The *default* heatsink in Nvidia variants of E6400 (regular model) has thermal -paste for the CPU, and a thermal *pad* for the GPU. This pad is woefully -inadequate, but replacing it with *paste* is a bad idea, because of the gap -there would be between heatsink plate and GPU die. - -A solution for this would be to use a *copper shim*, with paste on each side, -to replace the thermal pad. - -This eBay seller seems to make and sell a lot of copper shims, specifically -for E6400: - -**SELLER LINK REMOVED.** - one will not be re-added. Putting ebay links on the -Libreboot site is folly, because they disappear. Just search for it and see if -you can find one for purchase. It's literally just a small bit of copper cut -smooth to just the right size. Actually, there's a lot of engineering behind -that, but installation is very simple, and any decent seller will provide -guidance. - -If you buy one of those, could you measure it? Tell Libreboot the dimensions. -Get in touch with us. It would be nice to know precise specs, but that seller -provides what you need. If you find similar listings elsewhere, please also -let us know. - -The shim will greatly reduce GPU temperatures, and probably improve performance -due to less GPU throttling as a result of heat. - -Nouveau(in Linux) currently broken ----------------------------------- - -Nouveau is the libre driver in Linux, for Nvidia graphics. Nvidia themselves -do not provide binary drivers anymore, for these GPUs. It crashes in Linux, -when you try to start Xorg (Wayland is untested). - -If you're booting an Nvidia variant in Linux, boot Linux with -the `nomodeset` kernel option at boot time. This means that graphics are -rendered in software. - -Development discussion, for Nvidia variants of E6400, is available here: - - - -OpenBSD's Nvidia driver works perfectly ---------------------------------------- - -OpenBSD 7.3 was tested, on my Nvidia-model E6400, and Xorg works OK with -the `nv` driver. - - - -See: - -OpenBSD is a complete free 4.4BSD Unix operating system focused on portability, -security and *code correctness*. It's quite useable for most day to day tasks. - -You can find information in Libreboot about BSD operating systems on the -main guide: - -* [BSD Operating Systems](../bsd/) - -FreeBSD and newer Linux (e.g. Archlinux) untested! --------------------------------------------------- - -FreeBSD has not yet been tested, as far as we know, but it should work. - -[Testers needed! Please get in touch!](../maintain/testing.html) - -**At the time of writing this post, FreeBSD -and newer Linux have not yet been tested** (I plan to test *Arch Linux*), but -the older Linux/Mesa version in Debian 11.6 works just fine in the Dell BIOS, -and I've confirmed that it uses the exact same Video BIOS Option ROM. - -Desktop environment / window manager on OpenBSD + Performance notes -------------------------------------------------------------------- - -TODO: This section could probably be moved to its own section. It's not really -relevant to Libreboot per se, but it may help a few people. - -Again, Linux's nouveau driver is currently broken. I've been playing with my -E6400 (nvidia model) for a while and I've found that these things are a *must* -for performance (the machine otherwise lags, openbsd's `nv` driver isn't quite -as good as nouveau, when the nouveau one works that is): - -* Use a lightweight desktop environment like LXQt, or lightweight window - manager (OpenBSD has `cwm` in base, and it's excellent) -* Install `obsdfreqd` which scales down the CPU speed during idle state; the - GPU has a poor thermal pad for cooling and so if the CPU is running hot, - that doesn't bode well for GPU temperatures either, and the GPU is likely - lagging due to heat: - -How to install `obsdfreqd`: - - pkg_add obsdfreqd - rcctl enable obsdfreqd - -Now, before you start it, make sure `apmd` is disabled; it can be used, but -not with the `-A` flag: - - rcctl stop apmd - rcctl disable apmd - -Now start obsdfreqd: - - rcctl start obsdfreqd - -You will be well served to perform the copper shim mod, for GPU cooling. -With `obsdfreqd`, your laptop will run much cooler. This is generally a good -idea anyway, especially on laptops, to save electricity. - -Of course, there are many tweaks that you can do to OpenBSD but the key is: -don't use heavy bloated software. The term *lightweight* is misleading anyway; -if the software does its job efficiently, and you're happy with it, then it is -by definition superior for your purposes. So, "lightweight" is simply a word -for "efficient" in many contexts. We should encourage the use and development -of highly efficient software that runs more smoothly on old machines. The -elitist attitude of *just buy a new computer* is quite damaging; re-use is -always better, when that is feasible and safe. The power of BSD (and Linux) is -precisely that you can tweak it to get the most use out of older hardware.. - -Another nice hint: higher resolution video like 1080p 60fps or above won't -play smoothly at all in a web browser. In testing at least on OpenBSD 7.3, -Firefox seems to have the best performance among all the web browsers, at least -when I used it. Anything 720p 30/60fps will work ~OK. - -For YouTube, you could use yt-dlp, which is available in ports, and use mpv to -stream via yt-dlp. Or download manually with yt-dlp and play offline. See: - - - - - -Another hint: for watching youtube in the browser, Invidious works quite well. -It's a frontend that lets you view it by proxy, and there are many instances -of it online. For a list of instances, see: - - - -Unlike youtube.com, watching youtube via invidious works even with JavaScript -turned off in the browser. You can use it to also search YouTube, and then -paste the youtube.com link into yt-dlp or mpv; Invidious websites themselves -also often provide a download button for videos. - -The yt-dlp software may also work on a few other websites besides YouTube. -Running with JavaScript turned *off* is generally recommended for performance, -especially on slower machines, turning it on only when you need it. Many -websites are just full of junk nowadays. - diff --git a/site/docs/hardware/e6420.md b/site/docs/hardware/e6420.md deleted file mode 100644 index 9930f49..0000000 --- a/site/docs/hardware/e6420.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Dell Latitude E6420 -x-toc-enable: true -... - -**Thermal safety**: this machine shuts down very quickly, when the machine -exceeds 80c CPU temperature, which is far more conservative than on most -laptops (non-Dell ones), so you should make sure that your thermals are -excellent. More info available [here](dell_thermal.md). This is a known bug, -but otherwise the machine will be mostly stable. - -
-
-Dell Latitude E6420 -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Dell | -| **Name** | Latitude E6420 | -| **Variants** | E6420 with Intel GPU supported | -| **Released** | 2012 | -| **Chipset** | Intel Sandy Bridge | -| **CPU** | Intel Core i3, i5 or i7 | -| **Graphics** | Intel HD 4000 and unsupported Nvidia NVS 5200M | -| **Display** | 1366x768/1600x900 TFT | -| **Memory** | 4 or 8GB (Upgradable to 16GB) | -| **Architecture** | x86_64 | -| **EC** | SMSC MEC5055 with proprietary firmware | -| **Original boot firmware** | Dell UEFI | -| **Intel ME/AMD PSP** | Present, neutered | -| **Flash chip** | 2xSOIC-8, 6MiB (4MiB and 2MiB in combination) | - - -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|---------------------------------------------------|----| -| **Internal flashing with original boot firmware** | W+ | -| **Display (if Intel GPU)** | W+ | -| **Display (if Nvidia GPU)** | U | -| **Audio** | W+ | -| **RAM Init** | W+ | -| **External output** | W+ | -| **Display brightness** | P+ | - -| ***Payloads supported*** | | -|---------------------------|-----------| -| **GRUB** | Works | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | -
-Introduction -============ - -**Libreboot 20231021 and releases newer than this have ROMs available for -Dell Latitude E6420.** - -ROM images for Dell Latitude E6420 are available for flashing in the Libreboot -releases *after* 20230625, or you can compile a ROM image for installation via -lbmk, see: [build instructions](../build/) - -Only the Intel GPU variants are supported, currently. All models with Intel GPU -are assumed to work. - -Unlike the E6400, this one does require a neutered Intel ME image to run. This -means running it through `me_cleaner` before flashing; the Libreboot build -system does this automatically, during build, or you can insert a neutered -ROM image using the vendor scripts, see guide: - -[Insert vendor files](../install/ivy_has_common.md) - -As with the E6400, this one is flashable in software, from Dell UEFI firmware -to Libreboot. Please refer to the installation instructions. - -**To install Libreboot, see: [E6420 installation -instructions](../install/e6430.md)** diff --git a/site/docs/hardware/e6430.md b/site/docs/hardware/e6430.md deleted file mode 100644 index 5e6258e..0000000 --- a/site/docs/hardware/e6430.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Dell Latitude E6430 -x-toc-enable: true -... - -**Thermal safety**: this machine shuts down very quickly, when the machine -exceeds 80c CPU temperature, which is far more conservative than on most -laptops (non-Dell ones), so you should make sure that your thermals are -excellent. More info available [here](dell_thermal.md). This is a known bug, -but the machine will otherwise be mostly stable. - -
-
-Dell Latitude E6430 -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Dell | -| **Name** | Latitude E6430 | -| **Variants** | E6430 with Intel GPU supported | -| **Released** | 2012 | -| **Chipset** | Intel Ivy Bridge | -| **CPU** | Intel Core i3, i5 or i7 | -| **Graphics** | Intel HD 4000 and unsupported Nvidia NVS 5200M | -| **Display** | 1366x768/1600x900 TFT | -| **Memory** | 4 or 8GB (Upgradable to 16GB) | -| **Architecture** | x86_64 | -| **EC** | SMSC MEC5055 with proprietary firmware | -| **Original boot firmware** | Dell UEFI | -| **Intel ME/AMD PSP** | Present, neutered | -| **Flash chip** | 2xSOIC-8, 12MiB (8MiB and 4MiB in combination) | - - -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|---------------------------------------------------|----| -| **Internal flashing with original boot firmware** | W+ | -| **Display (if Intel GPU)** | W+ | -| **Display (if Nvidia GPU)** | U | -| **Audio** | W+ | -| **RAM Init** | W+ | -| **External output** | W+ | -| **Display brightness** | P+ | - -| ***Payloads supported*** | | -|---------------------------|-----------| -| **GRUB** | Works | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | -
-Introduction -============ - -**Libreboot 20231021 and releases newer than this have ROMs available for -Dell Latitude E6430.** - -ROM images for Dell Latitude E6430 are available for flashing in the Libreboot -releases *after* 20230625, or you can compile a ROM image for installation via -lbmk, see: [build instructions](../build/) - -Only the Intel GPU variants are supported, currently. All models with Intel GPU -are assumed to work. - -Unlike the E6400, this one does require a neutered Intel ME image to run. This -means running it through `me_cleaner` before flashing; the Libreboot build -system does this automatically, during build, or you can insert a neutered -ROM image using the vendor scripts, see guide: - -[Insert vendor files](../install/ivy_has_common.md) - -As with the E6400, this one is flashable in software, from Dell UEFI firmware -to Libreboot. Please refer to the installation instructions. - -**To install Libreboot, see: [E6430 installation -instructions](../install/e6430.md)** diff --git a/site/docs/hardware/e6520.md b/site/docs/hardware/e6520.md deleted file mode 100644 index 3cd773e..0000000 --- a/site/docs/hardware/e6520.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Dell Latitude E6520 -x-toc-enable: true -... - -**Thermal safety**: this machine shuts down very quickly, when the machine -exceeds 80c CPU temperature, which is far more conservative than on most -laptops (non-Dell ones), so you should make sure that your thermals are -excellent. More info available [here](dell_thermal.md). This is a known bug, -but the machine will otherwise be mostly stable. - -
-
-Dell Latitude E6520 -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Dell | -| **Name** | Latitude E6520 | -| **Variants** | E6520 with Intel GPU supported | -| **Released** | 2012 | -| **Chipset** | Intel Sandy Bridge | -| **CPU** | Intel Core i3, i5 or i7 | -| **Graphics** | Intel HD 4000 and unsupported Nvidia NVS 5200M | -| **Display** | 1366x768/1600x900 TFT | -| **Memory** | 4 or 8GB (Upgradable to 16GB) | -| **Architecture** | x86_64 | -| **EC** | SMSC MEC5055 with proprietary firmware | -| **Original boot firmware** | Dell UEFI | -| **Intel ME/AMD PSP** | Present, neutered | -| **Flash chip** | 2xSOIC-8, 6MiB (4MiB and 2MiB in combination) | - - -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|---------------------------------------------------|----| -| **Internal flashing with original boot firmware** | W+ | -| **Display (if Intel GPU)** | W+ | -| **Display (if Nvidia GPU)** | U | -| **Audio** | W+ | -| **RAM Init** | W+ | -| **External output** | W+ | -| **Display brightness** | P+ | - -| ***Payloads supported*** | | -|---------------------------|-----------| -| **GRUB** | Works | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | -
-Introduction -============ - -**Libreboot 20231021 and releases newer than this have ROMs available for -Dell Latitude E6520.** - -ROM images for Dell Latitude E6520 are available for flashing in the Libreboot -releases *after* 20230625, or you can compile a ROM image for installation via -lbmk, see: [build instructions](../build/) - -Only the Intel GPU variants are supported, currently. All models with Intel GPU -are assumed to work. - -Unlike the E6400, this one does require a neutered Intel ME image to run. This -means running it through `me_cleaner` before flashing; the Libreboot build -system does this automatically, during build, or you can insert a neutered -ROM image using the vendor scripts, see guide: - -[Insert vendor files](../install/ivy_has_common.md) - -As with the E6400, this one is flashable in software, from Dell UEFI firmware -to Libreboot. Please refer to the installation instructions. - -**To install Libreboot, see: [E6520 installation -instructions](../install/e6430.md)** diff --git a/site/docs/hardware/e6530.md b/site/docs/hardware/e6530.md deleted file mode 100644 index 3d0a185..0000000 --- a/site/docs/hardware/e6530.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -title: Dell Latitude E6530 -x-toc-enable: true -... - -**Thermal safety**: this machine shuts down very quickly, when the machine -exceeds 80c CPU temperature, which is far more conservative than on most -laptops (non-Dell ones), so you should make sure that your thermals are -excellent. More info available [here](dell_thermal.md). This is a known bug, -but the machine will otherwise be mostly stable. - -
-
-Dell Latitude E6530 -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Dell | -| **Name** | Latitude E6530 | -| **Variants** | E6530 with Intel GPU supported | -| **Released** | 2012 | -| **Chipset** | Intel Ivy Bridge | -| **CPU** | Intel Core i3, i5 or i7 | -| **Graphics** | Intel HD 4000 and unsupported Nvidia NVS 5200M | -| **Display** | 1366x768/1600x900 TFT | -| **Memory** | 4 or 8GB (Upgradable to 16GB) | -| **Architecture** | x86_64 | -| **EC** | SMSC MEC5055 with proprietary firmware | -| **Original boot firmware** | Dell UEFI | -| **Intel ME/AMD PSP** | Present, neutered | -| **Flash chip** | 2xSOIC-8, 12MiB (8MiB and 4MiB in combination) | - - -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|---------------------------------------------------|----| -| **Internal flashing with original boot firmware** | W+ | -| **Display (if Intel GPU)** | W+ | -| **Display (if Nvidia GPU)** | U | -| **Audio** | W+ | -| **RAM Init** | W+ | -| **External output** | W+ | -| **Display brightness** | P+ | - -| ***Payloads supported*** | | -|---------------------------|-----------| -| **GRUB** | Works | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | -
-Introduction -============ - -**Libreboot 20231021 and releases newer than this have ROMs available for -Dell Latitude E6530.** - -ROM images for Dell Latitude E6530 are available for flashing in the Libreboot -releases *after* 20230625, or you can compile a ROM image for installation via -lbmk, see: [build instructions](../build/) - -Only the Intel GPU variants are supported, currently. All models with Intel GPU -are assumed to work. - -Unlike the E6400, this one does require a neutered Intel ME image to run. This -means running it through `me_cleaner` before flashing; the Libreboot build -system does this automatically, during build, or you can insert a neutered -ROM image using the vendor scripts, see guide: - -[Insert vendor files](../install/ivy_has_common.md) - -As with the E6400, this one is flashable in software, from Dell UEFI firmware -to Libreboot. Please refer to the installation instructions. - -**To install Libreboot, see: [E6530 installation -instructions](../install/e6430.md)** diff --git a/site/docs/hardware/index.md b/site/docs/hardware/index.md index 1cb5115..be3e5d2 100644 --- a/site/docs/hardware/index.md +++ b/site/docs/hardware/index.md @@ -62,13 +62,13 @@ libreboot currently supports the following systems in this release: - Lenovo ThinkPad X230 - *Also* available on Minifree: - [Apple MacBook1,1 and MacBook2,1](macbook21.md) - [Dell Latitude E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel - GPU](e6400.md) -- [Dell Latitude E6420 (Intel GPU](e6420.md) -- [Dell Latitude E6430 (Intel GPU](e6430.md) -- [Dell Latitude E5520 (Intel GPU](e5520.md) -- [Dell Latitude E5530 (Intel GPU](e5530.md) -- [Dell Latitude E6520 (Intel GPU](e6520.md) -- [Dell Latitude E6530 (Intel GPU](e6530.md) + GPU](../install/latitude.md) +- [Dell Latitude E6420 (Intel GPU](../install/latitude.md) +- [Dell Latitude E6430 (Intel GPU](../install/latitude.md) +- [Dell Latitude E5520 (Intel GPU](../install/latitude.md) +- [Dell Latitude E5530 (Intel GPU](../install/latitude.md) +- [Dell Latitude E6520 (Intel GPU](../install/latitude.md) +- [Dell Latitude E6530 (Intel GPU](../install/latitude.md) - Dell Latitude E5420. - [HP EliteBook 2170p](hp2170p.md) - [HP EliteBook 2560p](hp2560p.md) diff --git a/site/docs/hardware/index.zh-cn.md b/site/docs/hardware/index.zh-cn.md index a6f7c08..2a72aba 100644 --- a/site/docs/hardware/index.zh-cn.md +++ b/site/docs/hardware/index.zh-cn.md @@ -73,9 +73,9 @@ Introduction buy with Libreboot preinstalled](https://minifree.org/product/libreboot-w541/)** - Lenovo ThinkPad X230 - *Also* available on Minifree: - [Apple MacBook1,1 及 MacBook2,1](macbook21.md) -- [Dell Latitude E6400, E6400 XFR 及 E6400 ATG,皆支持 Nvidia 或 Intel GPU](e6400.md) +- [Dell Latitude E6400, E6400 XFR 及 E6400 ATG,皆支持 Nvidia 或 Intel GPU](../install/latitude.md) - Dell Latitude E6420 (Intel GPU) - no guide yet. -- [Dell Latitude E6430, Intel GPU](e6430.md) +- [Dell Latitude E6430, Intel GPU](../install/latitude.md) - Dell Latitude E5530 (Intel GPU) - no guide yet. - Dell Latitude E6520 (Intel GPU) - no guide yet. - [HP EliteBook 2170p](hp2170p.md) diff --git a/site/docs/hardware/r400.md b/site/docs/hardware/r400.md index 234ed51..4193893 100644 --- a/site/docs/hardware/r400.md +++ b/site/docs/hardware/r400.md @@ -55,7 +55,7 @@ Dell Latitude E6400 =================== **If you haven't bought an R400 yet: the [Dell Latitude -E6400](../../news/e6400.md) is much easier to flash; no disassembly required, +E6400](../install/latitude.md) is much easier to flash; no disassembly required, it can be flashed entirely in software from Dell BIOS to Libreboot. It is the same hardware generation (GM45), with same CPUs, video processor, etc.** diff --git a/site/docs/hardware/r500.md b/site/docs/hardware/r500.md index 3454432..98f806c 100644 --- a/site/docs/hardware/r500.md +++ b/site/docs/hardware/r500.md @@ -54,7 +54,7 @@ Dell Latitude E6400 =================== **If you haven't bought an R500 yet: the [Dell Latitude -E6400](../../news/e6400.md) is much easier to flash; no disassembly required, +E6400](../install/latitude.md) is much easier to flash; no disassembly required, it can be flashed entirely in software from Dell BIOS to Libreboot. It is the same hardware generation (GM45), with same CPUs, video processor, etc.** diff --git a/site/docs/hardware/t400.md b/site/docs/hardware/t400.md index be82b2e..84e0757 100644 --- a/site/docs/hardware/t400.md +++ b/site/docs/hardware/t400.md @@ -54,7 +54,7 @@ Dell Latitude E6400 =================== **If you haven't bought an T400 yet: the [Dell Latitude -E6400](../../news/e6400.md) is much easier to flash; no disassembly required, +E6400](../install/latitude.md) is much easier to flash; no disassembly required, it can be flashed entirely in software from Dell BIOS to Libreboot. It is the same hardware generation (GM45), with same CPUs, video processor, etc.** diff --git a/site/docs/hardware/t500.md b/site/docs/hardware/t500.md index 8a685c2..aeec2ec 100644 --- a/site/docs/hardware/t500.md +++ b/site/docs/hardware/t500.md @@ -54,7 +54,7 @@ Dell Latitude E6400 =================== **If you haven't bought an T500 yet: the [Dell Latitude -E6400](../../news/e6400.md) is much easier to flash; no disassembly required, +E6400](../install/latitude.md) is much easier to flash; no disassembly required, it can be flashed entirely in software from Dell BIOS to Libreboot. It is the same hardware generation (GM45), with same CPUs, video processor, etc.** diff --git a/site/docs/hardware/x200.md b/site/docs/hardware/x200.md index 88fa3f1..ed2a562 100644 --- a/site/docs/hardware/x200.md +++ b/site/docs/hardware/x200.md @@ -52,7 +52,7 @@ Dell Latitude E6400 =================== **If you haven't bought an X200 yet: the [Dell Latitude -E6400](../../news/e6400.md) is much easier to flash; no disassembly required, +E6400](../install/latitude.md) is much easier to flash; no disassembly required, it can be flashed entirely in software from Dell BIOS to Libreboot. It is the same hardware generation (GM45), with same CPUs, video processor, etc.** diff --git a/site/docs/install/dell_internal.md b/site/docs/install/dell_internal.md deleted file mode 100644 index 33e10b9..0000000 --- a/site/docs/install/dell_internal.md +++ /dev/null @@ -1,78 +0,0 @@ ---- -title: Internally flash Dell Latitude laptops -x-toc-enable: true -... - -Make sure SecureBoot is disabled, if you're running a UEFI-based Latitude. -Other steps also required, described on this page and in the `README.md` -file included with `dell-flash-unlock`. - -Disable security before flashing -================================ - -Before internal flashing, you must first disable `/dev/mem` protections. Make -sure to re-enable them after you're finished. - -See: [Disabling /dev/mem protection](devmem.md) - -Internal flashing -================= - -You can simply boot Linux/BSD, on the Dell Latitude you wish to flash, and -run `flashprog` from there, for Libreboot installation. Certain other steps -are also required, documented in the steps below: - -You can flash Libreboot directly from the vendor (Dell) BIOS, without taking -the machine apart. It can be done entirely from Linux/BSD. - -**NOTE (15 October 2023): The util is now called `dell-flash-unlock`, but it -was previously called `e6400-flash-unlock`. Links have been updated.** - -Check `util/dell-flash-unlock` in the `lbmk.git` repository, or in release -archives for Libreboot releases from 20230423 onwards. - -Go in there: - - cd util/dell-flash-unlock - make - -**With this program, you can unlock the flash in such a way where everything -is writeable. Information about how to use it is in the `README.md` file which -is included in that program's directory, or you can read it online here:** - -**** - -**Please make sure that you do fully read the README, because it contains -useful information.** - -Literally just run that program, and do what it says. You run it once, and shut -down, and when you do, the system brings itself back up automatically; on some -systems, you have to boot the machine back up manually, after power down. Then -you run it and flash it unlocked. Then you run it again. The source code is -intuitive enough that you can easily get the gist of it; it's writing some EC -commands and changing some chipset config bits. The EC on this machine is -hooked up to the `GPIO33` signal, sometimes called `HDA_DOCK_EN`, which sets -the flash descriptor override thus disabling any flash protection by the IFD. -It also bypasses the SMM BIOS lock protection by disabling SMIs, and Dell's -BIOS doesn't set any other type of protection either such as writing to -Protected Range registers. - -MAKE SURE to back up the original firmware image first: - - flashprog -p internal -r factory.rom - -When you flash it, you can use this command: - - flashprog -p internal -w libreboot.rom - -Where `libreboot.rom` is your Dell Latitude ROM. *Make sure* it's the right -one. If flashprog complains about multiple flash chips detected, just pick one of them (doesn't matter which one). On *most* Dell machines, the most correct -would probably be this option in flashprog: `-c MX25L3205D/MX25L3208D`. - -So: - - flashprog -p internal -w libreboot.rom -c MX25L3205D/MX25L3208D - -When you see flashprog say `VERIFIED` at the end, that means the flash was -successful. If you don't see that, or you're unsure, please [contact the -Libreboot project via IRC](../../contact.md). diff --git a/site/docs/install/e6400.md b/site/docs/install/e6400.md deleted file mode 100644 index 79aa481..0000000 --- a/site/docs/install/e6400.md +++ /dev/null @@ -1,203 +0,0 @@ ---- -title: Flashing the Dell Latitude E6400 -x-toc-enable: true -... - -Introduction -============ - -Initial flashing instructions for the E6400. - -**ROM images are available in the [Libreboot 20230423 -release](../../news/libreboot20230423.md), and subsequent releases.** - -**Variants with Nvidia GPUs are NOT supported in Libreboot 20230423 -or 20230625.** - -**Variants with Nvidia GPUs are supported in Libreboot 20231021 or higher.** - -This guide is for those who want libreboot on their Latitude E6400 while -they still have the original Dell BIOS present. This guide can also be -followed (adapted) if you brick your E6400, and you want to recover it. - -Variants (nvidia or intel graphics) -======== - -Dell E6400, E6400 XFR and E6400 ATG are all believed to work. The flashing -instructions are identical, on all of them. - -100% Free Software possible (Intel GPU) -========================= - -This board can boot entirely *free software* in the flash. The hardware is similar -to that of ThinkPad X200, T400 etc where no-ME setup is possible. - -No-microcode setup feasible ----------------------------- - -The -[microcode bugfixes/mitigations added for GM45](../../news/gm45microcode.md) -are also applicable to this board, for users who are interested. Read that -article for more information. - -Libreboot still recommends that boot with CPU microcode updates, by default, -for all the reasons described by Libreboot's [Binary Blobs Reductions -Policy](../../news/policy.md) but this board run reasonably well without them. - -A note about GPUs ------------------ - -We *confirm that* the Nvidia models are PM45, and therefore will require a VGA -ROM for initialisation. This is supported in Libreboot *after* the 20230625 -release, if you compile from source; the `e6400_4mb` target can work on both -variants, but will need the Nvidia VGA ROM inserted to work on Nvidia models. -This insertion is handled automatically in newer lbmk revisions, during build -time, or you can [insert it on a release rom -after 20230625](ivy_has_common.md). - **A Video BIOS Option -ROM is used, in this configuration. Libreboot's -build system automatically downloads this at build time, or it can handle that -for you in the same way if it was scrubbed from a release ROM.** - -Models with Intel graphics are GM45, and fully supported in Libreboot -with native initialisation; ROM images are available since Libreboot 20230423. -**The Intel video initialisation is libre, implemented with publicly available -source code via libgfxinit, from the coreboot project.** - -Flash chip size {#flashchips} -=============== - -Use this to find out: - - flashprog -p internal - -We believe most/all are 4MB (32Mb) flash sizes. The schematics hint that -some boards may have 6MB flash (4MB and 2MB, dual chip), but we've only ever -seen 4MB setups in the wild. You can still flash the 4MB image on 6MB setups, -if it's encountered, by just leaving the higher 2MB part unflashed, because -the flash descriptor (in Libreboot) configures everything so that the BIOS -region ends just before the 4MB mark, in flash; the BIOS region is the final -region, in the higher part of flash as defined *by the descriptor*, regardless -of whether that is the actual end of the flash. - -Libreboot does currently provide 6MB images on this board, for these reasons. - -MAC address {#macaddress} -=========== - -The MAC address is part of the ROM image that you're flashing. You can change -it at any time, before or after you've flashed Libreboot; you can also change -it in the *Dell* BIOS, if you really want to. This is for the onboard gigabit -ethernet device. - -Refer to [mac\_address.md](../hardware/mac_address.md). - -It is recommended that you run *nvmutil*. See: - -[nvmutil usage manual](nvmutil.md) - -The `nvmutil` software is specifically designed for changing MAC addresses, -and it implements a few more safeguards (e.g. prevents multicast/all-zero -MAC addresses) and features (MAC address randomisation, ability to correct or -intententionally corrupt(disable) GbE sections if you wish, swap GbE parts, -etc). You can *also* run ich9gen, if you wish: - -[ich9gen usage manual](ich9utils.md) - -Intel GPU: libre video initialisation available -=============================================== - -Libreboot uses coreboot's native `libgfxinit` on this platform, for -variants with Intel graphics. - -For Intel GPU variants, Libreboot 20230423 and up have full support. Simply -flash a release ROM, if you wish. - -Intel GPU errata ----------------- - -Systems with a 1440 x 900 display panel instead of the more common 1280 x 800 -panel will have garbled graphics before the OS boots (i.e. in SeaBIOS or GRUB) -in Libreboot 20240504 and earlier. This is fixed in releases after 20240504. - -This was caused by libgfxinit calculating PLL divider values for the pixel clock -assuming a 96 MHz reference frequency, whereas the E6400 uses a 100 MHz -reference frequency. The error is not large enough to affect the lower -resolution panels, but is enough to affect the 1440 x 900 panels which use a -higher pixel clock. - -Nvidia GPU: Video BIOS Option ROM required -========================================== - -**NOTE: `nouveau` (Linux video driver) is unstable when it was last tested, in -this setup. Either specify `nomodeset` kernel option, or use another -operating system such as OpenBSD. More information is written on the -[E6400 hardware page](../hardware/e6400.md), regarding OS compatibility.** - -This is *unavailable* in Libreboot 20230423 and 20230625, but a future release -will contain support for these variants; for now, you must compile Libreboot -from Git. It is available in the default `master` branch of lbmk, under -build target `e6400_4mb` - either build from source and it gets inserted -automatically, or you can [insert it -manually](ivy_has_common.md) on future release ROMs past Libreboot 20230625. - -An earlier experimental revision existed in an experimental branch of -lbmk, as build target `e6400nvidia_4mb`, but it was decided that since SeaBIOS -is the only payload anyway on this board, having just a single build target is -more efficient if that can (and it does) support both variants. It was therefore -added to the master branch. - -Actual installation is the same as with regular E6400 (Intel GPU) variants. -Refer to the [E6400 flashing instructions](../docs/install/e6400.md). - -Problems with Linux video drivers on Nvidia -------------------------------------------- - -Technically, there is nothing wrong with Libreboot itself, but the `nouveau` -driver hangs/crashes on Nvidia models, after booting Linux with the Nvidia VGA -ROM loaded from coreboot. - -Until that is fixed, you must specify `nomodeset` in your Linux kernel boot -parameters. - -Refer to [development -discussion](https://codeberg.org/libreboot/lbmk/issues/14#issuecomment-907758) -for more information - [testers needed!](../maintain/testing.md) - -The *Intel* GPU variant of E6400 is more stable, and works fully, with full -acceleration - the Nvidia models can only be run in software, and the BSD -systems only have the slow `nv` driver (which is nonetheless stable). - -Nvidia errata -------------- - -**BEFORE** you flash it, please know that support for Nvidia variants is -a **proof of concept**. Known issues exist. For more information, please -read the [E6400 info page](../hardware/e6400.md), [E6400 nvidia news -page](../../news/e6400nvidia.md) and the [development discussion via -codeberg](https://codeberg.org/libreboot/lbmk/issues/14#issuecomment-907758). - -How to flash internally (no diassembly) -======================================= - -Please read the article: - -[Internally flash Dell Latitude laptops](dell_internal.md) - -Dell's original BIOS/UEFI firmware typically prevents write access, but it -has bugs which can be exploited, to enable Libreboot installation very easily. -You do not have to disassemble the machine. - -How to flash externally -========================= - -Refer to [spi.md](spi.md) as a guide for external re-flashing. - -The SPI flash chip shares a voltage rail with the ICH9 southbridge, which is -not isolated using a diode. As a result, powering the flash chip externally -causes the ICH9 to partially power up and attempt to drive the SPI clock pin -low, which can interfere with programmers such as the Raspberry Pi. See -[RPi Drive Strength](spi.md#rpi-drive-strength) for a workaround. - -Have a look online for videos showing how to disassemble, if you wish to -externally re-flash. - diff --git a/site/docs/install/e6430.md b/site/docs/install/e6430.md deleted file mode 100644 index a33591e..0000000 --- a/site/docs/install/e6430.md +++ /dev/null @@ -1,92 +0,0 @@ ---- -title: Flashing the Dell Latitude E6430 -x-toc-enable: true -... - -**NOTE:** This installation guide also pertains to E5520, E6420, E6520, E5530 -and E6530. - -Introduction -============ - -This guide is for those who want libreboot on their Latitude E6430 while -they still have the original Dell firmware present. This guide can also be -followed (adapted) if you brick your E6430, and you want to recover it. - -**The Intel video initialisation is libre, implemented with publicly available -source code via libgfxinit, from the coreboot project.** - -Only the intel GPU variants are supported. The Nvidia GPU variants are untested -and should be assumed *broken* by default. - -Flash chip size {#flashchips} -=============== - -The internal flash size is 12MiB on this board; physically, an 8MiB and 4MiB -chip (two chips) but this distinction only matters for external flashing. - -MAC address {#macaddress} -=========== - -The MAC address is part of the ROM image that you're flashing. You can change -it at any time, before or after you've flashed Libreboot; you can also change -it in the *Dell* BIOS, if you really want to. This is for the onboard gigabit -ethernet device. - -Refer to [mac\_address.md](../hardware/mac_address.md). - -It is recommended that you run *nvmutil*. See: - -[nvmutil usage manual](nvmutil.md) - E5530 users don't need to run this. - -The `nvmutil` software is specifically designed for changing MAC addresses, -and it implements a few more safeguards (e.g. prevents multicast/all-zero -MAC addresses) and features (MAC address randomisation, ability to correct or -intentionally corrupt(disable) GbE sections if you wish, swap GbE parts, -etc). - **it is also the only software available for this. Please do not -use ich9gen on this board. This is an ivybridge board, not ICH9M.** - -Intel GPU: libre video initialisation available -=============================================== - -Libreboot uses coreboot's native `libgfxinit` on this platform, for -variants with Intel graphics. - -Libreboot releases after 20230625 will support this board, otherwise you can -refer to the [build instructions](../build/) - -Nvidia GPU: Video BIOS Option ROM required -========================================== - -UNSUPPORTED. DO NOT BUY THE NVIDIA VARIANT. - -Only the Intel GPU variants are supported. It is believed that the Nvidia -variants still have Intel GPUs in them, configured via hardware mux, but this -has not yet been configured or tested in the coreboot code; you should assume -that the Nvidia models do not work. - -How to flash internally (no diassembly) -======================================= - -Please read the article: - -[Internally flash Dell Latitude laptops](dell_internal.md) - -Dell's original BIOS/UEFI firmware typically prevents write access, but it -has bugs which can be exploited, to enable Libreboot installation very easily. -You do not have to disassemble the machine. - -How to flash externally -========================= - -Refer to [spi.md](spi.md) as a guide for external re-flashing. - -The SPI flash chip shares a voltage rail with the chipset, which is not -isolated using a diode. As a result, powering the flash chip externally may -cause the QM77 chipset to partially power up and drive the SPI pins, which can -interfere with programmers such as the Raspberry Pi. See [RPi Drive -Strength](spi.md#rpi-drive-strength) for a workaround. - -Have a look online for videos showing how to disassemble, if you wish to -externally re-flash. - diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 19757ef..b4a74cc 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -284,33 +284,9 @@ the sections below: [You must flash it externally](spi.md) -#### DELL Latitude E6400 laptop +#### DELL Latitude laptops -See: [Dell Latitude E6400 Libreboot Installation Guide](e6400.md) - -#### DELL Latitude E6420 laptop - -See: [Dell Latitude E6420 Libreboot Installation Guide](e6430.md) - -#### DELL Latitude E6430 laptop - -See: [Dell Latitude E6430 Libreboot Installation Guide](e6430.md) - -#### DELL Latitude E6520 laptop - -See: [Dell Latitude E6520 Libreboot Installation Guide](e6420.md) - -#### DELL Latitude E6530 laptop - -See: [Dell Latitude E6530 Libreboot Installation Guide](e6430.md) - -#### DELL Latitude E5520 laptop - -See: [Dell Latitude E5520 Libreboot Installation Guide](e5520.md) - -#### DELL Latitude E5530 laptop - -See: [Dell Latitude E5530 Libreboot Installation Guide](e6430.md) +See: [Dell Latitude flashing guide](latitude.md) #### ThinkPad X200/T400/T500/W500/R400/R500 vendor BIOS @@ -578,15 +554,10 @@ How to use external flashing equipment Refer to the following article:\ [Externally rewrite 25xx NOR flash via SPI protocol](spi.md) -DELL Latitude E6400 laptop (easy to flash, similar to X200/T400) +DELL Latitude laptops ------------------------- -See: [Dell Latitude E6400 Libreboot Installation Instructions](e6400.md) - -DELL Latitude E6430 laptop (easy to flash, no disassembly) -------------------------- - -See: [Dell Latitude E6430 Libreboot Installation Instructions](e6430.md) +See: [Dell Latitude flashing guide](latitude.md) ASUS KFSN4-DRE -------------- diff --git a/site/docs/install/r400_external.md b/site/docs/install/r400_external.md index 7af0745..1a12602 100644 --- a/site/docs/install/r400_external.md +++ b/site/docs/install/r400_external.md @@ -4,7 +4,7 @@ x-toc-enable: true ... **If you haven't bought an R400 yet: the [Dell Latitude -E6400](../../news/e6400.md) is much easier to flash; no disassembly required, +E6400](latitude.md) is much easier to flash; no disassembly required, it can be flashed entirely in software from Dell BIOS to Libreboot. It is the same hardware generation (GM45), with same CPUs, video processor, etc.** diff --git a/site/docs/install/t400_external.md b/site/docs/install/t400_external.md index 9fbc111..244f50a 100644 --- a/site/docs/install/t400_external.md +++ b/site/docs/install/t400_external.md @@ -10,7 +10,7 @@ Dell Latitude E6400 =================== **If you haven't bought an T400 yet: the [Dell Latitude -E6400](../../news/e6400.md) is much easier to flash; no disassembly required, +E6400](latitude.md) is much easier to flash; no disassembly required, it can be flashed entirely in software from Dell BIOS to Libreboot. It is the same hardware generation (GM45), with same CPUs, video processor, etc.** diff --git a/site/docs/install/t500_external.md b/site/docs/install/t500_external.md index b0584c2..7053a82 100644 --- a/site/docs/install/t500_external.md +++ b/site/docs/install/t500_external.md @@ -7,7 +7,7 @@ NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog now, as of 27 January 2024, which is a fork of flashrom. **If you haven't bought a T500 yet: the [Dell Latitude -E6400](../../news/e6400.md) is much easier to flash; no disassembly required, +E6400](latitude.md) is much easier to flash; no disassembly required, it can be flashed entirely in software from Dell BIOS to Libreboot. It is the same hardware generation (GM45), with same CPUs, video processor, etc.** diff --git a/site/docs/install/x200_external.md b/site/docs/install/x200_external.md index d562661..015ac0a 100644 --- a/site/docs/install/x200_external.md +++ b/site/docs/install/x200_external.md @@ -7,7 +7,7 @@ NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog now, as of 27 January 2024, which is a fork of flashrom. **If you haven't bought an X200 yet: the [Dell Latitude -E6400](../../news/e6400.md) is much easier to flash; no disassembly required, +E6400](latitude.md) is much easier to flash; no disassembly required, it can be flashed entirely in software from Dell BIOS to Libreboot. It is the same hardware generation (GM45), with same CPUs, video processor, etc.** diff --git a/site/docs/install/x200_external.uk.md b/site/docs/install/x200_external.uk.md index 9551dc4..db674a7 100644 --- a/site/docs/install/x200_external.uk.md +++ b/site/docs/install/x200_external.uk.md @@ -7,7 +7,7 @@ NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog now, as of 27 January 2024, which is a fork of flashrom. **If you haven't bought an X200 yet: the [Dell Latitude -E6400](../../news/e6400.md) is much easier to flash; no disassembly required, +E6400](latitude.md) is much easier to flash; no disassembly required, it can be flashed entirely in software from Dell BIOS to Libreboot. It is the same hardware generation (GM45), with same CPUs, video processor, etc.** diff --git a/site/news/e6400.md b/site/news/e6400.md index d6c141a..b53dd6c 100644 --- a/site/news/e6400.md +++ b/site/news/e6400.md @@ -16,8 +16,7 @@ a ready state for entry to Libreboot. The hardware platform is GM45, similar to ThinkPad X200, T400 and so on that Libreboot already supports. -You can learn more on the E6400 [installation page](../docs/install/e6400.md) -and the [hardware info page](../docs/hardware/e6400.md). +You can learn more on the [Latitude flashing guide](../docs/install/latitude.md) 100% libre, blob-free --------------------- diff --git a/site/news/e6400.uk.md b/site/news/e6400.uk.md index 164e96c..eb79c5a 100644 --- a/site/news/e6400.uk.md +++ b/site/news/e6400.uk.md @@ -16,8 +16,7 @@ E6400. See: [flash safety](safety.md)** Платформа апаратного забезпечення GM45, схоже на ThinkPad X200, T400 і так далі, що Libreboot вже підтримує. -Ви можете вивчити більше на [сторінці встановлення](../docs/install/e6400.md) -E6400 та [сторінці інформації про апаратне забезпечення](../docs/hardware/e6400.md). +Ви можете вивчити більше на [сторінці встановлення](../docs/install/latitude.md) вільна від блобів конфігурація ------------------------------ diff --git a/site/news/e6400nvidia.md b/site/news/e6400nvidia.md index bc49d1c..348e076 100644 --- a/site/news/e6400nvidia.md +++ b/site/news/e6400nvidia.md @@ -46,8 +46,7 @@ for Nvidia graphics now exists, in a WIP branch of Libreboot. The Libreboot documentation has been updated, to cover these models. Refer to Dell Latitude E6400 documentation in Libreboot; specifically, -the [E6400 info page](../docs/hardware/e6400.md) and [E6400 flashing -guide](../docs/install/e6400.md). +the [E6400 info page](../docs/install/latitude.md). Ongoing development discussion is available, on the Libreboot bug tracker. See: @@ -56,8 +55,7 @@ Ongoing development discussion is available, on the Libreboot bug tracker. See: For more information about the *Nvidia GPU* variants, please review the following pages (which have been updated, while publishing this news article): -* [Dell Latitude E6400 hardware information](../docs/hardware/e6400.md) -* [Dell Latitude E6400 flashing instructions](../docs/install/e6400.md) +* [Dell Latitude E6400 information](../docs/install/latitude.md) Nouveau(in Linux) currently broken ---------------------------------- diff --git a/site/news/libreboot20230423.md b/site/news/libreboot20230423.md index 2ed1047..5ecf3fd 100644 --- a/site/news/libreboot20230423.md +++ b/site/news/libreboot20230423.md @@ -129,7 +129,7 @@ Desktops (AMD, Intel, x86) ### Laptops (Intel, x86) -- **[Dell Latitude E6400](../docs/hardware/e6400.md) (easy to flash, no disassembly, similar +- **[Dell Latitude E6400](../docs/install/latitude.md) (easy to flash, no disassembly, similar hardware to X200/T400)** - ThinkPad X60 / X60S / X60 Tablet - ThinkPad T60 (with Intel GPU) diff --git a/site/news/libreboot20230625.md b/site/news/libreboot20230625.md index b2227a6..395539d 100644 --- a/site/news/libreboot20230625.md +++ b/site/news/libreboot20230625.md @@ -279,7 +279,7 @@ Desktops (AMD, Intel, x86) ### Laptops (Intel, x86) -- **[Dell Latitude E6400](../docs/hardware/e6400.md) (easy to flash, no disassembly, similar +- **[Dell Latitude E6400](../docs/install/latitude.md) (easy to flash, no disassembly, similar hardware to X200/T400)** - ThinkPad X60 / X60S / X60 Tablet - ThinkPad T60 (with Intel GPU) diff --git a/site/news/libreboot20231021.md b/site/news/libreboot20231021.md index c4d8fd5..5e30cd8 100644 --- a/site/news/libreboot20231021.md +++ b/site/news/libreboot20231021.md @@ -45,7 +45,7 @@ build system features. However, these boards were added to Libreboot: * [HP EliteBook 2170p](hp2170p.md) (laptop) (see previous news page linked) * [Dell Precision T1650](hp8470p_and_dell_t1650.md) (desktop) (see linked prior news page) -* [Dell Latitude E6430](../docs/install/e6430.md) (laptop), courtesy Nicholas Chin +* [Dell Latitude E6430](../docs/install/latitude.md) (laptop), courtesy Nicholas Chin * [HP EliteBook 8470p](hp8470p_and_dell_t1650.md) (see linked prior news page) This release also *re-adds* the following boards, which were present also in @@ -1074,9 +1074,9 @@ Desktops (AMD, Intel, x86) ### Laptops (Intel, x86) -- **[Dell Latitude E6400](../docs/hardware/e6400.md) (easy to flash, no disassembly, similar +- **[Dell Latitude E6400](../docs/install/latitude.md) (easy to flash, no disassembly, similar hardware to X200/T400)** -- [Dell Latitude E6430 (Intel GPU](../docs/hardware/e6430.md) **(easy to flash, no disassembly)** +- [Dell Latitude E6430 (Intel GPU](../docs/install/latitude.md) **(easy to flash, no disassembly)** - ThinkPad X60 / X60S / X60 Tablet - ThinkPad T60 (with Intel GPU) - [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/hardware/x200.md) diff --git a/site/news/libreboot20231101.md b/site/news/libreboot20231101.md index 3e34273..41d4ca5 100644 --- a/site/news/libreboot20231101.md +++ b/site/news/libreboot20231101.md @@ -185,9 +185,9 @@ Desktops (AMD, Intel, x86) ### Laptops (Intel, x86) -- **[Dell Latitude E6400](../docs/hardware/e6400.md) (easy to flash, no disassembly, similar +- **[Dell Latitude E6400](../docs/install/latitude.md) (easy to flash, no disassembly, similar hardware to X200/T400)** -- [Dell Latitude E6430 (Intel GPU](../docs/hardware/e6430.md) **(easy to flash, no disassembly)** +- [Dell Latitude E6430 (Intel GPU](../docs/install/latitude.md) **(easy to flash, no disassembly)** - ThinkPad X60 / X60S / X60 Tablet - ThinkPad T60 (with Intel GPU) - [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/hardware/x200.md) diff --git a/site/news/libreboot20231106.md b/site/news/libreboot20231106.md index 4b9d4de..ef24020 100644 --- a/site/news/libreboot20231106.md +++ b/site/news/libreboot20231106.md @@ -174,9 +174,9 @@ Desktops (AMD, Intel, x86) ### Laptops (Intel, x86) -- **[Dell Latitude E6400](../docs/hardware/e6400.md) (easy to flash, no disassembly, similar +- **[Dell Latitude E6400](../docs/install/latitude.md) (easy to flash, no disassembly, similar hardware to X200/T400)** -- [Dell Latitude E6430 (Intel GPU](../docs/hardware/e6430.md) **(easy to flash, no disassembly)** +- [Dell Latitude E6430 (Intel GPU](../docs/install/latitude.md) **(easy to flash, no disassembly)** - ThinkPad X60 / X60S / X60 Tablet - ThinkPad T60 (with Intel GPU) - [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/hardware/x200.md) diff --git a/site/news/libreboot20240225.md b/site/news/libreboot20240225.md index 6dcf2d7..915a492 100644 --- a/site/news/libreboot20240225.md +++ b/site/news/libreboot20240225.md @@ -63,13 +63,13 @@ This release supports the following hardware: buy with Libreboot preinstalled](https://minifree.org/product/libreboot-w541/)** - [Apple MacBook1,1 and MacBook2,1](../docs/hardware/macbook21.md) - [Dell Latitude E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel - GPU](../docs/hardware/e6400.md) -- [Dell Latitude E6420 (Intel GPU](../docs/hardware/e6420.md) -- [Dell Latitude E6430 (Intel GPU](../docs/hardware/e6430.md) -- [Dell Latitude E5520 (Intel GPU](../docs/hardware/e5520.md) -- [Dell Latitude E5530 (Intel GPU](../docs/hardware/e5530.md) -- [Dell Latitude E6520 (Intel GPU](../docs/hardware/e6520.md) -- [Dell Latitude E6530 (Intel GPU](../docs/hardware/e6530.md) + GPU](../docs/install/latitude.md) +- [Dell Latitude E6420 (Intel GPU](../docs/install/latitude.md) +- [Dell Latitude E6430 (Intel GPU](../docs/install/latitude.md) +- [Dell Latitude E5520 (Intel GPU](../docs/install/latitude.md) +- [Dell Latitude E5530 (Intel GPU](../docs/install/latitude.md) +- [Dell Latitude E6520 (Intel GPU](../docs/install/latitude.md) +- [Dell Latitude E6530 (Intel GPU](../docs/install/latitude.md) - [HP EliteBook 2170p](../docs/hardware/hp2170p.md) - [HP EliteBook 2560p](../docs/hardware/hp2560p.md) - [HP EliteBook 2570p](../docs/hardware/hp2570p.md) diff --git a/site/news/libreboot20240504.md b/site/news/libreboot20240504.md index d2699fd..08418a9 100644 --- a/site/news/libreboot20240504.md +++ b/site/news/libreboot20240504.md @@ -87,13 +87,13 @@ This release supports the following hardware: buy with Libreboot preinstalled](https://minifree.org/product/libreboot-w541/)** - [Apple MacBook1,1 and MacBook2,1](../docs/hardware/macbook21.md) - [Dell Latitude E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel - GPU](../docs/hardware/e6400.md) -- [Dell Latitude E6420 (Intel GPU](../docs/hardware/e6420.md) -- [Dell Latitude E6430 (Intel GPU](../docs/hardware/e6430.md) -- [Dell Latitude E5520 (Intel GPU](../docs/hardware/e5520.md) -- [Dell Latitude E5530 (Intel GPU](../docs/hardware/e5530.md) -- [Dell Latitude E6520 (Intel GPU](../docs/hardware/e6520.md) -- [Dell Latitude E6530 (Intel GPU](../docs/hardware/e6530.md) + GPU](../docs/install/latitude.md) +- [Dell Latitude E6420 (Intel GPU](../docs/install/latitude.md) +- [Dell Latitude E6430 (Intel GPU](../docs/install/latitude.md) +- [Dell Latitude E5520 (Intel GPU](../docs/install/latitude.md) +- [Dell Latitude E5530 (Intel GPU](../docs/install/latitude.md) +- [Dell Latitude E6520 (Intel GPU](../docs/install/latitude.md) +- [Dell Latitude E6530 (Intel GPU](../docs/install/latitude.md) - Dell Latitude E5420 - [HP EliteBook 2170p](../docs/hardware/hp2170p.md) - [HP EliteBook 2560p](../docs/hardware/hp2560p.md) From 1b938fa4147b6734c29ed8e83a65a319794a88ac Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 29 Aug 2024 23:57:10 +0100 Subject: [PATCH 058/399] actually add latitude.md it's what the old dell_internal.md used to be, but with additional info merged from the old guides that were removed in the previous revision. Signed-off-by: Leah Rowe --- site/docs/install/latitude.md | 176 ++++++++++++++++++++++++++++++++++ 1 file changed, 176 insertions(+) create mode 100644 site/docs/install/latitude.md diff --git a/site/docs/install/latitude.md b/site/docs/install/latitude.md new file mode 100644 index 0000000..71bbef5 --- /dev/null +++ b/site/docs/install/latitude.md @@ -0,0 +1,176 @@ +--- +title: Flashing Libreboot on Dell Latitude laptops +x-toc-enable: true +... + +All of the Dell Latitude models can be flashed internally, which means that +you do not need to disassemble them. You can do it from Linux/BSD, using the +instructions on this page. + +Disable security before flashing +================================ + +**[SAFETY WARNING: Always insert vendor files before flashing.](../../news/safety.md), +or look directly at [Injecting Vendor Files](ivy_has_common.md).** + +Please also [disable /dev/mem protection](devmem.md), otherwise flashprog +and dell-flash-unlock won't work. You can re-enable the protections after +flashing. + +Please also disable SecureBoot, if you're using a UEFI-based Dell Latitude. +Note that Libreboot does not currently implement UEFI on x86 platforms, but +you can set up [Secure libreBoot](../linux/grub_hardening.md) after flashing. + +MAC address +=========== + +Make sure to set your own MAC address in the ROM image before flashing. +Please read the [nvmutil manual](nvmutil.md) which says how to do this. + +Thermal safety +============== + +**Thermal safety**: this machine shuts down very quickly, when the machine +exceeds 80c CPU temperature, which is far more conservative than on most +laptops (non-Dell ones), so you should make sure that your thermals are +excellent. More info available [here](../hardware/dell_thermal.md). This is a +known bug, but otherwise the machine will be mostly stable. + +Machine-specific notes +====================== + +Latitude E6400 +-------------- + +Vendor files not required for Dell Latitude E6400 if you have the Intel GPU. + +If you have the Nvidia model, please use the `e6400nvidia_4mb` target, and +make sure to run the inject script. + +E6400 nvidia issues +------------------- + +See: + +If using Linux on Nvidia GPU variants of E6400, please boot using `nomodeset`. +The `nv` drivers on BSD systems generally work, but can have severe performance +issues; use of a tiling window manager is recommended, on BSD systems, because +moving windows around can literally lag a lot otherwise, on most window managers. + +dGPU variants +------------- + +On everything except E6400, Libreboot only supports the variant with an Intel +GPU. Therefore, you must *only* purchase a Dell Latitude that has the Intel +graphics; even on E6400, this is good advice, due to issues with the Nvidia +GPU on E6400, documented later in this guide. + +Internal flashing +================= + +You can simply boot Linux/BSD, on the Dell Latitude you wish to flash, and +run `flashprog` from there, for Libreboot installation. Certain other steps +are also required, documented in the steps below: + +You can flash Libreboot directly from the vendor (Dell) BIOS, without taking +the machine apart. It can be done entirely from Linux/BSD. + +**NOTE (15 October 2023): The util is now called `dell-flash-unlock`, but it +was previously called `e6400-flash-unlock`. Links have been updated.** + +Check `util/dell-flash-unlock` in the `lbmk.git` repository, or in release +archives for Libreboot releases from 20230423 onwards. + +Go in there: + + cd util/dell-flash-unlock + make + +**With this program, you can unlock the flash in such a way where everything +is writeable. Information about how to use it is in the `README.md` file which +is included in that program's directory, or you can read it online here:** + +**** + +**Please make sure that you do fully read the README, because it contains +useful information.** + +Literally just run that program, and do what it says. You run it once, and shut +down, and when you do, the system brings itself back up automatically; on some +systems, you have to boot the machine back up manually, after power down. Then +you run it and flash it unlocked. Then you run it again. The source code is +intuitive enough that you can easily get the gist of it; it's writing some EC +commands and changing some chipset config bits. The EC on this machine is +hooked up to the `GPIO33` signal, sometimes called `HDA_DOCK_EN`, which sets +the flash descriptor override thus disabling any flash protection by the IFD. +It also bypasses the SMM BIOS lock protection by disabling SMIs, and Dell's +BIOS doesn't set any other type of protection either such as writing to +Protected Range registers. + +MAKE SURE to back up the original firmware image first: + + flashprog -p internal -r factory.rom + +When you flash it, you can use this command: + + flashprog -p internal -w libreboot.rom + +Where `libreboot.rom` is your Dell Latitude ROM. *Make sure* it's the right +one. If flashprog complains about multiple flash chips detected, just pick one of them (doesn't matter which one). On *most* Dell machines, the most correct +would probably be this option in flashprog: `-c MX25L3205D/MX25L3208D`. + +So: + + flashprog -p internal -w libreboot.rom -c MX25L3205D/MX25L3208D + +When you see flashprog say `VERIFIED` at the end, that means the flash was +successful. If you don't see that, or you're unsure, please [contact the +Libreboot project via IRC](../../contact.md). + +External flashing +================= + +General guidance +---------------- + +Machine-specific disassembly instructions not provided, but you can find +the hardware maintenance manual for your Latitude module online. Just search +for it. The flash chips(s) is/are usually under the keyboard/palmrest. Near +to the PCH/southbridge. + +Note that you often have to provide a high current for VCC, because the flash +chip will share a common voltage rail with other power-hungry ICs on the +board, or the flash ICs will share a common MISO/MOSI line without resistance, +with chip selects controlled by PCH, and/or the PCH itself might be live while +flashing - so you need to set the drive strength high. + +Take stock of the above advice, which is also mentioned on the external SPI +flashing guide. + +Please read the [external SPI flash guide](spi.md) + +External flashing is usually not required, on these machines. + +Chip size guidance +------------------ + +SOme Dell Latitudes use a single flash chip, so you can +just use the ROM images as-is. + +If there are two flash chips, you must split the ROM images. Check the silk +screen on the board, and the first chip might be labelled something like SPI1, +second one SPI2. Figure out which one is first. + +Look at the part number on the chip and find the flash size for it. For example: +a 10MB flash might be 2MB for SPI1 and 8MB for SPI2, so you would do: + + dd if=libreboot.rom of=spi1.rom bs=1M count=2 + dd if=libreboot.rom of=spi2.rom bs=1M skip=2 + +Adapt accordingly, to the exact flash configuration on your machine. 16MB is +likely one chip. 12MB is usually SPI1 8MB and SPI2 4MB so you would do: + + dd if=libreboot.rom of=spi1.rom bs=1M count=8 + dd if=libreboot.rom of=spi2.rom bs=1M skip=8 + +If in doubt, just ask on Libreboot IRC. From 406f9f03529764bf3a2011e08653b36b64310c84 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 29 Aug 2024 23:59:28 +0100 Subject: [PATCH 059/399] clarify pre-install requirement for latitudes Signed-off-by: Leah Rowe --- site/docs/install/latitude.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/site/docs/install/latitude.md b/site/docs/install/latitude.md index 71bbef5..e3cbbdf 100644 --- a/site/docs/install/latitude.md +++ b/site/docs/install/latitude.md @@ -11,7 +11,9 @@ Disable security before flashing ================================ **[SAFETY WARNING: Always insert vendor files before flashing.](../../news/safety.md), -or look directly at [Injecting Vendor Files](ivy_has_common.md).** +or look directly at [Injecting Vendor Files](ivy_has_common.md). If you flash +Libreboot without inserting vendor files, you will brick the machine; if you +do, please follow the external flashing instructions linked below.** Please also [disable /dev/mem protection](devmem.md), otherwise flashprog and dell-flash-unlock won't work. You can re-enable the protections after From 002b0520f4b361e59b480fa971acfca3f73ea90b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 30 Aug 2024 01:47:04 +0100 Subject: [PATCH 060/399] hp2560.md: remove note about wifi it's not broken anymore. it was fixed in the last two libreboot releases! Signed-off-by: Leah Rowe --- site/docs/hardware/hp2560p.md | 8 -------- 1 file changed, 8 deletions(-) diff --git a/site/docs/hardware/hp2560p.md b/site/docs/hardware/hp2560p.md index b6f31b0..e6b2943 100644 --- a/site/docs/hardware/hp2560p.md +++ b/site/docs/hardware/hp2560p.md @@ -35,14 +35,6 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** -BROKEN WIFI -=========== - -Wifi is broken in current revisions. This is because hardware `rfkill` is set, -and pressing the button combo to enable wifi doesn't work; we believe that the -EC is sending rfkill. We do not yet know how to enable it, at least as of -Libreboot 202405xx. - Introduction ============ From a6d33c415884f109b4b040e92bea2d31730f3704 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 30 Aug 2024 02:36:57 +0100 Subject: [PATCH 061/399] update the 820 g2 hp guide make it easier to read Signed-off-by: Leah Rowe --- site/docs/hardware/hp820g2.md | 239 ++++++++-------------------------- 1 file changed, 51 insertions(+), 188 deletions(-) diff --git a/site/docs/hardware/hp820g2.md b/site/docs/hardware/hp820g2.md index f5bacb0..45b0bc5 100644 --- a/site/docs/hardware/hp820g2.md +++ b/site/docs/hardware/hp820g2.md @@ -59,6 +59,8 @@ P*: Partially works with blobs | **SeaBIOS with GRUB** | Works | +Brief board info: + Full hardware specifications can be found on HP's own website: @@ -66,151 +68,25 @@ Full hardware specifications can be found on HP's own website: Introduction ============ -**Unavailable in Libreboot 20231106 or earlier. You must [compile from -source](../build/), or use a release newer than 20231106.** - -This is a beastly 12.5" Broadwell machine from HP, the main benefit of which is -greater power efficiency (compared to Ivybridge and Haswell platforms), while -offering similar CPU performance but much higher graphics performance. - -Variants exist with either Intel Core i5-5200U, i5-5300U, i7-5500U or -i7-5600U and it comes with a plethora of ports; 3x USB 3.0, DisplayPort (which -can do 4K 60Hz), a VGA port, can be expanded to 32GB RAM, has *3* slots which -can take SSDs (PCIe, M2 and regular SATA), also has a side dock connector (for -a docking station). The screen is eDP type and can be upgraded to 1920x1080. - -This is a nice portable machine, with very reasonable performance. Most people -should be very satisfied with it, in daily use. It is widely available in -online market places. This page will tell you how to flash it! - -All variants of this mainboard will come with Intel HD 5500 graphics, which has -completely free software initialisation in coreboot, provided by *libgfxinit*. - -Build ROM image from source ---------------------------- - First, install the build dependencies and initialise git, using the instructions in [building from source](../build/). Unless you're using a release after Libreboot 20231106, you *must* use the latest `lbmk.git`. -The build target, when building from source, is thus: +Please build this from source with lbmk: ./mk -b coreboot hp820g2_12mb -NOTE: The actual flash is 16MB, but you must flash only the first 12MB of it. -The ROM images provided by Libreboot are 12MB. - -There is a separate 2MB *system* flash that you must *erase*, prior to -installing Libreboot. This, along with Libreboot's modified IFD, bypasses -the security (HP Sure Start) that the vendor put there, allowing you to -use coreboot-based firmware such as Libreboot. - -Installation -============ - -Insert binary files -------------------- - -If you're using a release ROM, please ensure that you've inserted extra firmware -required refer to the [guide](../install/ivy_has_common.md) for that. (**failure -to adhere to this advice will result in a bricked machine**) - -If you're *building* from source (using lbmk), the steps takes above are done -for you automatically, inserting all of the required files. The above link is -only relevant for *release* images, which lack some of these files. - -Set MAC address ---------------- - -This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM -region. As such, release/build ROMs will contain the same MAC address. To -change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). - -Update an existing Libreboot installation ------------------ - -HP EliteBook 820 G2 - -NOTE: This section only applies if you haven't enabled write protection. You -can otherwise use the external flashing instructions (see below) for both the -initial installation and updates, but for updates you don't need to re-erase -the private flash, if it was already erased. - -If you're already running Libreboot, and you don't have flash protection -turned on, [internal flashing](../install/) is possible, but please note: - -You must *only* flash the first 12MB, and nothing in the final 4MB of the flash. -This is because the EC firmware is in flash, and we don't touch that during -initial installation or during updates. - -Update it like so: - -Create a dummy 16MB ROM like so: - -``` -dd if=/dev/zero of=new.bin bs=16M count=1 -``` - -Then insert your 12MB Libreboot ROM image into the dummy file: - -``` -dd if=libreboot.rom of=new.bin bs=12M count=1 conv=notrunc -``` - -The `libreboot.rom` file is the 12MB image from Libreboot. The `new.bin` -file is the Libreboot ROM, padded to 16MB. You will not flash the entire 16MB -file, but flashprog detects a 16MB flash IC. This just makes flashrom not -complain about mismatching ROM/chip size. - -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. - -You should flash each region individually: - -``` -flashprog -p internal --ifd -i gbe -w new.bin --noverify-all -flashprog -p internal --ifd -i bios -w new.bin --noverify-all -flashprog -p internal --ifd -i me -w new.bin --noverify-all -flashprog -p internal --ifd -i ifd -w new.bin --noverify-all -``` - -NOTE: The `--ifd` option uses the regions defined in the *flashed* IFD, so -they must match the ROM. You can otherwise dump a layout file and use that, -using the instructions below (using `-l layout.txt` instead of `--ifd`). - -NOTE: If you already did an installation before, and you don't want to -[change the MAC address](../install/nvmutil.html) stored in the gbe region, -you can skip the gbe/ifd/me regions as above, and flash just the BIOS region. - -NOTE: Use of `--ifd` requires flashrom 1.2 or higher. If you have an older -version, or you don't have `--ifd`, you could instead do: - -``` -ifdtool -f layout.txt libreboot.rom -``` - -Then, instead of `--ifd` you would use `-l layout.txt`. - -ALSO: The `--ifd` option makes flashrom flash regions based on what's in -the *current* flashed IFD. - -Flashing Libreboot first time (hardware) -======================================== - -**PLEASE ENSURE that you dump a copy of both flash ICs (system flash and -private flash). Take two dumps of each, and make sure each has two good hashes. -This is because there are certain files that, while you may not need for a -regular Libreboot installation, may be useful for recovery purposes. You have -been warned!** - -This section is relevant to you if you're still running the original HP -firmware. You must [flash externally](../install/spi.md). - -Take stock of these further notes, because there are extra steps that you -must take. +More information is available in the [build guide](../build/), including how +to install build dependencies. Building from source is required, because there +aren't any ROM images for this board, in regular Libreboot releases. The +reason is that the vendor inject scripts don't currently work, because coreboot +compresses the refcode when inserting it at build time, and the process of +compression is not yet reproducible; it's not feasible to do so, and making +it not be compressed in flash would not be ideal either, so this is simply +a source-only port in Libreboot. HP Sure Start -------------- +============= There is a 16MB flash and a 2MB flash. Read this page for info: @@ -225,7 +101,9 @@ flash IC). You might want to dump the private flash first, just in case (use `-r priv.rom` or whatever filename you want to dump to, and take two dumps, ensuring that -the hashes match). The private (2MB) flash is inaccessible from your OS. The +the hashes match); one dump for the first erase, and another for the next +erase. If they match, then the erase was likely a success. The private (2MB) +flash is inaccessible from your OS. The system stores hashes of the IFD, GbE and a copy of IFD/GbE in private flash, restoring them if they were modified, but erasing the private flash disables this security mechanism. @@ -234,72 +112,56 @@ Here is a photo of the board, with the flashes: ![HP 820 G2 flash](https://av.libreboot.org/hp820g2/hp820g2_flash.jpg) -HP bootblock ------------- + -See: +Make sure to read and understand all of this first, before attempting +the Libreboot installation, because it's also important when updating +Libreboot later on. -In this page it talks about HP's own bootblock and EC firmware. These are in -the final 4MB of the flash. You must *not* modify these, because you will brick -your machine unless the IFD is modified; +Installation of Libreboot +========================= -This is why Libreboot provides 12MB images. The IFD in Libreboot is modified, as -per this coreboot documentation, to make the BIOS region *end* at the last byte -of the first 12MB in flash, bypassing HP's security entirely. In other words, -you can run whatever you want (such as Libreboot) in the first 12MB of flash, -so long as the upper 4MB is untouched and the private 2MB flash has been erased. +Make sure to set the MAC address in the flash: +[Modify MAC addresses with nvmutil](../install/nvmutil.md). -With Libreboot's modified IFD, HP's own bootblock is never executed, but the -EC firmware *is*, and must be left alone. You do not to insert it in your -Libreboot ROM because it's already in flash, within that last 4MB. +Refer to the [Libreboot flashing guides](../install/spi.md) -Flash a ROM image (hardware) ------------------ +Here are the flash ICs: -**REMOVE all power sources like battery, charger and so on, before doing this. -This is to prevent short circuiting and power surges while flashing.** +![](https://av.libreboot.org/hp820g2/hp820g2_flash.jpg) -For general information, please refer to [25xx NOR flash -instructions](../install/spi.md). +When you flash the 12MB image, please do the following with it: -Remove the bottom cover via the latch, and the flashes are accessible. -First, dump both flashes for backup, using the `-r` option (instead of `-w`) -in flashrom. Two dumps of each flash, make sure both dumps match for each chip. + dd if=/dev/zero of=4mb.bin bs=4M count=1 + cat libreboot.rom 4mb.bin > libreboot16.rom -We will assume that your system flash (16MB) dump is named `dump.bin`. This is -the dump of your 16MB flash, containing HP's firmware, including the final -bootblock and EC firmware. +Be careful: do not fully flash `libreboot16.rom` -This gives you everything, including the final 4MB. Now insert your new ROM -into a copy of `dump.bin`: +Flash it like this, instead: ``` -cp -R dump.bin new.bin -dd if=libreboot.rom of=new.bin bs=12M count=1 conv=notrunc +flashprog -p PROGRAMMER --ifd -i gbe -w libreboot16.rom --noverify-all +flashprog -p PROGRAMMER --ifd -i bios -w libreboot16.rom --noverify-all +flashprog -p PROGRAMMER --ifd -i me -w libreboot16.rom --noverify-all +flashprog -p PROGRAMMER --ifd -i ifd -w libreboot16.rom --noverify-all ``` -Flash `new.bin` to system flash (16MB IC) using the `-w` option in flashrom, -and erase the private (2MB) flash IC, -using the `--erase` option (instead of `-w filename.rom`) in flashrom. +Replace `PROGRAMMER` according to whichever flasher you're using. You could +also replace it with `internal`, if later flashing internally to update an +existing Libreboot installation. -In the above example, you replaced the first 12MB of the HP dump with that of -your Libreboot image, but leaving the final 4MB intact which contains the EC -firmware. Libreboot's custom IFD sets everything so that all regions, from -IFD to GbE, ME and then BIOS region, exist within the first 12MB of flash. -This makes the machine boot from the end of the 12MB section, containing the -coreboot bootblock, instead of the HP bootblock (which is never executed but -must remain intact). +If you're flashing internally, add `--noverify-all` to the flashprog +command. -It's very important that you *erase* the 2MB flash. Be careful *not* to -erase the system (16MB flash). This is yet another reason why you should keep -a backup of both flash ICs, just in case (dumped using `-r` in flashrom). +To erase the 2MB flash, do this: -![](https://av.libreboot.org/hp820g2/hp820g2.jpg) +``` +flashprog -p PROGRAMMER --erase +``` -![](https://av.libreboot.org/hp820g2/hp820g2_inside.jpg) - -And that's all. Refer to other documents on Libreboot's website for how -to handle Linux/BSD systems and generally use your machine. +Refer generally to the [main flashing guide](../install/) and to +the [external flashing guide](../install/spi.md) so that you can learn how +to actually flash it. TPM 2.0 potentially supported ============================== @@ -325,6 +187,7 @@ don't need to mess with this at all, when you build Libreboot yourself. You can see how this works, by looking at the patch which added 820 G2 support: -If you're using release builds, the MRC, refcode and (neutered) ME images are -missing from flash, and must be re-inserted, using the instructions -on [this page](../install/ivy_has_common.md). +![](https://av.libreboot.org/hp820g2/hp820g2.jpg) + +Yay. If you see this boot screen, you should be proud. This is a really +hard machine to flash. From 2cf3d6911a46707ccd820d94194cbe4fc5af6148 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 30 Aug 2024 02:39:11 +0100 Subject: [PATCH 062/399] minor 820 g2 docs cleanup Signed-off-by: Leah Rowe --- site/docs/hardware/hp2560p.md | 33 +++------------ site/docs/hardware/hp2570p.md | 79 +++-------------------------------- site/docs/hardware/hp820g2.md | 4 +- 3 files changed, 12 insertions(+), 104 deletions(-) diff --git a/site/docs/hardware/hp2560p.md b/site/docs/hardware/hp2560p.md index e6b2943..70fd672 100644 --- a/site/docs/hardware/hp2560p.md +++ b/site/docs/hardware/hp2560p.md @@ -35,41 +35,20 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** -Introduction -============ - -Libreboot has support for this, in the Git repository and release versions -from Libreboot 20230423 onwards. - Brief board info ----------------- +================ HP EliteBook 2560p is a 12.5" laptop you can read more about here: Installation of Libreboot -------------------------- +========================= -You can actually just compile the Libreboot ROM for this, and flash the -entire ROM, then flash it. The *coreboot* project proper, has information -about this: +Coreboot also has some information: -Refer to the coreboot guide for flashing instructions, and you can build the -images for it in Libreboot like so: - - ./mk -b coreboot hp2560p_8mb - -More information about building ROM images can be found in -the [build guide](../build/). - -This is a *Sandybridge* board which means that a neutered ME image is required -if you wish to flash the ME region. Libreboot's build system automatically -downloads, neuters (using `me_cleaner`) and inserts this if compiling from -source. - If you're using *Libreboot release* ROM images, the ME image has been scrubbed and you must re-insert it. Use the information on this guide to know how to do that: @@ -77,9 +56,7 @@ to do that: [Insert vendor files on Intel Sandybridge/Ivybridge/Haswell platforms](../install/ivy_has_common.md) -You may also wish to change the *default MAC address* if you're planning to -use the onboard Intel Gigabit Ethernet. You can do this using the information -in the same guide linked above, or read the nvmutil manual: - +Make sure to set the MAC address in the flash: [Modify MAC addresses with nvmutil](../install/nvmutil.md). +Refer to the [Libreboot flashing guides](../install/spi.md) diff --git a/site/docs/hardware/hp2570p.md b/site/docs/hardware/hp2570p.md index f3a9842..f187603 100644 --- a/site/docs/hardware/hp2570p.md +++ b/site/docs/hardware/hp2570p.md @@ -34,85 +34,20 @@ HP EliteBook 2570p | **SeaBIOS with GRUB** | Works | - -Introduction -============ - -Libreboot has support for this, in the Git repository and release versions -after (but not including) 20230423. - Brief board info ----------------- +================ -HP EliteBook 2570p is a 12.5" laptop very similar to the 2560p. -The only real difference seems to be that this shipped with Ivy Bridge -processors rather than Sandy Bridge, and has an USB 3.0 port. - -You can read more specifications directly from HP: +Vendor info here: -The following is tested and confirmed working -thanks to `Johan Ehnberg (johan@molnix.com)`: - -- Native raminit with 2+2 (matched or unmatched), 2+8 or 8+8 GiB RAM -- SeaBIOS and GRUB (booted Devuan and Ubuntu) (corebootfb+txtmode) -- S3 suspend to RAM -- Backlight control -- 2.5" SATA SSD -- Optical drive slot -- Gigabit Ethernet -- Mini-PCIe Wi-Fi -- SD card reader -- Bluetooth -- Touchpad -- Headphone jack, speakers and microphone -- Webcam -- Docking station: all ports except that weird extension port tested, - hotplug and unplug work -- VGA & DisplayPort -- Fn combos, mute button -- "Launch browser" button: worked one day, not other. - Probably just not configured in OS. - -These were visible on lsusb, but no further tests were performed: - -- Fingerprint sensor -- Smart card reader -- WWAN (3G modem) - -Untested: - -- Trackpoint (not present on cheap aftermarket keyboard tested) -- ExpressCard -- eSATA & mSATA (believed to work based on coreboot comments) - -Not working: - -- Radio button - Installation of Libreboot -------------------------- +========================= -You can actually just compile the Libreboot ROM for this, and flash the -entire ROM. The process is the same as 2560p, except you probably have -a SOIC-16 chip instead of SOIC-8. Follow these instructions: +Coreboot also has some information: -Refer to that coreboot guide for flashing instructions, and you can -build the images for it in Libreboot like so: - - ./mk -b coreboot hp2570p_16mb - -More information about building ROM images can be found in -the [build guide](../build/). - -This is an *Ivy Bridge* board which means that a neutered ME image is required -if you wish to flash the ME region. Libreboot's build system automatically -downloads, neuters (using `me_cleaner`) and inserts this if compiling from -source. - If you're using *Libreboot release* ROM images, the ME image has been scrubbed and you must re-insert it. Use the information on this guide to know how to do that: @@ -120,9 +55,7 @@ to do that: [Insert vendor files on Intel Sandybridge/Ivybridge/Haswell platforms](../install/ivy_has_common.md) -You may also wish to change the *default MAC address* if you're planning to -use the onboard Intel Gigabit Ethernet. You can do this using the information -in the same guide linked above, or read the nvmutil manual: - +Make sure to set the MAC address in the flash: [Modify MAC addresses with nvmutil](../install/nvmutil.md). +Refer to the [Libreboot flashing guides](../install/spi.md) diff --git a/site/docs/hardware/hp820g2.md b/site/docs/hardware/hp820g2.md index 45b0bc5..8ef6a86 100644 --- a/site/docs/hardware/hp820g2.md +++ b/site/docs/hardware/hp820g2.md @@ -108,9 +108,7 @@ system stores hashes of the IFD, GbE and a copy of IFD/GbE in private flash, restoring them if they were modified, but erasing the private flash disables this security mechanism. -Here is a photo of the board, with the flashes: - -![HP 820 G2 flash](https://av.libreboot.org/hp820g2/hp820g2_flash.jpg) +Coreboot has its own page about this machine: From 2f1107f2ca852f154332046a871822663ca792ac Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 30 Aug 2024 02:40:32 +0100 Subject: [PATCH 063/399] remove wrong info about 820 g2 yeah, you can't use release images Signed-off-by: Leah Rowe --- site/docs/hardware/hp820g2.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/site/docs/hardware/hp820g2.md b/site/docs/hardware/hp820g2.md index 8ef6a86..263acc0 100644 --- a/site/docs/hardware/hp820g2.md +++ b/site/docs/hardware/hp820g2.md @@ -68,10 +68,6 @@ Full hardware specifications can be found on HP's own website: Introduction ============ -First, install the build dependencies and initialise git, using the -instructions in [building from source](../build/). Unless you're using a -release after Libreboot 20231106, you *must* use the latest `lbmk.git`. - Please build this from source with lbmk: ./mk -b coreboot hp820g2_12mb From 09844d6258bd27026f53f9cdb731b4086c20fda3 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 31 Aug 2024 22:28:18 +0100 Subject: [PATCH 064/399] simplify docs/install and merge docs/hardware docs/hardware is redundant, because it now mostly contains installation instructions, and docs/install also contains hardware information. therefore, in practise, they are both the same kind of information. merge the two, and streamline everything. a lot of redundant information has been removed. docs/install/ has been re-structured in such a way as to enable more chronological reading, to make it easier for the average user to install Libreboot. This is part of a larger series of changes I'm working on for the documentation. I'm massively auditing the entire Libreboot documentation. Signed-off-by: Leah Rowe --- site/contrib.md | 4 +- site/docs/hardware/c201.md | 9 - site/docs/hardware/d510mo.md | 61 - site/docs/hardware/d945gclf.md | 124 - site/docs/hardware/ga-g41m-es2l.md | 104 - .../hardware/hwdumps/x200/biosdecode.err.log | 0 .../docs/hardware/hwdumps/x200/biosdecode.log | 24 - site/docs/hardware/hwdumps/x200/codec#0 | 208 - .../hardware/hwdumps/x200/cpuinfo.err.log | 0 site/docs/hardware/hwdumps/x200/cpuinfo.log | 52 - site/docs/hardware/hwdumps/x200/dmesg.err.log | 0 site/docs/hardware/hwdumps/x200/dmesg.log | 1066 ----- .../hardware/hwdumps/x200/dmidecode.err.log | 0 site/docs/hardware/hwdumps/x200/dmidecode.log | 587 --- .../docs/hardware/hwdumps/x200/ectool.err.log | 1 - site/docs/hardware/hwdumps/x200/ectool.log | 0 .../hwdumps/x200/flashrom_info.err.log | 14 - .../hardware/hwdumps/x200/flashrom_info.log | 289 -- .../hwdumps/x200/flashrom_read.err.log | 16 - .../hardware/hwdumps/x200/flashrom_read.log | 292 -- .../hardware/hwdumps/x200/input_bustypes.log | 11 - .../hardware/hwdumps/x200/inteltool.err.log | 1 - site/docs/hardware/hwdumps/x200/inteltool.log | 0 .../hardware/hwdumps/x200/ioports.err.log | 0 site/docs/hardware/hwdumps/x200/ioports.log | 60 - site/docs/hardware/hwdumps/x200/lspci.err.log | 0 site/docs/hardware/hwdumps/x200/lspci.log | 2287 ---------- site/docs/hardware/hwdumps/x200/lspnp.err.log | 1 - site/docs/hardware/hwdumps/x200/lspnp.log | 0 site/docs/hardware/hwdumps/x200/lsusb.err.log | 0 site/docs/hardware/hwdumps/x200/lsusb.log | 820 ---- .../hardware/hwdumps/x200/msrtool.err.log | 1 - site/docs/hardware/hwdumps/x200/msrtool.log | 0 .../hardware/hwdumps/x200/nvramtool.err.log | 1 - site/docs/hardware/hwdumps/x200/nvramtool.log | 0 site/docs/hardware/hwdumps/x200/pin_hwC0D0 | 8 - .../hardware/hwdumps/x200/superiotool.err.log | 1 - .../hardware/hwdumps/x200/superiotool.log | 0 site/docs/hardware/imac52.md | 54 - site/docs/hardware/index.md | 202 - site/docs/hardware/index.zh-cn.md | 181 - site/docs/hardware/kgpe-d16.md | 215 - site/docs/hardware/r400.md | 108 - site/docs/hardware/r500.md | 81 - site/docs/hardware/t400.md | 104 - site/docs/hardware/t500.md | 106 - site/docs/hardware/text/kfsn4-dre/bootlog.txt | 3871 ----------------- site/docs/hardware/text/x200s/cblog00.txt | 196 - site/docs/hardware/text/x200s/cblog01.txt | 1569 ------- site/docs/hardware/text/x200s/cblog02.txt | 77 - site/docs/hardware/text/x200s/cblog03.txt | 158 - site/docs/index.md | 1 - site/docs/index.uk.md | 1 - site/docs/index.zh-cn.md | 1 - .../{hardware => install}/acer_g43t-am3.md | 0 site/docs/install/d510mo.md | 23 - site/docs/install/d945gclf.md | 123 +- site/docs/{hardware => install}/dell9020.md | 0 .../{hardware => install}/dell_thermal.md | 0 site/docs/install/ga-g41m-es2l.md | 106 +- site/docs/{hardware => install}/hp2170p.md | 0 site/docs/{hardware => install}/hp2560p.md | 0 site/docs/{hardware => install}/hp2570p.md | 0 site/docs/{hardware => install}/hp8200sff.md | 0 site/docs/{hardware => install}/hp820g2.md | 0 site/docs/{hardware => install}/hp8300usdt.md | 0 site/docs/{hardware => install}/hp8460p.md | 0 site/docs/{hardware => install}/hp8470p.md | 0 site/docs/{hardware => install}/hp8560w.md | 0 site/docs/{hardware => install}/hp9470m.md | 0 site/docs/install/index.md | 1133 +++-- site/docs/{hardware => install}/kcma-d8.md | 0 site/docs/{hardware => install}/kfsn4-dre.md | 0 site/docs/install/kgpe-d16.md | 219 +- site/docs/install/latitude.md | 2 +- .../docs/{hardware => install}/mac_address.md | 0 site/docs/{hardware => install}/macbook21.md | 0 .../install/{r400_external.md => r400.md} | 112 +- site/docs/{hardware => install}/t1650.md | 0 .../install/{t400_external.md => t400.md} | 100 +- .../install/{t500_external.md => t500.md} | 118 +- site/docs/{hardware => install}/x200.md | 164 +- site/docs/{hardware => install}/x200.uk.md | 157 +- site/docs/install/x200_external.md | 164 - site/docs/install/x200_external.uk.md | 158 - site/docs/install/x60flashscript.patch | 27 - site/docs/uboot/index.md | 2 - site/faq.md | 6 +- site/faq.uk.md | 6 +- site/index.de.md | 2 +- site/index.fr.md | 2 +- site/index.it.md | 2 +- site/index.md | 2 +- site/index.ru.md | 2 +- site/index.uk.md | 2 +- site/news/10.md | 2 +- site/news/hp2170p.md | 2 +- site/news/hp8200sff.md | 2 +- site/news/hp8200sff.uk.md | 2 +- site/news/hp820g2.md | 2 +- site/news/hp8470p_and_dell_t1650.md | 6 +- site/news/hp_elitebooks.md | 4 +- site/news/libreboot20230413.md | 22 +- site/news/libreboot20230423.md | 28 +- site/news/libreboot20230625.md | 34 +- site/news/libreboot20231021.md | 46 +- site/news/libreboot20231101.md | 48 +- site/news/libreboot20231106.md | 48 +- site/news/libreboot20240126.md | 2 +- site/news/libreboot20240225.md | 54 +- site/news/libreboot20240504.md | 54 +- site/news/ports202402.md | 12 +- site/tasks/index.md | 2 +- 113 files changed, 1738 insertions(+), 14231 deletions(-) delete mode 100644 site/docs/hardware/c201.md delete mode 100644 site/docs/hardware/d510mo.md delete mode 100644 site/docs/hardware/d945gclf.md delete mode 100644 site/docs/hardware/ga-g41m-es2l.md delete mode 100644 site/docs/hardware/hwdumps/x200/biosdecode.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/biosdecode.log delete mode 100644 site/docs/hardware/hwdumps/x200/codec#0 delete mode 100644 site/docs/hardware/hwdumps/x200/cpuinfo.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/cpuinfo.log delete mode 100644 site/docs/hardware/hwdumps/x200/dmesg.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/dmesg.log delete mode 100644 site/docs/hardware/hwdumps/x200/dmidecode.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/dmidecode.log delete mode 100644 site/docs/hardware/hwdumps/x200/ectool.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/ectool.log delete mode 100644 site/docs/hardware/hwdumps/x200/flashrom_info.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/flashrom_info.log delete mode 100644 site/docs/hardware/hwdumps/x200/flashrom_read.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/flashrom_read.log delete mode 100644 site/docs/hardware/hwdumps/x200/input_bustypes.log delete mode 100644 site/docs/hardware/hwdumps/x200/inteltool.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/inteltool.log delete mode 100644 site/docs/hardware/hwdumps/x200/ioports.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/ioports.log delete mode 100644 site/docs/hardware/hwdumps/x200/lspci.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/lspci.log delete mode 100644 site/docs/hardware/hwdumps/x200/lspnp.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/lspnp.log delete mode 100644 site/docs/hardware/hwdumps/x200/lsusb.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/lsusb.log delete mode 100644 site/docs/hardware/hwdumps/x200/msrtool.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/msrtool.log delete mode 100644 site/docs/hardware/hwdumps/x200/nvramtool.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/nvramtool.log delete mode 100644 site/docs/hardware/hwdumps/x200/pin_hwC0D0 delete mode 100644 site/docs/hardware/hwdumps/x200/superiotool.err.log delete mode 100644 site/docs/hardware/hwdumps/x200/superiotool.log delete mode 100644 site/docs/hardware/imac52.md delete mode 100644 site/docs/hardware/index.md delete mode 100644 site/docs/hardware/index.zh-cn.md delete mode 100644 site/docs/hardware/kgpe-d16.md delete mode 100644 site/docs/hardware/r400.md delete mode 100644 site/docs/hardware/r500.md delete mode 100644 site/docs/hardware/t400.md delete mode 100644 site/docs/hardware/t500.md delete mode 100644 site/docs/hardware/text/kfsn4-dre/bootlog.txt delete mode 100644 site/docs/hardware/text/x200s/cblog00.txt delete mode 100644 site/docs/hardware/text/x200s/cblog01.txt delete mode 100644 site/docs/hardware/text/x200s/cblog02.txt delete mode 100644 site/docs/hardware/text/x200s/cblog03.txt rename site/docs/{hardware => install}/acer_g43t-am3.md (100%) delete mode 100644 site/docs/install/d510mo.md rename site/docs/{hardware => install}/dell9020.md (100%) rename site/docs/{hardware => install}/dell_thermal.md (100%) rename site/docs/{hardware => install}/hp2170p.md (100%) rename site/docs/{hardware => install}/hp2560p.md (100%) rename site/docs/{hardware => install}/hp2570p.md (100%) rename site/docs/{hardware => install}/hp8200sff.md (100%) rename site/docs/{hardware => install}/hp820g2.md (100%) rename site/docs/{hardware => install}/hp8300usdt.md (100%) rename site/docs/{hardware => install}/hp8460p.md (100%) rename site/docs/{hardware => install}/hp8470p.md (100%) rename site/docs/{hardware => install}/hp8560w.md (100%) rename site/docs/{hardware => install}/hp9470m.md (100%) rename site/docs/{hardware => install}/kcma-d8.md (100%) rename site/docs/{hardware => install}/kfsn4-dre.md (100%) rename site/docs/{hardware => install}/mac_address.md (100%) rename site/docs/{hardware => install}/macbook21.md (100%) rename site/docs/install/{r400_external.md => r400.md} (63%) rename site/docs/{hardware => install}/t1650.md (100%) rename site/docs/install/{t400_external.md => t400.md} (67%) rename site/docs/install/{t500_external.md => t500.md} (69%) rename site/docs/{hardware => install}/x200.md (57%) rename site/docs/{hardware => install}/x200.uk.md (52%) delete mode 100644 site/docs/install/x200_external.md delete mode 100644 site/docs/install/x200_external.uk.md delete mode 100644 site/docs/install/x60flashscript.patch diff --git a/site/contrib.md b/site/contrib.md index 6f9dcf5..6416247 100644 --- a/site/contrib.md +++ b/site/contrib.md @@ -228,7 +228,7 @@ releases. Lorenzo Aloe ------------ -Provided hardware testing for the [Dell OptiPlex 9020](docs/hardware/dell9020.md), +Provided hardware testing for the [Dell OptiPlex 9020](docs/install/dell9020.md), also provided testing for proxmox with GPU passthrough on Dell Precision T1650, confirming near-native performance; with this, you can boot operating systems virtually natively, performance-wise, on a Libreboot system in cases where @@ -306,7 +306,7 @@ Riku Viitanen Added support for HP Elite 8200 SFF desktop PC to Libreboot. You can read about this in the hardware page: -[HP Elite 8200 SFF](docs/hardware/hp8200sff.md) +[HP Elite 8200 SFF](docs/install/hp8200sff.md) Steve Shenton ------------- diff --git a/site/docs/hardware/c201.md b/site/docs/hardware/c201.md deleted file mode 100644 index 1e8188b..0000000 --- a/site/docs/hardware/c201.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -title: ASUS Chromebook C201 -x-toc-enable: true -... - -This page is absolete. Refer to these pages instead: - -* [C201 flashing instructions](../install/c201.md) -* [Chromebook flashing instructions](../install/chromebooks.md) diff --git a/site/docs/hardware/d510mo.md b/site/docs/hardware/d510mo.md deleted file mode 100644 index 2e93c39..0000000 --- a/site/docs/hardware/d510mo.md +++ /dev/null @@ -1,61 +0,0 @@ ---- -title: Intel D510MO and D410PT desktop boards -... - -
-
-Intel D510MO -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Intel | -| **Name** | D510MO/D410PT | -| **Released** | 2010 | -| **Chipset** | Intel NM10 Express (Mount Olive) | -| **CPU** | Intel Atom | -| **Graphics** | Integrated | -| **Display** | None. | -| **Memory** | Up to 4GB | -| **Architecture** | x86_64 | -| **Original boot firmware** | Intel BIOS | -| **Intel ME/AMD PSP** | Not present. | -| **Flash chip** | ? | - -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|----------------|---------------------------------------| -| **Internal flashing with original boot firmware** | N | -| **Display** | - | -| **Audio** | W+ | -| **RAM Init** | P+ | -| **External output** | P+ | -| **Display brightness** | - | - -| ***Payloads supported*** | | -|---------------------------|-------| -| **GRUB** | Works | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | -
-This is a desktop board using intel hardware (circa \~2009, ICH7 -southbridge, similar performance-wise to the ThinkPad X200. It can make -for quite a nifty desktop. Powered by libreboot. - -NOTE: D410PT is another name and it's the same board. Flash the exact same -ROM and it should work. - -NOTE: This board has a working framebuffer in Grub, but in Linux in -native resolution the display is unusable due to some raminit issues. -This board can however be used for building a headless server. - -Flashing instructions can be found at -[../install/d510mo.md](../install/d510mo.md) diff --git a/site/docs/hardware/d945gclf.md b/site/docs/hardware/d945gclf.md deleted file mode 100644 index 69edfd5..0000000 --- a/site/docs/hardware/d945gclf.md +++ /dev/null @@ -1,124 +0,0 @@ ---- -title: Intel D945GCLF desktop board -x-toc-enable: true -... - -
-
-D945GCLF -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Intel | -| **Name** | D945GCLF/D945GCLF2D | -| **Released** | 2008 | -| **Chipset** | Intel Calistoga 945GC | -| **CPU** | Intel Atom | -| **Graphics** | ? | -| **Display** | None. | -| **Memory** | Up to 2GB | -| **Architecture** | x86_64 | -| **Original boot firmware** | Intel BIOS | -| **Intel ME/AMD PSP** | Not present. | -| **Flash chip** | SOIC-8 512KiB | - -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | Notes | -|----------------|---------------------------------------|-------| -| **Internal flashing with original boot firmware** | N | | -| **Display** | - | | -| **Audio** | W+ | | -| **RAM Init** | W+ | | -| **External output** | W+ | | -| **Display brightness** | - | | - -| ***Payloads supported*** | | -|---------------------------|--------------| -| **GRUB** | Doesn't work | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Doesn't work | -
-If you just want flashing instructions, go to -[../install/d945gclf.md](../install/d945gclf.md) - -D945GCLF2D also reported working by a user. - -Introduction -============ - -This board is a mini-itx desktop board for 2008. It uses an atom 230, -which is a singe core CPU but it is hyperthreaded so it appears to have -2 thread to the OS. The flash chip is very small, 512KiB, so grub2 does -not fit, which is why libreboot has to use seabios on this target. Full -disk encryption like on other supported targets will not be possible, so -plan accordingly. - -This board has a 945gc chipset which is the desktop equivalent of 945gm -which can be found in the Lenovo x60/t60 or macbook2,1. This chipset -features an ICH7 southbridge. It has 1 DIMM slot that can accommodate up -to 2G of DDR2 RAM. - -Connectivity-wise it has 1 PCI slot, a 10/100 ethernet port, 4 usb slot -and 4 usb ports, with one internal header and 2 SATA ports. - -The D945GCLF2 is an upgraded version of this board. The differences are: -1 more USB header, 10/100/1000 ethernet and a dual core cpu (also -hyperthreaded). Since the board is almost identical (and coreboot code -seem to indicate that it works, since MAX\_CPU=4 is set), it is believed -that it should also work but this is untested. - -Remarks about vendor bios: --------------------------- - -- Without coreboot/libreboot this board is completely useless, since the - vendor bios is very bad. It cannot boot from any HDD whether it is - connected to the SATA port or USB. With libreboot it works just - fine. - -- The vendor bios write protects the flash so it requires external - flashing to install libreboot on this device. Once libreboot is - flashed there is no problem to update the firmware internally - -Here is an image of the board:\ -![](https://av.libreboot.org/d945gclf/d945gclf.jpg)\ -Here is an image of the D945GCLF2 board:\ -![](https://av.libreboot.org/d945gclf/20160923_141521.jpg){width="80%" height="80%"}\ -And SPI SOIC8 flash chip\ -![](https://av.libreboot.org/d945gclf/20160923_141550.jpg){width="50%" height="50%"} - -How to replace thermal paste and fan ------------------------------------- - -This board comes with very crappy disposable loud fan, that one has no -bearings, which can not be repaired or oiled properly, do not waste your -time trying to fix it, just buy one chinese same size fan\ -![](https://av.libreboot.org/d945gclf/20160923_141620.jpg){width="50%" height="50%"} -![](https://av.libreboot.org/d945gclf/20160923_141614.jpg){width="50%" height="50%"}\ -Make sure that new one has same wiring\ -![](https://av.libreboot.org/d945gclf/20160923_142618.jpg){width="50%" height="50%"}\ -This is a new one, with bearing and maintenable\ -![](https://av.libreboot.org/d945gclf/20160923_141738.jpg){width="50%" height="50%"} -![](https://av.libreboot.org/d945gclf/20160923_141814.jpg){width="50%" height="50%"}\ -Now remove the both coolers rotating them a bit, slowly, then clean both -silicons and both coolers (removing cmos battery first is recommended)\ -![](https://av.libreboot.org/d945gclf/20160923_141601.jpg){width="50%" height="50%"}\ -Put a little bit of non conductive thermal paste on both silicons (only -cpu silicon iis shown on that image)\ -![](https://av.libreboot.org/d945gclf/20160923_142031.jpg){width="50%" height="50%"}\ - -Before assembling new fan, some need new longer screws, make sure having -these (on the left is original one, too short for new fan)\ -![](https://av.libreboot.org/d945gclf/20160923_141659.jpg){width="50%" height="50%"}\ -After that, assemble your new fan into CPU cooler\ -![](https://av.libreboot.org/d945gclf/20160923_141635.jpg){width="50%" height="50%"}\ -Finally assemle both coolers on both chips, do not forget put in the CPU -fan connector back, and you are done. diff --git a/site/docs/hardware/ga-g41m-es2l.md b/site/docs/hardware/ga-g41m-es2l.md deleted file mode 100644 index 3cf3e7e..0000000 --- a/site/docs/hardware/ga-g41m-es2l.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: Gigabyte GA-G41M-ES2L desktop board -... - -
-
-GA-G41M-ES2L -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Gigabyte | -| **Name** | GA-G41M-ES2L | -| **Released** | 2009 | -| **Chipset** | Intel G41 | -| **CPU** | Intel Core 2 Extreme/Quad/Duo, - Pentium Extreme/D/4 Extreme/4/Celeron | -| **Graphics** | Integrated | -| **Display** | None. | -| **Memory** | Up to 8GB (2x4GB DDR2-800) | -| **Architecture** | x86_64 | -| **Original boot firmware** | AWARD BIOS | -| **Intel ME/AMD PSP** | Present. Can be disabled | -| **Flash chip** | 2x8Mbit | - -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|----------------|---------------------------------------| -| **Internal flashing with original boot firmware** | W+ | -| **Display** | - | -| **Audio** | W+ | -| **RAM Init** | P+ | -| **External output** | P+ | -| **Display brightness** | - | - -| ***Payloads supported*** | | -|---------------------------|-------| -| **GRUB** | Slow! | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | -
-This is a desktop board using intel hardware (circa \~2009, ICH7 -southbridge, similar performance-wise to the ThinkPad X200. It can make -for quite a nifty desktop. Powered by libreboot. - -As of Libreboot release 20221214, only SeaBIOS payload is provided in ROMs -for this board. According to user reports, they work quite well. GRUB was -always buggy on this board, so it was removed from lbmk. - -IDE on the board is untested, but it might be possible to use a SATA HDD -using an IDE SATA adapter. The SATA ports do work, but it's IDE emulation. The -emulation is slow in DMA mode sia SeaBIOS, so SeaBIOS is configured to use PIO -mode on this board. This SeaBIOS configuration does not affect the Linux kernel. - -You need to set a custom MAC address in Linux for the NIC to work. -In /etc/network/interfaces on debian-based systems like Debian or -Devuan, this would be in the entry for your NIC:\ -hwaddress ether macaddressgoeshere - -Alternatively: - - cbfstool libreboot.rom extract -n rt8168-macaddress -f rt8168-macaddress - -Modify the MAC address in the file `rt8168-macaddress` and then: - - cbfstool libreboot.rom remove -n rt8168-macaddress - cbfstool libreboot.rom add -f rt8168-macaddress -n rt8168-macaddress -t raw - -Now you have a different MAC address hardcoded. In the above example, the ROM -image is named `libreboot.rom` for your board. You can find cbfstool -under `cbutils/` after running the following command -in the build system: - - ./update trees -d coreboot TREENAME - -You can learn more about using the build system, lbmk, here:\ -[libreboot build instructions](../build/) - -Flashing instructions can be found at -[../install/](../install/) - -RAM ---- - -**This board is very picky with RAM. If it doesn't boot, try an EHCI debug -dongle, serial usb adapter and null modem cable, or spkmodem, to get a -coreboot log to see if it passed raminit.** - -Kingston 8 GiB Kit KVR800D2N6/8G with Elpida Chips E2108ABSE-8G-E - -this is a 2x4GB setup and these work quite well, according to a user on IRC. - -Nanya NT2GT64U8HD0BY-AD with 2 GiB of NT5TU128M8DE-AD chips works too. - -Many other modules will probably work just fine, but raminit is very picky on -this board. Your mileage *will* fluctuate, wildly. diff --git a/site/docs/hardware/hwdumps/x200/biosdecode.err.log b/site/docs/hardware/hwdumps/x200/biosdecode.err.log deleted file mode 100644 index e69de29..0000000 diff --git a/site/docs/hardware/hwdumps/x200/biosdecode.log b/site/docs/hardware/hwdumps/x200/biosdecode.log deleted file mode 100644 index bfeaba3..0000000 --- a/site/docs/hardware/hwdumps/x200/biosdecode.log +++ /dev/null @@ -1,24 +0,0 @@ -# biosdecode 2.12 -VPD present. - BIOS Build ID: 6DET65WW - Box Serial Number: L3AAR0B - Motherboard Serial Number: 1ZFDS89N4DD - Machine Type/Model: 7459GW4 -SMBIOS 2.4 present. - Structure Table Length: 2464 bytes - Structure Table Address: 0x000E0010 - Number Of Structures: 68 - Maximum Structure Size: 120 bytes -BIOS32 Service Directory present. - Revision: 0 - Calling Interface Address: 0x000FDC80 -ACPI 2.0 present. - OEM Identifier: LENOVO - RSD Table 32-bit Address: 0x79B5B843 - XSD Table 64-bit Address: 0x0000000079B5B8AB -PNP BIOS 1.0 present. - Event Notification: Not Supported - Real Mode 16-bit Code Address: E2CA:1868 - Real Mode 16-bit Data Address: 0040:0000 - 16-bit Protected Mode Code Address: 0x000F97BD - 16-bit Protected Mode Data Address: 0x00000400 diff --git a/site/docs/hardware/hwdumps/x200/codec#0 b/site/docs/hardware/hwdumps/x200/codec#0 deleted file mode 100644 index 2b9d6f3..0000000 --- a/site/docs/hardware/hwdumps/x200/codec#0 +++ /dev/null @@ -1,208 +0,0 @@ -Codec: Conexant CX20561 (Hermosa) -Address: 0 -AFG Function Id: 0x1 (unsol 1) -MFG Function Id: 0x2 (unsol 1) -Vendor Id: 0x14f15051 -Subsystem Id: 0x17aa20ff -Revision Id: 0x100000 -Modem Function Group: 0x2 -Default PCM: - rates [0x160]: 44100 48000 96000 - bits [0xe]: 16 20 24 - formats [0x1]: PCM -Default Amp-In caps: N/A -Default Amp-Out caps: N/A -State of AFG node 0x01: - Power states: D0 D1 D2 D3 CLKSTOP - Power: setting=D0, actual=D0 -GPIO: io=4, o=0, i=0, unsolicited=1, wake=0 - IO[0]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 - IO[1]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 - IO[2]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 - IO[3]: enable=0, dir=0, wake=0, sticky=0, data=0, unsol=0 -Node 0x10 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L - Control: name="Speaker Playback Volume", index=0, device=0 - ControlAmp: chs=3, dir=Out, idx=0, ofs=0 - Control: name="Speaker Playback Switch", index=0, device=0 - ControlAmp: chs=3, dir=Out, idx=0, ofs=0 - Device: name="CX20561 Analog", type="Audio", device=0 - Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=0 - Amp-Out vals: [0x4a 0x4a] - Converter: stream=8, channel=0 - PCM: - rates [0x560]: 44100 48000 96000 192000 - bits [0xe]: 16 20 24 - formats [0x1]: PCM - Power states: D0 D1 D2 D3 - Power: setting=D0, actual=D0 -Node 0x11 [Audio Output] wcaps 0xc1d: Stereo Amp-Out R/L - Control: name="Headphone Playback Volume", index=0, device=0 - ControlAmp: chs=3, dir=Out, idx=0, ofs=0 - Control: name="Headphone Playback Switch", index=0, device=0 - ControlAmp: chs=3, dir=Out, idx=0, ofs=0 - Amp-Out caps: ofs=0x4a, nsteps=0x4a, stepsize=0x03, mute=0 - Amp-Out vals: [0x4a 0x4a] - Converter: stream=8, channel=0 - PCM: - rates [0x560]: 44100 48000 96000 192000 - bits [0xe]: 16 20 24 - formats [0x1]: PCM - Power states: D0 D1 D2 D3 - Power: setting=D0, actual=D0 -Node 0x12 [Audio Output] wcaps 0x211: Stereo Digital - Control: name="IEC958 Playback Con Mask", index=0, device=0 - Control: name="IEC958 Playback Pro Mask", index=0, device=0 - Control: name="IEC958 Playback Default", index=0, device=0 - Control: name="IEC958 Playback Switch", index=0, device=0 - Control: name="IEC958 Default PCM Playback Switch", index=0, device=0 - Device: name="CX20561 Digital", type="SPDIF", device=1 - Converter: stream=8, channel=0 - Digital: - Digital category: 0x0 - IEC Coding Type: 0x0 - PCM: - rates [0x160]: 44100 48000 96000 - bits [0xe]: 16 20 24 - formats [0x5]: PCM AC3 -Node 0x13 [Beep Generator Widget] wcaps 0x70000c: Mono Amp-Out - Control: name="Beep Playback Volume", index=0, device=0 - ControlAmp: chs=1, dir=Out, idx=0, ofs=0 - Control: name="Beep Playback Switch", index=0, device=0 - ControlAmp: chs=1, dir=Out, idx=0, ofs=0 - Amp-Out caps: ofs=0x03, nsteps=0x03, stepsize=0x17, mute=0 - Amp-Out vals: [0x00] -Node 0x14 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L - Device: name="CX20561 Analog", type="Audio", device=0 - Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=0 - Amp-In vals: [0x50 0x50] [0x50 0x50] - Converter: stream=4, channel=0 - SDI-Select: 0 - PCM: - rates [0x160]: 44100 48000 96000 - bits [0xe]: 16 20 24 - formats [0x1]: PCM - Power states: D0 D1 D2 D3 - Power: setting=D0, actual=D0 - Connection: 2 - 0x1d* 0x17 -Node 0x15 [Audio Input] wcaps 0x100d1b: Stereo Amp-In R/L - Control: name="Capture Volume", index=0, device=0 - ControlAmp: chs=3, dir=In, idx=1, ofs=0 - Amp-In caps: ofs=0x4a, nsteps=0x50, stepsize=0x03, mute=0 - Amp-In vals: [0x50 0x50] - Converter: stream=0, channel=0 - SDI-Select: 0 - PCM: - rates [0x160]: 44100 48000 96000 - bits [0xe]: 16 20 24 - formats [0x1]: PCM - Power states: D0 D1 D2 D3 - Power: setting=D0, actual=D0 - Connection: 1 - 0x18 -Node 0x16 [Pin Complex] wcaps 0x400581: Stereo - Control: name="Headphone Jack", index=0, device=0 - Pincap 0x0000001c: OUT HP Detect - Pin Default 0x042140f0: [Jack] HP Out at Ext Right - Conn = 1/8, Color = Green - DefAssociation = 0xf, Sequence = 0x0 - Pin-ctls: 0xc0: OUT HP - Unsolicited: tag=02, enabled=1 - Power states: D0 D1 D2 D3 - Power: setting=D0, actual=D0 - Connection: 2 - 0x10 0x11* -Node 0x17 [Pin Complex] wcaps 0x40048b: Stereo Amp-In - Control: name="Dock Mic Boost Volume", index=0, device=0 - ControlAmp: chs=3, dir=In, idx=0, ofs=0 - Control: name="Dock Mic Jack", index=0, device=0 - Amp-In caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 - Amp-In vals: [0x00 0x00] - Pincap 0x00001224: IN Detect - Vref caps: 50 80 - Pin Default 0x61a190f0: [N/A] Mic at Sep Rear - Conn = 1/8, Color = Pink - DefAssociation = 0xf, Sequence = 0x0 - Pin-ctls: 0x24: IN VREF_80 - Unsolicited: tag=03, enabled=1 - Power states: D0 D1 D2 D3 - Power: setting=D0, actual=D0 -Node 0x18 [Pin Complex] wcaps 0x40048b: Stereo Amp-In - Control: name="Mic Boost Volume", index=0, device=0 - ControlAmp: chs=3, dir=In, idx=0, ofs=0 - Control: name="Mic Jack", index=0, device=0 - Amp-In caps: ofs=0x00, nsteps=0x04, stepsize=0x27, mute=0 - Amp-In vals: [0x00 0x00] - Pincap 0x00001224: IN Detect - Vref caps: 50 80 - Pin Default 0x04a190f0: [Jack] Mic at Ext Right - Conn = 1/8, Color = Pink - DefAssociation = 0xf, Sequence = 0x0 - Pin-ctls: 0x24: IN VREF_80 - Unsolicited: tag=04, enabled=1 - Power states: D0 D1 D2 D3 - Power: setting=D0, actual=D0 -Node 0x19 [Pin Complex] wcaps 0x400581: Stereo - Control: name="Dock Headphone Jack", index=0, device=0 - Pincap 0x00000014: OUT Detect - Pin Default 0x612140f0: [N/A] HP Out at Sep Rear - Conn = 1/8, Color = Green - DefAssociation = 0xf, Sequence = 0x0 - Pin-ctls: 0x40: OUT - Unsolicited: tag=01, enabled=1 - Power states: D0 D1 D2 D3 - Power: setting=D0, actual=D0 - Connection: 2 - 0x10 0x11* -Node 0x1a [Pin Complex] wcaps 0x400501: Stereo - Control: name="Speaker Phantom Jack", index=0, device=0 - Pincap 0x00010010: OUT EAPD - EAPD 0x2: EAPD - Pin Default 0x901701f0: [Fixed] Speaker at Int N/A - Conn = Analog, Color = Unknown - DefAssociation = 0xf, Sequence = 0x0 - Misc = NO_PRESENCE - Pin-ctls: 0x40: OUT - Power states: D0 D1 D2 D3 - Power: setting=D0, actual=D0 - Connection: 2 - 0x10* 0x11 -Node 0x1b [Pin Complex] wcaps 0x400500: Mono - Pincap 0x00010010: OUT EAPD - EAPD 0x2: EAPD - Pin Default 0x40f001f0: [N/A] Other at Ext N/A - Conn = Unknown, Color = Unknown - DefAssociation = 0xf, Sequence = 0x0 - Misc = NO_PRESENCE - Pin-ctls: 0x40: OUT - Power states: D0 D1 D2 D3 - Power: setting=D0, actual=D0 - Connection: 2 - 0x10* 0x11 -Node 0x1c [Pin Complex] wcaps 0x400701: Stereo Digital - Control: name="SPDIF Phantom Jack", index=0, device=0 - Pincap 0x00000010: OUT - Pin Default 0x40f001f0: [N/A] Other at Ext N/A - Conn = Unknown, Color = Unknown - DefAssociation = 0xf, Sequence = 0x0 - Misc = NO_PRESENCE - Pin-ctls: 0x40: OUT - Power states: D0 D1 D2 D3 - Power: setting=D0, actual=D0 - Connection: 1 - 0x12 -Node 0x1d [Pin Complex] wcaps 0x40040b: Stereo Amp-In - Control: name="Internal Mic Boost Volume", index=0, device=0 - ControlAmp: chs=3, dir=In, idx=0, ofs=0 - Control: name="Internal Mic Phantom Jack", index=0, device=0 - Amp-In caps: ofs=0x00, nsteps=0x04, stepsize=0x2f, mute=0 - Amp-In vals: [0x00 0x00] - Pincap 0x00000020: IN - Pin Default 0x90a601f0: [Fixed] Mic at Int N/A - Conn = Digital, Color = Unknown - DefAssociation = 0xf, Sequence = 0x0 - Misc = NO_PRESENCE - Pin-ctls: 0x20: IN - Power states: D0 D1 D2 D3 - Power: setting=D0, actual=D0 -Node 0x1e [Vendor Defined Widget] wcaps 0xf00000: Mono diff --git a/site/docs/hardware/hwdumps/x200/cpuinfo.err.log b/site/docs/hardware/hwdumps/x200/cpuinfo.err.log deleted file mode 100644 index e69de29..0000000 diff --git a/site/docs/hardware/hwdumps/x200/cpuinfo.log b/site/docs/hardware/hwdumps/x200/cpuinfo.log deleted file mode 100644 index 8b01059..0000000 --- a/site/docs/hardware/hwdumps/x200/cpuinfo.log +++ /dev/null @@ -1,52 +0,0 @@ -processor : 0 -vendor_id : GenuineIntel -cpu family : 6 -model : 23 -model name : Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz -stepping : 6 -microcode : 0x60c -cpu MHz : 800.000 -cache size : 3072 KB -physical id : 0 -siblings : 2 -core id : 0 -cpu cores : 2 -apicid : 0 -initial apicid : 0 -fpu : yes -fpu_exception : yes -cpuid level : 10 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dtherm tpr_shadow vnmi flexpriority -bogomips : 4787.97 -clflush size : 64 -cache_alignment : 64 -address sizes : 36 bits physical, 48 bits virtual -power management: - -processor : 1 -vendor_id : GenuineIntel -cpu family : 6 -model : 23 -model name : Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz -stepping : 6 -microcode : 0x60c -cpu MHz : 1600.000 -cache size : 3072 KB -physical id : 0 -siblings : 2 -core id : 1 -cpu cores : 2 -apicid : 1 -initial apicid : 1 -fpu : yes -fpu_exception : yes -cpuid level : 10 -wp : yes -flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe syscall nx lm constant_tsc arch_perfmon pebs bts nopl aperfmperf pni dtes64 monitor ds_cpl vmx smx est tm2 ssse3 cx16 xtpr pdcm sse4_1 lahf_lm dtherm tpr_shadow vnmi flexpriority -bogomips : 4787.97 -clflush size : 64 -cache_alignment : 64 -address sizes : 36 bits physical, 48 bits virtual -power management: - diff --git a/site/docs/hardware/hwdumps/x200/dmesg.err.log b/site/docs/hardware/hwdumps/x200/dmesg.err.log deleted file mode 100644 index e69de29..0000000 diff --git a/site/docs/hardware/hwdumps/x200/dmesg.log b/site/docs/hardware/hwdumps/x200/dmesg.log deleted file mode 100644 index 64eb580..0000000 --- a/site/docs/hardware/hwdumps/x200/dmesg.log +++ /dev/null @@ -1,1066 +0,0 @@ -[ 0.000000] Initializing cgroup subsys cpuset -[ 0.000000] Initializing cgroup subsys cpu -[ 0.000000] Initializing cgroup subsys cpuacct -[ 0.000000] Linux version 3.13.0-39-lowlatency (root@devel.trisquel.info) (gcc version 4.8.2 (Ubuntu 4.8.2-19ubuntu1) ) #66+7.0trisquel2 SMP PREEMPT Wed Oct 29 17:10:10 UTC 2014 (Ubuntu 3.13.0-39.66+7.0trisquel2-lowlatency 3.13.11.8-gnu) -[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-3.13.0-39-lowlatency root=UUID=097336a2-7389-4897-a7e8-1f43e91aae96 ro nomdmonddf nomdmonisw nomdmonddf nomdmonisw -[ 0.000000] KERNEL supported cpus: -[ 0.000000] Intel GenuineIntel -[ 0.000000] AMD AuthenticAMD -[ 0.000000] Centaur CentaurHauls -[ 0.000000] Disabled fast string operations -[ 0.000000] e820: BIOS-provided physical RAM map: -[ 0.000000] BIOS-e820: [mem 0x0000000000000000-0x000000000009ebff] usable -[ 0.000000] BIOS-e820: [mem 0x000000000009ec00-0x000000000009ffff] reserved -[ 0.000000] BIOS-e820: [mem 0x00000000000dc000-0x00000000000fffff] reserved -[ 0.000000] BIOS-e820: [mem 0x0000000000100000-0x00000000796a0fff] usable -[ 0.000000] BIOS-e820: [mem 0x00000000796a1000-0x00000000796a6fff] reserved -[ 0.000000] BIOS-e820: [mem 0x00000000796a7000-0x00000000797b6fff] usable -[ 0.000000] BIOS-e820: [mem 0x00000000797b7000-0x000000007980efff] reserved -[ 0.000000] BIOS-e820: [mem 0x000000007980f000-0x00000000798c6fff] usable -[ 0.000000] BIOS-e820: [mem 0x00000000798c7000-0x00000000798d1fff] ACPI NVS -[ 0.000000] BIOS-e820: [mem 0x00000000798d2000-0x00000000798d4fff] ACPI data -[ 0.000000] BIOS-e820: [mem 0x00000000798d5000-0x00000000798d8fff] reserved -[ 0.000000] BIOS-e820: [mem 0x00000000798d9000-0x00000000798dcfff] ACPI NVS -[ 0.000000] BIOS-e820: [mem 0x00000000798dd000-0x00000000798dffff] reserved -[ 0.000000] BIOS-e820: [mem 0x00000000798e0000-0x0000000079906fff] ACPI NVS -[ 0.000000] BIOS-e820: [mem 0x0000000079907000-0x0000000079907fff] ACPI data -[ 0.000000] BIOS-e820: [mem 0x0000000079908000-0x0000000079b0efff] reserved -[ 0.000000] BIOS-e820: [mem 0x0000000079b0f000-0x0000000079b9efff] ACPI NVS -[ 0.000000] BIOS-e820: [mem 0x0000000079b9f000-0x0000000079bfefff] ACPI data -[ 0.000000] BIOS-e820: [mem 0x0000000079bff000-0x0000000079bfffff] usable -[ 0.000000] BIOS-e820: [mem 0x0000000079c00000-0x000000007bffffff] reserved -[ 0.000000] BIOS-e820: [mem 0x00000000e0000000-0x00000000efffffff] reserved -[ 0.000000] BIOS-e820: [mem 0x00000000fec00000-0x00000000fec0ffff] reserved -[ 0.000000] BIOS-e820: [mem 0x00000000fed00000-0x00000000fed003ff] reserved -[ 0.000000] BIOS-e820: [mem 0x00000000fed10000-0x00000000fed13fff] reserved -[ 0.000000] BIOS-e820: [mem 0x00000000fed18000-0x00000000fed19fff] reserved -[ 0.000000] BIOS-e820: [mem 0x00000000fed1c000-0x00000000fed8ffff] reserved -[ 0.000000] BIOS-e820: [mem 0x00000000fee00000-0x00000000fee00fff] reserved -[ 0.000000] BIOS-e820: [mem 0x00000000ff800000-0x00000000ffffffff] reserved -[ 0.000000] NX (Execute Disable) protection: active -[ 0.000000] SMBIOS 2.4 present. -[ 0.000000] DMI: LENOVO 7459GW4/7459GW4, BIOS 6DET65WW (3.15 ) 08/24/2010 -[ 0.000000] e820: update [mem 0x00000000-0x00000fff] usable ==> reserved -[ 0.000000] e820: remove [mem 0x000a0000-0x000fffff] usable -[ 0.000000] No AGP bridge found -[ 0.000000] e820: last_pfn = 0x79c00 max_arch_pfn = 0x400000000 -[ 0.000000] MTRR default type: uncachable -[ 0.000000] MTRR fixed ranges enabled: -[ 0.000000] 00000-9FFFF write-back -[ 0.000000] A0000-BFFFF uncachable -[ 0.000000] C0000-D3FFF write-protect -[ 0.000000] D4000-DBFFF uncachable -[ 0.000000] DC000-FFFFF write-protect -[ 0.000000] MTRR variable ranges enabled: -[ 0.000000] 0 base 07D000000 mask FFF000000 uncachable -[ 0.000000] 1 base 07E000000 mask FFE000000 uncachable -[ 0.000000] 2 base 000000000 mask F80000000 write-back -[ 0.000000] 3 base 079E00000 mask FFFE00000 uncachable -[ 0.000000] 4 disabled -[ 0.000000] 5 disabled -[ 0.000000] 6 disabled -[ 0.000000] x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 -[ 0.000000] original variable MTRRs -[ 0.000000] reg 0, base: 2000MB, range: 16MB, type UC -[ 0.000000] reg 1, base: 2016MB, range: 32MB, type UC -[ 0.000000] reg 2, base: 0GB, range: 2GB, type WB -[ 0.000000] reg 3, base: 1950MB, range: 2MB, type UC -[ 0.000000] total RAM covered: 1998M -[ 0.000000] gran_size: 64K chunk_size: 64K num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 64K chunk_size: 128K num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 64K chunk_size: 256K num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 64K chunk_size: 512K num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 64K chunk_size: 1M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 64K chunk_size: 2M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 64K chunk_size: 4M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 64K chunk_size: 8M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 64K chunk_size: 16M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 64K chunk_size: 32M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 64K chunk_size: 64M num_reg: 7 lose cover RAM: 0G -[ 0.000000] gran_size: 64K chunk_size: 128M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 64K chunk_size: 256M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 64K chunk_size: 512M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 64K chunk_size: 1G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 64K chunk_size: 2G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 128K chunk_size: 128K num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 128K chunk_size: 256K num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 128K chunk_size: 512K num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 128K chunk_size: 1M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 128K chunk_size: 2M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 128K chunk_size: 4M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 128K chunk_size: 8M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 128K chunk_size: 16M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 128K chunk_size: 32M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 128K chunk_size: 64M num_reg: 7 lose cover RAM: 0G -[ 0.000000] gran_size: 128K chunk_size: 128M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 128K chunk_size: 256M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 128K chunk_size: 512M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 128K chunk_size: 1G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 128K chunk_size: 2G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 256K chunk_size: 256K num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 256K chunk_size: 512K num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 256K chunk_size: 1M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 256K chunk_size: 2M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 256K chunk_size: 4M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 256K chunk_size: 8M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 256K chunk_size: 16M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 256K chunk_size: 32M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 256K chunk_size: 64M num_reg: 7 lose cover RAM: 0G -[ 0.000000] gran_size: 256K chunk_size: 128M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 256K chunk_size: 256M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 256K chunk_size: 512M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 256K chunk_size: 1G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 256K chunk_size: 2G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 512K chunk_size: 512K num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 512K chunk_size: 1M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 512K chunk_size: 2M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 512K chunk_size: 4M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 512K chunk_size: 8M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 512K chunk_size: 16M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 512K chunk_size: 32M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 512K chunk_size: 64M num_reg: 7 lose cover RAM: 0G -[ 0.000000] gran_size: 512K chunk_size: 128M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 512K chunk_size: 256M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 512K chunk_size: 512M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 512K chunk_size: 1G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 512K chunk_size: 2G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 1M chunk_size: 1M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 1M chunk_size: 2M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 1M chunk_size: 4M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 1M chunk_size: 8M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 1M chunk_size: 16M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 1M chunk_size: 32M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 1M chunk_size: 64M num_reg: 7 lose cover RAM: 0G -[ 0.000000] gran_size: 1M chunk_size: 128M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 1M chunk_size: 256M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 1M chunk_size: 512M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 1M chunk_size: 1G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 1M chunk_size: 2G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 2M chunk_size: 2M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 2M chunk_size: 4M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 2M chunk_size: 8M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 2M chunk_size: 16M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 2M chunk_size: 32M num_reg: 7 lose cover RAM: 16M -[ 0.000000] gran_size: 2M chunk_size: 64M num_reg: 7 lose cover RAM: 0G -[ 0.000000] gran_size: 2M chunk_size: 128M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 2M chunk_size: 256M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 2M chunk_size: 512M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 2M chunk_size: 1G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 2M chunk_size: 2G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 4M chunk_size: 4M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 4M chunk_size: 8M num_reg: 7 lose cover RAM: 18M -[ 0.000000] gran_size: 4M chunk_size: 16M num_reg: 7 lose cover RAM: 18M -[ 0.000000] gran_size: 4M chunk_size: 32M num_reg: 7 lose cover RAM: 18M -[ 0.000000] gran_size: 4M chunk_size: 64M num_reg: 7 lose cover RAM: 2M -[ 0.000000] gran_size: 4M chunk_size: 128M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 4M chunk_size: 256M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 4M chunk_size: 512M num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 4M chunk_size: 1G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 4M chunk_size: 2G num_reg: 7 lose cover RAM: 50M -[ 0.000000] gran_size: 8M chunk_size: 8M num_reg: 7 lose cover RAM: 22M -[ 0.000000] gran_size: 8M chunk_size: 16M num_reg: 7 lose cover RAM: 22M -[ 0.000000] gran_size: 8M chunk_size: 32M num_reg: 7 lose cover RAM: 22M -[ 0.000000] gran_size: 8M chunk_size: 64M num_reg: 7 lose cover RAM: 6M -[ 0.000000] gran_size: 8M chunk_size: 128M num_reg: 7 lose cover RAM: 22M -[ 0.000000] gran_size: 8M chunk_size: 256M num_reg: 7 lose cover RAM: 22M -[ 0.000000] gran_size: 8M chunk_size: 512M num_reg: 7 lose cover RAM: 22M -[ 0.000000] gran_size: 8M chunk_size: 1G num_reg: 7 lose cover RAM: 22M -[ 0.000000] gran_size: 8M chunk_size: 2G num_reg: 7 lose cover RAM: 22M -[ 0.000000] gran_size: 16M chunk_size: 16M num_reg: 7 lose cover RAM: 14M -[ 0.000000] gran_size: 16M chunk_size: 32M num_reg: 7 lose cover RAM: 30M -[ 0.000000] gran_size: 16M chunk_size: 64M num_reg: 7 lose cover RAM: 14M -[ 0.000000] gran_size: 16M chunk_size: 128M num_reg: 7 lose cover RAM: 14M -[ 0.000000] gran_size: 16M chunk_size: 256M num_reg: 7 lose cover RAM: 14M -[ 0.000000] gran_size: 16M chunk_size: 512M num_reg: 7 lose cover RAM: 14M -[ 0.000000] gran_size: 16M chunk_size: 1G num_reg: 7 lose cover RAM: 14M -[ 0.000000] gran_size: 16M chunk_size: 2G num_reg: 7 lose cover RAM: 14M -[ 0.000000] gran_size: 32M chunk_size: 32M num_reg: 5 lose cover RAM: 46M -[ 0.000000] gran_size: 32M chunk_size: 64M num_reg: 5 lose cover RAM: 46M -[ 0.000000] gran_size: 32M chunk_size: 128M num_reg: 5 lose cover RAM: 46M -[ 0.000000] gran_size: 32M chunk_size: 256M num_reg: 5 lose cover RAM: 46M -[ 0.000000] gran_size: 32M chunk_size: 512M num_reg: 5 lose cover RAM: 46M -[ 0.000000] gran_size: 32M chunk_size: 1G num_reg: 5 lose cover RAM: 46M -[ 0.000000] gran_size: 32M chunk_size: 2G num_reg: 5 lose cover RAM: 46M -[ 0.000000] gran_size: 64M chunk_size: 64M num_reg: 4 lose cover RAM: 78M -[ 0.000000] gran_size: 64M chunk_size: 128M num_reg: 4 lose cover RAM: 78M -[ 0.000000] gran_size: 64M chunk_size: 256M num_reg: 4 lose cover RAM: 78M -[ 0.000000] gran_size: 64M chunk_size: 512M num_reg: 4 lose cover RAM: 78M -[ 0.000000] gran_size: 64M chunk_size: 1G num_reg: 4 lose cover RAM: 78M -[ 0.000000] gran_size: 64M chunk_size: 2G num_reg: 4 lose cover RAM: 78M -[ 0.000000] gran_size: 128M chunk_size: 128M num_reg: 4 lose cover RAM: 78M -[ 0.000000] gran_size: 128M chunk_size: 256M num_reg: 4 lose cover RAM: 78M -[ 0.000000] gran_size: 128M chunk_size: 512M num_reg: 4 lose cover RAM: 78M -[ 0.000000] gran_size: 128M chunk_size: 1G num_reg: 4 lose cover RAM: 78M -[ 0.000000] gran_size: 128M chunk_size: 2G num_reg: 4 lose cover RAM: 78M -[ 0.000000] gran_size: 256M chunk_size: 256M num_reg: 3 lose cover RAM: 206M -[ 0.000000] gran_size: 256M chunk_size: 512M num_reg: 3 lose cover RAM: 206M -[ 0.000000] gran_size: 256M chunk_size: 1G num_reg: 3 lose cover RAM: 206M -[ 0.000000] gran_size: 256M chunk_size: 2G num_reg: 3 lose cover RAM: 206M -[ 0.000000] gran_size: 512M chunk_size: 512M num_reg: 2 lose cover RAM: 462M -[ 0.000000] gran_size: 512M chunk_size: 1G num_reg: 2 lose cover RAM: 462M -[ 0.000000] gran_size: 512M chunk_size: 2G num_reg: 2 lose cover RAM: 462M -[ 0.000000] gran_size: 1G chunk_size: 1G num_reg: 1 lose cover RAM: 974M -[ 0.000000] gran_size: 1G chunk_size: 2G num_reg: 1 lose cover RAM: 974M -[ 0.000000] gran_size: 2G chunk_size: 2G num_reg: 0 lose cover RAM: 1998M -[ 0.000000] mtrr_cleanup: can not find optimal value -[ 0.000000] please specify mtrr_gran_size/mtrr_chunk_size -[ 0.000000] e820: update [mem 0x79e00000-0x79ffffff] usable ==> reserved -[ 0.000000] found SMP MP-table at [mem 0x000f72d0-0x000f72df] mapped at [ffff8800000f72d0] -[ 0.000000] Scanning 1 areas for low memory corruption -[ 0.000000] Base memory trampoline at [ffff880000098000] 98000 size 24576 -[ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff] -[ 0.000000] [mem 0x00000000-0x000fffff] page 4k -[ 0.000000] BRK [0x01fd9000, 0x01fd9fff] PGTABLE -[ 0.000000] BRK [0x01fda000, 0x01fdafff] PGTABLE -[ 0.000000] BRK [0x01fdb000, 0x01fdbfff] PGTABLE -[ 0.000000] init_memory_mapping: [mem 0x79400000-0x795fffff] -[ 0.000000] [mem 0x79400000-0x795fffff] page 2M -[ 0.000000] BRK [0x01fdc000, 0x01fdcfff] PGTABLE -[ 0.000000] init_memory_mapping: [mem 0x78000000-0x793fffff] -[ 0.000000] [mem 0x78000000-0x793fffff] page 2M -[ 0.000000] init_memory_mapping: [mem 0x00100000-0x77ffffff] -[ 0.000000] [mem 0x00100000-0x001fffff] page 4k -[ 0.000000] [mem 0x00200000-0x77ffffff] page 2M -[ 0.000000] init_memory_mapping: [mem 0x79600000-0x796a0fff] -[ 0.000000] [mem 0x79600000-0x796a0fff] page 4k -[ 0.000000] BRK [0x01fdd000, 0x01fddfff] PGTABLE -[ 0.000000] init_memory_mapping: [mem 0x796a7000-0x797b6fff] -[ 0.000000] [mem 0x796a7000-0x797b6fff] page 4k -[ 0.000000] init_memory_mapping: [mem 0x7980f000-0x798c6fff] -[ 0.000000] [mem 0x7980f000-0x798c6fff] page 4k -[ 0.000000] BRK [0x01fde000, 0x01fdefff] PGTABLE -[ 0.000000] init_memory_mapping: [mem 0x79bff000-0x79bfffff] -[ 0.000000] [mem 0x79bff000-0x79bfffff] page 4k -[ 0.000000] RAMDISK: [mem 0x35314000-0x36981fff] -[ 0.000000] ACPI: RSDP 00000000000f7290 000024 (v02 LENOVO) -[ 0.000000] ACPI: XSDT 0000000079b5b8ab 00008C (v01 LENOVO TP-6D 00003150 LTP 00000000) -[ 0.000000] ACPI: FACP 0000000079b5ba00 0000F4 (v03 LENOVO TP-6D 00003150 LNVO 00000001) -[ 0.000000] ACPI: DSDT 0000000079b5bdf4 00DF28 (v01 LENOVO TP-6D 00003150 MSFT 03000000) -[ 0.000000] ACPI: FACS 0000000079b8e000 000040 -[ 0.000000] ACPI: SSDT 0000000079b5bbb4 000240 (v01 LENOVO TP-6D 00003150 MSFT 03000000) -[ 0.000000] ACPI: ECDT 0000000079b69d1c 000052 (v01 LENOVO TP-6D 00003150 LNVO 00000001) -[ 0.000000] ACPI: APIC 0000000079b69d6e 000078 (v01 LENOVO TP-6D 00003150 LNVO 00000001) -[ 0.000000] ACPI: MCFG 0000000079b69de6 00003C (v01 LENOVO TP-6D 00003150 LNVO 00000001) -[ 0.000000] ACPI: HPET 0000000079b69e22 000038 (v01 LENOVO TP-6D 00003150 LNVO 00000001) -[ 0.000000] ACPI: BOOT 0000000079b69f38 000028 (v01 LENOVO TP-6D 00003150 LTP 00000001) -[ 0.000000] ACPI: ASF! 0000000079b69f60 0000A0 (v16 LENOVO TP-6D 00003150 PTL 00000001) -[ 0.000000] ACPI: SSDT 0000000079b8d1ea 000578 (v01 LENOVO TP-6D 00003150 INTL 20050513) -[ 0.000000] ACPI: TCPA 0000000079907000 000032 (v00 00000000 00000000) -[ 0.000000] ACPI: SSDT 00000000798d4000 000655 (v01 PmRef CpuPm 00003000 INTL 20050624) -[ 0.000000] ACPI: SSDT 00000000798d3000 000274 (v01 PmRef Cpu0Tst 00003000 INTL 20050624) -[ 0.000000] ACPI: SSDT 00000000798d2000 000242 (v01 PmRef ApTst 00003000 INTL 20050624) -[ 0.000000] ACPI: Local APIC address 0xfee00000 -[ 0.000000] No NUMA configuration found -[ 0.000000] Faking a node at [mem 0x0000000000000000-0x0000000079bfffff] -[ 0.000000] Initmem setup node 0 [mem 0x00000000-0x79bfffff] -[ 0.000000] NODE_DATA [mem 0x798c1000-0x798c5fff] -[ 0.000000] [ffffea0000000000-ffffea0001ffffff] PMD -> [ffff880076e00000-ffff880078dfffff] on node 0 -[ 0.000000] Zone ranges: -[ 0.000000] DMA [mem 0x00001000-0x00ffffff] -[ 0.000000] DMA32 [mem 0x01000000-0xffffffff] -[ 0.000000] Normal empty -[ 0.000000] Movable zone start for each node -[ 0.000000] Early memory node ranges -[ 0.000000] node 0: [mem 0x00001000-0x0009dfff] -[ 0.000000] node 0: [mem 0x00100000-0x796a0fff] -[ 0.000000] node 0: [mem 0x796a7000-0x797b6fff] -[ 0.000000] node 0: [mem 0x7980f000-0x798c6fff] -[ 0.000000] node 0: [mem 0x79bff000-0x79bfffff] -[ 0.000000] On node 0 totalpages: 497671 -[ 0.000000] DMA zone: 64 pages used for memmap -[ 0.000000] DMA zone: 21 pages reserved -[ 0.000000] DMA zone: 3997 pages, LIFO batch:0 -[ 0.000000] DMA32 zone: 7728 pages used for memmap -[ 0.000000] DMA32 zone: 493674 pages, LIFO batch:31 -[ 0.000000] ACPI: PM-Timer IO Port: 0x1008 -[ 0.000000] ACPI: Local APIC address 0xfee00000 -[ 0.000000] ACPI: LAPIC (acpi_id[0x00] lapic_id[0x00] enabled) -[ 0.000000] ACPI: LAPIC (acpi_id[0x01] lapic_id[0x01] enabled) -[ 0.000000] ACPI: LAPIC (acpi_id[0x02] lapic_id[0x02] disabled) -[ 0.000000] ACPI: LAPIC (acpi_id[0x03] lapic_id[0x03] disabled) -[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x00] high edge lint[0x1]) -[ 0.000000] ACPI: LAPIC_NMI (acpi_id[0x01] high edge lint[0x1]) -[ 0.000000] ACPI: IOAPIC (id[0x01] address[0xfec00000] gsi_base[0]) -[ 0.000000] IOAPIC[0]: apic_id 1, version 32, address 0xfec00000, GSI 0-23 -[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 0 global_irq 2 dfl dfl) -[ 0.000000] ACPI: INT_SRC_OVR (bus 0 bus_irq 9 global_irq 9 high level) -[ 0.000000] ACPI: IRQ0 used by override. -[ 0.000000] ACPI: IRQ2 used by override. -[ 0.000000] ACPI: IRQ9 used by override. -[ 0.000000] Using ACPI (MADT) for SMP configuration information -[ 0.000000] ACPI: HPET id: 0x8086a201 base: 0xfed00000 -[ 0.000000] smpboot: Allowing 4 CPUs, 2 hotplug CPUs -[ 0.000000] nr_irqs_gsi: 40 -[ 0.000000] PM: Registered nosave memory: [mem 0x0009e000-0x0009efff] -[ 0.000000] PM: Registered nosave memory: [mem 0x0009f000-0x0009ffff] -[ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000dbfff] -[ 0.000000] PM: Registered nosave memory: [mem 0x000dc000-0x000fffff] -[ 0.000000] PM: Registered nosave memory: [mem 0x796a1000-0x796a6fff] -[ 0.000000] PM: Registered nosave memory: [mem 0x797b7000-0x7980efff] -[ 0.000000] PM: Registered nosave memory: [mem 0x798c7000-0x798d1fff] -[ 0.000000] PM: Registered nosave memory: [mem 0x798d2000-0x798d4fff] -[ 0.000000] PM: Registered nosave memory: [mem 0x798d5000-0x798d8fff] -[ 0.000000] PM: Registered nosave memory: [mem 0x798d9000-0x798dcfff] -[ 0.000000] PM: Registered nosave memory: [mem 0x798dd000-0x798dffff] -[ 0.000000] PM: Registered nosave memory: [mem 0x798e0000-0x79906fff] -[ 0.000000] PM: Registered nosave memory: [mem 0x79907000-0x79907fff] -[ 0.000000] PM: Registered nosave memory: [mem 0x79908000-0x79b0efff] -[ 0.000000] PM: Registered nosave memory: [mem 0x79b0f000-0x79b9efff] -[ 0.000000] PM: Registered nosave memory: [mem 0x79b9f000-0x79bfefff] -[ 0.000000] e820: [mem 0x7c000000-0xdfffffff] available for PCI devices -[ 0.000000] Booting paravirtualized kernel on bare hardware -[ 0.000000] setup_percpu: NR_CPUS:256 nr_cpumask_bits:256 nr_cpu_ids:4 nr_node_ids:1 -[ 0.000000] PERCPU: Embedded 29 pages/cpu @ffff880079400000 s86848 r8192 d23744 u524288 -[ 0.000000] pcpu-alloc: s86848 r8192 d23744 u524288 alloc=1*2097152 -[ 0.000000] pcpu-alloc: [0] 0 1 2 3 -[ 0.000000] Built 1 zonelists in Node order, mobility grouping on. Total pages: 489858 -[ 0.000000] Policy zone: DMA32 -[ 0.000000] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-3.13.0-39-lowlatency root=UUID=097336a2-7389-4897-a7e8-1f43e91aae96 ro nomdmonddf nomdmonisw nomdmonddf nomdmonisw -[ 0.000000] PID hash table entries: 4096 (order: 3, 32768 bytes) -[ 0.000000] Checking aperture... -[ 0.000000] No AGP bridge found -[ 0.000000] Calgary: detecting Calgary via BIOS EBDA area -[ 0.000000] Calgary: Unable to locate Rio Grande table in EBDA - bailing! -[ 0.000000] Memory: 1917872K/1990684K available (7418K kernel code, 1135K rwdata, 3420K rodata, 1324K init, 1444K bss, 72812K reserved) -[ 0.000000] SLUB: HWalign=64, Order=0-3, MinObjects=0, CPUs=4, Nodes=1 -[ 0.000000] Preemptible hierarchical RCU implementation. -[ 0.000000] RCU dyntick-idle grace-period acceleration is enabled. -[ 0.000000] Dump stacks of tasks blocking RCU-preempt GP. -[ 0.000000] RCU restricting CPUs from NR_CPUS=256 to nr_cpu_ids=4. -[ 0.000000] Offload RCU callbacks from all CPUs -[ 0.000000] Offload RCU callbacks from CPUs: 0-3. -[ 0.000000] NR_IRQS:16640 nr_irqs:712 16 -[ 0.000000] Console: colour VGA+ 80x25 -[ 0.000000] console [tty0] enabled -[ 0.000000] allocated 8388608 bytes of page_cgroup -[ 0.000000] please try 'cgroup_disable=memory' option if you don't want memory cgroups -[ 0.000000] hpet clockevent registered -[ 0.000000] tsc: Fast TSC calibration using PIT -[ 0.000000] tsc: Detected 2393.987 MHz processor -[ 0.001004] Calibrating delay loop (skipped), value calculated using timer frequency.. 4787.97 BogoMIPS (lpj=2393987) -[ 0.001099] pid_max: default: 32768 minimum: 301 -[ 0.001179] Security Framework initialized -[ 0.001251] AppArmor: AppArmor initialized -[ 0.001296] Yama: becoming mindful. -[ 0.001557] Dentry cache hash table entries: 262144 (order: 9, 2097152 bytes) -[ 0.002848] Inode-cache hash table entries: 131072 (order: 8, 1048576 bytes) -[ 0.003415] Mount-cache hash table entries: 4096 (order: 3, 32768 bytes) -[ 0.003468] Mountpoint-cache hash table entries: 4096 (order: 3, 32768 bytes) -[ 0.003789] Initializing cgroup subsys memory -[ 0.003844] Initializing cgroup subsys devices -[ 0.003891] Initializing cgroup subsys freezer -[ 0.003939] Initializing cgroup subsys blkio -[ 0.003986] Initializing cgroup subsys bfqio -[ 0.004005] Initializing cgroup subsys perf_event -[ 0.004053] Initializing cgroup subsys hugetlb -[ 0.004120] Disabled fast string operations -[ 0.004170] CPU: Physical Processor ID: 0 -[ 0.004216] CPU: Processor Core ID: 0 -[ 0.004262] mce: CPU supports 6 MCE banks -[ 0.004312] CPU0: Thermal monitoring enabled (TM2) -[ 0.004366] Last level iTLB entries: 4KB 128, 2MB 4, 4MB 4 -[ 0.004366] Last level dTLB entries: 4KB 256, 2MB 0, 4MB 32 -[ 0.004366] tlb_flushall_shift: -1 -[ 0.004516] Freeing SMP alternatives memory: 24K (ffffffff81e68000 - ffffffff81e6e000) -[ 0.006138] ACPI: Core revision 20131115 -[ 0.012497] ACPI: All ACPI Tables successfully acquired -[ 0.013011] ftrace: allocating 28647 entries in 112 pages -[ 0.022461] ..TIMER: vector=0x30 apic1=0 pin1=2 apic2=-1 pin2=-1 -[ 0.032521] smpboot: CPU0: Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz (fam: 06, model: 17, stepping: 06) -[ 0.033000] Performance Events: PEBS fmt0+, 4-deep LBR, Core2 events, Intel PMU driver. -[ 0.033000] ... version: 2 -[ 0.033000] ... bit width: 40 -[ 0.033000] ... generic registers: 2 -[ 0.033000] ... value mask: 000000ffffffffff -[ 0.033000] ... max period: 000000007fffffff -[ 0.033000] ... fixed-purpose events: 3 -[ 0.033000] ... event mask: 0000000700000003 -[ 0.041071] x86: Booting SMP configuration: -[ 0.039030] Disabled fast string operations -[ 0.053119] NMI watchdog: enabled on all CPUs, permanently consumes one hw-PMU counter. -[ 0.041119] .... node #0, CPUs: #1 -[ 0.053279] x86: Booted up 1 node, 2 CPUs -[ 0.053366] smpboot: Total of 2 processors activated (9575.94 BogoMIPS) -[ 0.054131] devtmpfs: initialized -[ 0.057653] EVM: security.selinux -[ 0.057699] EVM: security.SMACK64 -[ 0.057744] EVM: security.ima -[ 0.057788] EVM: security.capability -[ 0.058036] PM: Registering ACPI NVS region [mem 0x798c7000-0x798d1fff] (45056 bytes) -[ 0.058098] PM: Registering ACPI NVS region [mem 0x798d9000-0x798dcfff] (16384 bytes) -[ 0.058098] PM: Registering ACPI NVS region [mem 0x798e0000-0x79906fff] (159744 bytes) -[ 0.058098] PM: Registering ACPI NVS region [mem 0x79b0f000-0x79b9efff] (589824 bytes) -[ 0.059097] pinctrl core: initialized pinctrl subsystem -[ 0.059220] regulator-dummy: no parameters -[ 0.059299] RTC time: 6:48:55, date: 08/30/15 -[ 0.059386] NET: Registered protocol family 16 -[ 0.059557] cpuidle: using governor ladder -[ 0.059604] cpuidle: using governor menu -[ 0.059697] ACPI FADT declares the system doesn't support PCIe ASPM, so disable it -[ 0.059758] ACPI: bus type PCI registered -[ 0.059805] acpiphp: ACPI Hot Plug PCI Controller Driver version: 0.5 -[ 0.059912] PCI: MMCONFIG for domain 0000 [bus 00-3f] at [mem 0xe0000000-0xe3ffffff] (base 0xe0000000) -[ 0.059976] PCI: MMCONFIG at [mem 0xe0000000-0xe3ffffff] reserved in E820 -[ 0.067547] PCI: Using configuration type 1 for base access -[ 0.067698] mtrr: your CPUs had inconsistent variable MTRR settings -[ 0.067747] mtrr: probably your BIOS does not setup all CPUs. -[ 0.067795] mtrr: corrected configuration. -[ 0.069011] bio: create slab at 0 -[ 0.069081] ACPI: Added _OSI(Module Device) -[ 0.069129] ACPI: Added _OSI(Processor Device) -[ 0.069176] ACPI: Added _OSI(3.0 _SCP Extensions) -[ 0.069176] ACPI: Added _OSI(Processor Aggregator Device) -[ 0.071018] ACPI : EC: EC description table is found, configuring boot EC -[ 0.075408] [Firmware Bug]: ACPI: BIOS _OSI(Linux) query ignored -[ 0.082370] ACPI: SSDT 00000000798d7c20 0002C8 (v01 PmRef Cpu0Ist 00003000 INTL 20050624) -[ 0.083085] ACPI: Dynamic OEM Table Load: -[ 0.083193] ACPI: SSDT (null) 0002C8 (v01 PmRef Cpu0Ist 00003000 INTL 20050624) -[ 0.083433] ACPI: SSDT 00000000798d5020 00087A (v01 PmRef Cpu0Cst 00003001 INTL 20050624) -[ 0.083951] ACPI: Dynamic OEM Table Load: -[ 0.084045] ACPI: SSDT (null) 00087A (v01 PmRef Cpu0Cst 00003001 INTL 20050624) -[ 0.087198] ACPI: SSDT 00000000798d6ca0 0001CF (v01 PmRef ApIst 00003000 INTL 20050624) -[ 0.088064] ACPI: Dynamic OEM Table Load: -[ 0.088171] ACPI: SSDT (null) 0001CF (v01 PmRef ApIst 00003000 INTL 20050624) -[ 0.089066] ACPI: SSDT 00000000798d6f20 00008D (v01 PmRef ApCst 00003000 INTL 20050624) -[ 0.089562] ACPI: Dynamic OEM Table Load: -[ 0.090005] ACPI: SSDT (null) 00008D (v01 PmRef ApCst 00003000 INTL 20050624) -[ 0.092138] ACPI: Interpreter enabled -[ 0.092190] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S1_] (20131115/hwxface-580) -[ 0.092315] ACPI Exception: AE_NOT_FOUND, While evaluating Sleep State [\_S2_] (20131115/hwxface-580) -[ 0.092449] ACPI: (supports S0 S3 S4 S5) -[ 0.092496] ACPI: Using IOAPIC for interrupt routing -[ 0.092565] PCI: Using host bridge windows from ACPI; if necessary, use "pci=nocrs" and report a bug -[ 0.093465] ACPI: ACPI Dock Station Driver: 3 docks/bays found -[ 0.103102] ACPI: Power Resource [PUBS] (on) -[ 0.108348] ACPI: PCI Interrupt Link [LNKA] (IRQs 3 4 5 6 7 9 10 *11) -[ 0.108789] ACPI: PCI Interrupt Link [LNKB] (IRQs 3 4 5 6 7 9 10 *11) -[ 0.109225] ACPI: PCI Interrupt Link [LNKC] (IRQs 3 4 5 6 7 9 10 *11) -[ 0.109664] ACPI: PCI Interrupt Link [LNKD] (IRQs 3 4 5 6 7 9 10 *11) -[ 0.110091] ACPI: PCI Interrupt Link [LNKE] (IRQs 3 4 5 6 7 9 10 *11) -[ 0.110528] ACPI: PCI Interrupt Link [LNKF] (IRQs 3 4 5 6 7 9 10 *11) -[ 0.110966] ACPI: PCI Interrupt Link [LNKG] (IRQs 3 4 5 6 7 9 10 *11) -[ 0.111407] ACPI: PCI Interrupt Link [LNKH] (IRQs 3 4 5 6 7 9 10 *11) -[ 0.111809] ACPI: PCI Root Bridge [PCI0] (domain 0000 [bus 00-ff]) -[ 0.111863] acpi PNP0A08:00: _OSC: OS supports [ExtendedConfig ASPM ClockPM Segments MSI] -[ 0.112338] acpi PNP0A08:00: _OSC: OS now controls [PCIeHotplug PME AER PCIeCapability] -[ 0.112429] acpi PNP0A08:00: [Firmware Info]: MMCONFIG for domain 0000 [bus 00-3f] only partially covers this bridge -[ 0.112651] PCI host bridge to bus 0000:00 -[ 0.112699] pci_bus 0000:00: root bus resource [bus 00-ff] -[ 0.112748] pci_bus 0000:00: root bus resource [io 0x0000-0x0cf7] -[ 0.112797] pci_bus 0000:00: root bus resource [io 0x0d00-0xffff] -[ 0.112847] pci_bus 0000:00: root bus resource [mem 0x000a0000-0x000bffff] -[ 0.112897] pci_bus 0000:00: root bus resource [mem 0x000d4000-0x000d7fff] -[ 0.112947] pci_bus 0000:00: root bus resource [mem 0x000d8000-0x000dbfff] -[ 0.112997] pci_bus 0000:00: root bus resource [mem 0x7c000000-0xfebfffff] -[ 0.113013] pci 0000:00:00.0: [8086:2a40] type 00 class 0x060000 -[ 0.113033] DMAR: Forcing write-buffer flush capability -[ 0.113081] DMAR: Disabling IOMMU for graphics on this chipset -[ 0.113196] pci 0000:00:02.0: [8086:2a42] type 00 class 0x030000 -[ 0.113209] pci 0000:00:02.0: reg 0x10: [mem 0xf2000000-0xf23fffff 64bit] -[ 0.113216] pci 0000:00:02.0: reg 0x18: [mem 0xd0000000-0xdfffffff 64bit pref] -[ 0.113222] pci 0000:00:02.0: reg 0x20: [io 0x1800-0x1807] -[ 0.113301] pci 0000:00:02.1: [8086:2a43] type 00 class 0x038000 -[ 0.113311] pci 0000:00:02.1: reg 0x10: [mem 0xf2400000-0xf24fffff 64bit] -[ 0.113403] pci 0000:00:03.0: [8086:2a44] type 00 class 0x078000 -[ 0.113419] pci 0000:00:03.0: reg 0x10: [mem 0xf2826800-0xf282680f 64bit] -[ 0.113469] pci 0000:00:03.0: PME# supported from D0 D3hot D3cold -[ 0.113534] pci 0000:00:03.3: [8086:2a47] type 00 class 0x070002 -[ 0.113548] pci 0000:00:03.3: reg 0x10: [io 0x1830-0x1837] -[ 0.113555] pci 0000:00:03.3: reg 0x14: [mem 0xf2624000-0xf2624fff] -[ 0.113704] pci 0000:00:19.0: [8086:10f5] type 00 class 0x020000 -[ 0.113729] pci 0000:00:19.0: reg 0x10: [mem 0xf2600000-0xf261ffff] -[ 0.113740] pci 0000:00:19.0: reg 0x14: [mem 0xf2625000-0xf2625fff] -[ 0.113751] pci 0000:00:19.0: reg 0x18: [io 0x1840-0x185f] -[ 0.113839] pci 0000:00:19.0: PME# supported from D0 D3hot D3cold -[ 0.113882] pci 0000:00:19.0: System wakeup disabled by ACPI -[ 0.114019] pci 0000:00:1a.0: [8086:2937] type 00 class 0x0c0300 -[ 0.114075] pci 0000:00:1a.0: reg 0x20: [io 0x1860-0x187f] -[ 0.114173] pci 0000:00:1a.0: System wakeup disabled by ACPI -[ 0.114259] pci 0000:00:1a.1: [8086:2938] type 00 class 0x0c0300 -[ 0.114315] pci 0000:00:1a.1: reg 0x20: [io 0x1880-0x189f] -[ 0.114427] pci 0000:00:1a.2: [8086:2939] type 00 class 0x0c0300 -[ 0.114483] pci 0000:00:1a.2: reg 0x20: [io 0x18a0-0x18bf] -[ 0.114579] pci 0000:00:1a.2: System wakeup disabled by ACPI -[ 0.114674] pci 0000:00:1a.7: [8086:293c] type 00 class 0x0c0320 -[ 0.114700] pci 0000:00:1a.7: reg 0x10: [mem 0xf2826c00-0xf2826fff] -[ 0.114810] pci 0000:00:1a.7: PME# supported from D0 D3hot D3cold -[ 0.114854] pci 0000:00:1a.7: System wakeup disabled by ACPI -[ 0.114944] pci 0000:00:1b.0: [8086:293e] type 00 class 0x040300 -[ 0.114964] pci 0000:00:1b.0: reg 0x10: [mem 0xf2620000-0xf2623fff 64bit] -[ 0.115066] pci 0000:00:1b.0: PME# supported from D0 D3hot D3cold -[ 0.115120] pci 0000:00:1b.0: System wakeup disabled by ACPI -[ 0.115204] pci 0000:00:1c.0: [8086:2940] type 01 class 0x060400 -[ 0.115305] pci 0000:00:1c.0: PME# supported from D0 D3hot D3cold -[ 0.115352] pci 0000:00:1c.0: System wakeup disabled by ACPI -[ 0.115436] pci 0000:00:1c.1: [8086:2942] type 01 class 0x060400 -[ 0.115536] pci 0000:00:1c.1: PME# supported from D0 D3hot D3cold -[ 0.115584] pci 0000:00:1c.1: System wakeup disabled by ACPI -[ 0.115669] pci 0000:00:1c.3: [8086:2946] type 01 class 0x060400 -[ 0.115769] pci 0000:00:1c.3: PME# supported from D0 D3hot D3cold -[ 0.115816] pci 0000:00:1c.3: System wakeup disabled by ACPI -[ 0.115906] pci 0000:00:1d.0: [8086:2934] type 00 class 0x0c0300 -[ 0.115962] pci 0000:00:1d.0: reg 0x20: [io 0x18c0-0x18df] -[ 0.116067] pci 0000:00:1d.0: System wakeup disabled by ACPI -[ 0.116153] pci 0000:00:1d.1: [8086:2935] type 00 class 0x0c0300 -[ 0.116209] pci 0000:00:1d.1: reg 0x20: [io 0x18e0-0x18ff] -[ 0.116320] pci 0000:00:1d.2: [8086:2936] type 00 class 0x0c0300 -[ 0.116376] pci 0000:00:1d.2: reg 0x20: [io 0x1c00-0x1c1f] -[ 0.116498] pci 0000:00:1d.7: [8086:293a] type 00 class 0x0c0320 -[ 0.116523] pci 0000:00:1d.7: reg 0x10: [mem 0xf2827000-0xf28273ff] -[ 0.116632] pci 0000:00:1d.7: PME# supported from D0 D3hot D3cold -[ 0.116678] pci 0000:00:1d.7: System wakeup disabled by ACPI -[ 0.116764] pci 0000:00:1e.0: [8086:2448] type 01 class 0x060401 -[ 0.116898] pci 0000:00:1f.0: [8086:2917] type 00 class 0x060100 -[ 0.117115] pci 0000:00:1f.2: [8086:2929] type 00 class 0x010601 -[ 0.117142] pci 0000:00:1f.2: reg 0x10: [io 0x1c48-0x1c4f] -[ 0.117153] pci 0000:00:1f.2: reg 0x14: [io 0x183c-0x183f] -[ 0.117164] pci 0000:00:1f.2: reg 0x18: [io 0x1c40-0x1c47] -[ 0.117175] pci 0000:00:1f.2: reg 0x1c: [io 0x1838-0x183b] -[ 0.117186] pci 0000:00:1f.2: reg 0x20: [io 0x1c20-0x1c3f] -[ 0.117197] pci 0000:00:1f.2: reg 0x24: [mem 0xf2826000-0xf28267ff] -[ 0.117265] pci 0000:00:1f.2: PME# supported from D3hot -[ 0.117338] pci 0000:00:1f.3: [8086:2930] type 00 class 0x0c0500 -[ 0.117359] pci 0000:00:1f.3: reg 0x10: [mem 0xf2827400-0xf28274ff 64bit] -[ 0.117388] pci 0000:00:1f.3: reg 0x20: [io 0x1c60-0x1c7f] -[ 0.117535] pci 0000:00:1c.0: PCI bridge to [bus 02] -[ 0.117690] pci 0000:03:00.0: [8086:4237] type 00 class 0x028000 -[ 0.117730] pci 0000:03:00.0: reg 0x10: [mem 0xf2500000-0xf2501fff 64bit] -[ 0.117924] pci 0000:03:00.0: PME# supported from D0 D3hot D3cold -[ 0.119021] pci 0000:00:1c.1: PCI bridge to [bus 03] -[ 0.119076] pci 0000:00:1c.1: bridge window [mem 0xf2500000-0xf25fffff] -[ 0.119155] pci 0000:00:1c.3: PCI bridge to [bus 05-0c] -[ 0.119207] pci 0000:00:1c.3: bridge window [io 0x2000-0x2fff] -[ 0.119211] pci 0000:00:1c.3: bridge window [mem 0xf0000000-0xf1ffffff] -[ 0.119219] pci 0000:00:1c.3: bridge window [mem 0xf2900000-0xf29fffff 64bit pref] -[ 0.119318] pci 0000:00:1e.0: PCI bridge to [bus 0d] (subtractive decode) -[ 0.119318] pci 0000:00:1e.0: bridge window [io 0x0000-0x0cf7] (subtractive decode) -[ 0.119318] pci 0000:00:1e.0: bridge window [io 0x0d00-0xffff] (subtractive decode) -[ 0.119318] pci 0000:00:1e.0: bridge window [mem 0x000a0000-0x000bffff] (subtractive decode) -[ 0.119318] pci 0000:00:1e.0: bridge window [mem 0x000d4000-0x000d7fff] (subtractive decode) -[ 0.119318] pci 0000:00:1e.0: bridge window [mem 0x000d8000-0x000dbfff] (subtractive decode) -[ 0.119318] pci 0000:00:1e.0: bridge window [mem 0x7c000000-0xfebfffff] (subtractive decode) -[ 0.119318] acpi PNP0A08:00: Disabling ASPM (FADT indicates it is unsupported) -[ 0.121307] ACPI: Enabled 3 GPEs in block 00 to 3F -[ 0.121425] ACPI: \_SB_.PCI0: notify handler is installed -[ 0.121469] Found 1 acpi root devices -[ 0.121543] ACPI : EC: GPE = 0x11, I/O: command/status = 0x66, data = 0x62 -[ 0.121671] vgaarb: device added: PCI:0000:00:02.0,decodes=io+mem,owns=io+mem,locks=none -[ 0.121671] vgaarb: loaded -[ 0.121671] vgaarb: bridge control possible 0000:00:02.0 -[ 0.122188] SCSI subsystem initialized -[ 0.122251] libata version 3.00 loaded. -[ 0.122251] ACPI: bus type USB registered -[ 0.122251] usbcore: registered new interface driver usbfs -[ 0.122251] usbcore: registered new interface driver hub -[ 0.122251] usbcore: registered new device driver usb -[ 0.123053] PCI: Using ACPI for IRQ routing -[ 0.125422] PCI: pci_cache_line_size set to 64 bytes -[ 0.125494] e820: reserve RAM buffer [mem 0x0009ec00-0x0009ffff] -[ 0.125496] e820: reserve RAM buffer [mem 0x796a1000-0x7bffffff] -[ 0.125498] e820: reserve RAM buffer [mem 0x797b7000-0x7bffffff] -[ 0.125500] e820: reserve RAM buffer [mem 0x798c7000-0x7bffffff] -[ 0.125503] e820: reserve RAM buffer [mem 0x79c00000-0x7bffffff] -[ 0.125588] NetLabel: Initializing -[ 0.125634] NetLabel: domain hash size = 128 -[ 0.125680] NetLabel: protocols = UNLABELED CIPSOv4 -[ 0.125737] NetLabel: unlabeled traffic allowed by default -[ 0.125795] HPET: 4 timers in total, 0 timers will be used for per-cpu timer -[ 0.125795] hpet0: at MMIO 0xfed00000, IRQs 2, 8, 0, 0 -[ 0.126107] hpet0: 4 comparators, 64-bit 14.318180 MHz counter -[ 0.128030] Switched to clocksource hpet -[ 0.134288] AppArmor: AppArmor Filesystem Enabled -[ 0.134388] pnp: PnP ACPI init -[ 0.134450] ACPI: bus type PNP registered -[ 0.154864] system 00:00: [mem 0x00000000-0x0009ffff] could not be reserved -[ 0.154916] system 00:00: [mem 0x000c0000-0x000c3fff] could not be reserved -[ 0.154967] system 00:00: [mem 0x000c4000-0x000c7fff] could not be reserved -[ 0.155029] system 00:00: [mem 0x000c8000-0x000cbfff] has been reserved -[ 0.155080] system 00:00: [mem 0x000cc000-0x000cffff] has been reserved -[ 0.155130] system 00:00: [mem 0x000d0000-0x000d3fff] could not be reserved -[ 0.155181] system 00:00: [mem 0x000dc000-0x000dffff] could not be reserved -[ 0.155231] system 00:00: [mem 0x000e0000-0x000e3fff] could not be reserved -[ 0.155282] system 00:00: [mem 0x000e4000-0x000e7fff] could not be reserved -[ 0.155332] system 00:00: [mem 0x000e8000-0x000ebfff] could not be reserved -[ 0.155383] system 00:00: [mem 0x000ec000-0x000effff] could not be reserved -[ 0.155433] system 00:00: [mem 0x000f0000-0x000fffff] could not be reserved -[ 0.155484] system 00:00: [mem 0x00100000-0x7bffffff] could not be reserved -[ 0.155535] system 00:00: [mem 0xfec00000-0xfed3ffff] could not be reserved -[ 0.155585] system 00:00: [mem 0xfed4c000-0xffffffff] could not be reserved -[ 0.155638] system 00:00: Plug and Play ACPI device, IDs PNP0c01 (active) -[ 0.175625] system 00:01: [io 0x1000-0x107f] could not be reserved -[ 0.175676] system 00:01: [io 0x1180-0x11ff] has been reserved -[ 0.175726] system 00:01: [io 0x0800-0x080f] has been reserved -[ 0.175775] system 00:01: [io 0x15e0-0x15ef] has been reserved -[ 0.175825] system 00:01: [io 0x1600-0x167f] has been reserved -[ 0.175874] system 00:01: [io 0x1680-0x169f] has been reserved -[ 0.175923] system 00:01: [mem 0xe0000000-0xefffffff] has been reserved -[ 0.175974] system 00:01: [mem 0xfed1c000-0xfed1ffff] has been reserved -[ 0.176035] system 00:01: [mem 0xfed10000-0xfed13fff] has been reserved -[ 0.176086] system 00:01: [mem 0xfed18000-0xfed18fff] has been reserved -[ 0.176136] system 00:01: [mem 0xfed19000-0xfed19fff] has been reserved -[ 0.176187] system 00:01: [mem 0xfed45000-0xfed4bfff] has been reserved -[ 0.176238] system 00:01: Plug and Play ACPI device, IDs PNP0c02 (active) -[ 0.176291] pnp 00:02: Plug and Play ACPI device, IDs PNP0103 (active) -[ 0.176300] pnp 00:03: [dma 4] -[ 0.176318] pnp 00:03: Plug and Play ACPI device, IDs PNP0200 (active) -[ 0.176344] pnp 00:04: Plug and Play ACPI device, IDs PNP0800 (active) -[ 0.176381] pnp 00:05: Plug and Play ACPI device, IDs PNP0c04 (active) -[ 0.176413] pnp 00:06: Plug and Play ACPI device, IDs PNP0b00 (active) -[ 0.176441] pnp 00:07: Plug and Play ACPI device, IDs PNP0303 (active) -[ 0.176472] pnp 00:08: Plug and Play ACPI device, IDs IBM3780 PNP0f13 (active) -[ 0.196442] pnp 00:09: Plug and Play ACPI device, IDs PNP0c31 (active) -[ 0.196872] pnp: PnP ACPI: found 10 devices -[ 0.196919] ACPI: bus type PNP unregistered -[ 0.203744] pci 0000:00:1c.0: bridge window [io 0x1000-0x0fff] to [bus 02] add_size 1000 -[ 0.203748] pci 0000:00:1c.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 02] add_size 200000 -[ 0.203751] pci 0000:00:1c.0: bridge window [mem 0x00100000-0x000fffff] to [bus 02] add_size 200000 -[ 0.203761] pci 0000:00:1c.1: bridge window [io 0x1000-0x0fff] to [bus 03] add_size 1000 -[ 0.203764] pci 0000:00:1c.1: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 03] add_size 200000 -[ 0.203790] pci 0000:00:1c.0: res[14]=[mem 0x00100000-0x000fffff] get_res_add_size add_size 200000 -[ 0.203792] pci 0000:00:1c.0: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000 -[ 0.203794] pci 0000:00:1c.1: res[15]=[mem 0x00100000-0x000fffff 64bit pref] get_res_add_size add_size 200000 -[ 0.203797] pci 0000:00:1c.0: res[13]=[io 0x1000-0x0fff] get_res_add_size add_size 1000 -[ 0.203799] pci 0000:00:1c.1: res[13]=[io 0x1000-0x0fff] get_res_add_size add_size 1000 -[ 0.203803] pci 0000:00:1c.0: BAR 14: assigned [mem 0x7c000000-0x7c1fffff] -[ 0.203855] pci 0000:00:1c.0: BAR 15: assigned [mem 0x7c200000-0x7c3fffff 64bit pref] -[ 0.203917] pci 0000:00:1c.1: BAR 15: assigned [mem 0x7c400000-0x7c5fffff 64bit pref] -[ 0.203979] pci 0000:00:1c.0: BAR 13: assigned [io 0x3000-0x3fff] -[ 0.204040] pci 0000:00:1c.1: BAR 13: assigned [io 0x4000-0x4fff] -[ 0.204091] pci 0000:00:1c.0: PCI bridge to [bus 02] -[ 0.204141] pci 0000:00:1c.0: bridge window [io 0x3000-0x3fff] -[ 0.204194] pci 0000:00:1c.0: bridge window [mem 0x7c000000-0x7c1fffff] -[ 0.204247] pci 0000:00:1c.0: bridge window [mem 0x7c200000-0x7c3fffff 64bit pref] -[ 0.204313] pci 0000:00:1c.1: PCI bridge to [bus 03] -[ 0.204362] pci 0000:00:1c.1: bridge window [io 0x4000-0x4fff] -[ 0.204415] pci 0000:00:1c.1: bridge window [mem 0xf2500000-0xf25fffff] -[ 0.204468] pci 0000:00:1c.1: bridge window [mem 0x7c400000-0x7c5fffff 64bit pref] -[ 0.204534] pci 0000:00:1c.3: PCI bridge to [bus 05-0c] -[ 0.204583] pci 0000:00:1c.3: bridge window [io 0x2000-0x2fff] -[ 0.204636] pci 0000:00:1c.3: bridge window [mem 0xf0000000-0xf1ffffff] -[ 0.204689] pci 0000:00:1c.3: bridge window [mem 0xf2900000-0xf29fffff 64bit pref] -[ 0.204755] pci 0000:00:1e.0: PCI bridge to [bus 0d] -[ 0.204815] pci_bus 0000:00: resource 4 [io 0x0000-0x0cf7] -[ 0.204817] pci_bus 0000:00: resource 5 [io 0x0d00-0xffff] -[ 0.204819] pci_bus 0000:00: resource 6 [mem 0x000a0000-0x000bffff] -[ 0.204821] pci_bus 0000:00: resource 7 [mem 0x000d4000-0x000d7fff] -[ 0.204823] pci_bus 0000:00: resource 8 [mem 0x000d8000-0x000dbfff] -[ 0.204824] pci_bus 0000:00: resource 9 [mem 0x7c000000-0xfebfffff] -[ 0.204827] pci_bus 0000:02: resource 0 [io 0x3000-0x3fff] -[ 0.204828] pci_bus 0000:02: resource 1 [mem 0x7c000000-0x7c1fffff] -[ 0.204830] pci_bus 0000:02: resource 2 [mem 0x7c200000-0x7c3fffff 64bit pref] -[ 0.204832] pci_bus 0000:03: resource 0 [io 0x4000-0x4fff] -[ 0.204834] pci_bus 0000:03: resource 1 [mem 0xf2500000-0xf25fffff] -[ 0.204836] pci_bus 0000:03: resource 2 [mem 0x7c400000-0x7c5fffff 64bit pref] -[ 0.204838] pci_bus 0000:05: resource 0 [io 0x2000-0x2fff] -[ 0.204840] pci_bus 0000:05: resource 1 [mem 0xf0000000-0xf1ffffff] -[ 0.204842] pci_bus 0000:05: resource 2 [mem 0xf2900000-0xf29fffff 64bit pref] -[ 0.204844] pci_bus 0000:0d: resource 4 [io 0x0000-0x0cf7] -[ 0.204846] pci_bus 0000:0d: resource 5 [io 0x0d00-0xffff] -[ 0.204848] pci_bus 0000:0d: resource 6 [mem 0x000a0000-0x000bffff] -[ 0.204850] pci_bus 0000:0d: resource 7 [mem 0x000d4000-0x000d7fff] -[ 0.204852] pci_bus 0000:0d: resource 8 [mem 0x000d8000-0x000dbfff] -[ 0.204853] pci_bus 0000:0d: resource 9 [mem 0x7c000000-0xfebfffff] -[ 0.204887] NET: Registered protocol family 2 -[ 0.205147] TCP established hash table entries: 16384 (order: 5, 131072 bytes) -[ 0.205279] TCP bind hash table entries: 16384 (order: 6, 262144 bytes) -[ 0.205428] TCP: Hash tables configured (established 16384 bind 16384) -[ 0.205529] TCP: reno registered -[ 0.205578] UDP hash table entries: 1024 (order: 3, 32768 bytes) -[ 0.205641] UDP-Lite hash table entries: 1024 (order: 3, 32768 bytes) -[ 0.205757] NET: Registered protocol family 1 -[ 0.205816] pci 0000:00:02.0: Boot video device -[ 0.206766] PCI: CLS 64 bytes, default 64 -[ 0.206828] Trying to unpack rootfs image as initramfs... -[ 0.654139] Freeing initrd memory: 22968K (ffff880035314000 - ffff880036982000) -[ 0.654271] Simple Boot Flag at 0x35 set to 0x1 -[ 0.654472] microcode: CPU0 sig=0x10676, pf=0x80, revision=0x60c -[ 0.654527] microcode: CPU1 sig=0x10676, pf=0x80, revision=0x60c -[ 0.654675] microcode: Microcode Update Driver: v2.00 , Peter Oruba -[ 0.654738] Scanning for low memory corruption every 60 seconds -[ 0.655070] Initialise system trusted keyring -[ 0.655166] audit: initializing netlink socket (disabled) -[ 0.655228] type=2000 audit(1440917335.654:1): initialized -[ 0.677686] HugeTLB registered 2 MB page size, pre-allocated 0 pages -[ 0.678936] zbud: loaded -[ 0.679129] VFS: Disk quotas dquot_6.5.2 -[ 0.679222] Dquot-cache hash table entries: 512 (order 0, 4096 bytes) -[ 0.679760] fuse init (API version 7.22) -[ 0.679888] msgmni has been set to 3790 -[ 0.679992] Key type big_key registered -[ 0.680581] Key type asymmetric registered -[ 0.680630] Asymmetric key parser 'x509' registered -[ 0.680708] Block layer SCSI generic (bsg) driver version 0.4 loaded (major 252) -[ 0.680805] io scheduler noop registered -[ 0.680854] io scheduler deadline registered -[ 0.680926] io scheduler cfq registered -[ 0.680975] io scheduler bfq registered (default) -[ 0.681033] BFQ I/O-scheduler version: v7r5 -[ 0.681277] pcieport 0000:00:1c.0: irq 40 for MSI/MSI-X -[ 0.681485] pcieport 0000:00:1c.1: irq 41 for MSI/MSI-X -[ 0.681648] pcieport 0000:00:1c.3: irq 42 for MSI/MSI-X -[ 0.681801] pcieport 0000:00:1c.0: Signaling PME through PCIe PME interrupt -[ 0.681856] pcie_pme 0000:00:1c.0:pcie01: service driver pcie_pme loaded -[ 0.681914] pcieport 0000:00:1c.1: Signaling PME through PCIe PME interrupt -[ 0.681967] pci 0000:03:00.0: Signaling PME through PCIe PME interrupt -[ 0.682032] pcie_pme 0000:00:1c.1:pcie01: service driver pcie_pme loaded -[ 0.682086] pcieport 0000:00:1c.3: Signaling PME through PCIe PME interrupt -[ 0.682140] pcie_pme 0000:00:1c.3:pcie01: service driver pcie_pme loaded -[ 0.682156] pci_hotplug: PCI Hot Plug PCI Core version: 0.5 -[ 0.682263] pciehp 0000:00:1c.0:pcie04: HPC vendor_id 8086 device_id 2940 ss_vid 17aa ss_did 20f3 -[ 0.682387] pciehp 0000:00:1c.0:pcie04: service driver pciehp loaded -[ 0.682402] pciehp 0000:00:1c.1:pcie04: HPC vendor_id 8086 device_id 2942 ss_vid 17aa ss_did 20f3 -[ 0.682519] pciehp 0000:00:1c.1:pcie04: service driver pciehp loaded -[ 0.682533] pciehp 0000:00:1c.3:pcie04: HPC vendor_id 8086 device_id 2946 ss_vid 17aa ss_did 20f3 -[ 0.682653] pciehp 0000:00:1c.3:pcie04: service driver pciehp loaded -[ 0.682659] pciehp: PCI Express Hot Plug Controller Driver version: 0.4 -[ 0.682755] intel_idle: does not run on family 6 model 23 -[ 0.682764] ipmi message handler version 39.2 -[ 0.682977] ACPI: Deprecated procfs I/F for AC is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared -[ 0.683222] ACPI: AC Adapter [AC] (on-line) -[ 0.683362] input: Lid Switch as /devices/LNXSYSTM:00/device:00/PNP0C0D:00/input/input0 -[ 0.683702] ACPI: Lid Switch [LID] -[ 0.683781] input: Sleep Button as /devices/LNXSYSTM:00/device:00/PNP0C0E:00/input/input1 -[ 0.683844] ACPI: Sleep Button [SLPB] -[ 0.683929] input: Power Button as /devices/LNXSYSTM:00/LNXPWRBN:00/input/input2 -[ 0.683991] ACPI: Power Button [PWRF] -[ 0.685432] Monitor-Mwait will be used to enter C-1 state -[ 0.685438] Monitor-Mwait will be used to enter C-2 state -[ 0.685441] Monitor-Mwait will be used to enter C-3 state -[ 0.685444] tsc: Marking TSC unstable due to TSC halts in idle -[ 0.685502] ACPI: acpi_idle registered with cpuidle -[ 0.687967] thermal LNXTHERM:00: registered as thermal_zone0 -[ 0.688045] ACPI: Thermal Zone [THM0] (56 C) -[ 0.689472] thermal LNXTHERM:01: registered as thermal_zone1 -[ 0.689527] ACPI: Thermal Zone [THM1] (55 C) -[ 0.689603] GHES: HEST is not enabled! -[ 0.689793] ACPI: Deprecated procfs I/F for battery is loaded, please retry with CONFIG_ACPI_PROCFS_POWER cleared -[ 0.689861] ACPI: Battery Slot [BAT0] (battery absent) -[ 0.689943] Serial: 8250/16550 driver, 32 ports, IRQ sharing enabled -[ 0.712208] 0000:00:03.3: ttyS4 at I/O 0x1830 (irq = 17, base_baud = 115200) is a 16550A -[ 0.712544] Linux agpgart interface v0.103 -[ 0.712661] agpgart-intel 0000:00:00.0: Intel GM45 Chipset -[ 0.712794] agpgart-intel 0000:00:00.0: detected gtt size: 2097152K total, 262144K mappable -[ 0.713914] agpgart-intel 0000:00:00.0: detected 32768K stolen memory -[ 0.714136] agpgart-intel 0000:00:00.0: AGP aperture is 256M @ 0xd0000000 -[ 0.720051] tpm_tis 00:09: 1.2 TPM (device-id 0x1020, rev-id 6) -[ 0.720104] tpm_tis 00:09: Intel iTPM workaround enabled -[ 0.792118] tpm_tis 00:09: TPM is disabled/deactivated (0x6) -[ 0.793802] brd: module loaded -[ 0.794673] loop: module loaded -[ 0.795114] libphy: Fixed MDIO Bus: probed -[ 0.795245] tun: Universal TUN/TAP device driver, 1.6 -[ 0.795292] tun: (C) 1999-2004 Max Krasnyansky -[ 0.795389] PPP generic driver version 2.4.2 -[ 0.795505] ehci_hcd: USB 2.0 'Enhanced' Host Controller (EHCI) Driver -[ 0.795557] ehci-pci: EHCI PCI platform driver -[ 0.795729] ehci-pci 0000:00:1a.7: EHCI Host Controller -[ 0.795781] ehci-pci 0000:00:1a.7: new USB bus registered, assigned bus number 1 -[ 0.795855] ehci-pci 0000:00:1a.7: debug port 1 -[ 0.799819] ehci-pci 0000:00:1a.7: cache line size of 64 is not supported -[ 0.799914] ehci-pci 0000:00:1a.7: irq 23, io mem 0xf2826c00 -[ 0.806055] ehci-pci 0000:00:1a.7: USB 2.0 started, EHCI 1.00 -[ 0.806198] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 -[ 0.806249] usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 -[ 0.806309] usb usb1: Product: EHCI Host Controller -[ 0.806356] usb usb1: Manufacturer: Linux 3.13.0-39-lowlatency ehci_hcd -[ 0.806406] usb usb1: SerialNumber: 0000:00:1a.7 -[ 0.806572] hub 1-0:1.0: USB hub found -[ 0.806625] hub 1-0:1.0: 6 ports detected -[ 0.806964] ehci-pci 0000:00:1d.7: EHCI Host Controller -[ 0.807027] ehci-pci 0000:00:1d.7: new USB bus registered, assigned bus number 2 -[ 0.807102] ehci-pci 0000:00:1d.7: debug port 1 -[ 0.811047] ehci-pci 0000:00:1d.7: cache line size of 64 is not supported -[ 0.811128] ehci-pci 0000:00:1d.7: irq 19, io mem 0xf2827000 -[ 0.817124] ehci-pci 0000:00:1d.7: USB 2.0 started, EHCI 1.00 -[ 0.817761] usb usb2: New USB device found, idVendor=1d6b, idProduct=0002 -[ 0.817811] usb usb2: New USB device strings: Mfr=3, Product=2, SerialNumber=1 -[ 0.817871] usb usb2: Product: EHCI Host Controller -[ 0.817919] usb usb2: Manufacturer: Linux 3.13.0-39-lowlatency ehci_hcd -[ 0.817968] usb usb2: SerialNumber: 0000:00:1d.7 -[ 0.818141] hub 2-0:1.0: USB hub found -[ 0.818192] hub 2-0:1.0: 6 ports detected -[ 0.818460] ehci-platform: EHCI generic platform driver -[ 0.818515] ohci_hcd: USB 1.1 'Open' Host Controller (OHCI) Driver -[ 0.818986] ohci-pci: OHCI PCI platform driver -[ 0.819056] ohci-platform: OHCI generic platform driver -[ 0.819118] uhci_hcd: USB Universal Host Controller Interface driver -[ 0.819235] uhci_hcd 0000:00:1a.0: UHCI Host Controller -[ 0.819286] uhci_hcd 0000:00:1a.0: new USB bus registered, assigned bus number 3 -[ 0.819442] uhci_hcd 0000:00:1a.0: irq 20, io base 0x00001860 -[ 0.819539] usb usb3: New USB device found, idVendor=1d6b, idProduct=0001 -[ 0.819590] usb usb3: New USB device strings: Mfr=3, Product=2, SerialNumber=1 -[ 0.819651] usb usb3: Product: UHCI Host Controller -[ 0.819698] usb usb3: Manufacturer: Linux 3.13.0-39-lowlatency uhci_hcd -[ 0.819748] usb usb3: SerialNumber: 0000:00:1a.0 -[ 0.819903] hub 3-0:1.0: USB hub found -[ 0.819962] hub 3-0:1.0: 2 ports detected -[ 0.820186] uhci_hcd 0000:00:1a.1: UHCI Host Controller -[ 0.820237] uhci_hcd 0000:00:1a.1: new USB bus registered, assigned bus number 4 -[ 0.820407] uhci_hcd 0000:00:1a.1: irq 21, io base 0x00001880 -[ 0.820506] usb usb4: New USB device found, idVendor=1d6b, idProduct=0001 -[ 0.820557] usb usb4: New USB device strings: Mfr=3, Product=2, SerialNumber=1 -[ 0.820617] usb usb4: Product: UHCI Host Controller -[ 0.820665] usb usb4: Manufacturer: Linux 3.13.0-39-lowlatency uhci_hcd -[ 0.820714] usb usb4: SerialNumber: 0000:00:1a.1 -[ 0.820868] hub 4-0:1.0: USB hub found -[ 0.820930] hub 4-0:1.0: 2 ports detected -[ 0.821160] uhci_hcd 0000:00:1a.2: UHCI Host Controller -[ 0.821212] uhci_hcd 0000:00:1a.2: new USB bus registered, assigned bus number 5 -[ 0.821367] uhci_hcd 0000:00:1a.2: irq 22, io base 0x000018a0 -[ 0.821465] usb usb5: New USB device found, idVendor=1d6b, idProduct=0001 -[ 0.821516] usb usb5: New USB device strings: Mfr=3, Product=2, SerialNumber=1 -[ 0.821577] usb usb5: Product: UHCI Host Controller -[ 0.821624] usb usb5: Manufacturer: Linux 3.13.0-39-lowlatency uhci_hcd -[ 0.821674] usb usb5: SerialNumber: 0000:00:1a.2 -[ 0.821836] hub 5-0:1.0: USB hub found -[ 0.821893] hub 5-0:1.0: 2 ports detected -[ 0.822114] uhci_hcd 0000:00:1d.0: UHCI Host Controller -[ 0.822166] uhci_hcd 0000:00:1d.0: new USB bus registered, assigned bus number 6 -[ 0.822323] uhci_hcd 0000:00:1d.0: irq 16, io base 0x000018c0 -[ 0.822435] usb usb6: New USB device found, idVendor=1d6b, idProduct=0001 -[ 0.822486] usb usb6: New USB device strings: Mfr=3, Product=2, SerialNumber=1 -[ 0.822552] usb usb6: Product: UHCI Host Controller -[ 0.822599] usb usb6: Manufacturer: Linux 3.13.0-39-lowlatency uhci_hcd -[ 0.822649] usb usb6: SerialNumber: 0000:00:1d.0 -[ 0.822816] hub 6-0:1.0: USB hub found -[ 0.822867] hub 6-0:1.0: 2 ports detected -[ 0.823088] uhci_hcd 0000:00:1d.1: UHCI Host Controller -[ 0.823139] uhci_hcd 0000:00:1d.1: new USB bus registered, assigned bus number 7 -[ 0.823297] uhci_hcd 0000:00:1d.1: irq 17, io base 0x000018e0 -[ 0.823398] usb usb7: New USB device found, idVendor=1d6b, idProduct=0001 -[ 0.823449] usb usb7: New USB device strings: Mfr=3, Product=2, SerialNumber=1 -[ 0.823509] usb usb7: Product: UHCI Host Controller -[ 0.823557] usb usb7: Manufacturer: Linux 3.13.0-39-lowlatency uhci_hcd -[ 0.823607] usb usb7: SerialNumber: 0000:00:1d.1 -[ 0.823765] hub 7-0:1.0: USB hub found -[ 0.823816] hub 7-0:1.0: 2 ports detected -[ 0.824045] uhci_hcd 0000:00:1d.2: UHCI Host Controller -[ 0.824097] uhci_hcd 0000:00:1d.2: new USB bus registered, assigned bus number 8 -[ 0.824267] uhci_hcd 0000:00:1d.2: irq 18, io base 0x00001c00 -[ 0.824365] usb usb8: New USB device found, idVendor=1d6b, idProduct=0001 -[ 0.824415] usb usb8: New USB device strings: Mfr=3, Product=2, SerialNumber=1 -[ 0.824476] usb usb8: Product: UHCI Host Controller -[ 0.824524] usb usb8: Manufacturer: Linux 3.13.0-39-lowlatency uhci_hcd -[ 0.824573] usb usb8: SerialNumber: 0000:00:1d.2 -[ 0.824732] hub 8-0:1.0: USB hub found -[ 0.824784] hub 8-0:1.0: 2 ports detected -[ 0.824974] i8042: PNP: PS/2 Controller [PNP0303:KBD,PNP0f13:MOU] at 0x60,0x64 irq 1,12 -[ 0.835273] serio: i8042 KBD port at 0x60,0x64 irq 1 -[ 0.835347] serio: i8042 AUX port at 0x60,0x64 irq 12 -[ 0.835524] mousedev: PS/2 mouse device common for all mice -[ 0.835806] rtc_cmos 00:06: RTC can wake from S4 -[ 0.835996] rtc_cmos 00:06: rtc core: registered rtc_cmos as rtc0 -[ 0.836163] rtc_cmos 00:06: alarms up to one month, y3k, 114 bytes nvram, hpet irqs -[ 0.836291] device-mapper: uevent: version 1.0.3 -[ 0.836409] device-mapper: ioctl: 4.27.0-ioctl (2013-10-30) initialised: dm-devel@redhat.com -[ 0.836476] ledtrig-cpu: registered to indicate activity on CPUs -[ 0.836624] TCP: cubic registered -[ 0.836776] NET: Registered protocol family 10 -[ 0.837000] NET: Registered protocol family 17 -[ 0.837068] Key type dns_resolver registered -[ 0.837424] Loading compiled-in X.509 certificates -[ 0.838592] Loaded X.509 cert 'Magrathea: Glacier signing key: a7171335f18ca6131c1947ca87d46fb662317fa6' -[ 0.838684] registered taskstats version 1 -[ 0.841129] Key type trusted registered -[ 0.843261] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input3 -[ 0.843344] Key type encrypted registered -[ 0.845402] AppArmor: AppArmor sha1 policy hashing enabled -[ 0.863122] tpm_tis 00:09: A TPM error (6) occurred attempting to read a pcr value -[ 0.863186] IMA: No TPM chip found, activating TPM-bypass! -[ 0.863533] regulator-dummy: disabling -[ 0.863620] Magic number: 11:688:823 -[ 0.863809] rtc_cmos 00:06: setting system clock to 2015-08-30 06:48:56 UTC (1440917336) -[ 0.866119] BIOS EDD facility v0.16 2004-Jun-25, 0 devices found -[ 0.866172] EDD information not available. -[ 0.866304] PM: Hibernation image not present or could not be loaded. -[ 0.868348] Freeing unused kernel memory: 1324K (ffffffff81d1d000 - ffffffff81e68000) -[ 0.868413] Write protecting the kernel read-only data: 12288k -[ 0.872016] Freeing unused kernel memory: 764K (ffff880001741000 - ffff880001800000) -[ 0.875110] Freeing unused kernel memory: 676K (ffff880001b57000 - ffff880001c00000) -[ 0.894972] systemd-udevd[126]: starting version 204 -[ 0.928980] pps_core: LinuxPPS API ver. 1 registered -[ 0.930015] pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti -[ 0.934247] PTP clock support registered -[ 0.940925] [drm] Initialized drm 1.1.0 20060810 -[ 0.948317] e1000e: Intel(R) PRO/1000 Network Driver - 2.3.2-k -[ 0.948333] wmi: Mapper loaded -[ 0.949020] e1000e: Copyright(c) 1999 - 2013 Intel Corporation. -[ 0.949310] e1000e 0000:00:19.0: Interrupt Throttling Rate (ints/sec) set to dynamic conservative mode -[ 0.949407] e1000e 0000:00:19.0: irq 43 for MSI/MSI-X -[ 1.143351] e1000e 0000:00:19.0 eth0: (PCI Express:2.5GT/s:Width x1) 00:1f:16:0b:4d:8c -[ 1.143422] e1000e 0000:00:19.0 eth0: Intel(R) PRO/1000 Network Connection -[ 1.143503] e1000e 0000:00:19.0 eth0: MAC: 7, PHY: 8, PBA No: 1008FF-0FF -[ 1.143581] ahci 0000:00:1f.2: version 3.0 -[ 1.143759] ahci 0000:00:1f.2: irq 44 for MSI/MSI-X -[ 1.143807] ahci 0000:00:1f.2: SSS flag set, parallel bus scan disabled -[ 1.143886] ahci 0000:00:1f.2: AHCI 0001.0200 32 slots 4 ports 3 Gbps 0x3 impl SATA mode -[ 1.143952] ahci 0000:00:1f.2: flags: 64bit ncq sntf stag pm led clo pio slum part ccc sxs -[ 1.144931] scsi0 : ahci -[ 1.145135] scsi1 : ahci -[ 1.145511] scsi2 : ahci -[ 1.145741] scsi3 : ahci -[ 1.145851] ata1: SATA max UDMA/133 abar m2048@0xf2826000 port 0xf2826100 irq 44 -[ 1.145924] ata2: SATA max UDMA/133 abar m2048@0xf2826000 port 0xf2826180 irq 44 -[ 1.145987] ata3: DUMMY -[ 1.146051] ata4: DUMMY -[ 1.146776] [drm] Memory usable by graphics device = 2048M -[ 1.211100] i915 0000:00:02.0: irq 45 for MSI/MSI-X -[ 1.211112] [drm] Supports vblank timestamp caching Rev 2 (21.10.2013). -[ 1.211164] [drm] Driver supports precise vblank timestamp query. -[ 1.211360] vgaarb: device changed decodes: PCI:0000:00:02.0,olddecodes=io+mem,decodes=io+mem:owns=io+mem -[ 1.356901] fbcon: inteldrmfb (fb0) is primary device -[ 1.429783] psmouse serio1: alps: Unknown ALPS touchpad: E7=10 00 64, EC=10 00 64 -[ 1.451120] ata1: SATA link up 1.5 Gbps (SStatus 113 SControl 300) -[ 1.452184] ata1.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded -[ 1.452187] ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out -[ 1.452301] ata1.00: ACPI cmd ef/5f:00:00:00:00:a0 (SET FEATURES) succeeded -[ 1.452303] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out -[ 1.464094] usb 4-2: new full-speed USB device number 2 using uhci_hcd -[ 1.498665] ata1.00: ATA-8: WDC WD1600BEVS-08VAT2, 14.01A14, max UDMA/133 -[ 1.498667] ata1.00: 312581808 sectors, multi 16: LBA48 NCQ (depth 31/32), AA -[ 1.500316] ata1.00: ACPI cmd ef/02:00:00:00:00:a0 (SET FEATURES) succeeded -[ 1.500319] ata1.00: ACPI cmd f5/00:00:00:00:00:a0 (SECURITY FREEZE LOCK) filtered out -[ 1.500465] ata1.00: ACPI cmd ef/5f:00:00:00:00:a0 (SET FEATURES) succeeded -[ 1.500467] ata1.00: ACPI cmd ef/10:03:00:00:00:a0 (SET FEATURES) filtered out -[ 1.502270] ata1.00: configured for UDMA/133 -[ 1.502467] scsi 0:0:0:0: Direct-Access ATA WDC WD1600BEVS-0 14.0 PQ: 0 ANSI: 5 -[ 1.502651] sd 0:0:0:0: [sda] 312581808 512-byte logical blocks: (160 GB/149 GiB) -[ 1.502695] sd 0:0:0:0: Attached scsi generic sg0 type 0 -[ 1.502732] sd 0:0:0:0: [sda] Write Protect is off -[ 1.502734] sd 0:0:0:0: [sda] Mode Sense: 00 3a 00 00 -[ 1.502774] sd 0:0:0:0: [sda] Write cache: enabled, read cache: enabled, doesn't support DPO or FUA -[ 1.537914] sda: sda1 sda2 < sda5 sda6 > -[ 1.538544] sd 0:0:0:0: [sda] Attached SCSI disk -[ 1.618541] usb 4-2: New USB device found, idVendor=0a5c, idProduct=2145 -[ 1.618544] usb 4-2: New USB device strings: Mfr=1, Product=2, SerialNumber=0 -[ 1.618546] usb 4-2: Product: ThinkPad Bluetooth with Enhanced Data Rate II -[ 1.618547] usb 4-2: Manufacturer: Lenovo Computer Corp -[ 1.796484] psmouse serio1: trackpoint: IBM TrackPoint firmware: 0x0e, buttons: 3/3 -[ 1.807121] ata2: SATA link down (SStatus 0 SControl 300) -[ 1.814662] input: TPPS/2 IBM TrackPoint as /devices/platform/i8042/serio1/input/input5 -[ 1.894282] Console: switching to colour frame buffer device 160x50 -[ 1.901135] i915 0000:00:02.0: fb0: inteldrmfb frame buffer device -[ 1.902865] i915 0000:00:02.0: registered panic notifier -[ 1.907397] ACPI: Video Device [VID] (multi-head: yes rom: no post: no) -[ 1.916101] acpi device:02: registered as cooling_device2 -[ 1.917970] input: Video Bus as /devices/LNXSYSTM:00/device:00/PNP0A08:00/LNXVIDEO:00/input/input6 -[ 1.919867] [drm] Initialized i915 1.6.0 20080730 for 0000:00:02.0 on minor 0 -[ 2.603154] md: linear personality registered for level -1 -[ 2.607184] md: multipath personality registered for level -4 -[ 2.611208] md: raid0 personality registered for level 0 -[ 2.615754] md: raid1 personality registered for level 1 -[ 2.637037] raid6: sse2x1 2871 MB/s -[ 2.654032] raid6: sse2x2 3125 MB/s -[ 2.671029] raid6: sse2x4 4628 MB/s -[ 2.671057] raid6: using algorithm sse2x4 (4628 MB/s) -[ 2.671090] raid6: using ssse3x2 recovery algorithm -[ 2.673224] xor: measuring software checksum speed -[ 2.683030] prefetch64-sse: 6432.000 MB/sec -[ 2.693030] generic_sse: 5720.000 MB/sec -[ 2.693061] xor: using function: prefetch64-sse (6432.000 MB/sec) -[ 2.695037] async_tx: api initialized (async) -[ 2.706535] md: raid6 personality registered for level 6 -[ 2.706574] md: raid5 personality registered for level 5 -[ 2.706609] md: raid4 personality registered for level 4 -[ 2.715477] md: raid10 personality registered for level 10 -[ 2.777351] random: nonblocking pool is initialized -[ 2.912964] bio: create slab at 1 -[ 2.914076] Btrfs loaded -[ 3.142639] EXT4-fs (sda1): mounted filesystem with ordered data mode. Opts: (null) -[ 13.257389] Adding 4230140k swap on /dev/sda5. Priority:-1 extents:1 across:4230140k FS -[ 13.348717] IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready -[ 13.512598] systemd-udevd[410]: starting version 204 -[ 13.698475] lp: driver loaded but no devices found -[ 13.718842] ppdev: user-space parallel port driver -[ 13.888756] Bluetooth: Core ver 2.17 -[ 13.888782] NET: Registered protocol family 31 -[ 13.888785] Bluetooth: HCI device and connection manager initialized -[ 13.888797] Bluetooth: HCI socket layer initialized -[ 13.888801] Bluetooth: L2CAP socket layer initialized -[ 13.888807] Bluetooth: SCO socket layer initialized -[ 13.902331] usbcore: registered new interface driver btusb -[ 13.909756] ACPI Warning: 0x0000000000001028-0x000000000000102f SystemIO conflicts with Region \_SB_.PCI0.LPC_.PMIO 1 (20131115/utaddress-251) -[ 13.909766] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver -[ 13.909772] ACPI Warning: 0x00000000000011b0-0x00000000000011bf SystemIO conflicts with Region \_SB_.PCI0.LPC_.LPIO 1 (20131115/utaddress-251) -[ 13.909777] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver -[ 13.909779] ACPI Warning: 0x0000000000001180-0x00000000000011af SystemIO conflicts with Region \_SB_.PCI0.LPC_.LPIO 1 (20131115/utaddress-251) -[ 13.909783] ACPI: If an ACPI driver is available for this device, you should use it instead of the native driver -[ 13.909785] lpc_ich: Resource conflict(s) found affecting gpio_ich -[ 13.924585] EXT4-fs (sda1): re-mounted. Opts: errors=remount-ro -[ 13.962851] Non-volatile memory driver v1.3 -[ 14.000898] thinkpad_acpi: ThinkPad ACPI Extras v0.25 -[ 14.000903] thinkpad_acpi: http://ibm-acpi.sf.net/ -[ 14.000905] thinkpad_acpi: ThinkPad BIOS 6DET65WW (3.15 ), EC 7XHT24WW-1.06 -[ 14.000907] thinkpad_acpi: Lenovo ThinkPad X200, model 7459GW4 -[ 14.023348] thinkpad_acpi: detected a 16-level brightness capable ThinkPad -[ 14.023562] thinkpad_acpi: radio switch found; radios are enabled -[ 14.023579] thinkpad_acpi: This ThinkPad has standard ACPI backlight brightness control, supported by the ACPI video driver -[ 14.023581] thinkpad_acpi: Disabling thinkpad-acpi brightness events by default... -[ 14.027716] thinkpad_acpi: rfkill switch tpacpi_bluetooth_sw: radio is unblocked -[ 14.033143] thinkpad_acpi: Standard ACPI backlight interface available, not loading native one -[ 14.033423] thinkpad_acpi: Console audio control enabled, mode: monitor (read only) -[ 14.037967] input: ThinkPad Extra Buttons as /devices/platform/thinkpad_acpi/input/input7 -[ 14.094334] snd_hda_intel 0000:00:1b.0: irq 46 for MSI/MSI-X -[ 14.117123] hda_codec: CX20561 (Hermosa): BIOS auto-probing. -[ 14.117573] autoconfig: line_outs=1 (0x1a/0x0/0x0/0x0/0x0) type:speaker -[ 14.117576] speaker_outs=0 (0x0/0x0/0x0/0x0/0x0) -[ 14.117578] hp_outs=2 (0x19/0x16/0x0/0x0/0x0) -[ 14.117580] mono: mono_out=0x0 -[ 14.117582] dig-out=0x1c/0x0 -[ 14.117583] inputs: -[ 14.117585] Mic=0x18 -[ 14.117587] Internal Mic=0x1d -[ 14.117589] Dock Mic=0x17 -[ 14.118587] hda_codec: Enable sync_write for stable communication -[ 14.121304] input: HDA Intel Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input11 -[ 14.121403] input: HDA Intel Dock Headphone as /devices/pci0000:00/0000:00:1b.0/sound/card0/input10 -[ 14.121491] input: HDA Intel Dock Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input9 -[ 14.121572] input: HDA Intel Mic as /devices/pci0000:00/0000:00:1b.0/sound/card0/input8 -[ 14.141178] device-mapper: multipath: version 1.6.0 loaded -[ 14.154949] kvm: disabled by bios -[ 14.165173] kvm: disabled by bios -[ 14.310307] mei_me 0000:00:03.0: irq 47 for MSI/MSI-X -[ 14.401058] cfg80211: Calling CRDA to update world regulatory domain -[ 14.440429] Intel(R) Wireless WiFi driver for Linux, in-tree: -[ 14.440433] Copyright(c) 2003-2013 Intel Corporation -[ 14.440762] iwlwifi 0000:03:00.0: can't disable ASPM; OS doesn't have ASPM control -[ 14.440834] iwlwifi 0000:03:00.0: irq 48 for MSI/MSI-X -[ 14.441053] 0000:03:00.0: Missing Free firmware -[ 14.441095] iwlwifi 0000:03:00.0: Couldn't request the fw -[ 14.442753] iwlwifi: probe of 0000:03:00.0 failed with error -22 -[ 14.514047] pci 0000:03:00.0: Direct firmware load failed with error -2 -[ 14.514052] pci 0000:03:00.0: Falling back to user helper -[ 14.519440] type=1400 audit(1440917350.154:2): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/sbin/dhclient" pid=569 comm="apparmor_parser" -[ 14.519450] type=1400 audit(1440917350.154:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=569 comm="apparmor_parser" -[ 14.519457] type=1400 audit(1440917350.154:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=569 comm="apparmor_parser" -[ 14.520174] systemd-udevd[425]: renamed network interface eth0 to eth4 -[ 14.520232] type=1400 audit(1440917350.155:5): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=569 comm="apparmor_parser" -[ 14.520241] type=1400 audit(1440917350.155:6): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=569 comm="apparmor_parser" -[ 14.520582] type=1400 audit(1440917350.155:7): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=569 comm="apparmor_parser" -[ 15.055767] SGI XFS with ACLs, security attributes, realtime, large block/inode numbers, no debug enabled -[ 15.119824] XFS (sda6): Mounting Filesystem -[ 15.569603] XFS (sda6): Ending clean mount -[ 15.844338] init: failsafe main process (725) killed by TERM signal -[ 16.170233] type=1400 audit(1440917351.805:8): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/sbin/dhclient" pid=831 comm="apparmor_parser" -[ 16.170245] type=1400 audit(1440917351.805:9): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=831 comm="apparmor_parser" -[ 16.170252] type=1400 audit(1440917351.805:10): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/connman/scripts/dhclient-script" pid=831 comm="apparmor_parser" -[ 16.170906] type=1400 audit(1440917351.805:11): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/NetworkManager/nm-dhcp-client.action" pid=831 comm="apparmor_parser" -[ 16.548278] Bluetooth: RFCOMM TTY layer initialized -[ 16.548295] Bluetooth: RFCOMM socket layer initialized -[ 16.548303] Bluetooth: RFCOMM ver 1.11 -[ 16.702630] init: cups main process (887) killed by HUP signal -[ 16.702645] init: cups main process ended, respawning -[ 16.717535] Bluetooth: BNEP (Ethernet Emulation) ver 1.3 -[ 16.717540] Bluetooth: BNEP filters: protocol multicast -[ 16.717552] Bluetooth: BNEP socket layer initialized -[ 18.798586] init: plymouth-upstart-bridge main process ended, respawning -[ 19.246364] e1000e 0000:00:19.0: irq 43 for MSI/MSI-X -[ 19.347188] e1000e 0000:00:19.0: irq 43 for MSI/MSI-X -[ 19.347386] IPv6: ADDRCONF(NETDEV_UP): eth4: link is not ready -[ 19.347784] IPv6: ADDRCONF(NETDEV_UP): eth4: link is not ready -[ 22.755913] e1000e: eth4 NIC Link is Up 1000 Mbps Full Duplex, Flow Control: Rx/Tx -[ 22.756058] IPv6: ADDRCONF(NETDEV_CHANGE): eth4: link becomes ready -[ 46.558282] audit_printk_skb: 96 callbacks suppressed -[ 46.558287] type=1400 audit(1440913378.392:44): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/lib/cups/backend/cups-pdf" pid=2159 comm="apparmor_parser" -[ 46.558298] type=1400 audit(1440913378.392:45): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=2159 comm="apparmor_parser" -[ 46.558959] type=1400 audit(1440913378.392:46): apparmor="STATUS" operation="profile_replace" profile="unconfined" name="/usr/sbin/cupsd" pid=2159 comm="apparmor_parser" diff --git a/site/docs/hardware/hwdumps/x200/dmidecode.err.log b/site/docs/hardware/hwdumps/x200/dmidecode.err.log deleted file mode 100644 index e69de29..0000000 diff --git a/site/docs/hardware/hwdumps/x200/dmidecode.log b/site/docs/hardware/hwdumps/x200/dmidecode.log deleted file mode 100644 index a5a1961..0000000 --- a/site/docs/hardware/hwdumps/x200/dmidecode.log +++ /dev/null @@ -1,587 +0,0 @@ -# dmidecode 2.12 -SMBIOS 2.4 present. -68 structures occupying 2464 bytes. -Table at 0x000E0010. - -Handle 0x0000, DMI type 0, 24 bytes -BIOS Information - Vendor: LENOVO - Version: 6DET65WW (3.15 ) - Release Date: 08/24/2010 - Address: 0xE0000 - Runtime Size: 128 kB - ROM Size: 8192 kB - Characteristics: - PCI is supported - PC Card (PCMCIA) is supported - PNP is supported - BIOS is upgradeable - BIOS shadowing is allowed - ESCD support is available - Boot from CD is supported - Selectable boot is supported - BIOS ROM is socketed - EDD is supported - ACPI is supported - USB legacy is supported - BIOS boot specification is supported - Targeted content distribution is supported - BIOS Revision: 3.21 - Firmware Revision: 1.6 - -Handle 0x0001, DMI type 1, 27 bytes -System Information - Manufacturer: LENOVO - Product Name: 7459GW4 - Version: ThinkPad X200 - Serial Number: L3AAR0B - UUID: 93861E01-4A15-11CB-8F2C-D4BC407E0839 - Wake-up Type: Power Switch - SKU Number: Not Specified - Family: ThinkPad X200 - -Handle 0x0002, DMI type 2, 8 bytes -Base Board Information - Manufacturer: LENOVO - Product Name: 7459GW4 - Version: Not Available - Serial Number: 1ZFDS89N4DD - -Handle 0x0003, DMI type 3, 13 bytes -Chassis Information - Manufacturer: LENOVO - Type: Notebook - Lock: Not Present - Version: Not Available - Serial Number: Not Available - Asset Tag: 1S7459GW4L3AAR0B - Boot-up State: Unknown - Power Supply State: Unknown - Thermal State: Unknown - Security Status: Unknown - -Handle 0x0004, DMI type 126, 13 bytes -Inactive - -Handle 0x0005, DMI type 126, 13 bytes -Inactive - -Handle 0x0006, DMI type 4, 35 bytes -Processor Information - Socket Designation: None - Type: Central Processor - Family: Other - Manufacturer: GenuineIntel - ID: 76 06 01 00 FF FB EB BF - Signature: Type 0, Family 6, Model 23, Stepping 6 - Flags: - FPU (Floating-point unit on-chip) - VME (Virtual mode extension) - DE (Debugging extension) - PSE (Page size extension) - TSC (Time stamp counter) - MSR (Model specific registers) - PAE (Physical address extension) - MCE (Machine check exception) - CX8 (CMPXCHG8 instruction supported) - APIC (On-chip APIC hardware supported) - SEP (Fast system call) - MTRR (Memory type range registers) - PGE (Page global enable) - MCA (Machine check architecture) - CMOV (Conditional move instruction supported) - PAT (Page attribute table) - PSE-36 (36-bit page size extension) - CLFSH (CLFLUSH instruction supported) - DS (Debug store) - ACPI (ACPI supported) - MMX (MMX technology supported) - FXSR (FXSAVE and FXSTOR instructions supported) - SSE (Streaming SIMD extensions) - SSE2 (Streaming SIMD extensions 2) - SS (Self-snoop) - HTT (Multi-threading) - TM (Thermal monitor supported) - PBE (Pending break enabled) - Version: Intel(R) Core(TM)2 Duo CPU P8600 @ 2.40GHz - Voltage: 1.2 V - External Clock: 266 MHz - Max Speed: 2400 MHz - Current Speed: 2400 MHz - Status: Populated, Enabled - Upgrade: None - L1 Cache Handle: 0x000A - L2 Cache Handle: 0x000C - L3 Cache Handle: Not Provided - Serial Number: Not Specified - Asset Tag: Not Specified - Part Number: Not Specified - -Handle 0x0007, DMI type 5, 20 bytes -Memory Controller Information - Error Detecting Method: None - Error Correcting Capabilities: - None - Supported Interleave: One-way Interleave - Current Interleave: One-way Interleave - Maximum Memory Module Size: 4096 MB - Maximum Total Memory Size: 8192 MB - Supported Speeds: - Other - Supported Memory Types: - DIMM - SDRAM - Memory Module Voltage: 2.9 V - Associated Memory Slots: 2 - 0x0008 - 0x0009 - Enabled Error Correcting Capabilities: - Unknown - -Handle 0x0008, DMI type 6, 12 bytes -Memory Module Information - Socket Designation: DIMM Slot 1 - Bank Connections: 0 1 - Current Speed: 42 ns - Type: DIMM SDRAM - Installed Size: 2048 MB (Double-bank Connection) - Enabled Size: 2048 MB (Double-bank Connection) - Error Status: OK - -Handle 0x0009, DMI type 6, 12 bytes -Memory Module Information - Socket Designation: DIMM Slot 2 - Bank Connections: 2 3 - Current Speed: 42 ns - Type: DIMM SDRAM - Installed Size: Not Installed - Enabled Size: Not Installed - Error Status: OK - -Handle 0x000A, DMI type 7, 19 bytes -Cache Information - Socket Designation: Internal L1 Cache - Configuration: Enabled, Socketed, Level 1 - Operational Mode: Write Back - Location: Internal - Installed Size: 64 kB - Maximum Size: 64 kB - Supported SRAM Types: - Synchronous - Installed SRAM Type: Synchronous - Speed: Unknown - Error Correction Type: Single-bit ECC - System Type: Instruction - Associativity: 8-way Set-associative - -Handle 0x000B, DMI type 7, 19 bytes -Cache Information - Socket Designation: Internal L1 Cache - Configuration: Enabled, Socketed, Level 1 - Operational Mode: Write Back - Location: Internal - Installed Size: 64 kB - Maximum Size: 64 kB - Supported SRAM Types: - Synchronous - Installed SRAM Type: Synchronous - Speed: Unknown - Error Correction Type: Single-bit ECC - System Type: Data - Associativity: 8-way Set-associative - -Handle 0x000C, DMI type 7, 19 bytes -Cache Information - Socket Designation: Internal L2 Cache - Configuration: Enabled, Socketed, Level 2 - Operational Mode: Write Back - Location: Internal - Installed Size: 3072 kB - Maximum Size: 3072 kB - Supported SRAM Types: - Burst - Installed SRAM Type: Burst - Speed: Unknown - Error Correction Type: Single-bit ECC - System Type: Unified - Associativity: 8-way Set-associative - -Handle 0x000D, DMI type 8, 9 bytes -Port Connector Information - Internal Reference Designator: Not Available - Internal Connector Type: None - External Reference Designator: External Monitor - External Connector Type: DB-15 female - Port Type: Video Port - -Handle 0x000E, DMI type 8, 9 bytes -Port Connector Information - Internal Reference Designator: Not Available - Internal Connector Type: None - External Reference Designator: Microphone Jack - External Connector Type: Mini Jack (headphones) - Port Type: Audio Port - -Handle 0x000F, DMI type 8, 9 bytes -Port Connector Information - Internal Reference Designator: Not Available - Internal Connector Type: None - External Reference Designator: Headphone Jack - External Connector Type: Mini Jack (headphones) - Port Type: Audio Port - -Handle 0x0010, DMI type 8, 9 bytes -Port Connector Information - Internal Reference Designator: Not Available - Internal Connector Type: None - External Reference Designator: Modem - External Connector Type: RJ-11 - Port Type: Modem Port - -Handle 0x0011, DMI type 8, 9 bytes -Port Connector Information - Internal Reference Designator: Not Available - Internal Connector Type: None - External Reference Designator: Ethernet - External Connector Type: RJ-45 - Port Type: Network Port - -Handle 0x0012, DMI type 8, 9 bytes -Port Connector Information - Internal Reference Designator: Not Available - Internal Connector Type: None - External Reference Designator: USB 1 - External Connector Type: Access Bus (USB) - Port Type: USB - -Handle 0x0013, DMI type 8, 9 bytes -Port Connector Information - Internal Reference Designator: Not Available - Internal Connector Type: None - External Reference Designator: USB 2 - External Connector Type: Access Bus (USB) - Port Type: USB - -Handle 0x0014, DMI type 8, 9 bytes -Port Connector Information - Internal Reference Designator: Not Available - Internal Connector Type: None - External Reference Designator: USB 3 - External Connector Type: Access Bus (USB) - Port Type: USB - -Handle 0x0015, DMI type 126, 9 bytes -Inactive - -Handle 0x0016, DMI type 126, 9 bytes -Inactive - -Handle 0x0017, DMI type 126, 9 bytes -Inactive - -Handle 0x0018, DMI type 126, 9 bytes -Inactive - -Handle 0x0019, DMI type 126, 9 bytes -Inactive - -Handle 0x001A, DMI type 126, 9 bytes -Inactive - -Handle 0x001B, DMI type 126, 13 bytes -Inactive - -Handle 0x001C, DMI type 10, 6 bytes -On Board Device Information - Type: Other - Status: Disabled - Description: IBM Embedded Security hardware - -Handle 0x001D, DMI type 11, 5 bytes -OEM Strings - String 1: IBM ThinkPad Embedded Controller -[7XHT24WW-1.06 ]- - -Handle 0x001E, DMI type 13, 22 bytes -BIOS Language Information - Language Description Format: Abbreviated - Installable Languages: 1 - enUS - Currently Installed Language: enUS - -Handle 0x001F, DMI type 15, 25 bytes -System Event Log - Area Length: 0 bytes - Header Start Offset: 0x0000 - Header Length: 16 bytes - Data Start Offset: 0x0010 - Access Method: General-purpose non-volatile data functions - Access Address: 0x0000 - Status: Valid, Not Full - Change Token: 0x000000FC - Header Format: Type 1 - Supported Log Type Descriptors: 1 - Descriptor 1: POST error - Data Format 1: POST results bitmap - -Handle 0x0020, DMI type 16, 15 bytes -Physical Memory Array - Location: System Board Or Motherboard - Use: System Memory - Error Correction Type: None - Maximum Capacity: 4 GB - Error Information Handle: Not Provided - Number Of Devices: 2 - -Handle 0x0021, DMI type 17, 27 bytes -Memory Device - Array Handle: 0x0020 - Error Information Handle: No Error - Total Width: 64 bits - Data Width: 64 bits - Size: 2048 MB - Form Factor: SODIMM - Set: None - Locator: DIMM 1 - Bank Locator: Bank 0/1 - Type: DDR3 - Type Detail: Synchronous - Speed: 1066 MHz - Manufacturer: 02FE - Serial Number: F4BB7CA2 - Asset Tag: 0839 - Part Number: EBJ21UE8BASA-AE-E - -Handle 0x0022, DMI type 17, 27 bytes -Memory Device - Array Handle: 0x0020 - Error Information Handle: No Error - Total Width: Unknown - Data Width: Unknown - Size: No Module Installed - Form Factor: SODIMM - Set: None - Locator: DIMM 2 - Bank Locator: Bank 2/3 - Type: DDR2 - Type Detail: Synchronous - Speed: 1066 MHz - Manufacturer: - Serial Number: - Asset Tag: - Part Number: - -Handle 0x0023, DMI type 18, 23 bytes -32-bit Memory Error Information - Type: OK - Granularity: Unknown - Operation: Unknown - Vendor Syndrome: Unknown - Memory Array Address: Unknown - Device Address: Unknown - Resolution: Unknown - -Handle 0x0024, DMI type 19, 15 bytes -Memory Array Mapped Address - Starting Address: 0x00000000000 - Ending Address: 0x0007FFFFFFF - Range Size: 2 GB - Physical Array Handle: 0x0020 - Partition Width: 2 - -Handle 0x0025, DMI type 20, 19 bytes -Memory Device Mapped Address - Starting Address: 0x00000000000 - Ending Address: 0x0007FFFFFFF - Range Size: 2 GB - Physical Device Handle: 0x0021 - Memory Array Mapped Address Handle: 0x0024 - Partition Row Position: 1 - -Handle 0x0026, DMI type 20, 19 bytes -Memory Device Mapped Address - Starting Address: 0x0007FFFFC00 - Ending Address: 0x0007FFFFFFF - Range Size: 1 kB - Physical Device Handle: 0x0022 - Memory Array Mapped Address Handle: 0x0024 - Partition Row Position: 1 - -Handle 0x0027, DMI type 21, 7 bytes -Built-in Pointing Device - Type: Track Point - Interface: PS/2 - Buttons: 3 - -Handle 0x0028, DMI type 126, 26 bytes -Inactive - -Handle 0x0029, DMI type 126, 26 bytes -Inactive - -Handle 0x002A, DMI type 24, 5 bytes -Hardware Security - Power-On Password Status: Disabled - Keyboard Password Status: Disabled - Administrator Password Status: Disabled - Front Panel Reset Status: Unknown - -Handle 0x002B, DMI type 32, 11 bytes -System Boot Information - Status: No errors detected - -Handle 0x002C, DMI type 131, 17 bytes -OEM-specific Type - Header and Data: - 83 11 2C 00 01 02 03 FF FF 1F 00 00 00 00 00 02 - 00 - Strings: - BOOTINF 20h - BOOTDEV 21h - KEYPTRS 23h - -Handle 0x002D, DMI type 131, 22 bytes -OEM-specific Type - Header and Data: - 83 16 2D 00 01 00 00 00 00 00 00 00 00 00 00 00 - 00 00 00 00 00 01 - Strings: - TVT-Enablement - -Handle 0x002E, DMI type 132, 7 bytes -OEM-specific Type - Header and Data: - 84 07 2E 00 02 D8 36 - -Handle 0x002F, DMI type 133, 5 bytes -OEM-specific Type - Header and Data: - 85 05 2F 00 01 - Strings: - KHOIHGIUCCHHII - -Handle 0x0030, DMI type 134, 13 bytes -OEM-specific Type - Header and Data: - 86 0D 30 00 30 10 08 20 00 00 00 00 00 - -Handle 0x0031, DMI type 134, 16 bytes -OEM-specific Type - Header and Data: - 86 10 31 00 00 49 4E 54 43 01 01 00 00 02 01 02 - Strings: - TPM INFO - System Reserved - -Handle 0x0032, DMI type 135, 13 bytes -OEM-specific Type - Header and Data: - 87 0D 32 00 54 50 07 00 01 00 00 00 00 - -Handle 0x0033, DMI type 135, 18 bytes -OEM-specific Type - Header and Data: - 87 12 33 00 54 50 07 01 01 B9 05 00 00 00 00 00 - 00 00 - -Handle 0x0034, DMI type 135, 35 bytes -OEM-specific Type - Header and Data: - 87 23 34 00 54 50 07 02 42 41 59 20 49 2F 4F 20 - 01 00 02 00 00 0B 00 48 1C 3E 18 02 00 0B 00 40 - 1C 3A 18 - -Handle 0x0035, DMI type 135, 34 bytes -OEM-specific Type - Header and Data: - 87 22 35 00 54 50 07 04 01 06 01 01 02 00 02 01 - 02 00 03 01 02 00 04 01 02 00 05 01 02 00 06 01 - 02 00 - -Handle 0x0036, DMI type 135, 10 bytes -OEM-specific Type - Header and Data: - 87 0A 36 00 54 50 07 03 01 0A - -Handle 0x0037, DMI type 136, 6 bytes -OEM-specific Type - Header and Data: - 88 06 37 00 5A 5A - -Handle 0x0038, DMI type 126, 28 bytes -Inactive - -Handle 0x0039, DMI type 138, 40 bytes -OEM-specific Type - Header and Data: - 8A 28 39 00 14 01 02 01 40 02 01 40 02 01 40 02 - 01 40 01 40 42 49 4F 53 20 50 61 73 73 77 6F 72 - 64 20 46 6F 72 6D 61 74 - -Handle 0x003A, DMI type 139, 37 bytes -OEM-specific Type - Header and Data: - 8B 25 3A 00 11 01 0A 00 00 00 00 00 00 00 00 00 - 00 50 57 4D 53 20 4B 65 79 20 49 6E 66 6F 72 6D - 61 74 69 6F 6E - -Handle 0x003B, DMI type 140, 67 bytes -OEM-specific Type - Header and Data: - 8C 43 3B 00 4C 45 4E 4F 56 4F 0B 00 01 9A 13 CD - C4 7A 2A 8E 76 C3 C4 4E B9 B1 DD 4E 7C 01 00 00 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - 00 00 00 - -Handle 0x003C, DMI type 140, 47 bytes -OEM-specific Type - Header and Data: - 8C 2F 3C 00 4C 45 4E 4F 56 4F 0B 01 01 08 00 BF - DA 3C 04 5C 72 D9 7D 0D 79 DE 46 98 23 10 B1 00 - 00 00 00 10 00 10 00 10 01 D0 00 20 01 00 01 - -Handle 0x003D, DMI type 140, 63 bytes -OEM-specific Type - Header and Data: - 8C 3F 3D 00 4C 45 4E 4F 56 4F 0B 02 01 00 00 00 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - -Handle 0x003E, DMI type 140, 17 bytes -OEM-specific Type - Header and Data: - 8C 11 3E 00 4C 45 4E 4F 56 4F 0B 03 01 00 00 00 - 00 - -Handle 0x003F, DMI type 140, 19 bytes -OEM-specific Type - Header and Data: - 8C 13 3F 00 4C 45 4E 4F 56 4F 0B 04 01 B2 00 53 - 4D 20 00 - -Handle 0x0040, DMI type 129, 8 bytes -OEM-specific Type - Header and Data: - 81 08 40 00 01 01 02 01 - Strings: - Intel_ASF - Intel_ASF_001 - -Handle 0x0041, DMI type 130, 20 bytes -OEM-specific Type - Header and Data: - 82 14 41 00 24 41 4D 54 01 01 01 01 01 A5 0B 04 - 00 00 00 00 - -Handle 0x0042, DMI type 131, 64 bytes -OEM-specific Type - Header and Data: - 83 40 42 00 14 00 00 00 00 00 40 2A 00 00 00 00 - F8 00 17 29 00 00 00 00 2D 00 00 00 00 00 04 00 - 64 04 03 00 01 00 01 15 C8 00 F5 10 00 00 00 00 - 00 00 00 00 07 00 00 00 76 50 72 6F 00 00 00 00 - -Handle 0x0043, DMI type 127, 4 bytes -End Of Table - diff --git a/site/docs/hardware/hwdumps/x200/ectool.err.log b/site/docs/hardware/hwdumps/x200/ectool.err.log deleted file mode 100644 index 452503e..0000000 --- a/site/docs/hardware/hwdumps/x200/ectool.err.log +++ /dev/null @@ -1 +0,0 @@ -bash: ectool: command not found diff --git a/site/docs/hardware/hwdumps/x200/ectool.log b/site/docs/hardware/hwdumps/x200/ectool.log deleted file mode 100644 index e69de29..0000000 diff --git a/site/docs/hardware/hwdumps/x200/flashrom_info.err.log b/site/docs/hardware/hwdumps/x200/flashrom_info.err.log deleted file mode 100644 index 933ac57..0000000 --- a/site/docs/hardware/hwdumps/x200/flashrom_info.err.log +++ /dev/null @@ -1,14 +0,0 @@ -======================================================================== -WARNING! You seem to be running flashrom on an unsupported laptop. -Laptops, notebooks and netbooks are difficult to support and we -recommend to use the vendor flashing utility. The embedded controller -(EC) in these machines often interacts badly with flashing. -See http://www.flashrom.org/Laptops for details. - -If flash is shared with the EC, erase is guaranteed to brick your laptop -and write may brick your laptop. -Read and probe may irritate your EC and cause fan failure, backlight -failure and sudden poweroff. -You have been warned. -======================================================================== -Proceeding anyway because user forced us to. diff --git a/site/docs/hardware/hwdumps/x200/flashrom_info.log b/site/docs/hardware/hwdumps/x200/flashrom_info.log deleted file mode 100644 index d9a82f8..0000000 --- a/site/docs/hardware/hwdumps/x200/flashrom_info.log +++ /dev/null @@ -1,289 +0,0 @@ -flashrom v0.9.6.1-r1563 on Linux 3.13.0-39-lowlatency (x86_64) -flashrom is free software, get the source code at http://www.flashrom.org - -flashrom was built with libpci 3.1.9, GCC 4.7.1, little endian -Command line (3 args): flashrom -V -p internal:laptop=force_I_want_a_brick -Calibrating delay loop... OS timer resolution is 1 usecs, 1578M loops per second, 10 myus = 11 us, 100 myus = 114 us, 1000 myus = 1002 us, 10000 myus = 10004 us, 4 myus = 5 us, OK. -Initializing internal programmer -No coreboot table found. -DMI string system-manufacturer: "LENOVO" -DMI string system-product-name: "7459GW4" -DMI string system-version: "ThinkPad X200" -DMI string baseboard-manufacturer: "LENOVO" -DMI string baseboard-product-name: "7459GW4" -DMI string baseboard-version: "Not Available" -DMI string chassis-type: "Notebook" -Laptop detected via DMI. -Found chipset "Intel ICH9M-E" with PCI ID 8086:2917. Enabling flash write... -0xfff80000/0xffb80000 FWH IDSEL: 0x0 -0xfff00000/0xffb00000 FWH IDSEL: 0x0 -0xffe80000/0xffa80000 FWH IDSEL: 0x0 -0xffe00000/0xffa00000 FWH IDSEL: 0x0 -0xffd80000/0xff980000 FWH IDSEL: 0x0 -0xffd00000/0xff900000 FWH IDSEL: 0x0 -0xffc80000/0xff880000 FWH IDSEL: 0x0 -0xffc00000/0xff800000 FWH IDSEL: 0x0 -0xff700000/0xff300000 FWH IDSEL: 0x4 -0xff600000/0xff200000 FWH IDSEL: 0x5 -0xff500000/0xff100000 FWH IDSEL: 0x6 -0xff400000/0xff000000 FWH IDSEL: 0x7 -0xfff80000/0xffb80000 FWH decode enabled -0xfff00000/0xffb00000 FWH decode enabled -0xffe80000/0xffa80000 FWH decode enabled -0xffe00000/0xffa00000 FWH decode enabled -0xffd80000/0xff980000 FWH decode enabled -0xffd00000/0xff900000 FWH decode enabled -0xffc80000/0xff880000 FWH decode enabled -0xffc00000/0xff800000 FWH decode enabled -0xff700000/0xff300000 FWH decode disabled -0xff600000/0xff200000 FWH decode disabled -0xff500000/0xff100000 FWH decode disabled -0xff400000/0xff000000 FWH decode disabled -Maximum FWH chip size: 0x400000 bytes -BIOS Lock Enable: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 -Root Complex Register Block address = 0xfed1c000 -GCS = 0x7b0461: BIOS Interface Lock-Down: enabled, Boot BIOS Straps: 0x1 (SPI) -Top Swap : not enabled -SPIBAR = 0xfed1c000 + 0x3800 -0x04: 0xe008 (HSFS) -HSFS: FDONE=0, FCERR=0, AEL=0, BERASE=1, SCIP=0, FDOPSS=1, FDV=1, FLOCKDN=1 -WARNING: SPI Configuration Lockdown activated. -Reading OPCODES... done -0x06: 0x3f04 (HSFC) -HSFC: FGO=0, FCYCLE=2, FDBC=63, SME=0 -0x08: 0x00001000 (FADDR) -0x50: 0x00001a1b (FRAP) -BMWAG 0x00, BMRAG 0x00, BRWA 0x1a, BRRA 0x1b -0x54: 0x00000000 FREG0: WARNING: Flash Descriptor region (0x00000000-0x00000fff) is read-only. -0x58: 0x07ff0600 FREG1: BIOS region (0x00600000-0x007fffff) is read-write. -0x5C: 0x05f50001 FREG2: WARNING: Management Engine region (0x00001000-0x005f5fff) is locked. -0x60: 0x05f705f6 FREG3: Gigabit Ethernet region (0x005f6000-0x005f7fff) is read-write. -0x64: 0x05ff05f8 FREG4: Platform Data region (0x005f8000-0x005fffff) is read-write. -0x74: 0x9fff07e0 PR0: WARNING: 0x007e0000-0x01ffffff is read-only. -0x84: 0x85ff85f8 PR4: WARNING: 0x005f8000-0x005fffff is locked. -Please send a verbose log to flashrom@flashrom.org if this board is not listed on -http://flashrom.org/Supported_hardware#Supported_mainboards yet. -Writes have been disabled. You can enforce write support with the -ich_spi_force programmer option, but it will most likely harm your hardware! -If you force flashrom you will get no support if something breaks. -0x90: 0x04 (SSFS) -SSFS: SCIP=0, FDONE=1, FCERR=0, AEL=0 -0x91: 0x000000 (SSFC) -SSFC: SCGO=0, ACS=0, SPOP=0, COP=0, DBC=0, SME=0, SCF=0 -0x94: 0x5006 (PREOP) -0x96: 0x143b (OPTYPE) -0x98: 0x05200302 (OPMENU) -0x9C: 0x0601209f (OPMENU+4) -0xA0: 0x00000000 (BBAR) -0xC4: 0x00002005 (LVSCC) -LVSCC: BES=0x1, WG=1, WSR=0, WEWS=0, EO=0x20, VCL=0 -0xC8: 0x00002005 (UVSCC) -UVSCC: BES=0x1, WG=1, WSR=0, WEWS=0, EO=0x20, VCL=0 -0xD0: 0x00000000 (FPB) - -SPI Read Configuration: prefetching disabled, caching enabled, OK. -The following protocols are supported: FWH, SPI. -Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25LQ032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF641(A), 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for EMST F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25QH32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L1005, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L2005, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L4005, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L8005, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L3205, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Chip status register is 00 -Chip status register: Status Register Write Disable (SRWD) is not set -Chip status register: Bit 6 is not set -Chip status register: Block Protect 3 (BP3) is not set -Chip status register: Block Protect 2 (BP2) is not set -Chip status register: Block Protect 1 (BP1) is not set -Chip status register: Block Protect 0 (BP0) is not set -Chip status register: Write Enable Latch (WEL) is not set -Chip status register: Write In Progress (WIP/BUSY) is not set -Found Macronix flash chip "MX25L6405" (8192 kB, SPI) at physical address 0xff800000. -Probing for Macronix MX25L12805, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Numonyx M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Numonyx M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Numonyx M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Numonyx M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Numonyx M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Numonyx N25Q064, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC Pm25LV010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC Pm25LV512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Sanyo LF25FW203A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Spansion S25FL032A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Spansion S25FL064A, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for SST SST25LF040A, 512 kB: Invalid OPCODE 0xab, will not execute. -Probing for SST SST25LF080A, 1024 kB: Invalid OPCODE 0xab, will not execute. -Probing for SST SST25VF010, 128 kB: Invalid OPCODE 0x90, will not execute. -Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for SST SST25VF040, 512 kB: Invalid OPCODE 0x90, will not execute. -Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for SST SST25VF040B.REMS, 512 kB: Invalid OPCODE 0x90, will not execute. -Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P05, 64 kB: Ignoring RES in favour of RDID. -Probing for ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P10, 128 kB: Ignoring RES in favour of RDID. -Probing for ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P40-old, 512 kB: Ignoring RES in favour of RDID. -Probing for ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Unknown SFDP-capable chip, 0 kB: Invalid OPCODE 0x5a, will not execute. -Receiving SFDP signature failed. -Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Generic unknown SPI chip (REMS), 0 kB: Invalid OPCODE 0x90, will not execute. -Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0x0a, id2 0xce, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0x4e, id2 0x41, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0x4e, id2 0x41, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Found Macronix flash chip "MX25L6405" (8192 kB, SPI). -No operations were specified. -Restoring MMIO space at 0x7f9c951da8a0 -Restoring PCI config space for 00:1f:0 reg 0xdc diff --git a/site/docs/hardware/hwdumps/x200/flashrom_read.err.log b/site/docs/hardware/hwdumps/x200/flashrom_read.err.log deleted file mode 100644 index 0a7925d..0000000 --- a/site/docs/hardware/hwdumps/x200/flashrom_read.err.log +++ /dev/null @@ -1,16 +0,0 @@ -======================================================================== -WARNING! You seem to be running flashrom on an unsupported laptop. -Laptops, notebooks and netbooks are difficult to support and we -recommend to use the vendor flashing utility. The embedded controller -(EC) in these machines often interacts badly with flashing. -See http://www.flashrom.org/Laptops for details. - -If flash is shared with the EC, erase is guaranteed to brick your laptop -and write may brick your laptop. -Read and probe may irritate your EC and cause fan failure, backlight -failure and sudden poweroff. -You have been warned. -======================================================================== -Proceeding anyway because user forced us to. -Transaction error! -Read operation failed! diff --git a/site/docs/hardware/hwdumps/x200/flashrom_read.log b/site/docs/hardware/hwdumps/x200/flashrom_read.log deleted file mode 100644 index 0c78c81..0000000 --- a/site/docs/hardware/hwdumps/x200/flashrom_read.log +++ /dev/null @@ -1,292 +0,0 @@ -flashrom v0.9.6.1-r1563 on Linux 3.13.0-39-lowlatency (x86_64) -flashrom is free software, get the source code at http://www.flashrom.org - -flashrom was built with libpci 3.1.9, GCC 4.7.1, little endian -Command line (5 args): flashrom -V -p internal:laptop=force_I_want_a_brick -r rom.bin -Calibrating delay loop... OS timer resolution is 2 usecs, 1579M loops per second, 10 myus = 10 us, 100 myus = 100 us, 1000 myus = 1004 us, 10000 myus = 10014 us, 8 myus = 9 us, OK. -Initializing internal programmer -No coreboot table found. -DMI string system-manufacturer: "LENOVO" -DMI string system-product-name: "7459GW4" -DMI string system-version: "ThinkPad X200" -DMI string baseboard-manufacturer: "LENOVO" -DMI string baseboard-product-name: "7459GW4" -DMI string baseboard-version: "Not Available" -DMI string chassis-type: "Notebook" -Laptop detected via DMI. -Found chipset "Intel ICH9M-E" with PCI ID 8086:2917. Enabling flash write... -0xfff80000/0xffb80000 FWH IDSEL: 0x0 -0xfff00000/0xffb00000 FWH IDSEL: 0x0 -0xffe80000/0xffa80000 FWH IDSEL: 0x0 -0xffe00000/0xffa00000 FWH IDSEL: 0x0 -0xffd80000/0xff980000 FWH IDSEL: 0x0 -0xffd00000/0xff900000 FWH IDSEL: 0x0 -0xffc80000/0xff880000 FWH IDSEL: 0x0 -0xffc00000/0xff800000 FWH IDSEL: 0x0 -0xff700000/0xff300000 FWH IDSEL: 0x4 -0xff600000/0xff200000 FWH IDSEL: 0x5 -0xff500000/0xff100000 FWH IDSEL: 0x6 -0xff400000/0xff000000 FWH IDSEL: 0x7 -0xfff80000/0xffb80000 FWH decode enabled -0xfff00000/0xffb00000 FWH decode enabled -0xffe80000/0xffa80000 FWH decode enabled -0xffe00000/0xffa00000 FWH decode enabled -0xffd80000/0xff980000 FWH decode enabled -0xffd00000/0xff900000 FWH decode enabled -0xffc80000/0xff880000 FWH decode enabled -0xffc00000/0xff800000 FWH decode enabled -0xff700000/0xff300000 FWH decode disabled -0xff600000/0xff200000 FWH decode disabled -0xff500000/0xff100000 FWH decode disabled -0xff400000/0xff000000 FWH decode disabled -Maximum FWH chip size: 0x400000 bytes -BIOS Lock Enable: disabled, BIOS Write Enable: disabled, BIOS_CNTL is 0x0 -Root Complex Register Block address = 0xfed1c000 -GCS = 0x7b0461: BIOS Interface Lock-Down: enabled, Boot BIOS Straps: 0x1 (SPI) -Top Swap : not enabled -SPIBAR = 0xfed1c000 + 0x3800 -0x04: 0xe008 (HSFS) -HSFS: FDONE=0, FCERR=0, AEL=0, BERASE=1, SCIP=0, FDOPSS=1, FDV=1, FLOCKDN=1 -WARNING: SPI Configuration Lockdown activated. -Reading OPCODES... done -0x06: 0x3f04 (HSFC) -HSFC: FGO=0, FCYCLE=2, FDBC=63, SME=0 -0x08: 0x00000000 (FADDR) -0x50: 0x00001a1b (FRAP) -BMWAG 0x00, BMRAG 0x00, BRWA 0x1a, BRRA 0x1b -0x54: 0x00000000 FREG0: WARNING: Flash Descriptor region (0x00000000-0x00000fff) is read-only. -0x58: 0x07ff0600 FREG1: BIOS region (0x00600000-0x007fffff) is read-write. -0x5C: 0x05f50001 FREG2: WARNING: Management Engine region (0x00001000-0x005f5fff) is locked. -0x60: 0x05f705f6 FREG3: Gigabit Ethernet region (0x005f6000-0x005f7fff) is read-write. -0x64: 0x05ff05f8 FREG4: Platform Data region (0x005f8000-0x005fffff) is read-write. -0x74: 0x9fff07e0 PR0: WARNING: 0x007e0000-0x01ffffff is read-only. -0x84: 0x85ff85f8 PR4: WARNING: 0x005f8000-0x005fffff is locked. -Please send a verbose log to flashrom@flashrom.org if this board is not listed on -http://flashrom.org/Supported_hardware#Supported_mainboards yet. -Writes have been disabled. You can enforce write support with the -ich_spi_force programmer option, but it will most likely harm your hardware! -If you force flashrom you will get no support if something breaks. -0x90: 0x04 (SSFS) -SSFS: SCIP=0, FDONE=1, FCERR=0, AEL=0 -0x91: 0x004240 (SSFC) -SSFC: SCGO=0, ACS=0, SPOP=0, COP=4, DBC=2, SME=0, SCF=0 -0x94: 0x5006 (PREOP) -0x96: 0x143b (OPTYPE) -0x98: 0x05200302 (OPMENU) -0x9C: 0x0601209f (OPMENU+4) -0xA0: 0x00000000 (BBAR) -0xC4: 0x00002005 (LVSCC) -LVSCC: BES=0x1, WG=1, WSR=0, WEWS=0, EO=0x20, VCL=0 -0xC8: 0x00002005 (UVSCC) -UVSCC: BES=0x1, WG=1, WSR=0, WEWS=0, EO=0x20, VCL=0 -0xD0: 0x00000000 (FPB) - -SPI Read Configuration: prefetching disabled, caching enabled, OK. -The following protocols are supported: FWH, SPI. -Probing for AMIC A25L05PT, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L05PU, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L10PT, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L10PU, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L20PT, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L20PU, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L40PT, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L40PU, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L80P, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L16PT, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L16PU, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L080, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L016, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25L032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for AMIC A25LQ032, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF021, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF041A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF081, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF321, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF321A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DF641(A), 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25DQ161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25F512B, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25FS010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT25FS040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT26DF041, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT26DF081A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT26DF161, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT26DF161A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT26F004, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45CS1282, 16896 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB011D, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB021D, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB041D, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB081D, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB161D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB321C, 4224 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB321D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel AT45DB642D, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for EMST F25L008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B05T, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B10T, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B20T, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B40T, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B80T, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B16T, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B32T, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25B64T, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F05, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25F32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25Q40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25Q80(A), 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25Q32(A/B), 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25QH16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon EN25QH32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for GigaDevice GD25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L1005, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L2005, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L4005, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L8005, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L1605, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L1635D, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L1635E, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L3205, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L3235D, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix MX25L6405, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Chip status register is 00 -Chip status register: Status Register Write Disable (SRWD) is not set -Chip status register: Bit 6 is not set -Chip status register: Block Protect 3 (BP3) is not set -Chip status register: Block Protect 2 (BP2) is not set -Chip status register: Block Protect 1 (BP1) is not set -Chip status register: Block Protect 0 (BP0) is not set -Chip status register: Write Enable Latch (WEL) is not set -Chip status register: Write In Progress (WIP/BUSY) is not set -Found Macronix flash chip "MX25L6405" (8192 kB, SPI) at physical address 0xff800000. -Probing for Macronix MX25L12805, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Numonyx M25PE10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Numonyx M25PE20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Numonyx M25PE40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Numonyx M25PE80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Numonyx M25PE16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Numonyx N25Q064, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC Pm25LV010, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC Pm25LV016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC Pm25LV020, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC Pm25LV040, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC Pm25LV080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC Pm25LV512, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Sanyo LF25FW203A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Spansion S25FL004A, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Spansion S25FL008A, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Spansion S25FL016A, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Spansion S25FL032A, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Spansion S25FL064A, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for SST SST25LF040A, 512 kB: Invalid OPCODE 0xab, will not execute. -Probing for SST SST25LF080A, 1024 kB: Invalid OPCODE 0xab, will not execute. -Probing for SST SST25VF010, 128 kB: Invalid OPCODE 0x90, will not execute. -Probing for SST SST25VF016B, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for SST SST25VF032B, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for SST SST25VF064C, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for SST SST25VF040, 512 kB: Invalid OPCODE 0x90, will not execute. -Probing for SST SST25VF040B, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for SST SST25VF040B.REMS, 512 kB: Invalid OPCODE 0x90, will not execute. -Probing for SST SST25VF080B, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P05-A, 64 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P05, 64 kB: Ignoring RES in favour of RDID. -Probing for ST M25P10-A, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P10, 128 kB: Ignoring RES in favour of RDID. -Probing for ST M25P20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P40-old, 512 kB: Ignoring RES in favour of RDID. -Probing for ST M25P80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25P128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25PX16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25PX32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST M25PX64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25Q80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25Q16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25Q32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25Q64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25Q128, 16384 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X10, 128 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X20, 256 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X40, 512 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X80, 1024 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X16, 2048 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X32, 4096 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Winbond W25X64, 8192 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Unknown SFDP-capable chip, 0 kB: Invalid OPCODE 0x5a, will not execute. -Receiving SFDP signature failed. -Probing for AMIC unknown AMIC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Atmel unknown Atmel SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Eon unknown Eon SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Macronix unknown Macronix SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for PMC unknown PMC SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for SST unknown SST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for ST unknown ST SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Sanyo unknown Sanyo SPI chip, 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Generic unknown SPI chip (RDID), 0 kB: probe_spi_rdid_generic: id1 0xc2, id2 0x2017 -Probing for Generic unknown SPI chip (REMS), 0 kB: Invalid OPCODE 0x90, will not execute. -Probing for Atmel AT49LH002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Intel 82802AB, 512 kB: probe_82802ab: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Intel 82802AC, 1024 kB: probe_82802ab: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for PMC Pm49FL002, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for PMC Pm49FL004, 512 kB: probe_jedec_common: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Sharp LHF00L04, 1024 kB: probe_82802ab: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF002A/B, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF003A/B, 384 kB: probe_jedec_common: id1 0x0a, id2 0xce, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF004A/B, 512 kB: probe_jedec_common: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF004C, 512 kB: probe_82802ab: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF008A, 1024 kB: probe_jedec_common: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF008C, 1024 kB: probe_82802ab: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for SST SST49LF016C, 2048 kB: probe_82802ab: id1 0x4e, id2 0x41, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FLW040A, 512 kB: probe_82802ab: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FLW040B, 512 kB: probe_82802ab: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FLW080A, 1024 kB: probe_82802ab: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FLW080B, 1024 kB: probe_82802ab: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FW002, 256 kB: probe_82802ab: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FW016, 2048 kB: probe_82802ab: id1 0x4e, id2 0x41, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FW040, 512 kB: probe_82802ab: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for ST M50FW080, 1024 kB: probe_82802ab: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for Winbond W39V040FA, 512 kB: probe_jedec_common: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Winbond W39V040FB, 512 kB: probe_jedec_common: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Winbond W39V040FC, 512 kB: probe_jedec_common: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Winbond W49V002FA, 256 kB: probe_jedec_common: id1 0xff, id2 0xff, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Probing for Winbond W39V080FA, 1024 kB: probe_jedec_common: id1 0xba, id2 0x8e, id1 is normal flash content, id2 is normal flash content -Probing for Winbond W39V080FA (dual mode), 512 kB: probe_jedec_common: id1 0x50, id2 0x09, id1 parity violation, id1 is normal flash content, id2 is normal flash content -Found Macronix flash chip "MX25L6405" (8192 kB, SPI). -Reading flash... SSFS: SCIP=0, FDONE=1, FCERR=1, AEL=0 -SSFC: SCGO=0, ACS=0, SPOP=0, COP=1, DBC=63, SME=0, SCF=0 -Running OPCODE 0x03 failed at address 0x001000 (payload length was 64). -FAILED. -Restoring MMIO space at 0x7f53b721c8a0 -Restoring PCI config space for 00:1f:0 reg 0xdc diff --git a/site/docs/hardware/hwdumps/x200/input_bustypes.log b/site/docs/hardware/hwdumps/x200/input_bustypes.log deleted file mode 100644 index ebce5d5..0000000 --- a/site/docs/hardware/hwdumps/x200/input_bustypes.log +++ /dev/null @@ -1,11 +0,0 @@ -0019 -0000 -0000 -0019 -0019 -0011 -0011 -0019 -0019 -0000 -0000 diff --git a/site/docs/hardware/hwdumps/x200/inteltool.err.log b/site/docs/hardware/hwdumps/x200/inteltool.err.log deleted file mode 100644 index b192da9..0000000 --- a/site/docs/hardware/hwdumps/x200/inteltool.err.log +++ /dev/null @@ -1 +0,0 @@ -bash: inteltool: command not found diff --git a/site/docs/hardware/hwdumps/x200/inteltool.log b/site/docs/hardware/hwdumps/x200/inteltool.log deleted file mode 100644 index e69de29..0000000 diff --git a/site/docs/hardware/hwdumps/x200/ioports.err.log b/site/docs/hardware/hwdumps/x200/ioports.err.log deleted file mode 100644 index e69de29..0000000 diff --git a/site/docs/hardware/hwdumps/x200/ioports.log b/site/docs/hardware/hwdumps/x200/ioports.log deleted file mode 100644 index 54e3a06..0000000 --- a/site/docs/hardware/hwdumps/x200/ioports.log +++ /dev/null @@ -1,60 +0,0 @@ -0000-0cf7 : PCI Bus 0000:00 - 0000-001f : dma1 - 0020-0021 : pic1 - 0040-0043 : timer0 - 0050-0053 : timer1 - 0060-0060 : keyboard - 0062-0062 : EC data - 0064-0064 : keyboard - 0066-0066 : EC cmd - 0070-0071 : rtc0 - 0080-008f : dma page reg - 00a0-00a1 : pic2 - 00c0-00df : dma2 - 00f0-00ff : fpu - 03c0-03df : vga+ - 0800-080f : pnp 00:01 -0cf8-0cff : PCI conf1 -0d00-ffff : PCI Bus 0000:00 - 1000-1003 : ACPI PM1a_EVT_BLK - 1004-1005 : ACPI PM1a_CNT_BLK - 1008-100b : ACPI PM_TMR - 1010-1015 : ACPI CPU throttle - 1020-102f : ACPI GPE0_BLK - 1030-1033 : iTCO_wdt - 1050-1050 : ACPI PM2_CNT_BLK - 1060-107f : iTCO_wdt - 1180-11ff : pnp 00:01 - 15e0-15ef : pnp 00:01 - 1600-167f : pnp 00:01 - 1680-169f : pnp 00:01 - 1800-1807 : 0000:00:02.0 - 1830-1837 : 0000:00:03.3 - 1830-1837 : serial - 1838-183b : 0000:00:1f.2 - 1838-183b : ahci - 183c-183f : 0000:00:1f.2 - 183c-183f : ahci - 1840-185f : 0000:00:19.0 - 1860-187f : 0000:00:1a.0 - 1860-187f : uhci_hcd - 1880-189f : 0000:00:1a.1 - 1880-189f : uhci_hcd - 18a0-18bf : 0000:00:1a.2 - 18a0-18bf : uhci_hcd - 18c0-18df : 0000:00:1d.0 - 18c0-18df : uhci_hcd - 18e0-18ff : 0000:00:1d.1 - 18e0-18ff : uhci_hcd - 1c00-1c1f : 0000:00:1d.2 - 1c00-1c1f : uhci_hcd - 1c20-1c3f : 0000:00:1f.2 - 1c20-1c3f : ahci - 1c40-1c47 : 0000:00:1f.2 - 1c40-1c47 : ahci - 1c48-1c4f : 0000:00:1f.2 - 1c48-1c4f : ahci - 1c60-1c7f : 0000:00:1f.3 - 2000-2fff : PCI Bus 0000:05 - 3000-3fff : PCI Bus 0000:02 - 4000-4fff : PCI Bus 0000:03 diff --git a/site/docs/hardware/hwdumps/x200/lspci.err.log b/site/docs/hardware/hwdumps/x200/lspci.err.log deleted file mode 100644 index e69de29..0000000 diff --git a/site/docs/hardware/hwdumps/x200/lspci.log b/site/docs/hardware/hwdumps/x200/lspci.log deleted file mode 100644 index df6b6cc..0000000 --- a/site/docs/hardware/hwdumps/x200/lspci.log +++ /dev/null @@ -1,2287 +0,0 @@ -00:00.0 Host bridge [0600]: Intel Corporation Mobile 4 Series Chipset Memory Controller Hub [8086:2a40] (rev 07) - Subsystem: Lenovo Device [17aa:20e0] - Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx- - Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- - Kernel driver in use: agpgart-intel -00: 86 80 40 2a 06 01 90 20 07 00 00 06 00 00 00 00 -10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 e0 20 -30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 -40: 01 90 d1 fe 00 00 00 00 01 00 d1 fe 00 00 00 00 -50: 00 00 50 03 59 02 00 00 00 00 00 00 00 00 00 00 -60: 01 00 00 e0 00 00 00 00 01 80 d1 fe 00 00 00 00 -70: 01 00 60 7c 00 00 00 00 01 10 00 00 00 00 00 00 -80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -90: 10 11 11 01 30 11 11 00 ff 03 00 00 00 1a 3b 00 -a0: 10 00 f0 07 00 00 00 00 00 00 00 00 00 00 00 00 -b0: 00 7c 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d0: 00 00 00 00 00 00 00 00 00 00 00 00 91 02 00 00 -e0: 09 00 0a 11 88 64 00 1c 01 00 00 00 00 00 00 00 -f0: 01 00 00 00 00 00 00 00 a0 0f 07 00 00 00 00 00 -100: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -110: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -140: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -150: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -180: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -190: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -300: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -310: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -320: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -340: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -350: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -810: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -aa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -af0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ce0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -da0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -db0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -dc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -dd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -de0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -df0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -eb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ec0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ed0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ee0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - -00:02.0 VGA compatible controller [0300]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a42] (rev 07) (prog-if 00 [VGA controller]) - Subsystem: Lenovo Device [17aa:20e4] - Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ - Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- [disabled] - Capabilities: [90] MSI: Enable+ Count=1/1 Maskable- 64bit- - Address: fee0300c Data: 4152 - Capabilities: [d0] Power Management version 3 - Flags: PMEClk- DSI+ D1- D2- AuxCurrent=0mA PME(D0-,D1-,D2-,D3hot-,D3cold-) - Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- - Kernel driver in use: i915 -00: 86 80 42 2a 07 04 90 00 07 00 00 03 00 00 80 00 -10: 04 00 00 f2 00 00 00 00 0c 00 00 d0 00 00 00 00 -20: 01 18 00 00 00 00 00 00 00 00 00 00 aa 17 e4 20 -30: 00 00 00 00 90 00 00 00 00 00 00 00 0b 01 00 00 -40: 00 00 00 00 48 00 00 00 09 00 0a 11 88 64 00 1c -50: 01 00 50 03 19 00 00 00 00 00 00 00 00 00 00 7a -60: 00 00 00 00 00 00 02 00 00 00 00 00 00 00 00 00 -70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -90: 05 d0 01 00 0c 30 e0 fe 52 41 00 00 00 00 00 00 -a0: 00 00 00 00 09 00 06 20 00 00 00 00 00 00 00 00 -b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c0: 00 00 00 00 00 00 00 00 00 00 00 00 40 01 00 00 -d0: 01 00 23 00 00 00 00 00 00 00 00 00 34 00 00 00 -e0: 00 00 00 00 00 00 00 00 00 80 00 1a 41 20 00 00 -f0: 0d 1c 34 07 eb 00 00 00 a0 0f 07 00 ea b0 b6 79 - -00:02.1 Display controller [0380]: Intel Corporation Mobile 4 Series Chipset Integrated Graphics Controller [8086:2a43] (rev 07) - Subsystem: Lenovo Device [17aa:20e4] - Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- - Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=fast >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- Reset- FastB2B- - PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- - Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00 - DevCap: MaxPayload 128 bytes, PhantFunc 0 - ExtTag- RBE+ - DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- - RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- - MaxPayload 128 bytes, MaxReadReq 128 bytes - DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- - LnkCap: Port #1, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <4us - ClockPM- Surprise- LLActRep+ BwNot- - LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk- - ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- - LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- - SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ - Slot #0, PowerLimit 6.500W; Interlock- NoCompl- - SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet+ CmdCplt+ HPIrq+ LinkChg- - Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- - SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock- - Changed: MRL- PresDet- LinkState- - RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible- - RootCap: CRSVisible- - RootSta: PME ReqID 0000, PMEStatus- PMEPending- - Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit- - Address: fee0300c Data: 41c1 - Capabilities: [90] Subsystem: Lenovo Device [17aa:20f3] - Capabilities: [a0] Power Management version 2 - Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) - Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- - Capabilities: [100 v1] Virtual Channel - Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 - Arb: Fixed+ WRR32- WRR64- WRR128- - Ctrl: ArbSelect=Fixed - Status: InProgress- - VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- - Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256- - Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=ff - Status: NegoPending- InProgress- - Capabilities: [180 v1] Root Complex Link - Desc: PortNumber=01 ComponentID=02 EltType=Config - Link0: Desc: TargetPort=00 TargetComponent=02 AssocRCRB- LinkType=MemMapped LinkValid+ - Addr: 00000000fed1c000 - Kernel driver in use: pcieport -00: 86 80 40 29 07 05 10 00 03 00 04 06 10 00 81 00 -10: 00 00 00 00 00 00 00 00 00 02 02 00 30 30 00 00 -20: 00 7c 10 7c 21 7c 31 7c 00 00 00 00 00 00 00 00 -30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 01 04 00 -40: 10 80 41 01 00 80 00 00 00 00 10 00 11 4c 11 01 -50: 00 00 01 10 e0 a0 00 00 38 00 00 00 08 00 00 00 -60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -80: 05 90 01 00 0c 30 e0 fe c1 41 00 00 00 00 00 00 -90: 0d a0 00 00 aa 17 f3 20 00 00 00 00 00 00 00 00 -a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00 -b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d0: 00 00 00 00 00 00 00 00 00 00 11 08 00 00 00 00 -e0: 00 0f c7 00 06 07 08 00 31 00 00 00 00 00 00 00 -f0: 00 00 00 00 00 00 00 00 86 0f 03 00 00 00 00 00 -100: 02 00 01 18 00 00 00 00 01 00 00 00 00 00 00 00 -110: 01 00 00 00 ff 00 00 80 00 00 00 00 00 00 00 00 -120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -140: 00 00 00 00 00 00 00 00 00 00 00 00 11 00 06 00 -150: 00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 -160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -180: 05 00 01 00 00 01 02 01 00 00 00 00 00 00 00 00 -190: 01 00 02 00 00 00 00 00 00 c0 d1 fe 00 00 00 00 -1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -300: 07 60 20 60 00 00 00 00 60 12 00 00 0c 00 06 00 -310: 00 10 00 00 5b 60 c9 c0 00 70 26 75 00 10 00 00 -320: ff 0f 00 00 40 00 00 14 b5 bc 4a bc 0b 2a 00 00 -330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -340: 00 00 00 00 00 00 00 00 10 00 04 00 00 00 00 00 -350: 00 00 00 00 01 00 04 00 00 00 00 00 00 00 00 00 -360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -810: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -aa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -af0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ce0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -da0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -db0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -dc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -dd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -de0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -df0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -eb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ec0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ed0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ee0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - -00:1c.1 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 2 [8086:2942] (rev 03) (prog-if 00 [Normal decode]) - Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ - Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- Reset- FastB2B- - PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- - Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00 - DevCap: MaxPayload 128 bytes, PhantFunc 0 - ExtTag- RBE+ - DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- - RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- - MaxPayload 128 bytes, MaxReadReq 128 bytes - DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- - LnkCap: Port #2, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <256ns, L1 <4us - ClockPM- Surprise- LLActRep+ BwNot- - LnkCtl: ASPM Disabled; RCB 64 bytes Disabled- CommClk+ - ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- - LnkSta: Speed 2.5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive+ BWMgmt- ABWMgmt- - SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ - Slot #1, PowerLimit 6.500W; Interlock- NoCompl- - SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet+ CmdCplt+ HPIrq+ LinkChg- - Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- - SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet+ Interlock- - Changed: MRL- PresDet- LinkState+ - RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible- - RootCap: CRSVisible- - RootSta: PME ReqID 0000, PMEStatus- PMEPending- - Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit- - Address: fee0300c Data: 41d1 - Capabilities: [90] Subsystem: Lenovo Device [17aa:20f3] - Capabilities: [a0] Power Management version 2 - Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) - Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- - Capabilities: [100 v1] Virtual Channel - Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 - Arb: Fixed+ WRR32- WRR64- WRR128- - Ctrl: ArbSelect=Fixed - Status: InProgress- - VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- - Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256- - Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01 - Status: NegoPending- InProgress- - Capabilities: [180 v1] Root Complex Link - Desc: PortNumber=02 ComponentID=02 EltType=Config - Link0: Desc: TargetPort=00 TargetComponent=02 AssocRCRB- LinkType=MemMapped LinkValid+ - Addr: 00000000fed1c000 - Kernel driver in use: pcieport -00: 86 80 42 29 07 05 10 00 03 00 04 06 10 00 81 00 -10: 00 00 00 00 00 00 00 00 00 03 03 00 40 40 00 00 -20: 50 f2 50 f2 41 7c 51 7c 00 00 00 00 00 00 00 00 -30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 02 04 00 -40: 10 80 41 01 00 80 00 00 00 00 10 00 11 2c 11 02 -50: 40 00 11 30 e0 a0 08 00 38 00 40 01 08 00 00 00 -60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -80: 05 90 01 00 0c 30 e0 fe d1 41 00 00 00 00 00 00 -90: 0d a0 00 00 aa 17 f3 20 00 00 00 00 00 00 00 00 -a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00 -b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d0: 00 00 00 00 00 00 00 00 00 00 11 08 00 00 00 00 -e0: 00 0f c7 00 06 07 08 00 33 00 00 00 00 00 00 00 -f0: 00 00 00 00 00 00 00 00 86 0f 03 00 00 00 00 00 -100: 02 00 01 18 00 00 00 00 01 00 00 00 00 00 00 00 -110: 01 00 00 00 01 00 00 80 00 00 00 00 00 00 00 00 -120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -140: 00 00 00 00 00 00 00 00 00 00 00 00 11 00 06 00 -150: 00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 -160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -180: 05 00 01 00 00 01 02 02 00 00 00 00 00 00 00 00 -190: 01 00 02 00 00 00 00 00 00 c0 d1 fe 00 00 00 00 -1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -300: 07 60 20 60 00 00 00 00 60 12 00 00 0c 00 06 00 -310: 00 00 00 04 5b 60 c9 c0 00 70 26 75 28 1a b8 14 -320: 27 0a 38 08 40 00 00 14 b5 bc 4a bc 0b 2a 00 00 -330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -340: f1 01 f1 00 01 02 f3 00 10 00 05 00 a8 00 37 00 -350: aa 00 39 00 01 00 04 00 00 00 00 00 00 00 00 00 -360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -810: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -aa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -af0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ce0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -da0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -db0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -dc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -dd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -de0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -df0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -eb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ec0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ed0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ee0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - -00:1c.3 PCI bridge [0604]: Intel Corporation 82801I (ICH9 Family) PCI Express Port 4 [8086:2946] (rev 03) (prog-if 00 [Normal decode]) - Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+ - Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- SERR- TAbort- Reset- FastB2B- - PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- - Capabilities: [40] Express (v1) Root Port (Slot+), MSI 00 - DevCap: MaxPayload 128 bytes, PhantFunc 0 - ExtTag- RBE+ - DevCtl: Report errors: Correctable- Non-Fatal- Fatal- Unsupported- - RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop- - MaxPayload 128 bytes, MaxReadReq 128 bytes - DevSta: CorrErr- UncorrErr- FatalErr- UnsuppReq- AuxPwr+ TransPend- - LnkCap: Port #4, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <1us, L1 <4us - ClockPM- Surprise- LLActRep+ BwNot- - LnkCtl: ASPM L0s L1 Enabled; RCB 64 bytes Disabled- CommClk- - ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt- - LnkSta: Speed 2.5GT/s, Width x0, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt- - SltCap: AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ - Slot #3, PowerLimit 6.500W; Interlock- NoCompl- - SltCtl: Enable: AttnBtn- PwrFlt- MRL- PresDet+ CmdCplt+ HPIrq+ LinkChg- - Control: AttnInd Unknown, PwrInd Unknown, Power- Interlock- - SltSta: Status: AttnBtn- PowerFlt- MRL- CmdCplt- PresDet- Interlock- - Changed: MRL- PresDet- LinkState- - RootCtl: ErrCorrectable- ErrNon-Fatal- ErrFatal- PMEIntEna+ CRSVisible- - RootCap: CRSVisible- - RootSta: PME ReqID 0000, PMEStatus- PMEPending- - Capabilities: [80] MSI: Enable+ Count=1/1 Maskable- 64bit- - Address: fee0300c Data: 41e1 - Capabilities: [90] Subsystem: Lenovo Device [17aa:20f3] - Capabilities: [a0] Power Management version 2 - Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold+) - Status: D0 NoSoftRst- PME-Enable- DSel=0 DScale=0 PME- - Capabilities: [100 v1] Virtual Channel - Caps: LPEVC=0 RefClk=100ns PATEntryBits=1 - Arb: Fixed+ WRR32- WRR64- WRR128- - Ctrl: ArbSelect=Fixed - Status: InProgress- - VC0: Caps: PATOffset=00 MaxTimeSlots=1 RejSnoopTrans- - Arb: Fixed+ WRR32- WRR64- WRR128- TWRR128- WRR256- - Ctrl: Enable+ ID=0 ArbSelect=Fixed TC/VC=01 - Status: NegoPending- InProgress- - Capabilities: [180 v1] Root Complex Link - Desc: PortNumber=04 ComponentID=02 EltType=Config - Link0: Desc: TargetPort=00 TargetComponent=02 AssocRCRB- LinkType=MemMapped LinkValid+ - Addr: 00000000fed1c000 - Kernel driver in use: pcieport -00: 86 80 46 29 07 05 10 00 03 00 04 06 10 00 81 00 -10: 00 00 00 00 00 00 00 00 00 05 0c 00 20 20 00 00 -20: 00 f0 f0 f1 91 f2 91 f2 00 00 00 00 00 00 00 00 -30: 00 00 00 00 40 00 00 00 00 00 00 00 0b 04 04 00 -40: 10 80 41 01 00 80 00 00 00 00 10 00 11 4c 11 04 -50: 03 00 01 10 e0 a0 18 00 38 00 00 00 08 00 00 00 -60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -80: 05 90 01 00 0c 30 e0 fe e1 41 00 00 00 00 00 00 -90: 0d a0 00 00 aa 17 f3 20 00 00 00 00 00 00 00 00 -a0: 01 00 02 c8 00 00 00 00 00 00 00 00 00 00 00 00 -b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d0: 00 00 00 00 00 00 00 00 00 00 11 08 00 00 00 00 -e0: 00 0f c7 00 06 07 08 00 33 00 00 00 00 00 00 00 -f0: 00 00 00 00 00 00 00 00 86 0f 03 00 00 00 00 00 -100: 02 00 01 18 00 00 00 00 01 00 00 00 00 00 00 00 -110: 01 00 00 00 01 00 00 80 00 00 00 00 00 00 00 00 -120: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -130: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -140: 00 00 00 00 00 00 00 00 00 40 00 00 11 00 06 00 -150: 00 00 00 00 00 20 00 00 00 00 00 00 00 00 00 00 -160: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -170: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -180: 05 00 01 00 00 01 02 04 00 00 00 00 00 00 00 00 -190: 01 00 02 00 00 00 00 00 00 c0 d1 fe 00 00 00 00 -1a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -1f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -200: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -210: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -220: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -230: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -240: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -250: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -260: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -270: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -280: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -290: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -2f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -300: 07 60 20 60 00 00 00 00 60 12 00 00 0c 00 06 00 -310: 00 10 00 00 5b 60 c9 c0 00 70 26 75 00 10 00 00 -320: ff 0f 00 00 40 00 00 14 b5 bc 4a bc 0b 2a 00 00 -330: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -340: 00 00 00 00 00 00 00 00 10 00 04 00 00 00 00 00 -350: 00 00 00 00 01 00 04 00 00 00 00 00 00 00 00 00 -360: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -370: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -380: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -390: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -3f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -400: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -410: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -420: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -430: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -440: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -450: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -460: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -470: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -480: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -490: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -4f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -500: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -510: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -520: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -530: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -540: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -550: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -560: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -570: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -580: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -590: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -5f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -600: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -610: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -620: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -630: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -640: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -650: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -660: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -670: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -680: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -690: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -6f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -700: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -710: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -720: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -730: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -740: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -750: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -760: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -770: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -780: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -790: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -7f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -800: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -810: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -820: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -830: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -840: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -850: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -860: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -870: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -880: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -890: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -8f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -900: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -910: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -920: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -930: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -940: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -950: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -960: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -970: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -980: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -990: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -9f0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -aa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ab0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ac0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ad0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ae0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -af0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ba0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -be0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -bf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ca0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ce0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -cf0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -da0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -db0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -dc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -dd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -de0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -df0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ea0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -eb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ec0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ed0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ee0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ef0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f00: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f20: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f30: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f40: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fa0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fb0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fc0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fd0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -fe0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -ff0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 - -00:1d.0 USB controller [0c03]: Intel Corporation 82801I (ICH9 Family) USB UHCI Controller #1 [8086:2934] (rev 03) (prog-if 00 [UHCI]) - Subsystem: Lenovo Device [17aa:20f0] - Control: I/O+ Mem- BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- - Status: Cap+ 66MHz- UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- SERR- TAbort- Reset- FastB2B- - PriDiscTmr- SecDiscTmr- DiscTmrStat- DiscTmrSERREn- - Capabilities: [50] Subsystem: Lenovo Device [17aa:20f4] -00: 86 80 48 24 07 01 10 00 93 01 04 06 00 00 01 00 -10: 00 00 00 00 00 00 00 00 00 0d 0d 00 f0 00 80 22 -20: f0 ff 00 00 f1 ff 01 00 00 00 00 00 00 00 00 00 -30: 00 00 00 00 50 00 00 00 00 00 00 00 ff 00 04 00 -40: 00 00 00 00 00 00 00 00 00 00 00 00 00 12 00 00 -50: 0d 00 00 00 aa 17 f4 20 00 00 00 00 00 00 00 00 -60: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -80: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -b0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -e0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -f0: 00 00 00 00 00 00 00 00 86 0f 03 00 00 00 00 00 - -00:1f.0 ISA bridge [0601]: Intel Corporation ICH9M-E LPC Interface Controller [8086:2917] (rev 03) - Subsystem: Lenovo Device [17aa:20f5] - Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx- - Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=medium >TAbort- SERR- - Kernel driver in use: lpc_ich -00: 86 80 17 29 07 00 10 02 03 00 01 06 00 00 80 00 -10: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -20: 00 00 00 00 00 00 00 00 00 00 00 00 aa 17 f5 20 -30: 00 00 00 00 e0 00 00 00 00 00 00 00 00 00 00 00 -40: 01 10 00 00 80 00 00 00 81 11 00 00 10 00 00 00 -50: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -60: 8b 8b 8b 8b 90 00 00 00 8b 8b 8b 8b f8 00 00 00 -70: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -80: 10 00 0f 3f 01 16 7c 00 e1 15 0c 00 81 16 1c 00 -90: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -a0: 24 0a 00 00 39 00 80 00 2b 1c 0a 00 00 03 00 c0 -b0: 00 00 f0 00 00 00 00 00 08 00 02 00 00 00 00 00 -c0: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -d0: 00 00 00 00 67 45 00 00 00 ff 00 00 00 00 00 00 -e0: 09 00 0c 10 00 02 c4 03 04 00 00 00 00 00 00 00 -f0: 01 c0 d1 fe 00 00 00 00 86 0f 03 00 00 00 00 00 - -00:1f.2 SATA controller [0106]: Intel Corporation 82801IBM/IEM (ICH9M/ICH9M-E) 4 port SATA Controller [AHCI mode] [8086:2929] (rev 03) (prog-if 01 [AHCI 1.0]) - Subsystem: Lenovo Device [17aa:20f8] - Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx+ - Status: Cap+ 66MHz+ UDF- FastB2B+ ParErr- DEVSEL=medium >TAbort- SERR- TAbort- SERR- TAbort- SERR- -
-iMac5,2 -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Apple | -| **Name** | iMac 17-inch "Core 2 Duo" 1.83 | -| **Released** | 2006 | -| **Chipset** | Intel Calistoga 945GM | -| **CPU** | Intel Core 2 Duo T5600 | -| **Graphics** | Intel GMA 950 | -| **Display** | 1440x900 TFT | -| **Memory** | 512MB, 1GB (upgradable to 2GB) | -| **Architecture** | x86_64 | -| **EC** | Proprietary | -| **Original boot firmware** | Apple EFI | -| **Intel ME/AMD PSP** | Not present. | -| **Flash chip** | SOIC-8 2MiB (Probably upgradable to 16MiB) | - -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|----------------|---------------------------------------| -| **Internal flashing with original boot firmware** | U | -| **Display** | U | -| **Audio** | U | -| **RAM Init** | U | -| **External output** | U | -| **Display brightness** | U | - -| ***Payloads supported*** | | -|---------------------------|-----------| -| **GRUB** | Works | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | - -Information to be written soon, but this board is merged in libreboot. - -This board is very similar to the [MacBook2,1](./macbook21.md). - -Just refer back to the [hardware section](./) and [install guides](../install/) diff --git a/site/docs/hardware/index.md b/site/docs/hardware/index.md deleted file mode 100644 index be3e5d2..0000000 --- a/site/docs/hardware/index.md +++ /dev/null @@ -1,202 +0,0 @@ ---- -title: Hardware compatibility list -x-toc-enable: true -... - -Need help? -========== - -Help is available on [Libreboot IRC](../../contact.md) and other channels. - -If you want professional installation, Minifree Ltd sells [Libreboot -pre-installed](https://minifree.org/) on select hardware, and it also provides -a [Libreboot preinstall service](https://minifree.org/product/installation-service/) -if you want to send your machine in to have Libreboot installed for you. - -Leah Rowe, the founder and lead developer of Libreboot, also owns and -operates Minifree Ltd; sales provide funding for the Libreboot project. - -Introduction -============ - -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](../../news/safety.md).** - -This sections relates to known hardware compatibility in libreboot. - -For installation instructions, refer to [../install/](../install/). - -Supported hardware -================== - -libreboot currently supports the following systems in this release: - -### Servers (AMD, x86) - -- [ASUS KFSN4-DRE motherboard](kfsn4-dre.md) -- [ASUS KGPE-D16 motherboard](kgpe-d16.md) - -### Desktops (AMD, Intel, x86) - -- **[Dell OptiPlex 7020/9020 MT and SFF](dell9020.md) - Also [available to buy - with Libreboot preinstalled](https://minifree.org/product/libreboot-9020/)** - Dell OptiPlex XE2 MT/SFF also known to work -- [Acer G43T-AM3](acer_g43t-am3.md) -- [Apple iMac 5,2](imac52.md) -- [ASUS KCMA-D8 motherboard](kcma-d8.md) -- Dell OptiPlex 7010 **MT** (known to work, using the T1650 ROM, but more - research is needed) - 9010 also known to work. No GPIO changes, so it should - be safe to flash. -- [Dell Precision T1650](t1650.md) -- [Gigabyte GA-G41M-ES2L motherboard](ga-g41m-es2l.md) -- [HP Elite 8200 SFF/MT](hp8200sff.md) (HP 6200 Pro Business probably works too) -- [HP Elite 8300 USDT](hp8300usdt.md) -- [Intel D510MO and D410PT motherboards](d510mo.md) -- [Intel D945GCLF](d945gclf.md) - -### Laptops (Intel, x86) - -- **[Lenovo ThinkPad T440p](../install/t440p_external.md) - Also [available - to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-t440p/)** -- **[Lenovo ThinkPad W541](../install/ivy_has_common.md) - Also [available to - buy with Libreboot preinstalled](https://minifree.org/product/libreboot-w541/)** - NOTE: W540 also compatible (same mainboard, so flash the same ROM) -- Lenovo ThinkPad X230 - *Also* available on Minifree: -- [Apple MacBook1,1 and MacBook2,1](macbook21.md) -- [Dell Latitude E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel - GPU](../install/latitude.md) -- [Dell Latitude E6420 (Intel GPU](../install/latitude.md) -- [Dell Latitude E6430 (Intel GPU](../install/latitude.md) -- [Dell Latitude E5520 (Intel GPU](../install/latitude.md) -- [Dell Latitude E5530 (Intel GPU](../install/latitude.md) -- [Dell Latitude E6520 (Intel GPU](../install/latitude.md) -- [Dell Latitude E6530 (Intel GPU](../install/latitude.md) -- Dell Latitude E5420. -- [HP EliteBook 2170p](hp2170p.md) -- [HP EliteBook 2560p](hp2560p.md) -- [HP EliteBook 2570p](hp2570p.md) -- [HP EliteBook 820 G2](hp820g2.md) -- [HP EliteBook 8460p](hp8460p.md) -- [HP EliteBook 8470p](hp8470p.md) -- [HP EliteBook 8560w](hp8560w.md) -- [HP EliteBook Folio 9470m](hp9470m.md) -- [Lenovo ThinkPad R400](r400.md) -- [Lenovo ThinkPad R500](r500.md) -- [Lenovo ThinkPad T400 / T400S](t400.md) -- [Lenovo Thinkpad T420](../install/ivy_has_common.md) (no install docs yet) -- [Lenovo ThinkPad T420S](../install/ivy_has_common.md) (no install docs yet) -- [Lenovo ThinkPad T430](../install/ivy_has_common.md) (no install docs yet) -- [Lenovo ThinkPad T500](t500.md) -- [Lenovo ThinkPad T520 / W520](../install/ivy_has_common.md) (no install guide yet) -- [Lenovo ThinkPad T530 / W530](../install/ivy_has_common.md) (no install -- Lenovo ThinkPad T60 (with Intel GPU) -- [Lenovo ThinkPad W500](t500.md) -- [Lenovo ThinkPad X200 / X200S / X200 Tablet](x200.md) -- [Lenovo Thinkpad X220](../install/ivy_has_common.md) -- [Lenovo Thinkpad X220t](../install/ivy_has_common.md) -- [Lenovo Thinkpad X230](../install/x230_external.md) -- [Lenovo Thinkpad X230t](../install/x230_external.md) -- Lenovo ThinkPad X301 -- Lenovo ThinkPad X60 / X60S / X60 Tablet - -### Laptops (ARM, with U-Boot payload) - -- [ASUS Chromebook Flip C101 (gru-bob)](../install/chromebooks.md) -- [Samsung Chromebook Plus (v1) (gru-kevin)](../install/chromebooks.md) - -## Removed boards - -These boards were in Libreboot, but have been removed with the intention of -re-adding them at a later date. They were removed due to issues. List: - -- [Acer Chromebook 13 (CB5-311, C810) (nyan-big)](../install/chromebooks.md) -- [ASUS Chromebit CS10 (veyron-mickey)](../install/chromebooks.md) -- [ASUS Chromebook C201PA (veyron-speedy)](../install/c201.md) -- [ASUS Chromebook Flip C100PA (veyron-minnie)](../install/chromebooks.md) -- [Hisense Chromebook C11 and more (veyron-jerry)](../install/chromebooks.md) -- [HP Chromebook 11 G1 (daisy-spring)](../install/chromebooks.md) -- [HP Chromebook 14 G3 (nyan-blaze)](../install/chromebooks.md) -- [Samsung Chromebook 2 11" (peach-pit)](../install/chromebooks.md) -- [Samsung Chromebook 2 13" (peach-pi)](../install/chromebooks.md) -- [Samsung Chromebook XE303 (daisy-snow)](../install/chromebooks.md) - -### NOTES about removed boards: - -**WARNING: veyron speedy boards (e.g. C201) have non-functional video init as -of 19 February 2023, and no fix is yet available on that date. See: - - the last tested revision -from 2021.01 is known to work, for u-boot on this board. See:\ - -(alpernebbi on IRC is looking into this, to bisect uboot and update the latest -revisions) - for now, ROM images deleted from the Libreboot 20221214 -and 20230319 releases.** - -**WARNING: daisy- and peach- boards require a BL1 bootloader firmware, but the -one from coreboot 3rdparty is a fake/placeholder file. We need logic in the -Libreboot build system for properly fetching/extracting these, plus docs to -cover it. For now, assume that these are broken - ROM images are excluded, -for now, and have been deleted from the Libreboot 20221214 and 20230319 -releases. - see: -and ** - -d945gclf: Doesn't boot at all, according to last report. D510MO is still in -lbmk but still was reported problematic; other boards should be fine (see list -above). - -WARNING: Support for these boards is at a proof-of-concept stage. Refer -to [docs/uboot/](../uboot/) for more info about the U-Boot payload. - -### Emulation - -- [Qemu x86](../misc/emulation.md) -- [Qemu arm64](../misc/emulation.md) - - -TODO: More hardware is supported. See `config/coreboot/` in lbmk. Update -the above list! - -'Supported' means that the build scripts know how to build ROM images -for these systems, and that the systems have been tested (confirmed -working). There may be exceptions; in other words, this is a list of -'officially' supported systems. - -EC update on i945 (X60, T60) and GM45 (X200, X301, T400, T500, R400, W500, R500) -============================================================== - -It is recommended that you update to the latest EC firmware version. The -[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from -libreboot, so we don't actually provide that, but if you still have -Lenovo BIOS then you can just run the Lenovo BIOS update utility, which -will update both the BIOS and EC version. See: - -- [../install/#flashprog](../install/#flashprog) -- - -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. - -NOTE: this can only be done when you are using Lenovo BIOS. How to -update the EC firmware while running libreboot is unknown. libreboot -only replaces the BIOS firmware, not EC. - -Updated EC firmware has several advantages e.g. better battery -handling. - -How to find what EC version you have (i945/GM45) ------------------------------------------------- - -In Linux, you can try this: - - grep 'at EC' /proc/asound/cards - -Sample output: - - ThinkPad Console Audio Control at EC reg 0x30, fw 7WHT19WW-3.6 - -7WHT19WW is the version in different notation, use search engine to find -out regular version - in this case it's a 1.06 for x200 tablet - -Alternatively, if `dmidecode` is available, run the following command (as `root`) to -find the currently flashed BIOS version: - - dmidecode -s bios-version - -On a T400 running the latest BIOS this would give `7UET94WW (3.24 )` as result. diff --git a/site/docs/hardware/index.zh-cn.md b/site/docs/hardware/index.zh-cn.md deleted file mode 100644 index 2a72aba..0000000 --- a/site/docs/hardware/index.zh-cn.md +++ /dev/null @@ -1,181 +0,0 @@ ---- -title: 兼容硬件列表 -x-toc-enable: true -... - -Need help? -========== - -Help is available on [Libreboot IRC](../../contact.md) and other channels. - -If you want professional installation, Minifree Ltd sells [Libreboot -pre-installed](https://minifree.org/) on select hardware, and it also provides -a [Libreboot preinstall service](https://minifree.org/product/installation-service/) -if you want to send your machine in to have Libreboot installed for you. - -Leah Rowe, the founder and lead developer of Libreboot, also owns and -operates Minifree Ltd; sales provide funding for the Libreboot project. - -Introduction -============ - -**[安装之前请先阅读这些指示](../../news/safety.md),否则你的机器可能会变砖:[安全措施](../../news/safety.md)** - -这一部分说明了 libreboot 已知兼容的硬件。 - -安装指南,请参看 [../install/](../install/)。 - -注意:对 T60/R60 thinkpad 而言,请确认它拥有的是 Intel GPU 而非 ATI GUI,因为 coreboot 对这些机器缺少 ATI GPU 的原生图像初始化。 - -(对 T500、T400 等后续机器而言,有 ATI GPU 也没问题,因为它也有 Intel GPU,而 libreboot 会用 Intel 的) - -更新 LIBREBOOT 前请先阅读这里,否则你的机器可能会成变砖 -==================================================================== - -**有些新的 Intel 平台需要 Intel ME 和/或 MRC 固件(例如 ThinkPad X230 或 T440p),还有些 HP 笔记本需要 KBC1126 EC 固件。对上述机器而言,Libreboot 官方发布的 ROM 缺少了特定的文件,你必须自己加入进去。如果无视这则警告,而坚持在不修改的情况下刷入官方发布的 ROM,那你可能会让你的机器变砖(导致它无法启动)。详请阅读:** - -**[在 Sandybridge/Ivybridge/Haswell 插入二进制 blob](../install/ivy_has_common.md)** - -注意:如果你是自己使用 lbmk 编译的 ROM,则不用在意这条警告。它只针对官方发布的 ROM,因为这些 ROM 里删除了 ME/MRC/EC 固件。上面的链接讲解了怎么把它们加回去。如果是自己从源代码构建 ROM 镜像,Libreboot 的构建系统会自动处理的。见:[Libreboot 构建指南](../build/) - -已支持的硬件 -================== - -该版本的 libreboot 目前支持以下机器: - -### 服务器(AMD,x86) - -- [ASUS KFSN4-DRE 主板](kfsn4-dre.md) -- [ASUS KGPE-D16 主板](kgpe-d16.md) - -### Desktops (AMD, Intel, x86) - -- **Dell OptiPlex 7020/9020 MT and SFF (no guides yet) - [Available to buy - with Libreboot preinstalled](https://minifree.org/product/libreboot-9020/)** -- [Acer G43T-AM3](acer_g43t-am3.md) -- [Apple iMac 5,2](imac52.md) -- [ASUS KCMA-D8 主板](kcma-d8.md) -- Dell OptiPlex 7010 **MT** (known to work, using the T1650 ROM, but more - research is needed) - 9010 also works, with no GPIO changes. It should be - safe to flash. -- [Dell Precision T1650](t1650.md) -- [Gigabyte GA-G41M-ES2L 主板](ga-g41m-es2l.md) -- [HP Elite 8200 SFF/MT](hp8200sff.md)(HP 6200 Pro Business 多半也能用) -- [HP Elite 8300 USDT](hp8300usdt.md) -- [Intel D510MO 及 D410PT 主板](d510mo.md) -- [Intel D945GCLF](d945gclf.md)(移出 lbmk,计划:重新加入支持) - -### 笔记本(Intel,x86) - -- **[Lenovo ThinkPad T440p](../install/t440p_external.md) - Also [available - to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-t440p/)** -- **[Lenovo ThinkPad W541](../install/ivy_has_common.md) - Also [available to - buy with Libreboot preinstalled](https://minifree.org/product/libreboot-w541/)** -- Lenovo ThinkPad X230 - *Also* available on Minifree: -- [Apple MacBook1,1 及 MacBook2,1](macbook21.md) -- [Dell Latitude E6400, E6400 XFR 及 E6400 ATG,皆支持 Nvidia 或 Intel GPU](../install/latitude.md) -- Dell Latitude E6420 (Intel GPU) - no guide yet. -- [Dell Latitude E6430, Intel GPU](../install/latitude.md) -- Dell Latitude E5530 (Intel GPU) - no guide yet. -- Dell Latitude E6520 (Intel GPU) - no guide yet. -- [HP EliteBook 2170p](hp2170p.md) -- [HP EliteBook 2560p](hp2560p.md) -- [HP EliteBook 2570p](hp2570p.md) -- [HP EliteBook 820 G2](hp820g2.md) -- [HP EliteBook 8460p](hp8460p.md) -- [HP EliteBook 8470p](hp8470p.md) -- [HP EliteBook 8560w](hp8560w.md) -- [HP EliteBook Folio 9470m](hp9470m.md) -- [Lenovo ThinkPad R400](r400.md) -- [Lenovo ThinkPad R500](r500.md) -- [Lenovo ThinkPad T400 / T400S](t400.md) -- [Lenovo Thinkpad T420](../install/ivy_has_common.md)(暂无安装文档) -- [Lenovo ThinkPad T420S](../install/ivy_has_common.md)(暂无安装文档) -- [Lenovo ThinkPad T430](../install/ivy_has_common.md)(暂无安装文档) -- [Lenovo ThinkPad T500](t500.md) -- [Lenovo ThinkPad T530 / W530](../install/ivy_has_common.md)(暂无安装文档) -- Lenovo ThinkPad T60(Intel GPU 款) -- [Lenovo ThinkPad W500](t500.md) -- [Lenovo ThinkPad X200 / X200S / X200 Tablet](x200.md) -- [Lenovo Thinkpad X220](../install/ivy_has_common.md) -- [Lenovo Thinkpad X220t](../install/ivy_has_common.md) -- [Lenovo Thinkpad X230](../install/x230_external.md) -- [Lenovo Thinkpad X230t](../install/x230_external.md) -- Lenovo ThinkPad X301 -- Lenovo ThinkPad X60 / X60S / X60 Tablet - -### 笔记本(ARM,配 U-Boot payload) - -- [ASUS Chromebook Flip C101 (gru-bob)](../install/chromebooks.md) -- [Samsung Chromebook Plus (v1) (gru-kevin)](../install/chromebooks.md) - -## 已移除的主板 - -这些主板 Libreboot 以前支持,但现在移除了,计划在以后重新加回来。它们之所以被移除,是因为出现了问题。主板列表: - -- [HP Chromebook 14 G3 (nyan-blaze)](../install/chromebooks.md) -- [Acer Chromebook 13 (CB5-311, C810) (nyan-big)](../install/chromebooks.md) -- [Hisense Chromebook C11 and more (veyron-jerry)](../install/chromebooks.md) -- [Samsung Chromebook 2 13" (peach-pi)](../install/chromebooks.md) -- [Samsung Chromebook 2 11" (peach-pit)](../install/chromebooks.md) -- [HP Chromebook 11 G1 (daisy-spring)](../install/chromebooks.md) -- [Samsung Chromebook XE303 (daisy-snow)](../install/chromebooks.md) -- [ASUS Chromebit CS10 (veyron-mickey)](../install/chromebooks.md) -- [ASUS Chromebook Flip C100PA (veyron-minnie)](../install/chromebooks.md) -- [ASUS Chromebook C201PA (veyron-speedy)](../install/c201.md) - -### 关于已移除的主板 - -**警告:2023 年 2 月 19 日,veyron speedy 主板(例如 C201)的图像初始化无法工作,截至该时还没有解决方案。见 —— 2021.01 的最后一个测试过的版本,这个带 u-boot 的主板是可以工作的。见:\ - -(IRC 上的 alpernebbi 正在研究这个问题,二分法排查 uboot 并更新最新的版本)——目前,Libreboot 20221214 和 20230309 的 ROM 镜像已经删除。** - -**警告:daisy- 和 peach- 主板需要 B1 bootloader blob,但 coreboot 第三方有一个假的/占位的 blob。我们需要在 Libreboot 构建系统中实现一套逻辑,正确获取/提取这些 blob,并为其编写文档。目前的话,就假定它们是损坏的——ROM 镜像目前已经排除,并在 Libreboot 20221214 和 20230309 中删除。——见:** - -d945gclf:据上次报告,根本无法启动。D510MO 仍在 lbmk 中,但仍然报告有问题;其他主板应该没问题(见上方列表)。 - -警告:这些主板的支持,还处于概念验证阶段。参考 [docs/uboot/](../uboot/) 了解 U-boot payload 的更多信息。 - -### 模拟 - -- [Qemu x86](../misc/emulation.md) -- [Qemu arm64](../misc/emulation.md) - - -计划:支持更多硬件。见 lbmk 中的 `config/coreboot/`。更新上面的列表! - -所谓“支持”,即指构建脚本知道如何构建这些机器的 ROM 镜像,并且机器经过测试(确认能够工作)。也可能会有例外;换言之,这是“官方”支持的机器列表。 - -在 i945(X60、T60)及 GM45(X200、X301、T400、T500、R400、W500、R500)上更新 EC -============================================================== - -建议更新到最新 EC 固件版本。[EC 固件](../../faq.md#ec-embedded-controller-firmware) 与 libreboot 是独立的,所以我们实际上并不会提供这些固件,但如果你仍还有 Lenovo BIOS,那你可以直接运行 Lenovo BIOS 更新工具,它会同时更新 BIOS 和 EC 版本。见: - -- [../install/#flashprog](../install/#flashprog) -- - -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. - -注意:只有在运行 Lenovo BIOS 的时候,你才能这样做。如何在运行 libreboot 的时候更新 EC 固件尚不清楚。libreboot 只会替换 BIOS 固件,而不会替换 EC。 - -更新的 EC 固件有一些好处,例如电池管理更加好。 - -如何得知你的 EC 版本(i945/GM45) ------------------------------------------------- - -在 Linux,你可以试试这条命令: - - grep 'at EC' /proc/asound/cards - -输出样例: - - ThinkPad Console Audio Control at EC reg 0x30, fw 7WHT19WW-3.6 - -7WHT19WW 另一种形式的版本号,使用搜索引擎来找出正常的版本号——这个例子中的 x200 tablet,版本号是 1.06。 - -或者,如果能用 `dmidecode`,则(以 `root`)运行以下命令,来得知目前刷入的 BIOS 版本: - - dmidecode -s bios-version - -运行最新 BIOS 的 T400 上,它的输出结果为 `7UET94WW (3.24 )`。 diff --git a/site/docs/hardware/kgpe-d16.md b/site/docs/hardware/kgpe-d16.md deleted file mode 100644 index e6bc293..0000000 --- a/site/docs/hardware/kgpe-d16.md +++ /dev/null @@ -1,215 +0,0 @@ ---- -title: ASUS KGPE-D16 server/workstation board -x-toc-enable: true -... - -TODO: OLD page. TODO: check that all the info is still valid. - -Introduction -============ - -This is a server board using AMD hardware (Fam10h *and Fam15h* CPUs -available). It can also be used for building a high-powered workstation. -Powered by libreboot. The coreboot port was done by Timothy Pearson of -Raptor Engineering Inc. and, working with them (and sponsoring the -work), merged into libreboot. - -*Memory initialization is still problematic, for some modules. We -recommend avoiding Kingston modules.* -*For working configurations see .* - -Flashing instructions can be found at -[../install/\#flashprog](../install/#flashprog) - note that external -flashing is required, if the proprietary (ASUS) firmware is -currently installed. If you already have libreboot, by default it is -possible to re-flash using software running in Linux on the -KGPE-D16, without using external hardware. - -CPU compatibility -================= - -Opteron 62xx and 63xx CPUs work just fine. - -Board status (compatibility) {#boardstatus} -============================ - -See . - -Form factor {#formfactor} -=========== - -These boards use the SSI EEB 3.61 form factor; make sure that your case -supports this. This form factor is similar to E-ATX in that the size is -identical, but the position of the screws are different. - -IPMI iKVM module add-on {#ipmi} -======================= - -Don't use it. It uses proprietary firmware and adds a backdoor (remote -out-of-band management chip, similar to the [Intel Management -Engine](../../faq.md#intelme). Fortunately, the firmware is -unsigned (possibly to replace) and physically separate from the -mainboard since it's on the add-on module, which you don't have to -install. - -Flash chips {#flashchips} -=========== - -2MiB flash chips are included by default, on these boards. It's on a -P-DIP 8 slot (SPI chip). The flash chip can be upgraded to higher sizes: -4MiB, 8MiB or 16MiB. With at least 8MiB, you could feasibly fit a -compressed linux+initramfs image (BusyBox+Linux system) into CBFS and -boot that, loading it into memory. - -libreboot has configs for 2, 4, 8 and 16 MiB flash chip sizes (default -flash chip is 2MiB). - -*DO NOT hot-swap the chip with your bare hands. Use a P-DIP 8 chip -extractor. These can be found online. See -* - -This guide shows how to flash the chip:\ -[25xx NOR flashing guide](../install/spi.md) - -Native graphics initialization {#graphics} -============================== - -Only text-mode is known to work, but linux(kernel) can initialize the -framebuffer display (if it has KMS - kernel mode setting). - -Current issues {#issues} -============== - -- LRDIMM memory modules are currently incompatible - (IT MAY WORK NOWADAYS, TODO TEST) -- SAS (via PIKE 2008 module) requires a vendor option ROM (and - SeaBIOS) to boot from it (theoretically possible to replace, but you - can put a kernel in CBFS or on SATA and boot from that, which - can be on a SAS drive. The linux kernel can use those SAS drives - (via PIKE module) without an option ROM). -- SeaBIOS lacked serial console support out-of-the-box in release 20160907 - and as such a workaround using SGABIOS is necessary. You can find - instructions on how to do this on the - [Notabug issue tracker](http://web.archive.org/web/20210416011941/https://notabug.org/libreboot/libreboot/issues/736) -- IPMI iKVM module (optional add-on card) uses proprietary firmware. - Since it's for remote out-of-band management, it's theoretically a - backdoor similar to the Intel Management Engine. Fortunately, unlike - the ME, this firmware is unsigned which means that a free - replacement is theoretically possible. For now, the libreboot - project recommends not installing the module. [This - project](https://github.com/facebook/openbmc) might be interesting - to derive from, for those who want to work on a free replacement. In - practise, out-of-band management isn't very useful anyway (or at - the very least, it's not a major inconvenience to not have it). -- Graphics: only text-mode works. See [\#graphics](#graphics) - -Hardware specifications {#specifications} ------------------------ - -The information here is adapted, from the ASUS website. - -### Processor / system bus - -- 2 CPU sockets (G34 compatible) -- HyperTransport™ Technology 3.0 -- CPUs supported: - - AMD Opteron 6100 series (Fam10h. No IOMMU support. *Not* - recommended - old. View errata datasheet here: - ) - - AMD Opteron 6200 series (Fam15h, with full IOMMU support in - libreboot. - - AMD Opteron 6300 series (Fam15h, with full IOMMU support in - libreboot. -- 6.4 GT/s per link (triple link) - -### Core logic - -- AMD SR5690 -- AMD SP5100 - -### Memory compatibility (with libreboot) - -- *Total Slots:* 16 (4-channel per CPU, 8 DIMM per CPU), ECC -- *Capacity:* Maximum up to 256GB RDIMM (Tested max 128GB) -- *Memory Type that is compatible:* - - DDR3 1600/1333/1066/800 UDIMM\* - - DDR3 1600/1333/1066/800 RDIMM\* -- *Compatible sizes per memory module:* - - 16GB, 8GB, 4GB, 3GB, 2GB, 1GB RDIMM - - 8GB, 4GB, 2GB, 1GB UDIMM - -### Expansion slots - -- *Total slot:* 6 -- *Slot Location 1:* PCI 32bit/33MHz -- *Slot Location 2:* PCI-E x16 (Gen2 X8 Link) -- *Slot Location 3:* PCI-E x16 (Gen2 X16 Link), Auto switch to x8 - link if slot 2 is occupied -- *Slot Location 4:* PCI-E x8 (Gen2 X4 Link) -- *Slot Location 5:* PCI-E x16 (Gen2 X16 Link) -- *Slot Location 6:* PCI-E x16 (Gen2 X16 Link), Auto turn off if - slot 5 is occupied, For 1U FH/FL Card, MIO supported -- *Additional Slot 1:* PIKE slot (for SAS drives. See notes above) -- Follow SSI Location\# - -### Form factor {#form-factor} - -- SSI EEB 3.61 (12"x13") - -### ASUS features - -- Fan Speed Control -- Rack Ready (Rack and Pedestal dual use) - -### Storage - -- *SATA controller:* - - AMD SP5100 - - 6 x SATA2 300MB/s -- *SAS/SATA Controller:* - - ASUS PIKE2008 3Gbps 8-port SAS card included - -### Networking - -- 2 x Intel® 82574L + 1 x Mgmt LAN - -### Graphics - -- Aspeed AST2050 with 8MB VRAM - -### On board I/O - -- 1 x PSU Power Connector (24-pin SSI power connector + 8-pin SSI - 12V + 8-pin SSI 12V power connector) -- 1 x Management Connector , Onboard socket for management card -- 3 x USB pin header , Up to 6 Devices -- 1 x Internal A Type USB Port -- 8 x Fan Header , 4pin (3pin/4pin fan dual support) -- 2 x SMBus -- 1 x Serial Port Header -- 1 x TPM header -- 1 x PS/2 KB/MS port - -### Back I/O ports - -- 1 x External Serial Port -- 2 x External USB Port -- 1 x VGA Port -- 2 x RJ-45 -- 1 x PS/2 KB/Mouse - -### Environment - -- *Operation temperature:* 10C \~ 35C -- *Non operation temperature:* -40C \~ 70C -- *Non operation humidity:* 20% \~ 90% ( Non condensing) - -### Monitoring - -- CPU temperatures -- Fan speed (RPM) - -### Note: - -- \* DDR3 1600 can only be supported with AMD Opteron 6300/6200 series - processor diff --git a/site/docs/hardware/r400.md b/site/docs/hardware/r400.md deleted file mode 100644 index 4193893..0000000 --- a/site/docs/hardware/r400.md +++ /dev/null @@ -1,108 +0,0 @@ ---- -title: ThinkPad R400 -x-toc-enable: true -... - -
-
-![ThinkPad R400]() -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Lenovo | -| **Name** | ThinkPad R400 | -| **Released** | 2009 | -| **Chipset** | Intel Cantiga GM45 | -| **CPU** | Intel Core 2 Duo (Penryn/Merom family) or - Celeron M (Merom L family) | -| **Graphics** | Intel GMA 4500MHD (and ATI Mobility Radeon HD - 3470 or nVIDIA - GeForce 9300M on some models) | -| **Display** | 1280x800/1440x900 TFT | -| **Memory** | Up to 8GB | -| **Architecture** | x86_64 | -| **EC** | Proprietary | -| **Original boot firmware** | LenovoBIOS | -| **Intel ME/AMD PSP** | Present. Can be completly disabled. | -| **Flash chip** | SOIC-8/SOIC-16 4MiB/8MiB (Upgradable to 16MiB) | - -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|----------------|---------------------------------------| -| **Internal flashing with original boot firmware** | N | -| **Display** | W+ | -| **Audio** | W+ | -| **RAM Init** | W+ | -| **External output** | W+ | -| **Display brightness** | P+ | - -| ***Payloads supported*** | | -|---------------------------|-----------| -| **GRUB** | Works | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | -
-Dell Latitude E6400 -=================== - -**If you haven't bought an R400 yet: the [Dell Latitude -E6400](../install/latitude.md) is much easier to flash; no disassembly required, -it can be flashed entirely in software from Dell BIOS to Libreboot. It is the -same hardware generation (GM45), with same CPUs, video processor, etc.** - -Introduction -============ - -It is believed that all or most R400 laptops are compatible. See notes -about [CPU -compatibility](../install/r400_external.html#cpu_compatibility) for -potential incompatibilities. - -There are two possible flash chip sizes for the R400: 4MiB (32Mbit) or -8MiB (64Mbit). This can be identified by the type of flash chip below -the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16. - -*The R400 laptops come with the ME (and sometimes AMT in addition) -before flashing libreboot. libreboot disables and removes it by using a -modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* -(contains notes, plus instructions) - -Flashing instructions can be found at -[../install/\#flashprog](../install/#flashprog) - -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. - -EC update {#ecupdate} -========= - -It is recommended that you update to the latest EC firmware version. The -[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from -libreboot, so we don't actually provide that, but if you still have -Lenovo BIOS then you can just run the Lenovo BIOS update utility, which -will update both the BIOS and EC version. See: - -- [../install/#flashprog](../install/#flashprog) -- - -NOTE: this can only be done when you are using Lenovo BIOS. How to -update the EC firmware while running libreboot is unknown. libreboot -only replaces the BIOS firmware, not EC. - -Updated EC firmware has several advantages e.g. bettery battery -handling. - -The R400 is almost identical to the X200, code-wise. See -[x200.md](x200.md). - -TODO: put hardware register logs here like on the [X200](x200.md) and -[T400](t400.md) page. diff --git a/site/docs/hardware/r500.md b/site/docs/hardware/r500.md deleted file mode 100644 index 98f806c..0000000 --- a/site/docs/hardware/r500.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -title: ThinkPad R500 -x-toc-enable: true -... - -
-
-![ThinkPad R500]() -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Lenovo | -| **Name** | ThinkPad R500 | -| **Released** | 2009 | -| **Chipset** | Intel Cantiga GM45 | -| **CPU** | Intel Core 2 Duo (Penryn/Merom family) or - Celeron M (Merom L family) | -| **Graphics** | Intel GMA 4500MHD (or ATI Mobility Radeon HD - 3470 on some models) | -| **Display** | 1280x800/1680x1050 TFT | -| **Memory** | 512MB, 2GB or 4GB (Upgradable to 8GB) | -| **Architecture** | x86_64 | -| **EC** | Proprietary | -| **Original boot firmware** | LenovoBIOS | -| **Intel ME/AMD PSP** | Present. Can be completly disabled. | -| **Flash chip** | SOIC-8/SOIC-16/WSON-8 4MiB/8MiB (Upgradable - to 16MiB) | -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|----------------|---------------------------------------| -| **Internal flashing with original boot firmware** | N | -| **Display** | W+ | -| **Audio** | W+ | -| **RAM Init** | W+ | -| **External output** | W+ | -| **Display brightness** | P+ | - -| ***Payloads supported*** | | -|---------------------------|-----------| -| **GRUB** | Works | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | -
-Dell Latitude E6400 -=================== - -**If you haven't bought an R500 yet: the [Dell Latitude -E6400](../install/latitude.md) is much easier to flash; no disassembly required, -it can be flashed entirely in software from Dell BIOS to Libreboot. It is the -same hardware generation (GM45), with same CPUs, video processor, etc.** - -Introduction -============ - -This board as basically identical to the T500, and has very similar disassembly. -You must take it apart and flash the chip externally. - -The chip is 4MiB NOR flash (SPI protocol) is SOIC8 form factory. - -Refer to the following guide:\ -[Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md) - -Unlike other GM45+ICH9M thinkpads in libreboot, the R500 doesn't have an Intel -PHY (for Gigabit Ethernet). However, libreboot still includes an Intel flash -descriptor, but with just the descriptor and BIOS region. The `ich9gen` program -supports this fully. - -Therefore, you do not have to worry about the MAC address. The onboard NIC for -ethernet is made by Broadcom (and works in linux-libre). - -Refer to T500 disassembly guide. The R500 disassembly procedure is almost -identical. diff --git a/site/docs/hardware/t400.md b/site/docs/hardware/t400.md deleted file mode 100644 index 84e0757..0000000 --- a/site/docs/hardware/t400.md +++ /dev/null @@ -1,104 +0,0 @@ ---- -title: ThinkPad T400 -x-toc-enable: true -... - -
-
-ThinkPad T400 -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Lenovo | -| **Name** | ThinkPad T400 | -| **Released** | 2009 | -| **Chipset** | Intel Cantiga GM45 | -| **CPU** | Intel Core 2 Duo (Penryn family). A Quad-core - mod exists, replacing the Core 2 Duo with a Core Quad | -| **Graphics** | Intel GMA 4500MHD (and ATI Mobility Radeon HD - 3650 on some models) | -| **Display** | 1280x800/1440x900 TFT | -| **Memory** | 2 or 4GB (Upgradable to 8GB) | -| **Architecture** | x86_64 | -| **EC** | Proprietary | -| **Original boot firmware** | LenovoBIOS | -| **Intel ME/AMD PSP** | Present. Can be completly disabled. | -| **Flash chip** | SOIC-8/SOIC-16/WSON-8 4MiB/8MiB (Upgradable - to 16MiB) | -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|----------------|---------------------------------------| -| **Internal flashing with original boot firmware** | N | -| **Display** | W+ | -| **Audio** | W+ | -| **RAM Init** | W+ | -| **External output** | W+ | -| **Display brightness** | P+ | - -| ***Payloads supported*** | | -|---------------------------|-----------| -| **GRUB** | Works | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | -
-Dell Latitude E6400 -=================== - -**If you haven't bought an T400 yet: the [Dell Latitude -E6400](../install/latitude.md) is much easier to flash; no disassembly required, -it can be flashed entirely in software from Dell BIOS to Libreboot. It is the -same hardware generation (GM45), with same CPUs, video processor, etc.** - -Introduction -============ - -It is believed that all or most laptops of the model T400 are compatible. See notes -about [CPU -compatibility](../install/t400_external.html#cpu_compatibility) for -potential incompatibilities. - -There are two possible flash chip sizes for the T400: 4MiB (32Mbit) or -8MiB (64Mbit). This can be identified by the type of flash chip below -the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16. - -*The T400 laptops come with the ME (and sometimes AMT in addition) -before flashing libreboot. libreboot disables and removes it by using a -modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* -(contains notes, plus instructions) - -Flashing instructions can be found at -[../install/\#flashprog](../install/#flashprog) - -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. - -EC update {#ecupdate} -========= - -It is recommended that you update to the latest EC firmware version. The -[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from -libreboot, so we don't actually provide that, but if you still have -Lenovo BIOS then you can just run the Lenovo BIOS update utility, which -will update both the BIOS and EC version. See: - -- [../install/#flashprog](../install/#flashprog) -- - -NOTE: this can only be done when you are using Lenovo BIOS. How to -update the EC firmware while running libreboot is unknown. libreboot -only replaces the BIOS firmware, not EC. - -Updated EC firmware has several advantages e.g. bettery battery -handling. - -The T400 is almost identical to the X200, code-wise. See -[x200.md](x200.md). diff --git a/site/docs/hardware/t500.md b/site/docs/hardware/t500.md deleted file mode 100644 index aeec2ec..0000000 --- a/site/docs/hardware/t500.md +++ /dev/null @@ -1,106 +0,0 @@ ---- -title: ThinkPad T500 -x-toc-enable: true -... - -
-
-ThinkPad T500 -
- -| ***Specifications*** | | -|----------------------------|------------------------------------------------| -| **Manufacturer** | Lenovo | -| **Name** | ThinkPad T500 | -| **Released** | 2009 | -| **Chipset** | Intel Cantiga GM45 | -| **CPU** | Intel Core 2 Duo (Penryn family). A Quad-core - mod exists, replacing the Core 2 Duo with a Core Quad | -| **Graphics** | Intel GMA 4500MHD (and ATI Mobility Radeon HD - 3650 on some models) | -| **Display** | 1280x800/1680x1050/1920x1200 TFT | -| **Memory** | 2 or 4GB (Upgradable to 8GB) | -| **Architecture** | x86_64 | -| **EC** | Proprietary | -| **Original boot firmware** | LenovoBIOS | -| **Intel ME/AMD PSP** | Present. Can be completly disabled. | -| **Flash chip** | SOIC-8/SOIC-16/WSON-8 4MiB/8MiB (Upgradable - to 16MiB) | -``` -W+: Works without blobs; -N: Doesn't work; -W*: Works with blobs; -U: Untested; -P+: Partially works; -P*: Partially works with blobs -``` - -| ***Features*** | | -|----------------|---------------------------------------| -| **Internal flashing with original boot firmware** | N | -| **Display** | W+ | -| **Audio** | W+ | -| **RAM Init** | W+ | -| **External output** | W+ | -| **Display brightness** | P+ | - -| ***Payloads supported*** | | -|---------------------------|-----------| -| **GRUB** | Works | -| **SeaBIOS** | Works | -| **SeaBIOS with GRUB** | Works | -
-Dell Latitude E6400 -=================== - -**If you haven't bought an T500 yet: the [Dell Latitude -E6400](../install/latitude.md) is much easier to flash; no disassembly required, -it can be flashed entirely in software from Dell BIOS to Libreboot. It is the -same hardware generation (GM45), with same CPUs, video processor, etc.** - -Introduction -============ - -It is believed that all or most T500 laptops are compatible. See notes -about [CPU -compatibility](../install/t500_external.html#cpu_compatibility) for -potential incompatibilities. - -W500 is also compatible, and mostly the same design as T500. - -There are two possible flash chip sizes for the T500: 4MiB (32Mbit) or -8MiB (64Mbit). This can be identified by the type of flash chip below -the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16. - -*The T500 laptops come with the ME (and sometimes AMT in addition) -before flashing libreboot. libreboot disables and removes it by using a -modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* -(contains notes, plus instructions) - -Flashing instructions can be found at -[../install/\#flashprog](../install/#flashprog) - -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. - -EC update {#ecupdate} -========= - -It is recommended that you update to the latest EC firmware version. The -[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from -libreboot, so we don't actually provide that, but if you still have -Lenovo BIOS then you can just run the Lenovo BIOS update utility, which -will update both the BIOS and EC version. See: - -- [../install/#flashprog](../install/#flashprog) -- - -NOTE: this can only be done when you are using Lenovo BIOS. How to -update the EC firmware while running libreboot is unknown. libreboot -only replaces the BIOS firmware, not EC. - -Updated EC firmware has several advantages e.g. bettery battery -handling. - -The T500 is almost identical to the X200, code-wise. See -[x200.md](x200.md). diff --git a/site/docs/hardware/text/kfsn4-dre/bootlog.txt b/site/docs/hardware/text/kfsn4-dre/bootlog.txt deleted file mode 100644 index ea6722d..0000000 --- a/site/docs/hardware/text/kfsn4-dre/bootlog.txt +++ /dev/null @@ -1,3871 +0,0 @@ -*****TEXT MODE ROM IMAGE***** - - - -coreboot-4.0 Fri Jun 26 20:19:07 UTC 2015 romstage starting... -BSP Family_Model: 00100f21 -*sysinfo range: [000c4000,000c6899] -bsp_apicid = 00 -cpu_init_detectedx = 00000000 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cpu_microcode_blob.bin' -CBFS: 'cpu_microcode_blob.bin' not found. -[microcode] microcode file not found. Skipping updates. -cpuSetAMDMSR done -Enter amd_ht_init() -AMD_CB_EventNotify() - event class: 05 - event: 1004 - data: 04 00 00 01 -AMD_CB_EventNotify() - event class: 05 - event: 2006 - data: 04 00 01 00 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -Exit amd_ht_init() -cpuSetAMDPCI 00 done -cpuSetAMDPCI 01 done -Prep FID/VID Node:00 - F3x80: e600a681 - F3x84: a0e641e6 - F3xD4: c3310f23 - F3xD8: 03001c14 - F3xDC: 00005428 -Prep FID/VID Node:01 - F3x80: e600a681 - F3x84: a0e641e6 - F3xD4: c3310f23 - F3xD8: 03001c14 - F3xDC: 00005428 -setup_remote_node: 01 done -Start node 01 done. -core0 started: 01 - -Begin FIDVID MSR 0xc0010071 0x20a600e4 0x38045044 -FIDVID on BSP, APIC_id: 00 -BSP fid = 10400 -Wait for AP stage 1: ap_apicid = 1 -init_fidvid_bsp_stage1: timed out reading from ap 01 -Wait for AP stage 1: ap_apicid = 2 -init_fidvid_bsp_stage1: timed out reading from ap 02 -Wait for AP stage 1: ap_apicid = 3 -init_fidvid_bsp_stage1: timed out reading from ap 03 -Wait for AP stage 1: ap_apicid = 4 - readback = 4010401 - common_fid(packed) = 10400 -Wait for AP stage 1: ap_apicid = 5 -init_fidvid_bsp_stage1: timed out reading from ap 05 -Wait for AP stage 1: ap_apicid = 6 -init_fidvid_bsp_stage1: timed out reading from ap 06 -Wait for AP stage 1: ap_apicid = 7 -init_fidvid_bsp_stage1: timed out reading from ap 07 -common_fid = 10400 -FID Change Node:00, F3xD4: c3310f24 -FID Change Node:01, F3xD4: c3310f24 -End FIDVIDMSR 0xc0010071 0x20a600e4 0x38005044 -start_other_cores() -init node: 00 cores: 03 -Start other core - nodeid: 00 cores: 03 -init node: 01 cores: 03 -Start other core - nodeid: 01 cores: 03 -started ap apicid: * AP 01started -* AP 02started -* AP 03started -* AP 05started -* AP 06started -* AP 07started - -set_ck804_base_unit_id() -...WARM RESET... - - - - -coreboot-4.0 Fri Jun 26 20:19:07 UTC 2015 romstage starting... -BSP Family_Model: 00100f21 -*sysinfo range: [000c4000,000c6899] -bsp_apicid = 00 -cpu_init_detectedx = 00000000 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cpu_microcode_blob.bin' -CBFS: 'cpu_microcode_blob.bin' not found. -[microcode] microcode file not found. Skipping updates. -cpuSetAMDMSR done -Enter amd_ht_init() -AMD_CB_EventNotify() - event class: 05 - event: 1004 - data: 04 00 00 01 -AMD_CB_EventNotify() - event class: 05 - event: 2006 - data: 04 00 01 00 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -Exit amd_ht_init() -cpuSetAMDPCI 00 done -cpuSetAMDPCI 01 done -Prep FID/VID Node:00 - F3x80: e600a681 - F3x84: a0e641e6 - F3xD4: c3310f24 - F3xD8: 03001c14 - F3xDC: 00005428 -Prep FID/VID Node:01 - F3x80: e600a681 - F3x84: a0e641e6 - F3xD4: c3310f24 - F3xD8: 03001c14 - F3xDC: 00005428 -setup_remote_node: 01 done -Start node 01 done. -core0 started: 01 - -Begin FIDVID MSR 0xc0010071 0x20a600e4 0x38005044 -End FIDVIDMSR 0xc0010071 0x20a600e4 0x38003803 -start_other_cores() -init node: 00 cores: 03 -Start other core - nodeid: 00 cores: 03 -init node: 01 cores: 03 -Start other core - nodeid: 01 cores: 03 -started ap apicid: * AP 01started -* AP 02started -* AP 03started -* AP 05started -* AP 06started -* AP 07started - -set_ck804_base_unit_id() -fill_mem_ctrl() -enable_smbus() -SMBus controller enabled -raminit_amdmct() -raminit_amdmct begin: -activate_spd_rom() for node 00 -enable_spd_node0() -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -activate_spd_rom() for node 01 -enable_spd_node1() -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 - Node: 00 base: 00 limit: ffffff BottomIO: c00000 - Node: 01 base: 1400000 limit: 17fffff BottomIO: c00000 - Copy dram map from Node 0 to Node 01 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -raminit_amdmct end: -CBMEM: -IMD: root @ bffff000 254 entries. -IMD: root @ bfffec00 62 entries. -amdmct_cbmem_store_info: Storing AMDMCT configuration in CBMEM -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -disable_spd() -enable_msi_mapping() -Prepare CAR migration and stack regions... Fill [003fd000-003fffff] ... Done -Copying data from cache to RAM... Copy [000c4000-000c693f] to [003fd6c0 - 003fffff] ... Done -Switching to use RAM as stack... Top about 003fd6ac ... Done -Disabling cache as ram now -Prepare ramstage memory region... Fill [00000000-003fcfff] ... Done -CBFS provider active. -CBFS @ 0 size ff8c0 -CBFS: Locating 'fallback/ramstage' -CBFS: Found @ offset 15440 size 147e1 -'fallback/ramstage' located at offset: 15478 size: 147e1 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -Capability: type 0x0a @ 0x44 - - -coreboot-4.0 Fri Jun 26 20:19:07 UTC 2015 ramstage starting... -Moving GDT to bfffe980...ok -BS: BS_PRE_DEVICE times (us): entry 0 run 1 exit 0 -BS: BS_DEV_INIT_CHIPS times (us): entry 0 run 3 exit 0 -Enumerating buses... -Show all devs... Before device enumeration. -Root Device: enabled 1 -CPU_CLUSTER: 0: enabled 1 -APIC: 00: enabled 1 -DOMAIN: 0000: enabled 1 -PCI: 00:18.0: enabled 1 -PCI: 00:00.0: enabled 1 -PCI: 00:01.0: enabled 1 -PNP: 002e.0: enabled 1 -PNP: 002e.1: enabled 0 -PNP: 002e.2: enabled 1 -PNP: 002e.3: enabled 1 -PNP: 002e.5: enabled 1 -PNP: 002e.7: enabled 0 -PNP: 002e.8: enabled 0 -PNP: 002e.9: enabled 1 -PNP: 002e.a: enabled 0 -PNP: 002e.b: enabled 1 -PCI: 00:01.1: enabled 1 -I2C: 00:50: enabled 1 -I2C: 00:51: enabled 1 -I2C: 00:52: enabled 1 -I2C: 00:53: enabled 1 -I2C: 00:54: enabled 1 -I2C: 00:55: enabled 1 -I2C: 00:56: enabled 1 -I2C: 00:57: enabled 1 -I2C: 00:2f: enabled 1 -PCI: 00:02.0: enabled 1 -PCI: 00:02.1: enabled 1 -PCI: 00:04.0: enabled 0 -PCI: 00:04.1: enabled 0 -PCI: 00:06.0: enabled 1 -PCI: 00:07.0: enabled 1 -PCI: 00:08.0: enabled 1 -PCI: 00:09.0: enabled 1 -PCI: 00:04.0: enabled 1 -PCI: 00:0a.0: enabled 0 -PCI: 00:0b.0: enabled 1 -PCI: 00:00.0: enabled 1 -PCI: 00:0c.0: enabled 1 -PCI: 00:00.0: enabled 1 -PCI: 00:0d.0: enabled 1 -PCI: 00:00.0: enabled 1 -PCI: 00:0e.0: enabled 1 -PCI: 00:0f.0: enabled 0 -PCI: 00:18.1: enabled 1 -PCI: 00:18.2: enabled 1 -PCI: 00:18.3: enabled 1 -PCI: 00:18.4: enabled 1 -PCI: 00:19.0: enabled 1 -PCI: 00:19.1: enabled 1 -PCI: 00:19.2: enabled 1 -PCI: 00:19.3: enabled 1 -PCI: 00:19.4: enabled 1 -Compare with tree... -Root Device: enabled 1 - CPU_CLUSTER: 0: enabled 1 - APIC: 00: enabled 1 - DOMAIN: 0000: enabled 1 - PCI: 00:18.0: enabled 1 - PCI: 00:00.0: enabled 1 - PCI: 00:01.0: enabled 1 - PNP: 002e.0: enabled 1 - PNP: 002e.1: enabled 0 - PNP: 002e.2: enabled 1 - PNP: 002e.3: enabled 1 - PNP: 002e.5: enabled 1 - PNP: 002e.7: enabled 0 - PNP: 002e.8: enabled 0 - PNP: 002e.9: enabled 1 - PNP: 002e.a: enabled 0 - PNP: 002e.b: enabled 1 - PCI: 00:01.1: enabled 1 - I2C: 00:50: enabled 1 - I2C: 00:51: enabled 1 - I2C: 00:52: enabled 1 - I2C: 00:53: enabled 1 - I2C: 00:54: enabled 1 - I2C: 00:55: enabled 1 - I2C: 00:56: enabled 1 - I2C: 00:57: enabled 1 - I2C: 00:2f: enabled 1 - PCI: 00:02.0: enabled 1 - PCI: 00:02.1: enabled 1 - PCI: 00:04.0: enabled 0 - PCI: 00:04.1: enabled 0 - PCI: 00:06.0: enabled 1 - PCI: 00:07.0: enabled 1 - PCI: 00:08.0: enabled 1 - PCI: 00:09.0: enabled 1 - PCI: 00:04.0: enabled 1 - PCI: 00:0a.0: enabled 0 - PCI: 00:0b.0: enabled 1 - PCI: 00:00.0: enabled 1 - PCI: 00:0c.0: enabled 1 - PCI: 00:00.0: enabled 1 - PCI: 00:0d.0: enabled 1 - PCI: 00:00.0: enabled 1 - PCI: 00:0e.0: enabled 1 - PCI: 00:0f.0: enabled 0 - PCI: 00:18.1: enabled 1 - PCI: 00:18.2: enabled 1 - PCI: 00:18.3: enabled 1 - PCI: 00:18.4: enabled 1 - PCI: 00:19.0: enabled 1 - PCI: 00:19.1: enabled 1 - PCI: 00:19.2: enabled 1 - PCI: 00:19.3: enabled 1 - PCI: 00:19.4: enabled 1 -Root Device scanning... -root_dev_scan_bus for Root Device -setup_bsp_ramtop, TOP MEM: msr.lo = 0xc0000000, msr.hi = 0x00000000 -setup_bsp_ramtop, TOP MEM2: msr.lo = 0x80000000, msr.hi = 0x00000001 -CPU_CLUSTER: 0 enabled -DOMAIN: 0000 enabled -CPU_CLUSTER: 0 scanning... -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 - PCI: 00:18.3 siblings=3 -CPU: APIC: 00 enabled -CPU: APIC: 01 enabled -CPU: APIC: 02 enabled -CPU: APIC: 03 enabled - PCI: 00:19.3 siblings=3 -CPU: APIC: 04 enabled -CPU: APIC: 05 enabled -CPU: APIC: 06 enabled -CPU: APIC: 07 enabled -DOMAIN: 0000 scanning... -PCI: pci_scan_bus for bus 00 -PCI: 00:18.0 [1022/1200] bus ops -PCI: 00:18.0 [1022/1200] enabled -PCI: 00:18.1 [1022/1201] enabled -PCI: 00:18.2 [1022/1202] enabled -PCI: 00:18.3 [1022/1203] ops -PCI: 00:18.3 [1022/1203] enabled -PCI: 00:18.4 [1022/1204] enabled -PCI: 00:19.0 [1022/1200] bus ops -PCI: 00:19.0 [1022/1200] enabled -PCI: 00:19.1 [1022/1201] enabled -PCI: 00:19.2 [1022/1202] enabled -PCI: 00:19.3 [1022/1203] ops -PCI: 00:19.3 [1022/1203] enabled -PCI: 00:19.4 [1022/1204] enabled -PCI: 00:18.0 scanning... -PCI: 00:00.0 [10de/005e] ops -PCI: 00:00.0 [10de/005e] enabled -Capability: type 0x08 @ 0x44 -flags: 0x01e0 -PCI: 00:00.0 count: 000f static_count: 0010 -PCI: 00:00.0 [10de/005e] enabled next_unitid: 0010 -PCI: pci_scan_bus for bus 00 -PCI: 00:00.0 [10de/005e] enabled -PCI: 00:01.0 [10de/0051] bus ops -PCI: 00:01.0 [10de/0051] enabled -PCI: 00:01.1 [10de/0052] bus ops -PCI: 00:01.1 [10de/0052] enabled -PCI: 00:02.0 [10de/005a] ops -PCI: 00:02.0 [10de/005a] enabled -PCI: 00:02.1 [10de/005b] ops -PCI: 00:02.1 [10de/005b] enabled -PCI: 00:04.0 [10de/0059] ops -PCI: 00:04.0 [10de/0059] disabled -PCI: 00:04.1 [10de/0058] ops -PCI: 00:04.1 [10de/0058] disabled -PCI: 00:06.0 [10de/0053] ops -PCI: 00:06.0 [10de/0053] enabled -PCI: 00:07.0 [10de/0054] ops -PCI: 00:07.0 [10de/0054] enabled -PCI: 00:08.0 [10de/0055] ops -PCI: 00:08.0 [10de/0055] enabled -PCI: 00:09.0 [10de/005c] bus ops -PCI: 00:09.0 [10de/005c] enabled -PCI: 00:0b.0 [10de/005d] bus ops -PCI: 00:0b.0 [10de/005d] enabled -PCI: 00:0c.0 [10de/005d] bus ops -PCI: 00:0c.0 [10de/005d] enabled -PCI: 00:0d.0 [10de/005d] bus ops -PCI: 00:0d.0 [10de/005d] enabled -PCI: 00:0e.0 [10de/005d] bus ops -PCI: 00:0e.0 [10de/005d] enabled -PCI: 00:01.0 scanning... -scan_lpc_bus for PCI: 00:01.0 -PNP: 002e.0 enabled -PNP: 002e.1 disabled -PNP: 002e.2 enabled -PNP: 002e.3 enabled -PNP: 002e.5 enabled -PNP: 002e.7 disabled -PNP: 002e.8 disabled -PNP: 002e.9 enabled -PNP: 002e.a disabled -PNP: 002e.b enabled -scan_lpc_bus for PCI: 00:01.0 done -PCI: 00:01.1 scanning... -scan_smbus for PCI: 00:01.1 -smbus: PCI: 00:01.1[0]->I2C: 01:50 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:51 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:52 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:53 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:54 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:55 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:56 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:57 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:2f enabled -scan_smbus for PCI: 00:01.1 done -PCI: 00:09.0 scanning... -do_pci_scan_bridge for PCI: 00:09.0 -PCI: pci_scan_bus for bus 01 -PCI: 01:04.0 [18ca/0020] ops -PCI: 01:04.0 [18ca/0020] enabled -PCI: 00:0b.0 scanning... -do_pci_scan_bridge for PCI: 00:0b.0 -PCI: pci_scan_bus for bus 02 -PCI: 02:00.0 [14e4/1659] enabled -PCI: 00:0c.0 scanning... -do_pci_scan_bridge for PCI: 00:0c.0 -PCI: pci_scan_bus for bus 03 -PCI: 03:00.0 [14e4/1659] enabled -PCI: 00:0d.0 scanning... -do_pci_scan_bridge for PCI: 00:0d.0 -PCI: pci_scan_bus for bus 04 -PCI: Static device PCI: 04:00.0 not found, disabling it. -PCI: 00:0e.0 scanning... -do_pci_scan_bridge for PCI: 00:0e.0 -PCI: pci_scan_bus for bus 05 -PCI: 00:19.0 scanning... -DOMAIN: 0000 passpw: enabled -DOMAIN: 0000 passpw: enabled -root_dev_scan_bus for Root Device done -done -BS: BS_DEV_ENUMERATE times (us): entry 0 run 598152 exit 0 -found VGA at PCI: 01:04.0 -Setting up VGA for PCI: 01:04.0 -Setting PCI_BRIDGE_CTL_VGA for bridge PCI: 00:09.0 -Setting PCI_BRIDGE_CTL_VGA for bridge PCI: 00:18.0 -Setting PCI_BRIDGE_CTL_VGA for bridge DOMAIN: 0000 -Setting PCI_BRIDGE_CTL_VGA for bridge Root Device -Allocating resources... -Reading resources... -Root Device read_resources bus 0 link: 0 -CPU_CLUSTER: 0 read_resources bus 0 link: 0 -APIC: 00 missing read_resources -APIC: 01 missing read_resources -APIC: 02 missing read_resources -APIC: 03 missing read_resources -APIC: 04 missing read_resources -APIC: 05 missing read_resources -APIC: 06 missing read_resources -APIC: 07 missing read_resources -CPU_CLUSTER: 0 read_resources bus 0 link: 0 done -DOMAIN: 0000 read_resources bus 0 link: 0 -PCI: 00:18.0 read_resources bus 0 link: 1 -PCI: 00:01.0 read_resources bus 0 link: 0 -PCI: 00:01.0 read_resources bus 0 link: 0 done -PCI: 00:01.1 read_resources bus 1 link: 0 -I2C: 01:50 missing read_resources -I2C: 01:51 missing read_resources -I2C: 01:52 missing read_resources -I2C: 01:53 missing read_resources -I2C: 01:54 missing read_resources -I2C: 01:55 missing read_resources -I2C: 01:56 missing read_resources -I2C: 01:57 missing read_resources -PCI: 00:01.1 read_resources bus 1 link: 0 done -PCI: 00:01.1 read_resources bus 2 link: 1 -PCI: 00:01.1 read_resources bus 2 link: 1 done -PCI: 00:09.0 read_resources bus 1 link: 0 -PCI: 00:09.0 read_resources bus 1 link: 0 done -PCI: 00:0b.0 read_resources bus 2 link: 0 -PCI: 00:0b.0 read_resources bus 2 link: 0 done -PCI: 00:0c.0 read_resources bus 3 link: 0 -PCI: 00:0c.0 read_resources bus 3 link: 0 done -PCI: 00:0d.0 read_resources bus 4 link: 0 -PCI: 00:0d.0 read_resources bus 4 link: 0 done -PCI: 00:0e.0 read_resources bus 5 link: 0 -PCI: 00:0e.0 read_resources bus 5 link: 0 done -PCI: 00:18.0 read_resources bus 0 link: 1 done -PCI: 00:18.0 read_resources bus 0 link: 0 -PCI: 00:18.0 read_resources bus 0 link: 0 done -PCI: 00:18.0 read_resources bus 0 link: 2 -PCI: 00:18.0 read_resources bus 0 link: 2 done -PCI: 00:18.0 read_resources bus 0 link: 3 -PCI: 00:18.0 read_resources bus 0 link: 3 done -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -PCI: 00:18.4 read_resources bus 0 link: 0 -PCI: 00:18.4 read_resources bus 0 link: 0 done -PCI: 00:18.4 read_resources bus 0 link: 1 -PCI: 00:18.4 read_resources bus 0 link: 1 done -PCI: 00:18.4 read_resources bus 0 link: 2 -PCI: 00:18.4 read_resources bus 0 link: 2 done -PCI: 00:18.4 read_resources bus 0 link: 3 -PCI: 00:18.4 read_resources bus 0 link: 3 done -PCI: 00:19.0 read_resources bus 0 link: 0 -PCI: 00:19.0 read_resources bus 0 link: 0 done -PCI: 00:19.0 read_resources bus 0 link: 1 -PCI: 00:19.0 read_resources bus 0 link: 1 done -PCI: 00:19.0 read_resources bus 0 link: 2 -PCI: 00:19.0 read_resources bus 0 link: 2 done -PCI: 00:19.0 read_resources bus 0 link: 3 -PCI: 00:19.0 read_resources bus 0 link: 3 done -PCI: 00:19.4 read_resources bus 0 link: 0 -PCI: 00:19.4 read_resources bus 0 link: 0 done -PCI: 00:19.4 read_resources bus 0 link: 1 -PCI: 00:19.4 read_resources bus 0 link: 1 done -PCI: 00:19.4 read_resources bus 0 link: 2 -PCI: 00:19.4 read_resources bus 0 link: 2 done -PCI: 00:19.4 read_resources bus 0 link: 3 -PCI: 00:19.4 read_resources bus 0 link: 3 done -DOMAIN: 0000 read_resources bus 0 link: 0 done -Root Device read_resources bus 0 link: 0 done -Done reading resources. -Show resources in subtree (Root Device)...After reading. - Root Device child on link 0 CPU_CLUSTER: 0 - CPU_CLUSTER: 0 child on link 0 APIC: 00 - APIC: 00 - APIC: 01 - APIC: 02 - APIC: 03 - APIC: 04 - APIC: 05 - APIC: 06 - APIC: 07 - DOMAIN: 0000 child on link 0 PCI: 00:18.0 - DOMAIN: 0000 resource base 0 size 0 align 0 gran 0 limit ffff flags 40040100 index 10000000 - DOMAIN: 0000 resource base 0 size 0 align 0 gran 0 limit ffffffff flags 40040200 index 10000100 - DOMAIN: 0000 resource base c0000000 size 10000000 align 0 gran 0 limit 0 flags f0000200 index c0010058 - DOMAIN: 0000 resource base 0 size c0000000 align 0 gran 0 limit 0 flags e0004200 index 7 - PCI: 00:18.0 child on link 0 PCI: 00:00.0 - PCI: 00:18.0 resource base 0 size 0 align 12 gran 12 limit ffff flags 80100 index 110d8 - PCI: 00:18.0 resource base 0 size 0 align 20 gran 20 limit ffffffffff flags 81200 index 110b8 - PCI: 00:18.0 resource base 0 size 0 align 20 gran 20 limit ffffffffff flags 80200 index 110b0 - PCI: 00:00.0 - PCI: 00:01.0 child on link 0 PNP: 002e.0 - PCI: 00:01.0 resource base 0 size 80 align 7 gran 7 limit ffff flags 100 index 10 - PCI: 00:01.0 resource base fec00000 size 1000 align 12 gran 12 limit ffffffff flags c0000200 index 14 - PCI: 00:01.0 resource base fed00000 size 1000 align 12 gran 12 limit ffffffff flags c0000200 index 44 - PCI: 00:01.0 resource base 0 size 100 align 8 gran 8 limit ffff flags 100 index 60 - PCI: 00:01.0 resource base 0 size 100 align 8 gran 8 limit ffff flags 100 index 64 - PCI: 00:01.0 resource base 0 size 100 align 8 gran 8 limit ffff flags 100 index 68 - PCI: 00:01.0 resource base 0 size 1000 align 0 gran 0 limit 0 flags c0040100 index 10000000 - PCI: 00:01.0 resource base ff800000 size 800000 align 0 gran 0 limit 0 flags c0040200 index 10000100 - PNP: 002e.0 - PNP: 002e.0 resource base 3f0 size 8 align 3 gran 3 limit 7ff flags c0000100 index 60 - PNP: 002e.0 resource base 6 size 1 align 0 gran 0 limit 0 flags c0000400 index 70 - PNP: 002e.0 resource base 2 size 1 align 0 gran 0 limit 0 flags c0000800 index 74 - PNP: 002e.1 - PNP: 002e.1 resource base 0 size 8 align 3 gran 3 limit 7ff flags 100 index 60 - PNP: 002e.1 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 70 - PNP: 002e.1 resource base 0 size 1 align 0 gran 0 limit 0 flags 800 index 74 - PNP: 002e.2 - PNP: 002e.2 resource base 3f8 size 8 align 3 gran 3 limit 7ff flags c0000100 index 60 - PNP: 002e.2 resource base 4 size 1 align 0 gran 0 limit 0 flags c0000400 index 70 - PNP: 002e.3 - PNP: 002e.3 resource base 2f8 size 8 align 3 gran 3 limit 7ff flags c0000100 index 60 - PNP: 002e.3 resource base 3 size 1 align 0 gran 0 limit 0 flags c0000400 index 70 - PNP: 002e.3 resource base 4 size 1 align 0 gran 0 limit 0 flags c0000500 index f1 - PNP: 002e.5 - PNP: 002e.5 resource base 60 size 1 align 0 gran 0 limit ffffffff flags c0000100 index 60 - PNP: 002e.5 resource base 64 size 1 align 0 gran 0 limit ffffffff flags c0000100 index 62 - PNP: 002e.5 resource base 1 size 1 align 0 gran 0 limit 0 flags c0000400 index 70 - PNP: 002e.5 resource base c size 1 align 0 gran 0 limit 0 flags c0000400 index 72 - PNP: 002e.5 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index f0 - PNP: 002e.7 - PNP: 002e.7 resource base 0 size 1 align 0 gran 0 limit ffffffff flags 100 index 60 - PNP: 002e.7 resource base 0 size 2 align 1 gran 1 limit 7ff flags 100 index 62 - PNP: 002e.7 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 70 - PNP: 002e.8 - PNP: 002e.9 - PNP: 002e.9 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 30 - PNP: 002e.9 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index f0 - PNP: 002e.9 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index f1 - PNP: 002e.a - PNP: 002e.a resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 70 - PNP: 002e.b - PNP: 002e.b resource base 290 size 8 align 3 gran 3 limit fff flags c0000100 index 60 - PNP: 002e.b resource base 5 size 1 align 0 gran 0 limit 0 flags c0000400 index 70 - PCI: 00:01.1 child on link 0 I2C: 01:50 - PCI: 00:01.1 resource base 0 size 20 align 5 gran 5 limit ffff flags 100 index 10 - PCI: 00:01.1 resource base 0 size 40 align 6 gran 6 limit ffff flags 100 index 20 - PCI: 00:01.1 resource base 0 size 40 align 6 gran 6 limit ffff flags 100 index 24 - I2C: 01:50 - I2C: 01:51 - I2C: 01:52 - I2C: 01:53 - I2C: 01:54 - I2C: 01:55 - I2C: 01:56 - I2C: 01:57 - I2C: 01:2f - PCI: 00:02.0 - PCI: 00:02.0 resource base 0 size 1000 align 12 gran 12 limit ffffffff flags 200 index 10 - PCI: 00:02.1 - PCI: 00:02.1 resource base 0 size 100 align 8 gran 8 limit ffffffff flags 200 index 10 - PCI: 00:04.0 - PCI: 00:04.1 - PCI: 00:06.0 - PCI: 00:06.0 resource base 0 size 10 align 4 gran 4 limit ffff flags 100 index 20 - PCI: 00:07.0 - PCI: 00:07.0 resource base 0 size 8 align 3 gran 3 limit ffff flags 100 index 10 - PCI: 00:07.0 resource base 0 size 4 align 2 gran 2 limit ffff flags 100 index 14 - PCI: 00:07.0 resource base 0 size 8 align 3 gran 3 limit ffff flags 100 index 18 - PCI: 00:07.0 resource base 0 size 4 align 2 gran 2 limit ffff flags 100 index 1c - PCI: 00:07.0 resource base 0 size 10 align 4 gran 4 limit ffff flags 100 index 20 - PCI: 00:07.0 resource base 0 size 1000 align 12 gran 12 limit ffffffff flags 200 index 24 - PCI: 00:08.0 - PCI: 00:08.0 resource base 0 size 8 align 3 gran 3 limit ffff flags 100 index 10 - PCI: 00:08.0 resource base 0 size 4 align 2 gran 2 limit ffff flags 100 index 14 - PCI: 00:08.0 resource base 0 size 8 align 3 gran 3 limit ffff flags 100 index 18 - PCI: 00:08.0 resource base 0 size 4 align 2 gran 2 limit ffff flags 100 index 1c - PCI: 00:08.0 resource base 0 size 10 align 4 gran 4 limit ffff flags 100 index 20 - PCI: 00:08.0 resource base 0 size 1000 align 12 gran 12 limit ffffffff flags 200 index 24 - PCI: 00:09.0 child on link 0 PCI: 01:04.0 - PCI: 00:09.0 resource base 0 size 0 align 12 gran 12 limit ffff flags 80102 index 1c - PCI: 00:09.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 81202 index 24 - PCI: 00:09.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 01:04.0 - PCI: 01:04.0 resource base 0 size 4000000 align 26 gran 26 limit ffffffff flags 1200 index 10 - PCI: 01:04.0 resource base 0 size 40000 align 18 gran 18 limit ffffffff flags 200 index 14 - PCI: 01:04.0 resource base 0 size 80 align 7 gran 7 limit ffff flags 100 index 18 - PCI: 00:0a.0 - PCI: 00:0b.0 child on link 0 PCI: 02:00.0 - PCI: 00:0b.0 resource base 0 size 0 align 12 gran 12 limit ffffffff flags 80102 index 1c - PCI: 00:0b.0 resource base 0 size 0 align 20 gran 20 limit ffffffffffffffff flags 81202 index 24 - PCI: 00:0b.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 02:00.0 - PCI: 02:00.0 resource base 0 size 10000 align 16 gran 16 limit ffffffffffffffff flags 201 index 10 - PCI: 00:0c.0 child on link 0 PCI: 03:00.0 - PCI: 00:0c.0 resource base 0 size 0 align 12 gran 12 limit ffffffff flags 80102 index 1c - PCI: 00:0c.0 resource base 0 size 0 align 20 gran 20 limit ffffffffffffffff flags 81202 index 24 - PCI: 00:0c.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 03:00.0 - PCI: 03:00.0 resource base 0 size 10000 align 16 gran 16 limit ffffffffffffffff flags 201 index 10 - PCI: 00:0d.0 child on link 0 PCI: 04:00.0 - PCI: 00:0d.0 resource base 0 size 0 align 12 gran 12 limit ffffffff flags 80102 index 1c - PCI: 00:0d.0 resource base 0 size 0 align 20 gran 20 limit ffffffffffffffff flags 81202 index 24 - PCI: 00:0d.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 04:00.0 - PCI: 00:0e.0 - PCI: 00:0e.0 resource base 0 size 0 align 12 gran 12 limit ffffffff flags 80102 index 1c - PCI: 00:0e.0 resource base 0 size 0 align 20 gran 20 limit ffffffffffffffff flags 81202 index 24 - PCI: 00:0e.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 00:0f.0 - PCI: 00:18.1 - PCI: 00:18.2 - PCI: 00:18.3 - PCI: 00:18.4 - PCI: 00:19.0 - PCI: 00:19.1 - PCI: 00:19.2 - PCI: 00:19.3 - PCI: 00:19.4 -DOMAIN: 0000 io: base: 0 size: 0 align: 0 gran: 0 limit: ffff -PCI: 00:18.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffff -PCI: 00:09.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffff -PCI: 01:04.0 18 * [0x0 - 0x7f] io -PCI: 00:09.0 io: base: 80 size: 1000 align: 12 gran: 12 limit: ffff done -PCI: 00:0b.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff -PCI: 00:0b.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff done -PCI: 00:0c.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff -PCI: 00:0c.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff done -PCI: 00:0d.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff -PCI: 00:0d.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff done -PCI: 00:0e.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff -PCI: 00:0e.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff done -PCI: 00:09.0 1c * [0x0 - 0xfff] io -PCI: 00:01.0 60 * [0x1000 - 0x10ff] io -PCI: 00:01.0 64 * [0x1400 - 0x14ff] io -PCI: 00:01.0 68 * [0x1800 - 0x18ff] io -PCI: 00:01.0 10 * [0x1c00 - 0x1c7f] io -PCI: 00:01.1 20 * [0x1c80 - 0x1cbf] io -PCI: 00:01.1 24 * [0x1cc0 - 0x1cff] io -PCI: 00:01.1 10 * [0x2000 - 0x201f] io -PCI: 00:06.0 20 * [0x2020 - 0x202f] io -PCI: 00:07.0 20 * [0x2030 - 0x203f] io -PCI: 00:08.0 20 * [0x2040 - 0x204f] io -PCI: 00:07.0 10 * [0x2050 - 0x2057] io -PCI: 00:07.0 18 * [0x2058 - 0x205f] io -PCI: 00:08.0 10 * [0x2060 - 0x2067] io -PCI: 00:08.0 18 * [0x2068 - 0x206f] io -PCI: 00:07.0 14 * [0x2070 - 0x2073] io -PCI: 00:07.0 1c * [0x2074 - 0x2077] io -PCI: 00:08.0 14 * [0x2078 - 0x207b] io -PCI: 00:08.0 1c * [0x207c - 0x207f] io -PCI: 00:18.0 io: base: 2080 size: 3000 align: 12 gran: 12 limit: ffff done -PCI: 00:18.0 110d8 * [0x0 - 0x2fff] io -DOMAIN: 0000 io: base: 3000 size: 3000 align: 12 gran: 0 limit: ffff done -DOMAIN: 0000 mem: base: 0 size: 0 align: 0 gran: 0 limit: ffffffff -PCI: 00:18.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffff -PCI: 00:09.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 01:04.0 10 * [0x0 - 0x3ffffff] prefmem -PCI: 00:09.0 prefmem: base: 4000000 size: 4000000 align: 26 gran: 20 limit: ffffffff done -PCI: 00:0b.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff -PCI: 00:0b.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff done -PCI: 00:0c.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff -PCI: 00:0c.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff done -PCI: 00:0d.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff -PCI: 00:0d.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff done -PCI: 00:0e.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff -PCI: 00:0e.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff done -PCI: 00:09.0 24 * [0x0 - 0x3ffffff] prefmem -PCI: 00:18.0 prefmem: base: 4000000 size: 4000000 align: 26 gran: 20 limit: ffffffff done -PCI: 00:18.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffff -PCI: 00:09.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 01:04.0 14 * [0x0 - 0x3ffff] mem -PCI: 00:09.0 mem: base: 40000 size: 100000 align: 20 gran: 20 limit: ffffffff done -PCI: 00:0b.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 02:00.0 10 * [0x0 - 0xffff] mem -PCI: 00:0b.0 mem: base: 10000 size: 100000 align: 20 gran: 20 limit: ffffffff done -PCI: 00:0c.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 03:00.0 10 * [0x0 - 0xffff] mem -PCI: 00:0c.0 mem: base: 10000 size: 100000 align: 20 gran: 20 limit: ffffffff done -PCI: 00:0d.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 00:0d.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff done -PCI: 00:0e.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 00:0e.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff done -PCI: 00:09.0 20 * [0x0 - 0xfffff] mem -PCI: 00:0b.0 20 * [0x100000 - 0x1fffff] mem -PCI: 00:0c.0 20 * [0x200000 - 0x2fffff] mem -PCI: 00:02.0 10 * [0x300000 - 0x300fff] mem -PCI: 00:07.0 24 * [0x301000 - 0x301fff] mem -PCI: 00:08.0 24 * [0x302000 - 0x302fff] mem -PCI: 00:02.1 10 * [0x303000 - 0x3030ff] mem -PCI: 00:18.0 mem: base: 303100 size: 400000 align: 20 gran: 20 limit: ffffffff done -PCI: 00:18.0 110b8 * [0x0 - 0x3ffffff] prefmem -PCI: 00:18.0 110b0 * [0x4000000 - 0x43fffff] mem -DOMAIN: 0000 mem: base: 4400000 size: 4400000 align: 26 gran: 0 limit: ffffffff done -avoid_fixed_resources: DOMAIN: 0000 -avoid_fixed_resources:@DOMAIN: 0000 10000000 limit 0000ffff -avoid_fixed_resources:@DOMAIN: 0000 10000100 limit ffffffff -constrain_resources: DOMAIN: 0000 c0010058 base c0000000 limit cfffffff mem (fixed) -constrain_resources: DOMAIN: 0000 07 base 00000000 limit bfffffff mem (fixed) -constrain_resources: PCI: 00:01.0 14 base fec00000 limit fec00fff mem (fixed) -constrain_resources: PCI: 00:01.0 10000000 base 00000000 limit 00000fff io (fixed) -avoid_fixed_resources:@DOMAIN: 0000 10000000 base 00001000 limit 0000ffff -avoid_fixed_resources:@DOMAIN: 0000 10000100 base f8000000 limit febfffff -Setting resources... -DOMAIN: 0000 io: base:1000 size:3000 align:12 gran:0 limit:ffff -PCI: 00:18.0 110d8 * [0x1000 - 0x3fff] io -DOMAIN: 0000 io: next_base: 4000 size: 3000 align: 12 gran: 0 done -PCI: 00:18.0 io: base:1000 size:3000 align:12 gran:12 limit:3fff -PCI: 00:09.0 1c * [0x1000 - 0x1fff] io -PCI: 00:01.0 60 * [0x2000 - 0x20ff] io -PCI: 00:01.0 64 * [0x2400 - 0x24ff] io -PCI: 00:01.0 68 * [0x2800 - 0x28ff] io -PCI: 00:01.0 10 * [0x2c00 - 0x2c7f] io -PCI: 00:01.1 20 * [0x2c80 - 0x2cbf] io -PCI: 00:01.1 24 * [0x2cc0 - 0x2cff] io -PCI: 00:01.1 10 * [0x3000 - 0x301f] io -PCI: 00:06.0 20 * [0x3020 - 0x302f] io -PCI: 00:07.0 20 * [0x3030 - 0x303f] io -PCI: 00:08.0 20 * [0x3040 - 0x304f] io -PCI: 00:07.0 10 * [0x3050 - 0x3057] io -PCI: 00:07.0 18 * [0x3058 - 0x305f] io -PCI: 00:08.0 10 * [0x3060 - 0x3067] io -PCI: 00:08.0 18 * [0x3068 - 0x306f] io -PCI: 00:07.0 14 * [0x3070 - 0x3073] io -PCI: 00:07.0 1c * [0x3074 - 0x3077] io -PCI: 00:08.0 14 * [0x3078 - 0x307b] io -PCI: 00:08.0 1c * [0x307c - 0x307f] io -PCI: 00:18.0 io: next_base: 3080 size: 3000 align: 12 gran: 12 done -PCI: 00:09.0 io: base:1000 size:1000 align:12 gran:12 limit:1fff -PCI: 01:04.0 18 * [0x1000 - 0x107f] io -PCI: 00:09.0 io: next_base: 1080 size: 1000 align: 12 gran: 12 done -PCI: 00:0b.0 io: base:3fff size:0 align:12 gran:12 limit:3fff -PCI: 00:0b.0 io: next_base: 3fff size: 0 align: 12 gran: 12 done -PCI: 00:0c.0 io: base:3fff size:0 align:12 gran:12 limit:3fff -PCI: 00:0c.0 io: next_base: 3fff size: 0 align: 12 gran: 12 done -PCI: 00:0d.0 io: base:3fff size:0 align:12 gran:12 limit:3fff -PCI: 00:0d.0 io: next_base: 3fff size: 0 align: 12 gran: 12 done -PCI: 00:0e.0 io: base:3fff size:0 align:12 gran:12 limit:3fff -PCI: 00:0e.0 io: next_base: 3fff size: 0 align: 12 gran: 12 done -DOMAIN: 0000 mem: base:f8000000 size:4400000 align:26 gran:0 limit:febfffff -PCI: 00:18.0 110b8 * [0xf8000000 - 0xfbffffff] prefmem -PCI: 00:18.0 110b0 * [0xfc000000 - 0xfc3fffff] mem -DOMAIN: 0000 mem: next_base: fc400000 size: 4400000 align: 26 gran: 0 done -PCI: 00:18.0 prefmem: base:f8000000 size:4000000 align:26 gran:20 limit:fbffffff -PCI: 00:09.0 24 * [0xf8000000 - 0xfbffffff] prefmem -PCI: 00:18.0 prefmem: next_base: fc000000 size: 4000000 align: 26 gran: 20 done -PCI: 00:09.0 prefmem: base:f8000000 size:4000000 align:26 gran:20 limit:fbffffff -PCI: 01:04.0 10 * [0xf8000000 - 0xfbffffff] prefmem -PCI: 00:09.0 prefmem: next_base: fc000000 size: 4000000 align: 26 gran: 20 done -PCI: 00:0b.0 prefmem: base:fbffffff size:0 align:20 gran:20 limit:fbffffff -PCI: 00:0b.0 prefmem: next_base: fbffffff size: 0 align: 20 gran: 20 done -PCI: 00:0c.0 prefmem: base:fbffffff size:0 align:20 gran:20 limit:fbffffff -PCI: 00:0c.0 prefmem: next_base: fbffffff size: 0 align: 20 gran: 20 done -PCI: 00:0d.0 prefmem: base:fbffffff size:0 align:20 gran:20 limit:fbffffff -PCI: 00:0d.0 prefmem: next_base: fbffffff size: 0 align: 20 gran: 20 done -PCI: 00:0e.0 prefmem: base:fbffffff size:0 align:20 gran:20 limit:fbffffff -PCI: 00:0e.0 prefmem: next_base: fbffffff size: 0 align: 20 gran: 20 done -PCI: 00:18.0 mem: base:fc000000 size:400000 align:20 gran:20 limit:fc3fffff -PCI: 00:09.0 20 * [0xfc000000 - 0xfc0fffff] mem -PCI: 00:0b.0 20 * [0xfc100000 - 0xfc1fffff] mem -PCI: 00:0c.0 20 * [0xfc200000 - 0xfc2fffff] mem -PCI: 00:02.0 10 * [0xfc300000 - 0xfc300fff] mem -PCI: 00:07.0 24 * [0xfc301000 - 0xfc301fff] mem -PCI: 00:08.0 24 * [0xfc302000 - 0xfc302fff] mem -PCI: 00:02.1 10 * [0xfc303000 - 0xfc3030ff] mem -PCI: 00:18.0 mem: next_base: fc303100 size: 400000 align: 20 gran: 20 done -PCI: 00:09.0 mem: base:fc000000 size:100000 align:20 gran:20 limit:fc0fffff -PCI: 01:04.0 14 * [0xfc000000 - 0xfc03ffff] mem -PCI: 00:09.0 mem: next_base: fc040000 size: 100000 align: 20 gran: 20 done -PCI: 00:0b.0 mem: base:fc100000 size:100000 align:20 gran:20 limit:fc1fffff -PCI: 02:00.0 10 * [0xfc100000 - 0xfc10ffff] mem -PCI: 00:0b.0 mem: next_base: fc110000 size: 100000 align: 20 gran: 20 done -PCI: 00:0c.0 mem: base:fc200000 size:100000 align:20 gran:20 limit:fc2fffff -PCI: 03:00.0 10 * [0xfc200000 - 0xfc20ffff] mem -PCI: 00:0c.0 mem: next_base: fc210000 size: 100000 align: 20 gran: 20 done -PCI: 00:0d.0 mem: base:fc3fffff size:0 align:20 gran:20 limit:fc3fffff -PCI: 00:0d.0 mem: next_base: fc3fffff size: 0 align: 20 gran: 20 done -PCI: 00:0e.0 mem: base:fc3fffff size:0 align:20 gran:20 limit:fc3fffff -PCI: 00:0e.0 mem: next_base: fc3fffff size: 0 align: 20 gran: 20 done -Root Device assign_resources, bus 0 link: 0 -0: mmio_basek=00300000, basek=00400000, limitk=00500000 -1: mmio_basek=00300000, basek=00500000, limitk=00600000 -DOMAIN: 0000 assign_resources, bus 0 link: 0 -VGA: PCI: 00:18.0 (aka node 0) link 1 has VGA device -PCI: 00:18.0 110d8 <- [0x0000001000 - 0x0000003fff] size 0x00003000 gran 0x0c io -PCI: 00:18.0 110b8 <- [0x00f8000000 - 0x00fbffffff] size 0x04000000 gran 0x14 prefmem -PCI: 00:18.0 110b0 <- [0x00fc000000 - 0x00fc3fffff] size 0x00400000 gran 0x14 mem -PCI: 00:18.0 assign_resources, bus 0 link: 1 -PCI: 00:01.0 10 <- [0x0000002c00 - 0x0000002c7f] size 0x00000080 gran 0x07 io -PCI: 00:01.0 60 <- [0x0000002000 - 0x00000020ff] size 0x00000100 gran 0x08 io -PCI: 00:01.0 64 <- [0x0000002400 - 0x00000024ff] size 0x00000100 gran 0x08 io -PCI: 00:01.0 68 <- [0x0000002800 - 0x00000028ff] size 0x00000100 gran 0x08 io -PCI: 00:01.0 assign_resources, bus 0 link: 0 -PNP: 002e.0 60 <- [0x00000003f0 - 0x00000003f7] size 0x00000008 gran 0x03 io -PNP: 002e.0 70 <- [0x0000000006 - 0x0000000006] size 0x00000001 gran 0x00 irq -PNP: 002e.0 74 <- [0x0000000002 - 0x0000000002] size 0x00000001 gran 0x00 drq -PNP: 002e.2 60 <- [0x00000003f8 - 0x00000003ff] size 0x00000008 gran 0x03 io -PNP: 002e.2 70 <- [0x0000000004 - 0x0000000004] size 0x00000001 gran 0x00 irq -PNP: 002e.3 60 <- [0x00000002f8 - 0x00000002ff] size 0x00000008 gran 0x03 io -PNP: 002e.3 70 <- [0x0000000003 - 0x0000000003] size 0x00000001 gran 0x00 irq -PNP: 002e.3 f1 <- [0x0000000004 - 0x0000000004] size 0x00000001 gran 0x00 io -PNP: 002e.5 60 <- [0x0000000060 - 0x0000000060] size 0x00000001 gran 0x00 io -PNP: 002e.5 62 <- [0x0000000064 - 0x0000000064] size 0x00000001 gran 0x00 io -PNP: 002e.5 70 <- [0x0000000001 - 0x0000000001] size 0x00000001 gran 0x00 irq -PNP: 002e.5 72 <- [0x000000000c - 0x000000000c] size 0x00000001 gran 0x00 irq -ERROR: PNP: 002e.5 f0 irq size: 0x0000000001 not assigned -ERROR: PNP: 002e.9 30 irq size: 0x0000000001 not assigned -ERROR: PNP: 002e.9 f0 irq size: 0x0000000001 not assigned -ERROR: PNP: 002e.9 f1 irq size: 0x0000000001 not assigned -PNP: 002e.b 60 <- [0x0000000290 - 0x0000000297] size 0x00000008 gran 0x03 io -PNP: 002e.b 70 <- [0x0000000005 - 0x0000000005] size 0x00000001 gran 0x00 irq -PCI: 00:01.0 assign_resources, bus 0 link: 0 -PCI: 00:01.0 14 <- [0x00fec00000 - 0x00fec00fff] size 0x00001000 gran 0x0c mem -PCI: 00:01.0 44 <- [0x00fed00000 - 0x00fed00fff] size 0x00001000 gran 0x0c mem -PCI: 00:01.1 10 <- [0x0000003000 - 0x000000301f] size 0x00000020 gran 0x05 io -PCI: 00:01.1 20 <- [0x0000002c80 - 0x0000002cbf] size 0x00000040 gran 0x06 io -PCI: 00:01.1 24 <- [0x0000002cc0 - 0x0000002cff] size 0x00000040 gran 0x06 io -PCI: 00:01.1 assign_resources, bus 1 link: 0 -PCI: 00:01.1 assign_resources, bus 1 link: 0 -PCI: 00:02.0 10 <- [0x00fc300000 - 0x00fc300fff] size 0x00001000 gran 0x0c mem -PCI: 00:02.1 10 <- [0x00fc303000 - 0x00fc3030ff] size 0x00000100 gran 0x08 mem -PCI: 00:06.0 20 <- [0x0000003020 - 0x000000302f] size 0x00000010 gran 0x04 io -PCI: 00:07.0 10 <- [0x0000003050 - 0x0000003057] size 0x00000008 gran 0x03 io -PCI: 00:07.0 14 <- [0x0000003070 - 0x0000003073] size 0x00000004 gran 0x02 io -PCI: 00:07.0 18 <- [0x0000003058 - 0x000000305f] size 0x00000008 gran 0x03 io -PCI: 00:07.0 1c <- [0x0000003074 - 0x0000003077] size 0x00000004 gran 0x02 io -PCI: 00:07.0 20 <- [0x0000003030 - 0x000000303f] size 0x00000010 gran 0x04 io -PCI: 00:07.0 24 <- [0x00fc301000 - 0x00fc301fff] size 0x00001000 gran 0x0c mem -PCI: 00:08.0 10 <- [0x0000003060 - 0x0000003067] size 0x00000008 gran 0x03 io -PCI: 00:08.0 14 <- [0x0000003078 - 0x000000307b] size 0x00000004 gran 0x02 io -PCI: 00:08.0 18 <- [0x0000003068 - 0x000000306f] size 0x00000008 gran 0x03 io -PCI: 00:08.0 1c <- [0x000000307c - 0x000000307f] size 0x00000004 gran 0x02 io -PCI: 00:08.0 20 <- [0x0000003040 - 0x000000304f] size 0x00000010 gran 0x04 io -PCI: 00:08.0 24 <- [0x00fc302000 - 0x00fc302fff] size 0x00001000 gran 0x0c mem -PCI: 00:09.0 1c <- [0x0000001000 - 0x0000001fff] size 0x00001000 gran 0x0c bus 01 io -PCI: 00:09.0 24 <- [0x00f8000000 - 0x00fbffffff] size 0x04000000 gran 0x14 bus 01 prefmem -PCI: 00:09.0 20 <- [0x00fc000000 - 0x00fc0fffff] size 0x00100000 gran 0x14 bus 01 mem -PCI: 00:09.0 assign_resources, bus 1 link: 0 -PCI: 01:04.0 10 <- [0x00f8000000 - 0x00fbffffff] size 0x04000000 gran 0x1a prefmem -PCI: 01:04.0 14 <- [0x00fc000000 - 0x00fc03ffff] size 0x00040000 gran 0x12 mem -PCI: 01:04.0 18 <- [0x0000001000 - 0x000000107f] size 0x00000080 gran 0x07 io -PCI: 00:09.0 assign_resources, bus 1 link: 0 -PCI: 00:0b.0 1c <- [0x0000003fff - 0x0000003ffe] size 0x00000000 gran 0x0c bus 02 io -PCI: 00:0b.0 24 <- [0x00fbffffff - 0x00fbfffffe] size 0x00000000 gran 0x14 bus 02 prefmem -PCI: 00:0b.0 20 <- [0x00fc100000 - 0x00fc1fffff] size 0x00100000 gran 0x14 bus 02 mem -PCI: 00:0b.0 assign_resources, bus 2 link: 0 -PCI: 02:00.0 10 <- [0x00fc100000 - 0x00fc10ffff] size 0x00010000 gran 0x10 mem64 -PCI: 00:0b.0 assign_resources, bus 2 link: 0 -PCI: 00:0c.0 1c <- [0x0000003fff - 0x0000003ffe] size 0x00000000 gran 0x0c bus 03 io -PCI: 00:0c.0 24 <- [0x00fbffffff - 0x00fbfffffe] size 0x00000000 gran 0x14 bus 03 prefmem -PCI: 00:0c.0 20 <- [0x00fc200000 - 0x00fc2fffff] size 0x00100000 gran 0x14 bus 03 mem -PCI: 00:0c.0 assign_resources, bus 3 link: 0 -PCI: 03:00.0 10 <- [0x00fc200000 - 0x00fc20ffff] size 0x00010000 gran 0x10 mem64 -PCI: 00:0c.0 assign_resources, bus 3 link: 0 -PCI: 00:0d.0 1c <- [0x0000003fff - 0x0000003ffe] size 0x00000000 gran 0x0c bus 04 io -PCI: 00:0d.0 24 <- [0x00fbffffff - 0x00fbfffffe] size 0x00000000 gran 0x14 bus 04 prefmem -PCI: 00:0d.0 20 <- [0x00fc3fffff - 0x00fc3ffffe] size 0x00000000 gran 0x14 bus 04 mem -PCI: 00:0d.0 assign_resources, bus 4 link: 0 -PCI: 00:0d.0 assign_resources, bus 4 link: 0 -PCI: 00:0e.0 1c <- [0x0000003fff - 0x0000003ffe] size 0x00000000 gran 0x0c bus 05 io -PCI: 00:0e.0 24 <- [0x00fbffffff - 0x00fbfffffe] size 0x00000000 gran 0x14 bus 05 prefmem -PCI: 00:0e.0 20 <- [0x00fc3fffff - 0x00fc3ffffe] size 0x00000000 gran 0x14 bus 05 mem -PCI: 00:18.0 assign_resources, bus 0 link: 1 -DOMAIN: 0000 assign_resources, bus 0 link: 0 -Root Device assign_resources, bus 0 link: 0 -Done setting resources. -Show resources in subtree (Root Device)...After assigning values. - Root Device child on link 0 CPU_CLUSTER: 0 - CPU_CLUSTER: 0 child on link 0 APIC: 00 - APIC: 00 - APIC: 01 - APIC: 02 - APIC: 03 - APIC: 04 - APIC: 05 - APIC: 06 - APIC: 07 - DOMAIN: 0000 child on link 0 PCI: 00:18.0 - DOMAIN: 0000 resource base 1000 size 3000 align 12 gran 0 limit ffff flags 40040100 index 10000000 - DOMAIN: 0000 resource base f8000000 size 4400000 align 26 gran 0 limit febfffff flags 40040200 index 10000100 - DOMAIN: 0000 resource base c0000000 size 10000000 align 0 gran 0 limit 0 flags f0000200 index c0010058 - DOMAIN: 0000 resource base 0 size c0000000 align 0 gran 0 limit 0 flags e0004200 index 7 - DOMAIN: 0000 resource base 0 size a0000 align 0 gran 0 limit 0 flags e0004200 index 10 - DOMAIN: 0000 resource base c0000 size bff40000 align 0 gran 0 limit 0 flags e0004200 index 20 - DOMAIN: 0000 resource base 100000000 size 40000000 align 0 gran 0 limit 0 flags e0004200 index 30 - DOMAIN: 0000 resource base 140000000 size 40000000 align 0 gran 0 limit 0 flags e0004200 index 41 - PCI: 00:18.0 child on link 0 PCI: 00:00.0 - PCI: 00:18.0 resource base 1000 size 3000 align 12 gran 12 limit 3fff flags 60080100 index 110d8 - PCI: 00:18.0 resource base f8000000 size 4000000 align 26 gran 20 limit fbffffff flags 60081200 index 110b8 - PCI: 00:18.0 resource base fc000000 size 400000 align 20 gran 20 limit fc3fffff flags 60080200 index 110b0 - PCI: 00:00.0 - PCI: 00:01.0 child on link 0 PNP: 002e.0 - PCI: 00:01.0 resource base 2c00 size 80 align 7 gran 7 limit 2c7f flags 60000100 index 10 - PCI: 00:01.0 resource base fec00000 size 1000 align 12 gran 12 limit ffffffff flags e0000200 index 14 - PCI: 00:01.0 resource base fed00000 size 1000 align 12 gran 12 limit ffffffff flags e0000200 index 44 - PCI: 00:01.0 resource base 2000 size 100 align 8 gran 8 limit 20ff flags 60000100 index 60 - PCI: 00:01.0 resource base 2400 size 100 align 8 gran 8 limit 24ff flags 60000100 index 64 - PCI: 00:01.0 resource base 2800 size 100 align 8 gran 8 limit 28ff flags 60000100 index 68 - PCI: 00:01.0 resource base 0 size 1000 align 0 gran 0 limit 0 flags c0040100 index 10000000 - PCI: 00:01.0 resource base ff800000 size 800000 align 0 gran 0 limit 0 flags c0040200 index 10000100 - PNP: 002e.0 - PNP: 002e.0 resource base 3f0 size 8 align 3 gran 3 limit 7ff flags e0000100 index 60 - PNP: 002e.0 resource base 6 size 1 align 0 gran 0 limit 0 flags e0000400 index 70 - PNP: 002e.0 resource base 2 size 1 align 0 gran 0 limit 0 flags e0000800 index 74 - PNP: 002e.1 - PNP: 002e.1 resource base 0 size 8 align 3 gran 3 limit 7ff flags 100 index 60 - PNP: 002e.1 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 70 - PNP: 002e.1 resource base 0 size 1 align 0 gran 0 limit 0 flags 800 index 74 - PNP: 002e.2 - PNP: 002e.2 resource base 3f8 size 8 align 3 gran 3 limit 7ff flags e0000100 index 60 - PNP: 002e.2 resource base 4 size 1 align 0 gran 0 limit 0 flags e0000400 index 70 - PNP: 002e.3 - PNP: 002e.3 resource base 2f8 size 8 align 3 gran 3 limit 7ff flags e0000100 index 60 - PNP: 002e.3 resource base 3 size 1 align 0 gran 0 limit 0 flags e0000400 index 70 - PNP: 002e.3 resource base 4 size 1 align 0 gran 0 limit 0 flags e0000500 index f1 - PNP: 002e.5 - PNP: 002e.5 resource base 60 size 1 align 0 gran 0 limit ffffffff flags e0000100 index 60 - PNP: 002e.5 resource base 64 size 1 align 0 gran 0 limit ffffffff flags e0000100 index 62 - PNP: 002e.5 resource base 1 size 1 align 0 gran 0 limit 0 flags e0000400 index 70 - PNP: 002e.5 resource base c size 1 align 0 gran 0 limit 0 flags e0000400 index 72 - PNP: 002e.5 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index f0 - PNP: 002e.7 - PNP: 002e.7 resource base 0 size 1 align 0 gran 0 limit ffffffff flags 100 index 60 - PNP: 002e.7 resource base 0 size 2 align 1 gran 1 limit 7ff flags 100 index 62 - PNP: 002e.7 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 70 - PNP: 002e.8 - PNP: 002e.9 - PNP: 002e.9 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 30 - PNP: 002e.9 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index f0 - PNP: 002e.9 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index f1 - PNP: 002e.a - PNP: 002e.a resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 70 - PNP: 002e.b - PNP: 002e.b resource base 290 size 8 align 3 gran 3 limit fff flags e0000100 index 60 - PNP: 002e.b resource base 5 size 1 align 0 gran 0 limit 0 flags e0000400 index 70 - PCI: 00:01.1 child on link 0 I2C: 01:50 - PCI: 00:01.1 resource base 3000 size 20 align 5 gran 5 limit 301f flags 60000100 index 10 - PCI: 00:01.1 resource base 2c80 size 40 align 6 gran 6 limit 2cbf flags 60000100 index 20 - PCI: 00:01.1 resource base 2cc0 size 40 align 6 gran 6 limit 2cff flags 60000100 index 24 - I2C: 01:50 - I2C: 01:51 - I2C: 01:52 - I2C: 01:53 - I2C: 01:54 - I2C: 01:55 - I2C: 01:56 - I2C: 01:57 - I2C: 01:2f - PCI: 00:02.0 - PCI: 00:02.0 resource base fc300000 size 1000 align 12 gran 12 limit fc300fff flags 60000200 index 10 - PCI: 00:02.1 - PCI: 00:02.1 resource base fc303000 size 100 align 8 gran 8 limit fc3030ff flags 60000200 index 10 - PCI: 00:04.0 - PCI: 00:04.1 - PCI: 00:06.0 - PCI: 00:06.0 resource base 3020 size 10 align 4 gran 4 limit 302f flags 60000100 index 20 - PCI: 00:07.0 - PCI: 00:07.0 resource base 3050 size 8 align 3 gran 3 limit 3057 flags 60000100 index 10 - PCI: 00:07.0 resource base 3070 size 4 align 2 gran 2 limit 3073 flags 60000100 index 14 - PCI: 00:07.0 resource base 3058 size 8 align 3 gran 3 limit 305f flags 60000100 index 18 - PCI: 00:07.0 resource base 3074 size 4 align 2 gran 2 limit 3077 flags 60000100 index 1c - PCI: 00:07.0 resource base 3030 size 10 align 4 gran 4 limit 303f flags 60000100 index 20 - PCI: 00:07.0 resource base fc301000 size 1000 align 12 gran 12 limit fc301fff flags 60000200 index 24 - PCI: 00:08.0 - PCI: 00:08.0 resource base 3060 size 8 align 3 gran 3 limit 3067 flags 60000100 index 10 - PCI: 00:08.0 resource base 3078 size 4 align 2 gran 2 limit 307b flags 60000100 index 14 - PCI: 00:08.0 resource base 3068 size 8 align 3 gran 3 limit 306f flags 60000100 index 18 - PCI: 00:08.0 resource base 307c size 4 align 2 gran 2 limit 307f flags 60000100 index 1c - PCI: 00:08.0 resource base 3040 size 10 align 4 gran 4 limit 304f flags 60000100 index 20 - PCI: 00:08.0 resource base fc302000 size 1000 align 12 gran 12 limit fc302fff flags 60000200 index 24 - PCI: 00:09.0 child on link 0 PCI: 01:04.0 - PCI: 00:09.0 resource base 1000 size 1000 align 12 gran 12 limit 1fff flags 60080102 index 1c - PCI: 00:09.0 resource base f8000000 size 4000000 align 26 gran 20 limit fbffffff flags 60081202 index 24 - PCI: 00:09.0 resource base fc000000 size 100000 align 20 gran 20 limit fc0fffff flags 60080202 index 20 - PCI: 01:04.0 - PCI: 01:04.0 resource base f8000000 size 4000000 align 26 gran 26 limit fbffffff flags 60001200 index 10 - PCI: 01:04.0 resource base fc000000 size 40000 align 18 gran 18 limit fc03ffff flags 60000200 index 14 - PCI: 01:04.0 resource base 1000 size 80 align 7 gran 7 limit 107f flags 60000100 index 18 - PCI: 01:04.0 resource base a0000 size 1fc00 align 0 gran 0 limit 0 flags f0000200 index 3 - PCI: 00:0a.0 - PCI: 00:0b.0 child on link 0 PCI: 02:00.0 - PCI: 00:0b.0 resource base 3fff size 0 align 12 gran 12 limit 3fff flags 60080102 index 1c - PCI: 00:0b.0 resource base fbffffff size 0 align 20 gran 20 limit fbffffff flags 60081202 index 24 - PCI: 00:0b.0 resource base fc100000 size 100000 align 20 gran 20 limit fc1fffff flags 60080202 index 20 - PCI: 02:00.0 - PCI: 02:00.0 resource base fc100000 size 10000 align 16 gran 16 limit fc10ffff flags 60000201 index 10 - PCI: 00:0c.0 child on link 0 PCI: 03:00.0 - PCI: 00:0c.0 resource base 3fff size 0 align 12 gran 12 limit 3fff flags 60080102 index 1c - PCI: 00:0c.0 resource base fbffffff size 0 align 20 gran 20 limit fbffffff flags 60081202 index 24 - PCI: 00:0c.0 resource base fc200000 size 100000 align 20 gran 20 limit fc2fffff flags 60080202 index 20 - PCI: 03:00.0 - PCI: 03:00.0 resource base fc200000 size 10000 align 16 gran 16 limit fc20ffff flags 60000201 index 10 - PCI: 00:0d.0 child on link 0 PCI: 04:00.0 - PCI: 00:0d.0 resource base 3fff size 0 align 12 gran 12 limit 3fff flags 60080102 index 1c - PCI: 00:0d.0 resource base fbffffff size 0 align 20 gran 20 limit fbffffff flags 60081202 index 24 - PCI: 00:0d.0 resource base fc3fffff size 0 align 20 gran 20 limit fc3fffff flags 60080202 index 20 - PCI: 04:00.0 - PCI: 00:0e.0 - PCI: 00:0e.0 resource base 3fff size 0 align 12 gran 12 limit 3fff flags 60080102 index 1c - PCI: 00:0e.0 resource base fbffffff size 0 align 20 gran 20 limit fbffffff flags 60081202 index 24 - PCI: 00:0e.0 resource base fc3fffff size 0 align 20 gran 20 limit fc3fffff flags 60080202 index 20 - PCI: 00:0f.0 - PCI: 00:18.1 - PCI: 00:18.2 - PCI: 00:18.3 - PCI: 00:18.4 - PCI: 00:19.0 - PCI: 00:19.1 - PCI: 00:19.2 - PCI: 00:19.3 - PCI: 00:19.4 -Done allocating resources. -BS: BS_DEV_RESOURCES times (us): entry 0 run 3267943 exit 0 -Enabling resources... -PCI: 00:18.0 cmd <- 00 -PCI: 00:18.1 subsystem <- 1043/8162 -PCI: 00:18.1 cmd <- 00 -PCI: 00:18.2 subsystem <- 1043/8162 -PCI: 00:18.2 cmd <- 00 -PCI: 00:18.3 cmd <- 00 -PCI: 00:18.4 subsystem <- 1043/8162 -PCI: 00:18.4 cmd <- 00 -PCI: 00:19.0 cmd <- 00 -PCI: 00:19.1 subsystem <- 1043/8162 -PCI: 00:19.1 cmd <- 00 -PCI: 00:19.2 subsystem <- 1043/8162 -PCI: 00:19.2 cmd <- 00 -PCI: 00:19.3 cmd <- 00 -PCI: 00:19.4 subsystem <- 1043/8162 -PCI: 00:19.4 cmd <- 00 -PCI: 00:00.0 subsystem <- 1043/8162 -PCI: 00:00.0 cmd <- 06 -PCI: 00:01.0 subsystem <- 1043/8162 -PCI: 00:01.0 cmd <- 0f -ck804 lpc decode:PNP: 002e.0, base=0x000003f0, end=0x000003f7 -ck804 lpc decode:PNP: 002e.2, base=0x000003f8, end=0x000003ff -ck804 lpc decode:PNP: 002e.3, base=0x000002f8, end=0x000002ff -ck804 lpc decode:PNP: 002e.3, base=0x00000004, end=0x00000004 -ck804 lpc decode:PNP: 002e.5, base=0x00000060, end=0x00000060 -ck804 lpc decode:PNP: 002e.5, base=0x00000064, end=0x00000064 -ck804 lpc decode:PNP: 002e.b, base=0x00000290, end=0x00000297 -PCI: 00:01.1 subsystem <- 1043/8162 -PCI: 00:01.1 cmd <- 01 -PCI: 00:02.0 subsystem <- 1043/8162 -PCI: 00:02.0 cmd <- 02 -PCI: 00:02.1 subsystem <- 1043/8162 -PCI: 00:02.1 cmd <- 02 -PCI: 00:06.0 subsystem <- 1043/8162 -PCI: 00:06.0 cmd <- 01 -PCI: 00:07.0 subsystem <- 1043/8162 -PCI: 00:07.0 cmd <- 03 -PCI: 00:08.0 subsystem <- 1043/8162 -PCI: 00:08.0 cmd <- 03 -PCI: 00:09.0 bridge ctrl <- 000b -PCI: 00:09.0 cmd <- 07 -PCI: 00:0b.0 bridge ctrl <- 0003 -PCI: 00:0b.0 cmd <- 06 -PCI: 00:0c.0 bridge ctrl <- 0003 -PCI: 00:0c.0 cmd <- 06 -PCI: 00:0d.0 bridge ctrl <- 0003 -PCI: 00:0d.0 cmd <- 00 -PCI: 00:0e.0 bridge ctrl <- 0003 -PCI: 00:0e.0 cmd <- 00 -PCI: 01:04.0 cmd <- 03 -PCI: 02:00.0 subsystem <- 1043/8162 -PCI: 02:00.0 cmd <- 02 -PCI: 03:00.0 subsystem <- 1043/8162 -PCI: 03:00.0 cmd <- 02 -done. -BS: BS_DEV_ENABLE times (us): entry 0 run 162779 exit 0 -Initializing devices... -Root Device init ... -Root Device init finished in 1931 usecs -CPU_CLUSTER: 0 init ... -start_eip=0x00001000, code_size=0x00000031 -CPU1: stack_base 00138000, stack_end 00138ff8 -Asserting INIT. -Waiting for send to finish... -+Deasserting INIT. -Waiting for send to finish... -+#startup loops: 2. -Sending STARTUP #1 to 1. -After apic_write. -Initializing CPU #1 -Startup point 1. -Waiting for send to finish... -+CPU: vendor AMD device 100f21 -Sending STARTUP #2 to 1. -After apic_write. -CPU: family 10, model 02, stepping 01 -Startup point 1. -Waiting for send to finish... -+nodeid = 00, coreid = 01 -After Startup. -CPU2: stack_base 00137000, stack_end 00137ff8 -Enabling cache -Asserting INIT. -CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -Waiting for send to finish... -+MTRR: Physical address space: -0x0000000000000000 - 0x00000000000a0000 size 0x000a0000 type 6 -0x00000000000a0000 - 0x00000000000c0000 size 0x00020000 type 0 -0x00000000000c0000 - 0x00000000c0000000 size 0xbff40000 type 6 -0x00000000c0000000 - 0x00000000f8000000 size 0x38000000 type 0 -0x00000000f8000000 - 0x00000000fc000000 size 0x04000000 type 1 -0x00000000fc000000 - 0x0000000100000000 size 0x04000000 type 0 -0x0000000100000000 - 0x0000000180000000 size 0x80000000 type 6 -Deasserting INIT. -MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -Waiting for send to finish... -+MTRR: default type WB/UC MTRR counts: 5/3. -MTRR: UC selected as default type. -MTRR: 0 base 0x0000000000000000 mask 0x0000ffff80000000 type 6 -MTRR: 1 base 0x0000000080000000 mask 0x0000ffffc0000000 type 6 -MTRR: 2 base 0x00000000f8000000 mask 0x0000fffffc000000 type 1 -#startup loops: 2. -Sending STARTUP #1 to 2. -After apic_write. - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -Startup point 1. -Waiting for send to finish... -+Setting up local apic...Sending STARTUP #2 to 2. -After apic_write. - apic_id: 0x01 done. -Startup point 1. -Waiting for send to finish... -+CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -Initializing CPU #2 -After Startup. -siblings = 03, CPU3: stack_base 00136000, stack_end 00136ff8 -CPU #1 initialized -Asserting INIT. -Waiting for send to finish... -+CPU: vendor AMD device 100f21 -Deasserting INIT. -Waiting for send to finish... -+CPU: family 10, model 02, stepping 01 -#startup loops: 2. -Sending STARTUP #1 to 3. -After apic_write. -nodeid = 00, coreid = 02 -Startup point 1. -Waiting for send to finish... -+Initializing CPU #3 -Sending STARTUP #2 to 3. -After apic_write. -Enabling cache -Startup point 1. -Waiting for send to finish... -+CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -After Startup. -MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -CPU4: stack_base 00135000, stack_end 00135ff8 - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -Asserting INIT. -Setting up local apic...Waiting for send to finish... -+ apic_id: 0x02 done. -Deasserting INIT. -CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -Waiting for send to finish... -+siblings = 03, #startup loops: 2. -Sending STARTUP #1 to 4. -After apic_write. -CPU #2 initialized -Startup point 1. -Waiting for send to finish... -+Initializing CPU #4 -Sending STARTUP #2 to 4. -After apic_write. -CPU: vendor AMD device 100f21 -Startup point 1. -Waiting for send to finish... -+CPU: family 10, model 02, stepping 01 -After Startup. -CPU5: stack_base 00134000, stack_end 00134ff8 -nodeid = 00, coreid = 03 -Asserting INIT. -Waiting for send to finish... -+Enabling cache -Deasserting INIT. -CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -Waiting for send to finish... -+MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -#startup loops: 2. -Sending STARTUP #1 to 5. -After apic_write. - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -Startup point 1. -Waiting for send to finish... -+Setting up local apic...Sending STARTUP #2 to 5. -After apic_write. - apic_id: 0x03 done. -Startup point 1. -Waiting for send to finish... -+CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -After Startup. -siblings = 03, CPU6: stack_base 00133000, stack_end 00133ff8 -CPU #3 initialized -Asserting INIT. -Waiting for send to finish... -+CPU: vendor AMD device 100f21 -Deasserting INIT. -Waiting for send to finish... -+Initializing CPU #5 -#startup loops: 2. -Sending STARTUP #1 to 6. -After apic_write. -CPU: family 10, model 02, stepping 01 -Startup point 1. -Waiting for send to finish... -+CPU: vendor AMD device 100f21 -Sending STARTUP #2 to 6. -After apic_write. -Initializing CPU #6 -Startup point 1. -Waiting for send to finish... -+CPU: vendor AMD device 100f21 -After Startup. -CPU7: stack_base 00132000, stack_end 00132ff8 -nodeid = 01, coreid = 00 -Asserting INIT. -Waiting for send to finish... -+CPU: family 10, model 02, stepping 01 -Deasserting INIT. -Waiting for send to finish... -+nodeid = 01, coreid = 01 -#startup loops: 2. -Sending STARTUP #1 to 7. -After apic_write. -CPU: family 10, model 02, stepping 01 -Startup point 1. -Waiting for send to finish... -+Enabling cache -Sending STARTUP #2 to 7. -After apic_write. -CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -Startup point 1. -Waiting for send to finish... -+MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -After Startup. -Initializing CPU #0 - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -CPU: vendor AMD device 100f21 -CPU: family 10, model 02, stepping 01 -Setting up local apic...nodeid = 00, coreid = 00 - apic_id: 0x05 done. -Enabling cache -CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -siblings = 03, MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -CPU #5 initialized - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -Enabling cache -Setting up local apic...CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB - apic_id: 0x00 done. -MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -CPU model: Quad-Core AMD Opteron(tm) Processor 8347 - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -siblings = 03, Setting up local apic...CPU #0 initialized - apic_id: 0x04 done. -Waiting for 3 CPUS to stop -CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -siblings = 03, nodeid = 01, coreid = 02 -CPU #4 initialized -Enabling cache -Waiting for 2 CPUS to stop -CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -Initializing CPU #7 -MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -CPU: vendor AMD device 100f21 - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -CPU: family 10, model 02, stepping 01 -Setting up local apic...nodeid = 01, coreid = 03 - apic_id: 0x06 done. -Enabling cache -CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -siblings = 03, MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -CPU #6 initialized - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -Waiting for 1 CPUS to stop -Setting up local apic... apic_id: 0x07 done. -CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -siblings = 03, CPU #7 initialized -All AP CPUs stopped (14884 loops) -CPU1: stack: 00138000 - 00139000, lowest used address 00138c8c, stack used: 884 bytes -CPU2: stack: 00137000 - 00138000, lowest used address 00137cd4, stack used: 812 bytes -CPU3: stack: 00136000 - 00137000, lowest used address 00136cd4, stack used: 812 bytes -CPU4: stack: 00135000 - 00136000, lowest used address 00135cd4, stack used: 812 bytes -CPU5: stack: 00134000 - 00135000, lowest used address 00134cd4, stack used: 812 bytes -CPU6: stack: 00133000 - 00134000, lowest used address 00133cd4, stack used: 812 bytes -CPU7: stack: 00132000 - 00133000, lowest used address 00132cd4, stack used: 812 bytes -CPU_CLUSTER: 0 init finished in 995136 usecs -PCI: 00:18.0 init ... -PCI: 00:18.0 init finished in 2030 usecs -PCI: 00:18.1 init ... -PCI: 00:18.1 init finished in 2027 usecs -PCI: 00:18.2 init ... -PCI: 00:18.2 init finished in 2018 usecs -PCI: 00:18.3 init ... -NB: Function 3 Misc Control.. done. -PCI: 00:18.3 init finished in 5293 usecs -PCI: 00:18.4 init ... -PCI: 00:18.4 init finished in 2018 usecs -PCI: 00:19.0 init ... -PCI: 00:19.0 init finished in 2019 usecs -PCI: 00:19.1 init ... -PCI: 00:19.1 init finished in 2018 usecs -PCI: 00:19.2 init ... -PCI: 00:19.2 init finished in 2017 usecs -PCI: 00:19.3 init ... -NB: Function 3 Misc Control.. done. -PCI: 00:19.3 init finished in 5268 usecs -PCI: 00:19.4 init ... -PCI: 00:19.4 init finished in 2017 usecs -PCI: 00:00.0 init ... -PCI: 00:00.0 init finished in 2028 usecs -PCI: 00:01.0 init ... -IOAPIC: Initializing IOAPIC at 0xfec00000 -IOAPIC: Bootstrap Processor Local APIC = 0x00 -IOAPIC: Dumping registers - reg 0x0000: 0x00000000 - reg 0x0001: 0x00170011 - reg 0x0002: 0x00000000 -IOAPIC: 24 interrupts -IOAPIC: Enabling interrupts on FSB -IOAPIC: reg 0x00000000 value 0x00000000 0x00000700 -IOAPIC: reg 0x00000001 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000002 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000003 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000004 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000005 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000006 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000007 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000008 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000009 value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000a value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000b value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000c value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000d value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000e value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000f value 0x00000000 0x00010000 -IOAPIC: reg 0x00000010 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000011 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000012 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000013 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000014 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000015 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000016 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000017 value 0x00000000 0x00010000 -lpc_init: pm_base = 2000 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -set power on after power fail -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -RTC Init -PCI: 00:01.0 init finished in 164685 usecs -PCI: 00:02.0 init ... -PCI: 00:02.0 init finished in 2026 usecs -PCI: 00:02.1 init ... -PCI: 00:02.1 init finished in 2018 usecs -PCI: 00:06.0 init ... -IDE1 IDE0 -PCI: 00:06.0 init finished in 3105 usecs -PCI: 00:07.0 init ... -SATA S SATA P -PCI: 00:07.0 init finished in 3534 usecs -PCI: 00:08.0 init ... -SATA S SATA P -PCI: 00:08.0 init finished in 3517 usecs -PCI: 00:09.0 init ... -PCI DOMAIN mem base = 0x00f8000000 -[0x50] <-- 0xf8000000 -PCI: 00:09.0 init finished in 7192 usecs -PCI: 00:0b.0 init ... -PCI: 00:0b.0 init finished in 2017 usecs -PCI: 00:0c.0 init ... -PCI: 00:0c.0 init finished in 2019 usecs -PCI: 00:0d.0 init ... -PCI: 00:0d.0 init finished in 2019 usecs -PCI: 00:0e.0 init ... -PCI: 00:0e.0 init finished in 2018 usecs -PNP: 002e.0 init ... -PNP: 002e.0 init finished in 1939 usecs -PNP: 002e.2 init ... -PNP: 002e.2 init finished in 1930 usecs -PNP: 002e.3 init ... -PNP: 002e.3 init finished in 1931 usecs -PNP: 002e.5 init ... -Keyboard init... -PNP: 002e.5 init finished in 352042 usecs -PNP: 002e.9 init ... -PNP: 002e.9 init finished in 1928 usecs -PNP: 002e.b init ... -PNP: 002e.b init finished in 1929 usecs -smbus: PCI: 00:01.1[0]->I2C: 01:2f init ... -ID: 5ca3 -I2C: 01:2f init finished in 101140 usecs -PCI: 01:04.0 init ... -XGI Z9s: initializing video device -XGI VGA: Relocate IO address: 1000 [00001030] -XGI VGA: chipid = 31 -XGI VGA: Framebuffer at 0xf8000000, mapped to 0xf8000000, size 16384k -XGI VGA: MMIO at 0xfc000000, mapped to 0xfc000000, size 256k -XGI VGA: No or unknown bridge type detected -XGI VGA: Default mode is 800x600x16 (60Hz) -XGI VGA: Set new mode: 800x600x16-60 -PCI: 01:04.0 init finished in 42544 usecs -PCI: 02:00.0 init ... -PCI: 02:00.0 init finished in 2018 usecs -PCI: 03:00.0 init ... -PCI: 03:00.0 init finished in 2018 usecs -Devices initialized -Show all devs... After init. -Root Device: enabled 1 -CPU_CLUSTER: 0: enabled 1 -APIC: 00: enabled 1 -DOMAIN: 0000: enabled 1 -PCI: 00:18.0: enabled 1 -PCI: 00:00.0: enabled 1 -PCI: 00:01.0: enabled 1 -PNP: 002e.0: enabled 1 -PNP: 002e.1: enabled 0 -PNP: 002e.2: enabled 1 -PNP: 002e.3: enabled 1 -PNP: 002e.5: enabled 1 -PNP: 002e.7: enabled 0 -PNP: 002e.8: enabled 0 -PNP: 002e.9: enabled 1 -PNP: 002e.a: enabled 0 -PNP: 002e.b: enabled 1 -PCI: 00:01.1: enabled 1 -I2C: 01:50: enabled 1 -I2C: 01:51: enabled 1 -I2C: 01:52: enabled 1 -I2C: 01:53: enabled 1 -I2C: 01:54: enabled 1 -I2C: 01:55: enabled 1 -I2C: 01:56: enabled 1 -I2C: 01:57: enabled 1 -I2C: 01:2f: enabled 1 -PCI: 00:02.0: enabled 1 -PCI: 00:02.1: enabled 1 -PCI: 00:04.0: enabled 0 -PCI: 00:04.1: enabled 0 -PCI: 00:06.0: enabled 1 -PCI: 00:07.0: enabled 1 -PCI: 00:08.0: enabled 1 -PCI: 00:09.0: enabled 1 -PCI: 01:04.0: enabled 1 -PCI: 00:0a.0: enabled 0 -PCI: 00:0b.0: enabled 1 -PCI: 02:00.0: enabled 1 -PCI: 00:0c.0: enabled 1 -PCI: 03:00.0: enabled 1 -PCI: 00:0d.0: enabled 1 -PCI: 04:00.0: enabled 0 -PCI: 00:0e.0: enabled 1 -PCI: 00:0f.0: enabled 0 -PCI: 00:18.1: enabled 1 -PCI: 00:18.2: enabled 1 -PCI: 00:18.3: enabled 1 -PCI: 00:18.4: enabled 1 -PCI: 00:19.0: enabled 1 -PCI: 00:19.1: enabled 1 -PCI: 00:19.2: enabled 1 -PCI: 00:19.3: enabled 1 -PCI: 00:19.4: enabled 1 -APIC: 01: enabled 1 -APIC: 02: enabled 1 -APIC: 03: enabled 1 -APIC: 04: enabled 1 -APIC: 05: enabled 1 -APIC: 06: enabled 1 -APIC: 07: enabled 1 -BS: BS_DEV_INIT times (us): entry 0 run 1990325 exit 0 -Finalize devices... -Devices finalized -BS: BS_POST_DEVICE times (us): entry 0 run 3526 exit 0 -BS: BS_OS_RESUME_CHECK times (us): entry 0 run 1 exit 0 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CONFIG_LOGICAL_CPUS==1: apicid_base: 00000001 -Writing IRQ routing tables to 0xf0000...done. -Writing IRQ routing tables to 0xbffd8000...done. -PIRQ table: 224 bytes. -Wrote the mp table end at: 000f0410 - 000f05cc -Wrote the mp table end at: bffd7010 - bffd71cc -MP table: 460 bytes. -CBFS @ 0 size ff8c0 -CBFS: Locating 'fallback/dsdt.aml' -CBFS: Found @ offset c00 size 2644 -CBFS @ 0 size ff8c0 -CBFS: Locating 'fallback/slic' -CBFS: 'fallback/slic' not found. -ACPI: Writing ACPI tables at bffb3000. -ACPI: * FACS -ACPI: * DSDT -ACPI: * FADT -pm_base: 0x2000 -ACPI: added table 1/32, length now 40 -ACPI: * SSDT -processor_brand=Quad-Core AMD Opteron(tm) Processor 8347 -Pstates algorithm ... -Pstate_freq[0] = 1900MHz Pstate_power[0] = 23040mw -Pstate_latency[0] = 5us -Pstate_freq[1] = 1700MHz Pstate_power[1] = 21385mw -Pstate_latency[1] = 5us -Pstate_freq[2] = 1400MHz Pstate_power[2] = 18787mw -Pstate_latency[2] = 5us -Pstate_freq[3] = 1200MHz Pstate_power[3] = 16770mw -Pstate_latency[3] = 5us -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -ACPI: added table 2/32, length now 44 -ACPI: * MCFG -ACPI: * TCPA -TCPA log created at bffa3000 -ACPI: added table 3/32, length now 48 -ACPI: * MADT -ACPI: added table 4/32, length now 52 -current = bffb6910 -ACPI: * SRAT at bffb6910 -SRAT: lapic cpu_index=00, node_id=00, apic_id=00 -SRAT: lapic cpu_index=01, node_id=00, apic_id=01 -SRAT: lapic cpu_index=02, node_id=00, apic_id=02 -SRAT: lapic cpu_index=03, node_id=00, apic_id=03 -SRAT: lapic cpu_index=04, node_id=01, apic_id=04 -SRAT: lapic cpu_index=05, node_id=01, apic_id=05 -SRAT: lapic cpu_index=06, node_id=01, apic_id=06 -SRAT: lapic cpu_index=07, node_id=01, apic_id=07 -set_srat_mem: dev DOMAIN: 0000, res->index=0007 startk=00000000, sizek=00300000 -set_srat_mem: dev DOMAIN: 0000, res->index=0010 startk=00000000, sizek=00000280 -set_srat_mem: dev DOMAIN: 0000, res->index=0020 startk=00000300, sizek=002ffd00 -set_srat_mem: dev DOMAIN: 0000, res->index=0030 startk=00400000, sizek=00100000 -set_srat_mem: dev DOMAIN: 0000, res->index=0041 startk=00500000, sizek=00100000 -ACPI: added table 5/32, length now 56 -ACPI: * SLIT at bffb6a88 -ACPI: added table 6/32, length now 60 -ACPI: * HPET -ACPI: added table 7/32, length now 64 -ACPI: * SRAT at bffb6b00 -SRAT: lapic cpu_index=00, node_id=00, apic_id=00 -SRAT: lapic cpu_index=01, node_id=00, apic_id=01 -SRAT: lapic cpu_index=02, node_id=00, apic_id=02 -SRAT: lapic cpu_index=03, node_id=00, apic_id=03 -SRAT: lapic cpu_index=04, node_id=01, apic_id=04 -SRAT: lapic cpu_index=05, node_id=01, apic_id=05 -SRAT: lapic cpu_index=06, node_id=01, apic_id=06 -SRAT: lapic cpu_index=07, node_id=01, apic_id=07 -set_srat_mem: dev DOMAIN: 0000, res->index=0007 startk=00000000, sizek=00300000 -set_srat_mem: dev DOMAIN: 0000, res->index=0010 startk=00000000, sizek=00000280 -set_srat_mem: dev DOMAIN: 0000, res->index=0020 startk=00000300, sizek=002ffd00 -set_srat_mem: dev DOMAIN: 0000, res->index=0030 startk=00400000, sizek=00100000 -set_srat_mem: dev DOMAIN: 0000, res->index=0041 startk=00500000, sizek=00100000 -ACPI: added table 8/32, length now 68 -ACPI: * SLIT at bffb6c78 -ACPI: added table 9/32, length now 72 -ACPI: done. -ACPI tables: 15536 bytes. -smbios_write_tables: bffa2000 -Root Device (ASUS KFSN4-DRE) -CPU_CLUSTER: 0 (AMD FAM10 Root Complex) -APIC: 00 (unknown) -DOMAIN: 0000 (AMD FAM10 Root Complex) -PCI: 00:18.0 (AMD FAM10 Northbridge) -PCI: 00:00.0 (NVIDIA CK804 Southbridge) -PCI: 00:01.0 (NVIDIA CK804 Southbridge) -PNP: 002e.0 (Winbond W83627THG Super I/O) -PNP: 002e.1 (Winbond W83627THG Super I/O) -PNP: 002e.2 (Winbond W83627THG Super I/O) -PNP: 002e.3 (Winbond W83627THG Super I/O) -PNP: 002e.5 (Winbond W83627THG Super I/O) -PNP: 002e.7 (Winbond W83627THG Super I/O) -PNP: 002e.8 (Winbond W83627THG Super I/O) -PNP: 002e.9 (Winbond W83627THG Super I/O) -PNP: 002e.a (Winbond W83627THG Super I/O) -PNP: 002e.b (Winbond W83627THG Super I/O) -PCI: 00:01.1 (NVIDIA CK804 Southbridge) -I2C: 01:50 (unknown) -I2C: 01:51 (unknown) -I2C: 01:52 (unknown) -I2C: 01:53 (unknown) -I2C: 01:54 (unknown) -I2C: 01:55 (unknown) -I2C: 01:56 (unknown) -I2C: 01:57 (unknown) -I2C: 01:2f (Nuvoton W83793 Hardware Monitor) -PCI: 00:02.0 (NVIDIA CK804 Southbridge) -PCI: 00:02.1 (NVIDIA CK804 Southbridge) -PCI: 00:04.0 (NVIDIA CK804 Southbridge) -PCI: 00:04.1 (NVIDIA CK804 Southbridge) -PCI: 00:06.0 (NVIDIA CK804 Southbridge) -PCI: 00:07.0 (NVIDIA CK804 Southbridge) -PCI: 00:08.0 (NVIDIA CK804 Southbridge) -PCI: 00:09.0 (NVIDIA CK804 Southbridge) -PCI: 01:04.0 (NVIDIA CK804 Southbridge) -PCI: 00:0a.0 (NVIDIA CK804 Southbridge) -PCI: 00:0b.0 (NVIDIA CK804 Southbridge) -PCI: 02:00.0 (NVIDIA CK804 Southbridge) -PCI: 00:0c.0 (NVIDIA CK804 Southbridge) -PCI: 03:00.0 (NVIDIA CK804 Southbridge) -PCI: 00:0d.0 (NVIDIA CK804 Southbridge) -PCI: 04:00.0 (NVIDIA CK804 Southbridge) -PCI: 00:0e.0 (NVIDIA CK804 Southbridge) -PCI: 00:0f.0 (NVIDIA CK804 Southbridge) -PCI: 00:18.1 (AMD FAM10 Northbridge) -PCI: 00:18.2 (AMD FAM10 Northbridge) -PCI: 00:18.3 (AMD FAM10 Northbridge) -PCI: 00:18.4 (AMD FAM10 Northbridge) -PCI: 00:19.0 (AMD FAM10 Northbridge) -PCI: 00:19.1 (AMD FAM10 Northbridge) -PCI: 00:19.2 (AMD FAM10 Northbridge) -PCI: 00:19.3 (AMD FAM10 Northbridge) -PCI: 00:19.4 (AMD FAM10 Northbridge) -APIC: 01 (unknown) -APIC: 02 (unknown) -APIC: 03 (unknown) -APIC: 04 (unknown) -APIC: 05 (unknown) -APIC: 06 (unknown) -APIC: 07 (unknown) -SMBIOS tables: 553 bytes. -Writing table forward entry at 0x00000500 -Wrote coreboot table at: 00000500, 0x10 bytes, checksum 9fe4 -Table forward entry ends at 0x00000528. -... aligned to 0x00001000 -Writing coreboot table at 0xbff9a000 -rom_table_end = 0xbff9a000 -... aligned to 0xbffa0000 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 - 0. 0000000000000000-0000000000000fff: CONFIGURATION TABLES - 1. 0000000000001000-000000000009ffff: RAM - 2. 00000000000a0000-00000000000bffff: RESERVED - 3. 00000000000c0000-00000000bff99fff: RAM - 4. 00000000bff9a000-00000000bfffffff: CONFIGURATION TABLES - 5. 00000000c0000000-00000000cfffffff: RESERVED - 6. 0000000100000000-000000017fffffff: RAM -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -Wrote coreboot table at: bff9a000, 0xc08 bytes, checksum 440a -coreboot table: 3104 bytes. -IMD ROOT 0. bffff000 00001000 -IMD SMALL 1. bfffe000 00001000 -CAR GLOBALS 2. bfffb000 0000291c -CONSOLE 3. bffdb000 00020000 -AMDMEM INFO 4. bffd9000 0000172c -IRQ TABLE 5. bffd8000 00001000 -SMP TABLE 6. bffd7000 00001000 -ACPI 7. bffb3000 00024000 -54435041 8. bffa3000 00010000 -SMBIOS 9. bffa2000 00000800 -COREBOOT 10. bff9a000 00008000 -IMD small region: - IMD ROOT 0. bfffec00 00000400 - USBDEBUG 1. bfffeba0 00000058 - ROMSTAGE 2. bfffeb80 00000004 - GDT 3. bfffe980 00000200 -BS: BS_WRITE_TABLES times (us): entry 0 run 759226 exit 0 -CBFS provider active. -CBFS @ 0 size ff8c0 -CBFS: Locating 'fallback/payload' -CBFS: Found @ offset 29c80 size 92b41 -'fallback/payload' located at offset: 29cb8 size: 92b41 -Loading segment from rom address 0xfff29cb8 - code (compression=1) - New segment dstaddr 0x8200 memsize 0x17420 srcaddr 0xfff29d0c filesize 0x8215 -Loading segment from rom address 0xfff29cd4 - code (compression=1) - New segment dstaddr 0x100000 memsize 0x23f9f0 srcaddr 0xfff31f21 filesize 0x8a8d8 -Loading segment from rom address 0xfff29cf0 - Entry Point 0x00008200 -Bounce Buffer at bfc5b000, 3401660 bytes -Loading Segment: addr: 0x0000000000008200 memsz: 0x0000000000017420 filesz: 0x0000000000008215 -lb: [0x0000000000100000, 0x00000000001fedcc) -Post relocation: addr: 0x0000000000008200 memsz: 0x0000000000017420 filesz: 0x0000000000008215 -using LZMA -[ 0x00008200, 00017ce3, 0x0001f620) <- fff29d0c -Clearing Segment: addr: 0x0000000000017ce3 memsz: 0x000000000000793d -dest 00008200, end 0001f620, bouncebuffer bfc5b000 -Loading Segment: addr: 0x0000000000100000 memsz: 0x000000000023f9f0 filesz: 0x000000000008a8d8 -lb: [0x0000000000100000, 0x00000000001fedcc) -segment: [0x0000000000100000, 0x000000000018a8d8, 0x000000000033f9f0) - bounce: [0x00000000bfc5b000, 0x00000000bfce58d8, 0x00000000bfe9a9f0) -Post relocation: addr: 0x00000000bfc5b000 memsz: 0x000000000023f9f0 filesz: 0x000000000008a8d8 -using LZMA -[ 0xbfc5b000, bfe9a9f0, 0xbfe9a9f0) <- fff31f21 -dest bfc5b000, end bfe9a9f0, bouncebuffer bfc5b000 -move suffix around: from bfd59dcc, to 1fedcc, amount: 140c24 -Loaded segments -BS: BS_PAYLOAD_LOAD times (us): entry 0 run 781450 exit 0 -Jumping to boot code at 00008200(bff9a000) -CPU0: stack: 00139000 - 0013a000, lowest used address 00139ae0, stack used: 1312 bytes -entry = 0x00008200 -lb_start = 0x00100000 -lb_size = 0x000fedcc -buffer = 0xbfc5b000 -[?25lFREE AS IN FREEDOM - - -+----------------------------------------------------------------------------+||||||||||||||||||||||||+----------------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. - - Press enter to boot the selected OS, `e' to edit the commands - - before booting or `c' for a command-line.  *Load Operating System  Parse ISOLINUX menu (ahci0)  Parse ISOLINUX menu (USB)  Parse ISOLINUX menu (CD/DVD)  Switch to grubtest.cfg  Search for GRUB configuration (grub.cfg) outside of CBFS  Load MemTest86+        The highlighted entry will be executed automatically in 1s.  The highlighted entry will be executed automatically in 0s. [?25h Booting `Load Operating System' - - - - Failed to boot both default and fallback entries. - - -Press any key to continue... - -[?25lFREE AS IN FREEDOM - - -+----------------------------------------------------------------------------+||||||||||||||||||||||||+----------------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. - - Press enter to boot the selected OS, `e' to edit the commands - - before booting or `c' for a command-line.  *Load Operating System  Parse ISOLINUX menu (ahci0)  Parse ISOLINUX menu (USB)  Parse ISOLINUX menu (CD/DVD)  Switch to grubtest.cfg  Search for GRUB configuration (grub.cfg) outside of CBFS  Load MemTest86+          Load Operating System *Parse ISOLINUX menu (ahci0)  Parse ISOLINUX menu (ahci0) *Parse ISOLINUX menu (USB)  Parse ISOLINUX menu (USB) *Parse ISOLINUX menu (CD/DVD)  Parse ISOLINUX menu (CD/DVD) *Switch to grubtest.cfg  ��ޒ���������� - -*****GRAPHICAL FRAMEBUFFER ROM IMAGE***** - - - -coreboot-4.0 Fri Jun 26 20:19:42 UTC 2015 romstage starting... -BSP Family_Model: 00100f21 -*sysinfo range: [000c4000,000c6899] -bsp_apicid = 00 -cpu_init_detectedx = 00000000 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cpu_microcode_blob.bin' -CBFS: 'cpu_microcode_blob.bin' not found. -[microcode] microcode file not found. Skipping updates. -cpuSetAMDMSR done -Enter amd_ht_init() -AMD_CB_EventNotify() - event class: 05 - event: 1004 - data: 04 00 00 01 -AMD_CB_EventNotify() - event class: 05 - event: 2006 - data: 04 00 01 00 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -Exit amd_ht_init() -cpuSetAMDPCI 00 done -cpuSetAMDPCI 01 done -Prep FID/VID Node:00 - F3x80: e600a681 - F3x84: a0e641e6 - F3xD4: c3310f23 - F3xD8: 03001c14 - F3xDC: 00005428 -Prep FID/VID Node:01 - F3x80: e600a681 - F3x84: a0e641e6 - F3xD4: c3310f23 - F3xD8: 03001c14 - F3xDC: 00005428 -setup_remote_node: 01 done -Start node 01 done. -core0 started: 01 - -Begin FIDVID MSR 0xc0010071 0x20a600e4 0x38045044 -FIDVID on BSP, APIC_id: 00 -BSP fid = 10400 -Wait for AP stage 1: ap_apicid = 1 -init_fidvid_bsp_stage1: timed out reading from ap 01 -Wait for AP stage 1: ap_apicid = 2 -init_fidvid_bsp_stage1: timed out reading from ap 02 -Wait for AP stage 1: ap_apicid = 3 -init_fidvid_bsp_stage1: timed out reading from ap 03 -Wait for AP stage 1: ap_apicid = 4 - readback = 4010401 - common_fid(packed) = 10400 -Wait for AP stage 1: ap_apicid = 5 -init_fidvid_bsp_stage1: timed out reading from ap 05 -Wait for AP stage 1: ap_apicid = 6 -init_fidvid_bsp_stage1: timed out reading from ap 06 -Wait for AP stage 1: ap_apicid = 7 -init_fidvid_bsp_stage1: timed out reading from ap 07 -common_fid = 10400 -FID Change Node:00, F3xD4: c3310f24 -FID Change Node:01, F3xD4: c3310f24 -End FIDVIDMSR 0xc0010071 0x20a600e4 0x38005044 -start_other_cores() -init node: 00 cores: 03 -Start other core - nodeid: 00 cores: 03 -init node: 01 cores: 03 -Start other core - nodeid: 01 cores: 03 -started ap apicid: 01start - -coreboot-4.0 Fri Jun 26 20:19:42 UTC 2015 romstage starting... -BSP Family_Model: 00100f21 -*sysinfo range: [000c4000,000c6899] -bsp_apicid = 00 -cpu_init_detectedx = 00000000 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cpu_microcode_blob.bin' -CBFS: 'cpu_microcode_blob.bin' not found. -[microcode] microcode file not found. Skipping updates. -cpuSetAMDMSR done -Enter amd_ht_init() -AMD_CB_EventNotify() - event class: 05 - event: 1004 - data: 04 00 00 01 -AMD_CB_EventNotify() - event class: 05 - event: 2006 - data: 04 00 01 00 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -Exit amd_ht_init() -cpuSetAMDPCI 00 done -cpuSetAMDPCI 01 done -Prep FID/VID Node:00 - F3x80: e600a681 - F3x84: a0e641e6 - F3xD4: c3310f24 - F3xD8: 03001c14 - F3xDC: 00005428 -Prep FID/VID Node:01 - F3x80: e600a681 - F3x84: a0e641e6 - F3xD4: c3310f24 - F3xD8: 03001c14 - F3xDC: 00005428 -setup_remote_node: 01 done -Start node 01 done. -core0 started: 01 - -Begin FIDVID MSR 0xc0010071 0x20a600e4 0x38005044 -End FIDVIDMSR 0xc0010071 0x20a600e4 0x38003803 -start_other_cores() -init node: 00 cores: 03 -Start other core - nodeid: 00 cores: 03 -init node: 01 cores: 03 -Start other core - nodeid: 01 cores: 03 -started ap apicid: * AP 01started -* AP 02started -* AP 03started -* AP 05started -* AP 06started -* AP 07started - -set_ck804_base_unit_id() -fill_mem_ctrl() -enable_smbus() -SMBus controller enabled -raminit_amdmct() -raminit_amdmct begin: -activate_spd_rom() for node 00 -enable_spd_node0() -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -activate_spd_rom() for node 01 -enable_spd_node1() -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 - Node: 00 base: 00 limit: ffffff BottomIO: c00000 - Node: 01 base: 1400000 limit: 17fffff BottomIO: c00000 - Copy dram map from Node 0 to Node 01 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -raminit_amdmct end: -CBMEM: -IMD: root @ bffff000 254 entries. -IMD: root @ bfffec00 62 entries. -amdmct_cbmem_store_info: Storing AMDMCT configuration in CBMEM -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -disable_spd() -enable_msi_mapping() -Prepare CAR migration and stack regions... Fill [003fd000-003fffff] ... Done -Copying data from cache to RAM... Copy [000c4000-000c693f] to [003fd6c0 - 003fffff] ... Done -Switching to use RAM as stack... Top about 003fd6ac ... Done -Disabling cache as ram now -Prepare ramstage memory region... Fill [00000000-003fcfff] ... Done -CBFS provider active. -CBFS @ 0 size ff8c0 -CBFS: Locating 'fallback/ramstage' -CBFS: Found @ offset 15440 size 147e1 -'fallback/ramstage' located at offset: 15478 size: 147e1 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -Capability: type 0x0a @ 0x44 - -coreboot-4.0 Fri Jun 26 20:19:42 UTC 2015 ramstage starting... -Moving GDT to bfffe980...ok -BS: BS_PRE_DEVICE times (us): entry 0 run 1 exit 0 -BS: BS_DEV_INIT_CHIPS times (us): entry 0 run 3 exit 0 -Enumerating buses... -Show all devs... Before device enumeration. -Root Device: enabled 1 -CPU_CLUSTER: 0: enabled 1 -APIC: 00: enabled 1 -DOMAIN: 0000: enabled 1 -PCI: 00:18.0: enabled 1 -PCI: 00:00.0: enabled 1 -PCI: 00:01.0: enabled 1 -PNP: 002e.0: enabled 1 -PNP: 002e.1: enabled 0 -PNP: 002e.2: enabled 1 -PNP: 002e.3: enabled 1 -PNP: 002e.5: enabled 1 -PNP: 002e.7: enabled 0 -PNP: 002e.8: enabled 0 -PNP: 002e.9: enabled 1 -PNP: 002e.a: enabled 0 -PNP: 002e.b: enabled 1 -PCI: 00:01.1: enabled 1 -I2C: 00:50: enabled 1 -I2C: 00:51: enabled 1 -I2C: 00:52: enabled 1 -I2C: 00:53: enabled 1 -I2C: 00:54: enabled 1 -I2C: 00:55: enabled 1 -I2C: 00:56: enabled 1 -I2C: 00:57: enabled 1 -I2C: 00:2f: enabled 1 -PCI: 00:02.0: enabled 1 -PCI: 00:02.1: enabled 1 -PCI: 00:04.0: enabled 0 -PCI: 00:04.1: enabled 0 -PCI: 00:06.0: enabled 1 -PCI: 00:07.0: enabled 1 -PCI: 00:08.0: enabled 1 -PCI: 00:09.0: enabled 1 -PCI: 00:04.0: enabled 1 -PCI: 00:0a.0: enabled 0 -PCI: 00:0b.0: enabled 1 -PCI: 00:00.0: enabled 1 -PCI: 00:0c.0: enabled 1 -PCI: 00:00.0: enabled 1 -PCI: 00:0d.0: enabled 1 -PCI: 00:00.0: enabled 1 -PCI: 00:0e.0: enabled 1 -PCI: 00:0f.0: enabled 0 -PCI: 00:18.1: enabled 1 -PCI: 00:18.2: enabled 1 -PCI: 00:18.3: enabled 1 -PCI: 00:18.4: enabled 1 -PCI: 00:19.0: enabled 1 -PCI: 00:19.1: enabled 1 -PCI: 00:19.2: enabled 1 -PCI: 00:19.3: enabled 1 -PCI: 00:19.4: enabled 1 -Compare with tree... -Root Device: enabled 1 - CPU_CLUSTER: 0: enabled 1 - APIC: 00: enabled 1 - DOMAIN: 0000: enabled 1 - PCI: 00:18.0: enabled 1 - PCI: 00:00.0: enabled 1 - PCI: 00:01.0: enabled 1 - PNP: 002e.0: enabled 1 - PNP: 002e.1: enabled 0 - PNP: 002e.2: enabled 1 - PNP: 002e.3: enabled 1 - PNP: 002e.5: enabled 1 - PNP: 002e.7: enabled 0 - PNP: 002e.8: enabled 0 - PNP: 002e.9: enabled 1 - PNP: 002e.a: enabled 0 - PNP: 002e.b: enabled 1 - PCI: 00:01.1: enabled 1 - I2C: 00:50: enabled 1 - I2C: 00:51: enabled 1 - I2C: 00:52: enabled 1 - I2C: 00:53: enabled 1 - I2C: 00:54: enabled 1 - I2C: 00:55: enabled 1 - I2C: 00:56: enabled 1 - I2C: 00:57: enabled 1 - I2C: 00:2f: enabled 1 - PCI: 00:02.0: enabled 1 - PCI: 00:02.1: enabled 1 - PCI: 00:04.0: enabled 0 - PCI: 00:04.1: enabled 0 - PCI: 00:06.0: enabled 1 - PCI: 00:07.0: enabled 1 - PCI: 00:08.0: enabled 1 - PCI: 00:09.0: enabled 1 - PCI: 00:04.0: enabled 1 - PCI: 00:0a.0: enabled 0 - PCI: 00:0b.0: enabled 1 - PCI: 00:00.0: enabled 1 - PCI: 00:0c.0: enabled 1 - PCI: 00:00.0: enabled 1 - PCI: 00:0d.0: enabled 1 - PCI: 00:00.0: enabled 1 - PCI: 00:0e.0: enabled 1 - PCI: 00:0f.0: enabled 0 - PCI: 00:18.1: enabled 1 - PCI: 00:18.2: enabled 1 - PCI: 00:18.3: enabled 1 - PCI: 00:18.4: enabled 1 - PCI: 00:19.0: enabled 1 - PCI: 00:19.1: enabled 1 - PCI: 00:19.2: enabled 1 - PCI: 00:19.3: enabled 1 - PCI: 00:19.4: enabled 1 -Root Device scanning... -root_dev_scan_bus for Root Device -setup_bsp_ramtop, TOP MEM: msr.lo = 0xc0000000, msr.hi = 0x00000000 -setup_bsp_ramtop, TOP MEM2: msr.lo = 0x80000000, msr.hi = 0x00000001 -CPU_CLUSTER: 0 enabled -DOMAIN: 0000 enabled -CPU_CLUSTER: 0 scanning... -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 - PCI: 00:18.3 siblings=3 -CPU: APIC: 00 enabled -CPU: APIC: 01 enabled -CPU: APIC: 02 enabled -CPU: APIC: 03 enabled - PCI: 00:19.3 siblings=3 -CPU: APIC: 04 enabled -CPU: APIC: 05 enabled -CPU: APIC: 06 enabled -CPU: APIC: 07 enabled -DOMAIN: 0000 scanning... -PCI: pci_scan_bus for bus 00 -PCI: 00:18.0 [1022/1200] bus ops -PCI: 00:18.0 [1022/1200] enabled -PCI: 00:18.1 [1022/1201] enabled -PCI: 00:18.2 [1022/1202] enabled -PCI: 00:18.3 [1022/1203] ops -PCI: 00:18.3 [1022/1203] enabled -PCI: 00:18.4 [1022/1204] enabled -PCI: 00:19.0 [1022/1200] bus ops -PCI: 00:19.0 [1022/1200] enabled -PCI: 00:19.1 [1022/1201] enabled -PCI: 00:19.2 [1022/1202] enabled -PCI: 00:19.3 [1022/1203] ops -PCI: 00:19.3 [1022/1203] enabled -PCI: 00:19.4 [1022/1204] enabled -PCI: 00:18.0 scanning... -PCI: 00:00.0 [10de/005e] ops -PCI: 00:00.0 [10de/005e] enabled -Capability: type 0x08 @ 0x44 -flags: 0x01e0 -PCI: 00:00.0 count: 000f static_count: 0010 -PCI: 00:00.0 [10de/005e] enabled next_unitid: 0010 -PCI: pci_scan_bus for bus 00 -PCI: 00:00.0 [10de/005e] enabled -PCI: 00:01.0 [10de/0051] bus ops -PCI: 00:01.0 [10de/0051] enabled -PCI: 00:01.1 [10de/0052] bus ops -PCI: 00:01.1 [10de/0052] enabled -PCI: 00:02.0 [10de/005a] ops -PCI: 00:02.0 [10de/005a] enabled -PCI: 00:02.1 [10de/005b] ops -PCI: 00:02.1 [10de/005b] enabled -PCI: 00:04.0 [10de/0059] ops -PCI: 00:04.0 [10de/0059] disabled -PCI: 00:04.1 [10de/0058] ops -PCI: 00:04.1 [10de/0058] disabled -PCI: 00:06.0 [10de/0053] ops -PCI: 00:06.0 [10de/0053] enabled -PCI: 00:07.0 [10de/0054] ops -PCI: 00:07.0 [10de/0054] enabled -PCI: 00:08.0 [10de/0055] ops -PCI: 00:08.0 [10de/0055] enabled -PCI: 00:09.0 [10de/005c] bus ops -PCI: 00:09.0 [10de/005c] enabled -PCI: 00:0b.0 [10de/005d] bus ops -PCI: 00:0b.0 [10de/005d] enabled -PCI: 00:0c.0 [10de/005d] bus ops -PCI: 00:0c.0 [10de/005d] enabled -PCI: 00:0d.0 [10de/005d] bus ops -PCI: 00:0d.0 [10de/005d] enabled -PCI: 00:0e.0 [10de/005d] bus ops -PCI: 00:0e.0 [10de/005d] enabled -PCI: 00:01.0 scanning... -scan_lpc_bus for PCI: 00:01.0 -PNP: 002e.0 enabled -PNP: 002e.1 disabled -PNP: 002e.2 enabled -PNP: 002e.3 enabled -PNP: 002e.5 enabled -PNP: 002e.7 disabled -PNP: 002e.8 disabled -PNP: 002e.9 enabled -PNP: 002e.a disabled -PNP: 002e.b enabled -scan_lpc_bus for PCI: 00:01.0 done -PCI: 00:01.1 scanning... -scan_smbus for PCI: 00:01.1 -smbus: PCI: 00:01.1[0]->I2C: 01:50 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:51 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:52 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:53 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:54 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:55 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:56 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:57 enabled -smbus: PCI: 00:01.1[0]->I2C: 01:2f enabled -scan_smbus for PCI: 00:01.1 done -PCI: 00:09.0 scanning... -do_pci_scan_bridge for PCI: 00:09.0 -PCI: pci_scan_bus for bus 01 -PCI: 01:04.0 [18ca/0020] ops -PCI: 01:04.0 [18ca/0020] enabled -PCI: 00:0b.0 scanning... -do_pci_scan_bridge for PCI: 00:0b.0 -PCI: pci_scan_bus for bus 02 -PCI: 02:00.0 [14e4/1659] enabled -PCI: 00:0c.0 scanning... -do_pci_scan_bridge for PCI: 00:0c.0 -PCI: pci_scan_bus for bus 03 -PCI: 03:00.0 [14e4/1659] enabled -PCI: 00:0d.0 scanning... -do_pci_scan_bridge for PCI: 00:0d.0 -PCI: pci_scan_bus for bus 04 -PCI: Static device PCI: 04:00.0 not found, disabling it. -PCI: 00:0e.0 scanning... -do_pci_scan_bridge for PCI: 00:0e.0 -PCI: pci_scan_bus for bus 05 -PCI: 00:19.0 scanning... -DOMAIN: 0000 passpw: enabled -DOMAIN: 0000 passpw: enabled -root_dev_scan_bus for Root Device done -done -BS: BS_DEV_ENUMERATE times (us): entry 0 run 598144 exit 0 -found VGA at PCI: 01:04.0 -Setting up VGA for PCI: 01:04.0 -Setting PCI_BRIDGE_CTL_VGA for bridge PCI: 00:09.0 -Setting PCI_BRIDGE_CTL_VGA for bridge PCI: 00:18.0 -Setting PCI_BRIDGE_CTL_VGA for bridge DOMAIN: 0000 -Setting PCI_BRIDGE_CTL_VGA for bridge Root Device -Allocating resources... -Reading resources... -Root Device read_resources bus 0 link: 0 -CPU_CLUSTER: 0 read_resources bus 0 link: 0 -APIC: 00 missing read_resources -APIC: 01 missing read_resources -APIC: 02 missing read_resources -APIC: 03 missing read_resources -APIC: 04 missing read_resources -APIC: 05 missing read_resources -APIC: 06 missing read_resources -APIC: 07 missing read_resources -CPU_CLUSTER: 0 read_resources bus 0 link: 0 done -DOMAIN: 0000 read_resources bus 0 link: 0 -PCI: 00:18.0 read_resources bus 0 link: 1 -PCI: 00:01.0 read_resources bus 0 link: 0 -PCI: 00:01.0 read_resources bus 0 link: 0 done -PCI: 00:01.1 read_resources bus 1 link: 0 -I2C: 01:50 missing read_resources -I2C: 01:51 missing read_resources -I2C: 01:52 missing read_resources -I2C: 01:53 missing read_resources -I2C: 01:54 missing read_resources -I2C: 01:55 missing read_resources -I2C: 01:56 missing read_resources -I2C: 01:57 missing read_resources -PCI: 00:01.1 read_resources bus 1 link: 0 done -PCI: 00:01.1 read_resources bus 2 link: 1 -PCI: 00:01.1 read_resources bus 2 link: 1 done -PCI: 00:09.0 read_resources bus 1 link: 0 -PCI: 00:09.0 read_resources bus 1 link: 0 done -PCI: 00:0b.0 read_resources bus 2 link: 0 -PCI: 00:0b.0 read_resources bus 2 link: 0 done -PCI: 00:0c.0 read_resources bus 3 link: 0 -PCI: 00:0c.0 read_resources bus 3 link: 0 done -PCI: 00:0d.0 read_resources bus 4 link: 0 -PCI: 00:0d.0 read_resources bus 4 link: 0 done -PCI: 00:0e.0 read_resources bus 5 link: 0 -PCI: 00:0e.0 read_resources bus 5 link: 0 done -PCI: 00:18.0 read_resources bus 0 link: 1 done -PCI: 00:18.0 read_resources bus 0 link: 0 -PCI: 00:18.0 read_resources bus 0 link: 0 done -PCI: 00:18.0 read_resources bus 0 link: 2 -PCI: 00:18.0 read_resources bus 0 link: 2 done -PCI: 00:18.0 read_resources bus 0 link: 3 -PCI: 00:18.0 read_resources bus 0 link: 3 done -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -PCI: 00:18.4 read_resources bus 0 link: 0 -PCI: 00:18.4 read_resources bus 0 link: 0 done -PCI: 00:18.4 read_resources bus 0 link: 1 -PCI: 00:18.4 read_resources bus 0 link: 1 done -PCI: 00:18.4 read_resources bus 0 link: 2 -PCI: 00:18.4 read_resources bus 0 link: 2 done -PCI: 00:18.4 read_resources bus 0 link: 3 -PCI: 00:18.4 read_resources bus 0 link: 3 done -PCI: 00:19.0 read_resources bus 0 link: 0 -PCI: 00:19.0 read_resources bus 0 link: 0 done -PCI: 00:19.0 read_resources bus 0 link: 1 -PCI: 00:19.0 read_resources bus 0 link: 1 done -PCI: 00:19.0 read_resources bus 0 link: 2 -PCI: 00:19.0 read_resources bus 0 link: 2 done -PCI: 00:19.0 read_resources bus 0 link: 3 -PCI: 00:19.0 read_resources bus 0 link: 3 done -PCI: 00:19.4 read_resources bus 0 link: 0 -PCI: 00:19.4 read_resources bus 0 link: 0 done -PCI: 00:19.4 read_resources bus 0 link: 1 -PCI: 00:19.4 read_resources bus 0 link: 1 done -PCI: 00:19.4 read_resources bus 0 link: 2 -PCI: 00:19.4 read_resources bus 0 link: 2 done -PCI: 00:19.4 read_resources bus 0 link: 3 -PCI: 00:19.4 read_resources bus 0 link: 3 done -DOMAIN: 0000 read_resources bus 0 link: 0 done -Root Device read_resources bus 0 link: 0 done -Done reading resources. -Show resources in subtree (Root Device)...After reading. - Root Device child on link 0 CPU_CLUSTER: 0 - CPU_CLUSTER: 0 child on link 0 APIC: 00 - APIC: 00 - APIC: 01 - APIC: 02 - APIC: 03 - APIC: 04 - APIC: 05 - APIC: 06 - APIC: 07 - DOMAIN: 0000 child on link 0 PCI: 00:18.0 - DOMAIN: 0000 resource base 0 size 0 align 0 gran 0 limit ffff flags 40040100 index 10000000 - DOMAIN: 0000 resource base 0 size 0 align 0 gran 0 limit ffffffff flags 40040200 index 10000100 - DOMAIN: 0000 resource base c0000000 size 10000000 align 0 gran 0 limit 0 flags f0000200 index c0010058 - DOMAIN: 0000 resource base 0 size c0000000 align 0 gran 0 limit 0 flags e0004200 index 7 - PCI: 00:18.0 child on link 0 PCI: 00:00.0 - PCI: 00:18.0 resource base 0 size 0 align 12 gran 12 limit ffff flags 80100 index 110d8 - PCI: 00:18.0 resource base 0 size 0 align 20 gran 20 limit ffffffffff flags 81200 index 110b8 - PCI: 00:18.0 resource base 0 size 0 align 20 gran 20 limit ffffffffff flags 80200 index 110b0 - PCI: 00:00.0 - PCI: 00:01.0 child on link 0 PNP: 002e.0 - PCI: 00:01.0 resource base 0 size 80 align 7 gran 7 limit ffff flags 100 index 10 - PCI: 00:01.0 resource base fec00000 size 1000 align 12 gran 12 limit ffffffff flags c0000200 index 14 - PCI: 00:01.0 resource base fed00000 size 1000 align 12 gran 12 limit ffffffff flags c0000200 index 44 - PCI: 00:01.0 resource base 0 size 100 align 8 gran 8 limit ffff flags 100 index 60 - PCI: 00:01.0 resource base 0 size 100 align 8 gran 8 limit ffff flags 100 index 64 - PCI: 00:01.0 resource base 0 size 100 align 8 gran 8 limit ffff flags 100 index 68 - PCI: 00:01.0 resource base 0 size 1000 align 0 gran 0 limit 0 flags c0040100 index 10000000 - PCI: 00:01.0 resource base ff800000 size 800000 align 0 gran 0 limit 0 flags c0040200 index 10000100 - PNP: 002e.0 - PNP: 002e.0 resource base 3f0 size 8 align 3 gran 3 limit 7ff flags c0000100 index 60 - PNP: 002e.0 resource base 6 size 1 align 0 gran 0 limit 0 flags c0000400 index 70 - PNP: 002e.0 resource base 2 size 1 align 0 gran 0 limit 0 flags c0000800 index 74 - PNP: 002e.1 - PNP: 002e.1 resource base 0 size 8 align 3 gran 3 limit 7ff flags 100 index 60 - PNP: 002e.1 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 70 - PNP: 002e.1 resource base 0 size 1 align 0 gran 0 limit 0 flags 800 index 74 - PNP: 002e.2 - PNP: 002e.2 resource base 3f8 size 8 align 3 gran 3 limit 7ff flags c0000100 index 60 - PNP: 002e.2 resource base 4 size 1 align 0 gran 0 limit 0 flags c0000400 index 70 - PNP: 002e.3 - PNP: 002e.3 resource base 2f8 size 8 align 3 gran 3 limit 7ff flags c0000100 index 60 - PNP: 002e.3 resource base 3 size 1 align 0 gran 0 limit 0 flags c0000400 index 70 - PNP: 002e.3 resource base 4 size 1 align 0 gran 0 limit 0 flags c0000500 index f1 - PNP: 002e.5 - PNP: 002e.5 resource base 60 size 1 align 0 gran 0 limit ffffffff flags c0000100 index 60 - PNP: 002e.5 resource base 64 size 1 align 0 gran 0 limit ffffffff flags c0000100 index 62 - PNP: 002e.5 resource base 1 size 1 align 0 gran 0 limit 0 flags c0000400 index 70 - PNP: 002e.5 resource base c size 1 align 0 gran 0 limit 0 flags c0000400 index 72 - PNP: 002e.5 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index f0 - PNP: 002e.7 - PNP: 002e.7 resource base 0 size 1 align 0 gran 0 limit ffffffff flags 100 index 60 - PNP: 002e.7 resource base 0 size 2 align 1 gran 1 limit 7ff flags 100 index 62 - PNP: 002e.7 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 70 - PNP: 002e.8 - PNP: 002e.9 - PNP: 002e.9 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 30 - PNP: 002e.9 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index f0 - PNP: 002e.9 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index f1 - PNP: 002e.a - PNP: 002e.a resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 70 - PNP: 002e.b - PNP: 002e.b resource base 290 size 8 align 3 gran 3 limit fff flags c0000100 index 60 - PNP: 002e.b resource base 5 size 1 align 0 gran 0 limit 0 flags c0000400 index 70 - PCI: 00:01.1 child on link 0 I2C: 01:50 - PCI: 00:01.1 resource base 0 size 20 align 5 gran 5 limit ffff flags 100 index 10 - PCI: 00:01.1 resource base 0 size 40 align 6 gran 6 limit ffff flags 100 index 20 - PCI: 00:01.1 resource base 0 size 40 align 6 gran 6 limit ffff flags 100 index 24 - I2C: 01:50 - I2C: 01:51 - I2C: 01:52 - I2C: 01:53 - I2C: 01:54 - I2C: 01:55 - I2C: 01:56 - I2C: 01:57 - I2C: 01:2f - PCI: 00:02.0 - PCI: 00:02.0 resource base 0 size 1000 align 12 gran 12 limit ffffffff flags 200 index 10 - PCI: 00:02.1 - PCI: 00:02.1 resource base 0 size 100 align 8 gran 8 limit ffffffff flags 200 index 10 - PCI: 00:04.0 - PCI: 00:04.1 - PCI: 00:06.0 - PCI: 00:06.0 resource base 0 size 10 align 4 gran 4 limit ffff flags 100 index 20 - PCI: 00:07.0 - PCI: 00:07.0 resource base 0 size 8 align 3 gran 3 limit ffff flags 100 index 10 - PCI: 00:07.0 resource base 0 size 4 align 2 gran 2 limit ffff flags 100 index 14 - PCI: 00:07.0 resource base 0 size 8 align 3 gran 3 limit ffff flags 100 index 18 - PCI: 00:07.0 resource base 0 size 4 align 2 gran 2 limit ffff flags 100 index 1c - PCI: 00:07.0 resource base 0 size 10 align 4 gran 4 limit ffff flags 100 index 20 - PCI: 00:07.0 resource base 0 size 1000 align 12 gran 12 limit ffffffff flags 200 index 24 - PCI: 00:08.0 - PCI: 00:08.0 resource base 0 size 8 align 3 gran 3 limit ffff flags 100 index 10 - PCI: 00:08.0 resource base 0 size 4 align 2 gran 2 limit ffff flags 100 index 14 - PCI: 00:08.0 resource base 0 size 8 align 3 gran 3 limit ffff flags 100 index 18 - PCI: 00:08.0 resource base 0 size 4 align 2 gran 2 limit ffff flags 100 index 1c - PCI: 00:08.0 resource base 0 size 10 align 4 gran 4 limit ffff flags 100 index 20 - PCI: 00:08.0 resource base 0 size 1000 align 12 gran 12 limit ffffffff flags 200 index 24 - PCI: 00:09.0 child on link 0 PCI: 01:04.0 - PCI: 00:09.0 resource base 0 size 0 align 12 gran 12 limit ffff flags 80102 index 1c - PCI: 00:09.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 81202 index 24 - PCI: 00:09.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 01:04.0 - PCI: 01:04.0 resource base 0 size 4000000 align 26 gran 26 limit ffffffff flags 1200 index 10 - PCI: 01:04.0 resource base 0 size 40000 align 18 gran 18 limit ffffffff flags 200 index 14 - PCI: 01:04.0 resource base 0 size 80 align 7 gran 7 limit ffff flags 100 index 18 - PCI: 00:0a.0 - PCI: 00:0b.0 child on link 0 PCI: 02:00.0 - PCI: 00:0b.0 resource base 0 size 0 align 12 gran 12 limit ffffffff flags 80102 index 1c - PCI: 00:0b.0 resource base 0 size 0 align 20 gran 20 limit ffffffffffffffff flags 81202 index 24 - PCI: 00:0b.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 02:00.0 - PCI: 02:00.0 resource base 0 size 10000 align 16 gran 16 limit ffffffffffffffff flags 201 index 10 - PCI: 00:0c.0 child on link 0 PCI: 03:00.0 - PCI: 00:0c.0 resource base 0 size 0 align 12 gran 12 limit ffffffff flags 80102 index 1c - PCI: 00:0c.0 resource base 0 size 0 align 20 gran 20 limit ffffffffffffffff flags 81202 index 24 - PCI: 00:0c.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 03:00.0 - PCI: 03:00.0 resource base 0 size 10000 align 16 gran 16 limit ffffffffffffffff flags 201 index 10 - PCI: 00:0d.0 child on link 0 PCI: 04:00.0 - PCI: 00:0d.0 resource base 0 size 0 align 12 gran 12 limit ffffffff flags 80102 index 1c - PCI: 00:0d.0 resource base 0 size 0 align 20 gran 20 limit ffffffffffffffff flags 81202 index 24 - PCI: 00:0d.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 04:00.0 - PCI: 00:0e.0 - PCI: 00:0e.0 resource base 0 size 0 align 12 gran 12 limit ffffffff flags 80102 index 1c - PCI: 00:0e.0 resource base 0 size 0 align 20 gran 20 limit ffffffffffffffff flags 81202 index 24 - PCI: 00:0e.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 00:0f.0 - PCI: 00:18.1 - PCI: 00:18.2 - PCI: 00:18.3 - PCI: 00:18.4 - PCI: 00:19.0 - PCI: 00:19.1 - PCI: 00:19.2 - PCI: 00:19.3 - PCI: 00:19.4 -DOMAIN: 0000 io: base: 0 size: 0 align: 0 gran: 0 limit: ffff -PCI: 00:18.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffff -PCI: 00:09.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffff -PCI: 01:04.0 18 * [0x0 - 0x7f] io -PCI: 00:09.0 io: base: 80 size: 1000 align: 12 gran: 12 limit: ffff done -PCI: 00:0b.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff -PCI: 00:0b.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff done -PCI: 00:0c.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff -PCI: 00:0c.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff done -PCI: 00:0d.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff -PCI: 00:0d.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff done -PCI: 00:0e.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff -PCI: 00:0e.0 io: base: 0 size: 0 align: 12 gran: 12 limit: ffffffff done -PCI: 00:09.0 1c * [0x0 - 0xfff] io -PCI: 00:01.0 60 * [0x1000 - 0x10ff] io -PCI: 00:01.0 64 * [0x1400 - 0x14ff] io -PCI: 00:01.0 68 * [0x1800 - 0x18ff] io -PCI: 00:01.0 10 * [0x1c00 - 0x1c7f] io -PCI: 00:01.1 20 * [0x1c80 - 0x1cbf] io -PCI: 00:01.1 24 * [0x1cc0 - 0x1cff] io -PCI: 00:01.1 10 * [0x2000 - 0x201f] io -PCI: 00:06.0 20 * [0x2020 - 0x202f] io -PCI: 00:07.0 20 * [0x2030 - 0x203f] io -PCI: 00:08.0 20 * [0x2040 - 0x204f] io -PCI: 00:07.0 10 * [0x2050 - 0x2057] io -PCI: 00:07.0 18 * [0x2058 - 0x205f] io -PCI: 00:08.0 10 * [0x2060 - 0x2067] io -PCI: 00:08.0 18 * [0x2068 - 0x206f] io -PCI: 00:07.0 14 * [0x2070 - 0x2073] io -PCI: 00:07.0 1c * [0x2074 - 0x2077] io -PCI: 00:08.0 14 * [0x2078 - 0x207b] io -PCI: 00:08.0 1c * [0x207c - 0x207f] io -PCI: 00:18.0 io: base: 2080 size: 3000 align: 12 gran: 12 limit: ffff done -PCI: 00:18.0 110d8 * [0x0 - 0x2fff] io -DOMAIN: 0000 io: base: 3000 size: 3000 align: 12 gran: 0 limit: ffff done -DOMAIN: 0000 mem: base: 0 size: 0 align: 0 gran: 0 limit: ffffffff -PCI: 00:18.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffff -PCI: 00:09.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 01:04.0 10 * [0x0 - 0x3ffffff] prefmem -PCI: 00:09.0 prefmem: base: 4000000 size: 4000000 align: 26 gran: 20 limit: ffffffff done -PCI: 00:0b.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff -PCI: 00:0b.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff done -PCI: 00:0c.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff -PCI: 00:0c.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff done -PCI: 00:0d.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff -PCI: 00:0d.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff done -PCI: 00:0e.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff -PCI: 00:0e.0 prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff done -PCI: 00:09.0 24 * [0x0 - 0x3ffffff] prefmem -PCI: 00:18.0 prefmem: base: 4000000 size: 4000000 align: 26 gran: 20 limit: ffffffff done -PCI: 00:18.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffff -PCI: 00:09.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 01:04.0 14 * [0x0 - 0x3ffff] mem -PCI: 00:09.0 mem: base: 40000 size: 100000 align: 20 gran: 20 limit: ffffffff done -PCI: 00:0b.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 02:00.0 10 * [0x0 - 0xffff] mem -PCI: 00:0b.0 mem: base: 10000 size: 100000 align: 20 gran: 20 limit: ffffffff done -PCI: 00:0c.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 03:00.0 10 * [0x0 - 0xffff] mem -PCI: 00:0c.0 mem: base: 10000 size: 100000 align: 20 gran: 20 limit: ffffffff done -PCI: 00:0d.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 00:0d.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff done -PCI: 00:0e.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 00:0e.0 mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff done -PCI: 00:09.0 20 * [0x0 - 0xfffff] mem -PCI: 00:0b.0 20 * [0x100000 - 0x1fffff] mem -PCI: 00:0c.0 20 * [0x200000 - 0x2fffff] mem -PCI: 00:02.0 10 * [0x300000 - 0x300fff] mem -PCI: 00:07.0 24 * [0x301000 - 0x301fff] mem -PCI: 00:08.0 24 * [0x302000 - 0x302fff] mem -PCI: 00:02.1 10 * [0x303000 - 0x3030ff] mem -PCI: 00:18.0 mem: base: 303100 size: 400000 align: 20 gran: 20 limit: ffffffff done -PCI: 00:18.0 110b8 * [0x0 - 0x3ffffff] prefmem -PCI: 00:18.0 110b0 * [0x4000000 - 0x43fffff] mem -DOMAIN: 0000 mem: base: 4400000 size: 4400000 align: 26 gran: 0 limit: ffffffff done -avoid_fixed_resources: DOMAIN: 0000 -avoid_fixed_resources:@DOMAIN: 0000 10000000 limit 0000ffff -avoid_fixed_resources:@DOMAIN: 0000 10000100 limit ffffffff -constrain_resources: DOMAIN: 0000 c0010058 base c0000000 limit cfffffff mem (fixed) -constrain_resources: DOMAIN: 0000 07 base 00000000 limit bfffffff mem (fixed) -constrain_resources: PCI: 00:01.0 14 base fec00000 limit fec00fff mem (fixed) -constrain_resources: PCI: 00:01.0 10000000 base 00000000 limit 00000fff io (fixed) -avoid_fixed_resources:@DOMAIN: 0000 10000000 base 00001000 limit 0000ffff -avoid_fixed_resources:@DOMAIN: 0000 10000100 base f8000000 limit febfffff -Setting resources... -DOMAIN: 0000 io: base:1000 size:3000 align:12 gran:0 limit:ffff -PCI: 00:18.0 110d8 * [0x1000 - 0x3fff] io -DOMAIN: 0000 io: next_base: 4000 size: 3000 align: 12 gran: 0 done -PCI: 00:18.0 io: base:1000 size:3000 align:12 gran:12 limit:3fff -PCI: 00:09.0 1c * [0x1000 - 0x1fff] io -PCI: 00:01.0 60 * [0x2000 - 0x20ff] io -PCI: 00:01.0 64 * [0x2400 - 0x24ff] io -PCI: 00:01.0 68 * [0x2800 - 0x28ff] io -PCI: 00:01.0 10 * [0x2c00 - 0x2c7f] io -PCI: 00:01.1 20 * [0x2c80 - 0x2cbf] io -PCI: 00:01.1 24 * [0x2cc0 - 0x2cff] io -PCI: 00:01.1 10 * [0x3000 - 0x301f] io -PCI: 00:06.0 20 * [0x3020 - 0x302f] io -PCI: 00:07.0 20 * [0x3030 - 0x303f] io -PCI: 00:08.0 20 * [0x3040 - 0x304f] io -PCI: 00:07.0 10 * [0x3050 - 0x3057] io -PCI: 00:07.0 18 * [0x3058 - 0x305f] io -PCI: 00:08.0 10 * [0x3060 - 0x3067] io -PCI: 00:08.0 18 * [0x3068 - 0x306f] io -PCI: 00:07.0 14 * [0x3070 - 0x3073] io -PCI: 00:07.0 1c * [0x3074 - 0x3077] io -PCI: 00:08.0 14 * [0x3078 - 0x307b] io -PCI: 00:08.0 1c * [0x307c - 0x307f] io -PCI: 00:18.0 io: next_base: 3080 size: 3000 align: 12 gran: 12 done -PCI: 00:09.0 io: base:1000 size:1000 align:12 gran:12 limit:1fff -PCI: 01:04.0 18 * [0x1000 - 0x107f] io -PCI: 00:09.0 io: next_base: 1080 size: 1000 align: 12 gran: 12 done -PCI: 00:0b.0 io: base:3fff size:0 align:12 gran:12 limit:3fff -PCI: 00:0b.0 io: next_base: 3fff size: 0 align: 12 gran: 12 done -PCI: 00:0c.0 io: base:3fff size:0 align:12 gran:12 limit:3fff -PCI: 00:0c.0 io: next_base: 3fff size: 0 align: 12 gran: 12 done -PCI: 00:0d.0 io: base:3fff size:0 align:12 gran:12 limit:3fff -PCI: 00:0d.0 io: next_base: 3fff size: 0 align: 12 gran: 12 done -PCI: 00:0e.0 io: base:3fff size:0 align:12 gran:12 limit:3fff -PCI: 00:0e.0 io: next_base: 3fff size: 0 align: 12 gran: 12 done -DOMAIN: 0000 mem: base:f8000000 size:4400000 align:26 gran:0 limit:febfffff -PCI: 00:18.0 110b8 * [0xf8000000 - 0xfbffffff] prefmem -PCI: 00:18.0 110b0 * [0xfc000000 - 0xfc3fffff] mem -DOMAIN: 0000 mem: next_base: fc400000 size: 4400000 align: 26 gran: 0 done -PCI: 00:18.0 prefmem: base:f8000000 size:4000000 align:26 gran:20 limit:fbffffff -PCI: 00:09.0 24 * [0xf8000000 - 0xfbffffff] prefmem -PCI: 00:18.0 prefmem: next_base: fc000000 size: 4000000 align: 26 gran: 20 done -PCI: 00:09.0 prefmem: base:f8000000 size:4000000 align:26 gran:20 limit:fbffffff -PCI: 01:04.0 10 * [0xf8000000 - 0xfbffffff] prefmem -PCI: 00:09.0 prefmem: next_base: fc000000 size: 4000000 align: 26 gran: 20 done -PCI: 00:0b.0 prefmem: base:fbffffff size:0 align:20 gran:20 limit:fbffffff -PCI: 00:0b.0 prefmem: next_base: fbffffff size: 0 align: 20 gran: 20 done -PCI: 00:0c.0 prefmem: base:fbffffff size:0 align:20 gran:20 limit:fbffffff -PCI: 00:0c.0 prefmem: next_base: fbffffff size: 0 align: 20 gran: 20 done -PCI: 00:0d.0 prefmem: base:fbffffff size:0 align:20 gran:20 limit:fbffffff -PCI: 00:0d.0 prefmem: next_base: fbffffff size: 0 align: 20 gran: 20 done -PCI: 00:0e.0 prefmem: base:fbffffff size:0 align:20 gran:20 limit:fbffffff -PCI: 00:0e.0 prefmem: next_base: fbffffff size: 0 align: 20 gran: 20 done -PCI: 00:18.0 mem: base:fc000000 size:400000 align:20 gran:20 limit:fc3fffff -PCI: 00:09.0 20 * [0xfc000000 - 0xfc0fffff] mem -PCI: 00:0b.0 20 * [0xfc100000 - 0xfc1fffff] mem -PCI: 00:0c.0 20 * [0xfc200000 - 0xfc2fffff] mem -PCI: 00:02.0 10 * [0xfc300000 - 0xfc300fff] mem -PCI: 00:07.0 24 * [0xfc301000 - 0xfc301fff] mem -PCI: 00:08.0 24 * [0xfc302000 - 0xfc302fff] mem -PCI: 00:02.1 10 * [0xfc303000 - 0xfc3030ff] mem -PCI: 00:18.0 mem: next_base: fc303100 size: 400000 align: 20 gran: 20 done -PCI: 00:09.0 mem: base:fc000000 size:100000 align:20 gran:20 limit:fc0fffff -PCI: 01:04.0 14 * [0xfc000000 - 0xfc03ffff] mem -PCI: 00:09.0 mem: next_base: fc040000 size: 100000 align: 20 gran: 20 done -PCI: 00:0b.0 mem: base:fc100000 size:100000 align:20 gran:20 limit:fc1fffff -PCI: 02:00.0 10 * [0xfc100000 - 0xfc10ffff] mem -PCI: 00:0b.0 mem: next_base: fc110000 size: 100000 align: 20 gran: 20 done -PCI: 00:0c.0 mem: base:fc200000 size:100000 align:20 gran:20 limit:fc2fffff -PCI: 03:00.0 10 * [0xfc200000 - 0xfc20ffff] mem -PCI: 00:0c.0 mem: next_base: fc210000 size: 100000 align: 20 gran: 20 done -PCI: 00:0d.0 mem: base:fc3fffff size:0 align:20 gran:20 limit:fc3fffff -PCI: 00:0d.0 mem: next_base: fc3fffff size: 0 align: 20 gran: 20 done -PCI: 00:0e.0 mem: base:fc3fffff size:0 align:20 gran:20 limit:fc3fffff -PCI: 00:0e.0 mem: next_base: fc3fffff size: 0 align: 20 gran: 20 done -Root Device assign_resources, bus 0 link: 0 -0: mmio_basek=00300000, basek=00400000, limitk=00500000 -1: mmio_basek=00300000, basek=00500000, limitk=00600000 -DOMAIN: 0000 assign_resources, bus 0 link: 0 -VGA: PCI: 00:18.0 (aka node 0) link 1 has VGA device -PCI: 00:18.0 110d8 <- [0x0000001000 - 0x0000003fff] size 0x00003000 gran 0x0c io -PCI: 00:18.0 110b8 <- [0x00f8000000 - 0x00fbffffff] size 0x04000000 gran 0x14 prefmem -PCI: 00:18.0 110b0 <- [0x00fc000000 - 0x00fc3fffff] size 0x00400000 gran 0x14 mem -PCI: 00:18.0 assign_resources, bus 0 link: 1 -PCI: 00:01.0 10 <- [0x0000002c00 - 0x0000002c7f] size 0x00000080 gran 0x07 io -PCI: 00:01.0 60 <- [0x0000002000 - 0x00000020ff] size 0x00000100 gran 0x08 io -PCI: 00:01.0 64 <- [0x0000002400 - 0x00000024ff] size 0x00000100 gran 0x08 io -PCI: 00:01.0 68 <- [0x0000002800 - 0x00000028ff] size 0x00000100 gran 0x08 io -PCI: 00:01.0 assign_resources, bus 0 link: 0 -PNP: 002e.0 60 <- [0x00000003f0 - 0x00000003f7] size 0x00000008 gran 0x03 io -PNP: 002e.0 70 <- [0x0000000006 - 0x0000000006] size 0x00000001 gran 0x00 irq -PNP: 002e.0 74 <- [0x0000000002 - 0x0000000002] size 0x00000001 gran 0x00 drq -PNP: 002e.2 60 <- [0x00000003f8 - 0x00000003ff] size 0x00000008 gran 0x03 io -PNP: 002e.2 70 <- [0x0000000004 - 0x0000000004] size 0x00000001 gran 0x00 irq -PNP: 002e.3 60 <- [0x00000002f8 - 0x00000002ff] size 0x00000008 gran 0x03 io -PNP: 002e.3 70 <- [0x0000000003 - 0x0000000003] size 0x00000001 gran 0x00 irq -PNP: 002e.3 f1 <- [0x0000000004 - 0x0000000004] size 0x00000001 gran 0x00 io -PNP: 002e.5 60 <- [0x0000000060 - 0x0000000060] size 0x00000001 gran 0x00 io -PNP: 002e.5 62 <- [0x0000000064 - 0x0000000064] size 0x00000001 gran 0x00 io -PNP: 002e.5 70 <- [0x0000000001 - 0x0000000001] size 0x00000001 gran 0x00 irq -PNP: 002e.5 72 <- [0x000000000c - 0x000000000c] size 0x00000001 gran 0x00 irq -ERROR: PNP: 002e.5 f0 irq size: 0x0000000001 not assigned -ERROR: PNP: 002e.9 30 irq size: 0x0000000001 not assigned -ERROR: PNP: 002e.9 f0 irq size: 0x0000000001 not assigned -ERROR: PNP: 002e.9 f1 irq size: 0x0000000001 not assigned -PNP: 002e.b 60 <- [0x0000000290 - 0x0000000297] size 0x00000008 gran 0x03 io -PNP: 002e.b 70 <- [0x0000000005 - 0x0000000005] size 0x00000001 gran 0x00 irq -PCI: 00:01.0 assign_resources, bus 0 link: 0 -PCI: 00:01.0 14 <- [0x00fec00000 - 0x00fec00fff] size 0x00001000 gran 0x0c mem -PCI: 00:01.0 44 <- [0x00fed00000 - 0x00fed00fff] size 0x00001000 gran 0x0c mem -PCI: 00:01.1 10 <- [0x0000003000 - 0x000000301f] size 0x00000020 gran 0x05 io -PCI: 00:01.1 20 <- [0x0000002c80 - 0x0000002cbf] size 0x00000040 gran 0x06 io -PCI: 00:01.1 24 <- [0x0000002cc0 - 0x0000002cff] size 0x00000040 gran 0x06 io -PCI: 00:01.1 assign_resources, bus 1 link: 0 -PCI: 00:01.1 assign_resources, bus 1 link: 0 -PCI: 00:02.0 10 <- [0x00fc300000 - 0x00fc300fff] size 0x00001000 gran 0x0c mem -PCI: 00:02.1 10 <- [0x00fc303000 - 0x00fc3030ff] size 0x00000100 gran 0x08 mem -PCI: 00:06.0 20 <- [0x0000003020 - 0x000000302f] size 0x00000010 gran 0x04 io -PCI: 00:07.0 10 <- [0x0000003050 - 0x0000003057] size 0x00000008 gran 0x03 io -PCI: 00:07.0 14 <- [0x0000003070 - 0x0000003073] size 0x00000004 gran 0x02 io -PCI: 00:07.0 18 <- [0x0000003058 - 0x000000305f] size 0x00000008 gran 0x03 io -PCI: 00:07.0 1c <- [0x0000003074 - 0x0000003077] size 0x00000004 gran 0x02 io -PCI: 00:07.0 20 <- [0x0000003030 - 0x000000303f] size 0x00000010 gran 0x04 io -PCI: 00:07.0 24 <- [0x00fc301000 - 0x00fc301fff] size 0x00001000 gran 0x0c mem -PCI: 00:08.0 10 <- [0x0000003060 - 0x0000003067] size 0x00000008 gran 0x03 io -PCI: 00:08.0 14 <- [0x0000003078 - 0x000000307b] size 0x00000004 gran 0x02 io -PCI: 00:08.0 18 <- [0x0000003068 - 0x000000306f] size 0x00000008 gran 0x03 io -PCI: 00:08.0 1c <- [0x000000307c - 0x000000307f] size 0x00000004 gran 0x02 io -PCI: 00:08.0 20 <- [0x0000003040 - 0x000000304f] size 0x00000010 gran 0x04 io -PCI: 00:08.0 24 <- [0x00fc302000 - 0x00fc302fff] size 0x00001000 gran 0x0c mem -PCI: 00:09.0 1c <- [0x0000001000 - 0x0000001fff] size 0x00001000 gran 0x0c bus 01 io -PCI: 00:09.0 24 <- [0x00f8000000 - 0x00fbffffff] size 0x04000000 gran 0x14 bus 01 prefmem -PCI: 00:09.0 20 <- [0x00fc000000 - 0x00fc0fffff] size 0x00100000 gran 0x14 bus 01 mem -PCI: 00:09.0 assign_resources, bus 1 link: 0 -PCI: 01:04.0 10 <- [0x00f8000000 - 0x00fbffffff] size 0x04000000 gran 0x1a prefmem -PCI: 01:04.0 14 <- [0x00fc000000 - 0x00fc03ffff] size 0x00040000 gran 0x12 mem -PCI: 01:04.0 18 <- [0x0000001000 - 0x000000107f] size 0x00000080 gran 0x07 io -PCI: 00:09.0 assign_resources, bus 1 link: 0 -PCI: 00:0b.0 1c <- [0x0000003fff - 0x0000003ffe] size 0x00000000 gran 0x0c bus 02 io -PCI: 00:0b.0 24 <- [0x00fbffffff - 0x00fbfffffe] size 0x00000000 gran 0x14 bus 02 prefmem -PCI: 00:0b.0 20 <- [0x00fc100000 - 0x00fc1fffff] size 0x00100000 gran 0x14 bus 02 mem -PCI: 00:0b.0 assign_resources, bus 2 link: 0 -PCI: 02:00.0 10 <- [0x00fc100000 - 0x00fc10ffff] size 0x00010000 gran 0x10 mem64 -PCI: 00:0b.0 assign_resources, bus 2 link: 0 -PCI: 00:0c.0 1c <- [0x0000003fff - 0x0000003ffe] size 0x00000000 gran 0x0c bus 03 io -PCI: 00:0c.0 24 <- [0x00fbffffff - 0x00fbfffffe] size 0x00000000 gran 0x14 bus 03 prefmem -PCI: 00:0c.0 20 <- [0x00fc200000 - 0x00fc2fffff] size 0x00100000 gran 0x14 bus 03 mem -PCI: 00:0c.0 assign_resources, bus 3 link: 0 -PCI: 03:00.0 10 <- [0x00fc200000 - 0x00fc20ffff] size 0x00010000 gran 0x10 mem64 -PCI: 00:0c.0 assign_resources, bus 3 link: 0 -PCI: 00:0d.0 1c <- [0x0000003fff - 0x0000003ffe] size 0x00000000 gran 0x0c bus 04 io -PCI: 00:0d.0 24 <- [0x00fbffffff - 0x00fbfffffe] size 0x00000000 gran 0x14 bus 04 prefmem -PCI: 00:0d.0 20 <- [0x00fc3fffff - 0x00fc3ffffe] size 0x00000000 gran 0x14 bus 04 mem -PCI: 00:0d.0 assign_resources, bus 4 link: 0 -PCI: 00:0d.0 assign_resources, bus 4 link: 0 -PCI: 00:0e.0 1c <- [0x0000003fff - 0x0000003ffe] size 0x00000000 gran 0x0c bus 05 io -PCI: 00:0e.0 24 <- [0x00fbffffff - 0x00fbfffffe] size 0x00000000 gran 0x14 bus 05 prefmem -PCI: 00:0e.0 20 <- [0x00fc3fffff - 0x00fc3ffffe] size 0x00000000 gran 0x14 bus 05 mem -PCI: 00:18.0 assign_resources, bus 0 link: 1 -DOMAIN: 0000 assign_resources, bus 0 link: 0 -Root Device assign_resources, bus 0 link: 0 -Done setting resources. -Show resources in subtree (Root Device)...After assigning values. - Root Device child on link 0 CPU_CLUSTER: 0 - CPU_CLUSTER: 0 child on link 0 APIC: 00 - APIC: 00 - APIC: 01 - APIC: 02 - APIC: 03 - APIC: 04 - APIC: 05 - APIC: 06 - APIC: 07 - DOMAIN: 0000 child on link 0 PCI: 00:18.0 - DOMAIN: 0000 resource base 1000 size 3000 align 12 gran 0 limit ffff flags 40040100 index 10000000 - DOMAIN: 0000 resource base f8000000 size 4400000 align 26 gran 0 limit febfffff flags 40040200 index 10000100 - DOMAIN: 0000 resource base c0000000 size 10000000 align 0 gran 0 limit 0 flags f0000200 index c0010058 - DOMAIN: 0000 resource base 0 size c0000000 align 0 gran 0 limit 0 flags e0004200 index 7 - DOMAIN: 0000 resource base 0 size a0000 align 0 gran 0 limit 0 flags e0004200 index 10 - DOMAIN: 0000 resource base c0000 size bff40000 align 0 gran 0 limit 0 flags e0004200 index 20 - DOMAIN: 0000 resource base 100000000 size 40000000 align 0 gran 0 limit 0 flags e0004200 index 30 - DOMAIN: 0000 resource base 140000000 size 40000000 align 0 gran 0 limit 0 flags e0004200 index 41 - PCI: 00:18.0 child on link 0 PCI: 00:00.0 - PCI: 00:18.0 resource base 1000 size 3000 align 12 gran 12 limit 3fff flags 60080100 index 110d8 - PCI: 00:18.0 resource base f8000000 size 4000000 align 26 gran 20 limit fbffffff flags 60081200 index 110b8 - PCI: 00:18.0 resource base fc000000 size 400000 align 20 gran 20 limit fc3fffff flags 60080200 index 110b0 - PCI: 00:00.0 - PCI: 00:01.0 child on link 0 PNP: 002e.0 - PCI: 00:01.0 resource base 2c00 size 80 align 7 gran 7 limit 2c7f flags 60000100 index 10 - PCI: 00:01.0 resource base fec00000 size 1000 align 12 gran 12 limit ffffffff flags e0000200 index 14 - PCI: 00:01.0 resource base fed00000 size 1000 align 12 gran 12 limit ffffffff flags e0000200 index 44 - PCI: 00:01.0 resource base 2000 size 100 align 8 gran 8 limit 20ff flags 60000100 index 60 - PCI: 00:01.0 resource base 2400 size 100 align 8 gran 8 limit 24ff flags 60000100 index 64 - PCI: 00:01.0 resource base 2800 size 100 align 8 gran 8 limit 28ff flags 60000100 index 68 - PCI: 00:01.0 resource base 0 size 1000 align 0 gran 0 limit 0 flags c0040100 index 10000000 - PCI: 00:01.0 resource base ff800000 size 800000 align 0 gran 0 limit 0 flags c0040200 index 10000100 - PNP: 002e.0 - PNP: 002e.0 resource base 3f0 size 8 align 3 gran 3 limit 7ff flags e0000100 index 60 - PNP: 002e.0 resource base 6 size 1 align 0 gran 0 limit 0 flags e0000400 index 70 - PNP: 002e.0 resource base 2 size 1 align 0 gran 0 limit 0 flags e0000800 index 74 - PNP: 002e.1 - PNP: 002e.1 resource base 0 size 8 align 3 gran 3 limit 7ff flags 100 index 60 - PNP: 002e.1 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 70 - PNP: 002e.1 resource base 0 size 1 align 0 gran 0 limit 0 flags 800 index 74 - PNP: 002e.2 - PNP: 002e.2 resource base 3f8 size 8 align 3 gran 3 limit 7ff flags e0000100 index 60 - PNP: 002e.2 resource base 4 size 1 align 0 gran 0 limit 0 flags e0000400 index 70 - PNP: 002e.3 - PNP: 002e.3 resource base 2f8 size 8 align 3 gran 3 limit 7ff flags e0000100 index 60 - PNP: 002e.3 resource base 3 size 1 align 0 gran 0 limit 0 flags e0000400 index 70 - PNP: 002e.3 resource base 4 size 1 align 0 gran 0 limit 0 flags e0000500 index f1 - PNP: 002e.5 - PNP: 002e.5 resource base 60 size 1 align 0 gran 0 limit ffffffff flags e0000100 index 60 - PNP: 002e.5 resource base 64 size 1 align 0 gran 0 limit ffffffff flags e0000100 index 62 - PNP: 002e.5 resource base 1 size 1 align 0 gran 0 limit 0 flags e0000400 index 70 - PNP: 002e.5 resource base c size 1 align 0 gran 0 limit 0 flags e0000400 index 72 - PNP: 002e.5 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index f0 - PNP: 002e.7 - PNP: 002e.7 resource base 0 size 1 align 0 gran 0 limit ffffffff flags 100 index 60 - PNP: 002e.7 resource base 0 size 2 align 1 gran 1 limit 7ff flags 100 index 62 - PNP: 002e.7 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 70 - PNP: 002e.8 - PNP: 002e.9 - PNP: 002e.9 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 30 - PNP: 002e.9 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index f0 - PNP: 002e.9 resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index f1 - PNP: 002e.a - PNP: 002e.a resource base 0 size 1 align 0 gran 0 limit 0 flags 400 index 70 - PNP: 002e.b - PNP: 002e.b resource base 290 size 8 align 3 gran 3 limit fff flags e0000100 index 60 - PNP: 002e.b resource base 5 size 1 align 0 gran 0 limit 0 flags e0000400 index 70 - PCI: 00:01.1 child on link 0 I2C: 01:50 - PCI: 00:01.1 resource base 3000 size 20 align 5 gran 5 limit 301f flags 60000100 index 10 - PCI: 00:01.1 resource base 2c80 size 40 align 6 gran 6 limit 2cbf flags 60000100 index 20 - PCI: 00:01.1 resource base 2cc0 size 40 align 6 gran 6 limit 2cff flags 60000100 index 24 - I2C: 01:50 - I2C: 01:51 - I2C: 01:52 - I2C: 01:53 - I2C: 01:54 - I2C: 01:55 - I2C: 01:56 - I2C: 01:57 - I2C: 01:2f - PCI: 00:02.0 - PCI: 00:02.0 resource base fc300000 size 1000 align 12 gran 12 limit fc300fff flags 60000200 index 10 - PCI: 00:02.1 - PCI: 00:02.1 resource base fc303000 size 100 align 8 gran 8 limit fc3030ff flags 60000200 index 10 - PCI: 00:04.0 - PCI: 00:04.1 - PCI: 00:06.0 - PCI: 00:06.0 resource base 3020 size 10 align 4 gran 4 limit 302f flags 60000100 index 20 - PCI: 00:07.0 - PCI: 00:07.0 resource base 3050 size 8 align 3 gran 3 limit 3057 flags 60000100 index 10 - PCI: 00:07.0 resource base 3070 size 4 align 2 gran 2 limit 3073 flags 60000100 index 14 - PCI: 00:07.0 resource base 3058 size 8 align 3 gran 3 limit 305f flags 60000100 index 18 - PCI: 00:07.0 resource base 3074 size 4 align 2 gran 2 limit 3077 flags 60000100 index 1c - PCI: 00:07.0 resource base 3030 size 10 align 4 gran 4 limit 303f flags 60000100 index 20 - PCI: 00:07.0 resource base fc301000 size 1000 align 12 gran 12 limit fc301fff flags 60000200 index 24 - PCI: 00:08.0 - PCI: 00:08.0 resource base 3060 size 8 align 3 gran 3 limit 3067 flags 60000100 index 10 - PCI: 00:08.0 resource base 3078 size 4 align 2 gran 2 limit 307b flags 60000100 index 14 - PCI: 00:08.0 resource base 3068 size 8 align 3 gran 3 limit 306f flags 60000100 index 18 - PCI: 00:08.0 resource base 307c size 4 align 2 gran 2 limit 307f flags 60000100 index 1c - PCI: 00:08.0 resource base 3040 size 10 align 4 gran 4 limit 304f flags 60000100 index 20 - PCI: 00:08.0 resource base fc302000 size 1000 align 12 gran 12 limit fc302fff flags 60000200 index 24 - PCI: 00:09.0 child on link 0 PCI: 01:04.0 - PCI: 00:09.0 resource base 1000 size 1000 align 12 gran 12 limit 1fff flags 60080102 index 1c - PCI: 00:09.0 resource base f8000000 size 4000000 align 26 gran 20 limit fbffffff flags 60081202 index 24 - PCI: 00:09.0 resource base fc000000 size 100000 align 20 gran 20 limit fc0fffff flags 60080202 index 20 - PCI: 01:04.0 - PCI: 01:04.0 resource base f8000000 size 4000000 align 26 gran 26 limit fbffffff flags 60001200 index 10 - PCI: 01:04.0 resource base fc000000 size 40000 align 18 gran 18 limit fc03ffff flags 60000200 index 14 - PCI: 01:04.0 resource base 1000 size 80 align 7 gran 7 limit 107f flags 60000100 index 18 - PCI: 01:04.0 resource base a0000 size 1fc00 align 0 gran 0 limit 0 flags f0000200 index 3 - PCI: 00:0a.0 - PCI: 00:0b.0 child on link 0 PCI: 02:00.0 - PCI: 00:0b.0 resource base 3fff size 0 align 12 gran 12 limit 3fff flags 60080102 index 1c - PCI: 00:0b.0 resource base fbffffff size 0 align 20 gran 20 limit fbffffff flags 60081202 index 24 - PCI: 00:0b.0 resource base fc100000 size 100000 align 20 gran 20 limit fc1fffff flags 60080202 index 20 - PCI: 02:00.0 - PCI: 02:00.0 resource base fc100000 size 10000 align 16 gran 16 limit fc10ffff flags 60000201 index 10 - PCI: 00:0c.0 child on link 0 PCI: 03:00.0 - PCI: 00:0c.0 resource base 3fff size 0 align 12 gran 12 limit 3fff flags 60080102 index 1c - PCI: 00:0c.0 resource base fbffffff size 0 align 20 gran 20 limit fbffffff flags 60081202 index 24 - PCI: 00:0c.0 resource base fc200000 size 100000 align 20 gran 20 limit fc2fffff flags 60080202 index 20 - PCI: 03:00.0 - PCI: 03:00.0 resource base fc200000 size 10000 align 16 gran 16 limit fc20ffff flags 60000201 index 10 - PCI: 00:0d.0 child on link 0 PCI: 04:00.0 - PCI: 00:0d.0 resource base 3fff size 0 align 12 gran 12 limit 3fff flags 60080102 index 1c - PCI: 00:0d.0 resource base fbffffff size 0 align 20 gran 20 limit fbffffff flags 60081202 index 24 - PCI: 00:0d.0 resource base fc3fffff size 0 align 20 gran 20 limit fc3fffff flags 60080202 index 20 - PCI: 04:00.0 - PCI: 00:0e.0 - PCI: 00:0e.0 resource base 3fff size 0 align 12 gran 12 limit 3fff flags 60080102 index 1c - PCI: 00:0e.0 resource base fbffffff size 0 align 20 gran 20 limit fbffffff flags 60081202 index 24 - PCI: 00:0e.0 resource base fc3fffff size 0 align 20 gran 20 limit fc3fffff flags 60080202 index 20 - PCI: 00:0f.0 - PCI: 00:18.1 - PCI: 00:18.2 - PCI: 00:18.3 - PCI: 00:18.4 - PCI: 00:19.0 - PCI: 00:19.1 - PCI: 00:19.2 - PCI: 00:19.3 - PCI: 00:19.4 -Done allocating resources. -BS: BS_DEV_RESOURCES times (us): entry 0 run 3268064 exit 0 -Enabling resources... -PCI: 00:18.0 cmd <- 00 -PCI: 00:18.1 subsystem <- 1043/8162 -PCI: 00:18.1 cmd <- 00 -PCI: 00:18.2 subsystem <- 1043/8162 -PCI: 00:18.2 cmd <- 00 -PCI: 00:18.3 cmd <- 00 -PCI: 00:18.4 subsystem <- 1043/8162 -PCI: 00:18.4 cmd <- 00 -PCI: 00:19.0 cmd <- 00 -PCI: 00:19.1 subsystem <- 1043/8162 -PCI: 00:19.1 cmd <- 00 -PCI: 00:19.2 subsystem <- 1043/8162 -PCI: 00:19.2 cmd <- 00 -PCI: 00:19.3 cmd <- 00 -PCI: 00:19.4 subsystem <- 1043/8162 -PCI: 00:19.4 cmd <- 00 -PCI: 00:00.0 subsystem <- 1043/8162 -PCI: 00:00.0 cmd <- 06 -PCI: 00:01.0 subsystem <- 1043/8162 -PCI: 00:01.0 cmd <- 0f -ck804 lpc decode:PNP: 002e.0, base=0x000003f0, end=0x000003f7 -ck804 lpc decode:PNP: 002e.2, base=0x000003f8, end=0x000003ff -ck804 lpc decode:PNP: 002e.3, base=0x000002f8, end=0x000002ff -ck804 lpc decode:PNP: 002e.3, base=0x00000004, end=0x00000004 -ck804 lpc decode:PNP: 002e.5, base=0x00000060, end=0x00000060 -ck804 lpc decode:PNP: 002e.5, base=0x00000064, end=0x00000064 -ck804 lpc decode:PNP: 002e.b, base=0x00000290, end=0x00000297 -PCI: 00:01.1 subsystem <- 1043/8162 -PCI: 00:01.1 cmd <- 01 -PCI: 00:02.0 subsystem <- 1043/8162 -PCI: 00:02.0 cmd <- 02 -PCI: 00:02.1 subsystem <- 1043/8162 -PCI: 00:02.1 cmd <- 02 -PCI: 00:06.0 subsystem <- 1043/8162 -PCI: 00:06.0 cmd <- 01 -PCI: 00:07.0 subsystem <- 1043/8162 -PCI: 00:07.0 cmd <- 03 -PCI: 00:08.0 subsystem <- 1043/8162 -PCI: 00:08.0 cmd <- 03 -PCI: 00:09.0 bridge ctrl <- 000b -PCI: 00:09.0 cmd <- 07 -PCI: 00:0b.0 bridge ctrl <- 0003 -PCI: 00:0b.0 cmd <- 06 -PCI: 00:0c.0 bridge ctrl <- 0003 -PCI: 00:0c.0 cmd <- 06 -PCI: 00:0d.0 bridge ctrl <- 0003 -PCI: 00:0d.0 cmd <- 00 -PCI: 00:0e.0 bridge ctrl <- 0003 -PCI: 00:0e.0 cmd <- 00 -PCI: 01:04.0 cmd <- 03 -PCI: 02:00.0 subsystem <- 1043/8162 -PCI: 02:00.0 cmd <- 02 -PCI: 03:00.0 subsystem <- 1043/8162 -PCI: 03:00.0 cmd <- 02 -done. -BS: BS_DEV_ENABLE times (us): entry 0 run 162780 exit 0 -Initializing devices... -Root Device init ... -Root Device init finished in 1931 usecs -CPU_CLUSTER: 0 init ... -start_eip=0x00001000, code_size=0x00000031 -CPU1: stack_base 00138000, stack_end 00138ff8 -Asserting INIT. -Waiting for send to finish... -+Deasserting INIT. -Waiting for send to finish... -+#startup loops: 2. -Sending STARTUP #1 to 1. -After apic_write. -Initializing CPU #1 -Startup point 1. -Waiting for send to finish... -+CPU: vendor AMD device 100f21 -Sending STARTUP #2 to 1. -After apic_write. -CPU: family 10, model 02, stepping 01 -Startup point 1. -Waiting for send to finish... -+nodeid = 00, coreid = 01 -After Startup. -CPU2: stack_base 00137000, stack_end 00137ff8 -Enabling cache -Asserting INIT. -CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -Waiting for send to finish... -+MTRR: Physical address space: -0x0000000000000000 - 0x00000000000a0000 size 0x000a0000 type 6 -0x00000000000a0000 - 0x00000000000c0000 size 0x00020000 type 0 -0x00000000000c0000 - 0x00000000c0000000 size 0xbff40000 type 6 -0x00000000c0000000 - 0x00000000f8000000 size 0x38000000 type 0 -0x00000000f8000000 - 0x00000000fc000000 size 0x04000000 type 1 -0x00000000fc000000 - 0x0000000100000000 size 0x04000000 type 0 -0x0000000100000000 - 0x0000000180000000 size 0x80000000 type 6 -Deasserting INIT. -MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -Waiting for send to finish... -+MTRR: default type WB/UC MTRR counts: 5/3. -MTRR: UC selected as default type. -MTRR: 0 base 0x0000000000000000 mask 0x0000ffff80000000 type 6 -MTRR: 1 base 0x0000000080000000 mask 0x0000ffffc0000000 type 6 -MTRR: 2 base 0x00000000f8000000 mask 0x0000fffffc000000 type 1 -#startup loops: 2. -Sending STARTUP #1 to 2. -After apic_write. - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -Startup point 1. -Waiting for send to finish... -+Setting up local apic...Sending STARTUP #2 to 2. -After apic_write. - apic_id: 0x01 done. -Startup point 1. -Waiting for send to finish... -+CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -After Startup. -siblings = 03, CPU3: stack_base 00136000, stack_end 00136ff8 -CPU #1 initialized -Asserting INIT. -Waiting for send to finish... -+Initializing CPU #2 -Deasserting INIT. -Waiting for send to finish... -+CPU: vendor AMD device 100f21 -#startup loops: 2. -Sending STARTUP #1 to 3. -After apic_write. -CPU: family 10, model 02, stepping 01 -Startup point 1. -Waiting for send to finish... -+nodeid = 00, coreid = 02 -Sending STARTUP #2 to 3. -After apic_write. -Enabling cache -Startup point 1. -Waiting for send to finish... -+CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -After Startup. -MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -CPU4: stack_base 00135000, stack_end 00135ff8 - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -Asserting INIT. -Setting up local apic...Waiting for send to finish... -+ apic_id: 0x02 done. -Deasserting INIT. -CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -Waiting for send to finish... -+siblings = 03, #startup loops: 2. -Sending STARTUP #1 to 4. -After apic_write. -CPU #2 initialized -Startup point 1. -Waiting for send to finish... -+Initializing CPU #3 -Sending STARTUP #2 to 4. -After apic_write. -CPU: vendor AMD device 100f21 -Startup point 1. -Waiting for send to finish... -+Initializing CPU #4 -After Startup. -CPU5: stack_base 00134000, stack_end 00134ff8 -CPU: vendor AMD device 100f21 -Asserting INIT. -Waiting for send to finish... -+CPU: family 10, model 02, stepping 01 -Deasserting INIT. -Waiting for send to finish... -+nodeid = 01, coreid = 00 -#startup loops: 2. -Sending STARTUP #1 to 5. -After apic_write. -CPU: family 10, model 02, stepping 01 -Startup point 1. -Waiting for send to finish... -+Enabling cache -Sending STARTUP #2 to 5. -After apic_write. -CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -Startup point 1. -Waiting for send to finish... -+MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -After Startup. -CPU6: stack_base 00133000, stack_end 00133ff8 - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -Asserting INIT. -Setting up local apic...Waiting for send to finish... -+ apic_id: 0x04 done. -Deasserting INIT. -CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -Waiting for send to finish... -+siblings = 03, #startup loops: 2. -Sending STARTUP #1 to 6. -After apic_write. -CPU #4 initialized -Startup point 1. -Waiting for send to finish... -+nodeid = 00, coreid = 03 -Sending STARTUP #2 to 6. -After apic_write. -Initializing CPU #6 -Startup point 1. -Waiting for send to finish... -+Enabling cache -After Startup. -CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -CPU7: stack_base 00132000, stack_end 00132ff8 -MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -Asserting INIT. -Waiting for send to finish... -+ -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -Deasserting INIT. -Setting up local apic...Waiting for send to finish... -+ apic_id: 0x03 done. -#startup loops: 2. -Sending STARTUP #1 to 7. -After apic_write. -CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -Startup point 1. -Waiting for send to finish... -+siblings = 03, Sending STARTUP #2 to 7. -After apic_write. -CPU #3 initialized -Startup point 1. -Waiting for send to finish... -+CPU: vendor AMD device 100f21 -After Startup. -Initializing CPU #0 -Initializing CPU #5 -CPU: vendor AMD device 100f21 -CPU: family 10, model 02, stepping 01 -nodeid = 00, coreid = 00 -Enabling cache -CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -Initializing CPU #7 -MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -CPU: vendor AMD device 100f21 - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -CPU: family 10, model 02, stepping 01 -Setting up local apic...nodeid = 01, coreid = 02 - apic_id: 0x00 done. -CPU: family 10, model 02, stepping 01 -CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -siblings = 03, CPU: vendor AMD device 100f21 -CPU #0 initialized -Waiting for 3 CPUS to stop -Enabling cache -CPU: family 10, model 02, stepping 01 -CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -nodeid = 01, coreid = 01 -MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -Enabling cache -nodeid = 01, coreid = 03 -CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -Setting up local apic... -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - - apic_id: 0x06 done. -Setting up local apic...CPU model: Quad-Core AMD Opteron(tm) Processor 8347 - apic_id: 0x05 done. -siblings = 03, Enabling cache -CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -CPU #6 initialized -CPU ID 0x80000001: 100f21 -CPU is Fam 0Fh rev.F or later. We can use TOM2WB for any memory above 4GB -siblings = 03, MTRR: Fixed MSR 0x250 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x258 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x269 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26a 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26b 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26c 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26d 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26e 0x1e1e1e1e1e1e1e1e -MTRR: Fixed MSR 0x26f 0x1e1e1e1e1e1e1e1e -CPU #5 initialized - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -Waiting for 2 CPUS to stop -Setting up local apic...Waiting for 1 CPUS to stop - apic_id: 0x07 done. -CPU model: Quad-Core AMD Opteron(tm) Processor 8347 -siblings = 03, CPU #7 initialized -All AP CPUs stopped (15172 loops) -CPU1: stack: 00138000 - 00139000, lowest used address 00138c8c, stack used: 884 bytes -CPU2: stack: 00137000 - 00138000, lowest used address 00137cd4, stack used: 812 bytes -CPU3: stack: 00136000 - 00137000, lowest used address 00136cd4, stack used: 812 bytes -CPU4: stack: 00135000 - 00136000, lowest used address 00135cd4, stack used: 812 bytes -CPU5: stack: 00134000 - 00135000, lowest used address 00134cd4, stack used: 812 bytes -CPU6: stack: 00133000 - 00134000, lowest used address 00133cd4, stack used: 812 bytes -CPU7: stack: 00132000 - 00133000, lowest used address 00132cd4, stack used: 812 bytes -CPU_CLUSTER: 0 init finished in 995136 usecs -PCI: 00:18.0 init ... -PCI: 00:18.0 init finished in 2028 usecs -PCI: 00:18.1 init ... -PCI: 00:18.1 init finished in 2027 usecs -PCI: 00:18.2 init ... -PCI: 00:18.2 init finished in 2018 usecs -PCI: 00:18.3 init ... -NB: Function 3 Misc Control.. done. -PCI: 00:18.3 init finished in 5294 usecs -PCI: 00:18.4 init ... -PCI: 00:18.4 init finished in 2018 usecs -PCI: 00:19.0 init ... -PCI: 00:19.0 init finished in 2018 usecs -PCI: 00:19.1 init ... -PCI: 00:19.1 init finished in 2018 usecs -PCI: 00:19.2 init ... -PCI: 00:19.2 init finished in 2019 usecs -PCI: 00:19.3 init ... -NB: Function 3 Misc Control.. done. -PCI: 00:19.3 init finished in 5277 usecs -PCI: 00:19.4 init ... -PCI: 00:19.4 init finished in 2017 usecs -PCI: 00:00.0 init ... -PCI: 00:00.0 init finished in 2028 usecs -PCI: 00:01.0 init ... -IOAPIC: Initializing IOAPIC at 0xfec00000 -IOAPIC: Bootstrap Processor Local APIC = 0x00 -IOAPIC: Dumping registers - reg 0x0000: 0x00000000 - reg 0x0001: 0x00170011 - reg 0x0002: 0x00000000 -IOAPIC: 24 interrupts -IOAPIC: Enabling interrupts on FSB -IOAPIC: reg 0x00000000 value 0x00000000 0x00000700 -IOAPIC: reg 0x00000001 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000002 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000003 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000004 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000005 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000006 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000007 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000008 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000009 value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000a value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000b value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000c value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000d value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000e value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000f value 0x00000000 0x00010000 -IOAPIC: reg 0x00000010 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000011 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000012 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000013 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000014 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000015 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000016 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000017 value 0x00000000 0x00010000 -lpc_init: pm_base = 2000 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -set power on after power fail -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -RTC Init -PCI: 00:01.0 init finished in 164771 usecs -PCI: 00:02.0 init ... -PCI: 00:02.0 init finished in 2026 usecs -PCI: 00:02.1 init ... -PCI: 00:02.1 init finished in 2018 usecs -PCI: 00:06.0 init ... -IDE1 IDE0 -PCI: 00:06.0 init finished in 3096 usecs -PCI: 00:07.0 init ... -SATA S SATA P -PCI: 00:07.0 init finished in 3535 usecs -PCI: 00:08.0 init ... -SATA S SATA P -PCI: 00:08.0 init finished in 3526 usecs -PCI: 00:09.0 init ... -PCI DOMAIN mem base = 0x00f8000000 -[0x50] <-- 0xf8000000 -PCI: 00:09.0 init finished in 7192 usecs -PCI: 00:0b.0 init ... -PCI: 00:0b.0 init finished in 2018 usecs -PCI: 00:0c.0 init ... -PCI: 00:0c.0 init finished in 2019 usecs -PCI: 00:0d.0 init ... -PCI: 00:0d.0 init finished in 2019 usecs -PCI: 00:0e.0 init ... -PCI: 00:0e.0 init finished in 2019 usecs -PNP: 002e.0 init ... -PNP: 002e.0 init finished in 1939 usecs -PNP: 002e.2 init ... -PNP: 002e.2 init finished in 1929 usecs -PNP: 002e.3 init ... -PNP: 002e.3 init finished in 1930 usecs -PNP: 002e.5 init ... -Keyboard init... -PNP: 002e.5 init finished in 351037 usecs -PNP: 002e.9 init ... -PNP: 002e.9 init finished in 1928 usecs -PNP: 002e.b init ... -PNP: 002e.b init finished in 1930 usecs -smbus: PCI: 00:01.1[0]->I2C: 01:2f init ... -ID: 5ca3 -I2C: 01:2f init finished in 101155 usecs -PCI: 01:04.0 init ... -XGI Z9s: initializing video device -XGI VGA: Relocate IO address: 1000 [00001030] -XGI VGA: chipid = 31 -XGI VGA: Framebuffer at 0xf8000000, mapped to 0xf8000000, size 16384k -XGI VGA: MMIO at 0xfc000000, mapped to 0xfc000000, size 256k -XGI VGA: No or unknown bridge type detected -XGI VGA: Default mode is 800x600x16 (60Hz) -XGI VGA: Set new mode: 800x600x16-60 -PCI: 01:04.0 init finished in 42560 usecs -PCI: 02:00.0 init ... -PCI: 02:00.0 init finished in 2017 usecs -PCI: 03:00.0 init ... -PCI: 03:00.0 init finished in 2018 usecs -Devices initialized -Show all devs... After init. -Root Device: enabled 1 -CPU_CLUSTER: 0: enabled 1 -APIC: 00: enabled 1 -DOMAIN: 0000: enabled 1 -PCI: 00:18.0: enabled 1 -PCI: 00:00.0: enabled 1 -PCI: 00:01.0: enabled 1 -PNP: 002e.0: enabled 1 -PNP: 002e.1: enabled 0 -PNP: 002e.2: enabled 1 -PNP: 002e.3: enabled 1 -PNP: 002e.5: enabled 1 -PNP: 002e.7: enabled 0 -PNP: 002e.8: enabled 0 -PNP: 002e.9: enabled 1 -PNP: 002e.a: enabled 0 -PNP: 002e.b: enabled 1 -PCI: 00:01.1: enabled 1 -I2C: 01:50: enabled 1 -I2C: 01:51: enabled 1 -I2C: 01:52: enabled 1 -I2C: 01:53: enabled 1 -I2C: 01:54: enabled 1 -I2C: 01:55: enabled 1 -I2C: 01:56: enabled 1 -I2C: 01:57: enabled 1 -I2C: 01:2f: enabled 1 -PCI: 00:02.0: enabled 1 -PCI: 00:02.1: enabled 1 -PCI: 00:04.0: enabled 0 -PCI: 00:04.1: enabled 0 -PCI: 00:06.0: enabled 1 -PCI: 00:07.0: enabled 1 -PCI: 00:08.0: enabled 1 -PCI: 00:09.0: enabled 1 -PCI: 01:04.0: enabled 1 -PCI: 00:0a.0: enabled 0 -PCI: 00:0b.0: enabled 1 -PCI: 02:00.0: enabled 1 -PCI: 00:0c.0: enabled 1 -PCI: 03:00.0: enabled 1 -PCI: 00:0d.0: enabled 1 -PCI: 04:00.0: enabled 0 -PCI: 00:0e.0: enabled 1 -PCI: 00:0f.0: enabled 0 -PCI: 00:18.1: enabled 1 -PCI: 00:18.2: enabled 1 -PCI: 00:18.3: enabled 1 -PCI: 00:18.4: enabled 1 -PCI: 00:19.0: enabled 1 -PCI: 00:19.1: enabled 1 -PCI: 00:19.2: enabled 1 -PCI: 00:19.3: enabled 1 -PCI: 00:19.4: enabled 1 -APIC: 01: enabled 1 -APIC: 02: enabled 1 -APIC: 03: enabled 1 -APIC: 04: enabled 1 -APIC: 05: enabled 1 -APIC: 06: enabled 1 -APIC: 07: enabled 1 -BS: BS_DEV_INIT times (us): entry 0 run 1989467 exit 0 -Finalize devices... -Devices finalized -BS: BS_POST_DEVICE times (us): entry 0 run 3526 exit 0 -BS: BS_OS_RESUME_CHECK times (us): entry 0 run 1 exit 0 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -CONFIG_LOGICAL_CPUS==1: apicid_base: 00000001 -Writing IRQ routing tables to 0xf0000...done. -Writing IRQ routing tables to 0xbffd8000...done. -PIRQ table: 224 bytes. -Wrote the mp table end at: 000f0410 - 000f05cc -Wrote the mp table end at: bffd7010 - bffd71cc -MP table: 460 bytes. -CBFS @ 0 size ff8c0 -CBFS: Locating 'fallback/dsdt.aml' -CBFS: Found @ offset c00 size 2644 -CBFS @ 0 size ff8c0 -CBFS: Locating 'fallback/slic' -CBFS: 'fallback/slic' not found. -ACPI: Writing ACPI tables at bffb3000. -ACPI: * FACS -ACPI: * DSDT -ACPI: * FADT -pm_base: 0x2000 -ACPI: added table 1/32, length now 40 -ACPI: * SSDT -processor_brand=Quad-Core AMD Opteron(tm) Processor 8347 -Pstates algorithm ... -Pstate_freq[0] = 1900MHz Pstate_power[0] = 23040mw -Pstate_latency[0] = 5us -Pstate_freq[1] = 1700MHz Pstate_power[1] = 21385mw -Pstate_latency[1] = 5us -Pstate_freq[2] = 1400MHz Pstate_power[2] = 18787mw -Pstate_latency[2] = 5us -Pstate_freq[3] = 1200MHz Pstate_power[3] = 16770mw -Pstate_latency[3] = 5us -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -l 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -PSS: 1900MHz power 23040 control 0x0 status 0x0 -PSS: 1700MHz power 21385 control 0x1 status 0x1 -PSS: 1400MHz power 18787 control 0x2 status 0x2 -PSS: 1200MHz power 16770 control 0x3 status 0x3 -ACPI: added table 2/32, length now 44 -ACPI: * MCFG -ACPI: * TCPA -TCPA log created at bffa3000 -ACPI: added table 3/32, length now 48 -ACPI: * MADT -ACPI: added table 4/32, length now 52 -current = bffb6910 -ACPI: * SRAT at bffb6910 -SRAT: lapic cpu_index=00, node_id=00, apic_id=00 -SRAT: lapic cpu_index=01, node_id=00, apic_id=01 -SRAT: lapic cpu_index=02, node_id=00, apic_id=02 -SRAT: lapic cpu_index=03, node_id=00, apic_id=03 -SRAT: lapic cpu_index=04, node_id=01, apic_id=04 -SRAT: lapic cpu_index=05, node_id=01, apic_id=05 -SRAT: lapic cpu_index=06, node_id=01, apic_id=06 -SRAT: lapic cpu_index=07, node_id=01, apic_id=07 -set_srat_mem: dev DOMAIN: 0000, res->index=0007 startk=00000000, sizek=00300000 -set_srat_mem: dev DOMAIN: 0000, res->index=0010 startk=00000000, sizek=00000280 -set_srat_mem: dev DOMAIN: 0000, res->index=0020 startk=00000300, sizek=002ffd00 -set_srat_mem: dev DOMAIN: 0000, res->index=0030 startk=00400000, sizek=00100000 -set_srat_mem: dev DOMAIN: 0000, res->index=0041 startk=00500000, sizek=00100000 -ACPI: added table 5/32, length now 56 -ACPI: * SLIT at bffb6a88 -ACPI: added table 6/32, length now 60 -ACPI: * HPET -ACPI: added table 7/32, length now 64 -ACPI: * SRAT at bffb6b00 -SRAT: lapic cpu_index=00, node_id=00, apic_id=00 -SRAT: lapic cpu_index=01, node_id=00, apic_id=01 -SRAT: lapic cpu_index=02, node_id=00, apic_id=02 -SRAT: lapic cpu_index=03, node_id=00, apic_id=03 -SRAT: lapic cpu_index=04, node_id=01, apic_id=04 -SRAT: lapic cpu_index=05, node_id=01, apic_id=05 -SRAT: lapic cpu_index=06, node_id=01, apic_id=06 -SRAT: lapic cpu_index=07, node_id=01, apic_id=07 -set_srat_mem: dev DOMAIN: 0000, res->index=0007 startk=00000000, sizek=00300000 -set_srat_mem: dev DOMAIN: 0000, res->index=0010 startk=00000000, sizek=00000280 -set_srat_mem: dev DOMAIN: 0000, res->index=0020 startk=00000300, sizek=002ffd00 -set_srat_mem: dev DOMAIN: 0000, res->index=0030 startk=00400000, sizek=00100000 -set_srat_mem: dev DOMAIN: 0000, res->index=0041 startk=00500000, sizek=00100000 -ACPI: added table 8/32, length now 68 -ACPI: * SLIT at bffb6c78 -ACPI: added table 9/32, length now 72 -ACPI: done. -ACPI tables: 15536 bytes. -smbios_write_tables: bffa2000 -Root Device (ASUS KFSN4-DRE) -CPU_CLUSTER: 0 (AMD FAM10 Root Complex) -APIC: 00 (unknown) -DOMAIN: 0000 (AMD FAM10 Root Complex) -PCI: 00:18.0 (AMD FAM10 Northbridge) -PCI: 00:00.0 (NVIDIA CK804 Southbridge) -PCI: 00:01.0 (NVIDIA CK804 Southbridge) -PNP: 002e.0 (Winbond W83627THG Super I/O) -PNP: 002e.1 (Winbond W83627THG Super I/O) -PNP: 002e.2 (Winbond W83627THG Super I/O) -PNP: 002e.3 (Winbond W83627THG Super I/O) -PNP: 002e.5 (Winbond W83627THG Super I/O) -PNP: 002e.7 (Winbond W83627THG Super I/O) -PNP: 002e.8 (Winbond W83627THG Super I/O) -PNP: 002e.9 (Winbond W83627THG Super I/O) -PNP: 002e.a (Winbond W83627THG Super I/O) -PNP: 002e.b (Winbond W83627THG Super I/O) -PCI: 00:01.1 (NVIDIA CK804 Southbridge) -I2C: 01:50 (unknown) -I2C: 01:51 (unknown) -I2C: 01:52 (unknown) -I2C: 01:53 (unknown) -I2C: 01:54 (unknown) -I2C: 01:55 (unknown) -I2C: 01:56 (unknown) -I2C: 01:57 (unknown) -I2C: 01:2f (Nuvoton W83793 Hardware Monitor) -PCI: 00:02.0 (NVIDIA CK804 Southbridge) -PCI: 00:02.1 (NVIDIA CK804 Southbridge) -PCI: 00:04.0 (NVIDIA CK804 Southbridge) -PCI: 00:04.1 (NVIDIA CK804 Southbridge) -PCI: 00:06.0 (NVIDIA CK804 Southbridge) -PCI: 00:07.0 (NVIDIA CK804 Southbridge) -PCI: 00:08.0 (NVIDIA CK804 Southbridge) -PCI: 00:09.0 (NVIDIA CK804 Southbridge) -PCI: 01:04.0 (NVIDIA CK804 Southbridge) -PCI: 00:0a.0 (NVIDIA CK804 Southbridge) -PCI: 00:0b.0 (NVIDIA CK804 Southbridge) -PCI: 02:00.0 (NVIDIA CK804 Southbridge) -PCI: 00:0c.0 (NVIDIA CK804 Southbridge) -PCI: 03:00.0 (NVIDIA CK804 Southbridge) -PCI: 00:0d.0 (NVIDIA CK804 Southbridge) -PCI: 04:00.0 (NVIDIA CK804 Southbridge) -PCI: 00:0e.0 (NVIDIA CK804 Southbridge) -PCI: 00:0f.0 (NVIDIA CK804 Southbridge) -PCI: 00:18.1 (AMD FAM10 Northbridge) -PCI: 00:18.2 (AMD FAM10 Northbridge) -PCI: 00:18.3 (AMD FAM10 Northbridge) -PCI: 00:18.4 (AMD FAM10 Northbridge) -PCI: 00:19.0 (AMD FAM10 Northbridge) -PCI: 00:19.1 (AMD FAM10 Northbridge) -PCI: 00:19.2 (AMD FAM10 Northbridge) -PCI: 00:19.3 (AMD FAM10 Northbridge) -PCI: 00:19.4 (AMD FAM10 Northbridge) -APIC: 01 (unknown) -APIC: 02 (unknown) -APIC: 03 (unknown) -APIC: 04 (unknown) -APIC: 05 (unknown) -APIC: 06 (unknown) -APIC: 07 (unknown) -SMBIOS tables: 553 bytes. -Writing table forward entry at 0x00000500 -Wrote coreboot table at: 00000500, 0x10 bytes, checksum 9fe4 -Table forward entry ends at 0x00000528. -... aligned to 0x00001000 -Writing coreboot table at 0xbff9a000 -rom_table_end = 0xbff9a000 -... aligned to 0xbffa0000 -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 - 0. 0000000000000000-0000000000000fff: CONFIGURATION TABLES - 1. 0000000000001000-000000000009ffff: RAM - 2. 00000000000a0000-00000000000bffff: RESERVED - 3. 00000000000c0000-00000000bff99fff: RAM - 4. 00000000bff9a000-00000000bfffffff: CONFIGURATION TABLES - 5. 00000000c0000000-00000000cfffffff: RESERVED - 6. 0000000100000000-000000017fffffff: RAM -CBFS @ 0 size ff8c0 -CBFS: Locating 'cmos_layout.bin' -CBFS: Found @ offset 140 size a90 -Wrote coreboot table at: bff9a000, 0xc08 bytes, checksum 44e8 -coreboot table: 3104 bytes. -IMD ROOT 0. bffff000 00001000 -IMD SMALL 1. bfffe000 00001000 -CAR GLOBALS 2. bfffb000 0000291c -CONSOLE 3. bffdb000 00020000 -AMDMEM INFO 4. bffd9000 0000172c -IRQ TABLE 5. bffd8000 00001000 -SMP TABLE 6. bffd7000 00001000 -ACPI 7. bffb3000 00024000 -54435041 8. bffa3000 00010000 -SMBIOS 9. bffa2000 00000800 -COREBOOT 10. bff9a000 00008000 -IMD small region: - IMD ROOT 0. bfffec00 00000400 - USBDEBUG 1. bfffeba0 00000058 - ROMSTAGE 2. bfffeb80 00000004 - GDT 3. bfffe980 00000200 -BS: BS_WRITE_TABLES times (us): entry 0 run 760427 exit 0 -CBFS provider active. -CBFS @ 0 size ff8c0 -CBFS: Locating 'fallback/payload' -CBFS: Found @ offset 29c80 size 8f395 -'fallback/payload' located at offset: 29cb8 size: 8f395 -Loading segment from rom address 0xfff29cb8 - code (compression=1) - New segment dstaddr 0x8200 memsize 0x17420 srcaddr 0xfff29d0c filesize 0x8215 -Loading segment from rom address 0xfff29cd4 - code (compression=1) - New segment dstaddr 0x100000 memsize 0x2213f0 srcaddr 0xfff31f21 filesize 0x8712c -Loading segment from rom address 0xfff29cf0 - Entry Point 0x00008200 -Bounce Buffer at bfc79000, 3277244 bytes -Loading Segment: addr: 0x0000000000008200 memsz: 0x0000000000017420 filesz: 0x0000000000008215 -lb: [0x0000000000100000, 0x00000000001fedcc) -Post relocation: addr: 0x0000000000008200 memsz: 0x0000000000017420 filesz: 0x0000000000008215 -using LZMA -[ 0x00008200, 00017ce3, 0x0001f620) <- fff29d0c -Clearing Segment: addr: 0x0000000000017ce3 memsz: 0x000000000000793d -dest 00008200, end 0001f620, bouncebuffer bfc79000 -Loading Segment: addr: 0x0000000000100000 memsz: 0x00000000002213f0 filesz: 0x000000000008712c -lb: [0x0000000000100000, 0x00000000001fedcc) -segment: [0x0000000000100000, 0x000000000018712c, 0x00000000003213f0) - bounce: [0x00000000bfc79000, 0x00000000bfd0012c, 0x00000000bfe9a3f0) -Post relocation: addr: 0x00000000bfc79000 memsz: 0x00000000002213f0 filesz: 0x000000000008712c -using LZMA -[ 0xbfc79000, bfe9a3f0, 0xbfe9a3f0) <- fff31f21 -dest bfc79000, end bfe9a3f0, bouncebuffer bfc79000 -move suffix around: from bfd77dcc, to 1fedcc, amount: 122624 -Loaded segments -BS: BS_PAYLOAD_LOAD times (us): entry 0 run 819203 exit 0 -Jumping to boot code at 00008200(bff9a000) -CPU0: stack: 00139000 - 0013a000, lowest used address 00139ae0, stack used: 1312 bytes -entry = 0x00008200 -lb_start = 0x00100000 -lb_size = 0x000fedcc -buffer = 0xbfc79000 -[?25lFREE AS IN FREEDOM - - -+----------------------------------------------------------------------------+||||||||||||||||||||||||+----------------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. - - Press enter to boot the selected OS, `e' to edit the commands - - before booting or `c' for a command-line.  *Load Operating System  Parse ISOLINUX menu (ahci0)  Parse ISOLINUX menu (USB)  Parse ISOLINUX menu (CD/DVD)  Switch to grubtest.cfg  Search for GRUB configuration (grub.cfg) outside of CBFS         The highlighted entry will be executed automatically in 1s.  The highlighted entry will be executed automatically in 0s. [?25h Booting `Load Operating System' - - - - Failed to boot both default and fallback entries. - - -Press any key to continue... - -[?25lFREE AS IN FREEDOM - - -+----------------------------------------------------------------------------+||||||||||||||||||||||||+----------------------------------------------------------------------------+ Use the ^ and v keys to select which entry is highlighted. - - Press enter to boot the selected OS, `e' to edit the commands - - before booting or `c' for a command-line.  *Load Operating System  Parse ISOLINUX menu (ahci0) diff --git a/site/docs/hardware/text/x200s/cblog00.txt b/site/docs/hardware/text/x200s/cblog00.txt deleted file mode 100644 index 331cb64..0000000 --- a/site/docs/hardware/text/x200s/cblog00.txt +++ /dev/null @@ -1,196 +0,0 @@ -USB - - -coreboot-4.0-7318-g129462d Mon Dec 8 22:08:18 GMT 2014 starting... -running main(bist = 0) -WARNING: Ignoring S4-assertion-width violation. -Stepping B3 -2 CPU cores -AMT enabled -capable of DDR2 of 800 MHz or lower -VT-d enabled -GMCH: GS45, using low power mode by default -TXT enabled -Render frequency: 533 MHz -IGD enabled -PCIe-to-GMCH enabled -GMCH supports DDR3 with 1067 MT or less -GMCH supports FSB with up to 1067 MHz -SMBus controller enabled. -0:50:b -2:51:b -DDR mask 5, DDR 3 -Bank 0 populated: - Raw card type: F - Row addr bits: 14 - Col addr bits: 10 - byte width: 1 - page size: 1024 - banks: 8 - ranks: 2 - tAAmin: 105 - tCKmin: 15 - Max clock: 533 MHz - CAS: 0x01c0 -Bank 1 populated: - Raw card type: B - Row addr bits: 15 - Col addr bits: 10 - byte width: 1 - page size: 1024 - banks: 8 - ranks: 1 - tAAmin: 105 - tCKmin: 12 - Max clock: 666 MHz - CAS: 0x07e0 -Trying CAS 7, tCK 15. -Found compatible clock / CAS pair: 533 / 7. -Timing values: - tCLK: 15 - tRAS: 20 - tRP: 7 - tRCD: 7 - tRFC: 104 - tWR: 8 - tRD: 11 - tRRD: 4 - tFAW: 20 - tWL: 6 -Changing memory frequency: old 3, new 6. -Setting IGD memory frequencies for VCO #1. -SFF platform unsupported in RCOMP initialization. -USB - - -coreboot-4.0-7318-g129462d Mon Dec 8 22:08:18 GMT 2014 starting... -running main(bist = 0) -Interrupted RAM init, reset required. -USB - - -coreboot-4.0-7318-g129462d Mon Dec 8 22:08:18 GMT 2014 starting... -running main(bist = 0) -Stepping B3 -2 CPU cores -AMT enabled -capable of DDR2 of 800 MHz or lower -VT-d enabled -GMCH: GS45, using low power mode by default -TXT enabled -Render frequency: 533 MHz -IGD enabled -PCIe-to-GMCH enabled -GMCH supports DDR3 with 1067 MT or less -GMCH supports FSB with up to 1067 MHz -SMBus controller enabled. -0:50:b -2:51:b -DDR mask 5, DDR 3 -Bank 0 populated: - Raw card type: F - Row addr bits: 14 - Col addr bits: 10 - byte width: 1 - page size: 1024 - banks: 8 - ranks: 2 - tAAmin: 105 - tCKmin: 15 - Max clock: 533 MHz - CAS: 0x01c0 -Bank 1 populated: - Raw card type: B - Row addr bits: 15 - Col addr bits: 10 - byte width: 1 - page size: 1024 - banks: 8 - ranks: 1 - tAAmin: 105 - tCKmin: 12 - Max clock: 666 MHz - CAS: 0x07e0 -Trying CAS 7, tCK 15. -Found compatible clock / CAS pair: 533 / 7. -Timing values: - tCLK: 15 - tRAS: 20 - tRP: 7 - tRCD: 7 - tRFC: 104 - tWR: 8 - tRD: 11 - tRRD: 4 - tFAW: 20 - tWL: 6 -Changing memory frequency: old 3, new 6. -Setting IGD memory frequencies for VCO #1. -SFF platform unsupported in RCOMP initialization. -USB - - -coreboot-4.0-7318-g129462d Mon Dec 8 22:08:18 GMT 2014 starting... -running main(bist = 0) -Interrupted RAM init, reset required. -USB - - -coreboot-4.0-7318-g129462d Mon Dec 8 22:08:18 GMT 2014 starting... -running main(bist = 0) -Stepping B3 -2 CPU cores -AMT enabled -capable of DDR2 of 800 MHz or lower -VT-d enabled -GMCH: GS45, using low power mode by default -TXT enabled -Render frequency: 533 MHz -IGD enabled -PCIe-to-GMCH enabled -GMCH supports DDR3 with 1067 MT or less -GMCH supports FSB with up to 1067 MHz -SMBus controller enabled. -0:50:b -2:51:b -DDR mask 5, DDR 3 -Bank 0 populated: - Raw card type: F - Row addr bits: 14 - Col addr bits: 10 - byte width: 1 - page size: 1024 - banks: 8 - ranks: 2 - tAAmin: 105 - tCKmin: 15 - Max clock: 533 MHz - CAS: 0x01c0 -Bank 1 populated: - Raw card type: B - Row addr bits: 15 - Col addr bits: 10 - byte width: 1 - page size: 1024 - banks: 8 - ranks: 1 - tAAmin: 105 - tCKmin: 12 - Max clock: 666 MHz - CAS: 0x07e0 -Trying CAS 7, tCK 15. -Found compatible clock / CAS pair: 533 / 7. -Timing values: - tCLK: 15 - tRAS: 20 - tRP: 7 - tRCD: 7 - tRFC: 104 - tWR: 8 - tRD: 11 - tRRD: 4 - tFAW: 20 - tWL: 6 -Changing memory frequency: old 3, new 6. -Setting IGD memory frequencies for VCO #1. -SFF platform unsupported in RCOMP initialization. diff --git a/site/docs/hardware/text/x200s/cblog01.txt b/site/docs/hardware/text/x200s/cblog01.txt deleted file mode 100644 index afad2fe..0000000 --- a/site/docs/hardware/text/x200s/cblog01.txt +++ /dev/null @@ -1,1569 +0,0 @@ -USB - - -coreboot-4.0-7551-ge420139-dirty Wed Dec 10 16:34:05 GMT 2014 starting... -running main(bist = 0) -WARNING: Ignoring S4-assertion-width violation. -Stepping B3 -2 CPU cores -AMT enabled -capable of DDR2 of 800 MHz or lower -VT-d enabled -GMCH: GS45, using high performance mode by default -TXT enabled -Render frequency: 533 MHz -IGD enabled -PCIe-to-GMCH enabled -GMCH supports DDR3 with 1067 MT or less -GMCH supports FSB with up to 1067 MHz -SMBus controller enabled. -0:50:b -2:51:b -DDR mask 5, DDR 3 -Bank 0 populated: - Raw card type: F - Row addr bits: 15 - Col addr bits: 10 - byte width: 1 - page size: 1024 - banks: 8 - ranks: 2 - tAAmin: 105 - tCKmin: 12 - Max clock: 666 MHz - CAS: 0x07e0 -Bank 1 populated: - Raw card type: F - Row addr bits: 15 - Col addr bits: 10 - byte width: 1 - page size: 1024 - banks: 8 - ranks: 2 - tAAmin: 105 - tCKmin: 12 - Max clock: 666 MHz - CAS: 0x07e0 -DIMMs support 666 MHz, but chipset only runs at up to 533. Limiting... -Trying CAS 7, tCK 15. -Found compatible clock / CAS pair: 533 / 7. -Timing values: - tCLK: 15 - tRAS: 20 - tRP: 7 - tRCD: 7 - tRFC: 104 - tWR: 8 - tRD: 11 - tRRD: 4 - tFAW: 20 - tWL: 6 -Changing memory frequency: old 3, new 6. -Setting IGD memory frequencies for VCO #1. -Memory configured in dual-channel assymetric mode. -Memory map: -TOM = 512MB -TOLUD = 512MB -TOUUD = 512MB -REMAP: base = 65535MB - limit = 0MB -usedMEsize: 0MB -Performing Jedec initialization at address 0x00000000. -Performing Jedec initialization at address 0x08000000. -Performing Jedec initialization at address 0x10000000. -Performing Jedec initialization at address 0x18000000. -Final timings for group 0 on channel 0: 6.1.0.2.2 -Final timings for group 1 on channel 0: 6.0.2.6.1 -Final timings for group 2 on channel 0: 6.1.0.8.7 -Final timings for group 3 on channel 0: 6.1.0.7.1 -Final timings for group 0 on channel 1: 6.1.0.0.6 -Final timings for group 1 on channel 1: 6.0.2.3.4 -Final timings for group 2 on channel 1: 6.1.0.6.6 -Final timings for group 3 on channel 1: 6.1.0.3.6 -Lower bound for byte lane 0 on channel 0: 0.0 -Upper bound for byte lane 0 on channel 0: 10.1 -Final timings for byte lane 0 on channel 0: 5.0 -Lower bound for byte lane 1 on channel 0: 0.0 -Upper bound for byte lane 1 on channel 0: 11.1 -Final timings for byte lane 1 on channel 0: 5.4 -Lower bound for byte lane 2 on channel 0: 0.0 -Upper bound for byte lane 2 on channel 0: 11.3 -Final timings for byte lane 2 on channel 0: 5.5 -Lower bound for byte lane 3 on channel 0: 0.0 -Upper bound for byte lane 3 on channel 0: 10.2 -Final timings for byte lane 3 on channel 0: 5.1 -Lower bound for byte lane 4 on channel 0: 0.0 -Upper bound for byte lane 4 on channel 0: 10.2 -Final timings for byte lane 4 on channel 0: 5.1 -Lower bound for byte lane 5 on channel 0: 0.0 -Upper bound for byte lane 5 on channel 0: 8.6 -Final timings for byte lane 5 on channel 0: 4.3 -Lower bound for byte lane 6 on channel 0: 0.0 -Upper bound for byte lane 6 on channel 0: 11.2 -Final timings for byte lane 6 on channel 0: 5.5 -Lower bound for byte lane 7 on channel 0: 0.0 -Upper bound for byte lane 7 on channel 0: 9.3 -Final timings for byte lane 7 on channel 0: 4.5 -Lower bound for byte lane 0 on channel 1: 0.0 -Upper bound for byte lane 0 on channel 1: 10.0 -Final timings for byte lane 0 on channel 1: 5.0 -Lower bound for byte lane 1 on channel 1: 0.0 -Upper bound for byte lane 1 on channel 1: 11.2 -Final timings for byte lane 1 on channel 1: 5.5 -Lower bound for byte lane 2 on channel 1: 0.0 -Upper bound for byte lane 2 on channel 1: 10.3 -Final timings for byte lane 2 on channel 1: 5.1 -Lower bound for byte lane 3 on channel 1: 0.0 -Upper bound for byte lane 3 on channel 1: 9.6 -Final timings for byte lane 3 on channel 1: 4.7 -Lower bound for byte lane 4 on channel 1: 0.0 -Upper bound for byte lane 4 on channel 1: 11.3 -Final timings for byte lane 4 on channel 1: 5.5 -Lower bound for byte lane 5 on channel 1: 0.0 -Upper bound for byte lane 5 on channel 1: 8.4 -Final timings for byte lane 5 on channel 1: 4.2 -Lower bound for byte lane 6 on channel 1: 0.0 -Upper bound for byte lane 6 on channel 1: 11.2 -Final timings for byte lane 6 on channel 1: 5.5 -Lower bound for byte lane 7 on channel 1: 0.0 -Upper bound for byte lane 7 on channel 1: 9.4 -Final timings for byte lane 7 on channel 1: 4.6 -Lower bound for group 0 on channel 0: 1.6.3 -Upper bound for group 0 on channel 0: 2.2.7 -Final timings for group 0 on channel 0: 1.10.5 -Lower bound for group 1 on channel 0: 1.5.5 -Upper bound for group 1 on channel 0: 2.1.6 -Final timings for group 1 on channel 0: 1.9.5 -Lower bound for group 2 on channel 0: 2.0.0 -Upper bound for group 2 on channel 0: 2.8.7 -Final timings for group 2 on channel 0: 2.4.3 -Lower bound for group 3 on channel 0: 2.4.2 -Upper bound for group 3 on channel 0: 3.0.4 -Final timings for group 3 on channel 0: 2.8.3 -IGD decoded, subtracting 32M UMA and 4M GTT -Memory configured in dual-channel interleaved mode. -Memory map: -TOM = 8192MB -TOLUD = 3072MB -TOUUD = 9216MB -REMAP: base = 8192MB - limit = 9152MB -usedMEsize: 0MB -Enabling IGD. -Finally disabling PEG in favor of IGD. -PEG x1 disabled, SDVO disabled -ICH9 waits for VC1 negotiation... done. -ICH9 waits for port arbitration table update... done. -CBMEM: root @ bdbff000 254 entries. -exit main() -Trying CBFS ramstage loader. -CBFS: loading stage fallback/ramstage @ 0x100000 (290876 bytes), entry @ 0x100000 -EHCI debug port found in CBMEM. -coreboot-4.0-7551-ge420139-dirty Wed Dec 10 16:34:05 GMT 2014 booting... -BS: Entering BS_PRE_DEVICE state. -CBMEM: recovering 6/254 entries from root @ bdbff000 -Moving GDT to bdbda000...ok -BS: Exiting BS_PRE_DEVICE state. -BS: Entering BS_DEV_INIT_CHIPS state. -Initializing i82801ix southbridge... -BS: Exiting BS_DEV_INIT_CHIPS state. -BS: Entering BS_DEV_ENUMERATE state. -Enumerating buses... -Show all devs...Before device enumeration. -Root Device: enabled 1 -CPU_CLUSTER: 0: enabled 1 -APIC: 00: enabled 1 -APIC: acac: enabled 0 -DOMAIN: 0000: enabled 1 -PCI: 00:00.0: enabled 1 -PCI: 00:02.0: enabled 1 -PCI: 00:02.1: enabled 1 -PCI: 00:03.0: enabled 1 -PCI: 00:03.1: enabled 0 -PCI: 00:03.2: enabled 0 -PCI: 00:03.3: enabled 0 -IOAPIC: 02: enabled 1 -PCI: 00:19.0: enabled 1 -PCI: 00:1a.0: enabled 1 -PCI: 00:1a.1: enabled 1 -PCI: 00:1a.2: enabled 1 -PCI: 00:1a.7: enabled 1 -PCI: 00:1b.0: enabled 1 -PCI: 00:1c.0: enabled 1 -PCI: 00:1c.1: enabled 1 -PCI: 00:1c.2: enabled 1 -PCI: 00:1c.3: enabled 1 -PCI: 00:1c.4: enabled 0 -PCI: 00:1c.5: enabled 0 -PCI: 00:1d.0: enabled 1 -PCI: 00:1d.1: enabled 1 -PCI: 00:1d.2: enabled 1 -PCI: 00:1d.7: enabled 1 -PCI: 00:1e.0: enabled 1 -PCI: 00:1f.0: enabled 1 -PNP: 00ff.1: enabled 1 -PNP: 00ff.2: enabled 1 -PCI: 00:1f.2: enabled 1 -PCI: 00:1f.3: enabled 1 -I2C: 00:54: enabled 1 -I2C: 00:55: enabled 1 -I2C: 00:56: enabled 1 -I2C: 00:57: enabled 1 -I2C: 00:5c: enabled 1 -I2C: 00:5d: enabled 1 -I2C: 00:5e: enabled 1 -I2C: 00:5f: enabled 1 -PCI: 00:1f.5: enabled 0 -PCI: 00:1f.6: enabled 0 -Compare with tree... -Root Device: enabled 1 - CPU_CLUSTER: 0: enabled 1 - APIC: 00: enabled 1 - APIC: acac: enabled 0 - DOMAIN: 0000: enabled 1 - PCI: 00:00.0: enabled 1 - PCI: 00:02.0: enabled 1 - PCI: 00:02.1: enabled 1 - PCI: 00:03.0: enabled 1 - PCI: 00:03.1: enabled 0 - PCI: 00:03.2: enabled 0 - PCI: 00:03.3: enabled 0 - IOAPIC: 02: enabled 1 - PCI: 00:19.0: enabled 1 - PCI: 00:1a.0: enabled 1 - PCI: 00:1a.1: enabled 1 - PCI: 00:1a.2: enabled 1 - PCI: 00:1a.7: enabled 1 - PCI: 00:1b.0: enabled 1 - PCI: 00:1c.0: enabled 1 - PCI: 00:1c.1: enabled 1 - PCI: 00:1c.2: enabled 1 - PCI: 00:1c.3: enabled 1 - PCI: 00:1c.4: enabled 0 - PCI: 00:1c.5: enabled 0 - PCI: 00:1d.0: enabled 1 - PCI: 00:1d.1: enabled 1 - PCI: 00:1d.2: enabled 1 - PCI: 00:1d.7: enabled 1 - PCI: 00:1e.0: enabled 1 - PCI: 00:1f.0: enabled 1 - PNP: 00ff.1: enabled 1 - PNP: 00ff.2: enabled 1 - PCI: 00:1f.2: enabled 1 - PCI: 00:1f.3: enabled 1 - I2C: 00:54: enabled 1 - I2C: 00:55: enabled 1 - I2C: 00:56: enabled 1 - I2C: 00:57: enabled 1 - I2C: 00:5c: enabled 1 - I2C: 00:5d: enabled 1 - I2C: 00:5e: enabled 1 - I2C: 00:5f: enabled 1 - PCI: 00:1f.5: enabled 0 - PCI: 00:1f.6: enabled 0 -scan_static_bus for Root Device -CPU_CLUSTER: 0 enabled -Normal boot. -DOMAIN: 0000 enabled -DOMAIN: 0000 scanning... -PCI: pci_scan_bus for bus 00 -PCI: 00:00.0 [8086/2a40] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:02.0 [8086/0000] ops -PCI: 00:02.0 [8086/2a42] enabled -PCI: 00:02.1 [8086/2a43] enabled -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -PCI: Static device PCI: 00:03.0 not found, disabling it. -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -PCI: 00:19.0 [8086/10f5] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:1a.0 [8086/2937] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:1a.1 [8086/2938] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:1a.2 [8086/2939] enabled -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -PCI: 00:1a.7 [8086/0000] ops -PCI: 00:1a.7 [8086/293c] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:1b.0 [8086/293e] ops -PCI: 00:1b.0 [8086/293e] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:1c.0 [8086/0000] bus ops -PCI: 00:1c.0 [8086/2940] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:1c.1 [8086/0000] bus ops -PCI: 00:1c.1 [8086/2942] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:1c.2 [8086/0000] bus ops -PCI: 00:1c.2 [8086/2944] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:1c.3 [8086/0000] bus ops -PCI: 00:1c.3 [8086/2946] enabled -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -PCI: 00:1d.0 [8086/2934] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:1d.1 [8086/2935] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:1d.2 [8086/2936] enabled -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -PCI: 00:1d.7 [8086/0000] ops -PCI: 00:1d.7 [8086/293a] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:1e.0 [8086/0000] bus ops -PCI: 00:1e.0 [8086/2448] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:1f.0 [8086/0000] bus ops -PCI: 00:1f.0 [8086/2917] enabled -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -PCI: 00:1f.2 [8086/0000] ops -PCI: 00:1f.2 [8086/2928] enabled -child IOAPIC: 02 not a PCI device -PCI: 00:1f.3 [8086/0000] bus ops -PCI: 00:1f.3 [8086/2930] enabled -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -child IOAPIC: 02 not a PCI device -PCI: Left over static devices: -IOAPIC: 02 -PCI: Check your devicetree.cb. -do_pci_scan_bridge for PCI: 00:1c.0 -PCI: pci_scan_bus for bus 01 -PCI: pci_scan_bus returning with max=001 -do_pci_scan_bridge returns max 1 -do_pci_scan_bridge for PCI: 00:1c.1 -PCI: pci_scan_bus for bus 02 -PCI: pci_scan_bus returning with max=002 -do_pci_scan_bridge returns max 2 -do_pci_scan_bridge for PCI: 00:1c.2 -PCI: pci_scan_bus for bus 03 -PCI: pci_scan_bus returning with max=003 -do_pci_scan_bridge returns max 3 -do_pci_scan_bridge for PCI: 00:1c.3 -PCI: pci_scan_bus for bus 04 -PCI: pci_scan_bus returning with max=004 -do_pci_scan_bridge returns max 4 -do_pci_scan_bridge for PCI: 00:1e.0 -PCI: pci_scan_bus for bus 05 -PCI: pci_scan_bus returning with max=005 -do_pci_scan_bridge returns max 5 -scan_static_bus for PCI: 00:1f.0 -WARNING: No CMOS option 'touchpad'. -PNP: 00ff.1 enabled -recv_ec_data: 0x37 -recv_ec_data: 0x58 -recv_ec_data: 0x48 -recv_ec_data: 0x54 -recv_ec_data: 0x32 -recv_ec_data: 0x32 -recv_ec_data: 0x57 -recv_ec_data: 0x57 -recv_ec_data: 0x06 -recv_ec_data: 0x03 -recv_ec_data: 0x40 -recv_ec_data: 0x10 -EC Firmware ID 7XHT22WW-3.6, Version 4.01A -recv_ec_data: 0x00 -recv_ec_data: 0x10 -recv_ec_data: 0x20 -recv_ec_data: 0x30 -recv_ec_data: 0x00 -recv_ec_data: 0x00 -recv_ec_data: 0xa6 -recv_ec_data: 0x01 -recv_ec_data: 0x70 -dock is not connected -PNP: 00ff.2 enabled -scan_static_bus for PCI: 00:1f.0 done -scan_static_bus for PCI: 00:1f.3 -smbus: PCI: 00:1f.3[0]->I2C: 01:54 enabled -smbus: PCI: 00:1f.3[0]->I2C: 01:55 enabled -smbus: PCI: 00:1f.3[0]->I2C: 01:56 enabled -smbus: PCI: 00:1f.3[0]->I2C: 01:57 enabled -smbus: PCI: 00:1f.3[0]->I2C: 01:5c enabled -smbus: PCI: 00:1f.3[0]->I2C: 01:5d enabled -smbus: PCI: 00:1f.3[0]->I2C: 01:5e enabled -smbus: PCI: 00:1f.3[0]->I2C: 01:5f enabled -scan_static_bus for PCI: 00:1f.3 done -PCI: pci_scan_bus returning with max=005 -scan_static_bus for Root Device done -done -BS: Exiting BS_DEV_ENUMERATE state. -BS: Entering BS_DEV_RESOURCES state. -found VGA at PCI: 00:02.0 -Setting up VGA for PCI: 00:02.0 -Setting PCI_BRIDGE_CTL_VGA for bridge DOMAIN: 0000 -Setting PCI_BRIDGE_CTL_VGA for bridge Root Device -Allocating resources... -Reading resources... -Root Device read_resources bus 0 link: 0 -CPU_CLUSTER: 0 read_resources bus 0 link: 0 -APIC: 00 missing read_resources -CPU_CLUSTER: 0 read_resources bus 0 link: 0 done -TOUUD 0x240000000 TOLUD 0xc0000000 TOM 0x200000000 -IGD decoded, subtracting 32M UMA and 4M GTT -Available memory below 4GB: 3036M -Available memory above 4GB: 5120M -Adding UMA memory area base=0xbdc00000 size=0x2400000 -Adding PCIe config bar base=0xf0000000 size=0x4000000 -DOMAIN: 0000 read_resources bus 0 link: 0 -More than one caller of pci_ehci_read_resources from PCI: 00:1a.7 -PCI: 00:1c.0 read_resources bus 1 link: 0 -PCI: 00:1c.0 read_resources bus 1 link: 0 done -PCI: 00:1c.1 read_resources bus 2 link: 0 -PCI: 00:1c.1 read_resources bus 2 link: 0 done -PCI: 00:1c.2 read_resources bus 3 link: 0 -PCI: 00:1c.2 read_resources bus 3 link: 0 done -PCI: 00:1c.3 read_resources bus 4 link: 0 -PCI: 00:1c.3 read_resources bus 4 link: 0 done -PCI: 00:1d.7 EHCI BAR hook registered -PCI: 00:1e.0 read_resources bus 5 link: 0 -PCI: 00:1e.0 read_resources bus 5 link: 0 done -PCI: 00:1f.0 read_resources bus 0 link: 0 -PNP: 00ff.1 missing read_resources -PNP: 00ff.2 missing read_resources -PCI: 00:1f.0 read_resources bus 0 link: 0 done -PCI: 00:1f.3 read_resources bus 1 link: 0 -PCI: 00:1f.3 read_resources bus 1 link: 0 done -DOMAIN: 0000 read_resources bus 0 link: 0 done -Root Device read_resources bus 0 link: 0 done -Done reading resources. -Show resources in subtree (Root Device)...After reading. - Root Device child on link 0 CPU_CLUSTER: 0 - CPU_CLUSTER: 0 child on link 0 APIC: 00 - APIC: 00 - APIC: acac - DOMAIN: 0000 child on link 0 PCI: 00:00.0 - DOMAIN: 0000 resource base 0 size 0 align 0 gran 0 limit ffff flags 40040100 index 10000000 - DOMAIN: 0000 resource base 0 size 0 align 0 gran 0 limit ffffffff flags 40040200 index 10000100 - DOMAIN: 0000 resource base 0 size a0000 align 0 gran 0 limit 0 flags e0004200 index 3 - DOMAIN: 0000 resource base c0000 size bdb40000 align 0 gran 0 limit 0 flags e0004200 index 4 - DOMAIN: 0000 resource base 100000000 size 140000000 align 0 gran 0 limit 0 flags e0004200 index 5 - DOMAIN: 0000 resource base bdc00000 size 2400000 align 0 gran 0 limit 0 flags f0000200 index 6 - DOMAIN: 0000 resource base f0000000 size 4000000 align 0 gran 0 limit 0 flags f0000200 index 7 - PCI: 00:00.0 - PCI: 00:02.0 - PCI: 00:02.0 resource base 0 size 400000 align 22 gran 22 limit ffffffffffffffff flags 201 index 10 - PCI: 00:02.0 resource base 0 size 10000000 align 28 gran 28 limit ffffffffffffffff flags 1201 index 18 - PCI: 00:02.0 resource base 0 size 8 align 3 gran 3 limit ffff flags 100 index 20 - PCI: 00:02.1 - PCI: 00:02.1 resource base 0 size 100000 align 20 gran 20 limit ffffffffffffffff flags 201 index 10 - PCI: 00:03.0 - PCI: 00:03.1 - PCI: 00:03.2 - PCI: 00:03.3 - PCI: 00:19.0 - PCI: 00:19.0 resource base 0 size 20000 align 17 gran 17 limit ffffffff flags 200 index 10 - PCI: 00:19.0 resource base 0 size 1000 align 12 gran 12 limit ffffffff flags 200 index 14 - PCI: 00:19.0 resource base 0 size 20 align 5 gran 5 limit ffff flags 100 index 18 - PCI: 00:1a.0 - PCI: 00:1a.0 resource base 0 size 20 align 5 gran 5 limit ffff flags 100 index 20 - PCI: 00:1a.1 - PCI: 00:1a.1 resource base 0 size 20 align 5 gran 5 limit ffff flags 100 index 20 - PCI: 00:1a.2 - PCI: 00:1a.2 resource base 0 size 20 align 5 gran 5 limit ffff flags 100 index 20 - PCI: 00:1a.7 - PCI: 00:1a.7 resource base 0 size 400 align 10 gran 10 limit ffffffff flags 200 index 10 - PCI: 00:1b.0 - PCI: 00:1b.0 resource base 0 size 4000 align 14 gran 14 limit ffffffffffffffff flags 201 index 10 - PCI: 00:1c.0 - PCI: 00:1c.0 resource base 0 size 0 align 12 gran 12 limit ffff flags 80102 index 1c - PCI: 00:1c.0 resource base 0 size 0 align 20 gran 20 limit ffffffffffffffff flags 81202 index 24 - PCI: 00:1c.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 00:1c.1 - PCI: 00:1c.1 resource base 0 size 0 align 12 gran 12 limit ffff flags 80102 index 1c - PCI: 00:1c.1 resource base 0 size 0 align 20 gran 20 limit ffffffffffffffff flags 81202 index 24 - PCI: 00:1c.1 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 00:1c.2 - PCI: 00:1c.2 resource base 0 size 0 align 12 gran 12 limit ffff flags 80102 index 1c - PCI: 00:1c.2 resource base 0 size 0 align 20 gran 20 limit ffffffffffffffff flags 81202 index 24 - PCI: 00:1c.2 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 00:1c.3Unknown device path type: 0 - child on link 0 - PCI: 00:1c.3 resource base 0 size 0 align 12 gran 12 limit ffff flags 80102 index 1c - PCI: 00:1c.3 resource base 0 size 0 align 20 gran 20 limit ffffffffffffffff flags 81202 index 24 - PCI: 00:1c.3 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 -Unknown device path type: 0 - -Unknown device path type: 0 - resource base 0 size 800000 align 22 gran 22 limit ffffffff flags 200 index 10 -Unknown device path type: 0 - resource base 0 size 800000 align 22 gran 22 limit ffffffff flags 1200 index 14 -Unknown device path type: 0 - resource base 0 size 1000 align 12 gran 12 limit ffff flags 100 index 18 - PCI: 00:1c.4 - PCI: 00:1c.5 - PCI: 00:1d.0 - PCI: 00:1d.0 resource base 0 size 20 align 5 gran 5 limit ffff flags 100 index 20 - PCI: 00:1d.1 - PCI: 00:1d.1 resource base 0 size 20 align 5 gran 5 limit ffff flags 100 index 20 - PCI: 00:1d.2 - PCI: 00:1d.2 resource base 0 size 20 align 5 gran 5 limit ffff flags 100 index 20 - PCI: 00:1d.7 - PCI: 00:1d.7 resource base 0 size 400 align 10 gran 10 limit ffffffff flags 200 index 10 - PCI: 00:1e.0 - PCI: 00:1e.0 resource base 0 size 0 align 12 gran 12 limit ffff flags 80102 index 1c - PCI: 00:1e.0 resource base 0 size 0 align 20 gran 20 limit ffffffffffffffff flags 81202 index 24 - PCI: 00:1e.0 resource base 0 size 0 align 20 gran 20 limit ffffffff flags 80202 index 20 - PCI: 00:1f.0 child on link 0 PNP: 00ff.1 - PCI: 00:1f.0 resource base 0 size 1000 align 0 gran 0 limit 0 flags c0040100 index 10000000 - PCI: 00:1f.0 resource base ff800000 size 800000 align 0 gran 0 limit 0 flags c0040200 index 10000100 - PCI: 00:1f.0 resource base fec00000 size 1000 align 0 gran 0 limit 0 flags c0000200 index 3 - PNP: 00ff.1 - PNP: 00ff.1 resource base 15e0 size 10 align 5 gran 5 limit 0 flags 80000100 index 77 - PNP: 00ff.2 - PNP: 00ff.2 resource base 62 size 0 align 0 gran 0 limit 0 flags c0000100 index 60 - PNP: 00ff.2 resource base 66 size 0 align 0 gran 0 limit 0 flags c0000100 index 62 - PNP: 00ff.2 resource base 1600 size 0 align 0 gran 0 limit 0 flags c0000100 index 64 - PNP: 00ff.2 resource base 1604 size 0 align 0 gran 0 limit 0 flags c0000100 index 66 - PCI: 00:1f.2 - PCI: 00:1f.2 resource base 0 size 8 align 3 gran 3 limit ffff flags 100 index 10 - PCI: 00:1f.2 resource base 0 size 4 align 2 gran 2 limit ffff flags 100 index 14 - PCI: 00:1f.2 resource base 0 size 8 align 3 gran 3 limit ffff flags 100 index 18 - PCI: 00:1f.2 resource base 0 size 4 align 2 gran 2 limit ffff flags 100 index 1c - PCI: 00:1f.2 resource base 0 size 20 align 5 gran 5 limit ffff flags 100 index 20 - PCI: 00:1f.2 resource base 0 size 800 align 11 gran 11 limit ffffffff flags 200 index 24 - PCI: 00:1f.3 child on link 0 I2C: 01:54 - PCI: 00:1f.3 resource base 400 size 20 align 0 gran 0 limit 41f flags f0000100 index 20 - PCI: 00:1f.3 resource base 0 size 100 align 8 gran 8 limit ffffffffffffffff flags 201 index 10 - I2C: 01:54 - I2C: 01:55 - I2C: 01:56 - I2C: 01:57 - I2C: 01:5c - I2C: 01:5d - I2C: 01:5e - I2C: 01:5f - PCI: 00:1f.5 - PCI: 00:1f.6 -DOMAIN: 0000 compute_resources_io: base: 0 size: 0 align: 0 gran: 0 limit: ffff -PCI: 00:1c.0 compute_resources_io: base: 0 size: 0 align: 12 gran: 12 limit: ffff -PCI: 00:1c.0 compute_resources_io: base: 0 size: 0 align: 12 gran: 12 limit: ffff done -PCI: 00:1c.1 compute_resources_io: base: 0 size: 0 align: 12 gran: 12 limit: ffff -PCI: 00:1c.1 compute_resources_io: base: 0 size: 0 align: 12 gran: 12 limit: ffff done -PCI: 00:1c.2 compute_resources_io: base: 0 size: 0 align: 12 gran: 12 limit: ffff -PCI: 00:1c.2 compute_resources_io: base: 0 size: 0 align: 12 gran: 12 limit: ffff done -PCI: 00:1c.3 compute_resources_io: base: 0 size: 0 align: 12 gran: 12 limit: ffff -Unknown device path type: 0 - 18 * [0x0 - 0xfff] io -PCI: 00:1c.3 compute_resources_io: base: 1000 size: 1000 align: 12 gran: 12 limit: ffff done -PCI: 00:1e.0 compute_resources_io: base: 0 size: 0 align: 12 gran: 12 limit: ffff -PCI: 00:1e.0 compute_resources_io: base: 0 size: 0 align: 12 gran: 12 limit: ffff done -PCI: 00:1c.3 1c * [0x0 - 0xfff] io -PCI: 00:19.0 18 * [0x1000 - 0x101f] io -PCI: 00:1a.0 20 * [0x1020 - 0x103f] io -PCI: 00:1a.1 20 * [0x1040 - 0x105f] io -PCI: 00:1a.2 20 * [0x1060 - 0x107f] io -PCI: 00:1d.0 20 * [0x1080 - 0x109f] io -PCI: 00:1d.1 20 * [0x10a0 - 0x10bf] io -PCI: 00:1d.2 20 * [0x10c0 - 0x10df] io -PCI: 00:1f.2 20 * [0x10e0 - 0x10ff] io -PCI: 00:02.0 20 * [0x1400 - 0x1407] io -PCI: 00:1f.2 10 * [0x1408 - 0x140f] io -PCI: 00:1f.2 18 * [0x1410 - 0x1417] io -PCI: 00:1f.2 14 * [0x1418 - 0x141b] io -PCI: 00:1f.2 1c * [0x141c - 0x141f] io -DOMAIN: 0000 compute_resources_io: base: 1420 size: 1420 align: 12 gran: 0 limit: ffff done -DOMAIN: 0000 compute_resources_mem: base: 0 size: 0 align: 0 gran: 0 limit: ffffffff -PCI: 00:1c.0 compute_resources_prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff -PCI: 00:1c.0 compute_resources_prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff done -PCI: 00:1c.0 compute_resources_mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 00:1c.0 compute_resources_mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff done -PCI: 00:1c.1 compute_resources_prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff -PCI: 00:1c.1 compute_resources_prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff done -PCI: 00:1c.1 compute_resources_mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 00:1c.1 compute_resources_mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff done -PCI: 00:1c.2 compute_resources_prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff -PCI: 00:1c.2 compute_resources_prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff done -PCI: 00:1c.2 compute_resources_mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 00:1c.2 compute_resources_mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff done -PCI: 00:1c.3 compute_resources_prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff -Unknown device path type: 0 - 14 * [0x0 - 0x7fffff] prefmem -PCI: 00:1c.3 compute_resources_prefmem: base: 800000 size: 800000 align: 22 gran: 20 limit: ffffffff done -PCI: 00:1c.3 compute_resources_mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -Unknown device path type: 0 - 10 * [0x0 - 0x7fffff] mem -PCI: 00:1c.3 compute_resources_mem: base: 800000 size: 800000 align: 22 gran: 20 limit: ffffffff done -PCI: 00:1e.0 compute_resources_prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff -PCI: 00:1e.0 compute_resources_prefmem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffffffffffff done -PCI: 00:1e.0 compute_resources_mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff -PCI: 00:1e.0 compute_resources_mem: base: 0 size: 0 align: 20 gran: 20 limit: ffffffff done -PCI: 00:02.0 18 * [0x0 - 0xfffffff] prefmem -PCI: 00:1c.3 24 * [0x10000000 - 0x107fffff] prefmem -PCI: 00:1c.3 20 * [0x10800000 - 0x10ffffff] mem -PCI: 00:02.0 10 * [0x11000000 - 0x113fffff] mem -PCI: 00:02.1 10 * [0x11400000 - 0x114fffff] mem -PCI: 00:19.0 10 * [0x11500000 - 0x1151ffff] mem -PCI: 00:1b.0 10 * [0x11520000 - 0x11523fff] mem -PCI: 00:19.0 14 * [0x11524000 - 0x11524fff] mem -PCI: 00:1f.2 24 * [0x11525000 - 0x115257ff] mem -PCI: 00:1a.7 10 * [0x11525800 - 0x11525bff] mem -PCI: 00:1d.7 10 * [0x11525c00 - 0x11525fff] mem -PCI: 00:1f.3 10 * [0x11526000 - 0x115260ff] mem -DOMAIN: 0000 compute_resources_mem: base: 11526100 size: 11526100 align: 28 gran: 0 limit: ffffffff done -avoid_fixed_resources: DOMAIN: 0000 -avoid_fixed_resources:@DOMAIN: 0000 10000000 limit 0000ffff -avoid_fixed_resources:@DOMAIN: 0000 10000100 limit ffffffff -constrain_resources: DOMAIN: 0000 -constrain_resources: PCI: 00:00.0 -constrain_resources: PCI: 00:02.0 -constrain_resources: PCI: 00:02.1 -constrain_resources: PCI: 00:19.0 -constrain_resources: PCI: 00:1a.0 -constrain_resources: PCI: 00:1a.1 -constrain_resources: PCI: 00:1a.2 -constrain_resources: PCI: 00:1a.7 -constrain_resources: PCI: 00:1b.0 -constrain_resources: PCI: 00:1c.0 -constrain_resources: PCI: 00:1c.1 -constrain_resources: PCI: 00:1c.2 -constrain_resources: PCI: 00:1c.3 -Unknown device path type: 0 -constrain_resources: -constrain_resources: PCI: 00:1d.0 -constrain_resources: PCI: 00:1d.1 -constrain_resources: PCI: 00:1d.2 -constrain_resources: PCI: 00:1d.7 -constrain_resources: PCI: 00:1e.0 -constrain_resources: PCI: 00:1f.0 -constrain_resources: PNP: 00ff.1 -constrain_resources: PNP: 00ff.2 -skipping PNP: 00ff.2@60 fixed resource, size=0! -skipping PNP: 00ff.2@62 fixed resource, size=0! -skipping PNP: 00ff.2@64 fixed resource, size=0! -skipping PNP: 00ff.2@66 fixed resource, size=0! -constrain_resources: PCI: 00:1f.2 -constrain_resources: PCI: 00:1f.3 -constrain_resources: I2C: 01:54 -constrain_resources: I2C: 01:55 -constrain_resources: I2C: 01:56 -constrain_resources: I2C: 01:57 -constrain_resources: I2C: 01:5c -constrain_resources: I2C: 01:5d -constrain_resources: I2C: 01:5e -constrain_resources: I2C: 01:5f -avoid_fixed_resources2: DOMAIN: 0000@10000000 limit 0000ffff - lim->base 000015f0 lim->limit 0000ffff -avoid_fixed_resources2: DOMAIN: 0000@10000100 limit ffffffff - lim->base c0000000 lim->limit efffffff -Setting resources... -DOMAIN: 0000 allocate_resources_io: base:15f0 size:1420 align:12 gran:0 limit:ffff -Assigned: PCI: 00:1c.3 1c * [0x2000 - 0x2fff] io -Assigned: PCI: 00:19.0 18 * [0x3000 - 0x301f] io -Assigned: PCI: 00:1a.0 20 * [0x3020 - 0x303f] io -Assigned: PCI: 00:1a.1 20 * [0x3040 - 0x305f] io -Assigned: PCI: 00:1a.2 20 * [0x3060 - 0x307f] io -Assigned: PCI: 00:1d.0 20 * [0x3080 - 0x309f] io -Assigned: PCI: 00:1d.1 20 * [0x30a0 - 0x30bf] io -Assigned: PCI: 00:1d.2 20 * [0x30c0 - 0x30df] io -Assigned: PCI: 00:1f.2 20 * [0x30e0 - 0x30ff] io -Assigned: PCI: 00:02.0 20 * [0x3400 - 0x3407] io -Assigned: PCI: 00:1f.2 10 * [0x3408 - 0x340f] io -Assigned: PCI: 00:1f.2 18 * [0x3410 - 0x3417] io -Assigned: PCI: 00:1f.2 14 * [0x3418 - 0x341b] io -Assigned: PCI: 00:1f.2 1c * [0x341c - 0x341f] io -DOMAIN: 0000 allocate_resources_io: next_base: 3420 size: 1420 align: 12 gran: 0 done -PCI: 00:1c.0 allocate_resources_io: base:ffff size:0 align:12 gran:12 limit:ffff -PCI: 00:1c.0 allocate_resources_io: next_base: ffff size: 0 align: 12 gran: 12 done -PCI: 00:1c.1 allocate_resources_io: base:ffff size:0 align:12 gran:12 limit:ffff -PCI: 00:1c.1 allocate_resources_io: next_base: ffff size: 0 align: 12 gran: 12 done -PCI: 00:1c.2 allocate_resources_io: base:ffff size:0 align:12 gran:12 limit:ffff -PCI: 00:1c.2 allocate_resources_io: next_base: ffff size: 0 align: 12 gran: 12 done -PCI: 00:1c.3 allocate_resources_io: base:2000 size:1000 align:12 gran:12 limit:ffff -Unknown device path type: 0 -Assigned: 18 * [0x2000 - 0x2fff] io -PCI: 00:1c.3 allocate_resources_io: next_base: 3000 size: 1000 align: 12 gran: 12 done -PCI: 00:1e.0 allocate_resources_io: base:ffff size:0 align:12 gran:12 limit:ffff -PCI: 00:1e.0 allocate_resources_io: next_base: ffff size: 0 align: 12 gran: 12 done -DOMAIN: 0000 allocate_resources_mem: base:d0000000 size:11526100 align:28 gran:0 limit:efffffff -Assigned: PCI: 00:02.0 18 * [0xd0000000 - 0xdfffffff] prefmem -Assigned: PCI: 00:1c.3 24 * [0xe0000000 - 0xe07fffff] prefmem -Assigned: PCI: 00:1c.3 20 * [0xe0800000 - 0xe0ffffff] mem -Assigned: PCI: 00:02.0 10 * [0xe1000000 - 0xe13fffff] mem -Assigned: PCI: 00:02.1 10 * [0xe1400000 - 0xe14fffff] mem -Assigned: PCI: 00:19.0 10 * [0xe1500000 - 0xe151ffff] mem -Assigned: PCI: 00:1b.0 10 * [0xe1520000 - 0xe1523fff] mem -Assigned: PCI: 00:19.0 14 * [0xe1524000 - 0xe1524fff] mem -Assigned: PCI: 00:1f.2 24 * [0xe1525000 - 0xe15257ff] mem -Assigned: PCI: 00:1a.7 10 * [0xe1525800 - 0xe1525bff] mem -Assigned: PCI: 00:1d.7 10 * [0xe1525c00 - 0xe1525fff] mem -Assigned: PCI: 00:1f.3 10 * [0xe1526000 - 0xe15260ff] mem -DOMAIN: 0000 allocate_resources_mem: next_base: e1526100 size: 11526100 align: 28 gran: 0 done -PCI: 00:1c.0 allocate_resources_prefmem: base:efffffff size:0 align:20 gran:20 limit:efffffff -PCI: 00:1c.0 allocate_resources_prefmem: next_base: efffffff size: 0 align: 20 gran: 20 done -PCI: 00:1c.0 allocate_resources_mem: base:efffffff size:0 align:20 gran:20 limit:efffffff -PCI: 00:1c.0 allocate_resources_mem: next_base: efffffff size: 0 align: 20 gran: 20 done -PCI: 00:1c.1 allocate_resources_prefmem: base:efffffff size:0 align:20 gran:20 limit:efffffff -PCI: 00:1c.1 allocate_resources_prefmem: next_base: efffffff size: 0 align: 20 gran: 20 done -PCI: 00:1c.1 allocate_resources_mem: base:efffffff size:0 align:20 gran:20 limit:efffffff -PCI: 00:1c.1 allocate_resources_mem: next_base: efffffff size: 0 align: 20 gran: 20 done -PCI: 00:1c.2 allocate_resources_prefmem: base:efffffff size:0 align:20 gran:20 limit:efffffff -PCI: 00:1c.2 allocate_resources_prefmem: next_base: efffffff size: 0 align: 20 gran: 20 done -PCI: 00:1c.2 allocate_resources_mem: base:efffffff size:0 align:20 gran:20 limit:efffffff -PCI: 00:1c.2 allocate_resources_mem: next_base: efffffff size: 0 align: 20 gran: 20 done -PCI: 00:1c.3 allocate_resources_prefmem: base:e0000000 size:800000 align:22 gran:20 limit:efffffff -Unknown device path type: 0 -Assigned: 14 * [0xe0000000 - 0xe07fffff] prefmem -PCI: 00:1c.3 allocate_resources_prefmem: next_base: e0800000 size: 800000 align: 22 gran: 20 done -PCI: 00:1c.3 allocate_resources_mem: base:e0800000 size:800000 align:22 gran:20 limit:efffffff -Unknown device path type: 0 -Assigned: 10 * [0xe0800000 - 0xe0ffffff] mem -PCI: 00:1c.3 allocate_resources_mem: next_base: e1000000 size: 800000 align: 22 gran: 20 done -PCI: 00:1e.0 allocate_resources_prefmem: base:efffffff size:0 align:20 gran:20 limit:efffffff -PCI: 00:1e.0 allocate_resources_prefmem: next_base: efffffff size: 0 align: 20 gran: 20 done -PCI: 00:1e.0 allocate_resources_mem: base:efffffff size:0 align:20 gran:20 limit:efffffff -PCI: 00:1e.0 allocate_resources_mem: next_base: efffffff size: 0 align: 20 gran: 20 done -Root Device assign_resources, bus 0 link: 0 -DOMAIN: 0000 03 <- [0x0000000000 - 0x000009ffff] size 0x000a0000 gran 0x00 mem -DOMAIN: 0000 04 <- [0x00000c0000 - 0x00bdbfffff] size 0xbdb40000 gran 0x00 mem -DOMAIN: 0000 05 <- [0x0100000000 - 0x023fffffff] size 0x140000000 gran 0x00 mem -DOMAIN: 0000 06 <- [0x00bdc00000 - 0x00bfffffff] size 0x02400000 gran 0x00 mem -DOMAIN: 0000 07 <- [0x00f0000000 - 0x00f3ffffff] size 0x04000000 gran 0x00 mem -DOMAIN: 0000 assign_resources, bus 0 link: 0 -PCI: 00:02.0 10 <- [0x00e1000000 - 0x00e13fffff] size 0x00400000 gran 0x16 mem64 -PCI: 00:02.0 18 <- [0x00d0000000 - 0x00dfffffff] size 0x10000000 gran 0x1c prefmem64 -PCI: 00:02.0 20 <- [0x0000003400 - 0x0000003407] size 0x00000008 gran 0x03 io -PCI: 00:02.1 10 <- [0x00e1400000 - 0x00e14fffff] size 0x00100000 gran 0x14 mem64 -PCI: 00:19.0 10 <- [0x00e1500000 - 0x00e151ffff] size 0x00020000 gran 0x11 mem -PCI: 00:19.0 14 <- [0x00e1524000 - 0x00e1524fff] size 0x00001000 gran 0x0c mem -PCI: 00:19.0 18 <- [0x0000003000 - 0x000000301f] size 0x00000020 gran 0x05 io -PCI: 00:1a.0 20 <- [0x0000003020 - 0x000000303f] size 0x00000020 gran 0x05 io -PCI: 00:1a.1 20 <- [0x0000003040 - 0x000000305f] size 0x00000020 gran 0x05 io -PCI: 00:1a.2 20 <- [0x0000003060 - 0x000000307f] size 0x00000020 gran 0x05 io -PCI: 00:1a.7 10 <- [0x00e1525800 - 0x00e1525bff] size 0x00000400 gran 0x0a mem -PCI: 00:1b.0 10 <- [0x00e1520000 - 0x00e1523fff] size 0x00004000 gran 0x0e mem64 -PCI: 00:1c.0 1c <- [0x000000ffff - 0x000000fffe] size 0x00000000 gran 0x0c bus 01 io -PCI: 00:1c.0 24 <- [0x00efffffff - 0x00effffffe] size 0x00000000 gran 0x14 bus 01 prefmem -PCI: 00:1c.0 20 <- [0x00efffffff - 0x00effffffe] size 0x00000000 gran 0x14 bus 01 mem -PCI: 00:1c.1 1c <- [0x000000ffff - 0x000000fffe] size 0x00000000 gran 0x0c bus 02 io -PCI: 00:1c.1 24 <- [0x00efffffff - 0x00effffffe] size 0x00000000 gran 0x14 bus 02 prefmem -PCI: 00:1c.1 20 <- [0x00efffffff - 0x00effffffe] size 0x00000000 gran 0x14 bus 02 mem -PCI: 00:1c.2 1c <- [0x000000ffff - 0x000000fffe] size 0x00000000 gran 0x0c bus 03 io -PCI: 00:1c.2 24 <- [0x00efffffff - 0x00effffffe] size 0x00000000 gran 0x14 bus 03 prefmem -PCI: 00:1c.2 20 <- [0x00efffffff - 0x00effffffe] size 0x00000000 gran 0x14 bus 03 mem -PCI: 00:1c.3 1c <- [0x0000002000 - 0x0000002fff] size 0x00001000 gran 0x0c bus 04 io -PCI: 00:1c.3 24 <- [0x00e0000000 - 0x00e07fffff] size 0x00800000 gran 0x14 bus 04 prefmem -PCI: 00:1c.3 20 <- [0x00e0800000 - 0x00e0ffffff] size 0x00800000 gran 0x14 bus 04 mem -PCI: 00:1c.3 assign_resources, bus 4 link: 0 -Unknown device path type: 0 - missing set_resources -PCI: 00:1c.3 assign_resources, bus 4 link: 0 -PCI: 00:1d.0 20 <- [0x0000003080 - 0x000000309f] size 0x00000020 gran 0x05 io -PCI: 00:1d.1 20 <- [0x00000030a0 - 0x00000030bf] size 0x00000020 gran 0x05 io -PCI: 00:1d.2 20 <- [0x00000030c0 - 0x00000030df] size 0x00000020 gran 0x05 io -PCI: 00:1d.7 EHCI Debug Port hook triggered -PCI: 00:1d.7 10 <- [0x00e1525c00 - 0x00e1525fff] size 0x00000400 gran 0x0a mem -PCI: 00:1d.7 EHCI Debug Port relocated -PCI: 00:1e.0 1c <- [0x000000ffff - 0x000000fffe] size 0x00000000 gran 0x0c bus 05 io -PCI: 00:1e.0 24 <- [0x00efffffff - 0x00effffffe] size 0x00000000 gran 0x14 bus 05 prefmem -PCI: 00:1e.0 20 <- [0x00efffffff - 0x00effffffe] size 0x00000000 gran 0x14 bus 05 mem -PCI: 00:1f.0 assign_resources, bus 0 link: 0 -PNP: 00ff.1 missing set_resources -PNP: 00ff.2 missing set_resources -PCI: 00:1f.0 assign_resources, bus 0 link: 0 -PCI: 00:1f.2 10 <- [0x0000003408 - 0x000000340f] size 0x00000008 gran 0x03 io -PCI: 00:1f.2 14 <- [0x0000003418 - 0x000000341b] size 0x00000004 gran 0x02 io -PCI: 00:1f.2 18 <- [0x0000003410 - 0x0000003417] size 0x00000008 gran 0x03 io -PCI: 00:1f.2 1c <- [0x000000341c - 0x000000341f] size 0x00000004 gran 0x02 io -PCI: 00:1f.2 20 <- [0x00000030e0 - 0x00000030ff] size 0x00000020 gran 0x05 io -PCI: 00:1f.2 24 <- [0x00e1525000 - 0x00e15257ff] size 0x00000800 gran 0x0b mem -PCI: 00:1f.3 10 <- [0x00e1526000 - 0x00e15260ff] size 0x00000100 gran 0x08 mem64 -PCI: 00:1f.3 assign_resources, bus 1 link: 0 -PCI: 00:1f.3 assign_resources, bus 1 link: 0 -DOMAIN: 0000 assign_resources, bus 0 link: 0 -Root Device assign_resources, bus 0 link: 0 -Done setting resources. -Show resources in subtree (Root Device)...After assigning values. - Root Device child on link 0 CPU_CLUSTER: 0 - CPU_CLUSTER: 0 child on link 0 APIC: 00 - APIC: 00 - APIC: acac - DOMAIN: 0000 child on link 0 PCI: 00:00.0 - DOMAIN: 0000 resource base 15f0 size 1420 align 12 gran 0 limit ffff flags 40040100 index 10000000 - DOMAIN: 0000 resource base d0000000 size 11526100 align 28 gran 0 limit efffffff flags 40040200 index 10000100 - DOMAIN: 0000 resource base 0 size a0000 align 0 gran 0 limit 0 flags e0004200 index 3 - DOMAIN: 0000 resource base c0000 size bdb40000 align 0 gran 0 limit 0 flags e0004200 index 4 - DOMAIN: 0000 resource base 100000000 size 140000000 align 0 gran 0 limit 0 flags e0004200 index 5 - DOMAIN: 0000 resource base bdc00000 size 2400000 align 0 gran 0 limit 0 flags f0000200 index 6 - DOMAIN: 0000 resource base f0000000 size 4000000 align 0 gran 0 limit 0 flags f0000200 index 7 - PCI: 00:00.0 - PCI: 00:02.0 - PCI: 00:02.0 resource base e1000000 size 400000 align 22 gran 22 limit efffffff flags 60000201 index 10 - PCI: 00:02.0 resource base d0000000 size 10000000 align 28 gran 28 limit efffffff flags 60001201 index 18 - PCI: 00:02.0 resource base 3400 size 8 align 3 gran 3 limit ffff flags 60000100 index 20 - PCI: 00:02.1 - PCI: 00:02.1 resource base e1400000 size 100000 align 20 gran 20 limit efffffff flags 60000201 index 10 - PCI: 00:03.0 - PCI: 00:03.1 - PCI: 00:03.2 - PCI: 00:03.3 - PCI: 00:19.0 - PCI: 00:19.0 resource base e1500000 size 20000 align 17 gran 17 limit efffffff flags 60000200 index 10 - PCI: 00:19.0 resource base e1524000 size 1000 align 12 gran 12 limit efffffff flags 60000200 index 14 - PCI: 00:19.0 resource base 3000 size 20 align 5 gran 5 limit ffff flags 60000100 index 18 - PCI: 00:1a.0 - PCI: 00:1a.0 resource base 3020 size 20 align 5 gran 5 limit ffff flags 60000100 index 20 - PCI: 00:1a.1 - PCI: 00:1a.1 resource base 3040 size 20 align 5 gran 5 limit ffff flags 60000100 index 20 - PCI: 00:1a.2 - PCI: 00:1a.2 resource base 3060 size 20 align 5 gran 5 limit ffff flags 60000100 index 20 - PCI: 00:1a.7 - PCI: 00:1a.7 resource base e1525800 size 400 align 10 gran 10 limit efffffff flags 60000200 index 10 - PCI: 00:1b.0 - PCI: 00:1b.0 resource base e1520000 size 4000 align 14 gran 14 limit efffffff flags 60000201 index 10 - PCI: 00:1c.0 - PCI: 00:1c.0 resource base ffff size 0 align 12 gran 12 limit ffff flags 60080102 index 1c - PCI: 00:1c.0 resource base efffffff size 0 align 20 gran 20 limit efffffff flags 60081202 index 24 - PCI: 00:1c.0 resource base efffffff size 0 align 20 gran 20 limit efffffff flags 60080202 index 20 - PCI: 00:1c.1 - PCI: 00:1c.1 resource base ffff size 0 align 12 gran 12 limit ffff flags 60080102 index 1c - PCI: 00:1c.1 resource base efffffff size 0 align 20 gran 20 limit efffffff flags 60081202 index 24 - PCI: 00:1c.1 resource base efffffff size 0 align 20 gran 20 limit efffffff flags 60080202 index 20 - PCI: 00:1c.2 - PCI: 00:1c.2 resource base ffff size 0 align 12 gran 12 limit ffff flags 60080102 index 1c - PCI: 00:1c.2 resource base efffffff size 0 align 20 gran 20 limit efffffff flags 60081202 index 24 - PCI: 00:1c.2 resource base efffffff size 0 align 20 gran 20 limit efffffff flags 60080202 index 20 - PCI: 00:1c.3Unknown device path type: 0 - child on link 0 - PCI: 00:1c.3 resource base 2000 size 1000 align 12 gran 12 limit ffff flags 60080102 index 1c - PCI: 00:1c.3 resource base e0000000 size 800000 align 22 gran 20 limit efffffff flags 60081202 index 24 - PCI: 00:1c.3 resource base e0800000 size 800000 align 22 gran 20 limit efffffff flags 60080202 index 20 -Unknown device path type: 0 - -Unknown device path type: 0 - resource base e0800000 size 800000 align 22 gran 22 limit efffffff flags 40000200 index 10 -Unknown device path type: 0 - resource base e0000000 size 800000 align 22 gran 22 limit efffffff flags 40001200 index 14 -Unknown device path type: 0 - resource base 2000 size 1000 align 12 gran 12 limit ffff flags 40000100 index 18 - PCI: 00:1c.4 - PCI: 00:1c.5 - PCI: 00:1d.0 - PCI: 00:1d.0 resource base 3080 size 20 align 5 gran 5 limit ffff flags 60000100 index 20 - PCI: 00:1d.1 - PCI: 00:1d.1 resource base 30a0 size 20 align 5 gran 5 limit ffff flags 60000100 index 20 - PCI: 00:1d.2 - PCI: 00:1d.2 resource base 30c0 size 20 align 5 gran 5 limit ffff flags 60000100 index 20 - PCI: 00:1d.7 - PCI: 00:1d.7 resource base e1525c00 size 400 align 10 gran 10 limit efffffff flags 60000200 index 10 - PCI: 00:1e.0 - PCI: 00:1e.0 resource base ffff size 0 align 12 gran 12 limit ffff flags 60080102 index 1c - PCI: 00:1e.0 resource base efffffff size 0 align 20 gran 20 limit efffffff flags 60081202 index 24 - PCI: 00:1e.0 resource base efffffff size 0 align 20 gran 20 limit efffffff flags 60080202 index 20 - PCI: 00:1f.0 child on link 0 PNP: 00ff.1 - PCI: 00:1f.0 resource base 0 size 1000 align 0 gran 0 limit 0 flags c0040100 index 10000000 - PCI: 00:1f.0 resource base ff800000 size 800000 align 0 gran 0 limit 0 flags c0040200 index 10000100 - PCI: 00:1f.0 resource base fec00000 size 1000 align 0 gran 0 limit 0 flags c0000200 index 3 - PNP: 00ff.1 - PNP: 00ff.1 resource base 15e0 size 10 align 5 gran 5 limit 0 flags 80000100 index 77 - PNP: 00ff.2 - PNP: 00ff.2 resource base 62 size 0 align 0 gran 0 limit 0 flags c0000100 index 60 - PNP: 00ff.2 resource base 66 size 0 align 0 gran 0 limit 0 flags c0000100 index 62 - PNP: 00ff.2 resource base 1600 size 0 align 0 gran 0 limit 0 flags c0000100 index 64 - PNP: 00ff.2 resource base 1604 size 0 align 0 gran 0 limit 0 flags c0000100 index 66 - PCI: 00:1f.2 - PCI: 00:1f.2 resource base 3408 size 8 align 3 gran 3 limit ffff flags 60000100 index 10 - PCI: 00:1f.2 resource base 3418 size 4 align 2 gran 2 limit ffff flags 60000100 index 14 - PCI: 00:1f.2 resource base 3410 size 8 align 3 gran 3 limit ffff flags 60000100 index 18 - PCI: 00:1f.2 resource base 341c size 4 align 2 gran 2 limit ffff flags 60000100 index 1c - PCI: 00:1f.2 resource base 30e0 size 20 align 5 gran 5 limit ffff flags 60000100 index 20 - PCI: 00:1f.2 resource base e1525000 size 800 align 11 gran 11 limit efffffff flags 60000200 index 24 - PCI: 00:1f.3 child on link 0 I2C: 01:54 - PCI: 00:1f.3 resource base 400 size 20 align 0 gran 0 limit 41f flags f0000100 index 20 - PCI: 00:1f.3 resource base e1526000 size 100 align 8 gran 8 limit efffffff flags 60000201 index 10 - I2C: 01:54 - I2C: 01:55 - I2C: 01:56 - I2C: 01:57 - I2C: 01:5c - I2C: 01:5d - I2C: 01:5e - I2C: 01:5f - PCI: 00:1f.5 - PCI: 00:1f.6 -Done allocating resources. -BS: Exiting BS_DEV_RESOURCES state. -BS: Entering BS_DEV_ENABLE state. -Enabling resources... -PCI: 00:00.0 subsystem <- 17aa/20e0 -PCI: 00:00.0 cmd <- 06 -PCI: 00:02.0 subsystem <- 17aa/20e4 -PCI: 00:02.0 cmd <- 03 -PCI: 00:02.1 subsystem <- 17aa/20e4 -PCI: 00:02.1 cmd <- 02 -PCI: 00:19.0 subsystem <- 0000/0000 -PCI: 00:19.0 cmd <- 103 -PCI: 00:1a.0 subsystem <- 17aa/20f0 -PCI: 00:1a.0 cmd <- 01 -PCI: 00:1a.1 subsystem <- 17aa/20f0 -PCI: 00:1a.1 cmd <- 01 -PCI: 00:1a.2 subsystem <- 17aa/20f0 -PCI: 00:1a.2 cmd <- 01 -PCI: 00:1a.7 subsystem <- 17aa/20f1 -PCI: 00:1a.7 cmd <- 102 -PCI: 00:1b.0 subsystem <- 17aa/20f2 -PCI: 00:1b.0 cmd <- 102 -PCI: 00:1c.0 bridge ctrl <- 0003 -PCI: 00:1c.0 subsystem <- 17aa/20f3 -PCI: 00:1c.0 cmd <- 100 -PCI: 00:1c.1 bridge ctrl <- 0003 -PCI: 00:1c.1 subsystem <- 17aa/20f3 -PCI: 00:1c.1 cmd <- 100 -PCI: 00:1c.2 bridge ctrl <- 0003 -PCI: 00:1c.2 subsystem <- 17aa/20f3 -PCI: 00:1c.2 cmd <- 100 -PCI: 00:1c.3 bridge ctrl <- 0003 -PCI: 00:1c.3 subsystem <- 17aa/20f3 -PCI: 00:1c.3 cmd <- 107 -PCI: 00:1d.0 subsystem <- 17aa/20f0 -PCI: 00:1d.0 cmd <- 01 -PCI: 00:1d.1 subsystem <- 17aa/20f0 -PCI: 00:1d.1 cmd <- 01 -PCI: 00:1d.2 subsystem <- 17aa/20f0 -PCI: 00:1d.2 cmd <- 01 -PCI: 00:1d.7 subsystem <- 17aa/20f1 -PCI: 00:1d.7 cmd <- 102 -PCI: 00:1e.0 bridge ctrl <- 0003 -PCI: 00:1e.0 subsystem <- 17aa/20f4 -PCI: 00:1e.0 cmd <- 100 -PCI: 00:1f.0 subsystem <- 17aa/20f5 -PCI: 00:1f.0 cmd <- 107 -PCI: 00:1f.2 subsystem <- 17aa/20f8 -PCI: 00:1f.2 cmd <- 03 -PCI: 00:1f.3 subsystem <- 17aa/20f9 -PCI: 00:1f.3 cmd <- 103 -done. -BS: Exiting BS_DEV_ENABLE state. -BS: Entering BS_DEV_INIT state. -Initializing devices... -Root Device init -Keyboard init... -No PS/2 keyboard detected. -CPU_CLUSTER: 0 init -start_eip=0x00001000, code_size=0x00000031 -Initializing SMM handler... ... pmbase = 0x0600 - -SMI_STS: MCSMI -PM1_STS: -GPE0_STS: GPIO14 GPIO13 GPIO11 GPIO10 GPIO9 GPIO8 GPIO7 GPIO6 GPIO5 GPIO4 GPIO3 GPIO2 GPIO1 GPIO0 -ALT_GP_SMI_STS: GPI14 GPI13 GPI11 GPI10 GPI9 GPI8 GPI7 GPI6 GPI5 GPI4 GPI3 GPI2 GPI1 GPI0 -TCO_STS: - ... raise SMI# -Initializing CPU #0 -CPU: vendor Intel device 1067a -CPU: family 06, model 17, stepping 0a -Enabling cache -microcode: sig=0x1067a pf=0x80 revision=0x0 -microcode: updated to revision 0xa0b date=2010-09-28 -CPU: Intel(R) Core(TM)2 Duo CPU L9400 @ 1.86GHz. -MTRR: Physical address space: -0x0000000000000000 - 0x00000000000a0000 size 0x000a0000 type 6 -0x00000000000a0000 - 0x00000000000c0000 size 0x00020000 type 0 -0x00000000000c0000 - 0x00000000bdc00000 size 0xbdb40000 type 6 -0x00000000bdc00000 - 0x00000000d0000000 size 0x12400000 type 0 -0x00000000d0000000 - 0x00000000e0000000 size 0x10000000 type 1 -0x00000000e0000000 - 0x0000000100000000 size 0x20000000 type 0 -0x0000000100000000 - 0x0000000240000000 size 0x140000000 type 6 -MTRR addr 0x0-0x10 set to 6 type @ 0 -MTRR addr 0x10-0x20 set to 6 type @ 1 -MTRR addr 0x20-0x30 set to 6 type @ 2 -MTRR addr 0x30-0x40 set to 6 type @ 3 -MTRR addr 0x40-0x50 set to 6 type @ 4 -MTRR addr 0x50-0x60 set to 6 type @ 5 -MTRR addr 0x60-0x70 set to 6 type @ 6 -MTRR addr 0x70-0x80 set to 6 type @ 7 -MTRR addr 0x80-0x84 set to 6 type @ 8 -MTRR addr 0x84-0x88 set to 6 type @ 9 -MTRR addr 0x88-0x8c set to 6 type @ 10 -MTRR addr 0x8c-0x90 set to 6 type @ 11 -MTRR addr 0x90-0x94 set to 6 type @ 12 -MTRR addr 0x94-0x98 set to 6 type @ 13 -MTRR addr 0x98-0x9c set to 6 type @ 14 -MTRR addr 0x9c-0xa0 set to 6 type @ 15 -MTRR addr 0xa0-0xa4 set to 0 type @ 16 -MTRR addr 0xa4-0xa8 set to 0 type @ 17 -MTRR addr 0xa8-0xac set to 0 type @ 18 -MTRR addr 0xac-0xb0 set to 0 type @ 19 -MTRR addr 0xb0-0xb4 set to 0 type @ 20 -MTRR addr 0xb4-0xb8 set to 0 type @ 21 -MTRR addr 0xb8-0xbc set to 0 type @ 22 -MTRR addr 0xbc-0xc0 set to 0 type @ 23 -MTRR addr 0xc0-0xc1 set to 6 type @ 24 -MTRR addr 0xc1-0xc2 set to 6 type @ 25 -MTRR addr 0xc2-0xc3 set to 6 type @ 26 -MTRR addr 0xc3-0xc4 set to 6 type @ 27 -MTRR addr 0xc4-0xc5 set to 6 type @ 28 -MTRR addr 0xc5-0xc6 set to 6 type @ 29 -MTRR addr 0xc6-0xc7 set to 6 type @ 30 -MTRR addr 0xc7-0xc8 set to 6 type @ 31 -MTRR addr 0xc8-0xc9 set to 6 type @ 32 -MTRR addr 0xc9-0xca set to 6 type @ 33 -MTRR addr 0xca-0xcb set to 6 type @ 34 -MTRR addr 0xcb-0xcc set to 6 type @ 35 -MTRR addr 0xcc-0xcd set to 6 type @ 36 -MTRR addr 0xcd-0xce set to 6 type @ 37 -MTRR addr 0xce-0xcf set to 6 type @ 38 -MTRR addr 0xcf-0xd0 set to 6 type @ 39 -MTRR addr 0xd0-0xd1 set to 6 type @ 40 -MTRR addr 0xd1-0xd2 set to 6 type @ 41 -MTRR addr 0xd2-0xd3 set to 6 type @ 42 -MTRR addr 0xd3-0xd4 set to 6 type @ 43 -MTRR addr 0xd4-0xd5 set to 6 type @ 44 -MTRR addr 0xd5-0xd6 set to 6 type @ 45 -MTRR addr 0xd6-0xd7 set to 6 type @ 46 -MTRR addr 0xd7-0xd8 set to 6 type @ 47 -MTRR addr 0xd8-0xd9 set to 6 type @ 48 -MTRR addr 0xd9-0xda set to 6 type @ 49 -MTRR addr 0xda-0xdb set to 6 type @ 50 -MTRR addr 0xdb-0xdc set to 6 type @ 51 -MTRR addr 0xdc-0xdd set to 6 type @ 52 -MTRR addr 0xdd-0xde set to 6 type @ 53 -MTRR addr 0xde-0xdf set to 6 type @ 54 -MTRR addr 0xdf-0xe0 set to 6 type @ 55 -MTRR addr 0xe0-0xe1 set to 6 type @ 56 -MTRR addr 0xe1-0xe2 set to 6 type @ 57 -MTRR addr 0xe2-0xe3 set to 6 type @ 58 -MTRR addr 0xe3-0xe4 set to 6 type @ 59 -MTRR addr 0xe4-0xe5 set to 6 type @ 60 -MTRR addr 0xe5-0xe6 set to 6 type @ 61 -MTRR addr 0xe6-0xe7 set to 6 type @ 62 -MTRR addr 0xe7-0xe8 set to 6 type @ 63 -MTRR addr 0xe8-0xe9 set to 6 type @ 64 -MTRR addr 0xe9-0xea set to 6 type @ 65 -MTRR addr 0xea-0xeb set to 6 type @ 66 -MTRR addr 0xeb-0xec set to 6 type @ 67 -MTRR addr 0xec-0xed set to 6 type @ 68 -MTRR addr 0xed-0xee set to 6 type @ 69 -MTRR addr 0xee-0xef set to 6 type @ 70 -MTRR addr 0xef-0xf0 set to 6 type @ 71 -MTRR addr 0xf0-0xf1 set to 6 type @ 72 -MTRR addr 0xf1-0xf2 set to 6 type @ 73 -MTRR addr 0xf2-0xf3 set to 6 type @ 74 -MTRR addr 0xf3-0xf4 set to 6 type @ 75 -MTRR addr 0xf4-0xf5 set to 6 type @ 76 -MTRR addr 0xf5-0xf6 set to 6 type @ 77 -MTRR addr 0xf6-0xf7 set to 6 type @ 78 -MTRR addr 0xf7-0xf8 set to 6 type @ 79 -MTRR addr 0xf8-0xf9 set to 6 type @ 80 -MTRR addr 0xf9-0xfa set to 6 type @ 81 -MTRR addr 0xfa-0xfb set to 6 type @ 82 -MTRR addr 0xfb-0xfc set to 6 type @ 83 -MTRR addr 0xfc-0xfd set to 6 type @ 84 -MTRR addr 0xfd-0xfe set to 6 type @ 85 -MTRR addr 0xfe-0xff set to 6 type @ 86 -MTRR addr 0xff-0x100 set to 6 type @ 87 -MTRR: Fixed MSR 0x250 0x0606060606060606 -MTRR: Fixed MSR 0x258 0x0606060606060606 -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x0606060606060606 -MTRR: Fixed MSR 0x269 0x0606060606060606 -MTRR: Fixed MSR 0x26a 0x0606060606060606 -MTRR: Fixed MSR 0x26b 0x0606060606060606 -MTRR: Fixed MSR 0x26c 0x0606060606060606 -MTRR: Fixed MSR 0x26d 0x0606060606060606 -MTRR: Fixed MSR 0x26e 0x0606060606060606 -MTRR: Fixed MSR 0x26f 0x0606060606060606 -call enable_fixed_mtrr() -CPU physical address size: 36 bits -MTRR: default type WB/UC MTRR counts: 5/7. -MTRR: WB selected as default type. -MTRR: 0 base 0x00000000bdc00000 mask 0x0000000fffc00000 type 0 -MTRR: 1 base 0x00000000be000000 mask 0x0000000ffe000000 type 0 -MTRR: 2 base 0x00000000c0000000 mask 0x0000000ff0000000 type 0 -MTRR: 3 base 0x00000000d0000000 mask 0x0000000ff0000000 type 1 -MTRR: 4 base 0x00000000e0000000 mask 0x0000000fe0000000 type 0 - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -Setting up local apic... apic_id: 0x00 done. -writing P-State 1: 0, 0, 6, 0x17, 15000; encoded: 0x0617 -writing P-State 1: 0, 0, 6, 0x17, 15000; encoded: 0x0617 -writing P-State 1: 0, 0, 6, 0x17, 15000; encoded: 0x0617 -writing P-State 1: 0, 0, 6, 0x17, 15000; encoded: 0x0617 -writing P-State 1: 0, 0, 6, 0x17, 15000; encoded: 0x0617 -writing P-State 0: 0, 0, 7, 0x21, 35000; encoded: 0x0721 -WARNING: No CMOS option 'hyper_threading'. -CPU: 0 2 siblings -CPU: 0 has sibling 1 -CPU #0 initialized -CPU1: stack_base 00141000, stack_end 00141ff8 -Asserting INIT. -Waiting for send to finish... -+Deasserting INIT. -Waiting for send to finish... -+#startup loops: 2. -Sending STARTUP #1 to 1. -After apic_write. -Startup point 1. -Waiting for send to finish... -+Sending STARTUP #2 to 1. -After apic_write. -Startup point 1. -Waiting for send to finish... -+After Startup. -Initializing CPU #1 -Waiting for 1 CPUS to stop -CPU: vendor Intel device 1067a -CPU: family 06, model 17, stepping 0a -Enabling cache -microcode: sig=0x1067a pf=0x80 revision=0x0 -microcode: updated to revision 0xa0b date=2010-09-28 -CPU: Intel(R) Core(TM)2 Duo CPU L9400 @ 1.86GHz. -MTRR: Fixed MSR 0x250 0x0606060606060606 -MTRR: Fixed MSR 0x258 0x0606060606060606 -MTRR: Fixed MSR 0x259 0x0000000000000000 -MTRR: Fixed MSR 0x268 0x0606060606060606 -MTRR: Fixed MSR 0x269 0x0606060606060606 -MTRR: Fixed MSR 0x26a 0x0606060606060606 -MTRR: Fixed MSR 0x26b 0x0606060606060606 -MTRR: Fixed MSR 0x26c 0x0606060606060606 -MTRR: Fixed MSR 0x26d 0x0606060606060606 -MTRR: Fixed MSR 0x26e 0x0606060606060606 -MTRR: Fixed MSR 0x26f 0x0606060606060606 -call enable_fixed_mtrr() -CPU physical address size: 36 bits - -MTRR check -Fixed MTRRs : Enabled -Variable MTRRs: Enabled - -Setting up local apic... apic_id: 0x01 done. -writing P-State 2: 0, 0, 6, 0x17, 15000; encoded: 0x0617 -writing P-State 2: 0, 0, 6, 0x17, 15000; encoded: 0x0617 -writing P-State 2: 0, 0, 6, 0x17, 15000; encoded: 0x0617 -writing P-State 2: 0, 0, 6, 0x17, 15000; encoded: 0x0617 -writing P-State 2: 0, 0, 6, 0x17, 15000; encoded: 0x0617 -writing P-State 1: 0, 0, 7, 0x21, 35000; encoded: 0x0721 -CPU: 1 2 siblings -CPU #1 initialized -All AP CPUs stopped (4540 loops) -CPU1: stack: 00141000 - 00142000, lowest used address 00141b6c, stack used: 1172 bytes -DOMAIN: 0000 init -PCI: 00:00.0 init -PCI: 00:02.0 init -Initializing VGA without OPROM. MMIO 0xe1000000 -EDID: -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -Extracted contents: -header: 00 00 00 00 00 00 00 00 -serial number: 00 00 00 00 00 00 00 00 00 00 -version: 00 00 -basic params: 00 00 00 00 00 -chroma info: 00 00 00 00 00 00 00 00 00 00 -established: 00 00 00 -standard: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -descriptor 1: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -descriptor 2: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -descriptor 3: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -descriptor 4: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 -extensions: 00 -checksum: 00 - -No header found -Couldn't find GFX clock divisors -PCI: 00:02.1 init -PCI: 00:19.0 init -PCI: 00:1a.0 init -PCI: 00:1a.1 init -PCI: 00:1a.2 init -PCI: 00:1a.7 init -EHCI: Setting up controller.. done. -PCI: 00:1b.0 init -Azalia: base = e1520000 -Azalia: No codec! -PCI: 00:1c.0 init -Initializing ICH9 PCIe root port. -PCI: 00:1c.1 init -Initializing ICH9 PCIe root port. -PCI: 00:1c.2 init -Initializing ICH9 PCIe root port. -PCI: 00:1c.3 init -Initializing ICH9 PCIe root port. -PCI: 00:1d.0 init -PCI: 00:1d.1 init -PCI: 00:1d.2 init -PCI: 00:1d.7 init -EHCI: Setting up controller.. done. -PCI: 00:1e.0 init -PCI: 00:1f.0 init -i82801ix: lpc_init -IOAPIC: Initializing IOAPIC at 0xfec00000 -IOAPIC: Bootstrap Processor Local APIC = 0x00 -IOAPIC: ID = 0x02 -IOAPIC: Dumping registers - reg 0x0000: 0x02000000 - reg 0x0001: 0x00170020 - reg 0x0002: 0x00170020 -IOAPIC: 24 interrupts -IOAPIC: Enabling interrupts on FSB -IOAPIC: reg 0x00000000 value 0x00000000 0x00000700 -IOAPIC: reg 0x00000001 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000002 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000003 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000004 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000005 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000006 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000007 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000008 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000009 value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000a value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000b value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000c value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000d value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000e value 0x00000000 0x00010000 -IOAPIC: reg 0x0000000f value 0x00000000 0x00010000 -IOAPIC: reg 0x00000010 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000011 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000012 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000013 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000014 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000015 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000016 value 0x00000000 0x00010000 -IOAPIC: reg 0x00000017 value 0x00000000 0x00010000 -WARNING: No CMOS option 'power_on_after_fail'. -Set power on after power failure. -WARNING: No CMOS option 'nmi'. -NMI sources disabled. -rtc_failed = 0x4 -RTC Init -RTC: Clear requested -Disabling ACPI via APMC: -done. -Locking SMM. -PCI: 00:1f.2 init -i82801ix_sata: initializing... -SATA controller in AHCI mode. -ABAR: E1525000 -PCI: 00:1f.3 init -smbus: PCI: 00:1f.3[0]->I2C: 01:54 init -smbus: PCI: 00:1f.3[0]->I2C: 01:55 init -smbus: PCI: 00:1f.3[0]->I2C: 01:56 init -smbus: PCI: 00:1f.3[0]->I2C: 01:57 init -smbus: PCI: 00:1f.3[0]->I2C: 01:5c init -Locking EEPROM RFID -init EEPROM done -smbus: PCI: 00:1f.3[0]->I2C: 01:5d init -smbus: PCI: 00:1f.3[0]->I2C: 01:5e init -smbus: PCI: 00:1f.3[0]->I2C: 01:5f init -Devices initialized -Show all devs...After init. -Root Device: enabled 1 -CPU_CLUSTER: 0: enabled 1 -APIC: 00: enabled 1 -APIC: acac: enabled 0 -DOMAIN: 0000: enabled 1 -PCI: 00:00.0: enabled 1 -PCI: 00:02.0: enabled 1 -PCI: 00:02.1: enabled 1 -PCI: 00:03.0: enabled 0 -PCI: 00:03.1: enabled 0 -PCI: 00:03.2: enabled 0 -PCI: 00:03.3: enabled 0 -IOAPIC: 02: enabled 1 -PCI: 00:19.0: enabled 1 -PCI: 00:1a.0: enabled 1 -PCI: 00:1a.1: enabled 1 -PCI: 00:1a.2: enabled 1 -PCI: 00:1a.7: enabled 1 -PCI: 00:1b.0: enabled 1 -PCI: 00:1c.0: enabled 1 -PCI: 00:1c.1: enabled 1 -PCI: 00:1c.2: enabled 1 -PCI: 00:1c.3: enabled 1 -PCI: 00:1c.4: enabled 0 -PCI: 00:1c.5: enabled 0 -PCI: 00:1d.0: enabled 1 -PCI: 00:1d.1: enabled 1 -PCI: 00:1d.2: enabled 1 -PCI: 00:1d.7: enabled 1 -PCI: 00:1e.0: enabled 1 -PCI: 00:1f.0: enabled 1 -PNP: 00ff.1: enabled 1 -PNP: 00ff.2: enabled 1 -PCI: 00:1f.2: enabled 1 -PCI: 00:1f.3: enabled 1 -I2C: 01:54: enabled 1 -I2C: 01:55: enabled 1 -I2C: 01:56: enabled 1 -I2C: 01:57: enabled 1 -I2C: 01:5c: enabled 1 -I2C: 01:5d: enabled 1 -I2C: 01:5e: enabled 1 -I2C: 01:5f: enabled 1 -PCI: 00:1f.5: enabled 0 -PCI: 00:1f.6: enabled 0 -Unknown device path type: 0 -: enabled 1 -APIC: 01: enabled 1 -BS: Exiting BS_DEV_INIT state. -BS: Entering BS_POST_DEVICE state. -Finalize devices... -Devices finalized -BS: Exiting BS_POST_DEVICE state. -BS: Entering BS_OS_RESUME_CHECK state. -BS: Exiting BS_OS_RESUME_CHECK state. -BS: Entering BS_WRITE_TABLES state. -Writing ISA IRQs -no IRQ found for PCI: 00:00.0 -fixed IRQ entry for: PCI: 00:02.0: INTA# -> IOAPIC 2 PIN 16 -no IRQ found for PCI: 00:02.1 -no IRQ found for PCI: 00:19.0 -fixed IRQ entry for: PCI: 00:1a.0: INTA# -> IOAPIC 2 PIN 16 -fixed IRQ entry for: PCI: 00:1a.1: INTB# -> IOAPIC 2 PIN 17 -fixed IRQ entry for: PCI: 00:1a.2: INTC# -> IOAPIC 2 PIN 18 -fixed IRQ entry for: PCI: 00:1a.7: INTC# -> IOAPIC 2 PIN 18 -fixed IRQ entry for: PCI: 00:1b.0: INTA# -> IOAPIC 2 PIN 16 -fixed IRQ entry for: PCI: 00:1c.0: INTA# -> IOAPIC 2 PIN 16 -no IRQ found for PCI: 00:1c.1 -no IRQ found for PCI: 00:1c.2 -no IRQ found for PCI: 00:1c.3 -fixed IRQ entry for: PCI: 00:1d.0: INTA# -> IOAPIC 2 PIN 16 -fixed IRQ entry for: PCI: 00:1d.1: INTB# -> IOAPIC 2 PIN 17 -fixed IRQ entry for: PCI: 00:1d.2: INTC# -> IOAPIC 2 PIN 18 -fixed IRQ entry for: PCI: 00:1d.7: INTA# -> IOAPIC 2 PIN 16 -no IRQ found for PCI: 00:1e.0 -no IRQ found for PCI: 00:1f.0 -fixed IRQ entry for: PCI: 00:1f.2: INTB# -> IOAPIC 2 PIN 17 -fixed IRQ entry for: PCI: 00:1f.3: INTC# -> IOAPIC 2 PIN 18 -Wrote the mp table end at: 000f0010 - 000f0194 -MPTABLE len: 404 -Writing ISA IRQs -no IRQ found for PCI: 00:00.0 -fixed IRQ entry for: PCI: 00:02.0: INTA# -> IOAPIC 2 PIN 16 -no IRQ found for PCI: 00:02.1 -no IRQ found for PCI: 00:19.0 -fixed IRQ entry for: PCI: 00:1a.0: INTA# -> IOAPIC 2 PIN 16 -fixed IRQ entry for: PCI: 00:1a.1: INTB# -> IOAPIC 2 PIN 17 -fixed IRQ entry for: PCI: 00:1a.2: INTC# -> IOAPIC 2 PIN 18 -fixed IRQ entry for: PCI: 00:1a.7: INTC# -> IOAPIC 2 PIN 18 -fixed IRQ entry for: PCI: 00:1b.0: INTA# -> IOAPIC 2 PIN 16 -fixed IRQ entry for: PCI: 00:1c.0: INTA# -> IOAPIC 2 PIN 16 -no IRQ found for PCI: 00:1c.1 -no IRQ found for PCI: 00:1c.2 -no IRQ found for PCI: 00:1c.3 -fixed IRQ entry for: PCI: 00:1d.0: INTA# -> IOAPIC 2 PIN 16 -fixed IRQ entry for: PCI: 00:1d.1: INTB# -> IOAPIC 2 PIN 17 -fixed IRQ entry for: PCI: 00:1d.2: INTC# -> IOAPIC 2 PIN 18 -fixed IRQ entry for: PCI: 00:1d.7: INTA# -> IOAPIC 2 PIN 16 -no IRQ found for PCI: 00:1e.0 -no IRQ found for PCI: 00:1f.0 -fixed IRQ entry for: PCI: 00:1f.2: INTB# -> IOAPIC 2 PIN 17 -fixed IRQ entry for: PCI: 00:1f.3: INTC# -> IOAPIC 2 PIN 18 -Wrote the mp table end at: bdad9010 - bdad9194 -MPTABLE len: 404 -MP table: 404 bytes. -ACPI: Writing ACPI tables at bdab5000. -ACPI: * FACS -ACPI: * DSDT -ACPI: * FADT -ACPI: added table 1/32, length now 40 -ACPI: * SSDT -Found 1 CPU(s) with 2 core(s) each. -clocks between 800 and 2133 MHz. -adding 4 P-States between busratio 6 and 8, incl. P0 -PSS: 1867MHz power 35000 control 0x829 status 0x829 -PSS: 1866MHz power 35000 control 0x721 status 0x721 -PSS: 1600MHz power 15000 control 0x617 status 0x617 -PSS: 800MHz power 12000 control 0x8611 status 0x8611 -clocks between 800 and 2133 MHz. -adding 4 P-States between busratio 6 and 8, incl. P0 -PSS: 1867MHz power 35000 control 0x829 status 0x829 -PSS: 1866MHz power 35000 control 0x721 status 0x721 -PSS: 1600MHz power 15000 control 0x617 status 0x617 -PSS: 800MHz power 12000 control 0x8611 status 0x8611 -ACPI: added table 2/32, length now 44 -ACPI: * MCFG -ACPI: added table 3/32, length now 48 -ACPI: * MADT -ACPI: added table 4/32, length now 52 -current = bdab8e40 -ACPI: * DMAR -ACPI: added table 5/32, length now 56 -current = bdab8ef0 -ACPI: * HPET -ACPI: added table 6/32, length now 60 -ACPI: done. -ACPI tables: 16176 bytes. -smbios_write_tables: bdab3000 -recv_ec_data: 0x37 -recv_ec_data: 0x58 -recv_ec_data: 0x48 -recv_ec_data: 0x54 -recv_ec_data: 0x32 -recv_ec_data: 0x32 -recv_ec_data: 0x57 -recv_ec_data: 0x57 -recv_ec_data: 0x06 -recv_ec_data: 0x03 -Root Device (LENOVO ThinkPad X200) -CPU_CLUSTER: 0 (Intel GM45 Northbridge) -APIC: 00 (Socket BGA956 CPU) -APIC: acac (Intel Penryn CPU) -DOMAIN: 0000 (Intel GM45 Northbridge) -PCI: 00:00.0 (Intel GM45 Northbridge) -PCI: 00:02.0 (Intel GM45 Northbridge) -PCI: 00:02.1 (Intel GM45 Northbridge) -PCI: 00:03.0 (Intel GM45 Northbridge) -PCI: 00:03.1 (Intel GM45 Northbridge) -PCI: 00:03.2 (Intel GM45 Northbridge) -PCI: 00:03.3 (Intel GM45 Northbridge) -IOAPIC: 02 (IOAPIC) -PCI: 00:19.0 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1a.0 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1a.1 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1a.2 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1a.7 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1b.0 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1c.0 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1c.1 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1c.2 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1c.3 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1c.4 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1c.5 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1d.0 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1d.1 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1d.2 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1d.7 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1e.0 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1f.0 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PNP: 00ff.1 (Lenovo Power Management Hardware Hub 7) -PNP: 00ff.2 (Lenovo H8 EC) -PCI: 00:1f.2 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1f.3 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -I2C: 01:54 (AT24RF08C) -I2C: 01:55 (AT24RF08C) -I2C: 01:56 (AT24RF08C) -I2C: 01:57 (AT24RF08C) -I2C: 01:5c (AT24RF08C) -I2C: 01:5d (AT24RF08C) -I2C: 01:5e (AT24RF08C) -I2C: 01:5f (AT24RF08C) -PCI: 00:1f.5 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -PCI: 00:1f.6 (Intel ICH9/ICH9-M (82801Ix) Series Southbridge) -Unknown device path type: 0 - (unknown) -APIC: 01 (unknown) -SMBIOS tables: 436 bytes. -Writing table forward entry at 0x00000500 -Wrote coreboot table at: 00000500, 0x10 bytes, checksum 9233 -Table forward entry ends at 0x00000528. -... aligned to 0x00001000 -Writing coreboot table at 0xbdaab000 -rom_table_end = 0xbdaab000 -... aligned to 0xbdab0000 - 0. 0000000000000000-0000000000000fff: CONFIGURATION TABLES - 1. 0000000000001000-000000000009ffff: RAM - 2. 00000000000c0000-00000000bdaaafff: RAM - 3. 00000000bdaab000-00000000bdbfffff: CONFIGURATION TABLES - 4. 00000000bdc00000-00000000bfffffff: RESERVED - 5. 00000000f0000000-00000000f3ffffff: RESERVED - 6. 0000000100000000-000000023fffffff: RAM -Wrote coreboot table at: bdaab000, 0x8c8 bytes, checksum f79a -coreboot table: 2272 bytes. -CBMEM ROOT 0. bdbff000 00001000 -CAR GLOBALS 1. bdbfe000 00001000 -USBDEBUG 2. bdbfd000 00001000 -CONSOLE 3. bdbdd000 00020000 -TIME STAMP 4. bdbdc000 00001000 -ROMSTAGE 5. bdbdb000 00001000 -GDT 6. bdbda000 00001000 -ACPI RESUME 7. bdada000 00100000 -SMP TABLE 8. bdad9000 00001000 -ACPI 9. bdab5000 00024000 -ACPI GNVS 10. bdab4000 00001000 -SMBIOS 11. bdab3000 00001000 -COREBOOT 12. bdaab000 00008000 -BS: Exiting BS_WRITE_TABLES state. -BS: Entering BS_PAYLOAD_LOAD state. -CBFS: located payload @ ff8341b8, 542448 bytes. -Loading segment from rom address 0xff8341b8 - code (compression=1) - New segment dstaddr 0x8200 memsize 0x17e48 srcaddr 0xff83420c filesize 0x83fc - (cleaned up) New segment addr 0x8200 size 0x17e48 offset 0xff83420c filesize 0x83fc -Loading segment from rom address 0xff8341d4 - code (compression=1) - New segment dstaddr 0x100000 memsize 0x201538 srcaddr 0xff83c608 filesize 0x7c2a0 - (cleaned up) New segment addr 0x100000 size 0x201538 offset 0xff83c608 filesize 0x7c2a0 -Loading segment from rom address 0xff8341f0 - Entry Point 0x00008200 -Bounce Buffer at bd862000, 2393460 bytes -Loading Segment: addr: 0x0000000000008200 memsz: 0x0000000000017e48 filesz: 0x00000000000083fc -lb: [0x0000000000100000, 0x000000000014703c) -Post relocation: addr: 0x0000000000008200 memsz: 0x0000000000017e48 filesz: 0x00000000000083fc -using LZMA -[ 0x00008200, 00018717, 0x00020048) <- ff83420c -Clearing Segment: addr: 0x0000000000018717 memsz: 0x0000000000007931 -dest 00008200, end 00020048, bouncebuffer bd862000 -Loading Segment: addr: 0x0000000000100000 memsz: 0x0000000000201538 filesz: 0x000000000007c2a0 -lb: [0x0000000000100000, 0x000000000014703c) -segment: [0x0000000000100000, 0x000000000017c2a0, 0x0000000000301538) - bounce: [0x00000000bd862000, 0x00000000bd8de2a0, 0x00000000bda63538) -Post relocation: addr: 0x00000000bd862000 memsz: 0x0000000000201538 filesz: 0x000000000007c2a0 -using LZMA -[ 0xbd862000, bda63538, 0xbda63538) <- ff83c608 -dest bd862000, end bda63538, bouncebuffer bd862000 -move suffix around: from bd8a903c, to 14703c, amount: 1ba4fc -Loaded segments -BS: Exiting BS_PAYLOAD_LOAD state. -BS: Entering BS_PAYLOAD_BOOT state. -ICH7 watchdog disabled -Jumping to boot code at 00008200 -CPU0: stack: 00142000 - 00143000, lowest used address 00142a28, stack used: 1496 bytes -entry = 0x00008200 -lb_start = 0x00100000 -lb_size = 0x0004703c -buffer = 0xbd862000 diff --git a/site/docs/hardware/text/x200s/cblog02.txt b/site/docs/hardware/text/x200s/cblog02.txt deleted file mode 100644 index 3a590dc..0000000 --- a/site/docs/hardware/text/x200s/cblog02.txt +++ /dev/null @@ -1,77 +0,0 @@ -USB - - -coreboot-4.0-7551-ge420139-dirty Wed Dec 10 16:34:05 GMT 2014 starting... -running main(bist = 0) -WARNING: Ignoring S4-assertion-width violation. -Stepping B3 -2 CPU cores -AMT enabled -capable of DDR2 of 800 MHz or lower -VT-d enabled -GMCH: GS45, using high performance mode by default -TXT enabled -Render frequency: 533 MHz -IGD enabled -PCIe-to-GMCH enabled -GMCH supports DDR3 with 1067 MT or less -GMCH supports FSB with up to 1067 MHz -SMBus controller enabled. -0:50:b -2:51:b -DDR mask 5, DDR 3 -Bank 0 populated: - Raw card type: F - Row addr bits: 14 - Col addr bits: 10 - byte width: 1 - page size: 1024 - banks: 8 - ranks: 2 - tAAmin: 105 - tCKmin: 15 - Max clock: 533 MHz - CAS: 0x01c0 -Bank 1 populated: - Raw card type: B - Row addr bits: 15 - Col addr bits: 10 - byte width: 1 - page size: 1024 - banks: 8 - ranks: 1 - tAAmin: 105 - tCKmin: 12 - Max clock: 666 MHz - CAS: 0x07e0 -Trying CAS 7, tCK 15. -Found compatible clock / CAS pair: 533 / 7. -Timing values: - tCLK: 15 - tRAS: 20 - tRP: 7 - tRCD: 7 - tRFC: 104 - tWR: 8 - tRD: 11 - tRRD: 4 - tFAW: 20 - tWL: 6 -Changing memory frequency: old 3, new 6. -Setting IGD memory frequencies for VCO #1. -Memory configured in dual-channel assymetric mode. -Memory map: -TOM = 384MB -TOLUD = 384MB -TOUUD = 384MB -REMAP: base = 65535MB - limit = 0MB -usedMEsize: 0MB -Performing Jedec initialization at address 0x00000000. -Performing Jedec initialization at address 0x08000000. -Performing Jedec initialization at address 0x10000000. -Final timings for group 0 on channel 0: 6.1.0.3.2 -Final timings for group 1 on channel 0: 6.0.2.6.3 -Final timings for group 2 on channel 0: 6.1.2.0.1 -Final timings for group 3 on channel 0: 6.1.0.7.3 -Timing under-/overflow during receive-enable calibration. diff --git a/site/docs/hardware/text/x200s/cblog03.txt b/site/docs/hardware/text/x200s/cblog03.txt deleted file mode 100644 index d078a48..0000000 --- a/site/docs/hardware/text/x200s/cblog03.txt +++ /dev/null @@ -1,158 +0,0 @@ -USB - - -coreboot-4.0-7551-ge420139-dirty Wed Dec 10 16:34:05 GMT 2014 starting... -running main(bist = 0) -WARNING: Ignoring S4-assertion-width violation. -Stepping B3 -2 CPU cores -AMT enabled -capable of DDR2 of 800 MHz or lower -VT-d enabled -GMCH: GS45, using high performance mode by default -TXT enabled -Render frequency: 533 MHz -IGD enabled -PCIe-to-GMCH enabled -GMCH supports DDR3 with 1067 MT or less -GMCH supports FSB with up to 1067 MHz -SMBus controller enabled. -0:50:ff -2:51:b -DDR mask 4, DDR 3 -Bank 1 populated: - Raw card type: B - Row addr bits: 15 - Col addr bits: 10 - byte width: 1 - page size: 1024 - banks: 8 - ranks: 1 - tAAmin: 105 - tCKmin: 12 - Max clock: 666 MHz - CAS: 0x07e0 -DIMMs support 666 MHz, but chipset only runs at up to 533. Limiting... -Trying CAS 7, tCK 15. -Found compatible clock / CAS pair: 533 / 7. -Timing values: - tCLK: 15 - tRAS: 20 - tRP: 7 - tRCD: 7 - tRFC: 104 - tWR: 8 - tRD: 11 - tRRD: 4 - tFAW: 20 - tWL: 6 -Changing memory frequency: old 3, new 6. -Setting IGD memory frequencies for VCO #1. -Memory configured in single-channel mode. -Memory map: -TOM = 128MB -TOLUD = 128MB -TOUUD = 128MB -REMAP: base = 65535MB - limit = 0MB -usedMEsize: 0MB -Performing Jedec initialization at address 0x00000000. -Final timings for group 0 on channel 1: 6.0.2.6.4 -Final timings for group 1 on channel 1: 6.0.2.6.4 -Final timings for group 2 on channel 1: 6.0.2.8.3 -Final timings for group 3 on channel 1: 6.0.2.8.6 -Lower bound for byte lane 0 on channel 1: 0.0 -Upper bound for byte lane 0 on channel 1: 10.4 -Final timings for byte lane 0 on channel 1: 5.2 -Lower bound for byte lane 1 on channel 1: 0.0 -Upper bound for byte lane 1 on channel 1: 11.2 -Final timings for byte lane 1 on channel 1: 5.5 -Lower bound for byte lane 2 on channel 1: 0.0 -Upper bound for byte lane 2 on channel 1: 10.5 -Final timings for byte lane 2 on channel 1: 5.2 -Lower bound for byte lane 3 on channel 1: 0.0 -Upper bound for byte lane 3 on channel 1: 9.7 -Final timings for byte lane 3 on channel 1: 4.7 -Timing overflow during read training. -Read training failure: lower bound. -USB - - -coreboot-4.0-7551-ge420139-dirty Wed Dec 10 16:34:05 GMT 2014 starting... -running main(bist = 0) -Interrupted RAM init, reset required. -USB - - -coreboot-4.0-7551-ge420139-dirty Wed Dec 10 16:34:05 GMT 2014 starting... -running main(bist = 0) -Stepping B3 -2 CPU cores -AMT enabled -capable of DDR2 of 800 MHz or lower -VT-d enabled -GMCH: GS45, using high performance mode by default -TXT enabled -Render frequency: 533 MHz -IGD enabled -PCIe-to-GMCH enabled -GMCH supports DDR3 with 1067 MT or less -GMCH supports FSB with up to 1067 MHz -SMBus controller enabled. -0:50:ff -2:51:b -DDR mask 4, DDR 3 -Bank 1 populated: - Raw card type: B - Row addr bits: 15 - Col addr bits: 10 - byte width: 1 - page size: 1024 - banks: 8 - ranks: 1 - tAAmin: 105 - tCKmin: 12 - Max clock: 666 MHz - CAS: 0x07e0 -DIMMs support 666 MHz, but chipset only runs at up to 533. Limiting... -Trying CAS 7, tCK 15. -Found compatible clock / CAS pair: 533 / 7. -Timing values: - tCLK: 15 - tRAS: 20 - tRP: 7 - tRCD: 7 - tRFC: 104 - tWR: 8 - tRD: 11 - tRRD: 4 - tFAW: 20 - tWL: 6 -Setting IGD memory frequencies for VCO #1. -Memory configured in single-channel mode. -Memory map: -TOM = 128MB -TOLUD = 128MB -TOUUD = 128MB -REMAP: base = 65535MB - limit = 0MB -usedMEsize: 0MB -Performing Jedec initialization at address 0x00000000. -Final timings for group 0 on channel 1: 6.0.2.7.6 -Final timings for group 1 on channel 1: 6.0.2.6.6 -Final timings for group 2 on channel 1: 6.0.2.8.7 -Final timings for group 3 on channel 1: 6.1.0.2.5 -Lower bound for byte lane 0 on channel 1: 0.0 -Upper bound for byte lane 0 on channel 1: 10.3 -Final timings for byte lane 0 on channel 1: 5.1 -Lower bound for byte lane 1 on channel 1: 0.0 -Upper bound for byte lane 1 on channel 1: 11.3 -Final timings for byte lane 1 on channel 1: 5.5 -Lower bound for byte lane 2 on channel 1: 0.0 -Upper bound for byte lane 2 on channel 1: 10.5 -Final timings for byte lane 2 on channel 1: 5.2 -Lower bound for byte lane 3 on channel 1: 0.0 -Upper bound for byte lane 3 on channel 1: 9.6 -Final timings for byte lane 3 on channel 1: 4.7 -Timing overflow during read training. -Read training failure: lower bound. diff --git a/site/docs/index.md b/site/docs/index.md index 985d716..05ef75b 100644 --- a/site/docs/index.md +++ b/site/docs/index.md @@ -24,7 +24,6 @@ operates Minifree Ltd; sales provide funding for the Libreboot project. Installing libreboot ==================== -- [What systems can I use libreboot on?](hardware/) - [How to install libreboot](install/) Documentation related to operating systems diff --git a/site/docs/index.uk.md b/site/docs/index.uk.md index 903bac7..3d6bba7 100644 --- a/site/docs/index.uk.md +++ b/site/docs/index.uk.md @@ -24,7 +24,6 @@ operates Minifree Ltd; sales provide funding for the Libreboot project. Встановлення libreboot ==================== -- [На яких системах я можу встановлювати libreboot?](hardware/) - [Як встановити libreboot](install/) Документація, яка має відношення до операційних систем diff --git a/site/docs/index.zh-cn.md b/site/docs/index.zh-cn.md index 2f71562..459a513 100644 --- a/site/docs/index.zh-cn.md +++ b/site/docs/index.zh-cn.md @@ -22,7 +22,6 @@ operates Minifree Ltd; sales provide funding for the Libreboot project. 安装 libreboot ==================== -- [哪些机器上可以使用 libreboot?](hardware/) - [如何安装 libreboot](install/) 操作系统相关文档 diff --git a/site/docs/hardware/acer_g43t-am3.md b/site/docs/install/acer_g43t-am3.md similarity index 100% rename from site/docs/hardware/acer_g43t-am3.md rename to site/docs/install/acer_g43t-am3.md diff --git a/site/docs/install/d510mo.md b/site/docs/install/d510mo.md deleted file mode 100644 index 45f5b3b..0000000 --- a/site/docs/install/d510mo.md +++ /dev/null @@ -1,23 +0,0 @@ ---- -title: D510MO flashing tutorial -... - -This guide is for those who want libreboot on their Intel D510MO -motherboard while they still have the original BIOS present. - -NOTE: D410PT is another designation and it's the same board. Flash the same ROM. - -Flash chip size {#flashchips} -=============== - -Use this to find out: - - flashprog -p internal - -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. - -Flashing instructions {#clip} -===================== - -Refer to [spi.md](spi.md) for how to re-flash externally. diff --git a/site/docs/install/d945gclf.md b/site/docs/install/d945gclf.md index a9ab282..d1aad19 100644 --- a/site/docs/install/d945gclf.md +++ b/site/docs/install/d945gclf.md @@ -1,14 +1,99 @@ --- -title: Intel D945GCLF flashing tutorial +title: Intel D945GCLF desktop board +x-toc-enable: true ... -This guide is for those who want libreboot on their Intel D945GCLF -motherboard while they still have the original BIOS present. +
+
+D945GCLF +
+ +| ***Specifications*** | | +|----------------------------|------------------------------------------------| +| **Manufacturer** | Intel | +| **Name** | D945GCLF/D945GCLF2D | +| **Released** | 2008 | +| **Chipset** | Intel Calistoga 945GC | +| **CPU** | Intel Atom | +| **Graphics** | ? | +| **Display** | None. | +| **Memory** | Up to 2GB | +| **Architecture** | x86_64 | +| **Original boot firmware** | Intel BIOS | +| **Intel ME/AMD PSP** | Not present. | +| **Flash chip** | SOIC-8 512KiB | + +``` +W+: Works without blobs; +N: Doesn't work; +W*: Works with blobs; +U: Untested; +P+: Partially works; +P*: Partially works with blobs +``` + +| ***Features*** | | Notes | +|----------------|---------------------------------------|-------| +| **Internal flashing with original boot firmware** | N | | +| **Display** | - | | +| **Audio** | W+ | | +| **RAM Init** | W+ | | +| **External output** | W+ | | +| **Display brightness** | - | | + +| ***Payloads supported*** | | +|---------------------------|--------------| +| **GRUB** | Doesn't work | +| **SeaBIOS** | Works | +| **SeaBIOS with GRUB** | Doesn't work | +
+If you just want flashing instructions, go to +[../install/d945gclf.md](../install/d945gclf.md) D945GCLF2D also reported working by a user. -For information about this board, go to -[../hardware/d945gclf.md](../hardware/d945gclf.md) +Introduction +============ + +This board is a mini-itx desktop board for 2008. It uses an atom 230, +which is a singe core CPU but it is hyperthreaded so it appears to have +2 thread to the OS. The flash chip is very small, 512KiB, so grub2 does +not fit, which is why libreboot has to use seabios on this target. Full +disk encryption like on other supported targets will not be possible, so +plan accordingly. + +This board has a 945gc chipset which is the desktop equivalent of 945gm +which can be found in the Lenovo x60/t60 or macbook2,1. This chipset +features an ICH7 southbridge. It has 1 DIMM slot that can accommodate up +to 2G of DDR2 RAM. + +Connectivity-wise it has 1 PCI slot, a 10/100 ethernet port, 4 usb slot +and 4 usb ports, with one internal header and 2 SATA ports. + +The D945GCLF2 is an upgraded version of this board. The differences are: +1 more USB header, 10/100/1000 ethernet and a dual core cpu (also +hyperthreaded). Since the board is almost identical (and coreboot code +seem to indicate that it works, since MAX\_CPU=4 is set), it is believed +that it should also work but this is untested. + +Remarks about vendor bios: +-------------------------- + +- Without coreboot/libreboot this board is completely useless, since the + vendor bios is very bad. It cannot boot from any HDD whether it is + connected to the SATA port or USB. With libreboot it works just + fine. + +- The vendor bios write protects the flash so it requires external + flashing to install libreboot on this device. Once libreboot is + flashed there is no problem to update the firmware internally + +Here is an image of the board:\ +![](https://av.libreboot.org/d945gclf/d945gclf.jpg)\ +Here is an image of the D945GCLF2 board:\ +![](https://av.libreboot.org/d945gclf/20160923_141521.jpg){width="80%" height="80%"}\ +And SPI SOIC8 flash chip\ +![](https://av.libreboot.org/d945gclf/20160923_141550.jpg){width="50%" height="50%"} Flashing instructions {#clip} ===================== @@ -17,3 +102,31 @@ Refer to [spi.md](spi.md) for how to re-flash externally. Here is an image of the flash chip:\ ![](https://av.libreboot.org/d945gclf/d945gclf_spi.jpg) + +How to replace thermal paste and fan +------------------------------------ + +This board comes with very crappy disposable loud fan, that one has no +bearings, which can not be repaired or oiled properly, do not waste your +time trying to fix it, just buy one chinese same size fan\ +![](https://av.libreboot.org/d945gclf/20160923_141620.jpg){width="50%" height="50%"} +![](https://av.libreboot.org/d945gclf/20160923_141614.jpg){width="50%" height="50%"}\ +Make sure that new one has same wiring\ +![](https://av.libreboot.org/d945gclf/20160923_142618.jpg){width="50%" height="50%"}\ +This is a new one, with bearing and maintenable\ +![](https://av.libreboot.org/d945gclf/20160923_141738.jpg){width="50%" height="50%"} +![](https://av.libreboot.org/d945gclf/20160923_141814.jpg){width="50%" height="50%"}\ +Now remove the both coolers rotating them a bit, slowly, then clean both +silicons and both coolers (removing cmos battery first is recommended)\ +![](https://av.libreboot.org/d945gclf/20160923_141601.jpg){width="50%" height="50%"}\ +Put a little bit of non conductive thermal paste on both silicons (only +cpu silicon iis shown on that image)\ +![](https://av.libreboot.org/d945gclf/20160923_142031.jpg){width="50%" height="50%"}\ + +Before assembling new fan, some need new longer screws, make sure having +these (on the left is original one, too short for new fan)\ +![](https://av.libreboot.org/d945gclf/20160923_141659.jpg){width="50%" height="50%"}\ +After that, assemble your new fan into CPU cooler\ +![](https://av.libreboot.org/d945gclf/20160923_141635.jpg){width="50%" height="50%"}\ +Finally assemle both coolers on both chips, do not forget put in the CPU +fan connector back, and you are done. diff --git a/site/docs/hardware/dell9020.md b/site/docs/install/dell9020.md similarity index 100% rename from site/docs/hardware/dell9020.md rename to site/docs/install/dell9020.md diff --git a/site/docs/hardware/dell_thermal.md b/site/docs/install/dell_thermal.md similarity index 100% rename from site/docs/hardware/dell_thermal.md rename to site/docs/install/dell_thermal.md diff --git a/site/docs/install/ga-g41m-es2l.md b/site/docs/install/ga-g41m-es2l.md index c1bc0b1..a63301d 100644 --- a/site/docs/install/ga-g41m-es2l.md +++ b/site/docs/install/ga-g41m-es2l.md @@ -1,10 +1,108 @@ --- -title: GA-G41M-ES2L flashing tutorial -x-toc-enable: true +title: Gigabyte GA-G41M-ES2L desktop board ... -This guide is for those who want libreboot on their Intel GA-G41M-ES2L -motherboard while they still have the original BIOS present. +
+
+GA-G41M-ES2L +
+ +| ***Specifications*** | | +|----------------------------|------------------------------------------------| +| **Manufacturer** | Gigabyte | +| **Name** | GA-G41M-ES2L | +| **Released** | 2009 | +| **Chipset** | Intel G41 | +| **CPU** | Intel Core 2 Extreme/Quad/Duo, + Pentium Extreme/D/4 Extreme/4/Celeron | +| **Graphics** | Integrated | +| **Display** | None. | +| **Memory** | Up to 8GB (2x4GB DDR2-800) | +| **Architecture** | x86_64 | +| **Original boot firmware** | AWARD BIOS | +| **Intel ME/AMD PSP** | Present. Can be disabled | +| **Flash chip** | 2x8Mbit | + +``` +W+: Works without blobs; +N: Doesn't work; +W*: Works with blobs; +U: Untested; +P+: Partially works; +P*: Partially works with blobs +``` + +| ***Features*** | | +|----------------|---------------------------------------| +| **Internal flashing with original boot firmware** | W+ | +| **Display** | - | +| **Audio** | W+ | +| **RAM Init** | P+ | +| **External output** | P+ | +| **Display brightness** | - | + +| ***Payloads supported*** | | +|---------------------------|-------| +| **GRUB** | Slow! | +| **SeaBIOS** | Works | +| **SeaBIOS with GRUB** | Works | +
+ +Introduction +============ + +This is a desktop board using intel hardware (circa \~2009, ICH7 +southbridge, similar performance-wise to the ThinkPad X200. It can make +for quite a nifty desktop. Powered by libreboot. + +As of Libreboot release 20221214, only SeaBIOS payload is provided in ROMs +for this board. According to user reports, they work quite well. GRUB was +always buggy on this board, so it was removed from lbmk. + +IDE on the board is untested, but it might be possible to use a SATA HDD +using an IDE SATA adapter. The SATA ports do work, but it's IDE emulation. The +emulation is slow in DMA mode sia SeaBIOS, so SeaBIOS is configured to use PIO +mode on this board. This SeaBIOS configuration does not affect the Linux kernel. + +You need to set a custom MAC address in Linux for the NIC to work. +In /etc/network/interfaces on debian-based systems like Debian or +Devuan, this would be in the entry for your NIC:\ +hwaddress ether macaddressgoeshere + +Alternatively: + + cbfstool libreboot.rom extract -n rt8168-macaddress -f rt8168-macaddress + +Modify the MAC address in the file `rt8168-macaddress` and then: + + cbfstool libreboot.rom remove -n rt8168-macaddress + cbfstool libreboot.rom add -f rt8168-macaddress -n rt8168-macaddress -t raw + +Now you have a different MAC address hardcoded. In the above example, the ROM +image is named `libreboot.rom` for your board. You can find cbfstool +under `cbutils/` after running the following command +in the build system: + + ./mk -d coreboot TREENAME + +You can learn more about using the build system, lbmk, here:\ +[libreboot build instructions](../build/) + +RAM +=== + +**This board is very picky with RAM. If it doesn't boot, try an EHCI debug +dongle, serial usb adapter and null modem cable, or spkmodem, to get a +coreboot log to see if it passed raminit.** + +Kingston 8 GiB Kit KVR800D2N6/8G with Elpida Chips E2108ABSE-8G-E + +this is a 2x4GB setup and these work quite well, according to a user on IRC. + +Nanya NT2GT64U8HD0BY-AD with 2 GiB of NT5TU128M8DE-AD chips works too. + +Many other modules will probably work just fine, but raminit is very picky on +this board. Your mileage *will* fluctuate, wildly. MAC ADDRESS =========== diff --git a/site/docs/hardware/hp2170p.md b/site/docs/install/hp2170p.md similarity index 100% rename from site/docs/hardware/hp2170p.md rename to site/docs/install/hp2170p.md diff --git a/site/docs/hardware/hp2560p.md b/site/docs/install/hp2560p.md similarity index 100% rename from site/docs/hardware/hp2560p.md rename to site/docs/install/hp2560p.md diff --git a/site/docs/hardware/hp2570p.md b/site/docs/install/hp2570p.md similarity index 100% rename from site/docs/hardware/hp2570p.md rename to site/docs/install/hp2570p.md diff --git a/site/docs/hardware/hp8200sff.md b/site/docs/install/hp8200sff.md similarity index 100% rename from site/docs/hardware/hp8200sff.md rename to site/docs/install/hp8200sff.md diff --git a/site/docs/hardware/hp820g2.md b/site/docs/install/hp820g2.md similarity index 100% rename from site/docs/hardware/hp820g2.md rename to site/docs/install/hp820g2.md diff --git a/site/docs/hardware/hp8300usdt.md b/site/docs/install/hp8300usdt.md similarity index 100% rename from site/docs/hardware/hp8300usdt.md rename to site/docs/install/hp8300usdt.md diff --git a/site/docs/hardware/hp8460p.md b/site/docs/install/hp8460p.md similarity index 100% rename from site/docs/hardware/hp8460p.md rename to site/docs/install/hp8460p.md diff --git a/site/docs/hardware/hp8470p.md b/site/docs/install/hp8470p.md similarity index 100% rename from site/docs/hardware/hp8470p.md rename to site/docs/install/hp8470p.md diff --git a/site/docs/hardware/hp8560w.md b/site/docs/install/hp8560w.md similarity index 100% rename from site/docs/hardware/hp8560w.md rename to site/docs/install/hp8560w.md diff --git a/site/docs/hardware/hp9470m.md b/site/docs/install/hp9470m.md similarity index 100% rename from site/docs/hardware/hp9470m.md rename to site/docs/install/hp9470m.md diff --git a/site/docs/install/index.md b/site/docs/install/index.md index b4a74cc..16273e1 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -1,13 +1,38 @@ --- -title: Installation instructions +title: Libreboot installation guides x-toc-enable: true ... +This article will teach you how to install Libreboot, on any of the supported +laptop, desktop and server motherboards. + +**ALWAYS remember to make a backup of the current flash, when overwriting it, +regardless of what firmware you currently have and what firmware you're +re-flashing it with; this includes updates between Libreboot releases. Use +the `-r` option in flashprog instead `-w`, to read from the flash.** + **SAFETY WARNING!** ==================================================================== **IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](../../news/safety.md).** +LIBREBOOT](../../news/safety.md).**] + +**If you're using release ROMs, some files may be missing inside them, and must +be added. See: [Inserting Vendor Files](ivy_has_common.md).** + +If you're [building from source](../build/), you can ignore the above guidance. + +Install Libreboot via external flashing +================= + +Refer to the following article:\ +[Externally rewrite 25xx NOR flash via SPI protocol](spi.md) + +You are strongly advised to *have* an external flashing setup, and make sure +it works, before attempting internal flashing. This, in addition to making +a backup of the current flash contents, prior to flashing, whether you dump +externally or internally - if only external flashing is available, then it's +usually the case that only external dumping is available too. Need help? ========== @@ -22,6 +47,88 @@ if you want to send your machine in to have Libreboot installed for you. Leah Rowe, the founder and lead developer of Libreboot, also owns and operates Minifree Ltd; sales provide funding for the Libreboot project. +Which systems are supported by Libreboot? +======================================== + +Before actually reading the installation guides, please ensure that your +system is fully supported by Libreboot. More information about the Libreboot +build system can be found in the [lbmk maintenance manual](../maintain/), +and information about porting new systems in +the [porting manual](../maintain/porting.md). + +With x86 machines, you can use the SeaBIOS or GNU GRUB payloads. On ARM +systems, you can use the U-Boot payload (coreboot still initialises hardware). + +Libreboot currently supports the following systems: + +Servers (AMD, x86) +------------------ + +- [ASUS KFSN4-DRE motherboard](kfsn4-dre.md) +- [ASUS KGPE-D16 motherboard](kgpe-d16.md) + +Desktops (AMD, Intel, x86) +-------------------------- + +- **[Dell OptiPlex 7020/9020 MT and SFF](dell9020.md) - Also [available to buy + with Libreboot preinstalled](https://minifree.org/product/libreboot-9020/)** - Dell OptiPlex XE2 MT/SFF also known to work +- [Acer G43T-AM3](acer_g43t-am3.md) +- Apple iMac 5,2 +- [ASUS KCMA-D8 motherboard](kcma-d8.md) +- Dell OptiPlex 7010 **MT** (known to work, using the T1650 ROM, but more + research is needed) - 9010 also known to work. No GPIO changes, so it should + be safe to flash. +- [Dell Precision T1650](t1650.md) +- [Gigabyte GA-G41M-ES2L motherboard](ga-g41m-es2l.md) +- [HP Elite 8200 SFF/MT](hp8200sff.md) (HP 6200 Pro Business probably works too) +- [HP Elite 8300 USDT](hp8300usdt.md) +- Intel D510MO and D410PT motherboards +- [Intel D945GCLF](d945gclf.md) + +Laptops (Intel, x86) +-------------------- + +- **Lenovo ThinkPad T440p - Also [available + to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-t440p/)** +- **Lenovo ThinkPad W541 - Also [available to + buy with Libreboot preinstalled](https://minifree.org/product/libreboot-w541/)** - NOTE: W540 also compatible (same mainboard, so flash the same ROM) +- Lenovo ThinkPad X230 - *Also* available on Minifree: +- [Apple MacBook1,1 and MacBook2,1](macbook21.md) +- [Dell Latitude E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel + GPU](latitude.md) +- [Dell Latitude E5420, E5520, E5530, E6420, E6430, E6520, E6530](latitude.md) + (Intel GPU variants only) +- [HP EliteBook 2170p](hp2170p.md) +- [HP EliteBook 2560p](hp2560p.md) +- [HP EliteBook 2570p](hp2570p.md) +- [HP EliteBook 820 G2](hp820g2.md) +- [HP EliteBook 8460p](hp8460p.md) +- [HP EliteBook 8470p](hp8470p.md) +- [HP EliteBook 8560w](hp8560w.md) +- [HP EliteBook Folio 9470m](hp9470m.md) +- [Lenovo ThinkPad R400](r400.md) +- Lenovo ThinkPad R500 +- [Lenovo ThinkPad T400 / T400S](t400.md) +- Lenovo Thinkpad T420 / T420S +- Lenovo ThinkPad T430 (**but not the T430S**) +- [Lenovo ThinkPad T500 / W500](t500.md) +- Lenovo ThinkPad T520 / W520 / T530 / W530 +- Lenovo ThinkPad T60, X60, X60S, X60 Tablet (with Intel GPU) +- [Lenovo ThinkPad X200 / X200S / X200 Tablet](x200.md) +- Lenovo Thinkpad X220 / X200 Tablet +- [Lenovo Thinkpad X230 / X230 Tablet](x230_external.md) + +Laptops (ARM, with U-Boot payload) +---------------------------------- + +- [ASUS Chromebook Flip C101 (gru-bob)](chromebooks.md) +- [Samsung Chromebook Plus (v1) (gru-kevin)](chromebooks.md) + +Emulation +--------- + +- [Qemu x86 and arm64](../misc/emulation.md) + **Disable security before flashing** ================================ @@ -30,445 +137,359 @@ sure to re-enable them after you're finished.** **See: [Disabling /dev/mem protection](devmem.md)** -PRECAUTIONS -=========== +ROM image file names +==================== -libreboot flashing can be risky business. Please ensure that you have external -flashing equipment, in case anything goes wrong. The general rule of thumb with -firmware is this: if it's non-free, replace it, but if you're already running -free firmware and it works nicely for you, you do not need to update it. -However, you might want to tweak it or try out newer releases of libreboot if -they have bug fixes for your board, and/or new security fixes. +Libreboot ROM images are named like +this: `payload_board_inittype_displaytype_keymap.rom` -If you're already running libre firmware on your board, you should decide for -sure whether you wish to risk it. See changelogs on -the [release announcements via the news page](/news/) and decide for yourself. +The `payload` option can be SeaBIOS, SeaGRUB or U-Boot. If GRUB is available +on a given board, in flash, both SeaBIOS and SeaGRUB are provided; SeaBIOS +images still have GRUB available via the SeaBIOS menu, and SeaGRUB means that +SeaBIOS automatically loads GRUB from flash first (but you can still choose +something else, by pressing ESC in SeaBIOS when prompted). -Haswell/Ivybridge/Sandybridge machines -====================================== +Inittype can be `libgfxinit`, `vgarom` or `normal`. The `libgfxinit` option +means coreboot provides native video initialisation, for onboard graphics. +The `vgarom` option means coreboot executes a VGA option ROM for video +initialisation. The `normal` option means coreboot provides no video +initialisation, via VGA ROM or native code. -BLOBS MISSING IN RELEASE ROMs ------------------------------ +Displaytype can be `txtmode` or `corebootfb` - if inittype is `normal`, this +is ignored because `txtmode` is assumed. -E.g. ThinkPad X220, X230, T440p, W541. - also desktop boards such as HP -Elite 8200 SFF. +If `payload` is `seabios` instead of `seagrub`, no keymaps are inserted into +flash and only US QWERTY is assumed, otherwise the keymap refers to what is used +in GRUB on `seagrub` payload setups. -The lbmk build system automatically fetches required vendor code for these -boards, when building, and sets them up properly, e.g. `me_cleaner` -is used. The same process is also available in a script, which can -insert them into ROM images. +If you use a libgfxinit image on a desktop machine, you can still insert a +graphics card and it'll work just fine; its own VGA option ROM will be +executed instead, if the primary payload is SeaBIOS, whether that be pure +SeaBIOS or a SeaGRUB setup. -**If you're using release ROMs, these files are missing, and must be -added. See: [ivy_has_common.md](ivy_has_common.md).** +EC firmware updates +=================== -About ROM image file names -========================== +Obviously, free EC firmware would be preferable, but it is not the case on +all machine. We would like to have free EC firmware on more machines, but for +now, we must rely on the vendor in a lot of cases. The EC is usually on a +separate flash, so you wouldn't think about it unless you knew it was there; +this is exactly why it's mentioned, so that you think about it, +[because proprietary software is bad](../../news/policy.md). -Init types and display mode ---------------------------- +In many cases, the EC firmware must be updated on a separate IC to the main +boot flash, and this can usually only be done with the vendor's own tool, +running from the vendor boot firmware, and usually only on Windows, because +they provide EC and BIOS/UEFI updates in the same utility. Find out what you +need to do for your machine before installing Libreboot. -NOTE: regardless of init type, on desktops, an external/add-on GPU can always -be used. On laptop hardware in libreboot, libgfxinit will always be used. On -desktop/server hardware, if available, libgfxinit will also always be used by -default (but in that setup, SeaBIOS can be used if you want to use an add-on -graphics card, e.g. on KCMA-D8, KGPE-D16, GA-G41M-ES2L) +It is recommended that you update to the latest EC firmware version. The +[EC firmware](../../faq.md#ec-embedded-controller-firmware) -**This means that on desktop hardware such as KCMA-D8, KGPE-D16, G43T-AM3, -GA-G41M-ES2L and others, you can use either the internal GPU or an add-on -PCI-E graphics card. Simply use a ROM image that starts with SeaBIOS, and you -can use both. On desktop/server hardware, libgfxinit simply means that you -CAN use the internal graphics chip, but you don't have to; external add-on -GPUs will also still work! However, if libgfxinit is enabled, that disables -coreboot from loading/executing PCI option ROMs which means you MUST use SeaBIOS -if you wish to use the add-on cards!** +Updating the EC can sometimes provide benefit depending on the vendor. For +example, they might fix power issues that could then enhance battery life. -### libgfxinit +ThinkPads +--------- -In this setup, on supported systems, coreboot's own native video initialization -code is used. This is referred to generically as libgfxinit, which is coreboot's -library in `3rdparty/libgfxinit` but not all boards with native video -initialization use libgfxinit; some of them are using coreboot's older style -of video initialization method, written purely in C. +See: -#### corebootfb (libgfxinit) +Otherwise, check the Lenovo website to find the update utility for your +mainboard. -high resolution coreboot framebuffer used on startup - -#### txtmode (libgfxinit) - -int10h text mode is used on startup. - -### vgarom - -NOTE: no configs in libreboot are currently available that use this method. - -With this method, coreboot is finding, loading and executing a VGA option ROM -for your graphics hardware. This would not be done on laptops, because that -implies needless supply of non-free software in libreboot, so this setup would only -ever be provided on desktop hardware where no GPU exists or where it is -desirable for you to use an external/add-on graphics card - -#### vesafb (vgarom) - -high resolution VESA framebuffer used on startup. This is equivalent -to `corebootfb` (high resolution framebuffer), but for setups where a VGA -Option ROM is used. - -#### txtmode (vgarom) - -int10h text mode is used on startup - -### normal - -NOTE: Dell Latitude E6400 Nvidia variant uses this. - -int10h text mode startup is implied here. The `vesafb` mode is unavailable here. -For `vesafb` mode, please use init type `vgarom`; most useful for GRUB payloads -or perhaps Tianocore. - -In this setup, coreboot is neither implementing libgfxinit / native graphics -initialization nor is it finding/loading/executing VGA option ROMs. In this -setup, SeaBIOS would most likely be used for that. - -The `normal` setup is supported in the libreboot build system, but not -currently used. It is there for desktop hardware that will be added in the -future, where those desktop boards do not have an onboard GPU and therefore an -add-on GPU is always used.. - -Payload names +HP EliteBooks ------------- -### grub +EC firmware is required in the main boot flash, but Libreboot's build system +automatically downloads this from HP for each machine, and inserts it, so +you don't have to worry. Just make sure that [vendor files are +inserted](ivy_has_common.md) if using release images. -ROM images with just `grub` in the file name will start first with the GRUB -payload. They may or may not also provide other payloads in the menu, such as -memtest86+, SeaBIOS, Tianacore and so on. +Other +----- -### seabios +The same wisdom applies to other laptop vendors. -ROM images with just `seabios` in the file name will start first with the -SeaBIOS payload. They will only contain SeaBIOS, but may also contain memtest as -an option in the boot menu. +Non-laptops typically do not have embedded controllers in them. -### seabios\_withgrub +Libreboot installation instructions +=================================== -ROM images that have `seabios_withgrub` in the file name start with SeaBIOS -first, but also have GRUB available in the boot menu when you press ESC. +In general, if Libreboot is already running, you can skip +towards the final section on this page, which provides general internal +flashing instructions. Internal flashing is when you flash the target machine +from the target machine, inside an operating system running on it. -ROM images with this and `grubonly` in the image start SeaBIOS, but only load -GRUB from SeaBIOS and the SeaBIOS menu is disabled. Use these images if you -only want GRUB; they are provided on systems that only have VGA ROM-based -initialisation, usually discrete graphics cards on desktop machines. +Some boards require special steps, even if Libreboot is already running, +for example if you [locked down the flash](../linux/grub_hardening.md), or +as another example, [SureStart on HP EliteBook 820 G2](hp820g2.md) -Which systems are supported? -============================ - -[Refer to the hardware compatibility page](../hardware/) +Therefore, before following generic guides, make sure to check first whether +your board has special instructions, otherwise use the generic guide at the +end of this article. Intel GbE MAC address (IFD-based systems) -===================================================================== +--------------------------------------- -You can change the MAC address in flash, on these machines. See: -[nvmutil documentation](nvmutil.md) +On all Intel platforms except X4X (e.g. Gigabyte GA-G41M-ES2L) and i945 +ones (e.g. ThinkPad X60, ThinkPad T60, MacBook2,1), an Intel Flash Descriptor is +used. If the board has Intel gigabit ethernet, the MAC address is included in +flash, and can (must) be changed prior to installation. -The MAC address is stored in a region of the boot flashed called *GbE NVM* -which is short for *gigabit ethernet non-volatile memory*. Refer to the -following article: +You can use [nvmutil](nvmutil.md) to change the MAC address. You will perform +this modification to the ROM image, before flashing it. -For GM45/ICH9M systems (e.g. ThinkPad X200/T400, Dell Latitude E6400), see: -[ich9utils documentation](ich9utils.md) (you can also use nvmutil, see link -above) +Flash lockdown / boot security +------------------- -libreboot puts a default MAC address in the available ROM images, but this is -a generic MAC address and it's identical on every ROM image. Technically, you -can use it but if you encounter other libreboot users on the same ethernet -switch, using the same physical network as you, you will encounter a MAC -address conflict. +This is referred to informally as *Secure libreBoot*. -NOTE: R500 thinkpads do not have an Intel gigabit ethernet NIC, so on that -laptop you can just flash the default ROM and you do not have to worry. +Full flash lockdown is possible, with cryptographic verification of your +Linux kernel and other files, using special features in the GRUB payload. -There are also some Intel X4X platforms that use an ICH10 southbridge, -supported in libreboot, but these are flashed in a *descriptorless* setup, -which means that the MAC address is irrelevant (either there will be an Intel -PHY module that is now unusable, and you use an add-on card, or it doesn't use -an Intel PHY module and the onboard NIC is usable). +See: [GRUB hardening / Secure libreBoot](../linux/grub_hardening.md) -HP EliteBook 820 G2 -=================== +If you already did this, it's possible that you may no longer be able to +flash internally. If that is the case, you must [flash externally](spi.md). -Please refer to the [820 G2 page](../hardware/hp820g2.md) for specific -flashing instructions, both internal and external. +Updating an existing installation +--------------------------------- -HP EliteBook 8560w -=================== +Unless otherwise stated, in sections pertaining to each mainboard below, +an existing Libreboot installation can be updated via internal flashing, +without any special steps; simply follow the general internal flashing +guide, in the final section further down this page. -Please refer to the [8560w page](../hardware/hp8560w.md) for specific -flashing instructions, both internal and external. +If you have an existing Libreboot installation but you *locked down the flash*, +updating it will require external flashing. -Install via host CPU (internal flashing) -======================================== +If you currently have the factory firmware, you probably need to flash +externally; on *some* machines, internal flashing is possible, usually with +special steps required that differ from updating an existing installation. -On all mainboards is a built-in programmer, which can read, erase and rewrite -the boot flash. However, it is not always usable by default. For example, it -may be configured to restrict write privileges by the host CPU. +The next sections will pertain to specific mainboards, where indicated, +followed by general internal flashing instructions where applicable. -In some situations, the host CPU can rewrite/erase/dump the boot flash. -This is called *internal flashing*. This means that you will run software, -namely `flashprog`, to read/erase/write the contents of the boot flash from a -running operating system on the target device. +HP EliteBook 820 G2 (internal and external) +------------------- -NOTE: please also read the sections further down this page. On some systems, -external flashing is required. This means that you power the system down and -use a special tool that connects to and reprograms the boot flash. +See: [HP EliteBook 820 G2 flashing guide](hp820g2.md) -NOTE: in some cases, external flashing is possible but special steps are -required. This depends on your mainboard. Again, please read this page -carefully. +The flashprog command is identical, except programmer selection, on external +and internal flashing; internal is only possible if you already have Libreboot. -Run flashprog on host CPU ------------------------- +HP EliteBook 8560w (vendor BIOS) +-------------------- -You can simply take any ROM image from the libreboot project, and flash it. -Boot a Linux distribution on the target device, and install flashprog. +If you have the factory +firmware: [HP 8560w external flashing guide](hp8560w.md) -In some cases, this is not possible or there are other considerations. Please -read this section *carefully*. - -### Flash chip size - -Use this to find out: - - flashprog -p internal - -In the output will be information pertaining to your boot flash. - -### Howto: read/write/erase the boot flash - -How to read the current chip contents: - - sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -r dump.bin - -You should still make several dumps, even if you're flashing internally, to -ensure that you get the same checksums. Check each dump using `sha1sum` - -How to erase and rewrite the chip contents: - - sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w libreboot.rom - -If you are re-flashing a GM45+ICH9M laptop (e.g. ThinkPad X200/X200S/X200T, -T400, T500, R400, W500 etc - but not R500), you should run the ich9gen utility -to preserve your mac address. -Please read the ich9utils documentation: -[ich9utils.md](ich9utils.md) - -NOTE: `force_I_want_a_brick` is not scary. Do not be scared! This merely disables -the safety checks in flashprog. Flashrom and coreboot change a lot, over the years, -and sometimes it's necessary to use this option. If you're scared, then just -follow the above instructions, but remove that option. So, just use `-p internal`. -If that doesn't work, next try `-p internal:boardmismatch=force`. If that doesn't -work, try `-p internal:boardmismatch=force,laptop=force_I_want_a_brick`. So long -as you *ensure* you're using the correct ROM for your machine, it will be safe -to run flashprog. These extra options just disable the safetyl checks in flashprog. -There is nothing to worry about. - -If successful, it will either say `VERIFIED` or it will say that the chip -contents are identical to the requested image. - -NOTE: there are exceptions where the above is not possible. Read about them in -the sections below: - -### Exceptions - -#### If your boot flash is currently write-protected - -[You must flash it externally](spi.md) - -#### DELL Latitude laptops +Dell Latitude laptops (vendor BIOS) +--------------------- See: [Dell Latitude flashing guide](latitude.md) -#### ThinkPad X200/T400/T500/W500/R400/R500 vendor BIOS +This applies to all supported Dell Latitude models. Remember to [update the +MAC address with nvmutil](nvmutil.md), before flashing. -If you're running one of these, it cannot be flashed internally if you're still -running the original Lenovo BIOS firmware. +ThinkPad X200/T400/T500/W500/R400/R500 +-------------------------------------- -[You must flash it externally](spi.md) +If you're running one of these with Lenovo BIOS, you must externally flash +Libreboot, because the original firmware restricts writes to the flash. -See notes further down on this page. We have guides for specific thinkpads, -related to disassembly and reassembly so that you can access the flash. +There machines all use SOIC8/SOIC16 flash ICs. Refer to pages specifically for +each machine: -Please also see notes about the built-in MAC address inside the boot flash, for -the onboard NIC (ethernet one); not relevant on R500, which doesn't use an -Intel NIC. +* [ThinkPad X200](x200.md) +* [ThinkPad T400](t400.md) +* [ThinkPad R400](r400.md) +* [ThinkPad T500/W500](t500.md) (R500 is similar) -TARGET: ThinkPad X201/X201S/X201 Tablet --------------------------------- +NOTE: T400S, X200S and X200 Tablet require different steps, because these have +WSON8 flash ICs on them, which will require some soldering. Please read +the [external flashing guide](spi.md) in the section pertaining to WSON. -**SUPPORT WAS REMOVED, because fan controls fail when the ME is neutered on -this platform. This only affects the arrandale machines, and does not affect -newer Intel platforms.** +You can find WSON8 probes online, that are similar to a SOIC8/SOIC16 clip. Your +mileage may very, but WSON8 has the same pinout as SOIC8 so you might have some +luck with that. -#### Intel D510MO and D410PT running original Intel BIOS +Intel D510MO/D410PT (vendor BIOS) +----------------------- -[You must flash it externally](spi.md) +See: [External flashing guide](spi.md) - both boards are compatible with +the same image. -D410PT is more or less the same board as D510MO, but we would like more info -about this board. If you have a D410PT mainboard, please contact the libreboot -project via IRC and ping `leah` before you flash it. When you do so, please -reference this paragraph on this web page. +Gigabyte GA-G41M-ES2L (vendor BIOS) +--------------------- -#### Gigabyte GA-G41M-ES2l (any firmware) +Internal flashing is possible, from factory BIOS to Libreboot, but special +steps are required. -Ignore this section. Internal flashing *is* possible, but there are two chips -and you must flash both chips. Refer to the guide:\ -[Gigabyte GA-G41M-ES2L installation guide](ga-g41m-es2l.md) +See: [Gigabyte GA-G41M-ES2L installation guide](ga-g41m-es2l.md) -#### Macbook1,1 running original Apple EFI firmware +Acer G43T-AM3 (vendor BIOS) +-------------------- -This laptop requires external flashing. Remove the mainboard and refer to -the [external flashing guide](spi.md); if libreboot is already running, you -can flash internally. +See: [Acer G43T-AM3](acer_g43t-am3.md) -MacBook2,1 can be flashed internally. +MacBook 1,1 / 2,1 / iMac 5,2 (vendor BIOS) +------------------------- -#### ASUS KFSN4-DRE? +MacBook *1,1* requires [external flashing](spi.md). MacBook *2,1* can always +be flashed internally. iMac 5,2 can be flashed internally. -Simply boot Linux with the default vendor firmware, and flash it internally, -but before you do: take a push pin, remove the metal pin, and superglue the -plastic part to the chip. Then remove the chip after you booting your -Linux system. Install a new chip, and flash *that*. +Also check the [Macbook2,1 hardware page](macbook21.md) + +ASUS KCMA-D8 / KGPE-D16 (vendor BIOS) +-------------------------- + +[You must flash it externally](spi.md) (DIP-8 section) - also look at +the [KGPE-D16 hardware page](kgpe-d16.md). + +Further information is available on the [KCMA-D8 page](kcma-d8.md). + +KGPE-D16 installation is essentially the same, with the same type of flash +IC (DIP-8). Refer to the external flashing guide. + +ASUS KFSN4-DRE (vendor BIOS) +------------------------- This board uses LPC flash in a PLCC32 socket. This coreboot page shows an example of the push pin as a proof of concept: -#### ASUS KGPE-D16 running original ASUS BIOS +See: [ASUS KFSN4-DRE guide](kfsn4-dre.md) -[You must flash it externally](spi.md) +Hot-swap the flash IC with another one while it's running, and flash it +internally. -#### ASUS KCMA-D8 running original ASUS BIOS +Intel D945GCLF (vendor BIOS) +--------------------------------- -[You must flash it externally](spi.md) +See: [Intel D945GCLF flashing guide](d945gclf.md) -#### ASUS D945GCLF running original Intel BIOS +Dell OptiPlex 7010/9010 MT (vendor BIOS) +--------------------- -[You must flash it externally](spi.md) +This board is essentially identical to the Dell Precision T1650, except that +it does not support ECC memory. Same wiring. -#### ThinkPad X60/X60S/X60T/T60 with Lenovo BIOS {#flashrom_lenovobios} +You can flash the T1650 image on this machine. NOTE: This applies to the MT +variant, specifically. Do not flash T1650 images on the 7010/9010 *SFF*. -**WARNING: Libreboot 20231021 and likely older 2023 releases do not have the -bootblock copied in release ROMs, so the bucts trick below will actually cause -a brick. This is fixed in lbmk as of 25 October 2023 onward, but you should -do this on 20231021 release ROMs before following the instructions below:** +Dell Precision T1650 desktop +------------------------------------ - dd if=libreboot.rom of=bootblock.bin bs=1 skip=$(($(stat -c %s libreboot.rom) - 0x10000)) count=64k +Refer to the [T1650 hardware page](t1650.md). External flashing +required, or you can set the Service Mode jumper and flash internally (from +vendor firmware, to Libreboot). -And then do this: +Dell OptiPlex 7020/9020/XE2 SFF/MT +------------------------------------ - dd if=bootblock.bin of=libreboot.rom bs=1 seek=$(($(stat -c %s libreboot.rom) - 0x20000)) count=64k conv=notrunc +Refer to the [7020/9020 hardware page](dell9020.md). Internal +flashing (from vendor firmware to Libreboot) is possible if you set the Service +Mode jumper. -(This was fixed in Libreboot 20231101) +HP EliteBook laptops (vendor BIOS) +-------------------- -**NOTE: the section below pertaining to 20160907 static binaries references -flashrom. Libreboot recommends flashprog nowadays, but if you're using that -utils archive, please note that it is from a time when Libreboot used -flashrom. Use flashrom there as that's what included in those binaries. -Libreboot does not currently document how to patch flashprog for sst/macronix -on X60/T60, when going (in software) from lenovobios to libreboot.** +Refer to the [hardware page]() for info about HP laptops, and +read the [external flashing guide](spi.md). -**NOTE: This section partially relates to `utils` release archive in -Libreboot 20160907, which contains static compiled binaries for things like -bucts and flashrom. It will *still* work on modern distros, and thus is -still referenced here. The `flash` script in that release can be used, with -modern Libreboot ROMs. Current Libreboot releases do not include pre-compiled -utilities, only ROMs.** +Links to specific HP laptop pages: -NOTE: If BIOS password auth is enabled, you can clear it by shorting pins on -an EEPROM and then resetting the password in Lenovo BIOS, prior to flashing -Libreboot. For T60, see: - -(TODO: link something here for X60) +* [HP EliteBook 2170p](hp2170p.md) +* [HP EliteBook 2560p](hp2560p.md) +* [HP EliteBook 2570p](hp2570p.md) +* [HP EliteBook 820 G2](hp820g2.md) +* [HP EliteBook 8460p](hp8460p.md) +* [HP EliteBook 8470p](hp8470p.md) +* [HP EliteBook Folio 9470m](hp9470m.md) -X60 BIOS password (Lenovo): you might find info here: - +These pages provide more info about external flashing. You must remember +to [insert vendor files](ivy_has_common.md), if you're using release ROMs. -You can just get bucts from the libreboot project, same thing for the patched -flashrom. In the Libreboot 20160907 release, there is a *utility* archive, which -has statically compiled executables. They still work just fine on modern -systems, and they can be used for this purpose. +HP Elite 8200 SFF (vendor BIOS) +------------------------- -Here are a list of targets: +See: [HP Elite 8200 SFF install guide](hp8200sff.md) -* ThinkPad X60/X60S/X60T: flash the X60 ROM -* ThinkPad T60 with Intel GPU: flash the T60 ROM -* ThinkPad T60 with ATI GPU: flash the Headless T60 ROM (no video init, but you - can get a serial console on the RS232 port if you use the Advanced Dock or - Advanced Mini Dock. Connect to it from another machine, using null modem - cable and USB serial adapter; *Screen* can connect to the serial console - and you will run it at 115200 baud rate. agetty/fgetty in Linux can give - you a serial console in your OS) +HP Elite 8300 USDT (vendor BIOS) +---------------------------- -You can replace Lenovo BIOS with libreboot, using flashrom running on the host -CPU. However, there are some considerations. NOTE: needs patching for SST -and macronix chips, but libreboot doesn't yet do this for flashprog. You can -use the old Libreboot 20160907 sources to get the modified flashrom instead, -which contains this patch - and static binaries are provided, for convenience; -they will still work, due to libs being statically linked. +See: [HP Elite 8200 USDT install guide](hp8300usdt.md) -Firstly, make sure that the yellow CMOS battery is installed, and functioning -correctly. You could check the voltage. The battery is a CR2032 -coin cell and it *should* be providing a 3V signal. You should check this while -it is connected to the board, because this will give a more accurate reading -(if the battery is weak, it will have severe voltage drop when there is any -load on it, which there will be. This coincell powers the real-time clock and -CMOS memory). +ThinkPad X220/X220T/T420/T420s/T520 +----------------------------------- -Lenovo BIOS restricts write access, but there is a weakness in it. With a -specially patched flashrom binary, you can easily flash it but the top 64KiB -region of the boot flash, containing your bootblock, cannot be flashed just -yet. However, there is a register called the *Backup Control* or *BUC* register -and in that register is a status bit called *Top Swap* or *TS*. +T420/T520: [T420 flash instructions](t420_external.md) -There are *2* bootblocks possible. The *other* bootblock is below the upper -64KiB one, which can't be flashed, but the lower one can. By using bucts, you -can set the machine to boot using that lower 64KiB bootblock, which is -read-write. You do this by setting the BUC.TS register to 1, using the `bucts` -program referenced below. +T420s/T520 are similar, in terms of assembly/disassembly. -The libreboot ROM images already have the upper 64KiB bootblock copied to the lower -one, so you don't have to worry about copying it yourself. +Now, as for X220/X220: -If you use the Libreboot 20160907 utils archive, there will be three -binaries: +X220/X220 Tablet is essentially the same as the X230, but cannot be flashed +internally; you must use [an external flasher](spi.md). + +Otherwise, look at [X230 disassembly](x230_external.md). Note that the X220 +has a single 8MB flash, instead of 8MB and 4MB. + +ThinkPad X230/T430/T530/W530/X230T +---------------------------------- + +Internal flashing from vendor BIOS to Libreboot is possible, but not +recommended. See: [IvyBridge ThinkPad internal flashing](ivy_internal.md). + +External flashing recommended, but only documented for X230. +See: [ThinkPad X230 install guide](x230_external.md). + +Otherwise, refer to [external SPI flashing](spi.md). + +ThinkPad T60/X60/X60Tablet/X60S +------------------------------- + +Only the Intel GPU is compatible. Do not flash the ATI GPU models. + +External flashing guides: + +* [ThinkPad X60](x60_unbrick.md) +* [ThinkPad X60 Tablet](x60tablet_unbrick.md) +* [ThinkPad T60](t60_unbrick.md) + +These machines can also be flashed internally, by exploiting a bug +in the original Lenovo BIOS. If there's a BIOS password at boot, you should +just flash externally. + +Internal flashing instructions: + +First, please ensure that your CR2032/CMOS battery is working. This is what +powers the SRAM containing BIOS settings, and it powers the real-time clock. +It also holds the BUC.TS value - this is what we need. + +BUC (Backup Control) register contains a bit called Top Swap (TS). The 64KB +bootblock at the top of flash is complemented by a backup Top Swap just above +it. The one at the end can't be flashed internally while Lenovo BIOS is running, +but the rest of it can be flashed (everything above the main bootblock). + +By setting the TS bit, you can make the machine boot from the backup bootblock. + +Download the Libreboot 20160907 utils archive, and in there you will find +these binaries: * `flashrom` * `flashrom_i945_sst` * `flashrom_i945_mx` -It's these last two binaries that you should use. Now compile bucts (just -run `make` in the bucts source directory). +You'll also find the bucts tool. Run it as root: -Run the bucts tool: + ./bucts 1 - sudo ./bucts 1 - -Ensure that your CMOS battery is connected too. Now you must determine whether -you have Macronix or SST. An X60/T60 thinkpad will have either an SST or a -Macronix chip. The Macronix chip will have "MX" written on the chip. You will -use `flashrom_i945_sst` for the SST chip, and `flashrom_i945_mx` for the -Macronix chip. - -Now run flashrom from the Libreboot 20160907 utils archive (for SST): - - sudo ./flashrom_i945_sst -p internal -w coreboot.rom - -Or Macronix: - - sudo ./flashrom_i945_mx -p internal -w coreboot.rom - -NOTE: you *can* just run both. One of them will succeed. It is perfectly -harmless to run both versions of flashrom. In fact, you should do so! +Now run both of these as root: + + ./flashrom_i945_sst -p internal -w coreboot.rom + ./flashrom_i945_mx -p internal -w coreboot.rom You'll see a lot of errors. This is normal. You should see something like: @@ -496,324 +517,178 @@ Your flash chip is in an unknown state. If you see this, rejoice! It means that the flash was successful. Please do not panic. Shut down now, and wait a few seconds, then turn back on again. -If you *did* run flashrom and it failed to flash, but you set bucts to 1 and -shut down, don't worry. Just remove the yellow coin-cell battery (it's underneath -the keyboard, connected to the mainboard), wait a minute or two, reconnect the -coin-cell and try again from scratch. In this instance, if flashrom didn't do -anything, and didn't flash anything, it means you still have Lenovo BIOS but -if bucts is set to 1, you can flush it and set it back to 0. BUC.TS is stored in -volatile memory, powered by that CR2032 coin-cell battery. +The main bootblock still isn't flashed, but you can shut down, wait a few +seconds and boot up again. When you do, you'll have Libreboot. Please make +sure to flash a second time, like so: + + flashprog -p internal -w coreboot.rom -Assuming that everything went well: +Libreboot recommends `flashprog` now, which is a fork of flashrom, but we used +flashrom in the 2016 release. The macronix/ssh flashrom binaries there are +specifically patched; check the Libreboot 20160907 source code for the actual +patches. The patches modify some flash chip definitions in flashrom, to exploit +the bug in Lenovo BIOS enabling internal flashing. -Switch to flashprog now! (avoid flashrom) ---------------------------------------- +You must ensure that the second flash is performed, upon reboot, because +otherwise if the CR2032 battery dies, bucts will be reset and it will no +longer boot. -Flash the ROM for a second time. For this second flashing attempt, the upper -64KiB bootblock is now read-write. Use the *unpatched* flashprog binary: +When you've done the second flash, which includes overwriting the main +bootblock, set bucts back to zero: - sudo ./flashprog -p internal -w libreboot.rom + ./bucts 0 -NOTE: At this point, we recommend use of flashprog instead of flashrom, for -the reasons mentioned in the [Libreboot 20240225 -release](../../news/libreboot20240225.md). +The second flash can be done by simply following the general internal flashing +guide further down on this page. -To reset bucts, do this: +Thinkpad T440p/W541 (vendor BIOS) +--------------------- - sudo ./bucts 0 +Guides: -ONLY set bucts back to 0 if you're sure that the upper 64KiB bootblock is -flashed. It is flashed if flashprog said VERIFIED when running the above -command. +* [ThinkPad T440p flashing guide](t440p_external.md) +* [ThinkPad W541 flashing guide](w541_external.md) -If it said VERIFIED, shut down. If it didn't say VERIFIED, make sure bucts is -still set to 1, and consult the libreboot project on IRC for advice, and avoid -shutting down your system until you get help. - -If all went well, libreboot should now be booting and you should be able to -boot into your operating system. - -If you messed up, there are external flashing instructions. See main navigation -menu on this page. These "external" instructions teach you how to flash -externally, using special equipment (requires disassembling your laptop and -removing the mainboard). - -Install using external flashing equipment -========================================= - -In many situations, the host CPU is restricted from rewriting/erasing/dumping -the boot flash. In this situations, you must re-flash the chip (containing the -boot firmware) externally. This is called *external flashing*. - -DO NOT buy CH341A! Read the above link, which explains why you shouldn't use it. -CH341A will damage your flash chip, and other components on your mainboard. - -How to use external flashing equipment --------------------------------------- - -Refer to the following article:\ -[Externally rewrite 25xx NOR flash via SPI protocol](spi.md) - -DELL Latitude laptops +HP EliteBook laptops (vendor BIOS) ------------------------- -See: [Dell Latitude flashing guide](latitude.md) +Each machine has it's own guide: -ASUS KFSN4-DRE --------------- +* [HP EliteBook 2170p](hp2170p.md) +* [HP EliteBook 2560p](hp2560p.md) +* [HP EliteBook 2570p](hp2570p.md) +* [HP EliteBook 820 G2](hp820g2.md) +* [HP EliteBook 8460p](hp8460p.md) +* [HP EliteBook 8470p](hp8470p.md) +* [HP EliteBook 8560w](hp8560w.md) +* [HP EliteBook Folio 9470m](hp9470m.md) -The KFSN4-DRE has an LPC chip. Most people have been flashing these -internally, hot-swapping the chip out after boot, preserving the original chip, -and using flashprog on a new chip as described above. - -TODO: Document PLCC32 (LPC) flashing. -The [FlexyICE](https://www.coreboot.org/FlexyICE) has been used to flash these -chips, but it is hard to find now. A custom flasher may be made such as -[flashprog serprog stm32](https://github.com/wosk/stm32-vserprog-lpc) or -[teensy flasher](https://www.flashprog.org/Teensy_3.1_SPI_%2B_LPC/FWH_Flasher) - -TARGET: DELL OptiPlex 7010 and 9010, MT ---------------------------------------- - -Coreboot officially only has SFF for the 7010/9010 boards, but the MT -ones have been studied, and verified to contain the same GPIO configuration -among other things, compared to T1650; the latter merely has extra wiring -for ECC. - -Simply flash a T1650 image onto one of these machines. We may or may not -provide this as a separate target (coreboot variant) in a future release, -but re-using the T1650 image is OK for now. - -TARGET: DELL Precision T1650 desktop ------------------------------------- - -Refer to the [T1650 hardware page](../hardware/t1650.md). - -TARGET: DELL OptiPlex 7020/9020 SFF and MT desktops ------------------------------------- - -Refer to the [7020/9020 hardware page](../hardware/dell9020.md). - -TARGET: Apple Macbook2,1, Macbook1,1 and iMac5,2 (i945 platform) ----------------------------------------------------------------- - -iMac5,2 is essentially the same board as Macbook2,1, and it is compatible with -libreboot. - -Refer to the following article:\ -[Macbook2,1 and MacBook1,1 installation guide](../hardware/macbook21.md) - -iMac5,2 isn't documented but you can find the flash chip on that board quite -easily. See the generic flashing guide:\ -[Externally rewrite 25xx NOR flash via SPI protocol](spi.md) - -TARGET: HP EliteBook laptops ----------------------------- - -Refer to the [hardware page](../hardware/) for info about HP laptops. - -Links to specific HP laptop pages: - -* [HP EliteBook 2170p](../hardware/hp2170p.md) -* [HP EliteBook 2560p](../hardware/hp2560p.md) -* [HP EliteBook 2570p](../hardware/hp2570p.md) -* [HP EliteBook 820 G2](../hardware/hp820g2.md) -* [HP EliteBook 8460p](../hardware/hp8460p.md) -* [HP EliteBook 8470p](../hardware/hp8470p.md) -* [HP EliteBook Folio 9470m](../hardware/hp9470m.md) - -TARGET: HP Elite 8200 SFF +HP Elite desktops (vendor BIOS) ------------------------- -See: [HP Elite 8200 SFF hardware information](../hardware/hp8200sff.md) +Each machine has it's own guide: -TARGET: Gigabyte GA-G41M-ES2L mainboard ---------------------------------------- +* [HP Elite 8200 SFF/MT](hp8200sff.md) (HP 6200 Pro Business probably works too) +* [HP Elite 8300 USDT](hp8300usdt.md) -Refer to the following article:\ -[Gigabyte GA-G41M-ES2L](ga-g41m-es2l.md) - -TARGET: Intel D510MO and D410PT mainboards ------------------------------------------- - -Refer to the following article:\ -[Intel D510MO and D410PT boards](d510mo.md) - -TARGET: Intel D945GCLF mainboard --------------------------------- - -Refer to the following article:\ -[Intel D945GCLF](d945gclf.md) - -TARGET: ASUS KGPE-D16 mainboard -------------------------------- - -Refer to the following article:\ -[ASUS KGPE-D16](kgpe-d16.md) - -TARGET: ASUS KCMA-D8 mainboard ------------------------------- - -Refer to the following article:\ -[ASUS KCMA-D8](../hardware/kcma-d8.md) - -TARGET: ASUS Chromebook C201 laptop ----------------------------- - -Refer to the following article:\ -[ASUS Chromebook C201](c201.md) - -TARGET: Lenovo ThinkPad X60 laptop ----------------------------------- - -Refer to the following article:\ -[ThinkPad X60](x60_unbrick.md) - -TARGET: Lenovo ThinkPad X60 Tablet laptop ------------------------------------------ - -Refer to the following article:\ -[ThinkPad X60 Tablet](x60tablet_unbrick.md) - -TARGET: Lenovo ThinkPad T60 laptop ----------------------------------- - -Refer to the following article:\ -[ThinkPad T60](t60_unbrick.md) - -TARGET: Lenovo ThinkPad X200 laptop ------------------------------------ - -Refer to the following article:\ -[ThinkPad X200](x200_external.md) - -TARGET: Lenovo ThinkPad X200S or X200 Tablet laptop ---------------------------------------------------- - -Software-wise, identical to regular X200 but SMD rework skills are required. -You must de-solder the default flash chip, and replace it with another one. - -Refer to the following article:\ -[25xx NOR flashing guide](spi.md) - -That guide, linked above, has instructions for how to deal with these machines. - -TARGET: Lenovo ThinkPad T400 laptop ------------------------------------ - -Refer to the following article:\ -[ThinkPad T400](t400_external.md) - -TARGET: Lenovo ThinkPad T400S laptop ------------------------------------- - -Software-wise, identical to regular T400 but SMD rework skills are required. -You must de-solder the default flash chip, and replace it with another one. - -Refer to the following article:\ -[25xx NOR flashing guide](spi.md) - -TARGET: Lenovo ThinkPad R400 laptop ------------------------------------ - -Refer to the following article:\ -[ThinkPad R400](r400_external.md) - -TARGET: Lenovo ThinkPad T500 or W500 laptop -------------------------------------------- - -These two laptops have identical mainboard, except for a few minor changes. - -Refer to the following article:\ -[ThinkPad T500/W500](t500_external.md) - -TARGET: Lenovo ThinkPad R500 laptop ------------------------------------ - -Refer to the following laptop:\ -[ThinkPad R500](../hardware/r500.md) - -sandybridge/ivybridge/haswell -================= - -**If using release ROMs, neutered ME must be inserted. Refer to the info -below.** - -On currently supported HP laptops AND desktops -------------------------------------- - -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](../../news/safety.md).** - -Refer to links about and the [hardware page](../hardware/) for installation -instructions on each HP mainboard. - -TARGET: ThinkPad X220/T420/T420s --------------------------------- - -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](../../news/safety.md).** - -Similar to X230 but there's only 1 flash. Intel ME image must be inserted -if using release ROMs. See: [guide](ivy_has_common.md) (says ivy/haswell but -the insert script for ME works with sandybridge aswell). - -Refer to assembly/disassembly guide for T420: - -[ThinkPad T420 external flashing](t420_external.md) (T420s is very similar) - -X220/X220i: disassembly/reassembly very similar to X230. Please refer to -X230 instructions, but note: X220/X220i has *one* flash chip, not two. - -**If using release ROMs, neutered ME must be inserted. Refer to the above -guide.** - -TARGET: Thinkpad X230/T430/T530/W530 +ARM-based Chromebooks --------------------- -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](../../news/safety.md).** +See: [Chromebook flashing instructions](chromebooks.md) -NOTE: no install docs for T430/T530/W530 yet, but check coreboot wiki. +NOTE: The generic flashing instructions (later on this page) apply only to +the x86 machines, because the Chromebooks still use flashrom with +the `-p host` argument instead of `-p internal` when flashing, and you typically +need to flash externally, due to Google's security model. -NOTE: Internal flashing is also possible, on this machine, from vendor firmware, -but it's still recommended to use a clip and a SPI flasher. However, follow -[internal X230 flashing from Lenovo firmware](ivy_internal.md) if you wish. +QEMU (arm64 and x86) +-------------------- -Refer to the [ivybridge/haswell common guide.](ivy_has_common.md) for how to -make the rom image usable for external flashing (with a clip). **If using -release ROMs, you must insert the neutered ME. Look at the info on that page.** +Libreboot can be used on QEMU (virtual machine), which is useful for debugging +payloads and generally trying out Libreboot, without requiring real hardware. -Read [board documentation](x230_external.md) for disassembly. +See: [Libreboot QEMU guide](../misc/emulation.md) -TARGET: Thinkpad X230t ---------------------- +Install via host CPU (internal flashing) +======================================== -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](../../news/safety.md).** +NOTE: This mainly applies to the x86 machines. -Refer to the [ivybridge/haswell common guide.](ivy_has_common.md) for how to -make the rom image usable for external flashing. +Please check other sections listed above, to see if there is anything +pertaining to your mainboard. Internal flashing means that you boot Linux or +BSD on the target machine, and run `flashprog` there, flashing the machine +directly. -Read [board documentation](x230_external.md) for disassembly. -(same instructions as X230, for this purpose of external flashing, but -full disassembly will differ slightly) +**If you can't flash internally, you must [flash externally](spi.md).** -**If using release ROMs, neutered ME must be inserted. Refer to the above -guide.** +Internal flashing is often unavailable with the factory firmware, but it is +usually possible when Libreboot is running (barring special circumstances). -TARGET: Thinkpad t440p/w541 ---------------------- +Run flashprog on host CPU +------------------------ -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](../../news/safety.md).** +**Always remember to [insert vendor files](ivy_has_common.md), when using +release images. Otherwise, these files are added automatically at build +time, when building from source (but they are not present in release images).** -Refer to the [ivybridge/haswell common guide.](ivy_has_common.md) for how to -make the rom image usable for external flashing. +### Flash chip size -T440p: Read [board documentation](t440p_external.md) for disassembly. +Use this to find out: -W541: Read [board documentation](w541_external.md) + flashprog -p internal -**If using release ROMs, neutered ME must be inserted. Refer to the above -guide.** +In the output will be information pertaining to your boot flash. + +### Howto: read/write/erase the boot flash + +How to read the current chip contents: + + sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -r dump.bin + +You should still make several dumps, even if you're flashing internally, to +ensure that you get the same checksums. Check each dump using `sha1sum` + +How to erase and rewrite the chip contents: + + sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w libreboot.rom + +NOTE: `force_I_want_a_brick` is not scary. Do not be scared! This merely disables +the safety checks in flashprog. Flashrom and coreboot change a lot, over the years, +and sometimes it's necessary to use this option. If you're scared, then just +follow the above instructions, but remove that option. So, just use `-p internal`. +If that doesn't work, next try `-p internal:boardmismatch=force`. If that doesn't +work, try `-p internal:boardmismatch=force,laptop=force_I_want_a_brick`. So long +as you *ensure* you're using the correct ROM for your machine, it will be safe +to run flashprog. These extra options just disable the safetyl checks in flashprog. +There is nothing to worry about. + +If successful, it will either say `VERIFIED` or it will say that the chip +contents are identical to the requested image. + +NOTE: there are exceptions where the above is not possible. Read about them in +the sections below: + +Removed boards +============== + +These boards were in Libreboot, but have been removed with the intention of +re-adding them at a later date. They were removed due to issues. List: + +- [Acer Chromebook 13 (CB5-311, C810) (nyan-big)](chromebooks.md) +- [ASUS Chromebit CS10 (veyron-mickey)](chromebooks.md) +- [ASUS Chromebook C201PA (veyron-speedy)](c201.md) +- [ASUS Chromebook Flip C100PA (veyron-minnie)](chromebooks.md) +- [Hisense Chromebook C11 and more (veyron-jerry)](chromebooks.md) +- [HP Chromebook 11 G1 (daisy-spring)](chromebooks.md) +- [HP Chromebook 14 G3 (nyan-blaze)](chromebooks.md) +- [Samsung Chromebook 2 11" (peach-pit)](chromebooks.md) +- [Samsung Chromebook 2 13" (peach-pi)](chromebooks.md) +- [Samsung Chromebook XE303 (daisy-snow)](chromebooks.md) +- Lenovo ThinkPad X301 (still in lbmk, but with `release="n"`) + +NOTES about removed boards +-------------------------- + +**WARNING: veyron speedy boards (e.g. C201) have non-functional video init as +of 19 February 2023, and no fix is yet available on that date. See: + - the last tested revision +from 2021.01 is known to work, for u-boot on this board. See:\ + +(alpernebbi on IRC is looking into this, to bisect uboot and update the latest +revisions) - for now, ROM images deleted from the Libreboot 20221214 +and 20230319 releases.** + +**WARNING: daisy- and peach- boards require a BL1 bootloader firmware, but the +one from coreboot 3rdparty is a fake/placeholder file. We need logic in the +Libreboot build system for properly fetching/extracting these, plus docs to +cover it. For now, assume that these are broken - ROM images are excluded, +for now, and have been deleted from the Libreboot 20221214 and 20230319 +releases. - see: +and ** + +d945gclf: Doesn't boot at all, according to last report. D510MO is still in +lbmk but still was reported problematic; other boards should be fine (see list +above). + +WARNING: Support for ARM chromebooks is at a proof-of-concept stage. Refer +to [docs/uboot/](../uboot/) for more info about the U-Boot payload. diff --git a/site/docs/hardware/kcma-d8.md b/site/docs/install/kcma-d8.md similarity index 100% rename from site/docs/hardware/kcma-d8.md rename to site/docs/install/kcma-d8.md diff --git a/site/docs/hardware/kfsn4-dre.md b/site/docs/install/kfsn4-dre.md similarity index 100% rename from site/docs/hardware/kfsn4-dre.md rename to site/docs/install/kfsn4-dre.md diff --git a/site/docs/install/kgpe-d16.md b/site/docs/install/kgpe-d16.md index 1496fe3..e6bc293 100644 --- a/site/docs/install/kgpe-d16.md +++ b/site/docs/install/kgpe-d16.md @@ -1,32 +1,215 @@ --- -title: KGPE-D16 external flashing instructions +title: ASUS KGPE-D16 server/workstation board x-toc-enable: true ... -These will be re-added to Libreboot at a later date, once proper testing -has been done. +TODO: OLD page. TODO: check that all the info is still valid. -Initial flashing instructions for KGPE-D16. +Introduction +============ -This guide is for those who want libreboot on their ASUS KGPE-D16 -motherboard, while they still have the proprietary ASUS BIOS present. -This guide can also be followed (adapted) if you brick you board, to -know how to recover. +This is a server board using AMD hardware (Fam10h *and Fam15h* CPUs +available). It can also be used for building a high-powered workstation. +Powered by libreboot. The coreboot port was done by Timothy Pearson of +Raptor Engineering Inc. and, working with them (and sponsoring the +work), merged into libreboot. *Memory initialization is still problematic, for some modules. We recommend avoiding Kingston modules.* +*For working configurations see .* -For more general information about this board, refer to -[../hardware/kgpe-d16.md](../hardware/kgpe-d16.md). +Flashing instructions can be found at +[../install/\#flashprog](../install/#flashprog) - note that external +flashing is required, if the proprietary (ASUS) firmware is +currently installed. If you already have libreboot, by default it is +possible to re-flash using software running in Linux on the +KGPE-D16, without using external hardware. -TODO: show photos here, and other info. +CPU compatibility +================= -External programmer -=================== +Opteron 62xx and 63xx CPUs work just fine. -Refer to [spi.md](spi.md) for a guide on how to re-flash externally. +Board status (compatibility) {#boardstatus} +============================ -The flash chip is in a PDIP 8 socket (SPI flash chip) on the -motherboard, which you take out and then re-flash with libreboot, using -the programmer. *DO NOT* remove the chip with your hands. Use a chip -extractor tool. +See . + +Form factor {#formfactor} +=========== + +These boards use the SSI EEB 3.61 form factor; make sure that your case +supports this. This form factor is similar to E-ATX in that the size is +identical, but the position of the screws are different. + +IPMI iKVM module add-on {#ipmi} +======================= + +Don't use it. It uses proprietary firmware and adds a backdoor (remote +out-of-band management chip, similar to the [Intel Management +Engine](../../faq.md#intelme). Fortunately, the firmware is +unsigned (possibly to replace) and physically separate from the +mainboard since it's on the add-on module, which you don't have to +install. + +Flash chips {#flashchips} +=========== + +2MiB flash chips are included by default, on these boards. It's on a +P-DIP 8 slot (SPI chip). The flash chip can be upgraded to higher sizes: +4MiB, 8MiB or 16MiB. With at least 8MiB, you could feasibly fit a +compressed linux+initramfs image (BusyBox+Linux system) into CBFS and +boot that, loading it into memory. + +libreboot has configs for 2, 4, 8 and 16 MiB flash chip sizes (default +flash chip is 2MiB). + +*DO NOT hot-swap the chip with your bare hands. Use a P-DIP 8 chip +extractor. These can be found online. See +* + +This guide shows how to flash the chip:\ +[25xx NOR flashing guide](../install/spi.md) + +Native graphics initialization {#graphics} +============================== + +Only text-mode is known to work, but linux(kernel) can initialize the +framebuffer display (if it has KMS - kernel mode setting). + +Current issues {#issues} +============== + +- LRDIMM memory modules are currently incompatible + (IT MAY WORK NOWADAYS, TODO TEST) +- SAS (via PIKE 2008 module) requires a vendor option ROM (and + SeaBIOS) to boot from it (theoretically possible to replace, but you + can put a kernel in CBFS or on SATA and boot from that, which + can be on a SAS drive. The linux kernel can use those SAS drives + (via PIKE module) without an option ROM). +- SeaBIOS lacked serial console support out-of-the-box in release 20160907 + and as such a workaround using SGABIOS is necessary. You can find + instructions on how to do this on the + [Notabug issue tracker](http://web.archive.org/web/20210416011941/https://notabug.org/libreboot/libreboot/issues/736) +- IPMI iKVM module (optional add-on card) uses proprietary firmware. + Since it's for remote out-of-band management, it's theoretically a + backdoor similar to the Intel Management Engine. Fortunately, unlike + the ME, this firmware is unsigned which means that a free + replacement is theoretically possible. For now, the libreboot + project recommends not installing the module. [This + project](https://github.com/facebook/openbmc) might be interesting + to derive from, for those who want to work on a free replacement. In + practise, out-of-band management isn't very useful anyway (or at + the very least, it's not a major inconvenience to not have it). +- Graphics: only text-mode works. See [\#graphics](#graphics) + +Hardware specifications {#specifications} +----------------------- + +The information here is adapted, from the ASUS website. + +### Processor / system bus + +- 2 CPU sockets (G34 compatible) +- HyperTransport™ Technology 3.0 +- CPUs supported: + - AMD Opteron 6100 series (Fam10h. No IOMMU support. *Not* + recommended - old. View errata datasheet here: + ) + - AMD Opteron 6200 series (Fam15h, with full IOMMU support in + libreboot. + - AMD Opteron 6300 series (Fam15h, with full IOMMU support in + libreboot. +- 6.4 GT/s per link (triple link) + +### Core logic + +- AMD SR5690 +- AMD SP5100 + +### Memory compatibility (with libreboot) + +- *Total Slots:* 16 (4-channel per CPU, 8 DIMM per CPU), ECC +- *Capacity:* Maximum up to 256GB RDIMM (Tested max 128GB) +- *Memory Type that is compatible:* + - DDR3 1600/1333/1066/800 UDIMM\* + - DDR3 1600/1333/1066/800 RDIMM\* +- *Compatible sizes per memory module:* + - 16GB, 8GB, 4GB, 3GB, 2GB, 1GB RDIMM + - 8GB, 4GB, 2GB, 1GB UDIMM + +### Expansion slots + +- *Total slot:* 6 +- *Slot Location 1:* PCI 32bit/33MHz +- *Slot Location 2:* PCI-E x16 (Gen2 X8 Link) +- *Slot Location 3:* PCI-E x16 (Gen2 X16 Link), Auto switch to x8 + link if slot 2 is occupied +- *Slot Location 4:* PCI-E x8 (Gen2 X4 Link) +- *Slot Location 5:* PCI-E x16 (Gen2 X16 Link) +- *Slot Location 6:* PCI-E x16 (Gen2 X16 Link), Auto turn off if + slot 5 is occupied, For 1U FH/FL Card, MIO supported +- *Additional Slot 1:* PIKE slot (for SAS drives. See notes above) +- Follow SSI Location\# + +### Form factor {#form-factor} + +- SSI EEB 3.61 (12"x13") + +### ASUS features + +- Fan Speed Control +- Rack Ready (Rack and Pedestal dual use) + +### Storage + +- *SATA controller:* + - AMD SP5100 + - 6 x SATA2 300MB/s +- *SAS/SATA Controller:* + - ASUS PIKE2008 3Gbps 8-port SAS card included + +### Networking + +- 2 x Intel® 82574L + 1 x Mgmt LAN + +### Graphics + +- Aspeed AST2050 with 8MB VRAM + +### On board I/O + +- 1 x PSU Power Connector (24-pin SSI power connector + 8-pin SSI + 12V + 8-pin SSI 12V power connector) +- 1 x Management Connector , Onboard socket for management card +- 3 x USB pin header , Up to 6 Devices +- 1 x Internal A Type USB Port +- 8 x Fan Header , 4pin (3pin/4pin fan dual support) +- 2 x SMBus +- 1 x Serial Port Header +- 1 x TPM header +- 1 x PS/2 KB/MS port + +### Back I/O ports + +- 1 x External Serial Port +- 2 x External USB Port +- 1 x VGA Port +- 2 x RJ-45 +- 1 x PS/2 KB/Mouse + +### Environment + +- *Operation temperature:* 10C \~ 35C +- *Non operation temperature:* -40C \~ 70C +- *Non operation humidity:* 20% \~ 90% ( Non condensing) + +### Monitoring + +- CPU temperatures +- Fan speed (RPM) + +### Note: + +- \* DDR3 1600 can only be supported with AMD Opteron 6300/6200 series + processor diff --git a/site/docs/install/latitude.md b/site/docs/install/latitude.md index e3cbbdf..67722f6 100644 --- a/site/docs/install/latitude.md +++ b/site/docs/install/latitude.md @@ -35,7 +35,7 @@ Thermal safety **Thermal safety**: this machine shuts down very quickly, when the machine exceeds 80c CPU temperature, which is far more conservative than on most laptops (non-Dell ones), so you should make sure that your thermals are -excellent. More info available [here](../hardware/dell_thermal.md). This is a +excellent. More info available [here](../install/dell_thermal.md). This is a known bug, but otherwise the machine will be mostly stable. Machine-specific notes diff --git a/site/docs/hardware/mac_address.md b/site/docs/install/mac_address.md similarity index 100% rename from site/docs/hardware/mac_address.md rename to site/docs/install/mac_address.md diff --git a/site/docs/hardware/macbook21.md b/site/docs/install/macbook21.md similarity index 100% rename from site/docs/hardware/macbook21.md rename to site/docs/install/macbook21.md diff --git a/site/docs/install/r400_external.md b/site/docs/install/r400.md similarity index 63% rename from site/docs/install/r400_external.md rename to site/docs/install/r400.md index 1a12602..eac5e37 100644 --- a/site/docs/install/r400_external.md +++ b/site/docs/install/r400.md @@ -3,6 +3,116 @@ title: Flashing the ThinkPad R400 x-toc-enable: true ... +
+
+![ThinkPad R400]() +
+ +| ***Specifications*** | | +|----------------------------|------------------------------------------------| +| **Manufacturer** | Lenovo | +| **Name** | ThinkPad R400 | +| **Released** | 2009 | +| **Chipset** | Intel Cantiga GM45 | +| **CPU** | Intel Core 2 Duo (Penryn/Merom family) or + Celeron M (Merom L family) | +| **Graphics** | Intel GMA 4500MHD (and ATI Mobility Radeon HD + 3470 or nVIDIA + GeForce 9300M on some models) | +| **Display** | 1280x800/1440x900 TFT | +| **Memory** | Up to 8GB | +| **Architecture** | x86_64 | +| **EC** | Proprietary | +| **Original boot firmware** | LenovoBIOS | +| **Intel ME/AMD PSP** | Present. Can be completly disabled. | +| **Flash chip** | SOIC-8/SOIC-16 4MiB/8MiB (Upgradable to 16MiB) | + +``` +W+: Works without blobs; +N: Doesn't work; +W*: Works with blobs; +U: Untested; +P+: Partially works; +P*: Partially works with blobs +``` + +| ***Features*** | | +|----------------|---------------------------------------| +| **Internal flashing with original boot firmware** | N | +| **Display** | W+ | +| **Audio** | W+ | +| **RAM Init** | W+ | +| **External output** | W+ | +| **Display brightness** | P+ | + +| ***Payloads supported*** | | +|---------------------------|-----------| +| **GRUB** | Works | +| **SeaBIOS** | Works | +| **SeaBIOS with GRUB** | Works | +
+ +Dell Latitude E6400 +=================== + +**If you haven't bought an R400 yet: the [Dell Latitude +E6400](../install/latitude.md) is much easier to flash; no disassembly required, +it can be flashed entirely in software from Dell BIOS to Libreboot. It is the +same hardware generation (GM45), with same CPUs, video processor, etc.** + +Introduction +============ + +It is believed that all or most R400 laptops are compatible. See notes +about [CPU +compatibility](#cpu_compatibility) for +potential incompatibilities. + +There are two possible flash chip sizes for the R400: 4MiB (32Mbit) or +8MiB (64Mbit). This can be identified by the type of flash chip below +the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16. + +*The R400 laptops come with the ME (and sometimes AMT in addition) +before flashing libreboot. libreboot disables and removes it by using a +modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* +(contains notes, plus instructions) + +Flashing instructions can be found at +[../install/\#flashprog](../install/#flashprog) + +NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +now, as of 27 January 2024, which is a fork of flashrom. + +EC update {#ecupdate} +========= + +It is recommended that you update to the latest EC firmware version. The +[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from +libreboot, so we don't actually provide that, but if you still have +Lenovo BIOS then you can just run the Lenovo BIOS update utility, which +will update both the BIOS and EC version. See: + +- [../install/#flashprog](../install/#flashprog) +- + +NOTE: this can only be done when you are using Lenovo BIOS. How to +update the EC firmware while running libreboot is unknown. libreboot +only replaces the BIOS firmware, not EC. + +Updated EC firmware has several advantages e.g. bettery battery +handling. + +The R400 is almost identical to the X200, code-wise. See +[x200.md](x200.md). + +TODO: put hardware register logs here like on the [X200](x200.md) and +[T400](t400.md) page. + +Installation notes +================== + +[External flashing](spi.md) required, if Lenovo BIOS is running. + **If you haven't bought an R400 yet: the [Dell Latitude E6400](latitude.md) is much easier to flash; no disassembly required, it can be flashed entirely in software from Dell BIOS to Libreboot. It is the @@ -72,7 +182,7 @@ now, as of 27 January 2024, which is a fork of flashrom. MAC address {#macaddress} =========== -Refer to [mac\_address.md](../hardware/mac_address.md). +Refer to [mac\_address.md](../install/mac_address.md). External flashing ================= diff --git a/site/docs/hardware/t1650.md b/site/docs/install/t1650.md similarity index 100% rename from site/docs/hardware/t1650.md rename to site/docs/install/t1650.md diff --git a/site/docs/install/t400_external.md b/site/docs/install/t400.md similarity index 67% rename from site/docs/install/t400_external.md rename to site/docs/install/t400.md index 244f50a..3596e0b 100644 --- a/site/docs/install/t400_external.md +++ b/site/docs/install/t400.md @@ -3,21 +3,111 @@ title: Flashing the ThinkPad T400 externally x-toc-enable: true ... -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. +
+
+ThinkPad T400 +
+ +| ***Specifications*** | | +|----------------------------|------------------------------------------------| +| **Manufacturer** | Lenovo | +| **Name** | ThinkPad T400 | +| **Released** | 2009 | +| **Chipset** | Intel Cantiga GM45 | +| **CPU** | Intel Core 2 Duo (Penryn family). A Quad-core + mod exists, replacing the Core 2 Duo with a Core Quad | +| **Graphics** | Intel GMA 4500MHD (and ATI Mobility Radeon HD + 3650 on some models) | +| **Display** | 1280x800/1440x900 TFT | +| **Memory** | 2 or 4GB (Upgradable to 8GB) | +| **Architecture** | x86_64 | +| **EC** | Proprietary | +| **Original boot firmware** | LenovoBIOS | +| **Intel ME/AMD PSP** | Present. Can be completly disabled. | +| **Flash chip** | SOIC-8/SOIC-16/WSON-8 4MiB/8MiB (Upgradable + to 16MiB) | +``` +W+: Works without blobs; +N: Doesn't work; +W*: Works with blobs; +U: Untested; +P+: Partially works; +P*: Partially works with blobs +``` + +| ***Features*** | | +|----------------|---------------------------------------| +| **Internal flashing with original boot firmware** | N | +| **Display** | W+ | +| **Audio** | W+ | +| **RAM Init** | W+ | +| **External output** | W+ | +| **Display brightness** | P+ | + +| ***Payloads supported*** | | +|---------------------------|-----------| +| **GRUB** | Works | +| **SeaBIOS** | Works | +| **SeaBIOS with GRUB** | Works | +
Dell Latitude E6400 =================== **If you haven't bought an T400 yet: the [Dell Latitude -E6400](latitude.md) is much easier to flash; no disassembly required, +E6400](../install/latitude.md) is much easier to flash; no disassembly required, it can be flashed entirely in software from Dell BIOS to Libreboot. It is the same hardware generation (GM45), with same CPUs, video processor, etc.** Introduction ============ -Initial flashing instructions for T400. +It is believed that all or most laptops of the model T400 are compatible. See notes +about [CPU +compatibility](#cpu_compatibility) for +potential incompatibilities. + +There are two possible flash chip sizes for the T400: 4MiB (32Mbit) or +8MiB (64Mbit). This can be identified by the type of flash chip below +the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16. + +*The T400 laptops come with the ME (and sometimes AMT in addition) +before flashing libreboot. libreboot disables and removes it by using a +modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* +(contains notes, plus instructions) + +Flashing instructions can be found at +[../install/\#flashprog](../install/#flashprog) + +NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +now, as of 27 January 2024, which is a fork of flashrom. + +EC update {#ecupdate} +========= + +It is recommended that you update to the latest EC firmware version. The +[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from +libreboot, so we don't actually provide that, but if you still have +Lenovo BIOS then you can just run the Lenovo BIOS update utility, which +will update both the BIOS and EC version. See: + +- [../install/#flashprog](../install/#flashprog) +- + +NOTE: this can only be done when you are using Lenovo BIOS. How to +update the EC firmware while running libreboot is unknown. libreboot +only replaces the BIOS firmware, not EC. + +Updated EC firmware has several advantages e.g. bettery battery +handling. + +The T400 is almost identical to the X200, code-wise. See +[x200.md](x200.md). + +Installation notes +============ + +[External flashing](spi.md) required, if Lenovo BIOS is running. This guide is for those who want libreboot on their ThinkPad T400 while they still have the original Lenovo BIOS present. This guide can also be @@ -85,7 +175,7 @@ Use this to find out: MAC address {#macaddress} =========== -Refer to [mac\_address.md](../hardware/mac_address.md). +Refer to [mac\_address.md](mac_address.md). How to flash externally ========================= diff --git a/site/docs/install/t500_external.md b/site/docs/install/t500.md similarity index 69% rename from site/docs/install/t500_external.md rename to site/docs/install/t500.md index 7053a82..fbd067d 100644 --- a/site/docs/install/t500_external.md +++ b/site/docs/install/t500.md @@ -3,15 +3,113 @@ title: ThinkPad T500 external flashing x-toc-enable: true ... -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. +
+
+ThinkPad T500 +
-**If you haven't bought a T500 yet: the [Dell Latitude -E6400](latitude.md) is much easier to flash; no disassembly required, +| ***Specifications*** | | +|----------------------------|------------------------------------------------| +| **Manufacturer** | Lenovo | +| **Name** | ThinkPad T500 | +| **Released** | 2009 | +| **Chipset** | Intel Cantiga GM45 | +| **CPU** | Intel Core 2 Duo (Penryn family). A Quad-core + mod exists, replacing the Core 2 Duo with a Core Quad | +| **Graphics** | Intel GMA 4500MHD (and ATI Mobility Radeon HD + 3650 on some models) | +| **Display** | 1280x800/1680x1050/1920x1200 TFT | +| **Memory** | 2 or 4GB (Upgradable to 8GB) | +| **Architecture** | x86_64 | +| **EC** | Proprietary | +| **Original boot firmware** | LenovoBIOS | +| **Intel ME/AMD PSP** | Present. Can be completly disabled. | +| **Flash chip** | SOIC-8/SOIC-16/WSON-8 4MiB/8MiB (Upgradable + to 16MiB) | +``` +W+: Works without blobs; +N: Doesn't work; +W*: Works with blobs; +U: Untested; +P+: Partially works; +P*: Partially works with blobs +``` + +| ***Features*** | | +|----------------|---------------------------------------| +| **Internal flashing with original boot firmware** | N | +| **Display** | W+ | +| **Audio** | W+ | +| **RAM Init** | W+ | +| **External output** | W+ | +| **Display brightness** | P+ | + +| ***Payloads supported*** | | +|---------------------------|-----------| +| **GRUB** | Works | +| **SeaBIOS** | Works | +| **SeaBIOS with GRUB** | Works | +
+ +Dell Latitude E6400 +=================== + +**If you haven't bought an T500 yet: the [Dell Latitude +E6400](../install/latitude.md) is much easier to flash; no disassembly required, it can be flashed entirely in software from Dell BIOS to Libreboot. It is the same hardware generation (GM45), with same CPUs, video processor, etc.** -Initial flashing instructions for T500. +Introduction +============ + +It is believed that all or most T500 laptops are compatible. See notes +about [CPU +compatibility](#cpu_compatibility) for +potential incompatibilities. + +W500 is also compatible, and mostly the same design as T500. + +There are two possible flash chip sizes for the T500: 4MiB (32Mbit) or +8MiB (64Mbit). This can be identified by the type of flash chip below +the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16. + +*The T500 laptops come with the ME (and sometimes AMT in addition) +before flashing libreboot. libreboot disables and removes it by using a +modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* +(contains notes, plus instructions) + +Flashing instructions can be found at +[../install/\#flashprog](../install/#flashprog) + +NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +now, as of 27 January 2024, which is a fork of flashrom. + +EC update {#ecupdate} +========= + +It is recommended that you update to the latest EC firmware version. The +[EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from +libreboot, so we don't actually provide that, but if you still have +Lenovo BIOS then you can just run the Lenovo BIOS update utility, which +will update both the BIOS and EC version. See: + +- [../install/#flashprog](../install/#flashprog) +- + +NOTE: this can only be done when you are using Lenovo BIOS. How to +update the EC firmware while running libreboot is unknown. libreboot +only replaces the BIOS firmware, not EC. + +Updated EC firmware has several advantages e.g. bettery battery +handling. + +The T500 is almost identical to the X200, code-wise. See +[x200.md](x200.md). + +Installation notes +================== + +[External flashing](spi.md) required, if Lenovo BIOS is running. This guide is for those who want libreboot on their ThinkPad T500 while they still have the original Lenovo BIOS present. This guide can also be @@ -81,7 +179,7 @@ Use this to find out: MAC address {#macaddress} =========== -Refer to [mac\_address.md](../hardware/mac_address.md). +Refer to [mac\_address.md](mac_address.md). Clip wiring =========== @@ -211,14 +309,6 @@ the proper application procedure. Wifi ==== -The T500 typically comes with an Intel wifi chipset, which does not work -without proprietary software. For a list of wifi chipsets that work -without proprietary software, see -[../hardware/\#recommended\_wifi](../hardware/#recommended_wifi). - -Some T500 laptops might come with an Atheros chipset, but this is -802.11g only. - It is recommended that you install a new wifi chipset. This can only be done after installing libreboot, because the original firmware has a whitelist of approved chips, and it will refuse to boot if you use an diff --git a/site/docs/hardware/x200.md b/site/docs/install/x200.md similarity index 57% rename from site/docs/hardware/x200.md rename to site/docs/install/x200.md index ed2a562..109246c 100644 --- a/site/docs/hardware/x200.md +++ b/site/docs/install/x200.md @@ -1,5 +1,5 @@ --- -title: ThinkPad X200 +title: First-time ThinkPad X200 flashing x-toc-enable: true ... @@ -48,6 +48,7 @@ P*: Partially works with blobs | **SeaBIOS** | Works | | **SeaBIOS with GRUB** | Works | + Dell Latitude E6400 =================== @@ -182,14 +183,159 @@ the following: *"This product contains Lithium Ion Battery, Lithium Battery and a lamp which contains mercury; dispose according to local, state or federal laws"* (one with an LED backlit panel will say something different). -Hardware register dumps {#regdumps} ------------------------ +Installation notes +================== -The coreboot wiki -[shows](http://www.coreboot.org/Motherboard_Porting_Guide) how to -collect various logs useful in porting to new boards. Following are -outputs from the X200: +[External flashing](spi.md) required, if running Lenovo BIOS. -- BIOS 3.15, EC 1.06 - - [hwdumps/x200/](hwdumps/x200/) +This guide is for those who want libreboot on their ThinkPad X200 while +they still have the original Lenovo BIOS present. This guide can also be +followed (adapted) if you brick your X200, to know how to recover. +If you have the original Lenovo firmware running, you will need to take the +keyboard and palmrest off so that you can access the flash chip, which is just +underneath the palm rest. You will then connect an external SPI programmer, to +re-flash the chip externally while it is powered off with the battery removed. + +NOTE: This guide only applies to the regular X200. For X200S and X200 Tablet +flashing, please read other guides available on libreboot.org. + +Flash chip size +=============== + +Run this command on x200 to find out flash chip model and its size: + + flashprog -p internal + +MAC address +=========== + +Refer to [mac\_address.md](mac_address.md). + +The procedure +------------- + +This section is for the X200. This does not apply to the X200S or X200 +Tablet (for those systems, you have to remove the motherboard +completely, since the flash chip is on the other side of the board). + +Remove these screws:\ +![](https://av.libreboot.org/x200/disassembly/0003.jpg) + +Gently push the keyboard towards the screen, then lift it off, and optionally +disconnect it from the board:\ +![](https://av.libreboot.org/x200/disassembly/0004.jpg) +![](https://av.libreboot.org/x200/disassembly/0005.jpg) + +Disconnect the cable of the fingerpring reader, and then pull up the palm rest, +lifting up the left and right side of it:\ +![](https://av.libreboot.org/x200/disassembly/0006.1.jpg) +![](https://av.libreboot.org/x200/disassembly/0006.jpg) + +This shows the location of the flash chip, for both SOIC-8 and SOIC-16:\ +![](https://av.libreboot.org/x200/x200_soic16.jpg) +![](https://av.libreboot.org/x200/x200_soic8.jpg) + +Lift back the tape that covers a part of the flash chip, and then +connect the clip:\ +![](https://av.libreboot.org/x200/disassembly/0008.jpg) + +Now, you should be ready to install libreboot. + +Refer to the [SPI programming instructions](spi.md). + +When you're done, put the system back together. If it doesn't boot, try other +RAM modules because raminit is very unreliable on this platform (in coreboot). + +Memory +====== + +In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks +that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). +Non-matching pairs may not work. Single module (meaning, one of the slots +will be empty) will currently only work in slot 0. + +NOTE: according to users reports, non matching pairs (e.g. 1+2 GiB) might +work in some cases. + +Make sure that the RAM you buy is the 2Rx8 configuration when buying 4GiB sticks +(In other words: maximum of 2GiB per rank, 2 ranks per card). + +In this photo, 8GiB of RAM (2x4GiB) is installed: + +![](https://av.libreboot.org/x200/disassembly/0018.jpg) + +Boot it! +-------- + +You should see something like this: + +![](https://av.libreboot.org/x200/disassembly/0019.jpg) + +Now [install Linux](../linux/). + +X200S and X200 Tablet users: GPIO33 trick will not work. +-------------------------------------------------------- + +sgsit found out about a pin called GPIO33, which can be grounded to +disable the flashing protections by the descriptor and stop the ME from +starting (which itself interferes with flashing attempts). The theory +was proven correct; however, it is still useless in practise. + +Look just above the 7 in TP37 (that's GPIO33): + +![](https://av.libreboot.org/x200/gpio33_location.jpg) + +By default we would see this in lenovobios, when trying flashprog -p +internal -w rom.rom: + +``` +FREG0: Warning: Flash Descriptor region (0x00000000-0x00000fff) is read-only. +FREG2: Warning: Management Engine region (0x00001000-0x005f5fff) is locked. +``` + +With GPIO33 grounded during boot, this disabled the flash protections as +set by descriptor, and stopped the ME from starting. The output changed +to: + +``` +The Flash Descriptor Override Strap-Pin is set. Restrictions implied by +the Master Section of the flash descriptor are NOT in effect. Please note +that Protected Range (PR) restrictions still apply. +``` + +The part in bold is what got us. This was still observed: + +``` +PR0: Warning: 0x007e0000-0x01ffffff is read-only. +PR4: Warning: 0x005f8000-0x005fffff is locked. +``` + +It is actually possible to disable these protections. Lenovobios does, +when updating the BIOS (proprietary one). One possible way to go about +this would be to debug the BIOS update utility from Lenovo, to find out +how it's disabling these protections. Some more research is available +here: + + +Of course, it's likely that the Lenovo BIOS is checking for some bit in memory +that tells it not to disable flashing, and then it won't set PRx registers. The +way the Lenovo BIOS updater works is, it is executed in Windows first and then +a reboot happens, triggering the re-flashing to happen during early boot. It is +probably setting something in memory and loading the ROM, plus a payload program +that does the flashing; Lenovo BIOS then probably sees that and runs that, instead +of setting PRx and going for normal boot. It is theoretically possible that we +could discover how this works, by debugging the Lenovo BIOS update utility (in +Windows), and then replicate what it is doing, with some tool for Linux, +then load a flashprog binary into memory and the ROM to flash (for the BIOS +region). You would do this with GPIO33 grounded, and the payload program would +actually flash the entire chip, with just a normal libreboot image. + +It's possible. The above is likely the only way that the Lenovo BIOS updater +program works. So if we discover precisely how to do that, then you could +just connect some pogo pins to ground GPIO33, then boot up, run some software +(which would have to be written) that does the above. + +On a related note, libreboot has a utility that could help with +investigating this: +[ich9utils.md#demefactory](ich9utils.md#demefactory) diff --git a/site/docs/hardware/x200.uk.md b/site/docs/install/x200.uk.md similarity index 52% rename from site/docs/hardware/x200.uk.md rename to site/docs/install/x200.uk.md index 8d24579..3ea6113 100644 --- a/site/docs/hardware/x200.uk.md +++ b/site/docs/install/x200.uk.md @@ -1,5 +1,5 @@ --- -title: ThinkPad X200 +title: Прошивка ThinkPad X200 вперше x-toc-enable: true ... @@ -175,14 +175,153 @@ CCFL містять меркурій. На X200 з CCFL підсвіткою (я яка містить ртуть; утилізуйте відповідно до місцевих, державних або федеральних законів"* (на тому, що має світлодіодне підсвічування, буде написано щось інше). -Дампи апаратного регістру {#regdumps} ------------------------ +Installation notes +================== -Вікі coreboot -[показує](http://www.coreboot.org/Motherboard_Porting_Guide) як -збирати різноманітні логи, корисні для портування на нові плати. Нижче наведено -вихідні дані X200: +[External flashing](spi.md) required, if running Lenovo BIOS. -- BIOS 3.15, EC 1.06 - - [hwdumps/x200/](hwdumps/x200/) +Цей посібник призначений для тих, хто бажає libreboot на своєму ThinkPad X200, +поки у нього все ще є оригінальний Lenovo BIOS в наявності. Цього керівництва також можна +дотримуватися (адаптувати), якщо ви перетворили ваш X200 на цеглину, щоб знати, як його відновити. +Якщо у вас виконується оригінальна мікропрограма Lenovo, вам потрібно буде зняти +клавіатуру та підставку для рук, щоб мати доступ до мікросхеми флеш-пам'яті, яка знаходиться прямо +під підставкою для рук. Потім ви підключите зовнішній програматор SPI, щоб +повторно прошити мікросхему зовні, коли вона вимкнена та акумулятор висунуто. + +ПРИМІТКА: Цей посібник стосується лише звичайного X200. Для перепрошивки X200S та X200 Tablet, +будь-ласка прочитайте інші посібники, доступні на libreboot.org. + +Розмір флеш-чіпа +=============== + +Виконайте цю команду на x200, щоб дізнатися модель флеш-чіпа та його розмір: + + flashprog -p internal + +MAC адреса +=========== + +Зверніться до [mac\_address.md](mac_address.md). + +Процедура +------------- + +Цей розділ стосується X200. Цей не стосується X200S або X200 +Tablet (для цих систем потрібно повністю видалити материнську плату, +оскільки мікросхема флеш-пам'яті знаходиться з іншого боку плати). + +Викрутіть ці гвинти:\ +![](https://av.libreboot.org/x200/disassembly/0003.jpg) + +Обережно притисніть клавіатуру до екрана, потім підніміть її та за бажанням +від'єднайте від плати:\ +![](https://av.libreboot.org/x200/disassembly/0004.jpg) +![](https://av.libreboot.org/x200/disassembly/0005.jpg) + +Від'єднайте кабель пристрою для зчитування відбитків пальців, а потім потягніть упор для рук, +піднявши його ліву та праву сторону:\ +![](https://av.libreboot.org/x200/disassembly/0006.1.jpg) +![](https://av.libreboot.org/x200/disassembly/0006.jpg) + +Тут показано розташування мікросхеми флеш-пам'яті, для обох SOIC-8 та SOIC-16:\ +![](https://av.libreboot.org/x200/x200_soic16.jpg) +![](https://av.libreboot.org/x200/x200_soic8.jpg) + +Підніміть стрічку, яка закриває частину флеш-пам'яті, а потім +приєднайте затискач:\ +![](https://av.libreboot.org/x200/disassembly/0008.jpg) + +Тепер ви повинні бути готові до встановлення libreboot. + +Зверніться до [інструкцій програмування SPI](spi.md). + +Закінчивши, знову зберіть систему. Якщо вона не завантажується, спробуйте інші +модулі оперативної пам'яті, тому що raminit дуже ненадійний на цій платформі (в coreboot). + +Пам'ять +====== + +У машинах DDR3 з Cantiga (GM45/GS45/PM45), північний міст потребує стіків, +які працюватимуть як PC3-8500 (швидші стіки PC3/PC3L можуть працювати як PC3-8500). +Пари, що не збігаються, можуть не працювати. Один модуль (тобто один із слотів +буде порожнім) наразі працюватиме лише в слоті 0. + +ПРИМІТКА: згідно зі звітами користувачів, у деяких випадках невідповідні пари ( 1+2 ГБ) можуть +працювати в деяких випадках. + +Переконайтесь, що оперативна пам'ять, яку ви купуєте, має конфігурацію 2Rx8, купуючи стіки по 4 ГБ +(Іншими словами: максимально 2 ГБ на ранг, 2 ранга на картку). + +На цьому фото встановлено 8 ГБ оперативної пам'яті (2x4ГБ): + +![](https://av.libreboot.org/x200/disassembly/0018.jpg) + +Завантажуйтесь! +-------- + +Ви маєте побачити щось подібне цьому: + +![](https://av.libreboot.org/x200/disassembly/0019.jpg) + +Тепер [встановлюйте Linux](../linux/). + +Користувачі X200S та X200 Tablet: трюк GPIO33 не спрацює. +-------------------------------------------------------- + +sgsit дізнався про контакт під назвою GPIO33, який можна заземлити, +щоб вимкнути захист прошивки за допомогою дескриптора та зупинити ME від +запуску (який сам по собі перешкоджає спробам прошивки). Теорія була +доведена правильною; однак на практиці це все одно марно. + +Подивіться трохи вище 7 у TP37 (це GPIO33): + +![](https://av.libreboot.org/x200/gpio33_location.jpg) + +Це замовчуванням ми побачимо це в lenovobios, під час спроби flashprog -p +internal -w rom.rom: + + FREG0: Warning: Flash Descriptor region (0x00000000-0x00000fff) is read-only. + FREG2: Warning: Management Engine region (0x00001000-0x005f5fff) is locked. + +Коли GPIO33 було заземлено під час завантаження, це вимкнуло захист флеш-пам'яті, +встановлений дескриптором, і зупинило запуск ME. Результат змінився +на: + + The Flash Descriptor Override Strap-Pin is set. Restrictions implied by + the Master Section of the flash descriptor are NOT in effect. Please note + that Protected Range (PR) restrictions still apply. + +Частина, виділена жирним шрифтом, - це те, що нас дістало. Це все ж спостерігалось: + + PR0: Warning: 0x007e0000-0x01ffffff is read-only. + PR4: Warning: 0x005f8000-0x005fffff is locked. + +Насправді ці засоби захисту можна відключити. Lenovobios робить це, +під час оновлення BIOS (пропрієтарного). Одним із можливих способів вирішити цю проблему +було б відлагодити утиліту оновлення BIOS від Lenovo, для віднаходження, +як вона вимикає ці засоби захисту. Додаткові дослідження доступні +тут: + + +Звичайно, ймовірно, що Lenovo BIOS перевіряє якийсь біт в пам'яті, +який говорить йому не вимикати перепрошивку, а потім він не встановлює регістри PRx. Принцип +роботи програми оновлення BIOS Lenovo полягає в тому, що вона спочатку виконується в Windows, +а потім відбувається перезавантаження, ініціюючи перепрошивку під час раннього завантаження. Ймовірно, +це встановлює щось у пам'яті та завантажує ROM, плюс програму корисного навантаження, +яка виконує перепрошивання; тоді Lenovo BIOS, ймовірно, бачить це та запускає це замість +встановлення PRx і переходу до нормального завантаження. Теоретично можливо, що ми +зможемо дізнатися, як це працює, налагодивши утиліту оновлення BIOS Lenovo (у +Windows), а потім відтворивши її дії за допомогою якогось інструменту для Linux, +а потім завантаживши двійковий файл flashprog в пам'ять та ROM для прошивки (для BIOS +регіона). Ви б зробили це з заземленням GPIO33, і програма корисного навантаження +фактично прошиє весь чіп, лише звичайним образом libreboot. + +Це можливо. Ймовірно, це єдиний спосіб роботи програми оновлення BIOS Lenovo. +Отже, якщо ми дізнаємося, як саме це зробити, тоді ви можете просто підключити кілька +контактів pogo для заземлення GPIO33, потім завантажитися, запустити програмне забезпечення +(яке потрібно було б написати), яке виконує вищезазначене. + +У зв'язку з цим у libreboot є утиліта, яка може допомогти +розслідувати це: +[ich9utils.md#demefactory](ich9utils.md#demefactory) diff --git a/site/docs/install/x200_external.md b/site/docs/install/x200_external.md deleted file mode 100644 index 015ac0a..0000000 --- a/site/docs/install/x200_external.md +++ /dev/null @@ -1,164 +0,0 @@ ---- -title: First-time ThinkPad X200 flashing -x-toc-enable: true -... - -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. - -**If you haven't bought an X200 yet: the [Dell Latitude -E6400](latitude.md) is much easier to flash; no disassembly required, -it can be flashed entirely in software from Dell BIOS to Libreboot. It is the -same hardware generation (GM45), with same CPUs, video processor, etc.** - -This guide is for those who want libreboot on their ThinkPad X200 while -they still have the original Lenovo BIOS present. This guide can also be -followed (adapted) if you brick your X200, to know how to recover. - -If you have the original Lenovo firmware running, you will need to take the -keyboard and palmrest off so that you can access the flash chip, which is just -underneath the palm rest. You will then connect an external SPI programmer, to -re-flash the chip externally while it is powered off with the battery removed. - -NOTE: This guide only applies to the regular X200. For X200S and X200 Tablet -flashing, please read other guides available on libreboot.org. - -Flash chip size -=============== - -Run this command on x200 to find out flash chip model and its size: - - flashprog -p internal - -MAC address -=========== - -Refer to [mac\_address.md](../hardware/mac_address.md). - -The procedure -------------- - -This section is for the X200. This does not apply to the X200S or X200 -Tablet (for those systems, you have to remove the motherboard -completely, since the flash chip is on the other side of the board). - -Remove these screws:\ -![](https://av.libreboot.org/x200/disassembly/0003.jpg) - -Gently push the keyboard towards the screen, then lift it off, and optionally -disconnect it from the board:\ -![](https://av.libreboot.org/x200/disassembly/0004.jpg) -![](https://av.libreboot.org/x200/disassembly/0005.jpg) - -Disconnect the cable of the fingerpring reader, and then pull up the palm rest, -lifting up the left and right side of it:\ -![](https://av.libreboot.org/x200/disassembly/0006.1.jpg) -![](https://av.libreboot.org/x200/disassembly/0006.jpg) - -This shows the location of the flash chip, for both SOIC-8 and SOIC-16:\ -![](https://av.libreboot.org/x200/x200_soic16.jpg) -![](https://av.libreboot.org/x200/x200_soic8.jpg) - -Lift back the tape that covers a part of the flash chip, and then -connect the clip:\ -![](https://av.libreboot.org/x200/disassembly/0008.jpg) - -Now, you should be ready to install libreboot. - -Refer to the [SPI programming instructions](spi.md). - -When you're done, put the system back together. If it doesn't boot, try other -RAM modules because raminit is very unreliable on this platform (in coreboot). - -Memory -====== - -In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks -that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). -Non-matching pairs may not work. Single module (meaning, one of the slots -will be empty) will currently only work in slot 0. - -NOTE: according to users reports, non matching pairs (e.g. 1+2 GiB) might -work in some cases. - -Make sure that the RAM you buy is the 2Rx8 configuration when buying 4GiB sticks -(In other words: maximum of 2GiB per rank, 2 ranks per card). - -In this photo, 8GiB of RAM (2x4GiB) is installed: - -![](https://av.libreboot.org/x200/disassembly/0018.jpg) - -Boot it! --------- - -You should see something like this: - -![](https://av.libreboot.org/x200/disassembly/0019.jpg) - -Now [install Linux](../linux/). - -X200S and X200 Tablet users: GPIO33 trick will not work. --------------------------------------------------------- - -sgsit found out about a pin called GPIO33, which can be grounded to -disable the flashing protections by the descriptor and stop the ME from -starting (which itself interferes with flashing attempts). The theory -was proven correct; however, it is still useless in practise. - -Look just above the 7 in TP37 (that's GPIO33): - -![](https://av.libreboot.org/x200/gpio33_location.jpg) - -By default we would see this in lenovobios, when trying flashprog -p -internal -w rom.rom: - -``` -FREG0: Warning: Flash Descriptor region (0x00000000-0x00000fff) is read-only. -FREG2: Warning: Management Engine region (0x00001000-0x005f5fff) is locked. -``` - -With GPIO33 grounded during boot, this disabled the flash protections as -set by descriptor, and stopped the ME from starting. The output changed -to: - -``` -The Flash Descriptor Override Strap-Pin is set. Restrictions implied by -the Master Section of the flash descriptor are NOT in effect. Please note -that Protected Range (PR) restrictions still apply. -``` - -The part in bold is what got us. This was still observed: - -``` -PR0: Warning: 0x007e0000-0x01ffffff is read-only. -PR4: Warning: 0x005f8000-0x005fffff is locked. -``` - -It is actually possible to disable these protections. Lenovobios does, -when updating the BIOS (proprietary one). One possible way to go about -this would be to debug the BIOS update utility from Lenovo, to find out -how it's disabling these protections. Some more research is available -here: - - -Of course, it's likely that the Lenovo BIOS is checking for some bit in memory -that tells it not to disable flashing, and then it won't set PRx registers. The -way the Lenovo BIOS updater works is, it is executed in Windows first and then -a reboot happens, triggering the re-flashing to happen during early boot. It is -probably setting something in memory and loading the ROM, plus a payload program -that does the flashing; Lenovo BIOS then probably sees that and runs that, instead -of setting PRx and going for normal boot. It is theoretically possible that we -could discover how this works, by debugging the Lenovo BIOS update utility (in -Windows), and then replicate what it is doing, with some tool for Linux, -then load a flashprog binary into memory and the ROM to flash (for the BIOS -region). You would do this with GPIO33 grounded, and the payload program would -actually flash the entire chip, with just a normal libreboot image. - -It's possible. The above is likely the only way that the Lenovo BIOS updater -program works. So if we discover precisely how to do that, then you could -just connect some pogo pins to ground GPIO33, then boot up, run some software -(which would have to be written) that does the above. - -On a related note, libreboot has a utility that could help with -investigating this: -[ich9utils.md#demefactory](ich9utils.md#demefactory) diff --git a/site/docs/install/x200_external.uk.md b/site/docs/install/x200_external.uk.md deleted file mode 100644 index db674a7..0000000 --- a/site/docs/install/x200_external.uk.md +++ /dev/null @@ -1,158 +0,0 @@ ---- -title: Прошивка ThinkPad X200 вперше -x-toc-enable: true -... - -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. - -**If you haven't bought an X200 yet: the [Dell Latitude -E6400](latitude.md) is much easier to flash; no disassembly required, -it can be flashed entirely in software from Dell BIOS to Libreboot. It is the -same hardware generation (GM45), with same CPUs, video processor, etc.** - -Цей посібник призначений для тих, хто бажає libreboot на своєму ThinkPad X200, -поки у нього все ще є оригінальний Lenovo BIOS в наявності. Цього керівництва також можна -дотримуватися (адаптувати), якщо ви перетворили ваш X200 на цеглину, щоб знати, як його відновити. - -Якщо у вас виконується оригінальна мікропрограма Lenovo, вам потрібно буде зняти -клавіатуру та підставку для рук, щоб мати доступ до мікросхеми флеш-пам'яті, яка знаходиться прямо -під підставкою для рук. Потім ви підключите зовнішній програматор SPI, щоб -повторно прошити мікросхему зовні, коли вона вимкнена та акумулятор висунуто. - -ПРИМІТКА: Цей посібник стосується лише звичайного X200. Для перепрошивки X200S та X200 Tablet, -будь-ласка прочитайте інші посібники, доступні на libreboot.org. - -Розмір флеш-чіпа -=============== - -Виконайте цю команду на x200, щоб дізнатися модель флеш-чіпа та його розмір: - - flashprog -p internal - -MAC адреса -=========== - -Зверніться до [mac\_address.md](../hardware/mac_address.md). - -Процедура -------------- - -Цей розділ стосується X200. Цей не стосується X200S або X200 -Tablet (для цих систем потрібно повністю видалити материнську плату, -оскільки мікросхема флеш-пам'яті знаходиться з іншого боку плати). - -Викрутіть ці гвинти:\ -![](https://av.libreboot.org/x200/disassembly/0003.jpg) - -Обережно притисніть клавіатуру до екрана, потім підніміть її та за бажанням -від'єднайте від плати:\ -![](https://av.libreboot.org/x200/disassembly/0004.jpg) -![](https://av.libreboot.org/x200/disassembly/0005.jpg) - -Від'єднайте кабель пристрою для зчитування відбитків пальців, а потім потягніть упор для рук, -піднявши його ліву та праву сторону:\ -![](https://av.libreboot.org/x200/disassembly/0006.1.jpg) -![](https://av.libreboot.org/x200/disassembly/0006.jpg) - -Тут показано розташування мікросхеми флеш-пам'яті, для обох SOIC-8 та SOIC-16:\ -![](https://av.libreboot.org/x200/x200_soic16.jpg) -![](https://av.libreboot.org/x200/x200_soic8.jpg) - -Підніміть стрічку, яка закриває частину флеш-пам'яті, а потім -приєднайте затискач:\ -![](https://av.libreboot.org/x200/disassembly/0008.jpg) - -Тепер ви повинні бути готові до встановлення libreboot. - -Зверніться до [інструкцій програмування SPI](spi.md). - -Закінчивши, знову зберіть систему. Якщо вона не завантажується, спробуйте інші -модулі оперативної пам'яті, тому що raminit дуже ненадійний на цій платформі (в coreboot). - -Пам'ять -====== - -У машинах DDR3 з Cantiga (GM45/GS45/PM45), північний міст потребує стіків, -які працюватимуть як PC3-8500 (швидші стіки PC3/PC3L можуть працювати як PC3-8500). -Пари, що не збігаються, можуть не працювати. Один модуль (тобто один із слотів -буде порожнім) наразі працюватиме лише в слоті 0. - -ПРИМІТКА: згідно зі звітами користувачів, у деяких випадках невідповідні пари ( 1+2 ГБ) можуть -працювати в деяких випадках. - -Переконайтесь, що оперативна пам'ять, яку ви купуєте, має конфігурацію 2Rx8, купуючи стіки по 4 ГБ -(Іншими словами: максимально 2 ГБ на ранг, 2 ранга на картку). - -На цьому фото встановлено 8 ГБ оперативної пам'яті (2x4ГБ): - -![](https://av.libreboot.org/x200/disassembly/0018.jpg) - -Завантажуйтесь! --------- - -Ви маєте побачити щось подібне цьому: - -![](https://av.libreboot.org/x200/disassembly/0019.jpg) - -Тепер [встановлюйте Linux](../linux/). - -Користувачі X200S та X200 Tablet: трюк GPIO33 не спрацює. --------------------------------------------------------- - -sgsit дізнався про контакт під назвою GPIO33, який можна заземлити, -щоб вимкнути захист прошивки за допомогою дескриптора та зупинити ME від -запуску (який сам по собі перешкоджає спробам прошивки). Теорія була -доведена правильною; однак на практиці це все одно марно. - -Подивіться трохи вище 7 у TP37 (це GPIO33): - -![](https://av.libreboot.org/x200/gpio33_location.jpg) - -Це замовчуванням ми побачимо це в lenovobios, під час спроби flashprog -p -internal -w rom.rom: - - FREG0: Warning: Flash Descriptor region (0x00000000-0x00000fff) is read-only. - FREG2: Warning: Management Engine region (0x00001000-0x005f5fff) is locked. - -Коли GPIO33 було заземлено під час завантаження, це вимкнуло захист флеш-пам'яті, -встановлений дескриптором, і зупинило запуск ME. Результат змінився -на: - - The Flash Descriptor Override Strap-Pin is set. Restrictions implied by - the Master Section of the flash descriptor are NOT in effect. Please note - that Protected Range (PR) restrictions still apply. - -Частина, виділена жирним шрифтом, - це те, що нас дістало. Це все ж спостерігалось: - - PR0: Warning: 0x007e0000-0x01ffffff is read-only. - PR4: Warning: 0x005f8000-0x005fffff is locked. - -Насправді ці засоби захисту можна відключити. Lenovobios робить це, -під час оновлення BIOS (пропрієтарного). Одним із можливих способів вирішити цю проблему -було б відлагодити утиліту оновлення BIOS від Lenovo, для віднаходження, -як вона вимикає ці засоби захисту. Додаткові дослідження доступні -тут: - - -Звичайно, ймовірно, що Lenovo BIOS перевіряє якийсь біт в пам'яті, -який говорить йому не вимикати перепрошивку, а потім він не встановлює регістри PRx. Принцип -роботи програми оновлення BIOS Lenovo полягає в тому, що вона спочатку виконується в Windows, -а потім відбувається перезавантаження, ініціюючи перепрошивку під час раннього завантаження. Ймовірно, -це встановлює щось у пам'яті та завантажує ROM, плюс програму корисного навантаження, -яка виконує перепрошивання; тоді Lenovo BIOS, ймовірно, бачить це та запускає це замість -встановлення PRx і переходу до нормального завантаження. Теоретично можливо, що ми -зможемо дізнатися, як це працює, налагодивши утиліту оновлення BIOS Lenovo (у -Windows), а потім відтворивши її дії за допомогою якогось інструменту для Linux, -а потім завантаживши двійковий файл flashprog в пам'ять та ROM для прошивки (для BIOS -регіона). Ви б зробили це з заземленням GPIO33, і програма корисного навантаження -фактично прошиє весь чіп, лише звичайним образом libreboot. - -Це можливо. Ймовірно, це єдиний спосіб роботи програми оновлення BIOS Lenovo. -Отже, якщо ми дізнаємося, як саме це зробити, тоді ви можете просто підключити кілька -контактів pogo для заземлення GPIO33, потім завантажитися, запустити програмне забезпечення -(яке потрібно було б написати), яке виконує вищезазначене. - -У зв'язку з цим у libreboot є утиліта, яка може допомогти -розслідувати це: -[ich9utils.md#demefactory](ich9utils.md#demefactory) diff --git a/site/docs/install/x60flashscript.patch b/site/docs/install/x60flashscript.patch deleted file mode 100644 index 7f4c830..0000000 --- a/site/docs/install/x60flashscript.patch +++ /dev/null @@ -1,27 +0,0 @@ -From 34270811fce1ecf0bcf3b1363b0dc3dbf284ab09 Mon Sep 17 00:00:00 2001 -From: Leah Rowe -Date: Wed, 10 Jun 2015 22:53:28 +0000 -Subject: flash script: fix a really really really dumb mistake - ---- -diff --git a/flash b/flash -index c96b915..04fd274 100755 ---- a/flash -+++ b/flash -@@ -95,12 +95,12 @@ if [ "$mode" = "i945lenovo_firstflash" ] || [ "$mode" = "i945lenovo_secondflash" - # git or libreboot_src - bucts="./bucts/bucts" - flashrom_lenovobios_sst="./flashrom/flashrom_lenovobios_sst" -- flashrom_lenovobios_macronix="./flashrom/flashrom_lenovobios_sst" -+ flashrom_lenovobios_macronix="./flashrom/flashrom_lenovobios_macronix" - else - # libreboot_util - bucts="./bucts/$arch/bucts" - flashrom_lenovobios_sst="./flashrom/$arch/flashrom_lenovobios_sst" -- flashrom_lenovobios_macronix="./flashrom/$arch/flashrom_lenovobios_sst" -+ flashrom_lenovobios_macronix="./flashrom/$arch/flashrom_lenovobios_macronix" - fi - - # anti-bricking precaution --- -cgit v0.9.0.2 diff --git a/site/docs/uboot/index.md b/site/docs/uboot/index.md index 934c78c..2aea8a4 100644 --- a/site/docs/uboot/index.md +++ b/site/docs/uboot/index.md @@ -5,8 +5,6 @@ x-toc-enable: true Libreboot has experimental support for using U-Boot as a coreboot payload since the [20221214](../../news/libreboot20221214.md) release. -Refer to [docs/hardware/](../hardware/) for a complete list of U-Boot -targets in Libreboot. U-Boot integration in Libreboot is currently at a proof-of-concept stage, with most boards completely untested and most likely not working. diff --git a/site/faq.md b/site/faq.md index bbaca8f..2609e54 100644 --- a/site/faq.md +++ b/site/faq.md @@ -174,7 +174,7 @@ What systems are compatible with libreboot? Any system can easily be added, so *compatibility* merely refers to whatever boards are integrated in the `lbmk` build system, which libreboot uses. -Please read the [hardware compatibility list](docs/hardware/). +The [installation page](docs/install/) lists compatible machines. Freedom pitfalls with modern Intel hardware {#intel} ---------------------------------------------------- @@ -305,8 +305,8 @@ ME can be disabled by setting a couple of values in the SPI flash memory. The ME firmware can then be removed entirely from the flash memory space. The libreboot project [does this](docs/install/ich9utils.md) on the Intel 4 Series systems that it supports, such as the [ThinkPad -X200](../docs/install/x200_external.md) and [ThinkPad -T400](../docs/install/t400_external.md). ME firmware versions 6.0 and +X200](../docs/install/x200.md) and [ThinkPad +T400](../docs/install/t400.md). ME firmware versions 6.0 and later, which are found on all systems with an Intel Core i3/i5/i7 CPU and a PCH, include "ME Ignition" firmware that performs some hardware initialization and power management. If the ME's boot ROM does not find diff --git a/site/faq.uk.md b/site/faq.uk.md index 183f892..83a36ac 100644 --- a/site/faq.uk.md +++ b/site/faq.uk.md @@ -177,7 +177,7 @@ Ethernet не працює на моєму X200/T400/X60/T60, коли я йог Будь-яку систему можна легко додати, тому *сумісність* посилається до будь-якої інтегрованої до системи побудови `lbmk` плати, яку libreboot використовує. -Прочитайте [список сумісного обладнання](docs/hardware/). +The [installation page](docs/install/) lists compatible machines. Пастки свободи з сучасним обладнанням Intel {#intel} ---------------------------------------------------- @@ -308,8 +308,8 @@ ME можна вимкнути, встановивши пару значень Прошивку ME потім можна повністю видалити з простору флеш- пам'яті. Проект libreboot [робить це](docs/install/ich9utils.md) на системах Intel серії 4, які він підтримує, наприклад [ThinkPad -X200](../docs/install/x200_external.uk.md) та [ThinkPad -T400](../docs/install/t400_external.md). Прошивка ME версії 6.0 та +X200](../docs/install/x200.uk.md) та [ThinkPad +T400](../docs/install/t400.md). Прошивка ME версії 6.0 та пізніше, яка є на всіх системах з процесорами Intel Core i3/i5/i7 PCH, включає мікропрограму "ME Ignition", яка виконує деяку апаратну ініціалізацію та контроль живленням. Якщо завантажувальний ROM ME не знаходить diff --git a/site/index.de.md b/site/index.de.md index 9aebeaa..8877d23 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -5,7 +5,7 @@ x-toc-enable: true Das *Libreboot* Projekt bietet eine [freie](https://writefreesoftware.org/) *Boot -Firmware* welche auf [bestimmten Intel/AMD x86 und ARM Geräten](docs/hardware/) +Firmware* welche auf [bestimmten Intel/AMD x86 und ARM Geräten](docs/install/) die Hardware initialisiert (z.b. Speicher-Controller, CPU, Peripherie), und dann einen Bootloader für dein Betriebssystem startet. [Linux](docs/linux/) sowie [BSD](docs/bsd/) werden gut unterstützt. Es ersetzt proprietäre BIOS/UEFI diff --git a/site/index.fr.md b/site/index.fr.md index 73a8ce8..046d1b8 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -5,7 +5,7 @@ x-toc-enable: true Libreboot est un micrologiciel de démarrage [libéré](https://writefreesoftware.org/) qui initialise le matériel (càd le contrôleur mémoire, CPU, -périphériques) sur [des ordinateurs x86/ARM spécifiques](docs/hardware/) +périphériques) sur [des ordinateurs x86/ARM spécifiques](docs/install/) et lance un chargeur d'amorçage pour votre système d'exploitation. [Linux](docs/linux/) et [BSD](docs/bsd/) sont bien supportés. C'est un remplacement pour le micrologiciel UEFI/BIOS propriétaire. Des canaux d'aide sont disponibles diff --git a/site/index.it.md b/site/index.it.md index fee6a0f..76fcd43 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -5,7 +5,7 @@ x-toc-enable: true Il progetto *Libreboot* fornisce avvio [libero e open source](https://writefreesoftware.org/) grazie al firmware basato su coreboot, sostituendo cosi', firmware BIOS/UEFI proprietario -su [alcune schede madri basate su Intel/AMD x86 o ARM](docs/hardware/), +su [alcune schede madri basate su Intel/AMD x86 o ARM](docs/install/), in computer fissi e portatili. Inizializza l'hardware (controller di memoria, CPU, periferiche) e avvia un bootloader per il tuo sistema operativo. [Linux](docs/linux/) e [BSD](docs/bsd/) sono ben supportati. diff --git a/site/index.md b/site/index.md index a26cec9..0a05783 100644 --- a/site/index.md +++ b/site/index.md @@ -6,7 +6,7 @@ x-toc-enable: true The *Libreboot* project provides [free, open source](https://writefreesoftware.org/) (*libre*) boot firmware based on coreboot, replacing proprietary BIOS/UEFI firmware -on [specific Intel/AMD x86 and ARM based motherboards](docs/hardware/), +on [specific Intel/AMD x86 and ARM based motherboards](docs/install/), including laptop and desktop computers. It initialises the hardware (e.g. memory controller, CPU, peripherals) and starts a bootloader for your operating system. [Linux](docs/linux/) and [BSD](docs/bsd/) are well-supported. Help is diff --git a/site/index.ru.md b/site/index.ru.md index b7e0604..76e9d76 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -3,7 +3,7 @@ title: Проект Libreboot x-toc-enable: true ... -Проект *Libreboot* предоставляет [свободную, с открытым исходным кодом](https://writefreesoftware.org/) загрузочную прошивку, основанную на coreboot, заменяющую проприетарные BIOS/UEFI на [некоторых Intel/AMD x86 и ARM материнских платах](docs/hardware/), включая ноутбуки и десктопы. Она инициализирует аппаратное обеспечение компьютера (например, контроллер памяти, процессор, переферию) и запускает загрузчик для вашей операционный системы. [Linux](docs/linux/) и [BSD](docs/bsd/) хорошо поддерживаются. Можно попросить помощь через [\#libreboot](https://web.libera.chat/#libreboot) на [Libera](https://libera.chat/) IRC. [Страница с заданиями](tasks/) показывают, над чем мы работаем (мы приветствуем ваши предложения, если вы хотите поработать над некоторыми задачами самостоятельно). +Проект *Libreboot* предоставляет [свободную, с открытым исходным кодом](https://writefreesoftware.org/) загрузочную прошивку, основанную на coreboot, заменяющую проприетарные BIOS/UEFI на [некоторых Intel/AMD x86 и ARM материнских платах](docs/install/), включая ноутбуки и десктопы. Она инициализирует аппаратное обеспечение компьютера (например, контроллер памяти, процессор, переферию) и запускает загрузчик для вашей операционный системы. [Linux](docs/linux/) и [BSD](docs/bsd/) хорошо поддерживаются. Можно попросить помощь через [\#libreboot](https://web.libera.chat/#libreboot) на [Libera](https://libera.chat/) IRC. [Страница с заданиями](tasks/) показывают, над чем мы работаем (мы приветствуем ваши предложения, если вы хотите поработать над некоторыми задачами самостоятельно). diff --git a/site/index.uk.md b/site/index.uk.md index 399d3f8..7dff9a1 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -6,7 +6,7 @@ x-toc-enable: true Проект *Libreboot* надає [вільну](https://writefreesoftware.org/) *завантажувальну прошивку*, яка ініціалізує апаратне забезпечення (наприклад, контролер пам'яті, ЦП, -периферію) на [конкретних цілях Intel/AMD x86 та ARM](docs/hardware/), що +периферію) на [конкретних цілях Intel/AMD x86 та ARM](docs/install/), що потім розпочинає завантажувач для вашої операційної системи. [Linux](docs/linux/) та [BSD](docs/bsd/) добре підтримуються. Це заміняє пропрієтарну BIOS/UEFI прошивку. Допомога доступна diff --git a/site/news/10.md b/site/news/10.md index c14d6dd..edc68e6 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -32,7 +32,7 @@ Introduction The *Libreboot* project provides [free, open source](https://writefreesoftware.org/) (*libre*) boot firmware based on coreboot, replacing proprietary BIOS/UEFI firmware -on [specific Intel/AMD x86 and ARM based motherboards](../docs/hardware/), +on [specific Intel/AMD x86 and ARM based motherboards](../docs/install/), including laptop and desktop computers. It initialises the hardware (e.g. memory controller, CPU, peripherals) and starts a bootloader for your operating system. [Linux](../docs/linux/) and [BSD](../docs/bsd/) are well-supported. The diff --git a/site/news/hp2170p.md b/site/news/hp2170p.md index 93b0878..ebce09a 100644 --- a/site/news/hp2170p.md +++ b/site/news/hp2170p.md @@ -3,7 +3,7 @@ % 9 August 2023 **UPDATE, 16 August 2023: -[installation instructions are now available](../docs/hardware/hp2170p.md).** +[installation instructions are now available](../docs/install/hp2170p.md).** diff --git a/site/news/hp8200sff.md b/site/news/hp8200sff.md index 603fc95..b7fe26e 100644 --- a/site/news/hp8200sff.md +++ b/site/news/hp8200sff.md @@ -9,7 +9,7 @@ Today, Libreboot gains its *first* desktop machine for nearly 2 years. The last one added was Acer G43T-AM3. You can learn more about this on the [HP Elite 8200 SFF Libreboot installation -and hardware information page](../docs/hardware/hp8200sff.md). +and hardware information page](../docs/install/hp8200sff.md). The patch for Libreboot was done, courtesy of Riku Viitanen, IRC nick `Riku_V` on Libreboot IRC. It's quite a nice Intel Sandybridge platform, with all libre diff --git a/site/news/hp8200sff.uk.md b/site/news/hp8200sff.uk.md index bf1153e..f9e2521 100644 --- a/site/news/hp8200sff.uk.md +++ b/site/news/hp8200sff.uk.md @@ -9,7 +9,7 @@ Останнім доданим був Acer G43T-AM3. Ви можете вивчити більше про це на [сторінці встановлення Libreboot та інформації -апаратного забезпечення HP Elite 8200 SFF](../docs/hardware/hp8200sff.md). +апаратного забезпечення HP Elite 8200 SFF](../docs/install/hp8200sff.md). Виправлення в Libreboot було зроблено, ввічливість Ріку Війтанен, нікнейм IRC `Riku_V` на Libreboot IRC. Це доволі добра платформа Intel Sandybridge, з усією вільною diff --git a/site/news/hp820g2.md b/site/news/hp820g2.md index 0851272..7115f42 100644 --- a/site/news/hp820g2.md +++ b/site/news/hp820g2.md @@ -49,6 +49,6 @@ completely free software initialisation in coreboot, provided by *libgfxinit*. How to install Libreboot ======================== -Refer to the [HP 820 G2 hardware/install guide](../docs/hardware/hp820g2.md) +Refer to the [HP 820 G2 install guide](../docs/install/hp820g2.md) for more information about how to flash this board. This machine is widely available online. diff --git a/site/news/hp8470p_and_dell_t1650.md b/site/news/hp8470p_and_dell_t1650.md index ba4f45e..25b8a30 100644 --- a/site/news/hp8470p_and_dell_t1650.md +++ b/site/news/hp8470p_and_dell_t1650.md @@ -4,8 +4,8 @@ **UPDATE, 16 August 2023: [installation instructions are now available for -HP EliteBook 8470p](../docs/hardware/hp8470p.md) and also -[Dell Precision T1650](../docs/hardware/t1650.md).** +HP EliteBook 8470p](../docs/install/hp8470p.md) and also +[Dell Precision T1650](../docs/install/t1650.md).** Introduction ============ @@ -48,7 +48,7 @@ Dell Precision T1650 This machine is truly unique, among most desktop boards in coreboot. It's yet another IvyBridge desktop, same platform as [HP 8300 -USDT](../docs/hardware/hp8300usdt.html), but it supports *ECC* memory, if you +USDT](../docs/install/hp8300usdt.html), but it supports *ECC* memory, if you use a Xeon E3 model CPU (ivybridge variant). It was added in this patch: diff --git a/site/news/hp_elitebooks.md b/site/news/hp_elitebooks.md index 1c23d76..ff401c5 100644 --- a/site/news/hp_elitebooks.md +++ b/site/news/hp_elitebooks.md @@ -7,8 +7,8 @@ Introduction ![Two HP EliteBooks side by side, both running Libreboot](https://av.libreboot.org/hp9470m/9470m+2560p.jpg) -Support for [HP EliteBook Folio 9470m](../docs/hardware/hp9470m.md) and -[HP EliteBook 2560p](../docs/hardware/hp2560p.md) +Support for [HP EliteBook Folio 9470m](../docs/install/hp9470m.md) and +[HP EliteBook 2560p](../docs/install/hp2560p.md) has now been merged into Libreboot. These are very nice Sandy/Ivy Bridge laptops. Libreboot's build system now builds coreboot automatically for them, making it simple to install libre firmware on these laptops and diff --git a/site/news/libreboot20230413.md b/site/news/libreboot20230413.md index 003c082..657bf91 100644 --- a/site/news/libreboot20230413.md +++ b/site/news/libreboot20230413.md @@ -151,25 +151,25 @@ please contact the Libreboot project. They are: Desktops (AMD, Intel, x86) ----------------------- -- [Gigabyte GA-G41M-ES2L motherboard](../docs/hardware/ga-g41m-es2l.md) -- [Acer G43T-AM3](../docs/hardware/acer_g43t-am3.md) -- [Intel D510MO and D410PT motherboards](../docs/hardware/d510mo.md) -- [Apple iMac 5,2](../docs/hardware/imac52.md) +- [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) +- [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) +- Intel D510MO and D410PT motherboards +- Apple iMac 5,2 ### Laptops (Intel, x86) - ThinkPad X60 / X60S / X60 Tablet - ThinkPad T60 (with Intel GPU) -- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/hardware/x200.md) +- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/install/x200.md) - Lenovo ThinkPad X230 - Lenovo ThinkPad X301 -- [Lenovo ThinkPad R400](../docs/hardware/r400.md) -- [Lenovo ThinkPad T400 / T400S](../docs/hardware/t400.md) -- [Lenovo ThinkPad T500](../docs/hardware/t500.md) +- [Lenovo ThinkPad R400](../docs/install/r400.md) +- [Lenovo ThinkPad T400 / T400S](../docs/install/t400.md) +- [Lenovo ThinkPad T500](../docs/install/t500.md) - [Lenovo ThinkPad T530 / W530](../docs/install/ivy_has_common.md) -- [Lenovo ThinkPad W500](../docs/hardware/t500.md) -- [Lenovo ThinkPad R500](../docs/hardware/r500.md) -- [Apple MacBook1,1 and MacBook2,1](../docs/hardware/macbook21.md) +- [Lenovo ThinkPad W500](../docs/install/t500.md) +- Lenovo ThinkPad R500 +- [Apple MacBook1,1 and MacBook2,1](../docs/install/macbook21.md) - [Lenovo ThinkPad T440p](../docs/install/t440p_external.md) - [Lenovo Thinkpad X220](../docs/install/ivy_has_common.md) - [Lenovo Thinkpad X220t](../docs/install/ivy_has_common.md) diff --git a/site/news/libreboot20230423.md b/site/news/libreboot20230423.md index 5ecf3fd..51229e7 100644 --- a/site/news/libreboot20230423.md +++ b/site/news/libreboot20230423.md @@ -121,11 +121,11 @@ please contact the Libreboot project. They are: Desktops (AMD, Intel, x86) ----------------------- -- [Gigabyte GA-G41M-ES2L motherboard](../docs/hardware/ga-g41m-es2l.md) -- [Acer G43T-AM3](../docs/hardware/acer_g43t-am3.md) -- [Intel D510MO and D410PT motherboards](../docs/hardware/d510mo.md) -- [Apple iMac 5,2](../docs/hardware/imac52.md) -- [HP Elite 8200 SFF](../docs/hardware/hp8200sff.md) (HP 6200 Pro Business probably works too) +- [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) +- [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) +- Intel D510MO and D410PT motherboards +- Apple iMac 5,2 +- [HP Elite 8200 SFF](../docs/install/hp8200sff.md) (HP 6200 Pro Business probably works too) ### Laptops (Intel, x86) @@ -133,16 +133,16 @@ Desktops (AMD, Intel, x86) hardware to X200/T400)** - ThinkPad X60 / X60S / X60 Tablet - ThinkPad T60 (with Intel GPU) -- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/hardware/x200.md) +- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/install/x200.md) - Lenovo ThinkPad X230 - Lenovo ThinkPad X301 -- [Lenovo ThinkPad R400](../docs/hardware/r400.md) -- [Lenovo ThinkPad T400 / T400S](../docs/hardware/t400.md) -- [Lenovo ThinkPad T500](../docs/hardware/t500.md) +- [Lenovo ThinkPad R400](../docs/install/r400.md) +- [Lenovo ThinkPad T400 / T400S](../docs/install/t400.md) +- [Lenovo ThinkPad T500](../docs/install/t500.md) - [Lenovo ThinkPad T530 / W530](../docs/install/ivy_has_common.md) -- [Lenovo ThinkPad W500](../docs/hardware/t500.md) -- [Lenovo ThinkPad R500](../docs/hardware/r500.md) -- [Apple MacBook1,1 and MacBook2,1](../docs/hardware/macbook21.md) +- [Lenovo ThinkPad W500](../docs/install/t500.md) +- Lenovo ThinkPad R500 +- [Apple MacBook1,1 and MacBook2,1](../docs/install/macbook21.md) - [Lenovo ThinkPad T440p](../docs/install/t440p_external.md) - [Lenovo Thinkpad X220](../docs/install/ivy_has_common.md) - [Lenovo Thinkpad X220t](../docs/install/ivy_has_common.md) @@ -152,8 +152,8 @@ Desktops (AMD, Intel, x86) - [Lenovo Thinkpad X230](../docs/install/x230_external.md) - [Lenovo Thinkpad X230t](../docs/install/x230_external.md) - [Lenovo ThinkPad W541](../docs/install/ivy_has_common.md) -- [HP EliteBook 2560p](../docs/hardware/hp2560p.md) -- [HP EliteBook Folio 9470m](../docs/hardware/hp9470m.md) +- [HP EliteBook 2560p](../docs/install/hp2560p.md) +- [HP EliteBook Folio 9470m](../docs/install/hp9470m.md) ### Laptops (ARM, with U-Boot payload) diff --git a/site/news/libreboot20230625.md b/site/news/libreboot20230625.md index 395539d..a0539a4 100644 --- a/site/news/libreboot20230625.md +++ b/site/news/libreboot20230625.md @@ -18,7 +18,7 @@ payloads are officially supported, provided in varying configurations per machine. It provides an [automated build system](../docs/maintain/) for the [configuration](../docs/build/) and [installation](../docs/install/) of coreboot ROM images, making coreboot easier to use for non-technical people. You can find -the [list of supported hardware](../docs/hardware/) in Libreboot documentation. +the [list of supported hardware](../docs/install/) in Libreboot documentation. Libreboot's main benefit is *higher boot speed*, [better](../docs/linux/encryption.md) @@ -270,12 +270,12 @@ please contact the Libreboot project. They are: Desktops (AMD, Intel, x86) ----------------------- -- [Gigabyte GA-G41M-ES2L motherboard](../docs/hardware/ga-g41m-es2l.md) -- [Acer G43T-AM3](../docs/hardware/acer_g43t-am3.md) -- [Intel D510MO and D410PT motherboards](../docs/hardware/d510mo.md) -- [Apple iMac 5,2](../docs/hardware/imac52.md) -- [HP Elite 8200 SFF/MT](../docs/hardware/hp8200sff.md) (HP 6200 Pro Business probably works too) -- [HP Elite 8300 USDT](../docs/hardware/hp8300usdt.md) +- [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) +- [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) +- Intel D510MO and D410PT motherboards +- Apple iMac 5,2 +- [HP Elite 8200 SFF/MT](../docs/install/hp8200sff.md) (HP 6200 Pro Business probably works too) +- [HP Elite 8300 USDT](../docs/install/hp8300usdt.md) ### Laptops (Intel, x86) @@ -283,15 +283,15 @@ Desktops (AMD, Intel, x86) hardware to X200/T400)** - ThinkPad X60 / X60S / X60 Tablet - ThinkPad T60 (with Intel GPU) -- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/hardware/x200.md) +- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/install/x200.md) - Lenovo ThinkPad X301 -- [Lenovo ThinkPad R400](../docs/hardware/r400.md) -- [Lenovo ThinkPad T400 / T400S](../docs/hardware/t400.md) -- [Lenovo ThinkPad T500](../docs/hardware/t500.md) +- [Lenovo ThinkPad R400](../docs/install/r400.md) +- [Lenovo ThinkPad T400 / T400S](../docs/install/t400.md) +- [Lenovo ThinkPad T500](../docs/install/t500.md) - [Lenovo ThinkPad T530 / W530](../docs/install/ivy_has_common.md) -- [Lenovo ThinkPad W500](../docs/hardware/t500.md) -- [Lenovo ThinkPad R500](../docs/hardware/r500.md) -- [Apple MacBook1,1 and MacBook2,1](../docs/hardware/macbook21.md) +- [Lenovo ThinkPad W500](../docs/install/t500.md) +- Lenovo ThinkPad R500 +- [Apple MacBook1,1 and MacBook2,1](../docs/install/macbook21.md) - [Lenovo ThinkPad T440p](../docs/install/t440p_external.md) - [Lenovo Thinkpad X220](../docs/install/ivy_has_common.md) - [Lenovo Thinkpad X220t](../docs/install/ivy_has_common.md) @@ -301,9 +301,9 @@ Desktops (AMD, Intel, x86) - [Lenovo Thinkpad X230](../docs/install/x230_external.md) - [Lenovo Thinkpad X230t](../docs/install/x230_external.md) - [Lenovo ThinkPad W541](../docs/install/ivy_has_common.md) -- [HP EliteBook 2560p](../docs/hardware/hp2560p.md) -- [HP EliteBook 2570p](../docs/hardware/hp2570p.md) -- [HP EliteBook Folio 9470m](../docs/hardware/hp9470m.md) +- [HP EliteBook 2560p](../docs/install/hp2560p.md) +- [HP EliteBook 2570p](../docs/install/hp2570p.md) +- [HP EliteBook Folio 9470m](../docs/install/hp9470m.md) ### Laptops (ARM, with U-Boot payload) diff --git a/site/news/libreboot20231021.md b/site/news/libreboot20231021.md index 5e30cd8..25ee50a 100644 --- a/site/news/libreboot20231021.md +++ b/site/news/libreboot20231021.md @@ -22,7 +22,7 @@ payloads are officially supported, provided in varying configurations per machine. It provides an [automated build system](../docs/maintain/) for the [configuration](../docs/build/) and [installation](../docs/install/) of coreboot ROM images, making coreboot easier to use for non-technical people. You can find -the [list of supported hardware](../docs/hardware/) in Libreboot documentation. +the [list of supported hardware](../docs/install/) in Libreboot documentation. Libreboot's main benefit is *higher boot speed*, [better](../docs/linux/encryption.md) @@ -1057,20 +1057,20 @@ please contact the Libreboot project. They are: ### Servers (AMD, x86) -- [ASUS KFSN4-DRE motherboard](../docs/hardware/kfsn4-dre.md) -- [ASUS KGPE-D16 motherboard](../docs/hardware/kgpe-d16.md) +- [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) +- [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) Desktops (AMD, Intel, x86) ----------------------- -- [Gigabyte GA-G41M-ES2L motherboard](../docs/hardware/ga-g41m-es2l.md) -- [Acer G43T-AM3](../docs/hardware/acer_g43t-am3.md) -- [Intel D510MO and D410PT motherboards](../docs/hardware/d510mo.md) -- [Apple iMac 5,2](../docs/hardware/imac52.md) -- [ASUS KCMA-D8 motherboard](../docs/hardware/kcma-d8.md) -- [Dell Precision T1650](../docs/hardware/t1650.md) (**easy to flash without disassembly**) -- [HP Elite 8200 SFF/MT](../docs/hardware/hp8200sff.md) (HP 6200 Pro Business probably works too) -- [HP Elite 8300 USDT](../docs/hardware/hp8300usdt.md) +- [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) +- [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) +- Intel D510MO and D410PT motherboards +- Apple iMac 5,2 +- [ASUS KCMA-D8 motherboard](../docs/install/kcma-d8.md) +- [Dell Precision T1650](../docs/install/t1650.md) (**easy to flash without disassembly**) +- [HP Elite 8200 SFF/MT](../docs/install/hp8200sff.md) (HP 6200 Pro Business probably works too) +- [HP Elite 8300 USDT](../docs/install/hp8300usdt.md) ### Laptops (Intel, x86) @@ -1079,15 +1079,15 @@ Desktops (AMD, Intel, x86) - [Dell Latitude E6430 (Intel GPU](../docs/install/latitude.md) **(easy to flash, no disassembly)** - ThinkPad X60 / X60S / X60 Tablet - ThinkPad T60 (with Intel GPU) -- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/hardware/x200.md) +- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/install/x200.md) - Lenovo ThinkPad X301 -- [Lenovo ThinkPad R400](../docs/hardware/r400.md) -- [Lenovo ThinkPad T400 / T400S](../docs/hardware/t400.md) -- [Lenovo ThinkPad T500](../docs/hardware/t500.md) +- [Lenovo ThinkPad R400](../docs/install/r400.md) +- [Lenovo ThinkPad T400 / T400S](../docs/install/t400.md) +- [Lenovo ThinkPad T500](../docs/install/t500.md) - [Lenovo ThinkPad T530 / W530](../docs/install/ivy_has_common.md) -- [Lenovo ThinkPad W500](../docs/hardware/t500.md) -- [Lenovo ThinkPad R500](../docs/hardware/r500.md) -- [Apple MacBook1,1 and MacBook2,1](../docs/hardware/macbook21.md) +- [Lenovo ThinkPad W500](../docs/install/t500.md) +- Lenovo ThinkPad R500 +- [Apple MacBook1,1 and MacBook2,1](../docs/install/macbook21.md) - [Lenovo ThinkPad T440p](../docs/install/t440p_external.md) - [Lenovo Thinkpad X220](../docs/install/ivy_has_common.md) - [Lenovo Thinkpad X220t](../docs/install/ivy_has_common.md) @@ -1097,11 +1097,11 @@ Desktops (AMD, Intel, x86) - [Lenovo Thinkpad X230](../docs/install/x230_external.md) - [Lenovo Thinkpad X230t](../docs/install/x230_external.md) - [Lenovo ThinkPad W541](../docs/install/ivy_has_common.md) -- [HP EliteBook 2170p](../docs/hardware/hp2170p.md) (**socketed flash IC**) -- [HP EliteBook 2560p](../docs/hardware/hp2560p.md) -- [HP EliteBook 2570p](../docs/hardware/hp2570p.md) -- [HP EliteBook 8470p](../docs/hardware/hp8470p.md) -- [HP EliteBook Folio 9470m](../docs/hardware/hp9470m.md) +- [HP EliteBook 2170p](../docs/install/hp2170p.md) (**socketed flash IC**) +- [HP EliteBook 2560p](../docs/install/hp2560p.md) +- [HP EliteBook 2570p](../docs/install/hp2570p.md) +- [HP EliteBook 8470p](../docs/install/hp8470p.md) +- [HP EliteBook Folio 9470m](../docs/install/hp9470m.md) ### Laptops (ARM, with U-Boot payload) diff --git a/site/news/libreboot20231101.md b/site/news/libreboot20231101.md index 41d4ca5..e690ef3 100644 --- a/site/news/libreboot20231101.md +++ b/site/news/libreboot20231101.md @@ -22,7 +22,7 @@ payloads are officially supported, provided in varying configurations per machine. It provides an [automated build system](../docs/maintain/) for the [configuration](../docs/build/) and [installation](../docs/install/) of coreboot ROM images, making coreboot easier to use for non-technical people. You can find -the [list of supported hardware](../docs/hardware/) in Libreboot documentation. +the [list of supported hardware](../docs/install/) in Libreboot documentation. Libreboot's main benefit is *higher boot speed*, [better](../docs/linux/encryption.md) @@ -167,21 +167,21 @@ please contact the Libreboot project. They are: ### Servers (AMD, x86) -- [ASUS KFSN4-DRE motherboard](../docs/hardware/kfsn4-dre.md) -- [ASUS KGPE-D16 motherboard](../docs/hardware/kgpe-d16.md) +- [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) +- [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) Desktops (AMD, Intel, x86) ----------------------- -- [Gigabyte GA-G41M-ES2L motherboard](../docs/hardware/ga-g41m-es2l.md) -- [Acer G43T-AM3](../docs/hardware/acer_g43t-am3.md) -- [Intel D510MO and D410PT motherboards](../docs/hardware/d510mo.md) -- [Apple iMac 5,2](../docs/hardware/imac52.md) -- [ASUS KCMA-D8 motherboard](../docs/hardware/kcma-d8.md) -- [Dell Precision T1650](../docs/hardware/t1650.md) (**easy to flash without disassembly**) -- [HP Elite 8200 SFF/MT](../docs/hardware/hp8200sff.md) (HP 6200 Pro Business probably works too) -- [HP Elite 8300 USDT](../docs/hardware/hp8300usdt.md) -- [Intel D945GCLF](../docs/hardware/d945gclf.md) +- [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) +- [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) +- Intel D510MO and D410PT motherboards +- Apple iMac 5,2 +- [ASUS KCMA-D8 motherboard](../docs/install/kcma-d8.md) +- [Dell Precision T1650](../docs/install/t1650.md) (**easy to flash without disassembly**) +- [HP Elite 8200 SFF/MT](../docs/install/hp8200sff.md) (HP 6200 Pro Business probably works too) +- [HP Elite 8300 USDT](../docs/install/hp8300usdt.md) +- [Intel D945GCLF](../docs/install/d945gclf.md) ### Laptops (Intel, x86) @@ -190,15 +190,15 @@ Desktops (AMD, Intel, x86) - [Dell Latitude E6430 (Intel GPU](../docs/install/latitude.md) **(easy to flash, no disassembly)** - ThinkPad X60 / X60S / X60 Tablet - ThinkPad T60 (with Intel GPU) -- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/hardware/x200.md) +- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/install/x200.md) - Lenovo ThinkPad X301 -- [Lenovo ThinkPad R400](../docs/hardware/r400.md) -- [Lenovo ThinkPad T400 / T400S](../docs/hardware/t400.md) -- [Lenovo ThinkPad T500](../docs/hardware/t500.md) +- [Lenovo ThinkPad R400](../docs/install/r400.md) +- [Lenovo ThinkPad T400 / T400S](../docs/install/t400.md) +- [Lenovo ThinkPad T500](../docs/install/t500.md) - [Lenovo ThinkPad T530 / W530](../docs/install/ivy_has_common.md) -- [Lenovo ThinkPad W500](../docs/hardware/t500.md) -- [Lenovo ThinkPad R500](../docs/hardware/r500.md) -- [Apple MacBook1,1 and MacBook2,1](../docs/hardware/macbook21.md) +- [Lenovo ThinkPad W500](../docs/install/t500.md) +- Lenovo ThinkPad R500 +- [Apple MacBook1,1 and MacBook2,1](../docs/install/macbook21.md) - [Lenovo ThinkPad T440p](../docs/install/t440p_external.md) - [Lenovo Thinkpad X220](../docs/install/ivy_has_common.md) - [Lenovo Thinkpad X220t](../docs/install/ivy_has_common.md) @@ -208,11 +208,11 @@ Desktops (AMD, Intel, x86) - [Lenovo Thinkpad X230](../docs/install/x230_external.md) - [Lenovo Thinkpad X230t](../docs/install/x230_external.md) - [Lenovo ThinkPad W541](../docs/install/ivy_has_common.md) -- [HP EliteBook 2170p](../docs/hardware/hp2170p.md) (**socketed flash IC**) -- [HP EliteBook 2560p](../docs/hardware/hp2560p.md) -- [HP EliteBook 2570p](../docs/hardware/hp2570p.md) -- [HP EliteBook 8470p](../docs/hardware/hp8470p.md) -- [HP EliteBook Folio 9470m](../docs/hardware/hp9470m.md) +- [HP EliteBook 2170p](../docs/install/hp2170p.md) (**socketed flash IC**) +- [HP EliteBook 2560p](../docs/install/hp2560p.md) +- [HP EliteBook 2570p](../docs/install/hp2570p.md) +- [HP EliteBook 8470p](../docs/install/hp8470p.md) +- [HP EliteBook Folio 9470m](../docs/install/hp9470m.md) ### Laptops (ARM, with U-Boot payload) diff --git a/site/news/libreboot20231106.md b/site/news/libreboot20231106.md index ef24020..b791b3f 100644 --- a/site/news/libreboot20231106.md +++ b/site/news/libreboot20231106.md @@ -23,7 +23,7 @@ payloads are officially supported, provided in varying configurations per machine. It provides an [automated build system](../docs/maintain/) for the [configuration](../docs/build/) and [installation](../docs/install/) of coreboot ROM images, making coreboot easier to use for non-technical people. You can find -the [list of supported hardware](../docs/hardware/) in Libreboot documentation. +the [list of supported hardware](../docs/install/) in Libreboot documentation. Libreboot's main benefit is *higher boot speed*, [better](../docs/linux/encryption.md) @@ -156,21 +156,21 @@ please contact the Libreboot project. They are: ### Servers (AMD, x86) -- [ASUS KFSN4-DRE motherboard](../docs/hardware/kfsn4-dre.md) -- [ASUS KGPE-D16 motherboard](../docs/hardware/kgpe-d16.md) +- [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) +- [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) Desktops (AMD, Intel, x86) ----------------------- -- [Gigabyte GA-G41M-ES2L motherboard](../docs/hardware/ga-g41m-es2l.md) -- [Acer G43T-AM3](../docs/hardware/acer_g43t-am3.md) -- [Intel D510MO and D410PT motherboards](../docs/hardware/d510mo.md) -- [Apple iMac 5,2](../docs/hardware/imac52.md) -- [ASUS KCMA-D8 motherboard](../docs/hardware/kcma-d8.md) -- [Dell Precision T1650](../docs/hardware/t1650.md) (**easy to flash without disassembly**) -- [HP Elite 8200 SFF/MT](../docs/hardware/hp8200sff.md) (HP 6200 Pro Business probably works too) -- [HP Elite 8300 USDT](../docs/hardware/hp8300usdt.md) -- [Intel D945GCLF](../docs/hardware/d945gclf.md) +- [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) +- [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) +- Intel D510MO and D410PT motherboards +- Apple iMac 5,2 +- [ASUS KCMA-D8 motherboard](../docs/install/kcma-d8.md) +- [Dell Precision T1650](../docs/install/t1650.md) (**easy to flash without disassembly**) +- [HP Elite 8200 SFF/MT](../docs/install/hp8200sff.md) (HP 6200 Pro Business probably works too) +- [HP Elite 8300 USDT](../docs/install/hp8300usdt.md) +- [Intel D945GCLF](../docs/install/d945gclf.md) ### Laptops (Intel, x86) @@ -179,15 +179,15 @@ Desktops (AMD, Intel, x86) - [Dell Latitude E6430 (Intel GPU](../docs/install/latitude.md) **(easy to flash, no disassembly)** - ThinkPad X60 / X60S / X60 Tablet - ThinkPad T60 (with Intel GPU) -- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/hardware/x200.md) +- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/install/x200.md) - Lenovo ThinkPad X301 -- [Lenovo ThinkPad R400](../docs/hardware/r400.md) -- [Lenovo ThinkPad T400 / T400S](../docs/hardware/t400.md) -- [Lenovo ThinkPad T500](../docs/hardware/t500.md) +- [Lenovo ThinkPad R400](../docs/install/r400.md) +- [Lenovo ThinkPad T400 / T400S](../docs/install/t400.md) +- [Lenovo ThinkPad T500](../docs/install/t500.md) - [Lenovo ThinkPad T530 / W530](../docs/install/ivy_has_common.md) -- [Lenovo ThinkPad W500](../docs/hardware/t500.md) -- [Lenovo ThinkPad R500](../docs/hardware/r500.md) -- [Apple MacBook1,1 and MacBook2,1](../docs/hardware/macbook21.md) +- [Lenovo ThinkPad W500](../docs/install/t500.md) +- Lenovo ThinkPad R500 +- [Apple MacBook1,1 and MacBook2,1](../docs/install/macbook21.md) - [Lenovo ThinkPad T440p](../docs/install/t440p_external.md) - [Lenovo Thinkpad X220](../docs/install/ivy_has_common.md) - [Lenovo Thinkpad X220t](../docs/install/ivy_has_common.md) @@ -197,11 +197,11 @@ Desktops (AMD, Intel, x86) - [Lenovo Thinkpad X230](../docs/install/x230_external.md) - [Lenovo Thinkpad X230t](../docs/install/x230_external.md) - [Lenovo ThinkPad W541](../docs/install/ivy_has_common.md) -- [HP EliteBook 2170p](../docs/hardware/hp2170p.md) (**socketed flash IC**) -- [HP EliteBook 2560p](../docs/hardware/hp2560p.md) -- [HP EliteBook 2570p](../docs/hardware/hp2570p.md) -- [HP EliteBook 8470p](../docs/hardware/hp8470p.md) -- [HP EliteBook Folio 9470m](../docs/hardware/hp9470m.md) +- [HP EliteBook 2170p](../docs/install/hp2170p.md) (**socketed flash IC**) +- [HP EliteBook 2560p](../docs/install/hp2560p.md) +- [HP EliteBook 2570p](../docs/install/hp2570p.md) +- [HP EliteBook 8470p](../docs/install/hp8470p.md) +- [HP EliteBook Folio 9470m](../docs/install/hp9470m.md) ### Laptops (ARM, with U-Boot payload) diff --git a/site/news/libreboot20240126.md b/site/news/libreboot20240126.md index 3c3e7f4..9869c12 100644 --- a/site/news/libreboot20240126.md +++ b/site/news/libreboot20240126.md @@ -19,7 +19,7 @@ payloads are officially supported, provided in varying configurations per machine. It provides an [automated build system](../docs/maintain/) for the [configuration](../docs/build/) and [installation](../docs/install/) of coreboot ROM images, making coreboot easier to use for non-technical people. You can find -the [list of supported hardware](../docs/hardware/) in Libreboot documentation. +the [list of supported hardware](../docs/install/) in Libreboot documentation. Libreboot's main benefit is *higher boot speed*, [better](../docs/linux/encryption.md) diff --git a/site/news/libreboot20240225.md b/site/news/libreboot20240225.md index 915a492..2e1371d 100644 --- a/site/news/libreboot20240225.md +++ b/site/news/libreboot20240225.md @@ -36,24 +36,24 @@ This release supports the following hardware: ### Servers (AMD, x86) -- [ASUS KFSN4-DRE motherboard](../docs/hardware/kfsn4-dre.md) -- [ASUS KGPE-D16 motherboard](../docs/hardware/kgpe-d16.md) +- [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) +- [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) ### Desktops (AMD, Intel, x86) -- **[Dell OptiPlex 7020/9020 MT and SFF](../docs/hardware/dell9020.md) - Also [available to buy +- **[Dell OptiPlex 7020/9020 MT and SFF](../docs/install/dell9020.md) - Also [available to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-9020/)** - Dell OptiPlex XE2 MT/SFF also known to work -- [Acer G43T-AM3](../docs/hardware/acer_g43t-am3.md) -- [Apple iMac 5,2](../docs/hardware/imac52.md) -- [ASUS KCMA-D8 motherboard](../docs/hardware/kcma-d8.md) +- [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) +- Apple iMac 5,2 +- [ASUS KCMA-D8 motherboard](../docs/install/kcma-d8.md) - Dell OptiPlex 7010 **MT** (known to work, using the T1650 ROM, but more research is needed) -- [Dell Precision T1650](../docs/hardware/t1650.md) -- [Gigabyte GA-G41M-ES2L motherboard](../docs/hardware/ga-g41m-es2l.md) -- [HP Elite 8200 SFF/MT](../docs/hardware/hp8200sff.md) (HP 6200 Pro Business probably works too) -- [HP Elite 8300 USDT](../docs/hardware/hp8300usdt.md) -- [Intel D510MO and D410PT motherboards](../docs/hardware/d510mo.md) -- [Intel D945GCLF](../docs/hardware/d945gclf.md) +- [Dell Precision T1650](../docs/install/t1650.md) +- [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) +- [HP Elite 8200 SFF/MT](../docs/install/hp8200sff.md) (HP 6200 Pro Business probably works too) +- [HP Elite 8300 USDT](../docs/install/hp8300usdt.md) +- Intel D510MO and D410PT motherboards +- [Intel D945GCLF](../docs/install/d945gclf.md) ### Laptops (Intel, x86) @@ -61,7 +61,7 @@ This release supports the following hardware: to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-t440p/)** - **[Lenovo ThinkPad W541](../docs/install/ivy_has_common.md) - Also [available to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-w541/)** -- [Apple MacBook1,1 and MacBook2,1](../docs/hardware/macbook21.md) +- [Apple MacBook1,1 and MacBook2,1](../docs/install/macbook21.md) - [Dell Latitude E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel GPU](../docs/install/latitude.md) - [Dell Latitude E6420 (Intel GPU](../docs/install/latitude.md) @@ -70,26 +70,26 @@ This release supports the following hardware: - [Dell Latitude E5530 (Intel GPU](../docs/install/latitude.md) - [Dell Latitude E6520 (Intel GPU](../docs/install/latitude.md) - [Dell Latitude E6530 (Intel GPU](../docs/install/latitude.md) -- [HP EliteBook 2170p](../docs/hardware/hp2170p.md) -- [HP EliteBook 2560p](../docs/hardware/hp2560p.md) -- [HP EliteBook 2570p](../docs/hardware/hp2570p.md) -- [HP EliteBook 820 G2](../docs/hardware/hp820g2.md) -- [HP EliteBook 8460p](../docs/hardware/hp8460p.md) -- [HP EliteBook 8470p](../docs/hardware/hp8470p.md) -- [HP EliteBook 8560w](../docs/hardware/hp8560w.md) -- [HP EliteBook Folio 9470m](../docs/hardware/hp9470m.md) -- [Lenovo ThinkPad R400](../docs/hardware/r400.md) -- [Lenovo ThinkPad R500](../docs/hardware/r500.md) -- [Lenovo ThinkPad T400 / T400S](../docs/hardware/t400.md) +- [HP EliteBook 2170p](../docs/install/hp2170p.md) +- [HP EliteBook 2560p](../docs/install/hp2560p.md) +- [HP EliteBook 2570p](../docs/install/hp2570p.md) +- [HP EliteBook 820 G2](../docs/install/hp820g2.md) +- [HP EliteBook 8460p](../docs/install/hp8460p.md) +- [HP EliteBook 8470p](../docs/install/hp8470p.md) +- [HP EliteBook 8560w](../docs/install/hp8560w.md) +- [HP EliteBook Folio 9470m](../docs/install/hp9470m.md) +- [Lenovo ThinkPad R400](../docs/install/r400.md) +- Lenovo ThinkPad R500 +- [Lenovo ThinkPad T400 / T400S](../docs/install/t400.md) - [Lenovo Thinkpad T420](../docs/install/ivy_has_common.md) (no install docs yet) - [Lenovo ThinkPad T420S](../docs/install/ivy_has_common.md) (no install docs yet) - [Lenovo ThinkPad T430](../docs/install/ivy_has_common.md) (no install docs yet) -- [Lenovo ThinkPad T500](../docs/hardware/t500.md) +- [Lenovo ThinkPad T500](../docs/install/t500.md) - [Lenovo ThinkPad T520 / W520](../docs/install/ivy_has_common.md) (no install guide yet) - [Lenovo ThinkPad T530 / W530](../docs/install/ivy_has_common.md) (no install - Lenovo ThinkPad T60 (with Intel GPU) -- [Lenovo ThinkPad W500](../docs/hardware/t500.md) -- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/hardware/x200.md) +- [Lenovo ThinkPad W500](../docs/install/t500.md) +- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/install/x200.md) - [Lenovo Thinkpad X220](../docs/install/ivy_has_common.md) - [Lenovo Thinkpad X220t](../docs/install/ivy_has_common.md) - Lenovo ThinkPad X230 diff --git a/site/news/libreboot20240504.md b/site/news/libreboot20240504.md index 08418a9..98df1e7 100644 --- a/site/news/libreboot20240504.md +++ b/site/news/libreboot20240504.md @@ -60,24 +60,24 @@ This release supports the following hardware: ### Servers (AMD, x86) -- [ASUS KFSN4-DRE motherboard](../docs/hardware/kfsn4-dre.md) -- [ASUS KGPE-D16 motherboard](../docs/hardware/kgpe-d16.md) +- [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) +- [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) ### Desktops (AMD, Intel, x86) -- **[Dell OptiPlex 7020/9020 MT and SFF](../docs/hardware/dell9020.md) - Also [available to buy +- **[Dell OptiPlex 7020/9020 MT and SFF](../docs/install/dell9020.md) - Also [available to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-9020/)** - Dell OptiPlex XE2 MT/SFF also known to work -- [Acer G43T-AM3](../docs/hardware/acer_g43t-am3.md) -- [Apple iMac 5,2](../docs/hardware/imac52.md) -- [ASUS KCMA-D8 motherboard](../docs/hardware/kcma-d8.md) +- [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) +- Apple iMac 5,2 +- [ASUS KCMA-D8 motherboard](../docs/install/kcma-d8.md) - Dell OptiPlex 7010 **MT** (known to work, using the T1650 ROM, but more research is needed) -- [Dell Precision T1650](../docs/hardware/t1650.md) -- [Gigabyte GA-G41M-ES2L motherboard](../docs/hardware/ga-g41m-es2l.md) -- [HP Elite 8200 SFF/MT](../docs/hardware/hp8200sff.md) (HP 6200 Pro Business probably works too) -- [HP Elite 8300 USDT](../docs/hardware/hp8300usdt.md) -- [Intel D510MO and D410PT motherboards](../docs/hardware/d510mo.md) -- [Intel D945GCLF](../docs/hardware/d945gclf.md) +- [Dell Precision T1650](../docs/install/t1650.md) +- [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) +- [HP Elite 8200 SFF/MT](../docs/install/hp8200sff.md) (HP 6200 Pro Business probably works too) +- [HP Elite 8300 USDT](../docs/install/hp8300usdt.md) +- Intel D510MO and D410PT motherboards +- [Intel D945GCLF](../docs/install/d945gclf.md) ### Laptops (Intel, x86) @@ -85,7 +85,7 @@ This release supports the following hardware: to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-t440p/)** - **[Lenovo ThinkPad W541](../docs/install/ivy_has_common.md) - Also [available to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-w541/)** -- [Apple MacBook1,1 and MacBook2,1](../docs/hardware/macbook21.md) +- [Apple MacBook1,1 and MacBook2,1](../docs/install/macbook21.md) - [Dell Latitude E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel GPU](../docs/install/latitude.md) - [Dell Latitude E6420 (Intel GPU](../docs/install/latitude.md) @@ -95,26 +95,26 @@ This release supports the following hardware: - [Dell Latitude E6520 (Intel GPU](../docs/install/latitude.md) - [Dell Latitude E6530 (Intel GPU](../docs/install/latitude.md) - Dell Latitude E5420 -- [HP EliteBook 2170p](../docs/hardware/hp2170p.md) -- [HP EliteBook 2560p](../docs/hardware/hp2560p.md) -- [HP EliteBook 2570p](../docs/hardware/hp2570p.md) -- [HP EliteBook 820 G2](../docs/hardware/hp820g2.md) -- [HP EliteBook 8460p](../docs/hardware/hp8460p.md) -- [HP EliteBook 8470p](../docs/hardware/hp8470p.md) -- [HP EliteBook 8560w](../docs/hardware/hp8560w.md) -- [HP EliteBook Folio 9470m](../docs/hardware/hp9470m.md) -- [Lenovo ThinkPad R400](../docs/hardware/r400.md) -- [Lenovo ThinkPad R500](../docs/hardware/r500.md) -- [Lenovo ThinkPad T400 / T400S](../docs/hardware/t400.md) +- [HP EliteBook 2170p](../docs/install/hp2170p.md) +- [HP EliteBook 2560p](../docs/install/hp2560p.md) +- [HP EliteBook 2570p](../docs/install/hp2570p.md) +- [HP EliteBook 820 G2](../docs/install/hp820g2.md) +- [HP EliteBook 8460p](../docs/install/hp8460p.md) +- [HP EliteBook 8470p](../docs/install/hp8470p.md) +- [HP EliteBook 8560w](../docs/install/hp8560w.md) +- [HP EliteBook Folio 9470m](../docs/install/hp9470m.md) +- [Lenovo ThinkPad R400](../docs/install/r400.md) +- Lenovo ThinkPad R500 +- [Lenovo ThinkPad T400 / T400S](../docs/install/t400.md) - [Lenovo Thinkpad T420](../docs/install/ivy_has_common.md) (no install docs yet) - [Lenovo ThinkPad T420S](../docs/install/ivy_has_common.md) (no install docs yet) - [Lenovo ThinkPad T430](../docs/install/ivy_has_common.md) (no install docs yet) -- [Lenovo ThinkPad T500](../docs/hardware/t500.md) +- [Lenovo ThinkPad T500](../docs/install/t500.md) - [Lenovo ThinkPad T520 / W520](../docs/install/ivy_has_common.md) (no install guide yet) - [Lenovo ThinkPad T530 / W530](../docs/install/ivy_has_common.md) (no install - Lenovo ThinkPad T60 (with Intel GPU) -- [Lenovo ThinkPad W500](../docs/hardware/t500.md) -- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/hardware/x200.md) +- [Lenovo ThinkPad W500](../docs/install/t500.md) +- [Lenovo ThinkPad X200 / X200S / X200 Tablet](../docs/install/x200.md) - [Lenovo Thinkpad X220](../docs/install/ivy_has_common.md) - [Lenovo Thinkpad X220t](../docs/install/ivy_has_common.md) - Lenovo ThinkPad X230 diff --git a/site/news/ports202402.md b/site/news/ports202402.md index 8d71be1..a34c639 100644 --- a/site/news/ports202402.md +++ b/site/news/ports202402.md @@ -12,7 +12,7 @@ The boards are: Dell OptiPlex 7020 and 9020 (MT and SFF) ======================================== -See: [Dell OptiPlex 9020 SFF/MT (and 7020)](../docs/hardware/dell9020.html) +See: [Dell OptiPlex 9020 SFF/MT (and 7020)](../docs/install/dell9020.html) This is a highly performant Haswell board, with plenty of expansion and upgrade options available. Notably, it is a *desktop* computer, available @@ -28,7 +28,7 @@ HP EliteBook 8560w ================== Riku Viitanen added this recently. See: -[HP EliteBook 8560w](../docs/hardware/hp8560w.html). +[HP EliteBook 8560w](../docs/install/hp8560w.html). Of note: this board uses an *MXM* graphics card, which you can upgrade. Riku added support for loading MXM configuration via INT15H interrupt in SeaBIOS, @@ -45,10 +45,10 @@ A *lot* more Dell Latitudes Nicholas Chin recently added these Dell Latitudes (of Sandybridge and Ivybridge platforms) to Libreboot: -* [Dell Latitude E6420](../docs/hardware/e6420.html) -* [Dell Latitude E5520](../docs/hardware/e5520.html) -* [Dell Latitude E5530](../docs/hardware/e5530.html) -* [Dell Latitude E6520](../docs/hardware/e6520.html) +* [Dell Latitude E6420](../docs/install/e6420.html) +* [Dell Latitude E5520](../docs/install/e5520.html) +* [Dell Latitude E5530](../docs/install/e5530.html) +* [Dell Latitude E6520](../docs/install/e6520.html) These are flashable via the usual method, same as E6400 and E6430. diff --git a/site/tasks/index.md b/site/tasks/index.md index 797c200..57ec0ef 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -303,7 +303,7 @@ but still very useful. The `nyan`, `peach` and `daisy` platforms were initially added to lbmk, but prematurely. They are talked about here: - + It would be nice in general to support more ARM platforms in Libreboot. None of these machines are as decent as the Apple silicon machines (m1/m2/m3 etc), From 025ac72aeeeee92698e05686ed5177f6763e3b7f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 7 Sep 2024 02:24:15 +0100 Subject: [PATCH 065/399] grub_cbfs: add -t raw to example cbfs command i overlooked this, when re-writing the guide Signed-off-by: Leah Rowe --- site/docs/linux/grub_cbfs.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/linux/grub_cbfs.md b/site/docs/linux/grub_cbfs.md index 9f2cc04..3f7a1fc 100644 --- a/site/docs/linux/grub_cbfs.md +++ b/site/docs/linux/grub_cbfs.md @@ -122,7 +122,7 @@ Before reading the next section, please note: if you only have the fallback GRUB config in memdisk, and no configs in CBFS, you can test the modified version by inserting it as `grubtest.cfg`, instead of `grub.cfg`: - cbfstool libreboot.rom add -f grubtest.cfg -n grubtest.cfg + cbfstool libreboot.rom add -f grubtest.cfg -n grubtest.cfg -t raw Libreboot will not automatically load it, but it will be available from the default GRUB menu. This can be useful for test purposes, hence the name. @@ -142,7 +142,7 @@ Now remove it: It's important that you re-add `grub.cfg` before flashing (or just add it, if it was never there in the first place): - cbfstool libreboot.rom add -f grub.cfg -n grub.cfg + cbfstool libreboot.rom add -f grub.cfg -n grub.cfg -t raw **If you flash the Libreboot image without a `grub.cfg` in CBFS, it will default back to the one in GRUB memdisk. From c18402c8a7013e7811cd1994db1c51aa7017b504 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 23 Sep 2024 17:57:06 +0100 Subject: [PATCH 066/399] update docs/maintain/ it was missing a few items, and some items were out of date, based on changes in lbmk audit 6 Signed-off-by: Leah Rowe --- site/docs/maintain/index.md | 126 +++++++++++++++++++++++++----------- 1 file changed, 87 insertions(+), 39 deletions(-) diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 1cc4265..1ee07c8 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -657,19 +657,10 @@ hence `xarch`. The `payload_grub` entry specifies whether or not GRUB is to be included in ROM images. -The `payload_grub_withseabios` entry specifies whether or not SeaBIOS is to -be included *with* GRUB, in ROM images. Turning this on also turns -on `payload_seabios_withgrub`, unless that option is explicitly turned off. - The `payload_seabios` entry specifies whether or not SeaBIOS is to be included -in ROM images. This option is *automatically* enabled -if `payload_grub_withseabios` and/or `payload_seabios_withgrub` are also turned -on. - -The `payload_seabios_grubonly` option, if enabled, creates separate ROM -images alongside regular `seabios_withgrub` ones, where the `grubonly` ones -start SeaBIOS but disable the menu and only ever load GRUB from CBFS, which -then provides the boot for your machine. +in ROM images. If GRUB is also enabled, standalone SeaBIOS images will be +created alongside SeaGRUB images. SeaGRUB is where SeaBIOS automatically +loads GRUB, via `bootorder` inserted into CBFS. The `payload_memtest` entry specifies whether or not MemTest86+ is to be included in ROM images; it will only be included in ROM images for *text mode* @@ -812,6 +803,52 @@ of their own; for example, `config/grub/` exists. Multiple files exist here, and they are *concatenated* in a temporary file by lbmk, which is then scanned to find information about projects. +config/data/PROJECT/mkhelper.cfg +-------------------------------- + +These `mkhelper.cfg` files define common configuration that can be supplied +for any single- or multi-tree project. Arguments available are as follows: + +* `makeargs`: This defines what arguments to append when running the + main `make` command on a given project. For example, this is used on coreboot + to tell coreboot's build system that the submodules have been updated (to + avoid downloading any that we didn't manually specify). +* `build_depend`: Just before running the main `make` command on a given + project, this specifies other projects to build. It also works with multi + tree projects. Example: `seabios/default grub/xhci memtest86plus` +* `premake`: This defines a function to be called *before* running make, on a + given project; the mkhelper file itself can also import any given file to + provide that function. +* `mkhelper` (variable name): Defines a function to be called just after + running make, on a given project. +* `postmake`: This is run *after* `mkhelper`, and can be used for additional + functions. For example, it's used on coreboot to call `mkcoreboottar` which + will create tarballs of ROM images if `XBMK_RELEASE` is enabled. + +You can define anything else here, for use by a given project. More specifically, +anything you put in mkhelper files will be imported as part of a normal shell +script during operation of lbmk, to complement core functionality across all +the various projects. + +The `mkhelper` file is a global configuration for the project. Individual +projects can complement what is set in mkhelper, via `target.cfg` files for +each project, project tree or target on a given multi-tree project. + +The `mkhelper` functionality (and postmake/premake) was originally implemented +so that lots of special configuration could be done per project, without a lot +of code repetition. This is a unique design of lbmk, different from many other +coreboot-distro build systems. + +The `mkhelper` functionality is an essential component that makes lbmk work +the way it does; for example, the `trees` script builds coreboot images without +payloads, and functions to add payloads are handled by mkhelper-type functions. +This design allows almost all functionality to be centralised, where the mkhelper +functions only provide functionality that differs from core functionality. + +In the simplest of terms, you may regard mkhelpers as *plugins*, of a sort. +They simply extend the core functionality of the build system, in a way that +can differ flexibly between projects. + GRUB config --------------- @@ -849,7 +886,7 @@ Author info for GRUB configuration files. Licensing info for GRUB configuration files. -### config/grub/TREE/config/grub.cfg +### config/grub/TREE/config/payload This is a configuration file. It is used to program GRUB's shell. @@ -863,7 +900,7 @@ A `grubtest.cfg` can be inserted into CBFS, but it will not override the default `grub.cfg` (either in CBFS or on memdisk); however, the one in memdisk will provide a menuentry for switching to this, if available. -### config/data/grub/config/memdisk.cfg +### config/data/grub/memdisk.cfg This GRUB configuration checks whether `grub.cfg` exists in CBFS and switches to that first (not provided by default) or, if one is not available in CBFS, @@ -887,7 +924,7 @@ These files are binary-encoded, defining which characters correspond to which scancodes. It is handled by `grub-core/commands/keylayouts.c` in the GRUB source code. -### config/grub/TREE/modules.list +### config/data/grub/module/TREE This defines which modules are inserted into `grub.elf`. These modules can be anything from file systems, small applications/utilities, launchers (e.g. @@ -901,7 +938,7 @@ This list is used by lbmk when it runs `grub-mkstandalone`, which is the utility from GRUB that generates `grub.elf` files (to be compressed inside CBFS and then executed as a coreboot payload). -### config/grub/patches/ +### config/grub/TREE/patches/ For a given GRUB revision, patches with the `patch` file extension are placed here, alphanumerically in the order that they should be applied. For example, @@ -920,7 +957,7 @@ by lbmk to build coreboot ROM images. config/seabios/ --------------- -### config/seabios/build.list +### config/data/seabios/build.list When a given SeaBIOS tree is compiled, for a given target, this file defines which files to copy from the `seabios/` directory, which are then copied to @@ -966,7 +1003,7 @@ that can use U-Boot as a payload in the `lbmk` build system. U-Boot doesn't yet have reliable generic configurations that can work across all coreboot boards (per-architecture), so these are used to build it per-board. -### config/u-boot/build.list +### config/data/u-boot/build.list When a given U-Boot tree is compiled, for a given target, this file defines which files to copy from the U-Boot source build, which are then copied to @@ -1138,6 +1175,11 @@ the above guidance. Config files in lbmk root directory =================================== +projectsite +------------- + +Domain name linking to the project home page (e.g. libreboot.org). + projectname --------------- @@ -1167,7 +1209,10 @@ Scripts in root directory of lbmk build --------------- -This is the main script. Symlinks `vendor` and `update` also point to it. +This is the main script. Symlinks `vendor` and `update` also point to it, as +does `mk`. Direct use of this script is considered deprecate, because in a +future audit, it will be removed; the `./mk` commands will be used, +exclusively, so please use only `./mk` as directed here and elsewhere. Take any given file under `script/` and you can do: @@ -1181,8 +1226,8 @@ For example: Special commands available (not provided by files under `script/`): ./mk release - ./mk download ./mk inject + ./mk -d coreboot TARGET # also downloads vendor files The `vendor` commands are handled by the `build` script, calling functions inside `include/vendor.sh`, and the `./mk release` logic is handled @@ -1225,12 +1270,12 @@ now the logic under `include/vendor.sh` is used for downloads. This file now only contains those functions used for extraction of MRC files from Google Chromebook images, currently only used for Haswell mainboards. -This is an include, used by `script/vendor/download`, but it's here in +This is an include, used by `include/vendor.sh`, but it's here in this file because the vendor download script is GPLv3-only, while the MRC extract logic in this file is GPLv2-only (forked from coreboot ages ago). Thus, it is provided as an include to bypass license incompatibility. It has been heavily modified to use the same style of logic and general control flow used -in the script at `script/vendor/download`, and it is used from there. +in the script at `include/vendor.sh`, and it is used from there. include/lib.sh --------------- @@ -1252,13 +1297,12 @@ This function also contains `x_()` which lbmk uses to execute commands and ensure that they cause an exit (with non-zero status) from lbmk, if they return an error state. -script/ -======= - -script/roms +include/rom.sh ----------- -This builds coreboot ROM images. +This builds coreboot ROM images. Specifically, this contains mkhelper functions. +It also builds serprog images, and it could be used to provide functions for +building other types of firmware. Command: `./mk -b coreboot targetname` @@ -1275,11 +1319,6 @@ To build *all* targets, specify: ./mk -b coreboot -Since November 2022, this script can build images for x86 *and* ARM targets. -The *ARM* targets are ChromeOS devices (chromebooks and such); Libreboot uses -the *U-Boot* payload, rather than Google's *depthcharge* bootloader. In this -setup, U-Boot is running on the bare metal, as enabled by *coreboot*. - For x86 targets, these scripts build with the GRUB and/or SeaBIOS payloads inserted into the ROM images; secondary payloads like Memtest86+ are also handled and inserted here. @@ -1327,21 +1366,30 @@ This script is the beating heart of Libreboot. Break it, and you break Libreboot! Serprog images: +-------------- Build firmware images for serprog-based SPI programmers, where they use an STM32 MCU. It also builds for RP2040-based programmers like Raspberry Pi Pico. -Example command: `./build roms serprog stm32` +Example command: `./mk -b pico-serprog` -Example command: `./build roms serprog rp2040` +Example command: `./mk -b stm32-vserprog` -The `list` argument is available: +This also uses `rom.sh` as with the coreboot image build logic. It's all +defined in that file, so read the main section pertaining to this file. - ./build roms serprog stm32 list - ./build roms serprog rp2040 list +include/vendor.sh +----------------- -Without arguments, all targets would be compiled, but you can specify a short -list of targets instead, based on the output of `list`. +Helper functions for downloading and injecting vendor files. How to use: + + ./mk inject ARGUMENTS + ./mk -d coreboot TARGET + +Refer elsewhere in the documentation for how to handle vendor files. + +script/ +======= script/trees ------------ From b3cb1d224f04af13368c3a6a0fd1953ccb25d84a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 23 Sep 2024 18:01:00 +0100 Subject: [PATCH 067/399] docs/install: add missing latitudes to hcl the ones that nicholas added recently Signed-off-by: Leah Rowe --- site/docs/install/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 16273e1..40ec87e 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -96,7 +96,7 @@ Laptops (Intel, x86) - [Apple MacBook1,1 and MacBook2,1](macbook21.md) - [Dell Latitude E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel GPU](latitude.md) -- [Dell Latitude E5420, E5520, E5530, E6420, E6430, E6520, E6530](latitude.md) +- [Dell Latitude E5420, E5520, E5530, E6420, E6430, E6520, E6530, E6230, E6330, E6220](latitude.md) (Intel GPU variants only) - [HP EliteBook 2170p](hp2170p.md) - [HP EliteBook 2560p](hp2560p.md) From 0424b1f6a413339a18a39f35dc037463215fbafe Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 26 Sep 2024 07:53:44 +0100 Subject: [PATCH 068/399] add playstation page to docs Signed-off-by: Leah Rowe --- site/docs/install/index.md | 5 + site/docs/install/playstation.md | 224 +++++++++++++++++++++++++++++++ 2 files changed, 229 insertions(+) create mode 100644 site/docs/install/playstation.md diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 40ec87e..cf08f61 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -61,6 +61,11 @@ systems, you can use the U-Boot payload (coreboot still initialises hardware). Libreboot currently supports the following systems: +Games consoles +-------------- + +- [Sony Playstation](playstation.md) (PS1/PSX) + Servers (AMD, x86) ------------------ diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md new file mode 100644 index 0000000..d242b60 --- /dev/null +++ b/site/docs/install/playstation.md @@ -0,0 +1,224 @@ +--- +title: Sony PlayStation (PS1/PSX) +x-toc-enable: true +... + +The PlayStation is a computer like any other. It ought to run all Free Software +if you want it to, and you can! + +
+
+Sony PlayStation (PSOne) console +PCSX-Redux Open BIOS +
+ +| ***Specifications*** | | +|----------------------------|------------------------------------------------| +| **Manufacturer** | Sony Computer Entertainment Inc. | +| **Name** | PlayStation | +| **Variants** | PlayStation, PSOne, Net Yaroze | +| **Released** | 1994 (Japan), 1995 (Worldwide) | +| **CPU** | MIPS R3000 @ 33.8688 MHz | +| **Graphics** | Custom 3D processor by Toshiba, 1MB Video RAM | +| **Sound** | 16-bit custom Sony SPU | +| **I/O** | CD-ROM, analog Audio/Video, Serial, Parallel | +| **Memory** | 2MB EDO DRAM | +| **Architecture** | MIPS I instruction set (RISC) | +| **Original boot firmware** | Sony PS1 BIOS (USA/JPN/EU) | +| **Flash chip** | 512KB Mask ROM | +
+Introduction +============ + +**Unavailable in Libreboot 20240612 or earlier. You must compile from source; +first, check the [main build guide source](../build/) to get dependencies.** + +You can use the following command in lbmk (on Linux) to build the BIOS: + + ./mk -b pcsx-redux + +This command only compiles the BIOS code found in `src/mips/openbios/`, of +PCSX-Redux, which is downloaded to `src/pcsx-redux/`, so the BIOS source code +in full would be located at `src/pcsx-redux/src/mips/openbios` within lbmk. + +You will then find the BIOS image under `bin/playstation/openbios.bin`. This +can be used on PlayStation emulators, and it can also be used on the real +hardware. It has a relatively [high +compatibility](https://docs.google.com/spreadsheets/d/1UNGs7uYb8viAbm7YJaf1CR4dkgX7ZzntUdcowGsjcVc/edit?pli=1&gid=772799649#gid=772799649) according to the developers. + +This uses the free/opensource BIOS developed by the PCSX-Redux team, which you +can learn more about here: + + + +NOTE: As of 26 September 2024, lbmk for PlayStation has only been build-tested +on Debian 12 (x86\_64). The build dependencies script provides a `mipsel` cross +compiler; otherwise, PCSX-Redux's page has general instructions for how to get +a compatible toolchain:\ + + +Installation +============ + +Emulators +--------- + +Most PlayStation emulators rely on low-level emulation to execute the real BIOS. +The Open BIOS by PCSX-Redux (as distributed by Libreboot) can also be used, and +boots many commercial games, plus homebrew. + +These emulators can boot many commercial games, with varying degrees of +compatibility, and they can also boot any homebrew/opensource games that you +might develop yourself, or that others have written. + +Hardware +-------- + +Not yet tested by the Libreboot project, but the PCSX-Redux developers have +stated that it will work on the real console. It should be noted that the Open +BIOS does not seem to implement a memory card save handler at present. If +someone can recommend a boot disc that could replace this, that'd be nice; +otherwise, read on. + +Game compatibility +================== + +The upstream maintains a compatibility list, here: + + + +NOTE: Google Docs, but an option exists on there to export it for LibreOffice +Calc. The list is provided as a spreadsheet. + +Memory card handling +==================== + +Basically, the Open BIOS from PCSX-Redux does not yet support handling the +memory cards. The game compatibility is also not complete, though it is +excellent. Therefore, you might consider a *dual BIOS* setup - and this has +not been tested, but should work just fine (it will be tested at a later date). + +Using it on hardware +==================== + +The dual BIOS works like so: manipulate the OE/chip select pins on the BIOS +chip (original one), between that and the one on the replacement chip. You +would have both chips present, one of them containing your Open BIOS. You would +control the OE/CS pins via a toggle switch. When the switch is set one way, it +boots the original Sony BIOS, and the other position boots the Open BIOS. You +would take care not to switch it while the machine is in operation, but it could +be set before turning the machine on. + +Modern NOR flash can be used. You specifically want a TSOP-32 SMD/SMT type device, +one that operates at 3.3v (tolerance 2.7 to 3.6v), organised into 512KB blocks, +for example 512KB x8 is a common part, for example [SST39VF040](https://eu.mouser.com/ProductDetail/Microchip-Technology/SST39VF040-70-4C-WHE?qs=I6DYTe5pEPUDs7BrdNtR9w%3D%3D). + +Look here: + + +This person has designed PCBs that can be used to add a NOR flash, adapting to +the pinout of the playstation BIOS. Some early launch model PlayStations used +a 40-pin chip but most later ones soon after and to end of life were 32-pin. +This page only sells adapters for use with 32-bit boards. + +For most boards, the one you want is probably the `PS1_Flash_Bios_(A)` one. +You must flash the chip first, before soldering it onto this adapter board. +You can then de-solder the BIOS chip; look for a 512K mask ROM on the board. + +Make sure the adapter is soldered properly, and solder it into place. You can +find some videos online for how to do this. Libreboot cannot verify the quality +of all of them and may provide such guidance itself in the future. + +**Do not** assume that the dual-BIOS idea will even work, because to our +knowledge, it has not been tested. It is highly theoretical at this point, and +recommended (assuming it would work) instead of simply replacing the original +BIOS outright. Even if game compatibility were 100%, it helps to have a backup +solution in case of bugs. + +There are a few edge cases: PsNee (referenced below) might not work well on +some Japanese playstations, or PAL PSOne Slim, due to extra restrictions in +the Sony BIOS; therefore, if doing Dual BIOS, it might be wise to use two of +those adapter PCBs stacker, using the same OE/CE switch idea. On the one +containing Sony BIOS, you might use a dump for US NTSC console for example, if +setting it up on a PAL PSOne or Japanese console. Japanese consoles otherwise +have additional region checks at startup, and PAL PSOne slims check what video +mode a game starts in. + +This page may or may not be updated at some point, to document installation on +real hardware. For now, the Open BIOS is only intended for use with emulators. + +Video timings +------------- + +The purpose of these kinds of mods *on hardware* is typically that the user +wants to remove all DRM. Well, there's something many people overlook: video +timings out-of-region are often wrong on these machines. The GPUs have two +clock inputs (early launch models only have one clock input): one for PAL and +one for NTSC. More info could be written here at a later date but these consoles +typically don't have a PAL GPU clock on NTSC consoles, and vice versa. You can +correct this. +Look up the PS1 "dual frequency oscillator" mod. + +Other mods +========== + +If using hardware, you will probably still want a modchip. Many proprietary +modchip firmwares exist, such as Old crow, MultiMode3 and Mayumi; these run on +PIC chips e.g. PIC12C508A. A special *OneChip* firmware is often used on PAL +PSOne Slims. + +There is a *free/opensource* modchip type called PsNee, which is what Libreboot +recommends: + + +Unlike the other modchips, PsNee runs mostly on Arduino-type boards. You can +find more info on its GitHub page. + +The way copy protection works on a playstation is: the commercial discs have +a special wobble in them, that can't be reproduced on consumer hardware. This +wobble encodes region data for the disc, and it's checked for by the CD controller; +if no wobble is present, or the region is incorrect, the disc stops booting, +though it will still play music CDs regardless (in the Sony BIOS). + +The Open BIOS will contain no restrictions whatsoever, but you are still advised +to have a modchip. + +The [PicoStation](https://github.com/paulocode/picostation) project provides +free firmware for RP2040 devices, which you can solder into a modboard which +then emulates the PS1 CD drive. It then lets you boot software (including +many games) from an SD card instead of a CD, using disc image files. + +Combined with PsNee and PicoStation, the Open BIOS from PCSX-Redux team will +turn your 90s PlayStation into a very hackable machine. There is +also PSXSDX (which is also free/opensource) allowing for libre game +development, also known (somewhat ambiguously) as "homebrew" development. The +fact that these old consoles were designed to boot proprietary games, they are +simply computers, fully reprogrammable and as such, Libreboot is happy to provide +this support, for the Sony PlayStation + +This page is very new, as of 26 September 2024, because the PS1 Open BIOS was +only added on this day (26 September). It'll be fleshed out over time, especially +to talk about hardware. The Open BIOS does boot a lot of software, but it is +mostly only recommended for use in emulators at this time. + +Credit +====== + +Thanks go to the PCSX-Redux team for their excellent work reverse engineering +the Sony PS1 BIOS. + +The two photos shown are as follows: + +* PSOne Slim photo was taken from here (the one provided by Libreboot is + scaled down and cropped, with color levels enhanced for better contrast): + - + released under the terms of Creative Commons Attribution-Share Alike 3.0 Unported license +* The cube screenshot is of the PCSX-Redux Open BIOS in operation, on an emulator. + +PlayStation, PS1, PSOne and other terms are the trademark of Sony Interactive +Entertainment. Libreboot is in no way affiliated to Sony Interactive +Entertainment; this page is not an endorsement of Sony Interactive Entertainment, +nor do they endorse Libreboot. + +PCSX-Redux developers are not affiliated with Libreboot in any way. We simply +integrate their Open BIOS into Libreboot because their work is awesome. From 6820d43705b410b265ba8acf3d9ebd8d51041875 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 26 Sep 2024 08:01:20 +0100 Subject: [PATCH 069/399] typo Signed-off-by: Leah Rowe --- site/docs/install/playstation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index d242b60..f3d7ce3 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -190,7 +190,7 @@ many games) from an SD card instead of a CD, using disc image files. Combined with PsNee and PicoStation, the Open BIOS from PCSX-Redux team will turn your 90s PlayStation into a very hackable machine. There is -also PSXSDX (which is also free/opensource) allowing for libre game +also PSXSDK (which is also free/opensource) allowing for libre game development, also known (somewhat ambiguously) as "homebrew" development. The fact that these old consoles were designed to boot proprietary games, they are simply computers, fully reprogrammable and as such, Libreboot is happy to provide From b11b3a4fa6d51478dd04897a2a1f7e5cec717233 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 26 Sep 2024 08:02:34 +0100 Subject: [PATCH 070/399] grammar Signed-off-by: Leah Rowe --- site/docs/install/playstation.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index f3d7ce3..56e98a3 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -192,7 +192,8 @@ Combined with PsNee and PicoStation, the Open BIOS from PCSX-Redux team will turn your 90s PlayStation into a very hackable machine. There is also PSXSDK (which is also free/opensource) allowing for libre game development, also known (somewhat ambiguously) as "homebrew" development. The -fact that these old consoles were designed to boot proprietary games, they are +fact that these old consoles were designed to boot proprietary games is mere +coincidence; they are simply computers, fully reprogrammable and as such, Libreboot is happy to provide this support, for the Sony PlayStation From 8342c2e82921ab70dc27cf773e3655045453ae3b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 26 Sep 2024 08:12:26 +0100 Subject: [PATCH 071/399] spelling Signed-off-by: Leah Rowe --- site/docs/install/playstation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index 56e98a3..452709a 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -138,7 +138,7 @@ solution in case of bugs. There are a few edge cases: PsNee (referenced below) might not work well on some Japanese playstations, or PAL PSOne Slim, due to extra restrictions in the Sony BIOS; therefore, if doing Dual BIOS, it might be wise to use two of -those adapter PCBs stacker, using the same OE/CE switch idea. On the one +those adapter PCBs stacked, using the same OE/CE switch idea. On the one containing Sony BIOS, you might use a dump for US NTSC console for example, if setting it up on a PAL PSOne or Japanese console. Japanese consoles otherwise have additional region checks at startup, and PAL PSOne slims check what video From d799f23069e48d53609529dae34d5b69695e7381 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 26 Sep 2024 11:57:31 +0100 Subject: [PATCH 072/399] tidy up the playstation page Signed-off-by: Leah Rowe --- site/docs/install/playstation.md | 178 +++++++++++++++++-------------- 1 file changed, 99 insertions(+), 79 deletions(-) diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index 452709a..c9c14e6 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -30,36 +30,51 @@ if you want it to, and you can! Introduction ============ -**Unavailable in Libreboot 20240612 or earlier. You must compile from source; -first, check the [main build guide source](../build/) to get dependencies.** - -You can use the following command in lbmk (on Linux) to build the BIOS: - - ./mk -b pcsx-redux - -This command only compiles the BIOS code found in `src/mips/openbios/`, of -PCSX-Redux, which is downloaded to `src/pcsx-redux/`, so the BIOS source code -in full would be located at `src/pcsx-redux/src/mips/openbios` within lbmk. - -You will then find the BIOS image under `bin/playstation/openbios.bin`. This -can be used on PlayStation emulators, and it can also be used on the real -hardware. It has a relatively [high -compatibility](https://docs.google.com/spreadsheets/d/1UNGs7uYb8viAbm7YJaf1CR4dkgX7ZzntUdcowGsjcVc/edit?pli=1&gid=772799649#gid=772799649) according to the developers. - This uses the free/opensource BIOS developed by the PCSX-Redux team, which you can learn more about here: -NOTE: As of 26 September 2024, lbmk for PlayStation has only been build-tested -on Debian 12 (x86\_64). The build dependencies script provides a `mipsel` cross -compiler; otherwise, PCSX-Redux's page has general instructions for how to get -a compatible toolchain:\ +Build from source +----------------- + +Pre-compiled builds will be in the next Libreboot release, after +version 20240612. For now, you must compile it from source, but the Libreboot +build system provides automation for this. Please use the latest lbmk +revision [from Git](../../git.md). + +First, please make sure you have build dependencies. The build logic in lbmk +has been tested on Debian 12 (x86\_64) and you can do this for example, as root: + + ./mk dependencies debian + +The `arch` and `parabola` dependencies should also work nicely, if you want +to replace `debian` with one of those in the above example; you need to get the +cross compiler (mipsel one) from the AUR, which you will see when running e.g.: + + ./mk dependencies arch + +If you have another distro, or you're unsure, the PCSX-Redux project also +provide generic instructions for other distros. Please see:\ +When you have the dependencies, including mipsel cross toolchain, you can +just do this in lbmk: + + ./mk -b pcsx-redux + +This commonly only builds the BIOS part. If you want to build all of PCSX-Redux, +you can, but lbmk does not provide automation for this. + Installation ============ +If all went well, you should see `openbios.bin` located +under the `bin/playstation/` (within lbmk). Alternatively, you may be using +a release *after* Libreboot 20240612 that has it pre-built. Either way is fine. + +The `openbios.bin` file is your new BIOS build. + Emulators --------- @@ -71,14 +86,34 @@ These emulators can boot many commercial games, with varying degrees of compatibility, and they can also boot any homebrew/opensource games that you might develop yourself, or that others have written. +Simply load your `openbios.bin` file into the emulator, using the instructions +provided with your chosen PlayStation emulator. You can even freely +redistribute this BIOS, because it's free software (released under MIT license), +which is a major advantage over Sony's original BIOS. + Hardware -------- Not yet tested by the Libreboot project, but the PCSX-Redux developers have -stated that it will work on the real console. It should be noted that the Open -BIOS does not seem to implement a memory card save handler at present. If -someone can recommend a boot disc that could replace this, that'd be nice; -otherwise, read on. +stated that it will work on the real console. *It should be noted that the Open +BIOS does not seem to implement a memory card save handler at present; you can +save and load games, in-game, but there is no built-in program for copying +and deleting saves between memory cards.* From reading the documentation, it +seems that this is essentially a very well-engineered proof of concept that +happens to boot a majority of games; some polishing is still needed to make this +really useful on a real machine. + +The main usefulness of the Open BIOS is that it's under an MIT license, and +therefore legal to distribute; anyone wishing to use an emulator can use a +compiled copy of the Open BIOS, and distribute it freely without trouble. + +You also do not get to listen to music CDs. The quirk with memory cards is +easily mitigated in an *emulator*, because you can simply create different +memory card images for each game you play. + +It would be nice if a memory card manager program were available, to make this +BIOS much more polished, but a number of games have been tested and it's more +or less fully reliable in most cases. Game compatibility ================== @@ -90,25 +125,9 @@ The upstream maintains a compatibility list, here: NOTE: Google Docs, but an option exists on there to export it for LibreOffice Calc. The list is provided as a spreadsheet. -Memory card handling +Remarks about hardware ==================== -Basically, the Open BIOS from PCSX-Redux does not yet support handling the -memory cards. The game compatibility is also not complete, though it is -excellent. Therefore, you might consider a *dual BIOS* setup - and this has -not been tested, but should work just fine (it will be tested at a later date). - -Using it on hardware -==================== - -The dual BIOS works like so: manipulate the OE/chip select pins on the BIOS -chip (original one), between that and the one on the replacement chip. You -would have both chips present, one of them containing your Open BIOS. You would -control the OE/CS pins via a toggle switch. When the switch is set one way, it -boots the original Sony BIOS, and the other position boots the Open BIOS. You -would take care not to switch it while the machine is in operation, but it could -be set before turning the machine on. - Modern NOR flash can be used. You specifically want a TSOP-32 SMD/SMT type device, one that operates at 3.3v (tolerance 2.7 to 3.6v), organised into 512KB blocks, for example 512KB x8 is a common part, for example [SST39VF040](https://eu.mouser.com/ProductDetail/Microchip-Technology/SST39VF040-70-4C-WHE?qs=I6DYTe5pEPUDs7BrdNtR9w%3D%3D). @@ -122,34 +141,20 @@ a 40-pin chip but most later ones soon after and to end of life were 32-pin. This page only sells adapters for use with 32-bit boards. For most boards, the one you want is probably the `PS1_Flash_Bios_(A)` one. -You must flash the chip first, before soldering it onto this adapter board. -You can then de-solder the BIOS chip; look for a 512K mask ROM on the board. -Make sure the adapter is soldered properly, and solder it into place. You can -find some videos online for how to do this. Libreboot cannot verify the quality -of all of them and may provide such guidance itself in the future. +We do not yet provide instructions for how to install this on real hardware, in +the Libreboot project, but this can be done at a future date. -**Do not** assume that the dual-BIOS idea will even work, because to our -knowledge, it has not been tested. It is highly theoretical at this point, and -recommended (assuming it would work) instead of simply replacing the original -BIOS outright. Even if game compatibility were 100%, it helps to have a backup -solution in case of bugs. - -There are a few edge cases: PsNee (referenced below) might not work well on -some Japanese playstations, or PAL PSOne Slim, due to extra restrictions in -the Sony BIOS; therefore, if doing Dual BIOS, it might be wise to use two of -those adapter PCBs stacked, using the same OE/CE switch idea. On the one -containing Sony BIOS, you might use a dump for US NTSC console for example, if -setting it up on a PAL PSOne or Japanese console. Japanese consoles otherwise -have additional region checks at startup, and PAL PSOne slims check what video -mode a game starts in. - -This page may or may not be updated at some point, to document installation on -real hardware. For now, the Open BIOS is only intended for use with emulators. +Other mods (hardware) +=============== Video timings ------------- +The Open BIOS will not implement any DRM, so it's possible that you might boot +out of region games. In an emulator, this is no problem, but it can prove +difficult on hardware in a number of situations. + The purpose of these kinds of mods *on hardware* is typically that the user wants to remove all DRM. Well, there's something many people overlook: video timings out-of-region are often wrong on these machines. The GPUs have two @@ -157,10 +162,15 @@ clock inputs (early launch models only have one clock input): one for PAL and one for NTSC. More info could be written here at a later date but these consoles typically don't have a PAL GPU clock on NTSC consoles, and vice versa. You can correct this. -Look up the PS1 "dual frequency oscillator" mod. -Other mods -========== +Look up the PS1 "dual frequency oscillator" mod. Without this mod, NTSC games +will run slightly slower than they should and have the wrong colours, when booted +on PAL consoles (and vice versa); RGB SCART can be used to mitigate the colour +issue, but not the timing issue. The oscillator mod is the only solution for the +timing issue. + +Modchips +-------- If using hardware, you will probably still want a modchip. Many proprietary modchip firmwares exist, such as Old crow, MultiMode3 and Mayumi; these run on @@ -174,19 +184,34 @@ recommends: Unlike the other modchips, PsNee runs mostly on Arduino-type boards. You can find more info on its GitHub page. -The way copy protection works on a playstation is: the commercial discs have -a special wobble in them, that can't be reproduced on consumer hardware. This -wobble encodes region data for the disc, and it's checked for by the CD controller; -if no wobble is present, or the region is incorrect, the disc stops booting, -though it will still play music CDs regardless (in the Sony BIOS). +Although not yet tested by Libreboot, it might be possible to have both the +Sony BIOS and Open BIOS, by stacking them on top of each other, soldered pin +for pin but leaving the OE/CS pins floating; then, wire up a switch that turns +one chip or the other off, so that you can pick which BIOS you want at boot. +This might be useful, in case you run into any compatibility issues with the +Open BIOS. -The Open BIOS will contain no restrictions whatsoever, but you are still advised -to have a modchip. +A modchip is still desirable, to mitigate copy and region protection in the +original BIOS; it may still be required when using the Open BIOS, but this has +not yet been confirmed by the Libreboot project. + +More hardware testing is planned, but the Open BIOS works perfectly in emulators. +Give it a try! + +Boot games on SD cards +----------------------- The [PicoStation](https://github.com/paulocode/picostation) project provides free firmware for RP2040 devices, which you can solder into a modboard which then emulates the PS1 CD drive. It then lets you boot software (including -many games) from an SD card instead of a CD, using disc image files. +many games) from an SD card instead of a CD, using disc image files, on a +real playstation (the picostation replaces your CD drive). + +Not only is this useful in a development context, but it can also be used when +your CD drive has worn out and no longer reads discs properly. + +Final remarks +------------- Combined with PsNee and PicoStation, the Open BIOS from PCSX-Redux team will turn your 90s PlayStation into a very hackable machine. There is @@ -197,11 +222,6 @@ coincidence; they are simply computers, fully reprogrammable and as such, Libreboot is happy to provide this support, for the Sony PlayStation -This page is very new, as of 26 September 2024, because the PS1 Open BIOS was -only added on this day (26 September). It'll be fleshed out over time, especially -to talk about hardware. The Open BIOS does boot a lot of software, but it is -mostly only recommended for use in emulators at this time. - Credit ====== From f94d3707c402468d629b5cfbed18c8816f380835 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 26 Sep 2024 12:03:35 +0100 Subject: [PATCH 073/399] 32 pin, not 32 bit Signed-off-by: Leah Rowe --- site/docs/install/playstation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index c9c14e6..321a5f8 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -138,7 +138,7 @@ Look here: This person has designed PCBs that can be used to add a NOR flash, adapting to the pinout of the playstation BIOS. Some early launch model PlayStations used a 40-pin chip but most later ones soon after and to end of life were 32-pin. -This page only sells adapters for use with 32-bit boards. +This page only sells adapters for use with 32-pin boards. For most boards, the one you want is probably the `PS1_Flash_Bios_(A)` one. From 10fdd82ab64f88c8cc934aaff2cea4eddf8d1651 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 26 Sep 2024 12:13:55 +0100 Subject: [PATCH 074/399] more notes about timings on psx Signed-off-by: Leah Rowe --- site/docs/install/playstation.md | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index 321a5f8..5e861f6 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -169,6 +169,30 @@ on PAL consoles (and vice versa); RGB SCART can be used to mitigate the colour issue, but not the timing issue. The oscillator mod is the only solution for the timing issue. +The PAL GPU clock is roughly 53.2MHz, and divides by 12 to create the PAL +subcarrier/colorburst signal; this is needed in composite video for example. + +The NTSC GPU clock is 53.693175MHz, and divides by 15 to create the NTSC +subcarrier/colorburst signal; ditto, this is used for NTSC composite video. + +On a PAL playstation, Sony woride 53.2MHz to both inputs, and on NTSC, wired +53.69MHz to both inputs; that means on NTSC machines, PAL games will run with +a 3.579545MHz colorburst signal, and on PAL consoles running NTSC games, +the colorburst would be 3.55MHz. + +On *most* consoles except very early launch/debug models, and *very late* slim +models, the PAL clock is pin 192 on the GPU and NTSC is pin 196 on the GPU. +The Dual Frequency Oscillator mod uses a programmable oscillator and taps into +the video mode signal off of the GPU to know whether PAL/NTSC is used; it +switches the master clock hooked up to both inputs accordingly. + +Another method is to *cut* the line going to the NTSC pin on a PAL console, +and wire a 53.69MHz oscillator (at 3.3V, with the output through a 220Ohm +resistor) directly to the pin; on an NTSC console, do the same but cut 192 +and hook up 53.2MHz to it. The Dual Frequency Oscillator method is easier and +therefore recommend, but you can do this other method, which I call *DO* (Dual +Oscillator. Because it's two oscillators!) + Modchips -------- From 3ac406b6f6bbf2598999e75f483af61fc640cd5f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 26 Sep 2024 12:17:56 +0100 Subject: [PATCH 075/399] more clarification Signed-off-by: Leah Rowe --- site/docs/install/playstation.md | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index 5e861f6..1aeea7e 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -169,16 +169,18 @@ on PAL consoles (and vice versa); RGB SCART can be used to mitigate the colour issue, but not the timing issue. The oscillator mod is the only solution for the timing issue. -The PAL GPU clock is roughly 53.2MHz, and divides by 12 to create the PAL +The PAL GPU clock is roughly 53.2MHz, and divides by 12 to create the 4.43MHz PAL subcarrier/colorburst signal; this is needed in composite video for example. -The NTSC GPU clock is 53.693175MHz, and divides by 15 to create the NTSC +The NTSC GPU clock is 53.693175MHz, and divides by 15 to create the 3.58MHz NTSC subcarrier/colorburst signal; ditto, this is used for NTSC composite video. On a PAL playstation, Sony woride 53.2MHz to both inputs, and on NTSC, wired 53.69MHz to both inputs; that means on NTSC machines, PAL games will run with a 3.579545MHz colorburst signal, and on PAL consoles running NTSC games, -the colorburst would be 3.55MHz. +the colorburst would be 3.55MHz. *Some* people suggest hardwiring a 4.43MHz +clock to the video dac/buffer on PAL consoles, thus creating what is called +a "PAL60" signal, but this is ill advised; ditto wiring 3.58MHz to it (NTSC50). On *most* consoles except very early launch/debug models, and *very late* slim models, the PAL clock is pin 192 on the GPU and NTSC is pin 196 on the GPU. @@ -193,6 +195,10 @@ and hook up 53.2MHz to it. The Dual Frequency Oscillator method is easier and therefore recommend, but you can do this other method, which I call *DO* (Dual Oscillator. Because it's two oscillators!) +By fixing the timings in this way, your region-free console will also have +correct timings, thus maximum game compatibility, and colours will always be +correct no matter what video cable you're using. + Modchips -------- From d15337458dcf2b54121d614fc34fc012599ea068 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 26 Sep 2024 12:18:43 +0100 Subject: [PATCH 076/399] spelling Signed-off-by: Leah Rowe --- site/docs/install/playstation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index 1aeea7e..5872774 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -175,7 +175,7 @@ subcarrier/colorburst signal; this is needed in composite video for example. The NTSC GPU clock is 53.693175MHz, and divides by 15 to create the 3.58MHz NTSC subcarrier/colorburst signal; ditto, this is used for NTSC composite video. -On a PAL playstation, Sony woride 53.2MHz to both inputs, and on NTSC, wired +On a PAL playstation, Sony hardwired 53.2MHz to both inputs, and on NTSC, wired 53.69MHz to both inputs; that means on NTSC machines, PAL games will run with a 3.579545MHz colorburst signal, and on PAL consoles running NTSC games, the colorburst would be 3.55MHz. *Some* people suggest hardwiring a 4.43MHz From 75c7cfca929be1ca2688bbc364369a141d3fc77c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 30 Sep 2024 06:54:15 +0100 Subject: [PATCH 077/399] docs/install: Reference the Dell E4300 in HCL Recently added to lbmk by Nicholas Chin, with testing provided by Lorenzo Aloe. Signed-off-by: Leah Rowe --- site/docs/install/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/index.md b/site/docs/install/index.md index cf08f61..dcbd47b 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -99,7 +99,7 @@ Laptops (Intel, x86) buy with Libreboot preinstalled](https://minifree.org/product/libreboot-w541/)** - NOTE: W540 also compatible (same mainboard, so flash the same ROM) - Lenovo ThinkPad X230 - *Also* available on Minifree: - [Apple MacBook1,1 and MacBook2,1](macbook21.md) -- [Dell Latitude E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel +- [Dell Latitude E4300, E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel GPU](latitude.md) - [Dell Latitude E5420, E5520, E5530, E6420, E6430, E6520, E6530, E6230, E6330, E6220](latitude.md) (Intel GPU variants only) From 83783a8e29b6e3af70b7e0a261cd30cb9264c79c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 4 Oct 2024 23:14:34 +0100 Subject: [PATCH 078/399] dell 7010 sff doc Signed-off-by: Leah Rowe --- site/docs/install/dell7010.md | 141 ++++++++++++++++++++++++++++++++++ site/docs/install/index.md | 3 +- site/docs/install/t1650.md | 4 +- 3 files changed, 145 insertions(+), 3 deletions(-) create mode 100644 site/docs/install/dell7010.md diff --git a/site/docs/install/dell7010.md b/site/docs/install/dell7010.md new file mode 100644 index 0000000..1a38f20 --- /dev/null +++ b/site/docs/install/dell7010.md @@ -0,0 +1,141 @@ +--- +title: Dell OptiPlex 7010/9010 SFF +x-toc-enable: true +... + +**This is only for the SFF variant. The MT variant is also supported, but for +the MT variant, you must flash the [T1650 ROM image](t1650.md) instead.** + +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), +OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** + +
+
+Dell OptiPlex 7010/9010 SFF +
+ +| ***Specifications*** | | +|----------------------------|------------------------------------------------| +| **Manufacturer** | Dell | +| **Name** | OptiPlex 7010 SFF | +| **Variants** | OptiPlex 9010 SFF | +| **Released** | 2012 | +| **Chipset** | Intel C216 | +| **CPU** | Intel Ivy Bridge | +| **Graphics** | Discrete graphics, or Intel HD Graphics model + depending on CPU model | +| **Memory** | DDR3 DIMMs (max 32GB, 4x8GB) | +| **Architecture** | x86\_64 | +| **Original boot firmware** | Dell UEFI firmware | +| **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. | +| **Flash chip** | SOIC-16 and/or SOIC-8 12MiB (96Mbit) | + + +``` +W+: Works without blobs; +N: Doesn't work; +W*: Works with blobs; +U: Untested; +P+: Partially works; +P*: Partially works with blobs +?: UNKNOWN AT THIS TIME +``` + +| ***Features*** | | +|---------------------------------------------------|----| +| **Internal flashing with original boot firmware** | ? | +| **Display (if Intel GPU)** | W+ | +| **Display (discrete CPU, SeaBIOS payload only)** | W* | +| **Audio** | W+ | +| **RAM Init** | W+ | + +| ***Payloads supported*** | | +|----------------------------|-----------| +| **GRUB (libgfxinit only)** | Works | +| **SeaBIOS** | Works | +| **SeaBIOS with GRUB** | Works | +
+Introduction +============ + +**Unavailable in Libreboot 20230625 or earlier. You must [compile from +source](../build/), or use at least Libreboot 20231021.** + +Official information about the laptop can be found here: + + +Build ROM image from source +--------------------------- + +The build target, when building from source, is thus: + + ./mk -b coreboot dell7010sff_12mb + +NOTE: The same 7010 SFF image also works on 9010 SFF. It's the same mainboard. + +Installation +============ + +Insert binary files +------------------- + +If you're using a release ROM, please ensure that you've inserted extra firmware +required refer to the [guide](../install/ivy_has_common.md) for that. (failure +to adhere to this advice will result in a bricked machine) + +Libreboot's build system automatically downloads and processes these files if +you build Libreboot from source, but the same logic that it uses must be re-run +if you're using a release image. + +Set MAC address +--------------- + +This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM +region. As such, release/build ROMs will contain the same MAC address. To +change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). + +WARNING about CPU/GPU compatibility +------------------------------- + +If you want to use onboard graphics, you must have a CPU that has a GPU built +into it. You can find a list here: + + + +Coreboot has libre initialisation code for Intel graphics, but libre +initialisation code is not available for most graphics cards. This machine can +take any graphics card that fits in the PCI-E slot. When a graphics card is +used, SeaBIOS executes its VGA ROM which provides video init, instead of +coreboot's native Intel video init. GRUB piggybacks off of what SeaBIOS did, +so the GRUB payload will also work. + +Flash a ROM image (software) +----------------- + +If you're already running Libreboot, and you don't have flash protection +turned on, [internal flashing](../install/) is possible. + +If you have factory firmware (Dell), you can short the service jumper. It's +near the RAM, under where the HDD goes. Just put a short on it when booting, +and all flash protection is disabled; the factory firmware write might EFI +variables to flash during shutdown sequence, so you should *pull the plug* to +shut it down (remove the power by pulling the plug) after flashprog +says `VERIFIED`. + +Flash a ROM image (hardware) +----------------- + +For general information, please refer to [25xx NOR flash +instructions](../install/spi.md) - that page refers to use of socketed flash. + +This machine is somewhat cumbersome to flash, because it has a SOIC-16 flash +for the first 8MB part, and 4MB SOIC8. You can split up your 12MB ROM image +like so: + + dd if=libreboot.rom of=4mb.rom bs=1M skip=8 + dd if=libreboot.rom of=8mb.rom bs=1M count=8 + +The side cover comes off easily, and you can find the flash ICs next to the RAM. + +No photos yet, but the two flash ICs are next to each other, and near to where +the PCH is. diff --git a/site/docs/install/index.md b/site/docs/install/index.md index dcbd47b..ad76bca 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -83,7 +83,8 @@ Desktops (AMD, Intel, x86) - Dell OptiPlex 7010 **MT** (known to work, using the T1650 ROM, but more research is needed) - 9010 also known to work. No GPIO changes, so it should be safe to flash. -- [Dell Precision T1650](t1650.md) +- [Dell OptiPlex 7010/9010 SFF](dell7010.md) **(for MT, please use the T1650 image)** +- [Dell Precision T1650](t1650.md) **(the same ROM works on 7010/9010 MT variant)** - [Gigabyte GA-G41M-ES2L motherboard](ga-g41m-es2l.md) - [HP Elite 8200 SFF/MT](hp8200sff.md) (HP 6200 Pro Business probably works too) - [HP Elite 8300 USDT](hp8300usdt.md) diff --git a/site/docs/install/t1650.md b/site/docs/install/t1650.md index e33e9f5..3228d5b 100644 --- a/site/docs/install/t1650.md +++ b/site/docs/install/t1650.md @@ -22,9 +22,9 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** | **Graphics** | Discrete graphics, or Intel HD Graphics model depending on CPU model | | **Memory** | DDR3 DIMMs (max 32GB, 4x8GB), ECC memory supported | -| **Architecture** | x86_64 | +| **Architecture** | x86\_64 | | **Original boot firmware** | Dell UEFI firmware | -| **Intel ME/AMD PSP** | Present. Can be disabled with me_cleaner. | +| **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. | | **Flash chip** | SOIC-16 and/or SOIC-8 12MiB (96Mbit) | From 91db0835fae4071a7a2b326d04bdc4853bc12de7 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 5 Oct 2024 02:35:47 +0100 Subject: [PATCH 079/399] add 7010/9010 sff index on docs/install Signed-off-by: Leah Rowe --- site/docs/install/index.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/site/docs/install/index.md b/site/docs/install/index.md index ad76bca..7f8f082 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -375,6 +375,13 @@ Intel D945GCLF (vendor BIOS) See: [Intel D945GCLF flashing guide](d945gclf.md) +Dell OptiPlex 7010/9010 SFF (vendor BIOS) +--------------------- + +Refer to the [7010/9020 SFF page](dell7010.md). Internal flashing also possible. +NOTE: If you have the *MT* variant, read the sections below instead (the SFF +ROM is only for SFF). + Dell OptiPlex 7010/9010 MT (vendor BIOS) --------------------- From 253a3f7ca0e83af9ebbf14266117bd8bd742ae43 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 5 Oct 2024 02:42:41 +0100 Subject: [PATCH 080/399] 9020sff/mt: say how to use gfxcard+iommu A special kernel option is required: intel_iommu=enable,igfx_off Signed-off-by: Leah Rowe --- site/docs/install/dell9020.md | 39 ++++++++++++++++++++++++++++------- 1 file changed, 32 insertions(+), 7 deletions(-) diff --git a/site/docs/install/dell9020.md b/site/docs/install/dell9020.md index 72712c2..50df552 100644 --- a/site/docs/install/dell9020.md +++ b/site/docs/install/dell9020.md @@ -30,9 +30,9 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** | **CPU** | Intel Haswell | | **Graphics** | Intel HD Graphics | | **Memory** | DDR3 DIMMs (max 32GB, 4x8GB) | -| **Architecture** | x86_64 | +| **Architecture** | x86\_64 | | **Original boot firmware** | Dell UEFI firmware | -| **Intel ME/AMD PSP** | Present. Can be disabled with me_cleaner. | +| **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. | | **Flash chip** | 2x SOIC-8, 12MiB (8+4) (96Mbit) | @@ -104,23 +104,47 @@ Graphics cards and IOMMU IOMMU is buggy for some reason (we don't know why yet), when you plug in a graphics card. The graphics card simply won't work. On some of them, -you can use the console but as soon as you start xorg, it will just b0rk. +you can use the console but as soon as you start xorg/wayland, it will just b0rk. Current Libreboot revisions *disable IOMMU by default*, on this board. The coreboot code for initialising IOMMU was modified by the Libreboot project, to make it a toggle. IOMMU works fine if you use only Intel graphics. +If you want to use IOMMU *with a graphics card*, you also can. Use this Linux +kernel option at boot: + + intel_iommu=enable,igfx_off + +With the above option, IOMMU is enabled *except* for the Intel GPU. However, +Libreboot also *disables the Intel GPU* in coreboot, entirely, when a graphics +card is used. With the above option, it's possible that something like Qubes +may work, which requires an IOMMU to be turned on. + +If you are using Intel graphics, and not a graphics card, you can ignore the +above, and instead fully turn on the IOMMU, without any special kernel options. + The way coreboot works is this: if vt-d is present on the CPU, it enables an IOMMU, and only if vt-d is present. This is still the behaviour in Libreboot, but Libreboot adds an additional check: if `iommu` is not set in nvram, it defaults to on, but if it's set to disabled, then IOMMU is not initialised. +Enable IOMMU +------------ + +IOMMU is *disabled by default*, universally, on this board. You can turn it on, +by modifying the ROM image prior to flashing, or modifying it prior to +re-flashing. + On all other Haswell boards, LIbreboot enables IOMMU by default. To enable it on the 9020, do this on your ROM: nvramtool -C libreboot.rom -w iommu=Enable -Then flash the ROM image. You can find nvram +If you're using a graphics card, please make sure to read the above notes +about how to use IOMMU; specifically, the part that talks about Linux kernel +option `intel_iommu=enable,igfx_off` + +Then flash the ROM image. You can find nvramtool under `src/coreboot/default/util/nvramtool`. Do this in lbmk if you don't already havse `src/coreboot/default/`: @@ -137,7 +161,8 @@ in [Libreboot flashing instructions](../install/) and [Libreboot external flashing instructions](../install/spi.md). NOTE: If IOMMU is enabled, you can still use a graphics card, but you must -pass this on the Linux cmdline paramaters: `iommu=off` +pass this on the Linux cmdline paramaters: `iommu=off` - or if you need +IOMMU (e.g. for Qubes), use `intel_iommu=enable,igfx_off` instead. NOTE2: Libreboot uses a *static option table* on all boards that have nvram, which is why you must use the `-C` option on your ROM, to change the static @@ -201,12 +226,12 @@ If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. Internal flashing can also be done with the original Dell BIOS, if the -SERVICE_MODE jumper near the PCIe slots is installed. Before flashing, +SERVICE\_MODE jumper near the PCIe slots is installed. Before flashing, rmmod spi-intel-platform needs to be run to prevent errors. Once Libreboot is installed, the -SERVICE_MODE jumper can be removed. +SERVICE\_MODE jumper can be removed. **Note: The Dell BIOS can write EFI variables to flash when shutting down, which could corrupt the newly flashed Libreboot ROM and render From fe1c4cd1906bfae3e567c99a55cc3d0b85bbc42d Mon Sep 17 00:00:00 2001 From: andree Date: Sat, 5 Oct 2024 16:49:21 +0300 Subject: [PATCH 081/399] added pictures to optiplex 7010 page --- site/docs/install/dell7010.md | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/site/docs/install/dell7010.md b/site/docs/install/dell7010.md index 1a38f20..de2fac1 100644 --- a/site/docs/install/dell7010.md +++ b/site/docs/install/dell7010.md @@ -11,7 +11,10 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
-Dell OptiPlex 7010/9010 SFF +Dell OptiPlex 7010 SFF service mode jumper set +Dell OptiPlex 7010 SFF +Insides of Dell Optiplex 7010 SFF +Dell OptiPlex 7010 SFF
| ***Specifications*** | | From 285d69c41b039a50a95a307491bc1bada59b0e4a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 5 Oct 2024 16:35:35 +0100 Subject: [PATCH 082/399] tidy up the pics on the 7010 page Signed-off-by: Leah Rowe --- site/docs/install/dell7010.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/site/docs/install/dell7010.md b/site/docs/install/dell7010.md index de2fac1..57c5d13 100644 --- a/site/docs/install/dell7010.md +++ b/site/docs/install/dell7010.md @@ -11,9 +11,7 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)**
-Dell OptiPlex 7010 SFF service mode jumper set Dell OptiPlex 7010 SFF -Insides of Dell Optiplex 7010 SFF Dell OptiPlex 7010 SFF
@@ -118,8 +116,12 @@ Flash a ROM image (software) If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. +Dell OptiPlex 7010 SFF service mode jumper set +Insides of Dell Optiplex 7010 SFF + If you have factory firmware (Dell), you can short the service jumper. It's -near the RAM, under where the HDD goes. Just put a short on it when booting, +near the RAM, under where the HDD goes (click the photos shown above). +Just put a short on it when booting, and all flash protection is disabled; the factory firmware write might EFI variables to flash during shutdown sequence, so you should *pull the plug* to shut it down (remove the power by pulling the plug) after flashprog From 15222f449386e2be8155896669a6b311a2a1dfa5 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 5 Oct 2024 16:38:23 +0100 Subject: [PATCH 083/399] 7010 is done so remove from the tasks page Signed-off-by: Leah Rowe --- site/tasks/index.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/site/tasks/index.md b/site/tasks/index.md index 57ec0ef..ecaf23d 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -83,7 +83,7 @@ inject scripts to the Heads build system. Libreboot provides these scripts for automatically downloading certain firmwares at build time, as and when required for a given mainboard. These are provided by the vendor, e.g. SMSC SCH5545 Environment Control (EC) firmware used for fan control on Dell -Precision T1650. (ditto 7010/9010 MT/SFF machines) +Precision T1650. Heads has such logic, but it's not as developed as the logic in Libreboot, which was originally inspired by the Heads logic and then greatly expanded upon. @@ -122,7 +122,6 @@ Boards * HP EliteBook 8770w * HP EliteBook 840 G2 (not in coreboot yet, but should be similar to 820 G2) * HP Z220 CMI and SFF mainboards -* Dell OptiPlex 7010 and 9010 * MSI PRO Z690-A mainboard (supported by Dasharo, not sure about coreboot) - also, Dasharo supports several more mainboards that aren't in coreboot proper. From 72f6e9803a96e8d4e3683b838b391711984d9554 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 5 Oct 2024 16:44:41 +0100 Subject: [PATCH 084/399] mark internal flashing working on 7010 sff Signed-off-by: Leah Rowe --- site/docs/install/dell7010.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/dell7010.md b/site/docs/install/dell7010.md index 57c5d13..f60f4f0 100644 --- a/site/docs/install/dell7010.md +++ b/site/docs/install/dell7010.md @@ -44,7 +44,7 @@ P*: Partially works with blobs | ***Features*** | | |---------------------------------------------------|----| -| **Internal flashing with original boot firmware** | ? | +| **Internal flashing with original boot firmware** | W+ | | **Display (if Intel GPU)** | W+ | | **Display (discrete CPU, SeaBIOS payload only)** | W* | | **Audio** | W+ | From 1b2db9f0c6cb9079b888f135152314df749bb94c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 5 Oct 2024 17:01:34 +0100 Subject: [PATCH 085/399] fix version reference on the 7010 page Signed-off-by: Leah Rowe --- site/docs/install/dell7010.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/install/dell7010.md b/site/docs/install/dell7010.md index f60f4f0..c320e2b 100644 --- a/site/docs/install/dell7010.md +++ b/site/docs/install/dell7010.md @@ -59,8 +59,8 @@ P*: Partially works with blobs Introduction ============ -**Unavailable in Libreboot 20230625 or earlier. You must [compile from -source](../build/), or use at least Libreboot 20231021.** +**Unavailable in Libreboot 20240612 or earlier. You must [compile from +source](../build/), or use a version newer than Libreboot 20240612.** Official information about the laptop can be found here: From 0ce6f323b2837495d7366f9eb4f4763e6b6c23ce Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 5 Oct 2024 18:10:38 +0100 Subject: [PATCH 086/399] update latitude models on the task page Signed-off-by: Leah Rowe --- site/tasks/index.md | 8 ++------ 1 file changed, 2 insertions(+), 6 deletions(-) diff --git a/site/tasks/index.md b/site/tasks/index.md index ecaf23d..da05c48 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -269,16 +269,12 @@ Other Dells (Ivybridge and Sandybridge) Nicholas Chin is interested in these: -* E6520 -* E6420 -* E6320 and E6330 -* E6220 and E6230 -* E5520 and E5530 -* E5420 and E5430 * 6430u * E5520m * E5420m +Many others have been added, of Intel 2nd and 3rd gen. + Most/all of these should be easily flashable, with the `dell-flash-unlock` utility, and many could be ported using autoport as a guide. Nicholas is working on these. They are left here for reference. If you have one of these, From 93c1b8d11ae231681c58d8672a6251be57c778c7 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 7 Oct 2024 02:46:24 +0100 Subject: [PATCH 087/399] 3050 micro install guide Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 160 ++++++++++++++++++++++++++++++++++ site/docs/install/dell7010.md | 2 +- site/docs/install/index.md | 10 ++- 3 files changed, 170 insertions(+), 2 deletions(-) create mode 100644 site/docs/install/dell3050.md diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md new file mode 100644 index 0000000..ace7d89 --- /dev/null +++ b/site/docs/install/dell3050.md @@ -0,0 +1,160 @@ +--- +title: Dell OptiPlex 3050 Micro +x-toc-enable: true +... + +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), +OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** + +
+
+Dell OptiPlex 3050 Micro +
+ +| ***Specifications*** | | +|----------------------------|------------------------------------------------| +| **Manufacturer** | Dell | +| **Name** | OptiPlex 3050 Micro | +| **Variants** | OptiPlex 3050 Micro | +| **Released** | 2017 | +| **Chipset** | Intel Kaby Lake | +| **CPU** | Intel Kaby Lake | +| **Graphics** | Intel HD graphics | +| **Memory** | DDR4 SODIMMs (max 32GB, 2x16GB) | +| **Architecture** | x86\_64 | +| **Original boot firmware** | Dell UEFI firmware | +| **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. | +| **Flash chip** | SOIC-16 and/or SOIC-8 12MiB (96Mbit) | + + +``` +W+: Works without blobs; +N: Doesn't work; +W*: Works with blobs; +U: Untested; +P+: Partially works; +P*: Partially works with blobs +?: UNKNOWN AT THIS TIME +``` + +| ***Features*** | | +|---------------------------------------------------|----| +| **Internal flashing with original boot firmware** | W+ | +| **Display (if Intel GPU)** | W+ | +| **Audio** | W+ | +| **RAM Init** | W+ | + +| ***Payloads supported*** | | +|----------------------------|-----------| +| **GRUB (libgfxinit only)** | Works | +| **SeaBIOS** | Broken | +
+Introduction +============ + +**Unavailable in Libreboot 20240612 or earlier. You must [compile from +source](../build/), or use a version newer than Libreboot 20240612.** + +Official information about the computer can be found here: + + +Build ROM image from source +--------------------------- + +The build target, when building from source, is thus: + + ./mk -b coreboot dell3050micro_fsp_16mb + +Mate Kukri's *deguard* utility disables the Intel Boot Guard on this +machine. Libreboot uses this by default, along with `me_cleaner` to provide +a neutered ME setup; unlike on other platforms, arbitrary code execution is also +possible inside the ME on this mainboard, giving it much higher potential for +software freedom in the future. + +Issues +====== + +Before flashing, you must know that this board is still a work-in-progress. It +is using this patchset from the author, Mate Kukri: + + (libreboot uses patch set 14) + +Issues, as per Libreboot's testing, are as follows: + +* Although USB ports seem to work, the Gerrit page linked above says that the + config is incorrect; need to investigate. +* HDA Verb: Libreboot patches the board to support this, which fixes the + headphone jack among other things. +* VBT: Libreboot patches the board to support this, though it's largely + optional on Linux/BSD. +* ACPI-based shutdown seems to falter a lot; sometimes the board will not turn + off after shut down, so you have hold the button down. Also, the button does + not seem to signal the OS that a shutdown must occur. +* PWM fan controls broken, so the system always run in a low-rpm state, even + under stress conditions, which could lead to overheating under stress. + +To mitigate the PWM bug, simply cut the blue wire on the fan connector, and +cut the red wire but jump the cut (on red) with a 100ohm resistor or so; cutting +the blue one bypasses PWM, so the fan runs at full speed (very loud), and the +red wire powers it, so the resistor on the red wire will slow the fan down, but +leave it running fastr than on idle. You can also cap the CPU speed however you +wish, via the `intel_pstate` driver. + +Note that HDMI audio *does* work, but you have to select it in your audio +server e.g. pipework. The `pavucontrol` utility in Linux (with pipewire) lets +you have a lot of control over audio I/O. Libreboot patches the board to add +a verb, so headphones should work. + +Installation +============ + +Insert binary files +------------------- + +If you're using a release ROM, please ensure that you've inserted extra firmware +required refer to the [guide](../install/ivy_has_common.md) for that. (failure +to adhere to this advice will result in a bricked machine) + +Libreboot's build system automatically downloads and processes these files if +you build Libreboot from source, but the same logic that it uses must be re-run +if you're using a release image. + +Set MAC address +--------------- + +This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM +region. As such, release/build ROMs will contain the same MAC address. To +change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). + +Flash a ROM image (software) +----------------- + +If you're already running Libreboot, and you don't have flash protection +turned on, [internal flashing](../install/) is possible. + +Dell OptiPlex 3050 Micro service jumper + +If you have factory firmware (Dell), you can short the service jumper. It's +near the RAM, under where the HDD goes (click the photos shown above). +Just put a short on it when booting, +and all flash protection is disabled; the factory firmware write might EFI +variables to flash during shutdown sequence, so you should *pull the plug* to +shut it down (remove the power by pulling the plug) after flashprog +says `VERIFIED`. + +Flash a ROM image (hardware) +----------------- + +For general information, please refer to [25xx NOR flash +instructions](../install/spi.md) - that page refers to use of socketed flash. + +The side cover comes off easily, and you can find the flash ICs next to the RAM. +Simply remove the screw at the back. The top panel then slides forward, and you +can remove the SSD caddy; from then on, the flash is accossible. + +Observe the following photo of the flash (SOIC-8): + +Dell OptiPlex 3050 Micro flash IC + +You can otherwise flash internally, including from factory firmware(if the +service jumper is set). diff --git a/site/docs/install/dell7010.md b/site/docs/install/dell7010.md index c320e2b..dc4fb1e 100644 --- a/site/docs/install/dell7010.md +++ b/site/docs/install/dell7010.md @@ -62,7 +62,7 @@ Introduction **Unavailable in Libreboot 20240612 or earlier. You must [compile from source](../build/), or use a version newer than Libreboot 20240612.** -Official information about the laptop can be found here: +Official information about the computer can be found here: Build ROM image from source diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 7f8f082..72e9e57 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -83,7 +83,8 @@ Desktops (AMD, Intel, x86) - Dell OptiPlex 7010 **MT** (known to work, using the T1650 ROM, but more research is needed) - 9010 also known to work. No GPIO changes, so it should be safe to flash. -- [Dell OptiPlex 7010/9010 SFF](dell7010.md) **(for MT, please use the T1650 image)** +- [Dell OptiPlex 3050 Micro](dell3050.md) +- [Dell OptiPlex 7010/9010 SFF](dell7010.md) **(for MT, please use the T1650 image)** - [Dell Precision T1650](t1650.md) **(the same ROM works on 7010/9010 MT variant)** - [Gigabyte GA-G41M-ES2L motherboard](ga-g41m-es2l.md) - [HP Elite 8200 SFF/MT](hp8200sff.md) (HP 6200 Pro Business probably works too) @@ -375,6 +376,13 @@ Intel D945GCLF (vendor BIOS) See: [Intel D945GCLF flashing guide](d945gclf.md) +Dell OptiPlex 3050 Micro (vendor BIOS) +--------------------- + +Refer to the [3050 Micro page](dell3050.md). Internal flashing also possible. +This has the Intel Boot Guard, but Libreboot uses the *deguard* utility to +disable the Boot Guard on this Intel 7th gen board. + Dell OptiPlex 7010/9010 SFF (vendor BIOS) --------------------- From c23a71c9fb0907b7dbebff1d72d3d681f029a15d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 7 Oct 2024 11:03:03 +0100 Subject: [PATCH 088/399] 3050micro: fix notes about mac address it has a realtek nic, not intel Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index ace7d89..8ab279e 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -119,12 +119,14 @@ Libreboot's build system automatically downloads and processes these files if you build Libreboot from source, but the same logic that it uses must be re-run if you're using a release image. -Set MAC address ---------------- +MAC address +----------- -This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM -region. As such, release/build ROMs will contain the same MAC address. To -change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). +This has a realtek NIC inside, instead of Intel, so the MAC address will not +change. This means: there is no GbE region in the flash. + +You can still use something like GNU MAC Changer to change your MAC address +from Linux if you want to. Flash a ROM image (software) ----------------- From 3f8b62dc03693a7084458a46df1bf6d64902cb39 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 7 Oct 2024 13:46:51 +0100 Subject: [PATCH 089/399] typo (10ohms. not 100) it's a 1A fan, so about 10ohms should do it (about 3.5v output) Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index 8ab279e..2014bca 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -94,7 +94,7 @@ Issues, as per Libreboot's testing, are as follows: under stress conditions, which could lead to overheating under stress. To mitigate the PWM bug, simply cut the blue wire on the fan connector, and -cut the red wire but jump the cut (on red) with a 100ohm resistor or so; cutting +cut the red wire but jump the cut (on red) with a 10ohm resistor or so; cutting the blue one bypasses PWM, so the fan runs at full speed (very loud), and the red wire powers it, so the resistor on the red wire will slow the fan down, but leave it running fastr than on idle. You can also cap the CPU speed however you From b9194e996657c50b85e8a826677c88f1acf6d6a9 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 7 Oct 2024 15:33:08 +0100 Subject: [PATCH 090/399] more corrections on the 3050 page Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index 2014bca..f7e6077 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -97,11 +97,14 @@ To mitigate the PWM bug, simply cut the blue wire on the fan connector, and cut the red wire but jump the cut (on red) with a 10ohm resistor or so; cutting the blue one bypasses PWM, so the fan runs at full speed (very loud), and the red wire powers it, so the resistor on the red wire will slow the fan down, but -leave it running fastr than on idle. You can also cap the CPU speed however you +leave it running faster than on idle. You can also cap the CPU speed however you wish, via the `intel_pstate` driver. +If you're using a 10ohm resistor on the fan power, make sure it's at least a 2W +one. + Note that HDMI audio *does* work, but you have to select it in your audio -server e.g. pipework. The `pavucontrol` utility in Linux (with pipewire) lets +server e.g. pipewire. The `pavucontrol` utility in Linux (with pipewire) lets you have a lot of control over audio I/O. Libreboot patches the board to add a verb, so headphones should work. From cef9c80c01dbcbe62b0cd63e5ebf03133f16ac1b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 8 Oct 2024 19:28:10 +0100 Subject: [PATCH 091/399] Libreboot 20241008 release Signed-off-by: Leah Rowe --- site/index.de.md | 6 +- site/index.fr.md | 4 +- site/index.it.md | 4 +- site/index.md | 6 +- site/index.ru.md | 2 +- site/index.uk.md | 4 +- site/index.zh-cn.md | 2 +- site/news/MANIFEST | 1 + site/news/libreboot20241008.md | 1383 ++++++++++++++++++++++++++++++++ site/news/safety.md | 4 +- 10 files changed, 1400 insertions(+), 16 deletions(-) create mode 100644 site/news/libreboot20241008.md diff --git a/site/index.de.md b/site/index.de.md index 8877d23..3854bb6 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -21,9 +21,9 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**NEUESTE VERSION: Die neueste Version von Libreboot ist 20240612, veröffentlicht -am 12. June 2024. -Siehe auch: [Libreboot 20240612 release announcement](news/libreboot20240612.md).** +**NEUESTE VERSION: Die neueste Version von Libreboot ist 20241008, veröffentlicht +am 8. Oktober 2024. +Siehe auch: [Libreboot 20241008 release announcement](news/libreboot20241008.md).** Warum solltest Du *Libreboot* verwenden? ---------------------------- diff --git a/site/index.fr.md b/site/index.fr.md index 046d1b8..e2bda69 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -19,8 +19,8 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**NOUVELLE VERSION: La dernière version est [Libreboot 20240612](news/libreboot20240612.md), sortie -le 12 June 2024.** +**NOUVELLE VERSION: La dernière version est [Libreboot 20241008](news/libreboot20241008.md), sortie +le 8 Octobre 2024.** Pourquoi devriez-vous utiliser *Libreboot*? ----------------------------------- diff --git a/site/index.it.md b/site/index.it.md index 76fcd43..9545085 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -20,8 +20,8 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 20240612, rilasciato il 12 June 2024. -Vedi: [Libreboot 20240612 annuncio di rilascio](news/libreboot20240612.md).** +**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 20241008, rilasciato il 8 October 2024. +Vedi: [Libreboot 20241008 annuncio di rilascio](news/libreboot20241008.md).** Per quale ragione utilizzare *Libreboot*? ----------------------------------------- diff --git a/site/index.md b/site/index.md index 0a05783..1fddb11 100644 --- a/site/index.md +++ b/site/index.md @@ -23,9 +23,9 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**NEW RELEASE: The latest release is Libreboot 20240612, released on -12 June 2024. -See: [Libreboot 20240612 release announcement](news/libreboot20240612.md).** +**NEW RELEASE: The latest release is Libreboot 20241008, released on +8 October 2024. +See: [Libreboot 20241008 release announcement](news/libreboot20241008.md).** *We* believe the freedom to [study, share, modify and use software](https://writefreesoftware.org/), without any diff --git a/site/index.ru.md b/site/index.ru.md index 76e9d76..058cfe9 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -9,7 +9,7 @@ x-toc-enable: true Вы также можете купить [Libreboot предустановленным](https://minifree.org) от Minifree Ltd, а также присылать нам свои совместимые устройства для [установки Libreboot](https://minifree.org/product/installation-service/). Основатель и ведущий разработчик Libreboot, Лия Роу, также владеет и управляет Minifree; продажи обеспечивают финансирование для Libreboot. -**НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 20240612, опубликован 12 июня 2024 года. Смотрите: [Libreboot 20240612 release announcment](news/libreboot20240612.md).** +**НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 20241008, опубликован 8 октябрь 2024 года. Смотрите: [Libreboot 20241008 release announcment](news/libreboot20241008.md).** *Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://en.wikipedia.org/wiki/Right_to_repair) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. diff --git a/site/index.uk.md b/site/index.uk.md index 7dff9a1..c93a7f9 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -21,8 +21,8 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**НОВИЙ ВИПУСК: Останній випуск Libreboot 20240612, випущено 12 червень 2024. -Дивіться: [Оголошення про випуск Libreboot 20240612](news/libreboot20240612.md).** +**НОВИЙ ВИПУСК: Останній випуск Libreboot 20241008, випущено 8 ЖОВТЕНЬ 2024. +Дивіться: [Оголошення про випуск Libreboot 20241008](news/libreboot20241008.md).** Чому вам варто використовувати *Libreboot*? ---------------------------- diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index e3fa0f3..bde802e 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -12,7 +12,7 @@ x-toc-enable: true Libreboot 的创始人和主要开发者,Leah Rowe,也是 Minifree 的所有者和经营者; 销售电脑为 Libreboot 提供资金。 -**新版发布: 最新版本 Libreboot 20240612 已在 2024 年 06 月 12 日发布。详见: [Libreboot 20240612 发布公告](news/libreboot20240612.md).** +**新版发布: 最新版本 Libreboot 20241008 已在 2024 年 10 月 08 日发布。详见: [Libreboot 20241008 发布公告](news/libreboot20241008.md).** 为什么要使用 *Libreboot*? ---------------------------- diff --git a/site/news/MANIFEST b/site/news/MANIFEST index c54b9c7..a97f14f 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -1,3 +1,4 @@ +libreboot20241008.md audit6.md libreboot20240612.md audit5.md diff --git a/site/news/libreboot20241008.md b/site/news/libreboot20241008.md new file mode 100644 index 0000000..576c09c --- /dev/null +++ b/site/news/libreboot20241008.md @@ -0,0 +1,1383 @@ +% Libreboot 20241008 released! +% Leah Rowe +% 8 October 2024 + +This is a *testing* release, whereas the current stable release on this day +is *Libreboot 20240612*. + +**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING +LIBREBOOT](safety.md).** + +Introduction +============ + +Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing +boot firmware that initialises the hardware in your computer, to then load an +operating system (e.g. Linux/BSD). It is specifically a *coreboot distribution*, +in the same way that Debian is a Linux distribution. It provides an automated +build system to produce coreboot ROM images with a variety of payloads such as +GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +to use as possible for non-technical users. From a project management perspective, +this works in *exactly* the same way as a Linux distro, providing a source-based +package manager (called lbmk) which patches sources and compiles coreboot images. +It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, +and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) +or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating +system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). + +The changes of the recent [6th build system audit](audit6.md) are included, in +this release, and several changes have been made since then; for simplicity, this +page is essentially identical to the audit 6 changelog, but with the additional +changes referenced. + +The build system is smaller +--------------------------- + +The focus of audit6 was to reduce the code size, making the build system more +efficient. The build system was 1482 source lines (of shell scripting) in the +Libreboot 20240612 release. In *this* release, that stands at *1159 lines*, +which is a 21 percent reduction. This is *without* reducing any functionality! + +Several bug fixes were also made, in addition to new board support, since the +Libreboot 20240612 release. + +Summarised list of changes +========================== + +The most interesting changes are marked in **bold**. "Interesting" means that +the change greatly improves the usefulness/reliability of Libreboot, or that it +affects the user in a profound and noticeable way. + +Changes are in order per category, from newest to oldest: + +Board support +------------- + +The following boards have been added since the Libreboot 20240612 release: + +* [Sony PlayStation](../docs/install/playstation.md) (PCSX Redux Open BIOS) +* [Dell OptiPlex 3050 Micro](../docs/install/dell3050.md) (courtesy of Mate Kukri) - with Boot Guard disabled! +* Dell Latitude E6220 (courtesy of Nicholas Chin) +* Dell Latitude E6320 (courtesy of Nicholas Chin) +* Dell Latitude E6330 (courtesy of Nicholas Chin) +* Dell Latitude E6230 (courtesy of Nicholas Chin. Seriously cool guy) +* Dell Latitude E4300 (courtesy of Nicholas Chin) +* Dell OptiPlex 7010/9010 SFF (porting done by 3mdeb, and I added the config + for it to Libreboot, based on the Dell Precision T1650 config) + +About the Dell Latitude ports +----------------------------- + +These are yet more Ivybridge (Intel 3rd gen) and Sandybridge (Intel 2nd gen) +mainboards, using the same EC as on other Latitudes supported in Libreboot, so +they are all internally flashable from the factory firmware. + +Installation instructions, pertaining to Dell Latitude models, can be found on +the [Dell Latitude page](../docs/install/latitude.md). + +About the PlayStation BIOS +-------------------------- + +This is *not* coreboot, but it is a fully free/opensource BIOS with source code +under MIT license, provided by +the [PCSX-Redux project](https://github.com/grumpycoders/pcsx-redux). Libreboot +provides a pre-build of it. More information available on Libreboot's +installation page, linked above, which also references info from PCSX Redux. + +You can use this on a real PlayStation. Although the machine was originally meant +for playing proprietary games, there are free/opensource SDKs available for it, +such as [PSn00bSDK](https://github.com/Lameguy64/PSn00bSDK), and with certain +other modificatios, it basically becomes a very hackable classic 90s computer, +that also happens to play games. More info is on the Libreboot page about it, +linked above. + +I'm currently working on a new fork of *DuckStation*, a popular PlayStation +emulator that recently became proprietary software, where it was previously +open source / free software. I'm forking the free version, but my fork is not +ready to launch on this day; it was originally planned to launch at the same +time as a Libreboot release, but I expect to have the new project ready by end +of October 2024 or thereabouts. I'm planning to ship the *PCSX-Redux* BIOS by +default, in the new project, which is why Libreboot has it, because I'll +reference Libreboot from that project. + +About the OptiPlex 3050 Micro port +------------------------- + +Mate Kukri's excellent *[deguard](https://review.coreboot.org/admin/repos/deguard,general)* +utility is automatically used at build time, +to modify the ME, which has a bug on that platform allowing arbitrary execution. +Using this bug, Mate was able to disable the Intel Boot Guard, on this 7th gen +mainboard. Without such a hack, coreboot would have previously been impossible! + +I've made some fixes on top of it myself: adding HDA verb configuration, and +a VBT file. Mate will incorporate these changes in the patchset, which is still +currently under review. The verb patch is required for the headphone jack to +work, and Nicholas Chin helped me with it. + +This is amazing work, based on years of research by others, that Mate was able +to use, to so cleverly disable the Boot Guard and finally enable coreboot. He +is also working on a ThinkPad T480 port, that is not yet ready on this day (the +port is on Gerrit but lacks EC support at the moment). + +It may be possible to add many more Dell OptiPlex and other 7th gen (Intel +Kaby Lake) mainboards to coreboot, using this hack. The *Boot Guard* is Intel +DRM that normally checks a cryptographic signature on the bootblock in the +machine, and that bootblock cannot be changed. Various other hacks have also +been discovered in the past, such as Trammell +Hudson's [TOCTOU hack](https://trmm.net/TOCTOU/). + +For my part, I'm currently currently looking at the Dell OptiPlex 5050 SFF +and also an MT model, which are likely feasible to port, using deguard and +basing upon this 3050micro port. + +SeaBIOS currently hangs, so you can only use the GRUb payload for now. Also, +boot times were considerably, so the *DRAM clear on boot* option has been +disabled on this board. The TPM is also disabled, though you can enable it +if you want to re-build. A lot more work will be done on this board, between +now and the next stable release of Libreboot (today's release is a testing +release). + +Because of the SeaBIOS issue, an exception is made: this board executes +GRUB first, directly from coreboot. The usual policy, since Libreboot 20240612, +is to prefer *SeaGRUB* (SeaBIOS first, and execute GRUB from SeaBIOS). + +Feature changes +--------------- + +The changes are as follows: + +* Relative to audit6: `vendor.sh`: When handling IFD images, on 7th gen + IFD (Kaby Lake), we need to specify the following `ifdtool` + option: `-p sklkbl`. This is done via the `target.cfg` files, specifying + a variable named `IFD_platform`. This is used on Dell Optiplex 3050 Micro, + which is required for making the `./mk inject` command work + correctly (without it, checksum verification would not match what was built). + This is because some IFD versions have certain quirks that ifdtool can't + automatically detect, so you have to give it hints such as this. +* Relative to audit6: `vendor.sh`: Complementing the other deguard-related + change below: lbmk was modified to make a temporary copy of deguard when + building for 3050 Micro. This is because the deguard utility is standalone, + and did not integrate directly with lbmk, but Mate is writing another + replacement utility, so deep integration with lbmk would be a waste of time. + What lbmk does therefore is only remove the download feature in deguard (it + downloads a vendor update and extracts ME from that, then modified it, and + lbmk runs `me_cleaner`). The actual ME download is handled by lbmk, using + its own logic (which also provides redundancy), and the modification itself, + to disable Boot Guard, is handled by deguard. +* Relative to audit6: `vendor.sh`: Integrate Mate Kukri's `deguard` utility. + This is used to modify MEv11 images for systems that have Intel Boot Guard. + A bug in MEv11, on earlier revisions, enables arbitrary code execution. Mate + was able to exploit this bug, to disable the Intel Boot Guard, which is + handled by the Intel ME. Currently used on the Dell OptiPlex 3050 Micro, but + could be expanded to support more mainboards. (**yes, you could have a libre + ME firmware in the future, because of this bug! Though the Intel ME is + still required, albeit it with this hack and lbmk also runs `me_cleaner`**) +* Relative to audit6: `lib.sh`: New `mk()` function can be used as shorthand + within lbmk scripts, to build multiple projects, but does not build individual + trees/targets within multi-tree projects. This is used to simplify certain + parts of lbmk, such as the release build script when compiling multiple + projects such as coreboot, serprog firmwares and PCSX-Redux Open BIOS. +* Relative to audit6: Support using just running `./mk`, instead + of `./update trees`. This means + that the following command (for example) `./update trees -f coreboot` can + now be shortened to `./mk -f coreboot`. The old commands still work for now, + as a matter of backwards compatibility. However, the documentation has also + been updated everywhere, referring to `./mk` exclusively, for all commands! + In a future release, the old commands will no longer work (this will be done + as part of the next major Libreboot Build System Audit, after Audit 6). +* Relative to audit6: Use ccache automatically, when building coreboot images. + This can improve + the build speeds in some cases, depending on which targets are being built, + and it is done by hot-patching the coreboot configs at build time, adding the + option (in coreboot config) to use ccache. This means that ccache is now a + hard dependency, when building images with lbmk. +* **Put the cache directory location in an environmental variable, + named `XBMK_CACHE`.** If unset, it defaults to `$PWD/cache`, where PWD is the + current location that the instance of lbmk is running from, otherwise if + defined, the location is used. This means that the same cached files are + re-used on the lbmk copy created when running `./update release`, thus + saving on a lot of internet bandwidth if the main instance already has + a lot of files cached - it also means that you can re-use another cache + from elsewhere, like if you have multiple clones of lbmk on your system. +* Allow using coreboot's own build system, to build payloads. Libreboot's + build system builds and adds payloads, with coreboot configurations + enabling `CONFIG_PAYLOAD_NONE` exclusively. However, advanced users may + wish to use something else such as Tianocore, which Libreboot may/will not + provide (with Tianocore it's **will not**). Simply set `build_depend=""` + in the `target.cfg` file for a given mainboard, and then enable a payload + under coreboot's menuconfig interface, or by direct modification of + the defconfig file. When `CONFIG_PAYLOAD_NONE` is not set, lbmk will skip + adding a payload, because it's a given that then coreboot's own build system + would have done it. Libreboot will always enable `CONFIG_PAYLOAD_NONE` on + all official targets, so this feature is only intended for power users. +* **Unified cache file handling** for vendor files, and files defined as modules + for specific projects. They are now cached within the same base directory. +* **`script/trees`: Automatically re-download and re-build a given project, when + configuration changes**, on any file under specific directories in `config/` + pertaining to it; this is done by concatenating the sha512sum hashes for + each of those files, and then making a sha512sum hash from that. The hash + is stored, and compared to the current one; if it differs, then you know + something changed. This feature does not track modifications to the actual + downloaded source code for a given project, because this change also tracks + the `patches/` directories; direct modification (by the user) of the source + is not assumed, under the lbmk model, but checking for this may be possible. + For example, run the same concatenation logic on a file containing the output + of commands such as `git describe` and `git status`, perhaps `git diff`. It + was decided that the latter would be undesirable, because *developers* (of + Libreboot, working with lbmk) may want to experiment with quick changes, + before preparing patch files to go under `config/`. - the user previously + had to know which files and directories to manually remove, when re-running + build commands after modifying a given project within lbmk. Now it's automatic. +* `include/git.sh`: Don't download multi-tree projects to `src/project/project`, + e.g. `src/coreboot/coreboot`, when downloading the upstream repository, for + later copying to the actual destination e.g. `src/coreboot/default` - instead, + use the same cached location as alluded to in the two changes below. This + avoids needing to delet those directories, when preparing release archives. +* `include/git.sh`: Complementing the change seen below, also cache *files* + universally, for vendor files and for submodules files (e.g. crossgcc files). + This avoids wasting bandwidth when building for multiple coreboot trees, in + cases where multiple trees share the same URLs for crossgcc tarballs. +* **`include/git.sh`: Cache all git downloads**, reset to `HEAD`, before copying + to the final location; this is also done on submodules. If a cached repository + exists, run `git pull` on it but without an exit under fault conditions; if + a fault occurs, including when trying to reset on a copy of it, fall back to + the old logic where the repository is downloaded (online) directly to the + destination. This change results in substantially reduced internet bandwidth + usage, especially when downloading submodules for multiple coreboot trees, + in cases where those trees share common revisions. +* **`script/trees`: Support `-d` (flag) for custom build logic**; it does the same + thing as `-b`, but with a variable named `dry` being set to `:`; this is + prefixed on most build-related commands, and can be further prefixed as + desired, in mkhelper functions. The result is that you can do *dry runs* on + a given build. This is used, to provide building of coreboot utilities and + downloading of vendor files, without needing specific hacks to be hardcoded + in `script/trees`. The `./update trees -b coreboot TREE utils` command is + no longer available; instead, do `./update trees -d coreboot TREE`; if + the TREE argument is instead an actual mainboard target, it also does the + vendor file download, if required. The `./vendor download` command is still + available, and multiple board names can now be provided as argument, because + for example, `./build roms x220_8mb x230_12mb` would + run `./update trees -d coreboot x220_8mb x230_12mb`, and the trees script + already supports running for multiple target names, within multi-tree + projects. The result of `-d`, combined with use of mkhelper functions, + permits very flexible use of the `trees` script, essentially allowing it + to be extended on a plugin-type infrastructure, in any number of ways. The + reason for implementing this is precisely so that project-specific hacks can + be removed; the `trees` script now contains much more generalised logic, + and project-specific logic was moved to mkhelper functions. +* **`script/trees`: A `premake` variable is supported in `mkhelper.cfg`** files, + defining a function to be executed *before* running `make`, on a given project. +* **`script/trees`: A `postmake` variable is supported in `mkhelper.cfg`** + and `target.cfg` files, defining a function to be executed immediately after + running `make`, on a given project. This is used during coreboot builds, to + add payloads on a given coreboot image. It can be used for any other purpose. + More specifically: `postmake` is executed after handling the defconfig file + entirely, rather than just after running `make`; the latter is handled + by `mkhelper`. +* `script/trees`: Support *build* dependencies, complementing the + existing *fetch* dependencies. The `build_depend` variable can define + which other sources need to be built, before building the current target. + This is being used on coreboot targets, to manually and surgically specify + which GRUB and SeaBIOS trees should be compiled, *per* coreboot target. + A fallback declaration is specified in `config/data/coreboot/mkhelper.cfg`, + for cases where a `target.cfg` file does not specify it. This change means + that certain hardcoded *build dependency* logic was then removed, instead + relying on this much more generalised `build_depend` logic. +* `script/trees`: Allow global configuration on multi-tree projects, via + file `config/data/PROJECT/mkhelper.cfg`, + e.g. `config/data/coreboot/mkhelper.cfg`. This is loaded before `target.cfg`. + That way, global configuration can be provided and then overridden. +* `script/trees`: If a valid flag is passed, but without argument, a loop is + now executed with that flag on every defined project, both single- and + multi-tree. For example, if `-f` is passed, it will download every project. + If `-b` is passed, it will build every project. When it passes over multi-tree + projects, it operates on every tree within that project. This fact enabled + other parts of the build system to be simplified; for example, the logic + in `mkrelease()` no longer needs to implement the same kind of loop, instead + simply running `./update trees -f` to download every project and tree. Similar + changes have been made, on that same basis. +* `script/trees`: Support use of a variable named `mkhelper`, first defined in + project `target.cfg` files. This variable defines the name of a function, to + be called immediately after running `make` for that project, under + the `run_make_command()` function. This was initially implemented, so that + GRUB's `grub-mkstandalone` utility could be called from the `trees` script, + but in a way that doesn't hardcode such execution. This is because part of + the 6th audit's main focus is to remove project-specific hacks, generalising a + lot more logic. Prior to Audit 6, the `trees` script contained a lot of hacks + for specific projects, notably coreboot and GRUB, to compile them properly. +* `script/trees`: Only permit one single-tree project to be built, where an + argument is provided. This script previously supported building multiple + single-tree projects, defined *by argument*, but it was quite error prone + and there's no clean way to otherwise do it. We don't use the script this + way, anywhere in lbmk, and users are advised the same. +* **`script/roms`: *Only* Support SeaBIOS and Sea*GRUB*, on x86 mainboards**. + SeaGRUB is a configuration whereby SeaBIOS starts first, but immediately tries + to load GRUB from the flash. This complements the other change, listed below. + We will no longer provide configurations where GRUB is the primary payload, + precisely to mitigate the same issue as described below (lbmk issue 216). + If *GRUB* is enabled, on a given mainboard, SeaBIOS-only setups are not + provided; only SeaGRUB is provided. You can press ESC in the SeaGRUB menu, + to access other boot methods besides *GRUB from flash*, so you can use it + in the same way; additionally, you can remove the `bootorder` file from CBFS + if you wish, or change the bootorder file, in such a way that GRUB does not + load first. For example, you might want a BSD installation, and BSD + bootloaders should be loaded from SeaBIOS directly. This can be done as + follows: `cbfstool libreboot.rom remove -n bootorder` - then flash it. The + SeaBIOS code is much smaller and more robust than GRUB, so it's a safe choice + of primary payload, and it's extremely unlikely that SeaBIOS would ever break. +* `script/roms`: Removed support for `grubonly` SeaBIOS. This was a feature + where SeaBIOS would try to load GRUB first (from CBFS), but also disable the + SeaBIOS menu. We still provide SeaGRUB, but the SeaBIOS menu is always + accessible now. This is to mitigate future issues similar to [lbmk + issue 216](https://codeberg.org/libreboot/lbmk/issues/216). The + Libreboot 20240612 already removed actual configs using `grubonly`, and we + will no longer provide them in Libreboot, so this feature in lbmk became + legacy cruft that can simply be removed. The idea is simple: *safety first*. + This has implications for [GRUB hardening](../docs/linux/grub_hardening.md); + you can insert the correct bootorder file, to once again disable SeaBIOS, but + you must first verify that GRUB is stable. The GRUB hardening guide already + documents how to do this. +* `script/roms`: Don't insert `timeout.cfg`. Instead, hardcode the GRUB timeout + to a reasonable default (8 seconds). You can still insert your own timeout + config as before, and GRUB will honour it. +* `script/roms`: Insert the background image in GRUB's memdisk, instead of + coreboot's CBFS. This reduces the amount of code, because we use it as an + argument on the `grub-mkstandalone` command, and it means that the GRUB + images can be used standalone in other build systems. The image is very + small, so it's OK to do it this way. +* `script/roms`: Removed extra checks on `grub_scan_disk`, because we no longer + allow it to be overridden, instead relying only on `target.cfg` files, which + are carefully crafted per board. This setting configures the order of which + types of devices Libreboot's `grub.cfg` scans first, between device types: + PCI-E/NVMe, SATA/AHCI and IDE/ATA. Mate Kukri added NVMe SSD support no GRUB, + in the Libreboot 20240612 release. +* `script/roms`: Removed dangerous `-p`, `-s` and `-d` options. Due to lbmk + issue 216 (GRUB memory issue) in Libreboot 20240504, several safety + mitigations have been made, for anti-brick purposes. These options enabled + use of a custom payload and keymap, which meant that users were able to more + easily create a setup affected by 216. See: + - this was fully mitigated, + by virtue of configuration, but the issue itself is not yet fixed as of the + day of today's announcement, the one you're reading now, so it's still + possible to create such a broken setup. Libreboot mitigates this fact, by + avoiding such configurations. + +Configuration changes +--------------------- + +This pertains to anything under `config/`, for any changes that are of note, +but it does not pertain to *revisions* for specific projects, nor does it +cover specific patches applied to projects; the latter will be covered in other +sections of this release announcement. + +The changes are as follows: + +* Added `swig` to the Fedora dependencies. +* Relative to auit6: Re-added SeaBIOS-only images and GRUb keymaps; in earlier + changes, made during + Audit 6, Libreboot only provided US QWERTY layout, and only provided SeaGRUB, + but some people actually prefer to have the SeaBIOS menu first, while still + being able to use GRUB (BSD users for example). +* coreboot: Set `postmake` in `config/data/coreboot/mkhelper.cfg`, defining + a function that adds payloads to the coreboot image that was just built. + This mkhelper config also integrates `include/rom.sh`, containing these + functions. This replicates the functionality originally provided + by `script/roms`. +* coreboot: Set `build_depend` on `target.cfg` files for specific mainboards. + This is used to manually specify which GRUB and SeaBIOS trees should be + compiled, required when compiling for a specific target, for the next + stage where a payload is added to the coreboot image, because lbmk does + not use coreboot's own payload logic, instead building and adding everything + itself (the coreboot configs all enable `CONFIG_PAYLOAD_NONE`). For cases + where a `target.cfg` file does *not* specify `mkhelper`, a fallback default + entry is dictated within `config/data/coreboot/mkhelper.cfg`. +* **GRUB: Only load the `xhci` module from `grub.cfg`**; the `install_modules` + variable now defines `xhci`, instead of `modules` defining it. This means + that the xHCI module is no longer automatically loaded during GRUB machine + initialisation, but it's then loaded immediately when the GRUB shell starts, + and the `grub.cfg` file is first parsed, then executed. This mitigates a + previous issue where booting into GRUB with a USB device connected sometimes + made GRUB hang; this issue affected Libreboot 20240612, on Haswell thinkpads, + and revised images (and a revised source tarball) was then issued for that + release, containing the very fix described here. +* coreboot: Define `makeargs` in `config/data/coreboot/mkhelper.cfg`. It was + not practical to define this, and other settings, in each `target.cfg` file + due to how many targets there are, but the mkhelper feature makes this much + easier. To mitigate the previous issue, the `trees` script hardcoded + coreboot makeargs in a special variable, `cbmakeargs`; this variable has + since been removed, because it's no longer used. +* GRUB: Define common build options in `config/data/grub/mkhelper.cfg`, + instead of repeating them in `target.cfg` files for each GRUB tree. + The `mkhelper.cfg` feature was added, defined in the Features section above, + which is loaded per-project on multi-tree projects, before each target + file. It allows easier configuration tree-wide on multi-tree projects. + +Bug fixes +--------- + +The changes are as follows: + +* Relative to audit6: Fix error when re-downloading a cached project. In + some cases, a repository had already been downloaded, and lbmk wasn't + properly checking this. Fixed now. The git download logic needs to be + checked properly, and this will be done in the next major Libreboot + Build System Audit, after Audit 6. +* Relative to audit6: `vendor.sh`: When determining vendor file paths based + on the coreboot config, don't load the full config. Instead, selectively + grep and parse the file. Some variables in the coreboot config files use + different notation than sh, which caused build errors in some cases. This + change fixed a build error when compiling the target image for + Dell Latitude E5520. This change applies to both `inject` and `download` + commands. +* Relative to audit6: `lib.sh`: the `x_` wrapper now provides more verbose + output indicating what command was being executed, when an error occurs. + This is a wrapper function that used as shorthand for error management + in lbmk. You prefix it to a command and lbmk returns if the command returns + with non-zero status. This wrapper exists because not all parts of lbmk can + feasible set `-e` or `-u` in sh. The lack of verbosity is considered to have + been a bug, because it stifled any debugging effort when bugs occured in lbmk. +* Relative to audit6: The 4MB HP 8200 SFF target was using a slightly + incorrect flash descriptor, where the boundary for the Platform Data region + was wrongly defined. This is now fixed, which prevents bricking when you + flash that setup. The board has 8MB of flash, but only the earlier 4MB part + is user flashable from vendor firmware, even when setting the flash descriptor + override. Internal flashing in that case means flashing a custom descriptor + where the BIOS region ends at 4MB; you would then flash the full image + internally, after the fact. +* Relative to audit6: Patch uefitool for musl libc. The code was making use + of `ACCESSPERMS`, which is a define in BSD libc (also available in the GNU + C Library) for use with chmod when setting 777 permission on files. The musl + libc doesn't have this, so the code was modified to explicitly define it in + the same way, but only if not already defined. Useful for Alpine Linux users. +* Relative to audit6: Don't dry-run `mkcorebootbin` when using the `-d` switch + on the `trees` script. Dry builds in lbmk intentionally avoid running things + like `make`, but still process configurations provided by lbmk. This is done, + because individual projects can define their own helper functions. The + variable `$dry` is set to `:` in lbmk, and can be prefixed to a command, + essentially disabling it. This is set to `:` only when doing a dry build. + This is used for many things, such as vendor file downloads (you can + use e.g. `./mk -d coreboot x220_8mb` and it'll just build coreboot utils + and download vendorfiles for the X220, but not actually build the coreboot + image). This change enables you to use `./mk -d coreboot TARGET` instead + of `./vendor download` (the latter will be removed in a future release). +* Relative to audit6: In addition to the change below, the `badhash` variable + is initialised to "n" by default, instead of being empty. This is a + preventative bugfix, to prevent the type of bug like described below from + happening again. +* Relative to audit6: Fix buggy deletion of cbutils. Projects such as this are + automatically re-build when lbmk makes configuration changes. This is done, by + calculating a hash of a concatenation of hashes of all project config files, + and if it changes, the project builds are deleted and re-built (the source is + also re-generated from cache, with all the right patches and so on). This is + done with a variable called `badhash`, which was set *empty* by default. The + check for builds needing deletion was being done based on whether the `badhash` + variable *was not set to "n"*, which it wasn't; it was empty! Therefore, the + logic was changed such that the builds are deleted (and re-built) if + the `badhash` variable is positively set to "y", instead of *not "n"*. This + prevents the coreboot utilities (such as cbfstool) from being needlessly + re-built every time when performing coreboot-related operations in lbmk. +* Relative to audit6: Copy the `coreboot.rom` build to the lbmk tmpdir first, + before operating on it. This is because the coreboot build system often + cleans builds when you perform other operations. This prevents build errors + in lbmk. +* `script/trees`: Hardcode `makeargs` for crossgcc specifically, by using + another variable (within that script) called `xgccargs`. This prevents + the build threads being default (one thread), ensuring that we set it to + the value as defined by `XBMK_THREADS`. The bug was triggered when building + the U-Boot images, because U-Boot does not specify `CPUS=` on makeargs. +* **`include/git.sh`: Re-try `git pull` three times**, when updating the cache + Git repository for a given project or submodule. This mitigates possible + instability in the user's internet connection, where it's online but may + otherwise experience jitter (the same issue could also occur on the internet + connection hooking up whichever server lbmk is interacting with, such as + the coreboot web server). +* U-Boot (patch): Courtesy of Alper Nebi Yasak, a mitigation is provided in + U-Boot working around the lack of support for clock timings on eDP displays; + the clock setting was removed in the devicetree, because display works without + it, but with it, display breaks because drivers do not yet support it. +* U-Boot (patch): Courtesy of Alper Nebi Yasak, a fix was made that prevents + breaking the build process for U-Boot, when building binman images. In lbmk, + we do not use the BL31 firmware from U-Boot itself, because coreboot does + this, so it's patched out in Libreboot and we defer to coreboot's logic. +* `script/trees`: Don't continue, when no argument is given. `main()` used to + be the only funsction that runs, in this script, but now we source a config + file afterward, and run the build after that. Whan a flag is provided without + OPTARG, this means that we are continuing such action in error; in practise, + it meant that nothing was done because the command was set by `mkhelpercfg` + and `cmd`, which would be empty in this situation, but it might cause issues + depending on the `sh` implementation, so this fix is pre-emptive. +* `include/`: Remove `+x` permissions on these files, because they must never + be executed directly; they are stubbed from `build` and `script/trees`. This + is listed as a bug fix, because having executable permission on these files + is a potential security issue, depending on how lbmk might be modified in + the future, so it's a pre-emptive fix. +* `include/rom.sh`: Only build coreboot utilities *before* building coreboot + itself. This prevents `coreboot.rom` from being wiped out, when building it, + due to idiosyncrasis in coreboot's own build system. This is a pre-emptive + fix, because the issue didn't really cause actual trouble in practise, + except under certain test conditions that are unlikely in real use. +* `include/vendor.sh`: Properly quote the filename, in a check for `ec.bin`, + on the `extract_kbc1126ec()` function - in practise, this caused no issue, so + this is a pre-emptive bug fix, but quotes are now used to prevent globbing. + Overlooked in a previous audit, where anti-globbing was actually a priority + in that audit. +* `include/vendor.sh`: Skip serprog targets, if defined, because these are + not coreboot and they are built using separate logic, but they are placed in + the same directory within release archives. This prevents an exit under + fault conditions, instead causing a regular exit (zero status). This was never + triggered during regular builds, because of other conditions checked + throughout, but some users may run the `inject` command, which this fix is for. + The issue was previously fixed for `download`, but overlooked for `inject`. +* `include/vendor.sh`: Don't inject `/dev/null` into an image. In some cases, + a given board may define empty option ROMs which refer to `/dev/null`. This + is used during the coreboot build process, in cases where we want such images + inserted, but not handled by vendor scripts. Specifically: PIKE2008 images + were inserted empty, for KGPE-D16, by re-using the *VGA ROM* options in the + coreboot build system. The `vendor.sh` logic also uses that same config item, + which was tripping up on these boards. Simply skip insertion (in `vendor.sh`) + file location is `/dev/null`. This prevents errors during the build process, + in some limited cases. +* `include/lib.sh`: Much stricter checks in `chkvars()`; the variable string + may have been set, but otherwise empty. This function was only checking `+x` + via variable expansion, which only yields negative if the variable was never + declared. The intention is to check both unitialised and empty strings, per + variable. This is a *pre-emptive* bug fix, because this bug did not seemingly + cause any issues in practise, but a bug is still a bug. +* **`include/vendor.sh`: Re-added the `modify_gbe()` function**, seldom used but + nonetheless required; it's called when the user specifies a MAC address, + during vendorfile insertion on release images. Direct use of `nvmutil` is + still recommended, simply to gain an understanding of how it works; the MAC + address feature in `vendor.sh` simply runs `nvmutil`. +* `script/roms`: Made U-Boot be built *before* checking `ubootelf`, instead + of after. The check was flawed, because if U-Boot didn't exist, but a given + build would be vzerified by the first check, the check would still fail after + build, because the check works by first checking the existence of a given + U-Boot build file, deferring to another and then exiting if that doesn't + exist, with error status. This is a *pre-emptive* bug fix, because this + bug wasn't triggered in practise since actual targets already used the + fallback build, not the first one. Therefore, this fix is pre-emptive for + future U-Boot targets in lbmk. +* `include/lib.sh`: Do not exceed 80 characters on the line that checks + the `versiondate` variable. Such excess is considered a bug. +* `include/vendor.sh`: Rename variable `release` to `vrelease`. Also remove + the `inject_vendorfiles()` function and merge into `vendor_download()`. + The `release` variable is included now in some `target.cfg` files, so we want + to avoid conflicting with it. This is a pre-emptive bug fix, because the bug + described had not been triggered in practise, but was theoretically possible. +* `script/trees`: Exit with error status if `target.cfg` not provided, on + multi-tree projejcts. It was already by design that this should occur, + but we previously did not support `target.cfg` files on single-tree projects. + Single-tree `target.cfg` support was later added, done by making `target.cfg` + optional there, but the change accidentally made it optional on multi-tree + projects. In practise, all multi-tree projects included this file per target, + so this is a pre-emptive bug fix on the theory that future maintainers might + accidentally exclude `target.cfg` on a given tree, within a multi-tree + project. +* `build`: Don't delete `TMPDIR` if it's `/tmp`. We set it to a subdirectory + under `/tmp`, and subsequent `mktemp` calls create resources under it, but + it's possible in the future that this functionality might be broken; therefore, + this is a pre-emptive bug fix, on the (correct) theory that code equals bugs, + and that regressions can and will occur in the future. One could say that this + is a *safety feature*; it could just as easily be listed on *Feature changes*. + This is more strongly a pre-emptive bug fix, as opposed to an actual feature. + Upon exit from the main parent instance of lbmk, `TMPDIR` is deleted. It is + set to a subdirectory of `/tmp`, precisely so that we have a unified directory + location for all temporary files, which then get deleted in bulk (upon exit). +* `script/trees`: Explicitly err if `OPTARG` is not set, for a given flag. We + otherwise rely on `-e`, but different `sh` implementations may behave + differently. Therefore, this is a emp-emptive bug fix, on the theory that + execution may otherwise continue erroneously (depending on the implementation). + NOTE: this is only listed for documentary reasons, but the script was later + modified to *allow* a lack of argument, whereby the script would be re-called + recursively on all projects with the exact same flag, while defining an + argument throughout. +* `script/trees`: Call err if multiple flags are provided. The script is only + designed for one flag. Exit with error status if multiple flags are provided. +* `script/trees`: Explicitly set `mode` for flag `-b`, rather than leaving it + at the default state (empty). This is to mitigate the possibility (from later + code changes) where other flags might set the string. We need the string to be + empty, when the `-b` flag is used; this is a pre-emptive bug fix, fixing a + bug that doesn't actually exist, but rather, preventing such a bug later on. +* `include/lib.sh`: Make the presence of a `projectname` file mandatory, with + the project name inside. This prevents the theoretical issue where a project + is nameless, because this file is used during the build process when naming + release tarballs; theoreticaly, because in practise, lbmk would never remove + this file, but the build system is designed to be as adaptable as possible. +* **`script/trees`: If the crossgcc build fails, run it again first**, before + returning with error status. If the second build passes, don't yield an error. + Sometimes the crossgcc build can fail for whatever reason, but a second run + will succeed. This avoids having to re-run the *rest* of lbmk, just to re-run + the crossgcc build. In most cases, the first attempt passes. Coreboot's + own `buildgcc` script is quite complex, and error-prone. +* `script/trees`: Don't check if crossgcc is already built. The check was done + based on whether the `xgcc` directory exists, but coreboot's build system + may have exited with error status before, having not completed all builds. + The result was that subsequent runs would result in a permanently broken + crossgcc build, unless the user manually intervened. Instead, lbmk always + runs the crossgcc build script from coreboot; coreboot itself has a much + more thorough set of checks, skipping a given build that was already performed, + but the check is a bit slower, adding a few additional seconds to the build + time per target. The bug that this fixes was in fact triggered, during random + testing, leading to the fix. +* `include/lib.sh`: Fixed error when running `./build dependencies`. The `e()` + and `setvars()` functions were declared *after* the dependencies function, + but are now declared before. Also: after calling `install_packages`, it + was doing a return when it should have done an exit. All of this lead to + certain temporary files being created; the context here was that the user + would be running `./build dependencies` as root, which lead to some of those + files being created as root, but lbmk exits with not-zero status when you + run it as root, except when running the dependencies command. Therefore, this + could create situations where the user can longer run lbmk without intervention + such as changing permission on certain files. Avoid the issue entirely. + +General code cleanup +-------------------- + +Extensive code cleanup has been performed, as was one of the main focuses in +this release (in addition to newer hardware support): + +The changes are as follows: + +* **Removed `util/autoport`**, because the Haswell support that we merged for it + is now included in upstream(coreboot), so it will be included in future + coreboot revisions for lbmk. +* `script/trees`: Move dependency building (based on `build_depend`) to a new + function, called from `configure_project()`, instead of including the logic + directly within the latter. +* `script/trees`: Merge `build_targets()` into `handle_targets()`. +* `script/trees`: Use `:` as a prefix on certain build commands, when doing + try runs (dry builds); the `-d` flag was initially implemented with a lot + of if/else chains, but `:` does nothing in sh (that's what it's for, to do + nothing), including if arguments are provided to it. This change enables + much more granually disablement of certain commands, which would otherwise + require many more if/else chains. This change reduced the amount of code. +* `script/trees`: Remove all project-specific hacks. The coreboot-specific + includes were moved to coreboot's `mkhelper.cfg` file. Serprog and coreboot + images are handled by mkhelper functions now. +* `include/rom.sh`: It also provides building of serprog images. The mkhelper + configuration is provided for `pico-serprog` and `stm32-vserprog`. The + old `./build roms serprog` commands still work, but you are now advised to + run `./update trees -b stm32-vserprog` or `./update trees -b pico-serprog`, + which will now result in the same builds being provided under `bin/`. +* `include/rom.sh`: New file, replacing `script/roms`. It contains the same + functions, more or less, for building coreboot images. The `trees` script + already produces coreboot images, and payloads were added by `script/roms`; + now, those same functions (for adding payloads) are stubbed + via mkhelper configuration in `config/data/coreboot/mkhelper.cfg`. + The command `./update trees -b coreboot` (whether specifying additional + targets, or specifying none and thus building all of them), now builds + coreboot images with payloads inserted, and never leaves them on-disk without + payloads; this removes an existing issue where the user might accidentally + use the no-payload images, mitigated by provided a warning but still an issue + regardless (for example, what if the user doesn't understand English very + well?). The old `./build roms` command is now deprecated, but still provided + for backward compatibility, but you are now advised to run the trees command. + The `bin/` directory is still the place where coreboot images go, but they + no longer appear(without payloads) under `elf/` - only the `bin/` images are + provided. +* `script/roms`: Removed unnecessary calls to `./update trees -b` for payloads, + because coreboot targets now specify `build_depend` which is used generically + per tree, per multi-tree project, to provide such build dependencies. +* `script/trees`: Rename function `load_target_config()` + to `configure_project()`, because the function also now handles building to + some extent (based on `build_depend`), not just mere loading of config files. +* `include/vendor.sh`: Removed `mkdirs()` and merged its logic into the only + calling function, `fetch()`. +* `include/git.sh`: Simplified `git_am_patches()` by condensing several `for` + loops together, into a single `for` loop performing each task. +* `include/git.sh` and `script/trees`: Tidy up the use of global variables. + Some of them were only initialised in `git.sh` but also used in the `trees` + script, which means they should be initialised in the `trees` script. +* `include/git.sh`: Simplified initialisation of `loc` (single code line) +* `script/trees`: Simplified `distclean` directory check, by reducing the + nesting of if/else statements. +* `include/git.sh`: Condensed a few code lines in `fetch_targets()`. +* `include/git.sh`: Shorter `git_prep` command in `fetch_targets()`. +* `script/trees`: Simplified multi-tree bare repository cloning. The `git_prep` + function already creates a given directory where source code goes, so we + don't need to handle it from the `trees` script. +* `script/trees`: Merged `prepare_new_tree()` with `fetch_targets()`. +* `script/trees`: Simplified `distclean` handling; condensed a few code lines. +* `script/trees`: Further simplified `copy_elf()`; condensed a few code lines. +* `script/trees`: Added explicit return to the end of `handle_defconfig()`. +* `script/trees`: Renamed `check_config()` to `check_defconfig()`, for clarity. +* `script/trees`: Removed variable `config_name`, because it's only used + once, so its value was instead hardcoded, without declaring a variable. +* `script/trees`: Renamed variable `config` to `defconfig`, for clarity. +* `include/git.sh`: Removed redundant `xtree` variable, already defined + in `trees`. +* `script/trees`: Removed various comments that were redundant, because the + code that they covered was already simple enough that what they did was + obvious. +* `script/trees`: Cleaned up `handle_makefile()` a bit; condensed a few lines. +* `script/trees`: Renamed `load_project_config()` to `load_target_config()`, + for clarity. +* `script/trees`: Download multi-tree *bare* repositories *before* given trees. + When downloading multi-tree projects, revisions can be reset to `HEAD` + instead of the actual revision for a given target. This occurs when the bare + repository (e.g. `src/coreboot/coreboot`) does not exist and has to be fetched + first. Bare repository downloading does not rely on `target.cfg`, + only `pkg.cfg`, but uses the same variables, e.g. `rev`. So: instead of + using a separate variable name, do the bare repository download first. + This means that the `git.sh` logic can be much cleaner, in that it *only* + copies the bare repository and then runs `git_prep`. The bare repository is + closed directly by calling the relevant function from `trees`, which is + therefore the same behaviour as when cloning single-tree projects. +* `script/trees`: The `_setcfgarg` variable was removed, in + function `load_project_config()` because it became disused and thus redundant. +* `script/trees`: Unified multi-tree and single-tree configuration handling. + The same functions that load configurations for single- and multi-tree have + been merged with the one in `git.sh`, and then that was moved back into + the `trees` script. Now `git.sh` only handles the actual downloading and + patching of sources, but not configuration of them; the latter is handled + directly within the `trees` script. The benefit of this change is that it + generally allows far more flexibility; many functions that use such + configuration logic can now be unified under this script, for instance + using the `mkhelper` feature mentioned elsewhere on this page - and that is + precisely what was later done, in further changes that are detailed above. +* `script/trees`: Unified handling of source downloads. Run it from + function `load_project_config()`. The logic used to be split, between + single- and multi-tree projects, but now it is consistent throughout. +* `include/git.sh`: Rename `fetch_project_trees()` to `fetch_targets()`. +* `include/git.sh`: Rename `fetch_project_repo()` to `fetch_project()`. +* `script/trees`: Add explicit return at the end of `check_coreboot_utils()`. +* `include/vendor.sh`: Remove unnecessary check; we don't need to check whether + the `grub_install_modules` and `grub_modules` variables are set, because they + always are, and we may want to have a setup in the future where no such + modules are defined anyway, for testing purposes. Remove this check entirely. + This pertains to `mkpayload_grub()`, which produces the `grub.elf` payload + builds. +* `include/vendor.sh`: Remove unnecessary check; we don't need to check + the existence of the option ROM in `extract_e6400vga()`, because a command + comes right after it that copies it. If the file doesn't exist, `cp` will + yield error status, causing the same kind of error returned from lbmk. +* `include/vendor.sh`: Condensed `inject()` a bit, by simplifying some of + the if/else chains and especially the way in which they return. +* `include/vendor.sh`: Simplified checks for E6400 VGA config; it was being done + in a complicated for loop running `eval`, but similar functionality is + already implemented in `chkvars()`, which is now used instead. +* `include/vendor.sh`: Simplified the otherwise over-engineered path checks, + when reading vendor paths from inside coreboot configuration files. +* `include/vendor.sh`: Simplified handling of the kbc1126 utility in coreboot. + We were checking whether the binary exists, but `make` already does this. + We still check whether the directory exists, because not all coreboot trees + contain this utility; where they don't, but it is needed, we can always + add it with a patch, but this is currently not required. +* `include/vendor.sh`: Simplified utils handling in `bootstrap()`; a single + for loop is now used, for all utilities, when running the `trees` script. +* `include/vendor.sh`: Simplified initialisatino of the `_7ztest` variable; + it is included now in the main call to `setvars`, under global variables. +* `include/vendor.sh`: Condensed a few code lines in `detect_board()`. +* `include/vendor.sh`: Condensed a few code lines in `patch_rom()`. +* `include/vendor.sh`: Add explicit return at the end of `bootstrap()`. +* `include/vendor.sh`: Renamed `getcfg()` to `readkconfig()`. +* `include/vendor.sh`: Merged `cfgutils()` into `readcfg()`. +* `include/vendor.sh`: Merged `build_dependencies_inject()` + into `vendor_inject()`. +* `include/vendor.sh`: Tidied up a few variable initialisations, and the + handling of `cbutils` (coreboot utilities) in this context. +* `include/vendor.sh`: Clean up GbE region handling; there were actually two + separate sets of logic for handling the MAC address. It was unified, so that + only `modify_gbe()` is used throughout. +* `include/vendor.sh`: General code simplification. Many variables were declared + separately, instead of being declared with `setvars`, and a lot of for loops + were condensed. +* `include/vendor.sh`: Simplified the `modify_gbe()` function. It was re-added, + and the function was still using a much older coding style from before all + the various lbmk audits. The function is now about half the size, while + performing the same task. +* Generally tidied up a few `setvars` calls, condensing them them so that they + used fewer code lines, while still observing the 80-character rule. +* `script/roms`: Explicitly shift by 1 for all targets. The way this script + worked, it would go through all arguments populating each one inside a + single string containing them, shifting until no arguments were left. We want + to make sure it is shiftedh by *one*, and make this intention clear. +* `script/roms`: Add return value for the `list` command, because we want a + specific return value but `return` passes the value of the previous return, + if a given `return` call does not specify an argument, and there's no way to + predict what the previous value would have been. However, this is not a bug + fix, pre-emptive or otherwsise, because nothing actually using this command + relied in any way on its return value. +* `include/vendor.sh`: Remove unnecessary checks. The trees script already checks + the existing of binaries and sources, so it didn't need to be done here. +* `include/vendor.sh`: Remove unnecessary coreboot tree check. We didn't need to + download a coreboot tree, because this script also handled coreboot utilities, + which in turn would download the necessary coreboot tree in the same way. +* `include/vendor.sh`: Remove unnecessary `cbutils` variable check; the same + check (of coreboot utilities) was already performed in `script/trees`. +* `include/vendor.sh`: Remove unnecessary check; `mktemp` will never return + empty output, and it was used just prior to an `mkdir` command on that output, + which would subsequently return an error if the argument is empty. +* `include/vendor.sh`: Condensed a few code lines in `check_board()`. +* `include/vendor.sh`: Condensed some code lines handling variable initialisation. +* `include/vendor.sh`: Remove unnecessary `cbfstool` variable check; the same + check is also performed in `script/trees`. +* `include/vendor.sh`: Simplified the `cbfstoolref` variable check; condense + a few code lines. This variable refers to cbfstool from coreboot 4.13, used + for extraction of the *refcode* file on HP EliteBook 820 G2, at build time. +* `include/lib.sh`: Tidy up `err_()`; condense a few code lines. +* `include/lib.sh`: Add explicit return to the end of `chkvars()`. +* `include/vendor.sh`: Unified reading of board configs. The `inject` + and `download` functions had separate logic for this, which is now implemented + in a single function throughout. +* `include/vendor.sh`: Simplify variable check in `getcfg()`; use `chkvars()` + to check the `vcfg` and `tree` variables (exit with error status if they + were not initialised). +* `include/vendor.sh`: Removed unnecessary `cbdir` check. We don't need to + check it, because the `trees` script already checks it. +* Remove use of `_xm` in the build system, which was a variable containing a + given prefix as set throughout, for each function. It was included in error + messages, when returning from a function under fault conditions, but it was + no longer used; a relic of lbmk from several audits ago. +* `script/trees`: Simplify single- and multi-tree handling in `main()`. Use + shorthand notation on a single line, initialising it based on single-tree + and then checking that the given project is multi-tree. +* `script/trees`: Rename `build_projects()` to `build_project()`. The script used + to support building multiple single-tree projects, but this behaviour was buggy + and unused, so it was removed. Rename the function accordingly. +* `script/trees`: Set `btype` if `target.cfg` doesn't exist; set to `auto`. + The build system assumes multi-tree, if Kconfig files are used. Single-tree + projects will not typically define `btype`, so just default it to `auto`. +* `include/lib.sh`: Removed unused `cbdir` variable. +* `script/roms`: Don't assign `cbdir`, because it wasn't even used here. +* `script/trees`: Don't hardcode skipping kconfig files based on whether the + project is GRUB. Instead, define `btype` in project `target.cfg` files, and + define this in GRUB. Some projects are multi-tree but do not use Kconfig files, + and GRUB is one of them; we must avoid commands such as `make menuconfig`, + doing nothing and returning with zero status explicitly, otherwise it would + yield an error, which is a problem if you ran the trees script with a flag + but no argument (which, as documented elsewhere in this report, was later + made to operate that flag on every project in succession). +* `include/git.sh`: Don't check that a given source directory exists, because + the main `trees` script already does this before running fetch commands, which + are implemented in `git.sh`. +* `build`: Move `git_err()` here, from `include/lib.sh`, because it's only used + in the main `build` script. +* `include/lib.sh`: Simplify `singletree()`; condense a few code lines. +* `include/lib.sh`: Add an explicit return to the end of `check_defconfig()`. +* `include/lib.sh`: condense the `e()` function a bit (was already done before, + and done again). +* `include/lib.sh`: Simplified `TMPDIR` handling; remove the `tmpdir` variable + and use `TMPDIR` directly. Use a new variable `xbmk_parent`, which is set + to `y` only on the main instance; child instances of lbmk do not set it, + signalling that `TMPDIR` should not be removed upon exit (it should only + be removed upon exit from the main parent instance of lbmk, not child + instances executed by it). +* `include/lib.sh`: Condense if/else logic in `setcfg()`. Use shorthand + notation instead, on conditional statements. +* `include/lib.sh`: Condensed `setvars()` a bit. +* `include/lib.sh`: Simplified lock message, when a lock file exists while + trying to run lbmk. +* `include/lib.sh`: Simplified reading of version files. A single for loop + now initialises all of these variables with a single `eval` command inside. +* `include/git.sh`, `include/lib.sh`, `script/roms` and `script/trees`: Simplify + use of environmental variables. The variables themselves were being copied + to other variables, of lowercase naming, but this was unnecessary. The + environmental variables are now used, directly, while being properly set per + each running instance of lbmk. +* `script/roms`: Remove the `t` variable, which was used for temporary ROM + images. The script now operates on images more directly, and this variable + is no longer used (previously used for storing paths to temporary images). +* `script/roms`: Simplified logic for checking U-Boot builds. +* `script/roms`: Simplify initmode/displaymode loop, when building multiple + coreboot images per target. +* `script/roms`: Renamed a few functions and variables for code clarity. +* `script/roms`: Build coreboot images earlier on in the process, to avoid + duplicate work. It was built per coreboot configuration, but the logic + builds all images per target, so it doesn't make sense to run the build twice. + The subsequent runs would just skip, because the images already existed. +* `script/roms`: Generalised more logic, merging a lot of functions and + reducing a lot of code repetition. +* `include/lib.sh`: Remove `badcmd()`, because it's bloat. This function + simply write "bad command", followed by a call to the err function. Instead, + simply call err with the same string, when required. +* `include/lib.sh`, `include/git.sh` and `include/vendor.sh`, `script/trees` + and `script/roms`: More unified handling of project configurations. Remove + the function `scan_config()`, which worked with a specially crafted format + that we had for vendor files and project (source repo) configs. Instead, + use flat config files. Individual `target.cfg` files for coreboot now contain + a `vcfg` variable pointing to a directory, containing vendorfile config. + This change resulted in a sloccount reduction of about 20, in the build + system, and the new config handling is much more robust. +* `script/trees`: More robust check for `make fetch`, when handling source + downloads. Don't use shorthand form; instead, use if/else chains to + determine whether to skip a target after download. +* `include/vendor.sh`: Minor code cleanup (condense a few code lines). +* `include/git.sh`: General code cleanup in `fetch_submodules()`. Several + code lines have been condensed. +* `script/roms`: Merge `mkserprog()` into `main()`, because it was essentially + performing the same functions, but for checking serprog targets. Unify the + logic, for handling coreboot, stm32 serprog and rp2040 serprog targets. +* `script/roms`: Reduced code indentation in `build_grub_roms()`. +* `script/roms`: Remove `build_payloads()` and split it into smaller functions. +* `script/roms`: Condense lines together that check for various payloads. +* `script/roms`: Removed the `mt86bin` variable, because it's only used once. + Instead, hardcode the path to memtest86plus when building it. +* `script/roms`: Merge `build_uboot_payload()` into `build_payloads()`, because + both functions are very simple and do essentially the same thing. +* `script/roms`: Simplified check for u-boot payload; we only need to know + whether it's enabled, not whether it's also disabled. If set to enable + other than `y`, set it to `n` blindly. +* `script/roms`: Simplify the check for serprog source directories. Instead + of an if/else chain, re-use variables and use a single `eval` command + between the two types; serprog rp2040 and serprog stm32. +* `script/roms`: Simplify the loop for building serprog images, by re-using + variables more aggressively and removing the if/else chain for serprog type. +* `script/roms`: Shorter variable names for serprog build logic. +* `script/roms`: Simplified serprog image copy, by using a single `eval` + call referencing `stm32src` or `rp2040src`, thus unifying this logic between + both types of serprog build. +* `script/roms`: Rename `picosrc` to `rp2040src`; this is in preparation for + the next change, mentioned above. +* `script/roms`: Remove confirmation dialog at the end of a serprog build, + because the message was overly pedantic and something the user already knows. +* `script/roms`: Merge the serprog handling into a single helper function. +* `script/roms`: Renamed the `x` variable to `it` in a for loop, to avoid + possible conflict with another same-named variable elsewhere in this script. +* `script/roms`: Don't call `x_` when using `cproms()`, since it never returns + with non-zero status anyway. +* `script/roms`: Move the U-Boot images, instead of copying. This way, we don't + have to clean up the temporary file that was used for it. +* `script/roms`: Allow flexible use of `mv` or `cp` in `cproms()`. +* `script/roms`, `include/lib.sh` and `script/trees`: Use a common string + for setting `elfdir`, which is where builds are copied to upon completion. +* `script/roms`: Merge `mkUbootRom()` into `build_uboot_roms()`. +* `script/roms`: Remove unused variables in `mkSeabiosRom()`. +* `script/roms`: Remove unused variables in `mkUbootRom()`. +* `script/roms`: Remove unnecessary variable assignment; `cbcfg` was already + properly initialised as a global variable, so this was re-used instead. +* `script/roms`: Removed unnecessary check for `payload_uboot`; + the `uboot_config` variable, if set, clearly indicates use of U-Boot. +* `build`: Remove unused `linkpath` and `linkname` variables. +* `script/roms`: Make `tmpcfg` a variable, re-used elsewhere when a temporary + file needs to be written. Simply overwrite the file as required, instead of + always calling `mktemp`. +* `script/roms`: Simplified timeout/scandisk insertion. We don't need to + call `mktemp` every time. Just use a static temporary file and keep + overwriting it, when we need to make a new configuration file inside CBFS. +* `script/roms`: Simplified SeaGRUB check in `build_grub_roms()`; condensed + a few code lines. +* `script/roms`: Simplify `mkserprog()`; condensed several code lines and + removed unused variables! +* `script/roms`: Simplify the Serprog build functions; condensed several + code lines and removed unused variables. +* `script/roms`: Simplify U-Boot payload check (same change as below). +* `script/roms`: Simplify GRUB-only check on SeaGRUB (same change as below). +* `script/roms`: Simplify SeaGRUB check in `configure_target()`; condensed + the if/else checks based on which payloads are configured. +* `script/roms`: don't use `x_()` to call `build_grub_roms()`, since that + function never returns non-zero status anyway. +* `script/trees`: Simplify `copy_elf()`; condense the `while` loop handling + file copies, for copying builds to their destination paths once complete. +* `script/trees`: Remove unnecessary check in `copy_elf()`; we don't need to + check whether the `listfile` string is empty, because a check comes after + it as to whether the file it defines exists, and checking an empty string + there will always yield a negative result, as intended. +* `include/lib.sh`: Add generic `cbfs()` function, which is now used throughout + lbmk when adding files to CBFS on coreboot images. This simplifies handling + of CBFS in lbmk. +* `script/roms`: merged handling of build targets into the main script, + simplifying the loop going through them all; each helper function returns + with non-zero status if the build is to cease, and the target is skipped. +* `script/roms`: Simplified handling of multiple coreboot build targets, when + looping through them all during the build process. +* `include/lib.sh`: added a unified function `chkvars()`, now used for checking + variable initialisation; if a variable is not initialised, it causes an exit + with non-zero status. +* `script/roms`: shorter variable names, condensed several functions. + +Revision updates +================ + +Coreboot +-------- + +The `default` tree was updated to commit ID `97bc693ab` from 29 July 2024. +Several patches were merged upstream and therefore no longer needed in lbmk. + +The `dell` tree (containing Dell Latitude E6400) was merged into `default`, +with the DDR2-specific changes now only applying conditionally (RCOMP replay +patch written by Angel Pons). + +Nicholas Chin's timing fix for LVDS displays (on Latitude E6400) was also +moved to the `default` tree, patching the *libgfxinit* submodule. + +The `haswell` tree (containing native raminit patches written by Angel Pons) +has been rebased, and merged into the `default` coreboot tree, within lbmk. + +The `fam15h_udimm` and `fam15h_rdimm` trees have been consolidated into +a single `fam15h` tree. This contains the ASUS KGPE-D16 and KCMA-D8 ports, +based on coreboot's `4.11_branch` tree, with Libreboot's special build fixes +that make it compile on modern distros, such as Debian Sid or Arch Linux. + +U-Boot +------ + +Alper Nebi Yasak is the maintainer of U-Boot, within Libreboot, and submitted +a patch updating U-Boot to v2024.07, on the `gru_bob` and `gru_kevin` +Chromebooks. Several improvements have been merged upstream, like Alper's +patches for Qemu, so these patches have been dropped in lbmk because they're +now included by default, in the new U-Boot revision. + +GRUB +---- + +Updated the revision to commit ID b53ec06a1 from 17 June 2024. This fixes +several bugs in the LUKS implementation. Several virtual memory fixes, and +numerous fixes to file system drivers in the GRUB kernel. + +SeaBIOS +------- + +Updated the revision to commit ID `ec0bc256` from 24 June 2024. This brings +in only a single change: + +``` + commit ec0bc256ae0ea08a32d3e854e329cfbc141f07ad + Author: Gerd Hoffmann + Date: Mon Jun 24 10:44:09 2024 +0200 + + limit address space used for pci devices, part two +``` + +This fixes buggy handling for 32-bit (i686) hosts, when allocating memory +for the PCI devices. + +Flashprog +--------- + +Updated the revision to commit ID `639d563` from 2 August 2024. + +PCSX Redux +---------- + +This was added git commit ID `6ec5348058413619b290b069adbdae68180ce8c0`. It is +a *Sony PlayStation* emulator, but we only need one part of it: the BIOS. + +PCSX Redux provides their own fully free/opensource BIOS for playstation, +mentioned elsewhere on this page. Libreboot's build system was modified to +compile *just* the BIOS part of PCSX Redux. This is used then, to provide +the open BIOS image, which is compatible with every PlayStation emulator and +also real PlayStations (soldering required). + +Git log +======= + +This git log covers all changes in this audit, relative to Libreboot 20240612. + +``` +* 6b40616a4 build: actually build pcsx-redux bios on release +* d845791d6 rom.sh: support making pcsx-redux bios release +* 09a8f2ea8 coreboot/dell3050micro: Add data.vbt file +* 217aa1735 Add verb patch for Dell OptiPlex 3050 Micro +* f4de640e4 rom.sh: disable seabios-as-primary if grub is main +* c99dced5b dell3050micro: make GRUB the primary payload +* ed8178e83 disable dram clear on dell 3050 micro +* d2939231a 3050micro: disable TPM to mitagate seabios hanging +* 809e1d97a fix 3050 config (./mk -u coreboot) +* 44473d683 git.sh: fix error with cache re-download +* c3ef0a863 Add config for Dell OptiPlex 3050 Micro +* 23e64192e Add Dell OptiPlex 7010/9010 SFF support +* 02e76d09c add swig to fedora dependencies +* a42fe72c9 Merge pull request 'config/coreboot: Add Dell Latitude E4300' (#236) from nic3-14159/lbmk:e4300 into master +|\ +| * e0e9c6ab3 config/coreboot: Add Dell Latitude E4300 +|/ +* ff9c250a3 Add Sony PlayStation support to Libreboot +* 2b0fe39ac config/git: Import pcsx-redux +* c723ce56d coreboot/default: Import mkukri's 3050 micro port +* e7c0109f5 Add deguard logic for Dell OptiPlex 3050 Micro +* 0266a4891 Add Mate Kukri's deguard utility +* 242b79aa2 Revert "vendor.sh: print extract errors to /dev/null" +* 72fa467cb vendor.sh: print extract errors to /dev/null +* 66755f73c Merge pull request 'Add remaining SNB/IVB Latitude ports' (#217) from nic3-14159/lbmk:latitude-ports into master +|\ +| * 4702e568c config/coreboot: Fix INTEL_GMA_VBT_FILE in Latitude configs +| * 73484d98a config/coreboot: Add config for Dell Latitude E6230 +| * f51a9dee9 config/coreboot: Add config for Dell Latitude E6330 +| * 0240be183 config/coreboot: Add config for Dell Latitude E6320 +| * 875e9cb25 config/coreboot: Add config for Dell Latitude E6220 +|/ +* 3f9d575ce coreboot/x4x: fix build error +* 8ca56f96c coreboot/default: fix build issue with DDR2 fix +* 3ee4cc9dd fix typo in dell latitude coreboot coreboot config +* 7ab22503a vendor.sh: use readkconfig on inject too +* d66f6e0d5 vendor.sh: don't load entire coreboot configs +* aae8cabe7 lib.sh: more verbose error in x_ +* 3a5a17937 flashprog: bump to 639d563 (2024-08-02) +* c3f6dd03c seabios/default: bump to ec0bc256 (2024-06-24) +* 5b353a229 grub/*: Bump to rev b53ec06a1 (2024-06-17) +* 80c3f9395 coreboot/fam15h: only use this, for amd boards +* 0f7c0aa1c coreboot/default: re-merge coreboot/i945 +* 877f5d6ae coreboot/default: merge coreboot/haswell +* a15347ef1 coreboot/dell: merge into coreboot/default +* dbe24b039 coreboot/default: Update to 97bc693ab (2024-07-29) +* 1b55fc790 fix hp8200sff_4mb ifd file (pd region) +* 490a94d7b uefitool: Only define ACCESSPERMS on *nix +* a78eaac88 uefitool: Add patch working around musl libc issue +* 59894ed55 lib.sh: new function mk() to handle trees in bulk +* 7fa6052de general code cleanup in the build system +* 3bd290f6a rom.sh: don't dry-run mkcoreboottar +* a91751a86 rom.sh: don't run mkcorebootbin on trees -d +* 38b65af5b support ./mk in place of ./update trees +* f5ba40200 trees: initialise badhash no n, not empty string +* faefcdf3d rom.sh: fix buggy deletion of cbutils +* 40dd0a7cf rom.sh: also add grub to seabios images +* d070eb1fe rom.sh: copy tmprom to TMPDIR for modification +* f85cb69ce rom.sh: re-add seabios-only roms and grub keymaps +* 490e0186a emphasis on readme that lbmk isn't a coreboot fork +* ba4278e0c include/rom.sh: use ccache when building coreboot +* 31f1e4dad vendor.sh: don't use XBMK_CACHE for appdir +* 2b50b3ea9 put cachedir in environmental variable +* 0e0b12a63 git.sh: warn when a cached clone fails +* 9b1b95576 git.sh: fix typo in git command +* 82bdf2707 git.sh: fix lack of error exits on fault +* 64283a1fb build: remove tmp/ on release archives +* bf85246c4 trees: hardcode makeargs for xgcc +* c6e6d96ce allow using coreboot's build system to add payload +* 78cdc56ae trees: remove unnecessary command +* e69903789 build: remove cache/ on making releases +* 79f50b379 unify caching of files into cache/ +* a9f9de885 unified cache file handling for vendorfile/subfile +* ef867eccc git.sh: remove previous tmprepo if args>5 +* 4d5385a14 git.sh: try direct clone if cached git fails +* 0cd52fc7f git.sh: re-try git pull three times +* 0b9cd77fe trees: auto-delete+auto-rebuild if project changes +* 4438368c0 trees: also remove single-tree repo/p/ +* 570e3abb2 trees: remove repo/p, not src/p/p +* 583502027 git.sh: don't download to src/project/project/ +* 9f09728ac git.sh: cache git downloads to repo/ +* f367afabc remove util/autoport +* 373c2eb23 trees: move dependency building to new function +* 12c3956f5 Merge pull request 'Update U-Boot to v2024.07' (#225) from alpernebbi/lbmk:uboot-v2024.07 into master +|\ +| * 708fc14c6 u-boot: Fix display initialization on gru boards +| * 0cc7736b4 u-boot: Avoid breaking build for U-Boot-only binman images +| * 2ecec55af u-boot: Update to v2024.07 +|/ +* 090cf7ad5 trees: fix bad comparison in configure_project() +* e37779c11 trees: don't continue if no argument given +* 3263eeb6b trees: general code cleanup +* 17f3e61a0 trees: merge build_targets() with handle_targets() +* c0a4df688 trees: use wrapper for dry-running make commands +* 459db1cc2 trees: remove project-specific hacks +* e9f66ec4a remove executable permission on include/ +* 91994b785 rom.sh: actually say if a cbutil exists +* 97b777715 rom.sh: avoid re-building cbutils if built +* 494b94799 rom.sh: only before cbutils before coreboot +* 469cc64f9 trees: fix bad comparison +* 5a1d2401c minor cleanup +* 964617214 trees: support -d (dry run) for custom build logic +* e850c06bd rom.sh: only make rom tarball if release=y +* 2f3cc5d37 rom.sh: new file, to replace script/roms +* 889afe168 roms: remove unnecessary trees checks +* c241a3ef4 coreboot: set build_depend on target.cfg files +* 6d4fb200a trees: rename load_target_config() +* 87df6ae36 trees: support build dependencies, not just fetch +* 23ca49bee GRUB: only load xhci from grub.cfg +* 065453b72 trees: just do makeargs on coreboot, not cbmakearg +* 2ab1d9949 trees: fix bad rm -Rf command (-Rf, not Rf) +* d6ff009e2 roms: fix bad comparison in configure_target() +* 3ee045f9a GRUB: use mkhelper.cfg for common variables +* 3ef84af9f trees: allow global config on multi-tree projects +* 2b49714a6 trees: handle all projects if project undefined +* b7f12ade0 vendor.sh: remove mkdirs() +* 0018600d6 git.sh: simpler for loop in git_am_patches() +* 5882056a2 git.sh: merge for loops in git_am_patches() +* 67421a21f trees and git.sh: tidy up global variables +* 55dbd72aa git.sh: simplified initialisation of "loc" +* 0cb84a8dd trees: simplified distclean directory check +* 5ba0433b5 git.sh: condense fetch_targets() a bit +* 4772186b1 git.sh: short git_prep command in fetch_targets() +* c62dbdbe8 trees: only do bare multi-tree clone on git +* 89a81a291 trees: simplified multi-tree bare repo clone +* 017fd8259 git.sh: merge prepare_new_tree with fetch_targets +* f937a1142 trees run_make_command: simpler distclean handling +* 88f741db9 trees: condense copy_elf() a bit +* d5928c9ba trees: add return to handle_defconfig() +* 1a7c8acb0 trees: rename check_config to check_defconfig +* ba7b3a3b2 trees: remove variable "config_name" +* 030f1afd8 trees: rename variable "config" to defconfig +* 739496061 git.sh: remove duplicate "xtree" variable +* 0c4ad24b0 trees: remove unnecessary commonts +* eacc41e82 trees: condense run_make_command() a bit +* 563948141 trees: condense handle_makefile() a bit +* 1ec9fc336 trees: mv load_project_config load_target_config +* 789631ccb trees, multi: download bare project *before* trees +* a5e724e51 trees: unified multi-tree configuration handling +* cfc9f62ff trees: unified handling of source downloads +* 7bf283520 git.sh: rename Fetch_project_trees fetch_targets +* e0c244f37 git.sh: rename fetch_project_repo to fetch_project +* 02f741795 trees: better skip-clean string in handle_src_tree +* f7ec42d37 trees: add return to check_coreboot_utils() +* 8d02adfbb trees: simplify "utilmode" variable initialisation +* d1b7882c5 vendor.sh readcfg: split the -b coreboot command +* fbe36b01a trees mkpayload_grub: remove unnecessary check +* 088a79918 vendor.sh: remove unnecessary check +* 8c5f78d3d vendor.sh: condense inject() a bit +* 42925ce79 vendor.sh extract_kbc1126: use quote on file check +* ddcc74777 vendor.sh extract_kbc1126ec: simplify build check +* 7a12cd770 vendor.sh: simplify e6400 vga rom file check +* 163bcfcdf vendor.sh: simplify variable checks for e6400vga +* cbac2087c vendor.sh: condense fetch() a bit more +* 675d2c037 vendor.sh: remove unnecessary check +* 5e46b9f43 vendor.sh: simplify kbc1126 util handling +* 7086b6868 vendor.sh: simplify bootstrap() utils handling +* 6a05487ef vendor.sh: simplified initialisation of _7ztest +* 972e61070 vendor.sh: condense detect_board() a bit +* bf5acedb1 vendor.sh: condense patch_rom() a bit +* 8b8cf070d vendor.sh: add return to end of bootstrap() +* d85b9de2d vendor.sh: rename getcfg() to readkconfig() +* 53b69f673 vendor.sh: merge cfgutils() into readcfg() +* 55677d821 vendor.sh: remove build_dependencies_inject() +* c76419861 vendor.sh: simplify initialisation of variables +* d63da943c vendor.sh inject: skip serprog targets +* c6df9666a vendor.sh: don't inject /dev/null +* f7ab70f60 vendor.sh: simplify inject() +* ee5bab2c9 vendor.sh: clean up GbE handling +* f2d53eb84 vendor.sh: condense fetch() a bit +* 85c2eb0f7 vendor.sh: general code cleanup +* a8f272536 lib.sh: stricter check in chkvars() +* fa5af956c vendor.sh: simplified modify_gbe handling +* 155ce49b1 vendor.sh: simplify modify_gbe() +* 08bce7ad3 vendor.sh: minor code cleanup +* 636b86237 vendor.sh: re-add modify_gbe() +* 2eb0163cc Revert "vendor.sh: remove unnecessary check" +* 3f37c3788 tidy up some setvars lists +* ed3cce84b roms: explicitly shift by 1 on the "all" target +* 359d00bd5 roms: add return value for the list command +* 3f540e756 roms: build u-boot *before* checking ubootelf +* afc003068 remove more unnecessary checks on trees commands +* 35c487106 vendor.sh: remove unnecessary checks +* ce03786f6 vendor.sh: remove unnecessary command +* e01b5c974 vendor.sh: remove unnecesessary cbutils check +* 8196ce6dd vendor.sh: remove unnecessary check +* 8f50131e1 vendor.sh: condense check_board() a bit +* d12a68601 vendor fetch(): condense variable initialisation +* 708e306e5 vendor.sh: remove unnecessary cbfstool check +* 75951c469 vendor.sh: simplified cbfstoolref check +* d36c07847 lib.sh: keep versiondate check to 80 characters +* 40d3bb19b lib.sh: condense for loop +* 5725e3c4e lib.sh: condense err_() a bit +* e3546f77b lib.sh: add a return to the end of chkvars() +* d0f68a0fb vendor.sh: rename release to vrelease +* 473f27784 vendor.sh: unified reading of board configs +* a2f4eba58 vendor.sh: simplify variable check in getcfg() +* 4afcbcb64 vendor.sh: remove unnecessary cbdir check +* fd037722a remove use of _xm variable in the build system +* 136787185 trees: don't hardcode use of mkpayload_grub +* c59fbb365 trees: simplify single/multi handling in main() +* 902b98d1a trees: rename build_projects to build_project +* e1e04aa80 trees: err if target.cfg not given if multi-tree +* 93ff80d96 trees: set btype if target.cfg doesn't exist +* 732c5908d lib.sh: remove unused cbdir variable +* 119cebc4d roms: remove unnecessary assignment to cbdir +* 7a15ba18c trees: avoid kconfig make commands generically +* eb9c1872b git.sh: remove unnecessary check +* 9aec992ff lib.sh: move git_err() to build +* 6fc7cd3c1 lib.sh: condense singletree() a bit +* 35d09e426 lib.sh: add a return to the end of check_defconfig +* 144b3c93a trees: condense elfcheck() a bit +* 7b8c2bd41 lib.sh: condense e() a bit +* ffdecb0ce trees: shorten the final confirmation message +* ed6acfee8 lib.sh: make elf/coreboot* a dot directory +* 44fb98736 build: don't rm TMPDIR if it's /tmp +* fac74cd60 lib.sh: simplified TMPDIR handling +* 671893a80 lib.sh: condense setcfg() if/else logic +* 19bc5845a trees: remove redundant space in printf +* 9154ba5b8 trees: explicitly err if OPTARG is not set +* f383b1ad7 trees: only permit one single-tree project +* a64e2db58 trees: call err if multiple flags are provided +* 0e97e98fe trees: explicitly set mode for -b +* 7f7b640d3 roms: re-add compression of coreboot images +* 1ab9189cb roms: build coreboot *after* checking variables +* 2b4c6ee5c lib.sh: introduce mandatory check of projectname +* c79fb125e lib.sh: condense setvars() a bit +* 1387dc0ae simplified lock message +* 20ac7ec67 lib.sh: simplify reading of version files +* 4e48fa808 lib.sh: simplify use of environment variables +* b4fb25100 roms main(): confirm what serprog images are built +* 5e2308ce0 roms: remove unused variable name +* 2960abd00 roms: remove redundant printf +* c661eca6b roms: optimise u-boot elf check +* 8af9f904c roms: simplify build_roms() +* c9f26dbc9 roms: make the bin/elf message more polite +* 9484eda5a roms: re-add final confirmation of targets +* 2b7df7ab2 roms: rename functions for extra clarity +* 6753222d0 roms: build coreboot early to avoid duplicate work +* 19e7c1eab trees: try xgcc build twice if first attempt fails +* 6468bdb3a trees: don't check if xgcc is already built +* d5baaff0e lib.sh: fix error running ./build dependencies +* 0158a0811 roms: general code cleanup +* e67cd1716 roms: only support SeaBIOS/SeaGRUB on x86 +* 71137b12b roms: remove support for "grubonly" seabios +* d4d5d2902 use backticks on eval commands, not subshells +* c1527b611 lib.sh: remove badcmd() +* fc7ae3e59 lib.sh: more unified config handling +* ad1602569 trees: more robust check to avoid "make fetch" +* a6b1a6bdd roms: fix lack of backslash on multi-line command +* 8c4a91850 vendor.sh: more cleanup +* 471129684 Revert "roms: remove build_payloads() and split it up" +* 5a4fc97c6 vendor.sh: correction (s/scancfg/scan_config) +* d65e4fac1 git.sh: revert modification to for loop +* bc61c39ec vendor.sh: minor code cleanup +* 808458ced minor code cleanup in the build system +* 4ab99d546 git.sh: general code cleanup in fetch_submodule() +* cd1d84789 git.sh: reduced indentation on repo/file check +* 4f6dda136 git.sh: simplified repo/backup check +* 185d76f57 roms: merge mkserprog() into main() +* 893e88bc8 roms: don't insert timeout.cfg +* abfc799fd correction +* a0da8fdef roms: reduce indentation in build_grub_roms() +* 383433d4f roms: re-introduce accidentally disabled check +* 3610667e3 roms: remove build_payloads() and split it up +* 29a7123c0 roms: group some commands that are similar +* 2d6946775 roms: remove mt86bin variable +* 920e5ba2d roms: merge build_uboot_payload to build_payloads +* a96c4b59f roms: simplify payload_uboot y/n check +* 28682b1a4 roms: simplify the check for serprog srcdir +* b61dd4c25 roms: simplify the loop for building serprog roms +* 6df17860e roms: shorten variable serprog_boards_dir +* ea5b5b072 roms: simplified serprog image copy +* ea9bdfce4 roms: rename picosrc variable to rp2040src +* 1a4f97ffd roms: remove useless confirmation in mkserprogfw +* 1881d34db roms: merge serprog build into one function +* f7e28964a roms: remind the user about gkb files +* f928ac5c7 roms: rename x variable to it in for loop +* 58a451865 roms: don't use x_ to call cproms() +* bc853fbb8 roms build_uboot_roms(): move rom, don't copy +* 12b26f207 roms cproms(): allow other commands besides cp +* e67628c6a unify coreboot elfdir (DO_NOT_FLASH) +* 8b58c1eac roms: merge mkUbootRom() into build_uboot_roms() +* c3f0a109c roms: simplify mkSeabiosRom() +* c8944f1ca roms: simplify mkUbootRom() +* 92aa83a23 roms: simplify build_roms() +* d3e788645 roms: remove unnecessary check +* ef411c596 build: remove unused variables +* 6dc051558 roms: further clean up build_grub_roms() +* 0e9b36c58 roms: simplify timeout/scandisk insertion +* 3a7b3660f roms: simplify seagrub check in build_grub_roms +* 4b764d26f roms: simplify mkserprog() +* 167e7447a roms: simplify the serprog build functions +* 7bc9fcc34 script/roms: fix serprog build commands +* 0dfe3aed9 roms: simplified ubootelf check +* a9166898d roms: simplify grubonly check in configure_target +* 90017cdc5 roms: simplify seagrub check in configure_target +* 817004e15 roms: don't use x_ to call build_grub_roms +* 0812d5321 trees: simplify copy_elf() +* 331c4097f trees: remove unnecessary check in copy_elf +* 340eea0b1 grub: insert background in memdisk instead +* ed9c90e59 roms: unify all add-payload commands +* 26451775d roms: don't add grub keymaps at all +* af8296ce6 roms: merge handle_coreboot_target into main() +* d1c0c3464 roms: simplify target check (whether roms built) +* f626b25db roms: simplify main() again +* eb9a688ee roms: remove redundant check on grub_scan_disk +* a4328cb11 roms: remove dangerous runtime p/s/d options +* 167e1a0fb unified checks for variable initialisation +* 98724d701 lib.sh: remove the items() function +* baea03c67 roms: simplify main() + +``` + +This is roughly 300 changes since the last release. diff --git a/site/news/safety.md b/site/news/safety.md index 07b62ac..0dac613 100644 --- a/site/news/safety.md +++ b/site/news/safety.md @@ -19,8 +19,8 @@ Introduction implemented, and this page is still relevant for Libreboot 20231021. It applies to any system that requires vendor code to be inserted inside ROM images.** -(it also applies to Libreboot 20231101, 20231106, 20240126, 20240225, 20240504 -and 20240612) +(it also applies to Libreboot 20231101, 20231106, 20240126, 20240225, 20240504, +20240612 and 20241008) **UPDATE (16 August 2023): This also applies to the recently added Dell Precision T1650 mainboard.** From ede57eb22a427284710031ae59c23826fe89860b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 8 Oct 2024 23:39:03 +0100 Subject: [PATCH 092/399] update download page references Signed-off-by: Leah Rowe --- site/download.md | 8 ++++---- site/download.uk.md | 10 +++++----- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/site/download.md b/site/download.md index 673e3e1..b36b94a 100644 --- a/site/download.md +++ b/site/download.md @@ -31,7 +31,7 @@ LIBREBOOT](news/safety.md).** GPG signing key --------------- -**The latest release is Libreboot 20240612, under the `stable` directory.** +**The latest release is Libreboot 20241008, under the `testing` directory.** ### NEW KEY @@ -83,7 +83,7 @@ there is a Git repository that you can download from. Go here: HTTPS mirrors {#https} ------------- -**The latest release is Libreboot 20240612, under the `stable` directory.** +**The latest release is Libreboot 20241008, under the `testing` directory.** These mirrors are recommended, since they use TLS (https://) encryption. @@ -174,7 +174,7 @@ crontab. This page tells you how to use crontab: HTTP mirrors {#http} ------------ -**The latest release is Libreboot 20240612, under the `stable` directory.** +**The latest release is Libreboot 20241008, under the `testing` directory.** WARNING: these mirrors are non-HTTPS which means that they are unencrypted. Your traffic could be subject to interference by @@ -188,7 +188,7 @@ if using HTTPS. FTP mirrors {#ftp} ----------- -**The latest release is Libreboot 20240612, under the `stable` directory.** +**The latest release is Libreboot 20241008, under the `testing` directory.** WARNING: FTP is also unencrypted, like HTTP. The same risks are present. diff --git a/site/download.uk.md b/site/download.uk.md index 4f6ef8e..47cbaa4 100644 --- a/site/download.uk.md +++ b/site/download.uk.md @@ -31,7 +31,7 @@ LIBREBOOT](news/safety.md).** Код підпису GPG --------------- -**Останнім випуском є Libreboot 20240612, в директорії `stable`.** +**Останнім випуском є Libreboot 20241008, в директорії `testing`.** ### НОВИЙ КЛЮЧ @@ -50,7 +50,7 @@ will expire on 26 December 2028. Повний відбиток ключа: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856` This key is for Libreboot releases *after* the 20160907 release, and up -to the Libreboot 20240612 release. This key *expired* during December 2023, +to the Libreboot 20241008 release. This key *expired* during December 2023, so you should use the *newer* key (see above) for the releases after Libreboot 20240126. @@ -83,7 +83,7 @@ Libreboot 20240126. Дзеркала HTTPS {#https} ------------- -**Останнім випуском є Libreboot 20240612, в директорії `stable`.** +**Останнім випуском є Libreboot 20241008, в директорії `testing`.** Дані дзеркала є рекомендованими, оскільки використовують TLS (https://) шифрування. @@ -174,7 +174,7 @@ crontab. Ця сторінка розповідає вам, як викорис Дзеркала HTTP {#http} ------------ -**Останнім випуском є Libreboot 20240612, під директорією `stable`.** +**Останнім випуском є Libreboot 20241008, під директорією `testing`.** УВАГА: ці дзеркала є не-HTTPS, що означає, що вони незашифровані. Ваш трафік може бути об'єктом втручання @@ -188,7 +188,7 @@ crontab. Ця сторінка розповідає вам, як викорис Дзеркала FTP {#ftp} ----------- -**Останнім випуском є Libreboot 20240612, під директорією `stable`.** +**Останнім випуском є Libreboot 20241008, під директорією `testing`.** УВАГА: FTP є також незашифрованим, подібно HTTP. Ті ж самі ризики присутні. From 3be1e15f4a3f36e1c05b230678ecce2c73384711 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 8 Oct 2024 23:49:55 +0100 Subject: [PATCH 093/399] make the 7010 announcement a link Signed-off-by: Leah Rowe --- site/news/libreboot20241008.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/site/news/libreboot20241008.md b/site/news/libreboot20241008.md index 576c09c..249861b 100644 --- a/site/news/libreboot20241008.md +++ b/site/news/libreboot20241008.md @@ -62,8 +62,9 @@ The following boards have been added since the Libreboot 20240612 release: * Dell Latitude E6330 (courtesy of Nicholas Chin) * Dell Latitude E6230 (courtesy of Nicholas Chin. Seriously cool guy) * Dell Latitude E4300 (courtesy of Nicholas Chin) -* Dell OptiPlex 7010/9010 SFF (porting done by 3mdeb, and I added the config - for it to Libreboot, based on the Dell Precision T1650 config) +* [Dell OptiPlex 7010/9010 SFF](../docs/install/dell7010.md) (porting done + by 3mdeb, and I added the config for it to Libreboot, based on the Dell + Precision T1650 config) About the Dell Latitude ports ----------------------------- From 9e233dbc4a61970eeaf3b7601a00bdaf1f406cd1 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 8 Oct 2024 23:50:31 +0100 Subject: [PATCH 094/399] typo: notifications, not notificatios Signed-off-by: Leah Rowe --- site/news/libreboot20241008.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/news/libreboot20241008.md b/site/news/libreboot20241008.md index 249861b..439574d 100644 --- a/site/news/libreboot20241008.md +++ b/site/news/libreboot20241008.md @@ -88,7 +88,7 @@ installation page, linked above, which also references info from PCSX Redux. You can use this on a real PlayStation. Although the machine was originally meant for playing proprietary games, there are free/opensource SDKs available for it, such as [PSn00bSDK](https://github.com/Lameguy64/PSn00bSDK), and with certain -other modificatios, it basically becomes a very hackable classic 90s computer, +other modifications, it basically becomes a very hackable classic 90s computer, that also happens to play games. More info is on the Libreboot page about it, linked above. From 163876482fbe2d2a69b5945e666f502e332b598a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 8 Oct 2024 23:59:07 +0100 Subject: [PATCH 095/399] grammar Signed-off-by: Leah Rowe --- site/news/libreboot20241008.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/site/news/libreboot20241008.md b/site/news/libreboot20241008.md index 439574d..f3ae86a 100644 --- a/site/news/libreboot20241008.md +++ b/site/news/libreboot20241008.md @@ -132,7 +132,8 @@ and also an MT model, which are likely feasible to port, using deguard and basing upon this 3050micro port. SeaBIOS currently hangs, so you can only use the GRUb payload for now. Also, -boot times were considerably, so the *DRAM clear on boot* option has been +boot times were considerably slow with DRAM clear on boot, so the *DRAM clear +on boot* option has been disabled on this board. The TPM is also disabled, though you can enable it if you want to re-build. A lot more work will be done on this board, between now and the next stable release of Libreboot (today's release is a testing From d4203520d0b5eb6fecaee38d4f64373d3c7cd148 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 11 Oct 2024 17:21:59 +0100 Subject: [PATCH 096/399] update notes about dell 3050 micro Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index f7e6077..16c79ef 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -81,15 +81,6 @@ is using this patchset from the author, Mate Kukri: Issues, as per Libreboot's testing, are as follows: -* Although USB ports seem to work, the Gerrit page linked above says that the - config is incorrect; need to investigate. -* HDA Verb: Libreboot patches the board to support this, which fixes the - headphone jack among other things. -* VBT: Libreboot patches the board to support this, though it's largely - optional on Linux/BSD. -* ACPI-based shutdown seems to falter a lot; sometimes the board will not turn - off after shut down, so you have hold the button down. Also, the button does - not seem to signal the OS that a shutdown must occur. * PWM fan controls broken, so the system always run in a low-rpm state, even under stress conditions, which could lead to overheating under stress. @@ -100,8 +91,12 @@ red wire powers it, so the resistor on the red wire will slow the fan down, but leave it running faster than on idle. You can also cap the CPU speed however you wish, via the `intel_pstate` driver. +An i7-6700k has been tested, delidded (thermal grizzly conductonaut under +the ihs) and arctic mx-6 paste on top (between ihs/cooler). On stress tests, +the CPU got just above 60c with the above 10ohm mod. + If you're using a 10ohm resistor on the fan power, make sure it's at least a 2W -one. +one, since this is a very low-resistance fan (higher wattage). Note that HDMI audio *does* work, but you have to select it in your audio server e.g. pipewire. The `pavucontrol` utility in Linux (with pipewire) lets From 92057903870ebcf0da67422635c72938c1889a44 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 11 Oct 2024 23:33:01 +0100 Subject: [PATCH 097/399] notes about dell precision t1700 Signed-off-by: Leah Rowe --- site/docs/install/dell9020.md | 27 +++++++++++++++++++++++++++ site/docs/install/index.md | 3 ++- 2 files changed, 29 insertions(+), 1 deletion(-) diff --git a/site/docs/install/dell9020.md b/site/docs/install/dell9020.md index 50df552..5a1273e 100644 --- a/site/docs/install/dell9020.md +++ b/site/docs/install/dell9020.md @@ -69,6 +69,33 @@ source](../build/), or use a version newer than Libreboot 20240126** Official information about this machine can be found here: +ECC memory support +================== + +The 9020 MT/SFF do not have ECC memory support. However: + +Dell Precision T1700 +-------------------- + +The T1700 is a version of the same motherboard, but with ECC support. You +can flash the 9020 MT image on this board, and it will boot. + +Please note however that the native raminit (libre raminit) provided by +Libreboot does not yet support ECC. You *may* be able to use ECC modules, +but you won't actually have functioning ECC. + +ECC support currently requires `mrc.bin`, which is a blob for raminit. +Libreboot removed this some time ago, instead favouring only the libre raminit. +Patches are welcome, otherwise you can use an older revision of Libreboot +with `mrc.bin` if you need ECC; it's unknown whether both the Haswell and +Broadwell MRC (the latter works on 9020 MT) both support ECC, so you'll just +have to try either. Otherwise, you might simply compile your own custom +coreboot configuration for this setup. + +Libreboot's [binary blob reduction policy](../../news/policy.md) is very clear: +if a blob *can* be avoided, it must be avoided. Therefore, `mrc.bin` is avoided +since the libre raminit works pretty well these days (ECC notwithstanding). + Buy Libreboot preinstalled ====================== diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 72e9e57..d6a74b9 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -85,6 +85,7 @@ Desktops (AMD, Intel, x86) be safe to flash. - [Dell OptiPlex 3050 Micro](dell3050.md) - [Dell OptiPlex 7010/9010 SFF](dell7010.md) **(for MT, please use the T1650 image)** +- Dell Precision T1700 (use the same ROM as 9020 MT, but it won't have ECC support) - [Dell Precision T1650](t1650.md) **(the same ROM works on 7010/9010 MT variant)** - [Gigabyte GA-G41M-ES2L motherboard](ga-g41m-es2l.md) - [HP Elite 8200 SFF/MT](hp8200sff.md) (HP 6200 Pro Business probably works too) @@ -406,7 +407,7 @@ Refer to the [T1650 hardware page](t1650.md). External flashing required, or you can set the Service Mode jumper and flash internally (from vendor firmware, to Libreboot). -Dell OptiPlex 7020/9020/XE2 SFF/MT +Dell OptiPlex 7020/9020/XE2 SFF/MT / Precision T1700 ------------------------------------ Refer to the [7020/9020 hardware page](dell9020.md). Internal From de314093929f8f0ecf710579504f17a22406645a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 14 Oct 2024 16:12:52 +0100 Subject: [PATCH 098/399] dell3050: fix note about flash chip size (16MB) it said 12MB, but it's 16MB. also, it's only SOIC8, never SOIC16 (there is no footprint for SOIC16) Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index 16c79ef..7d5c059 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -24,7 +24,7 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** | **Architecture** | x86\_64 | | **Original boot firmware** | Dell UEFI firmware | | **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. | -| **Flash chip** | SOIC-16 and/or SOIC-8 12MiB (96Mbit) | +| **Flash chip** | SOIC-8 16MiB (128Mbit) | ``` From d362563e615872e38ae63718f1c8f399e39d604c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 25 Oct 2024 05:49:15 +0100 Subject: [PATCH 099/399] fix dell3050 compatibility notes thanks go to mkukri for pointing this out on irc Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index 7d5c059..b01d0ac 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -39,10 +39,10 @@ P*: Partially works with blobs | ***Features*** | | |---------------------------------------------------|----| -| **Internal flashing with original boot firmware** | W+ | +| **Internal flashing with original boot firmware** | W* | | **Display (if Intel GPU)** | W+ | | **Audio** | W+ | -| **RAM Init** | W+ | +| **RAM Init** | W* | | ***Payloads supported*** | | |----------------------------|-----------| From 640e8981e85335274778cc2f3ada7eb74fa869b0 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 27 Oct 2024 18:42:17 +0000 Subject: [PATCH 100/399] tasks page: add note about 3050micro hang workaround Signed-off-by: Leah Rowe --- site/tasks/index.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/site/tasks/index.md b/site/tasks/index.md index da05c48..383a767 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -1980,3 +1980,39 @@ Dell 3020 ========= another haswell. different to 9020, but could be added. + +Dell 3050 Micro century byte +============================ + +The `CONFIG_USE_LEGACY_8254_TIMER` +and `CONFIG_USE_PC_CMOS_ALTCENTURY` options must both be +enabled. Discovered in patch `d1743d1f64720801146b162c01568ca0023dfb00` +of lbmk; look at that revision and the next one after it, +revision `237fa1e3c18365794bf5bf525df99a460c821192`. + +As of that revision, SeaBIOS works normally, on Dell OptiPlex 3050 Micro. +It was hanging. Look at the patches about 10 revisions before +then, from when the 3050 was first added to lbmk. I made, at that time, +a bunch of changes to match upstream as closely as possible, +until fixing it in the above revisions. + +While SeaBIOS does indeed now work perfectly on this machine, I still +don't know why it was broken before. We have our smoking gun, but +now what needs to happen is for this bug to be re-introduced, using +the above information as reference. + +Then, follow SeaBIOS execution with serial debug, possibly inserting +print statements into parts of the SeaBIOS source code. This would be +desirable, so that SeaBIOS can be used with the above two options +turned off. + +When debugging the issue, I initially tried many things. The issue was +not to do with the SeaBIOS revision, though I also changed that to the +one used by coreboot at the time, instead of the slightly newer one that +lbmk was using; I even directly used coreboot's own SeaBIOS build, instead +of lbmk's. Weirdly, I did also try with the legacy 8254 timer enabled, but +without enabling the alt century byte option; when disabling the latter, +relative to the above commit, that's what broke SeaBIOS again. + +For now, Libreboot will leave these options enabled, but this is not +desirable. From f4c3c6a25cac105bf06a770bbdef8e9ce113331a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 2 Nov 2024 06:37:04 +0000 Subject: [PATCH 101/399] Dell OptiPlex 780 documentation Signed-off-by: Leah Rowe --- site/docs/install/dell780.md | 161 +++++++++++++++++++++++++++++++++++ site/docs/install/index.md | 1 + 2 files changed, 162 insertions(+) create mode 100644 site/docs/install/dell780.md diff --git a/site/docs/install/dell780.md b/site/docs/install/dell780.md new file mode 100644 index 0000000..1772b11 --- /dev/null +++ b/site/docs/install/dell780.md @@ -0,0 +1,161 @@ +--- +title: Dell OptiPlex 780 MT/USFF +x-toc-enable: true +... + +Libreboot is compatible with the Dell OptiPlex 780, of variants: MT and USFF. +SFF and DT may be supported in a future revision. These instructions are +identical both the MT and USFF variants. + +
+
+Dell OptiPlex 780 +
+ +| ***Specifications*** | | +|----------------------------|------------------------------------------------| +| **Manufacturer** | Dell | +| **Name** | OptiPlex 780 | +| **Variants** | OptiPlex 780 MT, OptiPlex 780 USFF | +| **Released** | 2009 | +| **Chipset** | Intel X4X | +| **CPU** | Core 2 Duo (e.g. E8400) | +| **Graphics** | Discrete graphics card, or Intel HD Graphics model | +| **Memory** | DDR3 DIMMs (max 16GB on MT 4x4GB, 8GB USFF 2x4GB) | +| **Architecture** | x86\_64 | +| **Original boot firmware** | Dell UEFI firmware | +| **Intel ME/AMD PSP** | Present. Entire ME firmware can be removed. | +| **Flash chip** | SOIC-16 and/or SOIC-8 8MiB (64Mbit) | + + +``` +W+: Works without blobs; +N: Doesn't work; +W*: Works with blobs; +U: Untested; +P+: Partially works; +P*: Partially works with blobs +?: UNKNOWN AT THIS TIME +``` + +| ***Features*** | | +|---------------------------------------------------|----| +| **Internal flashing with original boot firmware** | W+ | +| **Display (if Intel GPU)** | W+ | +| **Display (discrete GPU, SeaBIOS payload only)** | W* | +| **Audio** | W+ | +| **RAM Init** | W+ | + +| ***Payloads supported*** | | +|----------------------------|-----------| +| **GRUB (libgfxinit only)** | Works | +| **SeaBIOS** | Works | +| **SeaBIOS with GRUB** | Works | +
+Introduction +============ + +**Unavailable in Libreboot 20240612 or earlier. You must [compile from +source](../build/), or use a version newer than Libreboot 20240612.** + +Official information about the computer can be found here: + + +Build ROM image from source +--------------------------- + +The build target, when building from source, is thus: + + ./mk -b coreboot dell780mt_truncate_8mb + ./mk -b coreboot dell780mt_8mb + ./mk -b coreboot dell780usff_truncate_8mb + ./mk -b coreboot dell780usff_8mb + +The `_truncate` image is needed if you're flashing Libreboot internally from +the original Dell firmware. Otherwise, you only need the regular images that +lack `_truncate` in the file name. + +100% FREE +========= + +This mainboard does not rely on any binary blobs in the flash. It is using +the Intel X4X / ICH10 platform, same as on the already supported +Gigabyte GA-G41M-ES2L mainboard. + +Installation +============ + +Set MAC address +--------------- + +This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM +region. As such, release/build ROMs will contain the same MAC address. To +change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). + +WARNING about CPU/GPU compatibility +------------------------------- + +Coreboot has libre initialisation code for Intel graphics, but libre +initialisation code is not available for most graphics cards. This machine can +take any graphics card that fits in the PCI-E slot. When a graphics card is +used, SeaBIOS executes its VGA ROM which provides video init, instead of +coreboot's native Intel video init. GRUB piggybacks off of what SeaBIOS did, +so the GRUB payload will also work. + +Flash a ROM image (software) +----------------- + +**Always make sure to dump a copy of the current flash first. ALSO: [make +sure /dev/mem protection is disabled](devmem.md) for the flashing to work!** + +If you're already running Libreboot, and you don't have flash protection +turned on, [internal flashing](../install/) is possible. + +If you have factory firmware (Dell), you can short the service jumper. It's a +2-pin header located somewhere on the board (no photos available yet). + +With the service jumper set, all flash protections are disabled on the first +6MB of the flash; the latter 2MB part is restricted. Because we are using an +Intel Flash Descriptor on this board, the flash will be divided into these +parts: + +* Intel Flash Descriptor (basic machine configuration) +* Intel Gigabit Ethernet region (e.g. MAC address configuration) +* BIOS region (contains coreboot) + +Before you can use the flash commands, please note that the `_truncate` images +are 6MB in size, but they must be padded to 8MB. Normally a blank part of flash +should ideally be all 0xFF, but here we do: + + dd if=/dev/zero of=2mb.bin bs=2M count=1 + cat libreboot6mb.rom 2mb.bin > libreboot.rom + +If you're not using the truncate images, you can ignore the above steps. + +The Flash Descriptor can be thought of more like a *partition table* for the +flash, at least in our use-case scenario. The `_truncate` images configure +the flash such that only the first 6MB is used, with the BIOS region ending +at that limit; the upper 2MB is specified as the platform data region, in +Libreboot's configuration. To flash it, do this: + + ./flashprog -p internal --ifd -i fd -w libreboot.rom + ./flashprog -p internal --ifd -i gbe -w libreboot.rom + ./flashprog -p internal --ifd -i bios -w libreboot.rom + +It's very important to do this in the *exact* order as above, because +the `--ifd` option references the *flashed* IFD, not the one in your image, +so you must flash the IFD first. + +If you already have Libreboot running, and you don't have flash protection +enabled, you can omit `--ifd -i REGION` from the flashprog command, and flash +the full image; the one without `_truncate` in the file name uses all of the +flash, with the BIOS region ending at the 8MB limit, so the BIOS region is +therefore 2MB larger on those images. + +Flash a ROM image (hardware) +----------------- + +For general information, please refer to [25xx NOR flash +instructions](../install/spi.md) - that page refers to use of socketed flash. + +No photos yet available. diff --git a/site/docs/install/index.md b/site/docs/install/index.md index d6a74b9..20363f7 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -83,6 +83,7 @@ Desktops (AMD, Intel, x86) - Dell OptiPlex 7010 **MT** (known to work, using the T1650 ROM, but more research is needed) - 9010 also known to work. No GPIO changes, so it should be safe to flash. +- [Dell OptiPlex 780 variants e.g. MT, USFF](dell780.md) - [Dell OptiPlex 3050 Micro](dell3050.md) - [Dell OptiPlex 7010/9010 SFF](dell7010.md) **(for MT, please use the T1650 image)** - Dell Precision T1700 (use the same ROM as 9020 MT, but it won't have ECC support) From 3616f9ca86117291510c379904cbccc9805534bf Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 17 Nov 2024 23:35:58 +0000 Subject: [PATCH 102/399] fix typo in hp 820 elitebook flashing info it's -i fd, not -i ifd Signed-off-by: Leah Rowe --- site/docs/install/hp820g2.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/hp820g2.md b/site/docs/install/hp820g2.md index 263acc0..966bca9 100644 --- a/site/docs/install/hp820g2.md +++ b/site/docs/install/hp820g2.md @@ -137,7 +137,7 @@ Flash it like this, instead: flashprog -p PROGRAMMER --ifd -i gbe -w libreboot16.rom --noverify-all flashprog -p PROGRAMMER --ifd -i bios -w libreboot16.rom --noverify-all flashprog -p PROGRAMMER --ifd -i me -w libreboot16.rom --noverify-all -flashprog -p PROGRAMMER --ifd -i ifd -w libreboot16.rom --noverify-all +flashprog -p PROGRAMMER --ifd -i fd -w libreboot16.rom --noverify-all ``` Replace `PROGRAMMER` according to whichever flasher you're using. You could From 21e897ed5d8fff380cec7911b3c7c7a85c8fac54 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 27 Nov 2024 14:59:57 +0000 Subject: [PATCH 103/399] Tweak docs to not assert that W520/T520 are the same I recently added W520 as a separate board, because it's actually wired a bit differently to the T520. Signed-off-by: Leah Rowe --- site/docs/install/index.md | 5 ++++- site/news/libreboot20240225.md | 2 +- site/news/libreboot20240504.md | 2 +- 3 files changed, 6 insertions(+), 3 deletions(-) diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 20363f7..7bc2e9d 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -121,7 +121,10 @@ Laptops (Intel, x86) - Lenovo Thinkpad T420 / T420S - Lenovo ThinkPad T430 (**but not the T430S**) - [Lenovo ThinkPad T500 / W500](t500.md) -- Lenovo ThinkPad T520 / W520 / T530 / W530 +- Lenovo ThinkPad T520 +- Lenovo ThinkPad T530 +- Lenovo ThinkPad W520 +- Lenovo ThinkPad W530 - Lenovo ThinkPad T60, X60, X60S, X60 Tablet (with Intel GPU) - [Lenovo ThinkPad X200 / X200S / X200 Tablet](x200.md) - Lenovo Thinkpad X220 / X200 Tablet diff --git a/site/news/libreboot20240225.md b/site/news/libreboot20240225.md index 2e1371d..b0d8ca4 100644 --- a/site/news/libreboot20240225.md +++ b/site/news/libreboot20240225.md @@ -85,7 +85,7 @@ This release supports the following hardware: - [Lenovo ThinkPad T420S](../docs/install/ivy_has_common.md) (no install docs yet) - [Lenovo ThinkPad T430](../docs/install/ivy_has_common.md) (no install docs yet) - [Lenovo ThinkPad T500](../docs/install/t500.md) -- [Lenovo ThinkPad T520 / W520](../docs/install/ivy_has_common.md) (no install guide yet) +- [Lenovo ThinkPad T520](../docs/install/ivy_has_common.md) (no install guide yet) - [Lenovo ThinkPad T530 / W530](../docs/install/ivy_has_common.md) (no install - Lenovo ThinkPad T60 (with Intel GPU) - [Lenovo ThinkPad W500](../docs/install/t500.md) diff --git a/site/news/libreboot20240504.md b/site/news/libreboot20240504.md index 98df1e7..d477184 100644 --- a/site/news/libreboot20240504.md +++ b/site/news/libreboot20240504.md @@ -110,7 +110,7 @@ This release supports the following hardware: - [Lenovo ThinkPad T420S](../docs/install/ivy_has_common.md) (no install docs yet) - [Lenovo ThinkPad T430](../docs/install/ivy_has_common.md) (no install docs yet) - [Lenovo ThinkPad T500](../docs/install/t500.md) -- [Lenovo ThinkPad T520 / W520](../docs/install/ivy_has_common.md) (no install guide yet) +- [Lenovo ThinkPad T520](../docs/install/ivy_has_common.md) (no install guide yet) - [Lenovo ThinkPad T530 / W530](../docs/install/ivy_has_common.md) (no install - Lenovo ThinkPad T60 (with Intel GPU) - [Lenovo ThinkPad W500](../docs/install/t500.md) From 5896b5c167325f75cb15977bf949790dfd4a451f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 27 Nov 2024 20:58:51 +0000 Subject: [PATCH 104/399] remove mentions of thinkpad w530/w520 turns out these have dgpu only. i haven't added support yet for downloading their vgaroms Signed-off-by: Leah Rowe --- site/docs/install/index.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 7bc2e9d..95784cb 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -123,8 +123,6 @@ Laptops (Intel, x86) - [Lenovo ThinkPad T500 / W500](t500.md) - Lenovo ThinkPad T520 - Lenovo ThinkPad T530 -- Lenovo ThinkPad W520 -- Lenovo ThinkPad W530 - Lenovo ThinkPad T60, X60, X60S, X60 Tablet (with Intel GPU) - [Lenovo ThinkPad X200 / X200S / X200 Tablet](x200.md) - Lenovo Thinkpad X220 / X200 Tablet From dffa2df965688d05b38bf69d1ec9ac0fbe4a22d5 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 29 Nov 2024 08:00:13 +0000 Subject: [PATCH 105/399] examples Signed-off-by: Leah Rowe --- site/news/policy.md | 73 +++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 73 insertions(+) diff --git a/site/news/policy.md b/site/news/policy.md index f5d5026..c79b962 100644 --- a/site/news/policy.md +++ b/site/news/policy.md @@ -133,6 +133,79 @@ In other words, do not lecture the user. Just try to help them with their problem! The goal of the libreboot project is simply to make coreboot more accessible for otherwise non-technical users. +Examples of Libreboot policy in action +====================================== + +More information about this is also available on +the [freedom status](freedom-status.md) page. + +Context is everything, so to make the above picture more clear, here are a few +examples of how this very policy is implemented in Libreboot: + +* On many laptops, it is possible to have both Intel graphics and a dedicated + graphics card enabled; more about Intel graphics is covered below. We could + provide the VGA ROM for those extra chips, e.g. Nvidia graphics chips, but + we don't. We configure the machines in such a way where the Intel graphics + is used, exclusively, so the dedicated GPU may aswell be turned off, and + it *is* turned off in such circumstances. The Intel graphics provide good + enough performance and reliable operation for most people, and native + initialisation code is available from coreboot to make use of the Intel GPU + at boot time. +* Newer Intel platforms have Intel ME, which is a coprocessor inside the + machine that handles many functions including certain power management, and + it can provides useful remote management features with Intel AMT for example. + This is a giant 5MB+ blob in the flash, and the ME has full access to your + RAM and other peripherals; more is documented about this in the Libreboot + FAQ. On older ME4-based platforms such as Intel GM45 platforms, e.g. + ThinkPad X200/T400, we remove the ME firmware entirely from the flash, leaving + the Intel ME in a permanent reset loop. On Intel Sandybridge and up, we + include ME firmware when building, or provide a script to insert it via + vendor download on release images, but Libreboot's build system automatically + runs the [me cleaner](https://github.com/corna/me_cleaner) software, which + removes most of the features from the ME, including its kernel and networking + stack, leaving only a rump (dare we say, ROMP) of initialisation code in + the ME; essentially, the configuration is equivalent to running coreboot + without a payload, where it does nothing other than initialise itself, because + that is all the ME does in this configuration, initialise itself but not + actually run anything. ME Cleaner is required, instead of full removal, + because the machines don't boot reliably without at least the BUP/ROMP + modules present in flash. +* On Intel Haswell platform (Intel 4th gen), a binary blob is available for + memory controller initialisation, called the Intel *MRC* or System Agent. We + previously included this in Libreboot; nowadays, we have free initialisation + code written by Angel Pons. The libre code, called NRI (Native RAM + Initialisation) still has a few bugs, such as lack of ECC support, and the + MRC also does other things such as initialise certain peripherals. The + Haswell machines can be configured in EHCI or XHCI mode for USB ports at + startup, and the latter means that you need xHCI support in whatever you're + using such as Linux, but also payloads such as U-Boot or GRUB. SeaBIOS and + GRUB have stable xHCI support (we have to patch GRUB to have it because + otherwise upstream doesn't have it). U-Boot's xHCI support is quite buggy, + at least as of November 2024; when tested, it looks like the EHCI mode + doesn't work on NRI, only MRC. Now, to get more stable U-Boot support when + using USB devices, we could use the MRC and set the machine in EHCI mode + at startup; an option exists for it in coreboot. Ditto, we could have ECC + support (useful on the Dell Precision T1700, which Libreboot supports!) - it + was decided that these issues are quite minor so the free initialisation code + is used, and we no longer provide the MRC. +* Libreboot provides native graphics initialisation on most Intel hardware, + provided by coreboot. This replaces the Intel VGA ROM; called libgfxinit, + coreboot's native code is far from perfect because many legacy VGA functions + simply do not work so it can be a challenge to get old, legacy operating + systems working, even if they had full driver support on a given machine + when running the vendor BIOS. Libgfxinit otherwise provides a sensible + framebuffer implementation from coreboot, which Linux and BSD systems know + how to use, and you can use KMS on these systems instead of calls to VGA + in the BIOS, to mitigate this issue. It was decided a long time ago that, + when available, the native initialisation should be used, when it is stable + and Linux/BSD systems work reliably. There is only one exception: the + ThinkPad T480 currently doesn't work with libgfxinit in Libreboot, at least + as of November 2024, so the Intel VGA ROM is used instead. +* On RK3399-based Chromebooks, it is possible to load a HDCP blob, which could + be convenient for easy access to DRM-based media. We simply do not use this + blob on any machines, because it is completeley unnecessary for everyday + operating of a free operating system. + FREEDOM CATALOG =============== From e6e5b19fde6f17ce48070c21da47e6e1ad61d7be Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 29 Nov 2024 08:07:11 +0000 Subject: [PATCH 106/399] link correction Signed-off-by: Leah Rowe --- site/news/policy.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/news/policy.md b/site/news/policy.md index c79b962..2777c0f 100644 --- a/site/news/policy.md +++ b/site/news/policy.md @@ -137,7 +137,7 @@ Examples of Libreboot policy in action ====================================== More information about this is also available on -the [freedom status](freedom-status.md) page. +the [freedom status](../freedom-status.md) page. Context is everything, so to make the above picture more clear, here are a few examples of how this very policy is implemented in Libreboot: From 1894f05981cde840f47cbf4f3d17961409181a85 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 17:30:33 +0000 Subject: [PATCH 107/399] ThinkPad T480 information Signed-off-by: Leah Rowe --- site/docs/install/index.md | 8 + site/docs/install/t480.md | 290 +++++++++++++++++++++++++++++++++++++ 2 files changed, 298 insertions(+) create mode 100644 site/docs/install/t480.md diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 95784cb..6c141c3 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -97,6 +97,7 @@ Desktops (AMD, Intel, x86) Laptops (Intel, x86) -------------------- +- [Lenovo ThinkPad T480 and ThinkPad T480s](t480.md) - **Lenovo ThinkPad T440p - Also [available to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-t440p/)** - **Lenovo ThinkPad W541 - Also [available to @@ -565,6 +566,13 @@ bootblock, set bucts back to zero: The second flash can be done by simply following the general internal flashing guide further down on this page. +ThinkPad T480/T480S (vendor BIOS) +---------------------- + +See: + +* [ThinkPad T480/T480S](t480.md) + Thinkpad T440p/W541 (vendor BIOS) --------------------- diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md new file mode 100644 index 0000000..da33e57 --- /dev/null +++ b/site/docs/install/t480.md @@ -0,0 +1,290 @@ +--- +title: Lenovo ThinkPad T480/T480S information +x-toc-enable: true +... + +Libreboot supports both the T480 and T480S variants. It is available in +the [Libreboot 20241205](../../news/libreboot20240512.md) release or later. + +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), +OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** + +
+
+ThinkPad T480 +
+ +| ***Specifications*** | | +|----------------------------|------------------------------------------------| +| **Manufacturer** | Lenovo | +| **Name** | ThinkPad T480 | +| **Variants** | ThinkPad T480, ThinkPad T480S | +| **Released** | 2018 | +| **Chipset** | Intel Kaby Lake Refresh | +| **CPU** | Intel Kaby Lake Refresh | +| **Graphics** | Intel or Intel+Nvidia | +| **Memory** | DDR4 DIMMs; max 40GB (T480S), 64GB(T480) | +| **Architecture** | x86\_64 | +| **Original boot firmware** | Lenovo UEFI firmware | +| **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. | +| **Intel Boot Guard** | Pwned. Disabled using the deguard utility. | +| **Flash chip** | SOIC-8 16MB/128Mbit system firmware | + + +``` +W+: Works without blobs; +N: Doesn't work; +W*: Works with blobs; +U: Untested; +P+: Partially works; +P*: Partially works with blobs +?: UNKNOWN AT THIS TIME +``` + +| ***Features*** | | +|---------------------------------------------------|----| +| **Internal flashing with original boot firmware** | N | +| **Display (if Intel GPU)** | W+ | +| **Display (discrete CPU, SeaBIOS payload only)** | N | +| **Audio** | W+ | +| **RAM Init** | W* | + +| ***Payloads supported*** | | +|----------------------------|-----------| +| **GRUB (libgfxinit only)** | Works | +| **SeaBIOS** | Works | +| **SeaBIOS with GRUB** | Works | +
+ +Regarding memory: T480S (S model) has 8GB onboard RAM, and an available DIMM +slot on which an additional 32GB SODIMM can be installed. The regular T480 +has two DIMM slots, allowing 2x32GB DDR4 SODIMMs. + +Introduction +============ + +**Unavailable in Libreboot 20241008 or earlier. You must [compile from +source](../build/), or alternatively an image from Libreboot 20241205 or higher. + +Official information about the T480 can be found here:\ + + +...and information about the T480S can be found here:\ + + +Build ROM image from source +--------------------------- + +The build target, when building from source, is thus: + + ./mk -b coreboot t480_fsp_16mb + ./mk -b coreboot t480s_fsp_16mb + +**NOTE: The T480 and T480 may be similar, but they do have several critical +differences in their wiring, so you MUST flash the correct image. Please +choose one of the above build targets accordingly.** + +Installation +============ + +Insert binary files +------------------- + +If you're using a release ROM, please ensure that you've inserted extra firmware +required refer to the [guide](../install/ivy_has_common.md) for that. **(failure +to adhere to this advice will result in a BRICKED machine)** + +Libreboot's build system automatically downloads and processes these files if +you build Libreboot from source, but the same logic that it uses must be re-run +if you're using a release image. This is to bypass certain restrictions on +direct distribution, for files such as the Intel Management Engine firmware. + +Absolutely unsigned Intel ME! +----------------------------- + +Libreboot already disables the Intel ME by default, using `me_cleaner`, but +the T480/T480 specifically has an additional quirk: + +One of the benefits of [deguard](deguard.md) for Intel MEv11 is that it sets +the ME in such a state where you can run unsigned code in there. This is how +the Intel Boot Guard was disabled, because it is the ME that enforces such +restrictions; more information about deguard is available on a dedicated page. + +The deguard utility could also be used to enable the red-unlock hack, which +would permit unsigned execution of new CPU microcode, though much more +research is needed. Because of these two facts, this makes the T480/T480S the +most freedom-feasible of all relatively modern x86 laptops. + +With deguard, you have complete control of the flash. This is unprecedented on +recent Intel systems in Libreboot, so it's certainly a very interesting port! + +Set MAC address +--------------- + +This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM +region. As such, release/build ROMs will contain the same MAC address. To +change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). + +**NOTE: If changing the MAC address, please give `ifdtool` the following +argument when using it: `--platform sklkbl`** - otherwise, ifdtool will +handle the IFD incorrectly! + +WARNING about GPU compatibility +------------------------------- + +The Nvidia GPUs were tested, on models that have them. It is completely +dysfunctional and currently disabled in Libreboot. On models that have Nvidia, +the Intel graphics is still available so Libreboot uses Intel graphics +exclusively. + +The Intel GPU is fully supported with native source code (libgfxinit) in +coreboot, which Libreboot uses for initialisation. + +Use of Intel graphics is recommended, because it has much better (and libre) +driver support in Linux, and free initialisation code in coreboot, whereas +Nvidia is mostly all binary blobs (unless perhaps you use the nouveau driver in +Linux). + +Thunderbolt issue (READ THIS BEFORE FLASHING) +------------------ + +The thunderbolt firmware on launch units had a bug where certain debug +info is written on certain events, such as plugging in a charger to the USB-C +connector. This logging is stored in the Thunderbolt firmware's own SPI flash, +which is separate from the main SPI flash containing the system firmware +e.g. coreboot. + +If that flash gets full, thunderbolt (on factory firmware) stops working and +fast charging stops working. It can be prevented by updating the Thunderbolt +firmware. You can do this from Lenovo's firmware, using these instructions: + + + +If you're already affected by the bug, you can restore it to a working state +by flashing the Thunderbolt firmware externally. For example this is where its +NOR flash is on a T480: + +ThinkPad T480 NOR flash (thunderbolt firmware) + +This page shows how to do that: + + + +You unbrick the Thunderbolt controller by pulling the firmware from Lenovo's +update, from Lenovo's update utility. Once extracted, you then pad it properly +so that it can be flashed manually, using a normal SPI flasher (the same one +that you would use to flash Libreboot). + +Use the [25XX NOR flashing guide](spi.md) if you need to flash this chip. It's +the same guide that you will use for the main system flash, which is a separate +flash IC. + +AGAIN: This is not the Libreboot flash IC. This is separate to the system flash. +Read on to know how to reprogram the main system flash! + +Flash a ROM image (software) +----------------- + +**MAKE SURE** to update the Lenovo UEFI firmware before installing Libreboot. +You must also make a dump of the NOR flash, before updating Lenovo's firmware, +and once again before flashing Libreboot, being sure you have good dumps. + +If you're already running Libreboot, and you don't have flash protection +turned on, [internal flashing](../install/) is possible. + +Find videos online of how to disassemble this, and/or find Lenovo's own +service manual online. Otherwise, observe: + +ThinkPad T480 underside chassis + +Remove all screws, and you can gently pry off the lower chassis and remove, +which then allows you to see the inner mainboard: + +ThinkPad T480 PCB + +**WARNING: PLEASE MAKE SURE to remove the battery before flashing. The T480 +and T480S can both contain INTERNAL batteries, and the T480 has an additional +external battery. Remove the internal battery via the connector, like so (T480):** + +ThinkPad T480 internal battery + +On the T480S (S model) the internal battery is much larger, and the connector +on it is built into the battery, so it is necessary to carefully remove the +entire battery; on regular T480 (non-S model) the internal battery can be +isolated via the connector as depicted above. + +This photo shows the flash: + +ThinkPad T480 NOR flash (system firmware) + +There is another flash, for the Thunderbolt firmware, which you are to briefly +ignore; we'll cover it later: + +ThinkPad T480 NOR flash (thunderbolt firmware) + +To be clear: the system flash (16MB) is what you put Libreboot on. The +Thunderbolt firmware flash is much smaller, so you'll know because flashprog +will complain about wrong flash size if you're trying to flash the wrong one. + +On the T480S (S model), the flashes are in slightly different places but in +both machines, the system flash (for Libreboot) is toward the centre, near +the memory. + +Backlight controls +------------------- + +The `xbacklight` (or equivalent in Wayland) can be used to manually control +the backlight; the buttons on the keyboard do not currently work, at least as +of 5 December 2024. + +You could map the appropriate xbacklight command in Linux to a hotkey combo, +depending on your window manager or desktop environment. + +UART +---- + +A serial console is possible via the line-out (headphone jack). Not yet tested +on the T480S (S model), nor implemented, but it is working on the regular +T480 (non-S model). + +**TODO: show photo and wiring diagram here.** + +Use baud rate 115200 in your favourite serial terminal client, e.g. GNU Screen. + +Next to the headphone jack on the T480, you will find pads for two 0ohm jumpers, +normally unpopulated, but you can bridge each jumper yourself using a 0ohm 0201 +jumper; alternatively, simply strip a bit a wire (30awg solid core) and carefully +solder the wire across each of the pad jumpers, then carefully using a pair +of side cutters to cut off the excess wire, being careful not to rip the pads! + +If you do this, please make sure to have the latest EC firmware as of 5 +December 2024 (do not use older than what was latest on this day, and don't +use newer versions), because the code for this in coreboot targets a specific +area of code within the EC firmware. + +You can then wire a 3.5mm stereo plug. On the other end you will wire your +TX/RX lines as you wish, to a suitable UART adapter; any 3.3v-rated TTL +adapter should work. The Raspberry Pi Pico can be used for this, which is handy +because that can also be used as a serprog-based NOR flasher! + +The T480S (S model) schematics is a bit different and the signals are +properly muxed. Note that this is not to be confused with `spkmodem`, which +has not been tested on these boards (but could theoretically be possible too). + +Idea for 2nd NVMe mod +---------------------- + +Interestingly, on boards without the Nvidia graphics, the solder pads for all +the componentry (including the GPU) is still present, so you could theoretically +design a QSB that solders to the right pads, and use it to wire a 2nd NVMe SSD; +the port is still enabled in Libreboot even if nothing is plugged into it, so it +should just work. (this doesn't actually exist yet, but it is electrically +possible, quite feasible to design/manufacture and already supported in the +Libreboot firmware in principle, since than PCI-E lane is enabled in the devicetree) + +Mate Kukri came up with this idea. It's a great idea, so it's written here. +This mod is possible on both the T480 and T480S, though on T480S there would +be less clearance; using a smaller internal battery and having a makeshift +NVMe caddy in the remaining space would be how to go about it there. On the +regular T480, the existing caddy area could easily fit two NVMe drives. + From 0e5f22ed49dc7267730be21002e44f5ffb634d4b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 17:44:12 +0000 Subject: [PATCH 108/399] add missing credit i've been winging in on 2 hours of sleep per night to get the Libreboot 20241205 release ready in time. Expect typos. Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index da33e57..5295581 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -60,6 +60,11 @@ Regarding memory: T480S (S model) has 8GB onboard RAM, and an available DIMM slot on which an additional 32GB SODIMM can be installed. The regular T480 has two DIMM slots, allowing 2x32GB DDR4 SODIMMs. +Thanks go to *Mate Kukri* who implemented both of these excellent coreboot +ports; he is also the author of the deguard utility, which is used to disable +the Intel Boot Guard on these machines; disabling the Boot Guard was necessary +in order to get coreboot working! + Introduction ============ From 398b561be6444d329caf85ba978937203d88594a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 17:45:44 +0000 Subject: [PATCH 109/399] remove link for now release page not ready yet Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 5295581..b951371 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -4,7 +4,7 @@ x-toc-enable: true ... Libreboot supports both the T480 and T480S variants. It is available in -the [Libreboot 20241205](../../news/libreboot20240512.md) release or later. +the *Libreboot 20241205* release or later. **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** From b8c5061c4058d7dda7074be2208b62b3c53c8adb Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 17:49:42 +0000 Subject: [PATCH 110/399] "software" Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index b951371..ad28405 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -187,7 +187,7 @@ flash IC. AGAIN: This is not the Libreboot flash IC. This is separate to the system flash. Read on to know how to reprogram the main system flash! -Flash a ROM image (software) +Flash a ROM image ----------------- **MAKE SURE** to update the Lenovo UEFI firmware before installing Libreboot. From 4252ddd1cd7665e4472b59d37871b015840342a6 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 19:02:46 +0000 Subject: [PATCH 111/399] deguard page more of a philosophical rant but eh Signed-off-by: Leah Rowe --- site/docs/install/deguard.md | 78 ++++++++++++++++++++++++++++++++++++ 1 file changed, 78 insertions(+) create mode 100644 site/docs/install/deguard.md diff --git a/site/docs/install/deguard.md b/site/docs/install/deguard.md new file mode 100644 index 0000000..95ced55 --- /dev/null +++ b/site/docs/install/deguard.md @@ -0,0 +1,78 @@ +--- +title: Disabling Intel Boot Guard on MEv11 +x-toc-enable: true +... + +This covers Intel Skylake, Kaby Lake and Kaby Lake Refresh / Coffeelake +machines; note that Coffeelake includes KabyLake Refresh and may have MEv12. +This page concerns only those platforms that have Intel MEv11, not MEv12. The +facts on this page are applicable to both *mobile* and *desktop* platforms. + +The Intel Boot Guard is a security mechanism implemented by intel, but not all +vendors enable it. If enabled, the bootblock in the flash is protected at boot +time by cryptographic signature verification; this means only the vendor can +update the flash. + +On systems with MEv11, a bug exists in older versions (of MEv11) that allows +for unsigned code execution, at a very early stage in the boot process, to the +point that almost all of the ME firmware in flash can be fully replaced. The +ME is also what implements Boot Guard, and the hack is possible *before* Boot +Guard is enforced, allowing for it to be disabled. + +See: [CVE-2017-5705](https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00086.html) + +Mate Kukri, who authored the ThinkPad T480/T480 and OptiPlex 3050 Micro ports, +wrote a tool called *deguard*, which Libreboot uses on these boards. This tool +reconfigures the ME, exploiting it so as to disable the Boot Guard. + +This is done by externally flashing an older version. Libreboot's build system +automatically downloads this older version, runs `me_cleaner` on it, and applies +the deguard hack; this includes machine-specific ME configuration, which is +added per machine by extracting it from a dump of the original flash. The +resulting configuration (for the MFS partition in the ME) is then inserted into +the generic ME image. + +Note that the deguard utility can *also* be used on MEv11 setups that *don't* +have Boot Guard, if you simply want to auto-download and neuter a generic ME +image, and then provide machine configuration. It is essentially doing the same +thing that Intel's own *FITC* utility does (Intel Flash Image Tool), which is +normally only available to vendors; the *deguard* utility written by Mate Kukri +is available under a free software license, and included by default in Libreboot +releases. It can be used for *any* MEv11-based system. + +To download deguard in lbmk (Libreboot's build system), do this: + + ./mk -f deguard + +Then go in `src/deguard/` and the `README.md` file in there tells you more +information about how it works, and how to use it. You do not need to run +this tool yourself, unless you're adding a new board, because Libreboot is +programmed to use it automatically, during the build process (or during +insertion of vendor files after the fact, on release images). + +With deguard, the machine is operating in a state as though the Boot Guard keys +were never fused, even if they were. [Previous work](https://trmm.net/TOCTOU/) +has been done by others, related to the Boot Guard, but nothing quite so +thorough and easy to use as deguard existed previously! + +Mate Kukri was able to figure this out and implement deguard, using existing +work done by PT Research and Youness El Alaoui, exploiting the Intel SA 00086 +bug which you can read more about here: + + + + + +Note that *Intel* refers to this as a means of a so-called *attacker* running +so-called *malicious* code; while this may also be possible in the strictest +sense, flash write protection is possible on these machines, which you can +read about on the [GRUB hardening](../linux/grub_hardening.md) page. Intel made +the Boot Guard without giving users control of it, so people have worked for +years to try to hack around it, as a matter of user freedom. So remember: when +Intel is talking about security, they mean *their* security, not yours. To them, +you are simply flashing malicious code. But they are the ones with malice. + +Mate Kukri and others who work on such hacks are heroes, and they have done a +great service to the Libreboot project. + +Many more machines are now possible to port to coreboot, thanks to this hack. From 7726ba1d25ebb88296c0ff3eabd4cd241db7a096 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 19:08:22 +0000 Subject: [PATCH 112/399] add a hyperlink Signed-off-by: Leah Rowe --- site/docs/install/deguard.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/site/docs/install/deguard.md b/site/docs/install/deguard.md index 95ced55..9a78966 100644 --- a/site/docs/install/deguard.md +++ b/site/docs/install/deguard.md @@ -25,6 +25,16 @@ Mate Kukri, who authored the ThinkPad T480/T480 and OptiPlex 3050 Micro ports, wrote a tool called *deguard*, which Libreboot uses on these boards. This tool reconfigures the ME, exploiting it so as to disable the Boot Guard. +You can find it hosted by the coreboot project: + + (git repository) + +and Libreboot provides a mirror of this repository: + + + +More information is available there. + This is done by externally flashing an older version. Libreboot's build system automatically downloads this older version, runs `me_cleaner` on it, and applies the deguard hack; this includes machine-specific ME configuration, which is From 4535cfc7ada38790cadedb10e2e750ac7190b053 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 19:30:29 +0000 Subject: [PATCH 113/399] very based hyperlink Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index ad28405..72d7433 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -27,7 +27,7 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** | **Architecture** | x86\_64 | | **Original boot firmware** | Lenovo UEFI firmware | | **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. | -| **Intel Boot Guard** | Pwned. Disabled using the deguard utility. | +| **Intel Boot Guard** | [Pwned](deguard.md). Disabled using the deguard utility. | | **Flash chip** | SOIC-8 16MB/128Mbit system firmware | From 749464989fdf9433c55f3ed65e7ce33ce1d98f0a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 20:34:38 +0000 Subject: [PATCH 114/399] add page about x86 u-boot Signed-off-by: Leah Rowe --- site/docs/uboot/index.md | 10 ++- site/docs/uboot/uboot-x86.md | 159 +++++++++++++++++++++++++++++++++++ 2 files changed, 166 insertions(+), 3 deletions(-) create mode 100644 site/docs/uboot/uboot-x86.md diff --git a/site/docs/uboot/index.md b/site/docs/uboot/index.md index 2aea8a4..ff8f340 100644 --- a/site/docs/uboot/index.md +++ b/site/docs/uboot/index.md @@ -1,10 +1,14 @@ --- -title: U-Boot payload +title: U-Boot payload (x86 and ARM) x-toc-enable: true ... +**NOTE: This documentation refers only to ARM64. For AMD64/i386 (Intel/AMD) +U-Boot setups, please read [uboot-x86.md](uboot-x86.md).** + Libreboot has experimental support for using U-Boot as a coreboot -payload since the [20221214](../../news/libreboot20221214.md) release. +payload since the [20221214](../../news/libreboot20221214.md) release, on ARM64 +systems, and on x86 since late 2024. U-Boot integration in Libreboot is currently at a proof-of-concept stage, with most boards completely untested and most likely not working. @@ -17,7 +21,7 @@ As of 14 December 2022, building of U-Boot images has been tested on Debian. Make sure you have the latest `lbmk` from the Git repository, and the build dependencies are installed like so, from `lbmk/` as root: - ./build dependencies debian + ./mk dependencies debian This installs everything needed for `./build roms`, and part of the build process makes use of coreboot's own cross-compile toolchain. diff --git a/site/docs/uboot/uboot-x86.md b/site/docs/uboot/uboot-x86.md new file mode 100644 index 0000000..53bd8ed --- /dev/null +++ b/site/docs/uboot/uboot-x86.md @@ -0,0 +1,159 @@ +--- +title: U-Boot payload (x86 specific) +x-toc-enable: true +... + +Introduction +============ + +U-Boot is available as a coreboot payload, in Libreboot 20241205 and later, +on x86 boards; on ARM it has been available since late 2022 Libreboot releases. + +Please read , especially the full U-Boot documentation +available there. + +**NOTE: This documentation refers only to x86. For ARM, please refer back to +the [main U-Boot page](index.md).** + +More documentation about this will be written at a later date, but just before +the Libreboot 20241205 release in December 2024, U-Boot support was added as +a payload on x86 machines, both 32- and 64-bit. This is using the excellent work +done by Simon Glass and others, on making U-Boot run as a generic x86 coreboot +payload. It has several boot methods but the most interesting (in an x86 +context) is UEFI. U-Boot provides a very sensible UEFI implementation that can +reliably boot many Linux and BSD systems. + +Availability +------------ + +Do this in lbmk.git (Libreboot's build system) to check whether your board has +U-Boot enabled: + + git grep payload_uboot_amd64 + git grep payload_uboot_i386 + +In `target.cfg` files for each coreboot board, you will find this option if +it's enabled. You also need either `u-boot/i386coreboot` +or `u-boot/amd64coreboot` in the `build_depend` variable for a given board, for +it to automatically compile at build time. + +Not every board has it yet. U-Boot is still experimental on x86. Libreboot has +made several modifications to the default *bootflow* menu, used for selecting +an EFI application at boot (e.g. installed GRUB bootloader for e.g. Debian). +For example, upstream didn't implement an auto-boot timeout for the first +selected boot item, so this was implemented. Libreboot also themed it to look +more like an official Libreboot bootloader. + +Here is an example of what it looks like on the boot menu: + + + +Boot Linux/BSD installer (USB) +--------------------------- + +Just stick your formatted USB stick in. U-Boot should detect it. Sometimes some +USB flash drives are broken, because many of them violate specifications and +U-Boot doesn't properly hack around that like Linux does (buggy USB mass storage +implementation) - also, xhci suppport is still a bit unstable, on machines that +don't have EHCI controllers (e.g. Haswell setups and beyond). + +If your USB drive is detected at boot, a menu might appear, showing it and you +can select it, sometimes it doesn't and you could instead do in the U-Boot shell: + + bootflow list + bootflow select X + +Where `X` is the number of the boot device, as shown by the output of the list +command. + +After selecting the device, you can do: + + bootflow boot + +Booting installed system +------------------------ + +It should just work. If all is well, it'll show the bootflow menu. Simply +select your device. If you see error, perhaps try: + + bootefi bootmgr + +Tested operating systems +======================== + +Linux/BSD +--------- + +Arch Linux, Debian Linux and OpenBSD have been tested. + +Some GRUB setups that use the *console* output mode end up using the U-Boot +console driver, which is buggy in UEFI GRUB, so menus can get quite messed up +indeed; text in the wrong place, countdown timers mangled, etc. E.g. the Arch +Linux installer is completely broken, but you can hit enter to boot Linux which +then uses KMS and the installed system uses it (and you could install another +bootloader in the installed system). + +EFI-based GRUB menus like in the Debian installer seemed to work just fine, +that is: setups that use the EFI framebuffer instead of a text console. + +Windows +------- + +Windows was tested, and doesn't work yet. Simon Glass maintains the x86 +coreboot payload, and has informed me that he still has some work to do +there. + +SecureBoot +========== + +Supported by U-Boot, though U-Boot does not currently have a robust way of +storing EFI variables, and Libreboot disables SecureBoot by default. However, +you can enable it. Information is available in U-Boot's official documentation. + +If you want real boot security, don't use UEFI. Libreboot's GRUB payload can +be heavily hardened, by following the [GRUB hardening](../linux/grub_hardening.md) +guide; this means using the GRUB payload instead of U-Boot. + +UEFI SecureBoot with a Linux UKI could achieve similar results in a security +sense to Libreboot's GRUB hardening setup, though the latter is more flexible, +albeit not widely used by the mainstream, but it does work (I use it myself!). + +Bugs +==== + +Limited testing, at least as of 5 December 2024, but some issues that appeared +included: + +* Haswell: USB support very flaky. E.g. some keyboards work, some don't, some + USB drives work, some don't. +* ThinkPad T480: U-Boot simply boot loops endlessly, but sometimes boots and + shows a menu: SATA doesn't work, but NVMe SSDs do, and you can boot just + fine, but you might not be able to boot with the bootflow menu; + the `bootefi` command can be used. +* Certain ivybridge laptops eg. Dell Latitude: EFI framebuffer got completely + b0rked. + +The good news is that a few systems were tested that seemed to work well. +Haswell machines mostly work OK (with a few bugs), some Kaby Lake machines work +but some don't very well; the GM45 machines work well, e.g. a ThinkPad X200 was +tested. + +Mitigating instability +======================= + +U-Boot is not a primary payload on any board where it's enabled. It's instead +chainloaded from SeaBIOS on 64-bit x86, and from GRUB on 32-bit x86. You select +it in the SeaBIOS menu (ESC menu), or you can use a ROM image that +has `seauboot` in the name, where SeaBIOS auto-boots U-Boot unless interrupted +via the ESC prompt. + +So if U-Boot is unstable on your board, you can press ESC in SeaBIOS and boot a +device in SeaBIOS, or select the available GRUB payload from SeaBIOS. + +Please do report any failures or successes with your testing, if you want to +try out U-Boot. + +**TODO: A lot more documentation and testing notes should be written here over +time, and lots more bug fixes are needed for U-Boot to become stable. It is +the intention of Libreboot that U-Boot become the DEFAULT payload on x86 +in a future release.** From cc2ee3d7cad9f7276ed158e40aeac32a819ae1ca Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 21:21:37 +0000 Subject: [PATCH 115/399] update docs/maintain to match Libreboot 20241205 Signed-off-by: Leah Rowe --- site/docs/maintain/index.md | 88 +++++++++++++++++++++++++++++++++++++ 1 file changed, 88 insertions(+) diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 1ee07c8..93431c9 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -329,6 +329,32 @@ This may be less efficient on disk usage, but it simplifies the logic greatly. Coreboot also uses its own toolchain called *crossgcc*, and crossgcc is in fact compiled *per tree* in Libreboot. +src/deguard/ +------------ + +Mate Kukri's utility that disables the Intel Boot Guard on Intel MEv11-based +PCH. More info available on the [deguard page](../install/deguard.md). + +On coreboot targets that have Intel Boot Guard, you can specify in +target configuration, on the vendor file config, something like: + + ME11bootguard="y" + ME11delta="thinkpad_t480s" # subdirectory under deguard's data/delta/ + ME11version="11.6.0.1126" + ME11sku="2M" + ME11pch="LP" + +The above example is used on the ThinkPad T480S, and specifies that in +addition to downloading and neutering an Intel ME image, it should also run +deguard to set up a Boot Guard-disabled configuration, or *deguarded* +installation (or less politically correctly, a disreguarded ME!) + +Libreboot uses a generic, universal ME image on all MEv11 based systems, +downloading it from a vendor, generic because its configuration is stripped +out and replaced by deguard, with one specific to the target machine. More +information is available on the deguard page, and in the deguard README, +which when downloading in lbmk in the `src/deguard/` directory. + src/flashprog/ --------------- @@ -339,6 +365,18 @@ convenience of users, and this is copied to release archives. Flashrom is the program that you will use to read, erase and write the flash, containing coreboot firmware. +src/gpio-scripts +---------------- + +This is a fork of the original gpio-scripts. The fork is maintained by Riku +Viitanen, based on code written by Angel Pons (author of the Haswell native +raminit patches and many other excellent works), but Riku's version parses +the inteltool log files. This is useful for adapting GPIO configs on Intel +machines, when porting new boards to coreboot. + +NOTE: Not included in Libreboot yet, but `intelp2m` is used instead for this +purpose, on much newer Intel systems (from around Skylake era or later). + src/grub/TREE --------------- @@ -373,6 +411,12 @@ tree contains NVMe SSD support but not xHCI support. The `default` tree contains no NVMe or xHCI support. All trees otherwise have the same fixes on top of upstream GRUB, e.g. fix for Dell Latitude keyboard controllers. +src/int/ +-------- + +Riku Viitanen wrote this tool for debugging, when implementing MXM option ROM +support in coreboot and SeaBIOS, for the HP EliteBook 8560w. + src/memtest86plus/ --------------- @@ -381,6 +425,20 @@ Please also visit: This is provided inside ROM images, as a payload executed from main GRUB or SeaBIOS payload. It checks for corrupted memory. +src/mxmdump/ +------------ + +Riku Viitanen wrote this utility, for dumping the MXM config on graphics cards +that use it. The HP EliteBook 8560w uses these cards, and normally you would +just run a VGA option ROM to get a display at boot time. The MXM cards +additionally contain a configuration called MXM, which basically describes +ports and several power management capabilities. + +MXM data is loaded via an INT15H handler, which Riku also implemented in +SeaBIOS. If the MXM data is not handled, the VGA option ROM (when executed) +will often complain and refuse to boot; some of them can be hacked to bypass +this fact, but such hacks are no longer required because of Riku's tool. + src/seabios/ --------------- @@ -407,6 +465,11 @@ provides UEFI. Information about that can be found on these resources: This is currently the only payload on *ARM* systems, within Libreboot. +U-Boot is also available on x86 machines, since the Libreboot 20241205 release. +More information can be found on the [U-Boot x86 page](../install/uboot-x86.md); +it is available as an alternative to the traditional SeaBIOS and GRUB payloads, +and it can successfully boot UEFI applications on x86 Libreboot systems. + src/uefitool/ --------------- @@ -416,6 +479,21 @@ This is compiled, so as to provide `UEFIExtract`. Currently used by the vendor download logic within `include/vendor.sh`, to download SCH5545 EC firmware (used for fan control on Dell Precision T1650). +This has also been modified to build reliably on non-glibc-based systems e.g. +Alpine Linux, which uses musl libc. + +src/pcsx-redux +---------------- + +PCSX-Redux is a Sony Playstation (PS1/PSX) emulator, but Libreboot only uses +one part from it: the Open BIOS. This is used by Libreboot to provide an +open BIOS for the Sony Playstation! + +More information available on the [PlayStation page](../install/playstation.md). + +This is automatically compiled by the main build script, and the resulting +BIOS image is provided in Libreboot release archives. + src/pico-serprog --------------------------- @@ -1297,6 +1375,12 @@ This function also contains `x_()` which lbmk uses to execute commands and ensure that they cause an exit (with non-zero status) from lbmk, if they return an error state. +This also includes the `mk()` function, which can be used as shorthand to +build multiple projects, but it doesn't handle targets within multi-tree projects, +so if for example you say `mk coreboot`, it would build every coreboot target. +This is useful for the release build logic, because now it can much more simply +build all of Libreboot, while still being flexible about it. + include/rom.sh ----------- @@ -1365,6 +1449,10 @@ When the ROM is finished compiling, it will appear under a directory in `bin/` This script is the beating heart of Libreboot. Break it, and you break Libreboot! +CCACHE is automatically used, when building coreboot, but not currently for +other projects. This is done by cooking coreboot configs at build time, enabling +coreboot's build option for it. + Serprog images: -------------- From 4d3e6640cbd9597cf884791d739bca90940ee706 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 21:41:02 +0000 Subject: [PATCH 116/399] update the 3050 page to match current status this board was perfected some time ago now Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 43 ++++++++++++++++------------------- 1 file changed, 20 insertions(+), 23 deletions(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index b01d0ac..8c9360f 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -74,35 +74,19 @@ software freedom in the future. Issues ====== -Before flashing, you must know that this board is still a work-in-progress. It -is using this patchset from the author, Mate Kukri: - - (libreboot uses patch set 14) - -Issues, as per Libreboot's testing, are as follows: - -* PWM fan controls broken, so the system always run in a low-rpm state, even - under stress conditions, which could lead to overheating under stress. - -To mitigate the PWM bug, simply cut the blue wire on the fan connector, and -cut the red wire but jump the cut (on red) with a 10ohm resistor or so; cutting -the blue one bypasses PWM, so the fan runs at full speed (very loud), and the -red wire powers it, so the resistor on the red wire will slow the fan down, but -leave it running faster than on idle. You can also cap the CPU speed however you -wish, via the `intel_pstate` driver. - -An i7-6700k has been tested, delidded (thermal grizzly conductonaut under -the ihs) and arctic mx-6 paste on top (between ihs/cooler). On stress tests, -the CPU got just above 60c with the above 10ohm mod. - -If you're using a 10ohm resistor on the fan power, make sure it's at least a 2W -one, since this is a very low-resistance fan (higher wattage). +This machine basically works flawlessly, as of the Libreboot 20241205 release. +All the initial bugs were fixed, e.g. PWM fan control works now. A very nice +machine, and inexpensive, plus very easy to set up for the average user. The +ideal Libreboot desktop. Note that HDMI audio *does* work, but you have to select it in your audio server e.g. pipewire. The `pavucontrol` utility in Linux (with pipewire) lets you have a lot of control over audio I/O. Libreboot patches the board to add a verb, so headphones should work. +Selection of audio devices and outputs is a bit idiosyncratic on this board. +Just play with pavucontrol for your setup and it should work fine. + Installation ============ @@ -117,6 +101,16 @@ Libreboot's build system automatically downloads and processes these files if you build Libreboot from source, but the same logic that it uses must be re-run if you're using a release image. +Of particular interest, this board uses the [deguard](deguard.md) software, +to disable Intel Boot Guard. This means also that the ME firmware no longer +has functional cryptographic signature checking for most of it; you can +theoretically run whatever you want on the ME coprocessor. + +Libre ME doesn't exist yet, but it's now possible. Example use-case for a +libre ME could include, for example, running an out-of-bound packet filter +on a secure network (with flash write protection, making it invincible to any +OS-based software attacks). + MAC address ----------- @@ -126,6 +120,9 @@ change. This means: there is no GbE region in the flash. You can still use something like GNU MAC Changer to change your MAC address from Linux if you want to. +This is great, because that's one less complexity to deal with during +installation. + Flash a ROM image (software) ----------------- From d0acc3d45003e9784f38a1db2f53ab82be2e7ace Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 22:03:35 +0000 Subject: [PATCH 117/399] add t480 compatibility info (features) Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 72d7433..cb80a7f 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -77,6 +77,33 @@ Official information about the T480 can be found here:\ ...and information about the T480S can be found here:\ +What works in this port: +----------------------- + +Intel graphics, internal screen, ethernet, USB, WLAN, HDA verbs (e.g. headphone +jack), S3 suspend/resume, M2 NVMe SSDs and SATA, **all works perfectly**. +External video outputs and webcam also work. Microphone works, line-out works... +everything works. UART also available via line-out jack (jumpers required on +the mainboard). + +The thunderbolt controller is currently unconfigured, so you can't use +Thunderbolt, but the thunderbolt and regular USB-C connector can both be +used for charging, and both can be used for video output (it shows up in xrandr +as a DisplayPort). NOTE: + is the patchset enabling +Thunderbolt, but it currently breaks on S3 resume from sleep, so it's not +included yet. This will be added to the Libreboot 20241205 release as a hotpatch +when it's ready, and in the next testing release after Libreboot 20241205. This +is true as of 5 December 2024. + +Backlight controls work, via software control (e.g. `xbacklight` utility), but +the Fn keys for it don't currently work, as of 5 December 2024. + +Nvidia dGPU doesn't work and is disabled as of 5 December 2024; the Intel graphics +are still available even on Nvidia models, so Intel graphics are used. + +WWAN slot untested. + Build ROM image from source --------------------------- From 41572a9aa9b32af8ae74664c546b4cc908c316f9 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 22:06:36 +0000 Subject: [PATCH 118/399] t480 patch info Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index cb80a7f..7f9abea 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -77,6 +77,10 @@ Official information about the T480 can be found here:\ ...and information about the T480S can be found here:\ +This port is implemented in Libreboot by merging Mate Kukri's T480/T480S +patchset. See: - as of 5 +December 2024, Libreboot's code matches that of patchset 22. + What works in this port: ----------------------- From 3787d9eade2409ff5192fb86bd4c6c5b025c3c5a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 23:28:21 +0000 Subject: [PATCH 119/399] Libreboot 20241205 release Signed-off-by: Leah Rowe --- site/docs/maintain/index.md | 2 +- site/download.md | 8 +- site/download.uk.md | 10 +- site/index.de.md | 4 +- site/index.fr.md | 4 +- site/index.it.md | 4 +- site/index.md | 6 +- site/index.ru.md | 2 +- site/index.uk.md | 4 +- site/index.zh-cn.md | 2 +- site/news/MANIFEST | 1 + site/news/libreboot20241205.md | 335 +++++++++++++++++++++++++++++++++ site/news/safety.md | 2 +- 13 files changed, 360 insertions(+), 24 deletions(-) create mode 100644 site/news/libreboot20241205.md diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 93431c9..57b6a68 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -466,7 +466,7 @@ provides UEFI. Information about that can be found on these resources: This is currently the only payload on *ARM* systems, within Libreboot. U-Boot is also available on x86 machines, since the Libreboot 20241205 release. -More information can be found on the [U-Boot x86 page](../install/uboot-x86.md); +More information can be found on the [U-Boot x86 page](../uboot/uboot-x86.md); it is available as an alternative to the traditional SeaBIOS and GRUB payloads, and it can successfully boot UEFI applications on x86 Libreboot systems. diff --git a/site/download.md b/site/download.md index b36b94a..a17e4ff 100644 --- a/site/download.md +++ b/site/download.md @@ -31,7 +31,7 @@ LIBREBOOT](news/safety.md).** GPG signing key --------------- -**The latest release is Libreboot 20241008, under the `testing` directory.** +**The latest release is Libreboot 20241205, under the `stable` directory.** ### NEW KEY @@ -83,7 +83,7 @@ there is a Git repository that you can download from. Go here: HTTPS mirrors {#https} ------------- -**The latest release is Libreboot 20241008, under the `testing` directory.** +**The latest release is Libreboot 20241205, under the `stable` directory.** These mirrors are recommended, since they use TLS (https://) encryption. @@ -174,7 +174,7 @@ crontab. This page tells you how to use crontab: HTTP mirrors {#http} ------------ -**The latest release is Libreboot 20241008, under the `testing` directory.** +**The latest release is Libreboot 20241205, under the `stable` directory.** WARNING: these mirrors are non-HTTPS which means that they are unencrypted. Your traffic could be subject to interference by @@ -188,7 +188,7 @@ if using HTTPS. FTP mirrors {#ftp} ----------- -**The latest release is Libreboot 20241008, under the `testing` directory.** +**The latest release is Libreboot 20241205, under the `stable` directory.** WARNING: FTP is also unencrypted, like HTTP. The same risks are present. diff --git a/site/download.uk.md b/site/download.uk.md index 47cbaa4..5e88a09 100644 --- a/site/download.uk.md +++ b/site/download.uk.md @@ -31,7 +31,7 @@ LIBREBOOT](news/safety.md).** Код підпису GPG --------------- -**Останнім випуском є Libreboot 20241008, в директорії `testing`.** +**Останнім випуском є Libreboot 20241205, в директорії `stable`.** ### НОВИЙ КЛЮЧ @@ -50,7 +50,7 @@ will expire on 26 December 2028. Повний відбиток ключа: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856` This key is for Libreboot releases *after* the 20160907 release, and up -to the Libreboot 20241008 release. This key *expired* during December 2023, +to the Libreboot 20241205 release. This key *expired* during December 2023, so you should use the *newer* key (see above) for the releases after Libreboot 20240126. @@ -83,7 +83,7 @@ Libreboot 20240126. Дзеркала HTTPS {#https} ------------- -**Останнім випуском є Libreboot 20241008, в директорії `testing`.** +**Останнім випуском є Libreboot 20241205, в директорії `stable`.** Дані дзеркала є рекомендованими, оскільки використовують TLS (https://) шифрування. @@ -174,7 +174,7 @@ crontab. Ця сторінка розповідає вам, як викорис Дзеркала HTTP {#http} ------------ -**Останнім випуском є Libreboot 20241008, під директорією `testing`.** +**Останнім випуском є Libreboot 20241205, під директорією `stable`.** УВАГА: ці дзеркала є не-HTTPS, що означає, що вони незашифровані. Ваш трафік може бути об'єктом втручання @@ -188,7 +188,7 @@ crontab. Ця сторінка розповідає вам, як викорис Дзеркала FTP {#ftp} ----------- -**Останнім випуском є Libreboot 20241008, під директорією `testing`.** +**Останнім випуском є Libreboot 20241205, під директорією `stable`.** УВАГА: FTP є також незашифрованим, подібно HTTP. Ті ж самі ризики присутні. diff --git a/site/index.de.md b/site/index.de.md index 3854bb6..7e03ca4 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -21,9 +21,9 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**NEUESTE VERSION: Die neueste Version von Libreboot ist 20241008, veröffentlicht +**NEUESTE VERSION: Die neueste Version von Libreboot ist 20241205, veröffentlicht am 8. Oktober 2024. -Siehe auch: [Libreboot 20241008 release announcement](news/libreboot20241008.md).** +Siehe auch: [Libreboot 20241205 release announcement](news/libreboot20241205.md).** Warum solltest Du *Libreboot* verwenden? ---------------------------- diff --git a/site/index.fr.md b/site/index.fr.md index e2bda69..d07df7f 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -19,8 +19,8 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**NOUVELLE VERSION: La dernière version est [Libreboot 20241008](news/libreboot20241008.md), sortie -le 8 Octobre 2024.** +**NOUVELLE VERSION: La dernière version est [Libreboot 20241205](news/libreboot20241205.md), sortie +le 5 December 2024.** Pourquoi devriez-vous utiliser *Libreboot*? ----------------------------------- diff --git a/site/index.it.md b/site/index.it.md index 9545085..0ce6532 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -20,8 +20,8 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 20241008, rilasciato il 8 October 2024. -Vedi: [Libreboot 20241008 annuncio di rilascio](news/libreboot20241008.md).** +**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 20241205, rilasciato il 5 December 2024. +Vedi: [Libreboot 20241205 annuncio di rilascio](news/libreboot20241205.md).** Per quale ragione utilizzare *Libreboot*? ----------------------------------------- diff --git a/site/index.md b/site/index.md index 1fddb11..d1854c3 100644 --- a/site/index.md +++ b/site/index.md @@ -23,9 +23,9 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**NEW RELEASE: The latest release is Libreboot 20241008, released on -8 October 2024. -See: [Libreboot 20241008 release announcement](news/libreboot20241008.md).** +**NEW RELEASE: The latest release is Libreboot 20241205, released on +5 December 2024. +See: [Libreboot 20241205 release announcement](news/libreboot20241205.md).** *We* believe the freedom to [study, share, modify and use software](https://writefreesoftware.org/), without any diff --git a/site/index.ru.md b/site/index.ru.md index 058cfe9..f99b445 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -9,7 +9,7 @@ x-toc-enable: true Вы также можете купить [Libreboot предустановленным](https://minifree.org) от Minifree Ltd, а также присылать нам свои совместимые устройства для [установки Libreboot](https://minifree.org/product/installation-service/). Основатель и ведущий разработчик Libreboot, Лия Роу, также владеет и управляет Minifree; продажи обеспечивают финансирование для Libreboot. -**НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 20241008, опубликован 8 октябрь 2024 года. Смотрите: [Libreboot 20241008 release announcment](news/libreboot20241008.md).** +**НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 20241205, опубликован 5 December 2024 года. Смотрите: [Libreboot 20241205 release announcment](news/libreboot20241205.md).** *Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://en.wikipedia.org/wiki/Right_to_repair) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. diff --git a/site/index.uk.md b/site/index.uk.md index c93a7f9..7516cfd 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -21,8 +21,8 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**НОВИЙ ВИПУСК: Останній випуск Libreboot 20241008, випущено 8 ЖОВТЕНЬ 2024. -Дивіться: [Оголошення про випуск Libreboot 20241008](news/libreboot20241008.md).** +**НОВИЙ ВИПУСК: Останній випуск Libreboot 20241205, випущено 5 December 2024. +Дивіться: [Оголошення про випуск Libreboot 20241205](news/libreboot20241205.md).** Чому вам варто використовувати *Libreboot*? ---------------------------- diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index bde802e..b3ae8f1 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -12,7 +12,7 @@ x-toc-enable: true Libreboot 的创始人和主要开发者,Leah Rowe,也是 Minifree 的所有者和经营者; 销售电脑为 Libreboot 提供资金。 -**新版发布: 最新版本 Libreboot 20241008 已在 2024 年 10 月 08 日发布。详见: [Libreboot 20241008 发布公告](news/libreboot20241008.md).** +**新版发布: 最新版本 Libreboot 20241205 已在 2024 年 12 月 05 日发布。详见: [Libreboot 20241205 发布公告](news/libreboot20241205.md).** 为什么要使用 *Libreboot*? ---------------------------- diff --git a/site/news/MANIFEST b/site/news/MANIFEST index a97f14f..3abb7d9 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -1,3 +1,4 @@ +libreboot20241205.md libreboot20241008.md audit6.md libreboot20240612.md diff --git a/site/news/libreboot20241205.md b/site/news/libreboot20241205.md new file mode 100644 index 0000000..5911f37 --- /dev/null +++ b/site/news/libreboot20241205.md @@ -0,0 +1,335 @@ +% Libreboot 20241205 released! +% Leah Rowe +% 5 December 2024 + +Today's Libreboot 20241205 revision is a *stable release*, whereas the previous +testing release was Libreboot 20241008, and the previous stable release was +Libreboot 20240612. + +**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING +LIBREBOOT](safety.md).** + +Introduction +============ + +Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing +boot firmware that initialises the hardware in your computer, to then load an +operating system (e.g. Linux/BSD). It is specifically a *coreboot distribution*, +in the same way that Debian is a Linux distribution. It provides an automated +build system to produce coreboot ROM images with a variety of payloads such as +GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +to use as possible for non-technical users. From a project management perspective, +this works in *exactly* the same way as a Linux distro, providing a source-based +package manager (called lbmk) which patches sources and compiles coreboot images. +It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, +and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) +or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating +system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). + +For Libreboot 20241205, today's release, U-Boot is *also* provided as an +optional coreboot payload on x86 machines. This provides a sensible UEFI +implementation, useful for booting Linux/BSD systems more easily. More +information available on the [U-Boot x86 page](../docs/uboot/uboot-x86.md). + +This page lists all changes made since the *Libreboot 20241008* release. Since +it's a stable release, there has been a more conservative focus on fixing bugs +and in general polishing, though several interesting features have been added, +in addition to numerous new mainboards. + +Summarised list of changes +========================== + +Board support +------------- + +The following boards have been added since the Libreboot 20240612 release: + +* **[Lenovo ThinkPad T480](../docs/install/t480.md)** support, implemented by + Mate Kukri with testing and hardware logs provided by Leah Rowe. +* **[Lenovo ThinkPad T480S](../docs/install/t480.md)** support, implemented by + Mate Kukri with testing and hardware logs provided by Leah Rowe. +* **[Dell OptiPlex 780 USFF](../docs/install/dell780.md)** support, implemented + by Nicholas Chin with testing and hardware logs provided by Lorenzo Aloe. +* **[Dell OptiPlex 780 MT](../docs/install/dell780.md)** support, implemented by + Nicholas Chin with testing and hardware logs provided by Lorenzo Aloe. + +Revision updates +================ + +In descending order from latest changes to earliest changes: + +* Updated to Mate Kukri's rewritten release of `deguard`, which now works + generally for any MEv11-based board, whereas the previous version contained + hacky hardcoded logic for only the Dell OptiPlex 3050 Micro. In this Libreboot + release, deguard supports the 3050, but also the ThinkPad T480 and T480S, + providing machine-specific ME configurations for each mainboard. Mate's new + deguard implementation essentially does the same thing as Intel's FITC tool, + though with a much more terse and minimalist design. It could be expanded for + many other things in the future, related to Intel ME. +* Updated U-Boot to v2024.10 release on ARM64 - and also added this revision + for x86 coreboot payloads, to provide UEFI on 64-bit x86 machines. The ARM64 + coreboot payload is maintained by Alper Nebi Yasak, and the x86 coreboot + payload is principally maintained by Simon Glass. +* Updated the Dell OptiPlex 3050 Micro port to use a newer coreboot revision, + which includes a fix adding PWM fan control, among other things. NOTE: This + was later obsoleted, because OptiPlex 3050 Micro support was merged upstream + and Libreboot switched to the upstream revision instead of Gerrit. +* Updated SeaBIOS to latest revision as of 17 October 2024. +* Bumped flashrom to revision d128a0a, which includes a fix for Macronix flash + chips on ThinkPad W500 whereby it had previously used incorrect erase commands. + +Feature changes +--------------- + +In descending order from latest changes to earliest changes: + +* Implemented an auto-boot timeout on U-Boot payloads, for both ARM and x86. + This is implemented in the bootflow menu, so that the system will auto-boot + what is found after a few seconds. Previously, the user had to press enter, + making headless operation impractical. If the countdown is interrupted with + a keypress, it is disabled until the next reboot. The current countdown + delay is 8 seconds, though the U-Boot patch sets a default of 30, which + Libreboot then overrides via defconfig option. +* `rom.sh`: Support creating SeaUBoot payload setups. This is where SeaBIOS + loads U-Boot from SeaBIOS first, unless interrupted by the ESC menu, whereby + the user can select an alternative option, such as direct device booting from + SeaBIOS, or the GRUB payload instead. This was done, to mitigate potential + instability in U-Boot, since U-Boot is much more heavily tested so it provides + a sensible fallback just in case. This could also be regarded as a preventative + bug fix, from the perspective of a user. +* Experimental U-Boot payload on both 32- and 64-bit x86 setups. The 64-bit + payload is chainloaded from SeaBIOS and the 32-bit one from GRUB. This is + useful for booting BSD systems; for example, GPT partitioned OpenBSD can be + booted with U-Boot, whereas the SeaBIOS payload would require MBR partitioning. +* Imported Riku Viitanen's `int` tool, which was used for debugging MXM + handling on the HP EliteBook 8560w port; the MXM is a data section provided + by the system BIOS on mobile systems that use MXM graphics cards. The data + describes ports, power management and so on. This was needed to make MXM cards + work reliably. +* Imported Riku Viitanen's `gpio-scripts` fork, which parses inteltool output + for providing GPIO configuration on new coreboot ports; note that from Skylake + onward, `intelp2m` is used instead, but Libreboot does not directly import + the `intelp2m` utility (it is included via coreboot instead). +* Imported Riku Viitanen's `mxmdump` utility, for extracting MXM configuration + on mobile graphics cards. This was used when implementing MXM support on + the HP EliteBook 8560w. + +Configuration changes +--------------------- + +In descending order from the latest changes to the earliest changes: + +* Disabled U-Boot on ThinkPad T480, because it's currently buggy there; more + boards will have U-Boot tweaks made to them, in subsequent hotfixes to + the Libreboot 20241205 release, and hotfixes to U-Boot itself are also likely, + since U-Boot still requires a lot more testing. U-Boot does work quite well + on a number of tested mainboards; if yours works, or doesn't work, please get + in touch with the Libreboot project, so that a tally can be kept. +* Added Libreboot branding/versioning to the U-Boot bootflow menu, showing + the Libreboot logo instead of the U-Boot one, and with a purple background + colour in the console, matching the style used by Libreboot. +* U-Boot (ARM): Alper Nebi Yasak enabled USE with a preboot command at startup. + This is so that USB keyboards and external disks can be used during the + boot process; this would have been previously enabled much later in the boot + process. +* Enabled the coreboot serial console on these targets: Thinkpad X60, HP + Elite 8200 SFF, HP EliteBook 8460p, HP EliteBook 8560w. +* Enabled U-Boot x86 payload on almost every coreboot board; basically, all + of the ones with a native coreboot framebuffer (libgfxinit). +* Removed `coreboot/dell7` (for 3050 Micro) and merged it into a new + tree, `coreboot/next` instead, which was (for this release) later updated to + the latest coreboot revision from a few days prior to the release. The `next` + branch contains OptiPlex 780 ports and the Kaby Lake machines such as + OptiPlex 3050 Micro or ThinkPad T480/T480S. +* Removed the FSP submodule from `coreboot/default`, because it's currently + used in `coreboot/next` instead (for Kaby Lake machines). +* Enabled support in coreboot, on Dell OptiPlex 3050 Micro, for Coffee Lake CPUs. + With a special pin mod (currently untested as of 5 December 2024), Kaby Lake + machines can make use of 8th-gen Coffee Lake CPUs, which offer greater + performance and power efficiency. + +Bug fixes +--------- + +The following bug fixes have been merged (in descending order from the latest +changes to the earliest changes): + +* `script/trees`: Reset the PATH environmental variable per target, to what it + was when the script was first called. This is because PATH is manipulated + when dealing with crossgcc, exporting it prior to running a given build + process, if the current project/target enables cross compilation. This bug + didn't cause any issues in practise, so this is a preventative bug fix, + because projects that use the crossgcc compiler all set `xarch` properly, + and none of the projects that aren't cross compiled use special prefixes + in their toolchain references, at least as of 5 December 2024. +* Add U-Boot first, on x86 coreboot targets, even though it doesn't execute + first, because U-Boot has to be inserted at a specific offset. This avoids + potential overlap errors in cbfstool, if it were to be added later on. This + bug didn't cause any issues in practise, so it is theoretical in nature and + therefore a preventative bug fix. +* `rom.sh`: Removed redundant shebang, which didn't technically cause any + problems, but it's technically a bug since this is not provided as a main + script, and must never be executed directly, instead only to be executed by + other scripts. +* Added missing `openssl-devel-engine` to Fedora 41 build dependencies. +* U-Boot: Merged an x86 patch from Simon Glass, that makes U-Boot skip clearing + the VESA display an startup, since this is already done by the VESA driver. + In some cases, you may want to keep what was previously on the screen, like + for logos and such. We currently do not use U-Boot on VESA setups in Libreboot, + as of 5 December 2024. +* U-Boot: Merged an x86 patch from Simon Glass, that makes U-Boot silently + disable serial console output, where one is not available; previously, it + would crash if one wasn't available, on x86 machines. +* `script/trees`: Unset the `CROSS_COMPILE` environmental variable, to fix an + issue whereby projects that honour it might be wrongly cross compiled where + a previous export of that variable was made; for example, setting it on + arm64 U-Boot and then compiling x86 U-Boot, where the latter currently relies + on the host's x86\_64 toolchain, on an x86\_64 host. +* Enabled the legacy 8254 timer on Dell OptiPlex 3050 Micro, to work around a + hanging bug in SeaBIOS. This board was previously GRUB only, but now once again + uses a more flexible SeaGRUB setup like other mainboards do. The static option + table was also disabled. +* Merged a patch from Nicholas Chin, that tells the MEC5035 EC to send a correct + shutdown signal to the operating system when the power button is pressed. + Prior to this fix, pressing the power button on Dell Latitude laptops would + result in the system turning off, but the OS would be unaware of this fact + so file systems (for example) would not be cleanly unmounted. +* Merged a patch from Mate Kukri, fixing PWM fan controls on the Dell OptiPlex + 3050 Micro. Previously, the fans always ran at a very low speed even under + stress conditions, leading to over-heating; the system now runs reliably. +* Removed end slashes in repository links within `config/git`, because of + how caching works in Libreboot; fewer projects now fail to cache, making + the download process more redundant and fault tolerant at build time when + downloading upstream sources. +* `vendor.sh`: Don't use the `x_` wrapper for handling errors while changing + GbE MAC addresses, because a file path is provided as argument, and the `x_` + wrapper currently does not handle globbing; instead, the `$err` function is + used for returning error status. +* `vendor.sh`: Properly handle error status when returning from deguard's + RUNME script (**This change was later obsoleted when deguard was rewritten, + and Libreboot imported the newly rewritten version - the new code and handling + of it is much more robust**) +* Added missing `python3-devel` to Fedora 40 build dependencies. + +General code cleanup +-------------------- + +In descending order from the latest changes to the earliest changes: + +* Removed unnecessary coreboot submodule configs, for trees that no + longer exist such as `coreboot/haswell` or `coreboot/dell7`. +* Removed the following unnecessary coreboot patches in the default tree: + VRAM patches (VRAM allocation is dynamic in modern OSes, so the fixed higher + size merely wastes system RAM needlessly on Intel GPUs when not a lot of VRAM + is needed). Removed redundancy patches for coreboot's buildgcc download logic, + because lbmk now handles this outside of coreboot. + +Git log +======= + +This log is relative to Libreboot 20241008: + +``` +* 07983c1d882 Revert "Revert "disable u-boot on thinkpad t480"" +* 19ec440a6f7 Revert "disable u-boot on thinkpad t480" +* 99513c3bf67 add patch from mkukri fixing t480 sata +* cd9baca5d66 disable u-boot on thinkpad t480 +* 8065b9842b5 remove the purple patch on arm64 u-boot +* 5cc91d8e40a Merge pull request 'u-boot: Use bootflow menu by default for ARM64 boards' (#254) from alpernebbi/lbmk:u-boot-arm64-bootflow-menu into master +|\ +| * f26752fd854 u-boot: Use bootflow menu by default for ARM64 boards +* | bef2890233e i made u-boot purple +|/ +* 965f9bd0335 Add bootflow/branding patches to arm64 U-Boot too +* 44e6a0c0905 Add libreboot branding/version to U-Boot bootflow +* c038b653ac1 Add auto-boot timeout for U-Boot's bootflow menu +* 7a6e47c24fe 8-sec auto-boot timeout for U-Boot's bootflow menu +* 90850eb859c fix board name for coreboot/dell7010sff +* 8314fbc67eb add /dump/ to .gitignore +* efebfa992b6 Revert "trees: Allow using a custom clean command" +* 5b4c9158e5a trees: Allow using a custom clean command +* b95a411a364 Add SPD support for onboard ThinkPad T480S RAM +* 046529abd98 Disable m2 caddy hotplug on T480S +* 9dc3c86ae37 vendor.sh: Remove T480 VGA ROM download handling +* 33efe45b149 Enable legacy 8254 timer on ThinkPad T480 +* cde9594aab5 libgfxinit on Thinkpad T480 +* c1b73269726 NEW MAINBOARD: ThinkPad T480S +* 264928c6cde NEW MAINBOARD: ThinkPad T480 +* 597b45fdbd5 Merge pull request 'Update U-Boot to v2024.10' (#253) from alpernebbi/lbmk:uboot-v2024.10 into master +|\ +| * 3dd77b33a72 u-boot: Enable USB with a preboot command +| * ba772eb6acd u-boot: Update ARM64 boards to v2024.10 +* | 28d8dc93a52 vendor.sh: Use the new deguard for 3050micro +* | 7f6e47d27c6 trees: reset PATH per-target +|/ +* f4b6aeea281 rom.sh: Add U-Boot before SeaBIOS and GRUB (x86) +* 7014b303f98 rom.sh: Remove unnecessary shebang +* a3accd39a06 Merge pull request 'config/deps/fedora41: Add openssl-devel-engine to dependency list' (#251) from mkukri/lbmk:master into master +|\ +| * 98c5e436282 config/deps/fedora41: Add openssl-devel-engine to dependency list +|/ +* ef7db205463 e6400nvidia: Disable U-Boot +* eea9fc40975 rom.sh: unset displaymode on normal initmode +* f312e6026f9 rom.sh: Don't build U-Boot on normal initmode +* 587d588fe4c rom.sh: Don't build txtmode U-Boot images +* 7d1fd1cc6a1 rom.sh: Support SeaUBoot for 64-bit x86 U-Boot +* 02e66ae01ae U-Boot x86: Avoid clearing the VESA display +* 32dced8cd83 disable U-Boot for now on HP EliteBook 8560w +* a68b468964d enable serial debug on HP EliteBook 8460p +* b79bd736e70 enable serial debug on hp elite 8200 sff +* b109617752f enable the serial console on thinkpad x60 +* 0c7fb21a062 enable the serial console on thinkpad t60 +* eb14a176bc8 Only boot 32-bit u-boot from grub, 64 from seabios +* 279e69172f7 make the u-boot grub menuentry more useful +* fdbdf0449b3 Re-enable U-Boot x86 on real mainboards +* b549d1e5f38 u-boot x86 serial/ns16550: disable UART as needed +* eba73c778a8 Disable U-Boot x86 except on Qemu +* 4bc6ca545e7 fix U-Boot hotkey mention in grub.cfg +* 6d629a8496c Update x86 U-Boot to v2024.10 (was v2024.07) +* 709bbebdcf2 grub.cfg: mark U-Boot as experimental in the menu +* 637c0a1521a trees: unset CROSS_COMPILE per target +* f13819386bf Enable x86 U-Boot payload on every x86 board +* 747b6514eaf Add U-Boot x86_64 payload +* 3bf3ef557e4 add arm-none-eabi-gcc-cs-c++ to fedora dependency +* 2deab8572db clean up the coreboot submodules +* 9abddb82b92 Bump coreboot/next and merge coreboot/dell7 +* 8c4cacba27c data/coreboot: add missing variable +* cdd8cb9086f coreboot/default: remove unnecessary module +* c0017c73578 Experimental U-Boot payload (32-bit dtb, U-Boot) +* 14b4838d495 coreboot/default: Re-base all patches +* 67c92889a86 NEW MAINBOARD: Dell OptiPlex 780 USFF +* 38006cb2bc0 coreboot/dell3050micro: enable coffeelake CPUs +* 97054498e94 NEW MAINBOARD: Dell OptiPlex 780 MT +* f3170fb06eb coreboot/dell7: add missing ifdtool nuke patch +* 19795bf980e re-update seabios to latest revision +* 9bdec645a30 3050micro: Re-enable SeaGRUB +* 6c78942290d Merge pull request 'config/coreboot/default: Update MEC5035 patches' (#244) from nic3-14159/lbmk:mec5035-updates into master +|\ +| * b257662e55c config/coreboot/default: Update MEC5035 patches +* | 237fa1e3c18 3050micro: don't set static option table +* | d1743d1f647 3050micro: Use alt century byte +legacy 8254 timer +* | c56f6987139 Use SeaBIOS 1.16.3 and enable debugging +* | d8ac9d53b66 Switch Dell 3050 Micro to newer coreboot revision +|/ +* 99a88ebfa20 Update dell 3050 patch to patch 15 (pwm fix) +* 3f63c6d12f6 rom.sh: remove unnecessary logic from copyps1bios +* 56495c61e6c use redundant mirrors for recent utils imports +* 38d37a340fb remove end slashes on repos in config/git/ +* 6eb2e98c0f0 import Riku's int tool +* 441d21dc134 import Riku's gpio-scripts +* e8957b0833a import Riku's mxmdump utility +* 91a26ec3611 bump seabios +* 34f851742e1 vendor.sh: Don't use x_ for image MAC address mod +* c7a3a607f3d bump flashprog revision to d128a0a +* 3b92b7b7236 vendor.sh: Handle error status on RUNME.sh +* 147e0343416 dependencies/fedora40: add python3-devel +``` + +This accounts for 79 changes made, relative to Libreboot 20241008. Many changes +were intentionally delayed because this is to be a stable release. A lot of new +work will now go into the next testing release, which is scheduled for the +latter part of January 2025 or early February 2025. + +If you spot any issues in the Libreboot 20241205 release, please do get in +contact with the Libreboot project. We appreciate any and all help. Thank you +for reading, and have a wonderful day! diff --git a/site/news/safety.md b/site/news/safety.md index 0dac613..98336d2 100644 --- a/site/news/safety.md +++ b/site/news/safety.md @@ -20,7 +20,7 @@ implemented, and this page is still relevant for Libreboot 20231021. It applies to any system that requires vendor code to be inserted inside ROM images.** (it also applies to Libreboot 20231101, 20231106, 20240126, 20240225, 20240504, -20240612 and 20241008) +20240612, 20241008 and 20241205) **UPDATE (16 August 2023): This also applies to the recently added Dell Precision T1650 mainboard.** From 942512a16c5339772f528a521e2669b609e03ade Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 5 Dec 2024 23:58:23 +0000 Subject: [PATCH 120/399] correction i'm not stopping the release build for this. Signed-off-by: Leah Rowe --- site/news/libreboot20241205.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/news/libreboot20241205.md b/site/news/libreboot20241205.md index 5911f37..8ab1812 100644 --- a/site/news/libreboot20241205.md +++ b/site/news/libreboot20241205.md @@ -42,7 +42,7 @@ Summarised list of changes Board support ------------- -The following boards have been added since the Libreboot 20240612 release: +The following boards have been added since the Libreboot 20241008 release: * **[Lenovo ThinkPad T480](../docs/install/t480.md)** support, implemented by Mate Kukri with testing and hardware logs provided by Leah Rowe. From 29762494bcd34b69f5ccd93ae3fa35cb69fca57c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 6 Dec 2024 00:11:31 +0000 Subject: [PATCH 121/399] another tweak to docs/maintain/ this doesn't actually add missing information, but does make existing information clearer. it's always the case that when i'm running a release build, i immediately notice everything wrong with it. i'm not stopping the build! Signed-off-by: Leah Rowe --- site/docs/maintain/index.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 57b6a68..9c4f6eb 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -718,6 +718,28 @@ as: * `xtree="default"` (example entry) * `tree_depend="default"` (example entry) * `grubtree="nvme" (example entry)` +* `payload_uboot_i386="y"` (example entry - 32 bit U-Boot) +* `payload_uboot_amd64="y"` (example entry - 64 bit U-Boot) + +Please also check the `build_depend` variable +in `config/data/coreboot/mkhelper.cfg` - and compare to what trees are used +for payloads in the given target. If your board's `target.cfg` requires trees +and projects other than that specified in `mkhelper.cfg`, you must replace +the entire `build_depend` string. For example, if your board requires GRUB with +xHCI patches, with SeaBIOS and with U-Boot AMD64, and you also want memtest86plus, +you would therefore set the string as follows: + +``` +build_depend="grub/xhci seabios/default u-boot/amd64coreboot memtest86plus" +``` + +In the above example, you would also set `grubtree="xhci"`, +but please note that there is only one SeaBIOS tree so `/default` is implied, +but must still be in the `build_depend` variable. Multiple U-Boot trees exist, +but for x86 32-bit you would only specify `i386coreboot` and for 64-bit you +would only specify `amd64coreboot` and for ARM64 you say `default` - so you +do not need to specify a `seabiostree` or `uboottree` variable, and these are +not handled, because lbmk simply assumes use of the aforementioned tree names. The `tree` value refers to `config/coreboot/TREE`; in other words, a given target could specify a name other than its own as the tree; it would then From 89131e1615d9b81e8cbe58d617833a0e6e00674c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 6 Dec 2024 10:00:37 +0000 Subject: [PATCH 122/399] Libreboot 20241206 release I encountered a minor build error last night, caused by an oversight during development. I quickly fixed the issue but then decided to spend the night testing a few more mainboards for addition; however if I continue doing this, I'll never make the release. So this is essentially the same as what the 20241205 release would have been, with only a minor bug fix in the build system. Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 2 +- site/docs/install/t480.md | 16 ++++++++-------- site/docs/maintain/index.md | 2 +- site/docs/uboot/uboot-x86.md | 6 +++--- site/download.md | 8 ++++---- site/download.uk.md | 10 +++++----- site/index.de.md | 6 +++--- site/index.fr.md | 4 ++-- site/index.it.md | 4 ++-- site/index.md | 6 +++--- site/index.ru.md | 2 +- site/index.uk.md | 4 ++-- site/index.zh-cn.md | 2 +- site/news/MANIFEST | 2 +- ...breboot20241205.md => libreboot20241206.md} | 18 +++++++++--------- site/news/safety.md | 2 +- 16 files changed, 47 insertions(+), 47 deletions(-) rename site/news/{libreboot20241205.md => libreboot20241206.md} (97%) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index 8c9360f..398281d 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -74,7 +74,7 @@ software freedom in the future. Issues ====== -This machine basically works flawlessly, as of the Libreboot 20241205 release. +This machine basically works flawlessly, as of the Libreboot 20241206 release. All the initial bugs were fixed, e.g. PWM fan control works now. A very nice machine, and inexpensive, plus very easy to set up for the average user. The ideal Libreboot desktop. diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 7f9abea..a10374b 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -4,7 +4,7 @@ x-toc-enable: true ... Libreboot supports both the T480 and T480S variants. It is available in -the *Libreboot 20241205* release or later. +the *Libreboot 20241206* release or later. **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** @@ -69,7 +69,7 @@ Introduction ============ **Unavailable in Libreboot 20241008 or earlier. You must [compile from -source](../build/), or alternatively an image from Libreboot 20241205 or higher. +source](../build/), or alternatively an image from Libreboot 20241206 or higher. Official information about the T480 can be found here:\ @@ -96,14 +96,14 @@ used for charging, and both can be used for video output (it shows up in xrandr as a DisplayPort). NOTE: is the patchset enabling Thunderbolt, but it currently breaks on S3 resume from sleep, so it's not -included yet. This will be added to the Libreboot 20241205 release as a hotpatch -when it's ready, and in the next testing release after Libreboot 20241205. This -is true as of 5 December 2024. +included yet. This will be added to the Libreboot 20241206 release as a hotpatch +when it's ready, and in the next testing release after Libreboot 20241206. This +is true as of 6 December 2024. Backlight controls work, via software control (e.g. `xbacklight` utility), but -the Fn keys for it don't currently work, as of 5 December 2024. +the Fn keys for it don't currently work, as of 6 December 2024. -Nvidia dGPU doesn't work and is disabled as of 5 December 2024; the Intel graphics +Nvidia dGPU doesn't work and is disabled as of 6 December 2024; the Intel graphics are still available even on Nvidia models, so Intel graphics are used. WWAN slot untested. @@ -271,7 +271,7 @@ Backlight controls The `xbacklight` (or equivalent in Wayland) can be used to manually control the backlight; the buttons on the keyboard do not currently work, at least as -of 5 December 2024. +of 6 December 2024. You could map the appropriate xbacklight command in Linux to a hotkey combo, depending on your window manager or desktop environment. diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 9c4f6eb..c2477a9 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -465,7 +465,7 @@ provides UEFI. Information about that can be found on these resources: This is currently the only payload on *ARM* systems, within Libreboot. -U-Boot is also available on x86 machines, since the Libreboot 20241205 release. +U-Boot is also available on x86 machines, since the Libreboot 20241206 release. More information can be found on the [U-Boot x86 page](../uboot/uboot-x86.md); it is available as an alternative to the traditional SeaBIOS and GRUB payloads, and it can successfully boot UEFI applications on x86 Libreboot systems. diff --git a/site/docs/uboot/uboot-x86.md b/site/docs/uboot/uboot-x86.md index 53bd8ed..7e354fd 100644 --- a/site/docs/uboot/uboot-x86.md +++ b/site/docs/uboot/uboot-x86.md @@ -6,7 +6,7 @@ x-toc-enable: true Introduction ============ -U-Boot is available as a coreboot payload, in Libreboot 20241205 and later, +U-Boot is available as a coreboot payload, in Libreboot 20241206 and later, on x86 boards; on ARM it has been available since late 2022 Libreboot releases. Please read , especially the full U-Boot documentation @@ -16,7 +16,7 @@ available there. the [main U-Boot page](index.md).** More documentation about this will be written at a later date, but just before -the Libreboot 20241205 release in December 2024, U-Boot support was added as +the Libreboot 20241206 release in December 2024, U-Boot support was added as a payload on x86 machines, both 32- and 64-bit. This is using the excellent work done by Simon Glass and others, on making U-Boot run as a generic x86 coreboot payload. It has several boot methods but the most interesting (in an x86 @@ -121,7 +121,7 @@ albeit not widely used by the mainstream, but it does work (I use it myself!). Bugs ==== -Limited testing, at least as of 5 December 2024, but some issues that appeared +Limited testing, at least as of 6 December 2024, but some issues that appeared included: * Haswell: USB support very flaky. E.g. some keyboards work, some don't, some diff --git a/site/download.md b/site/download.md index a17e4ff..e1f42cb 100644 --- a/site/download.md +++ b/site/download.md @@ -31,7 +31,7 @@ LIBREBOOT](news/safety.md).** GPG signing key --------------- -**The latest release is Libreboot 20241205, under the `stable` directory.** +**The latest release is Libreboot 20241206, under the `stable` directory.** ### NEW KEY @@ -83,7 +83,7 @@ there is a Git repository that you can download from. Go here: HTTPS mirrors {#https} ------------- -**The latest release is Libreboot 20241205, under the `stable` directory.** +**The latest release is Libreboot 20241206, under the `stable` directory.** These mirrors are recommended, since they use TLS (https://) encryption. @@ -174,7 +174,7 @@ crontab. This page tells you how to use crontab: HTTP mirrors {#http} ------------ -**The latest release is Libreboot 20241205, under the `stable` directory.** +**The latest release is Libreboot 20241206, under the `stable` directory.** WARNING: these mirrors are non-HTTPS which means that they are unencrypted. Your traffic could be subject to interference by @@ -188,7 +188,7 @@ if using HTTPS. FTP mirrors {#ftp} ----------- -**The latest release is Libreboot 20241205, under the `stable` directory.** +**The latest release is Libreboot 20241206, under the `stable` directory.** WARNING: FTP is also unencrypted, like HTTP. The same risks are present. diff --git a/site/download.uk.md b/site/download.uk.md index 5e88a09..b001d48 100644 --- a/site/download.uk.md +++ b/site/download.uk.md @@ -31,7 +31,7 @@ LIBREBOOT](news/safety.md).** Код підпису GPG --------------- -**Останнім випуском є Libreboot 20241205, в директорії `stable`.** +**Останнім випуском є Libreboot 20241206, в директорії `stable`.** ### НОВИЙ КЛЮЧ @@ -50,7 +50,7 @@ will expire on 26 December 2028. Повний відбиток ключа: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856` This key is for Libreboot releases *after* the 20160907 release, and up -to the Libreboot 20241205 release. This key *expired* during December 2023, +to the Libreboot 20241206 release. This key *expired* during December 2023, so you should use the *newer* key (see above) for the releases after Libreboot 20240126. @@ -83,7 +83,7 @@ Libreboot 20240126. Дзеркала HTTPS {#https} ------------- -**Останнім випуском є Libreboot 20241205, в директорії `stable`.** +**Останнім випуском є Libreboot 20241206, в директорії `stable`.** Дані дзеркала є рекомендованими, оскільки використовують TLS (https://) шифрування. @@ -174,7 +174,7 @@ crontab. Ця сторінка розповідає вам, як викорис Дзеркала HTTP {#http} ------------ -**Останнім випуском є Libreboot 20241205, під директорією `stable`.** +**Останнім випуском є Libreboot 20241206, під директорією `stable`.** УВАГА: ці дзеркала є не-HTTPS, що означає, що вони незашифровані. Ваш трафік може бути об'єктом втручання @@ -188,7 +188,7 @@ crontab. Ця сторінка розповідає вам, як викорис Дзеркала FTP {#ftp} ----------- -**Останнім випуском є Libreboot 20241205, під директорією `stable`.** +**Останнім випуском є Libreboot 20241206, під директорією `stable`.** УВАГА: FTP є також незашифрованим, подібно HTTP. Ті ж самі ризики присутні. diff --git a/site/index.de.md b/site/index.de.md index 7e03ca4..cbda7ee 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -21,9 +21,9 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**NEUESTE VERSION: Die neueste Version von Libreboot ist 20241205, veröffentlicht -am 8. Oktober 2024. -Siehe auch: [Libreboot 20241205 release announcement](news/libreboot20241205.md).** +**NEUESTE VERSION: Die neueste Version von Libreboot ist 20241206, veröffentlicht +am 6 December 2024. +Siehe auch: [Libreboot 20241206 release announcement](news/libreboot20241206.md).** Warum solltest Du *Libreboot* verwenden? ---------------------------- diff --git a/site/index.fr.md b/site/index.fr.md index d07df7f..6cd3944 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -19,8 +19,8 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**NOUVELLE VERSION: La dernière version est [Libreboot 20241205](news/libreboot20241205.md), sortie -le 5 December 2024.** +**NOUVELLE VERSION: La dernière version est [Libreboot 20241206](news/libreboot20241206.md), sortie +le 6 December 2024.** Pourquoi devriez-vous utiliser *Libreboot*? ----------------------------------- diff --git a/site/index.it.md b/site/index.it.md index 0ce6532..1e96919 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -20,8 +20,8 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 20241205, rilasciato il 5 December 2024. -Vedi: [Libreboot 20241205 annuncio di rilascio](news/libreboot20241205.md).** +**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 20241206, rilasciato il 6 December 2024. +Vedi: [Libreboot 20241206 annuncio di rilascio](news/libreboot20241206.md).** Per quale ragione utilizzare *Libreboot*? ----------------------------------------- diff --git a/site/index.md b/site/index.md index d1854c3..1ad313b 100644 --- a/site/index.md +++ b/site/index.md @@ -23,9 +23,9 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**NEW RELEASE: The latest release is Libreboot 20241205, released on -5 December 2024. -See: [Libreboot 20241205 release announcement](news/libreboot20241205.md).** +**NEW RELEASE: The latest release is Libreboot 20241206, released on +6 December 2024. +See: [Libreboot 20241206 release announcement](news/libreboot20241206.md).** *We* believe the freedom to [study, share, modify and use software](https://writefreesoftware.org/), without any diff --git a/site/index.ru.md b/site/index.ru.md index f99b445..fd3ed59 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -9,7 +9,7 @@ x-toc-enable: true Вы также можете купить [Libreboot предустановленным](https://minifree.org) от Minifree Ltd, а также присылать нам свои совместимые устройства для [установки Libreboot](https://minifree.org/product/installation-service/). Основатель и ведущий разработчик Libreboot, Лия Роу, также владеет и управляет Minifree; продажи обеспечивают финансирование для Libreboot. -**НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 20241205, опубликован 5 December 2024 года. Смотрите: [Libreboot 20241205 release announcment](news/libreboot20241205.md).** +**НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 20241206, опубликован 6 December 2024 года. Смотрите: [Libreboot 20241206 release announcment](news/libreboot20241206.md).** *Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://en.wikipedia.org/wiki/Right_to_repair) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. diff --git a/site/index.uk.md b/site/index.uk.md index 7516cfd..9b67f17 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -21,8 +21,8 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -**НОВИЙ ВИПУСК: Останній випуск Libreboot 20241205, випущено 5 December 2024. -Дивіться: [Оголошення про випуск Libreboot 20241205](news/libreboot20241205.md).** +**НОВИЙ ВИПУСК: Останній випуск Libreboot 20241206, випущено 6 December 2024. +Дивіться: [Оголошення про випуск Libreboot 20241206](news/libreboot20241206.md).** Чому вам варто використовувати *Libreboot*? ---------------------------- diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index b3ae8f1..43b3fa1 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -12,7 +12,7 @@ x-toc-enable: true Libreboot 的创始人和主要开发者,Leah Rowe,也是 Minifree 的所有者和经营者; 销售电脑为 Libreboot 提供资金。 -**新版发布: 最新版本 Libreboot 20241205 已在 2024 年 12 月 05 日发布。详见: [Libreboot 20241205 发布公告](news/libreboot20241205.md).** +**新版发布: 最新版本 Libreboot 20241206 已在 2024 年 12 月 06 日发布。详见: [Libreboot 20241206 发布公告](news/libreboot20241206.md).** 为什么要使用 *Libreboot*? ---------------------------- diff --git a/site/news/MANIFEST b/site/news/MANIFEST index 3abb7d9..a407bdf 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -1,4 +1,4 @@ -libreboot20241205.md +libreboot20241206.md libreboot20241008.md audit6.md libreboot20240612.md diff --git a/site/news/libreboot20241205.md b/site/news/libreboot20241206.md similarity index 97% rename from site/news/libreboot20241205.md rename to site/news/libreboot20241206.md index 8ab1812..3285980 100644 --- a/site/news/libreboot20241205.md +++ b/site/news/libreboot20241206.md @@ -1,8 +1,8 @@ -% Libreboot 20241205 released! +% Libreboot 20241206 released! % Leah Rowe -% 5 December 2024 +% 6 December 2024 -Today's Libreboot 20241205 revision is a *stable release*, whereas the previous +Today's Libreboot 20241206 revision is a *stable release*, whereas the previous testing release was Libreboot 20241008, and the previous stable release was Libreboot 20240612. @@ -26,7 +26,7 @@ and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). -For Libreboot 20241205, today's release, U-Boot is *also* provided as an +For Libreboot 20241206, today's release, U-Boot is *also* provided as an optional coreboot payload on x86 machines. This provides a sensible UEFI implementation, useful for booting Linux/BSD systems more easily. More information available on the [U-Boot x86 page](../docs/uboot/uboot-x86.md). @@ -121,7 +121,7 @@ In descending order from the latest changes to the earliest changes: * Disabled U-Boot on ThinkPad T480, because it's currently buggy there; more boards will have U-Boot tweaks made to them, in subsequent hotfixes to - the Libreboot 20241205 release, and hotfixes to U-Boot itself are also likely, + the Libreboot 20241206 release, and hotfixes to U-Boot itself are also likely, since U-Boot still requires a lot more testing. U-Boot does work quite well on a number of tested mainboards; if yours works, or doesn't work, please get in touch with the Libreboot project, so that a tally can be kept. @@ -144,7 +144,7 @@ In descending order from the latest changes to the earliest changes: * Removed the FSP submodule from `coreboot/default`, because it's currently used in `coreboot/next` instead (for Kaby Lake machines). * Enabled support in coreboot, on Dell OptiPlex 3050 Micro, for Coffee Lake CPUs. - With a special pin mod (currently untested as of 5 December 2024), Kaby Lake + With a special pin mod (currently untested as of 6 December 2024), Kaby Lake machines can make use of 8th-gen Coffee Lake CPUs, which offer greater performance and power efficiency. @@ -161,7 +161,7 @@ changes to the earliest changes): didn't cause any issues in practise, so this is a preventative bug fix, because projects that use the crossgcc compiler all set `xarch` properly, and none of the projects that aren't cross compiled use special prefixes - in their toolchain references, at least as of 5 December 2024. + in their toolchain references, at least as of 6 December 2024. * Add U-Boot first, on x86 coreboot targets, even though it doesn't execute first, because U-Boot has to be inserted at a specific offset. This avoids potential overlap errors in cbfstool, if it were to be added later on. This @@ -176,7 +176,7 @@ changes to the earliest changes): the VESA display an startup, since this is already done by the VESA driver. In some cases, you may want to keep what was previously on the screen, like for logos and such. We currently do not use U-Boot on VESA setups in Libreboot, - as of 5 December 2024. + as of 6 December 2024. * U-Boot: Merged an x86 patch from Simon Glass, that makes U-Boot silently disable serial console output, where one is not available; previously, it would crash if one wasn't available, on x86 machines. @@ -330,6 +330,6 @@ were intentionally delayed because this is to be a stable release. A lot of new work will now go into the next testing release, which is scheduled for the latter part of January 2025 or early February 2025. -If you spot any issues in the Libreboot 20241205 release, please do get in +If you spot any issues in the Libreboot 20241206 release, please do get in contact with the Libreboot project. We appreciate any and all help. Thank you for reading, and have a wonderful day! diff --git a/site/news/safety.md b/site/news/safety.md index 98336d2..c748973 100644 --- a/site/news/safety.md +++ b/site/news/safety.md @@ -20,7 +20,7 @@ implemented, and this page is still relevant for Libreboot 20231021. It applies to any system that requires vendor code to be inserted inside ROM images.** (it also applies to Libreboot 20231101, 20231106, 20240126, 20240225, 20240504, -20240612, 20241008 and 20241205) +20240612, 20241008 and 20241206) **UPDATE (16 August 2023): This also applies to the recently added Dell Precision T1650 mainboard.** From 332faa80c9b90c953486b6f1fb730b60a108936a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 6 Dec 2024 11:06:06 +0000 Subject: [PATCH 123/399] t480 and t480s are similar Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index a10374b..4b3b93b 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -116,7 +116,7 @@ The build target, when building from source, is thus: ./mk -b coreboot t480_fsp_16mb ./mk -b coreboot t480s_fsp_16mb -**NOTE: The T480 and T480 may be similar, but they do have several critical +**NOTE: The T480 and T480S may be similar, but they do have several critical differences in their wiring, so you MUST flash the correct image. Please choose one of the above build targets accordingly.** From 1c0b7b2aa8f6983b058cbf4f93b69f8091c78f4e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 6 Dec 2024 11:19:13 +0000 Subject: [PATCH 124/399] t480/t480 quirks Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 4b3b93b..d0c128d 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -139,7 +139,7 @@ Absolutely unsigned Intel ME! ----------------------------- Libreboot already disables the Intel ME by default, using `me_cleaner`, but -the T480/T480 specifically has an additional quirk: +the T480/T480S specifically have an additional quirk: One of the benefits of [deguard](deguard.md) for Intel MEv11 is that it sets the ME in such a state where you can run unsigned code in there. This is how From 21aec25c8d9dcbf28f58d1592def9fe4bdbc09a2 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 6 Dec 2024 20:25:36 +0000 Subject: [PATCH 125/399] made the t480 guide a bit less hazardous i repeated some info intentionally, and made some things clearer Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 48 +++++++++++++++++++++++++++++++-------- 1 file changed, 39 insertions(+), 9 deletions(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index d0c128d..c801fc2 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -123,11 +123,11 @@ choose one of the above build targets accordingly.** Installation ============ -Insert binary files +**Insert binary files (DO THIS FIRST)** ------------------- -If you're using a release ROM, please ensure that you've inserted extra firmware -required refer to the [guide](../install/ivy_has_common.md) for that. **(failure +**If you're using a release ROM**, please ensure that you've inserted extra firmware +required. Refer to the [guide](../install/ivy_has_common.md) for that. **(failure to adhere to this advice will result in a BRICKED machine)** Libreboot's build system automatically downloads and processes these files if @@ -135,6 +135,18 @@ you build Libreboot from source, but the same logic that it uses must be re-run if you're using a release image. This is to bypass certain restrictions on direct distribution, for files such as the Intel Management Engine firmware. +The pre-compiled images do not contain an Intel ME, so you must first insert it +using the above guide. Libreboot's build system automatically grabs it, disables +it after boot with `me_cleaner`, and configures it with [deguard](deguard.md) +to disable the Intel Boot Guard - this automation is either applied at build +time, or you can use it on release images. + +Again: + +If you're [building from source](../build/) via Libreboot's build system, these +files are inserted during build. You only need to manually insert them, using +the above linked guide, on the pre-compiled release images! + Absolutely unsigned Intel ME! ----------------------------- @@ -218,16 +230,34 @@ flash IC. AGAIN: This is not the Libreboot flash IC. This is separate to the system flash. Read on to know how to reprogram the main system flash! -Flash a ROM image ------------------ - -**MAKE SURE** to update the Lenovo UEFI firmware before installing Libreboot. -You must also make a dump of the NOR flash, before updating Lenovo's firmware, -and once again before flashing Libreboot, being sure you have good dumps. +Flash a ROM image (software) +----------------------- If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. +The default Libreboot setup removes all flash restrictions, allowing you to +flash internally, from a Linux or BSD systems running on the T480/T480. You must +also [disable /dev/mem protections](devmem.md) for internal flashing to work. + +Flash a ROM image (hardware) +----------------- + +**First, please assimilate all knowledge in +the [25XX NOR flashing guide](spi.md) - it shows how to program these flash +chips, using a dedicated flash programmer, which is something that you will +physically connect to the flash chip.** + +Again: this is only necessary if you have Lenovo BIOS, or if you enabled [flash +write protections](../linux/grub_hardening.md) on an existing Libreboot setup. + +**MAKE SURE to update the Lenovo UEFI firmware before installing Libreboot. +You must also make a dump of the NOR flash, before updating Lenovo's firmware, +and once again before flashing Libreboot, being sure you have good dumps.** + +Please ensure also that you've already dealt with the Thunderbolt issue, which +is described above. + Find videos online of how to disassemble this, and/or find Lenovo's own service manual online. Otherwise, observe: From 9b6df387baa18be80f1c673af76f90ef5591d775 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 6 Dec 2024 20:31:58 +0000 Subject: [PATCH 126/399] make ivy_has_common a bit less crap Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 13 ++++++++++++- site/docs/install/ivy_has_common.uk.md | 7 ++++++- 2 files changed, 18 insertions(+), 2 deletions(-) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index faa34bd..08d5340 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -1,5 +1,5 @@ --- -title: Insert vendor files on Sandybridge/Ivybridge/Haswell +title: Insert vendor files not included in release images x-toc-enable: true ... @@ -12,6 +12,17 @@ boards, for certain functionalities; we cover this more thoroughly in the [Freedom Status](../../freedom-status.md) page and in the [Binary Blob Reduction Policy](../../news/policy.md). +Libreboot can't directly distribute *all* of these blobs, so some of them are +downloaded at build-time, and processed for insertion into the firmware images. +**On pre-compiled ROM images in releases, these files are removed, and can be +re-added using the same automation that was applied during the build process.** + +Examples of vendor files can include, for example: Intel ME (disabled after +boot with me\_cleaner), Embedded Controller firmware (e.g. KBC1126 EC firmware +on HP EliteBooks), VGA ROMs (e.g. Nvidia GPU ROM for Dell Latitude E6400), +and so on. Without these, your machine may not boot correctly, or not boot at +all! + Therefore, you should just follow this guide if in any doubt. Otherwise, the freedom status page lists all boards that require vendor files, and it says what they are. This is because Libreboot cannot directly distribute some of them, diff --git a/site/docs/install/ivy_has_common.uk.md b/site/docs/install/ivy_has_common.uk.md index d5edc98..abf7b53 100644 --- a/site/docs/install/ivy_has_common.uk.md +++ b/site/docs/install/ivy_has_common.uk.md @@ -1,5 +1,5 @@ --- -title: Insert vendore files on Sandybridge/Ivybridge/Haswell +title: Insert vendor files not included in release images x-toc-enable: true ... @@ -9,6 +9,11 @@ If a given target does not require vendor files, none will be inserted. **TODO: Re-translate this again to Ukrainian. It was translated before, but the english page got heavily re-written.** +Libreboot can't directly distribute *all* of these blobs, so some of them are +downloaded at build-time, and processed for insertion into the firmware images. +**On pre-compiled ROM images in releases, these files are removed, and can be +re-added using the same automation that was applied during the build process.** + **NOTE: This page also applies to PM45 machine Dell Latitude E6400 if it contains an Nvidia GPU (Libreboot vendor scripts can insert the VGA ROM)** From 7e1fa9ff12009b5d309b17a317c772dea6bae352 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 6 Dec 2024 20:40:15 +0000 Subject: [PATCH 127/399] make it rainbow Signed-off-by: Leah Rowe --- site/favicon.ico | Bin 2076 -> 6977 bytes site/global.css | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/site/favicon.ico b/site/favicon.ico index 212bb32e106621165baf5e5f8ac5ee4e20bea700..c9191b964c1cfa40cce95ff6202a6753f841b97d 100644 GIT binary patch literal 6977 zcmV-H8@}X;P)iZ za}`!q)v&4>R#n5Qsv1^R!>YzbTgXJ35)>Qi@ zE8uxvYOlv7y%?gUZn1_{ot;ujUYV}OEc=Krxz8OQb+0Bwi#4q3Y^_f>^re?2U-lCh z`kM{=YFOt+4Qs}{Px*$w`#FjxG#0ys8dkNnu$DdF2Ykvu{X!5ewDZ$8wp|UY+EQ50 z_CoLX$wOzXD4J{LCWEFM)Uc{8g|+C}KI%*U;TMX0(o11c5QG|5b*iu$jnDbMEBx0U zkDYM1VRgDDmn;aD28$=mtAR+MMe$yr@+{ABoJ8qe*SpKjX3Tr3S04KRpgTYi4&8s9QVpvbrEwXjaezP%7g?7GmrfOJKQ5?9}068dkM7UGGy#?ULvDkk7c+ z?e26PLJjNeRekQQ_Zu3WPx-o`p^N=l5G{5Kr3p=_VV$)a*5=b;tMzZcktJ(id+1$KDU zZLXE{vfji<5CqYtHneHBosCV1p@vl*JxFSt#-P#qgsrHG5f&+m~yV!Oigc{cWs#KC;Ka@*R6o(s__X%GS zMQ5wmyWNc*aknfvTntgbfzVPL+eQs*`x~c&uSqOQaF`$eZx@%b5z%);d(zxW3 z0~A@2gb;NWEPK9}mseT#Y;)#4)rN+yb&)lDwrN;(U3;G7NkDKMMfL?h6a-I|H7hRl z4@Cy^?Ofl*uHB|#Rees=aT;|6sU#3IKIeOa;;E1%=lhf17|b)~ zdy8ByfTA4b5Qli0HO`_00Gv3T%Q^yVBe3cy0ClN#g$R{Xf6f8wD$Bf$*O1dA3T>LEx5hXC zXWS%AHCWqAYx%kcf*5IX%feS7m_Nxw9OnRIS+R6n+Z!FUiC7qE&@mc6p)L^@ou_nXPok}8&u{9ma`8rJUR#=~^l&$(LY=nzmIK%7t`*)t2*I?CPwU$1L z#rY2&S1YWK08KOUW52Z=4spN!8-i#&;8yC2RrkCHT`$%JVBxawr)ih4K6)$XOR6T` zN7%Fq*kS)5`}M8$8KhO!n<>_dE=Y@oD}NX#%@I7+s#Rj*bQob92d2KjX<&c(dX9yM zYp^C%_hlK$uAp<}ci9Qpgbm2 z;d1eL`klby+59z}^bb&jMXlwZNCJv9CVy20D^{{&!#8uRd_6T-wW>!H ziN)Re^B8rQP{u1lG_F!9AgxS=@qVRvoP)!^t--1lRfIx&WnXAsg}v#8NB|Rj6|DH1 zYMzy@%zJvpK@RkPzm6NKs{Iu^KLm62S0mmdu?mggl8}Hh(YU8+G2N3F$2idab*KZ< zT16=7l|9e`Zhkq;--7WGrdYB3u|k0v{|+TZahzw@ez^uKscw^@b1U5PLJ)(f zCswTlRD!GGt1AAh$d7S&^%tnYimJVp=5XEj!mjsYtO!?xDUO~oUfg}kf5`jXJfge3{el!hMqKHtObEARLbN=?@e{8C{Dlct?W?*P)C)R*>wg4xz9-YAv2uAo;kTl3Pk>3e z#))Gu0SXqf1vOH~4Hw|?MGBXE4qW!xfb!f@Bt;LHDrC5^srLg;9{FL=AsyS!Gn+MP zur7#7wMI|{fIaUI*L(wLgPEiO2@xpqX)2WJYaUJ?{9e!j4bv#vu9a-Ql{g1Z{)1Ah?;~8k=_$iph*iJ)3cg3I_KRx+P^7ci zr^zccE!=(u?7kT0c7v~0qy$&0Sd-5hfG}0n05wGs`7*^5-wc}9VEr#{Ru~^7%fJtP z&|uk!6bSLc06Pp^(tw?9SX_Xm9Yj!?lkkKHO?uX1@*i&|0HbEkxELJ8KmM&isKMHN zfxcZ{gD4@s1qSi-q=Xp>v60;W|Uv zF!T$d7lc7B3`(KMg%CJ@sfEx;P*tYGc%Pn4_giVYY(tnm<01^;t)Bv9Wa6}wb)*Js zgFto5-e?@Fy%R3JR(O{W6!u(U7zF66&@F`ZB96TRdZSV3=R#fzMX^b61qYg@L^M^b zi3(PE-eUTSu|XUy&#CTH@aVSy!eV0qL8!qxHxoYcO=F-$VAo~vgfx;)51Qe`GMCL!gEiZM8NOfktk(d*(nauH-wD@W z2O^AxD)h@#vEmd+rGllZ6@eR9twA9S3!yB8^Or=ZqTh-Tk-$nQq+gH%WE)7kfv=4AlnYCB9z)IdjQfe;0wPTKH+1a)tVMHKrdFV z1k>oAam8Z2WK^lfQ)I6o!c_|Srom-Ma5W-4Q%!w!TFCYzMGnrCKl6Ex@pV7rhehyp89bu7X0WNRoV38i^N`>eb6*wHu5) zm%*2uztn(c$zxRveH^F5RfTC1um%8xA-wg&fL+g>=xQ86i4xKvj58U;3oB*K+qh`3VBBV2K% z7%P`zhtiUrvS41mKk(^r}m&8_^@kZDPR`s}~RJkI2qw#eAjhxE=Z7YHm zztyL}-R}n9_lIcl32k!&#wL&Lw{teg0+UC+;9uL=-WUVfFr?WIA`DNx zzZtH(2EO3apg9NF4Z@W&t_V<^8tGM1dJ`dw85c3@f_{Q)GXvBFgOB56)Nn3Mf|D87 zbO~sQtlS6d&%oM!Xz$IK_T98D|3+*w^p&ac^w~dRFuV^yml}&(Z&j$E-J%=DU7Z@> zrT5099ha_+z*Wt-((g1iR*ikET2x|)vfShVHLVKcSnYtA-Y0)fO@aoBQ?T|Jth@zI z{{d(lqy=N?DOxxGF(&9l)$)UkI8(jUi1qX7KXf(O$<;Q6}To$y-qXp&lgEF0AO$kdI#b7 zpTgRIfY}WQFe$U|vv7Mp8WUH8m8!LT^r!K~(+DOkHs%e$Rs~B}^EDBHmwYE&cQpwr zSG_g@SD6A-Vr8Og=BEUxgUt?5Q^r;CT$5AZEO51<2+&`HwP)ez??T+Db)i#?5)3nm`>Ge`I2J!pBbF_L%^i(9d1>yR!7w;$owMw(hq@cOhA?HEg&1u zxVlqJeSB8UxcXJNHn~YKc`eEeRy;g#0Mx*(cR_OpnE41**#K{$ba7le4ToO?EBgTj zs>+PRiPMH{2vq;_0&vAwVfK6|;;V*D0&WUe z=bv$f2!N?kQDja#}o( zj0<|PLQQ5}>58kw%??llFbMG09FCMQR7ijzA_NUgSNd~KTr}1QGUM9~uKp(2^C5te zGOhwW`B(U3zYQ>T3fyXOgYT6+yR-;D@paIdo9eG7pIOdX8sUo7sZy~jiT&t)98p9w zzu_jq1k)2a94+Crf>uG9&*tM9R}lmNNC+E9=!hhgW_-aPx5Jrvxa;S^&Q$}{{$avn z-v*jjx>C0^SS$G&pxksdyzmPqVVYPOx=jmEE2e#IO6BUMk$yoXou4WN3WaA2I8(y0 z0B02p6}4@fw-wGYXRn4YHA`Zi+MZ zf2$oS1Puna5AOU4FfEb-JpH3^_TPw8;9PLVnk^5O51#e1i!ty^Uj+;E6Y$Jlxnwf} z)CAPoH8^%mIDJN0??P`)>77yXWeBUFJw;7MU1p^N^-3tr%z*vKW@Zjfw?7|={Bww{1z)Ihh`KUYL%ienipk{hD9j0L(Vfy1g zgMax8m_&g%9Ym1IrfoR3q|*PkEZzY(e-~&Q)Izxe4}KN+US$QiZNT#CM`v{gg_nOC zT(=vL4NilTS4F)ZyzY(go4*e0r$Mzkbs2=Ym@;o^={tl06T-kC> zCkWdBD0*cduO3BVtbOkWH++7qR;9utKML!Q0?@WC8n&@LHmoX2ujmJ_-Y5#d_kS$h zbs1HeSyzVB{nk+7Wj_k{y#_=8z>3k1nigzwkfoJyBVg}1y_>ot^vyTB1 zjd#bjjS&OD_WC$M6wbjlx4~t10&`#%AvD1|c=V6q)cq5&!j=Q8SN14_S4D-YP=QZ> zH~7e#U}uNtmOXcWb?_9t_^05+AplaN+BW*;VZZFB|81>-d+vhWmxGz7dYVlJkNpE2 zy>9}ltp!&4AW=%UOSp0me9WzI=cRDTBD5Qz%50k5$n)?s@UowW?h0dbT4u&Mwuy#5 z_X9t$00iK!OW~@kB2d+BWf7_;-U!dWZTuH(m+yw9 zRs>1eh@RiDi-R{k6`=}&aofkJm1J8&wJU>nzZ@2JfNxB8p$>q@AAmzo093wQu_eJ8 zlmmt#=kgu!>W=~%Kn7wtKgo0xuMYn6QTWl{0+BIP3m6f$ixds3`I-UXng+bvJ}?ve z6ytbo8Q$_{@L>#<@3^)F*s@@C%bu2@lux`7KIcx5jCeHwvx#tJaV!M>{4MZ1e-8kH zj9yL1HiD|sq-TLo-2tvyJ=LbjV5NjNKM8BYDW}G4S+HW-tH9UX1s`}7NV5tT!ud%O zRQ&+2`dfJ06X})9T-Gsyu+22uXc7nlz;zBf4mufR4LDiA(`!&_C8wKn9dE=~V0(a- zE8P1YaO>U#)TY8^;6xw3>yKb{9RM08qwU&kOGSTG4*b9|RSBrJZKnX{XKSUk)F6 zX#z+Z5hyCZXM?No@E`vLZ#)36e;S+t0E6-K*_;&-wzX=oqQ45j_g)LP?f^+J#cCBt ze*F>n%O~K*eefPv!BPhfmiJTaS5#PRQLxc;4hAX#9g*AXQ@?#HOtoRZ)m}tt;vYt zpobsa4?$x(KA+7QYSm!PQmy8I7d4@ifuxI71K)ob)&i+L`%xcwORhrJO1HJ{YB;6I_ZZQrn&C8<^o7L=n()wKW(;Cq0JdFR>>{4#K|hHAQMu&OVU1Mos% zFI5R}2KZ;-FMw8R6DF&tzZ$G5yKA%vg$!e*;s!v7DuJhf2O>~(h%$(_Mn>HUwQ8`Y z^s7^9$(6uo0y(fBcocYBgb72G0xi=V^`A3cwQ8`SU-m;D3d3|^!~`qWbY|LZT&o5v zO^2Zjr6?+bjQge#5sfe*Y*e-C97}70Hm(}1TD5AhYSm!Xs==yNs|Ksq|7ZO-YhUV! TXMfH~00000NkvXXu0mjfoz66C literal 2076 zcmV+%2;=vOP)lFGbIH7U;eM9rG+d2B&cuSzAY*& z+HSOk(`3p1;=fQGy1ToH5J0$WY-sd)@=RMsokL`){EHVI72Vw2jMopzfrtVuv^Q_w z)YsShc=;Hq>92FLZd|(#Pehgsur@I<5g!}3f7_mQOV)#X4+aMZ;k@x`$#S5os%kxN zL-}7z9o%!^>7ysPIk_`cq1b@DbLsp=u0+GAh{&ZdWn*s5q0|8Zj))HI;?~yIo7Zk| zD0M(seEISv5gOy;Kwn>< z#c^{^mpf=o^!E0WMe*s=r;Ln@&3YTTUK<*#8(?#hg@N4F$<~po4pZi2=eT%YT3b^~ z^{iP-N=PJ&qP(n}k~M3cot*;en93?j)|6>UtD%uY76s%$O4gK}J9U-_LPdE6C2Pu3 zl9Gual$MlIvZhQJv7w~6gh$D;Hnk!`06iWaB`Yg4iwJ?TvNEodh5n$h5@=;5r^&K0 zwL)Ku2#3~|R_>B@;@~lnS`}TLUCMu!=OS4siAB=+0B8~#|5f1}S%H255L<|dfGDc= zFC`9<<>Bn!+|*3O0#tUDzbdSAvUKG&9jxpk!y~Yd&{-hjqM@OI_ZyitOqS~36g2;* zsw1m`F%7dLCu}XO&!0Z$l9j2n)d4bg;Ht?PQrA zK8~gfmJfp+mN7Ump!9p$)l1gCt-Euwb1()(Rsr(!@>lOn>Al-`pFe+2RtL~|J$vfR zY9vefk8-gwG4R%8)c_M8s()8Gym^viu0yy-; z`?Vy=N=`~3<+hm0n>g+8ZgObsG>XD&6ZL_1;&V; zIG8T+)M4MYJ&1-Y9>tI-pcsUngYO|dWA?kTu@PsTTpgShel5j#=Csr_##TU{$VO87 z_~GLf*@O6^STY#xM(%>gQ2LXct%Z$~t%HY)8;Voqzbq)dZ#CG&cz1D+4Gs>oK~`mD zC7T3c?VzYa2*#kX*8f#Se_$-DRQ`7t`_bZ*G@NjY8X|iou9yl*I zkAIzJWo01(vP2dRge-AeAq+t&PfJOCaOXbm7f||(oCF)R=GOc*Y*SN{=KoaKQynmQ zAs$EY6qpA>I9L3WENkj^U2PqIOL2$ER`w(s_(i-?VuUcXZDx)~vL=>C_C_KT8XSVl zgb+}~h-kiEKCIEC^anYtCP-9_wj-jdyR(~Ql~Qy)aZVO5SiJlbN0B97)a&W)KC<@^n@sKA zyc02m{~6%3;5}w8YGZ>eoFXQoqr9vPp@97cI7R}J5|hy1MdgT2gdR_e)$R^rEfEC> zlsJux9w+B+z_mJIfyFGmz=r0Mm8k_suM5U-%e>ltM@I+Z3)lfLlZOG$=*TF>m1x`| zOZiXoBO@aWruzH(jaBuhg0z(C{_T5@A2_-}%ZNuWqP}_c24fGxA7Rpr-r7BnH8nOe zR1|0?^osNOT{}arDkvzJe^{E5h3*jH0}eyZuToO7E}T8jUo@b70$)DQ-=t(I{89?t zB>oa~!TOGpm6?%Az5#>1O@?{c}~|g!lwSoKT=-@o&Ak1r6j^oO)pP)F@ePt!;!4*onAk1CkK)UsAHv z|E<*C-i{n Date: Fri, 6 Dec 2024 22:36:58 +0000 Subject: [PATCH 128/399] show t480 on homepage mkukri is awesome Signed-off-by: Leah Rowe --- site/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/index.md b/site/index.md index 1ad313b..a49d281 100644 --- a/site/index.md +++ b/site/index.md @@ -15,7 +15,7 @@ on [Libera](https://libera.chat/) IRC. The [tasks page](tasks/) lists what we are working on (contributions are welcome, if you want to work on some of them yourself). - + You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, aswell as send your compatible hardware @@ -39,7 +39,7 @@ is *why* Libreboot exists. Overview of Libreboot design ============================ - + Libreboot provides [coreboot](https://coreboot.org/) for [machine initialisation](https://doc.coreboot.org/getting_started/architecture.html), @@ -64,7 +64,7 @@ still [reconfigure](docs/maintain/) Libreboot however you wish. Why use Libreboot? ================== - + If you're already inclined towards free software, maybe already a coreboot user, Libreboot makes it easier to either get started or otherwise maintain coreboot From fe741e7acc186544328633283f57ec5f176956d4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 6 Dec 2024 22:44:19 +0000 Subject: [PATCH 129/399] add t480 pic to the release announcement again, mkukri is absolutely awesome Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 3285980..75ab4b4 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -42,6 +42,8 @@ Summarised list of changes Board support ------------- + + The following boards have been added since the Libreboot 20241008 release: * **[Lenovo ThinkPad T480](../docs/install/t480.md)** support, implemented by From 3f41235319df361429b097b8f409f378e328fee8 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 6 Dec 2024 22:52:26 +0000 Subject: [PATCH 130/399] also add uboot screenshot it's the 1205 one, i'll re-do properly with 1206 later Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 75ab4b4..cd3a305 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -26,6 +26,8 @@ and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). + + For Libreboot 20241206, today's release, U-Boot is *also* provided as an optional coreboot payload on x86 machines. This provides a sensible UEFI implementation, useful for booting Linux/BSD systems more easily. More @@ -39,11 +41,11 @@ in addition to numerous new mainboards. Summarised list of changes ========================== + + Board support ------------- - - The following boards have been added since the Libreboot 20241008 release: * **[Lenovo ThinkPad T480](../docs/install/t480.md)** support, implemented by From c372dde2d56f234c0072583eecb16ae622e6f254 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 6 Dec 2024 22:53:37 +0000 Subject: [PATCH 131/399] move the pics a bit Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index cd3a305..cfb99b1 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -12,6 +12,8 @@ LIBREBOOT](safety.md).** Introduction ============ + + Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an operating system (e.g. Linux/BSD). It is specifically a *coreboot distribution*, @@ -26,8 +28,6 @@ and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). - - For Libreboot 20241206, today's release, U-Boot is *also* provided as an optional coreboot payload on x86 machines. This provides a sensible UEFI implementation, useful for booting Linux/BSD systems more easily. More @@ -41,11 +41,11 @@ in addition to numerous new mainboards. Summarised list of changes ========================== - - Board support ------------- + + The following boards have been added since the Libreboot 20241008 release: * **[Lenovo ThinkPad T480](../docs/install/t480.md)** support, implemented by From 1a5937905b359fff8925cd784bee54952647afaf Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 6 Dec 2024 22:57:56 +0000 Subject: [PATCH 132/399] also add u-boot pic on u-boot page and i won't bother changing the pic. the pic is fine. Signed-off-by: Leah Rowe --- site/docs/uboot/uboot-x86.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/docs/uboot/uboot-x86.md b/site/docs/uboot/uboot-x86.md index 7e354fd..57fc308 100644 --- a/site/docs/uboot/uboot-x86.md +++ b/site/docs/uboot/uboot-x86.md @@ -6,6 +6,8 @@ x-toc-enable: true Introduction ============ + + U-Boot is available as a coreboot payload, in Libreboot 20241206 and later, on x86 boards; on ARM it has been available since late 2022 Libreboot releases. From f191930c1fed1c917c2cbdaf341e8f9949d86906 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 8 Dec 2024 02:01:27 +0000 Subject: [PATCH 133/399] swap Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index cfb99b1..604c76f 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -12,7 +12,7 @@ LIBREBOOT](safety.md).** Introduction ============ - + Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an @@ -44,7 +44,7 @@ Summarised list of changes Board support ------------- - + The following boards have been added since the Libreboot 20241008 release: From 853f2db51d6c6bab5f327f725e31c2ffd2cf4de2 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 8 Dec 2024 02:06:17 +0000 Subject: [PATCH 134/399] Sex up the release announcement title a bit i've realised recently that libreboot release announcements are very boring. most people need to see something that draws them in - simply saying "Project vFoo released!" is not enough. Ditto pictures; I added pics at the start of the article, in previous revisions. I'll start being wiser to this in future releases of Libreboot. Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 604c76f..60e34ce 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -1,4 +1,4 @@ -% Libreboot 20241206 released! +% Libreboot 20241206 released! ThinkPad T480 added. Plus U-Boot UEFI on x86. Fixes for OptiPlex 3050 Micro. % Leah Rowe % 6 December 2024 From 4fa9b69411e578c90c5d33b2c52fa66a8873c99b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 8 Dec 2024 03:37:12 +0000 Subject: [PATCH 135/399] add x200 u-boot pic Signed-off-by: Leah Rowe --- site/docs/uboot/uboot-x86.md | 4 +++- site/news/libreboot20241206.md | 10 ++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/site/docs/uboot/uboot-x86.md b/site/docs/uboot/uboot-x86.md index 57fc308..03745dd 100644 --- a/site/docs/uboot/uboot-x86.md +++ b/site/docs/uboot/uboot-x86.md @@ -6,7 +6,7 @@ x-toc-enable: true Introduction ============ - + U-Boot is available as a coreboot payload, in Libreboot 20241206 and later, on x86 boards; on ARM it has been available since late 2022 Libreboot releases. @@ -53,6 +53,8 @@ Here is an example of what it looks like on the boot menu: Boot Linux/BSD installer (USB) --------------------------- + + Just stick your formatted USB stick in. U-Boot should detect it. Sometimes some USB flash drives are broken, because many of them violate specifications and U-Boot doesn't properly hack around that like Linux does (buggy USB mass storage diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 60e34ce..02e3cdd 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -28,11 +28,21 @@ and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). +U-Boot UEFI payload on x86\_64 +------------------------------ + + + For Libreboot 20241206, today's release, U-Boot is *also* provided as an optional coreboot payload on x86 machines. This provides a sensible UEFI implementation, useful for booting Linux/BSD systems more easily. More information available on the [U-Boot x86 page](../docs/uboot/uboot-x86.md). +This means that you can have a UEFI boot environment, even on machines where +the original vendor firmware never supported it. For example, the ThinkPad X200 +in the photo is running U-Boot, and booting a distro via U-Boot's UEFI +implementation; that machine could not originally do UEFI. + This page lists all changes made since the *Libreboot 20241008* release. Since it's a stable release, there has been a more conservative focus on fixing bugs and in general polishing, though several interesting features have been added, From 66a862b10a1cec24160c67633e83dcc377226edd Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 8 Dec 2024 03:40:39 +0000 Subject: [PATCH 136/399] move qemu pic further up on the uboot page Signed-off-by: Leah Rowe --- site/docs/uboot/uboot-x86.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/uboot/uboot-x86.md b/site/docs/uboot/uboot-x86.md index 03745dd..0974e3b 100644 --- a/site/docs/uboot/uboot-x86.md +++ b/site/docs/uboot/uboot-x86.md @@ -28,6 +28,8 @@ reliably boot many Linux and BSD systems. Availability ------------ + + Do this in lbmk.git (Libreboot's build system) to check whether your board has U-Boot enabled: @@ -53,8 +55,6 @@ Here is an example of what it looks like on the boot menu: Boot Linux/BSD installer (USB) --------------------------- - - Just stick your formatted USB stick in. U-Boot should detect it. Sometimes some USB flash drives are broken, because many of them violate specifications and U-Boot doesn't properly hack around that like Linux does (buggy USB mass storage From 7c0d9349ed8871fa7c01e5861fc9dcc218ca3045 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 8 Dec 2024 16:41:23 +0000 Subject: [PATCH 137/399] uboot errors Signed-off-by: Leah Rowe --- site/docs/uboot/uboot-x86.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/site/docs/uboot/uboot-x86.md b/site/docs/uboot/uboot-x86.md index 0974e3b..00219d2 100644 --- a/site/docs/uboot/uboot-x86.md +++ b/site/docs/uboot/uboot-x86.md @@ -52,6 +52,16 @@ Here is an example of what it looks like on the boot menu: +Errors +------ + +If you see error `-25` in the bootflow menu, it's because there's nothing +installed that i t can use e.g. EFI bootloader such as GRUB. + +If you see error `-2` it's likely that you have tried to boot a USB drive +automatically; sometimes you have to do it manually (see the section below +about using the bootflow command manually, via `bootflow select`). + Boot Linux/BSD installer (USB) --------------------------- From 670df4e5e3e034068497698e39764160059004fd Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 8 Dec 2024 17:17:43 +0000 Subject: [PATCH 138/399] t480 verb Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index c801fc2..dee8ee9 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -108,6 +108,16 @@ are still available even on Nvidia models, so Intel graphics are used. WWAN slot untested. +Headphone jack +-------------- + +Sometimes the headphone jack might not work automatically. Simply install +the `pavucontrol` program. Under Output Devices, you can select the headphones +you've inserted manually. + +If it says "Unplugged", try it anyway. The HDA Verb may be incorrect. This +will be investigated and a hotfix patch made to the Libreboot 20241206 images. + Build ROM image from source --------------------------- From 0cd6d8de10b3a5cd3f9024117490635cb19943d3 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 8 Dec 2024 19:58:26 +0000 Subject: [PATCH 139/399] remove a fact that is no longer a fact Signed-off-by: Leah Rowe --- site/docs/misc/emulation.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/site/docs/misc/emulation.md b/site/docs/misc/emulation.md index 74def10..23d7d5f 100644 --- a/site/docs/misc/emulation.md +++ b/site/docs/misc/emulation.md @@ -53,8 +53,7 @@ qemu-system-aarch64 \ -bios bin/qemu_arm64_12mb/*.rom ``` -NOTE: After the 20230625 release, U-Boot support was removed from x86 Qemu. -It works fine on the aaarch64 one. +U-Boot is also available on the x86 QEMU images. Use Cases ========= From 0eb22b1fa8d8d0c84372fb91f0d9000e5f1966e7 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 9 Dec 2024 02:23:17 +0000 Subject: [PATCH 140/399] add release errata/revisions Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 12 ++++++++ site/news/libreboot20241206.md | 52 ++++++++++++++++++++++++++++++++++ 2 files changed, 64 insertions(+) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index dee8ee9..b21e9f3 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -364,3 +364,15 @@ be less clearance; using a smaller internal battery and having a makeshift NVMe caddy in the remaining space would be how to go about it there. On the regular T480, the existing caddy area could easily fit two NVMe drives. +Errata +====== + +On ThinkPad T480/T480S, headphone output works; the internal speaker is disabled +but audio is not automatically redirected to the headphone jack. This switching +can be done manually, for example in the `pavucontrol` utility: + +Output Devices -> Select Headphones on the built-in audio. + +Pavucontrol will specify that the headphones are not connected, but you can +select it anyway and it will work. This will be fixed in a subsequent revision, +and the corrected images re-uploaded to the existing Libreboot 20241206 release. diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 02e3cdd..bbd2559 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -347,3 +347,55 @@ latter part of January 2025 or early February 2025. If you spot any issues in the Libreboot 20241206 release, please do get in contact with the Libreboot project. We appreciate any and all help. Thank you for reading, and have a wonderful day! + +Revisions +========= + +Revision 1 +---------- + +A bug was found whereby `seabios_` images are created twice, This was fixed in +the revision `e3b77b132e6b5981c09bc1ce282afaae64058ab3`. This bug caused vendor +file insertion to fail on release images, because the `vendorhashes` file would +list the file twice, but one of the hashes would be wrong. + +This is because the build system wrongly created U-Boot-only images first with +that name, because the `add_uboot` function in `rom.sh` unconditionally created +images with U-Boot in them; the function also creates ARM64 images, where U-Boot +is the primary payload. + +On x86 machines, SeaBIOS should be the main payload, chainloading U-Boot. + +The build system would then create the actual `seabios_` image, replacing the +other one, on x86 machines. + +So, the command to create the first image was removed. However, just before +uploading `rev1` images, it was discovered that this would cause no U-Boot +images to be built for ARM64 devices, which lead to Revision 2: + +Revision 2 +---------- + +See commit ID `b910424b5df8ed7c931a7b8f5cc8e34eacf0ca3e`. + +Revision 1 was reverted, and replaced with the following logic instead: + +In `add_uboot`, the instruction to create a ROM image was changed so that it +only creates one where U-Boot is the primary payload (which is the case for +ARM64). + +The source archive is now `20241206rev2` instead of `20241206`, and the same +is true of affected images on x86, where `vcfg` is set in `target.cfg`. + +Errata +====== + +On ThinkPad T480/T480S, headphone output works; the internal speaker is disabled +but audio is not automatically redirected to the headphone jack. This switching +can be done manually, for example in the `pavucontrol` utility: + +Output Devices -> Select Headphones on the built-in audio. + +Pavucontrol will specify that the headphones are not connected, but you can +select it anyway and it will work. This will be fixed in a subsequent revision, +and the corrected images re-uploaded to the existing Libreboot 20241206 release. From da5734ac3426a2a690a56bce0d3a8693f62eca26 Mon Sep 17 00:00:00 2001 From: ezntek Date: Mon, 9 Dec 2024 19:05:02 +0800 Subject: [PATCH 141/399] add thinkpad_acpi notices for the T440p, W541 and T480/T480s --- site/docs/install/t440p_external.md | 8 ++++ site/docs/install/t480.md | 68 +++++++++++++++++------------ site/docs/install/w541_external.md | 14 +++++- site/faq.md | 45 ++++++++++++------- 4 files changed, 88 insertions(+), 47 deletions(-) diff --git a/site/docs/install/t440p_external.md b/site/docs/install/t440p_external.md index 0bf7166..6339ba2 100644 --- a/site/docs/install/t440p_external.md +++ b/site/docs/install/t440p_external.md @@ -99,6 +99,14 @@ You should now be able to see the two flash chips near the RAM.\ You can now proceed to [flashing](/docs/install/spi.html) this machine. +`thinkpad_acpi` issues {#thinkpad-acpi} +--------------------------------------- + +It has been reported by that `thinkpad_acpi` does not load correctly on the T440p. + +If you encounter this, check [this page](https://libreboot.org/faq#thinkpad-acpi) +for details as to how to fix this. + Errata ====== diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index b21e9f3..8eea63f 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -1,9 +1,9 @@ --- -title: Lenovo ThinkPad T480/T480S information +title: Lenovo ThinkPad T480/T480s information x-toc-enable: true ... -Libreboot supports both the T480 and T480S variants. It is available in +Libreboot supports both the T480 and T480s variants. It is available in the *Libreboot 20241206* release or later. **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), @@ -16,19 +16,19 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** | ***Specifications*** | | |----------------------------|------------------------------------------------| -| **Manufacturer** | Lenovo | -| **Name** | ThinkPad T480 | -| **Variants** | ThinkPad T480, ThinkPad T480S | +| **Manufacturer** | Lenovo | +| **Name** | ThinkPad T480 | +| **Variants** | ThinkPad T480, ThinkPad T480s | | **Released** | 2018 | -| **Chipset** | Intel Kaby Lake Refresh | -| **CPU** | Intel Kaby Lake Refresh | -| **Graphics** | Intel or Intel+Nvidia | -| **Memory** | DDR4 DIMMs; max 40GB (T480S), 64GB(T480) | -| **Architecture** | x86\_64 | -| **Original boot firmware** | Lenovo UEFI firmware | -| **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. | -| **Intel Boot Guard** | [Pwned](deguard.md). Disabled using the deguard utility. | -| **Flash chip** | SOIC-8 16MB/128Mbit system firmware | +| **Chipset** | Intel Kaby Lake Refresh | +| **CPU** | Intel Kaby Lake Refresh | +| **Graphics** | Intel or Intel+Nvidia | +| **Memory** | DDR4 DIMMs; max 40GB (T480s), 64GB(T480) | +| **Architecture** | x86\_64 | +| **Original boot firmware** | Lenovo UEFI firmware | +| **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. | +| **Intel Boot Guard** | [Pwned](deguard.md). Disabled using the deguard utility.| +| **Flash chip** | SOIC-8 16MB/128Mbit system firmware | ``` @@ -43,9 +43,9 @@ P*: Partially works with blobs | ***Features*** | | |---------------------------------------------------|----| -| **Internal flashing with original boot firmware** | N | +| **Internal flashing with original boot firmware** | N | | **Display (if Intel GPU)** | W+ | -| **Display (discrete CPU, SeaBIOS payload only)** | N | +| **Display (discrete CPU, SeaBIOS payload only)** | N | | **Audio** | W+ | | **RAM Init** | W* | @@ -56,7 +56,7 @@ P*: Partially works with blobs | **SeaBIOS with GRUB** | Works |
-Regarding memory: T480S (S model) has 8GB onboard RAM, and an available DIMM +Regarding memory: T480s (S model) has 8GB onboard RAM, and an available DIMM slot on which an additional 32GB SODIMM can be installed. The regular T480 has two DIMM slots, allowing 2x32GB DDR4 SODIMMs. @@ -74,10 +74,10 @@ source](../build/), or alternatively an image from Libreboot 20241206 or higher. Official information about the T480 can be found here:\ -...and information about the T480S can be found here:\ +...and information about the T480s can be found here:\ -This port is implemented in Libreboot by merging Mate Kukri's T480/T480S +This port is implemented in Libreboot by merging Mate Kukri's T480/T480s patchset. See: - as of 5 December 2024, Libreboot's code matches that of patchset 22. @@ -118,6 +118,16 @@ you've inserted manually. If it says "Unplugged", try it anyway. The HDA Verb may be incorrect. This will be investigated and a hotfix patch made to the Libreboot 20241206 images. +`thinkpad_acpi` issues {#thinkpad-acpi} +--------------------------------------- + +It has been reported that `thinkpad_acpi` does not load correctly on the T480. +This should also be the case for the T480s. + +If you encounter this issue, check +[this page](https://libreboot.org/faq#thinkpad-acpi) for details at so how +to fix this. + Build ROM image from source --------------------------- @@ -126,7 +136,7 @@ The build target, when building from source, is thus: ./mk -b coreboot t480_fsp_16mb ./mk -b coreboot t480s_fsp_16mb -**NOTE: The T480 and T480S may be similar, but they do have several critical +**NOTE: The T480 and T480s may be similar, but they do have several critical differences in their wiring, so you MUST flash the correct image. Please choose one of the above build targets accordingly.** @@ -161,7 +171,7 @@ Absolutely unsigned Intel ME! ----------------------------- Libreboot already disables the Intel ME by default, using `me_cleaner`, but -the T480/T480S specifically have an additional quirk: +the T480/T480s specifically have an additional quirk: One of the benefits of [deguard](deguard.md) for Intel MEv11 is that it sets the ME in such a state where you can run unsigned code in there. This is how @@ -170,7 +180,7 @@ restrictions; more information about deguard is available on a dedicated page. The deguard utility could also be used to enable the red-unlock hack, which would permit unsigned execution of new CPU microcode, though much more -research is needed. Because of these two facts, this makes the T480/T480S the +research is needed. Because of these two facts, this makes the T480/T480s the most freedom-feasible of all relatively modern x86 laptops. With deguard, you have complete control of the flash. This is unprecedented on @@ -279,12 +289,12 @@ which then allows you to see the inner mainboard: ThinkPad T480 PCB **WARNING: PLEASE MAKE SURE to remove the battery before flashing. The T480 -and T480S can both contain INTERNAL batteries, and the T480 has an additional +and T480s can both contain INTERNAL batteries, and the T480 has an additional external battery. Remove the internal battery via the connector, like so (T480):** ThinkPad T480 internal battery -On the T480S (S model) the internal battery is much larger, and the connector +On the T480s (S model) the internal battery is much larger, and the connector on it is built into the battery, so it is necessary to carefully remove the entire battery; on regular T480 (non-S model) the internal battery can be isolated via the connector as depicted above. @@ -302,7 +312,7 @@ To be clear: the system flash (16MB) is what you put Libreboot on. The Thunderbolt firmware flash is much smaller, so you'll know because flashprog will complain about wrong flash size if you're trying to flash the wrong one. -On the T480S (S model), the flashes are in slightly different places but in +On the T480s (S model), the flashes are in slightly different places but in both machines, the system flash (for Libreboot) is toward the centre, near the memory. @@ -320,7 +330,7 @@ UART ---- A serial console is possible via the line-out (headphone jack). Not yet tested -on the T480S (S model), nor implemented, but it is working on the regular +on the T480s (S model), nor implemented, but it is working on the regular T480 (non-S model). **TODO: show photo and wiring diagram here.** @@ -343,7 +353,7 @@ TX/RX lines as you wish, to a suitable UART adapter; any 3.3v-rated TTL adapter should work. The Raspberry Pi Pico can be used for this, which is handy because that can also be used as a serprog-based NOR flasher! -The T480S (S model) schematics is a bit different and the signals are +The T480s (S model) schematics is a bit different and the signals are properly muxed. Note that this is not to be confused with `spkmodem`, which has not been tested on these boards (but could theoretically be possible too). @@ -359,7 +369,7 @@ possible, quite feasible to design/manufacture and already supported in the Libreboot firmware in principle, since than PCI-E lane is enabled in the devicetree) Mate Kukri came up with this idea. It's a great idea, so it's written here. -This mod is possible on both the T480 and T480S, though on T480S there would +This mod is possible on both the T480 and T480s, though on T480s there would be less clearance; using a smaller internal battery and having a makeshift NVMe caddy in the remaining space would be how to go about it there. On the regular T480, the existing caddy area could easily fit two NVMe drives. @@ -367,7 +377,7 @@ regular T480, the existing caddy area could easily fit two NVMe drives. Errata ====== -On ThinkPad T480/T480S, headphone output works; the internal speaker is disabled +On ThinkPad T480/T480s, headphone output works; the internal speaker is disabled but audio is not automatically redirected to the headphone jack. This switching can be done manually, for example in the `pavucontrol` utility: diff --git a/site/docs/install/w541_external.md b/site/docs/install/w541_external.md index e5f9ece..a5c4149 100644 --- a/site/docs/install/w541_external.md +++ b/site/docs/install/w541_external.md @@ -3,8 +3,8 @@ title: ThinkPad W541/W540 external flashing x-toc-enable: true ... -NOTE: The same image for W541 also works on W541, as it's the exact same -mainboard. +NOTE: The same image for W541 also works on the W540, as the motherboard is +identical. Buy Libreboot preinstalled ========================== @@ -117,6 +117,16 @@ used when flashing either of the chips. You can now proceed to [flashing](/docs/install/spi.html) this machine. +`thinkpad_acpi` issues {#thinkpad-acpi} +--------------------------------------- + +It has been reported by a user that `thinkpad_acpi` does not load correctly on +the T440p. Since the W541/W540/T540p are also haswell machines, you may be +affected by this issue. + +If you encounter this, check [this page](https://libreboot.org/faq#thinkpad-acpi) +for details as to how to fix this. + Errata ====== diff --git a/site/faq.md b/site/faq.md index 2609e54..f3f4cd2 100644 --- a/site/faq.md +++ b/site/faq.md @@ -17,7 +17,7 @@ sure to re-enable them after you're finished. See: [Disabling /dev/mem protection](docs/install/devmem.md) Buy Libreboot pre-installed -========== +============================= If you want professional installation, Minifree Ltd sells [Libreboot pre-installed](https://minifree.org/) on select hardware, and it also provides @@ -169,7 +169,7 @@ Hardware compatibility ====================== What systems are compatible with libreboot? ------------------------------------------------------------------------------------ +-------------------------------------------- Any system can easily be added, so *compatibility* merely refers to whatever boards are integrated in the `lbmk` build system, which libreboot uses. @@ -576,7 +576,7 @@ This will change the default inside that ROM image, and then you can re-flash it. How do I pad a ROM before flashing? --------------------------------------- +------------------------------------- It is advisable to simply use a larger ROM image. This section was written mostly for ASUS KCMA-D8 and KGPE-D16 mainboards, where previously we only @@ -616,7 +616,7 @@ padded 16MiB image do the following: With padding removed cbfstool will be able to operate on the image as usual. Do I need to install a bootloader when installing a distribution? ---------------------------------------------------------------------------------------------------- +----------------------------------------------------------------- Most libreboot setups integrate the GRUB bootloader already, as a *[payload](http://www.coreboot.org/Payloads)*. This means that the GRUB @@ -635,7 +635,7 @@ then the normal MBR bootsector is used on your HDD or SSD, like you would expect. So the above paragraphs only apply to the GRUB payload. Do I need to re-flash when I re-install a distribution? -------------------------------------------------------------------------------------------- +------------------------------------------------------- Not anymore. Recent versions of libreboot (using the GRUB payload) will automatically switch to a GRUB configuration on the HDD or SSD, if it @@ -653,26 +653,39 @@ What does a flash chip look like? You can find photos of various chip types on the following page:\ [External 25xx NOR flashing guide](docs/install/spi.md) -Inability to modprobe thinkpad\_acpi on Haswell -=============================================== +Inability to load `thinkpad_acpi` on post-haswell systems {#thinkpad-acpi} +========================================================================== -This was reported by a user, running Debian 11 with -kernel `5.19.0-0.deb11.2-amd64`. The `thinkpad_acpi` module was not loading, -with the following message: +Reported by a user on Debian 11 (on a ThinkPad T440p) and a user +on Void Linux (ThinkPad T480), Linux may fail to load `thinkpad_acpi`. -``` -modprobe: ERROR: could not insert 'thinkpad_acpi': "No such device" -``` +It is suspected that at least these mainboards are affected: -Battery info in `/sys` was absent, because of this. The user reported that -the following workaround was effective (in Debian). + * [ThinkPad W541](https://libreboot.org/docs/install/w541_external.html) + * [ThinkPad T440p](https://libreboot.org/docs/install/t440p_external.html) + * [ThinkPad T480/T480s](https://libreboot.org/docs/install/t480.html) -Add this line to `/etc/modprobe.d/thinkpad_acpi.conf`: +This may result the following effects, including or not limited to: + + * Temperature reporting not working + * Battery info not working. + * Fan speed reporting not working + * Fan control not working + +For these systems, add the line ``` options thinkpad_acpi force_load=1 ``` +to any file in `/etc/modprobe.d`. You can also add + +``` +thinkpad_acpi.force_load=1 +``` + +to your kernel parameters (in GRUB, or your preferred linux-capable bootloader). + tlp --- From 30387872fa07d6df25e7d50d98ed0e75c7d72d04 Mon Sep 17 00:00:00 2001 From: ezntek Date: Mon, 9 Dec 2024 19:05:54 +0800 Subject: [PATCH 142/399] add raspi pico to SOIC-8 diagram --- site/docs/install/spi.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index b3264d3..c7dc643 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -131,6 +131,16 @@ Take note of the ttyACMx. Flashrom is now usable spispeed=32M usually works, but since it's not much faster it's probably not worth it. The 12Mbps USB port is limiting the actual speed here. +Raspberry Pi Pico SOIC-8 wiring +------------------------------- + +When using a Raspberry Pi Pico to program a SOIC-8 flash chip with +`pico-serprog`, you may use the following diagram, which contains the +Raspberry Pi Pins and the pinouts of the typical SOIC-8 chip to wire up +your programmer: + +[SOIC-8 to Pico pinout diagram](https://av.libreboot.org/rpi_pico/soic8_pico_pinouts.jpg) + Do not use CH341A! ================== From 91f61408638ca90b42d7f1ac702c99c5683b70f1 Mon Sep 17 00:00:00 2001 From: ezntek Date: Mon, 9 Dec 2024 19:18:26 +0800 Subject: [PATCH 143/399] make thinkpad_acpi modprobe error clearer, fix minor typos in T480 page --- site/docs/install/t480.md | 6 +++--- site/faq.md | 7 ++++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 8eea63f..4dad3f9 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -124,9 +124,9 @@ will be investigated and a hotfix patch made to the Libreboot 20241206 images. It has been reported that `thinkpad_acpi` does not load correctly on the T480. This should also be the case for the T480s. -If you encounter this issue, check -[this page](https://libreboot.org/faq#thinkpad-acpi) for details at so how -to fix this. +If you encounter this issue, check\ +[this page](https://libreboot.org/faq#thinkpad-acpi) +for details as to how to fix this. Build ROM image from source --------------------------- diff --git a/site/faq.md b/site/faq.md index f3f4cd2..82de46a 100644 --- a/site/faq.md +++ b/site/faq.md @@ -657,7 +657,12 @@ Inability to load `thinkpad_acpi` on post-haswell systems {#thinkpad-acpi} ========================================================================== Reported by a user on Debian 11 (on a ThinkPad T440p) and a user -on Void Linux (ThinkPad T480), Linux may fail to load `thinkpad_acpi`. +on Void Linux (ThinkPad T480), Linux (or modprobe) may fail to load +`thinkpad_acpi`. + +``` +modprobe: ERROR: could not insert 'thinkpad_acpi': "No such device" +``` It is suspected that at least these mainboards are affected: From b29821a4b382b4e999e9cf7785fc77006dca8a5f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 9 Dec 2024 16:38:32 +0000 Subject: [PATCH 144/399] fix links in recent commits the committer linked to /faq instead of /faq.html also, internal site links should be relative links, and link to the markdown files. the static site generater that we use auto-converts links Signed-off-by: Leah Rowe --- site/docs/install/t440p_external.md | 2 +- site/docs/install/t480.md | 2 +- site/docs/install/w541_external.md | 2 +- site/faq.md | 6 +++--- 4 files changed, 6 insertions(+), 6 deletions(-) diff --git a/site/docs/install/t440p_external.md b/site/docs/install/t440p_external.md index 6339ba2..81e96ae 100644 --- a/site/docs/install/t440p_external.md +++ b/site/docs/install/t440p_external.md @@ -104,7 +104,7 @@ You can now proceed to [flashing](/docs/install/spi.html) this machine. It has been reported by that `thinkpad_acpi` does not load correctly on the T440p. -If you encounter this, check [this page](https://libreboot.org/faq#thinkpad-acpi) +If you encounter this, check [this page](../../faq.md#thinkpad-acpi) for details as to how to fix this. Errata diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 4dad3f9..fc6fa2f 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -125,7 +125,7 @@ It has been reported that `thinkpad_acpi` does not load correctly on the T480. This should also be the case for the T480s. If you encounter this issue, check\ -[this page](https://libreboot.org/faq#thinkpad-acpi) +[this page](../../faq.md#thinkpad-acpi) for details as to how to fix this. Build ROM image from source diff --git a/site/docs/install/w541_external.md b/site/docs/install/w541_external.md index a5c4149..36d17cc 100644 --- a/site/docs/install/w541_external.md +++ b/site/docs/install/w541_external.md @@ -124,7 +124,7 @@ It has been reported by a user that `thinkpad_acpi` does not load correctly on the T440p. Since the W541/W540/T540p are also haswell machines, you may be affected by this issue. -If you encounter this, check [this page](https://libreboot.org/faq#thinkpad-acpi) +If you encounter this, check [this page](../../faq.md#thinkpad-acpi) for details as to how to fix this. Errata diff --git a/site/faq.md b/site/faq.md index 82de46a..800476d 100644 --- a/site/faq.md +++ b/site/faq.md @@ -666,9 +666,9 @@ modprobe: ERROR: could not insert 'thinkpad_acpi': "No such device" It is suspected that at least these mainboards are affected: - * [ThinkPad W541](https://libreboot.org/docs/install/w541_external.html) - * [ThinkPad T440p](https://libreboot.org/docs/install/t440p_external.html) - * [ThinkPad T480/T480s](https://libreboot.org/docs/install/t480.html) + * [ThinkPad W541](docs/install/w541_external.md) + * [ThinkPad T440p](docs/install/t440p_external.md) + * [ThinkPad T480/T480s](docs/install/t480.md) This may result the following effects, including or not limited to: From 8d40609ed7cf38ad8400eafd699ab68b11334849 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 9 Dec 2024 16:43:55 +0000 Subject: [PATCH 145/399] made the new pico soic8 image inline Signed-off-by: Leah Rowe --- site/docs/install/spi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index c7dc643..ba93502 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -139,7 +139,7 @@ When using a Raspberry Pi Pico to program a SOIC-8 flash chip with Raspberry Pi Pins and the pinouts of the typical SOIC-8 chip to wire up your programmer: -[SOIC-8 to Pico pinout diagram](https://av.libreboot.org/rpi_pico/soic8_pico_pinouts.jpg) +![SOIC-8 to Pico pinout diagram](https://av.libreboot.org/rpi_pico/soic8_pico_pinouts.jpg) Do not use CH341A! ================== From a776d13bc4c70a288d35b32769298233dbda3294 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 9 Dec 2024 16:52:29 +0000 Subject: [PATCH 146/399] updated t1650 internal flashing instructions Signed-off-by: Leah Rowe --- site/docs/install/t1650.md | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/site/docs/install/t1650.md b/site/docs/install/t1650.md index 3228d5b..91ab489 100644 --- a/site/docs/install/t1650.md +++ b/site/docs/install/t1650.md @@ -40,7 +40,7 @@ P*: Partially works with blobs | ***Features*** | | |---------------------------------------------------|----| -| **Internal flashing with original boot firmware** | ? | +| **Internal flashing with original boot firmware** | W* | | **Display (if Intel GPU)** | W+ | | **Display (discrete CPU, SeaBIOS payload only)** | W* | | **Audio** | W+ | @@ -133,6 +133,21 @@ Flash a ROM image (software) If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. +Internal flashing is *also* possible from the factory BIOS, if you set the +service mode jumper. This shorts `HDA_SDO` (Soft Descriptor Override), which +disables the ME after early bringup and disables IFD-based flash protections. + +Observe, below the PCI slots: + + + +Here is a close-up: + + + +Simply short those pins, on the header, using a jumper. When you do this, all +flash protections will be disabled. + Flash a ROM image (hardware) ----------------- From e8c2795b6a59e53c7d2bb97f8c07752f755b2eba Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 10 Dec 2024 01:34:15 +0000 Subject: [PATCH 147/399] resize the t1650 images Signed-off-by: Leah Rowe --- site/docs/install/t1650.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/install/t1650.md b/site/docs/install/t1650.md index 91ab489..6f10b0e 100644 --- a/site/docs/install/t1650.md +++ b/site/docs/install/t1650.md @@ -139,11 +139,11 @@ disables the ME after early bringup and disables IFD-based flash protections. Observe, below the PCI slots: - + Here is a close-up: - + Simply short those pins, on the header, using a jumper. When you do this, all flash protections will be disabled. From a2cace6ea0489b96b5c6b08102969ae5c8a1d2e4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 10 Dec 2024 11:08:57 +0000 Subject: [PATCH 148/399] uboot x86 page: write about thinkpad x60/t60 Signed-off-by: Leah Rowe --- site/docs/uboot/uboot-x86.md | 37 ++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/site/docs/uboot/uboot-x86.md b/site/docs/uboot/uboot-x86.md index 00219d2..2021b94 100644 --- a/site/docs/uboot/uboot-x86.md +++ b/site/docs/uboot/uboot-x86.md @@ -132,6 +132,43 @@ UEFI SecureBoot with a Linux UKI could achieve similar results in a security sense to Libreboot's GRUB hardening setup, though the latter is more flexible, albeit not widely used by the mainstream, but it does work (I use it myself!). +ThinkPad X60/T60 +================ + +The 32-bit U-Boot payload is only useful for 32-bit setups, and 32-bit UEFI +isn't really that common on x86; the 64-bit U-Boot payload is much more useful, +in this context. + +Most ThinkPad X60/T60 have 32-bit-only CPUs in them, so the 32-bit U-Boot +payload is used. If you have a 64-bit CPU (Core 2 Duo instead of Core Duo), +namely Core 2 Duo L9400, T5600 or T7200, you might be able to use the 64-bit +payload instead, for full 64-bit UEFI, but this is currently not tested and it +is not configured. + +To enable this, on compatible CPUs, make the following modifications to the +build system and compile a custom image: + +Check `config/coreboot/x60/target.cfg` (change `x60` to what you use if it +differs), and you'll find something like this: + + build_depend="seabios/default grub/default u-boot/i386coreboot" + payload_uboot_i386="y" + +In the above example, you would change it to: + + build_depend="seabios/default grub/default u-boot/amd64coreboot" + payload_uboot_amd64="y" + +You can then re-compile the image, using +standard [build instructions](../build/). For example on X60 you would use +the following build target: + + ./mk -b coreboot x60 + +Using a full UEFI setup on such old hardware is quite novel and might be +interesting in the future, as more distros stop supporting BIOS-based methods, +or where the latter may become untested in the future. + Bugs ==== From 762f1516fe6ca5fe492d702afdcc585e7dc07e84 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 10 Dec 2024 23:27:51 +0000 Subject: [PATCH 149/399] Tidy up the T480 page Also add instructions for testing the ThunderBolt patch that Mate Kukri wrote (currently unstable). Signed-off-by: Leah Rowe --- .../t480-thunderbolt-20241206-unstable.patch | 136 ++++++++++ site/docs/install/t480.md | 245 +++++++++++------- 2 files changed, 294 insertions(+), 87 deletions(-) create mode 100644 site/docs/install/t480-thunderbolt-20241206-unstable.patch diff --git a/site/docs/install/t480-thunderbolt-20241206-unstable.patch b/site/docs/install/t480-thunderbolt-20241206-unstable.patch new file mode 100644 index 0000000..d69c343 --- /dev/null +++ b/site/docs/install/t480-thunderbolt-20241206-unstable.patch @@ -0,0 +1,136 @@ +From 67b0219a665462ae71f6ba5104edc55ad6245ca7 Mon Sep 17 00:00:00 2001 +From: Mate Kukri +Date: Thu, 5 Dec 2024 20:42:40 +0000 +Subject: [PATCH] thunderbolt fix-ish + +it shows up, but resume is no dice. + +Change-Id: I2d91a1d290b35e7ea3a1193b4be7b4ba936e4a15 +--- + src/mainboard/lenovo/sklkbl_thinkpad/Kconfig | 1 + + src/mainboard/lenovo/sklkbl_thinkpad/dsdt.asl | 13 +++++++++++++ + .../lenovo/sklkbl_thinkpad/variants/t480/gpio.c | 8 ++++---- + .../sklkbl_thinkpad/variants/t480/overridetree.cb | 4 ++++ + .../lenovo/sklkbl_thinkpad/variants/t480s/gpio.c | 8 ++++---- + .../sklkbl_thinkpad/variants/t480s/overridetree.cb | 4 ++++ + 6 files changed, 30 insertions(+), 8 deletions(-) + +diff --git a/src/mainboard/lenovo/sklkbl_thinkpad/Kconfig b/src/mainboard/lenovo/sklkbl_thinkpad/Kconfig +index 21076315ab..0766c03716 100644 +--- a/src/mainboard/lenovo/sklkbl_thinkpad/Kconfig ++++ b/src/mainboard/lenovo/sklkbl_thinkpad/Kconfig +@@ -19,6 +19,7 @@ config BOARD_LENOVO_SKLKBL_THINKPAD_COMMON + select SOC_INTEL_COMMON_BLOCK_HDA_VERB + select SPD_READ_BY_WORD + select SYSTEM_TYPE_LAPTOP ++ select DRIVERS_INTEL_DTBT + + config BOARD_LENOVO_E460 + bool +diff --git a/src/mainboard/lenovo/sklkbl_thinkpad/dsdt.asl b/src/mainboard/lenovo/sklkbl_thinkpad/dsdt.asl +index 237500775f..849540d32d 100644 +--- a/src/mainboard/lenovo/sklkbl_thinkpad/dsdt.asl ++++ b/src/mainboard/lenovo/sklkbl_thinkpad/dsdt.asl +@@ -35,4 +35,17 @@ DefinitionBlock( + } + + #include ++ ++ Scope (\_SB) ++ { ++ External (\TBTS, MethodObj) ++ ++ Method (MPTS, 1, Serialized) ++ { ++ If (CondRefOf (\TBTS)) ++ { ++ \TBTS() ++ } ++ } ++ } + } +diff --git a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/gpio.c b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/gpio.c +index f7c29e1f39..edfa09fbb7 100644 +--- a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/gpio.c ++++ b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/gpio.c +@@ -86,7 +86,7 @@ static const struct pad_config gpio_table[] = { + PAD_NC(GPP_C18, NONE), + PAD_NC(GPP_C19, NONE), + PAD_CFG_GPO(GPP_C20, 0, DEEP), /* EPRIVACY_ON */ +- PAD_CFG_GPO(GPP_C21, 0, DEEP), /* TBT_FORCE_PWR */ ++ PAD_CFG_GPO(GPP_C21, 1, DEEP), /* TBT_FORCE_PWR */ + PAD_CFG_GPI_SCI(GPP_C22, NONE, DEEP, EDGE_SINGLE, INVERT), /* -EC_SCI */ + PAD_CFG_GPI_SCI(GPP_C23, NONE, DEEP, EDGE_SINGLE, INVERT), /* -EC_WAKE */ + +@@ -191,9 +191,9 @@ static const struct pad_config gpio_table[] = { + PAD_NC(GPP_G1, NONE), + PAD_NC(GPP_G2, NONE), + PAD_NC(GPP_G3, NONE), +- PAD_CFG_GPO(GPP_G4, 0, DEEP), /* TBT_RTD3_PWR_EN */ +- PAD_CFG_GPO(GPP_G5, 0, DEEP), /* TBT_FORCE_USB_PWR */ +- PAD_CFG_GPO(GPP_G6, 0, DEEP), /* -TBT_PERST */ ++ PAD_CFG_GPO(GPP_G4, 1, DEEP), /* TBT_RTD3_PWR_EN */ ++ PAD_CFG_GPO(GPP_G5, 1, DEEP), /* TBT_FORCE_USB_PWR (TBT_RTD3_USB_PWR_EN) */ ++ PAD_CFG_GPO(GPP_G6, 1, DEEP), /* -TBT_PERST */ + PAD_CFG_GPI_SCI(GPP_G7, NONE, DEEP, LEVEL, INVERT), /* -TBT_PCIE_WAKE */ + }; + +diff --git a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/overridetree.cb b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/overridetree.cb +index 2f0b20d91a..6d8725ad5a 100644 +--- a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/overridetree.cb ++++ b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480/overridetree.cb +@@ -106,6 +106,10 @@ chip soc/intel/skylake + register "PcieRpAdvancedErrorReporting[8]" = "1" + register "PcieRpLtrEnable[8]" = "1" + register "PcieRpHotPlug[8]" = "1" ++ ++ chip drivers/intel/dtbt ++ device pci 0.0 on end ++ end + end + + # M.2 2280 caddy - x2 +diff --git a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/gpio.c b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/gpio.c +index a98dd2bc4e..732917ebfa 100644 +--- a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/gpio.c ++++ b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/gpio.c +@@ -82,7 +82,7 @@ static const struct pad_config gpio_table[] = { + PAD_NC(GPP_C18, NONE), + PAD_NC(GPP_C19, NONE), + PAD_CFG_GPO(GPP_C20, 0, DEEP), /* EPRIVACY_ON */ +- PAD_CFG_GPO(GPP_C21, 0, DEEP), /* TBT_FORCE_PWR */ ++ PAD_CFG_GPO(GPP_C21, 1, DEEP), /* TBT_FORCE_PWR */ + PAD_CFG_GPI_SCI(GPP_C22, NONE, DEEP, EDGE_SINGLE, INVERT), /* -EC_SCI */ + PAD_CFG_GPI_SCI(GPP_C23, NONE, DEEP, EDGE_SINGLE, INVERT), /* -EC_WAKE */ + +@@ -187,9 +187,9 @@ static const struct pad_config gpio_table[] = { + PAD_NC(GPP_G1, NONE), + PAD_NC(GPP_G2, NONE), + PAD_NC(GPP_G3, NONE), +- PAD_CFG_GPO(GPP_G4, 0, DEEP), /* TBT_RTD3_PWR_EN */ +- PAD_CFG_GPO(GPP_G5, 0, DEEP), /* TBT_FORCE_USB_PWR */ +- PAD_CFG_GPO(GPP_G6, 0, DEEP), /* -TBT_PERST */ ++ PAD_CFG_GPO(GPP_G4, 1, DEEP), /* TBT_RTD3_PWR_EN */ ++ PAD_CFG_GPO(GPP_G5, 1, DEEP), /* TBT_FORCE_USB_PWR (TBT_RTD3_USB_PWR_EN) */ ++ PAD_CFG_GPO(GPP_G6, 1, DEEP), /* -TBT_PERST */ + PAD_CFG_GPI_SCI(GPP_G7, NONE, DEEP, LEVEL, INVERT), /* -TBT_PCIE_WAKE */ + }; + +diff --git a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/overridetree.cb b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/overridetree.cb +index cea5e485d2..9b952215c5 100644 +--- a/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/overridetree.cb ++++ b/src/mainboard/lenovo/sklkbl_thinkpad/variants/t480s/overridetree.cb +@@ -106,6 +106,10 @@ chip soc/intel/skylake + register "PcieRpAdvancedErrorReporting[4]" = "1" + register "PcieRpLtrEnable[4]" = "1" + register "PcieRpHotPlug[4]" = "1" ++ ++ chip drivers/intel/dtbt ++ device pci 0.0 on end ++ end + end + + # M.2 2280 SSD - x2 +-- +2.39.5 + diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index fc6fa2f..e76ecc6 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -81,6 +81,27 @@ This port is implemented in Libreboot by merging Mate Kukri's T480/T480s patchset. See: - as of 5 December 2024, Libreboot's code matches that of patchset 22. +Absolutely unsigned Intel ME! +----------------------------- + +Libreboot already disables the Intel ME by default, using `me_cleaner`, but +the T480/T480s specifically have an additional quirk: + +One of the benefits of [deguard](deguard.md) for Intel MEv11 is that it sets +the ME in such a state where you can run unsigned code in there. This is how +the Intel Boot Guard was disabled, because it is the ME that enforces such +restrictions; more information about deguard is available on a dedicated page. + +The deguard utility could also be used to enable the red-unlock hack, which +would permit unsigned execution of new CPU microcode, though much more +research is needed. Because of these two facts, this makes the T480/T480s the +most freedom-feasible of all relatively modern x86 laptops. + +With deguard, you have complete control of the flash. This is unprecedented on +recent Intel systems in Libreboot, so it's certainly a very interesting port! + +Libreboot uses both `me_cleaner` *and* `deguard` on the T480/T480s. + What works in this port: ----------------------- @@ -90,46 +111,13 @@ External video outputs and webcam also work. Microphone works, line-out works... everything works. UART also available via line-out jack (jumpers required on the mainboard). -The thunderbolt controller is currently unconfigured, so you can't use -Thunderbolt, but the thunderbolt and regular USB-C connector can both be -used for charging, and both can be used for video output (it shows up in xrandr -as a DisplayPort). NOTE: - is the patchset enabling -Thunderbolt, but it currently breaks on S3 resume from sleep, so it's not -included yet. This will be added to the Libreboot 20241206 release as a hotpatch -when it's ready, and in the next testing release after Libreboot 20241206. This -is true as of 6 December 2024. +There *are* a few minor exceptions as to what works; this will be covered in +other sections of this page. This port is *almost* perfect, but with some caveats. -Backlight controls work, via software control (e.g. `xbacklight` utility), but -the Fn keys for it don't currently work, as of 6 December 2024. +Build images from source +======================== -Nvidia dGPU doesn't work and is disabled as of 6 December 2024; the Intel graphics -are still available even on Nvidia models, so Intel graphics are used. - -WWAN slot untested. - -Headphone jack --------------- - -Sometimes the headphone jack might not work automatically. Simply install -the `pavucontrol` program. Under Output Devices, you can select the headphones -you've inserted manually. - -If it says "Unplugged", try it anyway. The HDA Verb may be incorrect. This -will be investigated and a hotfix patch made to the Libreboot 20241206 images. - -`thinkpad_acpi` issues {#thinkpad-acpi} ---------------------------------------- - -It has been reported that `thinkpad_acpi` does not load correctly on the T480. -This should also be the case for the T480s. - -If you encounter this issue, check\ -[this page](../../faq.md#thinkpad-acpi) -for details as to how to fix this. - -Build ROM image from source ---------------------------- +Please refer to the standard [build instructions](../build/) first. The build target, when building from source, is thus: @@ -167,25 +155,6 @@ If you're [building from source](../build/) via Libreboot's build system, these files are inserted during build. You only need to manually insert them, using the above linked guide, on the pre-compiled release images! -Absolutely unsigned Intel ME! ------------------------------ - -Libreboot already disables the Intel ME by default, using `me_cleaner`, but -the T480/T480s specifically have an additional quirk: - -One of the benefits of [deguard](deguard.md) for Intel MEv11 is that it sets -the ME in such a state where you can run unsigned code in there. This is how -the Intel Boot Guard was disabled, because it is the ME that enforces such -restrictions; more information about deguard is available on a dedicated page. - -The deguard utility could also be used to enable the red-unlock hack, which -would permit unsigned execution of new CPU microcode, though much more -research is needed. Because of these two facts, this makes the T480/T480s the -most freedom-feasible of all relatively modern x86 laptops. - -With deguard, you have complete control of the flash. This is unprecedented on -recent Intel systems in Libreboot, so it's certainly a very interesting port! - Set MAC address --------------- @@ -197,22 +166,6 @@ change the MAC address, please read [nvmutil documentation](../install/nvmutil.m argument when using it: `--platform sklkbl`** - otherwise, ifdtool will handle the IFD incorrectly! -WARNING about GPU compatibility -------------------------------- - -The Nvidia GPUs were tested, on models that have them. It is completely -dysfunctional and currently disabled in Libreboot. On models that have Nvidia, -the Intel graphics is still available so Libreboot uses Intel graphics -exclusively. - -The Intel GPU is fully supported with native source code (libgfxinit) in -coreboot, which Libreboot uses for initialisation. - -Use of Intel graphics is recommended, because it has much better (and libre) -driver support in Linux, and free initialisation code in coreboot, whereas -Nvidia is mostly all binary blobs (unless perhaps you use the nouveau driver in -Linux). - Thunderbolt issue (READ THIS BEFORE FLASHING) ------------------ @@ -316,19 +269,45 @@ On the T480s (S model), the flashes are in slightly different places but in both machines, the system flash (for Libreboot) is toward the centre, near the memory. -Backlight controls -------------------- +Post-installation +================= -The `xbacklight` (or equivalent in Wayland) can be used to manually control -the backlight; the buttons on the keyboard do not currently work, at least as -of 6 December 2024. +These next sections will tell you how to use certain hardware features, which +work a little bit differently due to idiosyncrasies of coreboot. -You could map the appropriate xbacklight command in Linux to a hotkey combo, -depending on your window manager or desktop environment. +How to use the headphone jack +-------------- + +Sometimes the headphone jack might not work automatically. Simply install +the `pavucontrol` program. Under Output Devices, you can select the headphones +you've inserted manually. + +If it says "Unplugged", try it anyway. The HDA Verb may be incorrect. This +will be investigated and a hotfix patch made to the Libreboot 20241206 images. + +How to use HDMI audio +------------------ + +You can get audio from Displayport/HDMI, but you must select it manually. +For example, you can select it in `pavucontrol` if you're using PulseAudio or +PipeWire. + +How to use backlight controls +----------------------------- + +Backlight controls work, via software control (e.g. `xbacklight` utility), but +the Fn keys for it don't currently work, as of 6 December 2024. + +You can set the backlight manually, or use a hotkey, depending on your window +manager or desktop environment. UART ---- +To our knowledge, this functionality is *only* available in coreboot-based +firmware such as Libreboot. It is completely unsupported on the original +firmware! + A serial console is possible via the line-out (headphone jack). Not yet tested on the T480s (S model), nor implemented, but it is working on the regular T480 (non-S model). @@ -377,12 +356,104 @@ regular T480, the existing caddy area could easily fit two NVMe drives. Errata ====== -On ThinkPad T480/T480s, headphone output works; the internal speaker is disabled -but audio is not automatically redirected to the headphone jack. This switching -can be done manually, for example in the `pavucontrol` utility: +Some features either don't work, or are untested, when running Libreboot on +the ThinkPad T480 or T480s. -Output Devices -> Select Headphones on the built-in audio. +NFC support in T480 +------------------- + +Some T480 models might have NFC support but this is untested in Libreboot, and +probably dosen't work in current Libreboot releases. + +The PCH's NFC device is unsupported in Linux anyway. + +Touchscreen on T480 +------------------- + +Some T480 machines have touchscreens. These are untested; the touch functionality +probably doesn't work yet, in Libreboot. + +The digitizer is simply a USB device, which *is* enabled, but it's just untested. + +Smartcard reader +---------------- + +The smartcard reader is enabled but it is still untested. If you have one, +please test it and report back to the Libreboot project. + +Thunderbolt not supported yet +----------------------------- + +Thunderbolt is a way to get PCI-E on a USB port. With it, you can use +high-bandwidth devices such as 10Gbps network interfaces. + +The thunderbolt controller is currently unconfigured, so you can't use +Thunderbolt, but the thunderbolt and regular USB-C connector can both be +used for charging, and both can be used for video output (it shows up in xrandr +as a DisplayPort). + +[t480-thunderbolt-20241206-unstable.patch](This patch) can be added, enabling +Thunderbolt, but be warned: it is completely untested, as of Libreboot 20241206. +This patch is *NOT* included in the release, because it breaks on S3 resume, +and may cause a kernel panic. Also: currently testing only reveals that the +ThunderBolt controller shows up, and it was confirmed that USB devices do +work on the port, but everything else is UNTESTED. + +You also need the [gerrit patch](https://review.coreboot.org/c/coreboot/+/75286) +adding a Thunderbolt driver to coreboot. + +To apply these patches, do the following in a fresh clone of `lbmk.git`: + +``` +git reset --hard b910424b5df8ed7c931a7b8f5cc8e34eacf0ca3e # 20241206rev2 +./mk -f coreboot next +cd src/coreboot/next +wget https://libreboot.org/docs/install/t480-thunderbolt-20241206-unstable.patch +git fetch https://review.coreboot.org/coreboot refs/changes/86/75286/12 && git cherry-pick FETCH_HEAD +git am t480-thunderbolt-20241206-unstable.patch +cd - +./mk -u coreboot t480s_fsp_16mb +./mk -u coreboot t480_fsp_16mb +``` + +You can now follow standard [build instructions](../build/). + +NOTE: If you remove src/coreboot/next, you must apply the patches again. +To make it easier, you can instead do this from a fresh `lbmk.git` (do this +instead of running the commands above): + +``` +git checkout 20241206-t480-thunderbolt-unstable +``` + +The branch named `20241206-t480-thunderbolt-unstable` already has the above +patches applied, including the configuration changes made by `./mk -u`, and +you can follow the same build instructions. In this lbmk branch, that +gerrit patch above (`refs/changes/86/75286/12`) is already included. + +Whether you use the lbmk branch, or you add the patches manually as above, +you can then flash the resulting image and boot it. + +**AGAIN: This will likely cause kernel panics, and it will break on resume +from S3 (resume from sleep). If you do test this, please report whether +the Thunderbolt devices actually work, but remember that you must NOT suspend +or put your machine to sleep.** + +Nvidia dGPU not supported +------------------------- + +Nvidia dGPU doesn't work and is disabled as of 6 December 2024; the Intel graphics +are still available even on Nvidia models, so Intel graphics are used. + +WWAN slot untested. + +`thinkpad_acpi` issues {#thinkpad-acpi} +--------------------------------------- + +It has been reported that `thinkpad_acpi` does not load correctly on the T480. +This should also be the case for the T480s. + +If you encounter this issue, check\ +[this page](../../faq.md#thinkpad-acpi) +for details as to how to fix this. -Pavucontrol will specify that the headphones are not connected, but you can -select it anyway and it will work. This will be fixed in a subsequent revision, -and the corrected images re-uploaded to the existing Libreboot 20241206 release. From 95d5b067cfb98fb98113c51ece2c243b63cf4e5d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 10 Dec 2024 23:42:48 +0000 Subject: [PATCH 150/399] adjust the t480 thunderbolt notes Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 37 ++++++++++++++++++++++++++++--------- 1 file changed, 28 insertions(+), 9 deletions(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index e76ecc6..a70db31 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -402,7 +402,27 @@ work on the port, but everything else is UNTESTED. You also need the [gerrit patch](https://review.coreboot.org/c/coreboot/+/75286) adding a Thunderbolt driver to coreboot. -To apply these patches, do the following in a fresh clone of `lbmk.git`: +To apply these patches, do the following in a fresh clone of `lbmk.git` and do: + +``` +git checkout 20241206-t480-thunderbolt-unstable +``` + +In it, you'll find this commit: + +``` +commit 3881160b863ff53df9064a29a25aab55c76ee9c4 (HEAD -> 20241206-t480-thunderbolt-unstable) +Author: Leah Rowe +Date: Tue Dec 10 23:35:47 2024 +0000 + + experimental/unstable t480 thunderbolt support + + Signed-off-by: Leah Rowe +``` + +This was created by the following steps, applying the patches referenced above +and amending the coreboot configs for T480/T480s, within lbmk, from a fresh +clone of lbmk (Git repository): ``` git reset --hard b910424b5df8ed7c931a7b8f5cc8e34eacf0ca3e # 20241206rev2 @@ -411,21 +431,20 @@ cd src/coreboot/next wget https://libreboot.org/docs/install/t480-thunderbolt-20241206-unstable.patch git fetch https://review.coreboot.org/coreboot refs/changes/86/75286/12 && git cherry-pick FETCH_HEAD git am t480-thunderbolt-20241206-unstable.patch +git format-patch -n2 +mv 0001-drivers-intel-dtbt-Add-discrete-Thunderbolt-driver.patch ../../../config/coreboot/next/patches/0010-drivers-intel-dtbt-Add-discrete-Thunderbolt-driver.patch +mv 0002-thunderbolt-fix-ish.patch ../../../config/coreboot/next/patches/0011-thunderbolt-fix-ish.patch cd - ./mk -u coreboot t480s_fsp_16mb ./mk -u coreboot t480_fsp_16mb +git add config/coreboot/next/patches/ +git add config/coreboot/t480_fsp_16mb/ +git add config/coreboot/t480s_fsp_16mb/ +git commit -s -m "experimental/unstable t480 thunderbolt support" ``` You can now follow standard [build instructions](../build/). -NOTE: If you remove src/coreboot/next, you must apply the patches again. -To make it easier, you can instead do this from a fresh `lbmk.git` (do this -instead of running the commands above): - -``` -git checkout 20241206-t480-thunderbolt-unstable -``` - The branch named `20241206-t480-thunderbolt-unstable` already has the above patches applied, including the configuration changes made by `./mk -u`, and you can follow the same build instructions. In this lbmk branch, that From 9b41e070bc4e90f389363c81902b38681d47a031 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 10 Dec 2024 23:43:48 +0000 Subject: [PATCH 151/399] fix link Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index a70db31..e20316c 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -392,7 +392,7 @@ Thunderbolt, but the thunderbolt and regular USB-C connector can both be used for charging, and both can be used for video output (it shows up in xrandr as a DisplayPort). -[t480-thunderbolt-20241206-unstable.patch](This patch) can be added, enabling +[This patch](t480-thunderbolt-20241206-unstable.patch) can be added, enabling Thunderbolt, but be warned: it is completely untested, as of Libreboot 20241206. This patch is *NOT* included in the release, because it breaks on S3 resume, and may cause a kernel panic. Also: currently testing only reveals that the From 7e8e045a0092e7a9ad941f794b5540152da5c957 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 11 Dec 2024 02:07:04 +0000 Subject: [PATCH 152/399] 20241206 rev3 notes (3050micro nvme fix) Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index bbd2559..9c21deb 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -387,6 +387,28 @@ ARM64). The source archive is now `20241206rev2` instead of `20241206`, and the same is true of affected images on x86, where `vcfg` is set in `target.cfg`. +Revision 3 +---------- + +See commit ID `3b6b283eabe7a655c861d1543aeae49d27566f53` and the two commits +before that. + +This revision disables PCI-E Re-plug (hotplug feature) for the NVMe SSD on +Dell OptiPlex 3050 Micro, to prevent the device from being renamed randomly; +such renaming will cause a system crash if booting Linux from the NVMe. + +In my case, I was running RAID1 (SATA+NVMe) and every few days, the RAID1 got +unsynced; I simply re-synced and it was fine, but what if that was a RAID0? It +would possibly corrupt the entire array. + +This revision should prevent the issue from occuring. Without this patch, +the `nvme0n1` device (as an example) might randomly rename to `nvme0n2`, because +Linux would see it as a new device. + +This same fix was made to the ThinkPad T480/T480s to fix the same issue there, +which manifested during S3 resume, but that bug never made it into the release +because it was fixed *before* the initial release of Libreboot 20241206. + Errata ====== From 67c9386dc93ab6dd50741086cc2a21a6985d2c75 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 12 Dec 2024 05:49:18 +0000 Subject: [PATCH 153/399] tidy up redundant information the info in question is present clearly on the T480 page. it's better to leave such information on the dedicated page made for that machine. Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 13 ------------- 1 file changed, 13 deletions(-) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 9c21deb..7cfe3c7 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -408,16 +408,3 @@ Linux would see it as a new device. This same fix was made to the ThinkPad T480/T480s to fix the same issue there, which manifested during S3 resume, but that bug never made it into the release because it was fixed *before* the initial release of Libreboot 20241206. - -Errata -====== - -On ThinkPad T480/T480S, headphone output works; the internal speaker is disabled -but audio is not automatically redirected to the headphone jack. This switching -can be done manually, for example in the `pavucontrol` utility: - -Output Devices -> Select Headphones on the built-in audio. - -Pavucontrol will specify that the headphones are not connected, but you can -select it anyway and it will work. This will be fixed in a subsequent revision, -and the corrected images re-uploaded to the existing Libreboot 20241206 release. From a4c441f642002b74e895f0f1f7db0dab333ad5b1 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 12 Dec 2024 17:13:26 +0000 Subject: [PATCH 154/399] 20241206 rev3 build notes Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 7cfe3c7..6905106 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -408,3 +408,5 @@ Linux would see it as a new device. This same fix was made to the ThinkPad T480/T480s to fix the same issue there, which manifested during S3 resume, but that bug never made it into the release because it was fixed *before* the initial release of Libreboot 20241206. + +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. From e36d7b7ea2519a22278b1078fc0a3413b9847c54 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 13 Dec 2024 04:30:19 +0000 Subject: [PATCH 155/399] update some important links Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 6 ++++++ site/docs/install/dell9020.md | 3 ++- site/docs/install/t440p_external.md | 4 ++-- site/docs/install/t480.md | 6 ++++++ site/docs/install/w541_external.md | 4 ++-- site/docs/install/x230_external.md | 4 ++-- 6 files changed, 20 insertions(+), 7 deletions(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index 398281d..e457d26 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -49,6 +49,12 @@ P*: Partially works with blobs | **GRUB (libgfxinit only)** | Works | | **SeaBIOS** | Broken |
+Buy pre-installed +================= + +**Dell OptiPlex 3050 Micro is available to purchase with Libreboot preinstalled. +See: ** + Introduction ============ diff --git a/site/docs/install/dell9020.md b/site/docs/install/dell9020.md index 5a1273e..2aac895 100644 --- a/site/docs/install/dell9020.md +++ b/site/docs/install/dell9020.md @@ -102,7 +102,8 @@ Buy Libreboot preinstalled You can buy this machine professionally serviced, with Libreboot preinstalled and your choice of Linux/BSD system. Many upgrades are also available. See: - +**Minifree now sells the Libreboot 3050 Micro, instead of the Libreboot +9020 SFF. See: ** Sales are conducted to provide funding for the Libreboot project. Leah Rowe who runs Minifree, is also Libreboot's founder and lead developer. diff --git a/site/docs/install/t440p_external.md b/site/docs/install/t440p_external.md index 81e96ae..8c54780 100644 --- a/site/docs/install/t440p_external.md +++ b/site/docs/install/t440p_external.md @@ -6,8 +6,8 @@ x-toc-enable: true Buy Libreboot preinstalled ========================== -This laptop is available to buy with Libreboot pre-installed: - +**Minifree now sells the Libreboot T480, instead of the Libreboot T440p. See: +** Introduction ============ diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index e20316c..1a0e96a 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -65,6 +65,12 @@ ports; he is also the author of the deguard utility, which is used to disable the Intel Boot Guard on these machines; disabling the Boot Guard was necessary in order to get coreboot working! +Buy pre-installed +================= + +**ThinkPad T480/T480S is available to purchase with Libreboot pre-installed. See: +** + Introduction ============ diff --git a/site/docs/install/w541_external.md b/site/docs/install/w541_external.md index 36d17cc..b7480fa 100644 --- a/site/docs/install/w541_external.md +++ b/site/docs/install/w541_external.md @@ -9,8 +9,8 @@ identical. Buy Libreboot preinstalled ========================== -This laptop is available to buy with Libreboot pre-installed: - +**Minifree now sells the Libreboot T480, instead of the Libreboot W541. See: +** Introduction ============ diff --git a/site/docs/install/x230_external.md b/site/docs/install/x230_external.md index 94bf138..814db86 100644 --- a/site/docs/install/x230_external.md +++ b/site/docs/install/x230_external.md @@ -3,8 +3,8 @@ title: ThinkPad X230/X230T external flashing x-toc-enable: true ... -This machine is available to purchase with Libreboot pre-installed: - +**Minifree now sells the Libreboot T480, instead of the Libreboot X230. See: +** NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. From dbe9dc6fe809b61cf5ead18801232b2405dcf63e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 14 Dec 2024 04:42:06 +0000 Subject: [PATCH 156/399] update safety advice for ifdtool/inject also tidy up the ivy_has_common guide. the .uk one was in english anyway so i removed that one. reference the platform option needed in ifdtool, on kabylake Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 49 +++++-- site/docs/install/ivy_has_common.uk.md | 179 ------------------------- site/docs/install/nvmutil.md | 28 +++- site/freedom-status.uk.md | 2 +- 4 files changed, 62 insertions(+), 196 deletions(-) delete mode 100644 site/docs/install/ivy_has_common.uk.md diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 08d5340..e3c459e 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -3,9 +3,21 @@ title: Insert vendor files not included in release images x-toc-enable: true ... -Please make sure to install [build dependencies](../build/) if following this -guide, and note that this guide assumes you use [lbmk.git](../git.md), not the -release archives, even if you're using release *ROM images*, which is fine. +**Install build dependencies first** +================================ + +**You will be compiling several small utilities from source code. This means +you need the compilers and various libraries.** + +**Please make sure to install [build dependencies](../build/)** before using this +guide, and note that this guide assumes you use [lbmk.git](../git.md). + +**Failure to adhere to this warning will result in vendor file insertion not +working. The insertion must work correctly, prior to Libreboot installation, +if your board requires it, otherwise your board simply will not boot.** + +Introduction +============ Coreboot is nominally free software, but requires certain vendor code on some boards, for certain functionalities; we cover this more thoroughly in @@ -23,13 +35,6 @@ on HP EliteBooks), VGA ROMs (e.g. Nvidia GPU ROM for Dell Latitude E6400), and so on. Without these, your machine may not boot correctly, or not boot at all! -Therefore, you should just follow this guide if in any doubt. Otherwise, the -freedom status page lists all boards that require vendor files, and it says -what they are. This is because Libreboot cannot directly distribute some of them, -but they are extracted from vendor updates at build time, and inserted into -images; when those images are then archived for release, the non-redistributable -filejs are removed. - The same logic can be used after the fact, to re-download and re-insert these files; the page that you're reading now will tell you how to do so. @@ -38,7 +43,7 @@ vendor files inserted, nothing will happen. You only need to follow this guide if you use release ROMs; if you're building directly from source, using the Libreboot build system, then you can just flash the result.* -Injecting vendor files into ROM +Injecting vendor files ROMs tarball ------------------------------------ You must determine the correct board name, for your board, based on the list @@ -53,13 +58,25 @@ Run the injection script pointing to the release archive you downloaded: ./vendor inject libreboot-RELEASE_targetname.tar.xz +The script can automatically detect the board as long as you do not change the file name. +You can then find flash-ready ROMs in `/bin/release/` + +*This is the recommended way to do it, injecting into the tarball.* + +Injecting vendor files into single ROMs +--------------------------------------- + **You are strongly advised only to insert it on the tarball, because then checksums are verified to ensure that the vendor files were inserted correctly. Otherwise, you can do it manually on each individual image, specifying the board name with the instructions provided below:** -The script can automatically detect the board as long as you do not change the file name. -You can then find flash-ready ROMs in `/bin/release/` +**However, when injecting into the tarball in bulk like that, lbmk currently +cannot change the MAC addresses automatically, using the `-m` option mentioned +below.** + +**Therefore, if you want to rely on insertion into the tarball, you can just +copy the ROM you want and [change the MAC address manually](nvmutil.md).** Alternatively, you may patch only a single rom file, but you must supply the correct board target name as alluded to above. @@ -72,6 +89,12 @@ For example: ./vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd +You are *strongly* advised to inject the tarballs instead. However, so long as +you're careful, injecting into single ROM images is perfectly safe. Just know +once more that the checksum verification is unavailable in the latter, so you +must absolutely ensure that you specified the correct board with the `-b` +option. + Check that the files were inserted ================================== diff --git a/site/docs/install/ivy_has_common.uk.md b/site/docs/install/ivy_has_common.uk.md deleted file mode 100644 index abf7b53..0000000 --- a/site/docs/install/ivy_has_common.uk.md +++ /dev/null @@ -1,179 +0,0 @@ ---- -title: Insert vendor files not included in release images -x-toc-enable: true -... - -Regarding vendorfile insertion: if unsure, just follow these instructions. -If a given target does not require vendor files, none will be inserted. - -**TODO: Re-translate this again to Ukrainian. It was translated before, but -the english page got heavily re-written.** - -Libreboot can't directly distribute *all* of these blobs, so some of them are -downloaded at build-time, and processed for insertion into the firmware images. -**On pre-compiled ROM images in releases, these files are removed, and can be -re-added using the same automation that was applied during the build process.** - -**NOTE: This page also applies to PM45 machine Dell Latitude E6400 if it -contains an Nvidia GPU (Libreboot vendor scripts can insert the VGA ROM)** - -This is not a general purpose installation guide, but you *should read it* -before installing Libreboot! *This* guide *must* be followed, no matter what -method you use to install Libreboot; even if you compile from source, you should -still read this page for later reference. - -For how to use an external programmer see the [25xx NOR flashing guide](/docs/install/spi.html) - -Introduction -============ - -**PLEASE MAKE SURE you have build dependencies installed first. Although you -do not need to re-compile release ROMs, you should follow these instructions -before reading the instructions below: -** - -Coreboot is nominally free software, but requires certain vendor code on some -boards, for certain functionalities; it differs per board, and some boards do -not require vendor code of any kind in the flash. We cover this more thoroughly in -the [Freedom Status](../../freedom-status.md) page and in the [Binary Blob -Reduction Policy](../../news/policy.md). - -Well, not all of these files are freely redistributable. Coreboot does provide -vendor files in some cases, if the vendor has allowed it. In other cases, -extraction from factory firmware is required, or you can extract them from -vendor-supplied updates - Libreboot's build system does the latter. - -When you [compile Libreboot ROM images from source](../build/), Libreboot will -automatically download any given vendor files required, for any given board -target. This is done without user intervention, and only when absolutely needed -to make the machine boot properly. - -The problem? ------------- - -Well, if the files cannot be freely redistributed, then we can't provide them. -So how do we handle *that*, in the context of Libreboot releases? - -The solution ------------- - -The answer is very simple: these files are **NOT** provided, at all! However, -the very same logic used by the build system can be run standalone, to re-insert -these vendor files on release ROMs. The `inject` script detects what files are -needed for your ROM image. - -The script will detect what board you're inserting on, or you can manually tell -it what board, and it will fetch them for you, inserting them, so that your -board is ready to flash - flashing it without these required files may result in -a brick. - -Vendor file locations --------------- - -During auto-download of files, they are saved to these locations within the -Libreboot build system: - -* ME firmware: `vendor/*/me.bin` - the `*` can be any given directory. Different ones will - be used by given boards, but the directory name may not match the board - target name. -* SMSC SCH5545 fan control firmware (for Dell T1650): `vendor/t1650/sch5545ec.bin` - - ditto 7010/9010 MT/SFF optiplex machines. -* SMSC KBC1126 embedded controller firmware, on HP EliteBooks: `ec/` -* Intel MRC firmware, provides raminit on HP EliteBook 820 G2 - -The above list refers to the *non-redistributable files*, and these are not -directly included in releases. These are auto-downloaded during the build. -The `me.bin` files are produced by extracting them from vendor updates and -neutering them with `me_cleaner` so that Intel ME is disabled during early boot. - -Inject vendor files into ROM ------------------------------------- - -You must determine the correct board name, for your board, based on the list -generated when running this command: - - ./mk -b coreboot list - -In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image. - -If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. -Run the injection script pointing to the release archive you downloaded: - - ./vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440pmrc_12mb.tar.xz - -The script can automatically detect the board as long as you do not change the file name. -You can then find flash-ready ROMs in `/bin/release/` - -Alternatively, you may patch only a single rom file, but you must supply the -correct board target name as alluded to above. -For example: - - ./vendor inject -r x230_libreboot.rom -b x230_12mb - -Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. -For example: - - ./vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd - -Check that the files were inserted -================================== - -You *must* ensure that the files were inserted. - -Some examples of how to do that in lbmk: - - ./update trees -d coreboot TREENAME - -Now you find `cbutitls/default`, which is a directory containing `cbfstool` -and `ifdtool`. Do this on your ROM image (`libreboot.rom` in the example -below): - - ./cbutils/default/cbfstool libreboot.rom print - -You should check that the files were inserted in cbfs, if needed; for example, -EC firmware or MRC firmware. - -Next: - - ./cbutils/default/ifdtool -x libreboot.rom - -This creates several `.bin` files, one of which says `me` in it (Intel ME). -Run hexdump on it: - - hexdump flashregion_2_intel_me.bin - -Check the output. If it's all `0xFF` (all ones) or otherwise isn't a bunch -of code, then the Intel ME firmware wasn't inserted. - -You'll note the small size of the Intel ME, e.g. 84KB on sandybridge platforms. -This is because lbmk *automatically* neuters it, disabling it during -early boot. This is done using `me_cleaner`, which lbmk imports. - -NOTE: the MAC changer makes use of `nvmutil`, which you can read more about in -the [nvmutil documentation](nvmutil.md). - -Errata -====== - -NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer -included for Haswell; MRC is a blob for raminit, but we now provide libre -raminit. The following targets no longer exist in the build system: - -* `t440pmrc_12mb` (use `t440plibremrc_12mb` instead) -* `t440pbmrc_12mb` (use `t440plibremrc_12mb` instead) -* `w541mrc_12mb` (use `w541_12mb` instead) -* `w541bmrc_12mb` (use `w541_12mb` instead) -* `dell9020sff_12mb` (use `dell9020sff_nri_12mb` instead) -* `dell9020sffbmrc` (use `dell9020sff_nri_12mb` instead) -* `dell9020mt_12mb` (use `dell9020mt_nri_12mb` instead) -* `dell9020mtbmrc` (use `dell9020mt_nri_12mb` instead) - -This is written as errata because some users may still be using older release -images but on the newer build system from May 2024 onward; you must use the -Libreboot 20240225 release if you want to inject MRC and so on, for these older -targets. - -Libreboot's [binary blob reduction policy](../../news/policy.md) is very strict, -and states: if a blob can be avoided, it must be avoided. Therefore, the MRC -is removed on Haswell and Libreboot will only use the libre raminit (called -NRI, short for Native Ram Initialisation). diff --git a/site/docs/install/nvmutil.md b/site/docs/install/nvmutil.md index 1746d8e..b15a8dd 100644 --- a/site/docs/install/nvmutil.md +++ b/site/docs/install/nvmutil.md @@ -170,12 +170,24 @@ with `make`, to get an ifdtool binary. To make internal flashing possible later on, you might do: - ifdtool --unlock rom.bin + ifdtool --unlock rom.bin # READ THE WARNING BELOW FIRST + +**WARNING: On ThinkPad T480/T480s and OptiPlex 3050 Micro, do this instead:** + + ifdtool --platform sklkbl --unlock rom.bin Running this command will create a modified image, named `rom.bin.new`. This file will have all regions set to read-write, per configuration in the Intel Flash Descriptor. +Note: if you want the original image to be modified, without needing to +keep track of `rom.bin.new` as mentioned above, use the -O switch. For example, +repeating the above command: + + ifdtool --unlock rom.bin -O rom.bin + +(add the `--platform` option if you need to) + In addition to unlocked regions, you may wish to *neuter* the Intel Management Engine, removing all the nasty spying features from it, using `me_cleaner`. See: @@ -188,7 +200,7 @@ article, so you should read their documentation. Now run this: - ifdtool -x rom.bin + ifdtool -x rom.bin # For T480/3050micro, add: --platform sklkbl Several files will be created, and the one you need to operate on is named `flashregion_3_gbe.bin` so please @@ -198,7 +210,7 @@ Read the notes below about how to use the `nvmutil` program, operating on this file. When you're done, you can insert the modified GbE file back into your ROM image, like so: - ifdtool -i gbe:flashregion_3_gbe.bin rom.bin + ifdtool -i gbe:flashregion_3_gbe.bin rom.bin # For T480/3050micro, add: --platform sklkbl This will create the file `rom.bin.new`, which contains your modified GbE section with the NVM images inside; this @@ -215,6 +227,16 @@ region, like so: flashprog -p internal --ifd -i gbe -w rom.bin.new +**WARNING: If using `--ifd` in flashprog, note that flashprog probably doesn't +have anything similar to the `--platform` option in ifdtool. Therefore, you +way wish to specify the regions manually. You can do this quite simply, by:** + + ifdtool -f layout.txt rom.bin # For T480/3050micro, add: --platform sklkbl + +and instead of `--ifd` in flashprog, use: + + flashprog -p internal -l layout.txt -i gbe -w rom.bin.new + If you're running flashprog from host CPU on the target system, and it's dual flash, you can just flash the concatenated image, which you created earlier by running diff --git a/site/freedom-status.uk.md b/site/freedom-status.uk.md index a6ac32a..df989c1 100644 --- a/site/freedom-status.uk.md +++ b/site/freedom-status.uk.md @@ -211,7 +211,7 @@ Git, ні в випусках. Де необхідно, Libreboot надає оригінального образа продавця, в регіоні ME інтегральної схеми флеш-пам'яті). Ви можете дізнатись про це більше на наступній сторінці: -[docs/install/ivy_has_common.uk.md](docs/install/ivy_has_common.uk.md) +[docs/install/ivy_has_common.md](docs/install/ivy_has_common.md) Прошивка ME є *обов'язковою* на майже всіх платформах Intel, або машина *вимкнеться* після 30 хвилин. В нейтралізованому налаштуванні, код BringUp From b621f4fcf72bd98d2e4cd35cb7a737c5fe00997f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 14 Dec 2024 04:53:29 +0000 Subject: [PATCH 157/399] fix link Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index e3c459e..a416393 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -10,7 +10,7 @@ x-toc-enable: true you need the compilers and various libraries.** **Please make sure to install [build dependencies](../build/)** before using this -guide, and note that this guide assumes you use [lbmk.git](../git.md). +guide, and note that this guide assumes you use [lbmk.git](../../git.md). **Failure to adhere to this warning will result in vendor file insertion not working. The insertion must work correctly, prior to Libreboot installation, From db8b4b3fe653ea53d23051e949b0408858d134ec Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 15 Dec 2024 08:35:14 +0000 Subject: [PATCH 158/399] add another t480 mf link Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 6905106..647f1e7 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -59,9 +59,11 @@ Board support The following boards have been added since the Libreboot 20241008 release: * **[Lenovo ThinkPad T480](../docs/install/t480.md)** support, implemented by - Mate Kukri with testing and hardware logs provided by Leah Rowe. + Mate Kukri with testing and hardware logs provided by Leah Rowe. - You can also + [buy T480 with Libreboot pre-installed](https://minifree.org/product/libreboot-t480/) * **[Lenovo ThinkPad T480S](../docs/install/t480.md)** support, implemented by - Mate Kukri with testing and hardware logs provided by Leah Rowe. + Mate Kukri with testing and hardware logs provided by Leah Rowe. - You can also + [buy T480s with Libreboot pre-installed](https://minifree.org/product/libreboot-t480/) * **[Dell OptiPlex 780 USFF](../docs/install/dell780.md)** support, implemented by Nicholas Chin with testing and hardware logs provided by Lorenzo Aloe. * **[Dell OptiPlex 780 MT](../docs/install/dell780.md)** support, implemented by From 5c92e8f18871b449c0511a3770cb285a4a356c02 Mon Sep 17 00:00:00 2001 From: Tim_B Date: Sun, 15 Dec 2024 18:59:47 +0100 Subject: [PATCH 159/399] Create contact-fr.md page --- site/contact-fr.md | 80 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 80 insertions(+) create mode 100644 site/contact-fr.md diff --git a/site/contact-fr.md b/site/contact-fr.md new file mode 100644 index 0000000..e15a042 --- /dev/null +++ b/site/contact-fr.md @@ -0,0 +1,80 @@ +--- +title: Contact +x-toc-enable: true +... + +Où acheter du matériel avec Libreboot pré-installé +========== + +Si vous souhaitez une installation professionnelle, Minifree Ltd vend des ordinateurs avec [Libreboot pré-installé](https://minifree.org/). L'entreprise propose également [un service d'installation de Libreboot](https://minifree.org/product/installation-service/) si vous voulez l'installer sur votre propre machine. + +Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot. + +Si vous installez Libreboot vous-même, un support est disponible via différents canaux de communication (IRC, mail, etc.) : + + +Suport utilisateur +============ + +IRC et Reddit sont recommandés pour demander de l'aide (IRC est à privilégier) : + + +Mail +============ + +Libreboot dispose d'une liste de diffusion : + +L'adresse mail est [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) + +Discussion sur le developpement +====================== + +Pour participer au développement, consultez la pag [GIT](git.md) du projet. Vous y trouverez des instructions détaillées sur l'envoi de patchs via pull request. + +IRC chatroom +============ +Le chat IRC est le principal moyen de contact pour le projet Libreboot via `#libreboot` sur Libera IRC. + +Webchat: + + +Libera est un des plus grands réseaux IRC utilisé pour les projets en lien avec le logiciel libre. Vous trouverez plus d'information ici : + +Si vous souhaitez vous connecter via votre client préféré ( comme weechat ou irssi), veuillez utiliser ces informations : + +* Server: `irc.libera.chat` +* Channel: `#libreboot` +* Port (TLS): `6697` +* Port (non-TLS): `6667` + +Nous vous recommandons d'utiliser le port `6697` avec l'encryption TLS activée. + +Il est recommandé d'utiliser SASL pour l'authentification. Ces pages vous indiqueront comment l'utiliser : + +* WeeChat SASL guide: +* Irssi SASL guide: +* HexChat SASL guide: + +De manière générale, reportez-vous à la documentation de votre logiciel IRC. + + +Réseaux sociaux +============ + +Libreboot existe officiellement sur différents réseaux sociaux. + +Mastodon +-------- + +Le fondateur et principal developpeur, Leah Rowe, est sur Mastodon: + +* + +Leah peut également être contacté par mail : +[leah@libreboot.org](mailto:leah@libreboot.org) + +Reddit +------ + +Généralement utilisé pour le support mais aussi pour l'annonces des dernières nouveautés : + From 66f217fba1e35d8d9f0c061591b8b551dcfdbddf Mon Sep 17 00:00:00 2001 From: Tim_B Date: Mon, 16 Dec 2024 11:48:10 +0100 Subject: [PATCH 160/399] Update french translation for the index page --- site/index.fr.md | 129 +++++++++++++++-------------------------------- 1 file changed, 42 insertions(+), 87 deletions(-) diff --git a/site/index.fr.md b/site/index.fr.md index 6cd3944..342efde 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -1,128 +1,83 @@ --- title: Projet Libreboot x-toc-enable: true -... +--- -Libreboot est un micrologiciel de démarrage [libéré](https://writefreesoftware.org/) -qui initialise le matériel (càd le contrôleur mémoire, CPU, -périphériques) sur [des ordinateurs x86/ARM spécifiques](docs/install/) -et lance un chargeur d'amorçage pour votre système d'exploitation. [Linux](docs/linux/) et [BSD](docs/bsd/) sont bien supportés. C'est un -remplacement pour le micrologiciel UEFI/BIOS propriétaire. -Des canaux d'aide sont disponibles -dans le canal [\#libreboot](https://web.libera.chat/#libreboot) sur le serveur IRC [Libera](https://libera.chat/). +Le projet Libreboot fournit un firmware [libre et Open-Source](https://writefreesoftware.org/) basé sur Coreboot, remplaçant le BIOS/UEFI propriétaire sur des [cartes mères Intel/AMD x86 et ARM](docs/install/), pour des ordinateurs de bureau et des ordinateurs portables. +Il initialise le matériel (le contrôleur de mémoire, le CPU, les périphériques) et lance un bootloader pour votre système d’exploitation. Les systèmes [Linux](docs/linux/) et [BSD](docs/bsd/) sont bien pris en charge. De l’aide est disponible sur [\#Libreboot](https://web.libera.chat/#Libreboot) via [Libera](https://libera.chat/). La page des tâches répertorie les projets en cours (les contributions sont les bienvenues si vous souhaitez y travailler vous-même). - -You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, -on select hardware, aswell as send your compatible hardware -for [Libreboot preinstallation](https://minifree.org/product/installation-service/). -The founder and lead developer of Libreboot, Leah Rowe, also owns and operates -Minifree; sales provide funding for Libreboot. + -**NOUVELLE VERSION: La dernière version est [Libreboot 20241206](news/libreboot20241206.md), sortie +Vous pouvez également acheter du matériel avec [Libreboot pré-installé](https://minifree.org/) via l'entreprise Minifree Ltd, +ou envoyer votre propre ordinateur [pour y installer Libreboot](https://minifree.org/product/installation-service/). + +Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot. + +**NOUVELLE VERSION: La dernière version est [Libreboot 20241206](news/Libreboot20241206.md), sortie le 6 December 2024.** Pourquoi devriez-vous utiliser *Libreboot*? ----------------------------------- -Libreboot vous donne des [libertés](https://writefreesoftware.org/) -que nous n'auriez pas autrement avec d'autre micrologiciel de démarrage. Il est -extremement [puissant](docs/linux/grub_hardening.md) -et [configurable](docs/maintain) pour plein de cas d'utilisations. +Libreboot vous offre des [libertés](https://writefreesoftware.org/) que vous n’auriez pas avec d’autres micrologiciels de démarrage. [Puissant](docs/linux/grub_hardening.md) et hautement [configurable](docs/maintain), il répond à de nombreux cas d’utilisation. -Vous avez des droits. Un droit à la vie privée, liberté de pensée, liberté d'espression et le droit de lire. Dans ce contexte là, Libreboot vous permet d'avoir ces droits. -Votre liberté compte. -Le [Droit à la réparation](https://en.wikipedia.org/wiki/Right_to_repair) est important. -Beaucoup de personnes utilisent un micrologiciel de -démarrage propriétare (non libre), même -si ils utilisent [un système d'exploitation libre](https://www.openbsd.org/). -Les micrologiciels propriétaires [contiennent](faq.html#intel) souvent -des [portes dérobées](faq.html#amd) et peuvent être instable. Libreboot -a été fondé en Décembre 2013 avec le but de rendre le libre -au niveau du micrologiciel accessible pour les utilisateurs non-techniques. +Vous avez des droits : droit à la vie privée, liberté de pensée, liberté d’expression et droit à l’information. Dans ce cadre, Libreboot vous permet de préserver ces droits. Votre liberté est essentielle. Le [droit à la réparation](https://fr.wikipedia.org/wiki/Droit_%C3%A0_la_r%C3%A9paration) est également crucial. Beaucoup de personnes utilisent des micrologiciels propriétaires (non libres), même lorsqu’elles utilisent [un système d'exploitation libre](https://www.openbsd.org/). Ces micrologiciels sont souvent instables et [contiennent](faq.html#intel) parfois des [portes dérobées](faq.html#amd). -Libreboot utilise [coreboot](https://www.coreboot.org) pour -[l'initialisation matérielle](https://doc.coreboot.org/getting_started/architecture.html) -Coreboot est renommé comme être difficilement installable par des utilisateurs -non technique; il se charge seulement de l'initialisation basique -puis bascule sur un programme de [charge utile](https://doc.coreboot.org/payloads.html) -(par ex. [GRUB](https://www.gnu.org/software/grub/), -[Tianocore](https://www.tianocore.org/)), qui doit lui aussi être configuré. -*Libreboot règle ce problème*; c'est une *distribution de coreboot* avec -un [système de compilation automatisé](docs/builds/), crééant des -*images ROM* complètes pour une installation plus robuste. De la documentation est disponible. -De quelle façon Libreboot diffère de Coreboot? +Libreboot, fondé en décembre 2013, a pour objectif de rendre le micrologiciel libre accessible même aux utilisateurs non techniques. + +Libreboot s’appuie sur [Coreboot](https://www.Coreboot.org) pour +[l'initialisation matérielle](https://doc.Coreboot.org/getting_started/architecture.html). Coreboot est réputé complexe à installer, en particulier pour les utilisateurs non techniques ; il se limite à l’initialisation matérielle de base avant de transmettre le contrôle à une [charge utile](https://doc.Coreboot.org/payloads.html) (comme [GRUB](https://www.gnu.org/software/grub/) ou [Tianocore](https://www.tianocore.org/)), qui nécessite également une configuration. Libreboot simplifie ce processus : il s’agit d’une distribution de Coreboot dotée d’un [système de compilation automatisé](docs/builds/), capable de créer des images ROM complètes pour une installation plus simple et fiable. + +Une documentation détaillée est disponible. + + +Quelles sont les différences entre Libreboot et Coreboot? ------------------------------------------------ - + -Contrairement à l'opinion populaire, le but principal de Libreboot n'est -pas de fournir un Coreboot déblobbé; ceci n'est simplement qu'une -des politiques de Libreboot, une importante certes, mais qui n'est qu'un -aspect mineur de Libreboot. +Contrairement à l'opinion populaire, le but principal de Libreboot n'est pas de fournir un Coreboot sans blobs propriétaires ; ceci n'est qu'une des politiques de Libreboot, certes importante, mais qui reste un aspect mineur de son projet. -De la même façon que *Alpine Linux* est une distribution Linux, Libreboot -est une *distribution coreboot*. Si vous voulez compilé une image ROM -en partant des bases, vous devez alors effectuer une configuration experte -de Coreboot, GRUB et n'importe quel autre logiciel dont vous avez besoin -afin de préparer la ROM. Avec *Libreboot*, -vous pouvez télécharger la source depuis Git ou une archive, exécuter -and a script etça compilera une image ROM entières. Le système de compilation -automatisé de Libreboot nommé `lbmk` (Libreboot MaKe), compile ces images -ROM automatiquement, sans besoin d'entrées utilisateur or intervention -requise. La configuration est faite à l'avance. +De la même façon qu’Alpine Linux est une distribution Linux, Libreboot est une distribution Coreboot. Si vous voulez compiler une image ROM à partir de zéro, vous devrez effectuer une configuration experte de Coreboot, GRUB et de tout autre logiciel nécessaire pour préparer la ROM. Avec Libreboot, vous pouvez télécharger le code source depuis Git ou une archive, exécuter un script, et cela générera une image ROM complète. Le système de compilation automatisé de Libreboot, nommé `lbmk` (Libreboot MaKe), compile ces images ROM automatiquement. Aucune intervention n'est requise, car la configuration est préparée à l'avance. -Si vous devriez compiler du coreboot classique sans utiliser le système -de build automatisé de Libreboot, ça demanderait bien plus d'effort et -de connaissances techniques décente pour écrire une configuration qui marche. +Si vous deviez compiler Coreboot classique sans utiliser le système de compilation automatisé de Libreboot, cela nécessiterait bien plus d'efforts et de connaissances techniques pour créer une configuration fonctionnelle. -Les versions de Libreboot fournissent ces images ROM pré-compilés et vous -pouvez les installez simplement, sans connaissance ou compétence particulière -à savoir, sauf [suivre des instructions simplifiés écrite pour des utilisateurs non techniques](docs/install/). +Les versions de Libreboot fournissent des images ROM pré-compilées que vous pouvez installer facilement, [sans connaissances ou compétences particulières](docs/install/). Comment aider ----------- - + -The *single* biggest way you can help it to *add* new mainboards to Libreboot, -by submitting a config. Anything coreboot supports can be integrated in -Libreboot, with ROM images provided in releases. See: +La meilleure façon d'aider le projet est d’ajouter de nouvelles cartes mères au projet Libreboot en soumettant une configuration. Tout ce qui est pris en charge par Coreboot peut être intégré à Libreboot, avec des images ROM fournies dans les versions publiées. Voir : -* [Apply to become a board maintainer/tester](docs/maintain/testing.md) -* [Porting guide for new mainboards](docs/maintain/porting.md) -* [Libreboot build system documentation](docs/maintain/) +* [Postuler pour devenir mainteneur/testeur de cartes mères](docs/maintain/testing.md) +* [Guide de portage pour nouvelles cartes mèress](docs/maintain/porting.md) +* [Documentation du système de compilation Libreboot](docs/maintain/) -After that, there is build system maintenance (see above), and *documentation* -which we take seriously. Documentation is critical, in any project. +Ensuite, il y a la maintenance du système de compilation (voir ci-dessus) ainsi que la **documentation**, que nous prenons très au sérieux. La documentation est essentielle dans tout projet. -*User support* is also critical. Stick around on IRC, and if you're competent -to help someone with their issue (or wily enough to learn with them), that is -a great service to the project. A lot of people also ask for user support -on the `r/libreboot` subreddit. +Le support utilisateur est également crucial. Restez actif sur IRC et, si vous êtes dans la capacité d'aider quelqu'un avec son problème, cela rendra un grand service au projet. De nombreuses personnes demandent également du support utilisateur sur le subreddit r/Libreboot. -Vous pouvez allez voir les bugs listés sur le [traqueur de bugs](https://codeberg.org/libreboot/lbmk/issues). +Vous pouvez allez voir les bugs listés sur le [traqueur de bugs](https://codeberg.org/Libreboot/lbmk/issues). -Si vous trouvez un bug et avez un correctif, [voici les instructions pour envoyer des patchs](git.md), et vous pouvez aussi nous les signaler. -Par ailleurs, ce site est écrit en Markdown et hébergé dans un [dépôt séparé](https://codeberg.org/libreboot/lbwww) où +Vous pouvez nous signaler les bugs que vous trouverez. Vous pouvez également proposer un correctif en [suivant ces instructions pour envoyer des patchs](git.md), +Par ailleurs, ce site est écrit en Markdown et hébergé dans un [dépôt séparé](https://codeberg.org/Libreboot/lbwww) où vous pouvez envoyer vos patchs. La discussion sur le dévéloppement de Libreboot et le support utilisateur -se font toutes sur le canal IRC. Plus d'information est disponible sur +se font toutes sur le canal IRC. Plus d'informations sont disponibles sur la [page de contact](contact.md). -Translations needed, for libreboot.org +Aide pour la traduction -------------------------------------- -Libreboot currently has translated Web pages in Ukrainian and French (but not -for all pages, yet, on either language). +Libreboot dispose actuellement de pages Web traduites en ukrainien et en français. -If you want to help with translations, you can translate pages, update existing -translations and submit your translated versions. For instructions, please -read: +Si vous souhaitez participer à le traduction, vous pouvez traduire des pages, mettre à jour les traductions existantes et soumettre vos versions traduites. Pour les instructions, veuillez lire : -[How to submit translations for libreboot.org](news/translations.md) +[Comment proposer une traduction pour Libreboot.org](news/translations.md) -Even if someone is already working on translations in a given language, we can -always use multiple people. The more the merrier! +Et même si quelqu'un travaille déjà sur des traductions dans une langue donnée, nous pouvons travailler à plusieurs. Plus on est de fous, plus on rit ! \ No newline at end of file From cbb250dfda50c5c9fa154789d5adcf024b00c32b Mon Sep 17 00:00:00 2001 From: Tim_B Date: Mon, 16 Dec 2024 11:53:23 +0100 Subject: [PATCH 161/399] Update french translation for the index page --- site/index.fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/index.fr.md b/site/index.fr.md index 342efde..376aa24 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -12,7 +12,7 @@ Il initialise le matériel (le contrôleur de mémoire, le CPU, les périphériq Vous pouvez également acheter du matériel avec [Libreboot pré-installé](https://minifree.org/) via l'entreprise Minifree Ltd, ou envoyer votre propre ordinateur [pour y installer Libreboot](https://minifree.org/product/installation-service/). -Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot. +Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot **NOUVELLE VERSION: La dernière version est [Libreboot 20241206](news/Libreboot20241206.md), sortie le 6 December 2024.** From 69957dc6dd7492ab154618de49617ce72c4391c0 Mon Sep 17 00:00:00 2001 From: Tim_B Date: Mon, 16 Dec 2024 11:53:59 +0100 Subject: [PATCH 162/399] Update french translation for the index page --- site/index.fr.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/index.fr.md b/site/index.fr.md index 376aa24..342efde 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -12,7 +12,7 @@ Il initialise le matériel (le contrôleur de mémoire, le CPU, les périphériq Vous pouvez également acheter du matériel avec [Libreboot pré-installé](https://minifree.org/) via l'entreprise Minifree Ltd, ou envoyer votre propre ordinateur [pour y installer Libreboot](https://minifree.org/product/installation-service/). -Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot +Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot. **NOUVELLE VERSION: La dernière version est [Libreboot 20241206](news/Libreboot20241206.md), sortie le 6 December 2024.** From 332d9fa8d339d3b8ce2a67aa2730a35f3a503f5b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 17 Dec 2024 05:34:11 +0000 Subject: [PATCH 163/399] 20241206rev4 notes Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 647f1e7..49ff590 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -353,6 +353,17 @@ for reading, and have a wonderful day! Revisions ========= +Occasionally, stable releases such as this one may contain minor (or critical) +issues that went unnoticed during testing. When this occurs, critical or +otherwise desirable fixes are implemented, while not fundamentally altering +the substance of the original release. + +When this occurs, the ROM image and source code archives are entirely re-built, +and re-uploaded, replacing the old one. Patch files are provided alongside the +updated source archive, so that you can revert (from it) back to the older +revisions if you wish; by doing this, you can therefore also re-create the +original release archive, for reference. + Revision 1 ---------- @@ -412,3 +423,26 @@ which manifested during S3 resume, but that bug never made it into the release because it was fixed *before* the initial release of Libreboot 20241206. 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. + +Revision 4 +---------- + +All current ROM/src archives in this release match changes up to rev4. + +Rev4 fixed a bug: GRUB was not allowing the background image to be changed, +despite rules in `grub.cfg` that made one in CBFS load before memdisk. This fix +was implemented by no longer inserting background images into GRUB's memdisk, +instead inserting them into CBFS. + +This way, you can remove what's in CBFS and replace it with your own, if that's +what you want to do. + +To celebrate this fix, the default background logo was also changed. The old +one was a white silhouette of the Libreboot logo, whereas the new one is of +the same shape but shoes a rainbow-coloured gradient instead of all-white. This +rainbow logo was also used in U-Boot on the very initial Libreboot 20241206 +release, and it's also used for the main website logo at the time of this +revision. + +Basically, this fix was done as an excuse just to do another revision update, +to change the logo! The actual bug was actually quite minor and irrelevant. From 3da0fb028f583bde136da43c4f070f54ad0a34f5 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 17 Dec 2024 06:15:37 +0000 Subject: [PATCH 164/399] rainbow shoes Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 49ff590..f1b147b 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -439,7 +439,7 @@ what you want to do. To celebrate this fix, the default background logo was also changed. The old one was a white silhouette of the Libreboot logo, whereas the new one is of -the same shape but shoes a rainbow-coloured gradient instead of all-white. This +the same shape but shows a rainbow-coloured gradient instead of all-white. This rainbow logo was also used in U-Boot on the very initial Libreboot 20241206 release, and it's also used for the main website logo at the time of this revision. From 207c6414458b7baf2879b938bdd491b4ed66f5da Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 17 Dec 2024 12:29:27 +0000 Subject: [PATCH 165/399] Revert "make it rainbow" I actually like the rainbow logo, but I re-considered: It does look a bit *gay*, which I'm 100% supportive of, but Libreboot has many users from many different countries, not all of them accepting. If someone in such a country looks at libreboot.org, it might turn a few heads and could even get them into trouble. Libreboot doesn't need to look like a pride symbol. It just needs to provide free boot firmware. This reverts commit 7e1fa9ff12009b5d309b17a317c772dea6bae352. --- site/favicon.ico | Bin 6977 -> 2076 bytes site/global.css | 2 +- 2 files changed, 1 insertion(+), 1 deletion(-) diff --git a/site/favicon.ico b/site/favicon.ico index c9191b964c1cfa40cce95ff6202a6753f841b97d..212bb32e106621165baf5e5f8ac5ee4e20bea700 100644 GIT binary patch literal 2076 zcmV+%2;=vOP)lFGbIH7U;eM9rG+d2B&cuSzAY*& z+HSOk(`3p1;=fQGy1ToH5J0$WY-sd)@=RMsokL`){EHVI72Vw2jMopzfrtVuv^Q_w z)YsShc=;Hq>92FLZd|(#Pehgsur@I<5g!}3f7_mQOV)#X4+aMZ;k@x`$#S5os%kxN zL-}7z9o%!^>7ysPIk_`cq1b@DbLsp=u0+GAh{&ZdWn*s5q0|8Zj))HI;?~yIo7Zk| zD0M(seEISv5gOy;Kwn>< z#c^{^mpf=o^!E0WMe*s=r;Ln@&3YTTUK<*#8(?#hg@N4F$<~po4pZi2=eT%YT3b^~ z^{iP-N=PJ&qP(n}k~M3cot*;en93?j)|6>UtD%uY76s%$O4gK}J9U-_LPdE6C2Pu3 zl9Gual$MlIvZhQJv7w~6gh$D;Hnk!`06iWaB`Yg4iwJ?TvNEodh5n$h5@=;5r^&K0 zwL)Ku2#3~|R_>B@;@~lnS`}TLUCMu!=OS4siAB=+0B8~#|5f1}S%H255L<|dfGDc= zFC`9<<>Bn!+|*3O0#tUDzbdSAvUKG&9jxpk!y~Yd&{-hjqM@OI_ZyitOqS~36g2;* zsw1m`F%7dLCu}XO&!0Z$l9j2n)d4bg;Ht?PQrA zK8~gfmJfp+mN7Ump!9p$)l1gCt-Euwb1()(Rsr(!@>lOn>Al-`pFe+2RtL~|J$vfR zY9vefk8-gwG4R%8)c_M8s()8Gym^viu0yy-; z`?Vy=N=`~3<+hm0n>g+8ZgObsG>XD&6ZL_1;&V; zIG8T+)M4MYJ&1-Y9>tI-pcsUngYO|dWA?kTu@PsTTpgShel5j#=Csr_##TU{$VO87 z_~GLf*@O6^STY#xM(%>gQ2LXct%Z$~t%HY)8;Voqzbq)dZ#CG&cz1D+4Gs>oK~`mD zC7T3c?VzYa2*#kX*8f#Se_$-DRQ`7t`_bZ*G@NjY8X|iou9yl*I zkAIzJWo01(vP2dRge-AeAq+t&PfJOCaOXbm7f||(oCF)R=GOc*Y*SN{=KoaKQynmQ zAs$EY6qpA>I9L3WENkj^U2PqIOL2$ER`w(s_(i-?VuUcXZDx)~vL=>C_C_KT8XSVl zgb+}~h-kiEKCIEC^anYtCP-9_wj-jdyR(~Ql~Qy)aZVO5SiJlbN0B97)a&W)KC<@^n@sKA zyc02m{~6%3;5}w8YGZ>eoFXQoqr9vPp@97cI7R}J5|hy1MdgT2gdR_e)$R^rEfEC> zlsJux9w+B+z_mJIfyFGmz=r0Mm8k_suM5U-%e>ltM@I+Z3)lfLlZOG$=*TF>m1x`| zOZiXoBO@aWruzH(jaBuhg0z(C{_T5@A2_-}%ZNuWqP}_c24fGxA7Rpr-r7BnH8nOe zR1|0?^osNOT{}arDkvzJe^{E5h3*jH0}eyZuToO7E}T8jUo@b70$)DQ-=t(I{89?t zB>oa~!TOGpm6?%Az5#>1O@?{c}~|g!lwSoKT=-@o&Ak1r6j^oO)pP)F@ePt!;!4*onAk1CkK)UsAHv z|E<*C-i{niZ za}`!q)v&4>R#n5Qsv1^R!>YzbTgXJ35)>Qi@ zE8uxvYOlv7y%?gUZn1_{ot;ujUYV}OEc=Krxz8OQb+0Bwi#4q3Y^_f>^re?2U-lCh z`kM{=YFOt+4Qs}{Px*$w`#FjxG#0ys8dkNnu$DdF2Ykvu{X!5ewDZ$8wp|UY+EQ50 z_CoLX$wOzXD4J{LCWEFM)Uc{8g|+C}KI%*U;TMX0(o11c5QG|5b*iu$jnDbMEBx0U zkDYM1VRgDDmn;aD28$=mtAR+MMe$yr@+{ABoJ8qe*SpKjX3Tr3S04KRpgTYi4&8s9QVpvbrEwXjaezP%7g?7GmrfOJKQ5?9}068dkM7UGGy#?ULvDkk7c+ z?e26PLJjNeRekQQ_Zu3WPx-o`p^N=l5G{5Kr3p=_VV$)a*5=b;tMzZcktJ(id+1$KDU zZLXE{vfji<5CqYtHneHBosCV1p@vl*JxFSt#-P#qgsrHG5f&+m~yV!Oigc{cWs#KC;Ka@*R6o(s__X%GS zMQ5wmyWNc*aknfvTntgbfzVPL+eQs*`x~c&uSqOQaF`$eZx@%b5z%);d(zxW3 z0~A@2gb;NWEPK9}mseT#Y;)#4)rN+yb&)lDwrN;(U3;G7NkDKMMfL?h6a-I|H7hRl z4@Cy^?Ofl*uHB|#Rees=aT;|6sU#3IKIeOa;;E1%=lhf17|b)~ zdy8ByfTA4b5Qli0HO`_00Gv3T%Q^yVBe3cy0ClN#g$R{Xf6f8wD$Bf$*O1dA3T>LEx5hXC zXWS%AHCWqAYx%kcf*5IX%feS7m_Nxw9OnRIS+R6n+Z!FUiC7qE&@mc6p)L^@ou_nXPok}8&u{9ma`8rJUR#=~^l&$(LY=nzmIK%7t`*)t2*I?CPwU$1L z#rY2&S1YWK08KOUW52Z=4spN!8-i#&;8yC2RrkCHT`$%JVBxawr)ih4K6)$XOR6T` zN7%Fq*kS)5`}M8$8KhO!n<>_dE=Y@oD}NX#%@I7+s#Rj*bQob92d2KjX<&c(dX9yM zYp^C%_hlK$uAp<}ci9Qpgbm2 z;d1eL`klby+59z}^bb&jMXlwZNCJv9CVy20D^{{&!#8uRd_6T-wW>!H ziN)Re^B8rQP{u1lG_F!9AgxS=@qVRvoP)!^t--1lRfIx&WnXAsg}v#8NB|Rj6|DH1 zYMzy@%zJvpK@RkPzm6NKs{Iu^KLm62S0mmdu?mggl8}Hh(YU8+G2N3F$2idab*KZ< zT16=7l|9e`Zhkq;--7WGrdYB3u|k0v{|+TZahzw@ez^uKscw^@b1U5PLJ)(f zCswTlRD!GGt1AAh$d7S&^%tnYimJVp=5XEj!mjsYtO!?xDUO~oUfg}kf5`jXJfge3{el!hMqKHtObEARLbN=?@e{8C{Dlct?W?*P)C)R*>wg4xz9-YAv2uAo;kTl3Pk>3e z#))Gu0SXqf1vOH~4Hw|?MGBXE4qW!xfb!f@Bt;LHDrC5^srLg;9{FL=AsyS!Gn+MP zur7#7wMI|{fIaUI*L(wLgPEiO2@xpqX)2WJYaUJ?{9e!j4bv#vu9a-Ql{g1Z{)1Ah?;~8k=_$iph*iJ)3cg3I_KRx+P^7ci zr^zccE!=(u?7kT0c7v~0qy$&0Sd-5hfG}0n05wGs`7*^5-wc}9VEr#{Ru~^7%fJtP z&|uk!6bSLc06Pp^(tw?9SX_Xm9Yj!?lkkKHO?uX1@*i&|0HbEkxELJ8KmM&isKMHN zfxcZ{gD4@s1qSi-q=Xp>v60;W|Uv zF!T$d7lc7B3`(KMg%CJ@sfEx;P*tYGc%Pn4_giVYY(tnm<01^;t)Bv9Wa6}wb)*Js zgFto5-e?@Fy%R3JR(O{W6!u(U7zF66&@F`ZB96TRdZSV3=R#fzMX^b61qYg@L^M^b zi3(PE-eUTSu|XUy&#CTH@aVSy!eV0qL8!qxHxoYcO=F-$VAo~vgfx;)51Qe`GMCL!gEiZM8NOfktk(d*(nauH-wD@W z2O^AxD)h@#vEmd+rGllZ6@eR9twA9S3!yB8^Or=ZqTh-Tk-$nQq+gH%WE)7kfv=4AlnYCB9z)IdjQfe;0wPTKH+1a)tVMHKrdFV z1k>oAam8Z2WK^lfQ)I6o!c_|Srom-Ma5W-4Q%!w!TFCYzMGnrCKl6Ex@pV7rhehyp89bu7X0WNRoV38i^N`>eb6*wHu5) zm%*2uztn(c$zxRveH^F5RfTC1um%8xA-wg&fL+g>=xQ86i4xKvj58U;3oB*K+qh`3VBBV2K% z7%P`zhtiUrvS41mKk(^r}m&8_^@kZDPR`s}~RJkI2qw#eAjhxE=Z7YHm zztyL}-R}n9_lIcl32k!&#wL&Lw{teg0+UC+;9uL=-WUVfFr?WIA`DNx zzZtH(2EO3apg9NF4Z@W&t_V<^8tGM1dJ`dw85c3@f_{Q)GXvBFgOB56)Nn3Mf|D87 zbO~sQtlS6d&%oM!Xz$IK_T98D|3+*w^p&ac^w~dRFuV^yml}&(Z&j$E-J%=DU7Z@> zrT5099ha_+z*Wt-((g1iR*ikET2x|)vfShVHLVKcSnYtA-Y0)fO@aoBQ?T|Jth@zI z{{d(lqy=N?DOxxGF(&9l)$)UkI8(jUi1qX7KXf(O$<;Q6}To$y-qXp&lgEF0AO$kdI#b7 zpTgRIfY}WQFe$U|vv7Mp8WUH8m8!LT^r!K~(+DOkHs%e$Rs~B}^EDBHmwYE&cQpwr zSG_g@SD6A-Vr8Og=BEUxgUt?5Q^r;CT$5AZEO51<2+&`HwP)ez??T+Db)i#?5)3nm`>Ge`I2J!pBbF_L%^i(9d1>yR!7w;$owMw(hq@cOhA?HEg&1u zxVlqJeSB8UxcXJNHn~YKc`eEeRy;g#0Mx*(cR_OpnE41**#K{$ba7le4ToO?EBgTj zs>+PRiPMH{2vq;_0&vAwVfK6|;;V*D0&WUe z=bv$f2!N?kQDja#}o( zj0<|PLQQ5}>58kw%??llFbMG09FCMQR7ijzA_NUgSNd~KTr}1QGUM9~uKp(2^C5te zGOhwW`B(U3zYQ>T3fyXOgYT6+yR-;D@paIdo9eG7pIOdX8sUo7sZy~jiT&t)98p9w zzu_jq1k)2a94+Crf>uG9&*tM9R}lmNNC+E9=!hhgW_-aPx5Jrvxa;S^&Q$}{{$avn z-v*jjx>C0^SS$G&pxksdyzmPqVVYPOx=jmEE2e#IO6BUMk$yoXou4WN3WaA2I8(y0 z0B02p6}4@fw-wGYXRn4YHA`Zi+MZ zf2$oS1Puna5AOU4FfEb-JpH3^_TPw8;9PLVnk^5O51#e1i!ty^Uj+;E6Y$Jlxnwf} z)CAPoH8^%mIDJN0??P`)>77yXWeBUFJw;7MU1p^N^-3tr%z*vKW@Zjfw?7|={Bww{1z)Ihh`KUYL%ienipk{hD9j0L(Vfy1g zgMax8m_&g%9Ym1IrfoR3q|*PkEZzY(e-~&Q)Izxe4}KN+US$QiZNT#CM`v{gg_nOC zT(=vL4NilTS4F)ZyzY(go4*e0r$Mzkbs2=Ym@;o^={tl06T-kC> zCkWdBD0*cduO3BVtbOkWH++7qR;9utKML!Q0?@WC8n&@LHmoX2ujmJ_-Y5#d_kS$h zbs1HeSyzVB{nk+7Wj_k{y#_=8z>3k1nigzwkfoJyBVg}1y_>ot^vyTB1 zjd#bjjS&OD_WC$M6wbjlx4~t10&`#%AvD1|c=V6q)cq5&!j=Q8SN14_S4D-YP=QZ> zH~7e#U}uNtmOXcWb?_9t_^05+AplaN+BW*;VZZFB|81>-d+vhWmxGz7dYVlJkNpE2 zy>9}ltp!&4AW=%UOSp0me9WzI=cRDTBD5Qz%50k5$n)?s@UowW?h0dbT4u&Mwuy#5 z_X9t$00iK!OW~@kB2d+BWf7_;-U!dWZTuH(m+yw9 zRs>1eh@RiDi-R{k6`=}&aofkJm1J8&wJU>nzZ@2JfNxB8p$>q@AAmzo093wQu_eJ8 zlmmt#=kgu!>W=~%Kn7wtKgo0xuMYn6QTWl{0+BIP3m6f$ixds3`I-UXng+bvJ}?ve z6ytbo8Q$_{@L>#<@3^)F*s@@C%bu2@lux`7KIcx5jCeHwvx#tJaV!M>{4MZ1e-8kH zj9yL1HiD|sq-TLo-2tvyJ=LbjV5NjNKM8BYDW}G4S+HW-tH9UX1s`}7NV5tT!ud%O zRQ&+2`dfJ06X})9T-Gsyu+22uXc7nlz;zBf4mufR4LDiA(`!&_C8wKn9dE=~V0(a- zE8P1YaO>U#)TY8^;6xw3>yKb{9RM08qwU&kOGSTG4*b9|RSBrJZKnX{XKSUk)F6 zX#z+Z5hyCZXM?No@E`vLZ#)36e;S+t0E6-K*_;&-wzX=oqQ45j_g)LP?f^+J#cCBt ze*F>n%O~K*eefPv!BPhfmiJTaS5#PRQLxc;4hAX#9g*AXQ@?#HOtoRZ)m}tt;vYt zpobsa4?$x(KA+7QYSm!PQmy8I7d4@ifuxI71K)ob)&i+L`%xcwORhrJO1HJ{YB;6I_ZZQrn&C8<^o7L=n()wKW(;Cq0JdFR>>{4#K|hHAQMu&OVU1Mos% zFI5R}2KZ;-FMw8R6DF&tzZ$G5yKA%vg$!e*;s!v7DuJhf2O>~(h%$(_Mn>HUwQ8`Y z^s7^9$(6uo0y(fBcocYBgb72G0xi=V^`A3cwQ8`SU-m;D3d3|^!~`qWbY|LZT&o5v zO^2Zjr6?+bjQge#5sfe*Y*e-C97}70Hm(}1TD5AhYSm!Xs==yNs|Ksq|7ZO-YhUV! TXMfH~00000NkvXXu0mjfoz66C diff --git a/site/global.css b/site/global.css index 41d0414..e80c1af 100644 --- a/site/global.css +++ b/site/global.css @@ -89,7 +89,7 @@ html, ul, #TOC div.title,h1.title { background:url("/favicon.ico") no-repeat; background-size:auto 99%; - min-height:3em + min-height:2em } div.title {background-position:right} h1.title {padding:0 4em} From 63db2df0febcca7bf4a2e8187cb9ee0673418253 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 17 Dec 2024 14:37:36 +0000 Subject: [PATCH 166/399] t480 update notes (ec uart) Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 1a0e96a..360e3c5 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -234,6 +234,15 @@ write protections](../linux/grub_hardening.md) on an existing Libreboot setup. You must also make a dump of the NOR flash, before updating Lenovo's firmware, and once again before flashing Libreboot, being sure you have good dumps.** +**T480: Make sure to use the `n24ur39w` release, when updating Lenovo firmware. +Or downgrade to this version. This is because the EC UART support in coreboot +specifically taps into the EC code of that release. See:\ +\ +and it can be downloaded here:\ +\ +NOTE: T480s (S model) doesn't have EC UART support yet, so it doesn't matter +yet which version you update to on the S model.** + Please ensure also that you've already dealt with the Thunderbolt issue, which is described above. From 52da2a4d01a3105c43b817d09290ea95f56e452e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 17 Dec 2024 18:40:57 +0000 Subject: [PATCH 167/399] rev5/6 20241206 notes Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 21 +++++++++++++++++++-- 1 file changed, 19 insertions(+), 2 deletions(-) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index f1b147b..b9d6958 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -427,8 +427,6 @@ The ROM images were all re-uploaded, compiled from the rev3 tarball, because it Revision 4 ---------- -All current ROM/src archives in this release match changes up to rev4. - Rev4 fixed a bug: GRUB was not allowing the background image to be changed, despite rules in `grub.cfg` that made one in CBFS load before memdisk. This fix was implemented by no longer inserting background images into GRUB's memdisk, @@ -446,3 +444,22 @@ revision. Basically, this fix was done as an excuse just to do another revision update, to change the logo! The actual bug was actually quite minor and irrelevant. + +Revision 5 and 6 +---------------- + +All current ROM/src archives in this release match changes up to rev6. + +I decided afterall to keep using the boring all-grey silhouette logo in GRUB. +I also made the same decision for U-Boot. + +The plain logo is less eye catching and looks less out of place, and it's +uncontroversial in every way. This revision still contains the fix allowing +GRUB backgrounds to be changed. Rev5 made this change to GRUB and Rev6 made +it to U-Boot. All ROM images were re-compiled to rev6, and re-uploaded. + +A minor change, to be sure. I need Libreboot to be as trouble-free as possible +to everyone, and some countries are culturally hostile to the particular +colour gradient used by the old logo (from rev4); even if I preferred that +logo, I want those users to have no trouble at all using Libreboot in public. +Libreboot's only purpose is to provide free boot firmware. From 4aea280c60a82cd95c9a822913110505d30354b3 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 17 Dec 2024 18:55:49 +0000 Subject: [PATCH 168/399] remove one of the u-boot photos just show the qemu screenshot Signed-off-by: Leah Rowe --- site/docs/uboot/uboot-x86.md | 4 +--- site/news/libreboot20241206.md | 4 +--- 2 files changed, 2 insertions(+), 6 deletions(-) diff --git a/site/docs/uboot/uboot-x86.md b/site/docs/uboot/uboot-x86.md index 2021b94..bb0f637 100644 --- a/site/docs/uboot/uboot-x86.md +++ b/site/docs/uboot/uboot-x86.md @@ -6,7 +6,7 @@ x-toc-enable: true Introduction ============ - + U-Boot is available as a coreboot payload, in Libreboot 20241206 and later, on x86 boards; on ARM it has been available since late 2022 Libreboot releases. @@ -28,8 +28,6 @@ reliably boot many Linux and BSD systems. Availability ------------ - - Do this in lbmk.git (Libreboot's build system) to check whether your board has U-Boot enabled: diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index b9d6958..8b39856 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -31,7 +31,7 @@ system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). U-Boot UEFI payload on x86\_64 ------------------------------ - + For Libreboot 20241206, today's release, U-Boot is *also* provided as an optional coreboot payload on x86 machines. This provides a sensible UEFI @@ -54,8 +54,6 @@ Summarised list of changes Board support ------------- - - The following boards have been added since the Libreboot 20241008 release: * **[Lenovo ThinkPad T480](../docs/install/t480.md)** support, implemented by From 2a4b7d594316706ccae39f2e52a4f3aa926b659e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 17 Dec 2024 19:39:05 +0000 Subject: [PATCH 169/399] move 20241206 rev notes to own page this release is pretty crazy. a lot more revisions are planned for the 6 december release. move the revnotes to a dedicated page, in anticipation of many more revisions (in my head there are about 30 additional changes planned). Signed-off-by: Leah Rowe --- site/news/libreboot20241206.Revisions.md | 119 +++++++++++++++++++++++ site/news/libreboot20241206.md | 118 +++------------------- 2 files changed, 130 insertions(+), 107 deletions(-) create mode 100644 site/news/libreboot20241206.Revisions.md diff --git a/site/news/libreboot20241206.Revisions.md b/site/news/libreboot20241206.Revisions.md new file mode 100644 index 0000000..87d02c9 --- /dev/null +++ b/site/news/libreboot20241206.Revisions.md @@ -0,0 +1,119 @@ +--- +title: Libreboot 20241206 release revisions +x-toc-enable: true +... + +This article concerns Libreboot 20241206. For general information about that +release, please read +the [Libreboot 20241206 release announcement](libreboot20241206.md). + +Occasionally, stable releases such as this one may contain minor (or critical) +issues that went unnoticed during testing. When this occurs, critical or +otherwise desirable fixes are implemented, while not fundamentally altering +the substance of the original release. + +When this occurs, the ROM image and source code archives are entirely re-built, +and re-uploaded, replacing the old one. Patch files are provided alongside the +updated source archive, so that you can revert (from it) back to the older +revisions if you wish; by doing this, you can therefore also re-create the +original release archive, for reference. + +Revision 1 (8 December 2024) +---------- + +A bug was found whereby `seabios_` images are created twice, This was fixed in +the revision `e3b77b132e6b5981c09bc1ce282afaae64058ab3`. This bug caused vendor +file insertion to fail on release images, because the `vendorhashes` file would +list the file twice, but one of the hashes would be wrong. + +This is because the build system wrongly created U-Boot-only images first with +that name, because the `add_uboot` function in `rom.sh` unconditionally created +images with U-Boot in them; the function also creates ARM64 images, where U-Boot +is the primary payload. + +On x86 machines, SeaBIOS should be the main payload, chainloading U-Boot. + +The build system would then create the actual `seabios_` image, replacing the +other one, on x86 machines. + +So, the command to create the first image was removed. However, just before +uploading `rev1` images, it was discovered that this would cause no U-Boot +images to be built for ARM64 devices, which lead to Revision 2: + +Revision 2 (8 December 2024) +---------- + +See commit ID `b910424b5df8ed7c931a7b8f5cc8e34eacf0ca3e`. + +Revision 1 was reverted, and replaced with the following logic instead: + +In `add_uboot`, the instruction to create a ROM image was changed so that it +only creates one where U-Boot is the primary payload (which is the case for +ARM64). + +The source archive is now `20241206rev2` instead of `20241206`, and the same +is true of affected images on x86, where `vcfg` is set in `target.cfg`. + +Revision 3 (11 December 2024) +---------- + +See commit ID `3b6b283eabe7a655c861d1543aeae49d27566f53` and the two commits +before that. + +This revision disables PCI-E Re-plug (hotplug feature) for the NVMe SSD on +Dell OptiPlex 3050 Micro, to prevent the device from being renamed randomly; +such renaming will cause a system crash if booting Linux from the NVMe. + +In my case, I was running RAID1 (SATA+NVMe) and every few days, the RAID1 got +unsynced; I simply re-synced and it was fine, but what if that was a RAID0? It +would possibly corrupt the entire array. + +This revision should prevent the issue from occuring. Without this patch, +the `nvme0n1` device (as an example) might randomly rename to `nvme0n2`, because +Linux would see it as a new device. + +This same fix was made to the ThinkPad T480/T480s to fix the same issue there, +which manifested during S3 resume, but that bug never made it into the release +because it was fixed *before* the initial release of Libreboot 20241206. + +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. + +Revision 4 (17 December 2024) +---------- + +Rev4 fixed a bug: GRUB was not allowing the background image to be changed, +despite rules in `grub.cfg` that made one in CBFS load before memdisk. This fix +was implemented by no longer inserting background images into GRUB's memdisk, +instead inserting them into CBFS. + +This way, you can remove what's in CBFS and replace it with your own, if that's +what you want to do. + +To celebrate this fix, the default background logo was also changed. The old +one was a white silhouette of the Libreboot logo, whereas the new one is of +the same shape but shows a rainbow-coloured gradient instead of all-white. This +rainbow logo was also used in U-Boot on the very initial Libreboot 20241206 +release, and it's also used for the main website logo at the time of this +revision. + +Basically, this fix was done as an excuse just to do another revision update, +to change the logo! The actual bug was actually quite minor and irrelevant. + +Revision 5 and 6 (17 December 2024) +---------------- + +All current ROM/src archives in this release match changes up to rev6. + +I decided afterall to keep using the boring all-grey silhouette logo in GRUB. +I also made the same decision for U-Boot. + +The plain logo is less eye catching and looks less out of place, and it's +uncontroversial in every way. This revision still contains the fix allowing +GRUB backgrounds to be changed. Rev5 made this change to GRUB and Rev6 made +it to U-Boot. All ROM images were re-compiled to rev6, and re-uploaded. + +A minor change, to be sure. I need Libreboot to be as trouble-free as possible +to everyone, and some countries are culturally hostile to the particular +colour gradient used by the old logo (from rev4); even if I preferred that +logo, I want those users to have no trouble at all using Libreboot in public. +Libreboot's only purpose is to provide free boot firmware. diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 8b39856..49543f4 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -351,113 +351,17 @@ for reading, and have a wonderful day! Revisions ========= -Occasionally, stable releases such as this one may contain minor (or critical) -issues that went unnoticed during testing. When this occurs, critical or -otherwise desirable fixes are implemented, while not fundamentally altering -the substance of the original release. +Several revisions have been made to this release, since the original release. +With stable releases, it's normal to make such revisions, when critical bugs +are discovered, or desirable changes are otherwise identified. -When this occurs, the ROM image and source code archives are entirely re-built, -and re-uploaded, replacing the old one. Patch files are provided alongside the -updated source archive, so that you can revert (from it) back to the older -revisions if you wish; by doing this, you can therefore also re-create the -original release archive, for reference. +When these changes are made, the release is re-compiled, with the newly amended +binaries and sources re-uploaded, replacing what was there before. Individual +patch files are also provided, so that you can (using them as reference) revert +the source archive back to previous revisions. -Revision 1 ----------- +Please see: [Libreboot 20241206 release revisions](libreboot20241206.Revisions.md) -A bug was found whereby `seabios_` images are created twice, This was fixed in -the revision `e3b77b132e6b5981c09bc1ce282afaae64058ab3`. This bug caused vendor -file insertion to fail on release images, because the `vendorhashes` file would -list the file twice, but one of the hashes would be wrong. - -This is because the build system wrongly created U-Boot-only images first with -that name, because the `add_uboot` function in `rom.sh` unconditionally created -images with U-Boot in them; the function also creates ARM64 images, where U-Boot -is the primary payload. - -On x86 machines, SeaBIOS should be the main payload, chainloading U-Boot. - -The build system would then create the actual `seabios_` image, replacing the -other one, on x86 machines. - -So, the command to create the first image was removed. However, just before -uploading `rev1` images, it was discovered that this would cause no U-Boot -images to be built for ARM64 devices, which lead to Revision 2: - -Revision 2 ----------- - -See commit ID `b910424b5df8ed7c931a7b8f5cc8e34eacf0ca3e`. - -Revision 1 was reverted, and replaced with the following logic instead: - -In `add_uboot`, the instruction to create a ROM image was changed so that it -only creates one where U-Boot is the primary payload (which is the case for -ARM64). - -The source archive is now `20241206rev2` instead of `20241206`, and the same -is true of affected images on x86, where `vcfg` is set in `target.cfg`. - -Revision 3 ----------- - -See commit ID `3b6b283eabe7a655c861d1543aeae49d27566f53` and the two commits -before that. - -This revision disables PCI-E Re-plug (hotplug feature) for the NVMe SSD on -Dell OptiPlex 3050 Micro, to prevent the device from being renamed randomly; -such renaming will cause a system crash if booting Linux from the NVMe. - -In my case, I was running RAID1 (SATA+NVMe) and every few days, the RAID1 got -unsynced; I simply re-synced and it was fine, but what if that was a RAID0? It -would possibly corrupt the entire array. - -This revision should prevent the issue from occuring. Without this patch, -the `nvme0n1` device (as an example) might randomly rename to `nvme0n2`, because -Linux would see it as a new device. - -This same fix was made to the ThinkPad T480/T480s to fix the same issue there, -which manifested during S3 resume, but that bug never made it into the release -because it was fixed *before* the initial release of Libreboot 20241206. - -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. - -Revision 4 ----------- - -Rev4 fixed a bug: GRUB was not allowing the background image to be changed, -despite rules in `grub.cfg` that made one in CBFS load before memdisk. This fix -was implemented by no longer inserting background images into GRUB's memdisk, -instead inserting them into CBFS. - -This way, you can remove what's in CBFS and replace it with your own, if that's -what you want to do. - -To celebrate this fix, the default background logo was also changed. The old -one was a white silhouette of the Libreboot logo, whereas the new one is of -the same shape but shows a rainbow-coloured gradient instead of all-white. This -rainbow logo was also used in U-Boot on the very initial Libreboot 20241206 -release, and it's also used for the main website logo at the time of this -revision. - -Basically, this fix was done as an excuse just to do another revision update, -to change the logo! The actual bug was actually quite minor and irrelevant. - -Revision 5 and 6 ----------------- - -All current ROM/src archives in this release match changes up to rev6. - -I decided afterall to keep using the boring all-grey silhouette logo in GRUB. -I also made the same decision for U-Boot. - -The plain logo is less eye catching and looks less out of place, and it's -uncontroversial in every way. This revision still contains the fix allowing -GRUB backgrounds to be changed. Rev5 made this change to GRUB and Rev6 made -it to U-Boot. All ROM images were re-compiled to rev6, and re-uploaded. - -A minor change, to be sure. I need Libreboot to be as trouble-free as possible -to everyone, and some countries are culturally hostile to the particular -colour gradient used by the old logo (from rev4); even if I preferred that -logo, I want those users to have no trouble at all using Libreboot in public. -Libreboot's only purpose is to provide free boot firmware. +Many revisions are planned in the run-up to next year's stable release ETA Summer +of 2025. In particular, there is much work that still needs to be done on the +U-Boot payloads (x86 and ARM64). From ca4a6756e3e0961255814b948ef888648761d000 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 17 Dec 2024 20:00:19 +0000 Subject: [PATCH 170/399] clean up an errant reference Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 49543f4..f7bbb37 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -40,7 +40,7 @@ information available on the [U-Boot x86 page](../docs/uboot/uboot-x86.md). This means that you can have a UEFI boot environment, even on machines where the original vendor firmware never supported it. For example, the ThinkPad X200 -in the photo is running U-Boot, and booting a distro via U-Boot's UEFI +runs U-Boot virtually bug-free, and it can boot Linux distros via U-Boot's UEFI implementation; that machine could not originally do UEFI. This page lists all changes made since the *Libreboot 20241008* release. Since From 3ed4b4f6b3523054c8a27a7b3d6208cc7b8a6d27 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 17 Dec 2024 20:02:21 +0000 Subject: [PATCH 171/399] context Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index f7bbb37..e7fa259 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -44,9 +44,9 @@ runs U-Boot virtually bug-free, and it can boot Linux distros via U-Boot's UEFI implementation; that machine could not originally do UEFI. This page lists all changes made since the *Libreboot 20241008* release. Since -it's a stable release, there has been a more conservative focus on fixing bugs -and in general polishing, though several interesting features have been added, -in addition to numerous new mainboards. +Libreboot 20241206 is a stable release, there has been a more conservative focus +on fixing bugs and in general polishing, though several interesting features +have been added, in addition to numerous new mainboards. Summarised list of changes ========================== From 8576804b30485e1c1ca71b5562a366dd721f812e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 18 Dec 2024 05:40:30 +0000 Subject: [PATCH 172/399] t480 tb notes, plus notes about touchscreen Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 360e3c5..a2c1fe7 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -195,7 +195,20 @@ NOR flash is on a T480: This page shows how to do that: - +\ +**WARNING! Please follow the guide PRECISELY, if you follow it, but please +only follow it if your ThunderBolt is already broken. If it isn't, use +Lenovo's software-based updater. If you do the external method, you MUST be +very careful; the guide there for example says to disable ThunderBolt assist. +It also says to erase first, then flash the `null.bin` (file with zeroes in +it), then BOOT, and when it boots, power off and re-connect clip again and +then flash the padded TBT.bin - whereas, for example, if you simply flashed +a padded TBT.bin and nothing else first, and boot, it will be perma-bricked, +in that the CPU won't come out of reset (it'll bootloop). We don't yet know +how to recover from this brick scenario. So all of this is to say: flashing +the ThunderBolt externally is EXTREMELY HAZARDOUS, and should be done with +the UTMOST CARE, ideally NOT AT ALL. -- ALSO: the guide only covers T480, +but should be similar on T480s and other ThinkPad models.** You unbrick the Thunderbolt controller by pulling the firmware from Lenovo's update, from Lenovo's update utility. Once extracted, you then pad it properly @@ -209,6 +222,13 @@ flash IC. AGAIN: This is not the Libreboot flash IC. This is separate to the system flash. Read on to know how to reprogram the main system flash! +**AGAIN: It is extremely easy to permanently brick the ThunderBolt controller, +rendering your system completely unbootable, if you use the external recovery +method. If you're still able to fix it with a software-based flasher like the +one Lenovo provides, please use that at all - or simply don't fix it at all, +because the machine will at least still charge while it has the ThunderBolt +issue, where older firmware is used.** + Flash a ROM image (software) ----------------------- @@ -385,8 +405,7 @@ The PCH's NFC device is unsupported in Linux anyway. Touchscreen on T480 ------------------- -Some T480 machines have touchscreens. These are untested; the touch functionality -probably doesn't work yet, in Libreboot. +The touchscreen was tested, and confirmed working. Not all models have it. The digitizer is simply a USB device, which *is* enabled, but it's just untested. From 71cc1104e0311d3869bf6182a34720aabb118b0d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 18 Dec 2024 05:45:29 +0000 Subject: [PATCH 173/399] stragglers Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index a2c1fe7..81245f1 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -327,6 +327,12 @@ You can get audio from Displayport/HDMI, but you must select it manually. For example, you can select it in `pavucontrol` if you're using PulseAudio or PipeWire. +Touchscreen on T480 +------------------- + +The touchscreen was tested, and confirmed working. Not all models have it, +but it does indeed work perfectly on ones that do. + How to use backlight controls ----------------------------- @@ -402,13 +408,6 @@ probably dosen't work in current Libreboot releases. The PCH's NFC device is unsupported in Linux anyway. -Touchscreen on T480 -------------------- - -The touchscreen was tested, and confirmed working. Not all models have it. - -The digitizer is simply a USB device, which *is* enabled, but it's just untested. - Smartcard reader ---------------- From 777ea30c5968796901f6993a64cb017d5928b970 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 18 Dec 2024 05:50:01 +0000 Subject: [PATCH 174/399] correction we don't know either way. remove this note. Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 81245f1..5ed2250 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -429,8 +429,7 @@ as a DisplayPort). Thunderbolt, but be warned: it is completely untested, as of Libreboot 20241206. This patch is *NOT* included in the release, because it breaks on S3 resume, and may cause a kernel panic. Also: currently testing only reveals that the -ThunderBolt controller shows up, and it was confirmed that USB devices do -work on the port, but everything else is UNTESTED. +ThunderBolt controller shows up. You also need the [gerrit patch](https://review.coreboot.org/c/coreboot/+/75286) adding a Thunderbolt driver to coreboot. From 4811a7683e1f111ca2d2611915b082bd1fe9f080 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 18 Dec 2024 06:16:24 +0000 Subject: [PATCH 175/399] note about prepping t480 usb bios updater Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 5ed2250..f0cb737 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -263,8 +263,22 @@ and it can be downloaded here:\ NOTE: T480s (S model) doesn't have EC UART support yet, so it doesn't matter yet which version you update to on the S model.** +Prep a USB stick with it: + + geteltorito -o t480_bios_update.img /path/to/your/downloaded.iso + +Now DD it to the raw USB flash device: + + dd if=t480_bios_update.img of=/dev/sdX bs=4M conv=fsync status=progress + +You must disable SecureBoot, and enable legacy/CSM boot, and boot it in BIOS +mode, not UEFI mode. Make sure your battery is well-charged, and boot it with +a battery and with the power supply plugged in. Select *option 2* in the menu, +to update your BIOS, which also updates the EC firmware. This is the Lenovo +BIOS/UEFI updater. Once you've updated, you can flash Libreboot. + Please ensure also that you've already dealt with the Thunderbolt issue, which -is described above. +is described above. After all of this, you can flash Libreboot. Find videos online of how to disassemble this, and/or find Lenovo's own service manual online. Otherwise, observe: From 8e3508c31340feac8bb7d5afed83542dd482f518 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 20 Dec 2024 16:27:35 +0000 Subject: [PATCH 176/399] make libreboot.org text bigger on high dpi screens, the text looks far too small add a section for higher screen resolution, increasing the font size, and increase it for existing widths this makes the site much more readable on my 27" 1440p monitor. Signed-off-by: Leah Rowe --- site/global.css | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/site/global.css b/site/global.css index e80c1af..5cd4935 100644 --- a/site/global.css +++ b/site/global.css @@ -18,14 +18,21 @@ { html { - font-size: 0.95em; + font-size: 1.05em; } } @media (min-width:90em) { html { - font-size: 1.05em; + font-size: 1.15em; + } +} +@media (min-width:110em) +{ + html + { + font-size: 1.25em; } } From 40b8dec8531542141dface7e8b277415cd2a74de Mon Sep 17 00:00:00 2001 From: awwpotato Date: Sat, 21 Dec 2024 12:30:30 -0800 Subject: [PATCH 177/399] t480 wwan nvme works --- site/docs/install/t480.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index f0cb737..2348e62 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -112,10 +112,10 @@ What works in this port: ----------------------- Intel graphics, internal screen, ethernet, USB, WLAN, HDA verbs (e.g. headphone -jack), S3 suspend/resume, M2 NVMe SSDs and SATA, **all works perfectly**. -External video outputs and webcam also work. Microphone works, line-out works... -everything works. UART also available via line-out jack (jumpers required on -the mainboard). +jack), S3 suspend/resume, M2 NVMe SSDs and SATA, NVMe sdd in WWAN slot, **all +works perfectly**. External video outputs and webcam also work. Microphone works, +line-out works... everything works. UART also available via line-out jack +(jumpers required on the mainboard). There *are* a few minor exceptions as to what works; this will be covered in other sections of this page. This port is *almost* perfect, but with some caveats. @@ -510,7 +510,7 @@ Nvidia dGPU not supported Nvidia dGPU doesn't work and is disabled as of 6 December 2024; the Intel graphics are still available even on Nvidia models, so Intel graphics are used. -WWAN slot untested. +NVMe SSD in WWAN slot works, other cards are untested. `thinkpad_acpi` issues {#thinkpad-acpi} --------------------------------------- From a69a1260c8324702eb457ffcd28172a21ab33e95 Mon Sep 17 00:00:00 2001 From: awwpotato Date: Tue, 24 Dec 2024 12:12:49 -0800 Subject: [PATCH 178/399] add note about keying of SSD --- site/docs/install/t480.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 2348e62..30bb54d 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -112,9 +112,9 @@ What works in this port: ----------------------- Intel graphics, internal screen, ethernet, USB, WLAN, HDA verbs (e.g. headphone -jack), S3 suspend/resume, M2 NVMe SSDs and SATA, NVMe sdd in WWAN slot, **all -works perfectly**. External video outputs and webcam also work. Microphone works, -line-out works... everything works. UART also available via line-out jack +jack), S3 suspend/resume, M2 NVMe SSDs and SATA, B+M key NVMe SSDs in WWAN slot, +**all works perfectly**. External video outputs and webcam also work. Microphone +works, line-out works... everything works. UART also available via line-out jack (jumpers required on the mainboard). There *are* a few minor exceptions as to what works; this will be covered in @@ -510,7 +510,7 @@ Nvidia dGPU not supported Nvidia dGPU doesn't work and is disabled as of 6 December 2024; the Intel graphics are still available even on Nvidia models, so Intel graphics are used. -NVMe SSD in WWAN slot works, other cards are untested. +B+M key NVMe SSDs in WWAN slot works, other cards are untested. `thinkpad_acpi` issues {#thinkpad-acpi} --------------------------------------- From 443078014dc15c9dd40b428fe245623277e23db2 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 25 Dec 2024 08:55:21 +0000 Subject: [PATCH 179/399] Remove legacy "./update trees" command from docs We only use ./mk now. Signed-off-by: Leah Rowe --- site/docs/install/dell9020.md | 2 +- site/docs/install/hp8200sff.md | 2 +- site/docs/maintain/porting.uk.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/site/docs/install/dell9020.md b/site/docs/install/dell9020.md index 2aac895..a573869 100644 --- a/site/docs/install/dell9020.md +++ b/site/docs/install/dell9020.md @@ -176,7 +176,7 @@ Then flash the ROM image. You can find nvramtool under `src/coreboot/default/util/nvramtool`. Do this in lbmk if you don't already havse `src/coreboot/default/`: - ./update trees -f coreboot default + ./mk -f coreboot default Then do this: diff --git a/site/docs/install/hp8200sff.md b/site/docs/install/hp8200sff.md index 8897646..6e5b7ed 100644 --- a/site/docs/install/hp8200sff.md +++ b/site/docs/install/hp8200sff.md @@ -266,7 +266,7 @@ the *ROM* by using the `-C` option in nvramtool. You can find this under the directory `src/coreboot/default/util/nvramtool` when downloading coreboot inside of lbmk by running the command: - ./update trees -f coreboot default + ./mk -f coreboot default Go in there and type `make` to build nvramtool. Simply run nvramtool without arguments, and it will show a list of options. diff --git a/site/docs/maintain/porting.uk.md b/site/docs/maintain/porting.uk.md index bae34b4..3d02519 100644 --- a/site/docs/maintain/porting.uk.md +++ b/site/docs/maintain/porting.uk.md @@ -64,7 +64,7 @@ libreboot як `плата.` Ви можете потім легко модифікувати існуючі конфігурації coreboot для вашої плати через lbmk. - ./update trees -m coreboot t420s_12mb + ./mk -m coreboot t420s_12mb Цей сценарій надать інтерфейс curses, через який ви можете легко модифікувати потрібні змінні та налаштування. From 2ac7deeefc4fdafecb4ba23a3dce271637f9a75a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 25 Dec 2024 08:59:53 +0000 Subject: [PATCH 180/399] Remove legacy "./vendor" command from docs We only use ./mk now. Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 6 +++--- site/docs/install/t420_external.md | 6 +++--- site/docs/install/t440p_external.md | 6 +++--- site/docs/install/w541_external.md | 6 +++--- site/docs/install/x230_external.md | 6 +++--- site/docs/maintain/index.md | 7 ------- 6 files changed, 15 insertions(+), 22 deletions(-) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index a416393..0fb7b51 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -56,7 +56,7 @@ In order to inject the necessary files into a rom image, run the script from the If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. Run the injection script pointing to the release archive you downloaded: - ./vendor inject libreboot-RELEASE_targetname.tar.xz + ./mk inject libreboot-RELEASE_targetname.tar.xz The script can automatically detect the board as long as you do not change the file name. You can then find flash-ready ROMs in `/bin/release/` @@ -82,12 +82,12 @@ Alternatively, you may patch only a single rom file, but you must supply the correct board target name as alluded to above. For example: - ./vendor inject -r x230_libreboot.rom -b x230_12mb + ./mk inject -r x230_libreboot.rom -b x230_12mb Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. For example: - ./vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd + ./mk inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd You are *strongly* advised to inject the tarballs instead. However, so long as you're careful, injecting into single ROM images is perfectly safe. Just know diff --git a/site/docs/install/t420_external.md b/site/docs/install/t420_external.md index b7b9536..9ff3d32 100644 --- a/site/docs/install/t420_external.md +++ b/site/docs/install/t420_external.md @@ -25,19 +25,19 @@ In order to inject the necessary files into a rom image, run the script from the If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. Run the injection script pointing to the release archive you downloaded: - ./vendor inject /path/to/libreboot-20230423_t420_8mb.tar.xz + ./mk inject /path/to/libreboot-20230423_t420_8mb.tar.xz The script can automatically detect the board as long as you do not change the file name. You can then find flash-ready ROMs in `/bin/release/` Alternatively, you may patch only a single rom file. - ./vendor inject -r t420_libreboot.rom -b t420_8mb + ./mk inject -r t420_libreboot.rom -b t420_8mb Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. For example: - ./vendor inject -r t420_libreboot.rom -b t420_8mb -m 00:f6:f0:40:71:fd + ./mk inject -r t420_libreboot.rom -b t420_8mb -m 00:f6:f0:40:71:fd Disassembly ----------- diff --git a/site/docs/install/t440p_external.md b/site/docs/install/t440p_external.md index 8c54780..d10fdc9 100644 --- a/site/docs/install/t440p_external.md +++ b/site/docs/install/t440p_external.md @@ -40,7 +40,7 @@ In order to inject the necessary files into a rom image, run the script from the If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. Run the injection script pointing to the release archive you downloaded: - ./vendor inject /path/to/libreboot-RELEASE_targetname.tar.xz + ./mk inject /path/to/libreboot-RELEASE_targetname.tar.xz The script can automatically detect the board as long as you do not change the file name. You can then find flash-ready ROMs in `/bin/release/` @@ -48,12 +48,12 @@ You can then find flash-ready ROMs in `/bin/release/` Alternatively, you may patch only a single rom file. For example: - ./vendor inject -r t440p_libreboot.rom -b t440plibremrc_12mb + ./mk inject -r t440p_libreboot.rom -b t440plibremrc_12mb Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. For example: - ./vendor inject -r t440p_libreboot.rom -b t440plibremrc_12mb -m 00:f6:f0:40:71:fd + ./mk inject -r t440p_libreboot.rom -b t440plibremrc_12mb -m 00:f6:f0:40:71:fd NOTE: this makes use of `nvmutil`, which you can read more about in the [nvmutil documentation](nvmutil.md). diff --git a/site/docs/install/w541_external.md b/site/docs/install/w541_external.md index b7480fa..4f49f46 100644 --- a/site/docs/install/w541_external.md +++ b/site/docs/install/w541_external.md @@ -43,7 +43,7 @@ In order to inject the necessary files into a rom image, run the script from the If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. Run the injection script pointing to the release archive you downloaded: - ./vendor inject /path/to/libreboot-RELEASE_targetname.tar.xz + ./mk inject /path/to/libreboot-RELEASE_targetname.tar.xz The script can automatically detect the board as long as you do not change the file name. You can then find flash-ready ROMs in `/bin/release/` @@ -51,12 +51,12 @@ You can then find flash-ready ROMs in `/bin/release/` Alternatively, you may patch only a single rom file. For example: - ./vendor inject -r w541_libreboot.rom -b w541_12mb + ./mk inject -r w541_libreboot.rom -b w541_12mb Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. For example: - ./vendor inject -r w541_libreboot.rom -b w541_12mb -m 00:f6:f0:40:71:fd + ./mk inject -r w541_libreboot.rom -b w541_12mb -m 00:f6:f0:40:71:fd NOTE: this makes use of `nvmutil`, which you can read more about in the [nvmutil documentation](nvmutil.md). diff --git a/site/docs/install/x230_external.md b/site/docs/install/x230_external.md index 814db86..8bbc59e 100644 --- a/site/docs/install/x230_external.md +++ b/site/docs/install/x230_external.md @@ -36,7 +36,7 @@ The script can determine the board automatically if you have not changed the nam In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image. Run the injection script pointing to the release archive you downloaded: - ./vendor inject /path/to/libreboot-20230319-18-g9f76c92_t440_12mb.tar.xz + ./mk inject /path/to/libreboot-20230319-18-g9f76c92_t440_12mb.tar.xz The script can automatically detect the board as long as you do not change the file name. You can then find flash-ready ROMs in `/bin/release/` @@ -44,12 +44,12 @@ You can then find flash-ready ROMs in `/bin/release/` Alternatively, you may patch only a single rom file. For example: - ./vendor inject -r x230_libreboot.rom -b x230_12mb + ./mk inject -r x230_libreboot.rom -b x230_12mb Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. For example: - ./vendor inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd + ./mk inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd NOTE: this makes use of `nvmutil`, which you can read more about in the [nvmutil documentation](nvmutil.md). diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index c2477a9..292ae01 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -1329,13 +1329,6 @@ Special commands available (not provided by files under `script/`): ./mk inject ./mk -d coreboot TARGET # also downloads vendor files -The `vendor` commands are handled by the `build` script, calling functions -inside `include/vendor.sh`, and the `./mk release` logic is handled -directly by the `build` script. - -More information about `./vendor` commands can be found -here: [inserting vendor files](../install/ivy_has_internal.md) - Information about `./mk release` is written elsewhere on this page. You can also know what build system revision you have by running: From 71b502349ab488f0e91403049181102286eb35e2 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 25 Dec 2024 09:08:24 +0000 Subject: [PATCH 181/399] Remove legacy "./build" command from the docs We only use ./mk now. Signed-off-by: Leah Rowe --- site/docs/build/index.uk.md | 4 ---- site/docs/maintain/index.md | 13 +++---------- site/docs/maintain/porting.uk.md | 2 +- site/docs/misc/emulation.md | 8 ++++++-- site/docs/uboot/index.md | 2 +- site/news/hp2170p.md | 8 -------- site/news/hp8470p_and_dell_t1650.md | 13 ------------- 7 files changed, 11 insertions(+), 39 deletions(-) diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index de7ca0a..a2df30d 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -143,10 +143,6 @@ Check: `config/dependencies/` for list of supported distros. Однак, вам потрібно буде написано свій власний сценарій для встановлення залежностей побудови. -libreboot Make (lbmk) автоматично виконує всі необхідні команди; наприклад, -`./build roms` автоматично виконає `./build grub`, -якщо затребувані утиліти для GRUB не збудовано, для виготовлення корисних навантажень. - В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати лише одну команду, з свіжого Git clone, для побудови образів ROM: diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 292ae01..715c6d2 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -105,7 +105,7 @@ XBMK\_RELEASE If set to `y`, it signals to `script/roms` that a release is being built, and it will honour `release="n"` in target.cfg files. You could also set this -yourself, when doing regular builds, if you wanted to test how `./build roms` +yourself when doing regular builds, if you wanted to test how `./mk -b coreboot` behaves running it in release mode. Do this if you want to: export XBMK_RELEASE=y @@ -1309,16 +1309,9 @@ Scripts in root directory of lbmk build --------------- -This is the main script. Symlinks `vendor` and `update` also point to it, as -does `mk`. Direct use of this script is considered deprecate, because in a -future audit, it will be removed; the `./mk` commands will be used, -exclusively, so please use only `./mk` as directed here and elsewhere. +This is the main build script. -Take any given file under `script/` and you can do: - - ./build file # (THIS IS NOT A VALID COMMAND) - -For example: +Example commands: ./mk -b coreboot ./mk diff --git a/site/docs/maintain/porting.uk.md b/site/docs/maintain/porting.uk.md index 3d02519..3d216f5 100644 --- a/site/docs/maintain/porting.uk.md +++ b/site/docs/maintain/porting.uk.md @@ -79,7 +79,7 @@ libreboot як `плата.` Тепер ви можете побудувати та випробувати rom для `плати.` Як тільки ви завершили це, ви можете спробувати прошивку отриманого rom на вашу плату в якості випробування. - ./build roms t420s_12mb + ./mk -b coreboot t420s_12mb Якщо ви пробуєте прошити цей rom і це провалюється, тоді існує дві можливих причини: diff --git a/site/docs/misc/emulation.md b/site/docs/misc/emulation.md index 23d7d5f..2fd4433 100644 --- a/site/docs/misc/emulation.md +++ b/site/docs/misc/emulation.md @@ -17,7 +17,11 @@ Building and Testing Libreboot can be built for qemu just like any other board. - ./build roms qemu_x86_12mb + ./mk -b coreboot qemu_x86_12mb + +There is also a target that has 64-but U-Boot payload: + + ./mk -b coreboot qemu_x86_64_12mb In order to test the resulting roms, you must have qemu installed on the host machine. Test the roms by pointing qemu to the rom in bios mode. @@ -29,7 +33,7 @@ For example: There is basic support for an arm64 virtual machine as well, although the payloads are not as developed as the x86 one: - ./build roms qemu_arm64_12mb + ./mk -b coreboot qemu_arm64_12mb ``` qemu-system-aarch64 -bios bin/qemu_arm64_12mb/uboot_payload_qemu_arm64_12mb_libgfxinit_corebootfb.rom \ diff --git a/site/docs/uboot/index.md b/site/docs/uboot/index.md index ff8f340..f5ac9a8 100644 --- a/site/docs/uboot/index.md +++ b/site/docs/uboot/index.md @@ -23,7 +23,7 @@ and the build dependencies are installed like so, from `lbmk/` as root: ./mk dependencies debian -This installs everything needed for `./build roms`, and part of the +This installs everything needed for `./mk -b coreboot`, and part of the build process makes use of coreboot's own cross-compile toolchain. [QEMU x86/ARM64 virtual machines](../misc/emulation.md) are also diff --git a/site/news/hp2170p.md b/site/news/hp2170p.md index ebce09a..f8f5656 100644 --- a/site/news/hp2170p.md +++ b/site/news/hp2170p.md @@ -22,14 +22,6 @@ It was added in this patch: Information about the board can be found on the coreboot documentation: -This will be available in the next Libreboot release. For now, you -can [download Libreboot from Git](../git.md) and [build from -source](../docs/build/) if you wish to use this board. Read those instructions -first; with build dependencies then installed, you can build the board like -so: - - ./build roms hp2170p_16mb - Installation instructions are being written for Libreboot, but you can refer to the coreboot instructions for now. diff --git a/site/news/hp8470p_and_dell_t1650.md b/site/news/hp8470p_and_dell_t1650.md index 25b8a30..b59e2d2 100644 --- a/site/news/hp8470p_and_dell_t1650.md +++ b/site/news/hp8470p_and_dell_t1650.md @@ -32,14 +32,6 @@ these AMD variants, please [contact Leah Rowe](../docs/maintain/testing.html). Another quirk: SOIC16 flash IC, but it's 16MB in size (Winbond W25Q128). -This will be available in the next Libreboot release. For now, you -can [download Libreboot from Git](../git.md) and [build from -source](../docs/build/) if you wish to use this board. Read those instructions -first; with build dependencies then installed, you can build the board like -so: - - ./build roms hp8470pintel_16mb - There is currently no documentation on the coreboot website, but installation instructions will be written for the Libreboot website. @@ -73,11 +65,6 @@ is relied upon to execute the VGA Option ROM on an add-on graphics card (the one I had was Nvidia Quadro K420, tested with the `nouveau` driver under Debian Linux). -Here's how to build ROM images for this board (make sure you have performed -the [prerequisite steps](../docs/build/) first: - - ./build roms t1650_12mb - If you want GRUB-only setup, you could configure SeaBIOS bootorder to only load the GRUB payload, and disable the SeaBIOS menu. This can be done by only booting `img/grub2` from CBFS. More info available here: From f2dd78251c25dc748f68ca6190960512fd3c9f7e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 26 Dec 2024 18:01:17 +0000 Subject: [PATCH 182/399] update 3050micro notes Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index e457d26..56008c9 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -47,7 +47,7 @@ P*: Partially works with blobs | ***Payloads supported*** | | |----------------------------|-----------| | **GRUB (libgfxinit only)** | Works | -| **SeaBIOS** | Broken | +| **SeaBIOS** | Works | Buy pre-installed ================= @@ -64,6 +64,19 @@ source](../build/), or use a version newer than Libreboot 20240612.** Official information about the computer can be found here: +Warning regarding NVMe SSDs +--------------------------- + +Please use at least Libreboot +20241206 *[revision 3](../../news/libreboot20241206.Revisions.md#revision-3-11-december-2024)* +or higher. This is because older revisions contained a bug, where the NVMe +SSD would be *replugged* under Linux, randomly, leading to data loss. + +This is fixed in 20241206 rev3 or higher, by disabling PCI-E hotplug on the +NVMe SSD slot. + +See: [Libreboot 20241206 release](../../news/libreboot20241206.md) + Build ROM image from source --------------------------- From 2e2b6c7d52c0802c72e2805f0f924d5c447935f2 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 27 Dec 2024 01:33:55 +0000 Subject: [PATCH 183/399] Random docs cleanup Signed-off-by: Leah Rowe --- site/contrib.md | 2 - site/docs/install/devmem.md | 4 +- site/docs/install/ga-g41m-es2l.md | 5 +- site/docs/install/hp8200sff.md | 4 +- site/docs/install/hp8300usdt.md | 4 +- site/docs/install/hp9470m.md | 4 +- site/docs/install/kfsn4-dre.md | 4 +- site/docs/install/macbook21.md | 4 +- site/docs/install/nvmutil.md | 4 +- site/docs/install/r400.md | 8 +- site/docs/install/spi.md | 4 +- site/docs/install/spi_generic.md | 4 +- site/docs/install/t400.md | 4 +- site/docs/install/t440p_external.md | 4 +- site/docs/install/t500.md | 4 +- site/docs/install/t60_unbrick.md | 4 +- site/docs/install/w541_external.md | 4 +- site/docs/install/x200.md | 4 +- site/docs/install/x200.uk.md | 4 +- site/docs/install/x230_external.md | 4 +- site/docs/install/x60_unbrick.md | 4 +- site/docs/install/x60tablet_unbrick.md | 4 +- site/docs/linux/grub_hardening.md | 29 +++++- site/docs/maintain/index.md | 17 +++- site/docs/maintain/porting.md | 4 +- site/docs/maintain/porting.uk.md | 4 +- site/faq.md | 4 +- site/faq.uk.md | 4 +- site/news/audit3.md | 4 +- site/news/audit4.md | 4 +- site/news/safety.md | 4 +- site/tasks/index.md | 120 +++++-------------------- 32 files changed, 156 insertions(+), 129 deletions(-) diff --git a/site/contrib.md b/site/contrib.md index 6416247..55d6a72 100644 --- a/site/contrib.md +++ b/site/contrib.md @@ -286,8 +286,6 @@ Helped write the [FAQ section about DMA](../faq.md#hddssd-firmware), and provide general advice in the early days of the project. Peter was a coreboot developer in those days, and a major developer in the *libusb* project (which flashrom makes heavy use of). -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024. Peter also wrote the *bucts* utility used to set Backup Control (BUC) Top Swap (TS) bit on i945 laptops such as ThinkPad X60/T60, which is useful for a diff --git a/site/docs/install/devmem.md b/site/docs/install/devmem.md index d4ded98..554dd3b 100644 --- a/site/docs/install/devmem.md +++ b/site/docs/install/devmem.md @@ -26,7 +26,9 @@ FLASH ERRORS (and workarounds) ======================= **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom.** +now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** This section relates to installing libreboot on supported targets. diff --git a/site/docs/install/ga-g41m-es2l.md b/site/docs/install/ga-g41m-es2l.md index a63301d..a1398cf 100644 --- a/site/docs/install/ga-g41m-es2l.md +++ b/site/docs/install/ga-g41m-es2l.md @@ -164,5 +164,8 @@ NOTE: If you don't flash both chips, the recovery program from the default factory BIOS will kick in and your board will be soft bricked. Make sure that you flash both chips! -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** + diff --git a/site/docs/install/hp8200sff.md b/site/docs/install/hp8200sff.md index 6e5b7ed..7e00111 100644 --- a/site/docs/install/hp8200sff.md +++ b/site/docs/install/hp8200sff.md @@ -146,8 +146,10 @@ between the pins until you can see the normal BIOS boot screen. ![](https://av.libreboot.org/hp8200sff/fdo\_screwdriver.jpg) -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** Now, run this command: diff --git a/site/docs/install/hp8300usdt.md b/site/docs/install/hp8300usdt.md index 0585c8b..6a3c378 100644 --- a/site/docs/install/hp8300usdt.md +++ b/site/docs/install/hp8300usdt.md @@ -81,8 +81,10 @@ crystal (small metal cylinder) and the power cable for the optical drive. Boot into an OS of your choice (that has flashprog support). -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** The BIOS should no longer impose any write-protections. You can now use `flashprog -p internal` freely. diff --git a/site/docs/install/hp9470m.md b/site/docs/install/hp9470m.md index f26209b..9168f0d 100644 --- a/site/docs/install/hp9470m.md +++ b/site/docs/install/hp9470m.md @@ -91,6 +91,8 @@ Some part of the board might turn on when programming. If programming fails, you might have to attach the laptop to a charger. Make sure the laptop powers off before running flashprog. No LEDs should be lit. -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** diff --git a/site/docs/install/kfsn4-dre.md b/site/docs/install/kfsn4-dre.md index e11ea92..21c979d 100644 --- a/site/docs/install/kfsn4-dre.md +++ b/site/docs/install/kfsn4-dre.md @@ -54,8 +54,10 @@ for building a high-powered workstation. Powered by libreboot. Flashing instructions can be found at [../install/\#flashprog](../install/) -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** Form factor {#formfactor} =========== diff --git a/site/docs/install/macbook21.md b/site/docs/install/macbook21.md index 5ebd843..3be1fb5 100644 --- a/site/docs/install/macbook21.md +++ b/site/docs/install/macbook21.md @@ -105,8 +105,10 @@ MacBook2,1 can always be flashed internally, even if running Apple firmware: sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w your.rom -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** The MacBook1,1 can't be flashed internally if running the Apple EFI firmware. You must flash externally. diff --git a/site/docs/install/nvmutil.md b/site/docs/install/nvmutil.md index b15a8dd..3d1beee 100644 --- a/site/docs/install/nvmutil.md +++ b/site/docs/install/nvmutil.md @@ -114,8 +114,10 @@ entire next section to it: Use flashprog ------------ -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** If you wish to operate on the GbE section that's already flashed, you should *dump* the current full ROM image. diff --git a/site/docs/install/r400.md b/site/docs/install/r400.md index eac5e37..5c5fa71 100644 --- a/site/docs/install/r400.md +++ b/site/docs/install/r400.md @@ -80,8 +80,10 @@ modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* Flashing instructions can be found at [../install/\#flashprog](../install/#flashprog) -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** EC update {#ecupdate} ========= @@ -176,8 +178,10 @@ Use this to find out: flashprog -p internal -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** MAC address {#macaddress} =========== diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index ba93502..bee0573 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -19,8 +19,10 @@ operates Minifree Ltd; sales provide funding for the Libreboot project. Introduction ============ -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** diff --git a/site/docs/install/spi_generic.md b/site/docs/install/spi_generic.md index 5de2868..9bd3cd7 100644 --- a/site/docs/install/spi_generic.md +++ b/site/docs/install/spi_generic.md @@ -3,8 +3,10 @@ title: Generic SPI Flashing Guide x-toc-enable: true ... -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** diff --git a/site/docs/install/t400.md b/site/docs/install/t400.md index 3596e0b..8af030d 100644 --- a/site/docs/install/t400.md +++ b/site/docs/install/t400.md @@ -79,8 +79,10 @@ modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* Flashing instructions can be found at [../install/\#flashprog](../install/#flashprog) -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** EC update {#ecupdate} ========= diff --git a/site/docs/install/t440p_external.md b/site/docs/install/t440p_external.md index d10fdc9..b81b5ba 100644 --- a/site/docs/install/t440p_external.md +++ b/site/docs/install/t440p_external.md @@ -12,8 +12,10 @@ Buy Libreboot preinstalled Introduction ============ -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** diff --git a/site/docs/install/t500.md b/site/docs/install/t500.md index fbd067d..78014f8 100644 --- a/site/docs/install/t500.md +++ b/site/docs/install/t500.md @@ -81,8 +81,10 @@ modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* Flashing instructions can be found at [../install/\#flashprog](../install/#flashprog) -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** EC update {#ecupdate} ========= diff --git a/site/docs/install/t60_unbrick.md b/site/docs/install/t60_unbrick.md index f4200a4..e12010e 100644 --- a/site/docs/install/t60_unbrick.md +++ b/site/docs/install/t60_unbrick.md @@ -3,8 +3,10 @@ title: ThinkPad T60 Recovery guide x-toc-enable: true ... -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** "Unbricking" means flashing a known-good (working) ROM. The problem: you can't boot the system, making this difficult. In this situation, diff --git a/site/docs/install/w541_external.md b/site/docs/install/w541_external.md index 4f49f46..83eed5a 100644 --- a/site/docs/install/w541_external.md +++ b/site/docs/install/w541_external.md @@ -15,8 +15,10 @@ Buy Libreboot preinstalled Introduction ============ -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** diff --git a/site/docs/install/x200.md b/site/docs/install/x200.md index 109246c..e9ce29d 100644 --- a/site/docs/install/x200.md +++ b/site/docs/install/x200.md @@ -79,8 +79,10 @@ modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* Flashing instructions can be found at [../install/\#flashprog](../install/#flashprog) -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** EC update {#ecupdate} ========= diff --git a/site/docs/install/x200.uk.md b/site/docs/install/x200.uk.md index 3ea6113..b1ce8af 100644 --- a/site/docs/install/x200.uk.md +++ b/site/docs/install/x200.uk.md @@ -71,8 +71,10 @@ X200S та X201S; знову ж таки, це неперевірено. *Шви Інструкції з перепрошивки можна знайти за адресою [../install/\#flashprog](../install/#flashprog) -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** Оновлення EC {#ecupdate} ========= diff --git a/site/docs/install/x230_external.md b/site/docs/install/x230_external.md index 8bbc59e..67bec81 100644 --- a/site/docs/install/x230_external.md +++ b/site/docs/install/x230_external.md @@ -6,8 +6,10 @@ x-toc-enable: true **Minifree now sells the Libreboot T480, instead of the Libreboot X230. See: ** -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** diff --git a/site/docs/install/x60_unbrick.md b/site/docs/install/x60_unbrick.md index 2c0263a..74107d0 100644 --- a/site/docs/install/x60_unbrick.md +++ b/site/docs/install/x60_unbrick.md @@ -3,8 +3,10 @@ title: ThinkPad X60 Recovery guide x-toc-enable: true ... -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** "Unbricking" means flashing a known-good (working) ROM. The problem: you can't boot the system, making this difficult. In this situation, diff --git a/site/docs/install/x60tablet_unbrick.md b/site/docs/install/x60tablet_unbrick.md index 110a912..f3ab37c 100644 --- a/site/docs/install/x60tablet_unbrick.md +++ b/site/docs/install/x60tablet_unbrick.md @@ -3,8 +3,10 @@ title: ThinkPad X60 Tablet Recovery guide x-toc-enable: true ... -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** "Unbricking" means flashing a known-good (working) ROM. The problem: you can't boot the system, making this difficult. In this situation, diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index efdf128..903ee9c 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -82,9 +82,16 @@ See: [build from source](../build/) IFD-based flash protection -------------------------- +**NOTE: This CAN cause bricks on a lot of machines. You should use this with +care. The FLILL and/or PRx based methods are more reliable - also SMM methods. +You can reconfigure coreboot and enable the chipset-based flash protection there +which accomplishes the same result, and the benefit is that it can't easily +be overridden by an evel maid attack e.g. can't simply set the service jumper +on desktops.** + The simplest way is to just do this: - ifdtool -x libreboot.rom -O libreboot.rom + ifdtool --lock libreboot.rom -O libreboot.rom If you did the step before, to compile `cbfstool`, you can find ifdtool in the `elf/` directory, e.g. `elf/ifdtool/default/ifdtool`. Use the ifdtool @@ -219,6 +226,26 @@ things like graphics cards. More information is available here: If you're using a graphics card, you *need* VGA option ROMs at least. +GRUBSEA +------- + +Another option is to make it so that GRUB is the primary payload on your board. +In this setup, SeaBIOS and U-Boot are still available. + +For your board's `target.cfg`, add this: + + payload_grubsea="y" + +E.g. `config/coreboot/x200_8mb/target.cfg` + +You should only do this on setups that have native graphics initialisation +e.g. Intel graphics, or where no VGA/GOP ROM is required either on-card or +in the flash (e.g. Intel graphics on Alderlake machines). + +If you can't use GRUB as a primary payload, then you can use SeaGRUB as above +and disable the SeaBIOS menu, making SeaBIOS load only GRUB; SeaGRUB is useful +because GRUB will piggyback off of the VGA setup done by SeaBIOS first. + GPG keys ======== diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 715c6d2..c5519dd 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -3,8 +3,10 @@ title: lbmk maintenance manual x-toc-enable: true ... -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** In addition to this manual, you should also refer to [porting.md](porting.md) and [testing.md](testing.md). @@ -709,6 +711,7 @@ as: * `rev="ad983eeec76ecdb2aff4fb47baeee95ade012225"` (example entry) * `xarch="i386-elf"` (example entry) * `payload_grub="y"` (example entry) +* `payload_grubsea="y"` * `payload_seabios="y"` (example entry) * `payload_memtest="y"` (example entry) * `payload_uboot="y"` (example entry) @@ -757,6 +760,18 @@ hence `xarch`. The `payload_grub` entry specifies whether or not GRUB is to be included in ROM images. +The `payload_grubsea` entry specifies that GRUB shall be the primary payload, +instead of SeaBIOS; SeaGRUB is disabled in this setup. You should only use this +where an Intel graphics device is present, or otherwise where native graphics +initialisation is present; it is also feasible on Intel Alderlake platforms, +but only where an Intel GPU is present; where a given system can use other +graphics devices, they must be unplugged or otherwise disabled. For example, you +must remove the graphics card on your desktop machine and only use the Intel +graphics, where it is available. Because of this, `payload_grubsea` is not +currently enabled by default (and SeaBIOS is more stable so it's a nice fallback +in case a bug in GRUB would otherwise brick your machine, because you can +bypass it and use SeaBIOS). + The `payload_seabios` entry specifies whether or not SeaBIOS is to be included in ROM images. If GRUB is also enabled, standalone SeaBIOS images will be created alongside SeaGRUB images. SeaGRUB is where SeaBIOS automatically diff --git a/site/docs/maintain/porting.md b/site/docs/maintain/porting.md index 294757b..e464e9b 100644 --- a/site/docs/maintain/porting.md +++ b/site/docs/maintain/porting.md @@ -2,8 +2,10 @@ title: Porting guide for new mainboards ... -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** NOTE: This page is largely Intel-centric, at present. It should be revised to cover more vendors. [Patches welcome!](../../git.md) diff --git a/site/docs/maintain/porting.uk.md b/site/docs/maintain/porting.uk.md index 3d216f5..faaaa73 100644 --- a/site/docs/maintain/porting.uk.md +++ b/site/docs/maintain/porting.uk.md @@ -2,8 +2,10 @@ title: Керівництво перенесення ... -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** Це керівнитво передбачається для тих, хто має дуже низький рівень знань про прошивку загалом та coreboot окремо. diff --git a/site/faq.md b/site/faq.md index 800476d..bc6c583 100644 --- a/site/faq.md +++ b/site/faq.md @@ -3,8 +3,10 @@ title: Frequently Asked Questions x-toc-enable: true ... -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** AKA Frequently Questioned Answers diff --git a/site/faq.uk.md b/site/faq.uk.md index 83a36ac..fb79bdf 100644 --- a/site/faq.uk.md +++ b/site/faq.uk.md @@ -3,8 +3,10 @@ title: Часті питання x-toc-enable: true ... -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** Також відомо як Відповіді на часті питання diff --git a/site/news/audit3.md b/site/news/audit3.md index 865c1b0..74553ea 100644 --- a/site/news/audit3.md +++ b/site/news/audit3.md @@ -2,8 +2,10 @@ % Leah Rowe % 20 October 2023 -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** Introduction ============ diff --git a/site/news/audit4.md b/site/news/audit4.md index bb205a8..7ab72d6 100644 --- a/site/news/audit4.md +++ b/site/news/audit4.md @@ -2,8 +2,10 @@ % Leah Rowe % 31 December 2023 -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** Introduction ============ diff --git a/site/news/safety.md b/site/news/safety.md index c748973..193213d 100644 --- a/site/news/safety.md +++ b/site/news/safety.md @@ -9,8 +9,10 @@ does not need vendor files, the resulting ROM images will be identical and therefore nothing will have happened. The inject script is designed to insert certain files, only if required on a given mainboard.** -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** Introduction ============ diff --git a/site/tasks/index.md b/site/tasks/index.md index 383a767..c86f27d 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -3,16 +3,10 @@ title: Jobs that need doing x-toc-enable: true ... -NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. - -This page contains a curated list of tasks that are to be worked on, or tasks -that are being worked on. This is intended to complement -the [issue pages](https://codeberg.org/libreboot/lbmk/issues/). - -Many of these entries will pertain to *lbmk*, which is Libreboot's build -system, but some entries may relate to documentation, or organisational -changes. +The reason why was explained, in +the [Libreboot 20240225 release](../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** If you want to work on some of these yourself, patches are always welcome! Please read the [code review page](../git.md), which provides guidance on @@ -62,52 +56,23 @@ audits are done in Libreboot, see: * [Libreboot build system audit 1](../news/audit.md) * [Libreboot build system audit 2](../news/audit2.md) * [Libreboot build system audit 3](../news/audit3.md) +* [Libreboot build system audit 4](../news/audit4.md) +* [Libreboot build system audit 5](../news/audit5.md) +* [Libreboot build system audit 6](../news/audit6.md) Auditing can often be pedantic, and seem petty. You might commit a patch that -reduces the sloccount by only 1 line, maybe 3, but they all add up. Audit 3 -contained hundreds of changes, small changes, that together accounted for -about 1000 lines of code removed, while not affecting functionality in any way. +reduces the sloccount by only 1 line, maybe 3, but they all add up. -This will always remain on the TODO list, because there will always be a need -for auditing, as is true of any codebase. It is always possible to fix more -bugs or improve a piece of code. As they say: the code is never finished. +I say again: -Port vendor scripts to Heads -============================ - -Ironically, one of the first entries on this page pertains to a competing -project. - -I promised the Heads project that I'd port Libreboot's vendorfile download and -inject scripts to the Heads build system. Libreboot provides these scripts for -automatically downloading certain firmwares at build time, as and when -required for a given mainboard. These are provided by the vendor, e.g. SMSC -SCH5545 Environment Control (EC) firmware used for fan control on Dell -Precision T1650. - -Heads has such logic, but it's not as developed as the logic in Libreboot, -which was originally inspired by the Heads logic and then greatly expanded upon. - -I'm putting this here on the Libreboot TODO page, so that I always see it. And -I'm keeping it at the top of the page. This TODO entry is still relevant to -Libreboot, because it concerns work that I will do in my official capacity, -representing Libreboot while helping the (friendly) competition. - -See: - -Heads is a really cool project, offering Linux-based kexec payloads on -supported hardware. It's another coreboot distro, and their build system design -even works similarly to Libreboot's (though they heavily use Makefiles whereas -Libreboot exclusively uses shell scripts and uses a much simpler design). Heads -provides many advanced security features like measured boot, even things like -TOTP-based authentication using secrets stored in the TPM. - -Very, very, very^2 cool project, and Libreboot has plans to integrate some -of the same functionalitiys within it (see other notes on this page). +Code equals bugs, so fewer lines of code will cause fewer bugs. Interesting board ports ======================= +**Any board port is interesting. These are just a few that happened to be +noticed at a given time. The list below is by no means complete!** + Libreboot can support any board from coreboot, in principle. It would also be feasible to integrate other (libre) boot firmware, if desirable. The list below is not exhaustive, it just lists boards that are interesting to us at this time: @@ -375,57 +340,11 @@ oreboot is still a good project. (though, whenever possible, lbmk should stick to coreboot, to keep things simpler - are there efforts to implement oreboot ports in coreboot/C?) -UEFI payload -============ - -A UEFI payload in Libreboot is highly desirable, because it would basically -enable any distro or BSD to Just Work. - -MrChromebox distribution ------------------------- - -MrChromebox is another coreboot distro, similar in spirit to Libreboot. - -Of interest: Mrchromebox provides Tianocore-based UEFI setups on chromebooks, -and we could probably integrate some of that in Libreboot. Tianocore is -essentially bloatware, and really a liability for the Libreboot project due -to its complexity, though MrChromebox targets a very different audience. - -Chromebooks (x86) +LoongArch support ----------------- -Start supporting x86 chromebooks in Libreboot. We don't support any. -There is already MrChromebox, we could just track that, but use our own -payloads instead of Tianocore. - -Specifically: lbmk could have a feature added to it where it re-uses configs -from MrChromebox, with logic to automatically disable the payload. In lbmk, -coreboot configs do not enable payloads at all, because payloads are -compiled by lbmk and added after the fact - this is why we have `elf/` -containing coreboot images without payloads, and `bin/` which contains the -full ROMs, with payloads inside. This design is much more flexible, and permits -builds to be re-used more efficiently so as to reduce overall build time, when -compiling for multiple mainboards. - -U-Boot SPL and UEFI on x86 --------------------------- - -Simon Glass has been working extensively on x86 support for U-Boot, to be used -as a coreboot payload. This work is of interest to the Libreboot project, -because we provide UEFI on ARM but not on x86. - -U-Boot also provides SPL which can be used to execute other software in the -flash, and it's often used to boot a Linux kernel; since U-Boot provides a -UEFI implementation, it's perfect. - -U-Boot is the preferred choice of UEFI implementation on x86, for Libreboot -purposes, because U-Boot uses a coding style similar to Linux and can more -easily import Linux drivers which are high quality, and Linux functionality -in general, for anything that we need. - -Since we already provide U-Boot on ARM (thanks to the continued work done by -Alper Nebi Yasak), U-Boot on x86 would then create a situation whereby Libreboot -is consistent across platforms, at least for UEFI-based setups. +Ariadne Conill has been working on bringup for coreboot. Work also being done +with edk2; U-Boot also desirable here. RockPro64 --------- @@ -445,6 +364,11 @@ For UEFI purposes, U-Boot seems more mature, and it offers other features like SPL. As already stated, this is the preferred UEFI implementation for Libreboot, but uefistub is listed too because it's interesting. +Probably useless, since U-Boot is more complete. We may aswell use U-Boot, but +uefistub will remain mentioned here for the time being. The context for +uefistub is linuxboot-only setups; this is where uefistub can truly shine, +specifically on ARM64 devices. + Videos (plus RISCV) ------ @@ -466,6 +390,10 @@ The talks go all the way back to 2018. They're all worth watching. Linuxboot ========= +**NOTE: Stali Linux is a useful base, on top of which any Linux-based setup +could be built. With a stripped down kernel, it already provides a sensible +build system for ARM64 and AMD64.** + See for inspiration: [Heads project](https://osresearch.net/) and [Ownerboot project](https://sr.ht/~amjoseph/ownerboot/), these are other coreboot distros similar to Libreboot, but they provide Linux-based payloads. From aad0b223e054d0591274dc0fcfa29618fca8933b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 29 Dec 2024 14:52:45 +0000 Subject: [PATCH 184/399] update t480/3050 errata (tpm and 8254 timer) Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 41 +++++++++++++++++++++++++++++++++++ site/docs/install/t480.md | 38 ++++++++++++++++++++++++++++++++ 2 files changed, 79 insertions(+) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index 56008c9..e5f6e98 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -174,3 +174,44 @@ Observe the following photo of the flash (SOIC-8): You can otherwise flash internally, including from factory firmware(if the service jumper is set). + +Errata +====== + +TPM disabled +------------ + +The TPM is disabled on this device, to prevent hanging/boot delay in SeaBIOS, +due to buggy TPM drivers there. + +Legacy 8254 timer +----------------- + +Legacy 8254 timer enabled in coreboot, to prevent SeaBIOS from hanging. + +HyperThreading on 3050 Micro +-------------------------- + +Also called SMT. This is a feature where you get 2 threads on a single core. +It can improve performance in some workloads, but is actually a performance +liability in others, depending on your OS kernel/scheduler and the actual +workload. + +It is a security liability, due to the Spectre/Meltdown attacks, so we +recommend turning it off, at the very least from your running operating system. +On *this* platform, you can easily turn it off from coreboot. + +**Libreboot disables HyperThreading by default**, from Libreboot 20241206 rev8 +onward, on this board. To turn it back on, please [build from source](../build/) +and before running the build command, do this: + + ./mk -m coreboot t480_vfsp_16mb # replace t480 with t480s if needed + +In the menu that appears, go *Chipset -> Enable Hyperthreading* and turn it on. +Then exit from the menu, saving the config where prompted. You will see this +menu twice, because there are *two* configs for each of these boards. + +SMT is rarely of benefit in practise, but can be useful in some circumstances. +For example, if you're compiling a large codebase from source that takes hours, +SMT increases the building speed by about 15 percent; for example, a 3 hour +build job might take about 2 hours and 40 minutes instead. diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index f0cb737..48a8880 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -414,6 +414,44 @@ Errata Some features either don't work, or are untested, when running Libreboot on the ThinkPad T480 or T480s. +TPM disabled +------------ + +The TPM is disabled on this device, to prevent hanging/boot delay in SeaBIOS, +due to buggy TPM drivers there. + +Legacy 8254 timer +----------------- + +Legacy 8254 timer enabled in coreboot, to prevent SeaBIOS from hanging. + +HyperThreading on T480/T480s +---------------------- + +Also called SMT. This is a feature where you get 2 threads on a single core. +It can improve performance in some workloads, but is actually a performance +liability in others, depending on your OS kernel/scheduler and the actual +workload. + +It is a security liability, due to the Spectre/Meltdown attacks, so we +recommend turning it off, at the very least from your running operating system. +On *this* platform, you can easily turn it off from coreboot. + +**Libreboot disables HyperThreading by default**, from Libreboot 20241206 rev8 +onward, on this board. To turn it back on, please [build from source](../build/) +and before running the build command, do this: + + ./mk -m coreboot t480_vfsp_16mb # replace t480 with t480s if needed + +In the menu that appears, go *Chipset -> Enable Hyperthreading* and turn it on. +Then exit from the menu, saving the config where prompted. You will see this +menu twice, because there are *two* configs for each of these boards. + +SMT is rarely of benefit in practise, but can be useful in some circumstances. +For example, if you're compiling a large codebase from source that takes hours, +SMT increases the building speed by about 15 percent; for example, a 3 hour +build job might take about 2 hours and 40 minutes instead. + NFC support in T480 ------------------- From 007136a010c4d620d381532914e0d0b60eb79b72 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 29 Dec 2024 15:12:25 +0000 Subject: [PATCH 185/399] thoUART t480 Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 41 +++++++++++++-------------------------- 1 file changed, 14 insertions(+), 27 deletions(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 48a8880..d079828 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -356,40 +356,27 @@ the Fn keys for it don't currently work, as of 6 December 2024. You can set the backlight manually, or use a hotkey, depending on your window manager or desktop environment. -UART +UART (T480 only. Not T480S) ---- -To our knowledge, this functionality is *only* available in coreboot-based -firmware such as Libreboot. It is completely unsupported on the original -firmware! +**NOT supported on the S model (T480s). Please only do it on a T480.** -A serial console is possible via the line-out (headphone jack). Not yet tested -on the T480s (S model), nor implemented, but it is working on the regular -T480 (non-S model). +The EC on ThinkPad T480 has a UART available, and it is enabled in coreboot, +as used by Libreboot. However, you must use a *specific* EC firmware version. +Please read notes elsewhere in this page regarding Lenovo UEFI/EC BIOS updates; +an exact version number is referenced, which you must install prior to Libreboot +installation. -**TODO: show photo and wiring diagram here.** +Ways to flash the EC firmware from Libreboot have not yet been established. Now, +please observe the following photo: -Use baud rate 115200 in your favourite serial terminal client, e.g. GNU Screen. +ThinkPad T480 UART jumpers -Next to the headphone jack on the T480, you will find pads for two 0ohm jumpers, -normally unpopulated, but you can bridge each jumper yourself using a 0ohm 0201 -jumper; alternatively, simply strip a bit a wire (30awg solid core) and carefully -solder the wire across each of the pad jumpers, then carefully using a pair -of side cutters to cut off the excess wire, being careful not to rip the pads! +You will solder zero-ohm jumps on the indicated footprints. These correspond +to TX and RX, which are connected to the R and L lines on the headphone jack, +respectively; a ground will also be available. -If you do this, please make sure to have the latest EC firmware as of 5 -December 2024 (do not use older than what was latest on this day, and don't -use newer versions), because the code for this in coreboot targets a specific -area of code within the EC firmware. - -You can then wire a 3.5mm stereo plug. On the other end you will wire your -TX/RX lines as you wish, to a suitable UART adapter; any 3.3v-rated TTL -adapter should work. The Raspberry Pi Pico can be used for this, which is handy -because that can also be used as a serprog-based NOR flasher! - -The T480s (S model) schematics is a bit different and the signals are -properly muxed. Note that this is not to be confused with `spkmodem`, which -has not been tested on these boards (but could theoretically be possible too). +You can hook this up to any 3.3v TTL UART dongle, to get a serial console. Idea for 2nd NVMe mod ---------------------- From 58bab1695b02f1bc5045479330f262a3e8a3a957 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 29 Dec 2024 15:15:17 +0000 Subject: [PATCH 186/399] jumpers, not jumpjumpers, not jumpss Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index d079828..a9d6131 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -372,7 +372,7 @@ please observe the following photo: ThinkPad T480 UART jumpers -You will solder zero-ohm jumps on the indicated footprints. These correspond +You will solder zero-ohm jumpers on the indicated footprints. These correspond to TX and RX, which are connected to the R and L lines on the headphone jack, respectively; a ground will also be available. From 6447f5d1831f0b431f7f8ff824b403b4c9c73c73 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 29 Dec 2024 15:33:54 +0000 Subject: [PATCH 187/399] also mention that they are 0201 jumpers Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index a9d6131..c442125 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -376,6 +376,10 @@ You will solder zero-ohm jumpers on the indicated footprints. These correspond to TX and RX, which are connected to the R and L lines on the headphone jack, respectively; a ground will also be available. +You must solder the zero-ohm jumpers, for UART to work. They are *0201* type +jumpers, which are extremely small. Please only do this if you have *excellent* +soldering skills because it's easy to goof this up if you're not careful. + You can hook this up to any 3.3v TTL UART dongle, to get a serial console. Idea for 2nd NVMe mod From 19fab472018d2f8315b0236f163b7c7725f575be Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 29 Dec 2024 16:56:19 +0000 Subject: [PATCH 188/399] Notes pertaining to T480/3050 FSP licensing Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 66 +++++++++++++++++++++++++++++- site/docs/install/t480.md | 75 ++++++++++++++++++++++++++++++++++- 2 files changed, 138 insertions(+), 3 deletions(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index e5f6e98..c41487e 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -82,7 +82,7 @@ Build ROM image from source The build target, when building from source, is thus: - ./mk -b coreboot dell3050micro_fsp_16mb + ./mk -b coreboot dell3050micro_vfsp_16mb Mate Kukri's *deguard* utility disables the Intel Boot Guard on this machine. Libreboot uses this by default, along with `me_cleaner` to provide @@ -215,3 +215,67 @@ SMT is rarely of benefit in practise, but can be useful in some circumstances. For example, if you're compiling a large codebase from source that takes hours, SMT increases the building speed by about 15 percent; for example, a 3 hour build job might take about 2 hours and 40 minutes instead. + +Intel FSP copyright +=================== + +Abstract +-------- + +The initial Libreboot 20241206 release included Intel FSP directly inside the +ROM images. Intel provides the FSP under a license which states (and I +paraphrase): you must not modify it, but you can redistribute it freely, so +long as the license notice is retained. + +The FSP is a concatenation of three modules: FSP-T, FSP-S and FSP-M. T basically +does CAR, S is essentially romstage components, and M is raminit. Due to how +coreboot works, these components must be split into single components. Coreboot +doesn't use T by default (it implements CAR itself), but has the option to +use it. It will use M and S, only. + +Technically, the process of splitting FSP into these three files counts as +a modification. Furthermore, coreboot also rebases the M module by modifying +certain pointers, so that it can integrate with coreboot to provide raminit. + +Intel *themselves* own the copyright to the tool for splitting FSP, +at `3rdparty/fsp/Tools/SplitFspBin.py`, and it seems that they do intend for +the FSP to be used this way. However, until now, those using the Intel FSP +have built coreboot images from source, so the issue of modified distributions +didn't come up. + +By the strictest possible interpretation of Intel's licensing, Libreboot was +technically in violation. To mitigate this, Libreboot 20241206 *revision 8* and +newer, will no longer include the Intel FSP inside images. Instead, the vendor +inject script is used for inserting the FSP into release images, which is what +we already do for several other components. + +`_fsp` vs `_vfsp` targets +------------------------- + +The original 20241206 release images had `_fsp` in the file name. From rev8 +onward, `_vfsp` is specified instead. + +Libreboot's inject script verifies checksums on files, when inserting into the +images. Because of this, if we inject FSP after the fact, that means anyone +using the old images will find errors when they try. + +To mitigate this, the build targets containing `_fsp` in the name have been +retained, but these targets are set `release="n"` so that no ROM images are +provided in releases. The `_vfsp` images are provided pre-compiled, instead. + +With this re-design, modern lbmk (from Libreboot 20241206 rev8 onward) can still +reliably inject Intel ME into the old `_fsp` images, if you already downloaded +those before. + +Therefore, you must be especially careful to get this right. If you're running +the inject script into a tarball, it will generally detect the right one, but +inserting manually into individual image files is also possible; if you do this, +you must remember to correctly specify `dell3050micro_vfsp_16mb`, +or to specify the `_fsp` targets if you're doing this on older images. + +It is extremely unlikely that Intel would have ever cracked down on Libreboot +for its previous mistake, since many other projects exist that include FSP +directly in coreboot images, even commercially. However, Libreboot wishes to +respect Intel's license, in the +most [technically correct](https://www.youtube.com/watch?v=0ZEuWJ4muYc) way +possible. diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index c442125..33d1fad 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -127,8 +127,8 @@ Please refer to the standard [build instructions](../build/) first. The build target, when building from source, is thus: - ./mk -b coreboot t480_fsp_16mb - ./mk -b coreboot t480s_fsp_16mb + ./mk -b coreboot t480_vfsp_16mb + ./mk -b coreboot t480s_vfsp_16mb **NOTE: The T480 and T480s may be similar, but they do have several critical differences in their wiring, so you MUST flash the correct image. Please @@ -518,6 +518,14 @@ git add config/coreboot/t480s_fsp_16mb/ git commit -s -m "experimental/unstable t480 thunderbolt support" ``` +**NOTE: With the above change, or if using the branch referenced below, +the build targets will be `t480_fsp_16mb` and `t480s_fsp_16mb`, +not `t480_vfsp_16mb` and `t480s_vfsp_16mb`; see notes regarding fsp/vfsp +elsewhere on this page. This branch also does not contain other fixes from +Libreboot 20231206 rev8/newer, since it's based on 20241206 rev2. A rebase will +not be conducted; instead, ThunderBolt PCI-E support will simply be added in +a subsequent release, and revision to the 20241206 release.** + You can now follow standard [build instructions](../build/). The branch named `20241206-t480-thunderbolt-unstable` already has the above @@ -551,3 +559,66 @@ If you encounter this issue, check\ [this page](../../faq.md#thinkpad-acpi) for details as to how to fix this. +Intel FSP copyright +=================== + +Abstract +-------- + +The initial Libreboot 20241206 release included Intel FSP directly inside the +ROM images. Intel provides the FSP under a license which states (and I +paraphrase): you must not modify it, but you can redistribute it freely, so +long as the license notice is retained. + +The FSP is a concatenation of three modules: FSP-T, FSP-S and FSP-M. T basically +does CAR, S is essentially romstage components, and M is raminit. Due to how +coreboot works, these components must be split into single components. Coreboot +doesn't use T by default (it implements CAR itself), but has the option to +use it. It will use M and S, only. + +Technically, the process of splitting FSP into these three files counts as +a modification. Furthermore, coreboot also rebases the M module by modifying +certain pointers, so that it can integrate with coreboot to provide raminit. + +Intel *themselves* own the copyright to the tool for splitting FSP, +at `3rdparty/fsp/Tools/SplitFspBin.py`, and it seems that they do intend for +the FSP to be used this way. However, until now, those using the Intel FSP +have built coreboot images from source, so the issue of modified distributions +didn't come up. + +By the strictest possible interpretation of Intel's licensing, Libreboot was +technically in violation. To mitigate this, Libreboot 20241206 *revision 8* and +newer, will no longer include the Intel FSP inside images. Instead, the vendor +inject script is used for inserting the FSP into release images, which is what +we already do for several other components. + +`_fsp` vs `_vfsp` targets +------------------------- + +The original 20241206 release images had `_fsp` in the file name. From rev8 +onward, `_vfsp` is specified instead. + +Libreboot's inject script verifies checksums on files, when inserting into the +images. Because of this, if we inject FSP after the fact, that means anyone +using the old images will find errors when they try. + +To mitigate this, the build targets containing `_fsp` in the name have been +retained, but these targets are set `release="n"` so that no ROM images are +provided in releases. The `_vfsp` images are provided pre-compiled, instead. + +With this re-design, modern lbmk (from Libreboot 20241206 rev8 onward) can still +reliably inject Intel ME into the old `_fsp` images, if you already downloaded +those before. + +Therefore, you must be especially careful to get this right. If you're running +the inject script into a tarball, it will generally detect the right one, but +inserting manually into individual image files is also possible; if you do this, +you must remember to correctly specify `t480_vfsp_16mb` or `t480s_vfsp_16mb`, +or to specify the `_fsp` targets if you're doing this on older images. + +It is extremely unlikely that Intel would have ever cracked down on Libreboot +for its previous mistake, since many other projects exist that include FSP +directly in coreboot images, even commercially. However, Libreboot wishes to +respect Intel's license, in the +most [technically correct](https://www.youtube.com/watch?v=0ZEuWJ4muYc) way +possible. From bf443e2e4d1cb0f69ff7cbabc7a79a40aaf26736 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 29 Dec 2024 18:04:10 +0000 Subject: [PATCH 189/399] Rewrote the T480 thunderbolt flashing instructions Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 190 ++++++++++++++++++++++++++++++-------- 1 file changed, 153 insertions(+), 37 deletions(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 33d1fad..f028690 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -177,57 +177,173 @@ Thunderbolt issue (READ THIS BEFORE FLASHING) The thunderbolt firmware on launch units had a bug where certain debug info is written on certain events, such as plugging in a charger to the USB-C -connector. This logging is stored in the Thunderbolt firmware's own SPI flash, +connector. Log data is stored in the Thunderbolt firmware's own SPI flash, which is separate from the main SPI flash containing the system firmware e.g. coreboot. -If that flash gets full, thunderbolt (on factory firmware) stops working and -fast charging stops working. It can be prevented by updating the Thunderbolt -firmware. You can do this from Lenovo's firmware, using these instructions: +This photo shows that flash chip on a ThinkPad T480: + +ThinkPad T480 NOR flash (thunderbolt firmware) + +It's also present on the T480S (S model), but in a different location; on +the S model, the main system flash is still located somewhere near the +centre of the board, and the ThunderBolt flash near the edge of the board, as +it is on the T480, but the T480/T480s use slightly different wiring and they +have a slightly different board layout. + +If that flash gets full, thunderbolt PCI-E stops working and fast charging +stops working, but slow charging still works. The issue can be prevented by +updating the firmware. See: If you're already affected by the bug, you can restore it to a working state -by flashing the Thunderbolt firmware externally. For example this is where its -NOR flash is on a T480: +by flashing the Thunderbolt firmware externally. You *cannot* fix the issue +with Lenovo's software-based flasher, if the issue is already present, so +you *must* flash externally in that case; you can also flash externally, even +if the issue is not yet present. -ThinkPad T480 NOR flash (thunderbolt firmware) - -This page shows how to do that: - -\ -**WARNING! Please follow the guide PRECISELY, if you follow it, but please -only follow it if your ThunderBolt is already broken. If it isn't, use -Lenovo's software-based updater. If you do the external method, you MUST be -very careful; the guide there for example says to disable ThunderBolt assist. -It also says to erase first, then flash the `null.bin` (file with zeroes in -it), then BOOT, and when it boots, power off and re-connect clip again and -then flash the padded TBT.bin - whereas, for example, if you simply flashed -a padded TBT.bin and nothing else first, and boot, it will be perma-bricked, -in that the CPU won't come out of reset (it'll bootloop). We don't yet know -how to recover from this brick scenario. So all of this is to say: flashing -the ThunderBolt externally is EXTREMELY HAZARDOUS, and should be done with -the UTMOST CARE, ideally NOT AT ALL. -- ALSO: the guide only covers T480, -but should be similar on T480s and other ThinkPad models.** - -You unbrick the Thunderbolt controller by pulling the firmware from Lenovo's -update, from Lenovo's update utility. Once extracted, you then pad it properly -so that it can be flashed manually, using a normal SPI flasher (the same one -that you would use to flash Libreboot). +The benefit of flashing it *externally* is that you would then no longer need +to boot Windows, because there is currently no way of doing it from Linux, and +Lenovo does not provide a *boot image* like they do for UEFI updates. So, to +use Lenovo's software-based flasher, you must install and boot Windows. We +always recommend using Free Software whenever possible, *so we always recommend +flashing the new firmware externally, as a matter of course.* Use the [25XX NOR flashing guide](spi.md) if you need to flash this chip. It's the same guide that you will use for the main system flash, which is a separate flash IC. -AGAIN: This is not the Libreboot flash IC. This is separate to the system flash. -Read on to know how to reprogram the main system flash! +The firmware can be extracted from Lenovo's updater, specifically the `.exe` +file. For your convenience, lbmk (Libreboot's build system) can download this +for you. Run the following commands in lbmk: -**AGAIN: It is extremely easy to permanently brick the ThunderBolt controller, -rendering your system completely unbootable, if you use the external recovery -method. If you're still able to fix it with a software-based flasher like the -one Lenovo provides, please use that at all - or simply don't fix it at all, -because the machine will at least still charge while it has the ThunderBolt -issue, where older firmware is used.** +(please install [build dependencies](../build/) first) + +Commands: + + ./mk -d coreboot t480s_vfsp_16mb + ./mk -d coreboot t480_vfsp_16mb + +You will find the files at these locations in lbmk: + +* `vendorfiles/t480/tb.bin` +* `vendorfiles/t480s/tb.bin` + +These have already been padded, to the correct size of 1MB, whereas the original +size (within the `.exe` file) was 256KB. + +These files are *also* generated, if you used the `./mk inject` command, +on a pre-compiled release image, as documented [here](ivy_has_common.md). + +**WARNING: DO NOT FLASH IT FIRST; YOU MUST PERFORM SOME PRE-REQUISITE STEPS +FIRST, BEFORE FLASHING `tb.bin`**: + +**Firstly, please note that this procedure has *only* been tested with Lenovo's +UEFI firmware installed on the main flash. Please ensure that you have also +switched Lenovo UEFI/EC firmware to the specific version referenced on this +page, for your board.** - for the rest of this, we will assume that you've not +yet flashed Libreboot, though there's no reason in principle why this can't +also work *after* you've flashed Libreboot; it's just that we only tested it +from Lenovo UEFI firmware. + +Now, *remove* the CR2032 battery (yellow coin-cell battery). Please also ensure +that you've disabled *ThunderBolt Assist* in the Lenovo UEFI setup menu. You +should also disable the internal battery, on T480 specifically (T480s only has +an internal battery). You should do this with no batteries connected anyway. + +Firstly, make *two dumps* of the flash, using [flashprog](spi.md) - and the +linked guide generally tells you how to dump/flash the chip. Make sure both +dumps have the same checksum, using e.g. `sha512sum`. + +Now, *erase* the flash. This example command is when using a Raspberry Pi Pico, +assuming that the device shows up as `/dev/ttyACM0` - please adapt accordingly +to whatever programmer you have: + + flashprog -p serprog:dev=/dev/ttyACM0 -E + +Note that the `-E` argument is what specifies that the chip should be *erased*. + +Now, you must create a file called `null.bin`, which contains all zeroes: + + dd if=/dev/zero of=null.bin bs=1M count=1 + +Please ensure (in hexdump) that the file does contain all zeroes, and that it +is 1MB in size. You will now flash it, again adapting the command below to +whatever programmer you have: + + flashprog -p serprog:dev=/dev/ttyACM0 -w null.bin + +**NOW, REMOVE the clip. Button it back up and turn the T480 on, with both +the battery and the charger connected, plugging in the battery first.** + +It *should* boot up and show the Lenovo boot screen. Give it a few moments. +When you've confirmed that it has booted the Lenovo firmware, *shut down* the +machine and remove the battery / power supply again. It *may take a while* to +boot Lenovo's firmware when doing this, so please be very patient. + +After you've confirmed that the machine boots, I say again: make sure to shut +it down fully, removing all batteries and power supplies. + +It is at this moment that you will externally flash the `tb.bin` file. Please +make sure to flash the correct one for your board: + +* T480: `vendorfiles/t480/tb.bin` +* T480s: `vendorfiles/t480s/tb.bin` + +Libreboot's automated build system has a lot more dependencies. If you want to +avoid installing them, and extract the file manually, you can. Simply download +the `.exe` file and do this: + + innoextract filename.exe + +The `innoextract` utility will probably be available in your distro's package +manager. You can otherwise find it here:\ + - credit goes to Daniel Scharrer for +writing this excellent software. + +A directory will be created with the extracted files. Inside it, you will +find a file named `TBT.bin`. You can pad it like so: + + dd if=/dev/null of=TBT.bin bs=1 seek=1048576 + +Note that the `seek` variable here matching 1MB flash size. If you encounter +a different flash size, adapt accordingly (the same applies when creating +the `null.bin` file). Libreboot's build system makes this size configurable +per board, on the theory that we may encounter other flash sizes in the future, +when we add more ThinkPads of this generation to Libreboot. + +Ok, so you have the file. Now you can flash it. + +Example: + + flashprog -p serprog:dev=/dev/ttyACM0 -w tb.bin + +Adapt `tb.bin` in the command above, to the actual one that you wish to flash. + +You *MUST* do it in the exact order as prescribed above. After flashing +the `tb.bin` image, un-clip and simply re-assemble. After you boot up, it should +once again show the boot screen, and USB-C / ThunderBolt will work perfectly. + +You can repeat the above steps to restore the old firmware version. This is why +you were instructed to make a backup, on the off-chance that you may wish to do +so for some reason in the future. + +Troubleshooting: + +If you accidentally flashed an incorrect firmware image, or you didn't properly +erase and boot first before flashing the new image, you can simply repeat the +steps again; on erase/null, you then boot up and *wait* and it'll eventually +show the boot screen again. If it doesn't work, just keep doing it until it does. + +Credits go +to [Adam McNutt](https://gitlab.com/MobileAZN/lenovo-t480-thunderbolt-firmware-fixes) +who originally provided such instructions, for the ThinkPad T480. The information +there was adapted for *this* guide, in the Libreboot documentation. Libreboot +may very well support other ThinkPads from the same generation, in a future +release after Libreboot 20241206, and many of those have this same issue; when +it does, Libreboot will document this fix for those machines too, and probably +move these instructions to a dedicated page on the website. Flash a ROM image (software) ----------------------- From 0893abd63554d6b71a0b756e0dba7d2ad0428ef4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 30 Dec 2024 16:09:16 +0000 Subject: [PATCH 190/399] t480 uart: mention the 115200 baud rate Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index f028690..66be2fe 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -496,7 +496,8 @@ You must solder the zero-ohm jumpers, for UART to work. They are *0201* type jumpers, which are extremely small. Please only do this if you have *excellent* soldering skills because it's easy to goof this up if you're not careful. -You can hook this up to any 3.3v TTL UART dongle, to get a serial console. +You can hook this up to any 3.3v TTL UART dongle, to get a serial console. The +correct baud rate is 115200. Idea for 2nd NVMe mod ---------------------- From 935e5aec1413a7b2d3ddff7d67c8a2974ea5c024 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 30 Dec 2024 17:28:53 +0000 Subject: [PATCH 191/399] install/spi: Document the Raspberry Pi Pico 2 Signed-off-by: Leah Rowe --- site/docs/install/spi.md | 12 ++++++++++-- site/docs/install/spi.zh-cn.md | 12 ++++++++++-- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index bee0573..ef47d30 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -40,7 +40,7 @@ dump, erase and rewrite these flash chips. libreboot currently documents how to use these SPI programmers: -* Raspberry Pi Pico +* Raspberry Pi Pico / Pico 2 * Raspberry Pi (RPi) single-board computers * BeagleBone Black (BBB) * Libre Computer 'Le Potato' @@ -65,6 +65,13 @@ is called *external* because it's not the *internal* one on your mainboard. Raspberry Pi Pico ================= +**Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8 +or higher. Releases before this only supported the original Pico, and other +RP2040 dongles; newer Libreboot releases now support both RP2040 and RP2530.** + +The pinout on Raspberry Pi Pico and Raspberry Pi Pico 2 are identical, but you +must take care to flash the correct image on either device. + ![Left to right: Raspberry Pi Pico and Pico H](https://av.libreboot.org/rpi_pico/two_picos.webp) If you don't already have a programmer, get this one! It's well engineered, @@ -101,7 +108,8 @@ do: This will automatically build the rpi-pico firmware, and the file will be at `bin/serprog_rp2040/serprog_pico.uf2` -and `bin/serprog_rp2040/serprog_pico_w.uf2`. +and `bin/serprog_rp2040/serprog_pico_w.uf2` - images with `pico2` in the +file name are for the Pico 2, and they can also be used. Disconnect the Pico and proceed to wire it to your [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). diff --git a/site/docs/install/spi.zh-cn.md b/site/docs/install/spi.zh-cn.md index 44f1a92..6cc0784 100644 --- a/site/docs/install/spi.zh-cn.md +++ b/site/docs/install/spi.zh-cn.md @@ -27,7 +27,7 @@ Introduction libreboot 目前记录了这些 SPI 编程器的使用方法: -* Raspberry Pi Pico +* Raspberry Pi Pico / Pico 2 * 树莓派(Raspberry Pi,RPi) * BeagleBone Black(BBB) * Libre Computer 'Le Potato' @@ -43,6 +43,13 @@ libreboot 目前记录了这些 SPI 编程器的使用方法: Raspberry Pi Pico ================= +**Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8 +or higher. Releases before this only supported the original Pico, and other +RP2040 dongles; newer Libreboot releases now support both RP2040 and RP2530.** + +The pinout on Raspberry Pi Pico and Raspberry Pi Pico 2 are identical, but you +must take care to flash the correct image on either device. + ![Left to right: Raspberry Pi Pico and Pico H](https://av.libreboot.org/rpi_pico/two_picos.webp) If you don't already have a programmer, get this one! It's well engineered, @@ -75,7 +82,8 @@ do: This will automatically build the rpi-pico firmware, and the file will be at `bin/serprog_rp2040/serprog_pico.uf2` -and `bin/serprog_rp2040/serprog_pico_w.uf2`. +and `bin/serprog_rp2040/serprog_pico_w.uf2` - images with `pico2` in the +file name are for the Pico 2, and they can also be used. Disconnect the Pico and proceed to wire it to your [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). From 32c80dae9c9f370cbf205dae409dbd17d7a3591f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 31 Dec 2024 15:20:18 +0000 Subject: [PATCH 192/399] mention refcode fix for hp 820 g2 Signed-off-by: Leah Rowe --- site/docs/install/hp820g2.md | 35 ++++++++++++++++++++++++++++------- 1 file changed, 28 insertions(+), 7 deletions(-) diff --git a/site/docs/install/hp820g2.md b/site/docs/install/hp820g2.md index 966bca9..afd6454 100644 --- a/site/docs/install/hp820g2.md +++ b/site/docs/install/hp820g2.md @@ -73,13 +73,34 @@ Please build this from source with lbmk: ./mk -b coreboot hp820g2_12mb More information is available in the [build guide](../build/), including how -to install build dependencies. Building from source is required, because there -aren't any ROM images for this board, in regular Libreboot releases. The -reason is that the vendor inject scripts don't currently work, because coreboot -compresses the refcode when inserting it at build time, and the process of -compression is not yet reproducible; it's not feasible to do so, and making -it not be compressed in flash would not be ideal either, so this is simply -a source-only port in Libreboot. +to install build dependencies. + +Pre-compiled images now possible! +-------------------------------- + +From Libreboot 20241206 **revision 8** onwards, pre-compiled ROM images *are* +now available. Previous releases excluded images for this board, because vendor +file insertion was not reproducible, so you would get checksum errors. This +has been fixed with the following patch: + + + +The refcode is inserted uncompressed, whereas upstream uses LZMA compression. +We can't predict how the implementation will change in the future, and any +behavioural changes would probably affect the checksum on insertion. Older +releases also didn't handle `rmodtool` on refcode insertion, which is used +to make the file relocatable in CBFS. See: + + + +As of Libreboot 20241206 rev8, you can now use pre-compiled release images +and [insert vendor files](ivy_has_common.md). + +The lack of refcode compression costs about 110KB, because the refcode file is +about 180KB uncompressed, but would be about 70KB compressed in flash. We +insert it uncompressed, so it's 180KB in flash. This is a small sacrifice, +considering that you still have about 10MB of unused flash space left, at least +as of the 20241206 rev8 release. HP Sure Start ============= From 3b55fca2c913f5875860fc1397f0b316aa249727 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 31 Dec 2024 15:44:26 +0000 Subject: [PATCH 193/399] document t480/3050 pmc config Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 22 ++++++++++++++++++++++ site/docs/install/t480.md | 22 ++++++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index c41487e..2b5f9f3 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -178,6 +178,28 @@ service jumper is set). Errata ====== +Power-on after power failure +---------------------------- + +Older Libreboot revisions made this machine always turn on, when plugging in +a power supply (charger brick), if a previous power loss was observed. This is +because coreboot sets a special register in the PMC that configures such +behaviour, but it was hardcoded to always-on. This is undesirable for most +people, so Libreboot 20241206 *revision 8* and newer releases contain the +following modification: + + + +If you wish to modify this behaviour again, you could modify the patch +referenced there; the actual location of the `.patch` file may change over +time, so you can basically just modify the coreboot source file +at `src/soc/intel/common/block/pmc/pmclib.c` (for the coreboot tree +under `src/coreboot/` in lbmk, pertaining to your board, which can be determined +by reading the `tree` variable in your board's `target.cfg` file within lbmk). + +Use the patch as reference, to modify the coreboot behaviour as you wish, and +re-compile [from source](../build/). + TPM disabled ------------ diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 66be2fe..eada576 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -522,6 +522,28 @@ Errata Some features either don't work, or are untested, when running Libreboot on the ThinkPad T480 or T480s. +Power-on after power failure +---------------------------- + +Older Libreboot revisions made this machine always turn on, when plugging in +a power supply (charger brick), if a previous power loss was observed. This is +because coreboot sets a special register in the PMC that configures such +behaviour, but it was hardcoded to always-on. This is undesirable for most +people, so Libreboot 20241206 *revision 8* and newer releases contain the +following modification: + + + +If you wish to modify this behaviour again, you could modify the patch +referenced there; the actual location of the `.patch` file may change over +time, so you can basically just modify the coreboot source file +at `src/soc/intel/common/block/pmc/pmclib.c` (for the coreboot tree +under `src/coreboot/` in lbmk, pertaining to your board, which can be determined +by reading the `tree` variable in your board's `target.cfg` file within lbmk). + +Use the patch as reference, to modify the coreboot behaviour as you wish, and +re-compile [from source](../build/). + TPM disabled ------------ From 8cdb2f257cca740e90d06e9b3fdaa6974a71c835 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 31 Dec 2024 20:27:34 +0000 Subject: [PATCH 194/399] docs/build,ivy_common: mention cryptfs bug 139 characters is so 1992 Signed-off-by: Leah Rowe --- site/docs/build/index.md | 10 ++++++++++ site/docs/install/ivy_has_common.md | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index 06ddc41..f16cf33 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -3,6 +3,16 @@ title: Build from source x-toc-enable: true ... +WARNING: cryptfs file name limits +================================= + +Do not run the build system on a cryptfs file system, because it has +very short file name limits and Libreboot's build system deals with very +long file names. We commonly get reports from this by Linux Mint users +who encrypt their home directory with cryptfs; use a serious distro like +Debian or Arch please. And use a decent file system; zfs or perhaps mdcrypt +with btrfs will do nicely. + WARNING: Flash from bin/, NOT elf/ ================================== diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 0fb7b51..cff5b1f 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -3,6 +3,16 @@ title: Insert vendor files not included in release images x-toc-enable: true ... +WARNING: cryptfs file name limits +================================= + +Do not run the build system on a cryptfs file system, because it has +very short file name limits and Libreboot's build system deals with very +long file names. We commonly get reports from this by Linux Mint users +who encrypt their home directory with cryptfs; use a serious distro like +Debian or Arch please. And use a decent file system; zfs or perhaps mdcrypt +with btrfs will do nicely. + **Install build dependencies first** ================================ From ab51fb8ba6ad6b938ae4f22d46c49c9cd426db55 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 31 Dec 2024 21:43:01 +0000 Subject: [PATCH 195/399] t's eCryptfs, not cryptfs Signed-off-by: Leah Rowe --- site/docs/build/index.md | 4 ++-- site/docs/install/ivy_has_common.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index f16cf33..9563af7 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -3,10 +3,10 @@ title: Build from source x-toc-enable: true ... -WARNING: cryptfs file name limits +WARNING: eCryptfs file name limits ================================= -Do not run the build system on a cryptfs file system, because it has +Do not run the build system on a eCryptfs file system, because it has very short file name limits and Libreboot's build system deals with very long file names. We commonly get reports from this by Linux Mint users who encrypt their home directory with cryptfs; use a serious distro like diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index cff5b1f..db64483 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -3,10 +3,10 @@ title: Insert vendor files not included in release images x-toc-enable: true ... -WARNING: cryptfs file name limits +WARNING: eCryptfs file name limits ================================= -Do not run the build system on a cryptfs file system, because it has +Do not run the build system on a eCryptfs file system, because it has very short file name limits and Libreboot's build system deals with very long file names. We commonly get reports from this by Linux Mint users who encrypt their home directory with cryptfs; use a serious distro like From c5273bc020247c78a3e406df2b330d1c7ed04506 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 31 Dec 2024 21:44:38 +0000 Subject: [PATCH 196/399] remove obsolete note Signed-off-by: Leah Rowe --- site/docs/build/index.md | 12 ------------ site/docs/build/index.uk.md | 20 ++++++++------------ 2 files changed, 8 insertions(+), 24 deletions(-) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index 9563af7..e6316df 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -13,18 +13,6 @@ who encrypt their home directory with cryptfs; use a serious distro like Debian or Arch please. And use a decent file system; zfs or perhaps mdcrypt with btrfs will do nicely. -WARNING: Flash from bin/, NOT elf/ -================================== - -**WARNING: When you build a ROM image from the Libreboot build system, please -ensure that you flash the appropriate ROM image from `bin/`, NOT `elf/`. -The `elf/` coreboot ROMs do not contain payloads. Libreboot's build system -builds no-payload ROMs under `elf/`, and payloads separately under `elf/`. Then -it copies from `elf/` and inserts payloads from `elf/`, and puts the final ROM -images (containing payloads) in `bin/`. This design is more efficient, and -permits many configurations without needless duplication of work. More info -is available in the [lbmk maintenance manual](../maintain/)** - Introduction ============ diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index a2df30d..fb2b658 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -3,19 +3,15 @@ title: Побудова з джерельного коду x-toc-enable: true ... -WARNING: Flash from bin/, NOT elf/ -================================== +WARNING: eCryptfs file name limits +================================= -TODO: translate this section into ukrainian language - -**WARNING: When you build a ROM image from the Libreboot build system, please -ensure that you flash the appropriate ROM image from `bin/`, NOT `elf/`. -The `elf/` coreboot ROMs do not contain payloads. Libreboot's build system -builds no-payload ROMs under `elf/`, and payloads separately under `elf/`. Then -it copies from `elf/` and inserts payloads from `elf/`, and puts the final ROM -images (containing payloads) in `bin/`. This design is more efficient, and -permits many configurations without needless duplication of work. More info -is available in the [lbmk maintenance manual](../maintain/)** +Do not run the build system on a eCryptfs file system, because it has +very short file name limits and Libreboot's build system deals with very +long file names. We commonly get reports from this by Linux Mint users +who encrypt their home directory with cryptfs; use a serious distro like +Debian or Arch please. And use a decent file system; zfs or perhaps mdcrypt +with btrfs will do nicely. Introduction ============ From 965baf9bb0b16f10bd9cefc2bcd4115ca7408246 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 31 Dec 2024 21:46:55 +0000 Subject: [PATCH 197/399] another typo Signed-off-by: Leah Rowe --- site/docs/build/index.md | 2 +- site/docs/build/index.uk.md | 2 +- site/docs/install/ivy_has_common.md | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index e6316df..f74faf4 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -10,7 +10,7 @@ Do not run the build system on a eCryptfs file system, because it has very short file name limits and Libreboot's build system deals with very long file names. We commonly get reports from this by Linux Mint users who encrypt their home directory with cryptfs; use a serious distro like -Debian or Arch please. And use a decent file system; zfs or perhaps mdcrypt +Debian or Arch please. And use a decent file system; ZFS or perhaps LUKS with btrfs will do nicely. Introduction diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index fb2b658..6a58bfb 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -10,7 +10,7 @@ Do not run the build system on a eCryptfs file system, because it has very short file name limits and Libreboot's build system deals with very long file names. We commonly get reports from this by Linux Mint users who encrypt their home directory with cryptfs; use a serious distro like -Debian or Arch please. And use a decent file system; zfs or perhaps mdcrypt +Debian or Arch please. And use a decent file system; ZFS or perhaps LUKS with btrfs will do nicely. Introduction diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index db64483..223491c 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -10,7 +10,7 @@ Do not run the build system on a eCryptfs file system, because it has very short file name limits and Libreboot's build system deals with very long file names. We commonly get reports from this by Linux Mint users who encrypt their home directory with cryptfs; use a serious distro like -Debian or Arch please. And use a decent file system; zfs or perhaps mdcrypt +Debian or Arch please. And use a decent file system; ZFS or perhaps LUKS with btrfs will do nicely. **Install build dependencies first** From 2c7d4c4df855f85f18ef5998b54ce423d543bfa4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 31 Dec 2024 23:58:10 +0000 Subject: [PATCH 198/399] correction Signed-off-by: Leah Rowe --- site/docs/linux/grub_hardening.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index 903ee9c..00d438b 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -239,8 +239,8 @@ For your board's `target.cfg`, add this: E.g. `config/coreboot/x200_8mb/target.cfg` You should only do this on setups that have native graphics initialisation -e.g. Intel graphics, or where no VGA/GOP ROM is required either on-card or -in the flash (e.g. Intel graphics on Alderlake machines). +e.g. Intel graphics (or FSP-based Intel graphics initialisation like on +Alderlake which sets up a similar framebuffer). If you can't use GRUB as a primary payload, then you can use SeaGRUB as above and disable the SeaBIOS menu, making SeaBIOS load only GRUB; SeaGRUB is useful From a1ff143fe641f7e79a19372ca5ed0dbf3c3c06f3 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 1 Jan 2025 16:52:00 +0000 Subject: [PATCH 199/399] docs/build: Mention MIPS XGCC for PCSX-Redux BIOS Signed-off-by: Leah Rowe --- site/docs/build/index.md | 16 ++++++++++++++++ site/docs/build/index.uk.md | 31 ++++++++++++------------------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index f74faf4..ad3a168 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -23,6 +23,22 @@ libreboot from the available source code. The following document describes how `lbmk` works, and how you can make changes to it: [libreboot maintenance manual](../maintain/) +MIPS cross compiler +=================== + +Libreboot has support for the Sony PlayStation (PS1/PSX), based on +the PCSX-Redux Open BIOS. If you're doing a full release build, and/or +specifically building the PSX BIOS, you need a MIPS cross compiler. + +Arch-based systems have a mipsel cross compiler available from AUR, and most +Debian-based systems have a mipsel cross compiler in apt; for these, the normal +dependencies installation command will provide them. We know Void Linux and +Fedora don't have a MIPS compiler, for instance. + +If your distro doesn't have the MIPS compiler available, +the [PlayStation](../install/playstation.md) page provides instructions for +manual installation; please do this in addition to the normal dependencies. + Multi-threaded builds ===================== diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index 6a58bfb..21f727c 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -31,28 +31,21 @@ libreboot з доступного джерельного коду. Наступний документ описує те, як працює `lbmk`, і як ви можете робити зміни до нього: [керівництво обслуговування libreboot](../maintain/) -Release status -============== +MIPS cross compiler +=================== -Information about status will be reported during builds; if a board is -marked as stable, the build proceeds without further input. If the board is -marked anything other, a warning appears asking if you wish to proceed; to -disable these warnings, do this before building (not recommended): +Libreboot has support for the Sony PlayStation (PS1/PSX), based on +the PCSX-Redux Open BIOS. If you're doing a full release build, and/or +specifically building the PSX BIOS, you need a MIPS cross compiler. - export XBMK_STATUS=n +Arch-based systems have a mipsel cross compiler available from AUR, and most +Debian-based systems have a mipsel cross compiler in apt; for these, the normal +dependencies installation command will provide them. We know Void Linux and +Fedora don't have a MIPS compiler, for instance. -In Libreboot, we specify: `stable`, `unstable`, `broken` or `untested`. -The "unstable" marking means that the board boots mostly/entirely reliably -annd should be safe to use, but may have a few issues, but nothing which would, -for example, cause safety issues e.g. thermal, data reliability etc. - -The `broken` setting means that a given board will likely brick if flashed. -The `untested` setting means untested. - -Release status is always set with regards to the current lbmk revision, on -the theory that the current revision is being used to generate a full release. -The setting is decided on a board-by-board basis, taking its various quirks -and idiosynrasies into account. +If your distro doesn't have the MIPS compiler available, +the [PlayStation](../install/playstation.md) page provides instructions for +manual installation; please do this in addition to the normal dependencies. Multi-threaded builds ===================== From 4d7f0dbb9dd5ad1c84adc9d40fbb36f44ec5a557 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 1 Jan 2025 16:53:19 +0000 Subject: [PATCH 200/399] XBMK_THREADS, not LBMK_THREADS Signed-off-by: Leah Rowe --- site/docs/build/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index ad3a168..adf5ea1 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -59,7 +59,7 @@ Environmental variables Please read about environmental variables in [the build instructions](../maintain/), before running lbmk. You should set your variables accordingly, though you do not technically need to; some -of them may be useful, e.g. `LBMK_THREADS` (sets the number of build threads). +of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). Sources ======= From 6c57ce1586aebdbc79255f1cc023e3eca1e494b4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 1 Jan 2025 17:09:20 +0000 Subject: [PATCH 201/399] docs/build: Update fedora38 reference to fedora41 Signed-off-by: Leah Rowe --- site/docs/build/index.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index adf5ea1..8508c9a 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -157,12 +157,16 @@ or or - ./mk dependencies fedora38 + ./mk dependencies fedora41 or ./mk dependencies arch +NOTE: For versioned files, such as `fedora41`, typically other versions will +be available too, e.g. `fedora38`. Make sure to check `config/dependencies/`, +so that you know whether or not a file is available for your distro. + NOTE: In case of Ubuntu 20.04 LTS or derived distros for that specific release, use the dedicated configuration file: From c3ad859ea09a00ad6d2709d109daf1d63ab2bdf3 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 3 Jan 2025 01:07:20 +0000 Subject: [PATCH 202/399] update the freedom-status page Signed-off-by: Leah Rowe --- site/freedom-status.md | 13 ++++++++++++- site/freedom-status.uk.md | 13 ++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/site/freedom-status.md b/site/freedom-status.md index a1f67d0..8a1dc3d 100644 --- a/site/freedom-status.md +++ b/site/freedom-status.md @@ -240,13 +240,16 @@ Intel/x86 Neutered ME required on these targets: -`dell9020mt_nri_12mb`, `dell9020sff_nri_12mb`, `e5420_6mb`, `e5520_6mb`, `e5530_12mb`, `e6220_10mb`, `e6230_12mb`, `e6320_10mb`, `e6330_12mb`, `e6420_10mb`, `e6430_12mb`, `e6520_10mb`, `e6530_12mb`, `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8200sff_4mb`, `hp8200sff_8mb`, `hp820g2_12mb`, `hp8300cmt_16mb`, `hp8300usdt_16mb`, `hp8460pintel_8mb`, `hp8470pintel_16mb`, `hp8560w_8mb`, `hp9470m_16mb`, `t1650_12mb`, `t420_8mb`, `t420s_8mb`, `t430_12mb`, `t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230t_12mb`, `x230t_16mb` +`dell9020mt_nri_12mb`, `dell9020sff_nri_12mb`, `e5420_6mb`, `e5520_6mb`, `e5530_12mb`, `e6220_10mb`, `e6230_12mb`, `e6320_10mb`, `e6330_12mb`, `e6420_10mb`, `e6430_12mb`, `e6520_10mb`, `e6530_12mb`, `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8200sff_4mb`, `hp8200sff_8mb`, `hp820g2_12mb`, `hp8300cmt_16mb`, `hp8300usdt_16mb`, `hp8460pintel_8mb`, `hp8470pintel_16mb`, `hp8560w_8mb`, `hp9470m_16mb`, `t1650_12mb`, `t420_8mb`, `t420s_8mb`, `t430_12mb`, `t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230t_12mb`, `x230t_16mb`, `dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb`, `t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb` As stated, Libreboot provides this in a state where the ME is no longer a threat to security. It initialises itself, but then does nothing, so it's disabled. This is done using `me_cleaner`. See: +On MEv11-based platforms, such as the ThinkPad T480 and Dell OptiPlex 3050 Micro, +we also use [deguard](docs/install/deguard.md) to disable the Intel Boot Guard. + ### KBC1126 EC firmware (HP laptops): This applies to the following targets: `hp2170p_16mb`, `hp2560p_8mb`, @@ -261,6 +264,14 @@ it during the build process. Libreboot 20230423 onwards does scrub EC firmware and provide functionality in a special script, to insert them with `cbfstool` at the correct offset as defined by coreboot config for each board. +### Intel FSP + +Provides romstage and raminit, used by coreboot on some boards. In Libreboot, +we use it for the following build targets: + +`t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb`, +`dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb` + ### SMSC SCH5545 Environmental Control This is a tiny firmware required for fan control, on Dell Precision T1650. diff --git a/site/freedom-status.uk.md b/site/freedom-status.uk.md index df989c1..1132e8d 100644 --- a/site/freedom-status.uk.md +++ b/site/freedom-status.uk.md @@ -331,13 +331,16 @@ Intel/x86 Нейтралізований ME потрібен на цих цілях: -`dell9020mt_nri_12mb`, `dell9020sff_nri_12mb`, `e5420_6mb`, `e5520_6mb`, `e5530_12mb`, `e6220_10mb`, `e6230_12mb`, `e6320_10mb`, `e6330_12mb`, `e6420_10mb`, `e6430_12mb`, `e6520_10mb`, `e6530_12mb`, `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8200sff_4mb`, `hp8200sff_8mb`, `hp820g2_12mb`, `hp8300cmt_16mb`, `hp8300usdt_16mb`, `hp8460pintel_8mb`, `hp8470pintel_16mb`, `hp8560w_8mb`, `hp9470m_16mb`, `t1650_12mb`, `t420_8mb`, `t420s_8mb`, `t430_12mb`, `t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230t_12mb`, `x230t_16mb` +`dell9020mt_nri_12mb`, `dell9020sff_nri_12mb`, `e5420_6mb`, `e5520_6mb`, `e5530_12mb`, `e6220_10mb`, `e6230_12mb`, `e6320_10mb`, `e6330_12mb`, `e6420_10mb`, `e6430_12mb`, `e6520_10mb`, `e6530_12mb`, `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8200sff_4mb`, `hp8200sff_8mb`, `hp820g2_12mb`, `hp8300cmt_16mb`, `hp8300usdt_16mb`, `hp8460pintel_8mb`, `hp8470pintel_16mb`, `hp8560w_8mb`, `hp9470m_16mb`, `t1650_12mb`, `t420_8mb`, `t420s_8mb`, `t430_12mb`, `t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230t_12mb`, `x230t_16mb`, `dell3050micro_fsp`, `dell3050micro_vfsp_16mb`, `t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb` Як заявлено, Libreboot надає це в стані, де ME більше не є загрозою для безпеки. Він ініціалізує себе, але потім нічого не робить, тому його вимкнено. Це зроблено використовуючи `me_cleaner`. Дивіться: +On MEv11-based platforms, such as the ThinkPad T480 and Dell OptiPlex 3050 Micro, +we also use [deguard](docs/install/deguard.md) to disable the Intel Boot Guard. + ### KBC1126 EC firmware (HP laptops): This applies to the following targets: `hp2170p_16mb`, `hp2560p_8mb`, @@ -352,6 +355,14 @@ it during the build process. Libreboot 20230423 onwards does scrub EC firmware and provide functionality in a special script, to insert them with `cbfstool` at the correct offset as defined by coreboot config for each board. +### Intel FSP + +Provides romstage and raminit, used by coreboot on some boards. In Libreboot, +we use it for the following build targets: + +`t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb`, +`dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb` + ### SMSC SCH5545 Environmental Control This is a tiny firmware required for fan control, on Dell Precision T1650. From 9d018b474a661b8ca3f69843ce4d2c7702435462 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 3 Jan 2025 05:24:44 +0000 Subject: [PATCH 203/399] update the vendorfile injection guide the script was re-written recently, adding a bunch of safety changes. Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 6 - site/docs/install/ivy_has_common.md | 187 +++++++++++++++++++++------- site/docs/install/latitude.md | 2 +- site/docs/install/t420_external.md | 24 +--- site/docs/install/t440p_external.md | 31 +---- site/docs/install/t480.md | 13 ++ site/docs/install/w541_external.md | 32 +---- site/docs/install/x230_external.md | 31 +---- site/docs/maintain/index.md | 3 +- site/news/e6400nvidia.md | 13 ++ 10 files changed, 190 insertions(+), 152 deletions(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index 2b5f9f3..2581234 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -289,12 +289,6 @@ With this re-design, modern lbmk (from Libreboot 20241206 rev8 onward) can still reliably inject Intel ME into the old `_fsp` images, if you already downloaded those before. -Therefore, you must be especially careful to get this right. If you're running -the inject script into a tarball, it will generally detect the right one, but -inserting manually into individual image files is also possible; if you do this, -you must remember to correctly specify `dell3050micro_vfsp_16mb`, -or to specify the `_fsp` targets if you're doing this on older images. - It is extremely unlikely that Intel would have ever cracked down on Libreboot for its previous mistake, since many other projects exist that include FSP directly in coreboot images, even commercially. However, Libreboot wishes to diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 223491c..c7fc9de 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -3,6 +3,13 @@ title: Insert vendor files not included in release images x-toc-enable: true ... +**PLEASE MAKE SURE you read and follow the instructions on this page, prior +to flashing Libreboot, if required for your mainboard; failure to heed this +warning can and will result in a soft-brick, which would then necessitate +recovery via [external flashing](spi.md) - regardless, you are advised to +also read the external flashing guide just in caes, and have an external +flasher handy in case you need it.** + WARNING: eCryptfs file name limits ================================= @@ -45,22 +52,22 @@ on HP EliteBooks), VGA ROMs (e.g. Nvidia GPU ROM for Dell Latitude E6400), and so on. Without these, your machine may not boot correctly, or not boot at all! -The same logic can be used after the fact, to re-download and re-insert these -files; the page that you're reading now will tell you how to do so. +If in doubt, you should simply follow these instructions. If your board +doesn't need vendor files, the tar archive won't be modified. -*If in doubt, just follow these instructions anyway; if your board doesn't need -vendor files inserted, nothing will happen. You only need to follow this guide -if you use release ROMs; if you're building directly from source, using the -Libreboot build system, then you can just flash the result.* +MAC address +----------- -Injecting vendor files ROMs tarball +Regardless of whether your board needs vendorfiles or not, you can also use +this command to change the MAC address on systems with Intel GbE regions in +the flash, where an Intel gigabit ethernet device is used. + +For example, a Lenovo ThinkPad X200 doesn't need any files added, but can still +have the mac address changed; please continue reading! + +Injecting vendor files into tarballs ------------------------------------ -You must determine the correct board name, for your board, based on the list -generated when running this command: - - ./mk -b coreboot list - In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image. If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. @@ -68,51 +75,125 @@ Run the injection script pointing to the release archive you downloaded: ./mk inject libreboot-RELEASE_targetname.tar.xz +Where a GbE region is present in the flash, you can also use the above command +to change the MAC address, by modifying it like so: + + ./mk inject libreboot-RELEASE_targetname.tar.xz setmac + +Note that `setmac`, without additional argument, will *randomise* the MAC +address, setting a *local*, *unicast* MAC address. You can specify a custom +MAC address, like so: + + ./mk inject libreboot-RELEASE_targetname.tar.xz setmac 00:1f:16:00:01:02 + +The above MAC address is a random example; please make sure to use one that matches +your board, if you wish. You can also use randomisation this way; the `?` character +will be randomised, e.g.: + + ./mk inject libreboot-RELEASE_targetname.tar.xz setmac ??:??:??:??:??:?? + +You can mix and match arbitrary characters with random ones, e.g.: + + ./mk inject libreboot-RELEASE_targetname.tar.xz setmac 0?:??:12:?a:6?:69 + The script can automatically detect the board as long as you do not change the file name. -You can then find flash-ready ROMs in `/bin/release/` -*This is the recommended way to do it, injecting into the tarball.* +On Libreboot 20241206 rev8 or newer, releases newer than the 20241206 series, +and in the latest lbmk Git repository branch revisions (`master` branch), the +commands above *directly modify the tarball*. -Injecting vendor files into single ROMs ---------------------------------------- +Older versions left the tarball unmodified, and extracted the modified images +to `bin/release/` - on current behaviour, you inject the tarball and then +extract the tarball yourself afterward, to flash the modified images. -**You are strongly advised only to insert it on the tarball, because then -checksums are verified to ensure that the vendor files were inserted correctly. -Otherwise, you can do it manually on each individual image, specifying the -board name with the instructions provided below:** +Behaviour changes in Libreboot 20241206 rev8 +-------------------------------------------- -**However, when injecting into the tarball in bulk like that, lbmk currently -cannot change the MAC addresses automatically, using the `-m` option mentioned -below.** +*Older* versions of this script would have produced the injected images under +the `bin/release/` directory, and/or allow you to do it on specific ROM images. -**Therefore, if you want to rely on insertion into the tarball, you can just -copy the ROM you want and [change the MAC address manually](nvmutil.md).** +The *current* version, pertaining to this documentation, *only* supports injecting +tarballs, because the tarball-based mechanism verifies checksums on images, +after insertion. -Alternatively, you may patch only a single rom file, but you must supply the -correct board target name as alluded to above. -For example: +The older versions of this script would have left the tarball unmodified, while +producing `bin/release/` containing your images. - ./mk inject -r x230_libreboot.rom -b x230_12mb +The *current* version, pertaining to this documentation, modifies the tarball +itself. You can inject and un-inject. To un-inject, you can do: -Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. -For example: + ./mk inject libreboot-RELEASE_targetname.tar.xz nuke - ./mk inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd +Running the `nuke` command will remove vendorfiles, and re-generate a file inside +the archive named `vendorhashes`. When running regular inject, not `nuke`, +the `vendorfiles` file is removed after insertion; this way, subsequent +injections are avoided, by detecting whether they're needed on the basis of +that file. -You are *strongly* advised to inject the tarballs instead. However, so long as -you're careful, injecting into single ROM images is perfectly safe. Just know -once more that the checksum verification is unavailable in the latter, so you -must absolutely ensure that you specified the correct board with the `-b` -option. +The nuke command is available because Libreboot's build system uses it when +producing release archives. You otherwise shouldn't use `nuke` yourself, except +for testing purposes or if you're just curious. + +Libreboot 20241206 rev8 have different command structure for the inject script. +Older versions could insert into lone ROM images, with a special command, and +generally didn't have good error checking. The new version of this script is +much safer and easier to use. **These changes are also present in the latest +lbmk git repository.** + +ALSO: Non-injected images do, on Libreboot 20241206 rev8 or higher, have 1 byte +of padding - yes, *1 byte* - at the end, to make flashprog fail to flash it due +to size mismatch versus chip size, and the words `DO_NOT_FLASH` are inserted +into the file name. With both of these things, the user is unlikely to flash +an image that hasn't been injected. + +After injection, the `DO_NOT_FLASH` file name prefix is removed, as is the +padding, so that the injected images are ready to flash, and the tarball is +re-generated with these images. + +ALSO: If vendorfiles are not needed, or if an error occurs, modification of +the tarball is avoided and it's left alone, UNLESS the following condition is +met: + +If no errors occured, but no vendor files are needed, you can still inject a +new MAC address, where there is a GbE region. If there isn't a GbE region, +such modification is skipped (some boards don't have Intel gigabit ethernet, +and might have a different ethernet adapter instead). + +When vendor files are inserted and/or a MAC address is inserted, the tarball +is re-generated. MAC address insertion is handled with [nvmutil](nvmutil.md); +the steps there are applied automatically. + +Older release images, prior to 20241206 rev8, do not have `DO_NOT_FLASH` or +the 1-byte padding, so watch out! However, this script, the new version, is +backwards compatible with older releases. + +That's one possible use for the `nuke` command, running it yourself. If you're +distributing the older release images, you could inject them, and then nuke +them; doing so will re-generate the `vendorhashes` file, *and* retroactively +pad them (and add `DO_NOT_FLASH` to the image file names). It would be pointless +for Libreboot to retroactively modify the official images in this way, since +20241206 rev8 and newer already has this done to it. Just be careful when +using the older tarballs. Check that the files were inserted ================================== +Automatic verification +---------------------- + You *must* ensure that the files were inserted. The inject command automatically verifies checksums of the complete images, when you run it directly on a -release tarball, but not when running it manually on an individual image; -checking it manually is useful for the latter, but you should probably just -insert it into the tarball. +release tarball. + +If there was an error, and/or the checksums didn't match, then the tarball won't +be modified. If you're using newer release images with `DO_NOT_FLASH` and +the one-byte padding (as described above), that's a good indicator, but older +release images didn't have this modification. + +Manual inspection +----------------- + +You could check the files manually, if you're paranoid, after insertion. Some examples of how to do that in lbmk: @@ -129,7 +210,15 @@ below): ./elf/cbfstool/TREENAME/cbfstool libreboot.rom print You should check that the files were inserted in cbfs, if needed; for example, -EC firmware or MRC firmware. +EC firmware or MRC firmware, perhaps FSP. + +FSP is redistributable by Intel, but not with modification. Since coreboot has +to de-concatenate FSP into its modules, and modify pointers in the FSP-M module, +for raminit, Libreboot treats FSP modules like other injectable vendor files. + +(in the original 20241206 release, FSP was directly baked in; the change +described above was applied in Libreboot 20241206 and newer, and the 3050micro +image from Libreboot 20241008 was removed from Libreboot's rsync server) Next: @@ -140,16 +229,15 @@ Run hexdump on it: hexdump flashregion_2_intel_me.bin -Check the output. If it's all `0xFF` (all ones) or otherwise isn't a bunch -of code, then the Intel ME firmware wasn't inserted. +Check the output. If it's all `0xFF` (all ones) or zeroes or otherwise isn't a +bunch of code, then the Intel ME firmware wasn't inserted. You could also run +the `me_cleaner` program on this file, to see if it gives you any information, +if you're not savvy enough to look at stuff in hexdump. You'll note the small size of the Intel ME, e.g. 84KB on sandybridge platforms. This is because lbmk *automatically* neuters it, disabling it during early boot. This is done using `me_cleaner`, which lbmk imports. -NOTE: the MAC changer makes use of `nvmutil`, which you can read more about in -the [nvmutil documentation](nvmutil.md). - Errata ====== @@ -166,6 +254,11 @@ raminit. The following targets no longer exist in the build system: * `dell9020mt_12mb` (use `dell9020mt_nri_12mb` instead) * `dell9020mtbmrc` (use `dell9020mt_nri_12mb` instead) +FSP images are also no longer baked in on release images, from +Libreboot 20241206 rev8 or higher (or releases newer than the 20241206 series), +but the machines that use them still need them; they are injected instead, +using the commands shown above on this very page. + This is written as errata because some users may still be using older release images but on the newer build system from May 2024 onward; you must use the Libreboot 20240225 release if you want to inject MRC and so on, for these older @@ -175,3 +268,5 @@ Libreboot's [binary blob reduction policy](../../news/policy.md) is very strict, and states: if a blob can be avoided, it must be avoided. Therefore, the MRC is removed on Haswell and Libreboot will only use the libre raminit (called NRI, short for Native Ram Initialisation). + +The four freedoms are absolute. diff --git a/site/docs/install/latitude.md b/site/docs/install/latitude.md index 67722f6..bccca6a 100644 --- a/site/docs/install/latitude.md +++ b/site/docs/install/latitude.md @@ -47,7 +47,7 @@ Latitude E6400 Vendor files not required for Dell Latitude E6400 if you have the Intel GPU. If you have the Nvidia model, please use the `e6400nvidia_4mb` target, and -make sure to run the inject script. +make sure to run the [inject script](ivy_has_common.md) prior to flashing. E6400 nvidia issues ------------------- diff --git a/site/docs/install/t420_external.md b/site/docs/install/t420_external.md index 9ff3d32..dee8906 100644 --- a/site/docs/install/t420_external.md +++ b/site/docs/install/t420_external.md @@ -18,26 +18,12 @@ The following instructions expect you to have these on hand: Preparing a release Rom ----------------------- -You must patch the release rom with the necessary vendor files *and then* flash it to your board. +**Please follow this prior to flashing, or you may brick your machine.** -In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image. - -If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. -Run the injection script pointing to the release archive you downloaded: - - ./mk inject /path/to/libreboot-20230423_t420_8mb.tar.xz - -The script can automatically detect the board as long as you do not change the file name. -You can then find flash-ready ROMs in `/bin/release/` - -Alternatively, you may patch only a single rom file. - - ./mk inject -r t420_libreboot.rom -b t420_8mb - -Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. -For example: - - ./mk inject -r t420_libreboot.rom -b t420_8mb -m 00:f6:f0:40:71:fd +Please [inject vendor files](ivy_has_common.md) prior to flashing. You can also +use this guide to change the built-in MAC address for your Intel Gigabit +Ethernet device; doing so is advisable, because otherwise you will have a +default, generic MAC address. Disassembly ----------- diff --git a/site/docs/install/t440p_external.md b/site/docs/install/t440p_external.md index b81b5ba..042a751 100644 --- a/site/docs/install/t440p_external.md +++ b/site/docs/install/t440p_external.md @@ -32,33 +32,12 @@ You can now follow the rest of the instructions. Preparing a release Rom ----------------------- -You must patch the release rom with the necessary vendor files *and then* flash it to your board. +**Please follow this prior to flashing, or you may brick your machine.** -Lbmk includes a script that will automatically inject the necessary files into a rom file. -The script can determine the board automatically if you have not changed the name, but you can also manually set the board name with the `-b` flag. - -In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image. - -If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. -Run the injection script pointing to the release archive you downloaded: - - ./mk inject /path/to/libreboot-RELEASE_targetname.tar.xz - -The script can automatically detect the board as long as you do not change the file name. -You can then find flash-ready ROMs in `/bin/release/` - -Alternatively, you may patch only a single rom file. -For example: - - ./mk inject -r t440p_libreboot.rom -b t440plibremrc_12mb - -Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. -For example: - - ./mk inject -r t440p_libreboot.rom -b t440plibremrc_12mb -m 00:f6:f0:40:71:fd - -NOTE: this makes use of `nvmutil`, which you can read more about in -the [nvmutil documentation](nvmutil.md). +Please [inject vendor files](ivy_has_common.md) prior to flashing. You can also +use this guide to change the built-in MAC address for your Intel Gigabit +Ethernet device; doing so is advisable, because otherwise you will have a +default, generic MAC address. Splitting The Rom ----------------- diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index eada576..8cd01ba 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -87,6 +87,16 @@ This port is implemented in Libreboot by merging Mate Kukri's T480/T480s patchset. See: - as of 5 December 2024, Libreboot's code matches that of patchset 22. +Preparing a release Rom +----------------------- + +**Please follow this prior to flashing, or you may brick your machine.** + +Please [inject vendor files](ivy_has_common.md) prior to flashing. You can also +use this guide to change the built-in MAC address for your Intel Gigabit +Ethernet device; doing so is advisable, because otherwise you will have a +default, generic MAC address. + Absolutely unsigned Intel ME! ----------------------------- @@ -701,6 +711,9 @@ for details as to how to fix this. Intel FSP copyright =================== +If you just want to inject Intel FSP and ME into your image, ready for +flashing, please read [the guide](ivy_has_common.md). + Abstract -------- diff --git a/site/docs/install/w541_external.md b/site/docs/install/w541_external.md index 83eed5a..49e378b 100644 --- a/site/docs/install/w541_external.md +++ b/site/docs/install/w541_external.md @@ -35,33 +35,12 @@ You can now follow the rest of the instructions. Preparing a release Rom ----------------------- -You must patch the release rom with the necessary vendor files *and then* flash it to your board. +**Please follow this prior to flashing, or you may brick your machine.** -Lbmk includes a script that will automatically inject the necessary files into a rom file. -The script can determine the board automatically if you have not changed the name, but you can also manually set the board name with the `-b` flag. - -In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image. - -If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. -Run the injection script pointing to the release archive you downloaded: - - ./mk inject /path/to/libreboot-RELEASE_targetname.tar.xz - -The script can automatically detect the board as long as you do not change the file name. -You can then find flash-ready ROMs in `/bin/release/` - -Alternatively, you may patch only a single rom file. -For example: - - ./mk inject -r w541_libreboot.rom -b w541_12mb - -Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. -For example: - - ./mk inject -r w541_libreboot.rom -b w541_12mb -m 00:f6:f0:40:71:fd - -NOTE: this makes use of `nvmutil`, which you can read more about in -the [nvmutil documentation](nvmutil.md). +Please [inject vendor files](ivy_has_common.md) prior to flashing. You can also +use this guide to change the built-in MAC address for your Intel Gigabit +Ethernet device; doing so is advisable, because otherwise you will have a +default, generic MAC address. Splitting The Rom ----------------- @@ -76,7 +55,6 @@ Flash the top chip with top.rom, and tho bottom chip with bottom.rom. Don't worry about knowing which chip is which on a standard setup; flashprog will let you know if the image size is incorrect for the chip you're flashing. - Disassembly ----------- diff --git a/site/docs/install/x230_external.md b/site/docs/install/x230_external.md index 67bec81..aa4bf27 100644 --- a/site/docs/install/x230_external.md +++ b/site/docs/install/x230_external.md @@ -30,31 +30,12 @@ You can now follow the rest of the instructions. Preparing a release Rom ----------------------- -You must patch the release rom with the necessary vendor files *and then* flash it to your board. +**Please follow this prior to flashing, or you may brick your machine.** -Lbmk includes a script that will automatically inject the necessary files into a rom image. -The script can determine the board automatically if you have not changed the name, but you can also manually set the board name with the `-b` flag. - -In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image. -Run the injection script pointing to the release archive you downloaded: - - ./mk inject /path/to/libreboot-20230319-18-g9f76c92_t440_12mb.tar.xz - -The script can automatically detect the board as long as you do not change the file name. -You can then find flash-ready ROMs in `/bin/release/` - -Alternatively, you may patch only a single rom file. -For example: - - ./mk inject -r x230_libreboot.rom -b x230_12mb - -Optionally, you can use this script to modify the mac address of the rom with the `-m` flag. -For example: - - ./mk inject -r x230_libreboot.rom -b x230_12mb -m 00:f6:f0:40:71:fd - -NOTE: this makes use of `nvmutil`, which you can read more about in -the [nvmutil documentation](nvmutil.md). +Please [inject vendor files](ivy_has_common.md) prior to flashing. You can also +use this guide to change the built-in MAC address for your Intel Gigabit +Ethernet device; doing so is advisable, because otherwise you will have a +default, generic MAC address. Splitting The Rom ----------------- @@ -69,8 +50,6 @@ Flash the top chip with top.rom, and tho bottom chip with bottom.rom. Don't worry about knowing which chip is which on a standard setup; flashprog will let you know if the image size is incorrect for the chip you're flashing. - - Disassembly ----------- diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index c5519dd..a72d70e 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -1497,7 +1497,8 @@ Helper functions for downloading and injecting vendor files. How to use: ./mk inject ARGUMENTS ./mk -d coreboot TARGET -Refer elsewhere in the documentation for how to handle vendor files. +Refer elsewhere in the documentation for how to handle vendor files, and/or +read [the guide](../install/ivy_has_common.md). script/ ======= diff --git a/site/news/e6400nvidia.md b/site/news/e6400nvidia.md index 348e076..d65b4a3 100644 --- a/site/news/e6400nvidia.md +++ b/site/news/e6400nvidia.md @@ -31,6 +31,19 @@ than Libreboot 20231021 only support the Intel GPU variant.** The 6400 XFR testing+photo was provided, courtesy Mark Cornick (`mcornick` on Libreboot IRC). +Preparing a release Rom +----------------------- + +NOTE: Not strictly required on Intel graphics models, but still useful for +changing the MAC address. + +**Please follow this prior to flashing, or you may brick your machine.** + +Please [inject vendor files](ivy_has_common.md) prior to flashing. You can also +use this guide to change the built-in MAC address for your Intel Gigabit +Ethernet device; doing so is advisable, because otherwise you will have a +default, generic MAC address. + Dell Latitude E6400 with Nvidia GPU =================================== From 12b4f64b1b6a5495dc74870de3cbda8f8d78d1fc Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 3 Jan 2025 06:58:04 +0000 Subject: [PATCH 204/399] further cleanup i moved the section about fsp injection to the actual vendor inject guide and i've generally cleaned up the documentation Signed-off-by: Leah Rowe --- site/docs/build/index.md | 5 +- site/docs/build/index.uk.md | 5 +- site/docs/install/d945gclf.md | 6 +-- site/docs/install/dell3050.md | 64 ++--------------------- site/docs/install/dell7010.md | 6 +-- site/docs/install/dell780.md | 8 +-- site/docs/install/dell9020.md | 8 +-- site/docs/install/ga-g41m-es2l.md | 6 +-- site/docs/install/hp2170p.md | 6 +-- site/docs/install/hp8200sff.md | 6 +-- site/docs/install/hp820g2.md | 6 +-- site/docs/install/hp8460p.md | 6 +-- site/docs/install/hp8470p.md | 6 +-- site/docs/install/hp8560w.md | 6 +-- site/docs/install/ich9utils.md | 3 +- site/docs/install/ivy_has_common.md | 78 +++++++++++++++++++++++++++-- site/docs/install/kfsn4-dre.md | 6 +-- site/docs/install/macbook21.md | 6 +-- site/docs/install/r400.md | 6 +-- site/docs/install/t1650.md | 6 +-- site/docs/install/t400.md | 6 +-- site/docs/install/t480.md | 73 ++------------------------- site/docs/install/t500.md | 6 +-- site/docs/install/x200.md | 6 +-- site/faq.md | 4 ++ site/faq.uk.md | 6 +++ site/news/audit3.md | 2 +- site/news/libreboot20231021.md | 4 +- site/news/libreboot20240126.md | 2 +- site/news/libreboot20240612.md | 10 ++-- site/news/policy.de.md | 4 +- site/news/policy.md | 6 +-- site/news/safety.md | 43 +++++++++++++++- site/tasks/index.md | 2 +- 34 files changed, 208 insertions(+), 215 deletions(-) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index 8508c9a..201c455 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -9,9 +9,8 @@ WARNING: eCryptfs file name limits Do not run the build system on a eCryptfs file system, because it has very short file name limits and Libreboot's build system deals with very long file names. We commonly get reports from this by Linux Mint users -who encrypt their home directory with cryptfs; use a serious distro like -Debian or Arch please. And use a decent file system; ZFS or perhaps LUKS -with btrfs will do nicely. +who encrypt their home directory with eCryptfs; regular LUKS encryption will +do nicely. Introduction ============ diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index 21f727c..a1cca95 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -9,9 +9,8 @@ WARNING: eCryptfs file name limits Do not run the build system on a eCryptfs file system, because it has very short file name limits and Libreboot's build system deals with very long file names. We commonly get reports from this by Linux Mint users -who encrypt their home directory with cryptfs; use a serious distro like -Debian or Arch please. And use a decent file system; ZFS or perhaps LUKS -with btrfs will do nicely. +who encrypt their home directory with eCryptfs; regular LUKS encryption will +do nicely. Introduction ============ diff --git a/site/docs/install/d945gclf.md b/site/docs/install/d945gclf.md index d1aad19..7254918 100644 --- a/site/docs/install/d945gclf.md +++ b/site/docs/install/d945gclf.md @@ -24,12 +24,12 @@ x-toc-enable: true | **Flash chip** | SOIC-8 512KiB | ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | Notes | diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index 2581234..7bb6198 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -28,12 +28,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ?: UNKNOWN AT THIS TIME ``` @@ -237,61 +237,3 @@ SMT is rarely of benefit in practise, but can be useful in some circumstances. For example, if you're compiling a large codebase from source that takes hours, SMT increases the building speed by about 15 percent; for example, a 3 hour build job might take about 2 hours and 40 minutes instead. - -Intel FSP copyright -=================== - -Abstract --------- - -The initial Libreboot 20241206 release included Intel FSP directly inside the -ROM images. Intel provides the FSP under a license which states (and I -paraphrase): you must not modify it, but you can redistribute it freely, so -long as the license notice is retained. - -The FSP is a concatenation of three modules: FSP-T, FSP-S and FSP-M. T basically -does CAR, S is essentially romstage components, and M is raminit. Due to how -coreboot works, these components must be split into single components. Coreboot -doesn't use T by default (it implements CAR itself), but has the option to -use it. It will use M and S, only. - -Technically, the process of splitting FSP into these three files counts as -a modification. Furthermore, coreboot also rebases the M module by modifying -certain pointers, so that it can integrate with coreboot to provide raminit. - -Intel *themselves* own the copyright to the tool for splitting FSP, -at `3rdparty/fsp/Tools/SplitFspBin.py`, and it seems that they do intend for -the FSP to be used this way. However, until now, those using the Intel FSP -have built coreboot images from source, so the issue of modified distributions -didn't come up. - -By the strictest possible interpretation of Intel's licensing, Libreboot was -technically in violation. To mitigate this, Libreboot 20241206 *revision 8* and -newer, will no longer include the Intel FSP inside images. Instead, the vendor -inject script is used for inserting the FSP into release images, which is what -we already do for several other components. - -`_fsp` vs `_vfsp` targets -------------------------- - -The original 20241206 release images had `_fsp` in the file name. From rev8 -onward, `_vfsp` is specified instead. - -Libreboot's inject script verifies checksums on files, when inserting into the -images. Because of this, if we inject FSP after the fact, that means anyone -using the old images will find errors when they try. - -To mitigate this, the build targets containing `_fsp` in the name have been -retained, but these targets are set `release="n"` so that no ROM images are -provided in releases. The `_vfsp` images are provided pre-compiled, instead. - -With this re-design, modern lbmk (from Libreboot 20241206 rev8 onward) can still -reliably inject Intel ME into the old `_fsp` images, if you already downloaded -those before. - -It is extremely unlikely that Intel would have ever cracked down on Libreboot -for its previous mistake, since many other projects exist that include FSP -directly in coreboot images, even commercially. However, Libreboot wishes to -respect Intel's license, in the -most [technically correct](https://www.youtube.com/watch?v=0ZEuWJ4muYc) way -possible. diff --git a/site/docs/install/dell7010.md b/site/docs/install/dell7010.md index dc4fb1e..08a1d44 100644 --- a/site/docs/install/dell7010.md +++ b/site/docs/install/dell7010.md @@ -33,12 +33,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ?: UNKNOWN AT THIS TIME ``` diff --git a/site/docs/install/dell780.md b/site/docs/install/dell780.md index 1772b11..22e4a37 100644 --- a/site/docs/install/dell780.md +++ b/site/docs/install/dell780.md @@ -29,12 +29,12 @@ Dell OptiPlex 780 ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ?: UNKNOWN AT THIS TIME ``` @@ -78,7 +78,7 @@ lack `_truncate` in the file name. 100% FREE ========= -This mainboard does not rely on any binary blobs in the flash. It is using +This mainboard is entirely free software in the main boot flash. It is using the Intel X4X / ICH10 platform, same as on the already supported Gigabyte GA-G41M-ES2L mainboard. diff --git a/site/docs/install/dell9020.md b/site/docs/install/dell9020.md index a573869..e1baa8a 100644 --- a/site/docs/install/dell9020.md +++ b/site/docs/install/dell9020.md @@ -37,12 +37,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ?: UNKNOWN AT THIS TIME ``` @@ -84,7 +84,7 @@ Please note however that the native raminit (libre raminit) provided by Libreboot does not yet support ECC. You *may* be able to use ECC modules, but you won't actually have functioning ECC. -ECC support currently requires `mrc.bin`, which is a blob for raminit. +ECC support currently requires `mrc.bin`, which is vendor firmware for raminit. Libreboot removed this some time ago, instead favouring only the libre raminit. Patches are welcome, otherwise you can use an older revision of Libreboot with `mrc.bin` if you need ECC; it's unknown whether both the Haswell and diff --git a/site/docs/install/ga-g41m-es2l.md b/site/docs/install/ga-g41m-es2l.md index a1398cf..ecf1fa7 100644 --- a/site/docs/install/ga-g41m-es2l.md +++ b/site/docs/install/ga-g41m-es2l.md @@ -24,12 +24,12 @@ GA-G41M-ES2L | **Flash chip** | 2x8Mbit | ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | diff --git a/site/docs/install/hp2170p.md b/site/docs/install/hp2170p.md index 90c233b..a1e53f1 100644 --- a/site/docs/install/hp2170p.md +++ b/site/docs/install/hp2170p.md @@ -30,12 +30,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | diff --git a/site/docs/install/hp8200sff.md b/site/docs/install/hp8200sff.md index 7e00111..83239e2 100644 --- a/site/docs/install/hp8200sff.md +++ b/site/docs/install/hp8200sff.md @@ -26,12 +26,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** | **Flash chip** | SOIC-8 8MiB | ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | diff --git a/site/docs/install/hp820g2.md b/site/docs/install/hp820g2.md index afd6454..e8da1b2 100644 --- a/site/docs/install/hp820g2.md +++ b/site/docs/install/hp820g2.md @@ -35,12 +35,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | diff --git a/site/docs/install/hp8460p.md b/site/docs/install/hp8460p.md index 414a78e..f4a7c22 100644 --- a/site/docs/install/hp8460p.md +++ b/site/docs/install/hp8460p.md @@ -31,12 +31,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | diff --git a/site/docs/install/hp8470p.md b/site/docs/install/hp8470p.md index 85afd7f..0997c8b 100644 --- a/site/docs/install/hp8470p.md +++ b/site/docs/install/hp8470p.md @@ -31,12 +31,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | diff --git a/site/docs/install/hp8560w.md b/site/docs/install/hp8560w.md index e5a261a..ebd7eca 100644 --- a/site/docs/install/hp8560w.md +++ b/site/docs/install/hp8560w.md @@ -31,12 +31,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | diff --git a/site/docs/install/ich9utils.md b/site/docs/install/ich9utils.md index 2be3496..20c2625 100644 --- a/site/docs/install/ich9utils.md +++ b/site/docs/install/ich9utils.md @@ -10,7 +10,8 @@ can modify the ifd file with coreboot's ifdtool. You can use nvmutil to modify the GbE NVM MAC address** **If all you want to do is change the MAC address, you might use `nvmutil` -instead. See: [nvmutil documentation](../install/nvmutil.md).** +instead. See: [nvmutil documentation](../install/nvmutil.md), or use +the [inject script](ivy_has_common.md).** The documentation below is *still valid*, if you actually want to use ich9utils. You can find it in older Libreboot releases, up to Libreboot 20230625. The only diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index c7fc9de..ee877d1 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -10,15 +10,18 @@ recovery via [external flashing](spi.md) - regardless, you are advised to also read the external flashing guide just in caes, and have an external flasher handy in case you need it.** +Even if your board doesn't need vendor firmware inserted, you can also use this +guide to change the GbE MAC address in the flash, if your board has an Intel +Gigabit Ethernet device (where an Intel Flash Descriptor is used). + WARNING: eCryptfs file name limits ================================= Do not run the build system on a eCryptfs file system, because it has very short file name limits and Libreboot's build system deals with very long file names. We commonly get reports from this by Linux Mint users -who encrypt their home directory with cryptfs; use a serious distro like -Debian or Arch please. And use a decent file system; ZFS or perhaps LUKS -with btrfs will do nicely. +who encrypt their home directory with eCryptfs; regular LUKS encryption will +do nicely. **Install build dependencies first** ================================ @@ -41,7 +44,7 @@ boards, for certain functionalities; we cover this more thoroughly in the [Freedom Status](../../freedom-status.md) page and in the [Binary Blob Reduction Policy](../../news/policy.md). -Libreboot can't directly distribute *all* of these blobs, so some of them are +Libreboot can't directly distribute *all* of these files, so some of them are downloaded at build-time, and processed for insertion into the firmware images. **On pre-compiled ROM images in releases, these files are removed, and can be re-added using the same automation that was applied during the build process.** @@ -238,6 +241,73 @@ You'll note the small size of the Intel ME, e.g. 84KB on sandybridge platforms. This is because lbmk *automatically* neuters it, disabling it during early boot. This is done using `me_cleaner`, which lbmk imports. +Intel FSP copyright +=================== + +If you just want to inject Intel FSP and ME into your image, ready for +flashing, please read [the guide](ivy_has_common.md). + +Abstract +-------- + +The initial Libreboot 20241206 release included Intel FSP directly inside the +ROM images. Intel provides the FSP under a license which states (and I +paraphrase): you must not modify it, but you can redistribute it freely, so +long as the license notice is retained. + +The FSP is a concatenation of three modules: FSP-T, FSP-S and FSP-M. T basically +does CAR, S is essentially romstage components, and M is raminit. Due to how +coreboot works, these components must be split into single components. Coreboot +doesn't use T by default (it implements CAR itself), but has the option to +use it. It will use M and S, only. + +Technically, the process of splitting FSP into these three files counts as +a modification. Furthermore, coreboot also rebases the M module by modifying +certain pointers, so that it can integrate with coreboot to provide raminit. + +Intel *themselves* own the copyright to the tool for splitting FSP, +at `3rdparty/fsp/Tools/SplitFspBin.py`, and it seems that they do intend for +the FSP to be used this way. However, until now, those using the Intel FSP +have built coreboot images from source, so the issue of modified distributions +didn't come up. + +By the strictest possible interpretation of Intel's licensing, Libreboot was +technically in violation. To mitigate this, Libreboot 20241206 *revision 8* and +newer, will no longer include the Intel FSP inside images. Instead, the vendor +inject script is used for inserting the FSP into release images, which is what +we already do for several other components. + +`_fsp` vs `_vfsp` targets +------------------------- + +The original 20241206 release images had `_fsp` in the file name. From rev8 +onward, `_vfsp` is specified instead. + +Libreboot's inject script verifies checksums on files, when inserting into the +images. Because of this, if we inject FSP after the fact, that means anyone +using the old images will find errors when they try. + +To mitigate this, the build targets containing `_fsp` in the name have been +retained, but these targets are set `release="n"` so that no ROM images are +provided in releases. The `_vfsp` images are provided pre-compiled, instead. + +With this re-design, modern lbmk (from Libreboot 20241206 rev8 onward) can still +reliably inject Intel ME into the old `_fsp` images, if you already downloaded +those before. + +Therefore, you must be especially careful to get this right. If you're running +the inject script into a tarball, it will generally detect the right one, but +inserting manually into individual image files is also possible; if you do this, +you must remember to correctly specify `t480_vfsp_16mb` or `t480s_vfsp_16mb`, +or to specify the `_fsp` targets if you're doing this on older images. + +It is extremely unlikely that Intel would have ever cracked down on Libreboot +for its previous mistake, since many other projects exist that include FSP +directly in coreboot images, even commercially. However, Libreboot wishes to +respect Intel's license, in the +most [technically correct](https://www.youtube.com/watch?v=0ZEuWJ4muYc) way +possible. + Errata ====== diff --git a/site/docs/install/kfsn4-dre.md b/site/docs/install/kfsn4-dre.md index 21c979d..d5e854a 100644 --- a/site/docs/install/kfsn4-dre.md +++ b/site/docs/install/kfsn4-dre.md @@ -24,12 +24,12 @@ x-toc-enable: true | **Flash chip** | PLCC 1MiB (Upgradable to 2MiB) | ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | diff --git a/site/docs/install/macbook21.md b/site/docs/install/macbook21.md index 3be1fb5..52e2cac 100644 --- a/site/docs/install/macbook21.md +++ b/site/docs/install/macbook21.md @@ -27,12 +27,12 @@ x-toc-enable: true | **Flash chip** | SOIC-8 2MiB (Upgradable to 16MiB) | ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | diff --git a/site/docs/install/r400.md b/site/docs/install/r400.md index 5c5fa71..875bddb 100644 --- a/site/docs/install/r400.md +++ b/site/docs/install/r400.md @@ -28,12 +28,12 @@ x-toc-enable: true | **Flash chip** | SOIC-8/SOIC-16 4MiB/8MiB (Upgradable to 16MiB) | ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | diff --git a/site/docs/install/t1650.md b/site/docs/install/t1650.md index 6f10b0e..84b410a 100644 --- a/site/docs/install/t1650.md +++ b/site/docs/install/t1650.md @@ -29,12 +29,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ?: UNKNOWN AT THIS TIME ``` diff --git a/site/docs/install/t400.md b/site/docs/install/t400.md index 8af030d..62a67da 100644 --- a/site/docs/install/t400.md +++ b/site/docs/install/t400.md @@ -27,12 +27,12 @@ x-toc-enable: true | **Flash chip** | SOIC-8/SOIC-16/WSON-8 4MiB/8MiB (Upgradable to 16MiB) | ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 8cd01ba..8580165 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -32,12 +32,12 @@ OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ?: UNKNOWN AT THIS TIME ``` @@ -707,70 +707,3 @@ This should also be the case for the T480s. If you encounter this issue, check\ [this page](../../faq.md#thinkpad-acpi) for details as to how to fix this. - -Intel FSP copyright -=================== - -If you just want to inject Intel FSP and ME into your image, ready for -flashing, please read [the guide](ivy_has_common.md). - -Abstract --------- - -The initial Libreboot 20241206 release included Intel FSP directly inside the -ROM images. Intel provides the FSP under a license which states (and I -paraphrase): you must not modify it, but you can redistribute it freely, so -long as the license notice is retained. - -The FSP is a concatenation of three modules: FSP-T, FSP-S and FSP-M. T basically -does CAR, S is essentially romstage components, and M is raminit. Due to how -coreboot works, these components must be split into single components. Coreboot -doesn't use T by default (it implements CAR itself), but has the option to -use it. It will use M and S, only. - -Technically, the process of splitting FSP into these three files counts as -a modification. Furthermore, coreboot also rebases the M module by modifying -certain pointers, so that it can integrate with coreboot to provide raminit. - -Intel *themselves* own the copyright to the tool for splitting FSP, -at `3rdparty/fsp/Tools/SplitFspBin.py`, and it seems that they do intend for -the FSP to be used this way. However, until now, those using the Intel FSP -have built coreboot images from source, so the issue of modified distributions -didn't come up. - -By the strictest possible interpretation of Intel's licensing, Libreboot was -technically in violation. To mitigate this, Libreboot 20241206 *revision 8* and -newer, will no longer include the Intel FSP inside images. Instead, the vendor -inject script is used for inserting the FSP into release images, which is what -we already do for several other components. - -`_fsp` vs `_vfsp` targets -------------------------- - -The original 20241206 release images had `_fsp` in the file name. From rev8 -onward, `_vfsp` is specified instead. - -Libreboot's inject script verifies checksums on files, when inserting into the -images. Because of this, if we inject FSP after the fact, that means anyone -using the old images will find errors when they try. - -To mitigate this, the build targets containing `_fsp` in the name have been -retained, but these targets are set `release="n"` so that no ROM images are -provided in releases. The `_vfsp` images are provided pre-compiled, instead. - -With this re-design, modern lbmk (from Libreboot 20241206 rev8 onward) can still -reliably inject Intel ME into the old `_fsp` images, if you already downloaded -those before. - -Therefore, you must be especially careful to get this right. If you're running -the inject script into a tarball, it will generally detect the right one, but -inserting manually into individual image files is also possible; if you do this, -you must remember to correctly specify `t480_vfsp_16mb` or `t480s_vfsp_16mb`, -or to specify the `_fsp` targets if you're doing this on older images. - -It is extremely unlikely that Intel would have ever cracked down on Libreboot -for its previous mistake, since many other projects exist that include FSP -directly in coreboot images, even commercially. However, Libreboot wishes to -respect Intel's license, in the -most [technically correct](https://www.youtube.com/watch?v=0ZEuWJ4muYc) way -possible. diff --git a/site/docs/install/t500.md b/site/docs/install/t500.md index 78014f8..5226153 100644 --- a/site/docs/install/t500.md +++ b/site/docs/install/t500.md @@ -27,12 +27,12 @@ x-toc-enable: true | **Flash chip** | SOIC-8/SOIC-16/WSON-8 4MiB/8MiB (Upgradable to 16MiB) | ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | diff --git a/site/docs/install/x200.md b/site/docs/install/x200.md index e9ce29d..8c65f11 100644 --- a/site/docs/install/x200.md +++ b/site/docs/install/x200.md @@ -25,12 +25,12 @@ x-toc-enable: true | **Flash chip** | SOIC-8/SOIC-16/WSON-8 4MiB/8MiB (Upgradable to 16MiB) | ``` -W+: Works without blobs; +W+: Works without vendor firmware; N: Doesn't work; -W*: Works with blobs; +W*: Works with vendor firmware; U: Untested; P+: Partially works; -P*: Partially works with blobs +P*: Partially works with vendor firmware ``` | ***Features*** | | diff --git a/site/faq.md b/site/faq.md index bc6c583..8a0e0db 100644 --- a/site/faq.md +++ b/site/faq.md @@ -679,6 +679,10 @@ This may result the following effects, including or not limited to: * Fan speed reporting not working * Fan control not working +**However, enabling it on the ThinkPad T480 may cause the following issues, +as of Libreboot 20241206rev8: it might turn off rfkill making you have to +manually unblock wlan, and the Fn keys through F9 to F12 may stop working.** + For these systems, add the line ``` diff --git a/site/faq.uk.md b/site/faq.uk.md index fb79bdf..dc3d784 100644 --- a/site/faq.uk.md +++ b/site/faq.uk.md @@ -693,6 +693,12 @@ GRUB (наприклад, флеш-накопичувач USB). Для Неможливість виконати modprobe thinkpad\_acpi на Haswell =============================================== +This pertains to ThinkPad T480, T440p and W541. + +**However, enabling it on the ThinkPad T480 may cause the following issues, +as of Libreboot 20241206rev8: it might turn off rfkill making you have to +manually unblock wlan, and the Fn keys through F9 to F12 may stop working.** + Про це повідомив користувач, який використовує Debian 11 з ядром `5.19.0-0.deb11.2-amd64`. Модуль `thinkpad_acpi` не завантажувався з таким повідомленням: diff --git a/site/news/audit3.md b/site/news/audit3.md index 74553ea..12b57c9 100644 --- a/site/news/audit3.md +++ b/site/news/audit3.md @@ -158,7 +158,7 @@ are also repeated below but in more detail: * Don't use the `-B` option in make commands. * Where no-microcode ROM images are provided, ensure that the ROM hashes still match when running the vendor inject script. This is only useful on the - Dell Latitude E6400, which is otherwise blob-free but (in Libreboot) + Dell Latitude E6400, which is otherwise entirely free software but (in Libreboot) comes with or without microcode updates, and with or without the Nvidia VGA ROM (handled by vendor inject/download scripts) for dGPU variants. Verification previously failed, under certain conditions, when inserting that VGA ROM. diff --git a/site/news/libreboot20231021.md b/site/news/libreboot20231021.md index 25ee50a..d8fdb64 100644 --- a/site/news/libreboot20231021.md +++ b/site/news/libreboot20231021.md @@ -303,7 +303,7 @@ logs, combined: * Don't use the `-B` option in make commands. * Where no-microcode ROM images are provided, ensure that the ROM hashes still match when running the vendor inject script. This is only useful on the - Dell Latitude E6400, which is otherwise blob-free but (in Libreboot) + Dell Latitude E6400, which is otherwise 100% free software but (in Libreboot) comes with or without microcode updates, and with or without the Nvidia VGA ROM (handled by vendor inject/download scripts) for dGPU variants. Verification previously failed, under certain conditions, when inserting that VGA ROM. @@ -346,7 +346,7 @@ logs, combined: * Don't support removal of microcode (during release time) on untested targets. Set `microcode_required="y"` on most boards, but leave it set to `"n"` on platfroms such as GM45 (ThinkPad X200/T400, Dell E6400, etc); anything that - can be blob-free, in other words. + can be entirely free software in the main boot flash, in other words. * Improved Dell Latitude E6400 support; the same image now provides iGPU and dGPU support, since it's SeaBIOS-only anyway, so a VGA ROM is inserted into the same ROM that also enables libgfxinit, enabling the Intel or Nvidia GPU diff --git a/site/news/libreboot20240126.md b/site/news/libreboot20240126.md index 9869c12..243b518 100644 --- a/site/news/libreboot20240126.md +++ b/site/news/libreboot20240126.md @@ -221,7 +221,7 @@ changes first): changed to match the 68\* naming scheme. * `config/vendor/sources`: document HP laptop ROM families, for certain models, according to name scheme 68SFC, 68SCE, 68ICE and 68ICF. Some of these boards - iare part of the same families, and use the same blobs. Patch courtesy of + iare part of the same families, and use the same files. Patch courtesy of Riku Viitanen. * `script/build/roms`: remove the `modify_coreboot_rom` function. Fake PIKE2008 ROMs are now inserted by defining option roms in the coreboot config, where diff --git a/site/news/libreboot20240612.md b/site/news/libreboot20240612.md index ed9808c..6a5550d 100644 --- a/site/news/libreboot20240612.md +++ b/site/news/libreboot20240612.md @@ -221,7 +221,7 @@ Feature changes * Print a two-line break before confirming the location of the generated release archive, when running release builds. This makes it more obvious to the operator. -* **Removed the MRC (raminit blob) on Intel Haswell** (4th generation) +* **Removed the MRC (vendor raminit code) on Intel Haswell** (4th generation) hardware, namely the ThinkPad T440p, W541, Dell OptiPlex 9020 MT and Dell OptiPlex 9020 SFF; the libre raminit now works well, and S3 works. * Removed all status checks from script/roms (formerly script/build/roms), @@ -360,7 +360,7 @@ The changes are, from newest to earliest: fixing a bug that was actually triggered, and a preventative bug fix as the original code wasn't correct either, even on AMD64 hosts (where it happened to compile anyway). -* include/vendor.sh: Skip a given blob if the path to it is `/dev/null` - this +* include/vendor.sh: Skip a given file if the path to it is `/dev/null` - this fixes a bug exposed by the previous change two bullet points down (fine grained error control), because VGA ROMs are handled but the KGPE-D16 target mitigates a crash bug when PIKE2008's option ROM is executed by SeaBIOS, by @@ -619,7 +619,7 @@ these changes relative to the old one: * 192e23b7 vbe: implement function 09h (get/set palette data) * 3722c21d vgasrc: round up save/restore size * 5d87ff25 vbe: Add VBE 2.0+ OemData field to struct vbe_info -* 163fd9f0 fix smbios blob length overflow +* 163fd9f0 fix smbios data length overflow * 82faf1d5 Add LBA 64bit support for reads beyond 2TB. * 3f082f38 Add AHCI Power ON + ICC_ACTIVE into port setup code * 3ae88886 esp-scsi: terminate DMA transfer when ESP data transfer completes @@ -802,7 +802,7 @@ The latest changes are listed first, going all the way down to earlier changes: * | f6cbc501 import nuke() from cbmk cdce8ba70b |/ * 7fbcb7be coreboot t440p/w541: enable nvme in grub_scan_disk -* 47f582d4 ./vendor download: skip if blob path is /dev/null +* 47f582d4 ./vendor download: skip if file path is /dev/null * e7cb10d6 do not allow dashes in coreboot target names * e9b9e825 ./vendor download: more fine-tuned error control * 0dd0dfaf vendor.sh: don't error on main targets @@ -919,7 +919,7 @@ The latest changes are listed first, going all the way down to earlier changes: * 190495d2 disable x301 for next release (for now) * 03fae0cf mrc.sh: remove redundant function extract_ref() * f66ceef6 print two line breaks before confirming release -* cc339741 remove haswell mrc blob (libre raminit stable now) +* cc339741 remove haswell mrc file (libre raminit stable now) * 05fbd392 remove all status checks. only handle release. * 8ba0fd83 git.sh: remove errant comment * d7ce26dc move script/*/* to script/ diff --git a/site/news/policy.de.md b/site/news/policy.de.md index c3b071a..1ad4405 100644 --- a/site/news/policy.de.md +++ b/site/news/policy.de.md @@ -107,9 +107,9 @@ The libreboot project has the following policy: to tell people how to *neuter* the ME, if possible on a given board. The `me_cleaner` program is very useful, and provides a much more secure ME configuration. -* Vendor blobs should *never* be deleted, even if they are unused. In the +* Such vendor files should *never* be deleted, even if they are unused. In the coreboot project, a set of `3rdparty` submodules are available, with vendor - blobs for init tasks on many boards. These must *all* be included in libreboot + files for init tasks on many boards. These must *all* be included in libreboot releases, even if unused. That way, even if the Libreboot build system does not yet integrate support for a given board, someone who downloads libreboot can still make changes to their local version of the build system, if they diff --git a/site/news/policy.md b/site/news/policy.md index 2777c0f..7db07c3 100644 --- a/site/news/policy.md +++ b/site/news/policy.md @@ -98,7 +98,7 @@ The libreboot project has the following policy: to tell people how to *neuter* the ME, if possible on a given board. The `me_cleaner` program is very useful, and provides a much more secure ME configuration. -* Vendor blobs should *never* be deleted, even if they are unused. In the +* Such vendor files should *never* be deleted, even if they are unused. In the coreboot project, a set of `3rdparty` submodules are available, with vendor code for init tasks on many boards. These must *all* be included in libreboot releases, even if unused. That way, even if the Libreboot build system does @@ -154,7 +154,7 @@ examples of how this very policy is implemented in Libreboot: * Newer Intel platforms have Intel ME, which is a coprocessor inside the machine that handles many functions including certain power management, and it can provides useful remote management features with Intel AMT for example. - This is a giant 5MB+ blob in the flash, and the ME has full access to your + This is a giant 5MB+ section in the flash, and the ME has full access to your RAM and other peripherals; more is documented about this in the Libreboot FAQ. On older ME4-based platforms such as Intel GM45 platforms, e.g. ThinkPad X200/T400, we remove the ME firmware entirely from the flash, leaving @@ -170,7 +170,7 @@ examples of how this very policy is implemented in Libreboot: actually run anything. ME Cleaner is required, instead of full removal, because the machines don't boot reliably without at least the BUP/ROMP modules present in flash. -* On Intel Haswell platform (Intel 4th gen), a binary blob is available for +* On Intel Haswell platform (Intel 4th gen), vendor firmware is available for memory controller initialisation, called the Intel *MRC* or System Agent. We previously included this in Libreboot; nowadays, we have free initialisation code written by Angel Pons. The libre code, called NRI (Native RAM diff --git a/site/news/safety.md b/site/news/safety.md index 193213d..ce6e1a9 100644 --- a/site/news/safety.md +++ b/site/news/safety.md @@ -2,6 +2,45 @@ % Leah Rowe % 7 July 2023 +New safety features +=============== + +NOTE: This page is mostly completely obsolete, as of 3 January 2025; changes +made in the vendor inject script for Libreboot 20241206 rev8 or higher (and +releases newer than the 20241206 series) make the script almost completely +safe to use, as described in the section pertaining to this on +the [main guide](../docs/install/ivy_has_common.md). + +To summarise, those new safety features are as follows: + +* Newer release ROMs (20241206rev8 or higher, or releases newer than 20241206 + series) have 1-byte padding on non-inject images, to trigger an error in + flashprog due to a size mismatch versus chip size, and they have the + words `DO_NOT_FLASH` in the image file names. (older release images don't + have this, so watch out) +* Injects directly into the *tarballs*, and replaces the given tarball with + one containing the injected images. Older versions left the tarball + untouched and outputted images to `bin/release/` (directory), whereas many + users wrongly believed they could use the tarball; the new version therefore + adheres accordingly to the user's natural expectation, in this regard. +* Avoids replacing the tarball, where errors are observed, and prints much more + pedantic error messages, to let the user know that they must *stop* and take + note. + +With this in mind, the original article written below is largely obsolete, and +the steps below (which would require extreme over-engineering) are probably not +going to be implemented. + +Now, continue reading the article below, if you wish! + +NOTE: The sections in the article below are *still* important to read, so please +do read it, and note that **you must +still [insert vendor files](../docs/install/ivy_has_common.md) regardless, +prior to Libreboot installation, if required on your board.** + +Article +======= + **Please also follow this guide if using Dell Latitude laptops.** **If unsure, just follow this guide. If you follow this guide on a board that @@ -113,8 +152,8 @@ BIOS region is coreboot. Per the issue page, I intend to implement the following regime in future Libreboot releases, on the affected machines: -* If BIOS region blob-free (no MRC/EC firmware needed): set IFD, GbE and BIOS - regions read-write by default, but lock the ME region. +* BIOS region doesn't need vendor files (no MRC/EC firmware needed): set IFD, + GbE and BIOS regions read-write by default, but lock the ME region. * If BIOS region requires vendor files: set IFD and GbE regions read-write by default, but lock the ME and BIOS regions. diff --git a/site/tasks/index.md b/site/tasks/index.md index c86f27d..4da9ffb 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -1404,7 +1404,7 @@ the way it's configured is very complicated. See: [Vendor file guide](../docs/install/ivy_has_common.html) The way the Libreboot build system works, the Intel ME and other firmware is -automatically downloaded at build time. At release time, blobs such as these +automatically downloaded at build time. At release time, files such as these are deleted, but an extra *insert* script is provided that can provide the same auto-download and auto-insert on release ROMs. From 6ae9714ecfba82c8a2ccae648f29350b5fe40606 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 3 Jan 2025 07:30:12 +0000 Subject: [PATCH 205/399] update links to the inject guide i was linking to the old safety.md article, which then linked to the inject guide, but the safety article is now obsolete, because i implemented a better regime than what was described there. so, i've updated all links to safety.md, replacing them with ivy_has_internal.md Signed-off-by: Leah Rowe --- site/docs/install/dell3050.md | 6 ++++-- site/docs/install/dell7010.md | 6 ++++-- site/docs/install/dell9020.md | 6 ++++-- site/docs/install/hp2170p.md | 6 ++++-- site/docs/install/hp2560p.md | 6 ++++-- site/docs/install/hp2570p.md | 6 ++++-- site/docs/install/hp8200sff.md | 6 ++++-- site/docs/install/hp820g2.md | 6 ++++-- site/docs/install/hp8300usdt.md | 6 ++++-- site/docs/install/hp8460p.md | 6 ++++-- site/docs/install/hp8470p.md | 6 ++++-- site/docs/install/hp8560w.md | 6 ++++-- site/docs/install/hp9470m.md | 6 ++++-- site/docs/install/index.md | 6 ++++-- site/docs/install/ivy_internal.md | 6 ++++-- site/docs/install/latitude.md | 8 ++++---- site/docs/install/spi.md | 6 ++++-- site/docs/install/spi.zh-cn.md | 2 +- site/docs/install/spi_generic.md | 6 ++++-- site/docs/install/t1650.md | 6 ++++-- site/docs/install/t420_external.md | 6 ++++-- site/docs/install/t440p_external.md | 8 +++++--- site/docs/install/t480.md | 6 ++++-- site/docs/install/w541_external.md | 6 ++++-- site/docs/install/x230_external.md | 6 ++++-- site/download.md | 6 ++++-- site/download.uk.md | 6 ++++-- site/news/e6400.uk.md | 6 ++++-- site/news/libreboot20221214.md | 6 ++++-- site/news/libreboot20230319.md | 6 ++++-- site/news/libreboot20230413.md | 6 ++++-- site/news/libreboot20230423.md | 6 ++++-- site/news/libreboot20230625.md | 6 ++++-- site/news/libreboot20231021.md | 6 ++++-- site/news/libreboot20231101.md | 6 ++++-- site/news/libreboot20231106.md | 6 ++++-- site/news/libreboot20240612.md | 6 ++++-- site/news/libreboot20241008.md | 6 ++++-- site/news/libreboot20241206.md | 6 ++++-- 39 files changed, 154 insertions(+), 80 deletions(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index 7bb6198..64aa6b1 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -3,8 +3,10 @@ title: Dell OptiPlex 3050 Micro x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/dell7010.md b/site/docs/install/dell7010.md index 08a1d44..ca5fe95 100644 --- a/site/docs/install/dell7010.md +++ b/site/docs/install/dell7010.md @@ -6,8 +6,10 @@ x-toc-enable: true **This is only for the SFF variant. The MT variant is also supported, but for the MT variant, you must flash the [T1650 ROM image](t1650.md) instead.** -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/dell9020.md b/site/docs/install/dell9020.md index e1baa8a..fb3289f 100644 --- a/site/docs/install/dell9020.md +++ b/site/docs/install/dell9020.md @@ -6,8 +6,10 @@ x-toc-enable: true **NOTE: Dell XE2 MT/SFF are also known to work, using the 9020 images. Same motherboards as the 9020 and 7020.** -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/hp2170p.md b/site/docs/install/hp2170p.md index a1e53f1..9a31bfa 100644 --- a/site/docs/install/hp2170p.md +++ b/site/docs/install/hp2170p.md @@ -3,8 +3,10 @@ title: HP EliteBook 2170p x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/hp2560p.md b/site/docs/install/hp2560p.md index 70fd672..9d37d5b 100644 --- a/site/docs/install/hp2560p.md +++ b/site/docs/install/hp2560p.md @@ -3,8 +3,10 @@ title: HP EliteBook 2560p x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/hp2570p.md b/site/docs/install/hp2570p.md index f187603..2915f7b 100644 --- a/site/docs/install/hp2570p.md +++ b/site/docs/install/hp2570p.md @@ -3,8 +3,10 @@ title: HP EliteBook 2570p x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/hp8200sff.md b/site/docs/install/hp8200sff.md index 83239e2..72a31f4 100644 --- a/site/docs/install/hp8200sff.md +++ b/site/docs/install/hp8200sff.md @@ -3,8 +3,10 @@ title: HP Elite 8200 SFF/MT and 6200 Pro Business x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/hp820g2.md b/site/docs/install/hp820g2.md index e8da1b2..e773b57 100644 --- a/site/docs/install/hp820g2.md +++ b/site/docs/install/hp820g2.md @@ -3,8 +3,10 @@ title: HP EliteBook 820 G2 x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/hp8300usdt.md b/site/docs/install/hp8300usdt.md index 6a3c378..0f23182 100644 --- a/site/docs/install/hp8300usdt.md +++ b/site/docs/install/hp8300usdt.md @@ -3,8 +3,10 @@ title: HP Compaq Elite 8300 USDT x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/hp8460p.md b/site/docs/install/hp8460p.md index f4a7c22..4e86cbd 100644 --- a/site/docs/install/hp8460p.md +++ b/site/docs/install/hp8460p.md @@ -3,8 +3,10 @@ title: HP EliteBook 8460p x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/hp8470p.md b/site/docs/install/hp8470p.md index 0997c8b..5cc00de 100644 --- a/site/docs/install/hp8470p.md +++ b/site/docs/install/hp8470p.md @@ -3,8 +3,10 @@ title: HP EliteBook 8470p x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/hp8560w.md b/site/docs/install/hp8560w.md index ebd7eca..220ea33 100644 --- a/site/docs/install/hp8560w.md +++ b/site/docs/install/hp8560w.md @@ -3,8 +3,10 @@ title: HP EliteBook 8560w x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/hp9470m.md b/site/docs/install/hp9470m.md index 9168f0d..2266ef2 100644 --- a/site/docs/install/hp9470m.md +++ b/site/docs/install/hp9470m.md @@ -3,8 +3,10 @@ title: HP EliteBook Folio 9470m x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 6c141c3..8a538c6 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -14,8 +14,10 @@ the `-r` option in flashprog instead `-w`, to read from the flash.** **SAFETY WARNING!** ==================================================================== -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](../../news/safety.md).**] +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).** **If you're using release ROMs, some files may be missing inside them, and must be added. See: [Inserting Vendor Files](ivy_has_common.md).** diff --git a/site/docs/install/ivy_internal.md b/site/docs/install/ivy_internal.md index 0a5fd0c..7adb989 100644 --- a/site/docs/install/ivy_internal.md +++ b/site/docs/install/ivy_internal.md @@ -3,8 +3,10 @@ title: Ivybridge internal flashing x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).** Ch1p's guide ============ diff --git a/site/docs/install/latitude.md b/site/docs/install/latitude.md index bccca6a..e16fc9a 100644 --- a/site/docs/install/latitude.md +++ b/site/docs/install/latitude.md @@ -10,10 +10,10 @@ instructions on this page. Disable security before flashing ================================ -**[SAFETY WARNING: Always insert vendor files before flashing.](../../news/safety.md), -or look directly at [Injecting Vendor Files](ivy_has_common.md). If you flash -Libreboot without inserting vendor files, you will brick the machine; if you -do, please follow the external flashing instructions linked below.** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).** Please also [disable /dev/mem protection](devmem.md), otherwise flashprog and dell-flash-unlock won't work. You can re-enable the protections after diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index ef47d30..21c6546 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -24,8 +24,10 @@ now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).** This guide will teach you how to use various tools for externally reprogramming a 25xx NOR flash via SPI protocol. This is the most common type of flash IC for diff --git a/site/docs/install/spi.zh-cn.md b/site/docs/install/spi.zh-cn.md index 6cc0784..46b9abb 100644 --- a/site/docs/install/spi.zh-cn.md +++ b/site/docs/install/spi.zh-cn.md @@ -19,7 +19,7 @@ operates Minifree Ltd; sales provide funding for the Libreboot project. Introduction ============ -**[安装之前请先阅读这些指示](../../news/safety.md),否则你的机器可能会成砖:[安全措施](../../news/safety.md)** +**[安装之前请先阅读这些指示](ivy_has_common.md),否则你的机器可能会成砖:[安全措施](ivy_has_common.md)** 本指南将教你怎样使用各种工具,通过 SPI 协议对 25xx NOR flash 进行外部再编程。这是 coreboot 所支持的计算机中,最常见的 flash IC 类型。目前 libreboot 支持的每个系统,基本都使用这种类型的引导 flash;唯一的例外就是 ASUS KFSN4-DRE,它在 PLCC32 芯片座中使用了 LPC flash,你可以在供应商固件启动后,对其进行热切换,然后再内部刷入。十分简单! diff --git a/site/docs/install/spi_generic.md b/site/docs/install/spi_generic.md index 9bd3cd7..cea61cd 100644 --- a/site/docs/install/spi_generic.md +++ b/site/docs/install/spi_generic.md @@ -8,8 +8,10 @@ now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).** There are a plethora of single board computers with which you can flash libreboot to a SOIC chip. Some users might be daunted by the price of a raspberry pi. diff --git a/site/docs/install/t1650.md b/site/docs/install/t1650.md index 84b410a..de439ec 100644 --- a/site/docs/install/t1650.md +++ b/site/docs/install/t1650.md @@ -3,8 +3,10 @@ title: Dell Precision T1650 x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/t420_external.md b/site/docs/install/t420_external.md index dee8906..c053962 100644 --- a/site/docs/install/t420_external.md +++ b/site/docs/install/t420_external.md @@ -3,8 +3,10 @@ title: ThinkPad T420 external flashing x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).** Read the [Ivybridge/Haswell common guide](/docs/install/ivy_has_common.html) if you want more information. Please note, for Thinkpad T420, splitting the rom is not required. The following instructions expect you to have these on hand: diff --git a/site/docs/install/t440p_external.md b/site/docs/install/t440p_external.md index 042a751..2a274f3 100644 --- a/site/docs/install/t440p_external.md +++ b/site/docs/install/t440p_external.md @@ -17,10 +17,12 @@ now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).** -Read the [Ivybridge/Haswell common guide](/docs/install/ivy_has_common.html) if you want more information. +Read the [Ivybridge/Haswell common guide](ivy_has_common.md) if you want more information. All of the following instructions assume that you've cloned lbmk and are operating from the root of that project. To do so, run diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 8580165..f84db6d 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -6,8 +6,10 @@ x-toc-enable: true Libreboot supports both the T480 and T480s variants. It is available in the *Libreboot 20241206* release or later. -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).**
diff --git a/site/docs/install/w541_external.md b/site/docs/install/w541_external.md index 49e378b..097136f 100644 --- a/site/docs/install/w541_external.md +++ b/site/docs/install/w541_external.md @@ -20,8 +20,10 @@ now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).** Read the [Ivybridge/Haswell common guide](/docs/install/ivy_has_common.html) if you want more information. All of the following instructions assume that you've cloned lbmk and are operating from the diff --git a/site/docs/install/x230_external.md b/site/docs/install/x230_external.md index aa4bf27..80bd2c4 100644 --- a/site/docs/install/x230_external.md +++ b/site/docs/install/x230_external.md @@ -11,8 +11,10 @@ now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../../news/safety.md), -OR YOU MIGHT BRICK YOUR MACHINE: [SAFETY PRECAUTIONS](../../news/safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).** NOTE: Internal flashing (from vendor firmware) to Libreboot is possible, on this board, but the steps are a bit more complex than using an external flasher. diff --git a/site/download.md b/site/download.md index e1f42cb..5c6ba07 100644 --- a/site/download.md +++ b/site/download.md @@ -25,8 +25,10 @@ operates Minifree Ltd; sales provide funding for the Libreboot project. Safety warning -------------- -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](news/safety.md).** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](docs/install/ivy_has_common.md), +OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](docs/install/ivy_has_common.md).** GPG signing key --------------- diff --git a/site/download.uk.md b/site/download.uk.md index b001d48..7d55784 100644 --- a/site/download.uk.md +++ b/site/download.uk.md @@ -25,8 +25,10 @@ operates Minifree Ltd; sales provide funding for the Libreboot project. Safety warning -------------- -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](news/safety.md).** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](docs/install/ivy_has_common.md).** Код підпису GPG --------------- diff --git a/site/news/e6400.uk.md b/site/news/e6400.uk.md index eb79c5a..d1fec10 100644 --- a/site/news/e6400.uk.md +++ b/site/news/e6400.uk.md @@ -2,8 +2,10 @@ % Лія Роу % 19 квітня 2023 року -**Please make sure to insert vendor files if using the Nvidia GPU model of -E6400. See: [flash safety](safety.md)** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** Вступ ============ diff --git a/site/news/libreboot20221214.md b/site/news/libreboot20221214.md index 16bb360..35a3039 100644 --- a/site/news/libreboot20221214.md +++ b/site/news/libreboot20221214.md @@ -9,8 +9,10 @@ in 2022. *This* new release, Libreboot 20221214, is released today on December This is marked as a *testing* release, but most/all boards should be fairly stable. -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](safety.md).** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** Build from source ----------------- diff --git a/site/news/libreboot20230319.md b/site/news/libreboot20230319.md index 20ca122..70b5922 100644 --- a/site/news/libreboot20230319.md +++ b/site/news/libreboot20230319.md @@ -7,8 +7,10 @@ See: [Libreboot 20230413 release announcement of 13 April 2023](libreboot20230413.md) - the `t440pmrc_12mb` and `w541mrc_12mb` images have been re-added, in the new release.** -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](safety.md).** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** Introduction ============ diff --git a/site/news/libreboot20230413.md b/site/news/libreboot20230413.md index 657bf91..9e3182b 100644 --- a/site/news/libreboot20230413.md +++ b/site/news/libreboot20230413.md @@ -2,8 +2,10 @@ % Leah Rowe % 13 April 2023 -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](safety.md).** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** Introduction ============ diff --git a/site/news/libreboot20230423.md b/site/news/libreboot20230423.md index 51229e7..a1491ea 100644 --- a/site/news/libreboot20230423.md +++ b/site/news/libreboot20230423.md @@ -2,8 +2,10 @@ % Leah Rowe % 23 April 2023 -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](safety.md).** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** Introduction ============ diff --git a/site/news/libreboot20230625.md b/site/news/libreboot20230625.md index a0539a4..3acdca6 100644 --- a/site/news/libreboot20230625.md +++ b/site/news/libreboot20230625.md @@ -2,8 +2,10 @@ % Leah Rowe % 25 June 2023 -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](safety.md).** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** Introduction ============ diff --git a/site/news/libreboot20231021.md b/site/news/libreboot20231021.md index d8fdb64..f37c461 100644 --- a/site/news/libreboot20231021.md +++ b/site/news/libreboot20231021.md @@ -2,8 +2,10 @@ % Leah Rowe % 21 October 2023 -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](safety.md).** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** Introduction ============ diff --git a/site/news/libreboot20231101.md b/site/news/libreboot20231101.md index e690ef3..0d330be 100644 --- a/site/news/libreboot20231101.md +++ b/site/news/libreboot20231101.md @@ -2,8 +2,10 @@ % Leah Rowe % 1 November 2023 -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](safety.md).** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** Introduction ============ diff --git a/site/news/libreboot20231106.md b/site/news/libreboot20231106.md index b791b3f..3e7a238 100644 --- a/site/news/libreboot20231106.md +++ b/site/news/libreboot20231106.md @@ -2,8 +2,10 @@ % Leah Rowe % 6 November 2023 -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](safety.md).** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** Introduction ============ diff --git a/site/news/libreboot20240612.md b/site/news/libreboot20240612.md index 6a5550d..9c0f3d8 100644 --- a/site/news/libreboot20240612.md +++ b/site/news/libreboot20240612.md @@ -2,8 +2,10 @@ % Leah Rowe % 12 June 2024 -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](safety.md).** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** Introduction ============ diff --git a/site/news/libreboot20241008.md b/site/news/libreboot20241008.md index f3ae86a..370a738 100644 --- a/site/news/libreboot20241008.md +++ b/site/news/libreboot20241008.md @@ -5,8 +5,10 @@ This is a *testing* release, whereas the current stable release on this day is *Libreboot 20240612*. -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](safety.md).** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** Introduction ============ diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index e7fa259..5105762 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -6,8 +6,10 @@ Today's Libreboot 20241206 revision is a *stable release*, whereas the previous testing release was Libreboot 20241008, and the previous stable release was Libreboot 20240612. -**IMPORTANT ADVICE: [PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING/UPDATING -LIBREBOOT](safety.md).** +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** Introduction ============ From ec57019f3eda5e12849287c1e34f6ed1046bbb7c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 3 Jan 2025 08:37:35 +0000 Subject: [PATCH 206/399] remove a pointless link the inject page links to itself! Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index ee877d1..f5b8911 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -244,8 +244,8 @@ early boot. This is done using `me_cleaner`, which lbmk imports. Intel FSP copyright =================== -If you just want to inject Intel FSP and ME into your image, ready for -flashing, please read [the guide](ivy_has_common.md). +A few boards use Intel FSP, for parts of the machine initialisation. More +information is available on the [freedom status](../../freedom-status.md) page. Abstract -------- From 8c2e77e0c742c3d1b7f3f9d78ca15ecf91d2ca75 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 3 Jan 2025 10:20:23 +0000 Subject: [PATCH 207/399] make the text SLIGHTLY smaller on lower res screens, it's a bit too big this is still decent on my 27" 1440p screen with my absolutely properly DPI scaled LXDE setup Signed-off-by: Leah Rowe --- site/global.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/global.css b/site/global.css index 5cd4935..af52c13 100644 --- a/site/global.css +++ b/site/global.css @@ -25,14 +25,14 @@ { html { - font-size: 1.15em; + font-size: 1.10em; } } @media (min-width:110em) { html { - font-size: 1.25em; + font-size: 1.15em; } } From 37c087228750af8b23b9cca4b93115d66dcc0d56 Mon Sep 17 00:00:00 2001 From: Integral Date: Fri, 3 Jan 2025 21:42:00 +0800 Subject: [PATCH 208/399] Fix typo: discrete CPU -> discrete GPU --- site/docs/install/dell7010.md | 2 +- site/docs/install/dell9020.md | 2 +- site/docs/install/t1650.md | 2 +- site/docs/install/t480.md | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/site/docs/install/dell7010.md b/site/docs/install/dell7010.md index ca5fe95..d2cd57d 100644 --- a/site/docs/install/dell7010.md +++ b/site/docs/install/dell7010.md @@ -48,7 +48,7 @@ P*: Partially works with vendor firmware |---------------------------------------------------|----| | **Internal flashing with original boot firmware** | W+ | | **Display (if Intel GPU)** | W+ | -| **Display (discrete CPU, SeaBIOS payload only)** | W* | +| **Display (discrete GPU, SeaBIOS payload only)** | W* | | **Audio** | W+ | | **RAM Init** | W+ | diff --git a/site/docs/install/dell9020.md b/site/docs/install/dell9020.md index fb3289f..00e390c 100644 --- a/site/docs/install/dell9020.md +++ b/site/docs/install/dell9020.md @@ -52,7 +52,7 @@ P*: Partially works with vendor firmware |---------------------------------------------------|----| | **Internal flashing with original boot firmware** | W+ | | **Display (if Intel GPU)** | W+ | -| **Display (discrete CPU, SeaBIOS payload only)** | W* | +| **Display (discrete GPU, SeaBIOS payload only)** | W* | | **Audio** | W+ | | **RAM Init** | W+ | diff --git a/site/docs/install/t1650.md b/site/docs/install/t1650.md index de439ec..3e77a08 100644 --- a/site/docs/install/t1650.md +++ b/site/docs/install/t1650.md @@ -44,7 +44,7 @@ P*: Partially works with vendor firmware |---------------------------------------------------|----| | **Internal flashing with original boot firmware** | W* | | **Display (if Intel GPU)** | W+ | -| **Display (discrete CPU, SeaBIOS payload only)** | W* | +| **Display (discrete GPU, SeaBIOS payload only)** | W* | | **Audio** | W+ | | **RAM Init** | W+ | diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index f84db6d..65310cb 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -47,7 +47,7 @@ P*: Partially works with vendor firmware |---------------------------------------------------|----| | **Internal flashing with original boot firmware** | N | | **Display (if Intel GPU)** | W+ | -| **Display (discrete CPU, SeaBIOS payload only)** | N | +| **Display (discrete GPU, SeaBIOS payload only)** | N | | **Audio** | W+ | | **RAM Init** | W* | From ed08e80f5972ed9e258d275024b356281958106e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 4 Jan 2025 00:20:43 +0000 Subject: [PATCH 209/399] docs/build: mention gcc/gnat version match issue Signed-off-by: Leah Rowe --- site/docs/build/index.md | 27 +++++++++++++++++++++++++++ site/docs/build/index.uk.md | 27 +++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index 201c455..7f6c916 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -22,6 +22,33 @@ libreboot from the available source code. The following document describes how `lbmk` works, and how you can make changes to it: [libreboot maintenance manual](../maintain/) +Debian Trixie/Sid +================= + +Debian Trixie, the testing release as of 3 January 2025, and Debian Sid, +provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and +installs `gcc-13` as a dependency, while `gcc` resolves to `gcc-14` and other +toolchain components correspond to this version. + +The GCC/GNAT versions need to match during build time, so Libreboot's build +system hacks the `PATH` environmental variable, setting up symlinks, matching +GNAT to GCC or GNAT to GCC. When you run `./mk dependencies debian`, you get +GNAT 13 and GCC 14. This seems to make most boards compile; in our testing, the +KGPE-D16 board failed to compile in this configuration. This PATH hack is only +done for compiling the coreboot crossgcc toolchain, and nothing else; after that, +coreboot's toolchain is used. + +For better reliability, you should, after running the dependencies script, +remove `gnat` and install `gnat-14` instead, which is available on this day +of 3 December 2025, but currently marked experimental. When you install +GNAT 14, GNAT 13 is removed but `gnat` (in `PATH`) still won't resolve to +anything. Libreboot *still* accomodates this, detecting and matching the GCC +and GNAT versions, which would in this instance match version 14 between them, +so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x. + +GNAT is used by coreboot, because some of the Intel graphics devices are +initialised natively, with code written in Ada spark (called `libgfxinit`). + MIPS cross compiler =================== diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index a1cca95..fd66a6c 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -30,6 +30,33 @@ libreboot з доступного джерельного коду. Наступний документ описує те, як працює `lbmk`, і як ви можете робити зміни до нього: [керівництво обслуговування libreboot](../maintain/) +Debian Trixie/Sid +================= + +Debian Trixie, the testing release as of 3 January 2025, and Debian Sid, +provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and +installs `gcc-13` as a dependency, while `gcc` resolves to `gcc-14` and other +toolchain components correspond to this version. + +The GCC/GNAT versions need to match during build time, so Libreboot's build +system hacks the `PATH` environmental variable, setting up symlinks, matching +GNAT to GCC or GNAT to GCC. When you run `./mk dependencies debian`, you get +GNAT 13 and GCC 14. This seems to make most boards compile; in our testing, the +KGPE-D16 board failed to compile in this configuration. This PATH hack is only +done for compiling the coreboot crossgcc toolchain, and nothing else; after that, +coreboot's toolchain is used. + +For better reliability, you should, after running the dependencies script, +remove `gnat` and install `gnat-14` instead, which is available on this day +of 3 December 2025, but currently marked experimental. When you install +GNAT 14, GNAT 13 is removed but `gnat` (in `PATH`) still won't resolve to +anything. Libreboot *still* accomodates this, detecting and matching the GCC +and GNAT versions, which would in this instance match version 14 between them, +so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x. + +GNAT is used by coreboot, because some of the Intel graphics devices are +initialised natively, with code written in Ada spark (called `libgfxinit`). + MIPS cross compiler =================== From c3037165691d6d34bcce4b709336fd1d7726346c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 4 Jan 2025 00:25:09 +0000 Subject: [PATCH 210/399] further debian trixie/sid instructions Signed-off-by: Leah Rowe --- site/docs/build/index.md | 10 ++++++++++ site/docs/build/index.uk.md | 10 ++++++++++ 2 files changed, 20 insertions(+) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index 7f6c916..3b176d4 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -49,6 +49,16 @@ so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x. GNAT is used by coreboot, because some of the Intel graphics devices are initialised natively, with code written in Ada spark (called `libgfxinit`). +When updating from Debian stable to Debian Trixie(testing) or Sid, you should +also check for orphaned packages, using `aptitude search '~o'`. Do this, +removing what was leftover from the old release, and make sure to re-run the +Debian dependencies script, but do it like this: + + ./mk dependencies debian --reinstall + +NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may +also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10. + MIPS cross compiler =================== diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index fd66a6c..f6a8bb1 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -57,6 +57,16 @@ so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x. GNAT is used by coreboot, because some of the Intel graphics devices are initialised natively, with code written in Ada spark (called `libgfxinit`). +When updating from Debian stable to Debian Trixie(testing) or Sid, you should +also check for orphaned packages, using `aptitude search '~o'`. Do this, +removing what was leftover from the old release, and make sure to re-run the +Debian dependencies script, but do it like this: + + ./mk dependencies debian --reinstall + +NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may +also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10. + MIPS cross compiler =================== From b6929f8381e99e5d6d647092d1c45ed687eb1bf1 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 4 Jan 2025 00:28:30 +0000 Subject: [PATCH 211/399] further clarification Signed-off-by: Leah Rowe --- site/docs/build/index.md | 1 + site/docs/build/index.uk.md | 1 + 2 files changed, 2 insertions(+) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index 3b176d4..6d35277 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -45,6 +45,7 @@ GNAT 14, GNAT 13 is removed but `gnat` (in `PATH`) still won't resolve to anything. Libreboot *still* accomodates this, detecting and matching the GCC and GNAT versions, which would in this instance match version 14 between them, so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x. +When we tested with this configuration, the KGPE-D16 images also compiled. GNAT is used by coreboot, because some of the Intel graphics devices are initialised natively, with code written in Ada spark (called `libgfxinit`). diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index f6a8bb1..1af1295 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -53,6 +53,7 @@ GNAT 14, GNAT 13 is removed but `gnat` (in `PATH`) still won't resolve to anything. Libreboot *still* accomodates this, detecting and matching the GCC and GNAT versions, which would in this instance match version 14 between them, so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x. +When we tested with this configuration, the KGPE-D16 images also compiled. GNAT is used by coreboot, because some of the Intel graphics devices are initialised natively, with code written in Ada spark (called `libgfxinit`). From 1e117c77af7f60e50d9c56e7b9053e0e4eb01bb4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 4 Jan 2025 03:08:17 +0000 Subject: [PATCH 212/399] docs/build: tidy up debian trixie notes put them later in the guide, so that the user reads the guide in the exact order by which they would follow it. Signed-off-by: Leah Rowe --- site/docs/build/index.md | 108 +++++++++++++++++------------------ site/docs/build/index.uk.md | 111 ++++++++++++++++++------------------ 2 files changed, 111 insertions(+), 108 deletions(-) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index 6d35277..9508b8e 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -22,60 +22,6 @@ libreboot from the available source code. The following document describes how `lbmk` works, and how you can make changes to it: [libreboot maintenance manual](../maintain/) -Debian Trixie/Sid -================= - -Debian Trixie, the testing release as of 3 January 2025, and Debian Sid, -provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and -installs `gcc-13` as a dependency, while `gcc` resolves to `gcc-14` and other -toolchain components correspond to this version. - -The GCC/GNAT versions need to match during build time, so Libreboot's build -system hacks the `PATH` environmental variable, setting up symlinks, matching -GNAT to GCC or GNAT to GCC. When you run `./mk dependencies debian`, you get -GNAT 13 and GCC 14. This seems to make most boards compile; in our testing, the -KGPE-D16 board failed to compile in this configuration. This PATH hack is only -done for compiling the coreboot crossgcc toolchain, and nothing else; after that, -coreboot's toolchain is used. - -For better reliability, you should, after running the dependencies script, -remove `gnat` and install `gnat-14` instead, which is available on this day -of 3 December 2025, but currently marked experimental. When you install -GNAT 14, GNAT 13 is removed but `gnat` (in `PATH`) still won't resolve to -anything. Libreboot *still* accomodates this, detecting and matching the GCC -and GNAT versions, which would in this instance match version 14 between them, -so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x. -When we tested with this configuration, the KGPE-D16 images also compiled. - -GNAT is used by coreboot, because some of the Intel graphics devices are -initialised natively, with code written in Ada spark (called `libgfxinit`). - -When updating from Debian stable to Debian Trixie(testing) or Sid, you should -also check for orphaned packages, using `aptitude search '~o'`. Do this, -removing what was leftover from the old release, and make sure to re-run the -Debian dependencies script, but do it like this: - - ./mk dependencies debian --reinstall - -NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may -also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10. - -MIPS cross compiler -=================== - -Libreboot has support for the Sony PlayStation (PS1/PSX), based on -the PCSX-Redux Open BIOS. If you're doing a full release build, and/or -specifically building the PSX BIOS, you need a MIPS cross compiler. - -Arch-based systems have a mipsel cross compiler available from AUR, and most -Debian-based systems have a mipsel cross compiler in apt; for these, the normal -dependencies installation command will provide them. We know Void Linux and -Fedora don't have a MIPS compiler, for instance. - -If your distro doesn't have the MIPS compiler available, -the [PlayStation](../install/playstation.md) page provides instructions for -manual installation; please do this in addition to the normal dependencies. - Multi-threaded builds ===================== @@ -215,6 +161,60 @@ Technically, any Linux distribution can be used to build libreboot. However, you will have to write your own script for installing build dependencies. +Debian Trixie/Sid +----------------- + +Debian Trixie, the testing release as of 3 January 2025, and Debian Sid, +provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and +installs `gcc-13` as a dependency, while `gcc` resolves to `gcc-14` and other +toolchain components correspond to this version. + +The GCC/GNAT versions need to match during build time, so Libreboot's build +system hacks the `PATH` environmental variable, setting up symlinks, matching +GNAT to GCC or GNAT to GCC. When you run `./mk dependencies debian`, you get +GNAT 13 and GCC 14. This seems to make most boards compile; in our testing, the +KGPE-D16 board failed to compile in this configuration. This PATH hack is only +done for compiling the coreboot crossgcc toolchain, and nothing else; after that, +coreboot's toolchain is used. + +GNAT is used by coreboot, because some of the Intel graphics devices are +initialised natively, with code written in Ada spark (called `libgfxinit`). + +When updating from Debian stable to Debian Trixie(testing) or Sid, you should +also check for orphaned packages, using `aptitude search '~o'`. Do this, +removing what was leftover from the old release, and make sure to re-run the +Debian dependencies script, but do it like this: + + ./mk dependencies debian --reinstall + +For better reliability, you should, after running the dependencies script, +remove `gnat` and install `gnat-14` instead, which is available on this day +of 3 December 2025, but currently marked experimental. When you install +GNAT 14, GNAT 13 is removed but `gnat` (in `PATH`) still won't resolve to +anything. Libreboot *still* accomodates this, detecting and matching the GCC +and GNAT versions, which would in this instance match version 14 between them, +so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x. +When we tested with this configuration, the KGPE-D16 images also compiled. + +NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may +also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10. + +MIPS cross compiler +------------------- + +Libreboot has support for the Sony PlayStation (PS1/PSX), based on +the PCSX-Redux Open BIOS. If you're doing a full release build, and/or +specifically building the PSX BIOS, you need a MIPS cross compiler. + +Arch-based systems have a mipsel cross compiler available from AUR, and most +Debian-based systems have a mipsel cross compiler in apt; for these, the normal +dependencies installation command will provide them. We know Void Linux and +Fedora don't have a MIPS compiler, for instance. + +If your distro doesn't have the MIPS compiler available, +the [PlayStation](../install/playstation.md) page provides instructions for +manual installation; please do this in addition to the normal dependencies. + Next, build ROM images ---------------------- diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index 1af1295..8e8f3e7 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -30,60 +30,6 @@ libreboot з доступного джерельного коду. Наступний документ описує те, як працює `lbmk`, і як ви можете робити зміни до нього: [керівництво обслуговування libreboot](../maintain/) -Debian Trixie/Sid -================= - -Debian Trixie, the testing release as of 3 January 2025, and Debian Sid, -provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and -installs `gcc-13` as a dependency, while `gcc` resolves to `gcc-14` and other -toolchain components correspond to this version. - -The GCC/GNAT versions need to match during build time, so Libreboot's build -system hacks the `PATH` environmental variable, setting up symlinks, matching -GNAT to GCC or GNAT to GCC. When you run `./mk dependencies debian`, you get -GNAT 13 and GCC 14. This seems to make most boards compile; in our testing, the -KGPE-D16 board failed to compile in this configuration. This PATH hack is only -done for compiling the coreboot crossgcc toolchain, and nothing else; after that, -coreboot's toolchain is used. - -For better reliability, you should, after running the dependencies script, -remove `gnat` and install `gnat-14` instead, which is available on this day -of 3 December 2025, but currently marked experimental. When you install -GNAT 14, GNAT 13 is removed but `gnat` (in `PATH`) still won't resolve to -anything. Libreboot *still* accomodates this, detecting and matching the GCC -and GNAT versions, which would in this instance match version 14 between them, -so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x. -When we tested with this configuration, the KGPE-D16 images also compiled. - -GNAT is used by coreboot, because some of the Intel graphics devices are -initialised natively, with code written in Ada spark (called `libgfxinit`). - -When updating from Debian stable to Debian Trixie(testing) or Sid, you should -also check for orphaned packages, using `aptitude search '~o'`. Do this, -removing what was leftover from the old release, and make sure to re-run the -Debian dependencies script, but do it like this: - - ./mk dependencies debian --reinstall - -NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may -also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10. - -MIPS cross compiler -=================== - -Libreboot has support for the Sony PlayStation (PS1/PSX), based on -the PCSX-Redux Open BIOS. If you're doing a full release build, and/or -specifically building the PSX BIOS, you need a MIPS cross compiler. - -Arch-based systems have a mipsel cross compiler available from AUR, and most -Debian-based systems have a mipsel cross compiler in apt; for these, the normal -dependencies installation command will provide them. We know Void Linux and -Fedora don't have a MIPS compiler, for instance. - -If your distro doesn't have the MIPS compiler available, -the [PlayStation](../install/playstation.md) page provides instructions for -manual installation; please do this in addition to the normal dependencies. - Multi-threaded builds ===================== @@ -169,6 +115,63 @@ Check: `config/dependencies/` for list of supported distros. Однак, вам потрібно буде написано свій власний сценарій для встановлення залежностей побудови. +Debian Trixie/Sid +----------------- + +Debian Trixie, the testing release as of 3 January 2025, and Debian Sid, +provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and +installs `gcc-13` as a dependency, while `gcc` resolves to `gcc-14` and other +toolchain components correspond to this version. + +The GCC/GNAT versions need to match during build time, so Libreboot's build +system hacks the `PATH` environmental variable, setting up symlinks, matching +GNAT to GCC or GNAT to GCC. When you run `./mk dependencies debian`, you get +GNAT 13 and GCC 14. This seems to make most boards compile; in our testing, the +KGPE-D16 board failed to compile in this configuration. This PATH hack is only +done for compiling the coreboot crossgcc toolchain, and nothing else; after that, +coreboot's toolchain is used. + +GNAT is used by coreboot, because some of the Intel graphics devices are +initialised natively, with code written in Ada spark (called `libgfxinit`). + +When updating from Debian stable to Debian Trixie(testing) or Sid, you should +also check for orphaned packages, using `aptitude search '~o'`. Do this, +removing what was leftover from the old release, and make sure to re-run the +Debian dependencies script, but do it like this: + + ./mk dependencies debian --reinstall + +For better reliability, you should, after running the dependencies script, +remove `gnat` and install `gnat-14` instead, which is available on this day +of 3 December 2025, but currently marked experimental. When you install +GNAT 14, GNAT 13 is removed but `gnat` (in `PATH`) still won't resolve to +anything. Libreboot *still* accomodates this, detecting and matching the GCC +and GNAT versions, which would in this instance match version 14 between them, +so that `gnat` and `gcc` are both in PATH at build time, resolving to v14.x. +When we tested with this configuration, the KGPE-D16 images also compiled. + +NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may +also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10. + +MIPS cross compiler +------------------- + +Libreboot has support for the Sony PlayStation (PS1/PSX), based on +the PCSX-Redux Open BIOS. If you're doing a full release build, and/or +specifically building the PSX BIOS, you need a MIPS cross compiler. + +Arch-based systems have a mipsel cross compiler available from AUR, and most +Debian-based systems have a mipsel cross compiler in apt; for these, the normal +dependencies installation command will provide them. We know Void Linux and +Fedora don't have a MIPS compiler, for instance. + +If your distro doesn't have the MIPS compiler available, +the [PlayStation](../install/playstation.md) page provides instructions for +manual installation; please do this in addition to the normal dependencies. + +Next, build ROM images +---------------------- + В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати лише одну команду, з свіжого Git clone, для побудови образів ROM: From b11a61c97c5618fc2aa03d3c2e57a8f91b0f8e31 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 4 Jan 2025 15:09:11 +0000 Subject: [PATCH 213/399] ivy_has_common: shorten the FSP section actually, remove it, because it's already mentioned under errata i've expanded the errata section a little bit, so as to convey the same information but more succinctly Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 76 +++-------------------------- 1 file changed, 8 insertions(+), 68 deletions(-) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index f5b8911..88b8ede 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -241,73 +241,6 @@ You'll note the small size of the Intel ME, e.g. 84KB on sandybridge platforms. This is because lbmk *automatically* neuters it, disabling it during early boot. This is done using `me_cleaner`, which lbmk imports. -Intel FSP copyright -=================== - -A few boards use Intel FSP, for parts of the machine initialisation. More -information is available on the [freedom status](../../freedom-status.md) page. - -Abstract --------- - -The initial Libreboot 20241206 release included Intel FSP directly inside the -ROM images. Intel provides the FSP under a license which states (and I -paraphrase): you must not modify it, but you can redistribute it freely, so -long as the license notice is retained. - -The FSP is a concatenation of three modules: FSP-T, FSP-S and FSP-M. T basically -does CAR, S is essentially romstage components, and M is raminit. Due to how -coreboot works, these components must be split into single components. Coreboot -doesn't use T by default (it implements CAR itself), but has the option to -use it. It will use M and S, only. - -Technically, the process of splitting FSP into these three files counts as -a modification. Furthermore, coreboot also rebases the M module by modifying -certain pointers, so that it can integrate with coreboot to provide raminit. - -Intel *themselves* own the copyright to the tool for splitting FSP, -at `3rdparty/fsp/Tools/SplitFspBin.py`, and it seems that they do intend for -the FSP to be used this way. However, until now, those using the Intel FSP -have built coreboot images from source, so the issue of modified distributions -didn't come up. - -By the strictest possible interpretation of Intel's licensing, Libreboot was -technically in violation. To mitigate this, Libreboot 20241206 *revision 8* and -newer, will no longer include the Intel FSP inside images. Instead, the vendor -inject script is used for inserting the FSP into release images, which is what -we already do for several other components. - -`_fsp` vs `_vfsp` targets -------------------------- - -The original 20241206 release images had `_fsp` in the file name. From rev8 -onward, `_vfsp` is specified instead. - -Libreboot's inject script verifies checksums on files, when inserting into the -images. Because of this, if we inject FSP after the fact, that means anyone -using the old images will find errors when they try. - -To mitigate this, the build targets containing `_fsp` in the name have been -retained, but these targets are set `release="n"` so that no ROM images are -provided in releases. The `_vfsp` images are provided pre-compiled, instead. - -With this re-design, modern lbmk (from Libreboot 20241206 rev8 onward) can still -reliably inject Intel ME into the old `_fsp` images, if you already downloaded -those before. - -Therefore, you must be especially careful to get this right. If you're running -the inject script into a tarball, it will generally detect the right one, but -inserting manually into individual image files is also possible; if you do this, -you must remember to correctly specify `t480_vfsp_16mb` or `t480s_vfsp_16mb`, -or to specify the `_fsp` targets if you're doing this on older images. - -It is extremely unlikely that Intel would have ever cracked down on Libreboot -for its previous mistake, since many other projects exist that include FSP -directly in coreboot images, even commercially. However, Libreboot wishes to -respect Intel's license, in the -most [technically correct](https://www.youtube.com/watch?v=0ZEuWJ4muYc) way -possible. - Errata ====== @@ -327,7 +260,14 @@ raminit. The following targets no longer exist in the build system: FSP images are also no longer baked in on release images, from Libreboot 20241206 rev8 or higher (or releases newer than the 20241206 series), but the machines that use them still need them; they are injected instead, -using the commands shown above on this very page. +using the commands shown above on this very page. Older images with FSP baked +directly into release images had `_fsp` in the file names; newer images that +need it to be injected have `_vfsp` in the file name. Releases from Libreboot +20241206 release series at revision 8 or higher, or releases newer than the +20241206 series, no longer include `_fsp` images as they are set `release="n"` +in the build system; these releases include `_vfsp` images instead. Newer +targets added in the future, that need FSP, will also have `_vfsp` in the +file name, for consistency. This is written as errata because some users may still be using older release images but on the newer build system from May 2024 onward; you must use the From 2361a1de72810be49921fadd8f27696f0d88aaab Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 4 Jan 2025 15:12:34 +0000 Subject: [PATCH 214/399] ivy_has_common: Mention deguard there Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 88b8ede..3786fea 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -239,7 +239,9 @@ if you're not savvy enough to look at stuff in hexdump. You'll note the small size of the Intel ME, e.g. 84KB on sandybridge platforms. This is because lbmk *automatically* neuters it, disabling it during -early boot. This is done using `me_cleaner`, which lbmk imports. +early boot. This is done using `me_cleaner`, which lbmk imports. If the platform +uses MEv11 with Intel Boot Guard, the boot guard is automatically disabled +by processing the MEv11 image with Mate Kukri's [deguard](deguard.md) utility. Errata ====== From c587cee2ac9f3e36f36b978da63279e7241ecb2a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 4 Jan 2025 15:34:11 +0000 Subject: [PATCH 215/399] install/nvmutil: Safer cat/de-cat instructions Signed-off-by: Leah Rowe --- site/docs/install/nvmutil.md | 18 +++++++++++++++--- 1 file changed, 15 insertions(+), 3 deletions(-) diff --git a/site/docs/install/nvmutil.md b/site/docs/install/nvmutil.md index 3d1beee..d40e4bf 100644 --- a/site/docs/install/nvmutil.md +++ b/site/docs/install/nvmutil.md @@ -140,7 +140,16 @@ a single-flash setup. In that case, it's recommended to dump both chips, as `spi1.rom` and `spi2.rom`; you can then cat them together: - cat spi1.rom spi2.rom > rom.bin + cat spi1.rom spi2.rom > rom.bin # WARNING: see note below + +**WARNING: After concatenating the files, please ensure that you did so in +the correct order. In `hexdump -C rom.bin` you can check for the Intel Flash +Descriptor near the start of the file, for the bytes `5a a5 f0 0f`. You may +alternatively attempt extraction with `ifdtool -x rom.bin`, adding +the `--platform OPTION` option if needed, based on output from `--help` if +you need to (it lists platform strings for certain newer Intel platforms). If +ifdtool extraction fails, then that is another indication that you did not +cat the files correctly.** If your GbE region is locked (per IFD settings), you can dump and flash it using external flashing equipment. The Libreboot @@ -251,8 +260,11 @@ the `-p internal` parameter to something else. In this situation, you should re-split the file accordingly, if you have a dual-IC flash set, like so: - dd if=rom.bin.new of=spi2.rom bs=1M skip=8 - dd if=rom.bin.new of=spi1.rom bs=1M count=8 + dd if=rom.bin.new of=spi2.rom bs=1M skip=8 # WARNING: see note below + dd if=rom.bin.new of=spi1.rom bs=1M count=8 # WARNING: see note below + +**WARNING: The commands above assume SPI1 is 8MB and SPI2 is 4MB, making 12MB +total. Please adapt accordingly, for your own configuration.** These files would then be flashed externally, separately, using an external programmer. From 08f35ff1b6d5d8a8481a3fecf7c2b44f9a978982 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 4 Jan 2025 15:42:38 +0000 Subject: [PATCH 216/399] tidy up the vendor inject guide some of the wording was a bit long, and there was slight repetition in cases. streamline it a bit more, so that it reads more fluidly Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 37 ++++++++++++++++------------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 3786fea..9656757 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -39,24 +39,21 @@ if your board requires it, otherwise your board simply will not boot.** Introduction ============ -Coreboot is nominally free software, but requires certain vendor code on some -boards, for certain functionalities; we cover this more thoroughly in -the [Freedom Status](../../freedom-status.md) page and in the [Binary Blob -Reduction Policy](../../news/policy.md). +On *some* boards, but certainly not all of them, certain files are required from +the hardware vendor. Libreboot has strict [rules](../../news/policy.md) +governing this, and you can find more information on +the [Freedom Status](../../freedom-status.md) page. Libreboot can't directly distribute *all* of these files, so some of them are downloaded at build-time, and processed for insertion into the firmware images. **On pre-compiled ROM images in releases, these files are removed, and can be re-added using the same automation that was applied during the build process.** -Examples of vendor files can include, for example: Intel ME (disabled after -boot with me\_cleaner), Embedded Controller firmware (e.g. KBC1126 EC firmware -on HP EliteBooks), VGA ROMs (e.g. Nvidia GPU ROM for Dell Latitude E6400), -and so on. Without these, your machine may not boot correctly, or not boot at -all! +Examples of these files can be found on +the [Freedom Status](../../freedom-status.md) page. -If in doubt, you should simply follow these instructions. If your board -doesn't need vendor files, the tar archive won't be modified. +**If in doubt, you should simply follow these instructions. If your board +doesn't need vendor files, the tar archive won't be modified.** MAC address ----------- @@ -246,9 +243,14 @@ by processing the MEv11 image with Mate Kukri's [deguard](deguard.md) utility. Errata ====== +This section should not concern you, if you're using newer Libreboot releases. +This section largely concerns *bugs* which existed in older releases, pertaining +to this documentation, and design changes made accordingly. + NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer -included for Haswell; MRC is a blob for raminit, but we now provide libre -raminit. The following targets no longer exist in the build system: +included for Haswell; MRC is a firmware for raminit, but we now provide native +raminit written by Angel Pons, for the coreboot project. The following targets +no longer exist in the build system: * `t440pmrc_12mb` (use `t440plibremrc_12mb` instead) * `t440pbmrc_12mb` (use `t440plibremrc_12mb` instead) @@ -276,9 +278,10 @@ images but on the newer build system from May 2024 onward; you must use the Libreboot 20240225 release if you want to inject MRC and so on, for these older targets. -Libreboot's [binary blob reduction policy](../../news/policy.md) is very strict, -and states: if a blob can be avoided, it must be avoided. Therefore, the MRC -is removed on Haswell and Libreboot will only use the libre raminit (called -NRI, short for Native Ram Initialisation). +Libreboot's [Binary Blob Reduction Policy](../../news/policy.md) is very strict, +and states: if it can be done with free software exclusively, then it should be +done with free software exclusively. Therefore, the MRC is removed on Haswell +and Libreboot will only use the libre raminit (called NRI, short for Native Ram +Initialisation). The four freedoms are absolute. From e6e952ac11b64f0dddf1beff68f36f07b48396ea Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 4 Jan 2025 17:07:27 +0000 Subject: [PATCH 217/399] docs/build: specify system requirements Signed-off-by: Leah Rowe --- site/docs/build/index.md | 96 +++++++++++++++++++++++++++++-------- site/docs/build/index.uk.md | 57 ++++++++++++++++++++++ 2 files changed, 132 insertions(+), 21 deletions(-) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index 9508b8e..db16e1c 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -15,13 +15,66 @@ do nicely. Introduction ============ -libreboot's build system is named `lbmk`, short for `LibreBoot MaKe`, and this +Libreboot's build system is named `lbmk`, short for `LibreBoot MaKe`, and this document describes how to use it. With this guide, you can know how to compile libreboot from the available source code. The following document describes how `lbmk` works, and how you can make changes to it: [libreboot maintenance manual](../maintain/) +System requirements +=================== + +This concerns system requirements when *building* Libreboot. + +Operating system +---------------- + +Any sensible Linux distribution will do. Libreboot's build system is regularly +testing on all the major distros. Please do report bugs if you encounter +issues. + +Host CPU +-------- + +At least an Intel Core 2 Duo, though we recommend much faster CPUs if building +entire release archives, e.g. quad-core Haswell CPU or better. + +NOTE: x86 boards require an *x86_64* host CPU with appropriate host toolchains +and libraries. We don't yet cross-compile x86 payloads. + +NOTE2: ARM64 mainboards *are* cross compiled, so you can build for AArch64 +machines quite easily, from x86 or ARM64 machines. + +NOTE3: *32-bit* x86 (i686) machines can be used to compile Libreboot, but +MemTest86\+ is only compiled for 64-bit, and not cross compiled, so builds +are disabled when lbmk detects a 32-bit host CPU. + +Memory +------ + +At least 2GB per CPU core, ideally 4GB; for example, 16GB RAM is recommended +if you're compiling an a quad-core CPU. + +NOTE: `XBMK_THREADS` environmental variable defaults to 1 if unset. This sets +the number of build threads, which you should match to the number of cores. +For example, when you're building on a quad-core, do this prior to building: + + export XBMK_THREADS=4 + +Disk space +---------- + +About 20GB bare minimum, if only compiling for 1 board. The sources take up a +lot of space. However, Libreboot is always expanding as it's developed. + +At least 50GB of free disk space is therefor recommended. + +We *actually* recommend 100GB, because Libreboot will also have a Linux distro +in flash on a future release. On our testing, disk I/O does not seem to be a +major bottleneck, so any HDD or SSD will do, but we obviously recommend a +fast NVMe (PCI-E) SSD if you can. + Multi-threaded builds ===================== @@ -51,26 +104,6 @@ This version, if hosted live on libreboot.org, assumes that you are using the `lbmk` git repository, which you can download using the instructions on [the code review page](../../git.md). -A note about documentation (and this page) ------------------------------------------- - -From Libreboot 20231021 onwards, *all* releases (including 20231021) -have `lbwww.git` (the website) and `lbwww-img.git` (images for the website) -archived in the *src* tar archive for that release; older releases were hit -or miss, from 20210522 to 20230625, as to whether they came with documentation; -releases older than 20210522 generally always came with documentation. Modern -Libreboot documentation is written in Markdown (pandoc variant) - -If you're working with *release* documentation, you don't get the full HTML -files (such as the one you're viewing now, if you're reading *this* page in a -web browser), so either read the Markdown files directly, or compile them to -HTML using the [Untitled Static Site Generator](https://untitled.vimuser.org/) -(which is what the Libreboot project uses to generate HTML from those files). - -NOTE: `av.libreboot.org` is hardcoded as the domain name where images are -pointed to, in `lbwww.git`, so you will need to replace these references in -your local version, unless you're happy to just continue using those. - Git === @@ -261,3 +294,24 @@ example want to modify a config, e.g.: Or perhaps add a new board! The maintenance manual will teach you how the Libreboot build system (lbmk) works! + +A note about documentation (and this page) +========================================== + +From Libreboot 20231021 onwards, *all* releases (including 20231021) +have `lbwww.git` (the website) and `lbwww-img.git` (images for the website) +archived in the *src* tar archive for that release; older releases were hit +or miss, from 20210522 to 20230625, as to whether they came with documentation; +releases older than 20210522 generally always came with documentation. Modern +Libreboot documentation is written in Markdown (pandoc variant) + +If you're working with *release* documentation, you don't get the full HTML +files (such as the one you're viewing now, if you're reading *this* page in a +web browser), so either read the Markdown files directly, or compile them to +HTML using the [Untitled Static Site Generator](https://untitled.vimuser.org/) +(which is what the Libreboot project uses to generate HTML from those files). + +NOTE: `av.libreboot.org` is hardcoded as the domain name where images are +pointed to, in `lbwww.git`, so you will need to replace these references in +your local version, unless you're happy to just continue using those. + diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index 8e8f3e7..04223bb 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -3,6 +3,10 @@ title: Побудова з джерельного коду x-toc-enable: true ... +**TODO: This page needs to be re-translated. Much of the newer sections are +still in English, and there may be some differences aside from translation, +versus the English version.** + WARNING: eCryptfs file name limits ================================= @@ -30,6 +34,59 @@ libreboot з доступного джерельного коду. Наступний документ описує те, як працює `lbmk`, і як ви можете робити зміни до нього: [керівництво обслуговування libreboot](../maintain/) +System requirements +=================== + +This concerns system requirements when *building* Libreboot. + +Operating system +---------------- + +Any sensible Linux distribution will do. Libreboot's build system is regularly +testing on all the major distros. Please do report bugs if you encounter +issues. + +Host CPU +-------- + +At least an Intel Core 2 Duo, though we recommend much faster CPUs if building +entire release archives, e.g. quad-core Haswell CPU or better. + +NOTE: x86 boards require an *x86_64* host CPU with appropriate host toolchains +and libraries. We don't yet cross-compile x86 payloads. + +NOTE2: ARM64 mainboards *are* cross compiled, so you can build for AArch64 +machines quite easily, from x86 or ARM64 machines. + +NOTE3: *32-bit* x86 (i686) machines can be used to compile Libreboot, but +MemTest86\+ is only compiled for 64-bit, and not cross compiled, so builds +are disabled when lbmk detects a 32-bit host CPU. + +Memory +------ + +At least 2GB per CPU core, ideally 4GB; for example, 16GB RAM is recommended +if you're compiling an a quad-core CPU. + +NOTE: `XBMK_THREADS` environmental variable defaults to 1 if unset. This sets +the number of build threads, which you should match to the number of cores. +For example, when you're building on a quad-core, do this prior to building: + + export XBMK_THREADS=4 + +Disk space +---------- + +About 20GB bare minimum, if only compiling for 1 board. The sources take up a +lot of space. However, Libreboot is always expanding as it's developed. + +At least 50GB of free disk space is therefor recommended. + +We *actually* recommend 100GB, because Libreboot will also have a Linux distro +in flash on a future release. On our testing, disk I/O does not seem to be a +major bottleneck, so any HDD or SSD will do, but we obviously recommend a +fast NVMe (PCI-E) SSD if you can. + Multi-threaded builds ===================== From 9011218a8eeb7f2f3ea89e605f5331c959267f9c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 4 Jan 2025 17:23:02 +0000 Subject: [PATCH 218/399] move system requirements to docs/maintain/ Signed-off-by: Leah Rowe --- site/docs/build/index.md | 52 ++---------------- site/docs/build/index.uk.md | 52 ++---------------- site/docs/maintain/index.md | 106 ++++++++++++++++++++++++++++++++++++ 3 files changed, 114 insertions(+), 96 deletions(-) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index db16e1c..326308e 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -25,55 +25,11 @@ to it: [libreboot maintenance manual](../maintain/) System requirements =================== -This concerns system requirements when *building* Libreboot. +You must ensure that you have the correct operating system, CPU, RAM, disk space +and so on. -Operating system ----------------- - -Any sensible Linux distribution will do. Libreboot's build system is regularly -testing on all the major distros. Please do report bugs if you encounter -issues. - -Host CPU --------- - -At least an Intel Core 2 Duo, though we recommend much faster CPUs if building -entire release archives, e.g. quad-core Haswell CPU or better. - -NOTE: x86 boards require an *x86_64* host CPU with appropriate host toolchains -and libraries. We don't yet cross-compile x86 payloads. - -NOTE2: ARM64 mainboards *are* cross compiled, so you can build for AArch64 -machines quite easily, from x86 or ARM64 machines. - -NOTE3: *32-bit* x86 (i686) machines can be used to compile Libreboot, but -MemTest86\+ is only compiled for 64-bit, and not cross compiled, so builds -are disabled when lbmk detects a 32-bit host CPU. - -Memory ------- - -At least 2GB per CPU core, ideally 4GB; for example, 16GB RAM is recommended -if you're compiling an a quad-core CPU. - -NOTE: `XBMK_THREADS` environmental variable defaults to 1 if unset. This sets -the number of build threads, which you should match to the number of cores. -For example, when you're building on a quad-core, do this prior to building: - - export XBMK_THREADS=4 - -Disk space ----------- - -About 20GB bare minimum, if only compiling for 1 board. The sources take up a -lot of space. However, Libreboot is always expanding as it's developed. - -At least 50GB of free disk space is therefor recommended. - -We *actually* recommend 100GB, because Libreboot will also have a Linux distro -in flash on a future release. On our testing, disk I/O does not seem to be a -major bottleneck, so any HDD or SSD will do, but we obviously recommend a -fast NVMe (PCI-E) SSD if you can. +System requirements are documented in +the [lbmk maintenance manual](../maintain/#system-requirements). Multi-threaded builds ===================== diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index 04223bb..ed42272 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -37,55 +37,11 @@ libreboot з доступного джерельного коду. System requirements =================== -This concerns system requirements when *building* Libreboot. +You must ensure that you have the correct operating system, CPU, RAM, disk space +and so on. -Operating system ----------------- - -Any sensible Linux distribution will do. Libreboot's build system is regularly -testing on all the major distros. Please do report bugs if you encounter -issues. - -Host CPU --------- - -At least an Intel Core 2 Duo, though we recommend much faster CPUs if building -entire release archives, e.g. quad-core Haswell CPU or better. - -NOTE: x86 boards require an *x86_64* host CPU with appropriate host toolchains -and libraries. We don't yet cross-compile x86 payloads. - -NOTE2: ARM64 mainboards *are* cross compiled, so you can build for AArch64 -machines quite easily, from x86 or ARM64 machines. - -NOTE3: *32-bit* x86 (i686) machines can be used to compile Libreboot, but -MemTest86\+ is only compiled for 64-bit, and not cross compiled, so builds -are disabled when lbmk detects a 32-bit host CPU. - -Memory ------- - -At least 2GB per CPU core, ideally 4GB; for example, 16GB RAM is recommended -if you're compiling an a quad-core CPU. - -NOTE: `XBMK_THREADS` environmental variable defaults to 1 if unset. This sets -the number of build threads, which you should match to the number of cores. -For example, when you're building on a quad-core, do this prior to building: - - export XBMK_THREADS=4 - -Disk space ----------- - -About 20GB bare minimum, if only compiling for 1 board. The sources take up a -lot of space. However, Libreboot is always expanding as it's developed. - -At least 50GB of free disk space is therefor recommended. - -We *actually* recommend 100GB, because Libreboot will also have a Linux distro -in flash on a future release. On our testing, disk I/O does not seem to be a -major bottleneck, so any HDD or SSD will do, but we obviously recommend a -fast NVMe (PCI-E) SSD if you can. +System requirements are documented in +the [lbmk maintenance manual](../maintain/#system-requirements). Multi-threaded builds ===================== diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index a72d70e..211007d 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -69,6 +69,112 @@ Libreboot is [regularly](../../news/audit.md) [audited](../../news/audit2.md). Many people will be shocked by how *small* Libreboot is, at its core. You will be surprised by just how much can be done with so little. Continue reading! +System requirements +=================== + +This concerns system requirements when *building* Libreboot. + +Operating system +---------------- + +Any sensible Linux distribution will do. Libreboot's build system is regularly +testing on all the major distros. Please do report bugs if you encounter +issues. + +Host CPU +-------- + +At least an Intel Core 2 Duo, though we recommend much faster CPUs if building +entire release archives, e.g. quad-core Haswell CPU or better. + +NOTE: x86 boards require an *x86_64* host CPU with appropriate host toolchains +and libraries. We don't yet cross-compile x86 payloads. + +NOTE2: ARM64 mainboards *are* cross compiled, so you can build for AArch64 +machines quite easily, from x86 or ARM64 machines. + +NOTE3: *32-bit* x86 (i686) machines can be used to compile Libreboot, but +MemTest86\+ is only compiled for 64-bit, and not cross compiled, so builds +are disabled when lbmk detects a 32-bit host CPU. + +Memory +------ + +At least 2GB per CPU core, ideally 4GB; for example, 16GB RAM is recommended +if you're compiling an a quad-core CPU. + +NOTE: `XBMK_THREADS` environmental variable defaults to 1 if unset. This sets +the number of build threads, which you should match to the number of cores. +For example, when you're building on a quad-core, do this prior to building: + + export XBMK_THREADS=4 + +Disk space +---------- + +About 20GB bare minimum, if only compiling for 1 board. The sources take up a +lot of space. However, Libreboot is always expanding as it's developed. + +At least 50GB of free disk space is therefor recommended. + +We *actually* recommend 100GB, because Libreboot will also have a Linux distro +in flash on a future release. On our testing, disk I/O does not seem to be a +major bottleneck, so any HDD or SSD will do, but we obviously recommend a +fast NVMe (PCI-E) SSD if you can. +ystem requirements +=================== + +This concerns system requirements when *building* Libreboot. + +Operating system +---------------- + +Any sensible Linux distribution will do. Libreboot's build system is regularly +testing on all the major distros. Please do report bugs if you encounter +issues. + +Host CPU +-------- + +At least an Intel Core 2 Duo, though we recommend much faster CPUs if building +entire release archives, e.g. quad-core Haswell CPU or better. + +NOTE: x86 boards require an *x86_64* host CPU with appropriate host toolchains +and libraries. We don't yet cross-compile x86 payloads. + +NOTE2: ARM64 mainboards *are* cross compiled, so you can build for AArch64 +machines quite easily, from x86 or ARM64 machines. + +NOTE3: *32-bit* x86 (i686) machines can be used to compile Libreboot, but +MemTest86\+ is only compiled for 64-bit, and not cross compiled, so builds +are disabled when lbmk detects a 32-bit host CPU. + +Memory +------ + +At least 2GB per CPU core, ideally 4GB; for example, 16GB RAM is recommended +if you're compiling an a quad-core CPU. + +NOTE: `XBMK_THREADS` environmental variable defaults to 1 if unset. This sets +the number of build threads, which you should match to the number of cores. +For example, when you're building on a quad-core, do this prior to building: + + export XBMK_THREADS=4 + +Disk space +---------- + +About 20GB bare minimum, if only compiling for 1 board. The sources take up a +lot of space. However, Libreboot is always expanding as it's developed. + +At least 50GB of free disk space is therefor recommended. + +We *actually* recommend 100GB, because Libreboot will also have a Linux distro +in flash on a future release. On our testing, disk I/O does not seem to be a +major bottleneck, so any HDD or SSD will do, but we obviously recommend a +fast NVMe (PCI-E) SSD if you can. + + libreboot blob reduction policy ============================ From 00dacd33ef28baf4bceb5aa17f823f0bd8100818 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 4 Jan 2025 17:25:11 +0000 Subject: [PATCH 219/399] remove duplication Signed-off-by: Leah Rowe --- site/docs/maintain/index.md | 53 ------------------------------------- 1 file changed, 53 deletions(-) diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 211007d..668f736 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -121,59 +121,6 @@ We *actually* recommend 100GB, because Libreboot will also have a Linux distro in flash on a future release. On our testing, disk I/O does not seem to be a major bottleneck, so any HDD or SSD will do, but we obviously recommend a fast NVMe (PCI-E) SSD if you can. -ystem requirements -=================== - -This concerns system requirements when *building* Libreboot. - -Operating system ----------------- - -Any sensible Linux distribution will do. Libreboot's build system is regularly -testing on all the major distros. Please do report bugs if you encounter -issues. - -Host CPU --------- - -At least an Intel Core 2 Duo, though we recommend much faster CPUs if building -entire release archives, e.g. quad-core Haswell CPU or better. - -NOTE: x86 boards require an *x86_64* host CPU with appropriate host toolchains -and libraries. We don't yet cross-compile x86 payloads. - -NOTE2: ARM64 mainboards *are* cross compiled, so you can build for AArch64 -machines quite easily, from x86 or ARM64 machines. - -NOTE3: *32-bit* x86 (i686) machines can be used to compile Libreboot, but -MemTest86\+ is only compiled for 64-bit, and not cross compiled, so builds -are disabled when lbmk detects a 32-bit host CPU. - -Memory ------- - -At least 2GB per CPU core, ideally 4GB; for example, 16GB RAM is recommended -if you're compiling an a quad-core CPU. - -NOTE: `XBMK_THREADS` environmental variable defaults to 1 if unset. This sets -the number of build threads, which you should match to the number of cores. -For example, when you're building on a quad-core, do this prior to building: - - export XBMK_THREADS=4 - -Disk space ----------- - -About 20GB bare minimum, if only compiling for 1 board. The sources take up a -lot of space. However, Libreboot is always expanding as it's developed. - -At least 50GB of free disk space is therefor recommended. - -We *actually* recommend 100GB, because Libreboot will also have a Linux distro -in flash on a future release. On our testing, disk I/O does not seem to be a -major bottleneck, so any HDD or SSD will do, but we obviously recommend a -fast NVMe (PCI-E) SSD if you can. - libreboot blob reduction policy ============================ From 43e7f2eff0f5f28103e87037dc28158a9e0e2a8c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 4 Jan 2025 17:31:40 +0000 Subject: [PATCH 220/399] further expand the system requirement info Signed-off-by: Leah Rowe --- site/docs/maintain/index.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 668f736..e411010 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -81,6 +81,27 @@ Any sensible Linux distribution will do. Libreboot's build system is regularly testing on all the major distros. Please do report bugs if you encounter issues. +These distros, specifically, are the *most* well-tested: + +* Debian Linux +* Arch Linux +* Fedora Linux + +NOTE: Some patching is also done for non-glibc-based systems, such as +Alpine Linux, though we currently do not have an automated way to install +build dependencies for these distros. + +NOTE: **Linux** is assumed. BSD systems may work, for parts of the build system, +but BSD systems are currently not well-tested with lbmk. + +**Dependencies** +---------------- + +**Make sure you have dependencies installed!** + +**The [main build guide](../build) will tell you how to install dependencies, +such as GNU toolchains and various libraries.** + Host CPU -------- From a6026556c97d229fb7f43cad10a3d0eee51efbac Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 5 Jan 2025 07:58:32 +0000 Subject: [PATCH 221/399] ivy_has_common: document setmac keep Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 9656757..edc53ca 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -75,6 +75,9 @@ Run the injection script pointing to the release archive you downloaded: ./mk inject libreboot-RELEASE_targetname.tar.xz +**NOTE: As of Libreboot 20241206 rev8 or newer, the above command will behave +the same way as if you declared `setmac` without argument, mentioned below:** + Where a GbE region is present in the flash, you can also use the above command to change the MAC address, by modifying it like so: @@ -86,6 +89,18 @@ MAC address, like so: ./mk inject libreboot-RELEASE_targetname.tar.xz setmac 00:1f:16:00:01:02 +The `setmac` command, without argument, is technically redundant, since MAC +addresses are randomised by default, every time you run the inject script. + +If you wish to *skip* changing the MAC address (not recommended), you can +use the `keep` argument, like so: + + ./mk inject libreboot-RELEASE_targetname.tar.xz setmac keep + +The `setmac` command works by inserting a reference GbE file, contained within +lbmk. The `keep` command makes lbmk *skip* changing your current GbE region; +it does not, for example, restore the reference GbE image from lbmk. + The above MAC address is a random example; please make sure to use one that matches your board, if you wish. You can also use randomisation this way; the `?` character will be randomised, e.g.: From 990f55056394103be65119b38f0e37def16fdcef Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 5 Jan 2025 11:24:54 +0000 Subject: [PATCH 222/399] ivy_has_common: document setmac restore Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index edc53ca..3541e0e 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -101,6 +101,16 @@ The `setmac` command works by inserting a reference GbE file, contained within lbmk. The `keep` command makes lbmk *skip* changing your current GbE region; it does not, for example, restore the reference GbE image from lbmk. +The `setmac` command, when not using `keep`, copied the default GbE file within +lbmk for that board, modifying the temporary copy and then inserting that. To +insert the *original file*, without modification, you can do this: + + ./mk inject libreboot-RELEASE_targetname.tar.xz setmac restore + +The `restore` setting does the same as `setmac` (without `keep`), but skips +running `nvmutil`; it also skips building nvmutil. Essentially, this will +restore the default MAC address from standard release images. + The above MAC address is a random example; please make sure to use one that matches your board, if you wish. You can also use randomisation this way; the `?` character will be randomised, e.g.: From a3158f3f97f949513916b8345a58c7645415cb01 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 5 Jan 2025 12:04:14 +0000 Subject: [PATCH 223/399] docs/maintain: Clearer introduction to PSDG policy Signed-off-by: Leah Rowe --- site/docs/maintain/index.md | 27 ++++++++++++++------------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index e411010..b5c64ab 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -143,23 +143,24 @@ in flash on a future release. On our testing, disk I/O does not seem to be a major bottleneck, so any HDD or SSD will do, but we obviously recommend a fast NVMe (PCI-E) SSD if you can. -libreboot blob reduction policy -============================ +Vendor code +=========== -The coreboot software is nominally free, but it requires additional files from -the vendor on many supported systems. These programs lack source code, and the -coreboot project does not control them, but they can be used to perform -specific initialization tasks. +The coreboot software is nominally free, but occasionally requires an +additional file or two from the vendor on a few systems. The libreboot +project *allows* them, only when they are absolutely required. -The libreboot project *allows* vendor code within coreboot, but there is *still* a -lot of nuance to precisely what is allowed. It is important that you understand -these nuances, when working on *libreboot*. +[Strict rules](../../news/policy.md) govern when this allowed, and +the [freedom status page](../../freedom-status.md) provides additional details. -[Please read the blob reduction guidelines](../../news/policy.md) and also -the [freedom status page](../../freedom-status.md). +Please read the files under `config/vendor/` in lbmk, in addition to +the file `include/vendor.sh`. These configuration files and this source code +within lbmk, implement the download and patching logic that enables such files +to be included on final build images, ready for installation on the target +machine. -Before *configuration* info, you will first be shown a brief overview of every -project that Libreboot imports, such as coreboot. +**Before *configuration* info, you will first be shown a brief overview of every +project that Libreboot imports, such as coreboot.** Environmental variables ======================= From 90804582a8df8824f82fd1757dd40487ddac34a1 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 5 Jan 2025 12:05:44 +0000 Subject: [PATCH 224/399] further clarification of intent people sometimes have very black-or-white thinking, so it's important to put them in the right frame of mind. libreboot's documentation is very carefully crafted along the narrative: if free software can be used, it must be used. the purpose of libreboot is precisely to provide free software exclusively, when possible, on any given mainboard. it is therefore paramount that any reference to PSDG must be made while stressing those values in the most unambiguous way possible, because otherwise people will make wrong assumptions; for example, our friends from massuchussets sometimes claim that we are a proprietary software project. which is laughable, but their propaganda is very powerful, so ours needs to be even stronger. Signed-off-by: Leah Rowe --- site/docs/maintain/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index b5c64ab..e6f67dc 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -143,8 +143,8 @@ in flash on a future release. On our testing, disk I/O does not seem to be a major bottleneck, so any HDD or SSD will do, but we obviously recommend a fast NVMe (PCI-E) SSD if you can. -Vendor code -=========== +Use Free Software when possible +=============================== The coreboot software is nominally free, but occasionally requires an additional file or two from the vendor on a few systems. The libreboot From 7fddfaca820d075bf31dc60548b8b62825bacabd Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 5 Jan 2025 12:19:42 +0000 Subject: [PATCH 225/399] rename contact-fr.md to contact.fr.md that way, it appears on the language menu for the contact page Signed-off-by: Leah Rowe --- site/{contact-fr.md => contact.fr.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename site/{contact-fr.md => contact.fr.md} (100%) diff --git a/site/contact-fr.md b/site/contact.fr.md similarity index 100% rename from site/contact-fr.md rename to site/contact.fr.md From fd1a0ae3a2b3915abfafbf31baa233e2d4e034c2 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 5 Jan 2025 18:09:14 +0000 Subject: [PATCH 226/399] Vastly expanded the contrib page The "who" page is redundant and has been removed, since contrib listed the same information. I will re-redirect who->contrib in Libreboot's httpd Signed-off-by: Leah Rowe --- site/contrib.md | 388 +++++++++++++++++++++++++++++++++++++++++++++--- site/who.de.md | 58 -------- site/who.md | 44 ------ site/who.uk.md | 47 ------ 4 files changed, 364 insertions(+), 173 deletions(-) delete mode 100644 site/who.de.md delete mode 100644 site/who.md delete mode 100644 site/who.uk.md diff --git a/site/contrib.md b/site/contrib.md index 55d6a72..a2518b0 100644 --- a/site/contrib.md +++ b/site/contrib.md @@ -40,26 +40,12 @@ works on all aspects of libreboot, such as: that libreboot uses * Providing user support on IRC -Caleb La Grange ---------------- - -**Secondary developer, number two to Leah.** Caleb is a full time libreboot developer -with a narrower focus. Caleb focuses on several areas of development: - -* Build system. Caleb is responsible for improving and fixing the libreboot Make build -system. Specifically: automation, and reproducibility. -* Hardware modification. Caleb has a passion for hardware alteration; soldering, -desoldering, and testing libreboot software on the resulting hardware. -* Board porting. Anything supported in Coreboot can be ported to libreboot, Caleb -will test and port any board he can get his hands on. Additionally, anyone can -contact Caleb to generate libreboot roms for testing on their board. -* Documentation. Caleb actively maintains documentation on the above areas of -interest. Additionally, Caleb is responsible for disassembly guides with his own -pictures and diagrams for several boards. -* User support. Caleb is active on irc and willing to help any user interested in -using libreboot or in need of help. -* Project goals. Caleb collaborates with Leah on determining project goals. -Leah has the final say in every decision. +As leader of the project, my own contributions would be too vast to list here +succinctly, so just go look at literally the entire Git history. I write this +paragraph without arrogance; it is simply a fact that almost all of the commits +in Libreboot, by percentage, were written by me. I oversee Libreboot; I am its +BDFL, or at least its leader until the day when Libreboot will one day be +surpassed. Libreboot is otherwise my life-long passion, my baby. External projects ================= @@ -93,6 +79,13 @@ Libreboot uses U-Boot as the coreboot payload on supported ARM Chromebooks. Contributors in alphabetical order ================================== +Alexei Sorokin +-------------- + +Sent minor fixes to lbmk; improved sha512sum verification on images, config +improvements e.g. hide MEI device where neutered ME is used. General +improvements and tweaks. + Alper Nebi Yasak ---------------- @@ -117,15 +110,37 @@ now been heavily modified and forked into a formal project, by Leah Rowe: Alyssa's original work on the static site generator that Libreboot used to use; the Libreboot website is now built with Untitled) +Andrea Perotti +-------------- + +Sent several small fixes to Libreboot's dependencies scripts for Debian, Fedora +and Ubuntu distros. + Andrew Robbins -------------- Worked on large parts of Libreboot's old build system and related documentation. Andrew joined the Libreboot project as a full time developer during June 2017, -until his departure in March 2021. +until his departure in March 2021. Although the work was ultimately scrapped +in 2021, in favour of Libreboot's +current [lbmk design](docs/maintain/), he provided countless hours of work to +the project over the years, helping users on IRC and generally being a very +passionate Libreboot developer. + +Andrew was working on a build system re-write +that ultimately never reached a stable state, and he abandoned the project +after his work was replaced, but the feeling of disgust that he had was not +mutual. I, Leah Rowe, am very grateful to Andrew Robbins for his numerous contributions -over the years. +over the years. Anyone who contributes to Libreboot is a hero. Look at the +old Libreboot repository on [notabug](https://notabug.org/libreboot) to find +his contributions. + +Arsen Arsenović +--------------- + +Added the config for ThinkPad T430 to Libreboot. Arthur Heymans -------------- @@ -141,6 +156,56 @@ project. He still works on coreboot, to this day, and Libreboot greatly benefits from his work. His contributions to the coreboot project, and Libreboot, are invaluable. +Ben Westover +------------ + +Added info about internal flashing for Dell OptiPlex 9020, in the Libreboot +documentation. + +Caleb La Grange +--------------- + +Caleb contributed heavily to the Libreboot build system, and even implemented +the first version of +Libreboot's [vendor inject script](docs/install/ivy_has_common.md), back when +it was part of the erstwhile osboot project, which formally merged with +Libreboot in November 2022. + +Before Caleb came along, Libreboot didn't have any sort of structure in its +package management. The current `include/git.sh` script in Libreboot, which +uses a centralised set of configuration files, is ultimately derived from the +work that Caleb did. + +Caleb was the one who figured out how to auto-download and neuter the Intel ME +on ThinkPad T440p, where previous osboot versions had used one that had to be +extracted from a dump of the original firmware; the Heads project also made use +of his work, in their project, to add the ThinkPad T440p, since their build +system focuses a lot on reproducibility so they place an emphasis on auto +downloading such files, to get the same version each time. Caleb's work in +Libreboot was largely inspired by Heads, which did the same thing at that time +on the ThinkPad X230. Libreboot's checksum-based design was also implemented +by him; when inserting vendor files, checksums are verified on images, to +ensure that they match what was built in the original release, for each given +release. + +Caleb worked heavily on the Libreboot documentation, vastly improving much of +the installation instructions, and provided a lot of user support on IRC. + +In general, Caleb heavily audited the entire project. The very nature of its +design, now, is based directly on the work that he did, when looking at the +design of the build system. The various Libreboot build system audits that +started in 2023 were essentially turbo-charged versions of the same work he +was doing. + +Caleb has also been a good friend to me, Leah, and provided a lot of advice +during the osboot merger. I avoided a lot of stupid mistakes because of his +advice. + +Canberk TURAN +------------- + +Added Turkish Q keyboard layout to Libreboot's GRUB payload. + Damien Zammit ------------- @@ -152,6 +217,11 @@ Damien didn't work directly on Libreboot itself, but he worked heavily with Leah Rowe, integrating patches and new board ports into Libreboot, based on Damien's upstream work on coreboot. +Daniil Prokofev +--------------- + +Translated several Libreboot website pages into the Russian language. + Denis Carikli ------------- @@ -174,8 +244,56 @@ didn't work with ACPI based brightness controls. Others in coreboot later improved it, making ACPI-based backlight controls work properly, based on this earlier work. +Very cool guy!!! + +Eason aka ezntek +---------------- + +Sent a SOIC8 photo for Raspberry Pi Pico pinout, where previously only SOIC16 +info existed. Also added info about `thinkpad_acpi` Linux kernel module for +ThinkPad T480. + +I (Leah) worked with ezntek on some testing and he discovered several bugs +on the ThinkPad T480, while Mate and I were working on it for Libreboot. + +ezntek wrote this guide: + + +This guide was written based on my and other people's help, on IRC, while we +were in the process of adding the T480 to Libreboot. Several parts of this guide +were in fact used to improve the Libreboot guide, such as the info about how +to update the Lenovo UEFI firmware prior to Libreboot installation, by using +USB boot media instead of needing to boot Windows. + +Eason's guide also made number one on hacker news that day, and as a result, +many more people learned about Libreboot, especially its support for T480, +which helped to spread the news about the work. + +Absolute legend. One of Libreboot's many great champions. + +E. Blåsten +-------------- + +Documented several quirks of the MacBook2,1 and ThinkPad X200T, such as +swivel/rotation on X200T, and various alt keys on the MacBook to make it more +usable with Linux, when used on Libreboot. + +Also helped me (Leah) in a very fundamental way, in 2018. The help I got enabled +me to be who I am today. + +Fedja Beader +------------- + +Wrote several guides for Libreboot, including the original version of the +GRUB hardening guide. Wrote the info about the Linux kernel panic/netconsole +on Libreboot's FAQ. + +Also sent some small fixes to Libreboot's GRUB configuration, enabling USB +devices to boot more reliably. Also improved Libreboot's documentation +pertaining to Full Disk Encryption. + Ferass El Hafidi --------- +----------------- Added cstate 3 support on macbook21, enabling higher battery life and cooler CPU temperatures on idle usage. @@ -184,8 +302,28 @@ Also has a series of extensive improvements to the entire Libreboot system; for example, Ferass made the entire build system use POSIX `sh`, removing bashisms that previously plagued it. +Libreboot's original support for cross-compiling AArch64 coreboot was added +by him. He also submitted a few bug fixes to the GRUB configuration used by +Libreboot. + This is IRC nick `f_` on Libreboot IRC. Cool guy! +hslick +------ + +Documented Arch Linux ARM installation on ARM64 U-Boot targets. + +Integral +-------- + +Translated the Libreboot home page into Chinese language. + +Jason Lenz +---------- + +Sent instructions for installing Debian Linux on ARM64-based chromebooks +with Libreboot and Alper's U-Boot ARM64 payload. + Jeroen Quint ------------ @@ -193,6 +331,19 @@ Contributed several fixes to the libreboot documentation, relating to installing on Arch-based systems with full disk encryption on libreboot systems. +John Doe +-------- + +This person never gave their name, but they sent two patches: + +``` +* 676eb110c7f Perform the silentoldconfig step of seabios before full make +* acc57bda6df scripts: process git versions when lbmk is a worktree or submodule +``` + +Every contribution is appreciated. Every contributor gets their own entry in +the Libreboot Hall of Fame. + Joshua Gay ---------- @@ -210,6 +361,11 @@ Klemens Nanni Made many fixes and improvements to the GRUB configuration used in libreboot, and several tweaks to the build system. +Linear Cannon +------------- + +Added NetBSD support for `dell-flash-unlock`. + Lisa Marie Maginnis ------------------- @@ -225,6 +381,15 @@ in Libreboot, e.g. ASUS Chromebook C201PA - at the time, this was using Google's own Depthcharge payload, which you can find in 2016 Libreboot releases. +Livio +----- + +Sent a small enhancement for GRUB, allowing the user to turn on or off several +options at boot time, such as graphical options or spkmodem output, so that +these features can be included on every image, and used flexibly. + +Sent some small fixes to the QEMU target, fixing a bug in the SMBIOS info. + Lorenzo Aloe ------------ @@ -236,11 +401,67 @@ that OS is not natively supported. All round good guy, an honest and loyal fan. +Luke T. Shumaker +---------------- + +Sent a patch to Libreboot, fixing vboot on 32-bit (i686) hosts; it previously +only compiled on 64-bit x86 (amd64) machines. + Marcus Moeller -------------- Made the libreboot logo. +Mate Kukri +---------- + +Mate Kukri is a *major* contributor to Libreboot, and several of the upstreams +that it uses; he is a coreboot developer, and also contributes heavily to the +GNU GRUB project. + +Off the top of my head, here are just a few of the contributions that he has +made: + +* Wrote several enhancements for `pico-serprog`, based on the original work + done by [stacksmashing](https://github.com/stacksmashing), who also has + this very interesting [youtube channel](https://www.youtube.com/channel/UC3S8vxwRfqLBdIhgRlDRVzw); + Riku's work is heavily inspired by Mate's and stacksmashing's work. +* Ported the Dell OptiPlex 9020 SFF and MT, and provided several fixes on it + for the Libreboot project; several fixes that I (Leah) did were also based on + advice that he gave me. +* Wrote the [deguard](docs/install/deguard.md) utility for disabling Intel + Boot Guard on MEv11; this is used for the Dell OptiPlex 3050 Micro + and ThinkPad T480 ports. +* Ported the Dell OptiPlex 3050 Micro and Lenovo ThinkPad T480/T480s to + coreboot, directly providing Leah with advice when integrating these ports + into Libreboot. This work included heavy amounts of reverse engineering + Lenovo's EC firmware. +* Ported the ASUS H610M-K D4 motherboard to coreboot, an Alderlake machine that + Libreboot is interested in, for the release planned by April 2025; this + bullet-point is being written on 5 January 2025 prior to its addition in + Libreboot. +* Wrote the NVMe driver that Libreboot uses in GRUB, based upon work done for + the SeaBIOS project. + +Mate Kukri is a hero to the Libreboot project. Without him, Libreboot would not +be what it is today. + +Michael Reed +------------ + +Wrote Libreboot's original OpenBSD installation guide. + +Also sent fixes to the original static site generator that Alyssa wrote, upon +which the Untitled Static Site Generator was later based. + +Michał Masłowski +---------------- + +Sent several fixes to Libreboot's early build system, back in the early days +of the project. Also taught Leah how to use Git, because the very first revisions +were released only as tarballs, without Git history; the first commits in +the old repository were imports of those tarballs. + Nicholas Chin ------------- @@ -250,6 +471,25 @@ the `dell-flash-unlock` (formerly `e6400-flash-unlock`) utility, which can unlock the flash on these boards, allowing internal flashing of Libreboot directly from host OS running under the original Dell firmware. +Nicholas has ported many more Dell Latitude laptops to Libreboot, and he works +heavily on the upstream coreboot project. In fact, *every* Dell Latitude +board supported in Libreboot was done by him, at least as of 5 January 2025. + +Nicholas has provided countless hours of user support on the Libreboot IRC +channel and in those of projects which Libreboot uses, and submitted many +fixes to Libreboot, both in terms of code and documentation. + +He has advised me, Leah, on many occasions, teaching me things. Needless to +say, he is one of Libreboot's champions. + +Nicholas also contributes to coreboot heavily, to flashprog, and several +other projects that Libreboot uses. + +0xloem +------ + +Added info about LPC flashing on Libreboot's external flashing guide. + Patrick "P. J." McDermott --------------------------- @@ -258,6 +498,16 @@ relating to the [Intel Management Engine](../faq.md#intelme), in addition to making several improvements to the build system in libreboot. **Former libreboot project maintainer.** +Patrick Rudolph +--------------- + +Coreboot developer. Also wrote the xHCI GRUB driver, that Libreboot uses; +without it, several ports in Libreboot would not be feasible, unless they +excluded GRUB as a payload, because several newer Intel platforms no longer +have (or configure) EHCI controllers. Upstream GRUB currently has no xHCI +driver, but Patrick sent patches in 2020 that Libreboot later re-based, +on top of GRUB 2.12. + Paul Kocialkowski ----------------- @@ -265,6 +515,11 @@ Ported the ARM (Rockchip RK3288 SoC) based *Chromebook* laptops to libreboot. Also one of the main [Replicant](http://www.replicant.us/) developers. +He was also responsible for the original re-write of the Libreboot build +system, upon which Libreboot's effort from 2017-2021 was based; ultimately, +this work never became stable and the work was scrapped in 2021, in favour of +the current Libreboot build system design, named lbmk. + Paul Menzel ----------- @@ -279,12 +534,18 @@ Paul worked with Libreboot on this, sending patches to test periodically until the bug was fixed in coreboot, and then helped her integrate the fix in libreboot. +Peaksol +------- + +Translated several pages, including the SPI flashing guide, into Chinese +language. + Peter Stuge ----------- Helped write the [FAQ section about DMA](../faq.md#hddssd-firmware), and provided general advice in the early days of the project. Peter was a coreboot developer -in those days, and a major developer in the *libusb* project (which flashrom +in those days, and a major developer in the *libusb* project (which flashprog makes heavy use of). Peter also wrote the *bucts* utility used to set Backup Control (BUC) Top Swap @@ -306,6 +567,69 @@ about this in the hardware page: [HP Elite 8200 SFF](docs/install/hp8200sff.md) +Riku also ported the HP Elite 8300 USDT. + +Riku implemented MXM support as an INT15h handler in SeaBIOS, and wrote +some tooling for it, which enables the HP EliteBook 8560w port to work reliably +in Libreboot. + +Riku also added the HP Folio 9470m to Libreboot. + +Riku is also in charge of Libreboot's fork of `pico-serprog`, which is used +to provide serprog firmware on RP2040 and RP2530 devices. These devices can +be used to set up a cheap but reliable NOR flasher, which is now the default +recommended one for flashing Libreboot externally. Riku's fork contains several +enhancements, such as a higher default drive level of 12mA and the ability to +control multiple chip select pins, useful for flashing dual-chip Intel boards. + +Riku has submitted numerous bug fixes to many boards, and generally sent many +improvements for the build system and also the Libreboot documentation. He +also added the HP EliteBook 2560p to Libreboot. + +Riku also contributes to coreboot and flashprog, and several other projects +that Libreboot uses. + +samuraikid +---------- + +Added Portuguese keyboard layout to Libreboot's GRUB payload. + +semigel +------- + +Added BTRFS subvolume support to Libreboot's GRUB configuration, for auto-booting +various Linux distros. + +Simon Glass +----------- + +Simon Glass is principally responsible for the x86 U-Boot payload that Libreboot +now uses as a coreboot payload. Simon provided Leah with several critical patches +and advised Leah on several aspects of U-Boot's design, that helped a lot +when integrating it. + +Without him, Libreboot would not have a functioning U-Boot implementation on +x86. + +Snooze Function +--------------- + +Translated several pages on the Libreboot documentation into the German +language. + +StackSmashing +------------- + +Author of the original [pico-serprog](https://github.com/stacksmashing/pico-serprog) +project, upon which Libreboot's fork (maintained by Riku Viitanen) is based. + +StackSmashing didn't do this specifically for Libreboot, but their work is +outstanding, so their name is honoured here. + +StackSmashing also has a [YouTube channel](https://www.youtube.com/channel/UC3S8vxwRfqLBdIhgRlDRVzw) +with a lot of really cool videos on it about all things electronics, and hacking +of electronics. Check it out! + Steve Shenton ------------- @@ -381,6 +705,11 @@ Swiftgeek left the project in March 2021. I, Leah Rowe, wish him all the best in his endeavours, and I'm very grateful to his numerous contributions over the years. +Timothee Benedet +---------------- + +Translated several Libreboot website pages into the French language. + Timothy Pearson --------------- @@ -404,3 +733,14 @@ Intel platforms in Libreboot, when flashing it (now rewritten by others in Ada, for libgfxinit in coreboot, but originally it was written in C and included directly in coreboot; libgfxinit is a 3rdparty submodule of coreboot). + +Vladislav Shapovalov +-------------------- + +Translated several pages of the Libreboot website into Ukranian language. + +------------------------------------------------------------------------------- + +**Did we forget your name?** + +**If so, and you would like to be listed here, please contact the Libreboot project.** diff --git a/site/who.de.md b/site/who.de.md deleted file mode 100644 index 7e73469..0000000 --- a/site/who.de.md +++ /dev/null @@ -1,58 +0,0 @@ ---- -title: Who develops libreboot? -x-toc-enable: true -... - -Der Zweck dieser Seite ist klar zu definieren wer am Libreboot Projekt -arbeitet, wer das Projekt betreibt, wie Entscheidungen getroffen werden, -und wie das Projekt grundsätzlich funktioniert. - -Informationen über die wichtigsten Beteiligten an Libreboot sind auf -dieser Seite zu finden, -dort sind diese Leute aufgeführt: [Liste der Beteiligten](contrib.md) - -Leah Rowe (Gründerin, Chef Entwicklerin) -=================================== - -Leah Rowe ist die Gründerin des Libreboot Projekts. Leah beaufsichtigt -die gesamte Libreboot Entwicklung, überprüft -externe Beiträge, and hat bei Entscheidungen das letzte Wort. -Leah ist Eigentümerin der libreboot.org Server, und betreibt diese von -ihrem Labor in Großbrittanien. - -Wenn Du mehr über Leah's Mitwirken an Libreboot erfahren möchtest, dann -kannst Du ihren Eintrag unter der -[Seite mit allen Mitwirkenden, Vergangenheit und Gegenwart](contrib.md) -lesen. - -Caleb La Grange -=============== - -Caleb ist online auch bekannt unter `shmalebx9`. -Caleb kümmert sich hauptsächlich um Verbesserungen am lbmk Build System, -das Hinzufügen neuer Boards sowie um die Dokumentation. - -Wenn Du mehr über Caleb's Mitwirken an Libreboot erfahren möchtest, dann -kannst Du seinen Eintrag unter der -[Seite mit allen Mitwirkenden, Vergangenheit und Gegenwart](contrib.md) -lesen. - -Alper Nebi Yasak -================ - -Alper kümmert sich um die Entwicklung der U-Boot Payload Unterstützung -in Libreboot, koordiniert Tests auf Chromebooks die dies nutzen, und -erledigt jegliche notwendige Upstream Arbeit an U-Boot selbst. -`alpernebbi` bei Libera IRC. - -Wenn Du mehr über Alper's Mitwirken an Libreboot erfahren möchtest, dann -kannst Du seinen Eintrag unter der -[Seite mit allen Mitwirkenden, Vergangenheit und Gegenwart](contrib.md) -lesen. - -Entwickler gesucht! -================== - -**Lerne wie Du Patches beisteuern kannst unter der [git Seite](git.de.md)** - -Jeder ist willkommen an der Entwicklung teilzunehmen. diff --git a/site/who.md b/site/who.md deleted file mode 100644 index 125b9bd..0000000 --- a/site/who.md +++ /dev/null @@ -1,44 +0,0 @@ ---- -title: Who develops libreboot? -x-toc-enable: true -... - -The purpose of this page is to clearly define who works on libreboot, who runs -the project, how decisions are made, and in general how the project functions. - -You can find information about major contributions made to libreboot, on this -page which lists such people: [List of contributors](contrib.md) - -Leah Rowe (founder, lead developer) -=================================== - -Leah Rowe is the founder of the libreboot project. Leah oversees all development of libreboot, reviewing -outside contributions, and has the final say over all decisions. Leah owns and -operates the libreboot.org servers from her lab in the UK. - -Caleb La Grange -=============== - -Caleb goes by the screen name `shmalebx9`. -Caleb mainly deals with improvements to the lbmk build system, board porting, -and documentation. - -Alper Nebi Yasak -================ - -Alper handles development of the U-Boot payload support in Libreboot, -coordinates testing on Chromebooks that use it, and does any necessary -upstream work on U-Boot itself. `alpernebbi` on Libera IRC. - -List of contributions -===================== - -You can learn more about any developer's involvement with Libreboot, by reading their -entry on the [page listing all contributors, past and present](contrib.md) - -Developers wanted! -================== - -**Learn how to contribute patches on the [git page](git.md)** - -All are welcome to join in on development. diff --git a/site/who.uk.md b/site/who.uk.md deleted file mode 100644 index cacf24a..0000000 --- a/site/who.uk.md +++ /dev/null @@ -1,47 +0,0 @@ ---- -title: Хто розробляє libreboot? -x-toc-enable: true -... - -Мета цієї сторінки - чітко визначити, хто працює над libreboot, хто виконує -проект, як приймаються рішення, і взагалі як проект функціонує. - -Ви можете знайти інформацію про великий внесок, зроблений у libreboot, на цій -сторінці, яка перелічує таких людей: [Список учасників](contrib.md) - -Лія Роу (засновниця, провідний розробник) -=================================== - -Лія Роу є засновницею проекту libreboot. Лія контролює всю розробку libreboot, переглядає -зовнішні внески, і має останнє слово щодо всіх рішень. Лія володіє -і керує серверами libreboot.org зі своєї лабораторії у Великобританії. - -Ви можете дізнатися більше про участь Лії в libreboot, прочитавши її запис на -[сторінці зі списком усіх учасників, минулих і теперішніх](contrib.md) - -Калеб Ла Гранж -=============== - -Калеб має псевдонім `shmalebx9`. -Калеб в основному займається вдосконаленням системи збірки lbmk, портуванням плати, -та документацією. - -Ви можете дізнатись більше про участь Калеба в libreboot, прочитавши його -запис на [сторінці зі списком усіх учасників, минулих і теперішніх](contrib.md) - -Альпер Небі Ясак -================ - -Альпер займається розробкою підтримки корисного навантаження U-Boot в Libreboot, -координує тестування Chromebook, які його використовують, і виконує будь-яку необхідну -апстрім роботу над самим U-Boot. `alpernebbi` на Libera IRC. - -Ви можете дізнатись більше про участь Альпера в Libreboot, читаючи його -запис на [сторінці зі списком усіх учасників, минулих і теперішніх](contrib.md) - -Потрібні розробники! -================== - -**Дізнайтесь, як додати виправлення на [сторінці git](git.md)** - -Запрошуємо всіх долучитися до розробки. From fcb63c3c3b5673aa2afafbe9fe7702eaa4f10d55 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 5 Jan 2025 18:16:16 +0000 Subject: [PATCH 227/399] clean up references to who.md the page now redirects to contrib.md Signed-off-by: Leah Rowe --- site/contrib.md | 3 --- site/docs/maintain/index.md | 4 ---- site/footer.de.include | 1 - site/footer.include | 1 - site/footer.it.include | 1 - site/footer.uk.include | 1 - site/footer.zh-cn.include | 1 - site/git.de.md | 3 --- site/git.md | 3 --- site/git.uk.md | 3 --- 10 files changed, 21 deletions(-) diff --git a/site/contrib.md b/site/contrib.md index a2518b0..80ebe88 100644 --- a/site/contrib.md +++ b/site/contrib.md @@ -10,9 +10,6 @@ If we forgot to mention you here, let us know and we'll add you. (or if you don't want to be mentioned, let us know and we'll remove your entry) -Information about who works on libreboot, and how the project is run, can -be found on this page: [who.md](who.md) - You can know the history of the libreboot project, simply by reading this page. It goes into detail about all of the major contributions to the project, and in general how the project was created (and who helped create it). diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index e6f67dc..d17493c 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -656,10 +656,6 @@ auto-neuters Intel ME images, during build, so that the user does not have to manually extract such images from dumps of the original vendor firmware (in the flash) on a given machine. -Such logic was ported to Libreboot, courtesy of `shmalebx9` as mentioned -on the [who page](../../who.md) - Caleb is a core developer in the Libreboot -project. - util/nvmutil/ --------------- diff --git a/site/footer.de.include b/site/footer.de.include index b598527..0800551 100644 --- a/site/footer.de.include +++ b/site/footer.de.include @@ -4,7 +4,6 @@ * [Binäre Blob Richtlinie](/news/policy.md) * [Freiheits Status](/freedom-status.md) * [Diese Seite bearbeiten](/git.de.md) -* [Wer entwickelt Libreboot?](/who.de.md) * [Lizenz](/license.md) * [Vorlage](/template-license.md) * [Logo](/logo-license.md) diff --git a/site/footer.include b/site/footer.include index 20bc86d..0fd47af 100644 --- a/site/footer.include +++ b/site/footer.include @@ -4,7 +4,6 @@ * [Binary Blob Reduction Policy](/news/policy.md) * [Freedom status](/freedom-status.md) * [Edit this page](/git.md) -* [Who develops Libreboot?](/who.md) * [License](/license.md) * [Template](/template-license.md) * [Logo](/logo-license.md) diff --git a/site/footer.it.include b/site/footer.it.include index e17de9e..b25e96a 100644 --- a/site/footer.it.include +++ b/site/footer.it.include @@ -4,7 +4,6 @@ * [Politica di riduzione di parti binarie proprietarie (blobs)](/news/policy.md) * [Grado di liberta' possibile](/freedom-status.md) * [Modifica questa pagina](/git.de.md) -* [Chi sviluppa Libreboot?](/who.de.md) * [Licenza](/license.md) * [Modelli di licenze](/template-license.md) * [Logo](/logo-license.md) diff --git a/site/footer.uk.include b/site/footer.uk.include index dc16a7b..b612493 100644 --- a/site/footer.uk.include +++ b/site/footer.uk.include @@ -4,7 +4,6 @@ * [Політика бінарних блобів](/news/policy.md) * [Статус свободи](/freedom-status.md) * [Редагувати цю сторінку](/git.md) -* [Хто розробляє Libreboot?](/who.uk.md) * [Ліцензія](/license.md) * [Шаблон](/template-license.uk.md) * [Логотип](/logo-license.uk.md) diff --git a/site/footer.zh-cn.include b/site/footer.zh-cn.include index 8a9342c..dea13d1 100644 --- a/site/footer.zh-cn.include +++ b/site/footer.zh-cn.include @@ -4,7 +4,6 @@ * [二进制 blob 政策](/news/policy.md) * [自由度现状](/freedom-status.md) * [编辑本页面](/git.md) -* [谁在开发 Libreboot?](/who.md) * [许可证](/license.md) * [模板](/template-license.md) * [图标](/logo-license.md) diff --git a/site/git.de.md b/site/git.de.md index 94dd4cd..baa10cc 100644 --- a/site/git.de.md +++ b/site/git.de.md @@ -6,9 +6,6 @@ x-toc-enable: true Libreboot Repositories =================== -Informationen darüber wer an Libreboot arbeitet und wer das Projekt betreibt -sind unter [who.de.md](who.de.md) zu finden. - Das `libreboot` Projekt hat hauptsächlich 3 Git Repositories: * Build system: diff --git a/site/git.md b/site/git.md index b2e6289..59d6a3a 100644 --- a/site/git.md +++ b/site/git.md @@ -6,9 +6,6 @@ x-toc-enable: true libreboot repositories =================== -Information about who works on libreboot and who runs the project can be -found on [who.md](who.md) - The `libreboot` project has 3 main Git repositories: * Build system: diff --git a/site/git.uk.md b/site/git.uk.md index 0cb32df..f566113 100644 --- a/site/git.uk.md +++ b/site/git.uk.md @@ -6,9 +6,6 @@ x-toc-enable: true репозиторії libreboot =================== -Інформацію про те, хто працює над libreboot і хто керує проектом, можна -знайти на [who.uk.md](who.uk.md) - Проект `libreboot` має 3 основні сховища Git: * Система побудови: From 6a8e230d7a2543282c1f9a50b86259a98decf11a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 5 Jan 2025 20:13:51 +0000 Subject: [PATCH 228/399] list angel pons on contrib.md (haswell nri) Signed-off-by: Leah Rowe --- site/contrib.md | 27 +++++++++++++++++++++------ 1 file changed, 21 insertions(+), 6 deletions(-) diff --git a/site/contrib.md b/site/contrib.md index 80ebe88..a4a5bad 100644 --- a/site/contrib.md +++ b/site/contrib.md @@ -37,12 +37,10 @@ works on all aspects of libreboot, such as: that libreboot uses * Providing user support on IRC -As leader of the project, my own contributions would be too vast to list here -succinctly, so just go look at literally the entire Git history. I write this -paragraph without arrogance; it is simply a fact that almost all of the commits -in Libreboot, by percentage, were written by me. I oversee Libreboot; I am its -BDFL, or at least its leader until the day when Libreboot will one day be -surpassed. Libreboot is otherwise my life-long passion, my baby. +Check the Git repositories to find my own contributions to the project. There +are a lot, too many to list here, but my work is enabled by the many people +who help me, and those who work on all the upstream projects that I use in +Libreboot. I regularly work with all sorts of people. External projects ================= @@ -134,6 +132,23 @@ over the years. Anyone who contributes to Libreboot is a hero. Look at the old Libreboot repository on [notabug](https://notabug.org/libreboot) to find his contributions. +Angel Pons +---------- + +Angel is a coreboot developer. Their contributions are numerous, in that and +many other projects. Countless patches in coreboot from them have enabled +Libreboot to be what it is. + +The most noteworthy work by Angel, that Libreboot imported, is the native +raminit (NRI) for Intel Haswell platform, which Libreboot was able to use +for replacing the Intel MRC. Because of these patches, Libreboot is able to +provide wholly free initialisation on that platform, in the BIOS region of +the flash. For example, the ThinkPad T440p and OptiPlex 9020 ports boot in +such a configuration, since these are Haswell machines. + +Over 2000 commits in coreboot were written by Angel, as of January 2025. They +are one of coreboot's most active developers. + Arsen Arsenović --------------- From c1daf0fc5ec42fac72c3d608a4c112770edbf97a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 5 Jan 2025 22:21:49 +0000 Subject: [PATCH 229/399] docs/build: Remove the python instructions lbmk hacks PATH now to deal with this see lbmk patch from 5 January 2025: * 411fb697dfc set up python in PATH, ensuring that it is python3 python3 is dealt with automatically now, so the user doesn't have to do it Signed-off-by: Leah Rowe --- site/docs/build/index.md | 17 ----------------- site/docs/build/index.uk.md | 7 ++----- 2 files changed, 2 insertions(+), 22 deletions(-) diff --git a/site/docs/build/index.md b/site/docs/build/index.md index 326308e..3831f00 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -80,23 +80,6 @@ Change the name and email address to whatever you want, when doing this. You may also want to follow more of the steps here: -Python -====== - -You should ensure that the `python` command runs python 3, on your system. -Python2 is unused by lbmk or anything that it pulls down as modules. - -If building on Debian/Ubuntu based systems, you can achieve that via: - - sudo apt install python-is-python3 - -On Fedora, you can use the following - - sudo dnf install python-unversioned-command - -On most modern distros, Python 2 is no longer included and Python 3 will be -the only one available on the `python`. - How to compile Libreboot ======================== diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index ed42272..5a67bdc 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -89,11 +89,8 @@ Git Ви також можете захотіти прослідувати більшій кількості етапів тут: -Python -====== - -Python2 не використовується lbmk або будь-чим, що завантажується в якості модулів. Ви -маєте переконатись, що команда `python` виконує python 3 на вашій системі. +Build +===== Zero..st, check time/date ------------------------- From 7421e9a8c7a7b6aa5a6e70294973ea4fd4bedb77 Mon Sep 17 00:00:00 2001 From: libreandre Date: Mon, 6 Jan 2025 18:18:26 +0200 Subject: [PATCH 230/399] Add missing release year to ASUS KFSN4-DRE --- site/docs/install/kfsn4-dre.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/kfsn4-dre.md b/site/docs/install/kfsn4-dre.md index e11ea92..6085f8f 100644 --- a/site/docs/install/kfsn4-dre.md +++ b/site/docs/install/kfsn4-dre.md @@ -12,7 +12,7 @@ x-toc-enable: true |----------------------------|------------------------------------------------| | **Manufacturer** | ASUS | | **Name** | KFSN4-DRE | -| **Released** | ? | +| **Released** | 2007 | | **Chipset** | nVIDIA nForce Professional 2200 | | **CPU** | AMD Opteron 2000 series (Barcelona Family) | | **Graphics** | XGI Z9s VGA Controller | From 1b4326dd620f7b770e3d68c34c96623e86d84e5b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 6 Jan 2025 21:30:57 +0000 Subject: [PATCH 231/399] Libreboot 20241206, 8th revision (announcement) Signed-off-by: Leah Rowe --- site/index.md | 4 +- site/news/MANIFEST | 1 + site/news/libreboot20241206.Revisions.md | 45 +++ site/news/libreboot20241206.md | 10 +- site/news/libreboot20241206rev8.md | 422 +++++++++++++++++++++++ 5 files changed, 480 insertions(+), 2 deletions(-) create mode 100644 site/news/libreboot20241206rev8.md diff --git a/site/index.md b/site/index.md index a49d281..e6b2a43 100644 --- a/site/index.md +++ b/site/index.md @@ -25,7 +25,9 @@ Minifree; sales provide funding for Libreboot. **NEW RELEASE: The latest release is Libreboot 20241206, released on 6 December 2024. -See: [Libreboot 20241206 release announcement](news/libreboot20241206.md).** +See: [Libreboot 20241206 release announcement](news/libreboot20241206.md) - the +newest revision release, Libreboot 20241206 revision 8, is from 6 +January 2025.** *We* believe the freedom to [study, share, modify and use software](https://writefreesoftware.org/), without any diff --git a/site/news/MANIFEST b/site/news/MANIFEST index a407bdf..0353053 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -1,3 +1,4 @@ +libreboot20241206rev8.md libreboot20241206.md libreboot20241008.md audit6.md diff --git a/site/news/libreboot20241206.Revisions.md b/site/news/libreboot20241206.Revisions.md index 87d02c9..3595d7d 100644 --- a/site/news/libreboot20241206.Revisions.md +++ b/site/news/libreboot20241206.Revisions.md @@ -117,3 +117,48 @@ to everyone, and some countries are culturally hostile to the particular colour gradient used by the old logo (from rev4); even if I preferred that logo, I want those users to have no trouble at all using Libreboot in public. Libreboot's only purpose is to provide free boot firmware. + +Revision 7 (18 December 2024) +---------- + +Added support for fetching ThunderBolt firmware and padding it, on ThinkPad +T480 and T480s mainboards. This can be used for externally flashing the newer +firmware update, without the need to boot Windows to use Lenovo's own updater. + +Revision 8 (6 January 2025) +---------- + +There are *so many* changes, in this revision, that it is being treated like +a brand new release, though it is still merely a revision to the existing +Libreboot 20241206 release. + +Please read the [Libreboot 20241206 8th +revision release announcement](libreboot20241206rev8.md). + +Here's a short summary of the revision 8 changes, but you should also read +the full announcement, linked above: + +* HP EliteBook 820 G2 images are now *provided*, whereas this port was + previously *source-only*; this is due to fixes that have been made to + the build system, that mean the images now have correct checksums after + running the `./mk inject` commands. +* Several upstream code revisions have been updated, with minor fixes. +* ThinkPad T480/T480s backlight keys now work perfectly, whereas you could + only change the brightness with software before. +* Thinkpad T480/T480s and OptiPlex 3050 Micro no longer automatically turn + on by merely plugging in a power supply; you must now actually press the + power button. This is especially desirable on the T480. +* Safer vendorfile insertion, on `include/vendor.sh` - much stricter error + handling, and the way it works now reduces the number of possible bricks. +* Intel FSP now inserted via `./mk inject` commands, instead of being + included directly inside release images. This is to mitigate technicalities + of Intel's licensing, pertaining to modifications, since coreboot has + to specifically split up the various modules and adjust various pointers + inside the M module. +* General bug fixes in the build system. +* Fix build errors on Debian Trixie/Sid and Arch Linux, as of January 2025. +* Pico 2 support added for the `pico-serprog` images, courtesy Riku Viitanen. +* Disabled TPM2 on T480/3050micro to mitigate SeaBIOS hanging, due to buggy + TPM drivers in SeaBIOS. +* Better handling of dependencies, for various Linux distros. +* Various code quality improvements for `util/nvmutil`, especially the Makefile. diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 5105762..b6825e0 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -4,7 +4,15 @@ Today's Libreboot 20241206 revision is a *stable release*, whereas the previous testing release was Libreboot 20241008, and the previous stable release was -Libreboot 20240612. +Libreboot 20240612. A new *revision* release became available on 5 January 2025, +namely Libreboot 20241206, 8th revision. + +**UPDATE (revision release), 6 January 2025:\ +The latest *revision* is the *8th revision*, released on 6 January 2025. This +has replaced the release archives for the original release revisions, +under the same `stable/20241206/` directory on release mirrors. See:** + +**[Libreboot 20241206 revision 8 announcement](libreboot20241206rev8.md)** **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions diff --git a/site/news/libreboot20241206rev8.md b/site/news/libreboot20241206rev8.md new file mode 100644 index 0000000..5648a44 --- /dev/null +++ b/site/news/libreboot20241206rev8.md @@ -0,0 +1,422 @@ +% Libreboot 20241206, 8th revision released! ThinkPad T480 backlight keys fixed, Pico 2 serprog support, other fixes +% Leah Rowe +% 6 January 2025 + +Today's Libreboot 20241206 revision, which is the 8th revision in the Libreboot +20241206 stable release series. The changelog on this page is written, relative +to Libreboot 20241206 revision 7 which was released on 18 December 2024. +The *original* Libreboot 20241206 release came out on 6 December 2024. + +Regarding revision 8 +==================== + +Normally, revisions would only be documented on +the [Libreboot 20241206 revisions page](libreboot20241206.Revisions.md), but +there are over *100* changes since the 7th revision, making the 8th revision +almost a full new release, so it was decided that this revision would have its +own dedicated release page. + +Many of these changes are early changes of *Libreboot Build System Audit 7*, +because an ongoing audit (the 7th audit) is in progress. The previous build +system audit was [Libreboot Build System Audit 6](audit6.md); these early +changes are the least invasive ones planned, so they are suitable for a stable +release. Much of the build system will have been re-designed, upon completion +of the 7th audit. + +You will find the tar archives (including sources and ROM images) for this +release, in the *same* directory under `stable/20241206/` on release mirrors. +The old archives (from rev6) were replaced entirely; rev7 was never released. + +Regarding revision 7 +-------------------- + +The only meaningful addition in *revision 7* was the feature whereby T480/T480s +ThunderBolt firmware can be separately downloaded, for external flashing instead +of using Lenovo's Windows-only updater program, for those users who wish/need to +update their ThunderBolt controller firmware. + +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** + +What is Libreboot? +============ + + + +Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing +boot firmware that initialises the hardware in your computer, to then load an +operating system (e.g. Linux/BSD). It is specifically a *coreboot distribution*, +in the same way that Debian is a Linux distribution. It provides an automated +build system to produce coreboot ROM images with a variety of payloads such as +GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +to use as possible for non-technical users. From a project management perspective, +this works in *exactly* the same way as a Linux distro, providing a source-based +package manager (called lbmk) which patches sources and compiles coreboot images. +It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, +and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) +or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating +system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). + +We also provide an experimental U-Boot setup on x86, as a coreboot payload for +providing a minimal UEFI implementation. + +Summarised list of changes +========================== + +Board support +------------- + +RP2530 devices now supported in `pico-serprog`, e.g. Raspberry Pi Pico 2. + +We previously only supported the RP2040 devices, e.g. original Pi Pico. We +now support both RP2040 and RP2530. Images are provided in the same tarball. + +The documentation has been updated, to reflect this improvement. Libreboot also +now imports `picotool` which is now used to compile the UF2 binaries for +installation, when building them from `pico-sdk`. + +Revision updates +---------------- + +In descending order from latest changes to earliest changes: + +* Bumped SeaBIOS to revision 1602647f1 (7 November 2024). This brings in a + single change from upstream, that prevents the boot menu from being hidden + when `boot-menu-wait` is negative. +* Bumped GRUB to revision 6811f6f09 (26 November 2024). This brings in several + important fixes from upstream, most notably TPM2 key support, though we + don't yet actually enable it in the code as it's unused on all machines. + Minor fixes have been observed, e.g. graphical glitches fixed under certain + edge cases. +* Bumped flashprog to revision eb2c041 (14 Nov 2024). This brings in several + important fixes from upstream. + +Feature changes +--------------- + +In descending order from latest changes to earliest changes: + +* `vendor.sh`: Randomised MAC addresses are used by default now, even + if the user doesn't specify `setmac`. The `setmac keep` command will skip + setting a MAC address, and `setmac restore` shall insert the default one. +* `vendor.sh`: The `inject` command can now modify MAC addresses inside tar + archives, whereas it could previously only do so for single-image insertion; + the latter was removed, leaving only tarball-based injection in place. This + can also be used, even on boards that don't need vendor files; on those boards, + vendorfiles still aren't inserted, because again, they are not needed! +* `util/nvmutil`: Show the same byte order, in the same grouping and + display format, as `hexdump -C`, so that the output is more intuitive when + the user runs e.g. `./nvm gbe.bin dump` +* `./mk inject` commands are much safer now: tarballs are modified directly, + without leaving extracted images behind. This means that there is no longer + any ambiguity about which image to flash. Images are now padded with a + single byte when scrubbed, and prefixed with DONOTFLASH in the file name. + Single-image insertion has been removed, such that insertion is now + tarball-only. In general, the error handling is much stricter, and user + messages more verbose, to make the script more intuitive and much safer, + to vastly reduce the number of accidental mistakes that brick the user's + machine. +* `lib.sh`: Support `reinstall` on Fedora dnf. Use it by running + the `./mk dependencies fedora re` command. +* `lib.sh`: Support `--reinstall` on Debian apt-get, when running + the `./mk dependencies debian` command. You can + use: `./mk dependencies debian --reinstall` +* `vendor.sh`: Intel FSP is no longer directly provided in release images, on + boards that use it. Instead, images now exclude it and it is to be inserted + with the `./mk inject` commands. This is to mitigate technicalities of + Intel's licensing, despite the fact that the FSP is otherwise freely + redistributable, because coreboot technically modifies it by splitting the + modules and modifying pointers inside the FSP-M module for raminit. +* `rom.sh`: Support setting `payload_grubsea="y"` on a board's `target.cfg` + file when compiling, so that GRUB is the primary payload. This is not enabled + on any boards, nor will it be, on release images, but the user can do it + themselves when compiling from source. + +Configuration changes +--------------------- + +In descending order from the latest changes to the earliest changes: + +* Disabled HyperThreading by default, on ThinkPad T480/T480s and OptiPlex 3050 + Micro, to mitigate speculative execution attacks like spectre/meltdown. Users + can turn it back on and build from source, if they wish, for a roughly 15 + percent performance boost under highly multi-threaded workloads. + +Bug fixes +--------- + +Several fixes were made to prevent build errors on the latest Debian Sid +and Arch Linux, as of 6 January 2025. Fedora 41 was also tested, fixing +various issues. + +The following bug fixes have been merged (in descending order from the latest +changes to the earliest changes): + +* ThinkPad T480/T480s: Power LEDs are now reset to the state they were in during + coldboot, whereas previously they would not have been so, upon warm reboot. + This patch is courtesy Mate Kukri. +* ThinkPad T480/T480s: Fixed the backlight control keys (Fn key combination). + Brightness could already be set, but not with the Fn keys, only with software + e.g. `xbacklight`. Now it functions the way users expect, and demand. This + fix is courtesy Mate Kukri. +* `lib.sh`: Python versions are detected using Python's own built-in tuple, + instead of relying on the `--version` argument, because the tuple is more + consistent across various distros, whereas some distros might modify the + output of `--version` to include their own branding, which could have messed + up the way our build system was using `awk`. +* `lib.sh`: Properly set up `python` in the `PATH` directorier, by creating + a temporary link to the correct Python version, where detected. Python 3 + is the only python on most distros now, but we still occasionally encounter + setups where the user has `python` as v2.x and has `python3` in PATH for + Python v3.x; in this latter scenario, the build system corrects for it so + that `python` is temporarily v3.x while images are being compiled. Several + parts of the build system do use Python quite heavily, and it is *always* + Python 3. +* `vendor.sh`: Generally more robust checking of whether vendor files are + needed, and better handling of the event in which they are not; fewer errant + error conditions, that should otherwise not be error conditions, where they + would have previously been so. +* `vendor.sh`: Prevent double-nuke and double-inject. This is done by checking + whether the hash file is present, because it's removed post-injection now, + on the newly re-written inject command since 20241206 revision 8. +* `vendor.sh`: Don't error out if `vcfg` is not set. Later checks make it + skip instead, as is proper. The previous behaviour caused an error under + certain edge cases, when attempting to inject on boards that don't need + vendor files. +* `submodule/grub`: Use codeberg as the primary mirror, instead of the GNU + mirror, because the GNU mirror is often slow. This is done specifically + for the `gnulib` GRUB submodule. +* `util/nvmutil`: Describe what the program does, in help output. The lack + of such info is considered a bug, because lack of documentation is a bug. +* `util/nvmutil`: Proper `PREFIX` and `DESTDIR` handling in the Makefile. + The default prefix is now `/usr/local`, as is correct and righteous; it + was previously `/usr`. All variables are now properly honoured, + namely: `DESTDIR`, `PREFIX`, `INSTALL`, `CC` and `CFLAGS` - the user can + now set custom variables, when compiling. +* Fixed several errors produced by `shellcheck` on the build system. +* HP EliteBook 820 G2: Fixed vendorfile insertion so that checksums now + verify properly. The board is no longer `release="n"`, so now images for it + are provided, whereas the board was previously source-only on Libreboot. +* Added `libuuid-devel` to Fedora dependencies. +* T480 / T480s / 3050 Micro: Force power-off after power failure, when + power is restored. Previously, under such an event, plugging in a charger + or power supply would then always cause the machine to turn on, with no + ability to change this. This would happen if the battery ran out on a T480, + for example. +* flashprog: Disable `-Werror` on builds, to prevent over-zealous compilers + from yielding errors on mere warnings. This is a preventative bug fix, + because no errors had yet been observed. +* Debian dependencies: Replaced `liblz4-tool` with `liblz4-dev`, for + Debian Trixie/Sid. The same config still works for Debian Bookworm. +* `u-boot`: Imported a fix from upstream, that prevents a build error when + compiling with Swig 4.3.0, because the calling convention changed on one + of the functions that U-Boot's build system uses. Specifically, + the `SWIG_AppendOutput` is used now. The way this fix works means that there + are no behaviour changes, when compiling on an older machine with, + say, Swig 4.1.0 as used in Debian Bookworm, which is what Libreboot currently + uses on this day, when compiling releases. We still want the build system + to work on newer distros. +* Use `command -v` instead of `which`, where the latter was previously used + in a few places on the build system. The `command -v` command is standard, + whereas `which` isn't. This is to + mitigate [which hunts](https://lwn.net/Articles/874049/). +* Added double quotes on several variables in the build system, to prevent + globbing. +* Removed auto-confirm options on distro dependencies scripts. This is to + prevent buggy distros from messing up the user's packages, because now it + will show a confirmation dialog when the package manager sees a conflict; + previously, the build system just said yes to everything, which reduced the + amount of user interaction. The idea is to annoy the user, rather than + break their machine, and this is only a mild annoyance. +* `trees`: Hack the `PATH` environmental variable to link GCC and GNAT, matching + them so that both versions are the same. This mitigates an issue on Debian + Trixie/Sid as of January 2025, whereby `gcc` is `gcc-14` while `gnat` + is `gnat-13` and also installs `gcc-13`; if this ids what the user has, GCC + is set to GCC 13 in `PATH`. The user can install `gnat-14` if they wish, + and the GNAT version is auto-matched in `PATH` instead, matching GCC. This + is only done when compiling the coreboot crossgcc toolchain, because GNAT + is required there and must match the GCC version. +* Disabled TPM2 on ThinkPad T480/T480s, to speed up the boot time on SeaBIOS, + because SeaBIOS's TPM driver is buggy and constantly times out on this + board, when the TPM is enabled. This causes the boot speeds to now be almost + instantaneous. +* `dependencies/debian`: Changed `python3-distutils` + to `python3-distutils-extra`, so that dependencies can be installed on + Debian Trixie/Sid; the same config still works on Debian Bookworm. +* Added SPDX headers to various configuration files. +* `git.sh`: Re-initialise the `livepull` variable per-project and per-tree, + so that previous runs of it do not unpredictably affect the next, when + cloning upstream Git repositories. +* `vendor.sh`: Fixed a bug whereby the `lock` file was not deleted under + certain circumstances, when vendor files were not needed on a given board. + The consequence of this bug was that the user would have to manually delete + the lock file, to prevent error. +* `lib.sh`: Safer exit when running `./mk dependencies` (don't rely on the + exit statuses of chained commands being zero). + +General code cleanup +-------------------- + +In descending order from the latest changes to the earliest changes: + +* `util/nvmutil`: Make the GbE checksum of `0xBABA` a define, for clarity. +* `lib.sh`: cleaned up a few if statements +* `util/nvmutil`: Tidied up several `pledge` calls on OpenBSD (code quality + improvement). +* Remove unused deguard patch, which was only used on the old version prior + to Mate Kukri's re-write. +* Removed geteltorito and mtools from distro dependencies, because it's not + currently used by anything. + +Git log +======= + +This log is relative to Libreboot 20241206 *revision 7*: + +``` +* 7d26f0a9c21 Libreboot 20241206, 8th revision +* d4cc94d6b44 rom.sh: don't run mkpicotool on dry builds +* de6d2f556f1 pico-sdk: Import picotool as a dependency +* 4210ee68ea2 lib.sh: Much safer python version check +* 8c7ba6131cc coreboot/next uprev: Fix T480 backlight keys +* 411fb697dfc set up python in PATH, ensuring that it is python3 +* e8336bcc3ca vendor.sh: Proper semantics on prefix file names +* 63f45782638 vendor.sh: Confirm if need_files=n +* 13b06ae130f vendor.sh: Allow restoring the default GbE file +* ab8feff92e0 vendor.sh: set random MAC address *by default* +* 0ceaa01d45d vendor.sh: add clarification to nogbe warning +* 4d5caf1dcfc vendor.sh: check that the vcfg file exists +* fc4ee88e167 vendor.sh: error out if nuking failed +* 8819a93d89b add line break, part 3 +* 8ce1a00f517 add line break, part 2 +* bc2c14e76a8 add line break +* c762850311a vendor.sh: prevent double-nuke +* 68299ad05ca vendor.sh: much more verbose errors/confirmation +* b8e6d12f3d9 add libx86 to arch dependencies +* cf8ad497b4e vendor.sh: Remove unnecessary return +* c858099b359 vendor.sh: Download utils even if vcfg unset +* ce16856a242 vendor.sh: Allow setmac if vendorfiles not needed +* 4b51787d078 add less to arch dependencies +* 8bd028ec153 lib.sh: Set python after dependencies +* 44b6df7c24c update my copyright years on modified scripts +* 818f3d630c2 vendor.sh: Don't error if vcfg is unset +* 432a1a5bca7 lib.sh: Fix unescaped quotes in chkvars() +* a73b0fd910a Revert "fix more unescaped quotes in eval" +* ec6bcc1fba5 fix more unescaped quotes in eval +* 5284f20b981 fix ./mk dependencies build issue +* d825f9a9683 rom.sh: Remove errant GRUB modules check +* 4149f3dc81a submodule/grub: use codeberg for 1st gnulib mirror +* 0305975e705 util/nvmutil: Update AUTHORS and COPYING files +* 20b192e13bd util/nvmutil: Describe nvmutil in help output +* d1ca21628cb util/nvmutil: Remove the correct binary on uninstall +* e63fe256dfc util/spkmodem-recv: More correct Makefile +* efd50ee548b util/nvmutil: Honour the INSTALL variable +* 8008838abbc util/nvmutil: Don't clean when doing uninstall +* 982f257f58a util/nvmutil: Proper DESTDIR/PREFIX handling +* 3f85ae5f853 util/nvmutil: Set CC and CFLAGS only if unset +* 2c7b9fb9412 util/nvmutil: Capitalise BABA +* 57f9906f6d1 util/nvmutil: Add uninstall to Makefile +* 4defe2c6085 util/nvmutil: Add distclean to Makefile +* 033e4cd9d50 util/nvmutil: Make the GbE checksum a define +* 874317c4e59 util/nvmutil: nicer hexdump display +* a338e585eed util/nvmutil: show the correct hexdump order +* b032e483ef1 lib.sh mktarball: cleaner if statement +* 0cf58c22734 fix lbmk shellcheck errors +* 8276560cc99 lib.sh and rom.sh: update my header +* 08e86d2218c vendor.sh inject: reset err upon return +* 41275d699ca vendor.sh: MUCH, MUCH, MUCH safer ./mk inject +* ed7293494e3 util/nvmutil: Obey the 79-character per line limit +* 637b5e36fd2 util/nvmutil: Tidy up copyright header +* cd28db883e2 vendor.sh: fix comment +* 57971ceb227 util/nvmutil: Fix another straggler +* 15b37b2a1ab util/nvmutil: Tidy up pledge calls +* e8799310db2 hp820g2: fix vendorfile inject and set release=y +* f9ab082ec19 fedora41/dependencies: add libuuid-devel +* 661591f9f0b add uuid-devel to fedora41 dependencies +* 1a46c047386 support ./mk dependencies fedora reinstall +* d58d63569f1 fix missing semicolon in grub nvme patch +* 95ea3293df5 bump seabios to rev 1602647f1 (7 November 2024) +* 6d7e6c361b3 Bump GRUB revision to 6811f6f09 (26 November 2024) +* 09a01477df6 t480/3050micro: force power off post power failure +* d344cd95eac flashprog: Disable -Werror +* dc95e912bfe bump flashprog to revision eb2c041 (14 Nov 2024) +* 27c8c1c16ba replace liblz4-tool with lz4 and liblz4-dev +* d3a732a64db lib.sh dependencies: support --reinstall argument +* 466ada423dd move xbmkpath to XBMK_CACHE/ +* b0a23840327 Revert "Remove legacy update/vendor commands" +* 3d7dd4aa9fe Fix U-Boot build issue with Swig 4.3.0 +* 0c810747469 use command -v instead of which +* 6c7e3ce2d6e trees: remove unnecessary subshell +* ad137eae89d trees: only symlink host gcc/gnat to build xgcc +* cfb6de94c33 trees: correction on check_gnu_path +* ec2f0716662 trees: match gcc/gnat versions both ways +* f64b5996279 Merge path.sh into script/trees +* 295463d281e path.sh: Further cleanup +* 5b24e0a5a96 path.sh: More thorough gcc/gnat version check +* 7849a075886 path.sh: minor cleanup +* 17168a87dbf path.sh: remove unnecessary shebang +* e565df94fd7 Fix globbing issue in lbmk +* c80cc0a00b6 remove auto-confirm on distro dependencies +* 01fc65a0a9d Mitigate Debian Trixie/Sid GCC/GNAT version mismatch +* 424b0c7103b t480/3050micro: disable hyperthreading +* 603105f3b4e t480/t480s: Disable TPM2 to mitigate SeaBIOS lag +* 754bd1e6ca3 rom.sh: Name pico directory serprog_pico +* db22308eba5 add 2024 to Riku's copyright header on rom.sh +* 4fa5f696db8 Merge pull request 'rp2530' (#258) from Riku_V/lbmk:rp2530 into master +|\ +| * a5e0360992d pico-sdk: update to 2.1.0 +| * e2f8cc7f3ee pico-serprog: enable building for multiple pico chips +|/ +* ccc2b4d589f add spdx headers to dependencies configs +* a3969701e6b dependencies/debian: fix debian sid +* 8f370cb60d9 add spdx headers to various config files +* d591ea4c5dc git.sh: don't initialise livepull globally +* b5da9feba3b vendor.sh: Print useful message on ./mk inject +* 12c6259cb2f vendor.sh: Handle FSP insertion post-release +* 78132051462 Remove legacy update/vendor commands +* 07037561bd6 lbmk: remove use of deprecated ./vendor command +* 5d1f1823067 vendor.sh: Safer exit when vendorfiles not needed +* a18175a5df9 data/deguard: Remove unused patch +* ee8f53b96ff lib.sh: Safer exit from ./mk dependencies +* a8b35c88cf1 remove geteltorito and mtools from lbmk +* 1dd32ea5487 rom.sh: support grub-first setups +``` + +This is roughly 100 changes. + +Older revisions +========= + +Please review the +original [Libreboot 20241206 announcement](libreboot20241206.md), and +the [Libreboot 20241206 revisions page](libreboot20241206.Revisions.md). + +Formalised release schedule +================= + +We normally just do a release and that's it. It's still tentative, and this +may change, but it has so far been decided that the 2025 release schedule will +look like this: + +* April 13th: testing release +* June 12th: stable release +* October 31st: testing release +* December 6th: stable release + +Where any release is made, revisions such as today's 20241206 revision 8 can +be re-released. On stable releases, only the most desirable improvements and +fixes will be made, without substantially altering the substance of the +original release, while testing releases can have wilder revisions; where the +current release is a testinng release, revisions should be frozen in place +about 1 month before the scheduled stable release. + +This is preferable because it offers much more flexibility, and it means that +stable releases can be closer to upstream whereas previously they'd be +about 3-6 months behind, e.g. the Libreboot 20241206 release uses coreboot +revisions from the summer of 2024, but some of them are closer to December +of 2024. + +This was decided, ever since the 20241206 release, which just so happened to +compliment a 20240612 release. Symmetry is good, as is predictability. From 090e58d4f84125bdcf035efcadd1cd5c13a03c77 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 6 Jan 2025 21:42:50 +0000 Subject: [PATCH 232/399] formatting Signed-off-by: Leah Rowe --- site/news/libreboot20241206.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index b6825e0..25aec2c 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -41,13 +41,13 @@ system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). U-Boot UEFI payload on x86\_64 ------------------------------ - - For Libreboot 20241206, today's release, U-Boot is *also* provided as an optional coreboot payload on x86 machines. This provides a sensible UEFI implementation, useful for booting Linux/BSD systems more easily. More information available on the [U-Boot x86 page](../docs/uboot/uboot-x86.md). + + This means that you can have a UEFI boot environment, even on machines where the original vendor firmware never supported it. For example, the ThinkPad X200 runs U-Boot virtually bug-free, and it can boot Linux distros via U-Boot's UEFI From a6478d6797236e86a765efb24c92d3ae3b711434 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 7 Jan 2025 04:42:16 +0000 Subject: [PATCH 233/399] nvmutil: Remove redundant information Licensing is already mentioned in the source code for nvmutil. Putting it in the documentation just means that it'll go out of date over time, as it already has; instead of updating it, remove it. Documentation is under the GNU licensing that Libreboot documentation uses. Signed-off-by: Leah Rowe --- site/docs/install/nvmutil.md | 32 ++------------------------------ 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/site/docs/install/nvmutil.md b/site/docs/install/nvmutil.md index d40e4bf..e4e5237 100644 --- a/site/docs/install/nvmutil.md +++ b/site/docs/install/nvmutil.md @@ -562,33 +562,5 @@ it was part of osboot, is still available (for reference) here: * -LICENSE -======= - -This page is released under different copyright terms than most other pages -on this website. - -The `nvmutil` software and documentation are released under the following -terms: - -Copyright 2022 Leah Rowe - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY -CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, -TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE -SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. - +Please use the latest nvmutil version. The above information is provided +only for reference. From d120ebf8f2dd87a3db0768eb45dc773228ddcefb Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 7 Jan 2025 08:33:39 +0000 Subject: [PATCH 234/399] document ./mk inject setmac on the nvmutil page Signed-off-by: Leah Rowe --- site/docs/install/nvmutil.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/site/docs/install/nvmutil.md b/site/docs/install/nvmutil.md index e4e5237..e7eee19 100644 --- a/site/docs/install/nvmutil.md +++ b/site/docs/install/nvmutil.md @@ -45,6 +45,36 @@ you how to dump or otherwise acquire that file; the second half of this README then tells you how to operate on it, using `nvmutil`. +Automatic MAC address changer +----------------------------- + +Instead of running nvmutil manually, like below, you can +also use the inject command, like so (examples): + + ./mk inject libreboot-RELEASE_targetname.tar.xz + ./mk inject libreboot-RELEASE_targetname.tar.xz setmac + ./mk inject libreboot-RELEASE_targetname.tar.xz setmac 00:1f:16:00:11:22 + ./mk inject libreboot-RELEASE_targetname.tar.xz setmac 00:??:16:0?:1?:22 + ./mk inject libreboot-RELEASE_targetname.tar.xz setmac restore + +This writes the MAC address on the GbE region of the image. You must do this +on the tarball, from the ROM image release archives, and then extract the +archive. + +These same commands also [download/insert certain vendor files](ivy_has_common.md) +if needed, on the given board. + +Without argument after the tarball, it behaves the same as `setmac`. If `setmac` +is provided without argument, or no argument is given, the MAC address is +randomised. Otherwise, you can specify an arbitrary address. + +The `?` character is random, and you can specify that any of them be random, +while setting others (or all of them) arbitrarily. + +The `restore` option restores the original one. The command works by using a +reference GbE image file present in Libreboot's build system, for the given +mainboard. + How to download newer versions ============================== From 315f4cd6b26640d2306cf3af51f5f77094e07d48 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 7 Jan 2025 15:17:31 +0000 Subject: [PATCH 235/399] mention dependencies on nvmutil.md Signed-off-by: Leah Rowe --- site/docs/install/nvmutil.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/site/docs/install/nvmutil.md b/site/docs/install/nvmutil.md index e7eee19..5f5b876 100644 --- a/site/docs/install/nvmutil.md +++ b/site/docs/install/nvmutil.md @@ -25,6 +25,8 @@ swap/copy and dump regions on Intel PHY NVM images, which are small binary configuration files that go in flash, for Gigabit (ethernet) Intel NICs. +**Please [install build dependencies](../build/) before you do this.** + This software is largely targeted at coreboot users, but it can be used on most modern Intel systems, or most systems from about 2008/2009 onwards. @@ -48,6 +50,8 @@ using `nvmutil`. Automatic MAC address changer ----------------------------- +**Please [install build dependencies](../build/) before you do this.** + Instead of running nvmutil manually, like below, you can also use the inject command, like so (examples): From e10c9b80f016ffccd4a6aa687e5d92aee2562f5b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 8 Jan 2025 03:40:12 +0000 Subject: [PATCH 236/399] t480 page: mention the newer patchset used we use patchset 25 now, on the gerrit patch Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 3713b80..6fb8d7e 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -86,8 +86,8 @@ Official information about the T480 can be found here:\ This port is implemented in Libreboot by merging Mate Kukri's T480/T480s -patchset. See: - as of 5 -December 2024, Libreboot's code matches that of patchset 22. +patchset. See: - as of 6 +January 2025, Libreboot's code matches that of patchset 25. Preparing a release Rom ----------------------- From 5443cd0d05bcd79a24579780baafd8f13ef654d9 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 8 Jan 2025 17:22:26 +0000 Subject: [PATCH 237/399] re-organise the pico flashing instructions the instructions were a bit crap, for example it wasn't clear that you can get the firmawre pre-compiled in libreboot releases. adapt it accordingly. Signed-off-by: Leah Rowe --- site/docs/install/spi.md | 71 +++++++++++++++++++++---------- site/docs/install/spi.zh-cn.md | 76 +++++++++++++++++++++++++++------- 2 files changed, 112 insertions(+), 35 deletions(-) diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index 21c6546..90f5f9e 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -67,6 +67,9 @@ is called *external* because it's not the *internal* one on your mainboard. Raspberry Pi Pico ================= +RP2040/RP2530 both supported +---------------------------- + **Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8 or higher. Releases before this only supported the original Pico, and other RP2040 dongles; newer Libreboot releases now support both RP2040 and RP2530.** @@ -83,16 +86,19 @@ Additionally, all the software running on it is free, down to the full versions (Pico W & Pico WH) need vendor firmware to use the Wi-Fi chip, but that is not needed for following this guide. -A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't -destroy your board by sending 5V to it. If you have a 1.8V flash chip, -you need to add a logic level converter. +Download serprog firmware pre-compiled +------------------------- -First, connect just the Pico to your computer with a micro-USB cable. -Mount it like any other USB flash drive. If it isn't detected, you might need -to press the BOOTSEL button while you plug it in (this forces it into the -bootloader mode). +Download the pico serprog tarball from Libreboot releases. For example, the +Libreboot 20241206rev8 one would be +named: `libreboot-20241206rev8_pico_serprog.tar.xz` - it's available under +the `roms/` directory in each release. With these binaries, you can easily +get started. -You can download the serprog firmware here:\ +Build serprog firmware from source +---------------------------------- + +You can alternatively download the serprog firmware here:\ \ or here:\ @@ -101,7 +107,7 @@ You can also find the source code for these, under `src/` in Libreboot release archives (source code tarball), and/or under `src/` in `lbmk.git` if downloading using the build instructions below. -Copy the file `rpi-pico-serprog.uf2` into your Pico. To build this firmware, you +Alternatively to the binaries, you could build it yourself or you could also clone `lbmk.git` and [install build dependencies](../build/#first-install-build-dependencies), then inside lbmk, do: @@ -109,10 +115,39 @@ do: ./mk -b pico-serprog This will automatically build the rpi-pico firmware, and the file will be -at `bin/serprog_rp2040/serprog_pico.uf2` -and `bin/serprog_rp2040/serprog_pico_w.uf2` - images with `pico2` in the +at `bin/serprog_pico/serprog_pico.uf2` +and `bin/serprog_pico/serprog_pico_w.uf2` - images with `pico2` in the file name are for the Pico 2, and they can also be used. +Install the serprog firmware +---------------------------- + +First, connect just the Pico to your computer with a micro-USB cable. +Mount it like any other USB flash drive. If it isn't detected, you might need +to press the BOOTSEL button while you plug it in (this forces it into the +bootloader mode). + +When you have the build, or if you're using a release build, copy the +file `.uf2` file into your Pico. You must make sure to build the correct +target, or otherwise copy the correct file, because many RP2040 and RP2530 +devices exist and Libreboot provides images for **all of them** in the same +release tarball. + +**NOTE: Other RP2040/2530 devices will also work. You just have to match +the right pins and use the correct firmware file!** + +Logic levels +------------ + +A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't +destroy your board by sending 5V to it. If you have a 1.8V flash chip, +you need to add a logic level converter. **Please ensure that you have matched +the voltage of your programmer to the voltage of your chip; both the data lines +and power lines to the chip must match.** + +Wiring +------ + Disconnect the Pico and proceed to wire it to your [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). @@ -125,6 +160,8 @@ above](https://av.libreboot.org/rpi_pico/pinout_serprog.png) ![A Raspberry Pi Pico connected to a SOIC16 flash chip](https://av.libreboot.org/rpi_pico/soic16_x200.webp) +![SOIC-8 to Pico pinout diagram](https://av.libreboot.org/rpi_pico/soic8_pico_pinouts.jpg) + Headers were manually soldered on the top side, and the plastic packaging was repurposed as an insulating base. These might be nice to have, but by no means necessary. If your headers are on the other side, just keep in mind @@ -135,7 +172,7 @@ will appear: [453876.669019] cdc_acm 2-1.2:1.0: ttyACMx: USB ACM device -Take note of the ttyACMx. Flashrom is now usable +Take note of the ttyACMx. Flashprog is now usable (substitute ttyACMx with what you observed earlier). flashprog -p serprog:dev=/dev/ttyACMx,spispeed=16M @@ -143,15 +180,7 @@ Take note of the ttyACMx. Flashrom is now usable spispeed=32M usually works, but since it's not much faster it's probably not worth it. The 12Mbps USB port is limiting the actual speed here. -Raspberry Pi Pico SOIC-8 wiring -------------------------------- - -When using a Raspberry Pi Pico to program a SOIC-8 flash chip with -`pico-serprog`, you may use the following diagram, which contains the -Raspberry Pi Pins and the pinouts of the typical SOIC-8 chip to wire up -your programmer: - -![SOIC-8 to Pico pinout diagram](https://av.libreboot.org/rpi_pico/soic8_pico_pinouts.jpg) +Higher speeds might work nicely, on Pico 2. Do not use CH341A! ================== diff --git a/site/docs/install/spi.zh-cn.md b/site/docs/install/spi.zh-cn.md index 46b9abb..bb9b705 100644 --- a/site/docs/install/spi.zh-cn.md +++ b/site/docs/install/spi.zh-cn.md @@ -43,6 +43,9 @@ libreboot 目前记录了这些 SPI 编程器的使用方法: Raspberry Pi Pico ================= +RP2040/RP2530 both supported +---------------------------- + **Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8 or higher. Releases before this only supported the original Pico, and other RP2040 dongles; newer Libreboot releases now support both RP2040 and RP2530.** @@ -59,21 +62,28 @@ Additionally, all the software running on it is free, down to the full versions (Pico W & Pico WH) need vendor firmware to use the Wi-Fi chip, but that is not needed for following this guide. -A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't -destroy your board by sending 5V to it. If you have a 1.8V flash chip, -you need to add a logic level converter. +Download serprog firmware pre-compiled +------------------------- -First, connect just the Pico to your computer with a micro-USB cable. -Mount it like any other USB flash drive. If it isn't detected, you might need -to press the BOOTSEL button while you plug it in (this forces it into the -bootloader mode). +Download the pico serprog tarball from Libreboot releases. For example, the +Libreboot 20241206rev8 one would be +named: `libreboot-20241206rev8_pico_serprog.tar.xz` - it's available under +the `roms/` directory in each release. With these binaries, you can easily +get started. -You can download the serprog firmware here:\ +Build serprog firmware from source +---------------------------------- + +You can alternatively download the serprog firmware here:\ \ or here:\ -Copy the file `rpi-pico-serprog.uf2` into your Pico. To build this firmware, you +You can also find the source code for these, under `src/` in Libreboot release +archives (source code tarball), and/or under `src/` in `lbmk.git` if downloading +using the build instructions below. + +Alternatively to the binaries, you could build it yourself or you could also clone `lbmk.git` and [install build dependencies](../build/#first-install-build-dependencies), then inside lbmk, do: @@ -81,16 +91,52 @@ do: ./mk -b pico-serprog This will automatically build the rpi-pico firmware, and the file will be -at `bin/serprog_rp2040/serprog_pico.uf2` -and `bin/serprog_rp2040/serprog_pico_w.uf2` - images with `pico2` in the +at `bin/serprog_pico/serprog_pico.uf2` +and `bin/serprog_pico/serprog_pico_w.uf2` - images with `pico2` in the file name are for the Pico 2, and they can also be used. +Install the serprog firmware +---------------------------- + +First, connect just the Pico to your computer with a micro-USB cable. +Mount it like any other USB flash drive. If it isn't detected, you might need +to press the BOOTSEL button while you plug it in (this forces it into the +bootloader mode). + +When you have the build, or if you're using a release build, copy the +file `.uf2` file into your Pico. You must make sure to build the correct +target, or otherwise copy the correct file, because many RP2040 and RP2530 +devices exist and Libreboot provides images for **all of them** in the same +release tarball. + +**NOTE: Other RP2040/2530 devices will also work. You just have to match +the right pins and use the correct firmware file!** + +Logic levels +------------ + +A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't +destroy your board by sending 5V to it. If you have a 1.8V flash chip, +you need to add a logic level converter. **Please ensure that you have matched +the voltage of your programmer to the voltage of your chip; both the data lines +and power lines to the chip must match.** + +Wiring +------ + Disconnect the Pico and proceed to wire it to your [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). -![Raspberry Pi Pico pinout, when using the firmware linked above](https://av.libreboot.org/rpi_pico/pinout_serprog.png) +**NOTE: SCK and CLK mean the same thing. The diagram below says SCK, and other +parts of this guide say CLK. It's the same thing!** -![A Raspberry Pi Pico connected to a SOIC16 flash chip](https://av.libreboot.org/rpi_pico/soic16_x200.webp) +![Raspberry Pi Pico pinout, when using the firmware linked +above](https://av.libreboot.org/rpi_pico/pinout_serprog.png) + +![A Raspberry Pi Pico connected to a SOIC16 flash +chip](https://av.libreboot.org/rpi_pico/soic16_x200.webp) + +![SOIC-8 to Pico pinout diagram](https://av.libreboot.org/rpi_pico/soic8_pico_pinouts.jpg) Headers were manually soldered on the top side, and the plastic packaging was repurposed as an insulating base. These might be nice to have, but by no @@ -102,7 +148,7 @@ will appear: [453876.669019] cdc_acm 2-1.2:1.0: ttyACMx: USB ACM device -Take note of the ttyACMx. Flashrom is now usable +Take note of the ttyACMx. Flashprog is now usable (substitute ttyACMx with what you observed earlier). flashprog -p serprog:dev=/dev/ttyACMx,spispeed=16M @@ -110,6 +156,8 @@ Take note of the ttyACMx. Flashrom is now usable spispeed=32M usually works, but since it's not much faster it's probably not worth it. The 12Mbps USB port is limiting the actual speed here. +Higher speeds might work nicely, on Pico 2. + 不要使用 CH341A! ================== From abceff29c6f5cec5034c1e104fd1d8cce0e7787c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 9 Jan 2025 03:39:14 +0000 Subject: [PATCH 238/399] Fix historical oversight regarding GRUB Argon2id Patrick Steinhardt did the original work, importing PHC Argon2id into GRUB; this fact was unintentionally excluded from the Libreboot documentation. Ax333l imported it into GRUB on the AUR, and Nicholas Johnson later rebased it for GRUB 2.12, for use by the Libreboot project. Credit where credit is due. The principle of the matter is that I apologise for this oversight. It has now been corrected. Signed-off-by: Leah Rowe --- site/docs/linux/grub_hardening.md | 5 ++++- site/news/argon2.md | 3 +++ site/news/argon2.uk.md | 3 +++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index 00d438b..c28afd6 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -15,7 +15,10 @@ Full disk encryption ==================== [Encrypted /boot with LUKS2 on argon2 key derivation is now -possible](../../news/argon2.md). +possible](../../news/argon2.md) - the work is based on that done by +Patrick Steinhardt, importing PHC's Argon2 implementation. This was later added +to GRUB 2.06 on the Arch Linux AUR by Ax333l, and Nicholas Johnson later rebased +it for GRUB 2.12 to use in Libreboot's GRUB payload. This is covered in the [main Linux guide](./#encrypted-boot-via-luks2-with-argon2), in the diff --git a/site/news/argon2.md b/site/news/argon2.md index 1703ddc..0d752ec 100644 --- a/site/news/argon2.md +++ b/site/news/argon2.md @@ -25,6 +25,9 @@ had been done, and I then merged Nicholas's work into Libreboot. Thank you, Nicholas! Thanks also go to [Axel](https://axelen.xyz/) who is the author of the original work that Nicholas imported from Archlinux AUR. +The work on AUR, and Nicholas's update based on it, was ultimately based on +the work done by Patrick Steinhardt for the GRUB project, importing PHC Argon2. + Why does this matter? --------------------- diff --git a/site/news/argon2.uk.md b/site/news/argon2.uk.md index aa639e7..1671f93 100644 --- a/site/news/argon2.uk.md +++ b/site/news/argon2.uk.md @@ -25,6 +25,9 @@ AUR](https://aur.archlinux.org/cgit/aur.git/tree/?h=grub-improved-luks2-git&id=1 Ніколас! Подяка також іде до [Аксель](https://axelen.xyz/), хто є автором оригінальної роботи, яку Ніколас імпортував з Archlinux AUR. +The work on AUR, and Nicholas's update based on it, was ultimately based on +the work done by Patrick Steinhardt for the GRUB project, importing PHC Argon2. + Чому це має значення? --------------------- From 6be0468d052da0754f3e4afb4a2a98fdfebb0ecb Mon Sep 17 00:00:00 2001 From: Steffen Pankratz Date: Thu, 9 Jan 2025 20:53:41 +0100 Subject: [PATCH 239/399] dell3050: misc typo fixes Signed-off-by: Steffen Pankratz --- site/docs/install/dell3050.md | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index 64aa6b1..d7d82e0 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -51,6 +51,7 @@ P*: Partially works with vendor firmware | **GRUB (libgfxinit only)** | Works | | **SeaBIOS** | Works |
+ Buy pre-installed ================= @@ -135,7 +136,7 @@ OS-based software attacks). MAC address ----------- -This has a realtek NIC inside, instead of Intel, so the MAC address will not +This has a Realtek NIC inside, instead of Intel, so the MAC address will not change. This means: there is no GbE region in the flash. You can still use something like GNU MAC Changer to change your MAC address @@ -168,7 +169,7 @@ instructions](../install/spi.md) - that page refers to use of socketed flash. The side cover comes off easily, and you can find the flash ICs next to the RAM. Simply remove the screw at the back. The top panel then slides forward, and you -can remove the SSD caddy; from then on, the flash is accossible. +can remove the SSD caddy; from then on, the flash is accessible. Observe the following photo of the flash (SOIC-8): @@ -229,9 +230,9 @@ On *this* platform, you can easily turn it off from coreboot. onward, on this board. To turn it back on, please [build from source](../build/) and before running the build command, do this: - ./mk -m coreboot t480_vfsp_16mb # replace t480 with t480s if needed + ./mk -m coreboot dell3050micro_vfsp_16mb -In the menu that appears, go *Chipset -> Enable Hyperthreading* and turn it on. +In the menu that appears, go *Chipset -> Enable Hyper-Threading* and turn it on. Then exit from the menu, saving the config where prompted. You will see this menu twice, because there are *two* configs for each of these boards. From c6d4b6fa6b3cfaba15375b3d96dac450d8d27ec6 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 9 Jan 2025 20:02:13 +0000 Subject: [PATCH 240/399] fix inaccuracy the statement in question was true when we only supported up to intel haswell platform; the newer platforms still need some more work Signed-off-by: Leah Rowe --- site/freedom-status.md | 5 +++-- site/freedom-status.uk.md | 9 +++++---- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/site/freedom-status.md b/site/freedom-status.md index 8a1dc3d..738785c 100644 --- a/site/freedom-status.md +++ b/site/freedom-status.md @@ -204,8 +204,9 @@ Memory controller initialisation -------------------------------- Libreboot has *fully libre* initialisation available for all Intel memory -controllers on supported platforms. This *includes* Haswell (ThinkPad T440p -and W541) as of Libreboot 20230319 or higher. +controllers up to and including Haswell (ThinkPad T440p +and W541) as of Libreboot 20230319 or higher; on Broadwell, Intel MRC is used +and on Skylake/newer, FSP-M is used. ARM platforms (chromebooks) ============= diff --git a/site/freedom-status.uk.md b/site/freedom-status.uk.md index 1132e8d..92df089 100644 --- a/site/freedom-status.uk.md +++ b/site/freedom-status.uk.md @@ -289,12 +289,13 @@ T440p ідуть з обома графічними картками Intel та libreboot є налаштовуваним, дозволяючи користувачу робити все, що заманеться."* - налаштовуваний, напевно! Дивіться: [docs/maintain/](docs/maintain/) -Ініціалізація контролера пам'яті +Memory controller initialisation -------------------------------- -Libreboot має *повністю вільну* ініціалізацію, доступну для всіх контролерів пам'яті Intel -на платформах, які підтримуються. Це *включає* Haswell (ThinkPad T440p -та W541), станом на Libreboot 20230319 та пізніші. +Libreboot has *fully libre* initialisation available for all Intel memory +controllers up to and including Haswell (ThinkPad T440p +and W541) as of Libreboot 20230319 or higher; on Broadwell, Intel MRC is used +and on Skylake/newer, FSP-M is used. Платформи ARM (chromebook) ============= From a7dd851f5b3844372369bbb55018511c6a18cd89 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 10 Jan 2025 15:20:17 +0000 Subject: [PATCH 241/399] link Signed-off-by: Leah Rowe --- site/footer.de.include | 1 + site/footer.include | 1 + site/footer.it.include | 1 + site/footer.uk.include | 1 + site/footer.zh-cn.include | 1 + 5 files changed, 5 insertions(+) diff --git a/site/footer.de.include b/site/footer.de.include index 0800551..60d521f 100644 --- a/site/footer.de.include +++ b/site/footer.de.include @@ -3,6 +3,7 @@ * [Binäre Blob Richtlinie](/news/policy.md) * [Freiheits Status](/freedom-status.md) +* [Canoeboot](https://canoeboot.org/) * [Diese Seite bearbeiten](/git.de.md) * [Lizenz](/license.md) * [Vorlage](/template-license.md) diff --git a/site/footer.include b/site/footer.include index 0fd47af..93c4306 100644 --- a/site/footer.include +++ b/site/footer.include @@ -3,6 +3,7 @@ * [Binary Blob Reduction Policy](/news/policy.md) * [Freedom status](/freedom-status.md) +* [Canoeboot](https://canoeboot.org/) * [Edit this page](/git.md) * [License](/license.md) * [Template](/template-license.md) diff --git a/site/footer.it.include b/site/footer.it.include index b25e96a..a32cdcf 100644 --- a/site/footer.it.include +++ b/site/footer.it.include @@ -3,6 +3,7 @@ * [Politica di riduzione di parti binarie proprietarie (blobs)](/news/policy.md) * [Grado di liberta' possibile](/freedom-status.md) +* [Canoeboot](https://canoeboot.org/) * [Modifica questa pagina](/git.de.md) * [Licenza](/license.md) * [Modelli di licenze](/template-license.md) diff --git a/site/footer.uk.include b/site/footer.uk.include index b612493..8520ed7 100644 --- a/site/footer.uk.include +++ b/site/footer.uk.include @@ -3,6 +3,7 @@ * [Політика бінарних блобів](/news/policy.md) * [Статус свободи](/freedom-status.md) +* [Canoeboot](https://canoeboot.org/) * [Редагувати цю сторінку](/git.md) * [Ліцензія](/license.md) * [Шаблон](/template-license.uk.md) diff --git a/site/footer.zh-cn.include b/site/footer.zh-cn.include index dea13d1..d6e8fc3 100644 --- a/site/footer.zh-cn.include +++ b/site/footer.zh-cn.include @@ -3,6 +3,7 @@ * [二进制 blob 政策](/news/policy.md) * [自由度现状](/freedom-status.md) +* [Canoeboot](https://canoeboot.org/) * [编辑本页面](/git.md) * [许可证](/license.md) * [模板](/template-license.md) From 8ba82574fb20d83359dae9c6a1ff7022ec97c4a6 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 10 Jan 2025 15:28:25 +0000 Subject: [PATCH 242/399] snip Signed-off-by: Leah Rowe --- site/news/policy.de.md | 7 ------- site/news/policy.md | 7 ------- site/news/policy.uk.md | 7 ------- 3 files changed, 21 deletions(-) diff --git a/site/news/policy.de.md b/site/news/policy.de.md index 1ad4405..ca3be12 100644 --- a/site/news/policy.de.md +++ b/site/news/policy.de.md @@ -180,13 +180,6 @@ exist, for example, the work done by Sam Zeloof and the Libre Silicon project: Why? ==== -This next section previously existed in a less than diplomatic manner. It -has been restored, as of August 2024, because the wisdom that it provides is -important, yet being respectful of our friends in Massachussets is also -a good thing to do, where feasible. This section was previously deleted, as -a gesture of good will to those people, but it can't not be here, so without -further ado: - Firstly, observe the following graphic: ![](https://av.libreboot.org/firmware.png) diff --git a/site/news/policy.md b/site/news/policy.md index 7db07c3..dbb2661 100644 --- a/site/news/policy.md +++ b/site/news/policy.md @@ -245,13 +245,6 @@ exist, for example, the work done by Sam Zeloof and the Libre Silicon project: Why? ==== -This next section previously existed in a less than diplomatic manner. It -has been restored, as of August 2024, because the wisdom that it provides is -important, yet being respectful of our friends in Massachussets is also -a good thing to do, where feasible. This section was previously deleted, as -a gesture of good will to those people, but it can't not be here, so without -further ado: - Firstly, observe the following graphic: ![](https://av.libreboot.org/firmware.png) diff --git a/site/news/policy.uk.md b/site/news/policy.uk.md index a808979..5ab0b37 100644 --- a/site/news/policy.uk.md +++ b/site/news/policy.uk.md @@ -174,13 +174,6 @@ Libreboot вирішує цю ситуацію *суворо* та *принци Why? ==== -This next section previously existed in a less than diplomatic manner. It -has been restored, as of August 2024, because the wisdom that it provides is -important, yet being respectful of our friends in Massachussets is also -a good thing to do, where feasible. This section was previously deleted, as -a gesture of good will to those people, but it can't not be here, so without -further ado: - Firstly, observe the following graphic: ![](https://av.libreboot.org/firmware.uk.png) From 55d17ed3e9bab04973512e421f332ff69b6253b7 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 10 Jan 2025 15:47:09 +0000 Subject: [PATCH 243/399] fix hcl link Signed-off-by: Leah Rowe --- site/index.de.md | 2 +- site/index.fr.md | 4 ++-- site/index.it.md | 2 +- site/index.md | 2 +- site/index.ru.md | 2 +- site/index.uk.md | 2 +- 6 files changed, 7 insertions(+), 7 deletions(-) diff --git a/site/index.de.md b/site/index.de.md index cbda7ee..34ee870 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -5,7 +5,7 @@ x-toc-enable: true Das *Libreboot* Projekt bietet eine [freie](https://writefreesoftware.org/) *Boot -Firmware* welche auf [bestimmten Intel/AMD x86 und ARM Geräten](docs/install/) +Firmware* welche auf [bestimmten Intel/AMD x86 und ARM Geräten](docs/install/#which-systems-are-supported-by-libreboot) die Hardware initialisiert (z.b. Speicher-Controller, CPU, Peripherie), und dann einen Bootloader für dein Betriebssystem startet. [Linux](docs/linux/) sowie [BSD](docs/bsd/) werden gut unterstützt. Es ersetzt proprietäre BIOS/UEFI diff --git a/site/index.fr.md b/site/index.fr.md index 342efde..0a30619 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -3,7 +3,7 @@ title: Projet Libreboot x-toc-enable: true --- -Le projet Libreboot fournit un firmware [libre et Open-Source](https://writefreesoftware.org/) basé sur Coreboot, remplaçant le BIOS/UEFI propriétaire sur des [cartes mères Intel/AMD x86 et ARM](docs/install/), pour des ordinateurs de bureau et des ordinateurs portables. +Le projet Libreboot fournit un firmware [libre et Open-Source](https://writefreesoftware.org/) basé sur Coreboot, remplaçant le BIOS/UEFI propriétaire sur des [cartes mères Intel/AMD x86 et ARM](docs/install/#which-systems-are-supported-by-libreboot), pour des ordinateurs de bureau et des ordinateurs portables. Il initialise le matériel (le contrôleur de mémoire, le CPU, les périphériques) et lance un bootloader pour votre système d’exploitation. Les systèmes [Linux](docs/linux/) et [BSD](docs/bsd/) sont bien pris en charge. De l’aide est disponible sur [\#Libreboot](https://web.libera.chat/#Libreboot) via [Libera](https://libera.chat/). La page des tâches répertorie les projets en cours (les contributions sont les bienvenues si vous souhaitez y travailler vous-même). @@ -80,4 +80,4 @@ Si vous souhaitez participer à le traduction, vous pouvez traduire des pages, m [Comment proposer une traduction pour Libreboot.org](news/translations.md) -Et même si quelqu'un travaille déjà sur des traductions dans une langue donnée, nous pouvons travailler à plusieurs. Plus on est de fous, plus on rit ! \ No newline at end of file +Et même si quelqu'un travaille déjà sur des traductions dans une langue donnée, nous pouvons travailler à plusieurs. Plus on est de fous, plus on rit ! diff --git a/site/index.it.md b/site/index.it.md index 1e96919..c1e758a 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -5,7 +5,7 @@ x-toc-enable: true Il progetto *Libreboot* fornisce avvio [libero e open source](https://writefreesoftware.org/) grazie al firmware basato su coreboot, sostituendo cosi', firmware BIOS/UEFI proprietario -su [alcune schede madri basate su Intel/AMD x86 o ARM](docs/install/), +su [alcune schede madri basate su Intel/AMD x86 o ARM](docs/install/#which-systems-are-supported-by-libreboot), in computer fissi e portatili. Inizializza l'hardware (controller di memoria, CPU, periferiche) e avvia un bootloader per il tuo sistema operativo. [Linux](docs/linux/) e [BSD](docs/bsd/) sono ben supportati. diff --git a/site/index.md b/site/index.md index e6b2a43..81e3bb6 100644 --- a/site/index.md +++ b/site/index.md @@ -6,7 +6,7 @@ x-toc-enable: true The *Libreboot* project provides [free, open source](https://writefreesoftware.org/) (*libre*) boot firmware based on coreboot, replacing proprietary BIOS/UEFI firmware -on [specific Intel/AMD x86 and ARM based motherboards](docs/install/), +on [specific Intel/AMD x86 and ARM based motherboards](docs/install/#which-systems-are-supported-by-libreboot), including laptop and desktop computers. It initialises the hardware (e.g. memory controller, CPU, peripherals) and starts a bootloader for your operating system. [Linux](docs/linux/) and [BSD](docs/bsd/) are well-supported. Help is diff --git a/site/index.ru.md b/site/index.ru.md index fd3ed59..44a4db2 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -3,7 +3,7 @@ title: Проект Libreboot x-toc-enable: true ... -Проект *Libreboot* предоставляет [свободную, с открытым исходным кодом](https://writefreesoftware.org/) загрузочную прошивку, основанную на coreboot, заменяющую проприетарные BIOS/UEFI на [некоторых Intel/AMD x86 и ARM материнских платах](docs/install/), включая ноутбуки и десктопы. Она инициализирует аппаратное обеспечение компьютера (например, контроллер памяти, процессор, переферию) и запускает загрузчик для вашей операционный системы. [Linux](docs/linux/) и [BSD](docs/bsd/) хорошо поддерживаются. Можно попросить помощь через [\#libreboot](https://web.libera.chat/#libreboot) на [Libera](https://libera.chat/) IRC. [Страница с заданиями](tasks/) показывают, над чем мы работаем (мы приветствуем ваши предложения, если вы хотите поработать над некоторыми задачами самостоятельно). +Проект *Libreboot* предоставляет [свободную, с открытым исходным кодом](https://writefreesoftware.org/) загрузочную прошивку, основанную на coreboot, заменяющую проприетарные BIOS/UEFI на [некоторых Intel/AMD x86 и ARM материнских платах](docs/install/#which-systems-are-supported-by-libreboot), включая ноутбуки и десктопы. Она инициализирует аппаратное обеспечение компьютера (например, контроллер памяти, процессор, переферию) и запускает загрузчик для вашей операционный системы. [Linux](docs/linux/) и [BSD](docs/bsd/) хорошо поддерживаются. Можно попросить помощь через [\#libreboot](https://web.libera.chat/#libreboot) на [Libera](https://libera.chat/) IRC. [Страница с заданиями](tasks/) показывают, над чем мы работаем (мы приветствуем ваши предложения, если вы хотите поработать над некоторыми задачами самостоятельно). diff --git a/site/index.uk.md b/site/index.uk.md index 9b67f17..06f7271 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -6,7 +6,7 @@ x-toc-enable: true Проект *Libreboot* надає [вільну](https://writefreesoftware.org/) *завантажувальну прошивку*, яка ініціалізує апаратне забезпечення (наприклад, контролер пам'яті, ЦП, -периферію) на [конкретних цілях Intel/AMD x86 та ARM](docs/install/), що +периферію) на [конкретних цілях Intel/AMD x86 та ARM](docs/install/#which-systems-are-supported-by-libreboot), що потім розпочинає завантажувач для вашої операційної системи. [Linux](docs/linux/) та [BSD](docs/bsd/) добре підтримуються. Це заміняє пропрієтарну BIOS/UEFI прошивку. Допомога доступна From d9a4d2c5ce1d1dd09658d43fb64d8ccc8393644d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 10 Jan 2025 15:55:24 +0000 Subject: [PATCH 244/399] fix links Signed-off-by: Leah Rowe --- site/docs/install/index.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 8a538c6..c8bf85d 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -77,8 +77,8 @@ Servers (AMD, x86) Desktops (AMD, Intel, x86) -------------------------- -- **[Dell OptiPlex 7020/9020 MT and SFF](dell9020.md) - Also [available to buy - with Libreboot preinstalled](https://minifree.org/product/libreboot-9020/)** - Dell OptiPlex XE2 MT/SFF also known to work +- **[Dell OptiPlex 3050 Micro](dell3050.md) - Also [available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-3050-micro/)** +- [Dell OptiPlex 7020/9020 MT and SFF](dell9020.md) - Dell OptiPlex XE2 MT/SFF also known to work - [Acer G43T-AM3](acer_g43t-am3.md) - Apple iMac 5,2 - [ASUS KCMA-D8 motherboard](kcma-d8.md) @@ -86,7 +86,6 @@ Desktops (AMD, Intel, x86) research is needed) - 9010 also known to work. No GPIO changes, so it should be safe to flash. - [Dell OptiPlex 780 variants e.g. MT, USFF](dell780.md) -- [Dell OptiPlex 3050 Micro](dell3050.md) - [Dell OptiPlex 7010/9010 SFF](dell7010.md) **(for MT, please use the T1650 image)** - Dell Precision T1700 (use the same ROM as 9020 MT, but it won't have ECC support) - [Dell Precision T1650](t1650.md) **(the same ROM works on 7010/9010 MT variant)** @@ -99,11 +98,9 @@ Desktops (AMD, Intel, x86) Laptops (Intel, x86) -------------------- -- [Lenovo ThinkPad T480 and ThinkPad T480s](t480.md) -- **Lenovo ThinkPad T440p - Also [available - to buy with Libreboot preinstalled](https://minifree.org/product/libreboot-t440p/)** -- **Lenovo ThinkPad W541 - Also [available to - buy with Libreboot preinstalled](https://minifree.org/product/libreboot-w541/)** - NOTE: W540 also compatible (same mainboard, so flash the same ROM) +- **[Lenovo ThinkPad T480 and ThinkPad T480s](t480.md) - Also [available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-t480/)** +- Lenovo ThinkPad T440p +- Lenovo ThinkPad W541 - Lenovo ThinkPad X230 - *Also* available on Minifree: - [Apple MacBook1,1 and MacBook2,1](macbook21.md) - [Dell Latitude E4300, E6400, E6400 XFR and E6400 ATG, all with Nvidia or Intel From 3d494145ad8f855d527d721f2e208d25f761a8c9 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 10 Jan 2025 15:57:58 +0000 Subject: [PATCH 245/399] fix links again Signed-off-by: Leah Rowe --- site/docs/install/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/install/index.md b/site/docs/install/index.md index c8bf85d..e7ac9aa 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -77,7 +77,7 @@ Servers (AMD, x86) Desktops (AMD, Intel, x86) -------------------------- -- **[Dell OptiPlex 3050 Micro](dell3050.md) - Also [available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-3050-micro/)** +- [Dell OptiPlex 3050 Micro](dell3050.md) - **Also [available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-3050-micro/)** - [Dell OptiPlex 7020/9020 MT and SFF](dell9020.md) - Dell OptiPlex XE2 MT/SFF also known to work - [Acer G43T-AM3](acer_g43t-am3.md) - Apple iMac 5,2 @@ -98,7 +98,7 @@ Desktops (AMD, Intel, x86) Laptops (Intel, x86) -------------------- -- **[Lenovo ThinkPad T480 and ThinkPad T480s](t480.md) - Also [available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-t480/)** +- [Lenovo ThinkPad T480 and ThinkPad T480s](t480.md) - Also **[available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-t480/)** - Lenovo ThinkPad T440p - Lenovo ThinkPad W541 - Lenovo ThinkPad X230 - *Also* available on Minifree: From d25c4185f053ffa924e4f14a55c7a09083d86a4c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 10 Jan 2025 16:01:01 +0000 Subject: [PATCH 246/399] fix links again again for some reason, the first one on the list doesn't translate to html during page generation Signed-off-by: Leah Rowe --- site/docs/install/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/install/index.md b/site/docs/install/index.md index e7ac9aa..2db7059 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -77,7 +77,7 @@ Servers (AMD, x86) Desktops (AMD, Intel, x86) -------------------------- -- [Dell OptiPlex 3050 Micro](dell3050.md) - **Also [available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-3050-micro/)** +- [Dell OptiPlex 3050 Micro](dell3050.html) - **Also [available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-3050-micro/)** - [Dell OptiPlex 7020/9020 MT and SFF](dell9020.md) - Dell OptiPlex XE2 MT/SFF also known to work - [Acer G43T-AM3](acer_g43t-am3.md) - Apple iMac 5,2 @@ -98,7 +98,7 @@ Desktops (AMD, Intel, x86) Laptops (Intel, x86) -------------------- -- [Lenovo ThinkPad T480 and ThinkPad T480s](t480.md) - Also **[available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-t480/)** +- [Lenovo ThinkPad T480 and ThinkPad T480s](t480.html) - Also **[available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-t480/)** - Lenovo ThinkPad T440p - Lenovo ThinkPad W541 - Lenovo ThinkPad X230 - *Also* available on Minifree: From aa98970a8891e3a3300a6fca1df3314f8e7dbdb3 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 10 Jan 2025 16:27:51 +0000 Subject: [PATCH 247/399] acknowledgement Signed-off-by: Leah Rowe --- site/news/10.md | 88 ++++++++++++++++++++++++++++++++++++++++++------- 1 file changed, 76 insertions(+), 12 deletions(-) diff --git a/site/news/10.md b/site/news/10.md index edc68e6..59bc34d 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -2,18 +2,6 @@ % Leah Rowe % 12 December 2023 -**This page was restored during August 2024, having been deleted earlier on -in 2024 - it was deleted as part of Libreboot's attempt to reconcile -differences with FSF/GNU, and much of this page is hostile to it (and has to be, -because it's focusing on the history of the Libreboot project, which has -historically been at odds with the FSF both socially, technically and -politically. The restored version is essentially identical, but has been -edited without altering any of the substance, and further information going -up to the month of August 2024 has been added at the end, which was not -available earlier on because... Libreboot has not yet invented time travel.** - -Anyway, article time: - I'm very proud of the work done in Libreboot, both by myself and by others who I work with. Many people make Libreboot possible, be it direct contributors to the project, or the countless individuals and companies that work on all @@ -1477,6 +1465,8 @@ date, in terms of code and documentation respectively. 2024 reconciliation intentions ============================== +**This reconciliation was cancelled. Please see the [update from January 2025](#january-1st-2025-update).** + The *FSF* started the coldboot war. Libreboot merely won it. From 2024 onward, unless more hostilities develop from FSF/GNU's side, I intend @@ -1487,6 +1477,9 @@ that question is projects such as Libreboot, or indeed others like GNU Boot, Heads, Skulls, MrChromebox... you name it. Distros, designed similarly to Linux distros, but for building boot firmware instead. +The *first* coldbootwar occured between 19 March 2023 and 31 December 2023, +described in the article above. + Much of 2023 was spent counteracting the FSF's coup, because they were hostile to the Libreboot project, but I decided that I will avoid any such counter action from now on. I will stil develop Canoeboot, but my main focus is @@ -1552,3 +1545,74 @@ the erstwhile *gluglug* domain then redirecting to it, and I registered Minifree Ltd in the UK. Minifree is how I fund the Libreboot project, by selling computers with Libreboot pre-installed. You can find it on [minifree.org](https://minifree.org/). + +January 1st, 2025, UPDATE! +======================== + +The truce of 2024 has ended. GNU Boot did a talk during 38C3 conference, where +they spent at least *one third* of the talk, telling people to stop using +Libreboot, to stop promoting Libreboot, stop contributing to it. This is an +act of war against the Libreboot project. + +Therefore, Cold Boot War II was declared, in the early hours of January 1st, 2025. +There won't be much material difference sa a result of this, but the consequence +is that there is no longer good will from Libreboot towards the GNU project. + +Canoeboot will be developed as aggressively as before, if not more so. It will +be maintained and updated aggressively, but now with this fact in mind, and +with the view that the GNU Boot project must be contained; the mere existence +of the Canoeboot project is a direct attack on GNU Boot, and it will continue. + +I was going to approach the GNU project and start a discussion about shutting +down the Canoeboot project, and merge it with GNU Boot, helping them to bring +their project up to date - for example, as of January 2025, GNU Boot *still* +uses the same late 2021 coreboot and GRUB revisions that it used when GNU +Boot started back in June 2023. + +Such an attempt at collaboration was made before, and it was rejected. It is +clear now that the GNU Boot developers have nothing but contempt. Therefore, +the agenda from 1 January 2025 onward, is to *replace* GNU Boot; to move +so far ahead of the project on a technical level, and to overwhelm it so much +in that regard, that the project effectively no longer exists as a practical +matter. + +Canoeboot is vastly superior to GNU Boot. Its [design](https://canoeboot.org/docs/maintain/) +is much simpler and more powerful in practise, doing *more* in fewer lines +of code - and it supports more hardware. Canoeboot is, at this time, interested +in more GM45-based Dell Latitude models and X4x-based Dell OptiPlex 780 variants, +among other ports. Other works are also planned. + +Canoeboot shall continue, and there will not be a 2nd truce. The truce +of 2024 was announced unilaterally by the Libreboot project, at the start +of 2024, in the interest of improving relations. + +For those interested, the talk is here: + + +In it, they strongly imply that all Libreboot boards use Intel FSP/MRC, which +isn't true. Everything up to Haswell uses completely free raminit; completely +free initialisation within coreboot. + +In general, Libreboot's [Binary Blob Reduction Policy](policy.md) dictates +that if Free Software *can* be used, it must be - as a result, many systems +supported by Libreboot, boot entirely with free software. Libreboot is a free +software project, whose primary goal is to increase software freedoms for users +by providing them with free boot firmware. And yet: GNU Boot's talk strongly +suggests that Libreboot is a *proprietary software project*. + +In GNU Boot's talk, they directly state that I, Leah Rowe, am "against 100% +free software" - also false. I want everyone to use Free Software exclusively, +but the reality is that this is literally impossible, on any hardware. The +reason is strongly described in Libreboot's [Freedom Status](../freedom-status.md) +and [Binary Blob Reduction Policy](policy.md) pages. + +It is clear, then, that the GNU Boot project wishes to undermine the Libreboot +project; their dream is that Libreboot will one day cease to exist. So in +response, Libreboot has this dream too, but about GNU Boot. + +The outcome of coldbootwar will be described in the *next* decade anniversary page, +on 12 December 2033. It is strongly expected that Libreboot will continue to +exist and thrive by then; today's Libreboot will be vastly inferior to that +future Libreboot, and it is expected that GNU Boot will have been dead for years. +Canoeboot will still be maintained regularly. That is the dream, and it is my +wish that this dream be fully realised. It shall be done. From 4bd184da81f24a2932d03f3181812e7ad5cdeb85 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 10 Jan 2025 16:29:21 +0000 Subject: [PATCH 248/399] don't link Signed-off-by: Leah Rowe --- site/news/10.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/news/10.md b/site/news/10.md index 59bc34d..03c04c3 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -1587,7 +1587,7 @@ of 2024 was announced unilaterally by the Libreboot project, at the start of 2024, in the interest of improving relations. For those interested, the talk is here: - +**https://www.youtube.com/watch?v=dHJ9m6HRwq0** In it, they strongly imply that all Libreboot boards use Intel FSP/MRC, which isn't true. Everything up to Haswell uses completely free raminit; completely From ee4aca89fc6d85f4729a7d3e687a193758799c16 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 10 Jan 2025 16:30:55 +0000 Subject: [PATCH 249/399] typo Signed-off-by: Leah Rowe --- site/news/10.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/news/10.md b/site/news/10.md index 03c04c3..6bb9467 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -1610,7 +1610,7 @@ It is clear, then, that the GNU Boot project wishes to undermine the Libreboot project; their dream is that Libreboot will one day cease to exist. So in response, Libreboot has this dream too, but about GNU Boot. -The outcome of coldbootwar will be described in the *next* decade anniversary page, +The outcome of coldbootwar2 will be described in the *next* decade anniversary page, on 12 December 2033. It is strongly expected that Libreboot will continue to exist and thrive by then; today's Libreboot will be vastly inferior to that future Libreboot, and it is expected that GNU Boot will have been dead for years. From 8c678d515d76ad689de62af4a08ffcf9b5394181 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 11 Jan 2025 00:20:04 +0000 Subject: [PATCH 250/399] make "coreboot distro" a link to docs/maintain/ do this in every place where the term is used Signed-off-by: Leah Rowe --- site/index.md | 3 +- site/news/10.md | 5 ++-- site/news/audit5.md | 3 +- site/news/audit6.md | 3 +- site/news/libreboot20240225.md | 3 +- site/news/libreboot20240504.md | 3 +- site/news/libreboot20240612.md | 3 +- site/news/libreboot20241008.md | 3 +- site/news/libreboot20241206.md | 3 +- site/news/libreboot20241206rev8.md | 44 ++++++++++++++++-------------- 10 files changed, 42 insertions(+), 31 deletions(-) diff --git a/site/index.md b/site/index.md index 81e3bb6..371981f 100644 --- a/site/index.md +++ b/site/index.md @@ -53,7 +53,8 @@ the early user interface, for booting an operating system. This *payload* infrastructure means you can run whatever you want (even Linux!) from the boot flash. -Libreboot is specifically a *coreboot distribution*, in the same way that +Libreboot is specifically a *[coreboot distribution](docs/maintain)*, +in the same way that Debian is a *Linux distribution*. Libreboot makes coreboot easy to use for non-technical users, by providing a [fully automated build system](docs/maintain/), [automated build process](docs/build/) and diff --git a/site/news/10.md b/site/news/10.md index 6bb9467..244d6a7 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -138,7 +138,8 @@ support and MacBook 2,1 support were added. This first year of the project was spent on building solid infrastructure, specifically documentation and an automated build system. The design of Libreboot revolves around scripts that automatically download, patch, configure and then compile various codebases, -so you can think of it like a *coreboot distribution*; Libreboot's build +so you can think of it like a *[coreboot distribution](../docs/maintain/)*; +Libreboot's build system is essentially a source-based package manager, for coreboot components. The very first Libreboot releases only provided a *GNU GRUB* payload. The @@ -314,7 +315,7 @@ provide such automation. It's the same concept as a *Linux distribution*, but in the context of boot firmware. A project like *Debian* automatically builds many codebases from all over the internet, putting it all together to provide an operating system that users can simply install. Libreboot applies that same -concept to *coreboot*, so it is a *coreboot distribution*. +concept to *coreboot*, so it is a *[coreboot distribution](../docs/maintain/)*. Libreboot was the *first* coreboot distro ever, and today is still the most popular one. Several similar projects now exist, inspired by the example that diff --git a/site/news/audit5.md b/site/news/audit5.md index 8de0178..ceda45c 100644 --- a/site/news/audit5.md +++ b/site/news/audit5.md @@ -17,7 +17,8 @@ controller all way to peripherals, readying the hardware so that it can run software, e.g. Linux/BSD operating systems. You can essentially think of *lbmk*, which is Libreboot's build system, as a *source-based package manager*. It is what the Libreboot releases are built with. The *lbmk* build system essentially -implements a *coreboot distro*, the same way you might think of a Linux +implements a *[coreboot distro](../docs/maintain/)*, +the same way you might think of a Linux distribution. Extensive auditing has been performed on lbmk, since the Libreboot 20240504 diff --git a/site/news/audit6.md b/site/news/audit6.md index eaa6b89..a86f045 100644 --- a/site/news/audit6.md +++ b/site/news/audit6.md @@ -17,7 +17,8 @@ controller all way to peripherals, readying the hardware so that it can run software, e.g. Linux/BSD operating systems. You can essentially think of *lbmk*, which is Libreboot's build system, as a *source-based package manager*. It is what the Libreboot releases are built with. The *lbmk* build system essentially -implements a *coreboot distro*, the same way you might think of a Linux +implements a *[coreboot distro](../docs/maintain/)*, +the same way you might think of a Linux distribution; it systematically downloads, resets (to specific revisions) and patches various upstream project sources such as coreboot, U-Boot and GRUB, automatically building entire coreboot images. This build system is what creates diff --git a/site/news/libreboot20240225.md b/site/news/libreboot20240225.md index b0d8ca4..60f36ba 100644 --- a/site/news/libreboot20240225.md +++ b/site/news/libreboot20240225.md @@ -7,7 +7,8 @@ Introduction Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an -operating system (e.g. Linux/BSD). It is specifically a *coreboot distribution*, +operating system (e.g. Linux/BSD). It is specifically +a *[coreboot distribution](../docs/maintain/)*, in the same way that Debian is a Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy diff --git a/site/news/libreboot20240504.md b/site/news/libreboot20240504.md index d477184..ea0d07f 100644 --- a/site/news/libreboot20240504.md +++ b/site/news/libreboot20240504.md @@ -11,7 +11,8 @@ Introduction Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an -operating system (e.g. Linux/BSD). It is specifically a *coreboot distribution*, +operating system (e.g. Linux/BSD). It is specifically +a *[coreboot distribution](../docs/maintain/)*, in the same way that Debian is a Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy diff --git a/site/news/libreboot20240612.md b/site/news/libreboot20240612.md index 9c0f3d8..5ef3cf5 100644 --- a/site/news/libreboot20240612.md +++ b/site/news/libreboot20240612.md @@ -12,7 +12,8 @@ Introduction Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an -operating system (e.g. Linux/BSD). It is specifically a *coreboot distribution*, +operating system (e.g. Linux/BSD). It is specifically +a *[coreboot distribution](../docs/maintain/)*, in the same way that Debian is a Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy diff --git a/site/news/libreboot20241008.md b/site/news/libreboot20241008.md index 370a738..9426b55 100644 --- a/site/news/libreboot20241008.md +++ b/site/news/libreboot20241008.md @@ -15,7 +15,8 @@ Introduction Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an -operating system (e.g. Linux/BSD). It is specifically a *coreboot distribution*, +operating system (e.g. Linux/BSD). It is specifically +a *[coreboot distribution](../docs/maintain/)*, in the same way that Debian is a Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 25aec2c..864c60e 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -26,7 +26,8 @@ Introduction Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an -operating system (e.g. Linux/BSD). It is specifically a *coreboot distribution*, +operating system (e.g. Linux/BSD). It is specifically +a *[coreboot distribution](../docs/maintain/)*, in the same way that Debian is a Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy diff --git a/site/news/libreboot20241206rev8.md b/site/news/libreboot20241206rev8.md index 5648a44..d11a544 100644 --- a/site/news/libreboot20241206rev8.md +++ b/site/news/libreboot20241206rev8.md @@ -7,6 +7,29 @@ Today's Libreboot 20241206 revision, which is the 8th revision in the Libreboot to Libreboot 20241206 revision 7 which was released on 18 December 2024. The *original* Libreboot 20241206 release came out on 6 December 2024. +What is Libreboot? +============ + + + +Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing +boot firmware that initialises the hardware in your computer, to then load an +operating system (e.g. Linux/BSD). It is specifically +a *[coreboot distribution](../docs/maintain/)*, +in the same way that Debian is a Linux distribution. It provides an automated +build system to produce coreboot ROM images with a variety of payloads such as +GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +to use as possible for non-technical users. From a project management perspective, +this works in *exactly* the same way as a Linux distro, providing a source-based +package manager (called lbmk) which patches sources and compiles coreboot images. +It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, +and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) +or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating +system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). + +We also provide an experimental U-Boot setup on x86, as a coreboot payload for +providing a minimal UEFI implementation. + Regarding revision 8 ==================== @@ -40,27 +63,6 @@ YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** -What is Libreboot? -============ - - - -Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing -boot firmware that initialises the hardware in your computer, to then load an -operating system (e.g. Linux/BSD). It is specifically a *coreboot distribution*, -in the same way that Debian is a Linux distribution. It provides an automated -build system to produce coreboot ROM images with a variety of payloads such as -GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy -to use as possible for non-technical users. From a project management perspective, -this works in *exactly* the same way as a Linux distro, providing a source-based -package manager (called lbmk) which patches sources and compiles coreboot images. -It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, -and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) -or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating -system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). - -We also provide an experimental U-Boot setup on x86, as a coreboot payload for -providing a minimal UEFI implementation. Summarised list of changes ========================== From ba3ca8c23da22687772d8e4cd53a747dcba00977 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 11 Jan 2025 02:11:07 +0000 Subject: [PATCH 251/399] update images on translated home pages they didn't show the t480 photo as the main one Signed-off-by: Leah Rowe --- site/index.de.md | 10 +++++++--- site/index.fr.md | 12 +++++++----- site/index.it.md | 10 +++++++--- site/index.ru.md | 6 +++--- site/index.uk.md | 10 +++++++--- site/index.zh-cn.md | 8 +++++--- 6 files changed, 36 insertions(+), 20 deletions(-) diff --git a/site/index.de.md b/site/index.de.md index 34ee870..8e59dcf 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -13,7 +13,7 @@ Firmware. Hilfe ist verfügbar via [\#libreboot](https://web.libera.chat/#libreboot) und [Libera](https://libera.chat/) IRC. - + You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, aswell as send your compatible hardware @@ -28,6 +28,8 @@ Siehe auch: [Libreboot 20241206 release announcement](news/libreboot20241206.md) Warum solltest Du *Libreboot* verwenden? ---------------------------- + + Libreboot gibt dir [Freiheit](https://writefreesoftware.org/) welche Du mit den meisten Boot Firmwares nicht hast, und zusätzlich schnellere Boot Geschwindigkeiten sowie [höhere Sicherheit](docs/linux/grub_hardening.md). @@ -59,7 +61,7 @@ Dokumentation ist verfügbar. Libreboot ist kein Coreboot Fork ----------------------------------- - + Tatsächlich versucht Libreboot so nah am regulären Coreboot zu bleiben wie möglich, für jedes Board, aber mit vielen automatisch durch das Libreboot Build System zur @@ -88,7 +90,7 @@ Kenntnisse oder Fertigkeiten abgesehen von der Fähigkeit einer Wie kann ich helfen ----------- - + Der beste Weg wie Du helfen kannst, ist das *hinzufügen* neuer Mainboards in Libreboot, indem Du eine Konfiguration zur Verfügung stellst. Alles was von @@ -107,6 +109,8 @@ kompetent genug bist jemandem bei seinem Problem zu helfen (oder bereit mit der Person gemeinsam zu lernen), dann ist dies ein wichtiger Beitrag zum Projekt. Viele Leute fragen zudem unter dem Subreddit `r/libreboot` nach Hilfe. + + Eine Liste mit Bugs gibt es unter [Bug Tracker](https://codeberg.org/libreboot/lbmk/issues). diff --git a/site/index.fr.md b/site/index.fr.md index 0a30619..cc327ca 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -6,8 +6,7 @@ x-toc-enable: true Le projet Libreboot fournit un firmware [libre et Open-Source](https://writefreesoftware.org/) basé sur Coreboot, remplaçant le BIOS/UEFI propriétaire sur des [cartes mères Intel/AMD x86 et ARM](docs/install/#which-systems-are-supported-by-libreboot), pour des ordinateurs de bureau et des ordinateurs portables. Il initialise le matériel (le contrôleur de mémoire, le CPU, les périphériques) et lance un bootloader pour votre système d’exploitation. Les systèmes [Linux](docs/linux/) et [BSD](docs/bsd/) sont bien pris en charge. De l’aide est disponible sur [\#Libreboot](https://web.libera.chat/#Libreboot) via [Libera](https://libera.chat/). La page des tâches répertorie les projets en cours (les contributions sont les bienvenues si vous souhaitez y travailler vous-même). - - + Vous pouvez également acheter du matériel avec [Libreboot pré-installé](https://minifree.org/) via l'entreprise Minifree Ltd, ou envoyer votre propre ordinateur [pour y installer Libreboot](https://minifree.org/product/installation-service/). @@ -20,6 +19,8 @@ le 6 December 2024.** Pourquoi devriez-vous utiliser *Libreboot*? ----------------------------------- + + Libreboot vous offre des [libertés](https://writefreesoftware.org/) que vous n’auriez pas avec d’autres micrologiciels de démarrage. [Puissant](docs/linux/grub_hardening.md) et hautement [configurable](docs/maintain), il répond à de nombreux cas d’utilisation. Vous avez des droits : droit à la vie privée, liberté de pensée, liberté d’expression et droit à l’information. Dans ce cadre, Libreboot vous permet de préserver ces droits. Votre liberté est essentielle. Le [droit à la réparation](https://fr.wikipedia.org/wiki/Droit_%C3%A0_la_r%C3%A9paration) est également crucial. Beaucoup de personnes utilisent des micrologiciels propriétaires (non libres), même lorsqu’elles utilisent [un système d'exploitation libre](https://www.openbsd.org/). Ces micrologiciels sont souvent instables et [contiennent](faq.html#intel) parfois des [portes dérobées](faq.html#amd). @@ -32,11 +33,10 @@ Libreboot s’appuie sur [Coreboot](https://www.Coreboot.org) pour Une documentation détaillée est disponible. - Quelles sont les différences entre Libreboot et Coreboot? ------------------------------------------------ - + Contrairement à l'opinion populaire, le but principal de Libreboot n'est pas de fournir un Coreboot sans blobs propriétaires ; ceci n'est qu'une des politiques de Libreboot, certes importante, mais qui reste un aspect mineur de son projet. @@ -49,7 +49,7 @@ Les versions de Libreboot fournissent des images ROM pré-compilées que vous po Comment aider ----------- - + La meilleure façon d'aider le projet est d’ajouter de nouvelles cartes mères au projet Libreboot en soumettant une configuration. Tout ce qui est pris en charge par Coreboot peut être intégré à Libreboot, avec des images ROM fournies dans les versions publiées. Voir : @@ -63,6 +63,8 @@ Le support utilisateur est également crucial. Restez actif sur IRC et, si vous Vous pouvez allez voir les bugs listés sur le [traqueur de bugs](https://codeberg.org/Libreboot/lbmk/issues). + + Vous pouvez nous signaler les bugs que vous trouverez. Vous pouvez également proposer un correctif en [suivant ces instructions pour envoyer des patchs](git.md), Par ailleurs, ce site est écrit en Markdown et hébergé dans un [dépôt séparé](https://codeberg.org/Libreboot/lbwww) où vous pouvez envoyer vos patchs. diff --git a/site/index.it.md b/site/index.it.md index c1e758a..cd10e7b 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -12,7 +12,7 @@ memoria, CPU, periferiche) e avvia un bootloader per il tuo sistema operativo. L'aiuto e' disponibile sul canale IRC [\#libreboot](https://web.libera.chat/#libreboot) su [Libera](https://libera.chat/). - + You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, aswell as send your compatible hardware @@ -26,6 +26,8 @@ Vedi: [Libreboot 20241206 annuncio di rilascio](news/libreboot20241206.md).** Per quale ragione utilizzare *Libreboot*? ----------------------------------------- + + Libreboot ti permette [liberta'](https://writefreesoftware.org/) che non potresti ottenere con altri firmware di boot, velocita' di avvio maggiori e [migliore sicurezza](docs/linux/grub_hardening.md). @@ -57,7 +59,7 @@ installazione piu' robusta. Viene fornito con apposita documentazione. Libreboot non deriva da coreboot -------------------------------- - + In effetti, Libreboot tenta di essere il piu' possibile simile alla versione *ufficiale* di coreboot, per ogni scheda, ma con diversi tipi di configurazione forniti automaticamente dal sistema di @@ -82,7 +84,7 @@ particolari ad eccezione del seguire [semplici istruzioni scritte per chiunque]( Come essere d'aiuto ------------------- - + Il *modo migliore* col quale puoi aiutarci e' quello di *aggiungere* nuove schede condividendone la configurazione. Qualunque cosa sia supportata da coreboot puo' essere integrata in Libreboot, @@ -100,6 +102,8 @@ esperienza puoi aiutare qualcuno in difficolta' (o anche imparare insieme a loro sarai di grande aiuto al progetto. Un sacco di persone chiedono inoltre aiuto nel subreddit `r/libreboot`. + + Puoi controllare l'elenco dei bugs sul [bug tracker](https://codeberg.org/libreboot/lbmk/issues). diff --git a/site/index.ru.md b/site/index.ru.md index 44a4db2..922f04c 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -5,7 +5,7 @@ x-toc-enable: true Проект *Libreboot* предоставляет [свободную, с открытым исходным кодом](https://writefreesoftware.org/) загрузочную прошивку, основанную на coreboot, заменяющую проприетарные BIOS/UEFI на [некоторых Intel/AMD x86 и ARM материнских платах](docs/install/#which-systems-are-supported-by-libreboot), включая ноутбуки и десктопы. Она инициализирует аппаратное обеспечение компьютера (например, контроллер памяти, процессор, переферию) и запускает загрузчик для вашей операционный системы. [Linux](docs/linux/) и [BSD](docs/bsd/) хорошо поддерживаются. Можно попросить помощь через [\#libreboot](https://web.libera.chat/#libreboot) на [Libera](https://libera.chat/) IRC. [Страница с заданиями](tasks/) показывают, над чем мы работаем (мы приветствуем ваши предложения, если вы хотите поработать над некоторыми задачами самостоятельно). - + Вы также можете купить [Libreboot предустановленным](https://minifree.org) от Minifree Ltd, а также присылать нам свои совместимые устройства для [установки Libreboot](https://minifree.org/product/installation-service/). Основатель и ведущий разработчик Libreboot, Лия Роу, также владеет и управляет Minifree; продажи обеспечивают финансирование для Libreboot. @@ -16,7 +16,7 @@ x-toc-enable: true Обзор устройства Libreboot ============================ - + Libreboot предоставляет [coreboot](https://coreboot.org/) для [инициализации машины](https://doc.coreboot.org/getting_started/architecture.html), которая затем переходит к [полезной нагрузке](https://doc.coreboot.org/payloads.html) в загрузочной флэш-памяти; coreboot работает со многими программами, но Libreboot предоставляет только SeaBIOS, GNU GRUB и U-Boot. Memtest86+ также предоставляется, но только на некоторых материнских платах. Полезная нагрузка - программа во флэш-памяти, которая предоставляет "ранний" пользовательский интерфейс для загрузки операционной системы. Это значит, что вы можете запустить все что угодно из загрузочной флэш-памяти (даже Linux!). @@ -25,7 +25,7 @@ Libreboot - это *дистрибутив coreboot* также, как и Debia Почему стоит использовать Libreboot? ================== - + Если вы уже склоняетесь к свободному программному обеспечению, возможно, вы уже пользователь coreboot, Libreboot помогает проще начать использовать или поддерживать coreboot на вашей машине, с помощью автоматизированной сборки. Мы предоставляем регулярные протестированные релизы, предварительно собранные, часто с некоторыми патчами coreboot (и другим кодом) для того, чтобы гарантировать стабильность. Для сравнения, coreboot использует модель плавающих релизов, со снимками кода каждые несколько месяцев, он скорее всего ориентирован на разработчиков, когда как Libreboot специально сделан для конечных пользователей. По-другому, цель Libreboot - *просто работать*. Конфигурация и установка coreboot также возможна, но Libreboot делает процесс *намного* проще. diff --git a/site/index.uk.md b/site/index.uk.md index 06f7271..a337fad 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -13,7 +13,7 @@ x-toc-enable: true через [\#libreboot](https://web.libera.chat/#libreboot) на [Libera](https://libera.chat/) IRC. - + You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, aswell as send your compatible hardware @@ -27,6 +27,8 @@ Minifree; sales provide funding for Libreboot. Чому вам варто використовувати *Libreboot*? ---------------------------- + + Libreboot надає вам [свободи](https://writefreesoftware.org/), які в іншому випадку ви не можете отримати з більшістю інших завантажувальних прошивок. Він надзвичайно [потужний](docs/linux/grub_hardening.md) @@ -55,7 +57,7 @@ Coreboot помітно складний для встановлення для Чим Libreboot відрізняється від звичайного coreboot? --------------------------------------------- - + Таким же самим чином, як *Debian* це дистрибутив Linux, Libreboot це *дистрибутив coreboot*. Якщо ви хочете зібрати образ ROM з нуля, вам @@ -79,7 +81,7 @@ Coreboot помітно складний для встановлення для Як допомогти ----------- - + *Єдиний* найбільший шлях, яким ви можете допомогти є *додавання* нових материнських плат до Libreboot, за допомогою відправки конфігурації. Що завгодно, що підтримує coreboot може бути інтегровано в @@ -100,6 +102,8 @@ Libreboot, з образами ROM наданими в випусках. Див Ви можете перевірити помилки, перелічені в [системі відстеження помилок](https://codeberg.org/libreboot/lbmk/issues). + + Якщо ви помітили помилку і маєте виправлення, [ось інструкції щодо надсилання виправлень](git.uk.md), а також ви можете повідомити про це. Також, весь цей веб-сайт написаний Markdown та розміщений в [окремому сховищі](https://codeberg.org/libreboot/lbwww), де ви можете надсилати виправлення. diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index 43b3fa1..20b4dc6 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -5,7 +5,7 @@ x-toc-enable: true *Libreboot* 项目提供基于 coreboot 的[自由且开源](https://writefreesoftware.org/zh-cn/)的引导固件,以替代基于 Intel/AMD x86 和 ARM 的特定主板(包括笔记本和台式电脑)上的专有 BIOS/UEFI 固件。它首先初始化硬件(如内存控制器、CPU、外设),然后为操作系统启动引导加载程序(bootloader)。本项目对 [Linux](docs/linux/) 和 [BSD](docs/bsd/) 支持良好。如果需要寻求帮助,可以前往 [Libera](https://libera.chat/) IRC 上的 [\#libreboot](https://web.libera.chat/#libreboot) 频道。 - + 你也可以从 Minifree Ltd [购买特定硬件的 Libreboot 电脑](https://minifree.org/), 或者将兼容硬件寄来预装 Libreboot。 @@ -26,7 +26,7 @@ Libreboot 项目使用 [coreboot](https://www.coreboot.org/) 来[初始化硬件 Libreboot 不是 coreboot 的分支 ----------------------------------- - + 事实上,Libreboot 对每一块主板,都尽可能保持与*原版*的 coreboot 接近,但 Libreboot 构建系统也自动提供了许多不同类型的配置。 @@ -39,7 +39,7 @@ Libreboot 的常规二进制版本提供了这些预编译的 ROM 映像。按 如何帮助 ----------- - + 要帮助的话,*最*最好的方式,就是通过提交配置文件,来为 Libreboot *添加*新的主板。coreboot 支持的任何主板都能收录到 Libreboot,并在发布版本中附带 ROM 映像。见: @@ -51,6 +51,8 @@ Libreboot 的常规二进制版本提供了这些预编译的 ROM 映像。按 *用户支持*也十分重要。多瞧一瞧 IRC,如果你有能力帮别人解决问题(或者愿意跟他们一起学习),那对本项目的贡献会很大。许多人也在 reddit 版块 `r/libreboot` 寻求用户支持。 + + 可以检查[缺陷追踪系统](https://codeberg.org/libreboot/lbmk/issues)列出的缺陷。 如果发现了一个缺陷,并且有解决方案,[这里说明了发布补丁的方法](git.md),也可以提交报告。同时,本站完全使用 Markdown 编写,并托管在了一个[单独的仓库](https://codeberg.org/libreboot/lbwww),可以在那里发送补丁。 From 3809609b3e2798108b89898e33fee11a50dbd205 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 11 Jan 2025 04:41:25 +0000 Subject: [PATCH 252/399] add page linking to other coreboot distros Signed-off-by: Leah Rowe --- site/other.md | 219 ++++++++++++++++++++++++++++++++++++ site/template.de.include | 6 +- site/template.include | 4 +- site/template.it.include | 6 +- site/template.uk.include | 6 +- site/template.zh-cn.include | 6 +- 6 files changed, 229 insertions(+), 18 deletions(-) create mode 100644 site/other.md diff --git a/site/other.md b/site/other.md new file mode 100644 index 0000000..0e487d9 --- /dev/null +++ b/site/other.md @@ -0,0 +1,219 @@ +--- +title: Other coreboot distributions +x-toc-enable: true +... + +Introduction +============ + +Libreboot is a *coreboot distribution* or *coreboot distro*, in the same way +that Debian is a *Linux distro*. Its purpose is to provide free/opensource boot +firmware, replacing proprietary BIOS/UEFI firmware, and it +supports [many machines](docs/install/#which-systems-are-supported-by-libreboot). + +It is a coreboot distro precisely because of its [design](docs/maintain/). +Libreboot's build system automatically downloads, patches and builds all the +various upstream sources such as coreboot, GRUB, SeaBIOS, U-Boot and so on. +This automation is used to provide [binary releases](download.md), which the +user can [easily install](docs/install/). Coreboot is notoriously difficult +to configure and install, for most people, and you need a high degree of +technical skill to use it; distros like Libreboot bridge this gap, making +coreboot accessible to non-technical users. + +Libreboot was the *first* coreboot distro, +existing [since December 2013](news/10.md). Many Libreboot users exist today, +who would otherwise not use coreboot at all. + +Why list other distros? +----------------------- + +Over the years, several other coreboot distros have come and gone. It has been +decided that this page will be written, to document some of them. Not every +distro is listed; only those of high quality, or otherwise of interest, will +be listed. Quality over quantity. + +Libreboot tries to support as much hardware as possible, and focuses on providing +the easiest possible experience for non-technical users; it's also +highly [configurable](docs/maintain/) for power users. + +Several other projects exist that target different kinds of users, and support +different types of hardware; for example, Libreboot mostly doesn't target +Chromebooks, except for a few. + +Libreboot's main priority is to provide users with free/opensource boot +firmware, to help more users achieve a higher level +of [software freedom](https://writefreesoftware.org/learn). Well, Libreboot is +one of the most well-known coreboot distros out there, so it is our duty to +therefore cover the other projects, because it may be that Libreboot isn't for +you; these other projects may support features and mainboards that Libreboot +doesn't, that you may find preferable. + +We in the Libreboot project greatly admire and respect the other distros, and +will gladly work with them. + +Without further ado, + +List of coreboot distros +======================== + +In alphabetical order: + +Canoeboot +--------- + +Website: + +Git repositories: + +Canoeboot is a *special fork* of Libreboot; both Canoeboot and Libreboot are +maintained in parallel by the same developer, Leah Rowe. Canoeboot supports +far less hardware than Libreboot, but provides a *pure* free software coreboot +distribution, due to its [policy](https://canoeboot.org/news/policy.html). As +a result of Canoeboot's policy, it currently only supports very old hardware. + +It otherwise has the exact same design as Libreboot, and is kept in relative +sync [at all times](https://canoeboot.org/about.html), often doing releases side +by side on the same days as Libreboot. + +*Libreboot* supports more hardware than Canoeboot, due to its more +pragmatic [Binary Blob Reduction Policy](news/policy.md) adopted on 17 +November 2022; Canoeboot is a continuation of Libreboot from prior to this, +since Libreboot initially used the same dogmatic policy as Canoeboot. A small +minority of users demanded it post-November 2022, so Canoeboot was born. + +If you're an absolute Free Software fanatic, Canoeboot is for you. Otherwise, +if you want to use much newer hardware, Libreboot is a worthy choice. Since +Canoeboot only supports much older hardware, and uses Libreboot's *old* policy, +you could consider Canoeboot to be *legacy Libreboot*. Libreboot adopted the +Binary Blob Reduction Policy in November 2022, as part of a general desire to +support more - and newer - hardware. + +Dasharo +------- + +Website: + +Git repositories: + +Supports many machines, with a choice of EDK2(UEFI) or Heads(Linuxboot) +payload in the flash. Some older machines may provide a SeaBIOS payload +instead. A lot of work that goes into the upstream coreboot project came +from the Dasharo developers. + +Dasharo provides their own fork of coreboot, with a specific tree *per board*. +Several coreboot ports (e.g. MSI Z690-A PRO) were implemented directly by +the Dasharo project, and later upstreamed into the regular coreboot project. + +Dasharo has a special emphasis on commercial application, providing tailored +coreboot images for each supported mainboard, with an emphasis on stability. +It's a very different approach than Libreboot's approach; Libreboot provides +a more generalised design in its build system and infrastructure. + +Chultrabook +----------- + +Website: + +Git repositories: + +Provides a tailored EDK2(UEFI) payload on supported *Chromebooks*. You can use +this to replace ChromeOS with a regular Linux distro or BSD system - even +Windows - if you wish. + +The benefit of using *Chultrabook* is that it provides up to date EDK2, unlike +proprietary vendors who often provide old, CVE-ridden versions of EDK2 forks +such as InsydeH2O. + +With Chultrabook's guidance, you can have a completely up to date UEFI firmware +on your machine, and get good use out of your Chromebook for many more years, +with regular security updates. + +Libreboot largely avoids supporting Chromebooks, precisely because Chultrabook +and MrChromebox are perfectly viable options on these machines. + +Heads +----- + +Website: + +Git repositories: + +Heads provides a LinuxBoot payload using U-Root, and has many advanced features +such as TPM-based MeasuredBoot. With combined use of a FIDO key, you can easily +and more reliably determine whether you boot firmware has been tampered with. + +The Linux-based payload in flash uses kexec to boot another Linux kernel. It +provides an easy to use boot menu, highly configurable and supports many +Linux distros easily. + +If you're the sort of person who needs full disk encryption and you have a +focus on security, Heads is for you. Perfect for use with something like Qubes. + +Libreboot provides its own [security mechanisms](docs/linux/grub_hardening.html), +but Heads is much more flexible and complete, in this regard. The only downside +to Heads's Linux-based flash setup, is that it's basically a Linux-only +coreboot distro (whereas Libreboot can boot BSD and even *Windows*, in some +cases). + +Another focus of the heads project is on *reproducible builds*. Its build +system bootstraps a toolchain that then compiles everything else, including +the coreboot crossgcc toolchain. The purpose of this is to provide matching +ROM hashes on every build; for this purpose, it also auto-downloads vendor +files such as Intel ME at build time, instead of requiring you to dump from +the original boot firmware. + +Heads's vendorcode auto-download logic inspired Libreboot's +own [vendorcode inject](docs/install/ivy_has_common.md) design; Libreboot +greatly expanded on it, on more machines. + +We in Libreboot have an affinity for the Heads project, and have worked with +them in the past, and they with us, helping each other back and forth. Many of +the machines supported in Libreboot are also supported in Heads, and vice versa, +but they target different kinds of users and use-case scenarios, with Libreboot +targeting a more general audience (while providing security hardening options), +whereas Heads specifically targets security-conscious users. + +MrChromeBox +----------- + +Website: + +Git repositories: + +Provides a tailored EDK2(UEFI) payload on supported *Chromebooks*. You can use +this to replace ChromeOS with a regular Linux distro or BSD system - even +Windows - if you wish. + +The benefit of using *MrChromebox* is that it provides up to date EDK2, unlike +proprietary vendors who often provide old, CVE-ridden versions of EDK2 forks +such as InsydeH2O. + +With MrChromebox's guidance, you can have a completely up to date UEFI firmware +on your machine, and get good use out of your Chromebook for many more years, +with regular security updates. + +Libreboot largely avoids supporting Chromebooks, precisely because Chultrabook +and MrChromebox are perfectly viable options on these machines. + +Skulls +------ + +Git repositories: + +Skulls provides simple coreboot images with SeaBIOS payload, on a handful of +Thinkpads. Libreboot *also* provides similar SeaBIOS configurations, on all +of the same machines, but Libreboot's design does mean that there are a few +additional steps for installation. + +If you just want the simplest, most barebones setup, Skulls is a great choice. + +The reason Skulls is simpler is that they include certain vendor files such +as `me.bin` pre-inserted into images; while risky indeed, this does in fact +make installation easier for users. Libreboot takes a more conservative +approach, excluding such files on release images and instead providing you with +an [automated script](docs/install/ivy_has_common.md) to insert these. + +Libreboot *also* provides U-Boot and GRUB, and has other ambitions. Libreboot +aims to provide ease of use while also providing great power and flexibility. +So Libreboot is aimed specifically at power users, while also trying to +accomodate non-technical users; Skulls largely targets the latter. diff --git a/site/template.de.include b/site/template.de.include index 106168d..85e72c7 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -70,18 +70,16 @@ $endif$
  • Home
  • FAQ
  • Download
  • -
  • -
  • +
  • Git
  • Vorinstalliertes Gerät kaufen
  • -
  • -
  • Installation
  • Dokumentation
  • Neuigkeiten
  • Bugs
  • TODO
  • -
  • Patch senden
  • Kontakt
  • -
  • -
  • Spenden
  • +
  • Andere Coreboot-Distributionen

  • diff --git a/site/template.include b/site/template.include index 6a5d9cc..ccbe879 100644 --- a/site/template.include +++ b/site/template.include @@ -70,6 +70,7 @@ $endif$
  • Home
  • FAQ
  • Download
  • +
  • Git
  • -
  • Buy Libreboot preinstalled
  • -
  • @@ -78,10 +79,9 @@ $endif$
  • News
  • Bugs
  • TODO
  • -
  • Send patch
  • Contact
  • -
  • -
  • Donate
  • +
  • Other coreboot distros

  • diff --git a/site/template.it.include b/site/template.it.include index 4a257bf..f50e786 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -70,18 +70,16 @@ $endif$
  • Home
  • FAQ
  • Download
  • -
  • -
  • +
  • Git
  • Compra un PC con libreboot gia' installato
  • -
  • -
  • Installazione
  • Documentazione
  • Notizie
  • TODO
  • Difetti (bugs)
  • -
  • Spedisci correzioni (patches)
  • Contatti
  • -
  • -
  • Donazioni
  • +
  • Altre distribuzioni coreboot

  • diff --git a/site/template.uk.include b/site/template.uk.include index 3592267..2a2e471 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -70,18 +70,16 @@ $endif$
  • Домашня
  • FAQ
  • Завантаження
  • -
  • -
  • +
  • Відправити виправлення
  • Придбати передвстановленим
  • -
  • -
  • Встановлення
  • Документація
  • Новини
  • TODO
  • Помилки
  • -
  • Відправити виправлення
  • Зв'язок
  • -
  • -
  • Пожертвувати
  • +
  • Інші дистрибутиви coreboot

  • diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index 805614a..4bb1a6e 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -70,18 +70,16 @@ $endif$
  • 主页
  • 常见问题
  • 下载
  • -
  • -
  • +
  • 发送补丁
  • 购买预装品
  • -
  • -
  • 安装
  • 文档
  • 新闻
  • TODO
  • 缺陷
  • -
  • 发送补丁
  • 联系
  • -
  • -
  • 捐赠
  • +
  • 其他 coreboot 发行版

  • From 0b7a136d733bb91f397ea230fc8903483e47ce12 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 11 Jan 2025 04:59:40 +0000 Subject: [PATCH 253/399] add missing entry Signed-off-by: Leah Rowe --- site/other.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/site/other.md b/site/other.md index 0e487d9..c63f016 100644 --- a/site/other.md +++ b/site/other.md @@ -217,3 +217,15 @@ Libreboot *also* provides U-Boot and GRUB, and has other ambitions. Libreboot aims to provide ease of use while also providing great power and flexibility. So Libreboot is aimed specifically at power users, while also trying to accomodate non-technical users; Skulls largely targets the latter. + +System76 Open Firmware +---------------------- + +Git repository: + +Other repositories e.g. EC firmware: + +System76 provides their own special coreboot fork, that they tailor for +specific machines that they sell; they also provide free EC firmware. Jeremy +Soller of System76 maintains this firmware, and the work is regularly +upstreamed into the regular coreboot project. From 71e4a89c862158f0f78815c4972b7d948cfbf35e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 11 Jan 2025 05:01:08 +0000 Subject: [PATCH 254/399] clarification Signed-off-by: Leah Rowe --- site/other.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/site/other.md b/site/other.md index c63f016..c6f2211 100644 --- a/site/other.md +++ b/site/other.md @@ -229,3 +229,6 @@ System76 provides their own special coreboot fork, that they tailor for specific machines that they sell; they also provide free EC firmware. Jeremy Soller of System76 maintains this firmware, and the work is regularly upstreamed into the regular coreboot project. + +System76 provides the coreboot firmware, along with EDK2 UEFI payload. It can +boot Linux distros, BSD systems and even Windows perfectly. From e94f06a744c0e98943e31d5b141c5cfbf9901ef5 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 11 Jan 2025 05:39:12 +0000 Subject: [PATCH 255/399] actual alphabetical order one must always remember one's ABCs Signed-off-by: Leah Rowe --- site/other.md | 42 +++++++++++++++++++++--------------------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/site/other.md b/site/other.md index c6f2211..119d285 100644 --- a/site/other.md +++ b/site/other.md @@ -88,27 +88,6 @@ you could consider Canoeboot to be *legacy Libreboot*. Libreboot adopted the Binary Blob Reduction Policy in November 2022, as part of a general desire to support more - and newer - hardware. -Dasharo -------- - -Website: - -Git repositories: - -Supports many machines, with a choice of EDK2(UEFI) or Heads(Linuxboot) -payload in the flash. Some older machines may provide a SeaBIOS payload -instead. A lot of work that goes into the upstream coreboot project came -from the Dasharo developers. - -Dasharo provides their own fork of coreboot, with a specific tree *per board*. -Several coreboot ports (e.g. MSI Z690-A PRO) were implemented directly by -the Dasharo project, and later upstreamed into the regular coreboot project. - -Dasharo has a special emphasis on commercial application, providing tailored -coreboot images for each supported mainboard, with an emphasis on stability. -It's a very different approach than Libreboot's approach; Libreboot provides -a more generalised design in its build system and infrastructure. - Chultrabook ----------- @@ -131,6 +110,27 @@ with regular security updates. Libreboot largely avoids supporting Chromebooks, precisely because Chultrabook and MrChromebox are perfectly viable options on these machines. +Dasharo +------- + +Website: + +Git repositories: + +Supports many machines, with a choice of EDK2(UEFI) or Heads(Linuxboot) +payload in the flash. Some older machines may provide a SeaBIOS payload +instead. A lot of work that goes into the upstream coreboot project came +from the Dasharo developers. + +Dasharo provides their own fork of coreboot, with a specific tree *per board*. +Several coreboot ports (e.g. MSI Z690-A PRO) were implemented directly by +the Dasharo project, and later upstreamed into the regular coreboot project. + +Dasharo has a special emphasis on commercial application, providing tailored +coreboot images for each supported mainboard, with an emphasis on stability. +It's a very different approach than Libreboot's approach; Libreboot provides +a more generalised design in its build system and infrastructure. + Heads ----- From b5e0d96be580678ad6710e4c3259abd128ebb7bc Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 11 Jan 2025 23:03:54 +0000 Subject: [PATCH 256/399] tidy up the other.md page Signed-off-by: Leah Rowe --- site/other.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/site/other.md b/site/other.md index 119d285..3604d59 100644 --- a/site/other.md +++ b/site/other.md @@ -24,6 +24,9 @@ Libreboot was the *first* coreboot distro, existing [since December 2013](news/10.md). Many Libreboot users exist today, who would otherwise not use coreboot at all. +It's thanks to the various coreboot distros that many people use coreboot today; +without them, many otherwise non-technical users might not use coreboot at all. + Why list other distros? ----------------------- @@ -35,7 +38,6 @@ be listed. Quality over quantity. Libreboot tries to support as much hardware as possible, and focuses on providing the easiest possible experience for non-technical users; it's also highly [configurable](docs/maintain/) for power users. - Several other projects exist that target different kinds of users, and support different types of hardware; for example, Libreboot mostly doesn't target Chromebooks, except for a few. From 5afacd5138015b5115bf9d3d3d805f9eb26d3999 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 11 Jan 2025 23:22:13 +0000 Subject: [PATCH 257/399] add ownerboot to the other.md page Signed-off-by: Leah Rowe --- site/other.md | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/site/other.md b/site/other.md index 3604d59..3efa8a6 100644 --- a/site/other.md +++ b/site/other.md @@ -197,6 +197,34 @@ with regular security updates. Libreboot largely avoids supporting Chromebooks, precisely because Chultrabook and MrChromebox are perfectly viable options on these machines. +Ownerboot +--------- + +Git repository: + +Ownerboot is an interesting one; it uses the Nix package manager to compile +coreboot images, with a Linux-based payload on supported x86 and ARM64 +devices. Similar conceptually to Heads, but with a *much* cleaner build system +design. + +It comes with the LVM2 and cryptsetup sources included in builds by default, so +it can easily be used to create a fully encrypted system, much like Libreboot's +own [hardened GRUB](docs/linux/grub_hardening.md) setup. + +Since it uses Nix, reproducible builds are quite feasible and this is one of +the project's primary goals. Interestingly enough, it also supports both the +gru kevin chromebook and the ASUS KGPE-D16 boards, which Libreboot supports but +Libreboot uses U-Boot and a combination of SeaBIOS/GRUB, respectively, on these +boards. + +Ownerboot's build system can also cross compile everything, so it's quite +portable across various host CPUs. It also extends coreboot's normal/fallback +payload scheme. See: + +All of this combined makes for a highly configurable boot setup, and the Linux +payload in flash (using kexec to boot another kernel) is highly flexible, +offering many opportunities for security hardening (like Heads). + Skulls ------ From f78ee7861af3a6b930cf640d7dfce1942dad4a2b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 12 Jan 2025 00:34:05 +0000 Subject: [PATCH 258/399] homepage: emphasize the coreboot distro aspect the term "coreboot distro" is being popularised, by my design, and i want libreboot to be number one when people search the term. Signed-off-by: Leah Rowe --- site/index.md | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/site/index.md b/site/index.md index 371981f..4276c84 100644 --- a/site/index.md +++ b/site/index.md @@ -3,7 +3,8 @@ title: Libreboot project x-toc-enable: true ... -The *Libreboot* project provides +*Libreboot* is a *[coreboot distribution](docs/maintain)* (coreboot distro), +in the same way that Debian is a *Linux distribution*. Libreboot provides [free, open source](https://writefreesoftware.org/) (*libre*) boot firmware based on coreboot, replacing proprietary BIOS/UEFI firmware on [specific Intel/AMD x86 and ARM based motherboards](docs/install/#which-systems-are-supported-by-libreboot), @@ -53,9 +54,7 @@ the early user interface, for booting an operating system. This *payload* infrastructure means you can run whatever you want (even Linux!) from the boot flash. -Libreboot is specifically a *[coreboot distribution](docs/maintain)*, -in the same way that -Debian is a *Linux distribution*. Libreboot makes coreboot easy to use for +Libreboot makes coreboot easy to use for non-technical users, by providing a [fully automated build system](docs/maintain/), [automated build process](docs/build/) and [user-friendly installation instructions](docs/install/), in addition to From 572ea3bdc15b8a33016888333e731307f0edab57 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 12 Jan 2025 00:43:39 +0000 Subject: [PATCH 259/399] reparieren der deutschen homepage Signed-off-by: Leah Rowe --- site/index.de.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/site/index.de.md b/site/index.de.md index 8e59dcf..f6029d3 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -3,7 +3,8 @@ title: Libreboot projekt x-toc-enable: true ... -Das *Libreboot* Projekt bietet +*Libreboot* ist ein [Coreboot-Distribution](docs/maintain/) (coreboot distro), +so wie Debian eine Linux-Distribution ist. Das *Libreboot* Projekt bietet eine [freie](https://writefreesoftware.org/) *Boot Firmware* welche auf [bestimmten Intel/AMD x86 und ARM Geräten](docs/install/#which-systems-are-supported-by-libreboot) die Hardware initialisiert (z.b. Speicher-Controller, CPU, Peripherie), From ec57689078a54afe1c0ba5a73f3cdb3f4ce46759 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 12 Jan 2025 01:29:32 +0000 Subject: [PATCH 260/399] more links Signed-off-by: Leah Rowe --- site/other.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/site/other.md b/site/other.md index 3efa8a6..359a03e 100644 --- a/site/other.md +++ b/site/other.md @@ -109,6 +109,18 @@ With Chultrabook's guidance, you can have a completely up to date UEFI firmware on your machine, and get good use out of your Chromebook for many more years, with regular security updates. +One of Chultrabook's maintainers, Elly, did this talk at 37C3 conference, +demonstrating Chultrabook: + - and also did this more general +talk about coreboot at 38C3: . It's +very good reference material if you want to know more about coreboot, and +coreboot distros more generally. + +Elly also did this interview with Brodie Robertson, about coreboot, and +explains the concept of a coreboot distro in more detail in one part of +the interview: + + Libreboot largely avoids supporting Chromebooks, precisely because Chultrabook and MrChromebox are perfectly viable options on these machines. From c278f8b5bf1fb020d9bec53c93c620aa1c9469c2 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 12 Jan 2025 02:05:08 +0000 Subject: [PATCH 261/399] link to coreboot build docs on other.md Signed-off-by: Leah Rowe --- site/other.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/site/other.md b/site/other.md index 359a03e..2031a45 100644 --- a/site/other.md +++ b/site/other.md @@ -24,6 +24,10 @@ Libreboot was the *first* coreboot distro, existing [since December 2013](news/10.md). Many Libreboot users exist today, who would otherwise not use coreboot at all. +Coreboot is highly flexible for many configurations. It is quite possible build +to [your own coreboot image](https://doc.coreboot.org/getting_started/index.html) +but most non-technical users should probably use a coreboot distro. + It's thanks to the various coreboot distros that many people use coreboot today; without them, many otherwise non-technical users might not use coreboot at all. From 97b0fa3c600b3a2dc0446029c38a7d538078ab7c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 12 Jan 2025 04:20:27 +0000 Subject: [PATCH 262/399] payloads, not "programs" Signed-off-by: Leah Rowe --- site/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/index.md b/site/index.md index 4276c84..ed4a3ca 100644 --- a/site/index.md +++ b/site/index.md @@ -47,7 +47,7 @@ Overview of Libreboot design Libreboot provides [coreboot](https://coreboot.org/) for [machine initialisation](https://doc.coreboot.org/getting_started/architecture.html), which then jumps to a [payload](https://doc.coreboot.org/payloads.html) in -the boot flash; coreboot works with many programs, but Libreboot specifically +the boot flash; coreboot works with many payloads, but Libreboot specifically provides SeaBIOS, GNU GRUB and U-Boot as options. Memtest86+ is also provided in flash, on some mainboards. The payload is the program in flash that provides the early user interface, for booting an operating system. This *payload* From 4702e167673363af0e63c0de51fbd220d7f45a55 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 12 Jan 2025 12:36:05 +0000 Subject: [PATCH 263/399] simplify the skulls section in other.md Signed-off-by: Leah Rowe --- site/other.md | 7 ------- 1 file changed, 7 deletions(-) diff --git a/site/other.md b/site/other.md index 2031a45..f9761ab 100644 --- a/site/other.md +++ b/site/other.md @@ -250,15 +250,8 @@ Skulls provides simple coreboot images with SeaBIOS payload, on a handful of Thinkpads. Libreboot *also* provides similar SeaBIOS configurations, on all of the same machines, but Libreboot's design does mean that there are a few additional steps for installation. - If you just want the simplest, most barebones setup, Skulls is a great choice. -The reason Skulls is simpler is that they include certain vendor files such -as `me.bin` pre-inserted into images; while risky indeed, this does in fact -make installation easier for users. Libreboot takes a more conservative -approach, excluding such files on release images and instead providing you with -an [automated script](docs/install/ivy_has_common.md) to insert these. - Libreboot *also* provides U-Boot and GRUB, and has other ambitions. Libreboot aims to provide ease of use while also providing great power and flexibility. So Libreboot is aimed specifically at power users, while also trying to From e5d30675db4119269259b3c4539278639da28522 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 13 Jan 2025 13:37:18 +0000 Subject: [PATCH 264/399] expand other.md but shorten the intro also mention u-boot, tf-a Signed-off-by: Leah Rowe --- site/other.md | 58 +++++++++++++++++++++++++-------------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/site/other.md b/site/other.md index f9761ab..2cfb3c0 100644 --- a/site/other.md +++ b/site/other.md @@ -31,38 +31,11 @@ but most non-technical users should probably use a coreboot distro. It's thanks to the various coreboot distros that many people use coreboot today; without them, many otherwise non-technical users might not use coreboot at all. -Why list other distros? ------------------------ - -Over the years, several other coreboot distros have come and gone. It has been -decided that this page will be written, to document some of them. Not every -distro is listed; only those of high quality, or otherwise of interest, will -be listed. Quality over quantity. - -Libreboot tries to support as much hardware as possible, and focuses on providing -the easiest possible experience for non-technical users; it's also -highly [configurable](docs/maintain/) for power users. -Several other projects exist that target different kinds of users, and support -different types of hardware; for example, Libreboot mostly doesn't target -Chromebooks, except for a few. - -Libreboot's main priority is to provide users with free/opensource boot -firmware, to help more users achieve a higher level -of [software freedom](https://writefreesoftware.org/learn). Well, Libreboot is -one of the most well-known coreboot distros out there, so it is our duty to -therefore cover the other projects, because it may be that Libreboot isn't for -you; these other projects may support features and mainboards that Libreboot -doesn't, that you may find preferable. - -We in the Libreboot project greatly admire and respect the other distros, and -will gladly work with them. - -Without further ado, - List of coreboot distros ======================== -In alphabetical order: +Not all distros are listed; only those of high quality or otherwise of interest; +quality, not quantity. In alphabetical order: Canoeboot --------- @@ -271,3 +244,30 @@ upstreamed into the regular coreboot project. System76 provides the coreboot firmware, along with EDK2 UEFI payload. It can boot Linux distros, BSD systems and even Windows perfectly. + +Is your distro unlisted? +======================== + +Please get in touch! We'd love to link your project here. + +The coreboot project also maintains its own list of coreboot distros: + + + +Libreboot maintains its own list, because it is felt that distros should also +link to each other, since many people who find coreboot for the first time may +find it through a distro (such as Libreboot) and not check coreboot's own +website. We in the Libreboot project wish to see everyone using free boot +firmware, which was the primary motivation behind this page, in promoting the +various projects. + +Non-coreboot free firmware +========================== + +Several other projects besides coreboot provide free hardware initialisation, +such as [U-Boot](https://www.u-boot.org/) (as own firmware, distinct from U-Boot +as a coreboot payload), [Trusted Firmware](https://www.trustedfirmware.org/) and +so on. + +We would like to list various distros of these too. If you know of a cool +project, please get in touch with the Libreboot project! From ceaaeb98d924d89fd91bda78300423348f48bf79 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 13 Jan 2025 14:50:27 +0000 Subject: [PATCH 265/399] fix oversight i'm re-adding the most important information libreboot.org currently lacks Signed-off-by: Leah Rowe --- site/news/policy.de.md | 58 ++++++++++++++++++++++++++++++++++++++++-- site/news/policy.md | 55 +++++++++++++++++++++++++++++++++++++-- site/news/policy.uk.md | 55 +++++++++++++++++++++++++++++++++++++-- 3 files changed, 162 insertions(+), 6 deletions(-) diff --git a/site/news/policy.de.md b/site/news/policy.de.md index ca3be12..87d6ac6 100644 --- a/site/news/policy.de.md +++ b/site/news/policy.de.md @@ -177,8 +177,62 @@ exist, for example, the work done by Sam Zeloof and the Libre Silicon project: (Sam literally makes CPUs in his garage) -Why? -==== +More detailed insight about microcode +===================================== + +To be clear: it is preferable that microcode be free. +Not including CPU microcode updates is an absolute disaster for system +stability and security, so Libreboot *includes microcode updates by default, in +all modern release images, where possible to do so*. + +The CPU already has microcode burned into mask ROM. The microcode configures +logic gates in the CPU, to implement an instruction set, via special *decoders* +which are fixed-function; it is not possible, for example, to implement a RISCV +ISA on an otherwise x86 processor. It is only possible for the microcode to +implement x86, or *broken* x86, and the default microcode is almost always +*broken x86* on Intel/AMD CPUs; it is inevitable, due to the complexity of +these processors. + +These processors provide a way to supply microcode *updates*. These updates +are volatile, and consequently must be applied during every boot cycle. The +updates fix stability/reliability/security bugs, and their *absence* +is *technically incorrect*, so you are strongly advised to install them. +Examples of where these updates fix bugs: on ASUS KCMA-D8/KGPE-D16 +and ThinkPad X200/T400/T500/W500/X200T/X200/R500/X301, the updates make +hardware-based virtualization (via `kvm`) completely stable, where it would +otherwise lead to a kernel panic. They allow those same thinkpads to be run with +high CPU usage and I/O (RAM usage), without crashing (otherwise, it's very +likely to encounter a kernel panic caused by a *Machine Check Exception*). + +Not including these updates will result in an unstable/undefined state. Intel +themselves define which bugs affect which CPUs, and they define workarounds, or +provide fixes in microcode. Based on this, software such as the Linux kernel +can work around those bugs/quirks. Also, upstream versions of the Linux kernel +can update the microcode at boot time (however, it is recommend still to do it +from coreboot, for more stable memory controller initialization or “raminit”). +Similar can be said about AMD CPUs. + +Once upon a time, Libreboot *excluded* microcode updates by default, but this +lead to broken behaviour. Here are some examples: + + + + + +These patches revert *bug fixes* in coreboot, fixes that happen to break other +functionality but only when microcode updates are excluded. The most +technically correct solution is to *not* apply the above patches, and instead +supply microcode updates! + +You *need* microcode updates, or you will have a broken CPU; broken, because +it literally behaves differently than it's supposed to, so software will have +unpredictable bugs that could even cause data corruption - or worse. + +Why was this page written? +========================== + +Many of the topics discussed here are actually hotly contested, by different +sections of the free software movement. Libreboot has taken a firm stance. Firstly, observe the following graphic: diff --git a/site/news/policy.md b/site/news/policy.md index dbb2661..59f9afb 100644 --- a/site/news/policy.md +++ b/site/news/policy.md @@ -242,8 +242,59 @@ exist, for example, the work done by Sam Zeloof and the Libre Silicon project: (Sam literally makes CPUs in his garage) -Why? -==== +More detailed insight about microcode +===================================== + +To be clear: it is preferable that microcode be free. +Not including CPU microcode updates is an absolute disaster for system +stability and security, so Libreboot *includes microcode updates by default, in +all modern release images, where possible to do so*. + +The CPU already has microcode burned into mask ROM. The microcode configures +logic gates in the CPU, to implement an instruction set, via special *decoders* +which are fixed-function; it is not possible, for example, to implement a RISCV +ISA on an otherwise x86 processor. It is only possible for the microcode to +implement x86, or *broken* x86, and the default microcode is almost always +*broken x86* on Intel/AMD CPUs; it is inevitable, due to the complexity of +these processors. + +These processors provide a way to supply microcode *updates*. These updates +are volatile, and consequently must be applied during every boot cycle. The +updates fix stability/reliability/security bugs, and their *absence* +is *technically incorrect*, so you are strongly advised to install them. +Examples of where these updates fix bugs: on ASUS KCMA-D8/KGPE-D16 +and ThinkPad X200/T400/T500/W500/X200T/X200/R500/X301, the updates make +hardware-based virtualization (via `kvm`) completely stable, where it would +otherwise lead to a kernel panic. They allow those same thinkpads to be run with +high CPU usage and I/O (RAM usage), without crashing (otherwise, it's very +likely to encounter a kernel panic caused by a *Machine Check Exception*). + +Not including these updates will result in an unstable/undefined state. Intel +themselves define which bugs affect which CPUs, and they define workarounds, or +provide fixes in microcode. Based on this, software such as the Linux kernel +can work around those bugs/quirks. Also, upstream versions of the Linux kernel +can update the microcode at boot time (however, it is recommend still to do it +from coreboot, for more stable memory controller initialization or “raminit”). +Similar can be said about AMD CPUs. + +Once upon a time, Libreboot *excluded* microcode updates by default, but this +lead to broken behaviour. Here are some examples: + + + + + +These patches revert *bug fixes* in coreboot, fixes that happen to break other +functionality but only when microcode updates are excluded. The most +technically correct solution is to *not* apply the above patches, and instead +supply microcode updates! + +You *need* microcode updates, or you will have a broken CPU; broken, because +it literally behaves differently than it's supposed to, so software will have +unpredictable bugs that could even cause data corruption - or worse. + +Why was this page written? +========================== Firstly, observe the following graphic: diff --git a/site/news/policy.uk.md b/site/news/policy.uk.md index 5ab0b37..8832709 100644 --- a/site/news/policy.uk.md +++ b/site/news/policy.uk.md @@ -171,8 +171,59 @@ Libreboot вирішує цю ситуацію *суворо* та *принци (Сем буквально виробляє процесори в своєму гаражі) -Why? -==== +More detailed insight about microcode +===================================== + +To be clear: it is preferable that microcode be free. +Not including CPU microcode updates is an absolute disaster for system +stability and security, so Libreboot *includes microcode updates by default, in +all modern release images, where possible to do so*. + +The CPU already has microcode burned into mask ROM. The microcode configures +logic gates in the CPU, to implement an instruction set, via special *decoders* +which are fixed-function; it is not possible, for example, to implement a RISCV +ISA on an otherwise x86 processor. It is only possible for the microcode to +implement x86, or *broken* x86, and the default microcode is almost always +*broken x86* on Intel/AMD CPUs; it is inevitable, due to the complexity of +these processors. + +These processors provide a way to supply microcode *updates*. These updates +are volatile, and consequently must be applied during every boot cycle. The +updates fix stability/reliability/security bugs, and their *absence* +is *technically incorrect*, so you are strongly advised to install them. +Examples of where these updates fix bugs: on ASUS KCMA-D8/KGPE-D16 +and ThinkPad X200/T400/T500/W500/X200T/X200/R500/X301, the updates make +hardware-based virtualization (via `kvm`) completely stable, where it would +otherwise lead to a kernel panic. They allow those same thinkpads to be run with +high CPU usage and I/O (RAM usage), without crashing (otherwise, it's very +likely to encounter a kernel panic caused by a *Machine Check Exception*). + +Not including these updates will result in an unstable/undefined state. Intel +themselves define which bugs affect which CPUs, and they define workarounds, or +provide fixes in microcode. Based on this, software such as the Linux kernel +can work around those bugs/quirks. Also, upstream versions of the Linux kernel +can update the microcode at boot time (however, it is recommend still to do it +from coreboot, for more stable memory controller initialization or “raminit”). +Similar can be said about AMD CPUs. + +Once upon a time, Libreboot *excluded* microcode updates by default, but this +lead to broken behaviour. Here are some examples: + + + + + +These patches revert *bug fixes* in coreboot, fixes that happen to break other +functionality but only when microcode updates are excluded. The most +technically correct solution is to *not* apply the above patches, and instead +supply microcode updates! + +You *need* microcode updates, or you will have a broken CPU; broken, because +it literally behaves differently than it's supposed to, so software will have +unpredictable bugs that could even cause data corruption - or worse. + +Why was this page written? +========================== Firstly, observe the following graphic: From 5d516331cb506a2b1d929add03227b20860cab37 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 13 Jan 2025 15:38:13 +0000 Subject: [PATCH 266/399] priority Signed-off-by: Leah Rowe --- site/docs/maintain/index.md | 26 ++++++++++---------------- 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index d17493c..2c467ba 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -39,6 +39,16 @@ check itself when running *any* command; if another command had to be executed first, it will do so automatically. Therefore, you can run any part of lbmk on its own, and the entire design is modular. +Use Free Software when possible +=============================== + +The coreboot software is nominally free, but occasionally requires an +additional file or two from the vendor on a few systems. The libreboot +project *allows* them, only when they are absolutely required. + +[Strict rules](../../news/policy.md) govern when this allowed, and +the [freedom status page](../../freedom-status.md) provides additional details. + Best practises for learning lbmk ================================ @@ -143,22 +153,6 @@ in flash on a future release. On our testing, disk I/O does not seem to be a major bottleneck, so any HDD or SSD will do, but we obviously recommend a fast NVMe (PCI-E) SSD if you can. -Use Free Software when possible -=============================== - -The coreboot software is nominally free, but occasionally requires an -additional file or two from the vendor on a few systems. The libreboot -project *allows* them, only when they are absolutely required. - -[Strict rules](../../news/policy.md) govern when this allowed, and -the [freedom status page](../../freedom-status.md) provides additional details. - -Please read the files under `config/vendor/` in lbmk, in addition to -the file `include/vendor.sh`. These configuration files and this source code -within lbmk, implement the download and patching logic that enables such files -to be included on final build images, ready for installation on the target -machine. - **Before *configuration* info, you will first be shown a brief overview of every project that Libreboot imports, such as coreboot.** From a5a8a8daea53761ebceb53bf09c2acddadb49d04 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 13 Jan 2025 15:47:37 +0000 Subject: [PATCH 267/399] snip Signed-off-by: Leah Rowe --- site/git.de.md | 3 +++ site/git.md | 3 +++ site/git.uk.md | 3 +++ site/index.md | 4 +--- site/index.ru.md | 2 +- site/template.de.include | 1 - site/template.include | 3 --- site/template.it.include | 1 - site/template.uk.include | 1 - site/template.zh-cn.include | 1 - 10 files changed, 11 insertions(+), 11 deletions(-) diff --git a/site/git.de.md b/site/git.de.md index baa10cc..fd72cfd 100644 --- a/site/git.de.md +++ b/site/git.de.md @@ -17,6 +17,9 @@ Du kannst dir lbmk auch auf Libreboot's eigener cgit Instanz *ansehen*, allerdings ist dies nicht für die Entwicklung gedacht (benutze hierfür bitte codeberg):\ +The [tasks](tasks/) page lists some (not all) of the things we wish to +implement, if not already implemented. Patches welcome! + Weiter unten auf dieser Seite sind Mirror von `lbmk` und `lbwww` aufgelistet, sofern die Haupt Git Repositories nicht erreichbar sein sollten. diff --git a/site/git.md b/site/git.md index 59d6a3a..5237d95 100644 --- a/site/git.md +++ b/site/git.md @@ -17,6 +17,9 @@ You can also *browse* lbmk on Libreboot's own cgit instance, though it is not intended for development (use codeberg for that):\ +The [tasks](tasks/) page lists some (not all) of the things we wish to +implement, if not already implemented. Patches welcome! + If the main Git repositories are down, mirrors of `lbmk` and `lbwww` are listed further down in this page diff --git a/site/git.uk.md b/site/git.uk.md index f566113..d8168a6 100644 --- a/site/git.uk.md +++ b/site/git.uk.md @@ -17,6 +17,9 @@ x-toc-enable: true для розробки (використовуйте codeberg для цього):\ +The [tasks](tasks/) page lists some (not all) of the things we wish to +implement, if not already implemented. Patches welcome! + Якщо основні репозиторії Git лежать, дзеркала `lbmk` та `lbwww` є зазначеними далі знизу на цій сторінці diff --git a/site/index.md b/site/index.md index ed4a3ca..0409e56 100644 --- a/site/index.md +++ b/site/index.md @@ -12,9 +12,7 @@ including laptop and desktop computers. It initialises the hardware (e.g. memory controller, CPU, peripherals) and starts a bootloader for your operating system. [Linux](docs/linux/) and [BSD](docs/bsd/) are well-supported. Help is available via [\#libreboot](https://web.libera.chat/#libreboot) -on [Libera](https://libera.chat/) IRC. The [tasks page](tasks/) lists what -we are working on (contributions are welcome, if you want to work on some of -them yourself). +on [Libera](https://libera.chat/) IRC. diff --git a/site/index.ru.md b/site/index.ru.md index 922f04c..a37e0da 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -3,7 +3,7 @@ title: Проект Libreboot x-toc-enable: true ... -Проект *Libreboot* предоставляет [свободную, с открытым исходным кодом](https://writefreesoftware.org/) загрузочную прошивку, основанную на coreboot, заменяющую проприетарные BIOS/UEFI на [некоторых Intel/AMD x86 и ARM материнских платах](docs/install/#which-systems-are-supported-by-libreboot), включая ноутбуки и десктопы. Она инициализирует аппаратное обеспечение компьютера (например, контроллер памяти, процессор, переферию) и запускает загрузчик для вашей операционный системы. [Linux](docs/linux/) и [BSD](docs/bsd/) хорошо поддерживаются. Можно попросить помощь через [\#libreboot](https://web.libera.chat/#libreboot) на [Libera](https://libera.chat/) IRC. [Страница с заданиями](tasks/) показывают, над чем мы работаем (мы приветствуем ваши предложения, если вы хотите поработать над некоторыми задачами самостоятельно). +Проект *Libreboot* предоставляет [свободную, с открытым исходным кодом](https://writefreesoftware.org/) загрузочную прошивку, основанную на coreboot, заменяющую проприетарные BIOS/UEFI на [некоторых Intel/AMD x86 и ARM материнских платах](docs/install/#which-systems-are-supported-by-libreboot), включая ноутбуки и десктопы. Она инициализирует аппаратное обеспечение компьютера (например, контроллер памяти, процессор, переферию) и запускает загрузчик для вашей операционный системы. [Linux](docs/linux/) и [BSD](docs/bsd/) хорошо поддерживаются. Можно попросить помощь через [\#libreboot](https://web.libera.chat/#libreboot) на [Libera](https://libera.chat/) IRC. diff --git a/site/template.de.include b/site/template.de.include index 85e72c7..f22f8e9 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -76,7 +76,6 @@ $endif$
  • Dokumentation
  • Neuigkeiten
  • Bugs
  • -
  • TODO
  • Kontakt
  • Spenden
  • Andere Coreboot-Distributionen
  • diff --git a/site/template.include b/site/template.include index ccbe879..0960f47 100644 --- a/site/template.include +++ b/site/template.include @@ -71,14 +71,11 @@ $endif$
  • FAQ
  • Download
  • Git
  • -
  • -
  • Buy Libreboot preinstalled
  • -
  • -
  • Install
  • Docs
  • News
  • Bugs
  • -
  • TODO
  • Contact
  • Donate
  • Other coreboot distros
  • diff --git a/site/template.it.include b/site/template.it.include index f50e786..5c3cafd 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -75,7 +75,6 @@ $endif$
  • Installazione
  • Documentazione
  • Notizie
  • -
  • TODO
  • Difetti (bugs)
  • Contatti
  • Donazioni
  • diff --git a/site/template.uk.include b/site/template.uk.include index 2a2e471..7ff3016 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -75,7 +75,6 @@ $endif$
  • Встановлення
  • Документація
  • Новини
  • -
  • TODO
  • Помилки
  • Зв'язок
  • Пожертвувати
  • diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index 4bb1a6e..2b614cd 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -75,7 +75,6 @@ $endif$
  • 安装
  • 文档
  • 新闻
  • -
  • TODO
  • 缺陷
  • 联系
  • 捐赠
  • From a5cbc416f4ec1e63dd897de3927b655aa98148bf Mon Sep 17 00:00:00 2001 From: Steffen Pankratz Date: Mon, 13 Jan 2025 20:06:32 +0100 Subject: [PATCH 268/399] dell3050: Mention support for Skylake CPUs Signed-off-by: Steffen Pankratz --- site/docs/install/dell3050.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index d7d82e0..0b3427b 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -20,7 +20,7 @@ there, before flashing. For posterity, | **Variants** | OptiPlex 3050 Micro | | **Released** | 2017 | | **Chipset** | Intel Kaby Lake | -| **CPU** | Intel Kaby Lake | +| **CPU** | Intel Skylake/Kaby Lake | | **Graphics** | Intel HD graphics | | **Memory** | DDR4 SODIMMs (max 32GB, 2x16GB) | | **Architecture** | x86\_64 | From 949f2bcc460bdad281f054859c8165dc2492fccd Mon Sep 17 00:00:00 2001 From: Steffen Pankratz Date: Mon, 13 Jan 2025 20:10:31 +0100 Subject: [PATCH 269/399] dell3050: Add note to Hyper-Threading paragraph Signed-off-by: Steffen Pankratz --- site/docs/install/dell3050.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index 0b3427b..892dcaa 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -217,6 +217,10 @@ Legacy 8254 timer enabled in coreboot, to prevent SeaBIOS from hanging. HyperThreading on 3050 Micro -------------------------- +NOTE: The 3050 Micro is available in different CPU configurations. +Before considering to enable HyperThreading support, make sure it is +supported by the CPU of your 3050 Micro. + Also called SMT. This is a feature where you get 2 threads on a single core. It can improve performance in some workloads, but is actually a performance liability in others, depending on your OS kernel/scheduler and the actual From 3f51720e2aaa51ddc5de19757b06d4715526d67e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 14 Jan 2025 12:57:06 +0000 Subject: [PATCH 270/399] correction Signed-off-by: Leah Rowe --- site/other.md | 28 ---------------------------- 1 file changed, 28 deletions(-) diff --git a/site/other.md b/site/other.md index 2cfb3c0..0d15f2a 100644 --- a/site/other.md +++ b/site/other.md @@ -186,34 +186,6 @@ with regular security updates. Libreboot largely avoids supporting Chromebooks, precisely because Chultrabook and MrChromebox are perfectly viable options on these machines. -Ownerboot ---------- - -Git repository: - -Ownerboot is an interesting one; it uses the Nix package manager to compile -coreboot images, with a Linux-based payload on supported x86 and ARM64 -devices. Similar conceptually to Heads, but with a *much* cleaner build system -design. - -It comes with the LVM2 and cryptsetup sources included in builds by default, so -it can easily be used to create a fully encrypted system, much like Libreboot's -own [hardened GRUB](docs/linux/grub_hardening.md) setup. - -Since it uses Nix, reproducible builds are quite feasible and this is one of -the project's primary goals. Interestingly enough, it also supports both the -gru kevin chromebook and the ASUS KGPE-D16 boards, which Libreboot supports but -Libreboot uses U-Boot and a combination of SeaBIOS/GRUB, respectively, on these -boards. - -Ownerboot's build system can also cross compile everything, so it's quite -portable across various host CPUs. It also extends coreboot's normal/fallback -payload scheme. See: - -All of this combined makes for a highly configurable boot setup, and the Linux -payload in flash (using kexec to boot another kernel) is highly flexible, -offering many opportunities for security hardening (like Heads). - Skulls ------ From e64e6a065d55c680b21948e833234f019c32b2c6 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 14 Jan 2025 13:30:29 +0000 Subject: [PATCH 271/399] snip Signed-off-by: Leah Rowe --- site/tasks/index.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/site/tasks/index.md b/site/tasks/index.md index 4da9ffb..f728b0e 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -394,11 +394,6 @@ Linuxboot could be built. With a stripped down kernel, it already provides a sensible build system for ARM64 and AMD64.** -See for inspiration: [Heads project](https://osresearch.net/) -and [Ownerboot project](https://sr.ht/~amjoseph/ownerboot/), these are other -coreboot distros similar to Libreboot, but they provide Linux-based payloads. -Also see more in general, the [Linuxboot](https://www.linuxboot.org/) project. - Libreboot's build system is documented, see: [lbmk documentation](../docs/maintain/). From ee096776a97410398581e125397ee9b5a3bbd03c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 14 Jan 2025 17:59:28 +0000 Subject: [PATCH 272/399] other.md: merge chrultrabook with mrchromebox Signed-off-by: Leah Rowe --- site/other.md | 53 +++++++++++++++++---------------------------------- 1 file changed, 17 insertions(+), 36 deletions(-) diff --git a/site/other.md b/site/other.md index 0d15f2a..76f8539 100644 --- a/site/other.md +++ b/site/other.md @@ -67,40 +67,6 @@ you could consider Canoeboot to be *legacy Libreboot*. Libreboot adopted the Binary Blob Reduction Policy in November 2022, as part of a general desire to support more - and newer - hardware. -Chultrabook ------------ - -Website: - -Git repositories: - -Provides a tailored EDK2(UEFI) payload on supported *Chromebooks*. You can use -this to replace ChromeOS with a regular Linux distro or BSD system - even -Windows - if you wish. - -The benefit of using *Chultrabook* is that it provides up to date EDK2, unlike -proprietary vendors who often provide old, CVE-ridden versions of EDK2 forks -such as InsydeH2O. - -With Chultrabook's guidance, you can have a completely up to date UEFI firmware -on your machine, and get good use out of your Chromebook for many more years, -with regular security updates. - -One of Chultrabook's maintainers, Elly, did this talk at 37C3 conference, -demonstrating Chultrabook: - - and also did this more general -talk about coreboot at 38C3: . It's -very good reference material if you want to know more about coreboot, and -coreboot distros more generally. - -Elly also did this interview with Brodie Robertson, about coreboot, and -explains the concept of a coreboot distro in more detail in one part of -the interview: - - -Libreboot largely avoids supporting Chromebooks, precisely because Chultrabook -and MrChromebox are perfectly viable options on these machines. - Dasharo ------- @@ -183,8 +149,23 @@ With MrChromebox's guidance, you can have a completely up to date UEFI firmware on your machine, and get good use out of your Chromebook for many more years, with regular security updates. -Libreboot largely avoids supporting Chromebooks, precisely because Chultrabook -and MrChromebox are perfectly viable options on these machines. +You can also use the [Chrultrabook Docs](https://docs.chrultrabook.com/) which +make use of MrChromebox and might prove useful. + +One of Chultrabook's maintainers, Elly, did this talk at 37C3 conference, +demonstrating Chultrabook: + - and also did this more general +talk about coreboot at 38C3: . It's +very good reference material if you want to know more about coreboot, and +coreboot distros more generally. + +Elly also did this interview with Brodie Robertson, about coreboot, and +explains the concept of a coreboot distro in more detail in one part of +the interview: + + +Libreboot largely avoids supporting Chromebooks, precisely because +MrChromebox is a perfectly viable option on these machines. Skulls ------ From 6cfd22e1f6e2104b99850546bf9f7743cc82f285 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 17 Jan 2025 01:42:41 +0000 Subject: [PATCH 273/399] t480 notes: mention rollback protection Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 6fb8d7e..c8ba150 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -399,6 +399,12 @@ Now DD it to the raw USB flash device: dd if=t480_bios_update.img of=/dev/sdX bs=4M conv=fsync status=progress +You must disable *Secure Rollback Prevention* in the BIOS, under +UEFI BIOS Update Option; please also enable *Flash BIOS Updating by +End Users*. The *Windows UEFI Firmware Update* option is probably a do-not-care. +If you're on a newer version of the UEFI firmware, you will want rollback +protection disabled so that you can use this exact version. + You must disable SecureBoot, and enable legacy/CSM boot, and boot it in BIOS mode, not UEFI mode. Make sure your battery is well-charged, and boot it with a battery and with the power supply plugged in. Select *option 2* in the menu, From 55722b56431b61b204efe00127cb9db089965342 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 17 Jan 2025 10:03:06 +0000 Subject: [PATCH 274/399] Libreboot 2025 release schedule Signed-off-by: Leah Rowe --- site/news/MANIFEST | 1 + site/news/schedule.md | 102 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 103 insertions(+) create mode 100644 site/news/schedule.md diff --git a/site/news/MANIFEST b/site/news/MANIFEST index 0353053..d1feaa5 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -1,3 +1,4 @@ +schedule.md libreboot20241206rev8.md libreboot20241206.md libreboot20241008.md diff --git a/site/news/schedule.md b/site/news/schedule.md new file mode 100644 index 0000000..0b6e539 --- /dev/null +++ b/site/news/schedule.md @@ -0,0 +1,102 @@ +% Formalised Libreboot 2025 release schedule +% Leah Rowe +% 17 January 2025 + +Libreboot releases will now be on a much stricter timeline than in the past. + +Testing/Stable release cycle +============================ + +As alluded to in the Libreboot 20241206 release, a new release schedule is +planned for 2025 onward: + +* April/October will be for testing releases. +* June/December will be for stable releases. + +So, two testing releases and two stable releases. Each release can have any +number of revisions, whereby the tarballs are re-generated and re-uploaded, +replacing old ones, must like what was done on the 20241206 and 20240612 +releases. + +Rules for revisions: +-------------------- + +Testing releases come out two months before stable; any number of non-breaking +or otherwise relatively safe changes can be made, and testing releases will +stop receiving new revisions about 3-4 weeks before the stable release. Any +number of improvements can be made, including massive updating of upstream +code revisions. + +Stable release revisions must not fundamentally alter the substance of a given +stable release, relative to first release. Essentially, any revisions to stable +releases post-release will be critical bug fixes; in a few cases, special +additions will be made when desirable and safe (e.g. Pico 2 support was added +to Libreboot 20241206 post-release, in the revision 8 update from 2025-01-06). + +Why? +---- + +In the past, a problem Libreboot has had was that we'd do testing releases, +but not do revisions on them; then by the time a stable release came around, +some upstream revisions would be about 4-6 months out of date (typically). + +With this new formalised structure, we can be as close to upstream as possible +by the time of each stable release, for each given upstream e.g. coreboot. + +This release schedule will also provide greater opportunity for coverage of +Libreboot releases, since people know then what to expect and what dates to +put in their calendars. + +This decision is part of a much larger initiative to boost Libreboot's +popularity and therefore use within the free software world. + +Release version numbers +======================= + +Libreboot YY.MM releases +------------------------ + +Libreboot YYYYMMDD was the previous version number scheme. + +The new scheme is: Libreboot YY.MM + +For example, the April 2025 release will be Libreboot 25.04. + +The new release scheme is better, because we presently need to start release +builds early in the morning to ensure (given build time and possible errors +to be fixed) that they are released on the day. For example, a 20250404 release +would have to come out on April 4th, so if it finished compiling on April 5th, +it would become Libreboot 20250405 under the previous scheme. + +With this new scheme, and given Libreboot's expansion plans, it won't matter +even if a release build takes 2 days to complete, because the day of the month +will no longer be included in a given release number. + +Y2.1k compliance +---------------- + +If Libreboot still exists in the year 2100, then those releases will be +e.g. Libreboot 100.04 for April 2100 release. + +It could happen. Even if I'm no longer around by then, Libreboot might still be. + +Release codenames +----------------- + +The release codename for Libreboot 25.04 will be "Corny Calamity", which is a +nod of respect to an equally gutsy release codename that *Fedora* used in +one of their releases (Beefy Miracle!). + +The rules for Libreboot release codenames are: two words, each starting with +the same letter. + +Credit +====== + +[Britney Lozza](https://janethemotherfucker.github.io/) was the one who suggested +to me that I use this new release number and codename scheme, and I previously +came up with the plan to use an April/June and October/December testing/stable +release schedule. + +Britney also came up with the codename that I've decided to use for +the June 2025 stable release - stay tuned! From 0d6d90bf1eabd0d75c8b902fca8123af4f8c6617 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 17 Jan 2025 10:13:29 +0000 Subject: [PATCH 275/399] clarification Signed-off-by: Leah Rowe --- site/news/schedule.md | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/site/news/schedule.md b/site/news/schedule.md index 0b6e539..47747de 100644 --- a/site/news/schedule.md +++ b/site/news/schedule.md @@ -13,11 +13,20 @@ planned for 2025 onward: * April/October will be for testing releases. * June/December will be for stable releases. +In other words, the following Libreboot releases will come out in 2025: + +* Libreboot 25.04 +* Libreboot 25.06 +* Libreboot 25.10 +* Libreboot 25.12 + So, two testing releases and two stable releases. Each release can have any number of revisions, whereby the tarballs are re-generated and re-uploaded, replacing old ones, must like what was done on the 20241206 and 20240612 releases. +This .4, .6, .10 and .12 scheme will continue in 2026 and beyond. + Rules for revisions: -------------------- From 5662b578d8c97c024161bd9dd3d3f5c1fedb66f3 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 17 Jan 2025 10:15:39 +0000 Subject: [PATCH 276/399] further calamity Signed-off-by: Leah Rowe --- site/news/schedule.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/site/news/schedule.md b/site/news/schedule.md index 47747de..8867db5 100644 --- a/site/news/schedule.md +++ b/site/news/schedule.md @@ -15,16 +15,20 @@ planned for 2025 onward: In other words, the following Libreboot releases will come out in 2025: -* Libreboot 25.04 -* Libreboot 25.06 -* Libreboot 25.10 -* Libreboot 25.12 +* Libreboot 25.04 (testing release) +* Libreboot 25.06 (stable release) +* Libreboot 25.10 (testing release) +* Libreboot 25.12 (stable release) So, two testing releases and two stable releases. Each release can have any number of revisions, whereby the tarballs are re-generated and re-uploaded, replacing old ones, must like what was done on the 20241206 and 20240612 releases. +Releases will have codenames too; please read further down this article, for +information about that. The April 2025 release will +be: Libreboot 25.04 "Corny Calamity". + This .4, .6, .10 and .12 scheme will continue in 2026 and beyond. Rules for revisions: From 62b5b1950e8d862924b6c92fc2d8c1ae91c75f1c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 17 Jan 2025 10:41:44 +0000 Subject: [PATCH 277/399] snip Signed-off-by: Leah Rowe --- site/news/libreboot20241206rev8.md | 25 +++---------------------- 1 file changed, 3 insertions(+), 22 deletions(-) diff --git a/site/news/libreboot20241206rev8.md b/site/news/libreboot20241206rev8.md index d11a544..8958a3b 100644 --- a/site/news/libreboot20241206rev8.md +++ b/site/news/libreboot20241206rev8.md @@ -398,27 +398,8 @@ the [Libreboot 20241206 revisions page](libreboot20241206.Revisions.md). Formalised release schedule ================= -We normally just do a release and that's it. It's still tentative, and this -may change, but it has so far been decided that the 2025 release schedule will -look like this: +UPDATE: the text of this section was removed on 17 January 2025. -* April 13th: testing release -* June 12th: stable release -* October 31st: testing release -* December 6th: stable release +Please read the following new article instead: -Where any release is made, revisions such as today's 20241206 revision 8 can -be re-released. On stable releases, only the most desirable improvements and -fixes will be made, without substantially altering the substance of the -original release, while testing releases can have wilder revisions; where the -current release is a testinng release, revisions should be frozen in place -about 1 month before the scheduled stable release. - -This is preferable because it offers much more flexibility, and it means that -stable releases can be closer to upstream whereas previously they'd be -about 3-6 months behind, e.g. the Libreboot 20241206 release uses coreboot -revisions from the summer of 2024, but some of them are closer to December -of 2024. - -This was decided, ever since the 20241206 release, which just so happened to -compliment a 20240612 release. Symmetry is good, as is predictability. +[Formalised Libreboot 2025 release schedule](schedule.md) From 927a06cdc65281ceff6efdca058cf1cd4725e096 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 17 Jan 2025 13:24:59 +0000 Subject: [PATCH 278/399] grammar Signed-off-by: Leah Rowe --- site/news/schedule.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/news/schedule.md b/site/news/schedule.md index 8867db5..051c9b7 100644 --- a/site/news/schedule.md +++ b/site/news/schedule.md @@ -22,7 +22,7 @@ In other words, the following Libreboot releases will come out in 2025: So, two testing releases and two stable releases. Each release can have any number of revisions, whereby the tarballs are re-generated and re-uploaded, -replacing old ones, must like what was done on the 20241206 and 20240612 +replacing old ones, as was done on the 20241206 and 20240612 releases. Releases will have codenames too; please read further down this article, for From 7c63e81b3212e22324bb300e30cba3f109a8ddcf Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 18 Jan 2025 02:07:42 +0000 Subject: [PATCH 279/399] snip Signed-off-by: Leah Rowe --- site/news/10.md | 158 +++++++++++++++++++++++++----------------------- 1 file changed, 84 insertions(+), 74 deletions(-) diff --git a/site/news/10.md b/site/news/10.md index 244d6a7..c5a2b07 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -106,8 +106,7 @@ and professional, with clear documentation. Coreboot documentation today is much better, but it was very poor quality in 2013 (MediaWiki site with lots of errant pages, poorly organised). -It came with a twist: Libreboot initially complied with the FSF's own RYF -criteria, and the GNU FSDG (Free System Distribution Guidelines). Under this +It came with a twist: Libreboot initially only permitted libre code. Under this policy, no binary blobs are allowed. I believed in it then, because in practise it seemed like a good idea and didn't do any harm. It would later become a liability, for reasons laid out in Libreboot's modern [Binary Blob Reduction @@ -463,9 +462,8 @@ generator of any kind. On the coding side of things, many GNU programs use things like GNU Autoconf for configuration, in build systems, and GNU has a certain *coding style* that is preferred. To speed up entry into GNU, many of the requirements were -overlooked since, ideologically speaking, Libreboot aligned with the GNU -Free System Distribution Guidelines (FSDG) at that time, so Libreboot officially -joined GNU on 14 April 2016, under the assumption that it would gradually +overlooked since, ideologically speaking, Libreboot was otherwise entirely free. +We joined GNU on 14 April 2016, under the assumption that it would gradually start integrating with the GNU infrastructure. *Three* Libreboot releases were released, during its GNU membership, namely: @@ -478,14 +476,6 @@ Libreboot's popularity reached great heights during this time, greatly expanding and attracting many new developers. Joining GNU accelerated this further, though it came with certain drawbacks. -At that time, I believed in the GNU FSDG policy, and I saw GNU membership as -beneficial to the Libreboot project, not because I was interested in GNU for -any technical merit; Libreboot is boot firmware, whereas GNU has always been -about providing an operating system with the libc and many useful applications. -Libreboot did not really fit into the GNU infrastructure, but it aligned with -the ideology both in theory and in practise, and the prestige of it at that time -would attract more help. - I later realised otherwise, regarding the ideology; more on this later, in the sections about osboot, and the osboot/libreboot merge, and events after that. @@ -1149,8 +1139,7 @@ when the latter forked from Freenode after a hostile takeover. Thankfully, that drama ended quickly and we ended up with Libera being the clear winner. Anyway: I finally did get a new Libreboot release out, based on the work that -I had started in osboot, but at that time still complying with the GNU Free -System Distribution Guidelines, like 2016 Libreboot did. +I had started in osboot, but at that time Libreboot had the blob-free policy. I did not use any of the work in the *Paper* re-write. I used precisely zero lines of code from Sebastian and Andrew's work. I did it all myself. My decision @@ -1174,19 +1163,19 @@ Osboot from 2021-2022 The *osboot* project continued, since December 2020 when it started. I started adding many new boards to it. The purpose of Osboot was the same as Libreboot, -except that it had the [Binary Blob Reduction Policy](policy.md) that Libreboot -now uses, but back then, Libreboot adhered to GNU FSDG. +except that it had the [Binary Blob Reduction Policy](policy.md) instead. +This is the policy that *modern* Libreboot uses, since merging with osboot. Goals of osboot --------------- I *wanted* to start a project like osboot much earlier, in 2017. In fact, I was going to, but real life got in the way and I went on hiatus for a few years. -I concluded as early as 2017 that the FSDG policy was a liability, especially +I concluded as early as 2017 that the no-blob policy was a liability, especially after `me_cleaner` became available. I realised that there were many more machines out there, that I then considered acceptable from a software freedom -perspective, even if they did not comply with FSF RYF or GNU FSDG; I regard -the FSF policy as overly dogmatic, and I've always thought so, but in practise +perspective, even if they did require an additional blob or two; I regard +the no-blob policy as overly dogmatic, and I've always thought so, but in practise it didn't hurt anything because Intel ME was always a problem. I didn't know ME neutering was possible, until I found out about `me_cleaner` - I would never provide anyone with a setup that uses a non-neutered ME, because of the networking @@ -1257,7 +1246,7 @@ everyone supported this move. Sure enough, I saw a relative lack of opposition to it; though, some of the more dogmatic members of the FSF were quite upset. This level of upset later caused.... well, that's what I'm going to cover next. -GNU Boot +FSF fork ======== The purpose of today's article has been to write a rigorous history section for @@ -1311,22 +1300,22 @@ in 2017. I don't feel bad about what I did. What they did is widely considered to be a *dick move* in the free software movement; it is widely considered impolite to fork an active project and use the same name. The unwritten rule is always -that you use a new name. It's more than that though: in their initial fork, and -also in GNU Boot, they didn't just say: this is what we are, what we do and why -you should use our product. No. They put a paragraph in their documentation, +that you use a new name. It's more than that though: in the FSF's fork, they +didn't just say: this is what we are, what we do and why you should use our +product. No. They put a paragraph in their documentation, urging people to *delete* links to libreboot.org, and link to them. *They were out for blood*. -Fork attempt 2: GNU Boot ------------------------- +Fork attempt 2: GNU +------------------- So I've responded in kind, ever since. Regardless of whether they succeed or whether they are competent, a thought exists in their head. A dream, you could say. Their dream is a world in which Leah Rowe and Libreboot no longer exist. They wanted to destroy me. It's evident in Denis's LP2023 talk, where he said he wanted to "continue" the Libreboot project. In his mind, there is no room for -disagreement over policy; it's FSDG or nothing. I had to play by their rules, -or go home. +disagreement over policy; it's their way or nothing. I had to play by their +rules, or go home. During that time, and subsequently, I and others had repeatedly put pressure on them to rename. I personally came up with the name *GNU Boot* - and suggested @@ -1334,18 +1323,19 @@ that they use it. It's a name that I myself came up with several years prior, when I was considering whether to work for GNU again *myself*, but as an actual fork of coreboot. The name just works. -They did rename, to GNU Boot, but only after I forced them to do so. I forced +GNU did rename their project, but only after I forced them to do so. I forced them to do so, by exposing the moral bankrupcy on their part, in their initial -effort to steal the Libreboot name. +effort to steal the Libreboot name. Their initial plan was to create a newly +established *GNU Libreboot* project. -On this day, GNU Boot 0.1 RC3 was imminent for release, on this day, and it +By 2023-12-12, GNU's fork had a new RC imminent for release, on this day, and it was still based largely on Libreboot 20220710, with only superficial changes on top of it. it still has all the old, obsolete revisions for all projects, including coreboot. It still has all of the same bugs, that Libreboot has since fixed, especially during 2023. Libreboot is *vastly* superior, in every way. -Unlike with their first attempt, GNU Boot is fully hosted on the GNU Savannah -infrastructure, as any proper GNU project should be. I *respect* the GNU Boot +Unlike with their first attempt, GNU's new project is hosted on the GNU Savannah +infrastructure, as any proper GNU project should be. I *respect* the latter GNU project more, because it is its own thing, that doesn't try to ride off of my coattails. However, my perception of them is permanently coloured by their initial hostile actions; and the only reason they ceased such actions was @@ -1416,15 +1406,16 @@ and now: Canoeboot --------- -Purely for my own entertainment, I decided to re-create FSDG Libreboot *myself*. -FSDG is the policy that GNU Boot uses, that Libreboot previously used, before -it adopted the modern [Binary Blob Reduction Policy](policy.md) - GNU Boot -started, specifically because it opposed the new policy in Libreboot. +Purely for my own entertainment, I decided to re-create blob-free Libreboot *myself*. +It is the same one that GNU uses, that Libreboot previously used, before +it adopted the modern [Binary Blob Reduction Policy](policy.md) - GNU started +their new project, specifically because it opposed the new policy in Libreboot. -Well, GNU Boot seemed to be going nowhere fast. I monitor their Git activity +Well, GNU's fork seemed to be going nowhere fast. I monitor their Git activity daily, and their development pace is much slower than mine; slower than mine, even when I'm going slow. I thought to myself: what if a *competently* -engineered solution existed, like GNU Boot but not? +engineered solution existed? One maintained by someone who's been doing this +for over a decade? And thus, [Canoeboot](https://canoeboot.org/) was born. I still mainly develop Libreboot, but I spend a few hours after each release, bringing Canoeboot up @@ -1436,11 +1427,11 @@ Canoeboot is even listed on the FSF's Topham approved it, he's the FSF's current licensing and compliance manager, at least on 12 December 2023. -The purpose of Canoeboot is to simply exist, complying with GNU Boot policy -while being superior to it in every way, outcompeting it so fast that the -GNU Boot project is constantly behind - it's done, specifically to demonstrate +The purpose of Canoeboot is to simply exist, adhering to the no-blob policy +while being superior to GNU in every way, outcompeting it so fast that GNU's +own project is constantly behind - it's done, specifically to demonstrate the superiority of Libreboot policy, by showing what Libreboot *would have -been*, if it didn't adopt the new policy. +been*, if it didn't adopt the [Binary Blob Reduction Policy](policy.md) policy. The FSF failed in its coup. My countercoup was a success. I madly beat them at their own game. The FSF's strategy *might* have worked, if I hadn't been so @@ -1458,9 +1449,9 @@ new Libreboot release. I actually *describe* how this syncing is done, in great detail, on Canoeboot's [about page](https://canoeboot.org/about.html) - and the first Canoeboot release was done, based on the latest Libreboot release at that time, in only 2 days, with all of Libreboot's vast improvements in it -compared to GNU Boot. As of this day, 12 December 2023, Canoeboot is about 1 -year ahead of GNU Boot in terms of code development, and 2 years ahead on the -writing of documentation. Conversely, GNU Boot is 1 year and 2 years out of +compared to GNU's work, or lack thereof. As of this day, 12 December 2023, +Canoeboot is about 1 year ahead of GNU in terms of code, and 2 years ahead on +the writing of documentation. Conversely, GNU is *1 year* and *2 years* out of date, in terms of code and documentation respectively. 2024 reconciliation intentions @@ -1471,12 +1462,12 @@ date, in terms of code and documentation respectively. The *FSF* started the coldboot war. Libreboot merely won it. From 2024 onward, unless more hostilities develop from FSF/GNU's side, I intend -to adopt a more conciliatory approach toward GNU Boot. I won the battle of 2023. +to adopt a more conciliatory approach toward GNU/FSF. I won the battle of 2023. I won the *cold boot war*, but the real battle is this: how do we get free boot firmware to non-technical end users, efficiently and reliably? The answer to -that question is projects such as Libreboot, or indeed others like GNU Boot, -Heads, Skulls, MrChromebox... you name it. Distros, designed similarly to -Linux distros, but for building boot firmware instead. +that question is projects such as Libreboot, or indeed others like, Heads, +Skulls, MrChromebox... you name it. Distros, designed similarly to Linux +distros, but for building boot firmware instead. The *first* coldbootwar occured between 19 March 2023 and 31 December 2023, described in the article above. @@ -1485,16 +1476,16 @@ Much of 2023 was spent counteracting the FSF's coup, because they were hostile to the Libreboot project, but I decided that I will avoid any such counter action from now on. I will stil develop Canoeboot, but my main focus is Libreboot. My conclusion is that, so long as my own efforts exist, and I keep -working on everything, the GNU Boot project is no threat to Libreboot whatsoever. +working on everything, the GNU project is no threat to Libreboot whatsoever. -Towards the end of 2023, there *was* in fact cooperation, between the GNU Boot +Towards the end of 2023, there *was* in fact cooperation, between the GNU project and Libreboot projects, in the form of small patches; Denis Carikli sent a few patches and reports to Canoeboot and the Untitled Static Site Generator, and I did similar for the GNU boot project. The FSF themselves even decided to accept Canoeboot, on their Free Software Directory. See: -My only issue with GNU Boot at the start of 2023 was that they wanted +My only issue with GNU and FSF at the start of 2023 was that they wanted to *replace* the Libreboot project, by using the same name. They *did* try to destroy the Libreboot project, and take it for themselves. Things pretty much calmed towards the end of 2023, and now the two projects/communities operate @@ -1509,14 +1500,14 @@ anymore; to do so was necessary, when they themselves did the same, because the FSF is a well-funded organisation with much bigger reach and would walk all over me if I allowed it, so it was necessary to show strength. -However, throughout 2024, GNU Boot has essentially been a dead project; they +However, throughout 2024, GNU's fork has essentially been a dead project; they haven't done any work on their build system of any consequence, and haven't even updated their documentation that heavily. Their main focus was on integrating the Untitled Static Site Generator into their infrastructure, which otherwise relies heavily on TexInfo documents and CVS (Untitled relies on Markdown and Git heavily - the FSF actually made a special rsync server for -GNU Boot to manually upload HTML files to, generated by Untitled, which they -wrapped around directly, within the GNU Boot build system). +to manually upload HTML files to, generated by Untitled, which they +wrapped around directly, within their fork of the Libreboot build system). Last remarks ============ @@ -1536,7 +1527,7 @@ your patience and your courage with a cool easter egg: The `minifree.org` domain name initially hosted a website that was teaching people how to use VPNs and Tor, and it contained information about how to -be private on the internet. I later planned on making it into an FSDG-compliant +be private on the internet. I later planned on making it into a blob-free fork of *Puppy Linux* - because Puppy is small, lightweight, and mini is another word for *small*, and it was to be a fully free distribution, containing no blobs, not even firmware. Minifree GNU/Linux. I later scrapped the plan, and @@ -1550,7 +1541,7 @@ on [minifree.org](https://minifree.org/). January 1st, 2025, UPDATE! ======================== -The truce of 2024 has ended. GNU Boot did a talk during 38C3 conference, where +The truce of 2024 has ended. GNU did a talk during 38C3 conference, where they spent at least *one third* of the talk, telling people to stop using Libreboot, to stop promoting Libreboot, stop contributing to it. This is an act of war against the Libreboot project. @@ -1561,23 +1552,38 @@ is that there is no longer good will from Libreboot towards the GNU project. Canoeboot will be developed as aggressively as before, if not more so. It will be maintained and updated aggressively, but now with this fact in mind, and -with the view that the GNU Boot project must be contained; the mere existence -of the Canoeboot project is a direct attack on GNU Boot, and it will continue. +with the view that the GNU project must be contained; the mere existence +of the Canoeboot project is a direct attack on GNU, and it will continue. It +is an attack, because *they* can't attack *Canoeboot* lest they look like +hypocrites, which they are, but looking like it is worse. They were the ones +who tried to steal the Libreboot name, and they the aggressors; Canoeboot was +formed as an act of self defense to protect Libreboot, and Canoeboot is a fun +technical challenge. I was going to approach the GNU project and start a discussion about shutting -down the Canoeboot project, and merge it with GNU Boot, helping them to bring -their project up to date - for example, as of January 2025, GNU Boot *still* -uses the same late 2021 coreboot and GRUB revisions that it used when GNU -Boot started back in June 2023. +down the Canoeboot project, and merge it with GNU. As of January 2025, GNU's +own Libreboot fork *still* uses the same late 2021 coreboot and GRUB revisions +that it used when they started back in June 2023. As of December 2024, the +Canoeboot project used upstream revisions *from December 2024* and with +completely up to date documentation. Such an attempt at collaboration was made before, and it was rejected. It is -clear now that the GNU Boot developers have nothing but contempt. Therefore, -the agenda from 1 January 2025 onward, is to *replace* GNU Boot; to move +clear now that the GNU/FSF developers have nothing but contempt. Therefore, +the agenda from 1 January 2025 onward, is to *replace* GNU, not join it; to move so far ahead of the project on a technical level, and to overwhelm it so much -in that regard, that the project effectively no longer exists as a practical -matter. +in that regard, yet offer no truce and no way out for GNU. The end result shall +be that FSF/GNU fans only have Canoeboot, and nothing else. GNU has shown +historical opposition and hostility to the Libreboot project, to the extent +that they even tried to steal the name; therefore, I will show no mercy. -Canoeboot is vastly superior to GNU Boot. Its [design](https://canoeboot.org/docs/maintain/) +This is not about tech. This is about dreams. A battle of dreams. My dream is +to maintain a highly popular [Free Software](https://writefreesoftware.org/learn) +boot project, namely Libreboot and Canoeboot; this dream exists because I enjoy +the work, and I believe in Free Software. GNU's dream has been to steal mine; +I do all the work, and they wanted to steal my thunder. + +Canoeboot is vastly superior to anything GNU would ever do, or has done. +Canoeboot's highly efficient [design](https://canoeboot.org/docs/maintain/) is much simpler and more powerful in practise, doing *more* in fewer lines of code - and it supports more hardware. Canoeboot is, at this time, interested in more GM45-based Dell Latitude models and X4x-based Dell OptiPlex 780 variants, @@ -1598,22 +1604,26 @@ In general, Libreboot's [Binary Blob Reduction Policy](policy.md) dictates that if Free Software *can* be used, it must be - as a result, many systems supported by Libreboot, boot entirely with free software. Libreboot is a free software project, whose primary goal is to increase software freedoms for users -by providing them with free boot firmware. And yet: GNU Boot's talk strongly +by providing them with free boot firmware. And yet: GNU talk strongly suggests that Libreboot is a *proprietary software project*. -In GNU Boot's talk, they directly state that I, Leah Rowe, am "against 100% +In GNU talk, they directly state that I, Leah Rowe, am "against 100% free software" - also false. I want everyone to use Free Software exclusively, but the reality is that this is literally impossible, on any hardware. The reason is strongly described in Libreboot's [Freedom Status](../freedom-status.md) and [Binary Blob Reduction Policy](policy.md) pages. -It is clear, then, that the GNU Boot project wishes to undermine the Libreboot +It is clear, then, that the GNU project wishes to undermine the Libreboot project; their dream is that Libreboot will one day cease to exist. So in -response, Libreboot has this dream too, but about GNU Boot. +response, Libreboot has this dream too, but about GNU. My revenge shall be +to continue maintaining Libreboot and Canoeboot, to a high standard, and to +get ever further ahead of them both technically, and politically. The outcome of coldbootwar2 will be described in the *next* decade anniversary page, on 12 December 2033. It is strongly expected that Libreboot will continue to exist and thrive by then; today's Libreboot will be vastly inferior to that -future Libreboot, and it is expected that GNU Boot will have been dead for years. +future Libreboot, and it is expected that GNU will have long given up the ghost. Canoeboot will still be maintained regularly. That is the dream, and it is my wish that this dream be fully realised. It shall be done. + +I'm not allowed to win, but I will. From 4c12433a6ab185d4092fab7400f09d3ef203b355 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 18 Jan 2025 02:12:20 +0000 Subject: [PATCH 280/399] snip2 Signed-off-by: Leah Rowe --- site/docs/maintain/index.md | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 2c467ba..659b55e 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -665,9 +665,8 @@ about here: util/spkmodem\_recv/ --------------- -FSF has original copyright on this; it was imported from coreboot, who in turn -imported it from GRUB with very little modification. Therefore, this code is -canonically based on what is provided in GNU GRUB. +Libreboot imported this from coreboot, who is turn imported it from GRUB with +little to no modification. This is a receiving client for spkmodem, which is a method of providing serial consoles via pulses on the PC speaker. The `spkmodem_recv` client will *decode* From 6f9ec4cc4d7eb4017af4768842ac6861b1e81aa5 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 18 Jan 2025 02:33:48 +0000 Subject: [PATCH 281/399] fix language Signed-off-by: Leah Rowe --- site/news/10.md | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/site/news/10.md b/site/news/10.md index c5a2b07..da254d8 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -1306,8 +1306,8 @@ product. No. They put a paragraph in their documentation, urging people to *delete* links to libreboot.org, and link to them. *They were out for blood*. -Fork attempt 2: GNU -------------------- +FSF's 2nd fork attempt +--------------------- So I've responded in kind, ever since. Regardless of whether they succeed or whether they are competent, a thought exists in their head. A dream, you could @@ -1326,7 +1326,8 @@ fork of coreboot. The name just works. GNU did rename their project, but only after I forced them to do so. I forced them to do so, by exposing the moral bankrupcy on their part, in their initial effort to steal the Libreboot name. Their initial plan was to create a newly -established *GNU Libreboot* project. +established *GNU Libreboot* project. The name that they *now* use was created +by me, and I made them use it. By 2023-12-12, GNU's fork had a new RC imminent for release, on this day, and it was still based largely on Libreboot 20220710, with only superficial changes on @@ -1406,8 +1407,8 @@ and now: Canoeboot --------- -Purely for my own entertainment, I decided to re-create blob-free Libreboot *myself*. -It is the same one that GNU uses, that Libreboot previously used, before +Purely for my own entertainment, I decided to re-create blob-free +Libreboot *myself*, exactly the same one that Libreboot used in the past, before it adopted the modern [Binary Blob Reduction Policy](policy.md) - GNU started their new project, specifically because it opposed the new policy in Libreboot. From 77198f7f5dc5a972ef5181751db26d5c69773db7 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 18 Jan 2025 02:35:37 +0000 Subject: [PATCH 282/399] grammar Signed-off-by: Leah Rowe --- site/news/10.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/news/10.md b/site/news/10.md index da254d8..55cc695 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -1605,10 +1605,10 @@ In general, Libreboot's [Binary Blob Reduction Policy](policy.md) dictates that if Free Software *can* be used, it must be - as a result, many systems supported by Libreboot, boot entirely with free software. Libreboot is a free software project, whose primary goal is to increase software freedoms for users -by providing them with free boot firmware. And yet: GNU talk strongly +by providing them with free boot firmware. And yet: the GNU talk strongly suggests that Libreboot is a *proprietary software project*. -In GNU talk, they directly state that I, Leah Rowe, am "against 100% +In that same GNU talk, GNU directly states that I, Leah Rowe, am "against 100% free software" - also false. I want everyone to use Free Software exclusively, but the reality is that this is literally impossible, on any hardware. The reason is strongly described in Libreboot's [Freedom Status](../freedom-status.md) From e4b30750d15ab0e33c465b31d5e6175cf4b82b76 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 18 Jan 2025 04:55:26 +0000 Subject: [PATCH 283/399] snip3 Signed-off-by: Leah Rowe --- site/contrib.md | 2 +- site/docs/install/dell3050.md | 2 +- site/docs/install/index.md | 2 +- site/docs/linux/grub_hardening.md | 2 +- site/docs/maintain/index.md | 4 ++-- site/docs/maintain/style.md | 5 ++--- site/docs/uboot/uboot-archlinux.md | 4 ++-- site/git.md | 2 +- site/index.md | 2 +- site/index.ru.md | 2 +- site/news/10.md | 15 +++++---------- site/news/audit.md | 4 ++-- site/news/libreboot20230625.md | 6 +++--- site/news/libreboot20240225.md | 2 +- site/news/libreboot20240504.md | 4 ++-- site/news/libreboot20240612.md | 2 +- site/news/libreboot20241008.md | 8 ++++---- site/news/libreboot20241206.md | 4 ++-- site/news/libreboot20241206rev8.md | 4 ++-- site/news/policy.de.md | 2 +- site/news/policy.md | 2 +- site/news/policy.uk.md | 2 +- site/tasks/index.md | 8 +++----- 23 files changed, 41 insertions(+), 49 deletions(-) diff --git a/site/contrib.md b/site/contrib.md index a4a5bad..1aaf97d 100644 --- a/site/contrib.md +++ b/site/contrib.md @@ -429,7 +429,7 @@ Mate Kukri Mate Kukri is a *major* contributor to Libreboot, and several of the upstreams that it uses; he is a coreboot developer, and also contributes heavily to the -GNU GRUB project. +GRUB bootloader project. Off the top of my head, here are just a few of the contributions that he has made: diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index d7d82e0..f8fc99d 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -139,7 +139,7 @@ MAC address This has a Realtek NIC inside, instead of Intel, so the MAC address will not change. This means: there is no GbE region in the flash. -You can still use something like GNU MAC Changer to change your MAC address +You can still use something like `macchanger` to change your MAC address from Linux if you want to. This is great, because that's one less complexity to deal with during diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 2db7059..3484e8b 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -58,7 +58,7 @@ build system can be found in the [lbmk maintenance manual](../maintain/), and information about porting new systems in the [porting manual](../maintain/porting.md). -With x86 machines, you can use the SeaBIOS or GNU GRUB payloads. On ARM +With x86 machines, you can use the SeaBIOS or GRUB bootloader payloads. On ARM systems, you can use the U-Boot payload (coreboot still initialises hardware). Libreboot currently supports the following systems: diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index c28afd6..c8d57d5 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -44,7 +44,7 @@ linked above tells you how to apply your modifications for flashing.** Flash write protection ====================== -Although not strictly related to GNU GRUB, flash protection will prevent anyone +Although not strictly related to GRUB, flash protection will prevent anyone except you from overwriting the flash without permission. This is important, because you don't want some malicious software running as root from overwriting your flash, thus removing any of the above protections. diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 659b55e..bbe4e00 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -453,7 +453,7 @@ src/grub/TREE Please also visit: -The GNU GRUB bootloader, a reference multiboot implementation with its own +The GRUB bootloader, a reference multiboot implementation with its own small kernel/OS and drivers (e.g. file systems, cryptography). This is the default recommended [coreboot payload](https://doc.coreboot.org/payloads.html) on x86-based Libreboot systems. GRUB will load and execute your Linux kernel, @@ -681,7 +681,7 @@ directly into `lbmk.git`, and thoroughly cleaned. The lbmk version has been more or less re-written, using the original logic as a base; variables are more clearly named. A top-down, OpenBSD-inspired coding style is used, replacing the GNU coding style implemented in the original code. The [OpenBSD -coding style][https://man.openbsd.org/style.9] is much easier to read. +coding style](https://man.openbsd.org/style.9) is much easier to read. This code has been modified to make use of the `pledge()` system call, when used on [OpenBSD](https://www.openbsd.org/); the original version from GRUB did not diff --git a/site/docs/maintain/style.md b/site/docs/maintain/style.md index 5dc773c..702ef76 100644 --- a/site/docs/maintain/style.md +++ b/site/docs/maintain/style.md @@ -307,10 +307,9 @@ In addition to not using bashisms, commands that lbmk uses must also be portable; where possible, third party projects should be tweaked. This is actually something that is currently lacking or otherwise untested -in Libreboot; it's currently assumed that only Linux (specifically GNU+Linux) +in Libreboot; it's currently assumed that only common Linux distributions will work, because many of the projects that Libreboot makes use of will use -bashisms, or other GNUisms (e.g. GNU-specific C extensions or GNU Make specific -behaviour in Makefiles). +bashisms, and/or rely on idiosyncrasies of glibc. Work+testing is sorely needed, in this area. It would be nice if Libreboot could be built on BSD systems, for example. diff --git a/site/docs/uboot/uboot-archlinux.md b/site/docs/uboot/uboot-archlinux.md index e633802..45b8d94 100644 --- a/site/docs/uboot/uboot-archlinux.md +++ b/site/docs/uboot/uboot-archlinux.md @@ -8,7 +8,7 @@ Background ArchLinuxARM Latest (as of May 1st 2023) boots and can be installed successfully using libreboot 20230319 on a gru_bob chromebook. -The following process should theoretically be applicable to other U-Boot devices and GNU/Linux distributions, but the focus here is specifically on ArchLinuxARM. +The following process should theoretically be applicable to other U-Boot devices and Linux distributions, but the focus here is specifically on ArchLinuxARM. Sources used for this guide include the [following guide to install ArchLinuxARM on a RockPro64,](https://jforberg.se/blog/posts/2023-02-19-rockpro64/rockpro64.html) @@ -85,7 +85,7 @@ In the fdisk tui, create two partitions on a Master Boot Record: - set type to fat32 (ext2 is also supported by extlinux I believe, but I used fat32) - create a second partition of up to 15.8GB -You will find the appropriate options by typing `m` when using the fdisk tui on GNU/Linux distros. +You will find the appropriate options by typing `m` when using the fdisk tui on Linux distros. Now make the filesystems: ``` diff --git a/site/git.md b/site/git.md index 5237d95..a2c3667 100644 --- a/site/git.md +++ b/site/git.md @@ -189,7 +189,7 @@ proprietary, subject to all of the same restrictions. The MIT license is a good one to start with, and it is the preferred license for all new works in Libreboot, but we're not picky. Libreboot has historically -used GNU licensing such as GPL; much of that remains, and is likely to remain. +used mostly GPL licensing; much of that remains, and is likely to remain. It's your work; obviously, if you're deriving from an existing work, it may make sense to use the same license on your contribution, for license compatibility. diff --git a/site/index.md b/site/index.md index 0409e56..c647d1b 100644 --- a/site/index.md +++ b/site/index.md @@ -46,7 +46,7 @@ Libreboot provides [coreboot](https://coreboot.org/) for [machine initialisation](https://doc.coreboot.org/getting_started/architecture.html), which then jumps to a [payload](https://doc.coreboot.org/payloads.html) in the boot flash; coreboot works with many payloads, but Libreboot specifically -provides SeaBIOS, GNU GRUB and U-Boot as options. Memtest86+ is also provided +provides SeaBIOS, GRUB and U-Boot as options. Memtest86+ is also provided in flash, on some mainboards. The payload is the program in flash that provides the early user interface, for booting an operating system. This *payload* infrastructure means you can run whatever you want (even Linux!) from the diff --git a/site/index.ru.md b/site/index.ru.md index a37e0da..baaa3aa 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -18,7 +18,7 @@ x-toc-enable: true -Libreboot предоставляет [coreboot](https://coreboot.org/) для [инициализации машины](https://doc.coreboot.org/getting_started/architecture.html), которая затем переходит к [полезной нагрузке](https://doc.coreboot.org/payloads.html) в загрузочной флэш-памяти; coreboot работает со многими программами, но Libreboot предоставляет только SeaBIOS, GNU GRUB и U-Boot. Memtest86+ также предоставляется, но только на некоторых материнских платах. Полезная нагрузка - программа во флэш-памяти, которая предоставляет "ранний" пользовательский интерфейс для загрузки операционной системы. Это значит, что вы можете запустить все что угодно из загрузочной флэш-памяти (даже Linux!). +Libreboot предоставляет [coreboot](https://coreboot.org/) для [инициализации машины](https://doc.coreboot.org/getting_started/architecture.html), которая затем переходит к [полезной нагрузке](https://doc.coreboot.org/payloads.html) в загрузочной флэш-памяти; coreboot работает со многими программами, но Libreboot предоставляет только SeaBIOS, GRUB и U-Boot. Memtest86+ также предоставляется, но только на некоторых материнских платах. Полезная нагрузка - программа во флэш-памяти, которая предоставляет "ранний" пользовательский интерфейс для загрузки операционной системы. Это значит, что вы можете запустить все что угодно из загрузочной флэш-памяти (даже Linux!). Libreboot - это *дистрибутив coreboot* также, как и Debian - *диструбутив Linux*. Libreboot делает coreboot простым к использованию для обычных пользователей, предоставляя [полностью автоматизированную систему сборки](docs/build/) и [дружелюбные к пользователю инструкции к установке](docs/install/), в дополении к регулярному бинарному релизу, дающему скомпилированные ROM образы для установки на поддерживаемом оборудовании. Без автоматизации, предоставляемой Libreboot, coreboot был бы недоступен для большинства пользователей; однако вы также можете [сконфигурировать](docs/mantain) Libreboot как вы желаете. diff --git a/site/news/10.md b/site/news/10.md index 55cc695..70bc7c9 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -141,7 +141,7 @@ so you can think of it like a *[coreboot distribution](../docs/maintain/)*; Libreboot's build system is essentially a source-based package manager, for coreboot components. -The very first Libreboot releases only provided a *GNU GRUB* payload. The +The very first Libreboot releases only provided a *GRUB* bootloader payload. The GRUB bootloader had been adapted for coreboot many years before then, but there weren't any ready-made coreboot images available that used it, and it wasn't very well-developed for end users. GRUB is a lot more complex than many people @@ -162,13 +162,8 @@ use today. Libreboot logo -------------- -Of note, though it doesn't fit anywhere else in the article, so I'll just say -it now: - -I went on the GNU mailing lists during 2014, asking people to make a logo for -the project. Several people then emailed me their submissions. I finally picked -the logo design that Libreboot now uses, and has used since then. That design -was created by a person named Marcus Moeller, for use in the Libreboot project. +Marcus Moeller designed the Libreboot logo in 2014, after I publicly requested +that samples be prepared for my review. Marcus's logo was the one I chose. Why GRUB? --------- @@ -429,8 +424,8 @@ Several other desktop boards were also added during this period, such as the Gigabyte GA-G41M-ES2L board that was ported to coreboot by Damien Zammit. He was compensated for his work; I paid him 4000 AUD for the trouble. Arthur Heymans contributed several ports aswell, and today still does extensive work -on coreboot - both Damien and Arthur left the Libreboot project, after its -departure from GNU (more on this next). +on coreboot - both Damien and Arthur left the Libreboot project, after Libreboot +became independent again. This period was a watershed moment in general, for the Libreboot project. Many people contributed to the project, during this period. You can check diff --git a/site/news/audit.md b/site/news/audit.md index e3b5176..05fc1e4 100644 --- a/site/news/audit.md +++ b/site/news/audit.md @@ -106,10 +106,10 @@ spkmodem-recv ------------- This utility was *added* after the last release. It was imported from coreboot, -which in turn previously forked it from GNU GRUB. It is a receiving client for +which in turn previously forked it from GRUB. It is a receiving client for spkmodem, to provide a serial console via pulses on the standard *PC speaker*. -Libreboot's version is *heavily* re-factored, doing away with the GNU coding +Libreboot's version is *heavily* re-factored, doing away with the messy GNU coding style and replacing it with a BSD coding style (the licensing is unchanged). For reference, here is the original version from GRUB: diff --git a/site/news/libreboot20230625.md b/site/news/libreboot20230625.md index 3acdca6..3a8f82d 100644 --- a/site/news/libreboot20230625.md +++ b/site/news/libreboot20230625.md @@ -187,14 +187,14 @@ Newest changes first, oldest changes last: namely `-d`, which can be passed to the program. The code for debug is now present in any build. Usage: `spkmodem-recv -d` * New util: `util/spkmodem_recv` - imported from coreboot, which in turn forked - it originally from GNU GRUB. This is a receiving client for *spkmodem*, a type + it originally from GRUB. This is a receiving client for *spkmodem*, a type of serial console provided via pulses over PC speaker. Libreboot's version greatly improves the error handling, and it has been re-factored for OpenBSD - coding style, to replace the (very horrible) GNU coding style. + coding style, to replace the (very horrible, very messy) GNU coding style. It is also [pledged](https://man.openbsd.org/pledge.2) in Libreboot's version. For reference, [here](https://git.savannah.gnu.org/cgit/grub.git/plain/util/spkmodem-recv.c?id=822b726b33b8dc07dd01b257a2dfcc7b07d12e2f) - is the GNU version, and + is the GRUB version, and [here](https://raw.githubusercontent.com/coreboot/coreboot/8febc91b3041a1d027bf0d36d30ccb119496524f/util/spkmodem_recv/spkmodem-recv.c) is coreboot's version of it. And now to blow your mind, [here](https://browse.libreboot.org/lbmk.git/tree/util/spkmodem_recv/spkmodem-recv.c?id=b508245451b71b3443fa3202f3863a6de731e9c8) is the Libreboot version present in release 20230625. A very much GNU program, diff --git a/site/news/libreboot20240225.md b/site/news/libreboot20240225.md index 60f36ba..62f650c 100644 --- a/site/news/libreboot20240225.md +++ b/site/news/libreboot20240225.md @@ -11,7 +11,7 @@ operating system (e.g. Linux/BSD). It is specifically a *[coreboot distribution](../docs/maintain/)*, in the same way that Debian is a Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as -GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy to use as possible for non-technical users. Libreboot provides many additional benefits such as fast boot speeds, greater diff --git a/site/news/libreboot20240504.md b/site/news/libreboot20240504.md index ea0d07f..3b519f6 100644 --- a/site/news/libreboot20240504.md +++ b/site/news/libreboot20240504.md @@ -15,13 +15,13 @@ operating system (e.g. Linux/BSD). It is specifically a *[coreboot distribution](../docs/maintain/)*, in the same way that Debian is a Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as -GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy to use as possible for non-technical users. From a project management perspective, this works in *exactly* the same way as a Linux distro, providing the same type of infrastructure, but for your boot firmware instead of your operating system. It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) -or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating +or [GRUB](https://www.gnu.org/software/grub/) to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). Libreboot provides many additional benefits such as fast boot speeds, greater diff --git a/site/news/libreboot20240612.md b/site/news/libreboot20240612.md index 5ef3cf5..6020bde 100644 --- a/site/news/libreboot20240612.md +++ b/site/news/libreboot20240612.md @@ -16,7 +16,7 @@ operating system (e.g. Linux/BSD). It is specifically a *[coreboot distribution](../docs/maintain/)*, in the same way that Debian is a Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as -GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy to use as possible for non-technical users. From a project management perspective, this works in *exactly* the same way as a Linux distro, providing the same type of infrastructure, but for your boot firmware instead of your operating system. diff --git a/site/news/libreboot20241008.md b/site/news/libreboot20241008.md index 9426b55..c513862 100644 --- a/site/news/libreboot20241008.md +++ b/site/news/libreboot20241008.md @@ -19,13 +19,13 @@ operating system (e.g. Linux/BSD). It is specifically a *[coreboot distribution](../docs/maintain/)*, in the same way that Debian is a Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as -GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy to use as possible for non-technical users. From a project management perspective, this works in *exactly* the same way as a Linux distro, providing a source-based package manager (called lbmk) which patches sources and compiles coreboot images. It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) -or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating +or [GRUB](https://www.gnu.org/software/grub/) to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). The changes of the recent [6th build system audit](audit6.md) are included, in @@ -450,8 +450,8 @@ The changes are as follows: where the BIOS region ends at 4MB; you would then flash the full image internally, after the fact. * Relative to audit6: Patch uefitool for musl libc. The code was making use - of `ACCESSPERMS`, which is a define in BSD libc (also available in the GNU - C Library) for use with chmod when setting 777 permission on files. The musl + of `ACCESSPERMS`, which is a define in BSD libc (also available in glibc) + for use with chmod when setting 777 permission on files. The musl libc doesn't have this, so the code was modified to explicitly define it in the same way, but only if not already defined. Useful for Alpine Linux users. * Relative to audit6: Don't dry-run `mkcorebootbin` when using the `-d` switch diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 864c60e..a76d37c 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -30,13 +30,13 @@ operating system (e.g. Linux/BSD). It is specifically a *[coreboot distribution](../docs/maintain/)*, in the same way that Debian is a Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as -GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy to use as possible for non-technical users. From a project management perspective, this works in *exactly* the same way as a Linux distro, providing a source-based package manager (called lbmk) which patches sources and compiles coreboot images. It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) -or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating +or [GRUB](https://www.gnu.org/software/grub/) to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). U-Boot UEFI payload on x86\_64 diff --git a/site/news/libreboot20241206rev8.md b/site/news/libreboot20241206rev8.md index 8958a3b..5ee4c6e 100644 --- a/site/news/libreboot20241206rev8.md +++ b/site/news/libreboot20241206rev8.md @@ -18,13 +18,13 @@ operating system (e.g. Linux/BSD). It is specifically a *[coreboot distribution](../docs/maintain/)*, in the same way that Debian is a Linux distribution. It provides an automated build system to produce coreboot ROM images with a variety of payloads such as -GNU GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy to use as possible for non-technical users. From a project management perspective, this works in *exactly* the same way as a Linux distro, providing a source-based package manager (called lbmk) which patches sources and compiles coreboot images. It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) -or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating +or [GRUB](https://www.gnu.org/software/grub/) to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). We also provide an experimental U-Boot setup on x86, as a coreboot payload for diff --git a/site/news/policy.de.md b/site/news/policy.de.md index 87d6ac6..e7d553b 100644 --- a/site/news/policy.de.md +++ b/site/news/policy.de.md @@ -385,7 +385,7 @@ have more - for now. Let's take an extreme example: what if coreboot was entirely binary blobs for a given mainboard? Coreboot itself only initialises the hardware, and -jumps to a payload in the flash; in this case, the payload (e.g. GNU GRUB) +jumps to a payload in the flash; in this case, the payload (e.g. GRUB) would still be free software. Surely, all free firmware would be better, but this is still an improvement over the original vendor firmware. The original vendor firmware will have non-free boot firmware *and* its analog diff --git a/site/news/policy.md b/site/news/policy.md index 59f9afb..07fc728 100644 --- a/site/news/policy.md +++ b/site/news/policy.md @@ -447,7 +447,7 @@ have more - for now. Let's take an extreme example: what if coreboot was entirely binary blobs for a given mainboard? Coreboot itself only initialises the hardware, and -jumps to a payload in the flash; in this case, the payload (e.g. GNU GRUB) +jumps to a payload in the flash; in this case, the payload (e.g. GRUB) would still be free software. Surely, all free firmware would be better, but this is still an improvement over the original vendor firmware. The original vendor firmware will have non-free boot firmware *and* its analog diff --git a/site/news/policy.uk.md b/site/news/policy.uk.md index 8832709..79893a3 100644 --- a/site/news/policy.uk.md +++ b/site/news/policy.uk.md @@ -376,7 +376,7 @@ have more - for now. Let's take an extreme example: what if coreboot was entirely binary blobs for a given mainboard? Coreboot itself only initialises the hardware, and -jumps to a payload in the flash; in this case, the payload (e.g. GNU GRUB) +jumps to a payload in the flash; in this case, the payload (e.g. GRUB) would still be free software. Surely, all free firmware would be better, but this is still an improvement over the original vendor firmware. The original vendor firmware will have non-free boot firmware *and* its analog diff --git a/site/tasks/index.md b/site/tasks/index.md index f728b0e..2431691 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -405,7 +405,7 @@ the [u-root](https://github.com/u-root/u-root) project. Libreboot's current choice of coreboot payloads are: * SeaBIOS (x86 only), provides a traditional PC BIOS implementation -* GNU GRUB (x86 only), provides a multiboot implementation, can boot Linux and +* GRUB (x86 only), provides a multiboot implementation, can boot Linux and BSD. This is the preferred default payload on x86, especially for Linux distros, because it provides many security features like GPG signature checking on Linux kernels, and password protection. @@ -418,7 +418,7 @@ Libreboot's current choice of coreboot payloads are: U-Root in particular (not to be confused with U-boot has parsers in it for GRUB and Syslinux config files. GRUB also has a parser for syslinux configs. -This makes it a useful drop-in replacement for the GNU GRUB payload that +This makes it a useful drop-in replacement for the GRUB bootloader payload that Libreboot currently uses. Linux has much better drivers than GRUB, especially for things like LUKS2 and networking. @@ -1211,9 +1211,7 @@ Sanity checks ------------- We basically should have startup sanity checks in general, such as checking -whether all the right dependencies are installed on the host system - similar -to autoconf setups used by many GNU projects, though we don't want to use -autoconf, it's bloat. +whether all the right dependencies are installed on the host system. If a sanity check is passed, a configuration file can then be provided, which can be used to control how lbmk runs. For example, if a certain version of a From 97b6ffc5a0787807733cea95e868f0fc1054ccbe Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 18 Jan 2025 07:00:01 +0000 Subject: [PATCH 284/399] mention payloads on the homepage Signed-off-by: Leah Rowe --- site/index.de.md | 11 +++++++++++ site/index.fr.md | 11 +++++++++++ site/index.it.md | 11 +++++++++++ site/index.md | 11 +++++++++++ site/index.ru.md | 11 +++++++++++ site/index.uk.md | 11 +++++++++++ site/index.zh-cn.md | 11 +++++++++++ 7 files changed, 77 insertions(+) diff --git a/site/index.de.md b/site/index.de.md index f6029d3..f9e96a8 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -26,6 +26,17 @@ Minifree; sales provide funding for Libreboot. am 6 December 2024. Siehe auch: [Libreboot 20241206 release announcement](news/libreboot20241206.md).** +Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 +Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) mainboards. +An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available +on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight +UEFI boot implementation, which can boot many Linux distros and BSD systems. +The SeaBIOS and GRUB payloads also boot Linux/BSD systems. Which one you use +depends on your preferences. Libreboot's design incorporates all of these boot +methods in a single image, so you can choose which one you use at boot time, +and more payloads (e.g. Linux kexec payload) are planned for future releases. + Warum solltest Du *Libreboot* verwenden? ---------------------------- diff --git a/site/index.fr.md b/site/index.fr.md index cc327ca..8a220b0 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -16,6 +16,17 @@ Leah Rowe, fondateur et principal développeur du projet Libreboot, est égaleme **NOUVELLE VERSION: La dernière version est [Libreboot 20241206](news/Libreboot20241206.md), sortie le 6 December 2024.** +Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 +Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) mainboards. +An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available +on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight +UEFI boot implementation, which can boot many Linux distros and BSD systems. +The SeaBIOS and GRUB payloads also boot Linux/BSD systems. Which one you use +depends on your preferences. Libreboot's design incorporates all of these boot +methods in a single image, so you can choose which one you use at boot time, +and more payloads (e.g. Linux kexec payload) are planned for future releases. + Pourquoi devriez-vous utiliser *Libreboot*? ----------------------------------- diff --git a/site/index.it.md b/site/index.it.md index cd10e7b..6c934e0 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -23,6 +23,17 @@ Minifree; sales provide funding for Libreboot. **ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 20241206, rilasciato il 6 December 2024. Vedi: [Libreboot 20241206 annuncio di rilascio](news/libreboot20241206.md).** +Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 +Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) mainboards. +An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available +on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight +UEFI boot implementation, which can boot many Linux distros and BSD systems. +The SeaBIOS and GRUB payloads also boot Linux/BSD systems. Which one you use +depends on your preferences. Libreboot's design incorporates all of these boot +methods in a single image, so you can choose which one you use at boot time, +and more payloads (e.g. Linux kexec payload) are planned for future releases. + Per quale ragione utilizzare *Libreboot*? ----------------------------------------- diff --git a/site/index.md b/site/index.md index c647d1b..689c7de 100644 --- a/site/index.md +++ b/site/index.md @@ -37,6 +37,17 @@ matters. you continue to use your hardware, with continued firmware updates. All of this is *why* Libreboot exists. +Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 +Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) mainboards. +An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available +on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight +UEFI boot implementation, which can boot many Linux distros and BSD systems. +The SeaBIOS and GRUB payloads also boot Linux/BSD systems. Which one you use +depends on your preferences. Libreboot's design incorporates all of these boot +methods in a single image, so you can choose which one you use at boot time, +and more payloads (e.g. Linux kexec payload) are planned for future releases. + Overview of Libreboot design ============================ diff --git a/site/index.ru.md b/site/index.ru.md index baaa3aa..9dd8ed6 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -13,6 +13,17 @@ x-toc-enable: true *Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://en.wikipedia.org/wiki/Right_to_repair) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. +Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 +Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) mainboards. +An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available +on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight +UEFI boot implementation, which can boot many Linux distros and BSD systems. +The SeaBIOS and GRUB payloads also boot Linux/BSD systems. Which one you use +depends on your preferences. Libreboot's design incorporates all of these boot +methods in a single image, so you can choose which one you use at boot time, +and more payloads (e.g. Linux kexec payload) are planned for future releases. + Обзор устройства Libreboot ============================ diff --git a/site/index.uk.md b/site/index.uk.md index a337fad..1ab6118 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -24,6 +24,17 @@ Minifree; sales provide funding for Libreboot. **НОВИЙ ВИПУСК: Останній випуск Libreboot 20241206, випущено 6 December 2024. Дивіться: [Оголошення про випуск Libreboot 20241206](news/libreboot20241206.md).** +Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 +Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) mainboards. +An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available +on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight +UEFI boot implementation, which can boot many Linux distros and BSD systems. +The SeaBIOS and GRUB payloads also boot Linux/BSD systems. Which one you use +depends on your preferences. Libreboot's design incorporates all of these boot +methods in a single image, so you can choose which one you use at boot time, +and more payloads (e.g. Linux kexec payload) are planned for future releases. + Чому вам варто використовувати *Libreboot*? ---------------------------- diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index 20b4dc6..ac0bac5 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -14,6 +14,17 @@ Libreboot 的创始人和主要开发者,Leah Rowe,也是 Minifree 的所有 **新版发布: 最新版本 Libreboot 20241206 已在 2024 年 12 月 06 日发布。详见: [Libreboot 20241206 发布公告](news/libreboot20241206.md).** +Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 +Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) mainboards. +An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available +on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight +UEFI boot implementation, which can boot many Linux distros and BSD systems. +The SeaBIOS and GRUB payloads also boot Linux/BSD systems. Which one you use +depends on your preferences. Libreboot's design incorporates all of these boot +methods in a single image, so you can choose which one you use at boot time, +and more payloads (e.g. Linux kexec payload) are planned for future releases. + 为什么要使用 *Libreboot*? ---------------------------- From 7f16d5cc66df5076bcf6313c57eeda2a30ebc2e3 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 18 Jan 2025 07:58:19 +0000 Subject: [PATCH 285/399] english homepage: shorten the payloads section also merge it into the "design overview" section Signed-off-by: Leah Rowe --- site/index.md | 27 ++++++++++----------------- 1 file changed, 10 insertions(+), 17 deletions(-) diff --git a/site/index.md b/site/index.md index 689c7de..8737dc8 100644 --- a/site/index.md +++ b/site/index.md @@ -37,17 +37,6 @@ matters. you continue to use your hardware, with continued firmware updates. All of this is *why* Libreboot exists. -Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 -Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* -on ARM64(Aarch64) mainboards. -An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available -on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight -UEFI boot implementation, which can boot many Linux distros and BSD systems. -The SeaBIOS and GRUB payloads also boot Linux/BSD systems. Which one you use -depends on your preferences. Libreboot's design incorporates all of these boot -methods in a single image, so you can choose which one you use at boot time, -and more payloads (e.g. Linux kexec payload) are planned for future releases. - Overview of Libreboot design ============================ @@ -56,12 +45,16 @@ Overview of Libreboot design Libreboot provides [coreboot](https://coreboot.org/) for [machine initialisation](https://doc.coreboot.org/getting_started/architecture.html), which then jumps to a [payload](https://doc.coreboot.org/payloads.html) in -the boot flash; coreboot works with many payloads, but Libreboot specifically -provides SeaBIOS, GRUB and U-Boot as options. Memtest86+ is also provided -in flash, on some mainboards. The payload is the program in flash that provides -the early user interface, for booting an operating system. This *payload* -infrastructure means you can run whatever you want (even Linux!) from the -boot flash. +the boot flash; coreboot works with many payloads, which boot your operating +system e.g. Linux/BSD. + +Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 +Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) mainboards. +An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available +on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight +UEFI boot implementation. Libreboot's [design](docs/maintain/) incorporates all +of these payloads in a single image, and you choose one at boot time. Libreboot makes coreboot easy to use for non-technical users, by providing a [fully automated build From c5ad70955ddba71047bd0ce4d6b4d39d221ead4b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 18 Jan 2025 08:10:01 +0000 Subject: [PATCH 286/399] homepage: make "binary releases" a download link Signed-off-by: Leah Rowe --- site/index.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/site/index.md b/site/index.md index 8737dc8..d723f7a 100644 --- a/site/index.md +++ b/site/index.md @@ -60,9 +60,9 @@ Libreboot makes coreboot easy to use for non-technical users, by providing a [fully automated build system](docs/maintain/), [automated build process](docs/build/) and [user-friendly installation instructions](docs/install/), in addition to -regular binary releases that provide pre-compiled ROM images for installation -on supported hardware. Without automation such as that provided by Libreboot, -coreboot would be inaccessible for most users; you can also +regular [binary releases](download.md) that provide pre-compiled ROM images for +installation on supported hardware. Without automation such as that provided by +Libreboot, coreboot would be inaccessible for most users; you can also still [reconfigure](docs/maintain/) Libreboot however you wish. Why use Libreboot? From b356cc30409b3bc4f6c76fe3200c0d694d31b176 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 00:20:31 +0000 Subject: [PATCH 287/399] template stuff Signed-off-by: Leah Rowe --- site/template.de.include | 4 +++- site/template.include | 4 +++- site/template.it.include | 4 +++- site/template.uk.include | 4 +++- site/template.zh-cn.include | 4 +++- 5 files changed, 15 insertions(+), 5 deletions(-) diff --git a/site/template.de.include b/site/template.de.include index f22f8e9..d702647 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -1,7 +1,9 @@ - + + + diff --git a/site/template.include b/site/template.include index 0960f47..d848bc0 100644 --- a/site/template.include +++ b/site/template.include @@ -1,7 +1,9 @@ - + + + diff --git a/site/template.it.include b/site/template.it.include index 5c3cafd..de397c5 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -1,7 +1,9 @@ - + + + diff --git a/site/template.uk.include b/site/template.uk.include index 7ff3016..eff0dc2 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -1,7 +1,9 @@ - + + + diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index 2b614cd..0a79925 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -1,7 +1,9 @@ - + + + From 759616ba96ee89c1a1be3c9290eaf57106b3c573 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 00:54:06 +0000 Subject: [PATCH 288/399] robots sitemap file Signed-off-by: Leah Rowe --- .gitignore | 1 + site/robots.txt | 1 + 2 files changed, 2 insertions(+) diff --git a/.gitignore b/.gitignore index 7454e90..53e5469 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ *.html /site/news/index* /site/sitemap.md +/site/sitemap.xml /site/push *feed.xml *.sha1sum diff --git a/site/robots.txt b/site/robots.txt index eb05362..53a1aad 100644 --- a/site/robots.txt +++ b/site/robots.txt @@ -1,2 +1,3 @@ +Sitemap: https://libreboot.org/sitemap.xml User-agent: * Disallow: From 1ba45bf5e5e23bf766b52c4a585761be2c388faa Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 01:21:00 +0000 Subject: [PATCH 289/399] show canon links on pages Signed-off-by: Leah Rowe --- site/template.de.include | 2 ++ site/template.include | 2 ++ site/template.it.include | 2 ++ site/template.uk.include | 2 ++ site/template.zh-cn.include | 2 ++ 5 files changed, 10 insertions(+) diff --git a/site/template.de.include b/site/template.de.include index d702647..33c1340 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -7,6 +7,8 @@ + + diff --git a/site/template.include b/site/template.include index d848bc0..cc0ef98 100644 --- a/site/template.include +++ b/site/template.include @@ -7,6 +7,8 @@ + + diff --git a/site/template.it.include b/site/template.it.include index de397c5..8d831eb 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -7,6 +7,8 @@ + + diff --git a/site/template.uk.include b/site/template.uk.include index eff0dc2..f77477d 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -7,6 +7,8 @@ + + diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index 0a79925..fb7c740 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -7,6 +7,8 @@ + + From 9a2da14a2e5859da8781e88dda72b556a5e92880 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 18:02:33 +0000 Subject: [PATCH 290/399] general audit / cleanup Signed-off-by: Leah Rowe --- site/contact.de.md | 18 +- site/contact.fr.md | 19 +- site/contact.it.md | 22 +- site/contact.md | 18 +- site/contact.ru.md | 20 +- site/contact.uk.md | 18 +- site/contrib.md | 186 +++++-------- site/docs/bsd/index.md | 214 +++++++++++---- site/docs/build/index.md | 53 ++-- site/docs/build/index.uk.md | 46 ++-- site/docs/grub/index.md | 10 +- site/docs/index.md | 14 +- site/docs/index.uk.md | 10 +- site/docs/index.zh-cn.md | 10 +- site/docs/install/c201.md | 26 +- site/docs/install/chromebooks.md | 42 +-- site/docs/install/d945gclf.md | 22 +- site/docs/install/deguard.md | 52 +++- site/docs/install/dell3050.md | 55 ++-- site/docs/install/dell7010.md | 37 +-- site/docs/install/dell780.md | 38 +-- site/docs/install/dell9020.md | 49 ++-- site/docs/install/devmem.md | 10 +- site/docs/install/ga-g41m-es2l.md | 18 +- site/docs/install/hp2170p.md | 34 +-- site/docs/install/hp2560p.md | 11 +- site/docs/install/hp2570p.md | 13 +- site/docs/install/hp8200sff.md | 31 ++- site/docs/install/hp820g2.md | 28 +- site/docs/install/hp8300usdt.md | 33 ++- site/docs/install/hp8460p.md | 34 +-- site/docs/install/hp8470p.md | 29 +- site/docs/install/hp8560w.md | 31 ++- site/docs/install/hp9470m.md | 22 +- site/docs/install/ich9utils.md | 15 +- site/docs/install/index.md | 166 +++++------- site/docs/install/ivy_has_common.md | 37 +-- site/docs/install/ivy_internal.md | 17 +- site/docs/install/kcma-d8.md | 30 ++- site/docs/install/kfsn4-dre.md | 26 +- site/docs/install/kgpe-d16.md | 25 +- site/docs/install/latitude.md | 46 ++-- site/docs/install/mac_address.md | 22 +- site/docs/install/macbook21.md | 44 ++-- site/docs/install/nvmutil.md | 112 ++++---- site/docs/install/nvmutilimport.md | 40 ++- site/docs/install/playstation.md | 36 ++- site/docs/install/r400.md | 53 ++-- site/docs/install/spi.md | 250 ++++++++++++------ site/docs/install/spi.zh-cn.md | 128 ++++----- site/docs/install/spi_generic.md | 17 +- site/docs/install/t1650.md | 38 +-- site/docs/install/t400.md | 54 ++-- site/docs/install/t420_external.md | 16 +- site/docs/install/t440p_external.md | 34 +-- site/docs/install/t480.md | 141 +++++----- site/docs/install/t500.md | 58 ++-- site/docs/install/t60_unbrick.md | 8 + site/docs/install/w541_external.md | 33 ++- site/docs/install/x200.md | 54 ++-- site/docs/install/x200.uk.md | 33 +-- site/docs/install/x230_external.md | 7 + site/docs/install/x60_unbrick.md | 9 +- site/docs/install/x60tablet_unbrick.md | 9 +- site/docs/linux/grub_boot_installer.md | 43 ++- site/docs/linux/grub_cbfs.md | 41 +-- site/docs/linux/grub_hardening.md | 97 +++++-- site/docs/linux/index.md | 100 +++---- site/docs/maintain/index.md | 299 +++++++++------------ site/docs/maintain/porting.md | 18 +- site/docs/maintain/porting.uk.md | 8 +- site/docs/maintain/style.md | 57 ++-- site/docs/maintain/testing.md | 12 +- site/docs/maintain/testing.uk.md | 18 +- site/docs/misc/codenames.md | 8 +- site/docs/misc/emulation.md | 8 +- site/docs/misc/index.md | 13 +- site/docs/uboot/index.md | 23 +- site/docs/uboot/uboot-archlinux.md | 33 ++- site/docs/uboot/uboot-debian-bookworm.md | 15 +- site/docs/uboot/uboot-openbsd.md | 8 +- site/docs/uboot/uboot-x86.md | 32 +-- site/download.md | 2 +- site/faq.md | 114 ++++---- site/faq.uk.md | 133 ++++------ site/freedom-status.md | 63 ++--- site/freedom-status.uk.md | 60 ++--- site/git.de.md | 29 +- site/git.md | 31 +-- site/git.uk.md | 29 +- site/index.md | 14 +- site/index.ru.md | 12 +- site/news/10.md | 150 +++++------ site/news/argon2.md | 18 +- site/news/argon2.uk.md | 16 +- site/news/audit.md | 20 +- site/news/audit2.md | 4 +- site/news/audit3.md | 7 +- site/news/audit4.md | 9 +- site/news/audit5.md | 26 +- site/news/audit6.md | 28 +- site/news/codeberg.md | 16 +- site/news/e6400.md | 13 +- site/news/e6400.uk.md | 11 +- site/news/e6400nvidia.md | 19 +- site/news/fam15h.md | 10 +- site/news/gm45microcode.md | 10 +- site/news/hp2170p.md | 15 +- site/news/hp8200sff.md | 13 +- site/news/hp8200sff.uk.md | 11 +- site/news/hp820g2.md | 6 +- site/news/hp8470p_and_dell_t1650.md | 15 +- site/news/hp_elitebooks.md | 7 +- site/news/kgpe-d16.md | 7 +- site/news/libreboot20131212.md | 8 +- site/news/libreboot20131213.md | 8 +- site/news/libreboot20131214.md | 8 +- site/news/libreboot20140622.md | 14 +- site/news/libreboot20140911.md | 14 +- site/news/libreboot20141015.md | 5 +- site/news/libreboot20150124.md | 5 +- site/news/libreboot20150126.md | 5 +- site/news/libreboot20150208.md | 5 +- site/news/libreboot20210522.md | 83 +++--- site/news/libreboot20211122.md | 7 +- site/news/libreboot20220710.md | 22 +- site/news/libreboot20221214.md | 72 ++--- site/news/libreboot20230319.md | 107 +------- site/news/libreboot20230413.md | 26 +- site/news/libreboot20230423.md | 27 +- site/news/libreboot20230625.md | 33 +-- site/news/libreboot20231021.md | 53 ++-- site/news/libreboot20231101.md | 26 +- site/news/libreboot20231106.md | 32 +-- site/news/libreboot20240126.md | 27 +- site/news/libreboot20240225.md | 26 +- site/news/libreboot20240504.md | 18 +- site/news/libreboot20240612.md | 43 ++- site/news/libreboot20241008.md | 55 ++-- site/news/libreboot20241206.md | 29 +- site/news/libreboot20241206rev8.md | 37 +-- site/news/microcode.md | 12 +- site/news/policy.de.md | 21 +- site/news/policy.md | 25 +- site/news/policy.uk.md | 21 +- site/news/ports202402.md | 6 +- site/news/safety.md | 17 +- site/news/schedule.md | 23 +- site/news/translations.de.md | 5 +- site/news/translations.md | 9 +- site/news/update202308.md | 19 +- site/news/usa-libre-part2.md | 12 +- site/news/usa-libre-part3.md | 16 +- site/news/usa-libre.md | 25 +- site/other.md | 28 +- site/tasks/index.md | 322 ++++++++++------------- site/template.de.include | 2 +- site/template.include | 2 +- site/template.it.include | 2 +- site/template.uk.include | 2 +- site/template.zh-cn.include | 2 +- 161 files changed, 2819 insertions(+), 3129 deletions(-) diff --git a/site/contact.de.md b/site/contact.de.md index e6af723..8290a4a 100644 --- a/site/contact.de.md +++ b/site/contact.de.md @@ -4,7 +4,7 @@ x-toc-enable: true ... Buy Libreboot pre-installed -========== +-------------------- If you want professional installation, Minifree Ltd sells [Libreboot pre-installed](https://minifree.org/) on select hardware, and it also provides @@ -18,13 +18,13 @@ If you're installing Libreboot yourself, support for that is also available. Contact information (IRC, mailing list etc) is below: User support -============ +------------ IRC oder Reddit werden bevorzugt, sofern Du eine Support Anfrage hast (IRC empfohlen). Für Informationen bzgl. IRC and Reddit siehe unten. Mailing list -============ +------------ Libreboot has this mailing list: @@ -32,7 +32,7 @@ Libreboot has this mailing list: The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) Entwicklungs Diskussion -====================== +--------------------- Siehe unter [der Git Seite](git.md) für Informationen wie Du dich an der Entwicklung beteiligen kannst. @@ -40,7 +40,7 @@ Siehe unter Hier finden sich ebenso Anleitungen zum Senden von Patches (via Pull-Requests). IRC Chatraum -============ +------------- IRC ist hauptsächlich der Weg um Kontakt Libreboot Projekt aufzunehmen. `#libreboot` auf Libera IRC. @@ -71,12 +71,11 @@ Website erläutern wie dies funktioniert: Grundsätzlich solltest Du die Dokumentation der von Dir verwendeten IRC Software konsultieren. Soziale Medien -============ +----------------- Libreboot existiert offiziell an vielen Orten. -Mastodon --------- +### Mastodon Gründerin und Haupt-Entwicklerin, Leah Rowe, ist auf Mastodon: @@ -85,8 +84,7 @@ Gründerin und Haupt-Entwicklerin, Leah Rowe, ist auf Mastodon: Leah kann zudem unter dieser eMail kontaktiert werden: [leah@libreboot.org](mailto:leah@libreboot.org) -Reddit ------- +### Reddit Hauptsächlich verwendet als Support Kanal und für Veröffentlichung von Neuigkeiten: diff --git a/site/contact.fr.md b/site/contact.fr.md index e15a042..c524dd3 100644 --- a/site/contact.fr.md +++ b/site/contact.fr.md @@ -4,7 +4,7 @@ x-toc-enable: true ... Où acheter du matériel avec Libreboot pré-installé -========== +--------------------------------------------- Si vous souhaitez une installation professionnelle, Minifree Ltd vend des ordinateurs avec [Libreboot pré-installé](https://minifree.org/). L'entreprise propose également [un service d'installation de Libreboot](https://minifree.org/product/installation-service/) si vous voulez l'installer sur votre propre machine. @@ -14,25 +14,26 @@ Si vous installez Libreboot vous-même, un support est disponible via différent Suport utilisateur -============ +------------------ IRC et Reddit sont recommandés pour demander de l'aide (IRC est à privilégier) : Mail -============ +---- Libreboot dispose d'une liste de diffusion : L'adresse mail est [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) Discussion sur le developpement -====================== +------------------------------- Pour participer au développement, consultez la pag [GIT](git.md) du projet. Vous y trouverez des instructions détaillées sur l'envoi de patchs via pull request. IRC chatroom -============ +------------ + Le chat IRC est le principal moyen de contact pour le projet Libreboot via `#libreboot` sur Libera IRC. Webchat: @@ -59,12 +60,11 @@ De manière générale, reportez-vous à la documentation de votre logiciel IRC. Réseaux sociaux -============ +--------------- Libreboot existe officiellement sur différents réseaux sociaux. -Mastodon --------- +### Mastodon Le fondateur et principal developpeur, Leah Rowe, est sur Mastodon: @@ -73,8 +73,7 @@ Le fondateur et principal developpeur, Leah Rowe, est sur Mastodon: Leah peut également être contacté par mail : [leah@libreboot.org](mailto:leah@libreboot.org) -Reddit ------- +### Reddit Généralement utilisé pour le support mais aussi pour l'annonces des dernières nouveautés : diff --git a/site/contact.it.md b/site/contact.it.md index e63e62d..09b84c7 100644 --- a/site/contact.it.md +++ b/site/contact.it.md @@ -4,7 +4,7 @@ x-toc-enable: true ... Buy Libreboot pre-installed -========== +--------------------------- If you want professional installation, Minifree Ltd sells [Libreboot pre-installed](https://minifree.org/) on select hardware, and it also provides @@ -18,14 +18,14 @@ If you're installing Libreboot yourself, support for that is also available. Contact information (IRC, mailing list etc) is below: Supporto utenti -=============== +--------------- IRC o Reddit sono consigliati, sebbene preferiamo che usi il canale IRC per avere o per offrire supporto tecnico. Continua a leggere per avere ulteriori informazioni. Mailing list -============ +------------ Libreboot has this mailing list: @@ -33,7 +33,7 @@ Libreboot has this mailing list: The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) Discussione sullo sviluppo -========================== +-------------------------- Per ora dai un occhiata sulla [pagina Git](git.md) per avere maggiori informazioni su come puoi @@ -43,7 +43,7 @@ Su quella stessa pagina puoi trovare informazioni su come inviare correzioni (patches) tramite pull requests. Canale IRC -========== +---------- IRC e' il modo principale per contattare chi collabora con il progetto libreboot. Il canale ufficiale e' `#libreboot` su Libera IRC. @@ -73,26 +73,22 @@ di Libera spiegano come: Comunque dovresti sempre controllare la documentazione del tuo client IRC preferito. Reti sociali online -=================== +------------------- Libreboot esiste ufficialmente in molte piattaforme. -Mastodon --------- +### Mastodon Il fondatore e sviluppatore principale, Leah Rowe, e' su Mastodon: * -Posta elettronica ------------------ +### Posta elettronica Leah puo' essere contattata anche via email a questo indirizzo: [leah@libreboot.org](mailto:leah@libreboot.org) -Reddit ------- +### Reddit Usato principalmente come canale di supporto e per annunciare notizie: - diff --git a/site/contact.md b/site/contact.md index 6b418a9..69122dd 100644 --- a/site/contact.md +++ b/site/contact.md @@ -4,7 +4,7 @@ x-toc-enable: true ... Buy Libreboot pre-installed -========== +-------------------------- If you want professional installation, Minifree Ltd sells [Libreboot pre-installed](https://minifree.org/) on select hardware, and it also provides @@ -18,13 +18,13 @@ If you're installing Libreboot yourself, support for that is also available. Contact information (IRC, mailing list etc) is below: User support -============ +------------- IRC or Reddit are recommended, if you wish to ask for support (IRC recommended). See below for information about IRC and Reddit. Mailing list -============ +------------ Libreboot has this mailing list: @@ -32,7 +32,7 @@ Libreboot has this mailing list: The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) Development discussion -====================== +-------------------- See notes on [the Git page](git.md) for information about how to assist with development. @@ -40,7 +40,7 @@ on [the Git page](git.md) for information about how to assist with development. Instructions are also on that page for sending patches (via pull requests). IRC chatroom -============ +------------- IRC is the main way to contact the libreboot project. `#libreboot` on Libera IRC. @@ -71,12 +71,11 @@ website tells you how: In general, you should check the documentation provided by your IRC software. Social media -============ +------------- libreboot exists officially on many places. -Mastodon --------- +### Mastodon The founder and lead developer, Leah Rowe, is on Mastodon: @@ -85,8 +84,7 @@ The founder and lead developer, Leah Rowe, is on Mastodon: Leah can also be contacted by this email address: [leah@libreboot.org](mailto:leah@libreboot.org) -Reddit ------- +### Reddit Mostly used as a support channel, and also for news announcements: diff --git a/site/contact.ru.md b/site/contact.ru.md index 542cc80..ee0d113 100644 --- a/site/contact.ru.md +++ b/site/contact.ru.md @@ -4,7 +4,7 @@ x-toc-enable: true ... Купите Libreboot предустановленным -================================== +---------------------------------- Если вы хотите, чтобы профессионал установил Libreboot для вас, то Minifree Ltd продает [Libreboot предустановленным](https://minifree.org/) на определенном оборудование, и также предоставляет сервис по [установке Libreboot](https://minifree.org/product/installation-service/) на ваши машины. @@ -13,26 +13,26 @@ x-toc-enable: true Если вы самостоятельно устанавливаете Libreboot, вы можете получить поддержку: Поддержка пользователей -======================= +----------------------- IRC и Reddit предпочительнее, если вы хотите попросить помощи (IRC рекомендуется). Информация об IRC и Reddit ниже. Почтовая рассылка -================= +----------------- У Libreboot есть своя почтовая рассылка: Адрес электронной почты: [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) Обсуждение разработки -===================== +--------------------- Смотрите [страницу по Git](git.md) для того, чтобы узнать, как помогать с разработкой Libreboot. На этой странице также содержаться инструкции, как отправлять патчи (с помощью pull request). Чат в IRC -========== +--------- IRC - главный метод связи с проектом Libreboot. `#libreboot` на Libera IRC. @@ -59,10 +59,9 @@ Libera - самая большая сеть IRC, используемая для В общем, вы должны проверить документацию вашего клиента для IRC. Социальные сети -=============== +--------------- -Mastodon --------- +### Mastodon Основатель и велущий разработчик, Лия Роу, есть на Mastodon: @@ -71,8 +70,7 @@ Mastodon Связаться с Лией также можно и по этому адресу электронной почты: [leah@libreboot.org](mailto:leah@libreboot.org) -Reddit ------- +### Reddit Чаще всего используется для поддержки пользователей, а также для новостей и анонсов: - \ No newline at end of file + diff --git a/site/contact.uk.md b/site/contact.uk.md index 79d8a28..759e6a4 100644 --- a/site/contact.uk.md +++ b/site/contact.uk.md @@ -4,7 +4,7 @@ x-toc-enable: true ... Buy Libreboot pre-installed -========== +--------------------------- If you want professional installation, Minifree Ltd sells [Libreboot pre-installed](https://minifree.org/) on select hardware, and it also provides @@ -18,13 +18,13 @@ If you're installing Libreboot yourself, support for that is also available. Contact information (IRC, mailing list etc) is below: Підтримка користувачів -============ +---------------------- IRC або Reddit рекомендовані, якщо ви бажаєте попросити про допомогу (найкраще IRC). Дивіться інформацію нижче щодо IRC та Reddit. Mailing list -============ +------------ Libreboot has this mailing list: @@ -32,7 +32,7 @@ Libreboot has this mailing list: The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) Обговорення розробки -====================== +-------------------- Зараз, подивіться нотатки на [сторінці Git](git.md) для інформації щодо допомоги з розробкою. @@ -40,7 +40,7 @@ The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreb На цій сторінці також знаходяться інструкції по відправці патчів (через pull request'и). Кімната IRC -============ +----------- IRC це головний спосіб зв'язку з проектом Libreboot. `#libreboot` на Libera IRC. @@ -71,12 +71,11 @@ Libera є однією з найбільших мереж IRC, використ Взагалі, вам варто перевірити документацію, яка передбачена вашою програмою IRC. Соціальні мережі -============ +---------------- Libreboot офіційно існує в багатьох місцях. -Mastodon --------------------- +### Mastodon Засновник та головний розробник, Лія Роу, є в Mastodon: @@ -85,8 +84,7 @@ Mastodon Також можливо зв'язатися з Лією за ії електронною адресою: [leah@libreboot.org](mailto:leah@libreboot.org) -Reddit ------- +### Reddit Найбільше використовується як канал підтримки, та також для оголошення новин: diff --git a/site/contrib.md b/site/contrib.md index 1aaf97d..c9f3872 100644 --- a/site/contrib.md +++ b/site/contrib.md @@ -43,10 +43,9 @@ who help me, and those who work on all the upstream projects that I use in Libreboot. I regularly work with all sorts of people. External projects -================= +----------------- -Coreboot project ----------------- +### Coreboot project Without coreboot, the libreboot project simply would not be possible. @@ -54,35 +53,36 @@ The people and companies that work on coreboot are numerous, and they make the libreboot project what it is. The libreboot project makes heavy use of coreboot, to provide hardware initialization. -GRUB --------- +### GRUB GRUB is the bootloader used by libreboot. It goes without saying that the GRUB developers enable libreboot, through their work. -SeaBIOS -------- +### SeaBIOS The libreboot firmware provides SeaBIOS as a payload option. SeaBIOS provides a legacy x86 BIOS implementation. -U-Boot ------- +### U-Boot Libreboot uses U-Boot as the coreboot payload on supported ARM Chromebooks. -Contributors in alphabetical order -================================== +### Flashprog -Alexei Sorokin --------------- +Libreboot uses Nico Huber's *flashprog* to provide flashing on all boards; +without this code, you would not be able to install Libreboot in freedom, +because other NOR flashing tools are typically proprietary (and not as good). + +Contributors in alphabetical order +------------------------------ + +### Alexei Sorokin Sent minor fixes to lbmk; improved sha512sum verification on images, config improvements e.g. hide MEI device where neutered ME is used. General improvements and tweaks. -Alper Nebi Yasak ----------------- +### Alper Nebi Yasak Contributed the build system integration and documentation for using U-Boot as payload, and initial Libreboot ports of some ARM Chromebooks @@ -91,8 +91,7 @@ based on that. Alper also does upstream development on U-Boot, e.g. continued an almost complete port of the `gru-kevin` board and got it merged upstream. -Alyssa Rosenzweig ------------------ +### Alyssa Rosenzweig Switched the website to use markdown in lieu of handwritten HTML and custom PHP. **Former libreboot project maintainer (sysadmin for libreboot.org).** @@ -105,14 +104,12 @@ now been heavily modified and forked into a formal project, by Leah Rowe: Alyssa's original work on the static site generator that Libreboot used to use; the Libreboot website is now built with Untitled) -Andrea Perotti --------------- +### Andrea Perotti Sent several small fixes to Libreboot's dependencies scripts for Debian, Fedora and Ubuntu distros. -Andrew Robbins --------------- +### Andrew Robbins Worked on large parts of Libreboot's old build system and related documentation. Andrew joined the Libreboot project as a full time developer during June 2017, @@ -132,8 +129,7 @@ over the years. Anyone who contributes to Libreboot is a hero. Look at the old Libreboot repository on [notabug](https://notabug.org/libreboot) to find his contributions. -Angel Pons ----------- +### Angel Pons Angel is a coreboot developer. Their contributions are numerous, in that and many other projects. Countless patches in coreboot from them have enabled @@ -149,13 +145,11 @@ such a configuration, since these are Haswell machines. Over 2000 commits in coreboot were written by Angel, as of January 2025. They are one of coreboot's most active developers. -Arsen Arsenović ---------------- +### Arsen Arsenović Added the config for ThinkPad T430 to Libreboot. -Arthur Heymans --------------- +### Arthur Heymans Merged a patch from coreboot into libreboot, enabling C3 and C4 power states to work correctly on GM45 laptops. This was a long-standing issue @@ -168,14 +162,12 @@ project. He still works on coreboot, to this day, and Libreboot greatly benefits from his work. His contributions to the coreboot project, and Libreboot, are invaluable. -Ben Westover ------------- +### Ben Westover Added info about internal flashing for Dell OptiPlex 9020, in the Libreboot documentation. -Caleb La Grange ---------------- +### Caleb La Grange Caleb contributed heavily to the Libreboot build system, and even implemented the first version of @@ -213,13 +205,11 @@ Caleb has also been a good friend to me, Leah, and provided a lot of advice during the osboot merger. I avoided a lot of stupid mistakes because of his advice. -Canberk TURAN -------------- +### Canberk TURAN Added Turkish Q keyboard layout to Libreboot's GRUB payload. -Damien Zammit -------------- +### Damien Zammit Maintains the Gigabyte GA-G41M-ES2L coreboot port, which is integrated in libreboot. Also works on other hardware for the benefit of the @@ -229,13 +219,11 @@ Damien didn't work directly on Libreboot itself, but he worked heavily with Leah Rowe, integrating patches and new board ports into Libreboot, based on Damien's upstream work on coreboot. -Daniil Prokofev ---------------- +### Daniil Prokofev Translated several Libreboot website pages into the Russian language. -Denis Carikli -------------- +### Denis Carikli Based on the work done by Peter Stuge, Vladimir Serbinenko and others in the coreboot project, got native graphics initialization to work on the @@ -258,8 +246,7 @@ earlier work. Very cool guy!!! -Eason aka ezntek ----------------- +### Eason aka ezntek Sent a SOIC8 photo for Raspberry Pi Pico pinout, where previously only SOIC16 info existed. Also added info about `thinkpad_acpi` Linux kernel module for @@ -283,8 +270,7 @@ which helped to spread the news about the work. Absolute legend. One of Libreboot's many great champions. -E. Blåsten --------------- +### E. Blåsten Documented several quirks of the MacBook2,1 and ThinkPad X200T, such as swivel/rotation on X200T, and various alt keys on the MacBook to make it more @@ -293,8 +279,7 @@ usable with Linux, when used on Libreboot. Also helped me (Leah) in a very fundamental way, in 2018. The help I got enabled me to be who I am today. -Fedja Beader -------------- +### Fedja Beader Wrote several guides for Libreboot, including the original version of the GRUB hardening guide. Wrote the info about the Linux kernel panic/netconsole @@ -304,8 +289,7 @@ Also sent some small fixes to Libreboot's GRUB configuration, enabling USB devices to boot more reliably. Also improved Libreboot's documentation pertaining to Full Disk Encryption. -Ferass El Hafidi ------------------ +### Ferass El Hafidi Added cstate 3 support on macbook21, enabling higher battery life and cooler CPU temperatures on idle usage. @@ -320,31 +304,26 @@ Libreboot. This is IRC nick `f_` on Libreboot IRC. Cool guy! -hslick ------- +### hslick Documented Arch Linux ARM installation on ARM64 U-Boot targets. -Integral --------- +### Integral Translated the Libreboot home page into Chinese language. -Jason Lenz ----------- +### Jason Lenz Sent instructions for installing Debian Linux on ARM64-based chromebooks with Libreboot and Alper's U-Boot ARM64 payload. -Jeroen Quint ------------- +### Jeroen Quint Contributed several fixes to the libreboot documentation, relating to installing on Arch-based systems with full disk encryption on libreboot systems. -John Doe --------- +### John Doe This person never gave their name, but they sent two patches: @@ -356,8 +335,7 @@ This person never gave their name, but they sent two patches: Every contribution is appreciated. Every contributor gets their own entry in the Libreboot Hall of Fame. -Joshua Gay ----------- +### Joshua Gay Joshua was in a position during 2014-2016 to help promote Libreboot in the media, in his capacity working for the employer he worked for at the time; @@ -367,19 +345,16 @@ He made sure everyone knew what I was doing, and he taught me a *lot* about licensing; many of Libreboot's practises today are still based on his lessons, such as the pitfalls of GPL compliance and how to really audit everything. -Klemens Nanni -------------- +### Klemens Nanni Made many fixes and improvements to the GRUB configuration used in libreboot, and several tweaks to the build system. -Linear Cannon -------------- +### Linear Cannon Added NetBSD support for `dell-flash-unlock`. -Lisa Marie Maginnis -------------------- +### Lisa Marie Maginnis Lisa was one of Libreboot's early contributors to Libreboot. She personally helped me set up a lot of the early infrastructure, including things like IRC, @@ -393,8 +368,7 @@ in Libreboot, e.g. ASUS Chromebook C201PA - at the time, this was using Google's own Depthcharge payload, which you can find in 2016 Libreboot releases. -Livio ------ +### Livio Sent a small enhancement for GRUB, allowing the user to turn on or off several options at boot time, such as graphical options or spkmodem output, so that @@ -402,8 +376,7 @@ these features can be included on every image, and used flexibly. Sent some small fixes to the QEMU target, fixing a bug in the SMBIOS info. -Lorenzo Aloe ------------- +### Lorenzo Aloe Provided hardware testing for the [Dell OptiPlex 9020](docs/install/dell9020.md), also provided testing for proxmox with GPU passthrough on Dell Precision T1650, @@ -413,19 +386,16 @@ that OS is not natively supported. All round good guy, an honest and loyal fan. -Luke T. Shumaker ----------------- +### Luke T. Shumaker Sent a patch to Libreboot, fixing vboot on 32-bit (i686) hosts; it previously only compiled on 64-bit x86 (amd64) machines. -Marcus Moeller --------------- +### Marcus Moeller Made the libreboot logo. -Mate Kukri ----------- +### Mate Kukri Mate Kukri is a *major* contributor to Libreboot, and several of the upstreams that it uses; he is a coreboot developer, and also contributes heavily to the @@ -458,24 +428,21 @@ made: Mate Kukri is a hero to the Libreboot project. Without him, Libreboot would not be what it is today. -Michael Reed ------------- +### Michael Reed Wrote Libreboot's original OpenBSD installation guide. Also sent fixes to the original static site generator that Alyssa wrote, upon which the Untitled Static Site Generator was later based. -Michał Masłowski ----------------- +### Michał Masłowski Sent several fixes to Libreboot's early build system, back in the early days of the project. Also taught Leah how to use Git, because the very first revisions were released only as tarballs, without Git history; the first commits in the old repository were imports of those tarballs. -Nicholas Chin -------------- +### Nicholas Chin [Ported Dell Latitude E6400 to Libreboot](news/e6400.md) and also [Dell Latitude E6430](docs/install/latitude.md) - author of @@ -497,21 +464,18 @@ say, he is one of Libreboot's champions. Nicholas also contributes to coreboot heavily, to flashprog, and several other projects that Libreboot uses. -0xloem ------- +### 0xloem Added info about LPC flashing on Libreboot's external flashing guide. -Patrick "P. J." McDermott ---------------------------- +### Patrick "P. J." McDermott Patrick also did a lot of research and wrote the libreboot FAQ section relating to the [Intel Management Engine](../faq.md#intelme), in addition to making several improvements to the build system in libreboot. **Former libreboot project maintainer.** -Patrick Rudolph ---------------- +### Patrick Rudolph Coreboot developer. Also wrote the xHCI GRUB driver, that Libreboot uses; without it, several ports in Libreboot would not be feasible, unless they @@ -520,8 +484,7 @@ have (or configure) EHCI controllers. Upstream GRUB currently has no xHCI driver, but Patrick sent patches in 2020 that Libreboot later re-based, on top of GRUB 2.12. -Paul Kocialkowski ------------------ +### Paul Kocialkowski Ported the ARM (Rockchip RK3288 SoC) based *Chromebook* laptops to libreboot. Also one of the main [Replicant](http://www.replicant.us/) @@ -532,8 +495,7 @@ system, upon which Libreboot's effort from 2017-2021 was based; ultimately, this work never became stable and the work was scrapped in 2021, in favour of the current Libreboot build system design, named lbmk. -Paul Menzel ------------ +### Paul Menzel Investigated and fixed a bug in coreboot on the ThinkPad X60/T60 exposed by Linux kernel 3.12 and up, which caused 3D acceleration to stop @@ -546,14 +508,12 @@ Paul worked with Libreboot on this, sending patches to test periodically until the bug was fixed in coreboot, and then helped her integrate the fix in libreboot. -Peaksol -------- +### Peaksol Translated several pages, including the SPI flashing guide, into Chinese language. -Peter Stuge ------------ +### Peter Stuge Helped write the [FAQ section about DMA](../faq.md#hddssd-firmware), and provided general advice in the early days of the project. Peter was a coreboot developer @@ -571,8 +531,7 @@ bucts before flashing the ROM again, to flash the main bootblock. Libreboot hosts a copy of his work, because his website hosting bucts is no longer responsive. -Riku Viitanen -------------- +### Riku Viitanen Added support for HP Elite 8200 SFF desktop PC to Libreboot. You can read about this in the hardware page: @@ -601,19 +560,16 @@ also added the HP EliteBook 2560p to Libreboot. Riku also contributes to coreboot and flashprog, and several other projects that Libreboot uses. -samuraikid ----------- +### samuraikid Added Portuguese keyboard layout to Libreboot's GRUB payload. -semigel -------- +### semigel Added BTRFS subvolume support to Libreboot's GRUB configuration, for auto-booting various Linux distros. -Simon Glass ------------ +### Simon Glass Simon Glass is principally responsible for the x86 U-Boot payload that Libreboot now uses as a coreboot payload. Simon provided Leah with several critical patches @@ -623,14 +579,12 @@ when integrating it. Without him, Libreboot would not have a functioning U-Boot implementation on x86. -Snooze Function ---------------- +### Snooze Function Translated several pages on the Libreboot documentation into the German language. -StackSmashing -------------- +### StackSmashing Author of the original [pico-serprog](https://github.com/stacksmashing/pico-serprog) project, upon which Libreboot's fork (maintained by Riku Viitanen) is based. @@ -642,8 +596,7 @@ StackSmashing also has a [YouTube channel](https://www.youtube.com/channel/UC3S8 with a lot of really cool videos on it about all things electronics, and hacking of electronics. Check it out! -Steve Shenton -------------- +### Steve Shenton Steve did the early reverse engineering work on the Intel Flash Descriptor used by ICH9M machines such as ThinkPad X200. He created a C struct defining (using @@ -693,8 +646,7 @@ written this tool, without Steve's initial proof of concept. I worked with him, extensively, for many months. All GM45+ICH9M support (X200, T400, etc) in Libreboot is made possible because of the work he did, back in 2014. -Swift Geek ----------- +### Swift Geek Contributed a patch for ich9gen to generate 16MiB descriptors. @@ -717,13 +669,11 @@ Swiftgeek left the project in March 2021. I, Leah Rowe, wish him all the best in his endeavours, and I'm very grateful to his numerous contributions over the years. -Timothee Benedet ----------------- +### Timothee Benedet Translated several Libreboot website pages into the French language. -Timothy Pearson ---------------- +### Timothy Pearson Ported the ASUS KGPE-D16 board to coreboot for the company Raptor Engineering of which Timothy is the CEO. @@ -734,8 +684,7 @@ contact details are on the raptor site. **D16 support was removed on 19 November 2022. You can still use older revisions of Libreboot, and older release versions.** -Vladimir Serbinenko -------------------- +### Vladimir Serbinenko Ported many of the thinkpads supported in libreboot, to coreboot, and made many fixes in coreboot which benefited the libreboot project. @@ -746,8 +695,7 @@ by others in Ada, for libgfxinit in coreboot, but originally it was written in C and included directly in coreboot; libgfxinit is a 3rdparty submodule of coreboot). -Vladislav Shapovalov --------------------- +### Vladislav Shapovalov Translated several pages of the Libreboot website into Ukranian language. diff --git a/site/docs/bsd/index.md b/site/docs/bsd/index.md index fedc9cb..815f279 100644 --- a/site/docs/bsd/index.md +++ b/site/docs/bsd/index.md @@ -1,26 +1,120 @@ --- -title: BSD operating systems +title: Install a BSD operating system on Libreboot x-toc-enable: true ... -Guide last updated on 16 November 2022. +It is assumed here that you are using the *SeaBIOS* payload, *not* the GRUB +payload; the U-Boot payload may also work, but that is not covered here. The +SeaBIOS payload must ideally run in text mode (`txtmode` images from Libreboot +releases). -NOTE: This guide pertains to x86 hosts, and does not cover supported CrOS/ARM -chromebooks. For ARM targets, you should refer to u-boot documentation. +This guide pertains to x86 hosts, and does not cover supported CrOS/ARM +chromebooks. For ARM targets, you should refer to [u-boot +documentation](../uboot/) - and [U-Boot x86](../uboot/uboot-x86.md) is also +available. The U-Boot x86 payload is interesting, because it can in fact boot +OpenBSD via UEFI method (U-Boot provides a lightweight UEFI implementation +independently of, say, EDK2). -libreboot is capable of booting many BSD systems. This section mostly documents -the peculiarities of libreboot as it pertains to BSD; you can otherwise refer to -the official documentation for whatever BSD system you would like to use. +What is BSD? +------------ -Kernel Mode Setting -=================== +In our context, we are referring to those descendents of 4.4BSD-Lite starting +in the early 1990s. On balance, they are about equal to Linux in many ways, +and some would argue that they are *better* (higher code quality). It can be +said that the BSDs are the closest we have to *true* open source Unix systems, +since they ultimately descend from that code lineage. For example, the +FreeBSD project briefly covers its own history in the Hand Book: + + +Chief among them are: + +* [FreeBSD](https://www.freebsd.org/) (HardenedBSD probably also works) +* [NetBSD](https://netbsd.org/) +* [OpenBSD](https://www.openbsd.org/) +* [DragonFlyBSD](https://www.dragonflybsd.org/) (UNTESTED) + +**TODO: DragonFlyBSD is untested, as of January 2025. It ought to be tested.** + +Many other BSD systems exist, that are largely derived from these. + +Why use BSD (instead of Linux)? +------------------------------- + +BSD operating systems are in wide use today, powering much of the world's +most critical infrastructure, and they're quite competent laptop/desktop or +workstation systems. Some of them have unique features that you can't find +anywhere else (e.g. FreeBSD jails, OpenBSD's numerous security enhancements, +NetBSD's rump kernel design and clean code quality). + +BSD systems are superfically similar to Linux systems, but they are very +different under the hood (different kernel designs, different userspace +implementations, and so on). However, almost all of the Linux userspace programs +that you enjoy using are probably available in the various BSD *ports trees*, +or they can be compiled with little to no modification. This is because, despite +the actual differences under the hood, the BSDs and various Linux distros all +adhere to the same basic standards (e.g. Single Unix Specification). + +If you want to enjoy using a high quality operating system, with many unique +features, BSD systems can be quite fun to use, and quite challenging. They tend +to have a much more conservative take on implementations, compared to Linux +distros, instead opting for technical correctness and minimalism; this is a +good thing, because lots of Linux distros these days are extremely bloated. +Using a BSD system feels like Linux did in the year 2005, just with much better +hardware support, and that's a *good thing*; the reason why is that BSD systems +simply have fewer users, and a higher concentration of *technical* users, and +this *shows* when you use it. Linux is *much* more mass market and has to cater +to all sorts of people, and these days Linux distros have to *Just Work*. + +You can look at the documentation of each BSD system and try each one out, to +see which one is right for you. Be warned, BSD systems *are* typically harder +to use than Linux systems. Even the most seasoned Linux user will often have a +hard time with any BSD, if it's their first time using a BSD system. This is +mitigated by excellent documentation, which is one of the things that the BSDs +excel at, but you are expected to *read* the documentation; many Linux distros +try to hold your hand ("it Just Works"), but the BSDs generally don't do that. + +If you're already a power user on Linux, and comfortable with the more hands-on +distros like Arch Linux or Gentoo Linux, you'll have a much easier time +learning a BSD. FreeBSD for example comes completely barebones by default, and +you add packages to it, configuring it to your liking, much like Arch Linux; if +you're wily enough, you might also use the CURRENT tree and install all packages +by building them from *ports* (akin to how Gentoo Linux is used). + +BSD systems also have much more relaxed licensing than Linux systems, by and +large; most of the software in the base system, on any BSD project, will use +a permissive license instead of copyleft. They can be regarded as Free Software, +but it's a very different ideology than, say, GNU. Some might argue that this +is better, because licensing conflicts are common among copyleft licenses, even +among different versions of the GPL. A BSD-style license permits *anyone* to +use the code, *without* requiring modified versions to ship source code, so it +can be said that the BSD license model contains [far fewer +restrictions](https://docs.freebsd.org/en/articles/bsdl-gpl/). One might say +that the BSD systems are *more free* than GNU/Linux systems. + +Basically, your choice to use BSD will likely be based on a combination of +technical and/or ideological preferences. But don't say we didn't warn you. +BSD is hard. On the flip side of that coin, BSD is *easy*, because it forces +you to really learn how your system works; when you become proficient with +BSD, you'll learn everything else much easier, and you may find yourself doing +things more efficiently *in Linux* as well! + +That's enough BSD fanaticism. Please read the following sections, *before* +you embark on your BSD Libreboot journey: + +Common issues with BSD+Libreboot +-------------------------------- + +This page will not tell you how to install BSD systems; that is best left to +the documentation for your BSD system. Instead, these next sections cover only +the idiosyncrasies of Libreboot as they relate to BSD: + +### Kernel Mode Setting Your BSD system *must* support Kernel Mode Setting for your graphics device (most of them do nowadays). The reasons will become apparent, as you read this article. -Boot BSD, using SeaBIOS -======================= +### Boot BSD, using SeaBIOS On x86 platforms, Libreboot provides the choice of GRUB and/or SeaBIOS payload. GRUB can technically boot BSD kernels, but the code is @@ -37,8 +131,18 @@ If you don't plan to set up Xorg/Wayland, then that's all you really need to do. For example, you might want to run a headless server, in which case you probably don't mind running in text mode all the time. -OpenBSD and corebootfb ----------------------- +#### GRUB payload + +GRUB *can* directly boot many BSD systems, but this is ill advisable. You are +advised to use either SeaBIOS, and boot a BIOS-based BSD bootloader, or use +Libreboot's [U-Boot payload](../uboot/) and use it to boot via UEFI; U-Boot's +bootflow menu can achieve this. + +The U-Boot coreboot payload is still experimental, on ARM64 *and* x86/x86\_64, +so you should probably use SeaBIOS for now (on x86). U-Boot is the *only* +coreboot payload for Libreboot on ARM64 motherboards. + +### OpenBSD and corebootfb It's still recommended to use SeaBIOS in text mode, but OpenBSD specifically can work with SeaBIOS booting in a coreboot framebuffer, with SeaVGABIOS. In @@ -46,19 +150,22 @@ Libreboot ROM images, this would be SeaBIOS images with `corebootfb` in the file name. Make sure to select MBR-style partitioning on the installer, and it will -Just Work. +Just Work. **GPT partitioning won't work in OpenBSD, if you use the SeaBIOS +payload, but will work if you boot/install it via UEFI boot method with +Libreboot's [U-Boot UEFI payload](../uboot/uboot-x86.md) instead.** If you're using the GRUB payload but SeaBIOS is available in the boot menu, you can just select SeaBIOS at said menu, and OpenBSD will work fine. -FreeBSD and corebootfb ----------------------- +### FreeBSD and corebootfb Assumed broken, so please ensure that you boot with SeaBIOS payload in text mode (lbmk ROM images with `txtmode` in the file name, not `corebootfb`). -Warnings for X11 users ----------------------- +Please boot in *text mode*. FreeBSD can be configured to use KMS, if you need +Xorg or wayland. + +### Warnings for X11 users One important peculiarity of most libreboot systems is: VGA mode support exists, if booting with corebootfb (coreboot's own framebuffer) and @@ -113,43 +220,7 @@ You should not rely on the above instruction (for FreeBSD), because the exact step might change, and it does not go into full detail either. Refer to the documentation provided by your system, to know how KMS is configured. -ALWAYS READ THE MANUAL ----------------------- - -All of the BSDs have *excellent* documentation; it's one of the defining -characteristics, versus typical Linux distros. - -Aside from this quirk in coreboot, regarding *BIOS* video modes, the BSDs -otherwise work in exactly the same way as you would expect, and you can -follow along to their official documentation without much fuss. - -No specific or detailed guides will be provided here, because SeaBIOS is -fairly self-explanatory; you can otherwise refer to the SeaBIOS -documentation. - -If you're flashing a ROM for a machine where `seabios_withgrub` -and `seabios_grubfirst` ROMs are available, choose `seabios_withgrub`. - -DO NOT USE ROM IMAGES WITH `seabios_grubfirst` IN THE FILE NAME! These were -present in older Libreboot releases, and supported in previous revisions -of the build system, but they did not work for the intended purpose. More -info is written on the [Libreboot installation guide](../install/). ROM -images with `seabios_grubfirst` in the filename will NOT be included in -future Libreboot releases. - -Dubious mention: Tianocore --------------------------- - -Tianocore is extremely bloated, and unauditable, so it is not included -in Libreboot firmware, but it is the reference UEFI implementation by -Intel and contributors. It can boot most BSD systems very well. - -More robust ways to provide UEFI services in Libreboot are to be investigated. -Tianocore integration will not be provided officially, in any current or future -releases of Libreboot. - -Desktop users -------------- +### Desktop users NOTE: This section may not be full accurate; for example, the hardware page about HP Elite 8200 SFF talks about use of graphics cards on both corebootfb @@ -173,3 +244,36 @@ extremely expensive computationally speaking. This is why modern kernels You can learn more about INT10H text/VGA modes here: + +If you use the *U-Boot* payload, INT10H is irrelevant because you will rely on +an EFI framebuffer instead, which U-Boot does provide (piggybacking off of the +coreboot framebuffer where one is available). + +Regardless of whether you have an EFI framebuffer or INT10H VGA interrupts, +the various BSD systems all support KMS so you should be able to use Xorg or +Wayland just fine. + +ALWAYS READ THE MANUAL +---------------------- + +All of the BSDs have *excellent* documentation; it's one of the defining +characteristics, versus typical Linux distros. This is precisely *because* +the BSDs develop everything in-house, so the various components of a BSD +system are much more heavily integrated, and this means that they can provide +much more reliable documentation; reliable from both the user's perspective +and from the perspective of technical correctness. + +Aside from these and other quirks when installing BSD *on Libreboot*, the BSDs +otherwise work in exactly the same way as you would expect, and you can +follow along to their official documentation without much fuss. + +No specific or detailed guides will be provided here, because SeaBIOS is +fairly self-explanatory; you can otherwise refer to the SeaBIOS +documentation. + +DO NOT USE ROM IMAGES WITH `seabios_grubfirst` IN THE FILE NAME! These were +present in older Libreboot releases, and supported in previous revisions +of the build system, but they did not work for the intended purpose. More +info is written on the [Libreboot installation guide](../install/). ROM +images with `seabios_grubfirst` in the filename will NOT be included in +future Libreboot releases. diff --git a/site/docs/build/index.md b/site/docs/build/index.md index 3831f00..f327b83 100644 --- a/site/docs/build/index.md +++ b/site/docs/build/index.md @@ -1,19 +1,12 @@ --- -title: Build from source +title: Compile Libreboot from source x-toc-enable: true ... -WARNING: eCryptfs file name limits -================================= - -Do not run the build system on a eCryptfs file system, because it has -very short file name limits and Libreboot's build system deals with very -long file names. We commonly get reports from this by Linux Mint users -who encrypt their home directory with eCryptfs; regular LUKS encryption will -do nicely. +If you need to build Libreboot from source, this guide is for you. Introduction -============ +------------ Libreboot's build system is named `lbmk`, short for `LibreBoot MaKe`, and this document describes how to use it. With this guide, you can know how to compile @@ -22,8 +15,16 @@ libreboot from the available source code. The following document describes how `lbmk` works, and how you can make changes to it: [libreboot maintenance manual](../maintain/) +### WARNING: eCryptfs file name limits + +Do not run the build system on a eCryptfs file system, because it has +very short file name limits and Libreboot's build system deals with very +long file names. We commonly get reports from this by Linux Mint users +who encrypt their home directory with eCryptfs; regular LUKS encryption will +do nicely. + System requirements -=================== +------------------- You must ensure that you have the correct operating system, CPU, RAM, disk space and so on. @@ -32,7 +33,7 @@ System requirements are documented in the [lbmk maintenance manual](../maintain/#system-requirements). Multi-threaded builds -===================== +--------------------- Libreboot's build system defaults to a single build thread, but you can change it by doing e.g. @@ -46,7 +47,7 @@ is passed, where THREADS is the number of threads. This is also set when running xz commands for compression, using the `-t` option. Environmental variables -======================= +----------------------- Please read about environmental variables in [the build instructions](../maintain/), before running lbmk. You should set @@ -54,14 +55,14 @@ your variables accordingly, though you do not technically need to; some of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). Sources -======= +------- This version, if hosted live on libreboot.org, assumes that you are using the `lbmk` git repository, which you can download using the instructions on [the code review page](../../git.md). Git -=== +--- Libreboot's build system uses Git, extensively. You should perform the steps below, *even if you're using a release archive*. @@ -81,21 +82,19 @@ You may also want to follow more of the steps here: How to compile Libreboot -======================== +------------------------ Actual development/testing is always done using lbmk directly, and this includes when building from source. Here are some instructions to get you started: -Zero..st, check time/date -------------------------- +### Zero..st, check time/date Make sure date/hwclock report the correct time and date on your system, because parts of the build process download from HTTPS servers and wrong time or date can cause connections to be dropped during negotiation. -First, install build dependencies ---------------------------------- +### First, install build dependencies Libreboot includes a script that automatically installs build dependencies according to the selected linux distro. @@ -133,8 +132,7 @@ Technically, any Linux distribution can be used to build libreboot. However, you will have to write your own script for installing build dependencies. -Debian Trixie/Sid ------------------ +### Debian Trixie/Sid Debian Trixie, the testing release as of 3 January 2025, and Debian Sid, provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and @@ -171,8 +169,7 @@ When we tested with this configuration, the KGPE-D16 images also compiled. NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10. -MIPS cross compiler -------------------- +### MIPS cross compiler Libreboot has support for the Sony PlayStation (PS1/PSX), based on the PCSX-Redux Open BIOS. If you're doing a full release build, and/or @@ -187,8 +184,7 @@ If your distro doesn't have the MIPS compiler available, the [PlayStation](../install/playstation.md) page provides instructions for manual installation; please do this in addition to the normal dependencies. -Next, build ROM images ----------------------- +### Next, build ROM images Libreboot MaKe (lbmk) automatically runs all necessary commands; for example, `./mk -b coreboot` will automatically build the required payloads @@ -207,8 +203,7 @@ or get a list of supported build targets: ./mk -b coreboot list -Or maybe just build payloads? ------------------------------ +### Or maybe just build payloads? If you wish to build payloads, you can also do that. For example: @@ -235,7 +230,7 @@ Or perhaps add a new board! The maintenance manual will teach you how the Libreboot build system (lbmk) works! A note about documentation (and this page) -========================================== +------------------------------- From Libreboot 20231021 onwards, *all* releases (including 20231021) have `lbwww.git` (the website) and `lbwww-img.git` (images for the website) diff --git a/site/docs/build/index.uk.md b/site/docs/build/index.uk.md index 5a67bdc..d984a0f 100644 --- a/site/docs/build/index.uk.md +++ b/site/docs/build/index.uk.md @@ -7,17 +7,8 @@ x-toc-enable: true still in English, and there may be some differences aside from translation, versus the English version.** -WARNING: eCryptfs file name limits -================================= - -Do not run the build system on a eCryptfs file system, because it has -very short file name limits and Libreboot's build system deals with very -long file names. We commonly get reports from this by Linux Mint users -who encrypt their home directory with eCryptfs; regular LUKS encryption will -do nicely. - Introduction -============ +------------ Система побудови libreboot, називається `lbmk`, скорочення від `LibreBoot MaKe`, і цей документ описує те, як використовувати її. З цим керівництвом ви можете узнати те, як побудувати @@ -34,8 +25,16 @@ libreboot з доступного джерельного коду. Наступний документ описує те, як працює `lbmk`, і як ви можете робити зміни до нього: [керівництво обслуговування libreboot](../maintain/) +### WARNING: eCryptfs file name limits + +Do not run the build system on a eCryptfs file system, because it has +very short file name limits and Libreboot's build system deals with very +long file names. We commonly get reports from this by Linux Mint users +who encrypt their home directory with eCryptfs; regular LUKS encryption will +do nicely. + System requirements -=================== +------------------- You must ensure that you have the correct operating system, CPU, RAM, disk space and so on. @@ -44,7 +43,7 @@ System requirements are documented in the [lbmk maintenance manual](../maintain/#system-requirements). Multi-threaded builds -===================== +--------------------- Libreboot's build system defaults to a single build thread, but you can change it by doing e.g. @@ -54,7 +53,7 @@ it by doing e.g. This would make lbmk run on 4 threads. Environmental variables -======================= +----------------------- Please read about environmental variables in [the build instructions](../maintain/), before running lbmk. You should set @@ -62,7 +61,7 @@ your variables accordingly, though you do not technically need to; some of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). Environmental variables -======================= +----------------------- Please read about environmental variables in [the build instructions](../maintain/), before running lbmk. You should set @@ -70,7 +69,7 @@ your variables accordingly, though you do not technically need to; some of them may be useful, e.g. `XBMK_THREADS` (sets the number of build threads). Git -=== +--- Система побудови Libreboot використовує Git, обширно. Ви маєте виконати кроки знизу, *навіть, якщо ви використовуєте архів випуску*. @@ -90,17 +89,15 @@ Git Build -===== +----- -Zero..st, check time/date -------------------------- +### Zero..st, check time/date Make sure date/hwclock report the correct time and date on your system, because parts of the build process download from HTTPS servers and wrong time or date can cause connections to be dropped during negotiation. -Побудова з джерельного коду -============================ +### Побудова з джерельного коду Фактична розробка/тестування завжди виконується безпосередньо за допомогою `lbmk`, і це також стосується збирання з джерельного коду. Ось кілька інструкцій, щоб @@ -125,8 +122,7 @@ Check: `config/dependencies/` for list of supported distros. Однак, вам потрібно буде написано свій власний сценарій для встановлення залежностей побудови. -Debian Trixie/Sid ------------------ +### Debian Trixie/Sid Debian Trixie, the testing release as of 3 January 2025, and Debian Sid, provide `gnat` and `gcc` as you expect, but `gnat` resolves to `gnat-13` and @@ -163,8 +159,7 @@ When we tested with this configuration, the KGPE-D16 images also compiled. NOTE: Ubuntu 24.10 also has the issue described above. Some other distros may also have it, if they're based on Debian Testing/Sid or Ubuntu 24.10. -MIPS cross compiler -------------------- +### MIPS cross compiler Libreboot has support for the Sony PlayStation (PS1/PSX), based on the PCSX-Redux Open BIOS. If you're doing a full release build, and/or @@ -179,8 +174,7 @@ If your distro doesn't have the MIPS compiler available, the [PlayStation](../install/playstation.md) page provides instructions for manual installation; please do this in addition to the normal dependencies. -Next, build ROM images ----------------------- +### Next, build ROM images В якості результату, ви тепер можете (після встановлення правильних залежностей побудови) виконати лише одну команду, з свіжого Git clone, для побудови образів ROM: diff --git a/site/docs/grub/index.md b/site/docs/grub/index.md index 21f4ce8..1825c96 100644 --- a/site/docs/grub/index.md +++ b/site/docs/grub/index.md @@ -5,20 +5,22 @@ x-toc-enable: true GRUB already has excellent documentation, but there are aspects of libreboot that deserve special -treatment. libreboot provides the option to boot GRUB directly, running on +treatment. Libreboot provides the option to boot GRUB directly, running on bare metal (instead of using BIOS or UEFI services). +Boot Linux from GRUB +-------------------- + [The Linux section](../linux/) also has libreboot-specific guides for dealing with Linux distributions when using GRUB directly, in this setup. [A similar section exists for BSD operating systems](../bsd/) GRUB keyboard layouts -===================== +--------------------- It is possible to use *any* keymap in GRUB. -Custom keyboard layout ----------------------- +### Custom keyboard layout Keymaps are stored in `config/grub/keymap/` diff --git a/site/docs/index.md b/site/docs/index.md index 05ef75b..334b58a 100644 --- a/site/docs/index.md +++ b/site/docs/index.md @@ -1,5 +1,5 @@ --- -title: Documentation +title: Libreboot documentation ... Always check [libreboot.org](https://libreboot.org/) for the latest updates to @@ -9,7 +9,7 @@ the [main news section](../news/). [Answers to Frequently Asked Questions about libreboot](../faq.md). Need help? -========== +---------- Help is available on [Libreboot IRC](../contact.md) and other channels. @@ -22,18 +22,18 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and operates Minifree Ltd; sales provide funding for the Libreboot project. Installing libreboot -==================== +-------------------- - [How to install libreboot](install/) -Documentation related to operating systems -============================ +Installing operating systems +---------------------------- - [How to install BSD on an x86 host system](bsd/) - [Linux Guides](linux/) Information for developers -========================== +-------------------------- - [How to compile the libreboot source code](build/) - [Build system developer documentation](maintain/) @@ -41,7 +41,7 @@ Information for developers - [U-Boot payload](uboot/) Other information -================= +----------------- - [Miscellaneous](misc/) - [List of codenames](misc/codenames.md) diff --git a/site/docs/index.uk.md b/site/docs/index.uk.md index 3d6bba7..2fc7309 100644 --- a/site/docs/index.uk.md +++ b/site/docs/index.uk.md @@ -9,7 +9,7 @@ libreboot. Новини, включаючи оголошення про випу [Відповіді на поширені запитання про libreboot](../faq.md). Need help? -========== +---------- Help is available on [Libreboot IRC](../contact.md) and other channels. @@ -22,18 +22,18 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and operates Minifree Ltd; sales provide funding for the Libreboot project. Встановлення libreboot -==================== +---------------------- - [Як встановити libreboot](install/) Документація, яка має відношення до операційних систем -============================ +----------------------------------------------------- - [Як встановити BSD на x86 хостову систему](bsd/) - [Керівництва Linux](linux/) Інформація для розробників -========================== +-------------------------- - [Як зібрати джерельний код libreboot](build/) - [Документація розробника системи побудови](maintain/) @@ -41,7 +41,7 @@ operates Minifree Ltd; sales provide funding for the Libreboot project. - [Корисне навантаження U-Boot](uboot/) Інша інформація -================= +--------------- - [Різне](misc/) - [Список кодових назв](misc/codenames.md) diff --git a/site/docs/index.zh-cn.md b/site/docs/index.zh-cn.md index 459a513..40ac6e4 100644 --- a/site/docs/index.zh-cn.md +++ b/site/docs/index.zh-cn.md @@ -7,7 +7,7 @@ libreboot 的最新更新,可以在 [libreboot.org](https://libreboot.org) 上 [libreboot 常见问题解答](../faq.md). Need help? -========== +---------- Help is available on [Libreboot IRC](../contact.md) and other channels. @@ -20,18 +20,18 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and operates Minifree Ltd; sales provide funding for the Libreboot project. 安装 libreboot -==================== +-------------- - [如何安装 libreboot](install/) 操作系统相关文档 -============================ +---------------- - [如何在 x86 机器上安装 BSD](bsd/) - [Linux 指南](linux/) 开发者信息 -========================== +---------- - [如何编译 libreboot 源代码](build/) - [构建系统开发者文档](maintain/) @@ -39,7 +39,7 @@ operates Minifree Ltd; sales provide funding for the Libreboot project. - [U-Boot payload](uboot/) 其它信息 -================= +-------- - [杂项](misc/) - [代号列表](misc/codenames.md) diff --git a/site/docs/install/c201.md b/site/docs/install/c201.md index 50db03e..8858ab1 100644 --- a/site/docs/install/c201.md +++ b/site/docs/install/c201.md @@ -1,22 +1,28 @@ --- -title: ASUS Chromebook C201 installation guide +title: Install Libreboot ASUS Chromebook C201 x-toc-enable: true ... +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +ASUS Chromebook C201 motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. + WARNING: This board is known to have non-functioning video init at the time of writing, 19 February 2023. It is as yet unsolved. See: Introduction -=========== +------------ This page contains information about assembly and disassembly, for flashing the ASUS Chromebook C201 externally. It will also link to internal flashing instructions, and information about U-Boot. -Flashrom --------- +### Flashrom A special fork of flashrom, maintained by Google, is required for flashing. More information about this is present in the generic [chromebook flashing @@ -26,8 +32,7 @@ NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog now, as of 27 January 2024, which is a fork of flashrom, but the chromium fork is another fork of flashrom, and you should use that on chromebooks. -Depthcharge payload (obsolete) ------------------------------- +### Depthcharge payload (obsolete) This board was also supported in Libreboot 20160907, with the Depthcharge payload. Support was dropped in later releases, and then re-added in the @@ -40,7 +45,7 @@ instructions pertaining to Depthcharge: * U-boot payload -============== +-------------- U-Boot was ported to coreboot CrOS devices, courtesy of Alper Nebi Yasak (`alpernebbi` on Libreboot IRC). @@ -50,7 +55,7 @@ Read the section pertaining to U-boot payload: [u-boot payload documentation for Libreboot](../uboot/) Internal flashing -================= +------------------ External flashing is possible, but only necessary in the event of a *brick*. If you're flashing good firmware, and the machine boots properly, you can @@ -62,8 +67,7 @@ the information has moved. See: [chromebook flashing instructions](chromebooks.md) -Write-protect screw -------------------- +### Write-protect screw The chromebook flashing instructions, linked above, refer to a *screw* that can be turned, to disable flash protection. This is necessary, for internally @@ -86,7 +90,7 @@ The write protect screw can be put back in place later, when the device is known to be in a working state. External flashing -================= +----------------- If the machine is no longer booting, due to bad firmware, you can unbrick it externally. Refer to [external flash instructions](spi.md). diff --git a/site/docs/install/chromebooks.md b/site/docs/install/chromebooks.md index a8b762f..715c177 100644 --- a/site/docs/install/chromebooks.md +++ b/site/docs/install/chromebooks.md @@ -1,8 +1,19 @@ --- -title: Chromebook flashing instructions +title: Install Libreboot on a Chromebook x-toc-enable: true ... +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on various ARM64-based +Chromebook laptops. Libreboot replaces proprietary BIOS/UEFI firmware, though +it should be noted that Google already ships coreboot and their own payload +called Depthcharge, which is all free software; the difference with Libreboot +is that it replaces Depthcharge with *U-Boot* (as a coreboot payload), which +provides a lightweight UEFI boot implementation that can boot regular Linux and +BSD systems more easily than Depthcharge. + NOTE: daisy, peach and veyron boards were temporarily removed from lbmk. They should be re-added to Libreboot at a later date. The reasons are written on the hardware compatibility page. For now, Libreboot only @@ -13,7 +24,7 @@ custom firmware on ChromeOS devices. This guide usually refers to all of them as "Chromebook"s since it's the most common form factor. Flashrom -======== +-------- A special fork of flashrom, maintained by Google, is required for flashing these Chromebook devices. See: @@ -23,7 +34,7 @@ these Chromebook devices. See: You must then compile this from source, and run it. Enable ChromeOS "Developer Mode" -================================ +-------------------------------- Chromebooks are locked-down by default to only run ChromeOS. Most things you will want to do on these require you unlock it by enabling their @@ -44,7 +55,7 @@ where you can run programs. Most of the root file system is read-only, except for `/usr/local` and any mounted drives under `/media/removable`. Identify your device -==================== +-------------------- It's more common to refer to ChromeOS boards by their codenames, and many compatible devices can share a single codename. Libreboot ROM @@ -56,7 +67,7 @@ device's. There are a number of ways to find it, some are: - Run `crossystem hwid` or `crossystem fwid` in a terminal Back up stock firmware -====================== +---------------------- The stock firmware on your device comes with some irreplaceable data that is unique to your device. This can include the serial number and @@ -78,7 +89,7 @@ If you can already boot a conventional Linux distro on your Chromebook, you may be able to use `flashrom -p linux_mtd` on that system instead. Check external flashability -=========================== +--------------------------- If a ROM image you flash is broken, you may need to restore the stock firmware to fix the board to get internal flashing working. Refer to the @@ -93,7 +104,7 @@ mechanism that lets you flash externally using a special USB debugging cable. However, most boards that Libreboot supports do not have this. Disable write protection -======================== +------------------------ Chromebooks have the SPI flash chip partially write-protected by default, but thankfully this protection can be disabled by the device @@ -128,7 +139,7 @@ compile and use that flashrom fork to disable write-protection. There is no `lbmk` support yet for automatically building it. Prepare the ROM image -===================== +--------------------- Libreboot ROM image layouts are currently incompatible with the regions that should be carried over from the stock firmware. However, the @@ -143,7 +154,7 @@ keep backups of the original firmware. TODO: Instructions to preserve vital data when FMAPs are compatible. Flash the ROM image -=================== +------------------- WARNING: Although none are supported yet, make sure not to flash ROM images on x86 Chromebooks without injecting non-redistributable code @@ -163,7 +174,7 @@ If you can already boot a conventional Linux distro on your Chromebook, you may be able to use `flashrom -p linux_mtd` on that system instead. Install an operating system (experimental research) -=========================== +------------------------------------------------ In general, ARM-compatible distros targeting U-boot can be used. There are three general methods for installing that vary depending on the distribution: @@ -173,25 +184,22 @@ three general methods for installing that vary depending on the distribution: 3. extlinux.conf - a newer flat, bootloader-spec text file that typically lives in /boot/extlinux/extlinux.conf -Successful installations: -------------------------- +### Successful installations: * [ArchLinuxARM on RK3399-based Chromebooks](../uboot/uboot-archlinux.md). * [Debian Bookworm on Samsung Chromebook Plus XE513C24](../uboot/uboot-debian-bookworm.md). * [Debian on Asus Chromebook C201](https://wiki.debian.org/InstallingDebianOn/Asus/C201). -Unsuccessful installations: ---------------------------- +### Unsuccessful installations: * [OpenBSD on Samsung Chromebook Plus XE513C24](../uboot/uboot-openbsd.md). -Other promising ARM-compatible distros: ---------------------------------------- +### Other promising ARM-compatible distros: * [Armbian](https://www.armbian.com/uefi-arm64/). See also -======== +-------- * [ChromiumOS Documentation](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/) * [ChromiumOS Firmware Test Manual](https://chromium.googlesource.com/chromiumos/docs/+/HEAD/firmware_test_manual.md) diff --git a/site/docs/install/d945gclf.md b/site/docs/install/d945gclf.md index 7254918..2dc97ba 100644 --- a/site/docs/install/d945gclf.md +++ b/site/docs/install/d945gclf.md @@ -1,5 +1,5 @@ --- -title: Intel D945GCLF desktop board +title: Install Libreboot on Intel D945GCLF and/or D945GCLF2 x-toc-enable: true ... @@ -18,7 +18,7 @@ x-toc-enable: true | **Graphics** | ? | | **Display** | None. | | **Memory** | Up to 2GB | -| **Architecture** | x86_64 | +| **Architecture** | x86\_64 | | **Original boot firmware** | Intel BIOS | | **Intel ME/AMD PSP** | Not present. | | **Flash chip** | SOIC-8 512KiB | @@ -47,13 +47,21 @@ P*: Partially works with vendor firmware | **SeaBIOS** | Works | | **SeaBIOS with GRUB** | Doesn't work | + +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +Intel D945GCLF and/or D945GCLF2 desktop motherboard. Libreboot replaces +proprietary BIOS/UEFI firmware. + If you just want flashing instructions, go to [../install/d945gclf.md](../install/d945gclf.md) D945GCLF2D also reported working by a user. Introduction -============ +------------ This board is a mini-itx desktop board for 2008. It uses an atom 230, which is a singe core CPU but it is hyperthreaded so it appears to have @@ -76,8 +84,7 @@ hyperthreaded). Since the board is almost identical (and coreboot code seem to indicate that it works, since MAX\_CPU=4 is set), it is believed that it should also work but this is untested. -Remarks about vendor bios: --------------------------- +### Remarks about vendor bios: - Without coreboot/libreboot this board is completely useless, since the vendor bios is very bad. It cannot boot from any HDD whether it is @@ -96,15 +103,14 @@ And SPI SOIC8 flash chip\ ![](https://av.libreboot.org/d945gclf/20160923_141550.jpg){width="50%" height="50%"} Flashing instructions {#clip} -===================== +----------------------------- Refer to [spi.md](spi.md) for how to re-flash externally. Here is an image of the flash chip:\ ![](https://av.libreboot.org/d945gclf/d945gclf_spi.jpg) -How to replace thermal paste and fan ------------------------------------- +### How to replace thermal paste and fan This board comes with very crappy disposable loud fan, that one has no bearings, which can not be repaired or oiled properly, do not waste your diff --git a/site/docs/install/deguard.md b/site/docs/install/deguard.md index 9a78966..7980fd5 100644 --- a/site/docs/install/deguard.md +++ b/site/docs/install/deguard.md @@ -3,12 +3,30 @@ title: Disabling Intel Boot Guard on MEv11 x-toc-enable: true ... +Deguard enables open source BIOS/UEFI firmware +------------------------------------------- + +On *some* (not all) motherboards, the vendor chooses to fuse a key during +manufacturing, which ensures that you can *only* boot firmware cryptographically +signed and verified by *them*. This is a form of DRM that otherwise prevents +use of coreboot-based firmware, such as Libreboot. We are *against* DRM in the +Libreboot project. *Intel* markets the Boot Guard as a security feature, but +we regard it simply as an *attack* +on [Free Software](https://writefreesoftware.org/learn). + +This document will teach you about *deguard*, which is a utility that modifies +the Intel ME (which implements Boot Guard) in such a way as to *disable* the +Intel Boot Guard, by exploiting a known security vulnerability on MEv11. The +Libreboot project *uses deguard* for *several* coreboot ports, such as +the [Lenovo ThinkPad T480 with Libreboot](t480.md) or +the [Dell OptiPlex 3050 Micro with Libreboot](dell3050.md). + This covers Intel Skylake, Kaby Lake and Kaby Lake Refresh / Coffeelake machines; note that Coffeelake includes KabyLake Refresh and may have MEv12. This page concerns only those platforms that have Intel MEv11, not MEv12. The facts on this page are applicable to both *mobile* and *desktop* platforms. -The Intel Boot Guard is a security mechanism implemented by intel, but not all +The Intel Boot Guard is a "security" mechanism implemented by intel, but not all vendors enable it. If enabled, the bootblock in the flash is protected at boot time by cryptographic signature verification; this means only the vendor can update the flash. @@ -17,10 +35,14 @@ On systems with MEv11, a bug exists in older versions (of MEv11) that allows for unsigned code execution, at a very early stage in the boot process, to the point that almost all of the ME firmware in flash can be fully replaced. The ME is also what implements Boot Guard, and the hack is possible *before* Boot -Guard is enforced, allowing for it to be disabled. +Guard is enforced, allowing for it to be disabled. This does *not* unfuse the +keys set by the manufacturer, but rather, it bypasses all checks against them. See: [CVE-2017-5705](https://www.intel.com/content/www/us/en/security-center/advisory/intel-sa-00086.html) +Deguard utility +--------------- + Mate Kukri, who authored the ThinkPad T480/T480 and OptiPlex 3050 Micro ports, wrote a tool called *deguard*, which Libreboot uses on these boards. This tool reconfigures the ME, exploiting it so as to disable the Boot Guard. @@ -35,6 +57,9 @@ and Libreboot provides a mirror of this repository: More information is available there. +How it works +------------ + This is done by externally flashing an older version. Libreboot's build system automatically downloads this older version, runs `me_cleaner` on it, and applies the deguard hack; this includes machine-specific ME configuration, which is @@ -50,6 +75,9 @@ normally only available to vendors; the *deguard* utility written by Mate Kukri is available under a free software license, and included by default in Libreboot releases. It can be used for *any* MEv11-based system. +How to use deguard +------------------ + To download deguard in lbmk (Libreboot's build system), do this: ./mk -f deguard @@ -65,6 +93,21 @@ were never fused, even if they were. [Previous work](https://trmm.net/TOCTOU/) has been done by others, related to the Boot Guard, but nothing quite so thorough and easy to use as deguard existed previously! +T480/T480s MFS data +------------------- + +As of Libreboot 20241206, the upstream deguard project did not contain an MFS +config for Lenovo ThinkPad T480 and T480s, because Libreboot added them in an +out-of-tree patch (under Mate Kukri's direct guidance). + +Therefore, if you're using deguard on a standalone/custom coreboot setup without +using Libreboot/lbmk, please do ensure that they are there. The tool itself +provides a README, or you could simply import the config data from lbmk if +you wish. + +How does deguard work? +---------------------- + Mate Kukri was able to figure this out and implement deguard, using existing work done by PT Research and Youness El Alaoui, exploiting the Intel SA 00086 bug which you can read more about here: @@ -82,7 +125,12 @@ years to try to hack around it, as a matter of user freedom. So remember: when Intel is talking about security, they mean *their* security, not yours. To them, you are simply flashing malicious code. But they are the ones with malice. +Thanks +------ + Mate Kukri and others who work on such hacks are heroes, and they have done a great service to the Libreboot project. Many more machines are now possible to port to coreboot, thanks to this hack. + +The Libreboot project owes Mate Kukri a debt of gratitude, many times over. diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index f8fc99d..bd033e3 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -1,5 +1,5 @@ --- -title: Dell OptiPlex 3050 Micro +title: Install Libreboot on Dell OptiPlex 3050 Micro x-toc-enable: true ... @@ -52,23 +52,25 @@ P*: Partially works with vendor firmware | **SeaBIOS** | Works | -Buy pre-installed -================= +Open source BIOS/UEFI firmware +------------------------- -**Dell OptiPlex 3050 Micro is available to purchase with Libreboot preinstalled. -See: ** - -Introduction -============ +This document will teach you how to install Libreboot, on your +Dell OptiPlex 3050 Micro desktop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. **Unavailable in Libreboot 20240612 or earlier. You must [compile from source](../build/), or use a version newer than Libreboot 20240612.** +### Buy pre-installed + +**Dell OptiPlex 3050 Micro is available to purchase with Libreboot preinstalled. +See: ** + Official information about the computer can be found here: -Warning regarding NVMe SSDs ---------------------------- +### Warning regarding NVMe SSDs Please use at least Libreboot 20241206 *[revision 3](../../news/libreboot20241206.Revisions.md#revision-3-11-december-2024)* @@ -80,8 +82,7 @@ NVMe SSD slot. See: [Libreboot 20241206 release](../../news/libreboot20241206.md) -Build ROM image from source ---------------------------- +### Build ROM image from source The build target, when building from source, is thus: @@ -94,7 +95,7 @@ possible inside the ME on this mainboard, giving it much higher potential for software freedom in the future. Issues -====== +------ This machine basically works flawlessly, as of the Libreboot 20241206 release. All the initial bugs were fixed, e.g. PWM fan control works now. A very nice @@ -110,10 +111,9 @@ Selection of audio devices and outputs is a bit idiosyncratic on this board. Just play with pavucontrol for your setup and it should work fine. Installation -============ +------------ -Insert binary files -------------------- +### Insert binary files If you're using a release ROM, please ensure that you've inserted extra firmware required refer to the [guide](../install/ivy_has_common.md) for that. (failure @@ -133,8 +133,7 @@ libre ME could include, for example, running an out-of-bound packet filter on a secure network (with flash write protection, making it invincible to any OS-based software attacks). -MAC address ------------ +### MAC address This has a Realtek NIC inside, instead of Intel, so the MAC address will not change. This means: there is no GbE region in the flash. @@ -145,8 +144,7 @@ from Linux if you want to. This is great, because that's one less complexity to deal with during installation. -Flash a ROM image (software) ------------------ +### Flash a ROM image (software) If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. @@ -161,8 +159,7 @@ variables to flash during shutdown sequence, so you should *pull the plug* to shut it down (remove the power by pulling the plug) after flashprog says `VERIFIED`. -Flash a ROM image (hardware) ------------------ +### Flash a ROM image (hardware) For general information, please refer to [25xx NOR flash instructions](../install/spi.md) - that page refers to use of socketed flash. @@ -179,10 +176,9 @@ You can otherwise flash internally, including from factory firmware(if the service jumper is set). Errata -====== +------ -Power-on after power failure ----------------------------- +### Power-on after power failure Older Libreboot revisions made this machine always turn on, when plugging in a power supply (charger brick), if a previous power loss was observed. This is @@ -203,19 +199,16 @@ by reading the `tree` variable in your board's `target.cfg` file within lbmk). Use the patch as reference, to modify the coreboot behaviour as you wish, and re-compile [from source](../build/). -TPM disabled ------------- +### TPM disabled The TPM is disabled on this device, to prevent hanging/boot delay in SeaBIOS, due to buggy TPM drivers there. -Legacy 8254 timer ------------------ +### Legacy 8254 timer Legacy 8254 timer enabled in coreboot, to prevent SeaBIOS from hanging. -HyperThreading on 3050 Micro --------------------------- +### HyperThreading on 3050 Micro Also called SMT. This is a feature where you get 2 threads on a single core. It can improve performance in some workloads, but is actually a performance diff --git a/site/docs/install/dell7010.md b/site/docs/install/dell7010.md index d2cd57d..acf00b6 100644 --- a/site/docs/install/dell7010.md +++ b/site/docs/install/dell7010.md @@ -1,5 +1,5 @@ --- -title: Dell OptiPlex 7010/9010 SFF +title: Install Libreboot on Dell OptiPlex 7010/9010 SFF x-toc-enable: true ... @@ -58,8 +58,13 @@ P*: Partially works with vendor firmware | **SeaBIOS** | Works | | **SeaBIOS with GRUB** | Works | -Introduction -============ + +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +Dell OptiPlex 7010 SFF and/or OptiPlex 9010 SFF desktop motherboard. +Libreboot replaces proprietary BIOS/UEFI firmware. **Unavailable in Libreboot 20240612 or earlier. You must [compile from source](../build/), or use a version newer than Libreboot 20240612.** @@ -67,8 +72,7 @@ source](../build/), or use a version newer than Libreboot 20240612.** Official information about the computer can be found here: -Build ROM image from source ---------------------------- +### Build ROM image from source The build target, when building from source, is thus: @@ -76,11 +80,14 @@ The build target, when building from source, is thus: NOTE: The same 7010 SFF image also works on 9010 SFF. It's the same mainboard. -Installation -============ +Alternatively, you can use one of Libreboot's pre-compiled release images. -Insert binary files -------------------- +Install Libreboot +----------------- + +Libreboot can be installed via internal and/or external flashing methods. + +### Insert vendor files If you're using a release ROM, please ensure that you've inserted extra firmware required refer to the [guide](../install/ivy_has_common.md) for that. (failure @@ -90,15 +97,13 @@ Libreboot's build system automatically downloads and processes these files if you build Libreboot from source, but the same logic that it uses must be re-run if you're using a release image. -Set MAC address ---------------- +### Set MAC address This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM region. As such, release/build ROMs will contain the same MAC address. To change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). -WARNING about CPU/GPU compatibility -------------------------------- +### WARNING about CPU/GPU compatibility If you want to use onboard graphics, you must have a CPU that has a GPU built into it. You can find a list here: @@ -112,8 +117,7 @@ used, SeaBIOS executes its VGA ROM which provides video init, instead of coreboot's native Intel video init. GRUB piggybacks off of what SeaBIOS did, so the GRUB payload will also work. -Flash a ROM image (software) ------------------ +### Flash a ROM image (software) If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. @@ -129,8 +133,7 @@ variables to flash during shutdown sequence, so you should *pull the plug* to shut it down (remove the power by pulling the plug) after flashprog says `VERIFIED`. -Flash a ROM image (hardware) ------------------ +### Flash a ROM image (hardware) For general information, please refer to [25xx NOR flash instructions](../install/spi.md) - that page refers to use of socketed flash. diff --git a/site/docs/install/dell780.md b/site/docs/install/dell780.md index 22e4a37..14bbcf6 100644 --- a/site/docs/install/dell780.md +++ b/site/docs/install/dell780.md @@ -1,5 +1,5 @@ --- -title: Dell OptiPlex 780 MT/USFF +title: Install Libreboot on Dell OptiPlex 780 MT/USFF x-toc-enable: true ... @@ -52,8 +52,13 @@ P*: Partially works with vendor firmware | **SeaBIOS** | Works | | **SeaBIOS with GRUB** | Works | -Introduction -============ + +Open source BIOS/UEFI firmware +------------------------- + +This document will teach you how to install Libreboot, on your +Dell OptiPlex 780 desktop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. **Unavailable in Libreboot 20240612 or earlier. You must [compile from source](../build/), or use a version newer than Libreboot 20240612.** @@ -61,8 +66,7 @@ source](../build/), or use a version newer than Libreboot 20240612.** Official information about the computer can be found here: -Build ROM image from source ---------------------------- +### Build ROM image from source The build target, when building from source, is thus: @@ -75,25 +79,27 @@ The `_truncate` image is needed if you're flashing Libreboot internally from the original Dell firmware. Otherwise, you only need the regular images that lack `_truncate` in the file name. -100% FREE -========= +Alternatively, you can use release images instead of compiling from source. + +### 100% FREE / OPEN SOURCE! This mainboard is entirely free software in the main boot flash. It is using the Intel X4X / ICH10 platform, same as on the already supported Gigabyte GA-G41M-ES2L mainboard. -Installation -============ +Install Libreboot +----------------- -Set MAC address ---------------- +These next sections will teach you how to install Libreboot, on your +Dell OptiPlex 780 motherboard. + +### Set MAC address This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM region. As such, release/build ROMs will contain the same MAC address. To change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). -WARNING about CPU/GPU compatibility -------------------------------- +### WARNING about CPU/GPU compatibility Coreboot has libre initialisation code for Intel graphics, but libre initialisation code is not available for most graphics cards. This machine can @@ -102,8 +108,7 @@ used, SeaBIOS executes its VGA ROM which provides video init, instead of coreboot's native Intel video init. GRUB piggybacks off of what SeaBIOS did, so the GRUB payload will also work. -Flash a ROM image (software) ------------------ +### Flash a ROM image (software) **Always make sure to dump a copy of the current flash first. ALSO: [make sure /dev/mem protection is disabled](devmem.md) for the flashing to work!** @@ -152,8 +157,7 @@ the full image; the one without `_truncate` in the file name uses all of the flash, with the BIOS region ending at the 8MB limit, so the BIOS region is therefore 2MB larger on those images. -Flash a ROM image (hardware) ------------------ +### Flash a ROM image (hardware) For general information, please refer to [25xx NOR flash instructions](../install/spi.md) - that page refers to use of socketed flash. diff --git a/site/docs/install/dell9020.md b/site/docs/install/dell9020.md index 00e390c..7264cd2 100644 --- a/site/docs/install/dell9020.md +++ b/site/docs/install/dell9020.md @@ -1,5 +1,5 @@ --- -title: Dell OptiPlex 9020 SFF/MT (and 7020), and XE2 MT/SFF +title: Install Libreboot on Dell OptiPlex 9020 SFF/MT (or 7020), or XE2 MT/SFF x-toc-enable: true ... @@ -62,8 +62,13 @@ P*: Partially works with vendor firmware | **SeaBIOS** | Works | | **SeaBIOS with GRUB** | Works | -Introduction -============ + +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +Dell OptiPlex 9020/7020 SFF/MT or XE2 SFF/MT desktop motherboard. Libreboot +replaces proprietary BIOS/UEFI firmware. **Unavailable in Libreboot 20240126 or earlier. You must [compile from source](../build/), or use a version newer than Libreboot 20240126** @@ -72,12 +77,11 @@ Official information about this machine can be found here: ECC memory support -================== +------------------ The 9020 MT/SFF do not have ECC memory support. However: -Dell Precision T1700 --------------------- +### Dell Precision T1700 The T1700 is a version of the same motherboard, but with ECC support. You can flash the 9020 MT image on this board, and it will boot. @@ -99,7 +103,7 @@ if a blob *can* be avoided, it must be avoided. Therefore, `mrc.bin` is avoided since the libre raminit works pretty well these days (ECC notwithstanding). Buy Libreboot preinstalled -====================== +-------------------------- You can buy this machine professionally serviced, with Libreboot preinstalled and your choice of Linux/BSD system. Many upgrades are also available. See: @@ -111,7 +115,7 @@ Sales are conducted to provide funding for the Libreboot project. Leah Rowe who runs Minifree, is also Libreboot's founder and lead developer. Patch -===== +----- Mate Kukri is the author of the original coreboot port. Thanks go to Kukri. Kukri's patch is here: @@ -121,16 +125,14 @@ Kukri's patch is here: This patch, at this revision (patchset 31), is what Libreboot uses for this port. -QUBES: how to get it working -------------------- +### QUBES: how to get it working Qubes requires IOMMU to be turned on. Please now read the next section. Qubes *WILL* work, if you configure Libreboot as directed below, but otherwise it will fail by default. This is because Libreboot *disables the IOMMU by default*, on this board. -Graphics cards and IOMMU --------------- +### Graphics cards and IOMMU IOMMU is buggy for some reason (we don't know why yet), when you plug in a graphics card. The graphics card simply won't work. On some of them, @@ -158,8 +160,7 @@ IOMMU, and only if vt-d is present. This is still the behaviour in Libreboot, but Libreboot adds an additional check: if `iommu` is not set in nvram, it defaults to on, but if it's set to disabled, then IOMMU is not initialised. -Enable IOMMU ------------- +### Enable IOMMU IOMMU is *disabled by default*, universally, on this board. You can turn it on, by modifying the ROM image prior to flashing, or modifying it prior to @@ -205,8 +206,7 @@ with IOMMU enabled: Make sure to configure your image accordingly. -7020 compatibility ------------------- +### 7020 compatibility 7020/9020 MT each have the same motherboard. Flash the 9020 ROM from Libreboot on your 7020, and it will work. @@ -214,8 +214,7 @@ on your 7020, and it will work. Ditto 7020/9020 SFF, it's the same motherboard. However, Libreboot provides separate targets for MT and SFF. -Build ROM image from source ---------------------------- +### Build ROM image from source For the MT variant (7020 MT and 9020 MT): @@ -229,10 +228,9 @@ It is important that you choose the right one. The MT variant is the full MTX tower. Installation -============ +------------ -Insert binary files -------------------- +### Insert binary files If you're using a release ROM, please ensure that you've inserted extra firmware required refer to the [guide](../install/ivy_has_common.md) for that. (failure @@ -242,15 +240,13 @@ Libreboot's build system automatically downloads and processes these files if you build Libreboot from source, but the same logic that it uses must be re-run if you're using a release image. -Set MAC address ---------------- +### Set MAC address This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM region. As such, release/build ROMs will contain the same MAC address. To change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). -Flash a ROM image (software) ------------------ +### Flash a ROM image (software) If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. @@ -270,8 +266,7 @@ the original Dell BIOS, remove power from the computer instead of shutting it down normally. It's recommended to use a live USB instead of the internal drive to prevent potential filesystem corruption.** -Flash a ROM image (hardware) ------------------ +### Flash a ROM image (hardware) **REMOVE all power sources and connectors from the machine, before doing this. This is to prevent short circuiting and power surges while flashing.** diff --git a/site/docs/install/devmem.md b/site/docs/install/devmem.md index 554dd3b..f6ba944 100644 --- a/site/docs/install/devmem.md +++ b/site/docs/install/devmem.md @@ -12,7 +12,7 @@ access once you no longer need it, as this is a useful security layer against any wrongful operations that you may later inadvertently run as root. Also disable SecureBoot -======================= +----------------------- If you're using a UEFI setup, it's probably because you're using a latter Intel platform and want to flash Libreboot internally, from @@ -23,7 +23,7 @@ using the factory firmware, please ensure that *SecureBoot* is disabled, because it will interfere with lower memory accesses if left enabled. FLASH ERRORS (and workarounds) -======================= +------------------------------ **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. @@ -35,8 +35,7 @@ This section relates to installing libreboot on supported targets. Right out of the gate, some users may experience errors with flashprog when using the internal programmer. They are: -/dev/mem access error ---------------------- +### /dev/mem access error NOTE: if running `flashprog -p internal` for software based flashing, and you get an error related to `/dev/mem` access, you should reboot with @@ -48,8 +47,7 @@ is `kernel.securelevel=-1`; see [NetBSD securelevel manual](https://wiki.netbsd.org/tutorials/kernel_secure_levels/) and [OpenBSD securelevel manual](https://man.openbsd.org/securelevel). -ERROR: Could not get I/O privileges ------------------------------------- +### ERROR: Could not get I/O privileges Error message: `ERROR: Could not get I/O privileges (Function not implemented)` diff --git a/site/docs/install/ga-g41m-es2l.md b/site/docs/install/ga-g41m-es2l.md index ecf1fa7..3d3e907 100644 --- a/site/docs/install/ga-g41m-es2l.md +++ b/site/docs/install/ga-g41m-es2l.md @@ -1,5 +1,5 @@ --- -title: Gigabyte GA-G41M-ES2L desktop board +title: Install Libreboot on Gigabyte GA-G41M-ES2L ...
    @@ -48,8 +48,12 @@ P*: Partially works with vendor firmware | **SeaBIOS with GRUB** | Works |
    -Introduction -============ +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +Gigabyte GA-G41M-ES2L desktop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. This is a desktop board using intel hardware (circa \~2009, ICH7 southbridge, similar performance-wise to the ThinkPad X200. It can make @@ -89,7 +93,7 @@ You can learn more about using the build system, lbmk, here:\ [libreboot build instructions](../build/) RAM -=== +--- **This board is very picky with RAM. If it doesn't boot, try an EHCI debug dongle, serial usb adapter and null modem cable, or spkmodem, to get a @@ -105,7 +109,7 @@ Many other modules will probably work just fine, but raminit is very picky on this board. Your mileage *will* fluctuate, wildly. MAC ADDRESS -=========== +----------- NOTE: due to a bug in the hardware, the MAC address is hardcoded in coreboot. Therefore, you must set your own MAC address in your @@ -116,14 +120,14 @@ distro, to set a valid MAC address. By doing this, your NIC should work nicely. Flash chip size {#flashchips} -=============== +--------------------- Use this to find out: flashprog -p internal Flashing instructions {#clip} -===================== +-------------------------- Refer to [spi.md](spi.md) for how to set up an SPI programmer for external flashing. *You can only externally reprogram one of the chips diff --git a/site/docs/install/hp2170p.md b/site/docs/install/hp2170p.md index 9a31bfa..8ff6be8 100644 --- a/site/docs/install/hp2170p.md +++ b/site/docs/install/hp2170p.md @@ -1,5 +1,5 @@ --- -title: HP EliteBook 2170p +title: Install Libreboot on HP EliteBook 2170p x-toc-enable: true ... @@ -24,10 +24,10 @@ there, before flashing. For posterity, | **Graphics** | Intel HD Graphics 4000 | | **Display** | 1366x768 11.6" TFT | | **Memory** | Two slots, max 8GB/slot (2x16GB), DDR3/sodimm | -| **Architecture** | x86_64 | +| **Architecture** | x86\_64 | | **EC** | SMSC KBC1126, proprietary (in main boot flash) | | **Original boot firmware** | HP UEFI firmware | -| **Intel ME/AMD PSP** | Present. Can be disabled with me_cleaner. | +| **Intel ME/AMD PSP** | Present. Can be disabled with me\_cleaner. | | **Flash chip** | SOIC-8 16MiB (128Mbit), in a socket | @@ -55,8 +55,13 @@ P*: Partially works with vendor firmware | **SeaBIOS** | Works | | **SeaBIOS with GRUB** | Works | -Introduction -============ + +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +HP EliteBook 2170p laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. This is a portable, 11.6" Ivy Bridge platform from HP. More information is available on the [coreboot @@ -69,38 +74,33 @@ in the latest GRUB revisions, and Libreboot's version of GRUB contains this fix. **Unavailable in Libreboot 20230625 or earlier. You must [compile from source](../build/), or use at least Libreboot 20231021.** -Build ROM image from source ---------------------------- +### Build ROM image from source The build target, when building from source, is thus: ./mk -b coreboot hp2170p_16mb -Installation -============ +Install Libreboot +----------------- -Insert binary files -------------------- +### Insert binary files If you're using a release ROM, please ensure that you've inserted extra firmware required refer to the [guide](../install/ivy_has_common.md) for that. (failure to adhere to this advice will result in a bricked machine) -Set MAC address ---------------- +### Set MAC address This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM region. As such, release/build ROMs will contain the same MAC address. To change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). -Flash a ROM image (software) ------------------ +### Flash a ROM image (software) If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. -Flash a ROM image (hardware) ------------------ +### Flash a ROM image (hardware) **REMOVE all power sources like battery, charger and so on, before doing this. This is to prevent short circuiting and power surges while flashing; although diff --git a/site/docs/install/hp2560p.md b/site/docs/install/hp2560p.md index 9d37d5b..b3c4db2 100644 --- a/site/docs/install/hp2560p.md +++ b/site/docs/install/hp2560p.md @@ -1,5 +1,5 @@ --- -title: HP EliteBook 2560p +title: Install Libreboot on HP EliteBook 2560p x-toc-enable: true ... @@ -36,16 +36,19 @@ there, before flashing. For posterity, | **SeaBIOS with GRUB** | Works | +Open source BIOS/UEFI firmware +------------------------- -Brief board info -================ +This document will teach you how to install Libreboot, on your +HP EliteBook 2560p laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. HP EliteBook 2560p is a 12.5" laptop you can read more about here: Installation of Libreboot -========================= +------------------------- Coreboot also has some information: diff --git a/site/docs/install/hp2570p.md b/site/docs/install/hp2570p.md index 2915f7b..cfef220 100644 --- a/site/docs/install/hp2570p.md +++ b/site/docs/install/hp2570p.md @@ -1,5 +1,5 @@ --- -title: HP EliteBook 2570p +title: Install Libreboot on HP EliteBook 2570p x-toc-enable: true ... @@ -36,15 +36,22 @@ HP EliteBook 2570p | **SeaBIOS with GRUB** | Works | +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +HP EliteBook 2570p laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. + Brief board info -================ +---------------- Vendor info here: Installation of Libreboot -========================= +------------------------- Coreboot also has some information: diff --git a/site/docs/install/hp8200sff.md b/site/docs/install/hp8200sff.md index 72a31f4..1fc7092 100644 --- a/site/docs/install/hp8200sff.md +++ b/site/docs/install/hp8200sff.md @@ -1,5 +1,5 @@ --- -title: HP Elite 8200 SFF/MT and 6200 Pro Business +title: Install Libreboot on HP Elite 8200 SFF/MT and 6200 Pro Business x-toc-enable: true ... @@ -23,7 +23,7 @@ there, before flashing. For posterity, | **CPU** | Intel Sandy/Ivy Bridge | | **Graphics** | Intel HD Graphics or PCI-e low profile card | | **Memory** | Up to 32GB (4x8GB) | -| **Architecture** | x86_64 | +| **Architecture** | x86\_64 | | **Intel ME/AMD PSP** | Present, neutered | | **Flash chip** | SOIC-8 8MiB | @@ -51,22 +51,17 @@ P*: Partially works with vendor firmware | **SeaBIOS with GRUB** | Works | -Disable security before flashing -================================ +Open source BIOS/UEFI firmware +------------------------------ -Before internal flashing, you must first disable `/dev/mem` protections. Make -sure to re-enable them after you're finished. - -See: [Disabling /dev/mem protection](../install/devmem.md) - -Introduction -============ +This document will teach you how to install Libreboot, on your +HP Elite 8200 SFF desktop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. Libreboot has support for this, in the Git repository and release versions from 20230423 onwards. -Brief board info ----------------- +### Brief board info HP Elite 8200 SFF is a small-form-factor desktop of Intel Sandybridge platform which you can read more about here: @@ -81,7 +76,15 @@ Here's the [Technical Reference Manual](https://web.archive.org/web/201601091432 This system supports Ivy Bridge processors too. The original BIOS won't even POST with those, but with Libreboot they work fully. -Installation of Libreboot +Disable security before flashing +-------------------------------- + +Before internal flashing, you must first disable `/dev/mem` protections. Make +sure to re-enable them after you're finished. + +See: [Disabling /dev/mem protection](../install/devmem.md) + +Install Libreboot ------------------------- You can actually just compile the Libreboot ROM for this, and flash the diff --git a/site/docs/install/hp820g2.md b/site/docs/install/hp820g2.md index e773b57..901f6ac 100644 --- a/site/docs/install/hp820g2.md +++ b/site/docs/install/hp820g2.md @@ -1,5 +1,5 @@ --- -title: HP EliteBook 820 G2 +title: Install Libreboot on HP EliteBook 820 G2 x-toc-enable: true ... @@ -61,14 +61,12 @@ P*: Partially works with vendor firmware | **SeaBIOS with GRUB** | Works | -Brief board info: +Open source BIOS/UEFI firmware +------------------------- -Full hardware specifications can be found on HP's own website: - - - -Introduction -============ +This document will teach you how to install Libreboot, on your +HP EliteBook 820 G2 laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. Please build this from source with lbmk: @@ -77,6 +75,12 @@ Please build this from source with lbmk: More information is available in the [build guide](../build/), including how to install build dependencies. +Alternatively, you can use pre-compiled release images. + +Full hardware specifications can be found on HP's own website: + + + Pre-compiled images now possible! -------------------------------- @@ -105,7 +109,7 @@ considering that you still have about 10MB of unused flash space left, at least as of the 20241206 rev8 release. HP Sure Start -============= +------------- There is a 16MB flash and a 2MB flash. Read this page for info: @@ -136,7 +140,7 @@ the Libreboot installation, because it's also important when updating Libreboot later on. Installation of Libreboot -========================= +------------------------- Make sure to set the MAC address in the flash: [Modify MAC addresses with nvmutil](../install/nvmutil.md). @@ -181,7 +185,7 @@ the [external flashing guide](../install/spi.md) so that you can learn how to actually flash it. TPM 2.0 potentially supported -============================== +----------------------------- The onboard TPM is an SLB 9660, which supports TPM 1.2 but it is known to be compatible with TPM 2.0 via firmware upgrade. Although not yet tested, we have @@ -193,7 +197,7 @@ Not yet used meaningfully by Libreboot itself, but the TPM can be used to implement things like measured boot. References -========== +---------- See: diff --git a/site/docs/install/hp8300usdt.md b/site/docs/install/hp8300usdt.md index 0f23182..d18444a 100644 --- a/site/docs/install/hp8300usdt.md +++ b/site/docs/install/hp8300usdt.md @@ -1,5 +1,5 @@ --- -title: HP Compaq Elite 8300 USDT +title: Install Libreboot HP Compaq Elite 8300 USDT x-toc-enable: true ... @@ -26,15 +26,12 @@ there, before flashing. For posterity, | **Intel ME/AMD PSP** | Present, neutered | | **Flash chip** | SOIC-16 16MiB | -Disable security before flashing -================================ +Open source BIOS/UEFI firmware +------------------------- -Before internal flashing, you must first disable `/dev/mem` protections. Make -sure to re-enable them after you're finished. - -See: [Disabling /dev/mem protection](../install/devmem.md) - -# Introduction +This document will teach you how to install Libreboot, on your +HP Elite 8300 USDT desktop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. This is a small but powerful desktop using Sandy or Ivy Bridge CPUs (of up to 65W TDP). @@ -60,9 +57,21 @@ These features are tested and confirmed working: * Wake on LAN * Rebooting -# Installation +Disable security before flashing +-------------------------------- -## Internal flashing +Before internal flashing, you must first disable `/dev/mem` protections. Make +sure to re-enable them after you're finished. + +See: [Disabling /dev/mem protection](../install/devmem.md) + +Install Libreboot +----------------- + +These next sections will teach you how to install Libreboot on your +HP Elite 8300 USDT mainboard. + +### Internal flashing Internal flashing is possible. OEM BIOS versions 2.87 and 2.90 are confirmed compatible with this guide. BIOS 2.05 is confirmed **not** to work. @@ -115,7 +124,7 @@ You can now move the jumper back to its original place. By default, Libreboot applies no write-protection, so updating it can be done without the jumper anyway. -## External flashing +### External flashing Unbricking is possible by external flashing. You first need to remove the optical disk drive and 2.5" HDD/SSD and the metal bracket that diff --git a/site/docs/install/hp8460p.md b/site/docs/install/hp8460p.md index 4e86cbd..82532c1 100644 --- a/site/docs/install/hp8460p.md +++ b/site/docs/install/hp8460p.md @@ -1,5 +1,5 @@ --- -title: HP EliteBook 8460p +title: Install Libreboot on HP EliteBook 8460p x-toc-enable: true ... @@ -56,8 +56,13 @@ P*: Partially works with vendor firmware | **SeaBIOS** | Works | | **SeaBIOS with GRUB** | Works | -Introduction -============ + +Open source BIOS/UEFI firmware +------------------------- + +These next sections will teach you how to install Libreboot, on your +HP EliteBook 8460p laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. **Unavailable in Libreboot 20231106 or earlier. You must [compile from source](../build/), or use a release newer than 20231106.** @@ -66,38 +71,35 @@ This is a beastly 14" Sandy Bridge platform from HP. **NOTE: Until otherwise stated, only the Intel GPU variant is supported in Libreboot.** -Build ROM image from source ---------------------------- +### Build ROM image from source The build target, when building from source, is thus: ./mk -b coreboot hp8460pintel_8mb -Installation -============ +Install Libreboot +----------------- -Insert binary files -------------------- +**Please take care to insert the vendor files, if using release images.** + +### Insert binary files If you're using a release ROM, please ensure that you've inserted extra firmware required refer to the [guide](../install/ivy_has_common.md) for that. (failure to adhere to this advice will result in a bricked machine) -Set MAC address ---------------- +### Set MAC address This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM region. As such, release/build ROMs will contain the same MAC address. To -change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). +change the MAC address, please read [nvmutil documentation](/nvmutil.md). -Flash a ROM image (software) ------------------ +### Flash a ROM image (software) If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. -Flash a ROM image (hardware) ------------------ +### Flash a ROM image (hardware) **REMOVE all power sources like battery, charger and so on, before doing this. This is to prevent short circuiting and power surges while flashing.** diff --git a/site/docs/install/hp8470p.md b/site/docs/install/hp8470p.md index 5cc00de..659fc72 100644 --- a/site/docs/install/hp8470p.md +++ b/site/docs/install/hp8470p.md @@ -1,5 +1,5 @@ --- -title: HP EliteBook 8470p +title: Install Libreboot on HP EliteBook 8470p x-toc-enable: true ... @@ -56,11 +56,13 @@ P*: Partially works with vendor firmware | **SeaBIOS** | Works | | **SeaBIOS with GRUB** | Works | -Introduction -============ -**Unavailable in Libreboot 20230625 or earlier. You must [compile from -source](../build/), or use at least Libreboot 20231021.** +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +HP EliteBook 8470p laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. Official information about the laptop can be found here: @@ -69,38 +71,33 @@ This is a beastly 14" Ivy Bridge platform from HP. **NOTE: Until otherwise stated, only the Intel GPU variant is supported in Libreboot.** -Build ROM image from source ---------------------------- +### Build ROM image from source The build target, when building from source, is thus: ./mk -b coreboot hp8470pintel_16mb Installation -============ +------------ -Insert binary files -------------------- +### Insert binary files If you're using a release ROM, please ensure that you've inserted extra firmware required refer to the [guide](../install/ivy_has_common.md) for that. (failure to adhere to this advice will result in a bricked machine) -Set MAC address ---------------- +### Set MAC address This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM region. As such, release/build ROMs will contain the same MAC address. To change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). -Flash a ROM image (software) ------------------ +### Flash a ROM image (software) If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. -Flash a ROM image (hardware) ------------------ +### Flash a ROM image (hardware) **REMOVE all power sources like battery, charger and so on, before doing this. This is to prevent short circuiting and power surges while flashing.** diff --git a/site/docs/install/hp8560w.md b/site/docs/install/hp8560w.md index 220ea33..69da627 100644 --- a/site/docs/install/hp8560w.md +++ b/site/docs/install/hp8560w.md @@ -1,5 +1,5 @@ --- -title: HP EliteBook 8560w +title: Install Libreboot on HP EliteBook 8560w x-toc-enable: true ... @@ -56,8 +56,13 @@ P*: Partially works with vendor firmware | **SeaBIOS** | Works | | **SeaBIOS with GRUB** | Works | -Introduction -============ + +Open source BIOS/UEFI firmware +------------------------- + +These next sections will teach you how to install Libreboot, on your +HP EliteBook 8560w laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. **Unavailable in Libreboot 20240126 or earlier. You must [compile from source](../build/), or use a release newer than 20240126.** @@ -66,8 +71,7 @@ This is a beastly 15" Sandy Bridge mobile workstation from HP. **Wi-Fi does not work. It shows correctly in lspci, but stays hard blocked.** -GPU ---- +### GPU This laptop has upgradeable GPU: it has a socketed MXM-A 3.0 card. So far, only Quadro 1000M and 2000M (which shipped with the laptop originally) have @@ -91,38 +95,33 @@ If you have an eDP panel, you should be able to use newer cards than that. As long as the card has an onboard VBIOS, Libreboot will execute it and everything *should* work. **However, this is currently untested.** -Build ROM image from source ---------------------------- +### Build ROM image from source The build target, when building from source, is thus: ./mk -b coreboot hp8560w_8mb Installation -============ +------------ -Insert binary files -------------------- +### Insert binary files If you're using a release ROM, please ensure that you've inserted extra firmware required refer to the [guide](../install/ivy_has_common.md) for that. (failure to adhere to this advice will result in a bricked machine) -Set MAC address ---------------- +### Set MAC address This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM region. As such, release/build ROMs will contain the same MAC address. To change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). -Flash a ROM image (software) ------------------ +### Flash a ROM image (software) If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. -Flash a ROM image (hardware) ------------------ +### Flash a ROM image (hardware) **REMOVE all power sources like battery, charger and so on, before doing this. This is to prevent short circuiting and power surges while flashing.** diff --git a/site/docs/install/hp9470m.md b/site/docs/install/hp9470m.md index 2266ef2..09d0023 100644 --- a/site/docs/install/hp9470m.md +++ b/site/docs/install/hp9470m.md @@ -1,5 +1,5 @@ --- -title: HP EliteBook Folio 9470m +title: Install Libreboot on HP EliteBook Folio 9470m x-toc-enable: true ... @@ -36,20 +36,27 @@ there, before flashing. For posterity, | **SeaBIOS with GRUB** | Works | -Introduction -============ +Open source BIOS/UEFI firmware +------------------------------ + +These sections will teach you how to install Libreboot, on your +HP EliteBook Folio 9470m laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. HP EliteBook Folio 9470m is a 14" ultrabook with a backlit keyboard. Libreboot has support for this, in the Git repository and release versions from Libreboot 20230423 onwards. -Installation of Libreboot -========================= +Install Libreboot +----------------- You must first compile the Libreboot ROM - ./mk -b coreboot hp9470m_16mb + ./mk -b coreboot hp9470m_16mb + +**You can also use release images, instead of compiling, but please make +sure to follow the notes below about vendorfile insertion, first!** More information about building ROM images can be found in the [build guide](../build). @@ -71,8 +78,7 @@ in the same guide linked above, or read the nvmutil manual: [Modify MAC addresses with nvmutil](../install/nvmutil.md). -Disassembly ------------ +### Disassembly Remove the battery. diff --git a/site/docs/install/ich9utils.md b/site/docs/install/ich9utils.md index 20c2625..d161955 100644 --- a/site/docs/install/ich9utils.md +++ b/site/docs/install/ich9utils.md @@ -27,7 +27,7 @@ scrapped. Anyway, ich9utils documentation: Introduction -============ +------------ The `ich9utils` utility from Libreboot is used to manipulate Intel Flash Descriptors for ICH9M on laptops such as ThinkPad X200 or T400. Specifically, @@ -75,7 +75,7 @@ More information about the ME can be found at Another project: ich9utils -========= +--------- You can find `ich9utils` on the [Git page](../../git.md) or you can download `lbmk` from the same page at an under revision (around Libreboot 20230625 or @@ -85,7 +85,7 @@ Go in there and type `make` to get the binaries: `ich9deblob`, `ich9gen` and `ich9show`. ICH9 show utility {#ich9show} -================ +--------------------------- The *ich9show* utility outputs the entire contents of the descriptor and GbE regions in a given ROM image as supplied by the user. Output is in Markdown @@ -93,7 +93,7 @@ format (Pandoc variant) so that it can be converted easily into various formats. It could even be piped *directly* into pandoc! ICH9 gen utility {#ich9gen} -================ +--------------------------- When you simply run `ich9gen` without any arguments, it generates descriptor+GbE images with a default MAC address in the GbE region. If you wish @@ -185,8 +185,7 @@ Your libreboot.rom image is now ready to be flashed on the system. Refer back to [../install/\#flashprog](../install/#flashprog) for how to flash it. -Write-protecting the flash chip -------------------------------- +### Write-protecting the flash chip The `ich9gen` utility (see below) generates two types of descriptor+GbE setup: @@ -200,7 +199,7 @@ the contents of flash). For ease of use, libreboot provides ROMs that are read-write by default. ICH9 deblob utility {#ich9deblob} -=================== +----------------------------------- This was the tool originally used to disable the ME on X200 (later adapted for other systems that use the GM45 chipset). @@ -279,7 +278,7 @@ back to [index.md/\#gm45](index.md/#gm45) for how to flash it. demefactory utility {#demefactory} -=================== +---------------------------------- This utility has never been tested, officially, but it *should* work. diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 3484e8b..18afa26 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -1,18 +1,22 @@ --- -title: Libreboot installation guides +title: Install Libreboot x-toc-enable: true ... +Open source BIOS/UEFI firmware +------------------------------ + This article will teach you how to install Libreboot, on any of the supported -laptop, desktop and server motherboards. +laptop, desktop and server motherboards of Intel/AMD x86/x86\_64 and ARM64 +platform. Libreboot replaces proprietary BIOS/UEFI firmware. **ALWAYS remember to make a backup of the current flash, when overwriting it, regardless of what firmware you currently have and what firmware you're re-flashing it with; this includes updates between Libreboot releases. Use the `-r` option in flashprog instead `-w`, to read from the flash.** -**SAFETY WARNING!** -==================================================================== +SAFETY WARNING! +--------------- **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions @@ -25,7 +29,7 @@ be added. See: [Inserting Vendor Files](ivy_has_common.md).** If you're [building from source](../build/), you can ignore the above guidance. Install Libreboot via external flashing -================= +--------------------------------------- Refer to the following article:\ [Externally rewrite 25xx NOR flash via SPI protocol](spi.md) @@ -37,7 +41,7 @@ externally or internally - if only external flashing is available, then it's usually the case that only external dumping is available too. Need help? -========== +---------- Help is available on [Libreboot IRC](../../contact.md) and other channels. @@ -50,7 +54,7 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and operates Minifree Ltd; sales provide funding for the Libreboot project. Which systems are supported by Libreboot? -======================================== +----------------------------------------- Before actually reading the installation guides, please ensure that your system is fully supported by Libreboot. More information about the Libreboot @@ -63,19 +67,16 @@ systems, you can use the U-Boot payload (coreboot still initialises hardware). Libreboot currently supports the following systems: -Games consoles --------------- +### Games consoles - [Sony Playstation](playstation.md) (PS1/PSX) -Servers (AMD, x86) ------------------- +### Servers (AMD, x86) - [ASUS KFSN4-DRE motherboard](kfsn4-dre.md) - [ASUS KGPE-D16 motherboard](kgpe-d16.md) -Desktops (AMD, Intel, x86) --------------------------- +### Desktops (AMD, Intel, x86) - [Dell OptiPlex 3050 Micro](dell3050.html) - **Also [available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-3050-micro/)** - [Dell OptiPlex 7020/9020 MT and SFF](dell9020.md) - Dell OptiPlex XE2 MT/SFF also known to work @@ -95,8 +96,7 @@ Desktops (AMD, Intel, x86) - Intel D510MO and D410PT motherboards - [Intel D945GCLF](d945gclf.md) -Laptops (Intel, x86) --------------------- +### Laptops (Intel, x86) - [Lenovo ThinkPad T480 and ThinkPad T480s](t480.html) - Also **[available to buy with Libreboot pre-installed](https://minifree.org/product/libreboot-t480/)** - Lenovo ThinkPad T440p @@ -128,19 +128,17 @@ Laptops (Intel, x86) - Lenovo Thinkpad X220 / X200 Tablet - [Lenovo Thinkpad X230 / X230 Tablet](x230_external.md) -Laptops (ARM, with U-Boot payload) ----------------------------------- +### Laptops (ARM, with U-Boot payload) - [ASUS Chromebook Flip C101 (gru-bob)](chromebooks.md) - [Samsung Chromebook Plus (v1) (gru-kevin)](chromebooks.md) -Emulation ---------- +### Emulation - [Qemu x86 and arm64](../misc/emulation.md) -**Disable security before flashing** -================================ +Disable security before flashing +-------------------------------- **Before internal flashing, you must first disable `/dev/mem` protections. Make sure to re-enable them after you're finished.** @@ -148,7 +146,7 @@ sure to re-enable them after you're finished.** **See: [Disabling /dev/mem protection](devmem.md)** ROM image file names -==================== +-------------------- Libreboot ROM images are named like this: `payload_board_inittype_displaytype_keymap.rom` @@ -178,7 +176,7 @@ executed instead, if the primary payload is SeaBIOS, whether that be pure SeaBIOS or a SeaGRUB setup. EC firmware updates -=================== +------------------- Obviously, free EC firmware would be preferable, but it is not the case on all machine. We would like to have free EC firmware on more machines, but for @@ -199,31 +197,28 @@ It is recommended that you update to the latest EC firmware version. The Updating the EC can sometimes provide benefit depending on the vendor. For example, they might fix power issues that could then enhance battery life. -ThinkPads ---------- +### ThinkPads See: Otherwise, check the Lenovo website to find the update utility for your mainboard. -HP EliteBooks -------------- +### HP EliteBooks EC firmware is required in the main boot flash, but Libreboot's build system automatically downloads this from HP for each machine, and inserts it, so you don't have to worry. Just make sure that [vendor files are inserted](ivy_has_common.md) if using release images. -Other ------ +### Other The same wisdom applies to other laptop vendors. Non-laptops typically do not have embedded controllers in them. Libreboot installation instructions -=================================== +----------------------------------- In general, if Libreboot is already running, you can skip towards the final section on this page, which provides general internal @@ -238,8 +233,7 @@ Therefore, before following generic guides, make sure to check first whether your board has special instructions, otherwise use the generic guide at the end of this article. -Intel GbE MAC address (IFD-based systems) ---------------------------------------- +### Intel GbE MAC address (IFD-based systems) On all Intel platforms except X4X (e.g. Gigabyte GA-G41M-ES2L) and i945 ones (e.g. ThinkPad X60, ThinkPad T60, MacBook2,1), an Intel Flash Descriptor is @@ -249,8 +243,7 @@ flash, and can (must) be changed prior to installation. You can use [nvmutil](nvmutil.md) to change the MAC address. You will perform this modification to the ROM image, before flashing it. -Flash lockdown / boot security -------------------- +### Flash lockdown / boot security This is referred to informally as *Secure libreBoot*. @@ -262,8 +255,7 @@ See: [GRUB hardening / Secure libreBoot](../linux/grub_hardening.md) If you already did this, it's possible that you may no longer be able to flash internally. If that is the case, you must [flash externally](spi.md). -Updating an existing installation ---------------------------------- +### Updating an existing installation Unless otherwise stated, in sections pertaining to each mainboard below, an existing Libreboot installation can be updated via internal flashing, @@ -280,30 +272,26 @@ special steps required that differ from updating an existing installation. The next sections will pertain to specific mainboards, where indicated, followed by general internal flashing instructions where applicable. -HP EliteBook 820 G2 (internal and external) -------------------- +### HP EliteBook 820 G2 (internal and external) See: [HP EliteBook 820 G2 flashing guide](hp820g2.md) The flashprog command is identical, except programmer selection, on external and internal flashing; internal is only possible if you already have Libreboot. -HP EliteBook 8560w (vendor BIOS) --------------------- +### HP EliteBook 8560w (vendor BIOS) If you have the factory firmware: [HP 8560w external flashing guide](hp8560w.md) -Dell Latitude laptops (vendor BIOS) ---------------------- +### Dell Latitude laptops (vendor BIOS) See: [Dell Latitude flashing guide](latitude.md) This applies to all supported Dell Latitude models. Remember to [update the MAC address with nvmutil](nvmutil.md), before flashing. -ThinkPad X200/T400/T500/W500/R400/R500 --------------------------------------- +### ThinkPad X200/T400/T500/W500/R400/R500 If you're running one of these with Lenovo BIOS, you must externally flash Libreboot, because the original firmware restricts writes to the flash. @@ -324,35 +312,30 @@ You can find WSON8 probes online, that are similar to a SOIC8/SOIC16 clip. Your mileage may very, but WSON8 has the same pinout as SOIC8 so you might have some luck with that. -Intel D510MO/D410PT (vendor BIOS) ------------------------ +### Intel D510MO/D410PT (vendor BIOS) See: [External flashing guide](spi.md) - both boards are compatible with the same image. -Gigabyte GA-G41M-ES2L (vendor BIOS) ---------------------- +### Gigabyte GA-G41M-ES2L (vendor BIOS) Internal flashing is possible, from factory BIOS to Libreboot, but special steps are required. See: [Gigabyte GA-G41M-ES2L installation guide](ga-g41m-es2l.md) -Acer G43T-AM3 (vendor BIOS) --------------------- +### Acer G43T-AM3 (vendor BIOS) See: [Acer G43T-AM3](acer_g43t-am3.md) -MacBook 1,1 / 2,1 / iMac 5,2 (vendor BIOS) -------------------------- +### MacBook 1,1 / 2,1 / iMac 5,2 (vendor BIOS) MacBook *1,1* requires [external flashing](spi.md). MacBook *2,1* can always be flashed internally. iMac 5,2 can be flashed internally. Also check the [Macbook2,1 hardware page](macbook21.md) -ASUS KCMA-D8 / KGPE-D16 (vendor BIOS) --------------------------- +### ASUS KCMA-D8 / KGPE-D16 (vendor BIOS) [You must flash it externally](spi.md) (DIP-8 section) - also look at the [KGPE-D16 hardware page](kgpe-d16.md). @@ -362,8 +345,7 @@ Further information is available on the [KCMA-D8 page](kcma-d8.md). KGPE-D16 installation is essentially the same, with the same type of flash IC (DIP-8). Refer to the external flashing guide. -ASUS KFSN4-DRE (vendor BIOS) -------------------------- +### ASUS KFSN4-DRE (vendor BIOS) This board uses LPC flash in a PLCC32 socket. This coreboot page shows an example of the push pin as a proof of concept: @@ -374,27 +356,23 @@ See: [ASUS KFSN4-DRE guide](kfsn4-dre.md) Hot-swap the flash IC with another one while it's running, and flash it internally. -Intel D945GCLF (vendor BIOS) ---------------------------------- +### Intel D945GCLF (vendor BIOS) See: [Intel D945GCLF flashing guide](d945gclf.md) -Dell OptiPlex 3050 Micro (vendor BIOS) ---------------------- +### Dell OptiPlex 3050 Micro (vendor BIOS) Refer to the [3050 Micro page](dell3050.md). Internal flashing also possible. This has the Intel Boot Guard, but Libreboot uses the *deguard* utility to disable the Boot Guard on this Intel 7th gen board. -Dell OptiPlex 7010/9010 SFF (vendor BIOS) ---------------------- +### Dell OptiPlex 7010/9010 SFF (vendor BIOS) Refer to the [7010/9020 SFF page](dell7010.md). Internal flashing also possible. NOTE: If you have the *MT* variant, read the sections below instead (the SFF ROM is only for SFF). -Dell OptiPlex 7010/9010 MT (vendor BIOS) ---------------------- +### Dell OptiPlex 7010/9010 MT (vendor BIOS) This board is essentially identical to the Dell Precision T1650, except that it does not support ECC memory. Same wiring. @@ -402,22 +380,19 @@ it does not support ECC memory. Same wiring. You can flash the T1650 image on this machine. NOTE: This applies to the MT variant, specifically. Do not flash T1650 images on the 7010/9010 *SFF*. -Dell Precision T1650 desktop ------------------------------------- +### Dell Precision T1650 desktop Refer to the [T1650 hardware page](t1650.md). External flashing required, or you can set the Service Mode jumper and flash internally (from vendor firmware, to Libreboot). -Dell OptiPlex 7020/9020/XE2 SFF/MT / Precision T1700 ------------------------------------- +### Dell OptiPlex 7020/9020/XE2 SFF/MT / Precision T1700 Refer to the [7020/9020 hardware page](dell9020.md). Internal flashing (from vendor firmware to Libreboot) is possible if you set the Service Mode jumper. -HP EliteBook laptops (vendor BIOS) --------------------- +### HP EliteBook laptops (vendor BIOS) Refer to the [hardware page]() for info about HP laptops, and read the [external flashing guide](spi.md). @@ -435,18 +410,15 @@ Links to specific HP laptop pages: These pages provide more info about external flashing. You must remember to [insert vendor files](ivy_has_common.md), if you're using release ROMs. -HP Elite 8200 SFF (vendor BIOS) -------------------------- +### HP Elite 8200 SFF (vendor BIOS) See: [HP Elite 8200 SFF install guide](hp8200sff.md) -HP Elite 8300 USDT (vendor BIOS) ----------------------------- +### HP Elite 8300 USDT (vendor BIOS) See: [HP Elite 8200 USDT install guide](hp8300usdt.md) -ThinkPad X220/X220T/T420/T420s/T520 ------------------------------------ +### ThinkPad X220/X220T/T420/T420s/T520 T420/T520: [T420 flash instructions](t420_external.md) @@ -460,8 +432,7 @@ internally; you must use [an external flasher](spi.md). Otherwise, look at [X230 disassembly](x230_external.md). Note that the X220 has a single 8MB flash, instead of 8MB and 4MB. -ThinkPad X230/T430/T530/W530/X230T ----------------------------------- +### ThinkPad X230/T430/T530/W530/X230T Internal flashing from vendor BIOS to Libreboot is possible, but not recommended. See: [IvyBridge ThinkPad internal flashing](ivy_internal.md). @@ -471,8 +442,7 @@ See: [ThinkPad X230 install guide](x230_external.md). Otherwise, refer to [external SPI flashing](spi.md). -ThinkPad T60/X60/X60Tablet/X60S -------------------------------- +### ThinkPad T60/X60/X60Tablet/X60S Only the Intel GPU is compatible. Do not flash the ATI GPU models. @@ -565,23 +535,20 @@ bootblock, set bucts back to zero: The second flash can be done by simply following the general internal flashing guide further down on this page. -ThinkPad T480/T480S (vendor BIOS) ----------------------- +### ThinkPad T480/T480S (vendor BIOS) See: * [ThinkPad T480/T480S](t480.md) -Thinkpad T440p/W541 (vendor BIOS) ---------------------- +### Thinkpad T440p/W541 (vendor BIOS) Guides: * [ThinkPad T440p flashing guide](t440p_external.md) * [ThinkPad W541 flashing guide](w541_external.md) -HP EliteBook laptops (vendor BIOS) -------------------------- +### HP EliteBook laptops (vendor BIOS) Each machine has it's own guide: @@ -594,16 +561,14 @@ Each machine has it's own guide: * [HP EliteBook 8560w](hp8560w.md) * [HP EliteBook Folio 9470m](hp9470m.md) -HP Elite desktops (vendor BIOS) -------------------------- +### HP Elite desktops (vendor BIOS) Each machine has it's own guide: * [HP Elite 8200 SFF/MT](hp8200sff.md) (HP 6200 Pro Business probably works too) * [HP Elite 8300 USDT](hp8300usdt.md) -ARM-based Chromebooks ---------------------- +### ARM-based Chromebooks See: [Chromebook flashing instructions](chromebooks.md) @@ -612,8 +577,7 @@ the x86 machines, because the Chromebooks still use flashrom with the `-p host` argument instead of `-p internal` when flashing, and you typically need to flash externally, due to Google's security model. -QEMU (arm64 and x86) --------------------- +### QEMU (arm64 and x86) Libreboot can be used on QEMU (virtual machine), which is useful for debugging payloads and generally trying out Libreboot, without requiring real hardware. @@ -621,7 +585,7 @@ payloads and generally trying out Libreboot, without requiring real hardware. See: [Libreboot QEMU guide](../misc/emulation.md) Install via host CPU (internal flashing) -======================================== +---------------------------------------- NOTE: This mainly applies to the x86 machines. @@ -635,14 +599,13 @@ directly. Internal flashing is often unavailable with the factory firmware, but it is usually possible when Libreboot is running (barring special circumstances). -Run flashprog on host CPU ------------------------- +### Run flashprog on host CPU **Always remember to [insert vendor files](ivy_has_common.md), when using release images. Otherwise, these files are added automatically at build time, when building from source (but they are not present in release images).** -### Flash chip size +#### Flash chip size Use this to find out: @@ -650,7 +613,7 @@ Use this to find out: In the output will be information pertaining to your boot flash. -### Howto: read/write/erase the boot flash +#### Howto: read/write/erase the boot flash How to read the current chip contents: @@ -664,7 +627,7 @@ How to erase and rewrite the chip contents: sudo flashprog -p internal:laptop=force_I_want_a_brick,boardmismatch=force -w libreboot.rom NOTE: `force_I_want_a_brick` is not scary. Do not be scared! This merely disables -the safety checks in flashprog. Flashrom and coreboot change a lot, over the years, +the safety checks in flashprog. Flashprog and coreboot change a lot, over the years, and sometimes it's necessary to use this option. If you're scared, then just follow the above instructions, but remove that option. So, just use `-p internal`. If that doesn't work, next try `-p internal:boardmismatch=force`. If that doesn't @@ -680,7 +643,7 @@ NOTE: there are exceptions where the above is not possible. Read about them in the sections below: Removed boards -============== +-------------- These boards were in Libreboot, but have been removed with the intention of re-adding them at a later date. They were removed due to issues. List: @@ -697,8 +660,7 @@ re-adding them at a later date. They were removed due to issues. List: - [Samsung Chromebook XE303 (daisy-snow)](chromebooks.md) - Lenovo ThinkPad X301 (still in lbmk, but with `release="n"`) -NOTES about removed boards --------------------------- +### NOTES about removed boards **WARNING: veyron speedy boards (e.g. C201) have non-functional video init as of 19 February 2023, and no fix is yet available on that date. See: @@ -717,7 +679,7 @@ for now, and have been deleted from the Libreboot 20221214 and 20230319 releases. - see: and ** -d945gclf: Doesn't boot at all, according to last report. D510MO is still in +D945GCLF: Doesn't boot at all, according to last report. D510MO is still in lbmk but still was reported problematic; other boards should be fine (see list above). diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 3541e0e..5ddc40b 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -3,6 +3,16 @@ title: Insert vendor files not included in release images x-toc-enable: true ... +Open source BIOS/UEFI firmware +------------------------------ + +Libreboot replaces proprietary BIOS/UEFI firmware, but some newer boards still +occasionally need code from the hardware manufacturer in order to boot properly. +This document will teach you how to handle such a scenario, and how to check +for it. For more context, please read Libreboot's [Binary Blob Reduction +Policy](../../news/policy.md) and [Freedom Status](../../freedom-status.md) +pages. + **PLEASE MAKE SURE you read and follow the instructions on this page, prior to flashing Libreboot, if required for your mainboard; failure to heed this warning can and will result in a soft-brick, which would then necessitate @@ -15,7 +25,7 @@ guide to change the GbE MAC address in the flash, if your board has an Intel Gigabit Ethernet device (where an Intel Flash Descriptor is used). WARNING: eCryptfs file name limits -================================= +---------------------------------- Do not run the build system on a eCryptfs file system, because it has very short file name limits and Libreboot's build system deals with very @@ -23,8 +33,8 @@ long file names. We commonly get reports from this by Linux Mint users who encrypt their home directory with eCryptfs; regular LUKS encryption will do nicely. -**Install build dependencies first** -================================ +Install build dependencies first +------------------------------------ **You will be compiling several small utilities from source code. This means you need the compilers and various libraries.** @@ -37,7 +47,7 @@ working. The insertion must work correctly, prior to Libreboot installation, if your board requires it, otherwise your board simply will not boot.** Introduction -============ +------------ On *some* boards, but certainly not all of them, certain files are required from the hardware vendor. Libreboot has strict [rules](../../news/policy.md) @@ -55,8 +65,7 @@ the [Freedom Status](../../freedom-status.md) page. **If in doubt, you should simply follow these instructions. If your board doesn't need vendor files, the tar archive won't be modified.** -MAC address ------------ +### MAC address Regardless of whether your board needs vendorfiles or not, you can also use this command to change the MAC address on systems with Intel GbE regions in @@ -65,8 +74,7 @@ the flash, where an Intel gigabit ethernet device is used. For example, a Lenovo ThinkPad X200 doesn't need any files added, but can still have the mac address changed; please continue reading! -Injecting vendor files into tarballs ------------------------------------- +### Injecting vendor files into tarballs In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image. @@ -131,8 +139,7 @@ Older versions left the tarball unmodified, and extracted the modified images to `bin/release/` - on current behaviour, you inject the tarball and then extract the tarball yourself afterward, to flash the modified images. -Behaviour changes in Libreboot 20241206 rev8 --------------------------------------------- +### Behaviour changes in Libreboot 20241206 rev8 *Older* versions of this script would have produced the injected images under the `bin/release/` directory, and/or allow you to do it on specific ROM images. @@ -201,10 +208,9 @@ for Libreboot to retroactively modify the official images in this way, since using the older tarballs. Check that the files were inserted -================================== +---------------------------------- -Automatic verification ----------------------- +### Automatic verification You *must* ensure that the files were inserted. The inject command automatically verifies checksums of the complete images, when you run it directly on a @@ -215,8 +221,7 @@ be modified. If you're using newer release images with `DO_NOT_FLASH` and the one-byte padding (as described above), that's a good indicator, but older release images didn't have this modification. -Manual inspection ------------------ +### Manual inspection You could check the files manually, if you're paranoid, after insertion. @@ -266,7 +271,7 @@ uses MEv11 with Intel Boot Guard, the boot guard is automatically disabled by processing the MEv11 image with Mate Kukri's [deguard](deguard.md) utility. Errata -====== +------ This section should not concern you, if you're using newer Libreboot releases. This section largely concerns *bugs* which existed in older releases, pertaining diff --git a/site/docs/install/ivy_internal.md b/site/docs/install/ivy_internal.md index 7adb989..d782e77 100644 --- a/site/docs/install/ivy_internal.md +++ b/site/docs/install/ivy_internal.md @@ -3,13 +3,23 @@ title: Ivybridge internal flashing x-toc-enable: true ... +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +Lenovo ThinkPad X230 laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. + +This document demonstrates an *internal flashing* method, by exploiting a +little-known security vulnerability in Lenovo's original UEFI firmware. + **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](ivy_has_common.md).** Ch1p's guide -============ +------------ This page tells you how to flash an ivybridge ThinkPad with Libreboot, internally, when it has the Lenovo firmware on it. It was written independently @@ -36,9 +46,6 @@ coreboot patch: Anyway, follow ch1p's guide or this one. Ch1p was on Libreboot IRC and linked the above guide, so it has been added here to honour him. -Introduction -============ - External flashing still recommended ----------------------------------- @@ -58,7 +65,7 @@ or just a dead ThinkPad. Proceed at your own risk! If you prefer external flashing, see: [external flashing](x230_external.md) Internal flashing from vendor firmware (ThinkPads only) ----------------------------------------- +------------------------------------------------------- IVYBRIDGE ONLY: diff --git a/site/docs/install/kcma-d8.md b/site/docs/install/kcma-d8.md index 960eb2a..f3952ab 100644 --- a/site/docs/install/kcma-d8.md +++ b/site/docs/install/kcma-d8.md @@ -1,12 +1,16 @@ --- -title: ASUS KCMA-D8 desktop/workstation board +title: Install Libreboot on ASUS KCMA-D8 x-toc-enable: true ... TODO: this page is OLD. check that the info is still valid. -Introduction -============ +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +ASUS KCMA-D8 server/workstation motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. Specifications available here: @@ -36,7 +40,7 @@ If you currently have the ASUS firmware, please ignore the above link and instead refer to the section below: Flashing -======== +-------- The default ASUS firmware write-protects the flash, so you have to remove the chip and re-flash it using external hardware. @@ -56,7 +60,7 @@ Refer to the following guide:\ [Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md) PCI option ROMs -=============== +--------------- Unlike Libreboot 20160907, Libreboot in newer releases now supports finding and loading PCI option ROMs automatically, both in GRUB and SeaBIOS on this machine. @@ -66,21 +70,21 @@ So for example, if you wish to use an add-on graphics card, you can! It's no problem, and should work just fine. CPU coolers -=========== +----------- With some creativity, standard AM3+ coolers will work fine. 2 x Socket C32 (LGA1207) available, so you can use 2 CPUs. (up to 32GiB per CPU) CPU compatibility -================= +----------------- - Opteron 4100 series: Incompatible - Opteron 4200 series: Compatible - Opteron 4300 series: Compatible Board status (compatibility) {#boardstatus} -============================ +------------------------------------- There are two ways to identify a supported KCMA-D8 board: @@ -99,14 +103,14 @@ For more detailed information regarding the coreboot port, see Form factor {#formfactor} -=========== +----------------------- This board is ATX form factor. While the [ATX standard, version 2.2](https://web.archive.org/web/20120725150314/http://www.formfactors.org/developer/specs/atx2_2.pdf) specifies board dimensions 305mm x 244mm, this board measures 305mm x 253mm; please ensure that your case supports this extra ~cm in width. IPMI iKVM module add-on {#ipmi} -======================= +---------------------------- Don't use it. It uses proprietary firmware and adds a backdoor (remote out-of-band management chip, similar to the [Intel Management @@ -116,7 +120,7 @@ mainboard since it's on the add-on module, which you don't have to install. Flash chips {#flashchips} -=========== +----------------------- 2MiB flash chips are included by default, on these boards. It's on a P-DIP 8 slot (SPI chip). The flash chip can be upgraded to higher sizes: @@ -133,7 +137,7 @@ Ideally, you should not hot-swap. Only remove the IC when the system is powered down and disconnected from mains. Native graphics initialization {#graphics} -============================== +----------------------------------------- Only text-mode is known to work, but linux(kernel) can initialize the framebuffer display (if it has KMS - kernel mode setting). @@ -147,7 +151,7 @@ because the Nouveau driver can't increase the GPU clock (it doesn't know how, as of 18 March 2021). Current issues {#issues} -============== +---------------------- - Opteron 4100 series CPUs are currently incompatible - LRDIMM memory modules are currently incompatible diff --git a/site/docs/install/kfsn4-dre.md b/site/docs/install/kfsn4-dre.md index f8b61c5..31fa80c 100644 --- a/site/docs/install/kfsn4-dre.md +++ b/site/docs/install/kfsn4-dre.md @@ -1,5 +1,5 @@ --- -title: ASUS KFSN4-DRE server/workstation board +title: Install Libreboot on ASUS KFSN4-DRE x-toc-enable: true ... @@ -48,6 +48,13 @@ P*: Partially works with vendor firmware | **SeaBIOS with GRUB** | Partially works | +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +ASUS KFSN4-DRE server/workstation motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. + This is a server board using AMD hardware (Fam10h). It can also be used for building a high-powered workstation. Powered by libreboot. @@ -60,14 +67,14 @@ The reason why was explained, in the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** Form factor {#formfactor} -=========== +--------------------- These boards use the SSI EEB 3.61 form factor; make sure that your case supports this. This form factor is similar to E-ATX in that the size is identical, but the position of the screws are different. Flash chips {#flashchips} -=========== +----------------------- These boards use LPC flash (not SPI), in a PLCC socket. The default flash size 1MiB (8Mbits), and can be upgraded to 2MiB (16Mbits). @@ -80,18 +87,18 @@ extractor. These can be found online. See * Native graphics initialization {#graphics} -============================== +--------------------------------------- Native graphics initialization exists (XGI Z9s) for this board. Framebuffer- and text-mode both work. A serial port is also available. Memory -====== +------- DDR2 533/667 Registered ECC. 16 slots. Total capacity up to 64GiB. Hex-core CPUs {#hexcore} -============= +--------------------- PCB revision 1.05G is the latest version of this board and the best one (the revision number is be printed on the board), if you want to use @@ -105,7 +112,8 @@ To be sure your board supports a CPU check the official ASUS website here: If you are running a Hex-Core CPU on any board version, please contact us. Board configurations {#configurations} -============== +---------------------------------------- + There are 7 different configurations of this board: "standard", 2S, iKVM, iKVM/IST, SAS, SAS/iKVM and SAS/iKVM/IST. @@ -124,7 +132,7 @@ The IST versions with PCB revision 1.05G are the ones who are believed to support the six core Opteron Istanbul processors (2400 and 8400 series). Current issues {#issues} -============== +----------------------- - There seems to be a 30 second bootblock delay (observed by tpearson); the system otherwise boots and works as expected. See @@ -151,7 +159,7 @@ Current issues {#issues} the USB booting doesn't work. Other information -================= +------------------ [specifications](https://web.archive.org/web/20181212180051/http://ftp.tekwind.co.jp/pub/asustw/mb/Socket%20F/KFSN4-DRE/Manual/e3335_kfsn4-dre.pdf) diff --git a/site/docs/install/kgpe-d16.md b/site/docs/install/kgpe-d16.md index e6bc293..51ae60e 100644 --- a/site/docs/install/kgpe-d16.md +++ b/site/docs/install/kgpe-d16.md @@ -3,10 +3,17 @@ title: ASUS KGPE-D16 server/workstation board x-toc-enable: true ... +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +ASUS KGPE-D16 server/workstation motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. + TODO: OLD page. TODO: check that all the info is still valid. -Introduction -============ +Free your BIOS today! +--------------------- This is a server board using AMD hardware (Fam10h *and Fam15h* CPUs available). It can also be used for building a high-powered workstation. @@ -26,24 +33,24 @@ possible to re-flash using software running in Linux on the KGPE-D16, without using external hardware. CPU compatibility -================= +----------------- Opteron 62xx and 63xx CPUs work just fine. Board status (compatibility) {#boardstatus} -============================ +--------------------- See . Form factor {#formfactor} -=========== +---------------------- These boards use the SSI EEB 3.61 form factor; make sure that your case supports this. This form factor is similar to E-ATX in that the size is identical, but the position of the screws are different. IPMI iKVM module add-on {#ipmi} -======================= +-------------------------- Don't use it. It uses proprietary firmware and adds a backdoor (remote out-of-band management chip, similar to the [Intel Management @@ -53,7 +60,7 @@ mainboard since it's on the add-on module, which you don't have to install. Flash chips {#flashchips} -=========== +-------------------------- 2MiB flash chips are included by default, on these boards. It's on a P-DIP 8 slot (SPI chip). The flash chip can be upgraded to higher sizes: @@ -72,13 +79,13 @@ This guide shows how to flash the chip:\ [25xx NOR flashing guide](../install/spi.md) Native graphics initialization {#graphics} -============================== +---------------------------------- Only text-mode is known to work, but linux(kernel) can initialize the framebuffer display (if it has KMS - kernel mode setting). Current issues {#issues} -============== +---------------------------------- - LRDIMM memory modules are currently incompatible (IT MAY WORK NOWADAYS, TODO TEST) diff --git a/site/docs/install/latitude.md b/site/docs/install/latitude.md index e16fc9a..10d72b1 100644 --- a/site/docs/install/latitude.md +++ b/site/docs/install/latitude.md @@ -1,14 +1,27 @@ --- -title: Flashing Libreboot on Dell Latitude laptops +title: Install Libreboot on Dell Latitude laptops x-toc-enable: true ... +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on various models of +Dell Latitude laptop motherboard, namely Dell Latitude E4300, E6400, E6400 XFR, +E6400 ATG, E5420, E5520, E5530, E6420, E6430, E6520, E6530, E6230, E6330 +and E6220; you must only install Libreboot on models with *Intel graphics*. +Libreboot replaces proprietary BIOS/UEFI firmware. + +In case any models are unlisted in the above paragraph, you should also check +the full list of supported Dell Latitude models on the [Libreboot hardware +compatibility](./#which-systems-are-supported-by-libreboot) page. + All of the Dell Latitude models can be flashed internally, which means that you do not need to disassemble them. You can do it from Linux/BSD, using the instructions on this page. Disable security before flashing -================================ +-------------------------------- **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions @@ -24,13 +37,13 @@ Note that Libreboot does not currently implement UEFI on x86 platforms, but you can set up [Secure libreBoot](../linux/grub_hardening.md) after flashing. MAC address -=========== +----------- Make sure to set your own MAC address in the ROM image before flashing. Please read the [nvmutil manual](nvmutil.md) which says how to do this. Thermal safety -============== +-------------- **Thermal safety**: this machine shuts down very quickly, when the machine exceeds 80c CPU temperature, which is far more conservative than on most @@ -39,18 +52,16 @@ excellent. More info available [here](../install/dell_thermal.md). This is a known bug, but otherwise the machine will be mostly stable. Machine-specific notes -====================== +---------------------- -Latitude E6400 --------------- +### Latitude E6400 Vendor files not required for Dell Latitude E6400 if you have the Intel GPU. If you have the Nvidia model, please use the `e6400nvidia_4mb` target, and make sure to run the [inject script](ivy_has_common.md) prior to flashing. -E6400 nvidia issues -------------------- +### E6400 nvidia issues See: @@ -59,8 +70,7 @@ The `nv` drivers on BSD systems generally work, but can have severe performance issues; use of a tiling window manager is recommended, on BSD systems, because moving windows around can literally lag a lot otherwise, on most window managers. -dGPU variants -------------- +### dGPU variants On everything except E6400, Libreboot only supports the variant with an Intel GPU. Therefore, you must *only* purchase a Dell Latitude that has the Intel @@ -68,7 +78,7 @@ graphics; even on E6400, this is good advice, due to issues with the Nvidia GPU on E6400, documented later in this guide. Internal flashing -================= +----------------- You can simply boot Linux/BSD, on the Dell Latitude you wish to flash, and run `flashprog` from there, for Libreboot installation. Certain other steps @@ -130,12 +140,11 @@ successful. If you don't see that, or you're unsure, please [contact the Libreboot project via IRC](../../contact.md). External flashing -================= +----------------- -General guidance ----------------- +### General guidance -Machine-specific disassembly instructions not provided, but you can find +Machine-specific disassembly instructions are not provided, but you can find the hardware maintenance manual for your Latitude module online. Just search for it. The flash chips(s) is/are usually under the keyboard/palmrest. Near to the PCH/southbridge. @@ -153,10 +162,9 @@ Please read the [external SPI flash guide](spi.md) External flashing is usually not required, on these machines. -Chip size guidance ------------------- +### Chip size guidance -SOme Dell Latitudes use a single flash chip, so you can +Some Dell Latitudes use a single flash chip, so you can just use the ROM images as-is. If there are two flash chips, you must split the ROM images. Check the silk diff --git a/site/docs/install/mac_address.md b/site/docs/install/mac_address.md index 8d8cbc9..8c857f5 100644 --- a/site/docs/install/mac_address.md +++ b/site/docs/install/mac_address.md @@ -4,7 +4,7 @@ x-toc-enable: true ... Introduction (GM45+e1000) -========================= +------------------------- This section is applicable to all libreboot-supported laptops with the mobile 4 series chipset (as shown in `$ lspci`) @@ -17,15 +17,11 @@ for the built-in gigabit ethernet controller is stored inside the flash chip, along with libreboot and other configuration data. Therefore, installing libreboot will overwrite it. -Thus, for these laptops, prebuilt libreboot already contains a generic -MAC address in the configuration section. This address is `00:f5:f0:40:71:fe -in builds before 2018-01-16 and `00:4c:69:62:72:65` (see the ascii character -set) afterwards. +Thus, for these laptops, prebuilt libreboot images already contain a generic +MAC address in the GbE region. Unless you change it, your computer will boot and use it. This can lead to network problems if you have more than one libreboot computer on -the same layer2 network (e.g. on the same network switch). The switch -(postman) will simply not know who to deliver to as the MAC (house) addresses -will be the same. +the same layer2 network (e.g. on the same network switch). To prevent these address clashes, you can either modify prebuilt libreboot to use an address of your own choosing or you can change the address in your @@ -35,7 +31,7 @@ In either case, it is a good idea to write down the address that your computer originally had. Obtaining the existing MAC address -================================== +---------------------------------- The existing MAC address may be obtained by the following methods: @@ -65,7 +61,7 @@ The existing MAC address may be obtained by the following methods: updated. Changing the MAC address in the operating system -================================================ +------------------------------------------------ There are three portable ways of doing so: @@ -91,7 +87,7 @@ configuration. Refer to your operating system's documentation for how to do this. Changing the MAC address on X200/T400/T500/W500 -=============================================== +----------------------------------------------- On GM45 laptops with ICH9M southbridge and Intel PHY module, the MAC address is hardcoded in boot flash, which means it can be changed if you re-flash. @@ -102,7 +98,7 @@ If *all* you want to do is change the MAC address, you might try `nvmutil` instead. See notes below: Changing the MAC address on ivybridge/sandybridge/haswell (e.g. X230/T440p) -========================================================= +----------------------------------------------------------------- See [nvmutil documentation](../install/nvmutil.md) @@ -122,4 +118,4 @@ which the build system automatically fetches from the internet). You can use `nvmutil` to change the existing MAC address in a GbE region. This sets the "hardcoded" MAC address, typically a globally assigned one set by -the vendor. +the vendor, but you can use local addresses, and you can use randomised MACs. diff --git a/site/docs/install/macbook21.md b/site/docs/install/macbook21.md index 52e2cac..bde8002 100644 --- a/site/docs/install/macbook21.md +++ b/site/docs/install/macbook21.md @@ -1,5 +1,5 @@ --- -title: MacBook2,1 and MacBook1,1 +title: Install Libreboot on MacBook2,1 and MacBook1,1 x-toc-enable: true ... @@ -20,7 +20,7 @@ x-toc-enable: true | **Graphics** | Intel GMA 950 | | **Display** | 1280x800 TFT | | **Memory** | 512MB, 1GB (upgradable to 4GB with 3GB usable) | -| **Architecture** | x86_64 | +| **Architecture** | x86\_64 | | **EC** | Proprietary | | **Original boot firmware** | Apple EFI | | **Intel ME/AMD PSP** | Not present. | @@ -50,6 +50,14 @@ P*: Partially works with vendor firmware | **SeaBIOS** | Works | | **SeaBIOS with GRUB** | Works | + +Open source BIOS/UEFI firmware +------------------------- + +This document will teach you how to install Libreboot, on your +Apple MacBook 2,1 2005-2007 laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. + The MacBook1,1 and MacBook2,1 are very similar to the ThinkPad X60. It shares some hardware with the X60 such as the chipset. @@ -63,15 +71,14 @@ uses Core Duo processors (supports 32-bit OS but not 64-bit), and it is believed that this is the only difference. Compatibility -============= +------------- The following pages list many models of MacBook1,1 and MacBook2,1: * * -Models ------- +### Models Specifically (Order No. / Model No. / CPU) for the MacBook1,1: @@ -99,7 +106,7 @@ then don't forget to [send a patch](../../git.md), confirming that it actually works! Internal flashing -================= +----------------- MacBook2,1 can always be flashed internally, even if running Apple firmware: @@ -114,7 +121,7 @@ The MacBook1,1 can't be flashed internally if running the Apple EFI firmware. You must flash externally. External flashing -================= +----------------- MacBook1,1 requires external flashing, if running the default Apple firmware. MacBook2,1 can be flashed internally, regardless. @@ -134,7 +141,7 @@ Refer to the following guide:\ [Externally rewrite 25xx NOR flash via SPI protocol](../install/spi.md) OSes using Linux on Apple EFI firmware -====================================== +-------------------------------------- You have 2 choices for booting up OSes using Linux as their kernel on the MacBook: @@ -143,8 +150,7 @@ on the MacBook: * Boot via a CD or DVD. -Boot via a CD or DVD --------------------- +### Boot via a CD or DVD The Apple EFI firmware contains a PC BIOS emulation layer for booting Microsoft Windows on CDs and DVDs. That emulation layer **only** works @@ -174,8 +180,7 @@ should boot up properly automatically. to it using GRUB, despite the fact that it does sometimes show up. You also won't be able to boot it up when using Libreboot.* -Boot via USB ------------- +### Boot via USB This method is harder than booting from a CD/DVD and may soft-brick your MacBook but it's the only way to boot up successfully from a USB. @@ -213,14 +218,14 @@ the CMOS/PRAM battery, wait a few minutes, and put it back in. to reconfigure GRUB2 correctly, else your system won't boot.* Coreboot wiki page -================== +------------------ The following page has some information: * Issues and solutions/workarounds -================================ +-------------------------------- There is one mouse button only, however multiple finger tapping works. The Apple logo on the @@ -231,8 +236,7 @@ should [cover it up](http://cweiske.de/tagebuch/tuxbook.htm). software. Webcams are a privacy and security risk; cover it up! Or remove it.* -Make it overheat less ---------------------- +### Make it overheat less NOTE: on newer libreboot revisions, this section is less relevant, because C3 states are supported now. However, this section may still be useful, so it will @@ -272,8 +276,7 @@ PLATFORM_PROFILE_ON_BAT=low-power The MacBook will still overheat, just less. -Enable AltGr ------------- +### Enable AltGr The keyboard has a keypad enter instead of an AltGr. The first key on the right side of the spacebar is the Apple "command" key. On its @@ -297,12 +300,11 @@ line: to the file /etc/vconsole.conf and then restart the computer. -Make touchpad more responsive ------------------------------ +### Make touchpad more responsive Linux kernels of version 3.15 or lower might make the touchpad extremely sluggish. A user reported that they could get better -response from the touchpad with the following in their xorg.conf: +response from the touchpad with the following in their `xorg.conf`: ``` Section "InputClass" diff --git a/site/docs/install/nvmutil.md b/site/docs/install/nvmutil.md index 5f5b876..f131dfa 100644 --- a/site/docs/install/nvmutil.md +++ b/site/docs/install/nvmutil.md @@ -1,10 +1,11 @@ --- -title: nvmutil manual +title: nvmutil usage instructions x-toc-enable: true ... With this software, you can change the MAC address inside GbE regions -on any system that uses an Intel Flash Descriptor. +on any system that uses an Intel Flash Descriptor. This software works well +on most/all of the major Linux or BSD operating systems. This is the reference documentation for `nvmutil`, but an automated script using nvmutil is available for ivy/sandybridge and haswell hardware, when @@ -15,37 +16,26 @@ inserting vendor files, which you can use to change the MAC address. See: You can use the documentation below, if you wish to use `nvmutil` manually. Continue reading... -Introduction -============ +Change the Intel GbE MAC address +-------------------------------- -This is the manual for `nvmutil`, included in the Libreboot, -build system (lbmk) under `util/nvmutil/`. This program lets you modify -the MAC address, correct/verify/invalidate checksums, -swap/copy and dump regions on Intel PHY NVM images, -which are small binary configuration files that go -in flash, for Gigabit (ethernet) Intel NICs. +This is the manual for `nvmutil`, included within the [Libreboot build +system](../maintain/) (lbmk) under `util/nvmutil/`. This program lets you modify +the MAC address, correct/verify/invalidate checksums, swap/copy and dump regions +on Intel PHY NVM images, which are small binary configuration files that go in +flash, for Gigabit (ethernet) Intel NICs. **Please [install build dependencies](../build/) before you do this.** -This software is largely targeted at coreboot users, -but it can be used on most modern Intel systems, or -most systems from about 2008/2009 onwards. +This software is largely targeted at coreboot users, but it can be used on most +modern Intel systems, or most systems from about 2008/2009 onwards, regardless +of which boot firmware they have. -NOTE: Libreboot X200/X200T/X200S/T400/T400S/T500/W500/R400 -users should know that this software does *not* -replace `ich9gen`, because that program generates entire -ICH9M IFD+GbE regions, in addition to letting you set the -MAC address. *This* program, `nvmutil`, can *also* set -the MAC address on those machines, but it operates on a -single GbE dump that is already created. - -This program is operated on dumps of the GbE NVM image, -which normally goes in the boot flash (alongside BIOS/UEFI -or coreboot, IFD and other regions in the flash). The first -half of this README is dedicated to precisely this, telling -you how to dump or otherwise acquire that file; the second -half of this README then tells you how to operate on it, -using `nvmutil`. +This program is operated on dumps of the GbE NVM image, which normally goes in +the boot flash (alongside BIOS/UEFI or coreboot, IFD and other regions in +the flash). The first half of this README is dedicated to precisely this, +telling you how to dump or otherwise acquire that file; the second half of this +README then tells you how to operate on it, using `nvmutil`. Automatic MAC address changer ----------------------------- @@ -73,14 +63,20 @@ is provided without argument, or no argument is given, the MAC address is randomised. Otherwise, you can specify an arbitrary address. The `?` character is random, and you can specify that any of them be random, -while setting others (or all of them) arbitrarily. +while setting others (or all of them) arbitrarily. On the corresponding nibble, +the bit for unicast/multicast and global/local are set accordingly, so that +randomly generated addresses are *always* unicast and *local*, unless the +corresponding nibble is set arbitrarily; if the latter, then an error is thrown +if the arbitrary nibble corresponds to a multicast MAC address (and when errors +are thrown, the file shall remain unchanged). More information about error +handling is provided, later in this document. The `restore` option restores the original one. The command works by using a reference GbE image file present in Libreboot's build system, for the given mainboard. How to download newer versions -============================== +------------------------------ Simply pull down the latest changes in `lbmk.git`. The `nvmutil` software is now part of lbmk, since 17 November 2022. @@ -90,7 +86,7 @@ More info about git: * Context -======= +------- On many Intel systems with an IFD (Intel Flash Descriptor), the Intel PHY (Gigabit Ethernet) stores its configuration, binary @@ -121,8 +117,7 @@ This 4KB region is then repeated, to make an 8KB region in flash, known as the *GbE region*. In `nvmutil`, the first part is referred to as *part 0* and the second part as *part 1*. -Known compatible PHYs ---------------------- +### Known compatible PHYs TODO: write a full list her ofe what actual PHYs are known to work. @@ -135,7 +130,7 @@ files; it is assumed that intel would later change the file size and/or checksum value and/or checksum location. How to obtain the GbE file -========================== +-------------------------- The chip containing your BIOS/UEFI firmware (or coreboot) has it, if you have an Intel PHY for gigabit ethernet. @@ -145,8 +140,7 @@ containing your NIC's configuration. This is the part that many people will struggle with, so we will dedicated an entire next section to it: -Use flashprog ------------- +### Use flashprog **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. @@ -197,8 +191,7 @@ option should be changed accordingly. Read flashprog documentation, and make sure you have everything properly configured. -Use ifdtool ------------ +### Use ifdtool NOTE: This has only been tested on systems that use IFDv1 (Intel Flash Descriptor, version 1). This distinction, between @@ -311,7 +304,7 @@ SPI1. You should adjust the above parameters, according to your configuration. How to compile source code -========================== +-------------------------- The nvmutil source code is located under `util/nvmutil/` in the lbmk repository. A makefile is included there, for you to build an @@ -336,8 +329,7 @@ The `nvmutil` software has been build-tested on `Clang`, `GCC` and `tcc`. Only standard library functions (plus `err.h`) are used, so you don't need any extra libraries. -How to compile it ------------------ +### How to compile nvmutil First, ensure that the current working directory is your copy of the nvmutil source code! @@ -353,7 +345,7 @@ whatever is in your `$PATH` for userspace programs). TODO: Add `make install` to the Makefile, portably. How to use nvmutil -================== +------------------ You run it, passing as argument the path to a file, and you run commands on that file. This section will tell you how to @@ -365,8 +357,7 @@ done that, you could still run it in cwd for instance: ./nvm bla bla bla -Exit status ------------ +### Exit status The `nvmutil` program uses `errno` extensively. The best error handling is done this way, the Unix way. Error handling is extremely @@ -392,8 +383,7 @@ of size *8KB*. Additional rules regarding exit status shall apply, depending on what command you use. Commands are documented in the following sections: -Change MAC address ------------------- +### Change MAC address The `nvm` program lets you change the MAC address. It sets a valid checksum, after changing the MAC address. This program @@ -458,8 +448,7 @@ corrected if you use the `setchecksum` command in `nvmutil`. It is common for vendor gbe files to contain one valid part and one invalid part, per checksum rules. -Verify checksums (and show MAC addresses) ------------------------------------------ +### Verify checksums (and show MAC addresses) This command *only* requires *read* access on files. @@ -475,8 +464,7 @@ NOTE: This will exit with zero status if at least one part contains a valid checksum. If both parts are invalid, nvmutil will exit with non-zero status. -Copy part ---------- +### Copy part This command requires read *and* write access on files. @@ -496,8 +484,7 @@ will be performed, and nvmutil will exit with non-zero status. Otherwise, it will (if all other conditions are met) exit with zero status. -Swap parts ----------- +### Swap parts This command requires read *and* write access on files. @@ -516,8 +503,7 @@ If *at least one* part is valid, nvmutil will return with zero exit status. If both parts are invalid, it will return non-zero. -Set valid checksum ------------------- +### Set valid checksum This command requires read *and* write access on files. @@ -537,8 +523,7 @@ set the checksum. There is no feasible way to guard against use on the wrong file, unlike with the other commands. Please make SURE you're running this on the correct file!* -Set invalid checksum --------------------- +### Set invalid checksum This command requires read *and* write access on files. @@ -568,7 +553,7 @@ Intel gigabit NICs that don't have a valid checksum. This is software-defined, and not enforced by the hardware. History -======= +------- A historical change log is included at [docs/install/nvmutilimport.md](nvmutilimport.md), @@ -596,5 +581,14 @@ it was part of osboot, is still available (for reference) here: * -Please use the latest nvmutil version. The above information is provided -only for reference. +Please use the latest nvmutil version *from lbmk*. The above information is +provided only for reference; it may be useful for future auditing. + +TODO +---- + +* Support higher block sizes e.g. 8KB blocks for GbE part sections +* Adapt this into a manpage (useful for Linux package repositories / BSD ports) +* Send nvmutil upstream to coreboot, for inclusion under `util/` +* In addition to the manpage, when sending to coreboot, also adapt this page + for inclusion into doc.coreboot.org diff --git a/site/docs/install/nvmutilimport.md b/site/docs/install/nvmutilimport.md index 4fa6f82..e5801a4 100644 --- a/site/docs/install/nvmutilimport.md +++ b/site/docs/install/nvmutilimport.md @@ -1,12 +1,9 @@ -nvmutil assimilation -==================== +nvmutil import notes +-------------------- Detailed revision history can be found in the Git repository; for code, look at `lbmk.git` and for documentation, look at `lbwww.git`. -Assimilation by Libreboot -========================= - With no additional changes to nvmutil, the project became part of lbmk, which is the Libreboot build system. Please refer to Libreboot's imported version of the nvmutil documentation: [nvmutil.md](nvmutil.md) @@ -22,8 +19,10 @@ shall be preserved on notabug. See: -nvmutil 20221106 -================ +Version history (osboot) +------------------------ + +### nvmutil 20221106 Very minor bugfix release: @@ -33,8 +32,7 @@ Very minor bugfix release: * Documentation inaccuracies fixed (pertaining to nvmutil exit statuses) * Documentation generally tidied up a bit -nvmutil 20221103 -================ +### nvmutil 20221103 Not much has changed, as this just fixes minor bugs and behavioural quirks seen in the previous release: @@ -49,8 +47,7 @@ quirks seen in the previous release: fully readable. Previously, nvmutil would exit non-zero if one or both checksums was correct, but it now only does this if both are invalid -nvmutil 20220828 -================ +### nvmutil 20220828 No new features have been added. This is a code cleanup and bugfix release. @@ -73,8 +70,7 @@ No new features have been added. This is a code cleanup and bugfix release. were made (e.g. cleaner argument handling). Tested with tcc on an x86\_64 machine, where a 0.16% binary size increase was observed. -nvmutil 20220815 -================ +### nvmutil 20220815 No new features have been added. This is a code cleanup and bugfix release. @@ -105,8 +101,7 @@ No new features have been added. This is a code cleanup and bugfix release. reduces code bloat in nvmutil. The code still warns you if the MAC address is multicast -nvmutil 20220810 -================ +### nvmutil 20220810 * 3.4% reduction in binary size (as tested with tcc on x86\_64), due to code optimizations, *while* adding new checks and new features. @@ -130,8 +125,7 @@ nvmutil 20220810 * The `setmac` command can now be used without specifying a MAC address, which will cause the same behaviour as `setmac ??:??:??:??:??:??` -nvmutil 20220808 -================ +### nvmutil 20220808 Released on 8 August 2022. Changes: @@ -173,8 +167,7 @@ Released on 8 August 2022. Changes: reduction; the other 2/3 of that reduction is due to increased code efficiency in general. -Regarding code size reduction ------------------------------ +#### Regarding code size reduction My test setup is an x86\_64 machine with `tcc` used as the compiler; the libc doesn't really matter, if @@ -215,8 +208,7 @@ binary sizes are much larger with those compilers, even with optimization flags; despite this, the Makefile in nvmutil assumes GCC/Clang and sets `CFLAGS` to `-Os`. -nvmutil 20220802 -================ +### nvmutil 20220802 Released on 2 August 2022. Changes: @@ -236,8 +228,7 @@ Released on 2 August 2022. Changes: * More human-friendly messages and help text * help/version commands actually listed in help output -nvmutil 20220731 -================ +### nvmutil 20220731 Released on 31 July 2022. Changes: @@ -250,8 +241,7 @@ Released on 31 July 2022. Changes: That's it. Bug fixes and safety features added. Enjoy! -nvmutil 20220728 -================ +### nvmutil 20220728 Initial release. It is functionally equivalent to the older `nvmutils`, developed for the osboot project. This diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index 5872774..d3dbfd9 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -27,16 +27,16 @@ if you want it to, and you can! | **Original boot firmware** | Sony PS1 BIOS (USA/JPN/EU) | | **Flash chip** | 512KB Mask ROM | -Introduction -============ + +Open source playstation (PS1/PSX) BIOS +--------------------------------- This uses the free/opensource BIOS developed by the PCSX-Redux team, which you can learn more about here: -Build from source ------------------ +### Build from source Pre-compiled builds will be in the next Libreboot release, after version 20240612. For now, you must compile it from source, but the Libreboot @@ -67,7 +67,7 @@ This commonly only builds the BIOS part. If you want to build all of PCSX-Redux, you can, but lbmk does not provide automation for this. Installation -============ +------------ If all went well, you should see `openbios.bin` located under the `bin/playstation/` (within lbmk). Alternatively, you may be using @@ -75,8 +75,7 @@ a release *after* Libreboot 20240612 that has it pre-built. Either way is fine. The `openbios.bin` file is your new BIOS build. -Emulators ---------- +### Emulators Most PlayStation emulators rely on low-level emulation to execute the real BIOS. The Open BIOS by PCSX-Redux (as distributed by Libreboot) can also be used, and @@ -91,8 +90,7 @@ provided with your chosen PlayStation emulator. You can even freely redistribute this BIOS, because it's free software (released under MIT license), which is a major advantage over Sony's original BIOS. -Hardware --------- +### Hardware Not yet tested by the Libreboot project, but the PCSX-Redux developers have stated that it will work on the real console. *It should be noted that the Open @@ -116,7 +114,7 @@ BIOS much more polished, but a number of games have been tested and it's more or less fully reliable in most cases. Game compatibility -================== +------------------ The upstream maintains a compatibility list, here: @@ -126,7 +124,7 @@ NOTE: Google Docs, but an option exists on there to export it for LibreOffice Calc. The list is provided as a spreadsheet. Remarks about hardware -==================== +---------------------- Modern NOR flash can be used. You specifically want a TSOP-32 SMD/SMT type device, one that operates at 3.3v (tolerance 2.7 to 3.6v), organised into 512KB blocks, @@ -146,10 +144,9 @@ We do not yet provide instructions for how to install this on real hardware, in the Libreboot project, but this can be done at a future date. Other mods (hardware) -=============== +--------------------- -Video timings -------------- +### Video timings The Open BIOS will not implement any DRM, so it's possible that you might boot out of region games. In an emulator, this is no problem, but it can prove @@ -199,8 +196,7 @@ By fixing the timings in this way, your region-free console will also have correct timings, thus maximum game compatibility, and colours will always be correct no matter what video cable you're using. -Modchips --------- +### Modchips If using hardware, you will probably still want a modchip. Many proprietary modchip firmwares exist, such as Old crow, MultiMode3 and Mayumi; these run on @@ -228,8 +224,7 @@ not yet been confirmed by the Libreboot project. More hardware testing is planned, but the Open BIOS works perfectly in emulators. Give it a try! -Boot games on SD cards ------------------------ +### Boot games on SD cards The [PicoStation](https://github.com/paulocode/picostation) project provides free firmware for RP2040 devices, which you can solder into a modboard which @@ -240,8 +235,7 @@ real playstation (the picostation replaces your CD drive). Not only is this useful in a development context, but it can also be used when your CD drive has worn out and no longer reads discs properly. -Final remarks -------------- +### Final remarks Combined with PsNee and PicoStation, the Open BIOS from PCSX-Redux team will turn your 90s PlayStation into a very hackable machine. There is @@ -253,7 +247,7 @@ simply computers, fully reprogrammable and as such, Libreboot is happy to provid this support, for the Sony PlayStation Credit -====== +------ Thanks go to the PCSX-Redux team for their excellent work reverse engineering the Sony PS1 BIOS. diff --git a/site/docs/install/r400.md b/site/docs/install/r400.md index 875bddb..a68fac2 100644 --- a/site/docs/install/r400.md +++ b/site/docs/install/r400.md @@ -1,5 +1,5 @@ --- -title: Flashing the ThinkPad R400 +title: Install Libreboot on Lenovo ThinkPad R400 x-toc-enable: true ... @@ -52,16 +52,12 @@ P*: Partially works with vendor firmware | **SeaBIOS with GRUB** | Works | -Dell Latitude E6400 -=================== +Open source BIOS/UEFI firmware +------------------------- -**If you haven't bought an R400 yet: the [Dell Latitude -E6400](../install/latitude.md) is much easier to flash; no disassembly required, -it can be flashed entirely in software from Dell BIOS to Libreboot. It is the -same hardware generation (GM45), with same CPUs, video processor, etc.** - -Introduction -============ +This document will teach you how to install Libreboot, on your +Lenovo ThinkPad R400 laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. It is believed that all or most R400 laptops are compatible. See notes about [CPU @@ -85,8 +81,16 @@ now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** +Dell Latitude E6400 +------------------- + +**If you haven't bought an R400 yet: the [Dell Latitude +E6400](../install/latitude.md) is much easier to flash; no disassembly required, +it can be flashed entirely in software from Dell BIOS to Libreboot. It is the +same hardware generation (GM45), with same CPUs, video processor, etc.** + EC update {#ecupdate} -========= +-------------------- It is recommended that you update to the latest EC firmware version. The [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from @@ -111,7 +115,7 @@ TODO: put hardware register logs here like on the [X200](x200.md) and [T400](t400.md) page. Installation notes -================== +------------------ [External flashing](spi.md) required, if Lenovo BIOS is running. @@ -131,15 +135,14 @@ ROM properly first. Although ROM images are provided pre-built in libreboot, there are some modifications that you need to make to the one you chose before flashing. (instructions referenced later in this guide) -Serial port {#serial_port} ------------ +### Serial port {#serial_port} EHCI debug might not be needed. It has been reported that the docking station for this laptop has a serial port, so it might be possible to use that instead. A note about CPUs -================= +----------------- [ThinkWiki](http://www.thinkwiki.org/wiki/Category:R400) has a list of CPUs for this system. The Core 2 Duo P8400 and P8600 are believed to @@ -147,13 +150,12 @@ work in libreboot. The Core 2 Duo T9600 was confirmed to work, so the T9400 probably also works. *The Core 2 Duo T5870/5670 and Celeron M 575/585 are untested!* -Quad-core CPUs --------------- +### Quad-core CPUs Incompatible. Do not use. A note about GPUs -================= +----------------- Some models have an Intel GPU, while others have both an ATI and an Intel GPU; this is referred to as "Dual Graphics" (previously @@ -167,12 +169,12 @@ Intel GPU is used and the ATI GPU is disabled, so native graphics initialization works all the same. CPU paste required -================== +------------------ See [\#paste](#paste). Flash chip size {#flashchips} -=============== +----------------------------- Use this to find out: @@ -184,17 +186,16 @@ The reason why was explained, in the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** MAC address {#macaddress} -=========== +------------------------- Refer to [mac\_address.md](../install/mac_address.md). External flashing -================= +----------------- Refer to [spi.md](spi.md) as a guide for external re-flashing. -Disassembly ------------ +### Disassembly Remove all screws:\ ![](https://av.libreboot.org/r400/0000.jpg)\ @@ -280,7 +281,7 @@ Read [this article](spi.md) to learn how you may flash the chip, which is near to the RAM. Thermal paste (IMPORTANT) -========================= +------------------------- Because part of this procedure involved removing the heatsink, you will need to apply new paste. Arctic MX-4 is ok. You will also need isopropyl @@ -297,7 +298,7 @@ show how to properly apply the thermal paste. Other guides online detail the proper application procedure. Memory -====== +------ In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index 90f5f9e..7ac8bc4 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -4,7 +4,7 @@ x-toc-enable: true ... Need help? -========== +---------- Help is available on [Libreboot IRC](../../contact.md) and other channels. @@ -16,8 +16,41 @@ if you want to send your machine in to have Libreboot installed for you. Leah Rowe, the founder and lead developer of Libreboot, also owns and operates Minifree Ltd; sales provide funding for the Libreboot project. -Introduction -============ +Install open source BIOS/UEFI firmware +-------------------------------------- + +This guide is predominantly about *installing Libreboot* (flashing it) onto +your motherboard's main system flash. You can also adapt this guide for dumping, +erasing and verifying firmware images; this guide shows you how to use +the [flashprog](https://flashprog.org/) software with various external +25XX NOR flash programmers. This guide is written for *Linux* users, but BSD +operating systems are also compatible with flashprog; Windows might be feasible, +ditto Apple's MacOS, as flashprog can also run on those, but they are not +officially supported by Libreboot, and *we recommend* that you use Linux/BSD. + +Although this documentation is written *for the Libreboot project*, it can be +used on any compatible 25xx NOR flash, on any number of devices, such as home +routers and even certain videogame systems. If you're a refurbisher, and not +a Libreboot-based one, but just a regular refurbisher e.g. on eBay, dealing +with proprietary UEFI firmware (and perhaps Windows installations), it may be +that on some of them, SMM-based flash writes are performed to store UEFI firmware +configurations (instead of the old NVRAM/CMOS memory); you could adapt this +guide (and read flashprog documentation) to erase/flash custom configurations, +for example when unlocking boot passwords on the computers that you sell. This +is the power of [Free Software](https://writefreesoftware.org/learn); flashprog +is a Free Software project. The use-case scenario of the humble eBay seller is +real; several of them have in fact used this guide in the past. + +So keep that in mind; this is part of the Libreboot installation instructions, +but it can be used for *any* flashing operation on *any* 25xx NOR flash, with +all sorts of firmware; you could also use this to *reverse* a Libreboot +installation, re-flashing the original vendor firmware if you made a dump of it, +**and we definitely recommend backing that up prior to Libreboot installation**. + +**Please ensure that your programmer's voltage matches that of the flash IC, +and read this guide carefully to account for proper electrical safety. In +general, these programmers operate at 3.3v, so you'll need a logic level +adapter and e.g. buck converter, if you're dealing with a 1.8V flash IC.** **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. @@ -37,10 +70,10 @@ which uses LPC flash in a PLCC32 socket, which you can simply hot-swap after booting the vendor firmware, and then flash internally. Simple! We will be using -the [flashprog](https://flashprog.org/Flashrom) software which is written to +the [flashprog](https://flashprog.org/) software which is written to dump, erase and rewrite these flash chips. -libreboot currently documents how to use these SPI programmers: +Libreboot currently documents how to use these SPI programmers: * Raspberry Pi Pico / Pico 2 * Raspberry Pi (RPi) single-board computers @@ -65,10 +98,9 @@ from Linux, with flashprog. is called *external* because it's not the *internal* one on your mainboard. Raspberry Pi Pico -================= +----------------- -RP2040/RP2530 both supported ----------------------------- +### RP2040/RP2530 both supported **Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8 or higher. Releases before this only supported the original Pico, and other @@ -86,8 +118,7 @@ Additionally, all the software running on it is free, down to the full versions (Pico W & Pico WH) need vendor firmware to use the Wi-Fi chip, but that is not needed for following this guide. -Download serprog firmware pre-compiled -------------------------- +### Download serprog firmware pre-compiled Download the pico serprog tarball from Libreboot releases. For example, the Libreboot 20241206rev8 one would be @@ -95,8 +126,9 @@ named: `libreboot-20241206rev8_pico_serprog.tar.xz` - it's available under the `roms/` directory in each release. With these binaries, you can easily get started. -Build serprog firmware from source ----------------------------------- +### Build serprog firmware from source (OPTIONAL) + +**Pre-compiled binaries are also available, in Libreboot releases.** You can alternatively download the serprog firmware here:\ \ @@ -119,8 +151,7 @@ at `bin/serprog_pico/serprog_pico.uf2` and `bin/serprog_pico/serprog_pico_w.uf2` - images with `pico2` in the file name are for the Pico 2, and they can also be used. -Install the serprog firmware ----------------------------- +### Install the serprog firmware First, connect just the Pico to your computer with a micro-USB cable. Mount it like any other USB flash drive. If it isn't detected, you might need @@ -136,8 +167,7 @@ release tarball. **NOTE: Other RP2040/2530 devices will also work. You just have to match the right pins and use the correct firmware file!** -Logic levels ------------- +### Logic levels A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't destroy your board by sending 5V to it. If you have a 1.8V flash chip, @@ -145,8 +175,7 @@ you need to add a logic level converter. **Please ensure that you have matched the voltage of your programmer to the voltage of your chip; both the data lines and power lines to the chip must match.** -Wiring ------- +### Wiring Disconnect the Pico and proceed to wire it to your [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). @@ -182,11 +211,16 @@ not worth it. The 12Mbps USB port is limiting the actual speed here. Higher speeds might work nicely, on Pico 2. -Do not use CH341A! -================== +Do not buy CH341A! +------------------ + +This section was heavily expanded, on 19 January 2025, because we see many +people online still talking about the CH341a. Therefore, the hatred has been +amplified. Please read this section carefully, to know why we advise against +use of this particular programmer. NOR flashes on libreboot systems run on 3.3V DC or 1.8V DC, and this includes -data lines. CH341A has 5V logic levels on data lines, which will damage your +data lines. CH341A can have 5V logic levels on data lines, which can damage your SPI flash and also the southbridge that it's connected to, plus anything else that it's connected to. @@ -246,8 +280,80 @@ resistors) performed, on the black CH341A:\ The green version (not shown above) may come with 3.3v logic already wired, but still needs to have pull-up resistors placed for WP/HOLD. +Disclaimer: A few (not many, but wily) people have criticised this section of the +documentation, due to a misconception about what it really means and also because +this section was previously very poorly written. So to be clear: + +Yes, we are quite well aware that the CH341A can in fact operate at 3.3v, +even unmodified black models; the VCC line is 3.3v, and if when you either +directly wire VCC to WP/HOLD pins yourself, or a pull-up resistor on the +motherboard you're flashing pulls these high at 3.3v, then the logic levels +on the data lines do in fact switch to 3V *during an erase, read or write cycle*. +When no flashing operation is underway, the data lines are outputting at almost +negligable current, so the actual amount of heat generated will be negligable, +and therefore damage is unlikely. However, as stated above and as we will state +again: + +* This is bad electrical design. The CH341A can switch flexibly between 3V + and 5V operation, but most flashes today are 1.8V or 5V anyway, and there are + all kinds of scenarios (such as over-current or surge event) where this 5V + idle logic level could still be applied. Modifying your CH341a to 3.3v + only, as defined in the datasheet (and by this page) is highly recommended. +* The drive level is extremely poor anyway, on CH341a, making ISP-based + flashing ill advisable in many cases, such as where the PCH (Intel platforms) + is partly active and the data lines have lower resistance, because some + boards have 0ohms or very low resistance on these lines. +* No pull-ups on the WP/hold lines, when flashing in the socket; they are high + via 0ohm trace to VCC, whereas you are advised to use a pull-up resistor to + mitigate over-current events. +* Crap LDO on the board, and no ESD/overcurrent protection; the CH341a probably + can't provide much current on the VCC line, especially for ISP-based flashing + where the flash shares a common power rail with many other components. + +CH341a is cheap junk. Get yourself a Raspberry Pi Pico instead; it's about the +same price, but of much higher quality from an electrical design perspective, +supports much higher (12mA!) drive levels on data lines, can control multiple +chip selects at once; it's just better, in every way. And the Raspberry Pi is +completely reprogrammable, so you can use it for something else when you're +done, e.g. UART dongle, or if you're wily enough, [PlayStation 1 Optical Disc +Emulator](https://github.com/paulocode/picostation) - the Pico is simply a +highly versatile tool, much better value for money than the piece of junk +CH341a. + +There is only one instance where the CH341a is *good*, and that is when you're +actually flashing a loose (not soldered) chip, in the ZIF socket on the CH341a +board. It's a DIP-8 socket, and you can also buy WSON-8 and SOIC-8 or SOIC-16 +adapters for it; you can also plug a special adapter board into it that converts +the voltages (VCC and data lines) to 1.8V, for 1.8V flashes (you could also +use that same 1.8V adapter circuit in a breadboard wired to your Pico). On +socket-based flashing, *which is specifically what the CH341a was designed +for*, you don't have to worry about weak drive level because there is nothing +contending with it on the flash IC's data pins. + +The *socket-based* flashing operation is what we recommend this programmer +for, *only if you already have one*. We still recommend fixing the issue with +the WP/HOLD pins as described above; if you're doing this, note that there are +also newer models that have a voltage switch and logic level shifter already +on the board, which can be very useful. *Clip-based* flashing (ISP / in-system +programming) is, specifically, what we advise against using the CH341a for. + +Even if you *are* doing socket-based flashing, we still suggest buying the Pico +instead, though the Pico doesn't come with a ZIF socket; you can wire the Pico +to a breadboard instead, if you want to use a socket for flashing. Then you +will also have a good ISP device, and the overall cost covering both use-case +scenarios is *lower* (cheaper part cost) than buying a CH341a *and* Pico; and +the Pico can also emulate the PlayStation Optical Disc Drive in your +playstation to boot from SD card instead of your dead CD drive, or could even +be a [JTAG adapter](https://hackaday.com/2022/04/11/need-a-jtag-adapter-use-your-pico/) - +again, the Pico is a reprogrammable device! Whereas, the CH341a is a fixed-function +device (and performs poorly). + +Why pay $10 for a CH341a when you can pay $10 for a Raspberry Pi Pico which is +electrically and functionally superior in every way? And the Pico is completely +open source, right down to the boot rom. + Identify which flash type you have -================================== +---------------------------------- In all of them, a dot or marking shows pin 1 (in the case of WSON8, pad 1). @@ -255,8 +361,7 @@ Use the following photos and then look at your board. When you've figured out what type of chip you have, use that knowledge and the rest of this guide, to accomplish your goal, which is to read from and/or write to the boot flash. -SOIC8 ------ +### SOIC8 ![](https://av.libreboot.org/chip/soic8.jpg) @@ -271,8 +376,7 @@ SOIC8 | 7 | HOLD | | 8 | VCC | -SOIC16 ------- +### SOIC16 ![](https://av.libreboot.org/chip/soic16.jpg) @@ -289,8 +393,7 @@ SOIC16 SOIC8 and SOIC16 are the most common types, but there are others: -WSON8 ------ +### WSON8 It will be like this on an X200S or X200 Tablet:\ @@ -301,15 +404,13 @@ On T400S, it is in this location near the RAM:\ ![](https://av.libreboot.org/t400s/soic8.jpg)\ NOTE: in this photo, the chip has been replaced with SOIC8. -DIP8 ----- +### DIP8 ![](https://av.libreboot.org/dip8/dip8.jpg) Pinout is the same as SOIC8 above. -Supply Voltage --------------- +### Supply Voltage Historically, all boards that Libreboot supports happened to have SPI NOR chips which work at 3.3V DC. With the recent addition of Chromebooks whose chips are @@ -322,18 +423,16 @@ connect it to the chip through an adapter or logic level converter, never directly. Software configuration -====================== +---------------------- -General/Le potato ------------------ +### General/Le potato The [generic guide](spi_generic.md) is intended to help those looking to use an SBC which is not listed in this guide. The guide will, however, use the libre computer 'Le Potato' as a reference board. If you have that board, you should refer to the [generic guide.](spi_generic.md) -BeagleBone Black (BBB) ----------------------- +### BeagleBone Black (BBB) SSH into your BeagleBone Black. It is assumed that you are running Debian 9 on your BBB. You will run `flashprog` from your BBB. @@ -395,8 +494,7 @@ Note: flashprog can never write if the flash chip isn't found automatically. This means that it's working (the clip isn't connected to any flash chip, so the error is fine). -Caution about BBB ------------------ +### Caution about BBB BeagleBone Black is not recommended, because it's very slow and unstable for SPI flashing, and nowadays much better options exist. We used to mainly @@ -405,8 +503,7 @@ Software on it, but nowadays there are superior options. TODO: document other SPI flashers -Rasberry Pi (RPi) ------------------ +### Rasberry Pi (RPi) SSH into your Raspberry Pi. You will run `flashprog` from your Raspberry Pi. @@ -425,9 +522,9 @@ Under the Interface section, you can enable SPI. The device for communicating via SPI as at `/dev/spidev0.0` -RPi Drive Strength ------------------- -Flashrom on the RPi may not be able to detect the SPI flash chip on some +### RPi Drive Strength + +Flashprog on the RPi may not be able to detect the SPI flash chip on some systems, even if your wiring and clip are set up perfectly. This may be due to the drive strength of the Raspberry Pi GPIOs, which is 8mA by default. Drive strength is essentially the maximum current the pin can output while also @@ -483,8 +580,7 @@ See for more information about the drive strength control on the Pi. -Caution about RPi ------------------ +### Caution about RPi Basically, the Raspbian project, now called Raspberry Pi OS, put in their repo an update that added a new "trusted" repository, which just so happened to be @@ -504,8 +600,7 @@ They then removed it, after a public backlash, via the following commits: * * -Libre firmware on RPi ---------------------- +### Libre firmware on RPi The boot firmware on older Raspberry Pi models can be replaced, with entirely libre firmware. This may be a useful additional step, for some users. See: @@ -516,12 +611,11 @@ Website: -Install flashprog ----------------- +### Install flashprog If you're using a BBB or RPi, you will do this while SSH'd into those. -Flashrom is the software that you will use, for dumping, erasing and rewriting +Flashprog is the software that you will use, for dumping, erasing and rewriting the contents of your NOR flash. In the libreboot build system, from the Git repository, you can download and @@ -550,7 +644,7 @@ for use on x86-64 systems running Ubuntu 20.04, but it should work in Raspbian on the Raspberry Pi. Alternatively, you may download flashprog directly from upstream -at +at If you're flashing a Macronix flashchip on a ThinkPad X200, you will want to use a special patched version of flashprog, which you can download here: @@ -565,13 +659,12 @@ at `config/dependencies/` which you can install using the `apt-get` software. How to use flashprog -=================== +-------------------- Read past these sections, further down this page, to learn about specific chip types and how to wire them. -Reading -------- +### Reading Before flashing a new ROM image, it is highly advisable that you dump the current chip contents to a file. @@ -631,8 +724,7 @@ You can combine both flashes together with `cat` for example: Note that you will need this combined rom if you intend to manually extract vendor files, which is a method not officially supported by Libreboot's build system. -Writing -------- +### Writing Next, run this command (RPi): @@ -668,15 +760,13 @@ For example, to split a rom for the x230, t430, t530, or t440p run: Flash the resulting roms to each of their respective chips according to the above instructions. - Hardware configuration -====================== +---------------------- Refer to the above guidance about software configuration. The following advice will teach you how to wire each type of flash chip. -WARNINGS --------- +### WARNINGS Do not connect the power source until your chip is otherwise properly wired. For instance, do not connect a test clip that has power attached. @@ -701,16 +791,14 @@ DO NOT connect more than 1 DC power source to your flash chip either! Mixing voltages like that can easily cause damage to your equipment, and to your chip/mainboard. -MISO/MOSI/CS/CLK lines ----------------------- +### MISO/MOSI/CS/CLK lines You may want to add 47ohm series resistors on these lines, when flashing the chips. Only do it on those lines (NOT the VCC or GND lines). This provides some protection from over-current. On Intel platforms, the SPI flash is usually connected via such resistors, directly to the Southbridge chipset. -ISP programming and VCC diode ------------------------------ +### ISP programming and VCC diode ISP means in-system programming. It's when you flash a chip that is already mounted to the mainboard of your computer that you wish to install libreboot @@ -750,8 +838,7 @@ the flash into a breadboard when flashing. TODO: Make a page on libreboot.org, showing how to do this on all mainboards supported by libreboot. -GPIO pins on BeagleBone Black (BBB) ------------------------------------ +### GPIO pins on BeagleBone Black (BBB) Use this image for reference when connecting the pomona to the BBB: (D0 = MISO or connects @@ -760,8 +847,7 @@ to MISO). On that page, look at the *P9 header*. It is what you will use to wire up your chip for flashing. -GPIO pins on Raspberry Pi (RPi) 40 Pin --------------------------------------- +### GPIO pins on Raspberry Pi (RPi) 40 Pin This diagram shows the pinout for most modern Pi's and Pi derivatives. The diagram shows the pins of an RPi on the left and the two SOIC clips @@ -769,8 +855,7 @@ on the left. ![](https://av.libreboot.org/rpi/wiring.webp) -GPIO pins on Raspberry Pi (RPi) 26 Pin -------------------------------- +### GPIO pins on Raspberry Pi (RPi) 26 Pin Diagram of the 26 GPIO Pins of the Raspberry Pi Model B (for the Model B+ with 40 pins, start counting from the right and leave 14 pins): @@ -779,8 +864,7 @@ B+ with 40 pins, start counting from the right and leave 14 pins): Use this as a reference for the other sections in this page, seen below: -SOIC8/DIP8/WSON8 wiring diagram -------------------------------- +### SOIC8/DIP8/WSON8 wiring diagram Refer to this diagram: @@ -807,8 +891,7 @@ will provide a stable 3.3V voltage, with adequate current levels. On those laptops, this is necessary because the flash shares a common 3.3V DC rail with many other ICs that all draw quite a lot of current. -SOIC16 wiring diagram (Raspberry Pi) ------------------------------------- +### SOIC16 wiring diagram (Raspberry Pi) RPi GPIO header:\ ![](https://av.libreboot.org/rpi/0009.webp) @@ -846,8 +929,7 @@ NOTE: pins 1 and 9 are WP/HOLD pins. If flashing a chip on a breadboard, please use pull-up resistors on those (see notes below), and decoupling capacitor on pin 2 (VCC). -Pull-up resistors and decoupling capacitors -------------------------------------------- +### Pull-up resistors and decoupling capacitors **Do this for chips mounted to a breadboard. Ignore this section if you're flashing a chip that is already soldered to a mainboard.** @@ -895,8 +977,7 @@ WP/HOLD are not pin 3/7 like above, but instead pins 1 and 9, so wire your pull-up resistors on those. VCC on SOIC16 is pin 2, so wire your decoupling capacitors up on that. -SOIC8/WSON8/DIP8/SOIC16 not mounted to a mainboard --------------------------------------------------- +### SOIC8/WSON8/DIP8/SOIC16 not mounted to a mainboard If your system has lower capacity SPI flash, you can upgrade. On *most* systems, SPI flash is memory mapped and the maximum (in practise) that you can use is a @@ -968,8 +1049,7 @@ and good 60/40 or 63/37 leaded solder (don't use lead-free): ![](https://av.libreboot.org/dip8/adapter.jpg) ![](https://av.libreboot.org/dip8/sop8todip8.jpg) -SOIC8/SOIC16 soldered to a mainboard ------------------------------------- +### SOIC8/SOIC16 soldered to a mainboard This is an example of *in-system programming* or *ISP* for short. @@ -994,8 +1074,7 @@ Here is an example of a test clip connected for SOIC16:\ And here is an example photo for SOIC8:\ ![](https://av.libreboot.org/x60/th_bbb_flashing.jpg) -DIP8 soldered to the mainboard ------------------------------- +### DIP8 soldered to the mainboard It is extremely cursed for DIP8 to be soldered directly to the mainboard. It is usually mounted to a socket. @@ -1010,8 +1089,7 @@ directly soldered. It is almost always mounted in a socket. Your DIP8 IC has the same pinout as a SOIC8 IC. -Replace WSON8 IC with SOIC8 ---------------------------- +### Replace WSON8 IC with SOIC8 **NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress. They look similar to SOIC8 clips, and they work similarly.** @@ -1126,7 +1204,7 @@ evaporates quickly and it does not leave a corrosive residue. ------------------------------------------------------------------------------- LICENSING -========= +--------- This page is released under different copyright terms than most other pages on this website. diff --git a/site/docs/install/spi.zh-cn.md b/site/docs/install/spi.zh-cn.md index bb9b705..eba229a 100644 --- a/site/docs/install/spi.zh-cn.md +++ b/site/docs/install/spi.zh-cn.md @@ -4,7 +4,7 @@ x-toc-enable: true ... Need help? -========== +---------- Help is available on [Libreboot IRC](../../contact.md) and other channels. @@ -16,14 +16,14 @@ if you want to send your machine in to have Libreboot installed for you. Leah Rowe, the founder and lead developer of Libreboot, also owns and operates Minifree Ltd; sales provide funding for the Libreboot project. -Introduction -============ +Install open source BIOS/UEFI firmware +------------ **[安装之前请先阅读这些指示](ivy_has_common.md),否则你的机器可能会成砖:[安全措施](ivy_has_common.md)** 本指南将教你怎样使用各种工具,通过 SPI 协议对 25xx NOR flash 进行外部再编程。这是 coreboot 所支持的计算机中,最常见的 flash IC 类型。目前 libreboot 支持的每个系统,基本都使用这种类型的引导 flash;唯一的例外就是 ASUS KFSN4-DRE,它在 PLCC32 芯片座中使用了 LPC flash,你可以在供应商固件启动后,对其进行热切换,然后再内部刷入。十分简单! -我们会用到 [flashprog](https://flashprog.org/Flashrom) 软件,这个软件可以读出、擦除及重写这些 flash 芯片。 +我们会用到 [flashprog](https://flashprog.org/) 软件,这个软件可以读出、擦除及重写这些 flash 芯片。 libreboot 目前记录了这些 SPI 编程器的使用方法: @@ -41,10 +41,9 @@ libreboot 目前记录了这些 SPI 编程器的使用方法: 你在读的*这个*教程,使用的是*外部*编程器。之所以叫*外部*,是因为用的不是主板上的*内部*编程器。 Raspberry Pi Pico -================= +----------------- -RP2040/RP2530 both supported ----------------------------- +### RP2040/RP2530 both supported **Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8 or higher. Releases before this only supported the original Pico, and other @@ -62,8 +61,7 @@ Additionally, all the software running on it is free, down to the full versions (Pico W & Pico WH) need vendor firmware to use the Wi-Fi chip, but that is not needed for following this guide. -Download serprog firmware pre-compiled -------------------------- +### Download serprog firmware pre-compiled Download the pico serprog tarball from Libreboot releases. For example, the Libreboot 20241206rev8 one would be @@ -71,8 +69,7 @@ named: `libreboot-20241206rev8_pico_serprog.tar.xz` - it's available under the `roms/` directory in each release. With these binaries, you can easily get started. -Build serprog firmware from source ----------------------------------- +### Build serprog firmware from source You can alternatively download the serprog firmware here:\ \ @@ -95,8 +92,7 @@ at `bin/serprog_pico/serprog_pico.uf2` and `bin/serprog_pico/serprog_pico_w.uf2` - images with `pico2` in the file name are for the Pico 2, and they can also be used. -Install the serprog firmware ----------------------------- +### Install the serprog firmware First, connect just the Pico to your computer with a micro-USB cable. Mount it like any other USB flash drive. If it isn't detected, you might need @@ -112,8 +108,7 @@ release tarball. **NOTE: Other RP2040/2530 devices will also work. You just have to match the right pins and use the correct firmware file!** -Logic levels ------------- +### Logic levels A Pico has proper 3.3V logic levels, unlike a ch341a. Which means it won't destroy your board by sending 5V to it. If you have a 1.8V flash chip, @@ -121,8 +116,7 @@ you need to add a logic level converter. **Please ensure that you have matched the voltage of your programmer to the voltage of your chip; both the data lines and power lines to the chip must match.** -Wiring ------- +### Wiring Disconnect the Pico and proceed to wire it to your [flash chip](/docs/install/spi.html#identify-which-flash-type-you-have). @@ -159,7 +153,7 @@ not worth it. The 12Mbps USB port is limiting the actual speed here. Higher speeds might work nicely, on Pico 2. 不要使用 CH341A! -================== +---------------- libreboot 支持的机器,NOR flash 使用的是 3.3V DC 或 1.8V DC,这也包括了数据线路。CH341A 在数据线路上有 5V 逻辑电平,这会损伤 SPI flash 和它连接的南桥,以及它连接的其它任何东西。 @@ -190,26 +184,23 @@ libreboot 支持的机器,NOR flash 使用的是 3.3V DC 或 1.8V DC,这也 绿色版本(上面未展示)可能已经连接了 3.3v 逻辑电平,但仍然需要为 WP/HOLD 增加上拉电阻。 识别你的 flash 类型 -================================== +------------------- 每一个 flash,都会有一个点或者标记,表明这是第 1 引脚(如 WSON8 的第 1 焊盘)。 参考下面的图片,再看看你的主板。搞清楚你的芯片类型之后,根据你了解的情况及本教程剩下的部分,来实现你的目标,即对你的引导 flash 进行读/写。 -SOIC8 ------ +### SOIC8 ![](https://av.libreboot.org/chip/soic8.jpg) -SOIC16 ------- +### SOIC16 ![](https://av.libreboot.org/chip/soic16.jpg) SOIC8 和 SOIC16 是最常见的类型,但也有其他的类型: -WSON8 ------ +### WSON8 X200S 或 X200 Tablet 上是像这样的:\ ![](https://av.libreboot.org/x200t_flash/X200T-flashchip-location.jpg) @@ -218,28 +209,24 @@ T400S 上,是在 RAM 附近的这个位置:\ ![](https://av.libreboot.org/t400s/soic8.jpg)\ 注意: 本照片中的芯片换成了 SOIC8 -DIP8 ----- +### DIP8 ![](https://av.libreboot.org/dip8/dip8.jpg) -电源电压 --------------- +### 电源电压 之前,Libreboot 支持的所有主板,刚好都有在 3.3V DC 下工作的 SPI NOR 芯片。因为最近添加了额定 1.8V DC 芯片的 Chromebook,所以就不再是这么回事了。 检查主板上芯片的元件型号,再查找一下它的数据表。找出它需要的电源电压并记下来。如果它和你外部刷写硬件的输出电压不匹配,那你只能通过适配器或者逻辑电平转换器,把它连至芯片,而绝不能直接连接。 软件配置 -====================== +-------- -通用/Le potato ------------------ +### 通用/Le potato [通用指南](spi_generic.md)可以帮助你使用本指南未列出的 SBC(单板电脑)。不过,那份指南会使用 libre computer 'Le Potato' 作为参考板。如果你有那块板子,你应该参考 [通用指南](spi_generic.md)。 -BeagleBone Black(BBB) ----------------------- +### BeagleBone Black(BBB) SSH 连接到你的 BeagleBone Black。假定你在 BBB 上用的是 Debian 9。你将在 BBB 上运行 `flashprog`。 @@ -296,15 +283,13 @@ Note: flashprog can never write if the flash chip isn't found automatically. 这表示正常工作了(夹子没连接任何 flash 芯片,所以出错是正常的)。 -BBB 注意事项 ------------------ +### BBB 注意事项 不建议使用 BeagleBone Black,因为拿它来进行 SPI 刷写,速度很慢而且不稳定,并且现在有更好的选择了。我们以前建议使用 BBB,因为它可以完全运行自由软件,但现在有了更佳的选择。 计划:讲解其他 SPI 刷写工具 -Rasberry Pi(RPi) ------------------ +### Rasberry Pi(RPi) SSH 连接到树莓派。你将在树莓派上运行 `flashprog`。 @@ -321,8 +306,7 @@ SSH 连接到树莓派。你将在树莓派上运行 `flashprog`。 用于 SPI 通讯的设备位于 `/dev/spidev0.0`。 -RPi 驱动强度(Drive Strength) ------------------- +### RPi 驱动强度(Drive Strength) RPi 的 flashprog 可能无法检测到一些系统的 SPI flash,即使你已经完美地连好了线并夹住了芯片。这可能是因为树莓派 GPIO 的驱动强度,它默认是 8mA。驱动强度本质上就是,在保持高电平最低电压的同时,引脚最高能输出的电流。对树莓派而言,这个电压是 3.0 V。 @@ -352,8 +336,7 @@ RPi 的 flashprog 可能无法检测到一些系统的 SPI flash,即使你已 见 了解树莓派上的驱动强度控制。 -RPi 注意事项 ------------------ +### RPi 注意事项 基本上,Raspbian 项目,即现在的 Raspberry Pi OS,对其仓库进行了更新,增加了一个新的“受信任”仓库,这刚好是一个微软软件仓库。他们这么做,似乎是为了 VS Code,但问题在于,这可以让微软自由地控制他们喜欢的依赖(根据 apt-get 规则)。每当你更新,你都会对微软的服务器发送请求。不觉得这很奇怪吗? @@ -366,8 +349,7 @@ RPi 注意事项 * * -RPi 的自由固件 ---------------------- +### RPi 的自由固件 旧款树莓派的引导固件可以替换成完全自由的固件。对有些用户而言,这额外的一步可能很有用。参见: @@ -377,12 +359,11 @@ RPi 的自由固件 -安装 flashprog ----------------- +### 安装 flashprog 如果你在使用 BBB 或者 RPi,你需要在 SSH 进去之后再这么做。 -Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。 +Flashprog 是用来读出、擦除、重写 NOR flash 内容的软件。 使用 Git 仓库中的 libreboot 构建系统,你可以下载并安装 flashprog。首先下载 [lbmk Git 仓库](https://codeberg.org/libreboot/lbmk),然后执行: @@ -397,19 +378,18 @@ Flashrom 是用来读出、擦除、重写 NOR flash 内容的软件。 接下来,会出现一个 `flashprog/` 目录,其中有一个 `flashprog` 可执行文件。如果你在运行上面的依赖命令的时候,出现了缺失包的错误,则修改 `config/dependencies/ubuntu2004`。那个脚本会在 apt-get 中下载并安装构建依赖,它是为运行 Ubuntu 的 x86-64 系统写的,但在树莓派上的 Raspbian 应该能用。 -或者,你可以直接从上游下载 flashprog,位于: +或者,你可以直接从上游下载 flashprog,位于: 如果你是在 ThinkPad X200 上刷写 Macronix flash 芯片,则要使用一个 flashprog 的特别修改版,下载地址在这里: —— 其中有修改版的源代码,也有可以直接运行的二进制文件。将 `--workaround-mx` 参数传给 flashprog。这会缓解稳定性问题。 如果你直接下载了 flashprog 源代码,你可以进入目录并直接运行 `make`。在 libreboot 构建系统中,`config/dependencies/` 处的脚本写明了构建依赖,你可以直接使用 `apt-get` 软件安装。 如何使用 flashprog -=================== +------------------ 请先阅读本页更下方的部分,了解特定的芯片类型及其接线方法。 -读出 -------- +### 读出 刷入新的 ROM 镜像之前,强烈建议你将当前芯片的内容读出到一个文件。 @@ -449,8 +429,7 @@ BBB 的话,这样: 注意,如果你要手动提取 blob,那你就需要这个组合而成的 rom。 -写入 -------- +### 写入 接下来,运行这个命令(RPi): @@ -483,12 +462,11 @@ Verifying flash... VERIFIED. 硬件配置 -====================== +-------- 软件配置请参考上面的教程。下面的建议会教你如何为每种 flash 芯片接线。 -警告 --------- +### 警告 在芯片还没有正确接好线时,先不要连接电源。例如,不要连接到接通电源的测试夹。 @@ -500,13 +478,11 @@ Verifying flash... VERIFIED. 也不要给你的 flash 芯片连接超过 1 个 DC 电源!那样混合电压的话,很容易损伤你的设备及芯片/主板。 -MISO/MOSI/CS/CLK 接线 ----------------------- +### MISO/MOSI/CS/CLK 接线 在刷写这些芯片的时候,你可能也想增加 47 欧姆的串联电阻(不是加在 VCC 或 GND 线上)。这可以提供一些过流保护。在 Intel 平台上,SPI flash 直接连接到南桥芯片组时,通常会通过这样的电阻。 -ISP 编程及 VCC 二极管 ------------------------------ +### ISP 编程及 VCC 二极管 ISP 即系统内编程(in-system programming)。它指的是,一块芯片已经装在了你想安装 libreboot 的电脑的主板上,而你要对这块芯片进行刷写。 @@ -522,22 +498,19 @@ ISP 即系统内编程(in-system programming)。它指的是,一块芯片 计划:在 libreboot.org 创建一个页面,讲怎么在 libreboot 支持的所有主板这么做。 -BeagleBone Black(BBB)上的 GPIO 引脚 ------------------------------------ +### BeagleBone Black(BBB)上的 GPIO 引脚 把 pomona 夹子连接到 BBB 时,参考这张图片: (D0 = MISO 或连接到 MISO)。 如果你要用 *P9 排针*来连接芯片刷写的话,请看那个页面的那个部分。 -40 引脚树莓派(RPi)的 GPIO 引脚 --------------------------------------- +### 40 引脚树莓派(RPi)的 GPIO 引脚 下图展示了大多数现代树莓派及其衍生版的引脚分配。图中右边是 RPi 的引脚,左边是两个 SOIC 夹。 ![](https://av.libreboot.org/rpi/wiring.webp) -26 引脚树莓派(RPi)的 GPIO 引脚 -------------------------------- +### 26 引脚树莓派(RPi)的 GPIO 引脚 树莓派 B 款 26 GPIO 引脚图(对 40 引脚的 B+ 款而言,从右边开始数,剩下 14 个引脚): @@ -545,8 +518,7 @@ BeagleBone Black(BBB)上的 GPIO 引脚 此处的信息,也请在阅读以下其他部分时参考: -SOIC8/DIP8/WSON8 接线图 -------------------------------- +### SOIC8/DIP8/WSON8 接线图 参考此表: @@ -567,8 +539,7 @@ SOIC8/DIP8/WSON8 接线图 注意:在 X60/T60 thinkpad 上,不要连接第 8 引脚。而是将你的 PSU 接在主板供电口上,但不要启动主板。这会提供稳定的 3.3V 电压及足够的电流。在这些笔记本上,这是必要的,因为 flash 和其他许多 IC 共用一路 3.3V DC 电源,这些 IC 都会分走很多电流。 -SOIC16 接线图(树莓派) ------------------------------------- +### SOIC16 接线图(树莓派) RPi GPIO 排针:\ ![](https://av.libreboot.org/rpi/0009.webp) @@ -604,8 +575,7 @@ BBB P9 排针:\ 注意:第 1 和第 9 引脚是 WP/HOLD 引脚。在面包板上刷写芯片时,请对它们使用上拉电阻(见上面的注记),并在第 2 引脚(VCC)使用去耦电容。 -上拉电阻和去耦电容 -------------------------------------------- +### 上拉电阻和去耦电容 **如果芯片是装在面包板上的,那请遵循这里的步骤。如果你要刷写的芯片已经焊接在了主板上,那请忽略这一部分。** @@ -626,8 +596,7 @@ SOIC8/WSON8/DIP8:如果芯片在主板上,那第 8 引脚,即 VCC,就已 SOIC16:同上,但在面包板上使用 SOIC16 socket。在 SOIC16 上,WP/HOLD 不同于上面的第 3/7 引脚,而是第 1 和第 9 引脚,所以要把上拉电阻接到那里。SOIC16 上的 VCC 是第 2 引脚,所以要把去耦电容接到那里。 -SOIC8/WSON8/DIP8/SOIC16 未安装在主板上 --------------------------------------------------- +### SOIC8/WSON8/DIP8/SOIC16 未安装在主板上 如果你的机器的 SPI flash 容量较低,那你可以升级。在*大多数*机器上,SPI flash 是经过映射的内存,而(实际上)你最大可以使用 16MiB 的芯片。例如,libreboot 的 KGPE-D16 和 KCMA-D8 主板默认有 2MiB flash,但你可以对它们轻松升级。另一个例子是 ThinkPad X200S、X200 Tablet 和 T400S,它们都有 WSON8,而最佳的方案就是将它替换为 SOIC8 flash 芯片。 @@ -664,8 +633,7 @@ SOIC8/WSON8/DIP8/SOIC16 未安装在主板上 ![](https://av.libreboot.org/dip8/adapter.jpg) ![](https://av.libreboot.org/dip8/sop8todip8.jpg) -SOIC8/SOIC16 焊接在主板上 ------------------------------------- +### SOIC8/SOIC16 焊接在主板上 这是*系统内编程*或 *ISP* 的一个简短例子。 @@ -681,8 +649,7 @@ Pomona 5252 是一个 SOIC16 测试夹。也有其他的可以用,但这个是 SOIC8 例子的照片如下:\ ![](https://av.libreboot.org/x60/th_bbb_flashing.jpg) -DIP8 焊接在主板上 ------------------------------- +### DIP8 焊接在主板上 把 DIP8 直接焊接在主板上怪异至极。它通常是安装在芯片座上的。 @@ -692,8 +659,7 @@ DIP8 焊接在主板上 DIP8 IC 的引脚分配和 SOIC8 IC 一样。 -使用 SOIC8 替换 WSON8 IC ---------------------------- +### 使用 SOIC8 替换 WSON8 IC **NOTE: You can alternatively purchase WSON8 probes from a site like Aliexpress. They look similar to SOIC8 clips, and they work similarly.** @@ -759,7 +725,7 @@ WSON8 IC:\ ------------------------------------------------------------------------------- 许可证 -========= +------ 本页面发布所使用的版权条款,不同于本网站上大多数其他页面。 diff --git a/site/docs/install/spi_generic.md b/site/docs/install/spi_generic.md index cea61cd..97e143e 100644 --- a/site/docs/install/spi_generic.md +++ b/site/docs/install/spi_generic.md @@ -13,6 +13,9 @@ YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](ivy_has_common.md).** +Background information +---------------------- + There are a plethora of single board computers with which you can flash libreboot to a SOIC chip. Some users might be daunted by the price of a raspberry pi. This guide is intended to help users looking to use a programmer which is not listed in the [main guide.](spi.md) @@ -29,7 +32,7 @@ All of this means that you should try to find a board that is *known* to support It is *not* enough to know that the board itself supports SPI. Selecting an Operating System -============================= +----------------------------- In theory, any linux based operating system will do. In practice, many distros are highly limited when it comes to single-board-computers. @@ -43,7 +46,7 @@ If your SBC supports [Raspbian](https://www.raspberrypi.com/software/) then usin As a bonus, you may refer to the [main guide](spi.md) if the SBC you have supports raspbian, should you get confused with this guide. Connecting to your Programmer -============================= +----------------------------- Many SBC operating systems enable ssh by default. If the OS you chose does not enable ssh on first boot, try checking the distro documentation and looking for terms such as 'headless install.' @@ -61,10 +64,10 @@ SSH to your programmer using the default credentials as specified in your distro The IP address is the one determined in the earlier step. For example: -`ssh root@192.168.0.167` + ssh root@192.168.0.167 Finding GPIO Pins -================= +----------------- If you have determined that a board supports SPI then the only step left is to determine the correct location of the SPI pins. @@ -76,7 +79,7 @@ Match each of the categories in the 'signal' column with those in the 'pin' colu Using this method, you can theoretically use any single board computer with SPI support. Enabling SPI -============ +------------ The modules needed and methods to enable SPI vary based on the SBC you choose. You should always make sure there is a well documented method for enabling SPI on your SBC before purchasing. @@ -87,8 +90,8 @@ sudo ldto enable spicc spicc-spidev sudo ldto merge spicc spicc-spidev ``` -Using Flashrom -============== +Using flashprog +-------------- Most linux distros will provide flashprog in their default repositories. You can also download flashprog in binary form with [libreboot utils.](https://libreboot.org/download.html#https) diff --git a/site/docs/install/t1650.md b/site/docs/install/t1650.md index 3e77a08..75269d2 100644 --- a/site/docs/install/t1650.md +++ b/site/docs/install/t1650.md @@ -1,5 +1,5 @@ --- -title: Dell Precision T1650 +title: Install Libreboot on Dell Precision T1650 x-toc-enable: true ... @@ -54,8 +54,13 @@ P*: Partially works with vendor firmware | **SeaBIOS** | Works | | **SeaBIOS with GRUB** | Works | -Introduction -============ + +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +Dell Precision T1650 desktop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. **Unavailable in Libreboot 20230625 or earlier. You must [compile from source](../build/), or use at least Libreboot 20231021.** @@ -67,18 +72,19 @@ This is similar code-wise to [Dell OptiPlex 9010](https://doc.coreboot.org/mainboard/dell/optiplex_9010.html) which coreboot supports. -Build ROM image from source ---------------------------- +### Build ROM image from source The build target, when building from source, is thus: ./mk -b coreboot t1650_12mb -Installation -============ +Alternatively, you can use release images, but please ensure that you've +inserted vendor files prior to flashing; see notes. -Insert binary files -------------------- +Install Libreboot +----------------- + +### Insert vendor files If you're using a release ROM, please ensure that you've inserted extra firmware required refer to the [guide](../install/ivy_has_common.md) for that. (failure @@ -88,15 +94,13 @@ Libreboot's build system automatically downloads and processes these files if you build Libreboot from source, but the same logic that it uses must be re-run if you're using a release image. -Set MAC address ---------------- +### Set MAC address This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM region. As such, release/build ROMs will contain the same MAC address. To change the MAC address, please read [nvmutil documentation](../install/nvmutil.md). -WARNING about CPU/GPU compatibility -------------------------------- +### WARNING about CPU/GPU compatibility At the time of testing this board, I didn't have a CPU with graphics built in, so I could only use discrete graphics on the PCI-E slot (in my case, Nvidia @@ -129,8 +133,7 @@ way (SeaBIOS first) because Libreboot's configuration does not tell *coreboot* to execute VGA Option ROMs, and it's important that we try to prevent bricks whenever possible. -Flash a ROM image (software) ------------------ +### Flash a ROM image (software) If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. @@ -150,8 +153,7 @@ Here is a close-up: Simply short those pins, on the header, using a jumper. When you do this, all flash protections will be disabled. -Flash a ROM image (hardware) ------------------ +### Flash a ROM image (hardware) **REMOVE all power sources and connectors from the machine, before doing this. This is to prevent short circuiting and power surges while flashing.** @@ -200,4 +202,4 @@ flashing instructions [in Chinese](../install/spi.zh-cn.md): Other aspects of the machine are not much to write home about. It's a standard desktop PC form factor, and you can just run whatever you want on it. -Enjoy! +Enjoy your Libreboot machine! diff --git a/site/docs/install/t400.md b/site/docs/install/t400.md index 62a67da..1821097 100644 --- a/site/docs/install/t400.md +++ b/site/docs/install/t400.md @@ -1,5 +1,5 @@ --- -title: Flashing the ThinkPad T400 externally +title: Install Libreboot on Lenovo ThinkPad T400 x-toc-enable: true ... @@ -51,16 +51,12 @@ P*: Partially works with vendor firmware | **SeaBIOS with GRUB** | Works | -Dell Latitude E6400 -=================== +Open source BIOS/UEFI firmware +------------------------- -**If you haven't bought an T400 yet: the [Dell Latitude -E6400](../install/latitude.md) is much easier to flash; no disassembly required, -it can be flashed entirely in software from Dell BIOS to Libreboot. It is the -same hardware generation (GM45), with same CPUs, video processor, etc.** - -Introduction -============ +This document will teach you how to install Libreboot, on your +Lenovo ThinkPad T400 laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. It is believed that all or most laptops of the model T400 are compatible. See notes about [CPU @@ -84,8 +80,16 @@ now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** +Dell Latitude E6400 +------------------- + +**If you haven't bought an T400 yet: the [Dell Latitude +E6400](../install/latitude.md) is much easier to flash; no disassembly required, +it can be flashed entirely in software from Dell BIOS to Libreboot. It is the +same hardware generation (GM45), with same CPUs, video processor, etc.** + EC update {#ecupdate} -========= +--------------------- It is recommended that you update to the latest EC firmware version. The [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from @@ -107,7 +111,7 @@ The T400 is almost identical to the X200, code-wise. See [x200.md](x200.md). Installation notes -============ +------------------ [External flashing](spi.md) required, if Lenovo BIOS is running. @@ -123,15 +127,14 @@ the screws on page 114 (with title "1130 Keyboard bezel") are swapped and if you follow the HMM you will punch a hole through the bezel in the upper right corner. -Serial port {#serial_port} ------------ +### Serial port {#serial_port} EHCI debug might not be needed. It has been reported that the docking station for this laptop has a serial port, so it might be possible to use that instead. A note about CPUs -================= +----------------- [ThinkWiki](http://www.thinkwiki.org/wiki/Category:T400) has a list of CPUs for this system. The Core 2 Duo P8400, P8600 and P8700 are believed @@ -139,8 +142,7 @@ to work in libreboot. T9600, T9500, T9550 and T9900 are all compatible, as reported by users. -Quad-core CPUs --------------- +### Quad-core CPUs Very likely to be compatible, but requires hardware modification. Based on info from German forum post about installing Core Quad CPU on T500 found in coreboot mailing list. Currently work in progress and no guide available. @@ -148,9 +150,8 @@ Based on info from German forum post about installing Core Quad CPU on T500 foun - [Coreboot mailing list post](https://mail.coreboot.org/pipermail/coreboot/2016-November/082463.html) - [German forum post about install Core Quad on T500](https://thinkpad-forum.de/threads/199129) - A note about GPUs -================= +----------------- Some models have an Intel GPU, while others have both an ATI and an Intel GPU; this is referred to as "switchable graphics". In the *BIOS @@ -163,29 +164,28 @@ Intel GPU is used and the ATI GPU is disabled, so native graphics initialization works all the same. CPU paste required -================== +------------------ See [\#paste](#paste). Flash chip size {#flashchips} -=============== +--------------------------- Use this to find out: flashprog -p internal MAC address {#macaddress} -=========== +------------------------ Refer to [mac\_address.md](mac_address.md). How to flash externally -========================= +----------------------- Refer to [spi.md](spi.md) as a guide for external re-flashing. -The procedure -------------- +### The procedure Remove *all* screws, placing them in the order that you removed them:\ ![](https://av.libreboot.org/t400/0001.jpg) ![](https://av.libreboot.org/t400/0002.jpg) @@ -283,7 +283,7 @@ Refer to the external flashing instructions [here](spi.md), and when you're done, re-assemble your laptop. Thermal paste (IMPORTANT) -========================= +------------------------- Because part of this procedure involved removing the heatsink, you will need to apply new paste. Arctic MX-4 is ok. You will also need isopropyl @@ -300,7 +300,7 @@ show how to properly apply the thermal paste. Other guides online detail the proper application procedure. Memory -====== +------ In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). diff --git a/site/docs/install/t420_external.md b/site/docs/install/t420_external.md index c053962..89bf973 100644 --- a/site/docs/install/t420_external.md +++ b/site/docs/install/t420_external.md @@ -3,12 +3,13 @@ title: ThinkPad T420 external flashing x-toc-enable: true ... -**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR -YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions -there, before flashing. For posterity, -[here is the link again](ivy_has_common.md).** +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +Lenovo ThinkPad T420 laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. -Read the [Ivybridge/Haswell common guide](/docs/install/ivy_has_common.html) if you want more information. Please note, for Thinkpad T420, splitting the rom is not required. The following instructions expect you to have these on hand: + a clone of lbmk, can be obtained from `https://codeberg.org/libreboot/lbmk` @@ -20,6 +21,11 @@ The following instructions expect you to have these on hand: Preparing a release Rom ----------------------- +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](ivy_has_common.md).** + **Please follow this prior to flashing, or you may brick your machine.** Please [inject vendor files](ivy_has_common.md) prior to flashing. You can also diff --git a/site/docs/install/t440p_external.md b/site/docs/install/t440p_external.md index 2a274f3..23c2b37 100644 --- a/site/docs/install/t440p_external.md +++ b/site/docs/install/t440p_external.md @@ -1,16 +1,23 @@ --- -title: ThinkPad T440p external flashing +title: Install Libreboot on Lenovo ThinkPad T440p x-toc-enable: true ... +Open source BIOS/UEFI firmware +------------------------- + +This document will teach you how to install Libreboot, on your +Lenovo ThinkPad T440p laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. + Buy Libreboot preinstalled -========================== +-------------------------- **Minifree now sells the Libreboot T480, instead of the Libreboot T440p. See: ** -Introduction -============ +Safety advice +------------- **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. @@ -31,8 +38,7 @@ root of that project. To do so, run You can now follow the rest of the instructions. -Preparing a release Rom ------------------------ +### Preparing a release Rom **Please follow this prior to flashing, or you may brick your machine.** @@ -41,8 +47,7 @@ use this guide to change the built-in MAC address for your Intel Gigabit Ethernet device; doing so is advisable, because otherwise you will have a default, generic MAC address. -Splitting The Rom ------------------ +### Splitting The Rom You can use `dd` to easily split your rom into the two separate portions for external flashing. @@ -54,9 +59,7 @@ Flash the top chip with top.rom, and tho bottom chip with bottom.rom. Don't worry about knowing which chip is which on a standard setup; flashprog will let you know if the image size is incorrect for the chip you're flashing. - -Disassembly ------------ +### Disassembly Start by removing the back cover screws and the main battery.\ @@ -82,16 +85,17 @@ You should now be able to see the two flash chips near the RAM.\ You can now proceed to [flashing](/docs/install/spi.html) this machine. -`thinkpad_acpi` issues {#thinkpad-acpi} ---------------------------------------- +Errata +------ + +### thinkpad\_acpi issues {#thinkpad-acpi} It has been reported by that `thinkpad_acpi` does not load correctly on the T440p. If you encounter this, check [this page](../../faq.md#thinkpad-acpi) for details as to how to fix this. -Errata -====== +### target names NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer included for Haswell; MRC is a blob for raminit, but we now provide libre diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index c8ba150..ecc4351 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -1,5 +1,5 @@ --- -title: Lenovo ThinkPad T480/T480s information +title: Install Libreboot on Lenovo ThinkPad T480 and/or T480s x-toc-enable: true ... @@ -13,7 +13,7 @@ there, before flashing. For posterity,
    -ThinkPad T480 +Lenovo ThinkPad T480 with Libreboot pre-installed
    | ***Specifications*** | | @@ -58,6 +58,22 @@ P*: Partially works with vendor firmware | **SeaBIOS with GRUB** | Works |
    +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +Lenovo ThinkPad T480 and/or T480s laptop motherboard. Libreboot replaces +proprietary BIOS/UEFI firmware. + +Buy pre-installed +----------------- + +**ThinkPad T480/T480S is available to purchase with Libreboot pre-installed. See: +** + +ThinkPad T480/T480s information +------------------------- + Regarding memory: T480s (S model) has 8GB onboard RAM, and an available DIMM slot on which an additional 32GB SODIMM can be installed. The regular T480 has two DIMM slots, allowing 2x32GB DDR4 SODIMMs. @@ -67,18 +83,6 @@ ports; he is also the author of the deguard utility, which is used to disable the Intel Boot Guard on these machines; disabling the Boot Guard was necessary in order to get coreboot working! -Buy pre-installed -================= - -**ThinkPad T480/T480S is available to purchase with Libreboot pre-installed. See: -** - -Introduction -============ - -**Unavailable in Libreboot 20241008 or earlier. You must [compile from -source](../build/), or alternatively an image from Libreboot 20241206 or higher. - Official information about the T480 can be found here:\ @@ -99,8 +103,7 @@ use this guide to change the built-in MAC address for your Intel Gigabit Ethernet device; doing so is advisable, because otherwise you will have a default, generic MAC address. -Absolutely unsigned Intel ME! ------------------------------ +### Absolutely unsigned Intel ME! Libreboot already disables the Intel ME by default, using `me_cleaner`, but the T480/T480s specifically have an additional quirk: @@ -120,8 +123,7 @@ recent Intel systems in Libreboot, so it's certainly a very interesting port! Libreboot uses both `me_cleaner` *and* `deguard` on the T480/T480s. -What works in this port: ------------------------ +### What works in this port: Intel graphics, internal screen, ethernet, USB, WLAN, HDA verbs (e.g. headphone jack), S3 suspend/resume, M2 NVMe SSDs and SATA, B+M key NVMe SSDs in WWAN slot, @@ -133,7 +135,7 @@ There *are* a few minor exceptions as to what works; this will be covered in other sections of this page. This port is *almost* perfect, but with some caveats. Build images from source -======================== +------------------------ Please refer to the standard [build instructions](../build/) first. @@ -147,10 +149,12 @@ differences in their wiring, so you MUST flash the correct image. Please choose one of the above build targets accordingly.** Installation -============ +------------ -**Insert binary files (DO THIS FIRST)** -------------------- +**Please read carefully**, because *many* prerequisite steps are required +prior to Libreboot installation. + +### Insert binary files (DO THIS FIRST) **If you're using a release ROM**, please ensure that you've inserted extra firmware required. Refer to the [guide](../install/ivy_has_common.md) for that. **(failure @@ -173,8 +177,7 @@ If you're [building from source](../build/) via Libreboot's build system, these files are inserted during build. You only need to manually insert them, using the above linked guide, on the pre-compiled release images! -Set MAC address ---------------- +### Set MAC address This platform uses an Intel Flash Descriptor, and defines an Intel GbE NVM region. As such, release/build ROMs will contain the same MAC address. To @@ -184,8 +187,7 @@ change the MAC address, please read [nvmutil documentation](../install/nvmutil.m argument when using it: `--platform sklkbl`** - otherwise, ifdtool will handle the IFD incorrectly! -Thunderbolt issue (READ THIS BEFORE FLASHING) ------------------- +### Thunderbolt issue (READ THIS BEFORE FLASHING) The thunderbolt firmware on launch units had a bug where certain debug info is written on certain events, such as plugging in a charger to the USB-C @@ -203,6 +205,8 @@ centre of the board, and the ThunderBolt flash near the edge of the board, as it is on the T480, but the T480/T480s use slightly different wiring and they have a slightly different board layout. +#### What is the problem? + If that flash gets full, thunderbolt PCI-E stops working and fast charging stops working, but slow charging still works. The issue can be prevented by updating the firmware. See: @@ -215,6 +219,8 @@ with Lenovo's software-based flasher, if the issue is already present, so you *must* flash externally in that case; you can also flash externally, even if the issue is not yet present. +#### External flashing recommended + The benefit of flashing it *externally* is that you would then no longer need to boot Windows, because there is currently no way of doing it from Linux, and Lenovo does not provide a *boot image* like they do for UEFI updates. So, to @@ -226,6 +232,8 @@ Use the [25XX NOR flashing guide](spi.md) if you need to flash this chip. It's the same guide that you will use for the main system flash, which is a separate flash IC. +#### Download ThunderBolt firmware + The firmware can be extracted from Lenovo's updater, specifically the `.exe` file. For your convenience, lbmk (Libreboot's build system) can download this for you. Run the following commands in lbmk: @@ -248,6 +256,8 @@ size (within the `.exe` file) was 256KB. These files are *also* generated, if you used the `./mk inject` command, on a pre-compiled release image, as documented [here](ivy_has_common.md). +#### Flash the ThunderBolt firmware + **WARNING: DO NOT FLASH IT FIRST; YOU MUST PERFORM SOME PRE-REQUISITE STEPS FIRST, BEFORE FLASHING `tb.bin`**: @@ -303,6 +313,11 @@ make sure to flash the correct one for your board: * T480: `vendorfiles/t480/tb.bin` * T480s: `vendorfiles/t480s/tb.bin` +#### Manual TBT.bin extraction (optional) + +If you already used the `./mk -d` commands above, to grab `tb.bin`, then you +can skip this section. + Libreboot's automated build system has a lot more dependencies. If you want to avoid installing them, and extract the file manually, you can. Simply download the `.exe` file and do this: @@ -325,6 +340,8 @@ the `null.bin` file). Libreboot's build system makes this size configurable per board, on the theory that we may encounter other flash sizes in the future, when we add more ThinkPads of this generation to Libreboot. +#### Continue flashing ThunderBolt firmware + Ok, so you have the file. Now you can flash it. Example: @@ -341,7 +358,7 @@ You can repeat the above steps to restore the old firmware version. This is why you were instructed to make a backup, on the off-chance that you may wish to do so for some reason in the future. -Troubleshooting: +#### ThunderBolt troubleshooting If you accidentally flashed an incorrect firmware image, or you didn't properly erase and boot first before flashing the new image, you can simply repeat the @@ -357,8 +374,7 @@ release after Libreboot 20241206, and many of those have this same issue; when it does, Libreboot will document this fix for those machines too, and probably move these instructions to a dedicated page on the website. -Flash a ROM image (software) ------------------------ +### Flash a Libreboot ROM image (software) If you're already running Libreboot, and you don't have flash protection turned on, [internal flashing](../install/) is possible. @@ -367,8 +383,9 @@ The default Libreboot setup removes all flash restrictions, allowing you to flash internally, from a Linux or BSD systems running on the T480/T480. You must also [disable /dev/mem protections](devmem.md) for internal flashing to work. -Flash a ROM image (hardware) ------------------ +### Flash a ROM Libreboot image (hardware) + +#### Prepare your external programmer **First, please assimilate all knowledge in the [25XX NOR flashing guide](spi.md) - it shows how to program these flash @@ -378,6 +395,12 @@ physically connect to the flash chip.** Again: this is only necessary if you have Lenovo BIOS, or if you enabled [flash write protections](../linux/grub_hardening.md) on an existing Libreboot setup. +#### Update Lenovo firmware first + +*Before* installing Libreboot for the first time, it is important that you +first update the Lenovo UEFI firmware and EC firmware to a *specific* version, +mentioned below. + **MAKE SURE to update the Lenovo UEFI firmware before installing Libreboot. You must also make a dump of the NOR flash, before updating Lenovo's firmware, and once again before flashing Libreboot, being sure you have good dumps.** @@ -414,6 +437,8 @@ BIOS/UEFI updater. Once you've updated, you can flash Libreboot. Please ensure also that you've already dealt with the Thunderbolt issue, which is described above. After all of this, you can flash Libreboot. +#### Disassemble the T480 + Find videos online of how to disassemble this, and/or find Lenovo's own service manual online. Otherwise, observe: @@ -453,13 +478,12 @@ both machines, the system flash (for Libreboot) is toward the centre, near the memory. Post-installation -================= +----------------- These next sections will tell you how to use certain hardware features, which work a little bit differently due to idiosyncrasies of coreboot. -How to use the headphone jack --------------- +### How to use the headphone jack Sometimes the headphone jack might not work automatically. Simply install the `pavucontrol` program. Under Output Devices, you can select the headphones @@ -468,21 +492,18 @@ you've inserted manually. If it says "Unplugged", try it anyway. The HDA Verb may be incorrect. This will be investigated and a hotfix patch made to the Libreboot 20241206 images. -How to use HDMI audio ------------------- +### How to use HDMI audio You can get audio from Displayport/HDMI, but you must select it manually. For example, you can select it in `pavucontrol` if you're using PulseAudio or PipeWire. -Touchscreen on T480 -------------------- +### Touchscreen on T480 The touchscreen was tested, and confirmed working. Not all models have it, but it does indeed work perfectly on ones that do. -How to use backlight controls ------------------------------ +### How to use backlight controls Backlight controls work, via software control (e.g. `xbacklight` utility), but the Fn keys for it don't currently work, as of 6 December 2024. @@ -490,8 +511,10 @@ the Fn keys for it don't currently work, as of 6 December 2024. You can set the backlight manually, or use a hotkey, depending on your window manager or desktop environment. -UART (T480 only. Not T480S) ----- +### UART (T480 only. Not T480S) + +**You need to have first flashed the correct EC firmware version, as detailed +above.** **NOT supported on the S model (T480s). Please only do it on a T480.** @@ -517,8 +540,7 @@ soldering skills because it's easy to goof this up if you're not careful. You can hook this up to any 3.3v TTL UART dongle, to get a serial console. The correct baud rate is 115200. -Idea for 2nd NVMe mod ----------------------- +### Idea for 2nd NVMe mod Interestingly, on boards without the Nvidia graphics, the solder pads for all the componentry (including the GPU) is still present, so you could theoretically @@ -535,13 +557,12 @@ NVMe caddy in the remaining space would be how to go about it there. On the regular T480, the existing caddy area could easily fit two NVMe drives. Errata -====== +------ Some features either don't work, or are untested, when running Libreboot on the ThinkPad T480 or T480s. -Power-on after power failure ----------------------------- +### Power-on after power failure Older Libreboot revisions made this machine always turn on, when plugging in a power supply (charger brick), if a previous power loss was observed. This is @@ -562,19 +583,16 @@ by reading the `tree` variable in your board's `target.cfg` file within lbmk). Use the patch as reference, to modify the coreboot behaviour as you wish, and re-compile [from source](../build/). -TPM disabled ------------- +### TPM disabled The TPM is disabled on this device, to prevent hanging/boot delay in SeaBIOS, due to buggy TPM drivers there. -Legacy 8254 timer ------------------ +### Legacy 8254 timer Legacy 8254 timer enabled in coreboot, to prevent SeaBIOS from hanging. -HyperThreading on T480/T480s ----------------------- +### HyperThreading on T480/T480s Also called SMT. This is a feature where you get 2 threads on a single core. It can improve performance in some workloads, but is actually a performance @@ -600,22 +618,19 @@ For example, if you're compiling a large codebase from source that takes hours, SMT increases the building speed by about 15 percent; for example, a 3 hour build job might take about 2 hours and 40 minutes instead. -NFC support in T480 -------------------- +### NFC support in T480 Some T480 models might have NFC support but this is untested in Libreboot, and probably dosen't work in current Libreboot releases. The PCH's NFC device is unsupported in Linux anyway. -Smartcard reader ----------------- +### Smartcard reader The smartcard reader is enabled but it is still untested. If you have one, please test it and report back to the Libreboot project. -Thunderbolt not supported yet ------------------------------ +### Thunderbolt not supported yet Thunderbolt is a way to get PCI-E on a USB port. With it, you can use high-bandwidth devices such as 10Gbps network interfaces. @@ -698,16 +713,16 @@ from S3 (resume from sleep). If you do test this, please report whether the Thunderbolt devices actually work, but remember that you must NOT suspend or put your machine to sleep.** -Nvidia dGPU not supported -------------------------- +### Nvidia dGPU not supported Nvidia dGPU doesn't work and is disabled as of 6 December 2024; the Intel graphics are still available even on Nvidia models, so Intel graphics are used. +### WWAN cards + B+M key NVMe SSDs in WWAN slot works, other cards are untested. -`thinkpad_acpi` issues {#thinkpad-acpi} ---------------------------------------- +### thinkpad\_acpi issues {#thinkpad-acpi} It has been reported that `thinkpad_acpi` does not load correctly on the T480. This should also be the case for the T480s. diff --git a/site/docs/install/t500.md b/site/docs/install/t500.md index 5226153..7beaa1a 100644 --- a/site/docs/install/t500.md +++ b/site/docs/install/t500.md @@ -1,5 +1,5 @@ --- -title: ThinkPad T500 external flashing +title: Install Libreboot on Lenovo ThinkPad T500 and/or W500 x-toc-enable: true ... @@ -51,16 +51,12 @@ P*: Partially works with vendor firmware | **SeaBIOS with GRUB** | Works | -Dell Latitude E6400 -=================== +Open source BIOS/UEFI firmware +------------------------- -**If you haven't bought an T500 yet: the [Dell Latitude -E6400](../install/latitude.md) is much easier to flash; no disassembly required, -it can be flashed entirely in software from Dell BIOS to Libreboot. It is the -same hardware generation (GM45), with same CPUs, video processor, etc.** - -Introduction -============ +This document will teach you how to install Libreboot, on your +Lenovo ThinkPad T500 or ThinkPad W500 laptop motherboard. Libreboot replaces +proprietary BIOS/UEFI firmware. It is believed that all or most T500 laptops are compatible. See notes about [CPU @@ -86,8 +82,16 @@ now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** +Dell Latitude E6400 +------------------- + +**If you haven't bought an T500 yet: the [Dell Latitude +E6400](../install/latitude.md) is much easier to flash; no disassembly required, +it can be flashed entirely in software from Dell BIOS to Libreboot. It is the +same hardware generation (GM45), with same CPUs, video processor, etc.** + EC update {#ecupdate} -========= +------------------- It is recommended that you update to the latest EC firmware version. The [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from @@ -109,7 +113,7 @@ The T500 is almost identical to the X200, code-wise. See [x200.md](x200.md). Installation notes -================== +------------------ [External flashing](spi.md) required, if Lenovo BIOS is running. @@ -119,15 +123,14 @@ followed (adapted) if you brick your T500, to know how to recover. W500 is also mostly compatible with this guide. -Serial port {#serial_port} ------------ +### Serial port {#serial_port} EHCI debug might not be needed. It has been reported that the docking station for this laptop has a serial port, so it might be possible to use that instead. A note about CPUs -================= +----------------- [ThinkWiki](http://www.thinkwiki.org/wiki/Category:T500) has a list of CPUs for this system. The Core 2 Duo P8400, P8600 and P8700 are believed @@ -137,8 +140,8 @@ confirmed working. T9550 and T9900 was tested by a user, and is compatible as reported in the IRC channel. T9500 and T9400 may also work, but YMMV. -Quad-core CPUs --------------- +### Quad-core CPUs + Very likely to be compatible, but requires hardware modification. Based on info from German forum post about installing Core Quad CPU on T500 found in coreboot mailing list. Currently work in progress and no guide available. @@ -154,7 +157,7 @@ everything nicely: A note about GPUs -================= +----------------- Some models have an Intel GPU, while others have both an ATI and an Intel GPU; this is referred to as "switchable graphics". In the *BIOS @@ -167,29 +170,28 @@ Intel GPU is used and the ATI GPU is disabled, so native graphics initialization works all the same. CPU paste required -================== +------------------ See [\#paste](#paste). Flash chip size {#flashchips} -=============== +----------------------------- Use this to find out: flashprog -p internal MAC address {#macaddress} -=========== +------------------------ Refer to [mac\_address.md](mac_address.md). Clip wiring -=========== +----------- Refer to [spi.md](spi.md) as a guide for external re-flashing. -The procedure -------------- +### The procedure Remove all screws:\ ![](https://av.libreboot.org/t500/0000.jpg)\ @@ -292,7 +294,7 @@ Connect your programmer, then connect GND and 3.3V\ Now flash Libreboot. Thermal paste (IMPORTANT) -========================= +------------------------- Because part of this procedure involved removing the heatsink, you will need to apply new paste. Arctic MX-4 is ok. You will also need isopropyl @@ -309,7 +311,7 @@ show how to properly apply the thermal paste. Other guides online detail the proper application procedure. Wifi -==== +---- It is recommended that you install a new wifi chipset. This can only be done after installing libreboot, because the original firmware has a @@ -321,7 +323,7 @@ the Intel chip that this T500 came with:\ ![](https://av.libreboot.org/t400/0012.jpg) ![](https://av.libreboot.org/t400/ar5b95.jpg) WWAN -==== +---- If you have a WWAN/3G card and/or sim card reader, remove them permanently. The WWAN-3G card has DMA, and proprietary firmware inside; @@ -331,7 +333,7 @@ also track your movements. Not to be confused with wifi (wifi is fine). Memory -====== +------ In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). diff --git a/site/docs/install/t60_unbrick.md b/site/docs/install/t60_unbrick.md index e12010e..14f8027 100644 --- a/site/docs/install/t60_unbrick.md +++ b/site/docs/install/t60_unbrick.md @@ -3,6 +3,14 @@ title: ThinkPad T60 Recovery guide x-toc-enable: true ... +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +Lenovo Thinkpad T60 motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. *This* version of the guide shows you how to +flash using external hardware, which can be useful for un-bricking. + **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in diff --git a/site/docs/install/w541_external.md b/site/docs/install/w541_external.md index 097136f..e439ba1 100644 --- a/site/docs/install/w541_external.md +++ b/site/docs/install/w541_external.md @@ -1,24 +1,26 @@ --- -title: ThinkPad W541/W540 external flashing +title: Install Libreboot on Lenovo ThinkPad W541 and/or W540 x-toc-enable: true ... -NOTE: The same image for W541 also works on the W540, as the motherboard is -identical. +Open source BIOS/UEFI firmware +------------------------- + +This document will teach you how to install Libreboot, on your +Lenovo ThinkPad W541 and/or W540 laptop motherboard. Libreboot replaces +proprietary BIOS/UEFI firmware. + +NOTE: The same image for W541 also works on the W540, as the motherboards are +identical for coreboot purposes. Buy Libreboot preinstalled -========================== +-------------------------- **Minifree now sells the Libreboot T480, instead of the Libreboot W541. See: ** -Introduction -============ - -**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. -The reason why was explained, in -the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** +Safety advice +------------- **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](ivy_has_common.md), OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions @@ -34,6 +36,11 @@ root of that project. To do so, run You can now follow the rest of the instructions. +**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) +now, as of 27 January 2024, which is a fork of flashrom. +The reason why was explained, in +the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** + Preparing a release Rom ----------------------- @@ -99,7 +106,7 @@ used when flashing either of the chips. You can now proceed to [flashing](/docs/install/spi.html) this machine. -`thinkpad_acpi` issues {#thinkpad-acpi} +thinkpad\_acpi issues {#thinkpad-acpi} --------------------------------------- It has been reported by a user that `thinkpad_acpi` does not load correctly on @@ -110,7 +117,7 @@ If you encounter this, check [this page](../../faq.md#thinkpad-acpi) for details as to how to fix this. Errata -====== +------ NOTE: As of Libreboot releases from May 2024 onward, the Intel MRC is no longer included for Haswell; MRC is a blob for raminit, but we now provide libre diff --git a/site/docs/install/x200.md b/site/docs/install/x200.md index 8c65f11..8287ae5 100644 --- a/site/docs/install/x200.md +++ b/site/docs/install/x200.md @@ -1,5 +1,5 @@ --- -title: First-time ThinkPad X200 flashing +title: Install Libreboot on Lenovo ThinkPad X200 / X200s / X200 Tablet x-toc-enable: true ... @@ -18,7 +18,7 @@ x-toc-enable: true | **Graphics** | Intel GMA X4500MHD | | **Display** | 1280x800/1440x900 TFT | | **Memory** | 1,2,3 or 4GB (Upgradable to 8GB, unofficially) | -| **Architecture** | x86_64 | +| **Architecture** | x86\_64 | | **EC** | Proprietary | | **Original boot firmware** | LenovoBIOS | | **Intel ME/AMD PSP** | Present. Can be completly disabled. | @@ -49,16 +49,12 @@ P*: Partially works with vendor firmware | **SeaBIOS with GRUB** | Works | -Dell Latitude E6400 -=================== +Open source BIOS/UEFI firmware +------------------------- -**If you haven't bought an X200 yet: the [Dell Latitude -E6400](../install/latitude.md) is much easier to flash; no disassembly required, -it can be flashed entirely in software from Dell BIOS to Libreboot. It is the -same hardware generation (GM45), with same CPUs, video processor, etc.** - -Introduction -============ +This document will teach you how to install Libreboot, on your +Lenovo ThinkPad X200, X200s or X200 Tablet laptop motherboard. Libreboot +replaces proprietary BIOS/UEFI firmware. It is believed that all X200 laptops are compatible. X200S and X200 Tablet will also work, [depending on the configuration](#x200s). @@ -84,8 +80,16 @@ now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** +Dell Latitude E6400 +------------------- + +**If you haven't bought an X200 yet: the [Dell Latitude +E6400](../install/latitude.md) is much easier to flash; no disassembly required, +it can be flashed entirely in software from Dell BIOS to Libreboot. It is the +same hardware generation (GM45), with same CPUs, video processor, etc.** + EC update {#ecupdate} -========= +--------------------- It is recommended that you update to the latest EC firmware version. The [EC firmware](../../faq.md#ec-embedded-controller-firmware) is separate from @@ -106,7 +110,7 @@ Updated EC firmware has several advantages e.g. better battery handling. Battery Recall {#batteryrecall} -============== +------------------------------ [On 21 April 2015, Lenovo expanded a recall on Lenovo batteries found in some ThinkPad models, which includes the X200 and X200S.](https://pcsupport.lenovo.com/cr/en/solutions/hf004122) To find out if you are affected, use [this Lenovo tool.](https://lenovobattery2014.orderz.com/) @@ -165,14 +169,13 @@ Sources: Mod](http://forum.thinkpads.com/viewtopic.php?p=660662#p660662) - [ThinkWiki.de - X200 Displayumbau](http://thinkwiki.de/X200_Displayumbau) -### X200S +#### X200S explains that the X200S screens/assemblies are thinner. You need to replace the whole lid with one from a normal X200/X201. -How to tell if it has an LED or CCFL? {#led_howtotell} -------------------------------------- +### How to tell if it has an LED or CCFL? {#led_howtotell} Some X200s have a CCFL backlight and some have an LED backlight, in their LCD panel. This also means that the inverters will vary, so you must be careful if @@ -186,7 +189,7 @@ a lamp which contains mercury; dispose according to local, state or federal laws"* (one with an LED backlit panel will say something different). Installation notes -================== +------------------ [External flashing](spi.md) required, if running Lenovo BIOS. @@ -202,20 +205,17 @@ re-flash the chip externally while it is powered off with the battery removed. NOTE: This guide only applies to the regular X200. For X200S and X200 Tablet flashing, please read other guides available on libreboot.org. -Flash chip size -=============== +### Flash chip size Run this command on x200 to find out flash chip model and its size: flashprog -p internal -MAC address -=========== +### MAC address Refer to [mac\_address.md](mac_address.md). -The procedure -------------- +### The procedure This section is for the X200. This does not apply to the X200S or X200 Tablet (for those systems, you have to remove the motherboard @@ -250,7 +250,7 @@ When you're done, put the system back together. If it doesn't boot, try other RAM modules because raminit is very unreliable on this platform (in coreboot). Memory -====== +------ In DDR3 machines with Cantiga (GM45/GS45/PM45), northbridge requires sticks that will work as PC3-8500 (faster PC3/PC3L sticks can work as PC3-8500). @@ -276,8 +276,10 @@ You should see something like this: Now [install Linux](../linux/). -X200S and X200 Tablet users: GPIO33 trick will not work. --------------------------------------------------------- +Errata +------ + +### X200S and X200 Tablet users: GPIO33 trick will not work. sgsit found out about a pin called GPIO33, which can be grounded to disable the flashing protections by the descriptor and stop the ME from diff --git a/site/docs/install/x200.uk.md b/site/docs/install/x200.uk.md index b1ce8af..7064ab2 100644 --- a/site/docs/install/x200.uk.md +++ b/site/docs/install/x200.uk.md @@ -18,7 +18,7 @@ x-toc-enable: true | **Графіка** | Intel GMA X4500MHD | | **Дісплей** | 1280x800/1440x900 TFT | | **Пам'ять** | 1,2,3 or 4GB (оновлюється до 8GB, неофіційно) | -| **Архітектура** | x86_64 | +| **Архітектура** | x86\_64 | | **EC** | Пропрієтарний | | **Оригінальна прошивка** | LenovoBIOS | | **Intel ME/AMD PSP** | Наявний. Можна повністю вимкнути. | @@ -50,7 +50,7 @@ P*: Частково працює з бінарними компонентами Вступ -============ +----- Вважається що всі ноутбуки X200 сумісні. X200S та X200 Tablet також працюватимуть, [залежно від конфігурації](#x200s). @@ -77,7 +77,7 @@ The reason why was explained, in the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** Оновлення EC {#ecupdate} -========= +------------------------ Рекомендується оновити мікропрограму EC до останньої версії. [Прошивка EC](../../faq.md#ec-embedded-controller-firmware) є окремою від @@ -98,7 +98,7 @@ Lenovo BIOS, ви можете просто запустити утиліту о з акумулятором. Відкликання батареї {#batteryrecall} -============== +------------------------------------ [21 квітня 2015 року, Lenovo розширила відкликання акумуляторів Lenovo, які були встановлені в деяких моделях Thinkpad, зокрема X200 та X200S.](https://pcsupport.lenovo.com/cr/en/solutions/hf004122) Щоб дізнатися, чи вас це стосується, використовуйте [цей інструмент Lenovo.](https://lenovobattery2014.orderz.com/) @@ -107,8 +107,7 @@ Lenovo радить власникам відкликаних моделей "в Після перевірки батареї, Lenovo безкоштовно замінить відкликані батареї. Інструкції щодо заміни батареї для X200/X200s [можна знайти на цій сторінці.](https://pcsupport.lenovo.com/cr/en/parts/pd003507/) -Список сумісності LCD {#lcd_supported_list} ----------------------- +### Список сумісності LCD {#lcd_supported_list} Список РК-панелей (там перераховані панелі X200): @@ -157,14 +156,13 @@ Lenovo радить власникам відкликаних моделей "в Mod](http://forum.thinkpads.com/viewtopic.php?p=660662#p660662) - [ThinkWiki.de - X200 Displayumbau](http://thinkwiki.de/X200_Displayumbau) -### X200S +#### X200S пояснює, що екрани/блоки X200S тонші. Вам потрібно замінити всю кришку на одну від звичайного X200/X201. -Як визначити, чи у нього LED, чи CCFL? {#led_howtotell} -------------------------------------- +### Як визначити, чи у нього LED, чи CCFL? {#led_howtotell} Деякі X200 мають підсвічування CCFL, а деякі - світлодіодне підсвічування на РК-панелі. Це також означає, що інвертори відрізнятимуться, тому ви повинні бути обережними, @@ -178,7 +176,7 @@ CCFL містять меркурій. На X200 з CCFL підсвіткою (я законів"* (на тому, що має світлодіодне підсвічування, буде написано щось інше). Installation notes -================== +------------------ [External flashing](spi.md) required, if running Lenovo BIOS. @@ -195,19 +193,18 @@ Installation notes будь-ласка прочитайте інші посібники, доступні на libreboot.org. Розмір флеш-чіпа -=============== +---------------- Виконайте цю команду на x200, щоб дізнатися модель флеш-чіпа та його розмір: flashprog -p internal MAC адреса -=========== +---------- Зверніться до [mac\_address.md](mac_address.md). -Процедура -------------- +### Процедура Цей розділ стосується X200. Цей не стосується X200S або X200 Tablet (для цих систем потрібно повністю видалити материнську плату, @@ -242,7 +239,7 @@ Tablet (для цих систем потрібно повністю видал модулі оперативної пам'яті, тому що raminit дуже ненадійний на цій платформі (в coreboot). Пам'ять -====== +------- У машинах DDR3 з Cantiga (GM45/GS45/PM45), північний міст потребує стіків, які працюватимуть як PC3-8500 (швидші стіки PC3/PC3L можуть працювати як PC3-8500). @@ -259,8 +256,7 @@ Tablet (для цих систем потрібно повністю видал ![](https://av.libreboot.org/x200/disassembly/0018.jpg) -Завантажуйтесь! --------- +### Завантажуйтесь! Ви маєте побачити щось подібне цьому: @@ -268,8 +264,7 @@ Tablet (для цих систем потрібно повністю видал Тепер [встановлюйте Linux](../linux/). -Користувачі X200S та X200 Tablet: трюк GPIO33 не спрацює. --------------------------------------------------------- +### Користувачі X200S та X200 Tablet: трюк GPIO33 не спрацює. sgsit дізнався про контакт під назвою GPIO33, який можна заземлити, щоб вимкнути захист прошивки за допомогою дескриптора та зупинити ME від diff --git a/site/docs/install/x230_external.md b/site/docs/install/x230_external.md index 80bd2c4..1b89e18 100644 --- a/site/docs/install/x230_external.md +++ b/site/docs/install/x230_external.md @@ -3,6 +3,13 @@ title: ThinkPad X230/X230T external flashing x-toc-enable: true ... +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +Lenovo ThinkPad X230 laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. + **Minifree now sells the Libreboot T480, instead of the Libreboot X230. See: ** diff --git a/site/docs/install/x60_unbrick.md b/site/docs/install/x60_unbrick.md index 74107d0..3ec2b92 100644 --- a/site/docs/install/x60_unbrick.md +++ b/site/docs/install/x60_unbrick.md @@ -1,8 +1,15 @@ --- -title: ThinkPad X60 Recovery guide +title: Install Libreboot on Lenovo ThinkPad X60 x-toc-enable: true ... +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +Lenovo ThinkPad X60 laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. + **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in diff --git a/site/docs/install/x60tablet_unbrick.md b/site/docs/install/x60tablet_unbrick.md index f3ab37c..13a29ca 100644 --- a/site/docs/install/x60tablet_unbrick.md +++ b/site/docs/install/x60tablet_unbrick.md @@ -1,8 +1,15 @@ --- -title: ThinkPad X60 Tablet Recovery guide +title: Install Libreboot on Lenovo ThinkPad X60 Tablet x-toc-enable: true ... +Open source BIOS/UEFI firmware +------------------------------ + +This document will teach you how to install Libreboot, on your +Lenovo Thinkpad X60 Tablet laptop motherboard. Libreboot replaces proprietary +BIOS/UEFI firmware. + **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in diff --git a/site/docs/linux/grub_boot_installer.md b/site/docs/linux/grub_boot_installer.md index 4876ad1..d7a48a3 100644 --- a/site/docs/linux/grub_boot_installer.md +++ b/site/docs/linux/grub_boot_installer.md @@ -1,9 +1,10 @@ --- -title: Installing Linux +title: Boot Linux distro installers on Libreboot x-toc-enable: true ... -# Introduction +GRUB payload assumed +-------------------- This guide assumes that you are using the GRUB bootloader directly. If you're using SeaBIOS, it's quite intuitive and works similarly to other BIOS @@ -17,7 +18,9 @@ Linux distributions, by default). These instructions are intended to be generic, applicable to just about any Linux distribution. -## Prepare the USB Drive in Linux +Prepare the USB Drive in Linux +------------------------------ + If you downloaded your ISO while on an existing Linux system, here is how to create the bootable Linux USB drive: @@ -40,19 +43,25 @@ folder, this is the command we would run: That's it! You should now be able to boot the installer from your USB drive (the instructions for doing so will be given later). -## Prepare the USB drive in NetBSD +Prepare the USB drive in NetBSD +------------------------------- + [This page](https://wiki.netbsd.org/tutorials/how_to_install_netbsd_from_an_usb_memory_stick/) on the NetBSD website shows how to create a NetBSD bootable USB drive, from within NetBSD itself. You should the `dd` method documented there. This will work with any Linux ISO image. -## Prepare the USB drive in FreeBSD +Prepare the USB drive in FreeBSD +-------------------------------- + [This page](https://www.freebsd.org/doc/handbook/bsdinstall-pre.html) on the FreeBSD website shows how to create a bootable USB drive for installing FreeBSD. Use the `dd` method documented. This will work with any Linux ISO image. -## Prepare the USB drive in LibertyBSD or OpenBSD +Prepare the USB drive in OpenBSD +-------------------------------- + If you downloaded your ISO on a LibertyBSD or OpenBSD system, here is how to create the bootable Linux USB drive: @@ -78,14 +87,17 @@ the OpenBSD installer to it with `dd`. Here's an example: That's it! You should now be able to boot the installer from your USB drive (the instructions for doing so will be given later). -## GRUB2 config on external media +GRUB2 config on external media +------------------------------- Pick the menu option: *Search for GRUB2 configuration on external media* If the distro installer image has a `grub.cfg` file inside, this menuentry is scripted to find it. This works well for many distros. -## Debian or Devuan net install +Debian or Devuan net installation +--------------------------------- + Download the Debian or Devuan net installer. You can download the Debian ISO from [the Debian homepage](https://www.debian.org/), or the Devuan ISO from [the Devuan homepage](https://www.devuan.org/). @@ -97,12 +109,16 @@ You can select the option, in the Libreboot GRUB menu, to load GRUB config from external media, and that should work just fine. Alternatively, pick one of the ISOLINUX-related menu options. -## Booting ISOLINUX Images (Automatic Method) +Booting ISOLINUX Images (Automatic Method) +------------------------------------------ + Boot it in GRUB using the `Parse ISOLINUX config (USB)` option. A new menu should appear in GRUB, showing the boot options for that distro; this is a GRUB menu, converted from the usual ISOLINUX menu provided by that distro. -## Booting ISOLINUX Images (Manual Method) +Booting ISOLINUX Images (Manual Method) +--------------------------------------- + These are generic instructions. They may or may not be correct for your distribution. You must adapt them appropriately, for whatever Linux distribution it is that you are trying to install. @@ -152,7 +168,11 @@ to see a list of USB devices/partitions. Of course, this will vary from distro to distro. If you did all of that correctly, then it should now be booting your USB drive in the way that you specified. -## Troubleshooting +Troubleshooting +--------------- + +### Display modes + Most of these issues occur when using libreboot with coreboot's `text-mode` with libgfxinit for video initialization. This mode is useful for text mode payloads, like `MemTest86+`, which expect `text-mode`, but for Linux @@ -162,6 +182,7 @@ do Kernel Mode Setting, so they are able to initialize a frame buffer in bare metal regardless of whatever coreboot is doing). ### debian-installer Graphical Corruption in Text-Mode (Debian and Devuan) + When using the ROM images that use Coreboot's `text mode`, instead of the coreboot framebuffer, while using libgfxinit, booting the Debian or Devuan net installer results in graphical corruption, because it is trying to switch to a diff --git a/site/docs/linux/grub_cbfs.md b/site/docs/linux/grub_cbfs.md index 3f7a1fc..8406397 100644 --- a/site/docs/linux/grub_cbfs.md +++ b/site/docs/linux/grub_cbfs.md @@ -3,12 +3,21 @@ title: Modifying grub.cfg in CBFS x-toc-enable: true ... +Configure boot order and so on +------------------------------ + Read [Libreboot flashing guides](../install/) before continuing, and make sure to back up the current flash contents before you consider following this guide. Before you follow this guide, it is advisable that you have the ability to [flash externally](../install/spi.md), just in case something goes wrong. +Libreboot's *GRUB* payload is much more flexible than most other types of boot +payload, but can sometimes require hands-on configuration depending on what you +want to do. + +### Why modify the configuration? + Libreboot's own GRUB configuration automatically scans for one provided by your distro, and this automation will usually work. Sometimes, you might wish to override it with your own custom menuentry or additional logic in the GRUB @@ -17,10 +26,11 @@ to actually *put in the config* will not be covered here. This guide will simply teach you how to modify the config, but not what to put, whereas the [GRUB hardening](../linux/grub_hardening.md) guide specifically -says what to modify; cross reference that page and this page. +says what to modify; cross reference that page and this page, if you want to +follow the GRUB hardening guide. Otherwise, this page contains generic guidance. **Disable security before continuing** -================================ +-------------------------------------- **Before internal flashing, you must first disable `/dev/mem` protections. Make sure to re-enable them after you're finished.** @@ -32,12 +42,11 @@ flashing, from an existing installation. If you're externally flashing the machine, you can ignore this advice. Build dependencies -================== +------------------ **Please first [install build dependencies](../build/).** -Coreboot utilities ------------------- +### Coreboot utilities You need `cbfstool` from coreboot. For whatever board you have, check which coreboot tree it uses in Libreboot's build system, lbmk. For example, let's @@ -59,8 +68,7 @@ This will result in the following binary: `elf/cbfstool/default/cbfstool` We won't assume the path to cbfstool, in the remainder of this guide, so adapt accordingly. -GRUB utilities --------------- +### GRUB utilities Again, let's assume the coreboot board is `x200_8mb`. Check the file `config/coreboot/x200_8mb/target.cfg` for `grubtree` - if it's not set, @@ -72,8 +80,7 @@ This will compile GRUB for the given tree. If you need to use any of the GRUB utilities, this command will build them and in this example, they will be available under `src/grub/default/`. -Flashprog ---------- +### Flashprog Compile flashprog like so: @@ -82,7 +89,7 @@ Compile flashprog like so: A binary will appear at `elf/flashprog/flashprog`. Default GRUB config -=================== +------------------- The coreboot image has its own filesystem, CBFS, and within CBFS is the GRUB binary, and within the GRUB binary is another filesystem called memdisk, where @@ -91,10 +98,9 @@ the default GRUB configuration is located. You can override it by inserting your own GRUB config within CBFS. Acquiring a GRUB config -======================= +----------------------- -Dump the boot flash -------------------- +### Dump the boot flash This is only useful if you already inserted a GRUB config in CBFS. Otherwise, you can grab it from Libreboot's build system, lbmk. @@ -105,8 +111,7 @@ look at the [main flashing guide](../install/). Those guides show how to dump the flash contents, which you are advised to do. -Default GRUB config location ----------------------------- +### Default GRUB config location We'll assume that your GRUB tree is `default`, so the file `config/grub/default/config/payload` is your GRUB config; this will be the @@ -116,7 +121,7 @@ Modify *that* file, or the one you extracted if you already inserted a custom one before, and you will re-insert it when you're done. Insert grubtest.cfg -=================== +------------------- Before reading the next section, please note: if you only have the fallback GRUB config in memdisk, and no configs in CBFS, you can test the modified @@ -128,7 +133,7 @@ Libreboot will not automatically load it, but it will be available from the default GRUB menu. This can be useful for test purposes, hence the name. Insert new grub.cfg -=================== +------------------- If you already have a `grub.cfg` in cbfstool, you can extract and modify that one, e.g.: @@ -155,7 +160,7 @@ test config from the default menu, before deciding whether to make it the main config, as `grub.cfg`, overriding the one in GRUB memdisk. Flash the modified ROM image -============================ +---------------------------- Check the [Libreboot flashing guide](../install/) which says how to flash the new image. diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index c8d57d5..00875d6 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -1,18 +1,47 @@ --- -title: Hardening GRUB +title: Hardening GRUB (i.e. Secure libreBoot) x-toc-enable: true ... +What is Secure libreBoot? +------------------------- + +Libreboot provides open source BIOS/UEFI firmware, replacing proprietary +BIOS/UEFI firmware, and that precisely is Libreboot primary mission; Libreboot +is a [Free Software](https://writefreesoftware.org/learn) project, *first*. +Our *next* priority is to provide you with *highly secure* boot firmware, free +from backdoors and with well-audited code. *This* document does just that, by +telling you how to *harden* your Libreboot installation against various physical +access attacks. + +### Not UEFI SecureBoot! + +UEFI SecureBoot was invented by Microsoft for booting Microsoft Windows. We +don't use UEFI SecureBoot in the Libreboot project, because UEFI SecureBoot +is *completely inferior* to Libreboot's security model. We call our own +security model *Secure libreBoot* and we use neither BIOS nor UEFI; we use GRUB! + +*Strong encryption* is the name of the game. You will use the *GRUB payload*. GRUB supports various security mechanisms that are not enabled by default. This page will tell you how to enable them, for the purpose of boot security, both detecting and attempting to prevent certain types of attack. +Please also expect to brick your machine at least once, because many of these +changes are highly invasive and may even require you to *modify source code*. **Make sure you have an [external SPI programmer](../install/spi.md), for recovery purposes, just in case you brick your machine. The modifications -documented here are highly invasive and it would be easy to make mistakes.** +documented here are highly invasive. An external SPI programmer can be used +to restore the previous working state, should a brick occur.** + +Libreboot's design philosophy is that the most non-technical user must be +catered to first, which means that certain security hardening steps are skipped +by default. With the steps documented here, you will be able to thwart many +types of physical attack on your machine. Many of the types of configurations +documented here are *unique*, and available only in Libreboot! (or otherwise +only *practical* in Libreboot) Full disk encryption -==================== +-------------------- [Encrypted /boot with LUKS2 on argon2 key derivation is now possible](../../news/argon2.md) - the work is based on that done by @@ -33,7 +62,7 @@ You are advised to do this *first*, because steps below depend on certain configuration changes to be made on your installed Linux distro. **Dependencies (do this first)** -============================= +-------------------------------- **Please read this: [Modifying GRUB in CBFS](grub_cbfs.md)** @@ -42,15 +71,14 @@ which tells you what modifications to actually perform, whereas the guide linked above tells you how to apply your modifications for flashing.** Flash write protection -====================== +---------------------- Although not strictly related to GRUB, flash protection will prevent anyone except you from overwriting the flash without permission. This is important, because you don't want some malicious software running as root from overwriting your flash, thus removing any of the above protections. -Build-time write protect ---------------------------- +### Build-time write protect Let's assume your board is `x200_8mb`, do: @@ -82,8 +110,7 @@ Anyway, when you're done, save the config and then build it from source in lbmk. See: [build from source](../build/) -IFD-based flash protection --------------------------- +### IFD-based flash protection **NOTE: This CAN cause bricks on a lot of machines. You should use this with care. The FLILL and/or PRx based methods are more reliable - also SMM methods. @@ -103,8 +130,7 @@ version matching the coreboot tree for your mainboard. Note that this only works for Intel-based systems that use an Intel Flash Descriptor, which is actually most Intel systems that Libreboot supports. -Other facts ------------ +### Other facts Strapping `HDA_SDO` or `HDA_DOCK_EN` requires physical access, because you have to short a pin on the HDA chip on the motherboard, or there will be a header @@ -121,8 +147,7 @@ Enable `CONFIG_STRICT_DEVMEM` in your Linux kernel, or set `securelevel` above zero on your BSD setup (but BSD cannot be booted with GRUB very easily so it's a moot point). -FLILL ------ +### FLILL On Intel Flash Descriptor, you can insert up to four (4) commands on a list within, called *FLILL*; not yet documented, but any SPI command listed here @@ -130,14 +155,13 @@ would no longer work during internal flash operations. For example, you could use it to disable certain erase/write commands. You could also use it to disable *reads*. -PRx registers -------------- +### PRx registers Protected Range registers are available on Intel platforms, to disable flash writes. This is not yet documented, and it varies per platform. -GRUB Password -============= +GRUB password +------------- The security of this setup depends on a good GRUB password as GPG signature checking can be disabled through the GRUB console with this command: @@ -175,7 +199,7 @@ GRUB will also ask for a username in addition to the password; the "root" user is specified above, but you can cahnge it to whatever you want. Unset superusers -================ +---------------- Find this line in `grub.cfg`: @@ -190,7 +214,7 @@ because `unset superusers` in fact disables passwordh authentication, so it's very important that you comment out this line. Disable the SeaBIOS menu -==================== +------------------------ **Very important. Make sure you read this carefully.** @@ -218,8 +242,7 @@ Release images with `seagrub` in the name already have this bootorder file, so you only need to disable the menu on these images. If you have the image with `seabios` in the name (instead of `seagrub`), you must do both. -SeaBIOS option ROMs -------------------- +### SeaBIOS option ROMs SeaBIOS will also still execute PCI option ROMs. Depending on your preference, you may wish to disable this, but please note that this will break certain @@ -229,8 +252,7 @@ things like graphics cards. More information is available here: If you're using a graphics card, you *need* VGA option ROMs at least. -GRUBSEA -------- +### GRUBSEA Another option is to make it so that GRUB is the primary payload on your board. In this setup, SeaBIOS and U-Boot are still available. @@ -250,7 +272,7 @@ and disable the SeaBIOS menu, making SeaBIOS load only GRUB; SeaGRUB is useful because GRUB will piggyback off of the VGA setup done by SeaBIOS first. GPG keys -======== +-------- First, generate a GPG keypair to use for signing. Option RSA (sign only) is ok. @@ -292,7 +314,7 @@ into CBFS, using instructions already provided on the GRUB CBFS guide linked above, earlier on in this guide. Enforce GPG check in GRUB -========================= +------------------------- The following must be present in `grub.cfg`, but please note that the background image used by GRUB is in the memdisk by default, not CBFS, so you @@ -311,7 +333,7 @@ the GRUB CBFS guide that was also linked above, earlier on in the article you're currently reading. Install the new image -===================== +--------------------- Now simply flash the new image, using the [flashing instructions](../install/). @@ -322,8 +344,29 @@ and the system is now unbootable, that's OK because you can use an external flasher; please read [external flashing instructions](../install/spi.md) +Linux kernel hardening +---------------------- + +You may also wish to compile your own kernel, because distro kernels will always +have code in the same place, so attackers are more easily able to know exactly +where to attack your kernel (ROP-based attacks). + +The Whonix/KickSecure Linux projects have guidance about Linux kernel +hardening: + +* +* +* + +There's info there about userspace too, but start with kernel first. Libreboot +is a boot firmware project, so Linux kernel hardening is beyond the scope of +the Libreboot project documentation, **for now**. + +(for now, because Libreboot may in fact provide a Linux distro in the flash +at some point, and this page will definitely be updated when that happens) + References -========== +---------- * [GRUB manual](https://www.gnu.org/software/grub/manual/html_node/Security.html#Security) * [GRUB info pages](http://git.savannah.gnu.org/cgit/grub.git/tree/docs/grub.texi) diff --git a/site/docs/linux/index.md b/site/docs/linux/index.md index bb17991..fc80616 100644 --- a/site/docs/linux/index.md +++ b/site/docs/linux/index.md @@ -1,10 +1,15 @@ --- -title: Linux guides +title: Install Linux on a Libreboot system x-toc-enable: true ... +Booting Linux from GRUB payload +------------------------------- + NOTE: This guide pertains to x86 hosts, and does not cover supported CrOS/ARM -chromebooks. For ARM targets, you should refer to u-boot documentation. +chromebooks. For ARM targets, you should refer +to [u-boot documentation](../uboot/) - separate [U-Boot x86 +documentation](../uboot/uboot-x86.md) is also available. This page is useful for those who wish to use the GRUB GRUB payload directly. If you're using SeaBIOS, the boot process will work similarly to traditional @@ -14,48 +19,19 @@ on Linux is generally assumed, especially for Libreboot development, but Libreboot also works quite nicely with [BSD systems](../bsd/). -Useful links -============ +### Useful links -Refer to the following pages: +Refer to these pages, hosted by the Libreboot project: * [How to Prepare and Boot a USB Installer in libreboot Systems](grub_boot_installer.md) * [Modifying the GRUB Configuration in libreboot Systems](grub_cbfs.md) * [How to Harden Your GRUB Configuration, for Security](grub_hardening.md) -NOTE ABOUT VGA MODES and GRUB -============================= - -Libreboot does not support switching VGA modes, when coreboot's libgfxinit is -used on Intel GPUs. Many distros will install GRUB, which Libreboot then finds -and executes, if running SeaBIOS payload; if using GRUB, just the distro's -grub.cfg file is loaded instead, by Libreboot's own GRUB in flash. - -Libreboot GRUB boots in text mode or uses the coreboot framebuffer. Anyway, -set `GRUB_TERMINAL=console` in GRUB and you should be fine. This avoids GRUB, -the one provided by your distro, switching video modes. - -In Debian for example (steps largely the same on other distros): - -Edit `/etc/default/grub` as root, and uncomment or add the line: - - GRUB_TERMINAL=console - -Then still as root, do these commands: - - export PATH="$PATH:/sbin" - update-grub - -NOTE: `update-grub` is very much Debian-centric. Not all distros will have it. -On Arch-based distros for instance, you might do: - - grub-mkconfig -o /boot/grub/grub.cfg - -Now your distro's GRUB menu should work, when your distro's GRUB bootloader is -executed from Libreboot's SeaBIOS payload. +They will provide specific information; the information below pertains mostly +to troubleshooting, and there are some notes about Full Disk Encryption: Encrypted /boot via LUKS2 with argon2 -======================================= +------------------------------------- Full encryption for basic LUKS2 (with PBKDF or argon2 key derivation) is supported in libreboot. Legacy LUKS1 is also supported. On *most* other @@ -103,8 +79,7 @@ At the time of the Libreboot 20231021 release, the GRUB upstream (on gnu.org) did not have these argon2 patches in its source tree, but Libreboot merges and maintains them out of tree. -argon2id --------- +### argon2id You should *specifically* use argon2id. Please ensure this, because some older LUKS2 setups defaulted to the weaker *argon2i*. This post by Matthew @@ -112,10 +87,46 @@ Garret contains information about that: +Libreboot's GRUB Argon2id implementation was created by Patrick Steinhardt, +who adapted PHC's Argon2 implementation for use in GRUB; Ax33l later added it +to Arch Linux AUR for GRUB 2.06, and Nicholas Johnson rebased *that* for +GRUB 2.12 so that Libreboot could use it. + NOTE: You should also read the instructions about about `GRUB_TERMINAL`. +NOTE ABOUT VGA MODES and GRUB +----------------------------- + +Libreboot does not support switching VGA modes, when coreboot's libgfxinit is +used on Intel GPUs. Many distros will install GRUB, which Libreboot then finds +and executes, if running SeaBIOS payload; if using GRUB, just the distro's +grub.cfg file is loaded instead, by Libreboot's own GRUB in flash. + +Libreboot GRUB boots in text mode or uses the coreboot framebuffer. Anyway, +set `GRUB_TERMINAL=console` in GRUB and you should be fine. This avoids GRUB, +the one provided by your distro, switching video modes. + +In Debian for example (steps largely the same on other distros): + +Edit `/etc/default/grub` as root, and uncomment or add the line: + + GRUB_TERMINAL=console + +Then still as root, do these commands: + + export PATH="$PATH:/sbin" + update-grub + +NOTE: `update-grub` is very much Debian-centric. Not all distros will have it. +On Arch-based distros for instance, you might do: + + grub-mkconfig -o /boot/grub/grub.cfg + +Now your distro's GRUB menu should work, when your distro's GRUB bootloader is +executed from Libreboot's SeaBIOS payload. + Rebooting system in case of freeze -=================================== +---------------------------------- Linux kernel has a feature to do actions to the system any time, even with it freezes, this is called a @@ -133,13 +144,12 @@ command line paramter. So append `sysrq_always_enabled=1` to your You can also run `# sysctl kernel.sysrq=1` to enable them. Fedora won't boot? -================== +------------------ This may also apply to CentOS or Redhat. Chroot guide can be found on [fedora website](https://docs.fedoraproject.org/en-US/quick-docs/bootloading-with-grub2/#restoring-bootloader-using-live-disk) -linux16 issue -------------- +### linux16 issue Libreboot's default GRUB config sources fedora's grub config `grub.cfg` (in `/boot/grub2/grub.cfg`), fedora by default makes use of the @@ -153,8 +163,7 @@ Set the `sixteenbit` variable to an empty string, then run: grub2-mkconfig -o /boot/grub2/grub.cfg -BLS issue ---------- +### BLS issue With [newer versions of fedora](https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault), scripts from grub package default to generating [BLS](https://www.freedesktop.org/wiki/Specifications/BootLoaderSpec/) @@ -166,3 +175,6 @@ to `/etc/default/grub` (or modify existing one if it already exists): Then generate `grub.cfg` with: grub2-mkconfig -o /boot/grub2/grub.cfg + +These idiosyncrasies aside, Fedora is a great distro. It's well-tested with the +Libreboot build system, and it boots up just fine. diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index bbe4e00..05ecb62 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -1,12 +1,16 @@ --- -title: lbmk maintenance manual +title: LibreBoot MaKe (lbmk) build system design and maintenance manual x-toc-enable: true ... -**NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) -now, as of 27 January 2024, which is a fork of flashrom. -The reason why was explained, in -the [Libreboot 20240225 release](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** +Open source BIOS/UEFI firmware +------------------------------ + +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project, +replacing proprietary BIOS/UEFI firmware. It provides coreboot and a number +of *payloads* such as GRUB, U-Boot or SeaBIOS, which boot your operating system. +This document describes the very essence of Libreboot's design, how the project +functions and how releases are made. In addition to this manual, you should also refer to [porting.md](porting.md) and [testing.md](testing.md). @@ -14,7 +18,7 @@ and [testing.md](testing.md). Please also read about the [lbmk coding style and design](style.md). Automated coreboot build system -=============================== +------------------------------- This document describes the entire Libreboot build system, its design philosophy and how it's used to prepare Libreboot releases; it is provided as a *reference* @@ -40,7 +44,7 @@ first, it will do so automatically. Therefore, you can run any part of lbmk on its own, and the entire design is modular. Use Free Software when possible -=============================== +------------------------------- The coreboot software is nominally free, but occasionally requires an additional file or two from the vendor on a few systems. The libreboot @@ -50,7 +54,7 @@ project *allows* them, only when they are absolutely required. the [freedom status page](../../freedom-status.md) provides additional details. Best practises for learning lbmk -================================ +-------------------------------- The follow sections will cover subdirectories, within lbmk. Contrary to what some may otherwise assume, it's best to learn about everything *except* scripts @@ -68,8 +72,7 @@ bottom-up; most documents take the latter approach, in other projects, but most people naturally want to learn how a specific thing works first, hence the approach taken here. -Don't be deceived by simplicity -------------------------------- +### Don't be deceived by simplicity Libreboot's build system is powerful, and highly configurable, yet deceptively simple at the same time. Remember this rule, a rule that applies to *all* @@ -80,12 +83,11 @@ Many people will be shocked by how *small* Libreboot is, at its core. You will be surprised by just how much can be done with so little. Continue reading! System requirements -=================== +------------------- This concerns system requirements when *building* Libreboot. -Operating system ----------------- +### Operating system Any sensible Linux distribution will do. Libreboot's build system is regularly testing on all the major distros. Please do report bugs if you encounter @@ -104,16 +106,14 @@ build dependencies for these distros. NOTE: **Linux** is assumed. BSD systems may work, for parts of the build system, but BSD systems are currently not well-tested with lbmk. -**Dependencies** ----------------- +### **Dependencies** **Make sure you have dependencies installed!** **The [main build guide](../build) will tell you how to install dependencies, such as GNU toolchains and various libraries.** -Host CPU --------- +### Host CPU At least an Intel Core 2 Duo, though we recommend much faster CPUs if building entire release archives, e.g. quad-core Haswell CPU or better. @@ -128,8 +128,7 @@ NOTE3: *32-bit* x86 (i686) machines can be used to compile Libreboot, but MemTest86\+ is only compiled for 64-bit, and not cross compiled, so builds are disabled when lbmk detects a 32-bit host CPU. -Memory ------- +### Memory At least 2GB per CPU core, ideally 4GB; for example, 16GB RAM is recommended if you're compiling an a quad-core CPU. @@ -140,8 +139,7 @@ For example, when you're building on a quad-core, do this prior to building: export XBMK_THREADS=4 -Disk space ----------- +### Disk space About 20GB bare minimum, if only compiling for 1 board. The sources take up a lot of space. However, Libreboot is always expanding as it's developed. @@ -157,10 +155,9 @@ fast NVMe (PCI-E) SSD if you can. project that Libreboot imports, such as coreboot.** Environmental variables -======================= +----------------------- -XBMK\_THREADS -------------- +### XBMK\_THREADS For example: @@ -171,8 +168,7 @@ This would build on two threads, when running lbmk. It defaults to 1. Previous revisions of lbmk used `nproc` by default, but this was set to 1 instead, because nproc is not available on every operating system. -XBMK\_RELEASE -------------- +### XBMK\_RELEASE If set to `y`, it signals to `script/roms` that a release is being built, and it will honour `release="n"` in target.cfg files. You could also set this @@ -182,7 +178,7 @@ behaves running it in release mode. Do this if you want to: export XBMK_RELEASE=y Projects/files downloaded/generated by lbmk -=========================================== +-------------------------------------------- The following sections will describe files and directories that are not included in `lbmk.git`, but *are* created by running various lbmk commands; @@ -191,8 +187,7 @@ many of these will also be provided, pre-generated, under release archives. Some of these are *downloaded* by Libreboot's build system, automatically, while others are created during the build process based on these downloaded programs. -bin/ ---------------- +### bin/ This directory is created when running any of the following commands, with the right arguments: @@ -216,14 +211,12 @@ now only puts coreboot images in `bin/`, with payloads included. If you still have `elf/` coreboot images in your lbmk tree, please do not use them (and you may aswell delete them). -cache/ ---------------- +### cache/ Certain files are cached here automatically, by lbmk. The user need not touch these files. -cache/app --------------- +### cache/app/ When vendor updates are extracted, they go here, which is then processed to find individual files for use in coreboot images (e.g. KBC1126 EC firmware). @@ -231,8 +224,7 @@ find individual files for use in coreboot images (e.g. KBC1126 EC firmware). This directory is constantly over-written, so it's essentially another temporary directory used by the build system. -cache/file/ --------------- +### cache/file/ Files that are downloaded are hashed, and the cached version of the file is stored there, named as the SHA512 checksum. This is used for vendor file @@ -246,8 +238,7 @@ files relative to the directory locations for those repositories, but subfiles are not downloaded to the *cached git repository*, only the work directory used for building in lbmk. -cache/hash ---------------- +### cache/hash/ When lbmk is handling any project, it sorts a list of files under `config/` including `config/project` (or `config/project/TREE`) and `config/data/project`. @@ -260,20 +251,17 @@ If the currently stored hash differs from what's calculated, it means that the project has changed, and the source directories plus builds are deleted. The project source is then re-prepared and re-build. -cache/repo --------------- +### cache/repo/ Git repositories are cached here. This avoids wasting bandwidth, when downloading multiple repositories. **Git submodules are also cached here!** -ec/ ---------------- +### ec/ KBC1126 EC firmware goes here, required on HP EliteBook laptops. These images are inserted into those coreboot images, under `elf/` *and* `bin/`. -elf/ ---------------- +### elf/ **DO NOT flash coreboot ROM images contained under `elf/`. Please use ROM images under `bin/` instead! - In modern lbmk, only the ones under `bin/` are ever @@ -308,23 +296,20 @@ As of Libreboot 20240612, the `elf/` directory must be used by default for all builds, in an effort to make exclusive use of *out-of-source builds*. As such, the `cbutils` directory is no longer used. -mrc/ ---------------- +### mrc/ Intel System Agent downloaded at build time for HP EliteBook 820 G2. The *Haswell* MRC file is no longer downloaded here, because Haswell machines now use native raminit *exclusively*; only Broadwell uses MRC, at present. -pciroms/ ---------------- +### pciroms/ PCI Option ROMs, currently used only for the VGA ROM on models of Dell Latitude E6400 containing an Nvidia GPU; it provides video initialisation, where coreboot currently only initialises Intel GPUs natively, on Libreboot systems. -release/ ---------------- +### release/ The script at `build` create tarballs in here, which constitute regular Libreboot releases. It is meticulously maintained, as per @@ -356,13 +341,11 @@ Or with a custom directory: The build system expects there to be a *git tag*, so make sure there is one. This is used to create the version number for a given release. -src/ ----- +### src/ Third-party source trees are downloaded into this directory, by lbmk. -src/bios\_extract/ ---------------- +### src/bios\_extract/ Used by the vendor file handler scripts. The upstream that we use is here: @@ -371,8 +354,7 @@ The `dell_inspiron_1100_unpacker.py` script is used here, to extract from Dell BIOS updates, to get at the VGA ROM for Nvidia GPU on certain models of Dell Latitude E6400. -src/biosutilities/ ---------------- +### src/biosutilities/ Used by the vendor file handler scripts. The upstream that we use is here: @@ -380,8 +362,7 @@ Used by the vendor file handler scripts. The upstream that we use is here: Specifically: the pfs extract utility from this is used on Dell vendor updates, to extract SCH5545 EC (Environment Control) firmware. -src/coreboot/ ---------------- +### src/coreboot/ Please also visit: @@ -400,8 +381,7 @@ This may be less efficient on disk usage, but it simplifies the logic greatly. Coreboot also uses its own toolchain called *crossgcc*, and crossgcc is in fact compiled *per tree* in Libreboot. -src/deguard/ ------------- +### src/deguard/ Mate Kukri's utility that disables the Intel Boot Guard on Intel MEv11-based PCH. More info available on the [deguard page](../install/deguard.md). @@ -426,18 +406,16 @@ out and replaced by deguard, with one specific to the target machine. More information is available on the deguard page, and in the deguard README, which when downloading in lbmk in the `src/deguard/` directory. -src/flashprog/ ---------------- +### src/flashprog/ Please also visit: Although currently unused by any part of lbmk, we provide flashprog for the -convenience of users, and this is copied to release archives. Flashrom is the +convenience of users, and this is copied to release archives. Flashprog is the program that you will use to read, erase and write the flash, containing coreboot firmware. -src/gpio-scripts ----------------- +### src/gpio-scripts This is a fork of the original gpio-scripts. The fork is maintained by Riku Viitanen, based on code written by Angel Pons (author of the Haswell native @@ -448,8 +426,7 @@ machines, when porting new boards to coreboot. NOTE: Not included in Libreboot yet, but `intelp2m` is used instead for this purpose, on much newer Intel systems (from around Skylake era or later). -src/grub/TREE ---------------- +### src/grub/TREE Please also visit: @@ -482,22 +459,19 @@ tree contains NVMe SSD support but not xHCI support. The `default` tree contains no NVMe or xHCI support. All trees otherwise have the same fixes on top of upstream GRUB, e.g. fix for Dell Latitude keyboard controllers. -src/int/ --------- +### src/int/ Riku Viitanen wrote this tool for debugging, when implementing MXM option ROM support in coreboot and SeaBIOS, for the HP EliteBook 8560w. -src/memtest86plus/ ---------------- +### src/memtest86plus/ Please also visit: This is provided inside ROM images, as a payload executed from main GRUB or SeaBIOS payload. It checks for corrupted memory. -src/mxmdump/ ------------- +### src/mxmdump/ Riku Viitanen wrote this utility, for dumping the MXM config on graphics cards that use it. The HP EliteBook 8560w uses these cards, and normally you would @@ -510,8 +484,7 @@ SeaBIOS. If the MXM data is not handled, the VGA option ROM (when executed) will often complain and refuse to boot; some of them can be hacked to bypass this fact, but such hacks are no longer required because of Riku's tool. -src/seabios/ ---------------- +### src/seabios/ Please also visit: @@ -523,8 +496,7 @@ particular, the BSD bootloaders can be executed from SeaBIOS. This is provided as a coreboot payload, either as first payload or it can be executed from GRUB (if GRUB is the main payload, on a given target). -src/u-boot/ ---------------- +### src/u-boot/ Please also visit: @@ -541,8 +513,7 @@ More information can be found on the [U-Boot x86 page](../uboot/uboot-x86.md); it is available as an alternative to the traditional SeaBIOS and GRUB payloads, and it can successfully boot UEFI applications on x86 Libreboot systems. -src/uefitool/ ---------------- +### src/uefitool/ Please also visit: @@ -553,8 +524,7 @@ firmware (used for fan control on Dell Precision T1650). This has also been modified to build reliably on non-glibc-based systems e.g. Alpine Linux, which uses musl libc. -src/pcsx-redux ----------------- +### src/pcsx-redux/ PCSX-Redux is a Sony Playstation (PS1/PSX) emulator, but Libreboot only uses one part from it: the Open BIOS. This is used by Libreboot to provide an @@ -565,8 +535,7 @@ More information available on the [PlayStation page](../install/playstation.md). This is automatically compiled by the main build script, and the resulting BIOS image is provided in Libreboot release archives. -src/pico-serprog ---------------------------- +### src/pico-serprog/ Used by lbmk, to build firmware for serprog-based SPI flashers with RP2040 SoC. Alongside this, `util-fw/rp2040/pico-sdk` is imported which is required for @@ -577,8 +546,7 @@ Please visit these pages: * * -src/stm32-vserprog ----------------------- +### src/stm32-vserprog/ Used by lbmk, to build firmware for serprog-based SPI flashers with STM32 MCU. Alongside this, `libopencm3` is imported which is required for building it. @@ -593,8 +561,7 @@ Before moving onto configurations, we will now cover *utilities* provided by Libreboot itself (included within lbmk, rather than being downloaded like the third party projects listed above): -tmp/ ---------------- +### tmp/ The `TMPDIR` environmental variable is set by lbmk, to a location under `/tmp`, but some users may have `/tmp` mounted as a *tmpfs* (file system in RAM), and @@ -603,8 +570,7 @@ may not have much RAM. Where large files (or a large number of files) are handled by lbmk on a temporary basis, this `tmp/` directory is created and then used. -vendorfiles/ ---------------- +### vendorfiles/ Used by the vendor file handler scripts, referenced in certain coreboot configs. @@ -613,7 +579,7 @@ here; not all such files are downloaded here however, as some are handled under separate directories. util/ -=============== +----- If a codebase is not frequently used by Libreboot, is actively developed (making it not viable to maintain in Libreboot) or the codebase is very large, we would @@ -623,8 +589,7 @@ where the intention is that `lbmk.git` itself should be small and efficient. Where appropriate, and where the code is small enough, or it is otherwise deemed desirable, `lbmk.git` provides a few utilities as part of itself, namely: -util/dell-flash-unlock/ ---------------- +### util/dell-flash-unlock/ This program, written by Nicholas Chin, unlocks the boot flash on Dell Latitude E6400; it permits internal flashing, from factory firmware to Libreboot, so that @@ -633,8 +598,7 @@ the user need not disassemble and flash externally. It also supports several other Dell laptops, with similar ECs. Check the README file included in this directory, for more information. -util/me7\_update\_parser/ ---------------- +### util/me7\_update\_parser/ This is a special fork of `me_cleaner`, specifically for parsing and neutering Intel ME images provided by Lenovo for ThinkPad X220 and other Lenovo @@ -650,8 +614,7 @@ auto-neuters Intel ME images, during build, so that the user does not have to manually extract such images from dumps of the original vendor firmware (in the flash) on a given machine. -util/nvmutil/ ---------------- +### util/nvmutil/ The `nvmutil` software allows you to set the MAC address on Intel GbE NVM files. It also allows you to set *random* MAC addresses, in addition to @@ -662,8 +625,7 @@ about here: [nvmutil manual](../install/nvmutil.md) -util/spkmodem\_recv/ ---------------- +### util/spkmodem\_recv/ Libreboot imported this from coreboot, who is turn imported it from GRUB with little to no modification. @@ -700,13 +662,12 @@ do this. Other improvemnts include: by lbmk: config/ -======= +------- This directory contains configuration files, used by the Libreboot build system. These next sections will cover specific configuration files. -config/PROJECT\*/nuke.list --------------------------- +### config/PROJECT\*/nuke.list The script `include/git.sh` handles deletion of certain files, for downloaded projects, based on a `nuke.list` file that can (for single-tree projects) be @@ -724,8 +685,7 @@ foo/bar.txt Ditto `src/flashprog/`, if you wanted to delete a file from in there, as one other example. Deletions occur when the source tree is created. -config/vendor/ ---------------- +### config/vendor/ URLs and hashes for vendor files containing Intel ME images within them. Where feasible, backup URLs are also provided. SHA512 checksums are defined, so that @@ -741,10 +701,9 @@ installing Libreboot or any other spin of coreboot. This file is also used to define the VGA ROM, on Nvidia models of Dell Latitude E6400. -config/coreboot ---------------- +### config/coreboot/ -### config/coreboot/BOARDNAME/ +#### config/coreboot/BOARDNAME/ Each target name (e.g. `x200_8mb`) has its own directory under here. Targets that do not define defconfigs also exist here; for example, the `default` @@ -759,14 +718,14 @@ the vendor scripts, for adding or removing certain vendor firmware (for example, a config will define where `me.bin` is located, and if it doesn't exist, the vendor scripts will look up that file and download/process it with `me_cleaner`). -### config/coreboot/BOARDNAME/patches/ +#### config/coreboot/BOARDNAME/patches/ For any given coreboot tree, patches with the `patch` file extension are placed here, alphanumerically in the order that they should be applied. These patches are then so applied, when lbmk downloads the given source tree. -### config/coreboot/BOARDNAME/target.cfg +#### config/coreboot/BOARDNAME/target.cfg This file can contain several configuration lines, each being a string, such as: @@ -876,7 +835,7 @@ by this variable, to also be present. The `grubtree` option specifies which GRUB tree to use. If unset, it defers to the `default` GRUB tree. -### config/coreboot/BOARDNAME/config/ +#### config/coreboot/BOARDNAME/config/ Files in this directory are *coreboot* configuration files. @@ -954,8 +913,7 @@ Even if your board doesn't actually use `libgfxinit`, the config for it should still be named as such. From a user's perspective, it really makes no difference. -config/dependencies/ ---------------- +### config/dependencies/ Files here are so named, and called like so: e.g. the `debian` file would be referenced when running: @@ -966,8 +924,7 @@ These files define a list of packages, and the correct package manager command to use on a given distro. This can be used to install build dependencies, which are required for compiling Libreboot from source code. -config/git/ ---------------- +### config/git/ Configuration related to third-party Git repositories, that Libreboot makes use of. @@ -982,8 +939,7 @@ of their own; for example, `config/grub/` exists. Multiple files exist here, and they are *concatenated* in a temporary file by lbmk, which is then scanned to find information about projects. -config/data/PROJECT/mkhelper.cfg --------------------------------- +### config/data/PROJECT/mkhelper.cfg These `mkhelper.cfg` files define common configuration that can be supplied for any single- or multi-tree project. Arguments available are as follows: @@ -1028,18 +984,17 @@ In the simplest of terms, you may regard mkhelpers as *plugins*, of a sort. They simply extend the core functionality of the build system, in a way that can differ flexibly between projects. -GRUB config ---------------- +### GRUB config -### config/data/grub/background +#### config/data/grub/background/ Splash screen images applied duing startup when using the GRUB payload. -### config/data/grub/background/background1024x768.png +#### config/data/grub/background/background1024x768.png Used on ThinkPad X60 and T60. -### config/data/grub/background/background1280x800.png +#### config/data/grub/background/background1280x800.png Used on all other machines, besides X60 and T60 thinkpads. @@ -1049,23 +1004,23 @@ example, `config/coreboot/x60/target.cfg` specifies this: grub_background="background1024x768.png" -### config/data/grub/background/COPYING +#### config/data/grub/background/COPYING Licensing info for GRUB bootsplash images. -### config/grub/TREE/config/ +#### config/grub/TREE/config/ GRUB configuration files. -### config/grub/config/AUTHORS +#### config/grub/config/AUTHORS Author info for GRUB configuration files. -### config/grub/config/COPYING +#### config/grub/config/COPYING Licensing info for GRUB configuration files. -### config/grub/TREE/config/payload +#### config/grub/TREE/config/payload This is a configuration file. It is used to program GRUB's shell. @@ -1079,7 +1034,7 @@ A `grubtest.cfg` can be inserted into CBFS, but it will not override the default `grub.cfg` (either in CBFS or on memdisk); however, the one in memdisk will provide a menuentry for switching to this, if available. -### config/data/grub/memdisk.cfg +#### config/data/grub/memdisk.cfg This GRUB configuration checks whether `grub.cfg` exists in CBFS and switches to that first (not provided by default) or, if one is not available in CBFS, @@ -1089,12 +1044,12 @@ The GRUB memdisk is a file system within `grub.elf`, itself stored within the coreboot file system named *CBFS*, which is part of the coreboot ROM image on every coreboot target. -### config/data/grub/keymap/ +#### config/data/grub/keymap/ Keymap files used by GRUB. They can alter the character set corresponding to inputted scancodes. -### config/data/grub/keymap/\*.gkb +#### config/data/grub/keymap/\*.gkb The keymap files themselves. These are inserted into the GRUB memdisk, and the `grub.cfg` file can specify which one is to be used. @@ -1103,7 +1058,7 @@ These files are binary-encoded, defining which characters correspond to which scancodes. It is handled by `grub-core/commands/keylayouts.c` in the GRUB source code. -### config/data/grub/module/TREE +#### config/data/grub/module/TREE This defines which modules are inserted into `grub.elf`. These modules can be anything from file systems, small applications/utilities, launchers (e.g. @@ -1117,7 +1072,7 @@ This list is used by lbmk when it runs `grub-mkstandalone`, which is the utility from GRUB that generates `grub.elf` files (to be compressed inside CBFS and then executed as a coreboot payload). -### config/grub/TREE/patches/ +#### config/grub/TREE/patches/ For a given GRUB revision, patches with the `patch` file extension are placed here, alphanumerically in the order that they should be applied. For example, @@ -1126,69 +1081,66 @@ partitions to be decrypted by GRUB. These patches are then so applied, when lbmk downloads the given source tree. -config/ifd/\* ---------------- +### config/ifd/\* Intel Flash Descriptors and GbE NVM images, which are binary-encoded configuration files. These files are referenced in coreboot defconfigs, used by lbmk to build coreboot ROM images. -config/seabios/ ---------------- +### config/seabios/ -### config/data/seabios/build.list +#### config/data/seabios/build.list When a given SeaBIOS tree is compiled, for a given target, this file defines which files to copy from the `seabios/` directory, which are then copied to a location under `elf/seabios`. -### config/seabios/default/ +#### config/seabios/default/ Currently the only tree in use, this defines what SeaBIOS revision is to be used, when the SeaBIOS payload is enabled on a given coreboot target. -### config/seabios/default/config/ +#### config/seabios/default/config/ Configuration files go in here. -### config/seabios/default/config/libgfxinit +#### config/seabios/default/config/libgfxinit Configuration file for when native video initialisation is available in coreboot. -### config/seabios/default/config/normal +#### config/seabios/default/config/normal Configuration file for when native video initialisation is unavailable in coreboot, and VGA ROM initialisation is also not provided by coreboot (in this configuration, the usual setup will be that *SeaBIOS* finds and executes them, instead of coreboot). -### config/seabios/default/config/vgarom +#### config/seabios/default/config/vgarom Configuration file for when native video initialisation is unavailable in coreboot, and VGA ROM initialisation is provided by coreboot; in this setup, SeaBIOS should not execute VGA ROMs. -### config/seabios/default/target.cfg +#### config/seabios/default/target.cfg Similar concept to `target.cfg` files provided by coreboot. This specifies which SeaBIOS revision (from Git) is to be used, when compiling SeaBIOS images. -config/u-boot/ ---------------- +### config/u-boot/ This directory contains configuration, patches and so on, for each mainboard that can use U-Boot as a payload in the `lbmk` build system. U-Boot doesn't yet have reliable generic configurations that can work across all coreboot boards (per-architecture), so these are used to build it per-board. -### config/data/u-boot/build.list +#### config/data/u-boot/build.list When a given U-Boot tree is compiled, for a given target, this file defines which files to copy from the U-Boot source build, which are then copied to a location under `elf/u-boot/`. -### config/u-boot/TREENAME/ +#### config/u-boot/TREENAME/ Each `TREENAME` directory defines configuration for a corresponding mainboard. It doesn't actually have to be for a board; it can also be used to just define @@ -1196,14 +1148,14 @@ a U-Boot revision, with patches and so on. To enable use as a payload in ROM images, this must have the same name as its `config/coreboot/TREENAME/` counterpart. -### config/u-boot/TREENAME/patches/ +#### config/u-boot/TREENAME/patches/ For any given U-Boot tree, patches with the `patch` file extension are placed here, alphanumerically in the order that they should be applied. These patches are then so applied, when lbmk downloads the given source tree. -### config/u-boot/TREENAME/target.cfg +#### config/u-boot/TREENAME/target.cfg This file can contain several configuration lines, each being a string, such as: @@ -1239,7 +1191,7 @@ to a non-native arch means that necessary crossgcc-arch will be compiled and be available when building roms, but not necessarily built or discovered when individual scripts are called manually.* -### config/u-boot/TREENAME/config/ +#### config/u-boot/TREENAME/config/ Files in this directory are *U-Boot* configuration files. Configuration file names can be anything, but for now `default` is the only one used. @@ -1269,8 +1221,7 @@ Another interesting config option is `CONFIG_POSITION_INDEPENDENT` for ARM boards, which has been so far enabled in the ones `lbmk` supports, just to be safe. -config/submodule ----------------- +### config/submodule/ In here you can find submodule configurations for projects. It works for both single- and multi-tree projects. Use the existing examples as reference. @@ -1313,14 +1264,12 @@ because files are not extracted, only placed at their configured destination). The destination path in `module.list` is relative to the location of the main Git repository under which it is placed. -config/data/PROJECT -------------------- +### config/data/PROJECT/ Random configuration data provided on a per-project basis. Complements the `config/PROJECT` directory. -U-Boot build system -------------------- +### U-Boot build system If you wish to know about U-Boot, refer here:\ @@ -1352,28 +1301,24 @@ configs, but not for adding them. Adding them is to be done manually, based on the above guidance. Config files in lbmk root directory -=================================== +----------------------------------- -projectsite -------------- +### projectsite Domain name linking to the project home page (e.g. libreboot.org). -projectname ---------------- +### projectname This is a text file, containing a single line that says `libreboot`. This string is used by the build system, when naming releases alongside the version number. -version ---------------- +### version Updated each time lbmk runs, based on either `git describe` or, on release archives, this file is static and never changes. It says what Libreboot revision is currently in use (or was in use, if lbmk isn't running). -versiondate ---------------- +### versiondate Updated each time lbmk runs, based on either `git describe` or, on release archives, this file is static and never changes. It says the *time* of @@ -1383,10 +1328,9 @@ At last, you will now learn about the *scripts* (exclusively written as posix shell scripts) that constitute the entire Libreboot build system, lbmk: Scripts in root directory of lbmk -================================= +--------------------------------- -build ---------------- +### build This is the main build script. @@ -1410,14 +1354,13 @@ You can also know what build system revision you have by running: This script is the beating heart of Libreboot. Break it and you break Libreboot. include/ -=============== +-------- This directory contains *helper scripts*, to be included by main scripts using the `.` command (called the `source` command in `bash`, but we rely upon posix `sh` only). -include/git.sh --------------- +### include/git.sh These functions in here previously existed as independent scripts, but they were unified here, and they are used when you pass the `-f` argument @@ -1427,8 +1370,7 @@ These functions deal with git cloning, submodule updates, revision resets and the application of patch files via `git am`. *Every* git repository downloaded by lbmk is handled by the functions in this file. -include/mrc.sh --------------- +### include/mrc.sh This was previously a separate script. The download logic was removed, and now the logic under `include/vendor.sh` is used for downloads. This file now @@ -1442,8 +1384,7 @@ it is provided as an include to bypass license incompatibility. It has been heavily modified to use the same style of logic and general control flow used in the script at `include/vendor.sh`, and it is used from there. -include/lib.sh ---------------- +### include/lib.sh Several other parts of lbmk also use this file. It is added to as little as possible, and contains miscallaneous functions that don't belong anywhere else. @@ -1468,8 +1409,7 @@ so if for example you say `mk coreboot`, it would build every coreboot target. This is useful for the release build logic, because now it can much more simply build all of Libreboot, while still being flexible about it. -include/rom.sh ------------ +### include/rom.sh This builds coreboot ROM images. Specifically, this contains mkhelper functions. It also builds serprog images, and it could be used to provide functions for @@ -1540,8 +1480,7 @@ CCACHE is automatically used, when building coreboot, but not currently for other projects. This is done by cooking coreboot configs at build time, enabling coreboot's build option for it. -Serprog images: --------------- +### Serprog images: Build firmware images for serprog-based SPI programmers, where they use an STM32 MCU. It also builds for RP2040-based programmers like Raspberry Pi Pico. @@ -1553,8 +1492,7 @@ Example command: `./mk -b stm32-vserprog` This also uses `rom.sh` as with the coreboot image build logic. It's all defined in that file, so read the main section pertaining to this file. -include/vendor.sh ------------------ +### include/vendor.sh Helper functions for downloading and injecting vendor files. How to use: @@ -1565,10 +1503,9 @@ Refer elsewhere in the documentation for how to handle vendor files, and/or read [the guide](../install/ivy_has_common.md). script/ -======= +------- -script/trees ------------- +### script/trees *This* is the other beating heart of Libreboot. Used heavily by Libreboot, this script is what handles defconfig files for SeaBIOS, U-Boot *and* coreboot; it diff --git a/site/docs/maintain/porting.md b/site/docs/maintain/porting.md index e464e9b..dff145f 100644 --- a/site/docs/maintain/porting.md +++ b/site/docs/maintain/porting.md @@ -16,7 +16,11 @@ Most boards in coreboot can be quite easily ported to libreboot. You don't need any knowledge of a particular programming language or technology in general to port a board. If you want to make more major contributions to the build system, -please read the [main maintenance page.](/docs/maintain/index.html) +please read the [LibreBoot MaKe (lbmk) build system design and maintenance +manual](./). + +Background information +---------------------- You will certainly need flashing equipment if you wish to follow this guide. See the [flashing guide](/docs/install/spi.html) to find out what you'll need. @@ -42,7 +46,7 @@ unclear, then contact libreboot developers. The best way to get in touch is via [libreboot irc.](/contact.html#irc-chatroom) Cloning lbmk -============ +------------ Before you try to get any work done, you'll need to clone the lbmk (libreboot make) project. @@ -53,8 +57,8 @@ the project. If you want more information on building lbmk see [the build instructions.](/docs/build/index.html) -Coreboot Config -=============== +Coreboot config +--------------- Coreboot payloads (GRUB, Seabios, etc) are built separately. You therefore only need to focus on the coreboot config(s) for `board.` @@ -94,7 +98,7 @@ If you try to flash this rom and it fails, then there are two probable reasons: Solutions to these problems follow in the proceeding sections. Wrong CBFS and or ROM size -========================== +-------------------------- Different boards have different flash chip setups. Generally, you have one or two flash chips with a combined size of 4-16MB. @@ -113,8 +117,8 @@ for various rom sizes. | 12MB | 0xBE0000 | | 16MB | 0xFE0000 | -Getting Help -============ +Getting help +------------ Once you have tried everything above, you might find that the board still doesn't work. diff --git a/site/docs/maintain/porting.uk.md b/site/docs/maintain/porting.uk.md index faaaa73..e33022a 100644 --- a/site/docs/maintain/porting.uk.md +++ b/site/docs/maintain/porting.uk.md @@ -40,7 +40,7 @@ libreboot як `плата.` Найкращий шлях вийти на зв'язок через [irc libreboot.](/contact.uk.html#кімната-irc) Клонування lbmk -============ +--------------- Перед тим, як ви спробуєте зробити будь-яку роботу, вам потрібно буде клонувати проект lbmk (libreboot make). Щоб зробити це, ви будете потребувати git, встановлений на вашій машині. Ви можете потім клонувати @@ -51,7 +51,7 @@ libreboot як `плата.` Якщо ви хочете більше інформації про побудову lbmk, дивіться [інструкції побудови.](/docs/build/index.uk.html) Конфігурація Coreboot -=============== +--------------------- Корисні навантаження Coreboot (GRUB, Seabios, і так далі) будуються окремо. Ви таким чином тільки потребуєте фокусуватись на конфігурації(ях) coreboot для `плати.` @@ -91,7 +91,7 @@ libreboot як `плата.` Рішення до цих проблем ідуть в наступних розділах. Неправильний розмір CBFS та/або розмір ROM -========================== +------------------------------------------ Різні плати мають різні налаштування чіпів флеш-пам'яті. Загалом, ви маєте один або два флеш-пам'яті з сумарним розміром в 4-16Мбайт. @@ -111,7 +111,7 @@ libreboot як `плата.` | 16Мбайт | 0xFE0000 | Отримання допомоги -============ +------------------ Коли ви спробували все вищенаведене, ви могли би знайти, що ця плата досі не працює. diff --git a/site/docs/maintain/style.md b/site/docs/maintain/style.md index 702ef76..ef95d33 100644 --- a/site/docs/maintain/style.md +++ b/site/docs/maintain/style.md @@ -13,7 +13,7 @@ and several practises may persist in spite of it; nonetheless, this article shall serve as a reference for lbmk development. NO BASHISMS -=========== +----------- Libreboot's build system was previously written in Bash, and actually used Bash-specific behaviour. This was later *corrected*, thanks largely to work @@ -27,15 +27,14 @@ and an even more excellent introduction: (seriously, it's good. Read it!) Design -====== +------ Libreboot's build system design is very simple: put as much as possible under `config/`, and keep actual logic to a minimum. You can read about that design in the [lbmk maintenance manual](index.md). -No Makefiles ------------- +### No Makefiles We have Makefiles in some C programs, under `util/`, and projects that we import may use Makefiles, but lbmk itself does not contain any Makefiles. Instead, we @@ -46,7 +45,7 @@ code is more readable. It's easier to implement a cleaner coding style, which the next sections will cover. Coding style -============ +------------ Read and go read a few userland program source trees in OpenBSD's main CVS tree. This is the style that inspires the lbmk @@ -60,19 +59,17 @@ Libreboot scripts, and also C programs like `nvmutil`, are heavily inspired by this style. We insist on its use, because this style is extremely readable and forces you to write better code. -main on top ------------ +### main on top In every lbmk script, it is our intention that there be a `main()` function. All logic should be inside a function, and `main()` should be the function that executes first; at the bottom of each script, insert this line: - main $@ + main "$@" This will execute `main()`, passing any arguments (from the user's shell) to it. -Top-down logic --------------- +### Top-down logic *Every* function called from main should always be *below* the calling function. Therefore, if multiple functions call a given function, that function should be @@ -118,11 +115,10 @@ complicated_function() do_some_complicated_stuff || return 1 } -main $@ +main "$@" ``` -PWD is always root of lbmk --------------------------- +### PWD is always root of lbmk In any script executed by lbmk, under `script/`, the work directory is relative to the main `lbmk` script. In other words, all scripts under `script/` also @@ -131,8 +127,7 @@ assume this. This is actually one of the reasons for that design, as also alluded to in the main [lbmk maintenance manual](index.md). -main should only be a simple skeleton -------------------------------------- +### main should only be a simple skeleton The `main()` function should not implement much logic itself. Each script in lbmk is its own program. The `main()` function should contain the overall @@ -144,7 +139,7 @@ be below a function that builds ROM images with SeaBIOS payloads inside them, when building coreboot ROM images. One task, one script -==================== +-------------------- Not literally *one task*, but one theme, one *kind* of overall task. For example, `script/build/roms` builds final ROM images of coreboot, @@ -155,7 +150,7 @@ another program that does another thing very well; programs communicate with each other via the universal method, namely text. Error handling -============== +-------------- Where feasible, a script should do: @@ -183,8 +178,7 @@ For example: $err "function_name: this shit doesn't work. fix it." -Do not directly exit --------------------- +### Do not directly exit Please try to use `err` for all error exits. @@ -196,8 +190,7 @@ A script should either return zero status, or call `err()`. An individual function may, in some cases, return 1 or 0 itself, which would then be handled accordingly by the calling function. -How to handle errors --------------------- +### How to handle errors There are some instances where errors should be *ignored*, in which case you might do: @@ -211,7 +204,7 @@ command succeeded, then do this. Never mix `&&` and `||` If/else blocks -============== +-------------- Keep these simple, and where possible, maybe don't use them at all! For example: @@ -236,8 +229,7 @@ or do something ``` -Warnings --------- +### Warnings In C, the `stderr` file is 2 as represented by `int fd` style. In shell scripts, it's the same: 1 for standard output, 2 for errors/warnings. The `err` function @@ -249,25 +241,24 @@ should not yield an exit, you should do something like this: printf "function_name: this is dodgy stuff. fix it maybe?\n" 1>&2 Avoid passing arguments excessively -=================================== +----------------------------------- In functions, use of arguments passed to them can be useful, but in general, they should be avoided; use global variables when feasible. Do not exceed 80 characters per line -==================================== +------------------------------------ See: RFC 3676 Excessively long code lines are really annoying to read. Use tab-based indendation -========================= +------------------------- A new line should begin with tab indentation, in a function. -Multi-line commands -------------------- +### Multi-line commands Use \\ at the end, as you would, but use *four spaces* to indent on the follow-up line. For example: @@ -281,14 +272,14 @@ function_name() ``` Use printf! -=========== +----------- Don't use `echo` unless there's some compelling reason to do so. The `printf` functionality is more standard, across various sh implementations. env -=== +--- Don't do: @@ -301,7 +292,7 @@ Do: This is more portable, between various Unix systems. Be portable! -============ +------------ In addition to not using bashisms, commands that lbmk uses must also be portable; where possible, third party projects should be tweaked. @@ -315,7 +306,7 @@ Work+testing is sorely needed, in this area. It would be nice if Libreboot could be built on BSD systems, for example. Do as little as possible -======================== +------------------------ Don't over-engineer anything. Write as simply as you can, to perform a single task. This is basically the same as what has been written elsewhere, but it's diff --git a/site/docs/maintain/testing.md b/site/docs/maintain/testing.md index 6d3d749..aaa680a 100644 --- a/site/docs/maintain/testing.md +++ b/site/docs/maintain/testing.md @@ -40,7 +40,7 @@ provide testing for the same mainboard if that's what you have. The more the merrier! Be Contactable -============== +-------------- You should monitor whatever email you provide in your application. There is no specific time-frame for how long it should take after @@ -50,7 +50,7 @@ If you are the *only* maintainer for your board then please take into consideration that your input is especially vital. Have External Flashing Equipment -================================ +-------------------------------- The roms you test will of course be untested. To avoid having a bricked machine, you need to have external flashing @@ -62,7 +62,7 @@ Refer to [Coreboot's documentation](https://doc.coreboot.org/) or ask on IRC if you are unsure. Testing Procedure -================= +----------------- You will receive an email when roms are ready for testing. The email will link to an open issue on our [current git hosting platform.](/git.html#lbmk-libreboot-make) @@ -83,6 +83,6 @@ note: [insert any notes if relevant] For example, a board status comment might look like this: - board: t440p_12mb - status: fail - note: GRUB throws error 'something_is_b0rked' + board: t440p_12mb + status: fail + note: GRUB throws error 'something_is_b0rked' diff --git a/site/docs/maintain/testing.uk.md b/site/docs/maintain/testing.uk.md index 369c4c8..be3f733 100644 --- a/site/docs/maintain/testing.uk.md +++ b/site/docs/maintain/testing.uk.md @@ -37,7 +37,7 @@ Libreboot намагається зробити Coreboot доступним дл краще! Будьте доступними для зв'язку -============== +-------------------------- Вам варто відслідковувати будь-яку електронну пошту, що ви вкажете в вашому поданні. Немає конкретного часового проміжку для того, скільки має пройти часу після того, як @@ -47,27 +47,27 @@ Libreboot намагається зробити Coreboot доступним дл врахуйте, що ваш внесок є особливо значущим. Майте обладнання для зовнішньої прошивки -================================ +------------------------------------- Образи rom, які ви випробуєте, будуть звісно невипробуваними. Задля уникнення отримання непрацездатної машини, вам потрібно мати обладнання для зовнішньої прошивки в наявності для відновлення вашої плати з поламаного rom. -В більшості випадків ви можете посилатися на [керівництво SPI.](../install/spi.html) +В більшості випадків ви можете посилатися на [керівництво SPI](../install/spi.md). В менш частих випадках -таких як, деякі ARM chromebook- ваша плата може бути прошита іншим чином. Посилайтесь на [документацію Coreboot](https://doc.coreboot.org/) або спитайте в IRC, якщо не впевнені. Процедура випробування -================= +--------------------- Ви отримаєте лист електронною поштою, коли образи rom будуть готовими для випробування. -Лист електронною поштою буде посилатися на відкритий issue на нашій [поточній платформі розміщення git.](/git.html#lbmk-libreboot-make) +Лист електронною поштою буде посилатися на відкритий issue на нашій [поточній платформі розміщення git.](../../git.md#lbmk-libreboot-make) Чи ви отримаєте лист електронною поштою через поштовий домен libreboot.org, або один з email розробників, вам варто перевірити (для вашої власної безпеки), -що завантажені rom підписано з [офіційним ключем.](/download.html#gpg-signing-key) +що завантажені rom підписано з [офіційним ключем.](../../download.md#gpg-signing-key) Коли ваше випробування закінчено, прокоментуйте в issue, на яке наведено посилання в вашому відправленому листі електронною поштою, таким чином: @@ -80,6 +80,6 @@ note: [вставьте будь-які приміткі, якщо релева Наприклад, відгук про статус плати міг би виглядати подібним чином: - board: t440p_12mb - status: fail - note: GRUB throws error 'something_is_b0rked' + board: t440p_12mb + status: fail + note: GRUB throws error 'something_is_b0rked' diff --git a/site/docs/misc/codenames.md b/site/docs/misc/codenames.md index c56a431..33740b5 100644 --- a/site/docs/misc/codenames.md +++ b/site/docs/misc/codenames.md @@ -6,7 +6,7 @@ x-toc-enable: true TODO: this page could do with an update. More info, about more boards Introduction -============ +------------ This document lists product codenames for some hardware. Please note that just because a certain device is listed here does NOT mean @@ -28,7 +28,7 @@ of reliability): they will appear silver. List of models and codenames -============================ +---------------------------- ### Codenames @@ -101,6 +101,7 @@ under RAM sticks. - Port Replicator II - Seville-lite ### Miscellaneous + - [Calistoga](https://ark.intel.com/products/codename/5950/Calistoga): 945GM/945PM chipset family name - Napa: calistoga based platform @@ -118,7 +119,8 @@ GM45/GS45/PM45 chipset family name. of it fully describes its operation. See also -======== +-------- + - Many more Intel codenames can be found at [Wikipedia](https://en.wikipedia.org/wiki/List_of_Intel_codenames). - For ThinkPads see [Documentation/thinkpad/codenames.csv @ Coreboot] diff --git a/site/docs/misc/emulation.md b/site/docs/misc/emulation.md index 2fd4433..375eecf 100644 --- a/site/docs/misc/emulation.md +++ b/site/docs/misc/emulation.md @@ -3,8 +3,8 @@ title: Building Libreboot for Emulation x-toc-enable: true ... -Introduction -============ +Libreboot on QEMU +----------------- Libreboot supports building for qemu as a target board. The resulting rom can then be tested using qemu. @@ -13,7 +13,7 @@ The qemu board is mostly intended to speed up development by removing the need t Qemu may also be useful for end users who intend to make changes to their libreboot rom without having to flash and reboot their machine. Building and Testing -==================== +-------------------- Libreboot can be built for qemu just like any other board. @@ -60,7 +60,7 @@ qemu-system-aarch64 \ U-Boot is also available on the x86 QEMU images. Use Cases -========= +--------- While development is the primary motivation for qemu support, the board makes it easy to test minor changes to release roms. For example one can use *cbfstool* from coreboot to edit the background image in a libreboot rom as follows: diff --git a/site/docs/misc/index.md b/site/docs/misc/index.md index 4d54293..39adf9e 100644 --- a/site/docs/misc/index.md +++ b/site/docs/misc/index.md @@ -6,7 +6,7 @@ x-toc-enable: true TODO: this page is very old, and could do with an update. High Pitched Whining Noise on Idle in Arch-based distros -============================================================== +-------------------------------------------------------- The following removes most of the noise. It reduces what is a high frequency whine (that not everyone can hear) to a slight buzz (which @@ -62,7 +62,6 @@ using [this guide](../linux/grub_cbfs.md). X60/T60: Serial port - how to use (for dock owners) [Note: using a grsec enabled kernel will disable the powertop function. ](https://en.wikibooks.org/wiki/Grsecurity/Appendix/Grsecurity_and_PaX_Configuration_Options) -=================================================== For the Thinkpad X60 you can use the "UltraBase X6" dock (for the X60 Tablet it is called X6 Tablet UltraBase). For the ThinkPad T60, you @@ -97,8 +96,8 @@ Note: part of the tutorial above requires changing your grub.cfg. Just change the `linux` line to add instructions for enabling getty. See [../linux/grub\_cbfs.md](../linux/grub_cbfs.md). -Finetune backlight control on intel gpu's -========================================= +Finetune backlight control on intel GPUs +---------------------------------------- Sometimes the backlight control value (BLC\_PWM\_CTL) set by libreboot is not ideal. The result is either flicker, which could cause nausea or @@ -190,7 +189,7 @@ on page 94. More research needs to be done on this target so proceed with care. Power Management Beeps on Thinkpads -=================================== +----------------------------------- When disconnecting or connecting the charger, a beep occurs. When the battery goes to a critically low charge level, a beep occurs. Nvramtool @@ -225,7 +224,7 @@ Finally, you need to flash the rom with this new image. See here for a detailed explanation. Get EDID: Find out the name (model) of your LCD panel -===================================================== +----------------------------------------------------- Get the panel name: @@ -248,7 +247,7 @@ removing the LCD panel is an option. Usually, there will be information printed on the back. e1000e driver trouble shooting (Intel NICs) -=========================================== +------------------------------------------- Example error, ¿may happen on weird and complex routing schemes(citation needed for cause): diff --git a/site/docs/uboot/index.md b/site/docs/uboot/index.md index f5ac9a8..3dc04a4 100644 --- a/site/docs/uboot/index.md +++ b/site/docs/uboot/index.md @@ -6,32 +6,20 @@ x-toc-enable: true **NOTE: This documentation refers only to ARM64. For AMD64/i386 (Intel/AMD) U-Boot setups, please read [uboot-x86.md](uboot-x86.md).** -Libreboot has experimental support for using U-Boot as a coreboot -payload since the [20221214](../../news/libreboot20221214.md) release, on ARM64 -systems, and on x86 since late 2024. - -U-Boot integration in Libreboot is currently at a proof-of-concept -stage, with most boards completely untested and most likely not working. ROM images for them are mostly intended for further testing and development. If you have one of these machines and want to help fix things, you can ping `alpernebbi` on Libera IRC, who ported these boards to Libreboot. -As of 14 December 2022, building of U-Boot images has been tested on -Debian. Make sure you have the latest `lbmk` from the Git repository, -and the build dependencies are installed like so, from `lbmk/` as root: - - ./mk dependencies debian - -This installs everything needed for `./mk -b coreboot`, and part of the -build process makes use of coreboot's own cross-compile toolchain. +Emulation +--------- [QEMU x86/ARM64 virtual machines](../misc/emulation.md) are also supported, which should be easy targets to start tinkering on if you want to contribute. Usage -===== +----- When your board is powered on, U-Boot will ideally turn on the display and start printing console messages there. After a countdown of a few @@ -65,7 +53,7 @@ table, unexpected parts of the SPI ROM image, or do something else entirely. Known issues -============ +------------ U-Boot integration in Libreboot is incomplete. Here is a list of known issues that affect all boards: @@ -83,7 +71,8 @@ issues that affect all boards: - UEFI support is incomplete See also -======== +-------- + - [U-Boot documentation](https://u-boot.readthedocs.io/en/latest/) - [U-Boot documentation (unmigrated files)](https://source.denx.de/u-boot/u-boot/-/tree/master/doc) - [U-Boot and generic distro boot](https://marcin.juszkiewicz.com.pl/2021/03/14/u-boot-and-generic-distro-boot/) diff --git a/site/docs/uboot/uboot-archlinux.md b/site/docs/uboot/uboot-archlinux.md index 45b8d94..13cce6f 100644 --- a/site/docs/uboot/uboot-archlinux.md +++ b/site/docs/uboot/uboot-archlinux.md @@ -4,9 +4,9 @@ x-toc-enable: true ... Background -========== +---------- -ArchLinuxARM Latest (as of May 1st 2023) boots and can be installed successfully using libreboot 20230319 on a gru_bob chromebook. +ArchLinuxARM Latest (as of May 1st 2023) boots and can be installed successfully using libreboot 20230319 on a gru\_bob chromebook. The following process should theoretically be applicable to other U-Boot devices and Linux distributions, but the focus here is specifically on ArchLinuxARM. @@ -18,7 +18,7 @@ And the the instructions from the ArchLinuxARM wiki [here](https://archlinuxarm. The purpose of this guide is to instruct users on how to install an ArchLinuxARM on an external disk that will boot on a gru_bob chromebook, and optionally on the internal eMMC. Many concepts covered in this guide may be familiar to prospective and veteran Libreboot users, with the scope being comprehensive. Boot Method -=========== +----------- There are (at least) three methods that can be used to boot into a Linux distribution from u-boot: 1) EFI - common, modern boot method for amd64 architecture machines. This is not distribution-specific, so if you intend to make a portable drive that is compatible across multiple systems, you may have a use case. @@ -36,7 +36,7 @@ For more information about what actually goes into a boot.scr script, check [thi Since extlinux.conf is supported by multiple bootloaders, making your system more portable, is natively supported by u-boot, it seems to be the best choice for a chromebook. Creating extlinux.conf -====================== +---------------------- Here is an example template of extlinux.conf, [similar examples are found in the u-boot docs](https://u-boot.readthedocs.io/en/latest/develop/distro.html): @@ -46,7 +46,6 @@ menu title Libre-U-Boot menu prompt 0 timeout 50 - label arch menu label Arch Linux ARM linux /Image @@ -63,7 +62,7 @@ label archfallback ``` Formatting and Partitioning Your External Media -=============================================== +----------------------------------------------- Now it's time partition the boot disk. During testing, a microSD card was used in the microSD card slot of the gru-bob chromebook. The libreboot configuration (in the 20230319 release) will boot the microSD card above the onboard eMMC if both are present and bootable. This is useful because it means no knowledge or use of the u-boot console is required. @@ -75,10 +74,12 @@ Find your device with my favourite command, `lsblk` and open it with `fdisk` ``` fdisk /dev/sdX ``` + For users creating a bootable SD card, your device may show up as `/dev/mmcblkX` - if this is the case, make sure to change the commands in this guide to contain that path instead of `/dev/sdX`. In the fdisk tui, create two partitions on a Master Boot Record: + - create a new MBR label - create boot partition of approx. 200MB or greater - set bootable flag on this partition @@ -88,27 +89,32 @@ In the fdisk tui, create two partitions on a Master Boot Record: You will find the appropriate options by typing `m` when using the fdisk tui on Linux distros. Now make the filesystems: + ``` mkfs.vfat /dev/sdX1 mkfs.ext4 /dev/sdX2 - ``` It's now time to get the PARTUUID of `/dev/sdX2`: + ``` sudo blkid | grep "/dev/sdX2" ``` + make sure to note down the PARTUUID of your second partition; not your boot partition. paste this into your extlinux.conf file in the `append` section, e.g.: + ``` append console=ttyS0,115200 console=tty1 rw root=PARTUUID=fc0d0284-ca84-4194-bf8a-4b9da8d66908 ``` + in the template provided above, replace `$PARTUUID` with your own. It's possible to specify root in other ways - check the u-boot docs for more examples. Boot-Disk Creation -================== +------------------ Now that we've got an extlinux.conf file, copy it to your /tmp directory, and we'll begin. + ``` cd /tmp curl -LO http://os.archlinuxarm.org/os/ArchLinuxARM-aarch64-latest.tar.gz @@ -125,6 +131,7 @@ sync umount boot umount root ``` + Note the use of ArchLinuxARM-aarch64-latest.tar.gz and not ArchLinuxARM-gru-latest.tar.gz The current gru build only supports a depthcharge payload and, of course, we're not using depthcharge are we? @@ -135,7 +142,7 @@ Extensive testing with ArchLinuxARM-latest release, showed that booting the fall If you create an extlinux.conf file with paths to both images - like in the template above - you can select either by number at boot. Going Live - Necessary Tweaks -============================= +----------------------------- Once you're at the login prompt, the fun isn't over! Login & password for root are both `root` by default. Most Arch users will likely try to update their system now - don't update just yet. @@ -144,10 +151,12 @@ Run `lsblk` and you'll see that the boot partition is not mounted by default. Updating with `pacman -Syu` at this stage will cause driver problems if you update without your boot partition mounted, likely meaning you cannot connect to the internet with a USB peripheral. To prevent this becoming a problem: + ``` mkdir /boot mount /dev/sdX1 /boot ``` + With that out of the way, yes, you may now update. It's worth creating a basic filesystem table to automate mounting at boot - it's blank by default so here's another template: @@ -162,18 +171,22 @@ UUID=$UUID1 / ext4 rw,relatime 0 1 # /dev/mmcblk1p1 boot UUID=$UUID0 /boot vfat rw,relatime 0 2 ``` + It should go without saying that you'll replace `$UUID0` and `UUID1` with your boot and root filesystem UUID. To get the right information in there: + ``` lsblk -o NAME,UUID,FSTYPE,SIZE ``` + `NAME` and `SIZE` are not necessary, but they will help you tell which partition is which. Final Steps -=========== +----------- At this stage, you now have a fully functional ArchLinuxARM system on an external disk, and are ready to configure your system. If you intend to install onto the eMMC module, you can make your changes permanent with: + ``` dd if=/dev/mmcblk0 of=/dev/mmcblk1 bs=4M status=progress ``` diff --git a/site/docs/uboot/uboot-debian-bookworm.md b/site/docs/uboot/uboot-debian-bookworm.md index 77738c3..1e4eef5 100644 --- a/site/docs/uboot/uboot-debian-bookworm.md +++ b/site/docs/uboot/uboot-debian-bookworm.md @@ -4,9 +4,9 @@ x-toc-enable: true ... System Configuration -==================== +-------------------- -Hardware: Samsung Chromebook Plus XE513C24 (gru_kevin) +Hardware: Samsung Chromebook Plus XE513C24 (gru\_kevin) Libreboot: 2023-04-23 @@ -15,7 +15,7 @@ Operating System: Debian Bookworm RC2 [https://wiki.debian.org/Firmware](https://wiki.debian.org/Firmware) Install Media Preparation -========================= +------------------------- Follow the Debian installation instructions in the link below: @@ -26,16 +26,17 @@ page and I selected the DVD image to have all the packages available when offline (3.7 gigabyte iso). See the notes below about alternately using the netinst version. -[https://cdimage.debian.org/cdimage/bookworm_di_rc2/arm64/iso-dvd/](https://cdimage.debian.org/cdimage/bookworm_di_rc2/arm64/iso-dvd/) +[https://cdimage.debian.org/cdimage/bookworm\_di\_rc2/arm64/iso-dvd/](https://cdimage.debian.org/cdimage/bookworm_di_rc2/arm64/iso-dvd/) -Write the iso file to a micro sdcard. Replace "sdcard_device" below +Write the iso file to a micro sdcard. Replace `sdcard_device` below with the appropriate device path on your system. + ``` # dd if=debian-bookworm-DI-rc2-arm64-DVD-1.img of=/dev/sdcard_device bs=1M status=progress; sync ``` Installation -============ +------------ 1. Insert the micro sdcard into the slot on the Chromebook. 2. Power on the Chromebook. @@ -149,7 +150,7 @@ internal emmc. ![](https://av.libreboot.org/xe513c24/debbook-firefox.jpg) System Functionality -==================== +-------------------- Things that work: diff --git a/site/docs/uboot/uboot-openbsd.md b/site/docs/uboot/uboot-openbsd.md index 75388b4..6b23caf 100644 --- a/site/docs/uboot/uboot-openbsd.md +++ b/site/docs/uboot/uboot-openbsd.md @@ -4,16 +4,16 @@ x-toc-enable: true ... System Configuration -==================== +-------------------- -Hardware: Samsung Chromebook Plus XE513C24 (gru_kevin) +Hardware: Samsung Chromebook Plus XE513C24 (gru\_kevin) Libreboot: 2023-04-23 Operating System: OpenBSD 7.3 Install Media Preparation -========================= +------------------------- Follow the OpenBSD arm64 installation instructions in the link below: @@ -26,7 +26,7 @@ with the appropriate device path on your system. ``` Installation Attempt -==================== +-------------------- 1. Insert the micro sdcard into the slot on the Chromebook. 2. Power on the Chromebook. diff --git a/site/docs/uboot/uboot-x86.md b/site/docs/uboot/uboot-x86.md index bb0f637..b3fd090 100644 --- a/site/docs/uboot/uboot-x86.md +++ b/site/docs/uboot/uboot-x86.md @@ -3,8 +3,8 @@ title: U-Boot payload (x86 specific) x-toc-enable: true ... -Introduction -============ +U-Boot UEFI on x86 +------------------ @@ -25,8 +25,7 @@ payload. It has several boot methods but the most interesting (in an x86 context) is UEFI. U-Boot provides a very sensible UEFI implementation that can reliably boot many Linux and BSD systems. -Availability ------------- +### Availability Do this in lbmk.git (Libreboot's build system) to check whether your board has U-Boot enabled: @@ -50,8 +49,7 @@ Here is an example of what it looks like on the boot menu: -Errors ------- +### Errors If you see error `-25` in the bootflow menu, it's because there's nothing installed that i t can use e.g. EFI bootloader such as GRUB. @@ -60,8 +58,7 @@ If you see error `-2` it's likely that you have tried to boot a USB drive automatically; sometimes you have to do it manually (see the section below about using the bootflow command manually, via `bootflow select`). -Boot Linux/BSD installer (USB) ---------------------------- +### Boot Linux/BSD installer (USB) Just stick your formatted USB stick in. U-Boot should detect it. Sometimes some USB flash drives are broken, because many of them violate specifications and @@ -82,8 +79,7 @@ After selecting the device, you can do: bootflow boot -Booting installed system ------------------------- +### Booting installed system It should just work. If all is well, it'll show the bootflow menu. Simply select your device. If you see error, perhaps try: @@ -91,10 +87,9 @@ select your device. If you see error, perhaps try: bootefi bootmgr Tested operating systems -======================== +------------------------ -Linux/BSD ---------- +### Linux/BSD Arch Linux, Debian Linux and OpenBSD have been tested. @@ -108,15 +103,14 @@ bootloader in the installed system). EFI-based GRUB menus like in the Debian installer seemed to work just fine, that is: setups that use the EFI framebuffer instead of a text console. -Windows -------- +### Windows Windows was tested, and doesn't work yet. Simon Glass maintains the x86 coreboot payload, and has informed me that he still has some work to do there. SecureBoot -========== +---------- Supported by U-Boot, though U-Boot does not currently have a robust way of storing EFI variables, and Libreboot disables SecureBoot by default. However, @@ -131,7 +125,7 @@ sense to Libreboot's GRUB hardening setup, though the latter is more flexible, albeit not widely used by the mainstream, but it does work (I use it myself!). ThinkPad X60/T60 -================ +---------------- The 32-bit U-Boot payload is only useful for 32-bit setups, and 32-bit UEFI isn't really that common on x86; the 64-bit U-Boot payload is much more useful, @@ -168,7 +162,7 @@ interesting in the future, as more distros stop supporting BIOS-based methods, or where the latter may become untested in the future. Bugs -==== +---- Limited testing, at least as of 6 December 2024, but some issues that appeared included: @@ -188,7 +182,7 @@ but some don't very well; the GM45 machines work well, e.g. a ThinkPad X200 was tested. Mitigating instability -======================= +---------------------- U-Boot is not a primary payload on any board where it's enabled. It's instead chainloaded from SeaBIOS on 64-bit x86, and from GRUB on 32-bit x86. You select diff --git a/site/download.md b/site/download.md index 5c6ba07..4be0c58 100644 --- a/site/download.md +++ b/site/download.md @@ -1,5 +1,5 @@ --- -title: Downloads +title: Download Libreboot x-toc-enable: true ... diff --git a/site/faq.md b/site/faq.md index 8a0e0db..f1e7d13 100644 --- a/site/faq.md +++ b/site/faq.md @@ -11,7 +11,7 @@ the [Libreboot 20240225 release](news/libreboot20240225.md#flashprog-now-used-in AKA Frequently Questioned Answers Disable security before flashing -================================ +-------------------------------- Before internal flashing, you must first disable `/dev/mem` protections. Make sure to re-enable them after you're finished. @@ -19,7 +19,7 @@ sure to re-enable them after you're finished. See: [Disabling /dev/mem protection](docs/install/devmem.md) Buy Libreboot pre-installed -============================= +--------------------------- If you want professional installation, Minifree Ltd sells [Libreboot pre-installed](https://minifree.org/) on select hardware, and it also provides @@ -30,20 +30,17 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and operates Minifree Ltd; sales provide funding for the Libreboot project. Important issues -================ +---------------- -How to compile libreboot from source ------------------------------------- +### How to compile libreboot from source Refer to the [lbmk build instructions](docs/build/). -How does the build system work? -------------------------------- +### How does the build system work? Refer to the [lbmk maintenance manual](docs/maintain/). -Do not use CH341A! ------------------- +### Do not use CH341A! This SPI flasher will damage your chip, and the mainboard that it is connected to. @@ -51,8 +48,7 @@ to. Read the notes about CH341A on [docs/install/spi.md](docs/install/spi.md) to learn more. -How Can I Help --------------- +### How Can I Help You do not need to be a skilled developer in order to help the project substantially. @@ -65,8 +61,7 @@ Testing involves minimal effort and really helps out the project. See the [board maintainers documentation](/docs/maintain/testing.md) if you are interested in testing roms before they are released. -Uneven backlight on GM45 ThinkPads ----------------------------------- +### Uneven backlight on GM45 ThinkPads We don't know how to detect the correct PWM value to use in coreboot, so we just use the default one in coreboot which has @@ -75,8 +70,7 @@ this issue on some CCFL panels, but not LED panels. You can work around this in your distribution, by following the notes at [docs: backlight control](../docs/misc/#finetune-backlight-control-on-intel-gpus). -GM45 thinkpad ethernet port doesn't autoconnect ------------------------------------------------ +### GM45 thinkpad ethernet port doesn't autoconnect This was observed on some systems using network-manager. This happens both on the original BIOS and in libreboot. It's a quirk in the @@ -92,8 +86,7 @@ On systemd-based distros, you might try: (the service name might be different for you, depending on your configuration) -PIKE2008 module hangs KGPE-D16 / KCMA-D8 ------------------------------------------ +### PIKE2008 module hangs KGPE-D16 / KCMA-D8 Loading the option ROM from the PIKE2008 module on either ASUS KCMA-D8 or KGPE-D16 causes the system to hang at boot. It's possible to use @@ -102,8 +95,7 @@ or to boot (with SeaGRUB and/or SeaBIOS) from regular SATA and then use it in Linux. The Linux kernel is capable of using the PIKE2008 module without loading the option ROM. -How to save kernel panic logs on thinkpad laptops? --------------------------------------------------- +### How to save kernel panic logs on thinkpad laptops? The easiest method of doing so is by using the kernel's netconsole and reproducing the panic. Netconsole requires two machines, the one that is @@ -168,23 +160,21 @@ the target (`target$`): 7. Try to reproduce the kernel panic. Hardware compatibility -====================== +---------------------- -What systems are compatible with libreboot? --------------------------------------------- +### What systems are compatible with libreboot? Any system can easily be added, so *compatibility* merely refers to whatever boards are integrated in the `lbmk` build system, which libreboot uses. The [installation page](docs/install/) lists compatible machines. -Freedom pitfalls with modern Intel hardware {#intel} ----------------------------------------------------- +### Freedom pitfalls with modern Intel hardware {#intel} Coreboot is nominally Free Software, but requires certain vendor code on some x86 targets that it supports, on both Intel and AMD. -### Intel Management Engine (ME) {#intelme} +#### Intel Management Engine (ME) {#intelme} NOTE: The information below is slightly out of date. Nowadays, Intel ME does not run on an ARC coprocessor, but instead runs on a modified Intel 486 based @@ -353,7 +343,7 @@ If you're stuck with the ME (non-libreboot system), you might find this interesting: -### Firmware Support Package (FSP) {#fsp} +#### Firmware Support Package (FSP) {#fsp} On all recent Intel systems, coreboot support has revolved around integrating a vendor file (for each system) called the *FSP* (firmware support @@ -367,7 +357,7 @@ Since the FSP is responsible for the early hardware initialization, that means it also handles SMM (System Management Mode). This is a special mode that operates below the operating system level. -### CPU microcode updates {#microcode} +#### CPU microcode updates {#microcode} The microcode configures logic gates in your CPU, to implement an instruction set architecture. Your CPU will already contain them, but it also supplies a @@ -393,8 +383,7 @@ The git repository for that project is here: Both the video and the repository give some further insight about CPU microcode. The way it works on AMD will be very similar to Intel. -Freedom pitfalls to consider on AMD hardware {#amd} ----------------------------------------------------------------------------- +### Freedom pitfalls to consider on AMD hardware {#amd} NOTE: Nowadays there's openSIL - it's AMD's attempt to provide some source code again, that projects like coreboot @@ -404,7 +393,7 @@ be "neutered" (nothing like `me_cleaner`, or *psp\_cleaner*) exists yet. AMD has more or less the same problem as Intel, when it comes to software freedom. -### AMD Platform Security Processor (PSP) +#### AMD Platform Security Processor (PSP) This is basically AMD's own version of the [Intel Management Engine](#intelme). It has all of the same basic security and freedom @@ -447,13 +436,13 @@ anecdotal reports indicate that AMD's boot guard counterpart will be used on most OEM hardware, disabled only on so-called "enthusiast" CPUs. -### AMD IMC firmware +#### AMD IMC firmware Read . NOTE: This section is oudated, and it is in need of cleanup. -### AMD SMU firmware +#### AMD SMU firmware NOTE: This section may be outdated, and it is in need of cleanup. @@ -471,7 +460,7 @@ and based on this work, Damien Zammit (another coreboot hacker) firmware, but on the relevant system (ASUS F2A85-M) there were still other such files present (Video BIOS, and others). -### AMD AGESA firmware +#### AMD AGESA firmware NOTE: More needs to be written about this, to reflect the current reality. The situation with AMD has evolved in recent years. The information on this FAQ @@ -483,7 +472,7 @@ project, releasing this as source code under a free license. In 2014, they stopped releasing source code and started releasing AGESA as vendor blobs instead. This makes AGESA now equivalent to [Intel FSP](#fsp). -### AMD CPU microcode updates +#### AMD CPU microcode updates Read the Intel section practically the same, though it was found with much later hardware in @@ -493,8 +482,7 @@ the updates are needed on all AMD boards (depends on CPU). The libreboot project does not consider microcode updates a problem, and it enables them by default on all supported hardware. -Hi, I have <insert random system here>, is it supported? --------------------------------------------------------------------------------------------------------- +### Hi, I have <insert random system here>, is it supported? If it's supported by coreboot, you can add it immediately. Read the [porting guide](/docs/maintain/porting.html) for how to port for a new board. @@ -505,15 +493,13 @@ If coreboot lacks support for your hardware, you must add support for it. Please consult the coreboot project for guidance. General questions -================= +----------------- -How do I install libreboot? -------------------------------------------------------- +### How do I install libreboot? See [installation guide](docs/install/) -How do I program an SPI flash chip? ---------------------------------------------------------------------------------- +### How do I program an SPI flash chip? Refer to:\ [Externally rewrite 25xx NOR flash via SPI protocol](docs/install/spi.md) @@ -521,8 +507,7 @@ Refer to:\ It's possible to use a 16-pin SOIC test clip on an 8-pin SOIC chip, if you align the pins properly. The connection is generally more sturdy. -How do I write-protect the flash chip? ----------------------------------------------------------------------------- +### How do I write-protect the flash chip? By default, there is no write-protection on a libreboot system. This is for usability reasons, because most people do not have easy access to an @@ -542,8 +527,7 @@ welcome to submit patches adding these instructions. TODO: Document PRx based flash protection on Intel platforms, and investigate other methods on AMD systems. -How do I change the BIOS settings? ------------------------------------------------------------------------- +### How do I change the BIOS settings? Most libreboot setups actually use the [GRUB payload](http://www.coreboot.org/GRUB2). More information about payloads @@ -577,8 +561,7 @@ To get a full list of available options, do this: This will change the default inside that ROM image, and then you can re-flash it. -How do I pad a ROM before flashing? -------------------------------------- +### How do I pad a ROM before flashing? It is advisable to simply use a larger ROM image. This section was written mostly for ASUS KCMA-D8 and KGPE-D16 mainboards, where previously we only @@ -617,8 +600,7 @@ padded 16MiB image do the following: With padding removed cbfstool will be able to operate on the image as usual. -Do I need to install a bootloader when installing a distribution? ------------------------------------------------------------------ +### Do I need to install a bootloader when installing a distribution? Most libreboot setups integrate the GRUB bootloader already, as a *[payload](http://www.coreboot.org/Payloads)*. This means that the GRUB @@ -636,8 +618,7 @@ Nowadays, other payloads are also provided. If you're using the SeaBIOS payload, then the normal MBR bootsector is used on your HDD or SSD, like you would expect. So the above paragraphs only apply to the GRUB payload. -Do I need to re-flash when I re-install a distribution? -------------------------------------------------------- +### Do I need to re-flash when I re-install a distribution? Not anymore. Recent versions of libreboot (using the GRUB payload) will automatically switch to a GRUB configuration on the HDD or SSD, if it @@ -649,14 +630,13 @@ more information, see If you're using the SeaBIOS payload, it's even easier. It works just like you would expect. SeaBIOS implements a normal x86 BIOS interface. -What does a flash chip look like? ------------------------------------------------------------------ +### What does a flash chip look like? You can find photos of various chip types on the following page:\ [External 25xx NOR flashing guide](docs/install/spi.md) Inability to load `thinkpad_acpi` on post-haswell systems {#thinkpad-acpi} -========================================================================== +-------------------------------------------------------------------------- Reported by a user on Debian 11 (on a ThinkPad T440p) and a user on Void Linux (ThinkPad T480), Linux (or modprobe) may fail to load @@ -697,8 +677,7 @@ thinkpad_acpi.force_load=1 to your kernel parameters (in GRUB, or your preferred linux-capable bootloader). -tlp ---- +### tlp You can install the `tlp` package and start that service. For example, on Debian: @@ -724,7 +703,7 @@ tlp-stat -b This will provide information about the battery. What other firmware exists outside of libreboot? -================================================== +------------------------------------------------ You can also read information about these in the [libreboot binary blob reduction policy](news/policy.md), where it goes into more detail about some @@ -940,10 +919,9 @@ Use of ethernet or wifi is recommended, as opposed to mobile networks, as these are generally much safer. Operating Systems -================= +----------------- -Can I use Linux? --------------------------------------------------- +### Can I use Linux? Absolutely! It is well-tested in libreboot, and highly recommended. See [installing Linux](../docs/linux/grub_boot_installer.md) and @@ -952,15 +930,13 @@ Absolutely! It is well-tested in libreboot, and highly recommended. See Any recent distribution should work, as long as it uses KMS (kernel mode setting) for the graphics. -Fedora won't boot? (may also be applicable to Redhat/CentOS) ------------------------------------------------------------ +### Fedora won't boot? (may also be applicable to Redhat/CentOS) On Fedora, by default the grub.cfg tries to boot linux in 16-bit mode. You just have to modify Fedora's GRUB configuration. Refer to [the Linux page](docs/linux/). -Can I use BSD? ----------------------------------- +### Can I use BSD? Absolutely! The libreboot firmware has good support for FreeBSD, NetBSD and OpenBSD. Other systems are untested, but should work just fine. @@ -968,8 +944,7 @@ OpenBSD. Other systems are untested, but should work just fine. See: [docs/bsd/](docs/bsd/) -Windows?? ---------- +### Windows?? Yes, you can use Windows 10 and 11. They are not officially supported and the Libreboot project recommends that you *avoid* this choice, because Windows is @@ -1006,13 +981,12 @@ SeaBIOS, with the coreboot framebuffer initialised at startup, on an Intel GPU initialised via coreboot's *libgfxinit*, on November 2023 versions of Libreboot. We do not yet support booting with UEFI on x86 machines. -Are other operating systems compatible? -------------------------------------------------------------------- +### Are other operating systems compatible? Unknown. Perhaps so, but it's impossible to say without further testing. What level of software freedom does libreboot give me? -=================================================== +-------------------------------------------------- Please read the [libreboot binary blob minimalisation policy](news/policy.md). @@ -1062,7 +1036,7 @@ exist, for example, the work done by Sam Zeloof and the Libre Silicon project: (Sam literally makes CPUs in his garage) Where can I learn more about electronics -========================================== +---------------------------------------- * Basics of soldering and rework by PACE Both series of videos are mandatory regardless of your soldering skill. diff --git a/site/faq.uk.md b/site/faq.uk.md index dc3d784..5974ae3 100644 --- a/site/faq.uk.md +++ b/site/faq.uk.md @@ -11,7 +11,7 @@ the [Libreboot 20240225 release](news/libreboot20240225.md#flashprog-now-used-in Також відомо як Відповіді на часті питання Buy Libreboot pre-installed -========== +------------------------- If you want professional installation, Minifree Ltd sells [Libreboot pre-installed](https://minifree.org/) on select hardware, and it also provides @@ -22,20 +22,17 @@ Leah Rowe, the founder and lead developer of Libreboot, also owns and operates Minifree Ltd; sales provide funding for the Libreboot project. Важливі питання -================ +--------------- -Як скомпілювати libreboot з джерельного коду ------------------------------------- +### Як скомпілювати libreboot з джерельного коду Зверніться до [інструкцій зі збірки lbmk](docs/build/index.uk.md). -Як працює система збірки? -------------------------------- +### Як працює система збірки? Зверніться до [посібника з обслуговування lbmk](docs/maintain/). -Не використовуйте CH341A! ------------------- +### Не використовуйте CH341A! Цей програматор SPI пошкодить ваш чіп і материнську плату, до якої він підключений. @@ -43,8 +40,7 @@ operates Minifree Ltd; sales provide funding for the Libreboot project. Прочитайте примітки щодо CH341A на [docs/install/spi.md](docs/install/spi.md), щоб вивчити більше. -Flashrom скаржиться на доступ DEVMEM --------------------------------------- +### Flashprog скаржиться на доступ DEVMEM Якщо запущено `flashprog -p internal` для програмної перепрошивки та ви отримуєте помилку, пов'язану з доступом до /dev/mem, вам слід перезавантажити систему з @@ -64,8 +60,7 @@ Error accessing DMI Table, 0x1000 bytes at 0x000000007fb27000 /dev/mem mmap failed: Operation not permitted ``` -Підсвічування в лівій частині екрана стає темнішим ---------------------------------------------------------------------------------------------------------------- +### Підсвічування в лівій частині екрана стає темнішим Ми не знаємо, як визначити правильне значення ШІМ для використання в coreboot, тому ми просто використовуємо стандартне в coreboot, який має @@ -74,8 +69,7 @@ coreboot, тому ми просто використовуємо стандар Ви можете вирішити цю проблему у своєму дистрибутиві, дотримуючись приміток на [документація: контроль підсвічуванням](../docs/misc/#finetune-backlight-control-on-intel-gpus). -Ethernet не працює на моєму X200/T400/X60/T60, коли я його підключаю -------------------------------------------------------------------- +### Ethernet не працює на моєму X200/T400/X60/T60, коли я його підключаю Це спостерігалося в деяких системах, які використовують network-manager. Таке буває як в оригінальному BIOS, так і в libreboot. Це примха в @@ -91,8 +85,7 @@ Ethernet не працює на моєму X200/T400/X60/T60, коли я йог (назва служби може відрізнятися для вас, залежно від вашої конфігурації) -Мій KCMA-D8 або KGPE-D16 не завантажується з встановленим модулем PIKE2008 ------------------------------------------------------------------------ +### Мій KCMA-D8 або KGPE-D16 не завантажується з встановленим модулем PIKE2008 **Материнські плати KGPE-D16, KCMA-D8 та KFSN4-DRE ASUS було видалено 19 листопада 2022. Ви все ще можете використовувати старіші версії Libreboot, і випуски @@ -105,8 +98,7 @@ Ethernet не працює на моєму X200/T400/X60/T60, коли я йог це в Linux. Ядро Linux здатне використовувати PIKE2008 модуль без завантаження Option ROM. -Як зберегти журнали паніки ядра на ноутбуках Thinkpad? --------------------------------------------------- +### Як зберегти журнали паніки ядра на ноутбуках Thinkpad? Найпростіший спосіб зробити це за допомогою netconsole ядра і відтворення паніки. Netconsole вимагає двох машин, тієї, що є @@ -171,23 +163,21 @@ Ethernet не працює на моєму X200/T400/X60/T60, коли я йог 7. Спробуйте відтворити паніку ядра. Апаратна сумісність -====================== +------------------- -Які системи сумісні з libreboot? ------------------------------------------------------------------------------------ +### Які системи сумісні з libreboot? Будь-яку систему можна легко додати, тому *сумісність* посилається до будь-якої інтегрованої до системи побудови `lbmk` плати, яку libreboot використовує. The [installation page](docs/install/) lists compatible machines. -Пастки свободи з сучасним обладнанням Intel {#intel} ----------------------------------------------------- +### Пастки свободи з сучасним обладнанням Intel {#intel} Coreboot номінально є вільним програмним забезпеченням, але для більшості x86 цілей, які він підтримує, потрібні двійкові блоби, як на Intel, так і на AMD. -### Intel Management Engine (ME) {#intelme} +#### Intel Management Engine (ME) {#intelme} ПРИМІТКА: Інформація нижче трохи застаріла. Зараз Intel ME не працює на співпроцесорі ARC, а працює на архітектурі модифікованого процесора Intel 486, @@ -357,7 +347,7 @@ Revealed (Розкрито вбудовану технологію безпек цікавим: -### Firmware Support Package (FSP) {#fsp} +#### Firmware Support Package (FSP) {#fsp} У всіх останніх системах Intel, підтримка coreboot обертається навколо інтеграції блоба (для кожної системи) під назвою *FSP* (Firmware Support Package, пакет підтримки @@ -376,7 +366,7 @@ Revealed (Розкрито вбудовану технологію безпек руткітів SMM було продемонстровано в природі (використайте пошукову систему, щоб знайти їх). -### Оновлення мікрокода ЦП {#microcode} +#### Оновлення мікрокода ЦП {#microcode} Мікрокод налаштовує логічні вентилі у вашому ЦП, щоб реалізувати архітектуру набору інструкцій. Ваш ЦП уже містить їх, але він також надає спосіб оновлення @@ -400,8 +390,7 @@ Revealed (Розкрито вбудовану технологію безпек І відео, і репозиторій дають деяку додаткову інформацію про мікрокод ЦП. Те, як це працює на AMD, буде дуже схожим на Intel. -Підводні камені свободи, які слід враховувати на апаратному забезпеченні AMD {#amd} ----------------------------------------------------------------------------- +### Підводні камені свободи, які слід враховувати на апаратному забезпеченні AMD {#amd} ПРИМІТКА: В ці дні є openSIL - це спроба AMD надати деякий джерельний код знову, який проекти, подібні coreboot @@ -411,7 +400,7 @@ Revealed (Розкрито вбудовану технологію безпек AMD має більш-менш ту саму проблему, що й Intel, коли справа стосується свободи програмного забезпечення. -### AMD Platform Security Processor (PSP) +#### AMD Platform Security Processor (PSP) По суті, це власна версія [Intel Management Engine](#intelme) від AMD. Він має ті самі базові проблеми безпеки та свободи, @@ -454,13 +443,13 @@ Management Engine), PSP від AMD також може діяти як тира на більшості апаратного забезпечення OEM, відключений лише на так званих процесорах "ентузіастів". -### Прошивка AMD IMC +#### Прошивка AMD IMC Прочитайте . ПРИМІТКА: Ця секція є застарілою, та потребує очищення. -### Прошивка AMD SMU +#### Прошивка AMD SMU ПРИМІТКА: Ця секція є застарілою, та потребує очищення. @@ -478,7 +467,7 @@ Management Engine), PSP від AMD також може діяти як тира прошивкою, але у відповідній системі (ASUS F2A85-M) все ще були присутні інші блоби (Відео BIOS та інші). -### Прошивка AMD AGESA +#### Прошивка AMD AGESA ПРИМІТКА: Більше має бути написано про це, щоб відобразити сучасну реальність. Ситуація з AMD в останні роки змінилась. Інформація на цій сторінці поширених @@ -490,7 +479,7 @@ Management Engine), PSP від AMD також може діяти як тира вони припинили випускати джерельний код і замість цього почали випускати AGESA у вигляді бінарних блобів. Це робить AGESA еквівалентом [Intel FSP](#fsp). -### Оновлення мікрокоду ЦП AMD +#### Оновлення мікрокоду ЦП AMD Прочитайте розділ Intel практично так само, хоча було виявлено, що з набагато пізнішим апаратним забезпеченням @@ -501,7 +490,7 @@ AMD можна працювати без оновлень мікрокоду. Н вмикає їх за замовчуванням на всьому апаратному забезпеченні, яке підтримується. -### AMD не співпрацює +#### AMD не співпрацює Здавалося, що AMD була на правильному шляху в 2011 році, коли вони почала співпрацювати та випускати джерельний код для кількох критичних @@ -528,8 +517,7 @@ Family 15h (на стороні AMD) або будь-яке інше, випущ Це також стосується викривачів або будь-кого, кому потрібна справжня конфіденційність та безпека. -Привіт, у мене <вставте сюди випадкову систему>, чи підтримується вона? --------------------------------------------------------------------------------------------------------- +### Привіт, у мене <вставте сюди випадкову систему>, чи підтримується вона? Якщо вона підтримується coreboot, ви можете додати її негайно. Прочитайте [посібник з перенесення](/docs/maintain/porting.html) про перенесення нової плати. @@ -540,15 +528,13 @@ Family 15h (на стороні AMD) або будь-яке інше, випущ Будь ласка, проконсультуйтесь з проектом coreboot для наставництва. Загальні питання -================= +---------------- -Як встановити libreboot? -------------------------------------------------------- +### Як встановити libreboot? Подивіться [посібник з встановлення](docs/install/) -Як запрограмувати флеш-чіп SPI? ---------------------------------------------------------------------------------- +### Як запрограмувати флеш-чіп SPI? Зверніться до:\ [Зовнішній перезапис 25xx NOR flash через протокол SPI](docs/install/spi.md) @@ -556,8 +542,7 @@ Family 15h (на стороні AMD) або будь-яке інше, випущ Можна використовувати 16-контактний затискач SOIC на 8-контактній мікросхемі SOIC, якщо правильно впорядкувати контакти. Як правило, з'єднання більш міцне. -Як захистити флеш-чіп від запису? ----------------------------------------------------------------------------- +### Як захистити флеш-чіп від запису? За замовчуванням немає захисту від запису на системі libreboot. Це з міркувань зручності використання, оскільки більшість людей не мають легкого доступу до зовнішнього @@ -577,8 +562,7 @@ Family 15h (на стороні AMD) або будь-яке інше, випущ ЗРОБИТИ: Задокументувати захист флеш-пам'яті на основі PRx на платформах Intel і дослідити інші методи на системах AMD. -Як змінити налаштування BIOS? ------------------------------------------------------------------------- +### Як змінити налаштування BIOS? Більшість налаштувань libreboot насправді використовує [корисне навантаження GRUB](http://www.coreboot.org/GRUB2). Більше інформації про корисні навантаження @@ -612,8 +596,7 @@ coreboot вікі для більшої інформації. Це змінить за замовчуванням всередині образа ROM, і потім ви можете перепрошити його. -Як заповнити ROM перед перепрошивкою? --------------------------------------- +### Як заповнити ROM перед перепрошивкою? Бажано просто використовувати більший образ ROM. Цей розділ був написаний здебільшого для материнських плат ASUS KCMA-D8 та KGPE-D16, де раніше ми надавали @@ -652,8 +635,7 @@ ROM та флеш-чіпом. Випадок вище, наприклад: Після видалення заповнення cbfstool зможе працювати із образом як зазвичай. -Чи потрібно встановлювати завантажувач під час встановлення дистрибутива? ---------------------------------------------------------------------------------------------------- +### Чи потрібно встановлювати завантажувач під час встановлення дистрибутива? Більшість налаштувань libreboot уже інтегрують завантажувач GRUB як *[корисне навантаження](http://www.coreboot.org/Payloads)*. Це означає, що завантажувач GRUB @@ -671,8 +653,7 @@ HDD або SSD під час встановлення нового дистри тоді на вашому HDD або SSD використовується звичайний завантажувальний сектор MBR, як і слід було очікувати. Отже, наведені вище параграфи стосуються лише корисного навантаження GRUB. -Чи потрібно мені перепрошивати, коли я перевстановлю дистрибутив? -------------------------------------------------------------------------------------------- +### Чи потрібно мені перепрошивати, коли я перевстановлю дистрибутив? Більше ні. Останні версії libreboot (з використанням корисного навантаження GRUB) автоматично переключатимуться на конфігурацію GRUB на HDD або SSD, якщо @@ -684,14 +665,13 @@ GRUB (наприклад, флеш-накопичувач USB). Для Якщо ви використовуєте корисне навантаження SeaBIOS, це ще простіше. Це працює так, як ви очікували. SeaBIOS реалізує звичайний інтерфейс x86 BIOS. -Як виглядає флеш-чіп? ------------------------------------------------------------------ +### Як виглядає флеш-чіп? Ви можете знайти фотографії різних видів чипів на наступній сторінці:\ [Керівництво зовнішньої прошивки 25xx NOR](docs/install/spi.md) Неможливість виконати modprobe thinkpad\_acpi на Haswell -=============================================== +-------------------------------------------------------- This pertains to ThinkPad T480, T440p and W541. @@ -716,8 +696,7 @@ modprobe: ERROR: could not insert 'thinkpad_acpi': "No such device" options thinkpad_acpi force_load=1 ``` -tlp ---- +### tlp Ви можете встановити пакет `tlp` та розпочати той сервіс. Наприклад, на Debian: @@ -743,13 +722,13 @@ tlp-stat -b Це надасть інформацію про батарею. Яке ще мікропрограмне забезпечення існує за межами libreboot? -================================================== +------------------------------------------------------ Ви можете також прочитати інформацію про цих в [політиці мінімізації бінарних блобів libreboot](news/policy.uk.md), де вона розповідає в більших подробицях про деяких із них. -### Зовнішні графічні карти +#### Зовнішні графічні карти Відео BIOS наявний на більшості графічних карт. Для інтегрованої графіки VBIOS (спеціальний вид OptionROM) зазвичай вбудовано @@ -765,7 +744,7 @@ libreboot буде використовувати цей код, коли він В конфігураціях, де SeaBIOS і власна ініціалізація GPU використовуються разом, додається спеціальна прокладка VBIOS, яка використовує лінійний кадровий буфер coreboot. -### Прошивка EC (вбудований контролер) +#### Прошивка EC (вбудований контролер) Це є у більшості (всіх?) ноутбуків. EC (вбудований контролер) - це невеликий, окремий процесор, який в основному обробляє вхідні/вихідні дані, характерні @@ -785,7 +764,7 @@ libreboot буде використовувати цей код, коли він EC присутній ледь не на всіх ноутбуках. Інші пристрої використовують, залежно від складності, або EC, або варіант із прошивкою в Mask ROM - SuperIO. -### Прошивка HDD/SSD +#### Прошивка HDD/SSD Жорсткі диски та твердотільні накопичувачі містять вбудоване програмне забезпечення, призначене для обробки внутрішньої роботи пристрою, водночас відкриваючи простий, стандартний інтерфейс (наприклад, @@ -885,7 +864,6 @@ SATA через USB, і проект Libreboot здатний завантажу звичайним чином. Проконсультуйтесь з документацією для вашої операційної системи Linux/BSD, щоб знати те, як встановити їх з *повнодисковим шифруванням*: - Поточна теорія (недоведена) полягає в тому, що це принаймні запобіжить зловмисним дискам неправильно маніпулювати даними, які зчитуються з диска або записуються на диск, оскільки він не може отримати доступ до вашого ключа LUKS, @@ -895,7 +873,7 @@ SATA через USB, і проект Libreboot здатний завантажу **Сприймайте сказане в цьому абзаці з дрібкою солі. Це все ще обговорюється і нічого з цього не доведено.** -### NIC (контролер ethernet) +#### NIC (контролер ethernet) Мережеві карти Ethernet зазвичай запускають вбудоване програмне забезпечення, яке відповідає за внутрішню ініціалізацію пристрою. Теоретично його можна налаштувати @@ -904,7 +882,7 @@ SATA через USB, і проект Libreboot здатний завантажу З належним IOMMU можна було би пом'якшити проблеми, пов'язані з DMA. Також можна використовувати мережевий адаптер USB, який не має DMA. -### Мікрокод процесора +#### Мікрокод процесора Мікрокод налаштовує масиви логічних вентилів у мікропроцесорі для реалізації архітектури набору інструкцій. Спеціальні *декодери* в мікропроцесорі налаштують @@ -913,13 +891,13 @@ SATA через USB, і проект Libreboot здатний завантажу [Політика зменшення блобів libreboot](news/policy.uk.md) докладно описує мікрокод. -### Звукова карта +#### Звукова карта Звукове обладнання (інтегроване чи дискретне) зазвичай має вбудоване програмне забезпечення (DSP) для обробки введення/виведення. Знову ж таки, USB DAC є хорошим обхідним шляхом. -### Веб-камера +#### Веб-камера Веб-камери мають вбудоване програмне забезпечення, яке обробляє зображення, що вводиться в камеру; налаштування фокуса, балансу білого тощо. Можна використовувати апаратне забезпечення @@ -927,12 +905,12 @@ SATA через USB, і проект Libreboot здатний завантажу (наприклад, на ноутбуках) не рекомендовані проектом libreboot з міркувань безпеки. -### Хост-контролер USB +#### Хост-контролер USB Хост-контролери USB потребують мікропрограми. Іноді це потрібно надати самому coreboot. -### Прошивка WWAN +#### Прошивка WWAN Деякі ноутбуки можуть мати пристрій для зчитування SIM-карт із карткою для роботи з WWAN, підключення до мережі 3g/4g (наприклад, GSM). Це та @@ -959,10 +937,9 @@ WWAN, підключення до мережі 3g/4g (наприклад, GSM). оскільки вони, як правило, набагато безпечніші. Операційні системи -================= +------------------ -Чи я можу використовувати Linux? --------------------------------------------------- +### Чи я можу використовувати Linux? Абсолютно! Він добре перевірений в libreboot, та дуже рекомендований. Подивіться [встановлення Linux](../docs/linux/grub_boot_installer.md) та @@ -971,15 +948,13 @@ WWAN, підключення до мережі 3g/4g (наприклад, GSM). Будь-який сучасний дистрибутив має працювати, допоки він використовує KMS (kernel mode setting) для графіки. -Fedora не завантажується? (також може бути застосовано до Redhat/CentOS) ------------------------------------------------------------ +### Fedora не завантажується? (також може бути застосовано до Redhat/CentOS) У Fedora типово grub.cfg намагається завантажити linux в 16-розрядному режимі. Вам просто потрібно змінити конфігурацію GRUB Fedora. Зверніться до [сторінки Linux](docs/linux/). -Чи я можу використовувати BSD? ----------------------------------- +### Чи я можу використовувати BSD? Абсолютно! Прошивка libreboot має добру підтримку для FreeBSD, NetBSD та OpenBSD. Інші системи не перевірені, але мають працювати нормально. @@ -987,8 +962,7 @@ OpenBSD. Інші системи не перевірені, але мають п Дивіться: [docs/bsd/](docs/bsd/index.uk.md) -Windows?? ---------- +### Windows?? Yes, you can use Windows 10 and 11. They are not officially supported and the Libreboot project recommends that you *avoid* this choice, because Windows is @@ -1025,13 +999,12 @@ SeaBIOS, with the coreboot framebuffer initialised at startup, on an Intel GPU initialised via coreboot's *libgfxinit*, on November 2023 versions of Libreboot. We do not yet support booting with UEFI on x86 machines. -Чи підтримуються інші операційні системи? -------------------------------------------------------------------- +### Чи підтримуються інші операційні системи? Невідомо. Можливо, але неможливо сказати без подальшого випробовування. Який рівень програмної свободи дає мені libreboot? -=================================================== +-------------------------------------------------- Будь ласка, прочитайте [політику мінімізації бінарних блобів libreboot](news/policy.uk.md). @@ -1077,7 +1050,7 @@ We do not yet support booting with UEFI on x86 machines. (Сем буквально робить процесори в своєму гаражі) Де я можу вивчати більше про електроніку -========================================== +---------------------------------------- * Основи пайки та переробки від PACE Обидві серії відео є обов'язковими незалежно від ваших навичок паяння. diff --git a/site/freedom-status.md b/site/freedom-status.md index 738785c..2568f92 100644 --- a/site/freedom-status.md +++ b/site/freedom-status.md @@ -3,11 +3,11 @@ title: Software and hardware freedom status for each mainboard supported by Libr x-toc-enable: true ... -Introduction -============ +Free as in freedom +------------------ -This page documents how Libreboot's [binary blob reduction -policy](news/policy.md), adopted in November 2022, is implemented in practise, +This page documents how Libreboot's [Binary Blob Reduction +Policy](news/policy.md), adopted in November 2022, is implemented in practise, especially that line which says: *"if free software can be used, it must be used."* @@ -38,15 +38,14 @@ possible* for normal, non-technical users who like the idea of coreboot but who are otherwise not competent to configure it from scratch. Such harm was *corrected*, in November 2022. -Coreboot architecture ---------------------- +### Coreboot architecture For context about certain topics, please read: 100% libre init in coreboot -=========================== +--------------------------- The reason this distinction matters (referring specifically to coreboot's side of the initialisation) will become clearer, in the following sections: @@ -62,10 +61,9 @@ are **OK**](news/policy.md#more-detailed-insight-about-microcode) excluded, alongside default ones with microcode included.](news/microcode.md) Intel platforms -=============== +--------------- -Descriptor vs descriptorless setup ----------------------------------- +### Descriptor vs descriptorless setup Libreboot supports several mainboards using Intel platforms. Of these, there are essentially two class of machine (for the purposes of this article): @@ -116,8 +114,7 @@ datasheets, but those datasheets often contain *reserved* sections where parts are left undocumented. Reverse engineering efforts over the years have documented some of these blank spots. -Libreboot does *not* distribute Intel ME images ------------------------------------------------ +### Libreboot does *not* distribute Intel ME images Libreboot does *not* distribute the Intel ME firmware in any way, whether in the Git repository or in releases. Where it is needed, Libreboot provides @@ -151,8 +148,7 @@ The ME firmware is *required* on almost all Intel platforms, or the machine will turn *off* after 30 minutes (or it will not boot, if the ME also controls whether the CPU comes out of reset). -More about Intel ME removal/disabling ----------------------------------- +### More about Intel ME removal/disabling *Libreboot* provides a way to fully remove the ME firmware, while retaining full use of the machine, on GM45 platforms with ICH9M southbridge. These are @@ -165,10 +161,9 @@ specifically written by Leah Rowe, in 2014 and improved incrementally since. On newer platforms as alluded to above, `me_cleaner` is used instead. Notes about specific types of vendor file -=================================== +----------------------------------------- -VGA option ROMs ---------------- +### VGA option ROMs *Native* video initialisation is supported and *enabled*, for all supported Intel platforms that have it. The source code is provided by coreboot, under @@ -200,8 +195,7 @@ of the following paragraph in Libreboot policy: libreboot is to be configurable, allowing the user to do whatever they like."* - configurable, it most certainly is! See: [docs/maintain/](docs/maintain/) -Memory controller initialisation --------------------------------- +### Memory controller initialisation Libreboot has *fully libre* initialisation available for all Intel memory controllers up to and including Haswell (ThinkPad T440p @@ -209,7 +203,7 @@ and W541) as of Libreboot 20230319 or higher; on Broadwell, Intel MRC is used and on Skylake/newer, FSP-M is used. ARM platforms (chromebooks) -============= +--------------------------- Mostly free software, except for the requirement on `daisy` and `peach` mainboards to include BL1 bootloader files from the vendor. These are: @@ -223,7 +217,7 @@ to include BL1 bootloader files from the vendor. These are: Libreboot List of vendor files, specifically for each board -================================================= +------------------------------------------------- This article has thoroughly explained, in a detailed overview, the precise nature as to *what* vendor files are accomodated for in Libreboot. Again, @@ -234,10 +228,9 @@ the main flash IC which (in some cases) contains software outside of coreboot. Here is a list, *for each* board, of those files: -Intel/x86 ---------- +### Intel/x86 -### Intel ME: +#### Intel ME: Neutered ME required on these targets: @@ -251,7 +244,7 @@ disabled. This is done using `me_cleaner`. See: On MEv11-based platforms, such as the ThinkPad T480 and Dell OptiPlex 3050 Micro, we also use [deguard](docs/install/deguard.md) to disable the Intel Boot Guard. -### KBC1126 EC firmware (HP laptops): +#### KBC1126 EC firmware (HP laptops): This applies to the following targets: `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8470pintel_16mb`, `hp9470m_16mb`. @@ -265,7 +258,7 @@ it during the build process. Libreboot 20230423 onwards does scrub EC firmware and provide functionality in a special script, to insert them with `cbfstool` at the correct offset as defined by coreboot config for each board. -### Intel FSP +#### Intel FSP Provides romstage and raminit, used by coreboot on some boards. In Libreboot, we use it for the following build targets: @@ -273,11 +266,11 @@ we use it for the following build targets: `t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb`, `dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb` -### SMSC SCH5545 Environmental Control +#### SMSC SCH5545 Environmental Control This is a tiny firmware required for fan control, on Dell Precision T1650. -### CPU microcode: +#### CPU microcode: [*Microcode* updates](faq.md#microcode) for CPU provided on *all* x86 platforms, by default. Not @@ -302,7 +295,7 @@ CPU microcode files included by default, on all x86 boards. While not needed in most cases, their use is highly recommended. For reasons why, see: [news/policy.md#more-detailed-insight-about-microcode](news/policy.md#more-detailed-insight-about-microcode) -### Intel Flash Descriptor (IFD): +#### Intel Flash Descriptor (IFD): Intel Flash Descriptors are provided as blobs on some boards, but these are not *software* blobs. They are configurations provided in a binary format, @@ -322,10 +315,9 @@ Intel GbE NVM config (configuration data, binary-encoded, for gigabit NIC): for Intel NICs used in GM45 thinkpads. * Libreboot's `nvmutil` program can manipulate GbE NVM images -ARM/chromebooks ---------------- +### ARM/chromebooks -### BL1 bootloader (peach/daisy): +#### BL1 bootloader (peach/daisy): BL1 bootloader needed on: `daisy_snow`, `daisy_spring` and `peach_pit`. @@ -334,7 +326,7 @@ because the build system does not yet auto-insert the BL1 files. The boards are otherwise believed to work, using Alper's port of U-Boot in Libreboot. Conclusion -========== +---------- From the above, you can see that Libreboot really *does* implement a *binary blobs reduction policy*, with the emphasis on *reduction* being most critical. @@ -348,8 +340,7 @@ power that proprietary software developers have over users. I hope this article provided food for thought. -An aside: hardware freedom --------------------------- +### An aside: hardware freedom None of the currently supported Libreboot machines have libre *hardware*, in the sense that ICs do not come with publicly available *verilog* files and the @@ -361,7 +352,7 @@ them yourself; one day, the Right To Repair movement will hopefully bring about universal access to such documents by the public. Further reading -=============== +--------------- This article has described code what goes in the *main boot flash*, but any computer you buy will have *tons* of firmware elsewhere in the system. Some diff --git a/site/freedom-status.uk.md b/site/freedom-status.uk.md index 92df089..7081ac7 100644 --- a/site/freedom-status.uk.md +++ b/site/freedom-status.uk.md @@ -4,7 +4,7 @@ x-toc-enable: true ... Вступ -============ +---------- Коротка версія історії: *всі* плати, які наразі підтримуються Libreboot можна ініціалізувати в coreboot з *вільним*, *поважаючим свободу* або *з відкритим джерелом* кодом, який @@ -46,8 +46,7 @@ Libreboot досі має суворі стандарти про те, *які* реалізовує цю *політику зменшення блобів*, особливо в тому рядку в ній, який каже, цитата, "якщо блоб можна уникнути, його необхідно уникнути". -Чому це має значення? ---------------------- +### Чому це має значення? *Практичною метою* проекта Libreboot є підтримка якомога більшої кількості апаратного забезпечення підтримки coreboot, повністю протестованого з попередньо зібраними образами ROM @@ -78,8 +77,7 @@ raminit на даній платі, блоб було би надано Libreboo Будь ласка, прочитайте документ, названий: [Політика зменшення бінарних блобів](news/policy.uk.md).* -Архітектура Coreboot ---------------------- +### Архітектура Coreboot Хоча не *суворо* необхідно для не-розробників, Ви можете знайти корисним набуття розуміння на високому рівні того, *як* працює coreboot, для набуття @@ -88,7 +86,7 @@ raminit на даній платі, блоб було би надано Libreboo 100% вільна ініціалізація coreboot -=========================== +---------------------------- *Всі* плати, які наразі підтримуються Libreboot можуть мати 100% вільну ініціалізацію *зі сторони coreboot*. В цьому контексті, це має на увазі @@ -112,10 +110,9 @@ raminit на даній платі, блоб було би надано Libreboo excluded, alongside default ones with microcode included.](news/microcode.md) Платформи Intel -=============== +-------------- -Дескрипторне проти бездескрипторного налаштування ----------------------------------- +### Дескрипторне проти бездескрипторного налаштування Libreboot підтримує декілька материнських плат, які використовують платформи Intel. Серед них існує суттєво два класи машин (для цілей цієї статті): @@ -173,8 +170,7 @@ Libreboot підтримує декілька материнських плат, частини залишені незадокументованими. Зусилля зворотної розробки протягом років задокументували деякі з цих прогалин. -Libreboot *не* розповсюджує образи Intel ME ------------------------------------------------ +### Libreboot *не* розповсюджує образи Intel ME ME містить багато модулів в собі, і один з цих модулів це код BringUp. Цей код BringUp є *власною* прошивкою ініціалізації ME, @@ -218,8 +214,7 @@ Git, ні в випусках. Де необхідно, Libreboot надає Intel ME вимкне той час скидання в 30 хвилин, дозволяючи вам використовувати ваш комп'ютер нормально, навіть незважаючи на те, що ME *не* виконує нічого після цього. -Нейтралізований ME дійсно є вимкненим ------------------------------- +### Нейтралізований ME дійсно є вимкненим Зважайте на це: якщо ME тільки робить свій власний BringUp, але потім не виконує нічого, чи це дійсно щось більше ніж незначний відтік часу життя вашої @@ -245,8 +240,7 @@ Intel ME вимкне той час скидання в 30 хвилин, доз зважає нейтралізовані налаштування ME прийнятними, обидва з перспективи безпеки та перспективи свободи програмного забезпечення. -Більше про видалення/вимкнення Intel ME ----------------------------------- +### Більше про видалення/вимкнення Intel ME *Libreboot* надає шлях повністю видалити прошивку ME, зберігаючи повне використання машини, на платформах GM45 з південним мостом ICH9M. Це @@ -258,7 +252,7 @@ Intel ME вимкне той час скидання в 30 хвилин, доз Option ROM VGA -============ +------------- *Нативна* ініціалізація відео підтримується та *увімкнена*, для всіх платформ Intel, які підтримуються, що мають її. Джерельний код надано coreboot, під @@ -289,8 +283,7 @@ T440p ідуть з обома графічними картками Intel та libreboot є налаштовуваним, дозволяючи користувачу робити все, що заманеться."* - налаштовуваний, напевно! Дивіться: [docs/maintain/](docs/maintain/) -Memory controller initialisation --------------------------------- +### Memory controller initialisation Libreboot has *fully libre* initialisation available for all Intel memory controllers up to and including Haswell (ThinkPad T440p @@ -298,7 +291,7 @@ and W541) as of Libreboot 20230319 or higher; on Broadwell, Intel MRC is used and on Skylake/newer, FSP-M is used. Платформи ARM (chromebook) -============= +----------------------- В більшості без блобів, за вийнятком вимоги на материнських платах `daisy` та `peach` включати блоби завантажувача BL1. Це: @@ -314,7 +307,7 @@ Libreboot *наразі* не розміщує ці блоби взагалі, наразі бракує на веб-сайті Libreboot. Список необхідних блобів, конкретно для кожної плати -================================================= +-------------------------------------------------- Ця стаття ретельно пояснила, в деталізованому огляді, точний характер того, *які* бінарні блоби розміщуються в Libreboot. Знову, @@ -325,10 +318,9 @@ Libreboot *наразі* не розміщує ці блоби взагалі, Ось список, *для кожної* плати, цих блобів: -Intel/x86 ---------- +### Intel/x86 -### Intel ME: +#### Intel ME: Нейтралізований ME потрібен на цих цілях: @@ -342,7 +334,7 @@ Intel/x86 On MEv11-based platforms, such as the ThinkPad T480 and Dell OptiPlex 3050 Micro, we also use [deguard](docs/install/deguard.md) to disable the Intel Boot Guard. -### KBC1126 EC firmware (HP laptops): +#### KBC1126 EC firmware (HP laptops): This applies to the following targets: `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8470pintel_16mb`, `hp9470m_16mb`. @@ -356,7 +348,7 @@ it during the build process. Libreboot 20230423 onwards does scrub EC firmware and provide functionality in a special script, to insert them with `cbfstool` at the correct offset as defined by coreboot config for each board. -### Intel FSP +#### Intel FSP Provides romstage and raminit, used by coreboot on some boards. In Libreboot, we use it for the following build targets: @@ -364,11 +356,11 @@ we use it for the following build targets: `t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb`, `dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb` -### SMSC SCH5545 Environmental Control +#### SMSC SCH5545 Environmental Control This is a tiny firmware required for fan control, on Dell Precision T1650. -### CPU microcode: +#### CPU microcode: Оновлення [*мікрокоду*](faq.uk.md#microcode) для ЦП надано на *всіх* платформах x86, за замовчуванням. Не @@ -388,7 +380,7 @@ excluded, alongside default ones with microcode included.](news/microcode.md) в більшості випадків, їх використання надзвичайно рекомендовано. Дивіться для причин чому: [news/policy.uk.md#більш-детальна-інформація-про-мікрокод](news/policy.uk.md#більш-детальна-інформація-про-мікрокод) -### Intel Flash Descriptor (IFD): +#### Intel Flash Descriptor (IFD): Intel Flash Descriptor надано в якості блобів на деяких платах, але це не є блобами *програмного забезпечення*. Це конфігурації, які надано в двійковому форматі, @@ -408,15 +400,14 @@ Intel Flash Descriptor надано в якості блобів на деяки для мережевих карток Intel, які використані в Thinkpad GM45. * Програма Libreboot `nvmutil` може маніпулювати образами GbE NVM -ARM/chromebook ---------------- +### ARM/chromebook -### BL1 bootloader (peach/daisy): +#### BL1 bootloader (peach/daisy): BL1 завантажувач потрібен на: `daisy_snow`, `daisy_spring` та `peach_pit`. Висновки -========== +--------- З вищезазначеного, ви можете бачити, що Libreboot в дійсності *надає* *політику зменшення бінарних блобів*, з наголошенням на *зменшенні*, що є найбільш критичним. @@ -428,8 +419,7 @@ Libreboot *міг би* додати багато блобів для різни Я сподіваюсь, що ця стаття надала їжу для роздумів. -Відступ: свобода обладнання --------------------------- +### Відступ: свобода обладнання Жодна з машин, які наразі підтримуються Libreboot не має вільного *апаратного забезпечення*, в тому сенсі, що інтегральні схеми не ідуть з публічно доступними файлами *verilog* та @@ -441,7 +431,7 @@ Libreboot *міг би* додати багато блобів для різни універсальний доступ до таких документів спільноті. Для подальшого читання -=============== +------------------- В цій статті описано код, який міститься в *основній завантажувальній флеш-пам'яті*, але будь-який комп'ютер, який ви придбаєте, матиме *тони* мікропрограм в інших частинах системи. Деякі diff --git a/site/git.de.md b/site/git.de.md index fd72cfd..03b72a8 100644 --- a/site/git.de.md +++ b/site/git.de.md @@ -4,7 +4,7 @@ x-toc-enable: true ... Libreboot Repositories -=================== +--------------------- Das `libreboot` Projekt hat hauptsächlich 3 Git Repositories: @@ -70,8 +70,7 @@ welche dieselbe Platform bzw. denselben Chipsatz verwenden. Dokumentation für `ich9utils` ist hier verfügbar:\ [ich9utils Dokumentation](docs/install/ich9utils.md) -lbmk (libreboot-make) ---------------------- +### lbmk (libreboot-make) Dies ist das zentrale build system in Libreboot. Man könnte auch sagen `lbmk` *ist* Libreboot! Das Git repository herunterladen: @@ -90,8 +89,7 @@ Für Anleitungen bzgl. `lbmk` build, siehe [build Anleitungen](docs/build/). Informationen über das build system selbst und wie es funktioniert, sind verfügbar unter dem [lbmk maintenance guide](docs/maintain/). -lbwww and lbwww-img -------------------- +### lbwww and lbwww-img Die *gesamte* Libreboot Website sowie Dokumentation befindet sich in einem Git Repository. @@ -160,8 +158,7 @@ Repository dorthin. Konfiguriere deinen lokalen HTTP Server entsprechend. Nochmal, Anleitungen hierfür findest Du auf der Untitled Webseite. -Name nicht erforderlich ------------------ +### Name nicht erforderlich Beiträge die Du hinzufügst, werden in einem für jeden zugänglichen Git Repository öffentlich aufgezeichnet. Dies betrifft ebenso den Namen sowie @@ -189,8 +186,7 @@ Commits/Patches verwendest dann solltest Du anonym sein. Verwende und [git show](https://git-scm.com/docs/git-show) um dies zu überprüfen bevor Du einem öffentlichen Git Repository Änderungen hinzufügst. -Lizenzen (für Mitwirkende) --------- +### Lizenzen (für Mitwirkende) Stelle sicher, dass deine Beiträge mit einer libre Lizenz frei lizensiert sind. Libreboot schreibt nicht mehr vor, welche Lizenzen akzeptiert werden, @@ -220,8 +216,7 @@ Lizenzen nicht der Fall ist: -Patches senden ------------- +### Patches senden Erstelle einen Account unter und navigiere (während Du eingeloggt bist) zu dem Repository das Du bearbeiten möchtest. Klicke @@ -252,8 +247,7 @@ Ein weiterer Weg Patches zu senden ist Leah Rowe direkt eine email zu senden: Um den Prozess der Quelltext Überprüfung transparent zu gestalten, wird jedoch empfohlen künftig Codeberg zu verwenden. -Mailing list ------------- +### Mailing list Libreboot has this mailing list: @@ -261,7 +255,7 @@ Libreboot has this mailing list: The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) Mirrors für lbmk.git -=================== +-------------------- Das `lbmk` Repository enthält Libreboot's automatischess build system, welches Libreboot Veröffentlichungen herstellt (inklusive kompilierter ROM Images). @@ -280,12 +274,11 @@ angeklickt werden, um Änderungen in deinem Web Browser anzusehen): * Mirrors fur pico-serprog.git -========================= +---------------------------- * -lbwww.git Mirror ----------------- +### lbwww.git Mirror Das `lbwww` Repository enthält Markdown Dateien (Pandoc Variant), für die Verwendung mit dem [Untitled Static Site Generator](https://untitled.vimuser.org/); @@ -311,7 +304,7 @@ des Libreboot Projektes *Mirror* mit zusätzlichen Datenverkehr durch Bilder zu belasten. Notabug Repositories -==================== +-------------------- Commits die zu codeberg gepusht werden, werden ebenso zu notabug gepusht, zusätzlich zu den anderen Mirrors. diff --git a/site/git.md b/site/git.md index a2c3667..228655d 100644 --- a/site/git.md +++ b/site/git.md @@ -3,8 +3,8 @@ title: Code review x-toc-enable: true ... -libreboot repositories -=================== +Libreboot repositories +---------------------- The `libreboot` project has 3 main Git repositories: @@ -64,8 +64,7 @@ also work for other systems using the same platform/chipset. Documentation for `ich9utils` is available here:\ [ich9utils documentation](docs/install/ich9utils.md) -lbmk (libreboot-make) ---------------------- +### lbmk (libreboot-make) This is the core build system in libreboot. You could say that `lbmk` *is* libreboot! Download the Git repository: @@ -83,8 +82,7 @@ build `lbmk`, refer to the [build instructions](docs/build/). Information about the build system itself, and how it works, is available in the [lbmk maintenance guide](docs/maintain/). -lbwww and lbwww-img -------------------- +### lbwww and lbwww-img The *entire* libreboot website and documentation is hosted in a Git repository. Download it like so: @@ -149,8 +147,7 @@ repository there. Configure your local HTTP server accordingly. Again, instructions are available on the Untitled website for this purpose. -Name not required ------------------ +### Name not required Contributions that you make are publicly recorded, in a Git repository which everyone can access. This includes the name and email address of the @@ -175,8 +172,7 @@ should be fairly anonymous. Use and [git show](https://git-scm.com/docs/git-show) to confirm that before you push changes to a public Git repository. -Licenses (for contributors) --------- +### Licenses (for contributors) Make sure to freely license your work, under a libre license. Libreboot no longer sets arbitrary restrictions on what licenses are accepted, and many @@ -205,8 +201,7 @@ sublicense) that other licenses do not: -Send patches ------------- +### Send patches Make an account on and navigate (while logged in) to the repository that you wish to work on. Click *Fork* and in your account, @@ -232,8 +227,7 @@ Another way to submit patches is to email Leah Rowe directly: However, for transparency of the code review process, it's recommended that you use Codeberg, for the time being. -Mailing list ------------- +### Mailing list Libreboot has this mailing list: @@ -241,7 +235,7 @@ Libreboot has this mailing list: The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) Mirrors of lbmk.git -=================== +------------------- The `lbmk` repository contains Libreboot's automated build system, which produces Libreboot releases (including compiled ROM images). @@ -260,12 +254,11 @@ to view changes in your Web browser): * Mirrors of pico-serprog.git -========================= +-------------------------- * -lbwww.git mirror ----------------- +### lbwww.git mirror The `lbwww` repository contains Markdown files (pandoc variant), for use with the [Untitled Static Site Generator](https://untitled.vimuser.org/); this @@ -290,7 +283,7 @@ and it is not the intention of the Libreboot project to bog down *mirrors* with additional traffic by hosting images. Notabug repositories -==================== +-------------------- Commits that go to codeberg are also still pushed to notabug, in addition to the other mirrors. Notabug is considered a *mirror* since 8 April 2023, when diff --git a/site/git.uk.md b/site/git.uk.md index d8168a6..8bf7d53 100644 --- a/site/git.uk.md +++ b/site/git.uk.md @@ -4,7 +4,7 @@ x-toc-enable: true ... репозиторії libreboot -=================== +--------------------- Проект `libreboot` має 3 основні сховища Git: @@ -64,8 +64,7 @@ Linux. Наприклад, система збірки (lbmk) не переві Документація для `ich9utils` доступна тут:\ [документація ich9utils](docs/install/ich9utils.md) -lbmk (libreboot-make) ---------------------- +### lbmk (libreboot-make) Це основна система збирання в libreboot. Можна сказати, що `lbmk` *це* libreboot! Завантажте репозиторій Git: @@ -83,8 +82,7 @@ libreboot! Завантажте репозиторій Git: Інформація про саму систему збірки та про те, як вона працює, доступна в [посібнику обслуговування lbmk](docs/maintain/). -lbwww та lbwww-img -------------------- +### lbwww та lbwww-img *Весь* веб-сайт і документація libreboot розміщені в репозиторії Git. Завантажте так: @@ -149,8 +147,7 @@ Untitled. Знову ж таки, інструкції для цього доступні на веб-сайті Untitled. -Ім'я не вимагається ------------------ +### Ім'я не вимагається Внески, які ви робите, реєструються публічно в репозиторії Git, доступ до якого мають всі. Це включає ім'я та електронну адресу @@ -175,8 +172,7 @@ Untitled. та [git show](https://git-scm.com/docs/git-show), щоб підтвердити це перед тим, як ви надсилаєте зміни до загальнодоступного сховища Git. -Ліцензії (для учасників) --------- +### Ліцензії (для учасників) Обов'язково вільно ліцензуйте свою роботу, за вільною ліцензією. Libreboot більше не встановлює довільні обмеження на те, які ліцензії приймаються, і багато @@ -205,8 +201,7 @@ Untitled. -Надсилайте виправлення ------------- +### Надсилайте виправлення Створіть обліковий запис на і перейдіть (увійшовши в систему) до репозиторію, над яким ви хочете працювати. Натисніть *Fork*, і у вашому обліковому записі, @@ -232,8 +227,7 @@ IRC-канал libreboot і повідомити канал, які виправ Однак, для прозорості процесу перевірки коду, ми рекомендуємо на даний момент використовувати Codeberg. -Mailing list ------------- +### Mailing list Libreboot has this mailing list: @@ -241,7 +235,7 @@ Libreboot has this mailing list: The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) Дзеркала lbmk.git -=================== +----------------- Репозиторій `lbmk` містить автоматизовану систему побудови Libreboot, що створює випуски Libreboot (включаючи зібрані образи ROM). @@ -260,12 +254,11 @@ The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreb * Дзеркала pico-serprog.git -========================= +------------------------- * -дзеркало lbwww.git ----------------- +### дзеркало lbwww.git Репозиторій `lbwww` містить файли Markdown (варіант pandoc), для використання з [генератором статичних сайтів Untitled](https://untitled.vimuser.org/); це те, @@ -290,7 +283,7 @@ The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreb в додатковий трафік шляхом розміщення зображень. Репозиторії Notabug -==================== +------------------- Коміти, які ідуть до codeberg досі push'аться до notabug, в додаток до інших дзеркал. Notabug розцінюється *дзеркалом* з 8 квітня 2023 року, коли diff --git a/site/index.md b/site/index.md index d723f7a..4640701 100644 --- a/site/index.md +++ b/site/index.md @@ -38,7 +38,7 @@ you continue to use your hardware, with continued firmware updates. All of this is *why* Libreboot exists. Overview of Libreboot design -============================ +---------------------------- @@ -66,7 +66,7 @@ Libreboot, coreboot would be inaccessible for most users; you can also still [reconfigure](docs/maintain/) Libreboot however you wish. Why use Libreboot? -================== +------------------ @@ -80,7 +80,7 @@ whereas Libreboot is specifically crafted for end users. In other words, the purpose of Libreboot is to *Just Work*. Direct configuration and installation of coreboot is also possible, but Libreboot makes it *much* easier. -Libreboot gives you [freedoms](https://writefreesoftware.org/) that +Libreboot gives you [Free Software](https://writefreesoftware.org/) that you otherwise can't get with most other boot firmware, plus faster boot speeds and [better security](docs/linux/grub_hardening.md). It's extremely powerful and [configurable](docs/maintain/) for many use cases. If you're unhappy with @@ -113,7 +113,7 @@ over your own property (your computer), and so, we make it our mission to help you [wrest](https://trmm.net/TOCTOU/) back such control. Libreboot is not a fork of coreboot -=================================== +----------------------------------- @@ -140,8 +140,7 @@ knowledge or skill except the ability to follow [simplified instructions, written for non-technical users](docs/install/). -How to help ------------ +### How to help The [tasks page](tasks/) lists tasks that could (will) be worked on. It will be updated over time as more tasks are added/completede. If you want to help, @@ -176,8 +175,7 @@ repository](https://codeberg.org/libreboot/lbwww) where you can send patches. Any and all development discussion and user support are all done on the IRC channel. More information is on the [contact page](contact.md). -Translations needed, for libreboot.org --------------------------------------- +### Translations needed, for libreboot.org Libreboot currently has translated Web pages in Ukrainian and French (but not for all pages, yet, on either language). diff --git a/site/index.ru.md b/site/index.ru.md index 9dd8ed6..567c9ac 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -25,7 +25,7 @@ methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. Обзор устройства Libreboot -============================ +-------------------------- @@ -34,7 +34,7 @@ Libreboot предоставляет [coreboot](https://coreboot.org/) для [ Libreboot - это *дистрибутив coreboot* также, как и Debian - *диструбутив Linux*. Libreboot делает coreboot простым к использованию для обычных пользователей, предоставляя [полностью автоматизированную систему сборки](docs/build/) и [дружелюбные к пользователю инструкции к установке](docs/install/), в дополении к регулярному бинарному релизу, дающему скомпилированные ROM образы для установки на поддерживаемом оборудовании. Без автоматизации, предоставляемой Libreboot, coreboot был бы недоступен для большинства пользователей; однако вы также можете [сконфигурировать](docs/mantain) Libreboot как вы желаете. Почему стоит использовать Libreboot? -================== +------------------------------------ @@ -47,7 +47,7 @@ Libreboot надежнее многих проприетарных прошив Libreboot ориентирован на сообщество, с фокусом на помощь людям перестать пользоваться проприетарными загрузочными прошивками; мы сами хотим жить в таком мире, где все программное обеспечение [свободное](https://writefreesoftware.org/), и поэтому, Libreboot - это попытка приблизиться к этому миру. В отличие от больших поставщиков, мы не пытаемся задушить вас любыми способами, мы тажке не видим в вас никакой угрозы; мы уважаем возможность использовать, изучать, модифицировать и распространять программное обеспечение без ограничения и считаем, что все должны иметь это право. Что касается компьютеров, это вещи, которые вы купили, и у вас есть право изменять их как вам угодно. Когда вы слышите, что Intel разговаривает о *Boot Guard* (который мешает coreboot, разрешая запускать только прошивку, имеющую их подпись) или других крупных производителей, налагающих похожие ограничения, и вы слышите о "безопасности", они только говорят о *своей* безопасности, но не вашей. В Libreboot все наоборот: мы видим Intel Boot Guard и похожие технологии как покушение на ваши свободы и собственность (ваш компьютер), и поэтому наша миссия - помочь вам [вырвать](https://trmm.net/TOCTOU/) контроль обратно. Libreboot это не форк coreboot -=================================== +------------------------------ @@ -59,8 +59,7 @@ Libreboot это не форк coreboot Регулярные бинарные релизы Libreboot предоставляет эти ROM образы уже собранными, и вы просто можете их установить, без каких-либо дополнительных знаний или навыков, исключая способность следовать [упрощенной инструкции, написанной для пользователей, не обладающими техническими знаниями](docs/install/). -Как помочь? ------------ +### Как помочь? [Страница задач](tasks/) показывает задачи, над которыми нужно работать. Она будет обновляться по мере того, как задания будут выполнены/добавлены. Если вы хотите помочь, выбирайте одно из заданий и работайте над ним. @@ -78,8 +77,7 @@ Libreboot это не форк coreboot Вся дискуссии насчет разработки и поддержка пользователей осуществляется через IRC. Больше информации можно найти на [странице контактов](contact.ru.md) -Требуется помощь с переводом libreboot.org --------------------------------------- +### Требуется помощь с переводом libreboot.org Сейчас Libreboot перевел веб страницы на украинский и французский (но не все страницы). diff --git a/site/news/10.md b/site/news/10.md index 70bc7c9..b60b371 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -14,8 +14,8 @@ history. This article complements the pre-existing [contrib](../contrib.md) page, which attempts to list the numerous contributions made by people to Libreboot, over the years. -Introduction -============ +Ten years of Free Software +----------------------- The *Libreboot* project provides [free, open source](https://writefreesoftware.org/) (*libre*) boot @@ -49,10 +49,9 @@ since I've been here all this time. Let's get started! How did Libreboot start? -======================== +------------------ -*Why* did it start? -------------------- +### *Why* did it start? I'm a free software activist. First and foremost, my focus is on using as much Free Software *myself*, and I want to help other people achieve a level of @@ -63,8 +62,7 @@ believe in the ideology behind it. I merely apply it in different, more so I have to put myself in the headspace I was in, during each development year relative to when Libreboot started. -Early history -------------- +### Early history The name *Libreboot* actually existed from about February 2014 onward. The *libreboot.org* domain name was registered on 26 January 2014. I initially @@ -126,7 +124,7 @@ talking about my company, which is where you could download my source tarballs at the time. 2013-2014: early days -===================== +-------------------- When Libreboot first started, it *only* provided very basic releases: pre compiled ROM images, with source code, but there was no automated build system. @@ -159,14 +157,12 @@ directly boot Linux kernels. GRUB has many advanced features, such as GPG and LUKS support, and it has support for virtually all of the major file systems in use today. -Libreboot logo --------------- +### Libreboot logo Marcus Moeller designed the Libreboot logo in 2014, after I publicly requested that samples be prepared for my review. Marcus's logo was the one I chose. -Why GRUB? ---------- +### Why GRUB? Libreboot has always, at least on x86, preferred *GRUB* as a coreboot payload. @@ -261,8 +257,7 @@ you no longer need to install anything bootloader-related on your HDD/SSD. Although excluding this usually requires re-configuring `grub.cfg` in flash, Libreboot does provide this capability. -Automatic build system ----------------------- +### Automatic build system One of Libreboot's other main innovations, in addition to providing binary releases, was to provide an automated *build system* interface. With it, the @@ -319,7 +314,7 @@ You can learn more about the build system by reading [lbmk documentation](../docs/maintain/). late 2014-2016: expansion -======================== +------------------------- Libreboot up until late 2014 was mainly a proof of concept. It *worked*, but not well. The precursor of what became Libreboot's automated build system, @@ -329,8 +324,7 @@ Almost all of 2014 was spent entirely on the build system, and on documentation, without much additional focus on hardware support; I always knew then that it would later expand, so I focused solely on the infrastructure. -GM45 hardware (e.g. ThinkPad X200) ---------------------------------- +### GM45 hardware (e.g. ThinkPad X200) I was approached by another developer, named Steve Shenton, around October of 2014. I'd expressed interest in the ThinkPad X200, as an upgrade to the X60 @@ -381,8 +375,7 @@ Based on this, and extensive amounts of documentation was written during the same period, I then provided the Libreboot 20150124 release on 24 January 2015. It added ThinkPad X200, X200S and X200 Tablet support. -2015: T400, T500, W500... R400 ------------------------- +### 2015: T400, T500, W500... R400 Coreboot lacked supported for other GM45 thinkpads at this time, when X200 support was first added to Libreboot. Testing was later done on these other @@ -397,8 +390,7 @@ So, during 2015, Libreboot added support for many newer laptops. ASUS KCMA-D8 and KGPE-D16 support was also first added to Libreboot during this year, worked on by Timothy Pearson and integrated into Libreboot. -2015-2016: Major build system improvements ------------------------------------------- +### 2015-2016: Major build system improvements The build system was heavily improved during this period, improving the automation and greatly expanding the supported features. @@ -432,7 +424,7 @@ people contributed to the project, during this period. You can check the [contrib](../contrib.md) page for a list of people, and check git logs. 2016: GNU Libreboot -=================== +-------------------- Yes. *That* is also covered here. Naturally, Libreboot was becoming very popular and I looked for ways to extend that. Back in 2015 and most of 2016, @@ -440,8 +432,7 @@ I saw GNU membership as a natural step for the project to take. Libreboot had a mailing list at that time, hosted on the GNU Savannah infrastructure, so it seemed only logical to give it a go. -Evaluation and accession ---------------------------- +### Evaluation and accession Libreboot was briefly a GNU project, between 14 April 2016 to 15 September 2016. I had proposed this during the summer of 2015, and worked with the GNU Eval @@ -464,8 +455,7 @@ start integrating with the GNU infrastructure. *Three* Libreboot releases were released, during its GNU membership, namely: Libreboot 20160818, 20160902 and 20160907. -Initial outcomes -------------- +### Initial outcomes Libreboot's popularity reached great heights during this time, greatly expanding and attracting many new developers. Joining GNU accelerated this further, @@ -475,8 +465,7 @@ I later realised otherwise, regarding the ideology; more on this later, in the sections about osboot, and the osboot/libreboot merge, and events after that. -Regret ------- +### Regret Anyway: during Libreboot's membership, I started to realise that many of the technical requirements imposed on Libreboot were unworkable, especially the @@ -574,8 +563,7 @@ accept Libreboot early; yet another example of the power that he held. Needless to say, I was stunned. And now, I will write about Libreboot's subsequent exit from the GNU project: -Exit ----- +### Exit Later, a member of the FSF staff got fired, who happened to be transgender, and I had been friends with that person. I myself had only recently come out @@ -605,8 +593,7 @@ have a tendency to list projects as *unmaintained* or *decommissioned* if no longer developed within GNU, but they do not have language pertaining to *active* projects that leave, that stay active. -GNU's response --------------- +### GNU's response Libreboot's decision to leave was not without precedent. GnuTLS also left, as did Nano (Nano later re-joined), though GnuTLS's departure was never officially @@ -654,10 +641,9 @@ and Libreboot's newer [Binary Blob Reduction Policy](policy.md), later in the article. 2017-2021: Post-GNU years -========================= +--------------------- -GNU cuts Libreboot loose --------------------------- +### GNU cuts Libreboot loose Libreboot's departure from GNU came about 1 week after a big stable release, the Libreboot 20160907 release. I pretty much burned out after that release, @@ -677,8 +663,7 @@ back at these years now with pride; I did the right thing, even if I caused a lot of trouble while doing it, trouble that I had to later correct, and atone for. It's a bittersweet realisation, but it is what it is. -Apology to GNU --------------- +### Apology to GNU Alyssa Rosenzweig, who later founded the Panfrost project and nowadays works on free graphics drivers for Asahi Linux, briefly joined the Libreboot project @@ -722,10 +707,9 @@ and user support to other people - I later took over the project again in 2021, a topic which I will also cover, later in this article. 2017-2021: the great rewrite -============================ +----------------------- -Initial work, and why ---------------------- +### Initial work, and why While Libreboot was a member of the GNU project, I did a thought experiment: what if Libreboot's build system and general infrastructure *did* adhere to @@ -739,8 +723,7 @@ This was later scrapped, when I decided to accept Alyssa's work instead; she converted the website to use Markdown instead, with a custom static site generator. -Paper build system ------------------- +### Paper build system I simultaneously commissioned a re-write of the build system. There wasn't anything seriously wrong with the one I wrote, but I wanted to see if it could @@ -776,8 +759,7 @@ I keep that repository there for archival, but it is no longer developed. I took over the project again in 2021, and scrapped the rewrite. More on this later in the article! -Andrew Robbins and Sebastian Grzywna ------------------------------------- +### Andrew Robbins and Sebastian Grzywna Sebastian had joined the project during early 2016, advising about hardware and he made quite a few useful code contributions at first. For example, he @@ -800,8 +782,7 @@ component could work independently of the other. If I had to make an analogy, it was sort of like the monolith vs microkernel argument, paper being the same sort of mentality for the latter. -I was AWOL for years --------------------- +### I was AWOL for years I wasn't active in the project during these years, at all. I first was prepping mentally and financially for gender reassignment surgery scheduled for late @@ -852,8 +833,7 @@ But that's how it all was, for many years. I regard Libreboot as having been a *dead project*, during this period. All (*all*) of the work put into it at that time, was a complete waste of energy and effort. -Paper never worked ------------------- +### Paper never worked The rewrite largely failed. During 2017-2021, Libreboot no longer had any releases. The Paper build system *never* reliably built any ROM images, due @@ -946,7 +926,7 @@ in the next sections. Paul stopped working on Libreboot after around late 2017, leaving the work solely in the hands of Andrew and Sebastian. late 2020: osboot -================ +---------------- I started the [osboot project](https://notabug.org/osboot) in December 2020. Check *osboot.org* on the Wayback Machine. Osboot was initially called @@ -1024,8 +1004,7 @@ fun again, and I found that I once again had the energy. In short, I had my mojo back. My then 4-year hiatus was over. -December 2020 Libreboot takeover --------------------------------- +### December 2020 Libreboot takeover Perhaps getting too carried away too soon, I actually took over the Libreboot project again in late December 2020. I was rapidly working on adding all the @@ -1038,8 +1017,7 @@ a Libreboot takeover yet. I needed more time to polish everything. Doing a tiny release for 1 customer, on 1 machine (the X230) was all well and good, but I decided that I had time to polish it more. -March 2021 Libreboot takeover ------------------------------ +### March 2021 Libreboot takeover I wanted to get rid of Sebastian and Andrew for some time, at that point. Too many years had gone by, without any releases in Libreboot, and the Paper build @@ -1084,10 +1062,9 @@ However, I only had osboot then. I started actually working on a new Libreboot release *after* I took over. 2021 (lib)reboot -=============== +--------------- -New Libreboot repositories --------------------------- +### New Libreboot repositories The original Libreboot git repository can be found here: @@ -1108,8 +1085,7 @@ In mid-2021, Libreboot was split into smaller repositories: * `untitled`: the static site generator, which creates the website, by creating HTML files from the Markdown files in `lbwww` -Untitled Static Site Generator ------------------------------- +### Untitled Static Site Generator Untitled Static Site Generator was going to be part of Libreboot officially, but by that time, I had forked the Libreboot static site generator many times, for @@ -1126,8 +1102,7 @@ The osboot project greatly expanded, during this time. It never made any releases officially, but it provided an excellent proof of concept, and it became the basis for modern day Libreboot. -May 2021 Libreboot release --------------------------- +### May 2021 Libreboot release Somewhat annoyingly, it coincided with the Freenode/Libera drama at that time, when the latter forked from Freenode after a hostile takeover. Thankfully, that @@ -1154,15 +1129,14 @@ in about 5 years, at that point, and it added many new boards. It inherited all of the massive build system design improvements from osboot. Osboot from 2021-2022 -==================== +---------------------- The *osboot* project continued, since December 2020 when it started. I started adding many new boards to it. The purpose of Osboot was the same as Libreboot, except that it had the [Binary Blob Reduction Policy](policy.md) instead. This is the policy that *modern* Libreboot uses, since merging with osboot. -Goals of osboot ---------------- +### Goals of osboot I *wanted* to start a project like osboot much earlier, in 2017. In fact, I was going to, but real life got in the way and I went on hiatus for a few years. @@ -1221,8 +1195,7 @@ other files such as Intel MRC firmware and SMSC KBC1126 EC firmware (KBC1126 EC firmware extraction was only done in Libreboot, after it merged with osboot - more on this later) -November 2022: osboot/libreboot merger -------------- +### November 2022: osboot/libreboot merger I *shut* down the osboot project, formerly hosted on *osboot.org*, during November 2022. The website was redirected to Libreboot. I then added all @@ -1241,16 +1214,26 @@ everyone supported this move. Sure enough, I saw a relative lack of opposition to it; though, some of the more dogmatic members of the FSF were quite upset. This level of upset later caused.... well, that's what I'm going to cover next. -FSF fork -======== +Cold Boot War +------- + +This period of Libreboot's history involved a massive amount of extreme and +hostile competition between the Libreboot project and a *hostile fork* of +Libreboot started by the FSF (now a GNU project). Libreboot fought hard to ensure +that it, the *real* Libreboot project, the one on libreboot.org, survived, +becauseu the FSF literally tried to destroy it. They made no secret of it, and +even publicly announced such intentions at their LibrePlanet 2023 conference. + +Much of the remainder of this article will cover this period, and its aftermath. +This period of Libreboot's history is called the *Cold Boot War*. SPOILER ALERT: +Libreboot won. The purpose of today's article has been to write a rigorous history section for the Libreboot project, because a lot of earlier history for the project wasn't available. Many of Libreboot's early years were turbulent, and I never expected then that the project would last 5 years, let alone 10. -Initial hostile fork --------------------- +### FSF's hostile fork During Libreplanet 2023, which is the FSF's annual conference, the FSF, through Denis Carikli who is part of their inner circle, announced a *hostile fork* of @@ -1301,8 +1284,7 @@ product. No. They put a paragraph in their documentation, urging people to *delete* links to libreboot.org, and link to them. *They were out for blood*. -FSF's 2nd fork attempt ---------------------- +### FSF's 2nd fork attempt So I've responded in kind, ever since. Regardless of whether they succeed or whether they are competent, a thought exists in their head. A dream, you could @@ -1343,8 +1325,7 @@ So, my strategy has been to constantly develop Libreboot from now on, much more aggressively, and generally stay on top of my game. And I made no secret of this strategy; I've been pretty open about everything, throughout 2023. -Countercoup ------------ +### Countercoup My countercoup has essentially consisted of a single strategy: be the best, on a technical level. During all of 2023, roughly 5x as much work has gone into @@ -1399,8 +1380,7 @@ I also previously wrote about each of the three audits during 2023: and now: -Canoeboot ---------- +### Canoeboot Purely for my own entertainment, I decided to re-create blob-free Libreboot *myself*, exactly the same one that Libreboot used in the past, before @@ -1451,7 +1431,9 @@ the writing of documentation. Conversely, GNU is *1 year* and *2 years* out of date, in terms of code and documentation respectively. 2024 reconciliation intentions -============================== +------------------------------ + +### End of the Cold Boot War **This reconciliation was cancelled. Please see the [update from January 2025](#january-1st-2025-update).** @@ -1506,7 +1488,7 @@ to manually upload HTML files to, generated by Untitled, which they wrapped around directly, within their fork of the Libreboot build system). Last remarks -============ +----------- I've pretty much gone through the entire history, to the best of my ability. I probably did forget a few things, but these are the broad strokes. If you @@ -1535,15 +1517,23 @@ with Libreboot pre-installed. You can find it on [minifree.org](https://minifree.org/). January 1st, 2025, UPDATE! -======================== +------------------------ + +### Cold Boot War II The truce of 2024 has ended. GNU did a talk during 38C3 conference, where they spent at least *one third* of the talk, telling people to stop using Libreboot, to stop promoting Libreboot, stop contributing to it. This is an -act of war against the Libreboot project. +act of war against the Libreboot project. Their decision, in the talk, +demonstrated that they have all the same intentions that they originally had +in their LibrePlanet 2023 talk, that lead to the *first* Cold Boot War. + +Intent matters. A lot of people might disagree, but the world runs on dreams. +What we do in the moment is just an implementation dreams. Their dream is +to *destroy the Libreboot project*. Therefore, Cold Boot War II was declared, in the early hours of January 1st, 2025. -There won't be much material difference sa a result of this, but the consequence +There won't be much material difference as a result of this, but the consequence is that there is no longer good will from Libreboot towards the GNU project. Canoeboot will be developed as aggressively as before, if not more so. It will diff --git a/site/news/argon2.md b/site/news/argon2.md index 0d752ec..0ad2d60 100644 --- a/site/news/argon2.md +++ b/site/news/argon2.md @@ -4,8 +4,8 @@ -Introduction -============ +Free as in... PHC +------------------------ The GRUB payload has supported LUKSv2 for a long time, but only with the old-school PBKDF2 key derivation method; most Linux dm-crypt setups on LUKSv2 @@ -28,8 +28,7 @@ the original work that Nicholas imported from Archlinux AUR. The work on AUR, and Nicholas's update based on it, was ultimately based on the work done by Patrick Steinhardt for the GRUB project, importing PHC Argon2. -Why does this matter? ---------------------- +### Why does this matter? Libreboot previously documented how to boot distros from encrypted `/boot`, which is a boon for security because it's harder to compromise a machine that @@ -49,8 +48,7 @@ Argon2 is the newer key derivation preferred on modern LUKSv2 setups. It is strongly recommended that you *upgrade* to argon2id, specifically, for your setup. -How to get it -------------- +### How to get it This is unavailable in the Libreboot 20230625 release, but will be available in the next Libreboot release. @@ -62,18 +60,16 @@ you may still compile a ROM image yourself from the Libreboot build system. See: **[How to build Libreboot ROM images from source](../docs/build/)** Further reading -=============== +---------------- -PHC argon2 implementation -------------------------- +### PHC argon2 implementation This is the reference argon2 implementation, now used by Libreboot, and the upstream project for that is hosted here: -Article by Matthew Garrett --------------------------- +### Article by Matthew Garrett [PSA: upgrade your LUKS key derivation function](https://mjg59.dreamwidth.org/66429.html) by Matthew Garrett, talks diff --git a/site/news/argon2.uk.md b/site/news/argon2.uk.md index 1671f93..a931992 100644 --- a/site/news/argon2.uk.md +++ b/site/news/argon2.uk.md @@ -5,7 +5,7 @@ Вступ -============ +------ Корисне навантаження GRUB підтримувало LUKSv2 протягом довгого часу, але тільки з старосвітовським методом формування ключа PBKDF2; більшість Linux dm-crypt встановлень на LUKSv2 @@ -28,8 +28,7 @@ AUR](https://aur.archlinux.org/cgit/aur.git/tree/?h=grub-improved-luks2-git&id=1 The work on AUR, and Nicholas's update based on it, was ultimately based on the work done by Patrick Steinhardt for the GRUB project, importing PHC Argon2. -Чому це має значення? ---------------------- +### Чому це має значення? Libreboot раніше документував, як завантажувати дистрибутиви з зашифрованого `/boot`, що є добрим для безпеки, тому що складніше скомпрометувати машину, яка має @@ -49,8 +48,7 @@ Argon2 є новішим формуванням ключа, якому нада ви *оновились* на argon2id, в точності, для вашого встановлення. -Як отримати це -------------- +### Як отримати це Це є недоступним для поточного випуску Libreboot 20230625, але буде доступним в наступному випуску Libreboot. Наразі, ви можете зібрати образ ROM @@ -59,18 +57,16 @@ Argon2 є новішим формуванням ключа, якому нада [Як побудувати образи ROM Libreboot з джерела](../docs/build/index.uk.md) Наступне читання -=============== +---------------- -Реалізація PHC argon2 -------------------------- +### Реалізація PHC argon2 Це реалізація argon2 для посилання, що тепер використовується Libreboot, і апстрім проект для цього розміщено тут: -Стаття Метью Гарретт --------------------------- +### Стаття Метью Гарретт [PSA: оновіть ваш LUKS метод формування ключа](https://mjg59.dreamwidth.org/66429.html) від Метью Гарретт, розповідає diff --git a/site/news/audit.md b/site/news/audit.md index 05fc1e4..68629f4 100644 --- a/site/news/audit.md +++ b/site/news/audit.md @@ -3,7 +3,7 @@ % 13 June 2023 Introduction -============ +------------ Literally about 200+ changes have been made to the Libreboot build system, since the last release of Libreboot. This has been the primary focus, thus far. @@ -24,8 +24,7 @@ and compiles everything from scratch, but in a way that is simplified from the perspective of the end user (almost everything is just a single command, where users are typically not required to edit any files unless they want to). -Brief summary of changes ------------------------- +### Brief summary of changes In short, the following work has been performed: @@ -50,8 +49,7 @@ is usually *why* (or *when*). Libreboot's build system tries to avoid bloat and *feature creep* when possible, intentionally refusing to implement certain features that are considered superfluous. -Example of BSD coding style on shell scripts --------------------------------------------- +### Example of BSD coding style on shell scripts One of the most common practises in BSD style in *top-down* logic, which makes programs much easier to read (in my opinion). Here is an example @@ -79,7 +77,7 @@ in the Libreboot build system, with existing scripts modified accordingly. This and other work is ongoing. Auditing of utilities -===================== +--------------------- This process has *also* been applied to some of the utilities (written in C) that Libreboot includes as part of lbmk. The following utilities have been @@ -89,8 +87,7 @@ audited: * `e6400-flash-unlock` (minor cleanup, basically removing one unused function) * `nvmutil` (massive code size reduction, minor fixes here and there) -Pledge ------- +### Pledge The `nvmutil` program was already pledged, when compiled on OpenBSD, but it was not handled well. It is now handled correctly (correct ifdef rule), and it @@ -102,8 +99,7 @@ The code has also been unveiled. See manpages: -spkmodem-recv -------------- +### spkmodem-recv This utility was *added* after the last release. It was imported from coreboot, which in turn previously forked it from GRUB. It is a receiving client for @@ -130,7 +126,7 @@ code is conditionally *pledged* if you compile it on OpenBSD (for OpenBSD), see: Other plans for next release -============================ +---------------------------- I have a bunch of Dell/HP boards that I plan to add, which I would have added already but I've focused on the audit (which is more or less complete, now). @@ -153,7 +149,7 @@ Besides this, I also wish to: with Libreboots u-boot payload, at present). FULL list of changes so far since last release -============================================== +---------------------------------------------- Not all patches are listed below, if they are patches not relevant, or patches not currently pushed to upstream Libreboot git mirrors. The following patches diff --git a/site/news/audit2.md b/site/news/audit2.md index 7768d23..e0c8b31 100644 --- a/site/news/audit2.md +++ b/site/news/audit2.md @@ -2,8 +2,8 @@ % Leah Rowe % 11 September 2023 -Introduction -============ +Free as in freedom! +-------------------- This article pertains to the current Libreboot (lbmk) revision at this time of writing, which is `c400916e33b8870384c30b83a9ecb9cdf7121917` from 11 diff --git a/site/news/audit3.md b/site/news/audit3.md index 12b57c9..45ae5b1 100644 --- a/site/news/audit3.md +++ b/site/news/audit3.md @@ -7,8 +7,8 @@ now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in the [Libreboot 20240225 release](libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** -Introduction -============ +Free software BIOS/UEFI +------------------------ This article pertains to the current Libreboot (lbmk) revision at this time of writing, which is `c7e764a3f088e2dbcacb507995476ce3082451ef` from 20 @@ -24,8 +24,7 @@ decided that I would perform *another* audit immediately, so there have been two audits (this audit, dubbed audit 3, and the previous audit 2) between now and the Libreboot 20230625 release. -Massive code size reduction ---------------------------- +### Massive code size reduction The focus has been improved error handling, general bug fixing and improving the efficiency of lbmk (in terms of speed). Reduced complexity. The focus has diff --git a/site/news/audit4.md b/site/news/audit4.md index 7ab72d6..128f20d 100644 --- a/site/news/audit4.md +++ b/site/news/audit4.md @@ -7,8 +7,8 @@ now, as of 27 January 2024, which is a fork of flashrom. The reason why was explained, in the [Libreboot 20240225 release](libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** -Introduction -============ +Free/open source BIOS +-------------------- This article pertains to the current Libreboot (lbmk) revision at this time of writing, which is `11a821637d8a36f4a72001ef8d8c41952f066cc3` from 31 @@ -22,8 +22,7 @@ Audit 3](audit3.md), which coincided with the [Libreboot 20231021](libreboot20231021.md) release, right up to [Libreboot 20231106](libreboot20231106). -Modest code size reduction --------------------------- +### Modest code size reduction The main purpose of audit 4 has been to *finish* audit 3. More logic has been generalised, and *another* sloccount reduction has been observed: 1618 SLOC in @@ -286,7 +285,7 @@ And now, specific changes: re-used by other planned ports for Dell latitudes in lbmk. Patch courtesy of Nicholas Chin. -Exact git log, relative to 20231106: +### Exact git log, relative to 20231106: ``` * 11a82163 Bump GRUB to 2.12 release diff --git a/site/news/audit5.md b/site/news/audit5.md index ceda45c..126cb98 100644 --- a/site/news/audit5.md +++ b/site/news/audit5.md @@ -6,7 +6,7 @@ about the [Libreboot 20240612 release](libreboot20240612.md).** Introduction -============ +------------ Libreboot is a free/opensource boot firmware project. It replaces your proprietary BIOS/UEFI firmware, on supported x86 and ARM computers. It does @@ -32,8 +32,7 @@ revision `2ee186aee3aa3ab9619ed9549bd3b82909dcfbd0` from 9 June 2024. You can read about the *previous* audit in the article for [Libreboot Build System Audit 4](audit4.md). -Modest code size reduction --------------------------- +### Modest code size reduction There are 1482 lines of shell script in the build system, versus 1680 in the Libreboot 20240504 release. Libreboot's build system is written purely in @@ -43,12 +42,11 @@ This is a difference of 198 lines, or a 12% reduction. Despite the reduction, numerous features have been added and a large number of bugs were fixed. Summarised list of changes -========================== +-------------------------- Changes are in order per category, from newest to oldest: -Feature changes ---------------- +### Feature changes * **Download crossgcc tarballs as dependencies, when cloning coreboot.** We previously relied on the coreboot build system, which automatically fetches @@ -183,8 +181,7 @@ Feature changes * Removed all status checks from script/roms (formerly script/build/roms), because it's better to document this instead, and rely on testing regardless. -Bug fixes ---------- +### Bug fixes Some of these changes fix actual issues that were found in testing, while others were fixed *before* being triggered/reported and are thus *preventative @@ -418,8 +415,7 @@ The changes are, from newest to earliest: * Main build script: exit (with error status) if not running directly from the root of the lbmk work directory. -General code cleanup --------------------- +### General code cleanup In addition to *general* very sweeping code cleanup, condensing code lines where possible and so on: @@ -545,13 +541,12 @@ where possible and so on: * script/build/roms: split up `main()` into multiple smaller functions Revision updates -================ +---------------- Some revisions were updated as part of standard routine, but happened to be done during this audit. Those updates are as follows: -SeaBIOS -------- +### SeaBIOS Bump SeaBIOS to revision `e5f2e4c69643bc3cd385306a9e5d29e11578148c`, which has these changes relative to the old one: @@ -581,8 +576,7 @@ these changes relative to the old one: * a6ed6b70 limit address space used for pci devices. ``` -Flashprog ---------- +### Flashprog Updated to revision 5b4fdd1 from 2 May 2024, rebasing the MX workaround patch. @@ -653,7 +647,7 @@ Flashrom, lead by Nico Huber after a dispute with the new leadership of Flashrom, and it was felt that Flashprog is a better choice for Libreboot. Git log -======= +------- This entire set of changelogs is based on the precise Git history in lbmk, relative to Libreboot 20240504 which is from where the audit began. diff --git a/site/news/audit6.md b/site/news/audit6.md index a86f045..9bb3d93 100644 --- a/site/news/audit6.md +++ b/site/news/audit6.md @@ -5,8 +5,8 @@ Heavy amount of code reduction in this audit, and general cleanup. A new Libreboot release is planned, for the early days of August 2024. -Introduction -============ +Efficient software freedom +-------------------------- Libreboot is a free/opensource boot firmware project. It replaces your proprietary BIOS/UEFI firmware, on supported x86 and ARM computers. It does @@ -38,8 +38,7 @@ revision `31f1e4dadfcc1ceecacec50dd2a14e63a44364bd` from 19 July 2024. You can read about the *previous* audit in the article for [Libreboot Build System Audit 5](audit5.md). -Notable code size reduction --------------------------- +### Notable code size reduction There are 1109 lines of shell script in the build system, versus 1482 in the Libreboot 20240612 release. Libreboot's build system is written *entirely* in @@ -67,7 +66,7 @@ A *lot* of work on new ports is planned. There are a number of new mainboards that will be available, in the next Libreboot release. Summarised list of changes -========================== +-------------------------- The most interesting changes are marked in **bold**. "Interesting" means that the change greatly improves the usefulness/reliability of Libreboot, or that it @@ -75,8 +74,7 @@ affects the user in a profound and noticeable way. Changes are in order per category, from newest to oldest: -Feature changes ---------------- +### Feature changes Some unused features have been removed, and yet more added. The overall focus of Audit 6 has been to remove legacy cruft from lbmk, and in general to simplify @@ -257,8 +255,7 @@ The changes are as follows: possible to create such a broken setup. Libreboot mitigates this fact, by avoiding such configurations. -Configuration changes ---------------------- +### Configuration changes This pertains to anything under `config/`, for any changes that are of note, but it does not pertain to *revisions* for specific projects, nor does it @@ -301,8 +298,7 @@ The changes are as follows: which is loaded per-project on multi-tree projects, before each target file. It allows easier configuration tree-wide on multi-tree projects. -Bug fixes ---------- +### Bug fixes There are fewer *acute* bug fixes in Audit 6, because bugfixes was the primary focus of *Audit 5*. The word *acute* is used, referring to triggered bugs, because @@ -464,8 +460,7 @@ The changes are as follows: could create situations where the user can longer run lbmk without intervention such as changing permission on certain files. Avoid the issue entirely. -General code cleanup --------------------- +### General code cleanup Extensive code cleanup has been performed, as was the main purpose of Audit 6. @@ -820,10 +815,9 @@ The changes are as follows: * `script/roms`: shorter variable names, condensed several functions. Revision updates -================ +---------------- -U-Boot ------- +### U-Boot Alper Nebi Yasak is the maintainer of U-Boot, within Libreboot, and submitted a patch updating U-Boot to v2024.07, on the `gru_bob` and `gru_kevin` @@ -837,7 +831,7 @@ is announced, as a priority for further work that is to be completed for the next Libreboot release, ETA August 2024. Git log -======= +-------- This git log covers all changes in this audit, relative to Libreboot 20240612. diff --git a/site/news/codeberg.md b/site/news/codeberg.md index 9eb08e1..4e12b7e 100644 --- a/site/news/codeberg.md +++ b/site/news/codeberg.md @@ -3,7 +3,7 @@ % 8 April 2023 RIP Notabug -=========== +------------- Git repositories provided by Libreboot are still available via Notabug, but the Notabug site has been quite unreliable for some time now. I notice it @@ -18,8 +18,7 @@ admin (single) would fix issues, but I can't keep waiting. Libreboot was originally a member of the Peers Community, which hosts Notabug. So I had an affinity for Notabug. -Libreboot repos now hosted by Codeberg --------------------------------------- +### Libreboot repos now hosted by Codeberg I've decided to set up an account on Codeberg. You can find it here: @@ -37,8 +36,7 @@ under `util/ich9utils`, so the ich9utils repository was not needed on Codeberg (it still exists on Notabug). I'll add bucts to Libreboot's lbmk repo too (under `util/bucts/`). -Codeberg has nicer features ---------------------------- +### Codeberg has nicer features Codeberg runs on forgejo, itself a fork of Gitea, which *itself* is a fork of Gogs. *Notabug* runs on an older, modified version of Gogs, which lacks a @@ -54,8 +52,7 @@ You can send issue reports and pull requests in much the same way as before, but you will need to make a new account on codeberg.org if you don't already have one. -Notabug still available ------------------------ +### Notabug still available The notabug repositories are *still* available, and I'll still push new code to them. I push to several repositories, not just codeberg/notabug, but those @@ -66,7 +63,7 @@ so it's no longer viable for production use, but it's still viable as a backup. If codeberg is ever down, at least you'd be able to download from Notabug. Why not self-host? -================== +------------------ Forgejo, based on Gitea, is what runs on Codeberg. They host the project, on behalf of the developers. Forgejo is working on federating the git forge, so @@ -86,8 +83,7 @@ When federation becomes available, I assume Codeberg's forgejo instance will become part of that, so it just makes practical sense for Libreboot to use Codeberg. -Why not sourcehut? ------------------- +### Why not sourcehut? I considered sourcehut. I like the concept of it (mailing lists made easier, email-based collaboration) but I don't think most people will want to use that. diff --git a/site/news/e6400.md b/site/news/e6400.md index b53dd6c..ac36d2e 100644 --- a/site/news/e6400.md +++ b/site/news/e6400.md @@ -5,8 +5,8 @@ **UPDATE (9 May 2023): Libreboot confirmed working on variants such as [E6400 XFR, and the Nvidia GPU variant is now supported](e6400nvidia.md).** -Introduction -============ +Free as in freedom! +------------------ Today, Libreboot gained the Dell Latitude E6400 laptop port. This is a blob-less port, courtesy of Nicholas Chin (`nic3-14159` on Libreboot IRC). @@ -18,8 +18,7 @@ Libreboot already supports. You can learn more on the [Latitude flashing guide](../docs/install/latitude.md) -100% libre, blob-free ---------------------- +### 100% libre, blob-free This is a *blob-free* board in the boot flash. No Intel ME firmware needed, and [microcode can be removed if you wish](gm45microcode.md) (you should still @@ -28,8 +27,7 @@ we give them - see: [Binary Blobs Reduction Policy](policy.md)). *But wait.* There's more. A lot more of *them*, that is. -Readily available on eBay etc, and cheap ------------------------------ +### Readily available on eBay etc, and cheap Dells were much more popular than those ThinkPads, and more commonly used, so there are still *several* of these available on sites like eBay. Enough to @@ -42,8 +40,7 @@ this a very nice machine indeed. But wait.... It gets better: -Software flashing possible! (no disassembly) ---------------------------- +### Software flashing possible! (no disassembly) **NOTE (15 October 2023): The util is now called `dell-flash-unlock`, but it was previously called `e6400-flash-unlock`. Links have been updated. And diff --git a/site/news/e6400.uk.md b/site/news/e6400.uk.md index d1fec10..64cc732 100644 --- a/site/news/e6400.uk.md +++ b/site/news/e6400.uk.md @@ -8,7 +8,7 @@ there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** Вступ -============ +------ Сьогодні, Libreboot отримав порт ноутбука Dell Latitude E6400. Цей порт є вільним від блобів, увічливість Ніколаса Чін (`nic3-14159` на Libreboot IRC). @@ -20,8 +20,7 @@ there, before flashing. For posterity, Ви можете вивчити більше на [сторінці встановлення](../docs/install/latitude.md) -вільна від блобів конфігурація ------------------------------- +### вільна від блобів конфігурація Це є *вільною від блобів* платою в завантажувальній флеш-пам'яті. Прошивка Intel ME не потрібна, та [мікрокод може бути видалено, якщо ви бажаєте](gm45microcode.md) @@ -31,8 +30,7 @@ there, before flashing. For posterity, *Але почекайте.* Є більше. Набагато більше *цього*, так ось. -Доступно на eBay і так далі, а також дешево ------------------------------ +### Доступно на eBay і так далі, а також дешево Dell були набагато більш популярні, ніж ті ThinkPad, та більш звичайно використовувались, тому існує досі *багато* цих в доступності на сайтах, подібних @@ -45,8 +43,7 @@ eBay. Достатньо, щоб тримати людей з симпатією Але почекайте.... Стає ще краще: -Прошивка програмним забезпеченням можлива! (без розбору) ---------------------------- +### Прошивка програмним забезпеченням можлива! (без розбору) **NOTE (15 October 2023): The util is now called `dell-flash-unlock`, but it was previously called `e6400-flash-unlock`. Links have been updated.** diff --git a/site/news/e6400nvidia.md b/site/news/e6400nvidia.md index d65b4a3..c5d5107 100644 --- a/site/news/e6400nvidia.md +++ b/site/news/e6400nvidia.md @@ -16,7 +16,7 @@ in coreboot, on this mainboard.** Introduction -============ +------------ [Dell Latitude E6400 *with Intel GMA 4500MHD* graphics](e6400.md) was added, and included in Libreboot release 20230423 or newer. *Today*, support is now @@ -31,8 +31,7 @@ than Libreboot 20231021 only support the Intel GPU variant.** The 6400 XFR testing+photo was provided, courtesy Mark Cornick (`mcornick` on Libreboot IRC). -Preparing a release Rom ------------------------ +### Preparing a release Rom NOTE: Not strictly required on Intel graphics models, but still useful for changing the MAC address. @@ -45,7 +44,7 @@ Ethernet device; doing so is advisable, because otherwise you will have a default, generic MAC address. Dell Latitude E6400 with Nvidia GPU -=================================== +----------------------------------- This section *also* applies to E6400 XFS and ATG models. [Testers are needed!](../docs/maintain/testing.md). @@ -70,8 +69,7 @@ following pages (which have been updated, while publishing this news article): * [Dell Latitude E6400 information](../docs/install/latitude.md) -Nouveau(in Linux) currently broken ----------------------------------- +### Nouveau(in Linux) currently broken Nouveau is the libre driver in Linux, for Nvidia graphics. Nvidia themselves do not provide binary drivers anymore, for these GPUs. It crashes in Linux, @@ -85,8 +83,7 @@ Development discussion, for Nvidia variants of E6400, is available here: -OpenBSD's Nvidia driver works perfectly ---------------------------------------- +### OpenBSD's Nvidia driver works perfectly OpenBSD 7.3 was tested, on my Nvidia-model E6400, and Xorg works OK with the `nv` driver. @@ -103,8 +100,7 @@ main guide: * [BSD Operating Systems](../docs/bsd/) -FreeBSD and newer Linux (e.g. Archlinux) untested! --------------------------------------------------- +### FreeBSD and newer Linux (e.g. Archlinux) untested! [Testers needed! Please get in touch!](../docs/maintain/testing.html) @@ -113,8 +109,7 @@ and newer Linux have not yet been tested** (I plan to test *Arch Linux*), but the older Linux/Mesa version in Debian 11.6 works just fine in the Dell BIOS, and I've confirmed that it uses the exact same Video BIOS Option ROM. -Dell Latitude E6400 ATG model ------------------------------ +### Dell Latitude E6400 ATG model [Testers needed! Please get in touch!](../docs/maintain/testing.html) diff --git a/site/news/fam15h.md b/site/news/fam15h.md index 6705cc5..3be961e 100644 --- a/site/news/fam15h.md +++ b/site/news/fam15h.md @@ -2,8 +2,8 @@ % Leah Rowe % 16 July 2023 -Introduction -============ +Freedom as in... again +------------------------- [Libreboot 20211122](libreboot20211122.md) was the last release to officially support these boards: ASUS KFSN4-DRE, KCMA-D8 and KGPE-D16; they were removed @@ -20,8 +20,7 @@ release of Libreboot. It was implemented with this patch: -Differences now, versus Libreboot 20211122 ------------------------------------------- +### Differences now, versus Libreboot 20211122 The following changes have been made, relative to Libreboot 20211122: @@ -50,8 +49,7 @@ The PIKE2008 fix from Libreboot 20211122 was retained, and it is included in today's change. This inserts an empty option ROM in CBFS, without which SeaBIOS would hang; the empty option ROM prevents SeaBIOS from loading the real one. -Dasharo firmware ----------------- +### Dasharo firmware **Libreboot does not yet integrate Dasharo.** diff --git a/site/news/gm45microcode.md b/site/news/gm45microcode.md index 1c6d587..a9dd1dd 100644 --- a/site/news/gm45microcode.md +++ b/site/news/gm45microcode.md @@ -18,8 +18,8 @@ updates using the instructions on this page, *or* if you need pre-built ROM images, Libreboot 20220710 had no-microcode ROMs by default and it has the mitigation patches described by this article. -Introduction -============ +Free as in freedom +------------ Microcode updates provide stability and security fixes, using the files provided by coreboot, which are assembled at boot time. CPUs have microcode @@ -70,8 +70,7 @@ The patch re-adding these mitigations can be seen here: -Why? ----- +### Why? Free choice, that's why. We don't lecture anyone. We just help people. @@ -94,8 +93,7 @@ This change, today, fixes a practical violation of Libreboot policy by once again restoring such practical choice to the user. It is already said how to do so elsewhere, but I'll repeat it here in this news article for posterity: -How to add/remove microcode updates from ROM --------------------------------------------- +### How to add/remove microcode updates from ROM Extract to file on disk: diff --git a/site/news/hp2170p.md b/site/news/hp2170p.md index f8f5656..101d7d5 100644 --- a/site/news/hp2170p.md +++ b/site/news/hp2170p.md @@ -7,8 +7,8 @@ -Introduction -============ +Free software BIOS/UEFI +----------------------- HP EliteBook 2170p support was added to coreboot, in the [coreboot 4.20.1 release](https://doc.coreboot.org/releases/coreboot-4.20.1-relnotes.html) @@ -25,8 +25,7 @@ Information about the board can be found on the coreboot documentation: Installation instructions are being written for Libreboot, but you can refer to the coreboot instructions for now. -Socketed flash IC! ------------------- +### Socketed flash IC! I love HP EliteBooks. Truly. This is the only 11 inch laptop I've ever seen that has socketed SOIC8 flash: @@ -53,10 +52,9 @@ this is no longer true. GRUB has fixed this, courtesy of a patch that Riku Viitanen sent them. Other works currently in progress -================================= +--------------------------- -More boards coming soon ------------------------ +### More boards coming soon I'm on a spree, adding more boards to Libreboot, especially HP EliteBooks. @@ -74,8 +72,7 @@ in future revisions of Libreboot: * Dell OptiPlex 9010 * Dell Precision T1650 -Another build system audit --------------------------- +### Another build system audit I've also started another audit of the Libreboot build system; the [last one](audit.md) was quite intense and a lot more work is going in for the diff --git a/site/news/hp8200sff.md b/site/news/hp8200sff.md index b7fe26e..e566d0e 100644 --- a/site/news/hp8200sff.md +++ b/site/news/hp8200sff.md @@ -2,8 +2,8 @@ % Leah Rowe % 15 April 2023 -Introduction -============ +Free software BIOS/UEFI +---------------------------- Today, Libreboot gains its *first* desktop machine for nearly 2 years. The last one added was Acer G43T-AM3. @@ -21,8 +21,7 @@ readily available on merchant sites such as eBay. Desktop support has traditionally been much weaker in Libreboot, and this is something that should (can, and will) change. -HP EliteBook 2560p (laptop) ------------------- +### HP EliteBook 2560p (laptop) Riku is also interested in adding HP EliteBook 2560p support in Libreboot. Coreboot has support for that board. For *that* board, I committed this @@ -42,8 +41,7 @@ in the Libreboot [blobs reduction policy](policy.md), because it makes the EC firmware easier to replace with libre code (based on reverse engineering, perhaps). -Dell Optiplex 7020/9020 probably soon (testing needed) -------------------------------------- +### Dell Optiplex 7020/9020 probably soon (testing needed) I've purchased Dell Optiplex 7020 and 9020 workstations (Haswell gen), which is available for coreboot with this gerrit patch: @@ -52,8 +50,7 @@ available for coreboot with this gerrit patch: Libreboot will eventually support *all* coreboot targets. -Want to help add boards yourself? ---------------------------------- +### Want to help add boards yourself? Libreboot has the following documentation available: diff --git a/site/news/hp8200sff.uk.md b/site/news/hp8200sff.uk.md index f9e2521..1dcf1e7 100644 --- a/site/news/hp8200sff.uk.md +++ b/site/news/hp8200sff.uk.md @@ -3,7 +3,7 @@ % 15 квітня 2023 року Вступ -============ +------ Сьогодні, Libreboot отримує його *першу* настільну машину за майже 2 роки. Останнім доданим був Acer G43T-AM3. @@ -21,8 +21,7 @@ традиційно набагато слабішою в Libreboot, і це щось, що має (може, і буде) змінюватися. -HP EliteBook 2560p (ноутбук) ------------------- +### HP EliteBook 2560p (ноутбук) Ріку також зацікавлений в додаванні підтримки HP EliteBook 2560p в Libreboot. Coreboot має підтримку для тієї плати. Для *тієї* плати, я зробила commit цього @@ -42,8 +41,7 @@ Coreboot має підтримку для тієї плати. Для *тієї* це робить прошивку EC легшою для заміни на вільний код (заснований на зворотній розробці, мабуть). -Dell Optiplex 7020/9020 можливо скоро (потребує випробування) -------------------------------------- +### Dell Optiplex 7020/9020 можливо скоро (потребує випробування) Я купила робочі станції Dell Optiplex 7020 та 9020 (покоління Haswell), що доступно для coreboot з цим виправленням gerrit: @@ -52,8 +50,7 @@ Dell Optiplex 7020/9020 можливо скоро (потребує випроб Libreboot в певний момент буде підтримувати *всі* цілі coreboot. -Хочете допомогти додати плати самостійно? ---------------------------------- +### Хочете допомогти додати плати самостійно? Libreboot має наступну документацію в наявності: diff --git a/site/news/hp820g2.md b/site/news/hp820g2.md index 7115f42..33a60a5 100644 --- a/site/news/hp820g2.md +++ b/site/news/hp820g2.md @@ -23,8 +23,8 @@ Full hardware specifications can be found on HP's own website: -Introduction -============ +Free software BIOS +------------------ This is a beastly 12.5" Broadwell machine from HP, the main benefit of which is greater power efficiency (compared to Ivybridge and Haswell platforms), while @@ -47,7 +47,7 @@ All variants of this mainboard will come with Intel HD 5500 graphics, which has completely free software initialisation in coreboot, provided by *libgfxinit*. How to install Libreboot -======================== +-------------------- Refer to the [HP 820 G2 install guide](../docs/install/hp820g2.md) for more information about how to flash this board. This machine is widely diff --git a/site/news/hp8470p_and_dell_t1650.md b/site/news/hp8470p_and_dell_t1650.md index b59e2d2..a871743 100644 --- a/site/news/hp8470p_and_dell_t1650.md +++ b/site/news/hp8470p_and_dell_t1650.md @@ -7,16 +7,15 @@ HP EliteBook 8470p](../docs/install/hp8470p.md) and also [Dell Precision T1650](../docs/install/t1650.md).** -Introduction -============ +Free your BIOS today! +------------------- I've ported and tested two new boards, and merged them into the `lbmk` master branch. They will be available in the next regular release: -HP EliteBook 8470p ------------------- +### HP EliteBook 8470p HP EliteBook 8470p is another IvyBridge platform, similar to other EliteBooks that Libreboot already supports, such as the HP EliteBook 9470m that Riku @@ -35,8 +34,7 @@ Another quirk: SOIC16 flash IC, but it's 16MB in size (Winbond W25Q128). There is currently no documentation on the coreboot website, but installation instructions will be written for the Libreboot website. -Dell Precision T1650 --------------------- +### Dell Precision T1650 This machine is truly unique, among most desktop boards in coreboot. It's yet another IvyBridge desktop, same platform as [HP 8300 @@ -83,14 +81,13 @@ would be a boon. Stick 32GB of ECC RAM with RAID10 HDDs on FreeBSD and run OpenBSD virtual servers in bhyve! Other works currently in progress -================================= +------------------------------- A similar report was made in the [HP EliteBook 2170p news page](hp2170p.md). Some of that is now done, so the list is updated (and more work is also being done): -More boards coming soon ------------------------ +### More boards coming soon I'm *still* on a spree, adding more boards to Libreboot, especially HP EliteBooks. These boards are of interest, to the Libreboot project, at this diff --git a/site/news/hp_elitebooks.md b/site/news/hp_elitebooks.md index ff401c5..5807e8a 100644 --- a/site/news/hp_elitebooks.md +++ b/site/news/hp_elitebooks.md @@ -2,8 +2,8 @@ % Riku Viitanen % 23 April 2023 -Introduction -============ +Free software BIOS +------------------ ![Two HP EliteBooks side by side, both running Libreboot](https://av.libreboot.org/hp9470m/9470m+2560p.jpg) @@ -19,8 +19,7 @@ Additionally, a [long-standing bug](https://browse.libreboot.org/lbmk.git/plain/ with GRUB on coreboot now has a functional workaround which is applied automatically by Libreboot. -More to come ------------- +### More to come! Leah Rowe has recently been on a buying spree, so more Sandy/Ivy Bridge and Haswell EliteBooks are making their way to Libreboot soon. Libreboot's goal diff --git a/site/news/kgpe-d16.md b/site/news/kgpe-d16.md index ee82e1d..315ccc9 100644 --- a/site/news/kgpe-d16.md +++ b/site/news/kgpe-d16.md @@ -5,7 +5,7 @@ **UPDATE: I have this board now. I do not require donation anymore.** Please donate a D16 machine if you can -====================================== +----------------------------------- If someone can donate one to me, that would be a great service to the Libreboot project. Preferably assembled, with CPU, cooler, working RAM (in coreboot), in @@ -23,15 +23,14 @@ and (especially) the coolers is a challenge, to say the least. If you would like to help, and have a machine to spare, please can you contact me at my email address: [info@minifree.org](mailto:info@minifree.org) -KCMA-D8 also needed -------------------- +### KCMA-D8 also needed I'm also arranging for an assembled machine with KCMA-D8 in it to be sent to me - though I'm not yet sure if that will go through, so if you have one of those aswell, I'd be interested too. How I plan to re-add -==================== +-------------------- Dasharo produces updated coreboot images for KGPE-D16, with source code. They took coreboot from release 4.11 and updated the code. I plan to add support in diff --git a/site/news/libreboot20131212.md b/site/news/libreboot20131212.md index e27ac54..e469d72 100644 --- a/site/news/libreboot20131212.md +++ b/site/news/libreboot20131212.md @@ -3,18 +3,16 @@ % 12 December 2013 r20131212 (1st release) {#release20131212} -======================= +---------------------------- - 12th December 2013 -Supported: ----------- +### Supported: - ThinkPad X60 - ThinkPad X60s -Development notes ------------------ +### Development notes - initial release - source code deblobbed diff --git a/site/news/libreboot20131213.md b/site/news/libreboot20131213.md index 6cfa6d3..436ce69 100644 --- a/site/news/libreboot20131213.md +++ b/site/news/libreboot20131213.md @@ -3,18 +3,16 @@ % 13 December 2013 r20131213 (2nd release) {#release20131213} -======================= +----------------------------------------- - 13th December 2013 -Supported: ----------- +### Supported: - ThinkPad X60 - ThinkPad X60s -Development notes ------------------ +### Development notes - added background image to GRUB2 - added memtest86+ payload to grub2 diff --git a/site/news/libreboot20131214.md b/site/news/libreboot20131214.md index 826ff4e..9b8395f 100644 --- a/site/news/libreboot20131214.md +++ b/site/news/libreboot20131214.md @@ -3,18 +3,16 @@ % 14 December 2013 r20131214 (3rd release) {#release20131214} -======================= +----------------------------- - 14th December 2013 -Supported: ----------- +### Supported: - ThinkPad X60 - ThinkPad X60s -Development notes ------------------ +### Development notes - Added SeaBIOS payload to GRUB2 (for booting USB drives) - new grub.cfg diff --git a/site/news/libreboot20140622.md b/site/news/libreboot20140622.md index daa41f6..0a0bab7 100644 --- a/site/news/libreboot20140622.md +++ b/site/news/libreboot20140622.md @@ -3,34 +3,30 @@ % 22 June 2014 Release 20140622 (5th release) -============================== +-------------------------- - 7th March 2014 - revised 22nd June 2014 -Officially supported --------------------- +### Officially supported - ThinkPad X60 - ThinkPad X60s -Revision (22nd June 2014 - extra) ---------------------------------- +### Revision (22nd June 2014 - extra) - Documentation: added X60 Unbricking tutorial - Documentation: added info about enabling or disabling wifi - Documentation: added info about enabling or disabling trackpoint -Revision (22nd June 2014 - extra) ---------------------------------- +### Revision (22nd June 2014 - extra) - Documentation: Improved the instructions for using flashprog - Documentation: Improved the instructions for using cbfstool (to change the default GRUB menu) - Documentation: Numerous small fixes. -Revision notes (22nd June 2014) -------------------------------- +### Revision notes (22nd June 2014) - updated GRUB (git 4b8b9135f1676924a8458da528d264bbc7bbb301, 20th April 2014) diff --git a/site/news/libreboot20140911.md b/site/news/libreboot20140911.md index e8be283..408c7ad 100644 --- a/site/news/libreboot20140911.md +++ b/site/news/libreboot20140911.md @@ -3,7 +3,7 @@ % 11 September 2014 6th release (pre-release, 7th beta) -=================================== +---------------------------- - Released 11th July 2014 (pre-release) 1st beta - Revised (pre-release, 2nd beta) 16th July 2014 @@ -14,15 +14,13 @@ - Revised (pre-release, 6th beta) 3rd September 2014 - Revised (pre-release, 7th beta) 11th September 2014 -Machines still supported (compared to previous release): --------------------------------------------------------- +### Machines still supported (compared to previous release): - **Lenovo ThinkPad X60/X60s** - You can also remove the motherboard from an X61/X61s and replace it with an X60/X60s motherboard. -New systems supported in this release: --------------------------------------- +### New systems supported in this release: - **Lenovo ThinkPad X60 Tablet** (1024x768 and 1400x1050) with digitizer support @@ -43,13 +41,11 @@ New systems supported in this release: MB063LL/A, MB062LL/A) - See **hardware/\#macbook21**. -Machines no longer supported (compared to previous release): ------------------------------------------------------------- +### Machines no longer supported (compared to previous release): - **All previous systems still supported!** -Revisions for r20140911 (7th beta) (11th September 2014) --------------------------------------------------------- +### Revisions for r20140911 (7th beta) (11th September 2014) - The changes below were made in a git repository, unlike in previous releases. Descriptions below are copied from 'git log'. diff --git a/site/news/libreboot20141015.md b/site/news/libreboot20141015.md index 499081b..d7e9087 100644 --- a/site/news/libreboot20141015.md +++ b/site/news/libreboot20141015.md @@ -3,7 +3,7 @@ % 15 October 2014 Machines supported in this release: -=================================== +--------------------------------- - **Lenovo ThinkPad X60/X60s** - You can also remove the motherboard from an X61/X61s and replace @@ -29,8 +29,7 @@ Machines supported in this release: MB063LL/A, MB062LL/A) - See **hardware/\#macbook21**. -Changes for this release (latest changes first, earliest changes last) ----------------------------------------------------------------------- +### Changes for this release (latest changes first, earliest changes last) - Updated coreboot (git commit 8ffc085e1affaabbe3dca8ac6a89346b71dfc02e), the latest at the time of diff --git a/site/news/libreboot20150124.md b/site/news/libreboot20150124.md index 23f3cc4..b051942 100644 --- a/site/news/libreboot20150124.md +++ b/site/news/libreboot20150124.md @@ -3,7 +3,7 @@ % 24 January 2015 Machines supported in this release: -=================================== +--------------------------------- - **Lenovo ThinkPad X60/X60s** - You can also remove the motherboard from an X61/X61s and replace @@ -38,8 +38,7 @@ Machines supported in this release: MB063LL/A, MB062LL/A) - See **hardware/\#macbook21**. -Changes for this release (latest changes first, earliest changes last) ----------------------------------------------------------------------- +### Changes for this release (latest changes first, earliest changes last) - grub.cfg: Added (ahci1) to list of devices for ISOLINUX parser (CD/DVD) (this is needed for the X200 docking station). diff --git a/site/news/libreboot20150126.md b/site/news/libreboot20150126.md index 3729125..f419ea1 100644 --- a/site/news/libreboot20150126.md +++ b/site/news/libreboot20150126.md @@ -3,7 +3,7 @@ % 26 January 2015 Machines supported in this release: -=================================== +---------------------------------- - **Lenovo ThinkPad X60/X60s** - You can also remove the motherboard from an X61/X61s and replace @@ -38,8 +38,7 @@ Machines supported in this release: MB063LL/A, MB062LL/A) - See **hardware/\#macbook21**. -Revisions for r20150126 (relative to r20150124) ------------------------------------------------ +### Revisions for r20150126 (relative to r20150124) This is a bug fix release based on r20150124. It contains a few small changes: diff --git a/site/news/libreboot20150208.md b/site/news/libreboot20150208.md index a65fa37..44aa332 100644 --- a/site/news/libreboot20150208.md +++ b/site/news/libreboot20150208.md @@ -3,7 +3,7 @@ % 8 February 2015 Machines supported in this release: -=================================== +------------------------------------- - **Lenovo ThinkPad X60/X60s** - You can also remove the motherboard from an X61/X61s and replace @@ -38,8 +38,7 @@ Machines supported in this release: MB063LL/A, MB062LL/A) - See **hardware/\#macbook21**. -Revisions for r20150208 (relative to r20150126) ------------------------------------------------ +### Revisions for r20150208 (relative to r20150126) This is a maintenance release (polishing) based on r20150126. Users who installed r20150126 don't really need to update to this release. diff --git a/site/news/libreboot20210522.md b/site/news/libreboot20210522.md index 6539cbe..6370871 100644 --- a/site/news/libreboot20210522.md +++ b/site/news/libreboot20210522.md @@ -3,10 +3,9 @@ % 22 May 2021 Join us now and flash the firmware! -=================================== +---------------------------------- -You'll be free! ---------------- +### You'll be free! Libreboot is [free](https://writefreesoftware.org/) (as in freedom) boot firmware, which initializes the hardware @@ -26,8 +25,7 @@ mirrors. If you check in the `stable` directory, you'll still only find the 20160907 release in there, so please ensure that you check the `testing` directory! -Tested boards -------------- +### Tested boards More testing is needed, for this release. Frequent update releases are planned after this release, fixing any issues that people may come across. @@ -40,31 +38,28 @@ as ThinkPad X60/T60 and Macbook2,1 have been tested, and should work fine. Intel D510MO and D945GCLF boards are untested! Acer G43T-AM3 is untested! New boards -========== +--------- -Desktops --------- +### Desktops -### Acer G43T-AM3 +#### Acer G43T-AM3 This is a desktop mainboard, with similar hardware to the already supported Gigabyte GA-G41M-ES2L -Laptops -------- +### Laptops -### Lenovo ThinkPad R500 +#### Lenovo ThinkPad R500 This is another Intel GM45 target, similar to the ThinkPad T500 that Libreboot already supports. -### Lenovo ThinkPad X301 +#### Lenovo ThinkPad X301 This is another Intel GM45 target, similar to the ThinkPad X200 that Libreboot already supports. -List of supported boards ------------------------- +### List of supported boards This release has focused on the build system, and updating to the latest coreboot release. This Libreboot release uses coreboot 4.14. Only a few boards @@ -73,7 +68,7 @@ release is planned soon, specifically an update release with ROM images in it for more boards, while being built from the Libreboot 20210522 source code. Visit the [tasks page](/tasks/) to know which machines are on the TODO list. -### Desktops (AMD, Intel, x86) +#### Desktops (AMD, Intel, x86) - Gigabyte GA-G41M-ES2L motherboard - Intel D510MO and D410PT motherboards @@ -81,13 +76,13 @@ Visit the [tasks page](/tasks/) to know which machines are on the TODO list. - Apple iMac 5,2 - Acer G43T-AM3 -### Servers/workstations (AMD, x86) +#### Servers/workstations (AMD, x86) - ASUS KCMA-D8 motherboard - ASUS KGPE-D16 motherboard - ASUS KFSN4-DRE motherboard -### Laptops (Intel, x86) +#### Laptops (Intel, x86) - ThinkPad X60 / X60S / X60 Tablet - ThinkPad T60 (with Intel GPU) @@ -100,14 +95,12 @@ Visit the [tasks page](/tasks/) to know which machines are on the TODO list. - Lenovo ThinkPad X301 - Apple MacBook1,1 and MacBook2,1 -Dropped boards --------------- +### Dropped boards ASUS Chromebook C201 was dropped. It will be re-added at a later date, when the build system in Libreboot has better integration for ARM hardware. -More boards coming soon! ------------------------- +### More boards coming soon! I had planned to add a lot more boards before doing a new release, but the existing boards are greatly improved already (lots of new fixes and features @@ -118,7 +111,7 @@ referencing this release (Libreboot 20210522) for the source code. See the tasks page on libreboot.org for a list of the boards I plan to add. lbmk -==== +---- The build system in libreboot is called `lbmk`, short for Libreboot Make. In the previous Libreboot release, this build system had no name. It was simply @@ -224,7 +217,7 @@ compared to the Libreboot 20160907 build system: It's better documented, and easier for the average person to maintain. Documentation -============= +---------------- Generally, the documentation is much improved. In particular, the "maintain" page has been reintroduced, which describes every aspect of the build system @@ -252,7 +245,7 @@ support, rather than build system changes. As such, the installation guides are greatly improved and there are *more* systems documented now. GRUB -==== +---- In GRUB payloads, a much more recent version is used. The difference is literally: the GRUB version that Libreboot 20160907 uses was released 5 years @@ -296,7 +289,7 @@ Download GRUB from the upstream repository and check every commit since then. GM45/X4X now set 352MiB VRAM by default -======================================= +-------------------------------------- In the previous Libreboot release, PCI MMIO size was set to 1GiB. It is now set to 2GiB, allowing for 352MiB VRAM to be allocated when using the onboard @@ -309,7 +302,7 @@ The following patch in coreboot allowed that (shortly after the Libreboot Quad-core CPU mod on ThinkPad T500 etc -======================================= +----------------------------------- NOTE: The actual modification (to the hardware) is only documented for T500, but it should be possible to adapt those instructions for similar GM45 laptops @@ -334,7 +327,7 @@ This is necessary, for a special mod that is possible on these machines, to enable quad-core CPUs (core2quad). libgfxinit -========== +---------- In Libreboot 20160907, *native graphics initialization* was C code implemented on each platform, and it was very messy, but it *worked*. @@ -614,7 +607,7 @@ running `git submodule update --init` in a coreboot git clone: ```` coreboot release logs -===================== +--------------------- The following is a page linking to release logs for coreboot, upstream:\ @@ -624,8 +617,7 @@ are most relevant to Libreboot. Roughly speaking, Libreboot 20160907 (the previous release, 4 years and 8 months ago) used revisions of coreboot near or around coreboot version 4.4 and 4.5, depending on the board. -coreboot 4.14 -------------- +### coreboot 4.14 Lots of random fixes, too many to list. Instead, see git logs on this page for specific boards/platforms. @@ -639,8 +631,7 @@ However, the following fixes were made for Lenovo X200 recently: * * -coreboot 4.13 -------------- +### coreboot 4.13 * Mostly re-factoring and minor bug fixes, but it has some interesting fixes that benefit libreboot @@ -651,8 +642,7 @@ coreboot 4.13 interesting in the future on x86 targets * New resource allocator: enables more efficient use of memory during bootup -coreboot 4.12 -------------- +### coreboot 4.12 * SMMSTORE is now a thing. See: . This is relevant for Tianocore, a UEFI payload, which libreboot currently @@ -663,8 +653,7 @@ coreboot 4.12 configurations, in SPI flash. it's handled via SMM interrupts (SMIs). NOTE: SMMSTOREv2 is also becoming a thing now -coreboot 4.11 -------------- +### coreboot 4.11 * C\_ENVIRONMENTAL\_BOOTBLOCK is now preferred, instead of the old romcc bootblocks. i945, x4x and gm45 platforms have been adapted to use this (this @@ -673,14 +662,12 @@ coreboot 4.11 * Generally, this was another "code cleanup release" of coreboot. A lot of code in coreboot was re-factored -coreboot 4.10 -------------- +### coreboot 4.10 * nothing noteworthy to libreboot, this was mainly a "code cleanup" release in coreboot -coreboot 4.9 ------------- +### coreboot 4.9 * Less repetition in the codebase, for similar boards. For example, X200 thinkpad is its own codebase, and similar boards are "variants" where only @@ -689,8 +676,7 @@ coreboot 4.9 * Intel X4X platform: Add DDR3 support (raminit) * -coreboot 4.8 ------------- +### coreboot 4.8 * Improved VBT implementations in libgfxinit * i945 (X60/T60/macbook21 etc): native video initialization is now skipped @@ -699,8 +685,7 @@ coreboot 4.8 of this coreboot release, the framebuffer driver couldn't. this will need to be tested! -coreboot 4.7 ------------- +### coreboot 4.7 * GM45 laptops: set display backlight PWM correctly * Add romstage timings @@ -710,8 +695,7 @@ coreboot 4.7 * Intel X4X: Rework and fixSPD reading and decoding * Intel X4X: Allow external GPU to take VGA cycles -coreboot 4.6 ------------- +### coreboot 4.6 * fix buggy S3 suspend/resume on Gigabyte GA-G41M-ES2L mainboard, and fix bugs in raminit @@ -724,7 +708,7 @@ coreboot 4.6 Detailed coreboot git logs -========================== +-------------------------- The following are lists of changes in coreboot 4.14, versus coreboot revisions used in various platforms/mainboards from Libreboot 20160907. These lists are @@ -744,8 +728,7 @@ There are many other aspects of coreboot that can be shown here, but it's not useful to list all of them. Listing just the platform/board changes gives an excellent picture overall. -Northbridge changes -------------------- +### Northbridge changes For all intents and purposes, the northbridge and southbridge code *is* the platform for a given board, and then you have board specific code. diff --git a/site/news/libreboot20211122.md b/site/news/libreboot20211122.md index a0d6c67..5cd0797 100644 --- a/site/news/libreboot20211122.md +++ b/site/news/libreboot20211122.md @@ -3,7 +3,7 @@ % 22 November 2021 Free your BIOS today! -===================== +-------------------- Libreboot is [free](https://writefreesoftware.org/) (as in freedom) boot firmware, which initializes the hardware @@ -27,8 +27,7 @@ This is a *bug fix* release, relative to 20210522. No new boards or major features have been added, but several problems that existed in the previous release have now been fixed. -Work done since the 20210522 release: -------------------------------------- +### Work done since the 20210522 release: * Updated to newer coreboot, SeaBIOS and GRUB versions. The 20210522 release was using coreboot 4.14, on most boards, from May 2021. This release @@ -75,7 +74,7 @@ Work done since the 20210522 release: * Turkish keyboard layout added on GRUB payloads New release schedule under consideration -======================================== +------------------------------------- The 20210522 release happened to coincide with coreboot 4.14's release, more or less. diff --git a/site/news/libreboot20220710.md b/site/news/libreboot20220710.md index 75a290a..ea54c27 100644 --- a/site/news/libreboot20220710.md +++ b/site/news/libreboot20220710.md @@ -3,7 +3,7 @@ % 10 July 2022 Free your BIOS today! -===================== +--------------------- Libreboot is [free](https://writefreesoftware.org/) (as in freedom) boot firmware, which initializes the hardware @@ -21,14 +21,12 @@ This is a *bug fix* release, relative to 20211122. No new boards or major features have been added, but several problems that existed in the previous release have now been fixed. -Build from source ------------------ +### Build from source *This* release was build-tested on Debian 11. Your mileage may vary, with other distros. -Work done since the 20211122 release: -------------------------------------- +### Work done since the 20211122 release: * Lots and lots of improvements to the documentation. Previous 2021 testing releases did not include snapshots of the documentation (which is actually @@ -68,8 +66,7 @@ Work done since the 20211122 release: * lbmk: Preliminary fix for git credentials check. Set a placeholder name/email if one is not set. -Caveats -------- +### Caveats Due to reported issues by users, these boards do not have ROM images available in the Libreboot 20220710 release: @@ -90,19 +87,17 @@ All other boards are reasonably stable, and shouldn't provide any issues (no major issues reported, and/or non-blocking issues only). Planned future work -=================== +------------------- In general, you should also check the issue tracker to find other notes. There is always more work to do, to improve Libreboot. -Support for non-x86 platforms ------------------------------ +### Support for non-x86 platforms This is still on hold, but will be done as part of a future release. The coreboot firmware does support other platforms. -Linux distro in flash ---------------------- +### Linux distro in flash This is another project that has been on hold for a while. The issue has been that I need a decent userland project. I've looked at many @@ -116,8 +111,7 @@ so as to allow any number of packages to be downloaded. It could also provide lots of utils in general, to be a live *rescue system* of sorts. Linux system in flash, that can bootstrap other systems. -Re-factor and optimize GRUB ---------------------------- +### Re-factor and optimize GRUB GRUB is full of unused bloat that almost nobody uses, yet is in the current Libreboot builds. It's been on TODO for some time, but work has not yet diff --git a/site/news/libreboot20221214.md b/site/news/libreboot20221214.md index 35a3039..0a45579 100644 --- a/site/news/libreboot20221214.md +++ b/site/news/libreboot20221214.md @@ -2,6 +2,9 @@ % Leah Rowe % 14 December 2022 +Free as in freedom! +-------------------- + The last Libreboot release, version 20220710, was released on 10 July in 2022. *This* new release, Libreboot 20221214, is released today on December 14th, 2022. This is intended to be a *testing* release. @@ -14,20 +17,18 @@ YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** -Build from source ------------------ +### Build from source *This* release was build-tested on Debian 11. Your mileage may vary, with other distros. Work done since last release -============================ +-------------------- For more detailed change logs, look at the Git repository. This is a summary of changes. -New boards, x86 ----------- +### New boards, x86 This list *may not be complete*, but it is as follows: @@ -44,8 +45,7 @@ This list *may not be complete*, but it is as follows: * lenovo/t420 (thinkpad) * lenovo/x230 tablet (thinkpad) -GA-G41M-ES2L ROMs ------------- +### GA-G41M-ES2L ROMs GA-G41M-ES2L ROM images are back, but your mileage may vary. Only the SeaBIOS payload is enabled, on this board. @@ -58,8 +58,7 @@ well. GA-G41M-ES2L support is therefore stable, for all intents and purposes. This section of the release announcement previously alluding to issues, but those speculations were premature, based on limited prior testing.** -New boards, ARM ----------- +### New boards, ARM NOTE: These boards use u-boot payload, instead of depthcharge. @@ -83,8 +82,7 @@ of Alper Nebi Yasak (`alpernebbi` on libreboot IRC). In these configurations, u-boot is a *payload of coreboot*. -Removed boards --------------- +### Removed boards ASUS KGPE-D16, KCMA-D8 and KFSN4-DRE are removed, because raminit never worked reliably on these boards to begin with and they were @@ -437,10 +435,9 @@ would simply merge) ``` Known issues -============ +------------ -Intel ME firmware missing in ROMs that need it ----------------------------------------------- +### Intel ME firmware missing in ROMs that need it If you compile ROM images with lbmk directly, the build system automatically fetches ME images from the internet and neuters @@ -456,14 +453,12 @@ e.g. X220, T420, X230, T430, T440p. On *older* Intel platforms such as GM45+ICH9M (X200, T400, etc) the Intel ME image isn't needed and Libreboot ships with ME-disabled configuration. -MRC image missing in Haswell ROMs ---------------------------------- +### MRC image missing in Haswell ROMs Ditto ME images. To re-insert, follow the [guide](../docs/install/ivy_has_common.md). -Internal flashing on 16MB X230 images -------------------------------------- +### Internal flashing on 16MB X230 images The X230 has two ways of upgrading the default 12MB (8MB and 4MB chips) flash to 16MB: remove a bunch of resistors and capacitors on the board @@ -483,8 +478,7 @@ So, 16MB images on X230 are experimental. When these ROM images are built, the required IFD modification is already done in Libreboot's IFD for this setup. -S3 suspend/resume on Haswell (T440p/W541) ------------------------------------------ +### S3 suspend/resume on Haswell (T440p/W541) Totally broken. The suspected cause is component2density setting in IFD being wrong: ifdtool reports it as being too big for what's actually @@ -502,43 +496,7 @@ When X230 16MB was experimented with, Haswell was also looked at, and what seemed to be the same component density bits were set, also resulting in a brick (it's why only 12MB images are available for haswell in libreboot). -Chromebook boards mostly untested ---------------------------------- +### Chromebook boards mostly untested Alper has tested the `gru_kevin` ROM images produced by lbmk, but the other images are untested as of this day. - -Planned future work -=================== - -In general, you should also check the issue tracker to find other notes. -There is always more work to do, to improve Libreboot. - -Linux distro in flash ---------------------- - -STILL ON TODO SINCE LAST RELEASE. - -This is another project that has been on hold for a while. The issue -has been that I need a decent userland project. I've looked at many -different userlands and recently (as of late June) decided to make -my own. I want a BusyBox-like solution, but based on code from OpenBSD, -ported to run under Linux with musl libc. - -I want this distro to provide a kexec bootloader in flash, similar to Heads, -and I also want it to use apk-tools, pointing at Alpine Linux repositories -so as to allow any number of packages to be downloaded. It could also provide -lots of utils in general, to be a live *rescue system* of sorts. Linux system -in flash, that can bootstrap other systems. - -Re-factor and optimize GRUB ---------------------------- - -STILL ON TODO SINCE LAST RELEASE. - -GRUB is full of unused bloat that almost nobody uses, yet is in the current -Libreboot builds. It's been on TODO for some time, but work has not yet -begun on this project. My efforts are currently focused on the Linux distro. - -What I want is a fork of GRUB, optimized to run on bare metal as a coreboot -payload, on x86 and ARM platforms. diff --git a/site/news/libreboot20230319.md b/site/news/libreboot20230319.md index 70b5922..cbc737a 100644 --- a/site/news/libreboot20230319.md +++ b/site/news/libreboot20230319.md @@ -12,8 +12,8 @@ YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** -Introduction -============ +Free your BIOS today! +-------------------- Libreboot provides boot firmware for supported x86/ARM machines, starting a bootloader that then loads your operating system. It replaces proprietary @@ -35,20 +35,18 @@ been provided pre-compiled; specifically, `daisy` and `veyron` chromebook boards are not available pre-compiled, but the other boards are. A few new boards have been added, in addition to several fixes and feature additions. -Build from source ------------------ +### Build from source *This* release was build-tested on Debian *Sid*, as of 18 March 2023. Your mileage may vary, with other distros. Refer to Libreboot documentation. Work done since last release -============================ +-------------------------- For more detailed change logs, look at the Git repository. This is a summary of changes. -Brief overview of changes ------------------ +### Brief overview of changes I've been very busy these last couple months, so there have been less changes in Libreboot lately. I'm expecting to have a lot more time throughout the @@ -106,8 +104,7 @@ Pre-compiled ROM images will for the `t440pmrc_12mb` and `w541mrc_12mb` targets will be available in the next release; the `t440p_12mb` and `w541_12mb` images are still available in this release, pre-compiled. -REMARK: libre raminit on Haswell --------------------------------- +### REMARK: libre raminit on Haswell Upon testing, I've discovered that the libre code has the following problems: @@ -137,8 +134,7 @@ The libre raminit comes from this patchset: The MRC vendor file (and Angel's replacement code) don't just do raminit, they handle a few other init tasks aswell, including USB host controller. -New boards, x86 ----------- +### New boards, x86 * Lenovo ThinkPad W530 * Lenovo ThinkPad T530 @@ -154,8 +150,7 @@ add for the next release: ^ I would have put these in today's release, but didn't have time, and wanted to get this release done today. -Removed boards --------------- +### Removed boards * asus p2b\_ls/p3b\_f - they didn't boot properly in pcbox, and the real hardware is basically useless / impossible to find @@ -244,90 +239,4 @@ follows: * 00187811 - util/nvmutil: exit non-zero if close() fails (3 months ago) ``` -Major works planned -=================== -In general, you should also check the issue tracker to find other notes. -There is always more work to do, to improve Libreboot. - -Linux distro in flash ---------------------- - -STILL ON TODO SINCE LAST RELEASE. - -This is another project that has been on hold for a while. The issue -has been that I need a decent userland project. I've looked at many -different userlands and since late June in 2022, decided to make -my own. I want a BusyBox-like solution, but based on code from OpenBSD, -ported to run under Linux with musl libc. - -I want this distro to provide a kexec bootloader in flash, similar to Heads, -and I also want it to use apk-tools, pointing at Alpine Linux repositories -so as to allow any number of packages to be downloaded. It could also provide -lots of utils in general, to be a live *rescue system* of sorts. Linux system -in flash, that can bootstrap other systems. - -About a week before this release, I actually started on the project for real, -after having many false starts. I've forked a project called `lobase` which -already ports OpenBSD's userland utilities *to glibc* under Linux, and it's -as of today about 5 years outdated based on OpenBSD 6.3. - -I've ported these utilities directly from OpenBSD 7.2, in my local fork of -lobase, superimposing the new code on top of the old and adapting according -to musl libc (lobase is full of hacks for glibc that I don't need): - -`mail`, `cat`, `ls`, `head`, `rcs`, `hexdump`, `whois` and `time` - -I've been working on this in a dedicated Alpine Linux virtual machine, -currently on release 3.17 of Alpine Linux. Alpine is an ideal test distro for -such development, because it already uses musl libc and has *libressl* -available in aports. - -I don't have enough to release yet, but when I have a release ready, I will -upload it to a Git repository. When the userland port is fully complete, -I shall then base off of Alpine Linux abuild+aports build system -infrastructure to provide small base images. It will be similar to the Heads -project, but built separately and not specifically targeted at Libreboot, -but in general to any coreboot setup, on supported hardware. It won't be a -general purpose distro, but I would at that point submit my userland port to -Alpine, proposing it as a replacement of their busybox package in base. - -Unlike Heads, I don't plan yet to make this a direct coreboot payload. -Instead, it'll be a standalone image loaded into CBFS, and chainloaded via -the GRUB or SeaBIOS payloads, which are both capable of executing ELF binaries -from the flash. - -Lobase, which my development is forked from, can be found here (archived): - - -I've been re-using lobase's build system, adapting newer code from OpenBSD. -It's a lot of work, but I'm hopeful I can have this ready before the next -Libreboot release. - -Re-factor and optimize GRUB ---------------------------- - -STILL ON TODO SINCE LAST RELEASE. - -GRUB is full of unused bloat that almost nobody uses, yet is in the current -Libreboot builds. It's been on TODO for some time, but work has not yet -begun on this project. My efforts are currently focused on the Linux distro. - -What I want is a fork of GRUB, optimized to run on bare metal as a coreboot -payload, on x86 and ARM platforms. - -I have an update since the last release. Paul Menzel of coreboot *has* made -GRUB modules more configurable, making it possible to reduce the size of the -payload. His patch is not yet used in Libreboot (not in this release, anyway), -but the patch in GRUB is: - -``` -commit 6c5ee45548fcb65d7921c9fca5867b256f9a48ad -Author: Paul Menzel -Date: Thu Mar 7 12:16:06 2019 +0100 - Makefile: Allow to set file systems modules for default_payload.elf -``` - -I'm going to play around with this when I get the time. Even with this -modification, GRUB is still full of code that Libreboot will never use. -A *GRUB Valhalla Rampage* is still in order! diff --git a/site/news/libreboot20230413.md b/site/news/libreboot20230413.md index 9e3182b..629aaad 100644 --- a/site/news/libreboot20230413.md +++ b/site/news/libreboot20230413.md @@ -8,7 +8,7 @@ there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** Introduction -============ +------------ Libreboot provides boot firmware for supported x86/ARM machines, starting a bootloader that then loads your operating system. It replaces proprietary @@ -35,14 +35,12 @@ existing supported hardware; the focus is going to be on adding *more* boards to Libreboot, to support more hardware. I've been on a spree, buying lots of mainboards that coreboot supports, that would be interesting in Libreboot. -Build from source ------------------ +### Build from source *This* release was build-tested on Debian *Sid*, as of 13 April 2023. Your mileage may vary, with other distros. Refer to Libreboot documentation. -KCMA-D8 and KGPE-D16 wanted! ----------------------------- +### KCMA-D8 and KGPE-D16 wanted! [ASUS KGPE-D16 and KCMA-D8 needed for testing!](kgpe-d16.md) @@ -52,13 +50,12 @@ with one (or both) of these, I would appreciate it. Please [get in touch](../contact.md)! Work done since last release -============================ +---------------------------- For more detailed change logs, look at the Git repository. This is a summary of changes. -Summary of changes: -------------------- +### Summary of changes: Zero code changes within coreboot on any boards, but the build system went through a mild overhaul: @@ -80,8 +77,7 @@ through a mild overhaul: images need `mrc.bin` for raminit. More info about this is in the previous release. -MRC W541/T440p ROM images re-added ----------------------------------- +### MRC W541/T440p ROM images re-added As alluded to and applied by the above text, T440p/W541 thinkpad images that use `mrc.bin` have been re-added. Libreboot supports experimental raminit on @@ -91,8 +87,7 @@ that use it, so that users can choose which one they want. More information this is available, in the *previous* [Libreboot 20230319 release announcement](libreboot20230319.md). -Detailed descriptions of changes --------------------------------- +### Detailed descriptions of changes Changelog: @@ -145,13 +140,12 @@ Changelog: patch courtesy of Andreas Hartmann. Hardware supported in this release -================================== +---------------------------------- All of the following are believed to *boot*, but if you have any issues, please contact the Libreboot project. They are: -Desktops (AMD, Intel, x86) ------------------------ +### Desktops (AMD, Intel, x86) - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) @@ -190,7 +184,7 @@ Desktops (AMD, Intel, x86) - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) Downloads -========= +--------- You can find this release on the downloads page. At the time of this announcement, some of the rsync mirrors may not have it yet, so please check diff --git a/site/news/libreboot20230423.md b/site/news/libreboot20230423.md index a1491ea..1033a4d 100644 --- a/site/news/libreboot20230423.md +++ b/site/news/libreboot20230423.md @@ -7,8 +7,8 @@ YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** -Introduction -============ +Free software BIOS/UEFI +--------------------- Libreboot provides boot firmware for supported x86/ARM machines, starting a bootloader that then loads your operating system. It replaces proprietary @@ -34,14 +34,12 @@ The *priority* for Libreboot is to add as many new boards as possible, from now to the next stable release (ETA Q3 2023), with many testing releases in between. Release early, release often. Rigorious testing ensues. -Build from source ------------------ +### Build from source *This* release was build-tested on Debian *Sid*, as of 23 April 2023. Your mileage may vary, with other distros. Refer to Libreboot documentation. -KCMA-D8 and KGPE-D16 wanted! ----------------------------- +### KCMA-D8 and KGPE-D16 wanted! [ASUS KGPE-D16 and KCMA-D8 needed for testing!](kgpe-d16.md) @@ -51,15 +49,14 @@ with one (or both) of these, I would appreciate it. Please [get in touch](../contact.md)! Work done since last release -============================ +-------------------------- This is in the last *10 days*, since the previous release was 10 days ago! Ergo, this is a very conservative changelog. It seems Libreboot has been releasing almost fortnightly, as of late; perhaps this could continue from now on. -New mainboards now supported: ------------------------------ +### New mainboards now supported: * **Dell Latitude E6400 (laptop)** (GM45, blob-free, flashable entirely in software, no disassembly required!) - courtesy Nicholas Chin, `nic3-14159` on @@ -71,8 +68,7 @@ New mainboards now supported: * HP EliteBook 2560p (laptop), courtesy Riku Viitanen (*seriously* cool guy) - Sandybridge hardware gen -Build system changes: ---------------------- +### Build system changes: * **GM45 no-microcode bug mitigations re-added: revert to old SMRR handling and disable PECI (for e.g. X200/T400 users who want to [remove microcode @@ -115,13 +111,12 @@ Build system changes: Leah Rowe. Hardware supported in this release -================================== +--------------------------------- All of the following are believed to *boot*, but if you have any issues, please contact the Libreboot project. They are: -Desktops (AMD, Intel, x86) ------------------------ +### Desktops (AMD, Intel, x86) - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) @@ -165,7 +160,7 @@ Desktops (AMD, Intel, x86) - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) More boards soon! -================= +--------------- I've purchased about ~10 HP mainboards, all of the viable sandybridge, ivybridge and haswell ones from coreboot. I'm going to add them all. @@ -179,7 +174,7 @@ available on ThinkPad T440p and W541 as an option in Libreboot (including in this release!) Downloads -========= +------- You can find this release on the downloads page. At the time of this announcement, some of the rsync mirrors may not have it yet, so please check diff --git a/site/news/libreboot20230625.md b/site/news/libreboot20230625.md index 3a8f82d..368e406 100644 --- a/site/news/libreboot20230625.md +++ b/site/news/libreboot20230625.md @@ -7,8 +7,8 @@ YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** -Introduction -============ +Free software BIOS/UEFI +------------------------ Libreboot provides boot firmware for supported x86/ARM machines, starting a bootloader that then loads your operating system. It replaces proprietary @@ -36,8 +36,7 @@ firmware, but not Libreboot! Booting Linux/BSD is also [well](../docs/linux/) a new *stable* release of Libreboot. The previous stable release was Libreboot 20220710, released on 10 July 2022. -A note about the changelog --------------------------- +### A note about the changelog The changes listed here are relative to Libreboot *20230423*, *not* 20220710. Therefore, to get a full list of changes since 20220710 (the previous stable @@ -47,17 +46,15 @@ the [20221214](libreboot20221214.md), [20230319](libreboot20230319.md), announcements before reading the *20230625* change log, in order to get a complete picture. -Build from source ------------------ +### Build from source *This* release was build-tested on Debian *Sid*, as of 25 June 2023. Your mileage may vary, with other distros. Refer to Libreboot documentation. Work done since last release -============================ +---------------------------- -New mainboards now supported: ------------------------------ +### New mainboards now supported: These boards were added to Libreboot: @@ -73,8 +70,7 @@ thus hardware support is not greatly improved since the last release. Moving forward, the next Libreboot release will be a *testing* release and *will* focus on hardware support in addition to payloads (linux boot, UEFI etc). -No-microcode ROMs available ---------------------------- +### No-microcode ROMs available Since Libreboot 20221214 and up, CPU microcode is included by default on all applicable x86 mainboards. However, @@ -89,8 +85,7 @@ and [Freedom Status](../freedom-status.md). An earlier article was written about this, [here](microcode.md) -Massive build system audit --------------------------- +### Massive build system audit The full change log below will list all build system changes, but may not provide the overall picture, so to be clear: the @@ -101,8 +96,7 @@ based on the OpenBSD coding style) and many bugs are fixed. An earlier article was written about this, [here](audit.md) -Full list of build system changes --------------------- +### Full list of build system changes Certain build system changes will not be listed here in detail, if they pertain to general code style cleanup/re-factoring, as already alluded to @@ -264,13 +258,12 @@ Newest changes first, oldest changes last: the 20230423 release) Hardware supported in this release -================================== +---------------------------------- All of the following are believed to *boot*, but if you have any issues, please contact the Libreboot project. They are: -Desktops (AMD, Intel, x86) ------------------------ +### Desktops (AMD, Intel, x86) - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) @@ -313,14 +306,14 @@ Desktops (AMD, Intel, x86) - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) Downloads -========= +--------- You can find this release on the downloads page. At the time of this announcement, some of the rsync mirrors may not have it yet, so please check another one if your favourite one doesn't have it. Post-release errata -=================== +------------------- When building ROM images from the release archives, the following error is observed in some cases, depending on distro: diff --git a/site/news/libreboot20231021.md b/site/news/libreboot20231021.md index f37c461..8b73915 100644 --- a/site/news/libreboot20231021.md +++ b/site/news/libreboot20231021.md @@ -7,8 +7,8 @@ YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** -Introduction -============ +Free software BIOS/UEFI +------------------------ *This* new release, Libreboot 20231021, released today 21 October 2023, is a new *testing* release of Libreboot. The previous release was @@ -37,10 +37,9 @@ firmware, but not Libreboot! Booting Linux/BSD is also [well](../docs/linux/) [supported](../docs/bsd/). Work done since last release -============================ +-------------------------- -New mainboards now supported: ------------------------------ +### New mainboards now supported: The *primary* focus of this release has been build system improvements, and new build system features. However, these boards were added to Libreboot: @@ -64,8 +63,7 @@ they compile properly on modern distros/toolchains. More info can be found in a previous news article: [ASUS KGPE-D16, KCMA-D8 and KFSN4-DRE re-added to Libreboot](fam15h.md) -GRUB LUKS2 now supported (with argon2 key derivation) ---------------------------------------------------- +### GRUB LUKS2 now supported (with argon2 key derivation) This was covered in a [previous article](argon2.md), which you should read. GRUB *2.12* is now the version that Librebooot uses, although it's currently in @@ -95,8 +93,7 @@ These libreboot patches added argon2 support: This means that you can now boot from encrypted `/boot` partitions. I'm very grateful to everyone who made this possible! -Simplified commands (build system) -------------------------- +### Simplified commands (build system) Simply put, lbmk (the Libreboot build system) is now *easier to use*; there are only *12* shell scripts in this release, versus 50 or so in the previous @@ -109,8 +106,7 @@ As always, you can find information about *using* the build system in the [Libreboot build instructions](../docs/build/) and in the [lbmk maintenance manual](../docs/maintain/). -TWO massive audits. 50% code size reduction in lbmk. --------------------------------------------- +### TWO massive audits. 50% code size reduction in lbmk. Libreboot's build system, lbmk, is written entirely in shell scripts. It is an automatic build system that downloads, patches, configures and compiles @@ -132,8 +128,7 @@ Their changes will also be listed here. The Libreboot build system (lbmk) has been completely re-designed, since the last release. It's the same fundamental design, but all of the commands have changed, and everything is much simpler. -Serprog firmware building (RP2040 and STM32) ------------------------------------ +### Serprog firmware building (RP2040 and STM32) In addition to coreboot firmware, the Libreboot build system (lbmk) can now build *serprog* firmware, specifically `pico-serprog` and `stm32-vserprog`, on @@ -147,8 +142,7 @@ Pre-compiled firmware images are available, for many of these devices, under the `roms/` directory in this Libreboot 20231021 release! Riku Viitanen is the one who added this capability to Libreboot. -Updated U-Boot revision (2023.10) ----------------------------- +### Updated U-Boot revision (2023.10) Alper Nebi Yasak submitted patches that update the U-Boot revision in Libreboot, on `gru_bob` and `gru_kevin` chromebooks. Additionally, the `cros` @@ -175,8 +169,7 @@ reading these diffs: Thank you, Alper! -Coreboot, GRUB, U-Boot and SeaBIOS revisions ------------------------------------- +### Coreboot, GRUB, U-Boot and SeaBIOS revisions In Libreboot 20231021 (*this release*): @@ -199,10 +192,9 @@ In Libreboot 20230625 (*previous release*): As you can see, all revisions are quite new in this release. Build system tweaks -=================== +----------------- -resources/ now config/ ----------------------- +### resources/ now config/ The `resources/scripts/` directory is now `script/`, and what was `resources/` now only contains configuration data plus code patches for various projects, @@ -1052,7 +1044,7 @@ The log is as follows, relative to Libreboot 20230625: This is 445 changes in total, since Libreboot 20230625. Hardware supported in this release -================================== +-------------------------------------- All of the following are believed to *boot*, but if you have any issues, please contact the Libreboot project. They are: @@ -1062,8 +1054,7 @@ please contact the Libreboot project. They are: - [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) - [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) -Desktops (AMD, Intel, x86) ------------------------ +### Desktops (AMD, Intel, x86) - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) @@ -1111,14 +1102,13 @@ Desktops (AMD, Intel, x86) - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) Downloads -========= +--------- You can find this release on the downloads page. At the time of this announcement, some of the rsync mirrors may not have it yet, so please check another one if your favourite one doesn't have it. -Post-release fix -================ +### Post-release fix There was a minor problem in the original Libreboot 20231021 release, namely: keymap configurations were not properly generated inside the ROM images, so @@ -1136,11 +1126,10 @@ because the main mirror that it downloads from was offline during the build, so the relevant acpica tarball was mirrored to Libreboot rsync at last minute. Post-release errata -=================== - -S3 suspend/resume ------------------ +### S3 suspend/resume + Broken on tested boards: i945, gm45, sandybridge and ivybridge (probably haswell too, but untested as I write this). @@ -1150,8 +1139,7 @@ be issued, along with several other fixes made in lbmk since this release. If you're using Libreboot 20231021, you should not try to put your machine to sleep. You should only turn it on or power it off (power cycle / coldboot). -Insertion of PIKE2008 ROMs, i945 bootblock copy ------------------------------------------------ +### Insertion of PIKE2008 ROMs, i945 bootblock copy Empty PIKE2008 ROMs not inserted in KCMA-D8 and KGPE-D16 ROMs. @@ -1183,8 +1171,7 @@ And without the bootblock copied on X60/T60 ROMs, flashing will result in a bric under these conditions: bucts not reset and ROM flashed successfully, and/or flashing the ROM from LenovoBIOS to Libreboot. -Fam15h microcode wrongly not detected as inserted -------------------------------------------------- +### Fam15h microcode wrongly not detected as inserted On those boards, `target.cfg` files specified `microcode_required="n"`, and the logic in the release script renames ROM images according to this rule: diff --git a/site/news/libreboot20231101.md b/site/news/libreboot20231101.md index 0d330be..a81cd24 100644 --- a/site/news/libreboot20231101.md +++ b/site/news/libreboot20231101.md @@ -7,8 +7,8 @@ YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** -Introduction -============ +Free Software Boot +------------------ *This* new release, Libreboot 20231101, released today 1 November 2023, is a new *testing* release of Libreboot. The previous release was @@ -37,10 +37,9 @@ firmware, but not Libreboot! Booting Linux/BSD is also [well](../docs/linux/) [supported](../docs/bsd/). Work done since last release -============================ +---------------------------- -ThinkPad X201 support added ------------------------------ +### ThinkPad X201 support added **UPDATE: SUPPORT WAS REMOVED on 12 January 2024, because it was found that fans fail when using a neutered ME, on this platform - this bug only affects the @@ -48,8 +47,7 @@ older arrandales like X201, but newer platforms are not affected.** Intel D945GCLF was also re-added, in this release. -Coreboot, GRUB, U-Boot and SeaBIOS revisions ------------------------------------- +### Coreboot, GRUB, U-Boot and SeaBIOS revisions Libreboot 20231021 and 20231101 are both based on these revisions: @@ -65,7 +63,7 @@ of these, that fix certain bugs or improve certain functionalities. More information is available elsewhere in this page. Build system tweaks -=================== +------------------- These changes were made: @@ -162,7 +160,7 @@ time has passed since then. The focus of this Libreboot 20231101 release has been to fix bugs. Hardware supported in this release -================================== +---------------------------------- All of the following are believed to *boot*, but if you have any issues, please contact the Libreboot project. They are: @@ -172,8 +170,7 @@ please contact the Libreboot project. They are: - [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) - [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) -Desktops (AMD, Intel, x86) ------------------------ +### Desktops (AMD, Intel, x86) - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) @@ -222,17 +219,16 @@ Desktops (AMD, Intel, x86) - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) Downloads -========= +--------- You can find this release on the downloads page. At the time of this announcement, some of the rsync mirrors may not have it yet, so please check another one if your favourite one doesn't have it. Post-release errata -=================== +------------------- -S3 suspend/resume ------------------- +### S3 suspend/resume The previous release broke suspend/resume on all Intel platforms, but it's fixed in this release on Sandybridge (e.g. ThinkPad X220), diff --git a/site/news/libreboot20231106.md b/site/news/libreboot20231106.md index 3e7a238..f9e9095 100644 --- a/site/news/libreboot20231106.md +++ b/site/news/libreboot20231106.md @@ -7,8 +7,8 @@ YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** -Introduction -============ +Free your BIOS today! +------------------- *This* new release, Libreboot 20231106, released today 6 November 2023, is a new *testing* release of Libreboot. The previous release was @@ -38,13 +38,12 @@ firmware, but not Libreboot! Booting Linux/BSD is also [well](../docs/linux/) [supported](../docs/bsd/). Work done since last release -============================ +-------------------- This is largely a bugfix release. Most notably, boot issues on GM45 thinkpads present in the 20231101 release have been resolved. -Dell E6400 on its own tree ------------------------------ +### Dell E6400 on its own tree Libreboot contains a DDR2 raminit patch for Dell Latitude E6400, that increases reliability on coldboot, but it negatively affects other GM45 machines that use @@ -61,8 +60,7 @@ when using on GM45 ThinkPads (ROM images for those machines were then deleted from the 20231021 and 20231101 release archives). Today's Libreboot release solves that problem, so these machines can be used reliably once again. -Coreboot, GRUB, U-Boot and SeaBIOS revisions ------------------------------------- +### Coreboot, GRUB, U-Boot and SeaBIOS revisions Libreboot 20231106 and 20231101 are both based on these revisions: @@ -77,8 +75,7 @@ Libreboot 20231106 and 20231101 are both based on these revisions: Several other fixes and tweaks have been made, in addition to this and the E6400 patch mentioned above. -Build system tweaks -=================== +### Build system tweaks These changes were made: @@ -151,7 +148,7 @@ is in progress, and rapid development towards a new stable release; it is very much planned that 12 December 2023 will have a new stable release of Libreboot. Hardware supported in this release -================================== +---------------------------------- All of the following are believed to *boot*, but if you have any issues, please contact the Libreboot project. They are: @@ -161,8 +158,7 @@ please contact the Libreboot project. They are: - [ASUS KFSN4-DRE motherboard](../docs/install/kfsn4-dre.md) - [ASUS KGPE-D16 motherboard](../docs/install/kgpe-d16.md) -Desktops (AMD, Intel, x86) ------------------------ +### Desktops (AMD, Intel, x86) - [Gigabyte GA-G41M-ES2L motherboard](../docs/install/ga-g41m-es2l.md) - [Acer G43T-AM3](../docs/install/acer_g43t-am3.md) @@ -211,18 +207,17 @@ Desktops (AMD, Intel, x86) - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) Downloads -========= +---------- You can find this release on the downloads page. At the time of this announcement, some of the rsync mirrors may not have it yet, so please check another one if your favourite one doesn't have it. Post-release errata -=================== - -S3 on GM45/i945 --------------- +### S3 on GM45/i945 + GM45 ThinkPads still have buggy S3 behaviour, ditto i945. x4x and Pineview untested, other Intel platforms work; AMD untested but should work. @@ -230,8 +225,7 @@ If you're using a GM45 ThinkPad (e.g. X200, T400), don't try putting your laptop to sleep. S3 suspend/resume is broken. The intention is that this will be fixed before the next stable release. -E6430 VBT config ----------------- +### E6430 VBT config See: @@ -243,7 +237,7 @@ now, you can build Libreboot from `lbmk.git`. See: [Building Libreboot from source](../docs/build/) Errata -====== +------- Many modules were removed from GRUB, to save space in flash, but the ones that are actually needed were carefully retained. diff --git a/site/news/libreboot20240126.md b/site/news/libreboot20240126.md index 243b518..343b9c3 100644 --- a/site/news/libreboot20240126.md +++ b/site/news/libreboot20240126.md @@ -2,8 +2,8 @@ % Leah Rowe % 26 January 2024 -Introduction -============ +Open source BIOS/UEFI firmware +------------------------------ *This* new release, Libreboot 20240126, released today 26 January 2024, is a new *testing* release of Libreboot. The previous release was @@ -32,16 +32,15 @@ firmware, but not Libreboot! Booting Linux/BSD is also [well](../docs/linux/) [supported](../docs/bsd/). Testing needed! -=============== +--------------- The coreboot revision has been updated very recently. Make sure to have [external flashing gear](../docs/install/spi.md) ready just in case! Work done since last release -============================ +---------------------------- -New mainboards supported ------------------------- +### New mainboards supported These new mainboards have been added: @@ -57,29 +56,25 @@ These new mainboards have been added: Conversely, the [ThinkPad X201 was removed](x201.md). -S3 fixed on GM45 thinkpads --------------------------- +### S3 fixed on GM45 thinkpads The new coreboot revision includes a fix within it that fixes S3 suspend/resume on GM45 thinkpads (e.g. X200, T400). This was broken in the previous Libreboot release, but now it works again. -Modest code size reduction --------------------------- +### Modest code size reduction See: [Libreboot build system audit 4](audit4.md) These and subsequent changes are included in today's release. The build system has been further optimised, both in terms of code size and performance. -GRUB 2.12 revision now used ---------------------------- +### GRUB 2.12 revision now used The previous Libreboot release used a revision from GRUB 2.12-rc1, but now it uses the GRUB 2.12 released during December 2023. -GRUB support for EFI System Partition -------------------------------------- +### GRUB support for EFI System Partition We don't use UEFI on x86, but the GRUB config in Libreboot's GRUB payload has now been modified, to also scan `grub.cfg` from `EFI/` directories. @@ -356,7 +351,7 @@ changes first): re-used by other planned ports for Dell latitudes in lbmk. Patch courtesy of Nicholas Chin. -Exact git log, relative to 20231106: +### Exacit git log, relative to 20231106 ``` * 7f0ca545 Libreboot 20240126 @@ -562,7 +557,7 @@ Exact git log, relative to 20231106: ``` Errata -====== +------ Vendorfile inject script will report an error when inserting for HP 820 G2, because the refcode is compressed via `-c lzma` option in cbfstool (or it is diff --git a/site/news/libreboot20240225.md b/site/news/libreboot20240225.md index 62f650c..758b857 100644 --- a/site/news/libreboot20240225.md +++ b/site/news/libreboot20240225.md @@ -2,8 +2,8 @@ % Leah Rowe % 25 February 2024 -Introduction -============ +Free software BIOS/UEFI +----------------------- Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an @@ -31,7 +31,7 @@ run just fine. If you spot any issues, please report them on Libreboot's bug tracker. Hardware supported in this release -================================== +---------------------------------- This release supports the following hardware: @@ -105,15 +105,14 @@ This release supports the following hardware: - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) Work done since last release -============================ +---------------------------- With the exception of pico-serprog and replacing flashrom with flashprog (more on this later), the current upstream revisions remain unchanged, but this release has fixed a few issues and added more mainboards, relative to last month's release. -New mainboards --------------- +### New mainboards * **HP EliteBook 8560w** - added to lbmk by Riku Viitanen, using the coreboot port written by Iru Cai, with Riku's MXM support added on top (more on this later) @@ -135,8 +134,7 @@ New mainboards coreboot for review, fixing VGA decode on discrete graphics cards when the Broadwell MRC is used - this patch too is not yet included in Libreboot). -SeaBIOS MXM INT15H interrupt ----------------------------- +### SeaBIOS MXM INT15H interrupt For Libreboot's new HP EliteBook 8560w support, MXM handling was added to SeaBIOS. This was performed by Riku Viitanen, who also wrote this tool: @@ -159,8 +157,7 @@ had a port for some time, but without the MXM support - for now, it is only available in SeaBIOS, so you must use *SeaBIOS* to run the VGA Option ROM (it cannot yet be done directly from coreboot). -U-Boot release script ---------------------- +### U-Boot release script The script at `script/update/release` now supports generating standalone U-Boot source archives, like so: @@ -172,8 +169,7 @@ than `release/`. Libreboot still provides U-Boot embedded within the larger source release archive, and does not yet actually provide U-Boot as a standalone project, but some people may find this useful. -Pico-serprog updates --------------------- +### Pico-serprog updates Riku Viitanen added support for controlling multiple chip-selects. With the new functionality, you can set unused chipselects high. This is useful when @@ -191,8 +187,7 @@ Riku also increased the default drive strength to 12mA on all RP2024 boards, increasing reliabily when externally flashing certain mainboards (e.g. PCH having low/no resistance on connections to the data lines for the flash). -Flashprog now used, instead of flashrom ---------------------------------------- +### Flashprog now used, instead of flashrom Nico Huber was unfairly banned from participation in the flashrom project, and went on to create a new project called [flashprog](https://flashprog.org/). The @@ -241,8 +236,7 @@ new features and hardware functionality - for instance, it has code for handling Riku Viitanen's recent changes on the RP2040 serprog images, for pulling unused chipselects high (useful on machines like ThinkPad W541 for external flashing). -Context regarding flashprog vs flashrom ---------------------------------------- +### Context regarding flashprog vs flashrom It was suggested by a reader, on 27 March 2024, that the lack of context made judging this situation very difficult. Therefore, the following links have diff --git a/site/news/libreboot20240504.md b/site/news/libreboot20240504.md index 3b519f6..6198a04 100644 --- a/site/news/libreboot20240504.md +++ b/site/news/libreboot20240504.md @@ -7,7 +7,7 @@ reference, but there were problems with this release. Please instead use the [Libreboot 20240612 release](libreboot20240612.md).** Introduction -============ +------------- Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an @@ -55,7 +55,7 @@ The main purpose of this release has been to fix bugs. A lot more work will now go into Libreboot for another release in the summer of 2024. Hardware supported in this release -================================== +---------------------------------- This release supports the following hardware: @@ -130,21 +130,21 @@ This release supports the following hardware: - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) New mainboard added -==================== +------------------- This release adds support for the following mainboard: * Dell Latitude E5420, courtesy of Nicholas Chin Dell Latitude laptops: S3 resume fixed -================================ +---------------------------------- Nicholas Chin sent in a patch just before the release, fixing suspend/resume on sandy bridge and ivy bridge Dell laptops. According to him, resume on open is still broken and therefore disabled, but pressing the power button works. Work done since Libreboot 20230625 -============================ +------------------------------- To know the full set of differences between Libreboot 20230625 and Libreboot 20240405, first you must read the changelogs of those interim @@ -275,7 +275,7 @@ are highlighted in bold: * Enable the serial console by default, on AMD boards (kgpe-d16, kcma-d8) Exact git log (versus Libreboot 20240225) -====================================== +------------------------------------ The following is an exact log of commits in the Git repository, on the master branch, relative to the previous January 2024 release. There are 99 changes: @@ -409,7 +409,7 @@ You may find archives of this release, by looking at the Libreboot download page. Support is available on IRC or Reddit if you need help. Disabled boards -=============== +--------------- Libreboot's build system can be configured to exclude certain boards in release archives, while still permitting them to be re-built. @@ -431,7 +431,7 @@ is believed to be stable and has been tested repeatedly) *All other boards have ROM images in this release.* eDP mods (ThinkPad X230/X220) -========================== +-------------------------- The `x230edp_12mb` and `x220edp_8mb` targets were removed, but the `x230_12mb` and `x220_8mb` targets were retained. Only the original @@ -457,7 +457,7 @@ to the Libreboot project. That is all. Errata -====== +------ See: diff --git a/site/news/libreboot20240612.md b/site/news/libreboot20240612.md index 6020bde..6d1d1d2 100644 --- a/site/news/libreboot20240612.md +++ b/site/news/libreboot20240612.md @@ -7,8 +7,8 @@ YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** -Introduction -============ +Open source BIOS/UEFI firmware +----------------------------- Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an @@ -40,7 +40,7 @@ this release, in addition to a few minor fixes made since that date. The audit was completed on 9 June 2024 and today is 12 June 2024. The release came unstuck. Changes since Audit 5 -===================== +-------------------- Audit 5 was only recent, and forms most of the changes in this release, so look further down for a list of those changes or read [the audit 5 page](audit5.md). @@ -74,13 +74,12 @@ precisely to avoid any potential issues if a board doesn't need it. The NVMe patch has been extensively tested, on all of the boards that actually have it. Audit 5 changes -=============== +--------------- Since the recent audit 5 changes are included in this release, the changelog of that audit has simply been copied for sake of efficiency. Firstly: -Modest code size reduction --------------------------- +### Modest code size reduction There are 1482 lines of shell script in the build system, versus 1680 in the Libreboot 20240504 release. Libreboot's build system is written purely in @@ -90,12 +89,11 @@ This is a difference of 198 lines, or a 12% reduction. Despite the reduction, numerous features have been added and a large number of bugs were fixed. Summarised list of changes -========================== +-------------------------- Changes are in order per category, from newest to oldest: -Feature changes ---------------- +### Feature changes * **Download crossgcc tarballs as dependencies, when cloning coreboot.** We previously relied on the coreboot build system, which automatically fetches @@ -230,8 +228,7 @@ Feature changes * Removed all status checks from script/roms (formerly script/build/roms), because it's better to document this instead, and rely on testing regardless. -Bug fixes ---------- +### Bug fixes Some of these changes fix actual issues that were found in testing, while others were fixed *before* being triggered/reported and are thus *preventative @@ -466,8 +463,7 @@ The changes are, from newest to earliest: * Main build script: exit (with error status) if not running directly from the root of the lbmk work directory. -General code cleanup --------------------- +### General code cleanup In addition to *general* very sweeping code cleanup, condensing code lines where possible and so on: @@ -593,13 +589,12 @@ where possible and so on: * script/build/roms: split up `main()` into multiple smaller functions Revision updates -================ +---------------- Some revisions were updated as part of standard routine, but happened to be done during this audit. Those updates are as follows: -SeaBIOS -------- +### SeaBIOS Bump SeaBIOS to revision `e5f2e4c69643bc3cd385306a9e5d29e11578148c`, which has these changes relative to the old one: @@ -629,8 +624,7 @@ these changes relative to the old one: * a6ed6b70 limit address space used for pci devices. ``` -Flashprog ---------- +### Flashprog Updated to revision 5b4fdd1 from 2 May 2024, rebasing the MX workaround patch. @@ -701,7 +695,7 @@ Flashrom, lead by Nico Huber after a dispute with the new leadership of Flashrom, and it was felt that Flashprog is a better choice for Libreboot. Git log -======= +------ This entire set of changelogs is based on the precise Git history in lbmk, relative to Libreboot 20240504 which is from where the audit began. @@ -946,10 +940,9 @@ The latest changes are listed first, going all the way down to earlier changes: This is 211 changes, since Libreboot 20240504. Errata -====== +------ -Revision 1 ----------- +### Revision 1 A bug was found, where booting GRUB (payload) on Haswell ThinkPads with a USB device plugged in would sometimes cause GRUB to hang. This was fixed with the @@ -980,8 +973,7 @@ auto-load when GRUB starts. A full investigation is still required, but this workaround fixes the issue as far as the user is concerned. -Revision 2 ----------- +### Revision 2 NOTE: Source code archive not available for rev2, because another revision was made that also includes the rev2 change; a 'rev3` source archive is @@ -993,8 +985,7 @@ which caused issues when flashing. The file `libreboot-20240612rev2_hp8200sff_4mb.tar.xz` is available, replacing `libreboot-20240612_hp8200sff_4mb.tar.xz`, on Libreboot rsync. -Revision 3 ----------- +### Revision 3 Removed `util/autoport/`, becaues it's not required in release archives. diff --git a/site/news/libreboot20241008.md b/site/news/libreboot20241008.md index c513862..20ac041 100644 --- a/site/news/libreboot20241008.md +++ b/site/news/libreboot20241008.md @@ -10,8 +10,8 @@ YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** -Introduction -============ +Open source BIOS/UEFI firmware +-------------------------- Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an @@ -33,8 +33,7 @@ this release, and several changes have been made since then; for simplicity, thi page is essentially identical to the audit 6 changelog, but with the additional changes referenced. -The build system is smaller ---------------------------- +### The build system is smaller The focus of audit6 was to reduce the code size, making the build system more efficient. The build system was 1482 source lines (of shell scripting) in the @@ -45,7 +44,7 @@ Several bug fixes were also made, in addition to new board support, since the Libreboot 20240612 release. Summarised list of changes -========================== +------------------------- The most interesting changes are marked in **bold**. "Interesting" means that the change greatly improves the usefulness/reliability of Libreboot, or that it @@ -53,8 +52,7 @@ affects the user in a profound and noticeable way. Changes are in order per category, from newest to oldest: -Board support -------------- +### Board support The following boards have been added since the Libreboot 20240612 release: @@ -69,8 +67,7 @@ The following boards have been added since the Libreboot 20240612 release: by 3mdeb, and I added the config for it to Libreboot, based on the Dell Precision T1650 config) -About the Dell Latitude ports ------------------------------ +### About the Dell Latitude ports These are yet more Ivybridge (Intel 3rd gen) and Sandybridge (Intel 2nd gen) mainboards, using the same EC as on other Latitudes supported in Libreboot, so @@ -79,8 +76,7 @@ they are all internally flashable from the factory firmware. Installation instructions, pertaining to Dell Latitude models, can be found on the [Dell Latitude page](../docs/install/latitude.md). -About the PlayStation BIOS --------------------------- +### About the PlayStation BIOS This is *not* coreboot, but it is a fully free/opensource BIOS with source code under MIT license, provided by @@ -104,8 +100,7 @@ of October 2024 or thereabouts. I'm planning to ship the *PCSX-Redux* BIOS by default, in the new project, which is why Libreboot has it, because I'll reference Libreboot from that project. -About the OptiPlex 3050 Micro port -------------------------- +### About the OptiPlex 3050 Micro port Mate Kukri's excellent *[deguard](https://review.coreboot.org/admin/repos/deguard,general)* utility is automatically used at build time, @@ -146,8 +141,7 @@ Because of the SeaBIOS issue, an exception is made: this board executes GRUB first, directly from coreboot. The usual policy, since Libreboot 20240612, is to prefer *SeaGRUB* (SeaBIOS first, and execute GRUB from SeaBIOS). -Feature changes ---------------- +### Feature changes The changes are as follows: @@ -367,8 +361,7 @@ The changes are as follows: possible to create such a broken setup. Libreboot mitigates this fact, by avoiding such configurations. -Configuration changes ---------------------- +### Configuration changes This pertains to anything under `config/`, for any changes that are of note, but it does not pertain to *revisions* for specific projects, nor does it @@ -417,8 +410,7 @@ The changes are as follows: which is loaded per-project on multi-tree projects, before each target file. It allows easier configuration tree-wide on multi-tree projects. -Bug fixes ---------- +### Bug fixes The changes are as follows: @@ -635,8 +627,7 @@ The changes are as follows: could create situations where the user can longer run lbmk without intervention such as changing permission on certain files. Avoid the issue entirely. -General code cleanup --------------------- +### General code cleanup Extensive code cleanup has been performed, as was one of the main focuses in this release (in addition to newer hardware support): @@ -992,10 +983,9 @@ The changes are as follows: * `script/roms`: shorter variable names, condensed several functions. Revision updates -================ +---------------- -Coreboot --------- +### Coreboot The `default` tree was updated to commit ID `97bc693ab` from 29 July 2024. Several patches were merged upstream and therefore no longer needed in lbmk. @@ -1015,8 +1005,7 @@ a single `fam15h` tree. This contains the ASUS KGPE-D16 and KCMA-D8 ports, based on coreboot's `4.11_branch` tree, with Libreboot's special build fixes that make it compile on modern distros, such as Debian Sid or Arch Linux. -U-Boot ------- +### U-Boot Alper Nebi Yasak is the maintainer of U-Boot, within Libreboot, and submitted a patch updating U-Boot to v2024.07, on the `gru_bob` and `gru_kevin` @@ -1024,15 +1013,13 @@ Chromebooks. Several improvements have been merged upstream, like Alper's patches for Qemu, so these patches have been dropped in lbmk because they're now included by default, in the new U-Boot revision. -GRUB ----- +### GRUB Updated the revision to commit ID b53ec06a1 from 17 June 2024. This fixes several bugs in the LUKS implementation. Several virtual memory fixes, and numerous fixes to file system drivers in the GRUB kernel. -SeaBIOS -------- +### SeaBIOS Updated the revision to commit ID `ec0bc256` from 24 June 2024. This brings in only a single change: @@ -1048,13 +1035,11 @@ in only a single change: This fixes buggy handling for 32-bit (i686) hosts, when allocating memory for the PCI devices. -Flashprog ---------- +### Flashprog Updated the revision to commit ID `639d563` from 2 August 2024. -PCSX Redux ----------- +### PCSX Redux This was added git commit ID `6ec5348058413619b290b069adbdae68180ce8c0`. It is a *Sony PlayStation* emulator, but we only need one part of it: the BIOS. @@ -1066,7 +1051,7 @@ the open BIOS image, which is compatible with every PlayStation emulator and also real PlayStations (soldering required). Git log -======= +------- This git log covers all changes in this audit, relative to Libreboot 20240612. diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index a76d37c..0c9fe5e 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -19,8 +19,8 @@ YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** -Introduction -============ +Open source BIOS/UEFI firmware +---------------------------- @@ -39,8 +39,7 @@ and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) or [GRUB](https://www.gnu.org/software/grub/) to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). -U-Boot UEFI payload on x86\_64 ------------------------------- +### U-Boot UEFI payload on x86\_64 For Libreboot 20241206, today's release, U-Boot is *also* provided as an optional coreboot payload on x86 machines. This provides a sensible UEFI @@ -60,10 +59,9 @@ on fixing bugs and in general polishing, though several interesting features have been added, in addition to numerous new mainboards. Summarised list of changes -========================== +------------------------- -Board support -------------- +### Board support The following boards have been added since the Libreboot 20241008 release: @@ -78,8 +76,7 @@ The following boards have been added since the Libreboot 20241008 release: * **[Dell OptiPlex 780 MT](../docs/install/dell780.md)** support, implemented by Nicholas Chin with testing and hardware logs provided by Lorenzo Aloe. -Revision updates -================ +### Revision updates In descending order from latest changes to earliest changes: @@ -103,8 +100,7 @@ In descending order from latest changes to earliest changes: * Bumped flashrom to revision d128a0a, which includes a fix for Macronix flash chips on ThinkPad W500 whereby it had previously used incorrect erase commands. -Feature changes ---------------- +### Feature changes In descending order from latest changes to earliest changes: @@ -139,8 +135,7 @@ In descending order from latest changes to earliest changes: on mobile graphics cards. This was used when implementing MXM support on the HP EliteBook 8560w. -Configuration changes ---------------------- +### Configuration changes In descending order from the latest changes to the earliest changes: @@ -173,8 +168,7 @@ In descending order from the latest changes to the earliest changes: machines can make use of 8th-gen Coffee Lake CPUs, which offer greater performance and power efficiency. -Bug fixes ---------- +### Bug fixes The following bug fixes have been merged (in descending order from the latest changes to the earliest changes): @@ -236,8 +230,7 @@ changes to the earliest changes): of it is much more robust**) * Added missing `python3-devel` to Fedora 40 build dependencies. -General code cleanup --------------------- +### General code cleanup In descending order from the latest changes to the earliest changes: @@ -250,7 +243,7 @@ In descending order from the latest changes to the earliest changes: because lbmk now handles this outside of coreboot. Git log -======= +------- This log is relative to Libreboot 20241008: diff --git a/site/news/libreboot20241206rev8.md b/site/news/libreboot20241206rev8.md index 5ee4c6e..e86d8c0 100644 --- a/site/news/libreboot20241206rev8.md +++ b/site/news/libreboot20241206rev8.md @@ -7,8 +7,8 @@ Today's Libreboot 20241206 revision, which is the 8th revision in the Libreboot to Libreboot 20241206 revision 7 which was released on 18 December 2024. The *original* Libreboot 20241206 release came out on 6 December 2024. -What is Libreboot? -============ +Open source BIOS/UEFI firmware +------------------------------ @@ -30,8 +30,7 @@ system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). We also provide an experimental U-Boot setup on x86, as a coreboot payload for providing a minimal UEFI implementation. -Regarding revision 8 -==================== +### Regarding revision 8 Normally, revisions would only be documented on the [Libreboot 20241206 revisions page](libreboot20241206.Revisions.md), but @@ -50,8 +49,7 @@ You will find the tar archives (including sources and ROM images) for this release, in the *same* directory under `stable/20241206/` on release mirrors. The old archives (from rev6) were replaced entirely; rev7 was never released. -Regarding revision 7 --------------------- +### Regarding revision 7 The only meaningful addition in *revision 7* was the feature whereby T480/T480s ThunderBolt firmware can be separately downloaded, for external flashing instead @@ -63,12 +61,10 @@ YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** - Summarised list of changes -========================== +------------------------ -Board support -------------- +### Board support RP2530 devices now supported in `pico-serprog`, e.g. Raspberry Pi Pico 2. @@ -79,8 +75,7 @@ The documentation has been updated, to reflect this improvement. Libreboot also now imports `picotool` which is now used to compile the UF2 binaries for installation, when building them from `pico-sdk`. -Revision updates ----------------- +### Revision updates In descending order from latest changes to earliest changes: @@ -95,8 +90,7 @@ In descending order from latest changes to earliest changes: * Bumped flashprog to revision eb2c041 (14 Nov 2024). This brings in several important fixes from upstream. -Feature changes ---------------- +### Feature changes In descending order from latest changes to earliest changes: @@ -136,8 +130,7 @@ In descending order from latest changes to earliest changes: on any boards, nor will it be, on release images, but the user can do it themselves when compiling from source. -Configuration changes ---------------------- +### Configuration changes In descending order from the latest changes to the earliest changes: @@ -146,8 +139,7 @@ In descending order from the latest changes to the earliest changes: can turn it back on and build from source, if they wish, for a roughly 15 percent performance boost under highly multi-threaded workloads. -Bug fixes ---------- +### Bug fixes Several fixes were made to prevent build errors on the latest Debian Sid and Arch Linux, as of 6 January 2025. Fedora 41 was also tested, fixing @@ -258,8 +250,7 @@ changes to the earliest changes): * `lib.sh`: Safer exit when running `./mk dependencies` (don't rely on the exit statuses of chained commands being zero). -General code cleanup --------------------- +### General code cleanup In descending order from the latest changes to the earliest changes: @@ -273,7 +264,7 @@ In descending order from the latest changes to the earliest changes: currently used by anything. Git log -======= +------ This log is relative to Libreboot 20241206 *revision 7*: @@ -389,14 +380,14 @@ This log is relative to Libreboot 20241206 *revision 7*: This is roughly 100 changes. Older revisions -========= +-------------- Please review the original [Libreboot 20241206 announcement](libreboot20241206.md), and the [Libreboot 20241206 revisions page](libreboot20241206.Revisions.md). Formalised release schedule -================= +--------------- UPDATE: the text of this section was removed on 17 January 2025. diff --git a/site/news/microcode.md b/site/news/microcode.md index ad157d9..74319a0 100644 --- a/site/news/microcode.md +++ b/site/news/microcode.md @@ -11,8 +11,8 @@ As I write this, I'm quite close to providing a new stable release of Libreboot. The final push to get it out the door is underway, with round-the-clock build testing and general polishing. -Introduction -============ +Free as in freedom? +------------------- Firstly, what is microcode? In this context, CPU microcode is what configures logic gates in the CPU to implement an instruction set. You can learn more @@ -50,8 +50,7 @@ announced that Libreboot had re-added certain mitigations, working around bugs caused when microcode is removed on certain Intel GM45 platforms (e.g. X200 or T400 ThinkPads). -Why? ----- +### Why? Freedom of choice, that's why. Libreboot's policy explicitly [states](policy.md#configuration), in the context of *adding* vendor files: @@ -76,8 +75,7 @@ features. The CPU already has older, buggier microcode burned into mask ROM, so the choice is to either update it, or encounter more bugs. Regardless, this is a point of contention for some people. -How? ----- +### How? The change was implemented by [this patch](https://browse.libreboot.org/lbmk.git/commit/?id=f338697b96757977d2a14da00a91236595704fed) @@ -164,7 +162,7 @@ ROM images there are named simply according to what is already the case. Removing microcode also possible on older releases -================================================== +--------------------------------------------------- Libreboot releases *before* 20221214 excluded microcode by default, and did not provide ROMs *with* microcode. diff --git a/site/news/policy.de.md b/site/news/policy.de.md index e7d553b..9d8136e 100644 --- a/site/news/policy.de.md +++ b/site/news/policy.de.md @@ -3,7 +3,7 @@ % 4 January 2022 (updated 15 November 2022) Einleitung -============ +------------ Dieser Artikel beschreibt die *Prinzipien* die das Libreboot Projekt definieren. Für Informationen darüber *wie diese Prinzipien in der Praxis angewendet @@ -33,7 +33,7 @@ technische Informationen schau in die [Libreboot build system documentation](../docs/maintain/). Derzeitiger Projektrahmen -===================== +------------------------- Das Libreboot Projekt ist besorgt um das was in den Haupt Boot Flash IC geht, aber es gibt andere Firmware Teile welche in Betracht gezogen werden sollten, @@ -45,8 +45,7 @@ Die kritischsten hiervon sind: * HDD/SSD firmware * Intel Management Engine / AMD PSP firmware -Was ist ein binärer Blob? ----------------------- +### Was ist ein binärer Blob? Ein binärer Blob, in diesem Zusammenhang, ist jegliches Ausführbares für welches kein Quelltext existiert, welchen Du nicht in einer angemessenen @@ -62,10 +61,9 @@ Für Informationen über die Intel Management Engine und AMD PSP, schau unter FAQ. Blob *reduction* policy -======================= +--------------------- -Default configurations ----------------------- +### Default configurations Coreboot, upon which Libreboot is based, is mostly libre software but does require vendor files on some platforms. A most common example might be raminit @@ -126,8 +124,7 @@ Libreboot's pragmatic policies will inevitably result in more people becoming coreboot developers in the future, by acting as that crucial *bridge* between *it* and non-technical people who just need a bit of help to get started. -Configuration -------------- +### Configuration The principles above should apply to *default* configurations. However, libreboot is to be *configurable*, allowing the user to do whatever they like. @@ -142,7 +139,7 @@ problem! The goal of the libreboot project is simply to make coreboot more accessible for otherwise non-technical users. FREEDOM CATALOG -=============== +-------------- A *[freedom status](../freedom-status.md)* page should also be made available, educating people about the software freedom status on each machine supported by @@ -178,7 +175,7 @@ exist, for example, the work done by Sam Zeloof and the Libre Silicon project: (Sam literally makes CPUs in his garage) More detailed insight about microcode -===================================== +--------------------------------- To be clear: it is preferable that microcode be free. Not including CPU microcode updates is an absolute disaster for system @@ -229,7 +226,7 @@ it literally behaves differently than it's supposed to, so software will have unpredictable bugs that could even cause data corruption - or worse. Why was this page written? -========================== +-------------------------- Many of the topics discussed here are actually hotly contested, by different sections of the free software movement. Libreboot has taken a firm stance. diff --git a/site/news/policy.md b/site/news/policy.md index 07fc728..516855d 100644 --- a/site/news/policy.md +++ b/site/news/policy.md @@ -2,8 +2,8 @@ % Leah Rowe % 4 January 2022 (updated 15 November 2022) -Introduction -============ +Free as in freedom! +----------------- This article describes the *principles* that govern the Libreboot project. For information about *how those principles are applied in practise*, please read @@ -31,7 +31,7 @@ ideology and it is therefore (mostly) non-technical; for technical information, you can refer to the [Libreboot build system documentation](../docs/maintain/). Current project scope -===================== +--------------------- The libreboot project is concerned with what goes in the main boot flash IC, but there are other pieces of firmware to take into consideration, as covered @@ -43,8 +43,7 @@ Most critical of these are: * HDD/SSD firmware * Intel Management Engine / AMD PSP firmware -What is a binary blob? ----------------------- +### What is a binary blob? A binary blob, in this context, is any executable for which no source code exists, that you cannot study and modify in a reasonable manner. By definition, @@ -53,10 +52,9 @@ all such blobs are *proprietary* in nature, and should be avoided if possible. For information about Intel Management Engine and AMD PSP, refer to the FAQ. Blob *reduction* policy -======================= +--------------------- -Default configurations ----------------------- +### Default configurations Coreboot, upon which Libreboot is based, is mostly libre software but does require certain vendor code on some platforms. A most common example might be raminit @@ -117,8 +115,7 @@ Libreboot's pragmatic policies will inevitably result in more people becoming coreboot developers in the future, by acting as that crucial *bridge* between *it* and non-technical people who just need a bit of help to get started. -Configuration -------------- +### Configuration The principles above should apply to *default* configurations. However, libreboot is to be *configurable*, allowing the user to do whatever they like. @@ -134,7 +131,7 @@ problem! The goal of the libreboot project is simply to make coreboot more accessible for otherwise non-technical users. Examples of Libreboot policy in action -====================================== +----------------------------------- More information about this is also available on the [freedom status](../freedom-status.md) page. @@ -207,7 +204,7 @@ examples of how this very policy is implemented in Libreboot: operating of a free operating system. FREEDOM CATALOG -=============== +-------------- A *[freedom status](../freedom-status.md)* page should also be made available, educating people about the software freedom status on each machine supported by @@ -243,7 +240,7 @@ exist, for example, the work done by Sam Zeloof and the Libre Silicon project: (Sam literally makes CPUs in his garage) More detailed insight about microcode -===================================== +--------------------------------- To be clear: it is preferable that microcode be free. Not including CPU microcode updates is an absolute disaster for system @@ -294,7 +291,7 @@ it literally behaves differently than it's supposed to, so software will have unpredictable bugs that could even cause data corruption - or worse. Why was this page written? -========================== +---------------------------- Firstly, observe the following graphic: diff --git a/site/news/policy.uk.md b/site/news/policy.uk.md index 79893a3..4b7eef4 100644 --- a/site/news/policy.uk.md +++ b/site/news/policy.uk.md @@ -3,7 +3,7 @@ % 4 січня 2022 року (оновлено 15 листопада 2022 року) Вступ -============ +----- У цій статті описано *принципи*, які керують проектом Libreboot. Щоб отримати інформацію про те, *як ці принципи застосовуються на практиці*, прочитайте @@ -30,7 +30,7 @@ coreboot*, приблизно так само, як *Alpine Linux* є дистр ви можете звернутися до [документації системи збірки Libreboot](../docs/maintain/). Поточний обсяг проекту -===================== +---------------------- Проект libreboot стосується того, що входить до основної мікросхеми завантажувальної флеш-пам'яті, але є й інші компоненти мікропрограми, які слід взяти до уваги, про що йдеться @@ -42,8 +42,7 @@ coreboot*, приблизно так само, як *Alpine Linux* є дистр * Прошивка жорстких дисків/твердотілих накопичувачів * Прошивка Intel Management Engine / AMD PSP -Що таке двійковий блоб? ----------------------- +### Що таке двійковий блоб? Двійковий блоб у цьому контексті - це будь-який виконуваний файл, для якого не існує вихідного коду, який ви не можете досліджувати та змінювати розумним чином. За визначенням, @@ -56,10 +55,9 @@ coreboot*, приблизно так само, як *Alpine Linux* є дистр Для інформації про Intel Management Engine та AMD PSP зверніться до поширених запитань. Політика *зменшення* блобів -======================= +--------------------------- -Конфігурації за замовчуванням ----------------------- +### Конфігурації за замовчуванням Coreboot, на якому Libreboot базується, є здебільшого вільним програмним забезпеченням, але на деяких платформах вимагає двійкових блобів. Найпоширенішим прикладом може бути raminit @@ -120,8 +118,7 @@ Libreboot вирішує цю ситуацію *суворо* та *принци розробниками coreboot, виступаючи в якості важливого *містка* між *ним* і нетехнічними людьми, яким просто потрібна допомога, щоб розпочати роботу. -Налаштування -------------- +### Налаштування Наведені вище принципи мають застосовуватися до конфігурацій *за замовчуванням*. Однак libreboot має бути *конфігурованим*, дозволяючи користувачеві робити все, що заманеться. @@ -136,7 +133,7 @@ Libreboot вирішує цю ситуацію *суворо* та *принци доступним для нетехнічних користувачів. КАТАЛОГ СВОБОДИ -=============== +--------------- Також має бути доступна сторінка *[статусу блобів](../freedom-status.uk.md)*, яка інформуватиме людей про статус бінарних блобів на кожній машині, що @@ -172,7 +169,7 @@ Libreboot вирішує цю ситуацію *суворо* та *принци (Сем буквально виробляє процесори в своєму гаражі) More detailed insight about microcode -===================================== +------------------------------------- To be clear: it is preferable that microcode be free. Not including CPU microcode updates is an absolute disaster for system @@ -223,7 +220,7 @@ it literally behaves differently than it's supposed to, so software will have unpredictable bugs that could even cause data corruption - or worse. Why was this page written? -========================== +------------------------- Firstly, observe the following graphic: diff --git a/site/news/ports202402.md b/site/news/ports202402.md index a34c639..6b8b2f8 100644 --- a/site/news/ports202402.md +++ b/site/news/ports202402.md @@ -10,7 +10,7 @@ stop. Many more will be added, for the next Libreboot release. The boards are: Dell OptiPlex 7020 and 9020 (MT and SFF) -======================================== +----------------------------------------- See: [Dell OptiPlex 9020 SFF/MT (and 7020)](../docs/install/dell9020.html) @@ -25,7 +25,7 @@ Libreboot project. I added this myself recently, based on patches from coreboot Gerrit. HP EliteBook 8560w -================== +------------------ Riku Viitanen added this recently. See: [HP EliteBook 8560w](../docs/install/hp8560w.html). @@ -40,7 +40,7 @@ we don't need to do anything there except load the VGA option ROM from SeaBIOS. However, on these EliteBooks, it must be provided in the boot flash. A *lot* more Dell Latitudes -=========================== +--------------------------- Nicholas Chin recently added these Dell Latitudes (of Sandybridge and Ivybridge platforms) to Libreboot: diff --git a/site/news/safety.md b/site/news/safety.md index ce6e1a9..00883bd 100644 --- a/site/news/safety.md +++ b/site/news/safety.md @@ -2,8 +2,8 @@ % Leah Rowe % 7 July 2023 -New safety features -=============== +UPDATE 2025-01-03: New safety features +------------------- NOTE: This page is mostly completely obsolete, as of 3 January 2025; changes made in the vendor inject script for Libreboot 20241206 rev8 or higher (and @@ -39,7 +39,7 @@ still [insert vendor files](../docs/install/ivy_has_common.md) regardless, prior to Libreboot installation, if required on your board.** Article -======= +------ **Please also follow this guide if using Dell Latitude laptops.** @@ -54,7 +54,7 @@ The reason why was explained, in the [Libreboot 20240225 release](libreboot20240225.md#flashprog-now-used-instead-of-flashrom)** Introduction -============ +------------- **UPDATE (21 August 2023): None of the proposals below have yet been implemented, and this page is still relevant for Libreboot 20231021. It applies @@ -74,8 +74,7 @@ users have been bricking their machines, on the following mainboards: * Ivybridge platforms (e.g. ThinkPad X230, T430) * Haswell platforms (e.g. ThinkPad T440p, W541, OptiPlex 9020) -Why? ----- +### Why? On these platforms, the following binary vendor files are required: @@ -116,8 +115,7 @@ automatically download and insert all of the following: More information is available in the guide. -What can be done to reduce the risk? ------------------------------------- +### What can be done to reduce the risk? Like I said, there's technically nothing wrong with recent Libreboot releases. @@ -127,8 +125,7 @@ prominently displayed. Such warnings are now littered all throughout the Libreboot documentation, even mentioned in bold lettering at the top of the downloads page, so there's no way a user can miss it. -Other mitigations considered ------------------------------ +### Other mitigations considered See: diff --git a/site/news/schedule.md b/site/news/schedule.md index 051c9b7..1afe58a 100644 --- a/site/news/schedule.md +++ b/site/news/schedule.md @@ -5,7 +5,9 @@ Libreboot releases will now be on a much stricter timeline than in the past. Testing/Stable release cycle -============================ +---------------------------- + +### April/June and October/December As alluded to in the Libreboot 20241206 release, a new release schedule is planned for 2025 onward: @@ -31,8 +33,7 @@ be: Libreboot 25.04 "Corny Calamity". This .4, .6, .10 and .12 scheme will continue in 2026 and beyond. -Rules for revisions: --------------------- +### Rules for revisions Testing releases come out two months before stable; any number of non-breaking or otherwise relatively safe changes can be made, and testing releases will @@ -46,8 +47,7 @@ releases post-release will be critical bug fixes; in a few cases, special additions will be made when desirable and safe (e.g. Pico 2 support was added to Libreboot 20241206 post-release, in the revision 8 update from 2025-01-06). -Why? ----- +### Why? In the past, a problem Libreboot has had was that we'd do testing releases, but not do revisions on them; then by the time a stable release came around, @@ -64,10 +64,9 @@ This decision is part of a much larger initiative to boost Libreboot's popularity and therefore use within the free software world. Release version numbers -======================= +----------------------- -Libreboot YY.MM releases ------------------------- +### Libreboot YY.MM releases Libreboot YYYYMMDD was the previous version number scheme. @@ -85,16 +84,14 @@ With this new scheme, and given Libreboot's expansion plans, it won't matter even if a release build takes 2 days to complete, because the day of the month will no longer be included in a given release number. -Y2.1k compliance ----------------- +### Y2.1k compliance If Libreboot still exists in the year 2100, then those releases will be e.g. Libreboot 100.04 for April 2100 release. It could happen. Even if I'm no longer around by then, Libreboot might still be. -Release codenames ------------------ +### Release codenames The release codename for Libreboot 25.04 will be "Corny Calamity", which is a nod of respect to an equally gutsy release codename that *Fedora* used in @@ -104,7 +101,7 @@ The rules for Libreboot release codenames are: two words, each starting with the same letter. Credit -====== +------ [Britney Lozza](https://janethemotherfucker.github.io/) was the one who suggested to me that I use this new release number and codename scheme, and I previously diff --git a/site/news/translations.de.md b/site/news/translations.de.md index f0b9836..8f7a0be 100644 --- a/site/news/translations.de.md +++ b/site/news/translations.de.md @@ -13,7 +13,7 @@ HTML Seiten. Die Seite die Du gerade liest wurde auf diese Weise erstellt! Vorbereitung -=============== +-------------------- Die Libreboot Webseite ist verfügbar, in Markdown, über ein Git Repository:\ @@ -34,9 +34,8 @@ dort jedesmal vermerken wenn ich Änderungen an der Seite vornehme, und zeigen wo diese Änderungen dann auf übersetzten Seiten erledigt werden müssen für jede Seite die ich ändere. - Wie übersetzt man libreboot.org -============================== +------------------------ Die Dokumentation auf erläutert wie Du Übersetzungen handhaben kannst. diff --git a/site/news/translations.md b/site/news/translations.md index 3ae0c7c..2804f25 100644 --- a/site/news/translations.md +++ b/site/news/translations.md @@ -2,7 +2,10 @@ % Leah Rowe % 4 January 2022 -The libreboot website is currently only available in English. +Libreboot wants *you* +--------------------- + +Most of the Libreboot website is currently only available in English. I've recently added support for translations to the [Untitled Static Site Generator](https://untitled.vimuser.org/), which the @@ -12,7 +15,7 @@ this software generates HTML pages. This very page that you are reading was created this way! Getting started -=============== +--------------- The libreboot website is available, in Markdown, from a Git repository:\ @@ -32,7 +35,7 @@ where these changes need to then be performed in translated versions of each page that I change. How to translate libreboot.org -============================== +------------------------------- The documentation on tells you how to handle translations. diff --git a/site/news/update202308.md b/site/news/update202308.md index df1664d..9f76866 100644 --- a/site/news/update202308.md +++ b/site/news/update202308.md @@ -12,10 +12,9 @@ To receive these updates, you must use Git for now. See: [how to download Libreboot from Git](../git.md) Introduction -============ +-------------- -SeaBIOS and GRUB updates ------------------------- +### SeaBIOS and GRUB updates For *all* mainboards that provide GRUB or SeaBIOS revisions, new versions of these payloads are now used in Libreboot, as implemented by these patches: @@ -27,8 +26,7 @@ these payloads are now used in Libreboot, as implemented by these patches: a 20 January 2023 revision. Patch: -Coreboot update ---------------- +### Coreboot update The `default` cbtree is now based upon coreboot from 2 August 2023, where previously it was based upon coreboot from 17 February 2023. Patch: @@ -58,14 +56,13 @@ tree (libre MRC on T440p/W541), `cros` (gru chromebooks) and `fam15h` trees used on KGPE-D16/KCMA-D8/KFSN4-DRE have not yet been updated. Testing needed! -=============== +--------------- I want to get as much testing done now as possible, ready for the next release, which will still be marked as a testing release anyway; the next stable release is a long way off, as much new work is planned for Libreboot. -Apply to become a tester ------------------------- +### Apply to become a tester If you wish to provide such testing, please read the following page: @@ -77,14 +74,12 @@ need to know. Coreboot tends to audit very carefully and updates are usually smooth, but testing is one of Libreboot's main purposes, to provide stable releases based on coreboot. -How to download ---------------- +### How to download To receive these updates, you must use Git for now. See: [how to download Libreboot from Git](../git.md) -Build from source ------------------ +### Build from source This update, since it is not yet available pre-compiled in a release, must be compiled from source. See: diff --git a/site/news/usa-libre-part2.md b/site/news/usa-libre-part2.md index ae1a874..8fd8e59 100644 --- a/site/news/usa-libre-part2.md +++ b/site/news/usa-libre-part2.md @@ -2,8 +2,8 @@ % Leah Rowe % 12 February 2023 -Introduction -============ +Free software in your government? +-------------------------- This article makes use of the term *libre software*, which has the same meaning as more popular terms such as *open source software* @@ -38,8 +38,7 @@ With your help, libre software could suddenly find itself in a much stronger position, with more users and more developers, encouraged by such positive changes. -When, who, what and where? ------------------- +### When, who, what and where? Eric Gallager, the representative behind the previous bill, has continued his efforts and now has a new hearing for the following bill very soon: @@ -59,8 +58,7 @@ the bill, and to defend it against any opposition. The bill's hearing shall take place in room 306-308. -Who to contact --------------- +### Who to contact Eric Gallager is the representative in charge of the proposed bill, and you can contact him in the following ways: @@ -76,7 +74,7 @@ to its proprietary nature - use Mastodon or email if you can): \ Why should you support this bill? -================================= +------------------------------ If this newly proposed bill is passed, it will provide the libre software movement a *foot in the door*, that could lead to greater reform at a later diff --git a/site/news/usa-libre-part3.md b/site/news/usa-libre-part3.md index b599878..4e1d7a3 100644 --- a/site/news/usa-libre-part3.md +++ b/site/news/usa-libre-part3.md @@ -3,7 +3,7 @@ % 20 February 2023 Introduction -============ +------------ You may recall last year's article: [New Hampshire (USA) may soon enshrine Software Freedom into law](usa-libre.md) - a proposed bill, if it passed, @@ -26,15 +26,14 @@ contact your house representative, and ask them to support this bill! This web page can let you find who your representative is:\ * -Can't attend? -------------- +### Can't attend? That's OK! You can still help. Please tell as many people about this as possible, and spread the news on as many websites/blogs as possible. Post it on your social media account, if you have one. Write to the media! When and where? -=============== +--------------- **This bill's hearing is on 21 February 2023 at 9AM in the Legislative Office Building, 33 N. State Ct., Concord, New Hampshire:**\ @@ -48,7 +47,7 @@ the goal of the movement, and that of the Libreboot project which is a part of said movement. Who to contact -============== +-------------- Eric Gallager is the representative in charge of the proposed bill, and you can contact him in the following ways: @@ -64,7 +63,7 @@ to its proprietary nature - use Mastodon or email if you can): \ What does house bill 556-FN say? -================================ +-------------------------------- The actual text of the bill is provided here:\ @@ -81,7 +80,7 @@ copyleft versus permissive (BSD-style) licensing, the advancement of *any* libre software on such massive scale will help the entire movement. Live streams -============ +------------ Although not mentioned in previous articles on this agenda, the New Hampshire court building provides live streams of hearings. @@ -99,8 +98,7 @@ Per the text of HB-556, the stream for *that* bill will be on: The links change, for each stream, so you should check them on the day. -Use invidious! --------------- +### Use invidious! The Youtube.com link is provided, above, for the sake of completion. However, you should use an Invidious instance. Invidious acts as a proxy for Youtube, diff --git a/site/news/usa-libre.md b/site/news/usa-libre.md index 2bf5e52..3a86d23 100644 --- a/site/news/usa-libre.md +++ b/site/news/usa-libre.md @@ -2,8 +2,8 @@ % Leah Rowe % 8 January 2022 -Introduction -============ +Free software in your government? +---------------------------------- This event of such global importance to libre software projects, and the libre movement as a whole, has made me decide to write an article. **The @@ -36,7 +36,7 @@ of Libreboot is to help users *avoid* proprietary software at the firmware level, whenever feasible. What's happening in New Hampshire? -================================== +--------------------------- An important bill is being proposed in New Hampshire, which would enshrine much of what we know as Open Source *into law*. Here is the proposed bill, @@ -115,10 +115,9 @@ which could redefine our movement and give *libre software* real power instead. HOW TO HELP -=========== +------------ -TESTIFY IN SUPPORT OF THE BILL ------------------------------- +### TESTIFY IN SUPPORT OF THE BILL **The reading of the bill is happening on 11 January 2022. This is when you should go to New Hampshire.** @@ -151,8 +150,7 @@ This thread on Twitter is where Eric announced that the reading of the bill is to proceed (original Twitter URL):\ -More states/countries will follow ---------------------------------- +### More states/countries will follow If this bill is passed in New Hampshire, more states will likely follow. It will lead to a massively renewed drive to liberate all computer users, and US @@ -164,8 +162,7 @@ global level. You *must* support this bill. If you want to see it pass, please go to New Hampshire on 11 January 2022 to make sure your voice is heard. -OUR ENEMIES WILL BE THERE -------------------------- +### OUR ENEMIES WILL BE THERE The *proprietary* software companies like Microsoft and Apple will also be there, trying to argue the case *against* the use of Libre Software. @@ -239,14 +236,6 @@ They will try to trick the law makers by claiming things such as: by some external entity; *your* installation of libre software is controlled by *you*. -If you're familiar with the *Matrix* films, proprietary operating systems like -Windows/MacOS are basically like the Matrix; bland, no individuality, no -independent thought, everything tightly controlled. By contrast, libre operating -systems (such as Linux distributions or the BSDs) are like zion/io; vibrant, -full of life, buzzing with activity, everything loose and free, and everyone -is different (a highly diverse culture of people from all walks of life, acting -in common cause but nonetheless individuals). - Meanwhile, Windows is known to have backdoors. Microsoft actively informs the NSA about how to exploit them, so that it can break into people's computers and steal private data. diff --git a/site/other.md b/site/other.md index 76f8539..caab302 100644 --- a/site/other.md +++ b/site/other.md @@ -3,8 +3,8 @@ title: Other coreboot distributions x-toc-enable: true ... -Introduction -============ +What is a coreboot distro? +-------------------------- Libreboot is a *coreboot distribution* or *coreboot distro*, in the same way that Debian is a *Linux distro*. Its purpose is to provide free/opensource boot @@ -32,13 +32,12 @@ It's thanks to the various coreboot distros that many people use coreboot today; without them, many otherwise non-technical users might not use coreboot at all. List of coreboot distros -======================== +------------------------ Not all distros are listed; only those of high quality or otherwise of interest; quality, not quantity. In alphabetical order: -Canoeboot ---------- +### Canoeboot Website: @@ -67,8 +66,7 @@ you could consider Canoeboot to be *legacy Libreboot*. Libreboot adopted the Binary Blob Reduction Policy in November 2022, as part of a general desire to support more - and newer - hardware. -Dasharo -------- +### Dasharo Website: @@ -88,8 +86,7 @@ coreboot images for each supported mainboard, with an emphasis on stability. It's a very different approach than Libreboot's approach; Libreboot provides a more generalised design in its build system and infrastructure. -Heads ------ +### Heads Website: @@ -130,8 +127,7 @@ but they target different kinds of users and use-case scenarios, with Libreboot targeting a more general audience (while providing security hardening options), whereas Heads specifically targets security-conscious users. -MrChromeBox ------------ +### MrChromeBox Website: @@ -167,8 +163,7 @@ the interview: Libreboot largely avoids supporting Chromebooks, precisely because MrChromebox is a perfectly viable option on these machines. -Skulls ------- +### Skulls Git repositories: @@ -183,8 +178,7 @@ aims to provide ease of use while also providing great power and flexibility. So Libreboot is aimed specifically at power users, while also trying to accomodate non-technical users; Skulls largely targets the latter. -System76 Open Firmware ----------------------- +### System76 Open Firmware Git repository: @@ -199,7 +193,7 @@ System76 provides the coreboot firmware, along with EDK2 UEFI payload. It can boot Linux distros, BSD systems and even Windows perfectly. Is your distro unlisted? -======================== +------------------------ Please get in touch! We'd love to link your project here. @@ -215,7 +209,7 @@ firmware, which was the primary motivation behind this page, in promoting the various projects. Non-coreboot free firmware -========================== +-------------------------- Several other projects besides coreboot provide free hardware initialisation, such as [U-Boot](https://www.u-boot.org/) (as own firmware, distinct from U-Boot diff --git a/site/tasks/index.md b/site/tasks/index.md index 2431691..0bafb80 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -16,7 +16,7 @@ You may also benefit from *assimilating* all knowledge contained in the *[lbmk maintenance manual](../docs/maintain/).* Rockchip RK3588 SoCs in coreboot -================================ +-------------------------------- See: @@ -26,8 +26,7 @@ to coreboot. Also: -Add TF-A support to Libreboot ------------------------------ +### Add TF-A support to Libreboot Yes. We already provide other non-coreboot firmware, such as the serprog images. We even integrate U-Boot, albeit as a coreboot payload with some init @@ -41,7 +40,7 @@ It is essentially an analog of coreboot; coreboot even uses parts of this, on some boards. general auditing -================ +---------------- Libreboot's build system design is already extremely efficient. See: [lbmk build system documentation](../docs/maintain/) @@ -68,7 +67,7 @@ I say again: Code equals bugs, so fewer lines of code will cause fewer bugs. Interesting board ports -======================= +----------------------- **Any board port is interesting. These are just a few that happened to be noticed at a given time. The list below is by no means complete!** @@ -77,8 +76,7 @@ Libreboot can support any board from coreboot, in principle. It would also be feasible to integrate other (libre) boot firmware, if desirable. The list below is not exhaustive, it just lists boards that are interesting to us at this time: -Boards ------- +### Boards * HP EliteBook 2760p * HP ProBook 6360b @@ -96,8 +94,7 @@ Boards not much different code-wise to the D16 mainboard, so differences in coreboot `4.11_branch` could be adapted to provide a Dasharo port. -ThinkPad T430s and T431s -------------------------- +### ThinkPad T430s and T431s These are interesting; the T431s in particular has soldered RAM, so we'd need to take care of SPDs (not done automatically yet, in coreboot). The schematics @@ -109,8 +106,7 @@ machine). Both are supported by coreboot. -840 G2 (possible 820 G2) -------------------------- +### 840 G2 (possible 820 G2) These notes are based on a chat on Libreboot IRC. @@ -121,8 +117,7 @@ newer TPM version - SLB9665 firmware can meet TPM 2.0 specification. (we do not yet use the TPM in any meaningful way on Libreboot machines) -Blobless boards ------------ +### Blobless boards Not yet supported, but interesting for the project. Separated thus: @@ -133,8 +128,7 @@ already supported by coreboot: * Scan coreboot code for ICH9/ICH10 systems, or boards with x4x/gm45 based northbridges. Many of these can boot blobless. -Dell Latitude/Precision: ------------------------ +### Dell Latitude/Precision: * Dell Latitude laptops: E4200, E4300, E5400, E5500, E6500, Precision M4400, @@ -153,13 +147,11 @@ SuperIO: at least M6500 is known to use ECE5028. I have a bunch of these Dells at my lab, they are high priority for porting because they would be easily flashable. -Broadwell Dell --------------- +### Broadwell Dell E5450 uses MEC5085, currently untested for dell-flash-unlock. -Skylake Dell ------------- +### Skylake Dell @@ -168,8 +160,7 @@ Non-E models don't have the MEC ECs. The E models have MEC5085. Nicholas isn't sure whether these have bootguard. TODO: test, and also test with dell-flash-unlock. -Dell Latitude E7240 -------------------- +### Dell Latitude E7240 See: @@ -180,8 +171,7 @@ libremrc in lbmk. NOTE: Iru Cai is the person working on this. -Dell Precision M4800 and M6800 --------------------- +### Dell Precision M4800 and M6800 Also M6800, though no port is available yet. 17.3 inch display. @@ -196,8 +186,7 @@ for entry into coreboot due to copyright reasons. This port is worth looking at. When the issues are fixed, this will make a fine addition to lbmk. -E4200 SPD ---------- +### E4200 SPD NOTE: Some of this may be inaccurate, because it's copied from handwritten notes that were written very hastily and are barely legible. @@ -229,8 +218,7 @@ see -AMD Family16 boards -------------------- +### AMD Family16 boards See: @@ -315,8 +300,7 @@ Also referenced there: Biostar A68N-5200 mainboard. Check coreboot `4.18_branch` for these boards. Coreboot started removing the AGESA boards after release 4.11. -Lenovo G505s ------------- +### Lenovo G505s Old board, removed from coreboot ages ago, but one of the fastest pre-PSP AMD laptops, has full init in coreboot - it does require a VGA ROM for @@ -326,8 +310,7 @@ graphics. Anyway: This page was linked to me ages ago by Mike Banon. It contains instructions for how to configure the machine. It might be worth integrating into lbmk. -RISC-V hardware ---------------- +### RISC-V hardware See: @@ -340,19 +323,16 @@ oreboot is still a good project. (though, whenever possible, lbmk should stick to coreboot, to keep things simpler - are there efforts to implement oreboot ports in coreboot/C?) -LoongArch support ------------------ +### LoongArch support Ariadne Conill has been working on bringup for coreboot. Work also being done with edk2; U-Boot also desirable here. -RockPro64 ---------- +### RockPro64 Another interesting board that coreboot supports. We could add this. -uefistub --------- +### uefistub Currently [under review](https://review.coreboot.org/c/coreboot/+/78913) in the coreboot project, this provides an *incomplete* UEFI implementation, but @@ -369,8 +349,7 @@ uefistub will remain mentioned here for the time being. The context for uefistub is linuxboot-only setups; this is where uefistub can truly shine, specifically on ARM64 devices. -Videos (plus RISCV) ------- +### Videos (plus RISCV) The *Open Source Firmware Conference* (OSFC) in 2023 had several interesting talks pertaining to ARM, secureboot, linuxboot, UEFI and everything in between. @@ -388,7 +367,7 @@ In general, there are many interesting talks: The talks go all the way back to 2018. They're all worth watching. Linuxboot -========= +--------- **NOTE: Stali Linux is a useful base, on top of which any Linux-based setup could be built. With a stripped down kernel, it already provides a sensible @@ -422,8 +401,7 @@ This makes it a useful drop-in replacement for the GRUB bootloader payload that Libreboot currently uses. Linux has much better drivers than GRUB, especially for things like LUKS2 and networking. -Ideas for how to implement in lbmk ------------------------------------ +### Ideas for how to implement in lbmk Look at the [lbmk documentation](../docs/maintain/) for context. The most logical way to implement Linux payloads in Libreboot's build system, lbmk, @@ -462,14 +440,12 @@ build system would not increase much. It's mainly the addition of musl-cross-make. Most of the generic build logic already exists in lbmk, for projects that use cmake and/or make. It could be done with minimal complexity. -Flash size limitations ----------------------- +### Flash size limitations With a stripped down kernel, and sensible configuration, about 6-8MB of flash space would be required in this setup. The Heads setup is just under 8MB. -Why Linux in flash? -------------------- +### Why Linux in flash? Linux has better drivers than GRUB, has netboot, and it's much more practical when you want to control the boot process. For example, you could more easily @@ -478,15 +454,13 @@ implement measured boot and make use of TPM-based security mechanisms. For the everyday user, it probably doesn't make much difference if they're already happy with SeaBIOS, GRUB or SeaBIOS. -x86 implementation ------------------- +### x86 implementation Coreboot can directly execute it as a payload, but we would also execute it from the GRUB payload - if running from the GRUB payload, we could just provide it as a vmlinuz and initramfs file. -ARM implementation ------------------- +### ARM implementation We already standardise on U-Boot, for ARM machines. It's debateable whether Linuxboot is even desirable here, U-Boot is quite competent, but the SPL mode @@ -505,8 +479,7 @@ correct UEFI implementation. (then again, linux on bare metal providing kexec as main bootloader method is also quite non-standard, at least on x86 and ARM). -Netboot.xyz ------------ +### Netboot.xyz It's unlikely that this will actually be used in lbmk, but this provides a really nice way to boot Linux distros over the network: @@ -515,8 +488,7 @@ nice way to boot Linux distros over the network: It uses iPXE, whereas we would be using Linux and kexec. -Zfsbootmenu ------------ +### Zfsbootmenu See: @@ -527,7 +499,7 @@ This was briefly documented on the Libreboot website, before [argon2 kdf support](../news/argon2.md) was merged in Libreboot GRUB. Seek QUBES endorsement -====================== +---------------------- Libreboot is compatible with Qubes, on several supported mainboards. This could be audited, to provide a complete list. Qubes has a page on their website which @@ -538,7 +510,7 @@ the same time, which is an excellent project. We could host a page specifically for it, saying what works on our end, and basically copy that to their wiki. GRUB VGA modes -============== +-------------- VGA support is not universal in Libreboot. We typically rely on GRUB to start in console mode (`GRUB_TERMINAL=console`), which means GRUB won't change @@ -557,7 +529,7 @@ menu works is, it scans for GRUB and Syslinux/Extlinux configs on the user's HDD/SSD, switching to the first one found. GRUB configs menu -================ +----------------- Libreboot systematically scans for GRUB/Syslinux/Extlinux configs provided by the user's operating system, by scanning partitions. It can also scan @@ -577,10 +549,9 @@ This pertains to the GRUB *payload* provided in the flash, by Libreboot. It is currently the preferred payload in Libreboot, at least for x86 machines. Document flash write protection -============================ +------------------------------- -IFD-based method ----------------- +### IFD-based method Already covered, but could be documented more prominently. Use `ifdtool --lock libreboot.rom` to lock the IFD. @@ -593,8 +564,7 @@ useless; on the E6400, the EC firmware can be instructed to override the IFD settings, by enabling the Flash Descriptor Override (in fact, this is part of what the `dell-flash-unlock` utility does). -FLILL-based method ------------------- +### FLILL-based method We already vaguely mention Intel Flash Descriptor settings ta enable write protection. This documentation should be expanded on. @@ -621,13 +591,11 @@ Flash Descriptor Override, will not affect FLILL entries. We could document this on the Libreboot website. -SMM write protection --------------------- +### SMM write protection system management mode can also be used, to implement flash write protection. -PR (Protected Range) registers ------------------------------- +### PR (Protected Range) registers Differing per platform but defined by Intel datasheets, the Protected Range registers can be set, to enable flash write protection. Once written, these @@ -657,21 +625,19 @@ protecting `/dev/mem` by default, that the user can turn off at boot time when they want to flash (e.g. cmdline option `iomem=relaxed` in Linux, or `kern.securelevel=-1` in OpenBSD). -Chip-specific -------------- +### Chip-specific Some flash chips support their own write protection scheme, covered in their datasheets, but this is usually unreliable or inconsistent. This method is not to be relied upon. -Layers! -------- +### Layers! Security is all about layers. When you want to lock down the flash, use every method available to you. lbwww: Document MXM graphics -============================ +---------------------------- MXM graphics modules are present, on some laptops that we do not yet support, because certain functionality is needed on them that we do not implement yet. @@ -688,7 +654,7 @@ Several more high-end HP EliteBook machines use MXM graphics modules, e.g. HP EliteBook 8560w. lbmk-c: clustered builds -======================== +------------------------ I had an idea on IRC when we were talking about how to optimise the build speed in Libreboot. Most of the time is spent simply compiling the ROM images, @@ -715,13 +681,12 @@ distcc is probably useful here: -ccache ------- +### ccache not directly related, but this can speed up coreboot builds Fixdep -====== +------ This would be something to implement in coreboot's build system, but could also benefit lbmk. Currently, any changes to the coreboot's config results in Make @@ -753,22 +718,22 @@ config. Consider: -- Board A, which sets CONFIG_TEST=y -- Board B, which sets CONFIG_TEST=n -- Board C, which sets CONFIG_TEST=y -- test.c, which uses the value of CONFIG_TEST +- Board A, which sets CONFIG\_TEST=y +- Board B, which sets CONFIG\_TEST=n +- Board C, which sets CONFIG\_TEST=y +- test.c, which uses the value of CONFIG\_TEST -An order such as A->C->B would be most efficient: +An order such as A-\>C-\>B would be most efficient: -1. A: test.c compiled for the first time with CONFIG_TEST=y -2. C: CONFIG_TEST hasn't changed, so test.o can be reused from step 1 -3. B: test.c recompiled, since CONFIG_TEST changed back to n +1. A: test.c compiled for the first time with CONFIG\_TEST=y +2. C: CONFIG\_TEST hasn't changed, so test.o can be reused from step 1 +3. B: test.c recompiled, since CONFIG\_TEST changed back to n -An order such as A->B->C would be least efficient: +An order such as A-\>B-\>C would be least efficient: -1. A: test.c compiled for the first time with CONFIG_TEST=y -2. B: test.c recompiled, since CONFIG_TEST changed to n -3. C: test.c recompiled again, since CONFIG_TEST changed back to y, even though +1. A: test.c compiled for the first time with CONFIG\_TEST=y +2. B: test.c recompiled, since CONFIG\_TEST changed to n +3. C: test.c recompiled again, since CONFIG\_TEST changed back to y, even though this configuration was previously built in step 1. Given the number of possible configs, the ideal order is likely impractical to @@ -787,7 +752,7 @@ the header "Dependency tracking": Nicholas Chin is looking at this in coreboot. Use crossgcc for SeaBIOS and GRUB -================================= +--------------------------------- We currently use hostcc for the SeaBIOS and GRUB payloads. This, among other things, means lbmk is currently only supported for amd64 machines. @@ -802,7 +767,7 @@ GRUB specifically, we should therefore use musl-cross-make. SeaBIOS can be built using crossgcc. Port lbmk to BSD systems -======================== +------------------------ In particular, FreeBSD is of interest. @@ -836,7 +801,7 @@ Libreboot already has excellent support for booting all of the BSDs. Having the build system be compatible would just be another great boon. Package lbmk in distros -======================= +----------------------- Providing binaries of Libreboot in distros wouldn't make sense, because we do that anyway, on Libreboot RSYNC, but having ports of the build system on @@ -863,10 +828,9 @@ system itself. A distro could package lbmk to build for a specific Libreboot version, and handle all of the dependencies and everything. Vendor scripts -============== +-------------- -Bruteforce more files ---------------------- +### Bruteforce more files We bruteforce extract IME but some other firmwares are more or less hardcoded in config. @@ -885,7 +849,7 @@ time. This work began mostly after mid-2022, and has since been expanded to cover many types of firmwares, used on various mainboards. Investigate 16MB flash setups -============================= +----------------------------- On some ivybridge and sandybridge boards, where flash is 8MB or 12MB, it is feasible (with some soldering) to upgrade it to 16MB setups. @@ -912,7 +876,7 @@ MOSI/MISO are shared, and the PCH/southbridge will enable or disable the given flash IC to access the region needed. ME Cleaner status page -====================== +---------------------- See: @@ -920,7 +884,7 @@ It's a good reference, though far from complete. People post there saying whether their hardware works with `me_cleaner`. Overclocking -============ +------------ See: @@ -932,7 +896,7 @@ It might be useful on some machines. The research here (by Angel Pons) may be transferrable to other platforms. Detect module changes -===================== +--------------------- When a given package is already downloaded and built in some way, lbmk currently works on the assumption that it doesn't change. During development, @@ -949,7 +913,7 @@ In practise, revisions don't change very often in Libreboot, and they're normally updated all at once, when they are updated. Normal/fallback scheme -====================== +---------------------- Libreboot currently does not handle the normal/fallback payload scheme at all. Instead, it is assumed that the user will always be booting from the fallback @@ -960,7 +924,7 @@ Coreboot supports configuring which scheme to use, at boot time, but we don't use it. Coreboot's default is to always load the fallback, so we use that. Improved payload documentation -=============================== +------------------------------ The actual payload documentation is quite sparse in Libreboot, especially SeaBIOS but also GRUB. We don't need to repeat what is said by upstream docs, but we @@ -970,7 +934,7 @@ We should start writing about the payloads in more detail, referencing upstream documentation whenever possible. Static compiled utils in releases -================================= +--------------------------------- We curerntly only provide binaries of the firmware itself, for each mainboard, but we do not provide utilities compiled. We provide only source code, and the @@ -981,7 +945,7 @@ download scripts. This should be done alongside providing musl-cross-make for the linuxboot builds. Download repositories in bulk -============================= +----------------------------- At present, lbmk does what it needs to do, and downloads repositories only as required, upon each stage of the boot process. For example, it may download @@ -994,8 +958,7 @@ but for very long builds (ones that take hours, which some do), it may be that the user's internet goes down, and a latter part of the build fails, where it might have succeeded if packages were downloaded much earlier and in bulk. -Optimisation ------------- +### Optimisation So, TODO: Make lbmk determine precisely what packages would later be downloaded through various parts of a build, for a given command, and do it all at once, @@ -1011,7 +974,7 @@ recommended that you run lbmk an on internet connection that is at least 100Mbps You can still use slower connections, it'll just take longer. Don't copy src trees -==================== +-------------------- For multi-tree projects, lbmk currently copies the source code per tree, e.g. `coreboot/default`, `coreboot/dell`. What could be done instead is to @@ -1037,10 +1000,9 @@ provided, they would just use whatever revision is used in the defined submodule for the main target project that lbmk is downloading for. Vendor scripts -============== +-------------- -Check hashes of resulting files -------------------------------- +### Check hashes of resulting files Libreboot extracts the files from vendor updates, and those updates are checked against known hashes, but lbmk only defines such hashes for the larger updates @@ -1050,7 +1012,7 @@ to current behaviour (only check the main file) if individual checksums for inside files are not defined. Reproducible builds -=================== +------------------- We can't focus on this reliably, because we use hostcc extensively for many parts of the build process. Other parts of this TODO page talk about how to @@ -1060,8 +1022,7 @@ Cross compilation is the first step to reproducibility, because then we only have to worry about the toolchain, which is easier to control. We can start focusing specifically on reproducibility once all of that has been done. -Tarballs --------- +### Tarballs We already have partial reproducibility, though we currently use the `-T0` option in xz, whereas `-T1` is more appropriate; forcing it to run on 1 core @@ -1079,7 +1040,7 @@ Also: This post writes about the rationale for `-T1` when using xz. VGA: Run-time, not build-time -============================= +----------------------------- In coreboot, configuration of video initialisation is done at build time. This has several disadvantages, in that you now need multiple ROM images for multiple @@ -1123,10 +1084,9 @@ possible to change the payload at runtime for instance (manually), by running cbfstool. Modularise the coreboot stages -============================== +------------------------------ -ie. generate cbfs in lbmk -------------------------- +### ie. generate cbfs in lbmk We currently use the coreboot build system which is designed to build all stages, such as the bootblock, car, ramstage, romstage etc. The coreboot build @@ -1156,7 +1116,7 @@ We might have to backport to some older revisions, because lbmk uses certain older revisions on some machines, e.g. AMD AGESA platforms. Macbook21 C-states patch -======================== +------------------------ See: @@ -1168,8 +1128,7 @@ is described there), we can expand it to configure c-states differently on imac52. This config is used to enable efficient power management, on these machines. -How to dump c-state config --------------------------- +### How to dump c-state config ``` i2cdump 0x69 @@ -1187,7 +1146,7 @@ these machines, doesn't work well in apple's firmware. mentioned by avph in the gerrit link (see above) Check file ownership in builds -============================== +------------------------------ When lbmk is running, it is assumed that the current user has ownership of the files. If lbmk is operated on a clone that is under different ownership, @@ -1207,8 +1166,7 @@ warning message to the user, so that they know what to do to fix it. Lbmk would also then exit earlier, rather than trying to run something, which might result in very unpredictable behaviour. -Sanity checks -------------- +### Sanity checks We basically should have startup sanity checks in general, such as checking whether all the right dependencies are installed on the host system. @@ -1229,7 +1187,7 @@ is basically the same thing as the other entry on this page about porting to BSD. So tackle both. Software Bill of Materials -========================== +-------------------------- Generate an SBOM for all of Libreboot, on release builds specifically; it can be skipped for performance/convenience reasons on regular development builds @@ -1294,7 +1252,7 @@ NOTE: the `-z` option in ./update trees is not yet implemented. Again, the above just a concept. Re-use build artifacts -====================== +----------------------- Libreboot's build system, lbmk, does not re-use artifacts well. It largely assumes that you are building everything from scratch, which is great for @@ -1309,8 +1267,7 @@ most projects only get built once, unless they are modified (by a developer). This might be useful for: -Partial coreboot re-builds --------------------------- +### Partial coreboot re-builds A lot of the time in lbmk, we are building multiple variants of the same mainboard, for different setups. We could skip a lot of the re-building. @@ -1318,8 +1275,7 @@ This pretty much goes hand in hand with the other entry on this TODO page, about spliting up the various stages in coreboot, and handling CBFS generation within lbmk. -Notes about Git ---------------- +### Notes about Git See: @@ -1332,7 +1288,7 @@ reducing the amount of deltas that need to be resolved when cloning). In particular, Git Work Trees are a useful feature that we might use in lbmk. Chinese users can't run lbmk -========================== +---------------------------- Libreboot has quite a few Chinese users, but the Chinese internet blocks access to several sites like github - and apparently the coreboot gerrit site is also @@ -1351,15 +1307,13 @@ copy of GitHub), but registration required a Chinese phone number, so I couldn't make an account. I was going to set it up for Libreboot. me cleaner is old -================= +----------------- From what I can tell, `me_cleaner` is not well-tested or supported on many newer Intel platforms. it shouldn't affect us in Libreboot for now, because we're not even past Haswell yet, but see for instance: - -Also: disablement ------------------ +### Also: disablement See: @@ -1368,7 +1322,7 @@ possible to completely disable the ME (remove it from the nor flash), with "almost no ill effects" according to the OP on that issue page. FAQ: cover USB fuzzing attacks -============================== +------------------------------ We write on the FAQ that SATA devices could potentially have DMA capability, but this has still not been proven, and it's probably not true in practise. @@ -1389,7 +1343,7 @@ So we should cover it, and talk about ways to mitigate the risk (e.g. disable USB input devices and networking devices, in the user's operating system). Auto-configure IFD region limits -================================ +-------------------------------- We currently configure the ME/BIOS region sizes manually, which is fine, but the way it's configured is very complicated. @@ -1429,12 +1383,12 @@ more; you can also read about them on the [lbmk maintenance manual](../docs/maintain/). Signed commits -============== +-------------- Start signing commits in Git. There's nothing more to say. Just do it. Secure suspend method (LUKS setups) -================================ +----------------------------------- See: @@ -1443,7 +1397,7 @@ keys are not stored in memory. It's worth looking into. We might be able to provide something automated in lbmk. USB keyboard in secondary payload -================================= +--------------------------------- We don't use secondary payloads defined here, but see: @@ -1452,7 +1406,7 @@ The issue page has info about the problem, and a workaround. Listed here for reference, in case this functionality is ever used in Libreboot. zstd in btrfs on grub -===================== +--------------------- Reported buggy by a user on IRC. TODO: test it @@ -1461,7 +1415,7 @@ information was given, other than it is "buggy". Reported on Libreboot 20231101. Optimise crossgcc space -======================= +----------------------- Re-use crossgcc from other coreboot trees, in other coreboot trees. We currently build several versions of it, but we probably only need one, maybe two. Audit @@ -1469,7 +1423,7 @@ this, across various coreboot trees. Specific coreboot trees (older ones) could just be patched if re-using crossgcc from a newer tree. T60 /proc/acpi/ibm/thermal -========================== +-------------------------- Reported by a user (unknown what LIbreboot version), this file is not available at all. It was later revealed that the user flashed a ROM image without microcode @@ -1477,7 +1431,7 @@ updates, triggering the AE18 errata. Thermal management is buggy without the updates, on that platform. Link CPU errata PDFs -===================== +-------------------- Libreboot makes reference to CPU errata in documentation, but without actually linking to the documents themselves. Link to the PDFs for all available CPUs, @@ -1487,7 +1441,7 @@ microcode updates - they also generally provide information for OS developers, to know how certain bugs should be mitigated, whenever possible. Macbook2,1 backlight controls -============================= +----------------------------- Was reported broken in linux 6.1, but works in 5.x @@ -1504,13 +1458,12 @@ coreboot can differ a bit from the vendor firmware on some boards. Not really a major issue, but it does need to be addressed. -TODO: test other platforms too -------------------------------- +### TODO: test other platforms too Test other platforms. Document CH341A variants -======================== +------------------------ All CH341A variants are garbage for ISP-based flashing, because of weak drive strength and poor board layout, also the WP/HOLD pins are often held @@ -1530,8 +1483,7 @@ convenient, because you don't have to mess with a breadboard or anything, because they already have ZIF sockets on them for DIP-8 ICs, on which you can also use adapters for SOIC-8, SOIC-16 and WSON-8. -E6400 VGA ROM (Nvidia) ----------------------- +### E6400 VGA ROM (Nvidia) See: @@ -1542,8 +1494,7 @@ Also: `e6400nvidia_4mb` works better on that setup, nouveau is actually stable in some cases. Check the E6400 page for libreboot, it lists issues with nouveau on those machines. -Test Crystalwell CPUs on T440p ------------------------------- +### Test Crystalwell CPUs on T440p Coreboot has support for these, but they have not been tested as far as I know, and no reports have been made for them by Libreboot users. These offer higher @@ -1551,8 +1502,7 @@ performance and the machine is already very nice. Ditto W541. -How to extract VBT data ------------------------ +### How to extract VBT data See: @@ -1573,7 +1523,7 @@ Example patch (merged in coreboot) that used this: Guix: use debootstrap -===================== +--------------------- GCC-Gnat is unavailable in Guix, due to the distro's requirement for sources to be bootstrapped. GCC-Gnat is also required, for building GCC-Gnat. We build @@ -1596,8 +1546,8 @@ In the logic for `./build dependencies distroname`, add an option for Guix, but on that one, make lbmk automatically set up debootstrap if it's being run for Guix (and it would detect whether the host actually is Guix System). -docs/build/clean.md -=================== +docs/build/clean*.*md +------------------- Add this section, telling the user (of lbmk specifically) how to clean various directories. This isn't handled universally, due to lbmk's design. When @@ -1619,15 +1569,14 @@ That is Libreboot's philosophy, that the user should never have to do more than is absolutely necessary when someonething could just as easily be done in code. E6400 security -============== +-------------- See other section on this page about write protection. Setting PR registers for write protection is a valid way to write protect on Dell E6400, and it would not be affected by the flash-unlock utilitiy. -SMM methods ------------ +### SMM methods Tere are two SMM write protect methods: @@ -1644,7 +1593,7 @@ method. ^ These notes were supplied by Nicholas Chin via IRC. PCI-E REBAR -=========== +----------- See: @@ -1664,7 +1613,7 @@ factory firmware does not and will not enable it (and the above link is for UEFI systems only). Shrink FSP size (Intel) -========================= +----------------------- See: @@ -1674,15 +1623,14 @@ but possible on other platforms. Thanks go to Nicholas Chin for linking this. -Chromebooks ------------ +### Chromebooks Especially useful here, if using the default setup. In the default setup, there are essentially three copies of the firmware in flash: a recovery image, an "A" image and a "B" image, according to Nicholas Chin. Compare factory/download neutered ME -==================================== +------------------------------------ Use tools and hexdump diffs to compare neutered Intel ME images, comparing ones neutered from factory.bin dump, and ones from @@ -1694,7 +1642,7 @@ doing this in osboot, and heads did it for years before we did, and they never had any problems). HP 820 G2 TPM -============= +------------- TODO: check that it can be upgraded to TPM 2.0 (default is 1.2). It's a SLB 9660 TPM @@ -1712,7 +1660,7 @@ And also this, straight from the horse's mouth: 4th SSD on T440p -================ +---------------- probably possible on w541 too @@ -1726,7 +1674,7 @@ be possible to use this in coreboot with linux/bsd todo: test it. need to actually solder it and test it. Disable ME device in devicetree -================================ +------------------------------- We neutered, but coreboot still enables MEI1 on many boards. @@ -1745,7 +1693,7 @@ we neuter anyway, so the ME interface is broken by default. Leaving it on in devicetree will result in a benign error message on linux dmesg. Switchable Graphics (Optimus) -============================= +----------------------------- Some of the Thinkpads we support have dual graphics, using Nvidia Optimus. It'd be nice to have. This coreboot patch enables it on Thinkpads: @@ -1759,7 +1707,7 @@ There are other patches on Gerit, related to Optimus too: This should be looked into. Overclocking (CPU and RAM) -========================= +-------------------------- Coreboot could be modified to support overclocking. Here is an example patch on gerrit (not merged in main): @@ -1786,8 +1734,7 @@ on certain machines. NOTE: Page is in Russian, use a translator. The type of people (enthusiasts) that like Libreboot would be into this sort of thing. It may be interesting to study, especially on haswell machines. -Haswell -------- +### Haswell @@ -1801,7 +1748,7 @@ haswell overclocking would be very useful to have, on libreboot machines, because you can get some still-very-nice CPUs for these machines. X60/T60 alloc magic is broken at 0x7b1aedf0: 0 -=============================================== +---------------------------------------------- See: @@ -1822,7 +1769,7 @@ to work around the issue, but it'll possibly be fixed before that release, otherwise afterward. Intel/AMD errata PDF -==================== +-------------------- List PDF links for Intel/AMD CPUs, provided by Intel/AMD, showing what is unpatched as of yet, in microcode updates. @@ -1834,24 +1781,22 @@ unpatched as of yet, in microcode updates. Links. interesting video -================= +----------------- Automate testing -================ +---------------- Even though there's lots of error handling, it's better to be paranoid than brick users' machines. -Unit tests ----------- +### Unit tests - Build time or separate? - me_cleaner -c: checks that ime was inserted and has valid signatures -CI --- +### CI Preferably self-hosted. Run tests for every commit. There could be tests of different size, and even a periodic nightly release could be done. @@ -1860,7 +1805,7 @@ Integrating this with an automated test stand would also be doable. At the very least, it would assure that the ROM images boot successfully. Board status -============ +------------ As the number of ports grows, it becomes harder to keep track of what works. Let's build a machine-readable repo documenting every release (or commit) @@ -1872,7 +1817,7 @@ to not install an unbootable (broken) ROM, and would inform users about any known problems and have meaningful options. haswell board bifircation -========================= +------------------------- @@ -1883,13 +1828,12 @@ also ec hacking on lenovo x230 -========================= +------------------------- DELL 7th gen -============ - +------------ 3050 micro is being worked on. @@ -1898,12 +1842,12 @@ DELL 7th gen 5050 models also. Dell 3020 -========= +--------- another haswell. different to 9020, but could be added. Dell 3050 Micro century byte -============================ +---------------------------- The `CONFIG_USE_LEGACY_8254_TIMER` and `CONFIG_USE_PC_CMOS_ALTCENTURY` options must both be diff --git a/site/template.de.include b/site/template.de.include index 33c1340..49f49e8 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -92,7 +92,7 @@ $return$ $endif$ $if(toc)$ $endif$ diff --git a/site/template.include b/site/template.include index cc0ef98..db1c152 100644 --- a/site/template.include +++ b/site/template.include @@ -92,7 +92,7 @@ $return$ $endif$ $if(toc)$ $endif$ diff --git a/site/template.it.include b/site/template.it.include index 8d831eb..4292fd5 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -92,7 +92,7 @@ $return$ $endif$ $if(toc)$ $endif$ diff --git a/site/template.uk.include b/site/template.uk.include index f77477d..77f03de 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -92,7 +92,7 @@ $return$ $endif$ $if(toc)$ $endif$ diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index fb7c740..f193ac8 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -92,7 +92,7 @@ $return$ $endif$ $if(toc)$ $endif$ From a1b60ec64f09449c875dad08fad177d73eeec906 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 18:09:25 +0000 Subject: [PATCH 291/399] make h2/3/4 text bigger Signed-off-by: Leah Rowe --- site/global.css | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/site/global.css b/site/global.css index af52c13..6b11740 100644 --- a/site/global.css +++ b/site/global.css @@ -108,6 +108,19 @@ html, ul, #TOC } } +h2 +{ + font-size: 2em; +} +h3 +{ + font-size: 1.8em; +} +h4 +{ + font-size:1.6em; +} + .f, .f * { position: fixed; From 8d6c16a4b181cb4c332247efc461167160d344ba Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 18:11:36 +0000 Subject: [PATCH 292/399] update meta description Signed-off-by: Leah Rowe --- site/template.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/template.include b/site/template.include index db1c152..e48de3b 100644 --- a/site/template.include +++ b/site/template.include @@ -2,7 +2,7 @@ - + From d57edfcc87a0576358d5e2f62f76d5973316d2c6 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 18:17:43 +0000 Subject: [PATCH 293/399] change the description again Signed-off-by: Leah Rowe --- site/template.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/template.include b/site/template.include index e48de3b..3e616e7 100644 --- a/site/template.include +++ b/site/template.include @@ -2,7 +2,7 @@ - + From a6d2f10fb92b907cd3168d4dd0589b8b2c4ebe4f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 18:20:24 +0000 Subject: [PATCH 294/399] say motherboard, not mainboard motherboard is what most people say Signed-off-by: Leah Rowe --- site/contrib.md | 2 +- site/docs/install/dell3050.md | 2 +- site/docs/install/dell7010.md | 2 +- site/docs/install/dell780.md | 4 +- site/docs/install/hp8300usdt.md | 2 +- site/docs/install/index.md | 8 +-- site/docs/install/ivy_has_common.md | 2 +- site/docs/install/kcma-d8.md | 4 +- site/docs/install/kgpe-d16.md | 2 +- site/docs/install/nvmutil.md | 2 +- site/docs/install/spi.md | 44 +++++++------- site/docs/install/t480.md | 4 +- site/docs/install/t60_unbrick.md | 4 +- site/docs/install/x60_unbrick.md | 4 +- site/docs/install/x60tablet_unbrick.md | 4 +- site/docs/linux/grub_hardening.md | 2 +- site/docs/maintain/index.md | 14 ++--- site/docs/maintain/porting.md | 6 +- site/docs/maintain/porting.uk.md | 2 +- site/docs/maintain/testing.md | 4 +- site/faq.md | 14 ++--- site/freedom-status.md | 12 ++-- site/index.de.md | 8 +-- site/index.fr.md | 4 +- site/index.it.md | 4 +- site/index.md | 8 +-- site/index.ru.md | 4 +- site/index.uk.md | 4 +- site/index.zh-cn.md | 4 +- site/news/10.md | 8 +-- site/news/audit2.md | 12 ++-- site/news/audit3.md | 10 ++-- site/news/audit4.md | 2 +- site/news/audit5.md | 16 ++--- site/news/audit6.md | 12 ++-- site/news/e6400nvidia.md | 2 +- site/news/freedom.md | 6 +- site/news/hp820g2.md | 2 +- site/news/libreboot20140911.md | 4 +- site/news/libreboot20141015.md | 4 +- site/news/libreboot20150124.md | 4 +- site/news/libreboot20150126.md | 4 +- site/news/libreboot20150208.md | 4 +- site/news/libreboot20150518.md | 4 +- site/news/libreboot20160818.md | 4 +- site/news/libreboot20160907.md | 2 +- site/news/libreboot20210522.md | 76 ++++++++++++------------ site/news/libreboot20221214.md | 2 +- site/news/libreboot20230413.md | 6 +- site/news/libreboot20230423.md | 6 +- site/news/libreboot20230625.md | 16 ++--- site/news/libreboot20231021.md | 16 ++--- site/news/libreboot20240126.md | 10 ++-- site/news/libreboot20240225.md | 6 +- site/news/libreboot20240504.md | 10 ++-- site/news/libreboot20240612.md | 18 +++--- site/news/libreboot20241008.md | 18 +++--- site/news/libreboot20241206.Revisions.md | 2 +- site/news/libreboot20241206.md | 10 ++-- site/news/microcode.md | 18 +++--- site/news/policy.de.md | 16 ++--- site/news/policy.md | 16 ++--- site/news/policy.uk.md | 4 +- site/news/ports202402.md | 2 +- site/news/safety.md | 8 +-- site/news/update202308.md | 2 +- site/news/x201.md | 2 +- site/other.md | 2 +- site/tasks/index.md | 34 +++++------ 69 files changed, 290 insertions(+), 290 deletions(-) diff --git a/site/contrib.md b/site/contrib.md index c9f3872..bb6355f 100644 --- a/site/contrib.md +++ b/site/contrib.md @@ -663,7 +663,7 @@ lot about hardware. Swift Geek also did some upstream development on GRUB. Swift Geek has provided technical advice on numerous occasions, to Leah Rowe, and helped her to improve her soldering skills in addition to teaching her some repair skills, to the point where she can now repair most faults on -ThinkPad mainboards (while looking at the schematics and boardview). +ThinkPad motherboards (while looking at the schematics and boardview). Swiftgeek left the project in March 2021. I, Leah Rowe, wish him all the best in his endeavours, and I'm very grateful to his numerous contributions over the diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index bd033e3..e703be0 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -91,7 +91,7 @@ The build target, when building from source, is thus: Mate Kukri's *deguard* utility disables the Intel Boot Guard on this machine. Libreboot uses this by default, along with `me_cleaner` to provide a neutered ME setup; unlike on other platforms, arbitrary code execution is also -possible inside the ME on this mainboard, giving it much higher potential for +possible inside the ME on this motherboard, giving it much higher potential for software freedom in the future. Issues diff --git a/site/docs/install/dell7010.md b/site/docs/install/dell7010.md index acf00b6..564046a 100644 --- a/site/docs/install/dell7010.md +++ b/site/docs/install/dell7010.md @@ -78,7 +78,7 @@ The build target, when building from source, is thus: ./mk -b coreboot dell7010sff_12mb -NOTE: The same 7010 SFF image also works on 9010 SFF. It's the same mainboard. +NOTE: The same 7010 SFF image also works on 9010 SFF. It's the same motherboard. Alternatively, you can use one of Libreboot's pre-compiled release images. diff --git a/site/docs/install/dell780.md b/site/docs/install/dell780.md index 14bbcf6..28a52a9 100644 --- a/site/docs/install/dell780.md +++ b/site/docs/install/dell780.md @@ -83,9 +83,9 @@ Alternatively, you can use release images instead of compiling from source. ### 100% FREE / OPEN SOURCE! -This mainboard is entirely free software in the main boot flash. It is using +This motherboard is entirely free software in the main boot flash. It is using the Intel X4X / ICH10 platform, same as on the already supported -Gigabyte GA-G41M-ES2L mainboard. +Gigabyte GA-G41M-ES2L motherboard. Install Libreboot ----------------- diff --git a/site/docs/install/hp8300usdt.md b/site/docs/install/hp8300usdt.md index d18444a..3656c51 100644 --- a/site/docs/install/hp8300usdt.md +++ b/site/docs/install/hp8300usdt.md @@ -69,7 +69,7 @@ Install Libreboot ----------------- These next sections will teach you how to install Libreboot on your -HP Elite 8300 USDT mainboard. +HP Elite 8300 USDT motherboard. ### Internal flashing diff --git a/site/docs/install/index.md b/site/docs/install/index.md index 18afa26..d5fb175 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -202,7 +202,7 @@ example, they might fix power issues that could then enhance battery life. See: Otherwise, check the Lenovo website to find the update utility for your -mainboard. +motherboard. ### HP EliteBooks @@ -257,7 +257,7 @@ flash internally. If that is the case, you must [flash externally](spi.md). ### Updating an existing installation -Unless otherwise stated, in sections pertaining to each mainboard below, +Unless otherwise stated, in sections pertaining to each motherboard below, an existing Libreboot installation can be updated via internal flashing, without any special steps; simply follow the general internal flashing guide, in the final section further down this page. @@ -269,7 +269,7 @@ If you currently have the factory firmware, you probably need to flash externally; on *some* machines, internal flashing is possible, usually with special steps required that differ from updating an existing installation. -The next sections will pertain to specific mainboards, where indicated, +The next sections will pertain to specific motherboards, where indicated, followed by general internal flashing instructions where applicable. ### HP EliteBook 820 G2 (internal and external) @@ -590,7 +590,7 @@ Install via host CPU (internal flashing) NOTE: This mainly applies to the x86 machines. Please check other sections listed above, to see if there is anything -pertaining to your mainboard. Internal flashing means that you boot Linux or +pertaining to your motherboard. Internal flashing means that you boot Linux or BSD on the target machine, and run `flashprog` there, flashing the machine directly. diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 5ddc40b..8382c39 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -14,7 +14,7 @@ Policy](../../news/policy.md) and [Freedom Status](../../freedom-status.md) pages. **PLEASE MAKE SURE you read and follow the instructions on this page, prior -to flashing Libreboot, if required for your mainboard; failure to heed this +to flashing Libreboot, if required for your motherboard; failure to heed this warning can and will result in a soft-brick, which would then necessitate recovery via [external flashing](spi.md) - regardless, you are advised to also read the external flashing guide just in caes, and have an external diff --git a/site/docs/install/kcma-d8.md b/site/docs/install/kcma-d8.md index f3952ab..b2bf0ff 100644 --- a/site/docs/install/kcma-d8.md +++ b/site/docs/install/kcma-d8.md @@ -116,7 +116,7 @@ Don't use it. It uses proprietary firmware and adds a backdoor (remote out-of-band management chip, similar to the [Intel Management Engine](../../faq.md#intelme). Fortunately, the firmware is unsigned (possible to replace) and physically separate from the -mainboard since it's on the add-on module, which you don't have to +motherboard since it's on the add-on module, which you don't have to install. Flash chips {#flashchips} @@ -143,7 +143,7 @@ Only text-mode is known to work, but linux(kernel) can initialize the framebuffer display (if it has KMS - kernel mode setting). NOTE: This section relates to the onboard ASpeed GPU. You *can* use an add-on -PCI-E GPU in one of the available slots on the mainboard. Nvidia GTX 780 cards +PCI-E GPU in one of the available slots on the motherboard. Nvidia GTX 780 cards are what libreboot recommends; it has excellent support in Nouveau (free Linux kernel / mesa driver for Nvidia cards) and generally works well; however, the performance won't be as high in Nouveau, compared to the non-free Nvidia driver diff --git a/site/docs/install/kgpe-d16.md b/site/docs/install/kgpe-d16.md index 51ae60e..88f262d 100644 --- a/site/docs/install/kgpe-d16.md +++ b/site/docs/install/kgpe-d16.md @@ -56,7 +56,7 @@ Don't use it. It uses proprietary firmware and adds a backdoor (remote out-of-band management chip, similar to the [Intel Management Engine](../../faq.md#intelme). Fortunately, the firmware is unsigned (possibly to replace) and physically separate from the -mainboard since it's on the add-on module, which you don't have to +motherboard since it's on the add-on module, which you don't have to install. Flash chips {#flashchips} diff --git a/site/docs/install/nvmutil.md b/site/docs/install/nvmutil.md index f131dfa..2c22e03 100644 --- a/site/docs/install/nvmutil.md +++ b/site/docs/install/nvmutil.md @@ -73,7 +73,7 @@ handling is provided, later in this document. The `restore` option restores the original one. The command works by using a reference GbE image file present in Libreboot's build system, for the given -mainboard. +motherboard. How to download newer versions ------------------------------ diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index 7ac8bc4..9176ccd 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -95,7 +95,7 @@ SPI flash, using an on-board SPI programmer (which all boards have). You do this from Linux, with flashprog. *This* guide that you're reading now is for using an *external* programmer. It -is called *external* because it's not the *internal* one on your mainboard. +is called *external* because it's not the *internal* one on your motherboard. Raspberry Pi Pico ----------------- @@ -247,12 +247,12 @@ build up and possibly fire (and definitely damaged circuitry). On SOIC8, pin 3 is WP and 4 is GND, so a direct 3.3v connection there is quite hazardous for that reason; all the more reason to use a pull-up resistor.** -The mainboard that you want to flash (if using e.g. pomona clip) will probably +The motherboard that you want to flash (if using e.g. pomona clip) will probably have pull-up resistors on it already for WP/HOLD, so simply cutting WP/HOLD on the CH341A would also be acceptable. The pull-up resistors that you place (in such a mod) on the CH341A are only useful if you also want to flash chips in the ZIF socket. If pull-up resistors exist both on e.g. the laptop -mainboard and on the CH341A, it just means the equivalent series resistance +motherboard and on the CH341A, it just means the equivalent series resistance will be of the two resistors (on each line) in parallel. If we assume that a laptop is likely to have a resistor size of ~3.3k for pull-ups, then a value of ~5.6k ohms on the CH341A side seems reasonable. @@ -789,7 +789,7 @@ voltage range is between 2.7V and 3.6V, but 3.3V is the most ideal level). DO NOT connect more than 1 DC power source to your flash chip either! Mixing voltages like that can easily cause damage to your equipment, and to -your chip/mainboard. +your chip/motherboard. ### MISO/MOSI/CS/CLK lines @@ -801,10 +801,10 @@ connected via such resistors, directly to the Southbridge chipset. ### ISP programming and VCC diode ISP means in-system programming. It's when you flash a chip that is already -mounted to the mainboard of your computer that you wish to install libreboot +mounted to the motherboard of your computer that you wish to install libreboot on. -It may be beneficial to modify the mainboard so that the SPI flash is powered +It may be beneficial to modify the motherboard so that the SPI flash is powered (on the VCC pin) through a diode, but please note: a diode will cause a voltage drop. The tolerated range for a chip expecting 3.3V VCC is usually around 2.7V to 3.6V DC, and the drop may cause the voltage to fall outside that. If you do @@ -824,7 +824,7 @@ other components on that board, which share the same power rail. Further, ensure that the pull-up resistors for WP/HOLD are *only* connected to the side of the diode that has continuity with the VCC pin (this is important because if they're not, they won't be held high while doing ISP flashing, even if they're -still held high when the mainboard is fully powered on). +still held high when the motherboard is fully powered on). Furthermore: ensure that the SPI flash is operating at the appropriate supply voltage (2.7V to 3.6V for a 3.3V chip) when fully powered on, after installing @@ -835,7 +835,7 @@ the SOIC8/WSON8 if it uses that, and replace with an IC socket (for SOIC8, WSON8 or DIP8, whatever you want), because then you could easily just insert the flash into a breadboard when flashing. -TODO: Make a page on libreboot.org, showing how to do this on all mainboards +TODO: Make a page on libreboot.org, showing how to do this on all motherboards supported by libreboot. ### GPIO pins on BeagleBone Black (BBB) @@ -886,7 +886,7 @@ use pull-up resistors on those (see notes below), and decoupling capacitor on pin 8 (VCC). NOTE: On X60/T60 thinkpads, don't connect pin 8. Instead, plug in your the PSU -to the charging port on your mainboard, but do not power on the mainboard. This +to the charging port on your motherboard, but do not power on the motherboard. This will provide a stable 3.3V voltage, with adequate current levels. On those laptops, this is necessary because the flash shares a common 3.3V DC rail with many other ICs that all draw quite a lot of current. @@ -932,10 +932,10 @@ pin 2 (VCC). ### Pull-up resistors and decoupling capacitors **Do this for chips mounted to a breadboard. Ignore this section if you're -flashing a chip that is already soldered to a mainboard.** +flashing a chip that is already soldered to a motherboard.** This section is only relevant if you're flashing a new chip that is not yet -mounted to a mainboard. You need pull-up resistors on the WP and HOLD pins, +mounted to a motherboard. You need pull-up resistors on the WP and HOLD pins, and decoupling capacitors on the VCC pin. If the chip is already mounted to a board, whether soldered or in a socket, these capacitors and resistors will probably already exist on the board and you can just flash it without pulling @@ -952,11 +952,11 @@ The best way is as follows: SOIC8/WSON8/DIP8: pin 3 and 7 must be held to a high logic state, which means that each pin has its own pull-up resistor to VCC (from the voltage plane that pin 8 connects to); anything from 1Kohm to 10Kohm will do. When you're flashing -a chip that's already on a laptop/desktop/server mainboard, pin 3 and 7 are +a chip that's already on a laptop/desktop/server motherboard, pin 3 and 7 are likely already held high, so you don't need to bother. SOIC8/WSON8/DIP8: pin 8, which is VCC, will already have decoupling capacitors on it -if the chip is on a mainboard, but lone chip flashing means that these capacitors +if the chip is on a motherboard, but lone chip flashing means that these capacitors do not exist. A capacitor passes AC but blocks DC. Due to electromagnetic indunctance, and RF noise from high-speed switching ICs, a DC voltage line isn't actually straight (when viewed on an oscilloscope), but actually has low voltage @@ -977,11 +977,11 @@ WP/HOLD are not pin 3/7 like above, but instead pins 1 and 9, so wire your pull-up resistors on those. VCC on SOIC16 is pin 2, so wire your decoupling capacitors up on that. -### SOIC8/WSON8/DIP8/SOIC16 not mounted to a mainboard +### SOIC8/WSON8/DIP8/SOIC16 not mounted to a motherboard If your system has lower capacity SPI flash, you can upgrade. On *most* systems, SPI flash is memory mapped and the maximum (in practise) that you can use is a -16MiB chip. For example, KGPE-D16 and KCMA-D8 mainboards in libreboot have +16MiB chip. For example, KGPE-D16 and KCMA-D8 motherboards in libreboot have 2MiB flash by default, but you can easily upgrade these. Another example is the ThinkPad X200S, X200 Tablet and T400S, all of which have WSON8 where the best course of action is to replace it with a SOIC8 flash chip. @@ -1018,7 +1018,7 @@ video, but for WSON8. Sometimes they are called DFN8 or QFN8 sockets. Get one that is 1.27mm pitch. If you're flashing/dumping a lone WSON8, get a WSON8/QFN8/DFN8 socket (1.27mm -pitch) and mount it to a breadboard for flashing. If your mainboard's landing +pitch) and mount it to a breadboard for flashing. If your motherboard's landing pads for the flash IC can take a SOIC8, we recommend that you use a SOIC8 instead because a test clip is possible later on when you wish to re-flash it, however you may be dealing with a board where replacing existing WSON8 with @@ -1049,7 +1049,7 @@ and good 60/40 or 63/37 leaded solder (don't use lead-free): ![](https://av.libreboot.org/dip8/adapter.jpg) ![](https://av.libreboot.org/dip8/sop8todip8.jpg) -### SOIC8/SOIC16 soldered to a mainboard +### SOIC8/SOIC16 soldered to a motherboard This is an example of *in-system programming* or *ISP* for short. @@ -1057,16 +1057,16 @@ SOIC8:\ Pomona 5250 is a SOIC8 test clip. There are others available, but this is the best one. Use that. Use the SOIC8 diagram (see above) to wire up your Raspberry Pi. -Your mainboard likely already pulls WP/HOLD (pins 3 and 7) high, so don't +Your motherboard likely already pulls WP/HOLD (pins 3 and 7) high, so don't connect these. VCC on SOIC8's pin 8 probably already has decoupling -capacitors on the mainboard, so just hook that up without using a capacitor. +capacitors on the motherboard, so just hook that up without using a capacitor. SOIC16:\ Pomona 5252 is a SOIC16 test clip. There are others available, but this is the best one. Use that. Use the SOIC16 diagram (see above) to wire up your Raspberry Pi. WP/HOLD pins are pins 1 and 9, and likely already held high, so no pull-up resistors needed. You do not need a decoupling capacitor for pin 2 (VCC) either -because the mainboard will already have one. +because the motherboard will already have one. Here is an example of a test clip connected for SOIC16:\ ![](https://av.libreboot.org/rpi/0002.jpg) @@ -1074,9 +1074,9 @@ Here is an example of a test clip connected for SOIC16:\ And here is an example photo for SOIC8:\ ![](https://av.libreboot.org/x60/th_bbb_flashing.jpg) -### DIP8 soldered to the mainboard +### DIP8 soldered to the motherboard -It is extremely cursed for DIP8 to be soldered directly to the mainboard. It is +It is extremely cursed for DIP8 to be soldered directly to the motherboard. It is usually mounted to a socket. The pins are large enough that you can just use test hooks to wire up your chip diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index ecc4351..8128f2a 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -129,7 +129,7 @@ Intel graphics, internal screen, ethernet, USB, WLAN, HDA verbs (e.g. headphone jack), S3 suspend/resume, M2 NVMe SSDs and SATA, B+M key NVMe SSDs in WWAN slot, **all works perfectly**. External video outputs and webcam also work. Microphone works, line-out works... everything works. UART also available via line-out jack -(jumpers required on the mainboard). +(jumpers required on the motherboard). There *are* a few minor exceptions as to what works; this will be covered in other sections of this page. This port is *almost* perfect, but with some caveats. @@ -445,7 +445,7 @@ service manual online. Otherwise, observe: ThinkPad T480 underside chassis Remove all screws, and you can gently pry off the lower chassis and remove, -which then allows you to see the inner mainboard: +which then allows you to see the inner motherboard: ThinkPad T480 PCB diff --git a/site/docs/install/t60_unbrick.md b/site/docs/install/t60_unbrick.md index 14f8027..85b6ca3 100644 --- a/site/docs/install/t60_unbrick.md +++ b/site/docs/install/t60_unbrick.md @@ -100,10 +100,10 @@ Refer to the external flashing guide: [Externally rewrite 25xx NOR flash via SPI protocol](spi.md) NOTE: Do not use the 3.3v rail from your SPI programmer. Leave that disconnected. -For 3.3v, plug your charger into the mainboard (but do not power on the mainboard) +For 3.3v, plug your charger into the motherboard (but do not power on the motherboard) when the clip is connected. Before removing the clip, disconnect the charger. This will provide adequate 3.3v DC at correct current levels. The SPI flash on an -X60 shares a common 3.3V rail with many other components on the mainboard, +X60 shares a common 3.3V rail with many other components on the motherboard, which all draw a lot of current, more than your flasher can provide. Example command: diff --git a/site/docs/install/x60_unbrick.md b/site/docs/install/x60_unbrick.md index 3ec2b92..049c12d 100644 --- a/site/docs/install/x60_unbrick.md +++ b/site/docs/install/x60_unbrick.md @@ -84,10 +84,10 @@ Refer to the following guide:\ [Externally rewrite 25xx NOR flash via SPI protocol](spi.md) NOTE: Do not use the 3.3v rail from your raspberry pi. Leave that disconnected. -For 3.3v, plug your charger into the mainboard (but do not power on the mainboard) +For 3.3v, plug your charger into the motherboard (but do not power on the motherboard) when the clip is connected. Before removing the clip, disconnect the charger. This will provide adequate 3.3v DC at correct current levels. The SPI flash on an -X60 shares a common 3.3V rail with many other components on the mainboard, +X60 shares a common 3.3V rail with many other components on the motherboard, which all draw a lot of current, more than your programmer can provide. When you're finished flashing, remove the programmer and put it away somewhere. diff --git a/site/docs/install/x60tablet_unbrick.md b/site/docs/install/x60tablet_unbrick.md index 13a29ca..19bea73 100644 --- a/site/docs/install/x60tablet_unbrick.md +++ b/site/docs/install/x60tablet_unbrick.md @@ -64,10 +64,10 @@ Refer to the external flashing guide: [Externally rewrite 25xx NOR flash via SPI protocol](spi.md) NOTE: Do not use the 3.3v rail from your SPI programmer. Leave that disconnected. -For 3.3v, plug your charger into the mainboard (but do not power on the mainboard) +For 3.3v, plug your charger into the motherboard (but do not power on the motherboard) when the clip is connected. Before removing the clip, disconnect the charger. This will provide adequate 3.3v DC at correct current levels. The SPI flash on an -X60 Tablet shares a common 3.3V rail with many other components on the mainboard, +X60 Tablet shares a common 3.3V rail with many other components on the motherboard, which all draw a lot of current, more than most flashers can provide. Reverse the steps to re-assemble your system, after you've flashed the chip. diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index 00875d6..c57ddab 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -125,7 +125,7 @@ The simplest way is to just do this: If you did the step before, to compile `cbfstool`, you can find ifdtool in the `elf/` directory, e.g. `elf/ifdtool/default/ifdtool`. Use the ifdtool -version matching the coreboot tree for your mainboard. +version matching the coreboot tree for your motherboard. Note that this only works for Intel-based systems that use an Intel Flash Descriptor, which is actually most Intel systems that Libreboot supports. diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 05ecb62..4c617db 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -121,7 +121,7 @@ entire release archives, e.g. quad-core Haswell CPU or better. NOTE: x86 boards require an *x86_64* host CPU with appropriate host toolchains and libraries. We don't yet cross-compile x86 payloads. -NOTE2: ARM64 mainboards *are* cross compiled, so you can build for AArch64 +NOTE2: ARM64 motherboards *are* cross compiled, so you can build for AArch64 machines quite easily, from x86 or ARM64 machines. NOTE3: *32-bit* x86 (i686) machines can be used to compile Libreboot, but @@ -367,14 +367,14 @@ to extract SCH5545 EC (Environment Control) firmware. Please also visit: Coreboot is the main boot firmware, providing hardware initialisation. Libreboot -makes extensive use of coreboot, on supported mainboards. +makes extensive use of coreboot, on supported motherboards. Coreboot trees go here. Libreboot's build system does not simply use one tree, or multiple branches in the same tree; entirely separate directories are created, for each revision of coreboot used, each able to have its own patches. -These can then be re-use appropriately, per mainboard. For example: +These can then be re-use appropriately, per motherboard. For example: -* `src/coreboot/default` is used by most mainboards. +* `src/coreboot/default` is used by most motherboards. * `src/coreboot/cros` is used by cros devices. This may be less efficient on disk usage, but it simplifies the logic greatly. @@ -1129,7 +1129,7 @@ which SeaBIOS revision (from Git) is to be used, when compiling SeaBIOS images. ### config/u-boot/ -This directory contains configuration, patches and so on, for each mainboard +This directory contains configuration, patches and so on, for each motherboard that can use U-Boot as a payload in the `lbmk` build system. U-Boot doesn't yet have reliable generic configurations that can work across all coreboot boards (per-architecture), so these are used to build it per-board. @@ -1142,7 +1142,7 @@ a location under `elf/u-boot/`. #### config/u-boot/TREENAME/ -Each `TREENAME` directory defines configuration for a corresponding mainboard. +Each `TREENAME` directory defines configuration for a corresponding motherboard. It doesn't actually have to be for a board; it can also be used to just define a U-Boot revision, with patches and so on. To enable use as a payload in ROM images, this must have the same name as its `config/coreboot/TREENAME/` @@ -1375,7 +1375,7 @@ by lbmk is handled by the functions in this file. This was previously a separate script. The download logic was removed, and now the logic under `include/vendor.sh` is used for downloads. This file now only contains those functions used for extraction of MRC files from Google -Chromebook images, currently only used for Haswell mainboards. +Chromebook images, currently only used for Haswell motherboards. This is an include, used by `include/vendor.sh`, but it's here in this file because the vendor download script is GPLv3-only, while the MRC diff --git a/site/docs/maintain/porting.md b/site/docs/maintain/porting.md index dff145f..a0b6b4d 100644 --- a/site/docs/maintain/porting.md +++ b/site/docs/maintain/porting.md @@ -1,5 +1,5 @@ --- -title: Porting guide for new mainboards +title: Porting guide for new motherboards ... **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) @@ -77,8 +77,8 @@ You can then easily modify the existing coreboot configs for you board via lbmk. This script will provide a curses interface through which you can easily modify the necessary variables and settings. -The most important thing to change is `Mainboard.` -You must make sure that the mainboard definition in this config matches `board.` +The most important thing to change is `Motherboard.` +You must make sure that the motherboard definition in this config matches `board.` For example, you would want to change lenovo/t420 to lenovo/t420s. Selecting `exit` in the curses interface will prompt you to ask if you want to save your changes, make sure to answer yes. diff --git a/site/docs/maintain/porting.uk.md b/site/docs/maintain/porting.uk.md index e33022a..e390d8e 100644 --- a/site/docs/maintain/porting.uk.md +++ b/site/docs/maintain/porting.uk.md @@ -70,7 +70,7 @@ libreboot як `плата.` Цей сценарій надать інтерфейс curses, через який ви можете легко модифікувати потрібні змінні та налаштування. -Найбліьш важлива річ - це змінити `Материнську плату (Mainboard).` +Найбліьш важлива річ - це змінити `Материнську плату (Motherboard).` Ви мусити переконатись, що визначення материнської плати в цій конфігурації відповідає `платі.` Наприклад, ви би хотіли змінити lenovo/t420 на lenovo/t420s. Вибір `exit` в інтерфейсі curses виведе вам пропозицію зберегти ваші diff --git a/site/docs/maintain/testing.md b/site/docs/maintain/testing.md index aaa680a..3264170 100644 --- a/site/docs/maintain/testing.md +++ b/site/docs/maintain/testing.md @@ -35,8 +35,8 @@ maintainer or multiple maintainers; more is better. Please read the following sections to understand the specifics of maintaining a board. -NOTE: If there are already testers for a given mainboard, *you* can still -provide testing for the same mainboard if that's what you have. The more the +NOTE: If there are already testers for a given motherboard, *you* can still +provide testing for the same motherboard if that's what you have. The more the merrier! Be Contactable diff --git a/site/faq.md b/site/faq.md index f1e7d13..2109de0 100644 --- a/site/faq.md +++ b/site/faq.md @@ -42,7 +42,7 @@ Refer to the [lbmk maintenance manual](docs/maintain/). ### Do not use CH341A! -This SPI flasher will damage your chip, and the mainboard that it is connected +This SPI flasher will damage your chip, and the motherboard that it is connected to. Read the notes about CH341A on [docs/install/spi.md](docs/install/spi.md) to @@ -260,8 +260,8 @@ the CPU, and prevent the CPU from executing boot firmware that isn't signed with their private key. This means that ***coreboot and libreboot are impossible to port*** to such PCs, without the OEM's private signing key. Note that systems assembled from separately purchased -mainboard and CPU parts are unaffected, since the vendor of the -mainboard (on which the boot firmware is stored) can't possibly affect +motherboard and CPU parts are unaffected, since the vendor of the +motherboard (on which the boot firmware is stored) can't possibly affect the public key stored on the CPU. ME firmware versions 4.0 and later (Intel 4 Series and later chipsets) @@ -564,7 +564,7 @@ re-flash it. ### How do I pad a ROM before flashing? It is advisable to simply use a larger ROM image. This section was written -mostly for ASUS KCMA-D8 and KGPE-D16 mainboards, where previously we only +mostly for ASUS KCMA-D8 and KGPE-D16 motherboards, where previously we only provided 2MiB ROM images in libreboot, but we now provide 16MiB ROM images. Other sizes are not provided because in practise, someone upgrading one of these chips will just use a 16MiB one. Larger sizes are available, but 16MiB @@ -646,7 +646,7 @@ on Void Linux (ThinkPad T480), Linux (or modprobe) may fail to load modprobe: ERROR: could not insert 'thinkpad_acpi': "No such device" ``` -It is suspected that at least these mainboards are affected: +It is suspected that at least these motherboards are affected: * [ThinkPad W541](docs/install/w541_external.md) * [ThinkPad T440p](docs/install/t440p_external.md) @@ -991,12 +991,12 @@ What level of software freedom does libreboot give me? Please read the [libreboot binary blob minimalisation policy](news/policy.md). Please also read: -[Software and hardware freedom status for each mainboard supported by +[Software and hardware freedom status for each motherboard supported by Libreboot](software-freedom.md) The libreboot firmware provides host hardware initialisation inside ROM files, that can be written to NOR flash, but on many systems there exist -a lot more small computers on the mainboard running blob firmware. +a lot more small computers on the motherboard running blob firmware. Some of them are not practicable to replace due to being located on Mask ROM. Most laptops have EC (Embedded Controller) firmware, for example. diff --git a/site/freedom-status.md b/site/freedom-status.md index 2568f92..e176e21 100644 --- a/site/freedom-status.md +++ b/site/freedom-status.md @@ -1,5 +1,5 @@ --- -title: Software and hardware freedom status for each mainboard supported by Libreboot +title: Software and hardware freedom status for each motherboard supported by Libreboot x-toc-enable: true ... @@ -18,8 +18,8 @@ all) platforms, coreboot *requires* certain [vendor files](https://en.wikipedia.org/wiki/Binary_blob) for things like raminit. *All* boards currently supported by Libreboot can be initialised entirely with *free*, *libre* or *open source* code from *coreboot* -itself, because Libreboot currently only focuses on such mainboards. Libreboot's -goal is to eventually support *all* mainboards from coreboot. +itself, because Libreboot currently only focuses on such motherboards. Libreboot's +goal is to eventually support *all* motherboards from coreboot. A more *pragmatic* [binary blob reduction policy](news/policy.md) was adopted by Libreboot during November 2022, as part of an ongoing campaign to support @@ -65,7 +65,7 @@ Intel platforms ### Descriptor vs descriptorless setup -Libreboot supports several mainboards using Intel platforms. Of these, there +Libreboot supports several motherboards using Intel platforms. Of these, there are essentially two class of machine (for the purposes of this article): * Descriptorless configuration @@ -183,7 +183,7 @@ documentation for this, but it has been tested. Example: Dual Intel/Nvidia graphics on some ivybridge or haswell thinkpads. For *add-on* GPUs, SeaBIOS (payload) can typically scan a VGA ROM present on -the card and execute it. This has been tested on certain desktop mainboards +the card and execute it. This has been tested on certain desktop motherboards that Libreboot supports, and works just fine; Libreboot does not need to handle these files at all. @@ -205,7 +205,7 @@ and on Skylake/newer, FSP-M is used. ARM platforms (chromebooks) --------------------------- -Mostly free software, except for the requirement on `daisy` and `peach` mainboards +Mostly free software, except for the requirement on `daisy` and `peach` motherboards to include BL1 bootloader files from the vendor. These are: * HP Chromebook 11 G1 (daisy-spring) **(board removed from Libreboot, due to diff --git a/site/index.de.md b/site/index.de.md index f9e96a8..2fe49ce 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -27,8 +27,8 @@ am 6 December 2024. Siehe auch: [Libreboot 20241206 release announcement](news/libreboot20241206.md).** Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 -Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* -on ARM64(Aarch64) mainboards. +Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight UEFI boot implementation, which can boot many Linux distros and BSD systems. @@ -104,13 +104,13 @@ Wie kann ich helfen -Der beste Weg wie Du helfen kannst, ist das *hinzufügen* neuer Mainboards in +Der beste Weg wie Du helfen kannst, ist das *hinzufügen* neuer Motherboards in Libreboot, indem Du eine Konfiguration zur Verfügung stellst. Alles was von Coreboot unterstützt wird kann auch in Libreboot integriert werden, mithilfe von ROM Images in den Veröffentlichungen. Siehe auch: * [Bewerbe dich um Boards zu testen oder zu pflegen](docs/maintain/testing.md) -* [Anleitung um neue Mainboards hinzuzufügen](docs/maintain/porting.md) +* [Anleitung um neue Motherboards hinzuzufügen](docs/maintain/porting.md) * [Libreboot Build System Dokumentation](docs/maintain/) Zudem ist da noch Pflege des Build Systems (siehe oben), sowie *Dokumentation* diff --git a/site/index.fr.md b/site/index.fr.md index 8a220b0..460cbb8 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -17,8 +17,8 @@ Leah Rowe, fondateur et principal développeur du projet Libreboot, est égaleme le 6 December 2024.** Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 -Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* -on ARM64(Aarch64) mainboards. +Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight UEFI boot implementation, which can boot many Linux distros and BSD systems. diff --git a/site/index.it.md b/site/index.it.md index 6c934e0..042f9da 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -24,8 +24,8 @@ Minifree; sales provide funding for Libreboot. Vedi: [Libreboot 20241206 annuncio di rilascio](news/libreboot20241206.md).** Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 -Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* -on ARM64(Aarch64) mainboards. +Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight UEFI boot implementation, which can boot many Linux distros and BSD systems. diff --git a/site/index.md b/site/index.md index 4640701..6b90aca 100644 --- a/site/index.md +++ b/site/index.md @@ -49,8 +49,8 @@ the boot flash; coreboot works with many payloads, which boot your operating system e.g. Linux/BSD. Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 -Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* -on ARM64(Aarch64) mainboards. +Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight UEFI boot implementation. Libreboot's [design](docs/maintain/) incorporates all @@ -148,12 +148,12 @@ you could pick one of these tasks and work on it. -The *single* biggest way you can help is to *add* new mainboards in Libreboot, +The *single* biggest way you can help is to *add* new motherboards in Libreboot, by submitting a config. Anything coreboot supports can be integrated in Libreboot, with ROM images provided in releases. See: * [Apply to become a board maintainer/tester](docs/maintain/testing.md) -* [Porting guide for new mainboards](docs/maintain/porting.md) +* [Porting guide for new motherboards](docs/maintain/porting.md) * [Libreboot build system documentation](docs/maintain/) After that, there is build system maintenance (see above), and *documentation* diff --git a/site/index.ru.md b/site/index.ru.md index 567c9ac..56fdd19 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -14,8 +14,8 @@ x-toc-enable: true *Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://en.wikipedia.org/wiki/Right_to_repair) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 -Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* -on ARM64(Aarch64) mainboards. +Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight UEFI boot implementation, which can boot many Linux distros and BSD systems. diff --git a/site/index.uk.md b/site/index.uk.md index 1ab6118..e625718 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -25,8 +25,8 @@ Minifree; sales provide funding for Libreboot. Дивіться: [Оголошення про випуск Libreboot 20241206](news/libreboot20241206.md).** Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 -Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* -on ARM64(Aarch64) mainboards. +Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight UEFI boot implementation, which can boot many Linux distros and BSD systems. diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index ac0bac5..a9386e8 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -15,8 +15,8 @@ Libreboot 的创始人和主要开发者,Leah Rowe,也是 Minifree 的所有 **新版发布: 最新版本 Libreboot 20241206 已在 2024 年 12 月 06 日发布。详见: [Libreboot 20241206 发布公告](news/libreboot20241206.md).** Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 -Intel/AMD mainboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* -on ARM64(Aarch64) mainboards. +Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight UEFI boot implementation, which can boot many Linux distros and BSD systems. diff --git a/site/news/10.md b/site/news/10.md index b60b371..9402cb3 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -982,15 +982,15 @@ project. Osboot greatly improved the configurability of everything. For example, it enabled you to more easily mix and match different payload combinations per -mainboard, whereas the Libreboot 20160907 design only allowed *one* payload +motherboard, whereas the Libreboot 20160907 design only allowed *one* payload type, per target, and it contained a lot of target-specific logic that was hardcoded, baked into the build system's design - even in December 2020 when osboot started, I envisioned that it would one day support many more boards, -whereas Libreboot only supported like 15 mainboards in 2016. +whereas Libreboot only supported like 15 motherboards in 2016. The osboot redesign, relative to Libreboot 20160907, made handling of source tree revisions and patches much cleaner, especially for multi-tree projects -like coreboot, where multiple revisions could be used depending on mainboard. +like coreboot, where multiple revisions could be used depending on motherboard. Of course, the first osboot revision also updated to a modern coreboot revision at that time, which (in that month, December 2020) was @@ -1187,7 +1187,7 @@ Nowadays, that is completely [automated](../docs/install/ivy_has_common.md), based on initial work done in osboot by Caleb La Grange. Caleb adapted logic from Heads that extracts Intel ME images from Lenovo UEFI firmware updates, thus eliminating the need for vendor firmware dumps prior to flashing; though, -backing up the factory firmware is still recommended, on any mainboard. +backing up the factory firmware is still recommended, on any motherboard. I later expanded Caleb's work, making the logic much more generic, expandable more easily to other boards/vendors and platforms. I also added support for diff --git a/site/news/audit2.md b/site/news/audit2.md index e0c8b31..17bb9d5 100644 --- a/site/news/audit2.md +++ b/site/news/audit2.md @@ -22,7 +22,7 @@ improved greatly. The same care has been given to documentation aswell. Many bugs have been fixed, and the Libreboot build system (lbmk) is generally much more efficient now, compared to the Libreboot 20230625 release. The main focus has been this audit, now concluded, and the next focus shall once again -be adding more mainboards to Libreboot, with a view to making a full new release +be adding more motherboards to Libreboot, with a view to making a full new release some time during September 2023. Before diving into details, here is a brief summary of the recent audit, and @@ -96,7 +96,7 @@ exhaustive: * A lot of scripts have been removed entirely, and their logic not replaced; in many cases, Libreboot's build system contained logic that had gone unused for many years. -* More reliable configs now used on desktop mainboards: SeaBIOS-only for start, +* More reliable configs now used on desktop motherboards: SeaBIOS-only for start, but GRUB still available where feasible (in the SeaBIOS menu). This makes it more fool proof for a user who might use integrated graphics and then switch to a graphics card; the very same images will work. @@ -115,7 +115,7 @@ FULL list of changes (from lbmk git log) Almost all of the changes are post-20230625 release, and almost all of them are audit-related, so I've simply pasted every commit between the last release -and now. A few of them, e.g. the new mainboard ports, are not audited-related. +and now. A few of them, e.g. the new motherboard ports, are not audited-related. Entries that give time frames such as *"14 hours ago"* are relative to today, 11 September 2023, at some time around 3PM UK time. Changes on top are @@ -135,7 +135,7 @@ newer, and changes further down are older: * d28ad6aa - build/release/roms: use -T0 on serprog tarballs (23 hours ago) * 308c21dd - build/boot/roms stragglers: properly handle errors (23 hours ago) * c16b28ef - build/release/src: re-create symlinks, don't copy (2 days ago) -* 32dcf9e5 - coreboot/qemu_x86_12mb: re-add this mainboard (2 days ago) +* 32dcf9e5 - coreboot/qemu_x86_12mb: re-add this motherboard (2 days ago) * 5aef8156 - scripts: use printf, not echo, where appropriate (2 days ago) * 76e12cd4 - update/blobs printf statements: use double quotes (2 days ago) * 84bf47b5 - scripts: better handling of printf: stdout/stderr (2 days ago) @@ -184,8 +184,8 @@ newer, and changes further down are older: * da3c9bb3 - merge config/ and resources/ (8 days ago) * a0501050 - blobs/download: don't handle ifd/gbe files (8 days ago) * 03788d14 - move ifd/gbe configs into config/ifd/ (8 days ago) -* 6ddb0e09 - run make oldconfig on coreboot/default mainboards (8 days ago) -* 19efdf9e - ich9m mainboards: use pre-assembled ifd/gbe files (8 days ago) +* 6ddb0e09 - run make oldconfig on coreboot/default motherboards (8 days ago) +* 19efdf9e - ich9m motherboards: use pre-assembled ifd/gbe files (8 days ago) * af8d8cda - add ich9m ifd/gbe files (8 days ago) * d554efae - build/release/src: copy e6430 ifd/gbe (8 days ago) * 09aae7be - build/rpi-pico-serprog: better error handling (8 days ago) diff --git a/site/news/audit3.md b/site/news/audit3.md index 45ae5b1..83d4949 100644 --- a/site/news/audit3.md +++ b/site/news/audit3.md @@ -121,7 +121,7 @@ are also repeated below but in more detail: * All helper scripts are now under `include/`, and main scripts in `script/`, called by the main `build` script * Intel ME extraction is now provided in one function, instead of two, when - downloading vendor files per mainboard, before running it + downloading vendor files per motherboard, before running it through `me_cleaner` * Unified checking of the destination file, when downloading vendor updates. This results in more reliable checking of whether a vendor file has already @@ -164,7 +164,7 @@ are also repeated below but in more detail: * SECURITY: Use sha512sum (not sha1sum) when verifying certain downloads. This reduces the chance for collisions, during checksum verification. * Set GRUB timout to 5s by default, but allow override and set to 10s or 15s - on some mainboards. + on some motherboards. * Vendor scripts: don't use `/tmp` for ROM images when inserting vendor files. In case `/tmp` is a tmpfs and not much RAM is available, it is paramount that the user's file system is used instead, where there is likely greater capacity; @@ -635,7 +635,7 @@ The commits are, thus: * d28ad6aa build/release/roms: use -T0 on serprog tarballs * 308c21dd build/boot/roms stragglers: properly handle errors * c16b28ef build/release/src: re-create symlinks, don't copy -* 32dcf9e5 coreboot/qemu_x86_12mb: re-add this mainboard +* 32dcf9e5 coreboot/qemu_x86_12mb: re-add this motherboard * 5aef8156 scripts: use printf, not echo, where appropriate * 76e12cd4 update/blobs printf statements: use double quotes * 84bf47b5 scripts: better handling of printf: stdout/stderr @@ -684,8 +684,8 @@ The commits are, thus: * da3c9bb3 merge config/ and resources/ * a0501050 blobs/download: don't handle ifd/gbe files * 03788d14 move ifd/gbe configs into config/ifd/ -* 6ddb0e09 run make oldconfig on coreboot/default mainboards -* 19efdf9e ich9m mainboards: use pre-assembled ifd/gbe files +* 6ddb0e09 run make oldconfig on coreboot/default motherboards +* 19efdf9e ich9m motherboards: use pre-assembled ifd/gbe files * af8d8cda add ich9m ifd/gbe files * d554efae build/release/src: copy e6430 ifd/gbe * 09aae7be build/rpi-pico-serprog: better error handling diff --git a/site/news/audit4.md b/site/news/audit4.md index 128f20d..f554e5d 100644 --- a/site/news/audit4.md +++ b/site/news/audit4.md @@ -81,7 +81,7 @@ And now, specific changes: * `script/build/serprog`: Return error status (exit) if basename fails, when processing various board targets available on stm32/rp2040 projects. Patch courtesy of Leah Rowe. -* **NEW BOARD:** HP 8300 CMT mainboard, added by Riku Viitanen, who worked +* **NEW BOARD:** HP 8300 CMT motherboard, added by Riku Viitanen, who worked on it with a tester in the IRC channel. * Fixed implicit typecasting bug on flashprog 1.2 source code, thus preventing a build issue (tested on Debian 12.2). Patch courtesy of Leah Rowe. diff --git a/site/news/audit5.md b/site/news/audit5.md index 126cb98..b0f04ae 100644 --- a/site/news/audit5.md +++ b/site/news/audit5.md @@ -101,10 +101,10 @@ Changes are in order per category, from newest to oldest: * **GRUB is now a multi-tree project.** Each given coreboot target can specify which GRUB tree it wants to use, each containing its own revision and patches, with its own GRUB configuration file. This can be used later on - to provide specific optimisations on each given mainboard, but it is used + to provide specific optimisations on each given motherboard, but it is used at present to exclude xHCI patches on boards that don't need it; please also read the bugfix section (of this audit report) pertaining to this same topic, - for more context. Before this change was implemented, all mainboards used + for more context. Before this change was implemented, all motherboards used the exact same GRUB revision, with the same patches and the same config. * grub.cfg: scan `grub2/` last, on each given device/partition; this speeds up the boot time in most tests, because most setups use `grub/`, @@ -138,7 +138,7 @@ Changes are in order per category, from newest to oldest: * script/roms: Allow to override `grub_scan_disk` via `-s`, for example: `./build roms -s nvme t1650_12mb` * **grub.cfg: Use `grub_scan_disk` to set boot order (rather, boot order by - device type).** It is possible now to configure each mainboard with this + device type).** It is possible now to configure each motherboard with this variable, so that certain types of devices are scanned in a precise order; for example, scan NVMe SSDs first. * **include/git.sh: Allow manual override of `git submodule` handling**, instead @@ -153,7 +153,7 @@ Changes are in order per category, from newest to oldest: later changed so as to be the ONLY method for downloading submodules, skipping the actual git-submodule-update command entirely, on all projects.* * **Native NVMe driver added to the GRUB payload**, allowing users to boot from - NVMe SSDs where present on a given mainboard. The patch is courtesy of + NVMe SSDs where present on a given motherboard. The patch is courtesy of Mate Kukri, who ported SeaBIOS's own NVMe driver, converting all of the code to run properly within GRUB's own kernel. NVMe SSDs are now fully bootable on all machines that can have them, offering vastly superior @@ -297,12 +297,12 @@ The changes are, from newest to earliest: one you're reading about now so that they can be fixed, like this one was!) * **Re-configured GRUB so that only the Haswell and Broadwell machines contain xHCI support**, where it doesn't cause any issues (and is required), while - other mainboards use a version of GRUB that lacks support for xHCI. This is a + other motherboards use a version of GRUB that lacks support for xHCI. This is a mitigations against the bug reported in [lbmk issue 216](https://codeberg.org/libreboot/lbmk/issues/216). This is done, by using the new *multi-tree* GRUB handling, which is mentioned above in in the section (of this audit report) pertaining to *feature changes*, whereby - each mainboard can have its own GRUB revisions and patches, with its own + each motherboard can have its own GRUB revisions and patches, with its own GRUB configuration file (that could be uniquely optimised for it). * **Fix vboot build issue when running lbmk in i686 (32-bit) host machines**. The patch, courtesy of *Luke T. Schumaker*, adapts vboot's vmlinuz extract @@ -346,12 +346,12 @@ The changes are, from newest to earliest: supported a configuration whereby SeaBIOS reads a `bootorder` file in CBFS, making it try to run the GRUB payload first, while still allowing you to interrupt by pressing ESC to bring up an alternative boot select menu. This - is now the *default*, on all x86 mainboards. This is a mitigation against + is now the *default*, on all x86 motherboards. This is a mitigation against future instability in GRUB because, if such issues happen again, it will not cause a brick since you can just use SeaBIOS instead, and skip booting to the GRUB payload (on the affected machines, BIOS GRUB still worked, which your distro provides and SeaBIOS executes it). *NOTE: GRUB was later made - into a multi-tree project, with certain mainboards using a version that + into a multi-tree project, with certain motherboards using a version that has the xHCI patches, if required, because the machines that actually need xHCI support were not affected by the bug referenced in issue 216.* * Main build script: Check SUID before checking Git name/email, otherwise the diff --git a/site/news/audit6.md b/site/news/audit6.md index 9bb3d93..75544c6 100644 --- a/site/news/audit6.md +++ b/site/news/audit6.md @@ -62,7 +62,7 @@ will be new payloads and boards, in addition to testing newer upstream revisions of projects such as coreboot, on every machine supported by Libreboot. A release is planned for early August 2024. -A *lot* of work on new ports is planned. There are a number of new mainboards +A *lot* of work on new ports is planned. There are a number of new motherboards that will be available, in the next Libreboot release. Summarised list of changes @@ -97,7 +97,7 @@ The changes are as follows: enabling `CONFIG_PAYLOAD_NONE` exclusively. However, advanced users may wish to use something else such as Tianocore, which Libreboot may/will not provide (with Tianocore it's **will not**). Simply set `build_depend=""` - in the `target.cfg` file for a given mainboard, and then enable a payload + in the `target.cfg` file for a given motherboard, and then enable a payload under coreboot's menuconfig interface, or by direct modification of the defconfig file. When `CONFIG_PAYLOAD_NONE` is not set, lbmk will skip adding a payload, because it's a given that then coreboot's own build system @@ -146,7 +146,7 @@ The changes are as follows: downloading of vendor files, without needing specific hacks to be hardcoded in `script/trees`. The `./update trees -b coreboot TREE utils` command is no longer available; instead, do `./update trees -d coreboot TREE`; if - the TREE argument is instead an actual mainboard target, it also does the + the TREE argument is instead an actual motherboard target, it also does the vendor file download, if required. The `./vendor download` command is still available, and multiple board names can now be provided as argument, because for example, `./build roms x220_8mb x230_12mb` would @@ -203,12 +203,12 @@ The changes are as follows: single-tree projects, defined *by argument*, but it was quite error prone and there's no clean way to otherwise do it. We don't use the script this way, anywhere in lbmk, and users are advised the same. -* **`script/roms`: *Only* Support SeaBIOS and Sea*GRUB*, on x86 mainboards**. +* **`script/roms`: *Only* Support SeaBIOS and Sea*GRUB*, on x86 motherboards**. SeaGRUB is a configuration whereby SeaBIOS starts first, but immediately tries to load GRUB from the flash. This complements the other change, listed below. We will no longer provide configurations where GRUB is the primary payload, precisely to mitigate the same issue as described below (lbmk issue 216). - If *GRUB* is enabled, on a given mainboard, SeaBIOS-only setups are not + If *GRUB* is enabled, on a given motherboard, SeaBIOS-only setups are not provided; only SeaGRUB is provided. You can press ESC in the SeaGRUB menu, to access other boot methods besides *GRUB from flash*, so you can use it in the same way; additionally, you can remove the `bootorder` file from CBFS @@ -269,7 +269,7 @@ The changes are as follows: This mkhelper config also integrates `include/rom.sh`, containing these functions. This replicates the functionality originally provided by `script/roms`. -* coreboot: Set `build_depend` on `target.cfg` files for specific mainboards. +* coreboot: Set `build_depend` on `target.cfg` files for specific motherboards. This is used to manually specify which GRUB and SeaBIOS trees should be compiled, required when compiling for a specific target, for the next stage where a payload is added to the coreboot image, because lbmk does diff --git a/site/news/e6400nvidia.md b/site/news/e6400nvidia.md index c5d5107..c52c170 100644 --- a/site/news/e6400nvidia.md +++ b/site/news/e6400nvidia.md @@ -11,7 +11,7 @@ build lbmk from source, and it gets inserted automatically via download. The same ROM, if it contains the Nvidia VGA ROM, supports both variants; if the VGA ROM is missing, then only the Intel GPU variant is supported. The same ROM will work on both variants, provided for by Libreboot patching the devicetree -in coreboot, on this mainboard.** +in coreboot, on this motherboard.** diff --git a/site/news/freedom.md b/site/news/freedom.md index 361f140..8894876 100644 --- a/site/news/freedom.md +++ b/site/news/freedom.md @@ -19,7 +19,7 @@ of the community, about what the policy means in practise. Refer here to the new article, thus: -[Software and hardware freedom status for each mainboard supported by +[Software and hardware freedom status for each motherboard supported by Libreboot](../freedom-status.md) The article describes, in great detail, the current status of licensing for @@ -47,12 +47,12 @@ Also, a new version of Libreboot was *released* yesterday. See: It made several major fixes, and massively updated the revisions for each part used in ROM images (containing coreboot, GRUB and SeaBIOS). -I have a bunch of mainboards that I'm working on, and I hope to make another +I have a bunch of motherboards that I'm working on, and I hope to make another release available as soon as possible. My priority for the next Libreboot release is to add as many new boards as possible from coreboot, with minimal changes to the build system itself; another focus this time is on improvements to the documentation. Several installation guides are missing, for example, on -specific mainboards. +specific motherboards. Specifically, I have focus on some AMD platforms, Intel sandybridge/ivybridge, Intel Haswell and (more) GM45 platforms. Several boards exist in coreboot that diff --git a/site/news/hp820g2.md b/site/news/hp820g2.md index 33a60a5..6eda589 100644 --- a/site/news/hp820g2.md +++ b/site/news/hp820g2.md @@ -43,7 +43,7 @@ This is a nice portable machine, with very reasonable performance. Most people should be very satisfied with it, in daily use. It is widely available in online market places. This page will tell you how to flash it! -All variants of this mainboard will come with Intel HD 5500 graphics, which has +All variants of this motherboard will come with Intel HD 5500 graphics, which has completely free software initialisation in coreboot, provided by *libgfxinit*. How to install Libreboot diff --git a/site/news/libreboot20140911.md b/site/news/libreboot20140911.md index 408c7ad..566f5d8 100644 --- a/site/news/libreboot20140911.md +++ b/site/news/libreboot20140911.md @@ -26,12 +26,12 @@ digitizer support - See **hardware/\#supported\_x60t\_list** for list of supported LCD panels - - It is unknown whether an X61 Tablet can have its mainboard + - It is unknown whether an X61 Tablet can have its motherboard replaced with an X60 Tablet motherboard. - **Lenovo ThinkPad T60** (Intel GPU) (there are issues; see below) - See notes below for exceptions, and **hardware/\#supported\_t60\_list** for known working LCD panels. - - It is unknown whether a T61 can have its mainboard replaced with + - It is unknown whether a T61 can have its motherboard replaced with a T60 motherboard. - T60p (and T60 variants with ATI GPU) will likely never be supported: **hardware/\#t60\_ati\_intel** diff --git a/site/news/libreboot20141015.md b/site/news/libreboot20141015.md index d7e9087..06e2f27 100644 --- a/site/news/libreboot20141015.md +++ b/site/news/libreboot20141015.md @@ -13,12 +13,12 @@ Machines supported in this release: digitizer support - See **hardware/\#supported\_x60t\_list** for list of supported LCD panels - - It is unknown whether an X61 Tablet can have its mainboard + - It is unknown whether an X61 Tablet can have its motherboard replaced with an X60 Tablet motherboard. - **Lenovo ThinkPad T60** (Intel GPU) (there are issues; see below): - See notes below for exceptions, and **hardware/\#supported\_t60\_list** for known working LCD panels. - - It is unknown whether a T61 can have its mainboard replaced with + - It is unknown whether a T61 can have its motherboard replaced with a T60 motherboard. - See **future/\#t60\_cpu\_microcode**. - T60p (and T60 variants with ATI GPU) will likely never be supported: diff --git a/site/news/libreboot20150124.md b/site/news/libreboot20150124.md index b051942..a2d3814 100644 --- a/site/news/libreboot20150124.md +++ b/site/news/libreboot20150124.md @@ -13,13 +13,13 @@ Machines supported in this release: digitizer support - See **hardware/\#supported\_x60t\_list** for list of supported LCD panels - - It is unknown whether an X61 Tablet can have it's mainboard + - It is unknown whether an X61 Tablet can have it's motherboard replaced with an X60 Tablet motherboard. - **Lenovo ThinkPad T60** (Intel GPU) (there are issuesinstall/x200\_external.html; see below): - See notes below for exceptions, and **hardware/\#supported\_t60\_list** for known working LCD panels. - - It is unknown whether a T61 can have it's mainboard replaced + - It is unknown whether a T61 can have it's motherboard replaced with a T60 motherboard. - See **future/\#t60\_cpu\_microcode**. - T60p (and T60 laptops with ATI GPU) will likely never be diff --git a/site/news/libreboot20150126.md b/site/news/libreboot20150126.md index f419ea1..25a0f0e 100644 --- a/site/news/libreboot20150126.md +++ b/site/news/libreboot20150126.md @@ -13,13 +13,13 @@ Machines supported in this release: digitizer support - See **hardware/\#supported\_x60t\_list** for list of supported LCD panels - - It is unknown whether an X61 Tablet can have it's mainboard + - It is unknown whether an X61 Tablet can have it's motherboard replaced with an X60 Tablet motherboard. - **Lenovo ThinkPad T60** (Intel GPU) (there are issuesinstall/x200\_external.html; see below): - See notes below for exceptions, and **hardware/\#supported\_t60\_list** for known working LCD panels. - - It is unknown whether a T61 can have it's mainboard replaced + - It is unknown whether a T61 can have it's motherboard replaced with a T60 motherboard. - See **future/\#t60\_cpu\_microcode**. - T60p (and T60 laptops with ATI GPU) will likely never be diff --git a/site/news/libreboot20150208.md b/site/news/libreboot20150208.md index 44aa332..a0f8345 100644 --- a/site/news/libreboot20150208.md +++ b/site/news/libreboot20150208.md @@ -13,13 +13,13 @@ Machines supported in this release: digitizer support - See **hardware/\#supported\_x60t\_list** for list of supported LCD panels - - It is unknown whether an X61 Tablet can have it's mainboard + - It is unknown whether an X61 Tablet can have it's motherboard replaced with an X60 Tablet motherboard. - **Lenovo ThinkPad T60** (Intel GPU) (there are issuesinstall/x200\_external.html; see below): - See notes below for exceptions, and **hardware/\#supported\_t60\_list** for known working LCD panels. - - It is unknown whether a T61 can have it's mainboard replaced + - It is unknown whether a T61 can have it's motherboard replaced with a T60 motherboard. - See **future/\#t60\_cpu\_microcode**. - T60p (and T60 laptops with ATI GPU) will likely never be diff --git a/site/news/libreboot20150518.md b/site/news/libreboot20150518.md index 34e9ba1..69db4a9 100644 --- a/site/news/libreboot20150518.md +++ b/site/news/libreboot20150518.md @@ -16,13 +16,13 @@ Machines supported in this release: support - See ***docs/hardware/\#supported\_x60t\_list*** for list of supported LCD panels - - It is unknown whether an X61 Tablet can have it's mainboard + - It is unknown whether an X61 Tablet can have it's motherboard replaced with an X60 Tablet motherboard. - **ThinkPad T60** (Intel GPU) (there are issues; see below): - See notes below for exceptions, and ***docs/hardware/\#supported\_t60\_list*** for known working LCD panels. - - It is unknown whether a T61 can have it's mainboard replaced + - It is unknown whether a T61 can have it's motherboard replaced with a T60 motherboard. - See ***docs/future/\#t60\_cpu\_microcode***. - T60p (and T60 laptops with ATI GPU) will likely never be diff --git a/site/news/libreboot20160818.md b/site/news/libreboot20160818.md index a41175b..cd11112 100644 --- a/site/news/libreboot20160818.md +++ b/site/news/libreboot20160818.md @@ -35,13 +35,13 @@ Machines supported in this release: support - See ***docs/hardware/\#supported\_x60t\_list*** for list of supported LCD panels - - It is unknown whether an X61 Tablet can have it's mainboard + - It is unknown whether an X61 Tablet can have it's motherboard replaced with an X60 Tablet motherboard. - **ThinkPad T60** (Intel GPU) (there are issues; see below): - See notes below for exceptions, and ***docs/hardware/\#supported\_t60\_list*** for known working LCD panels. - - It is unknown whether a T61 can have it's mainboard replaced + - It is unknown whether a T61 can have it's motherboard replaced with a T60 motherboard. - See ***docs/future/\#t60\_cpu\_microcode***. - T60p (and T60 laptops with ATI GPU) will likely never be diff --git a/site/news/libreboot20160907.md b/site/news/libreboot20160907.md index fa3ba03..a2efc71 100644 --- a/site/news/libreboot20160907.md +++ b/site/news/libreboot20160907.md @@ -6,7 +6,7 @@ In comparison to Libreboot 20160902: For existing boards, there are no new board specific changes. -This release adds one new mainboard to libreboot: +This release adds one new motherboard to libreboot: - Intel D945GCLF desktop motherboard (thanks to Arthur Heymans) diff --git a/site/news/libreboot20210522.md b/site/news/libreboot20210522.md index 6370871..90ffe98 100644 --- a/site/news/libreboot20210522.md +++ b/site/news/libreboot20210522.md @@ -44,7 +44,7 @@ New boards #### Acer G43T-AM3 -This is a desktop mainboard, with similar hardware to the already supported +This is a desktop motherboard, with similar hardware to the already supported Gigabyte GA-G41M-ES2L ### Laptops @@ -635,7 +635,7 @@ However, the following fixes were made for Lenovo X200 recently: * Mostly re-factoring and minor bug fixes, but it has some interesting fixes that benefit libreboot -* Acer G43T-AM3 mainboard added. This is also in the Libreboot release. This +* Acer G43T-AM3 motherboard added. This is also in the Libreboot release. This board was also present in Libreboot, prior to it updating to use coreboot 4.14, but now it is in the latest coreboot stable release * Initial support for x86\_64. Not yet used by Libreboot, but it might be @@ -697,7 +697,7 @@ However, the following fixes were made for Lenovo X200 recently: ### coreboot 4.6 -* fix buggy S3 suspend/resume on Gigabyte GA-G41M-ES2L mainboard, and fix bugs +* fix buggy S3 suspend/resume on Gigabyte GA-G41M-ES2L motherboard, and fix bugs in raminit * intel x4x/gm45/i945 boards: improvements/fixes to raminit and native video initialization @@ -711,11 +711,11 @@ Detailed coreboot git logs -------------------------- The following are lists of changes in coreboot 4.14, versus coreboot revisions -used in various platforms/mainboards from Libreboot 20160907. These lists are +used in various platforms/motherboards from Libreboot 20160907. These lists are mostly pulled directly from the coreboot git log. These logs are made by copying the coreboot git log, on specific directories -such as directories for mainboards, or entire platforms, in the git log of +such as directories for motherboards, or entire platforms, in the git log of coreboot. These changes will be split into distinct categories: @@ -803,7 +803,7 @@ i945 hardware that Libreboot supports. * fd054bc7d4 nb/intel/i945: Simplify GMA SSDT generator * 68680dd7cd Trim `.acpi_fill_ssdt_generator` and `.acpi_inject_dsdt_generator` * 95cdd9f21b nb/intel/i945: Make some cosmetic changes -* f3f36faf35 src (minus soc and mainboard): Remove copyright notices +* f3f36faf35 src (minus soc and motherboard): Remove copyright notices * b4d9f229d4 nb/intel/i945/raminit: Simplify if condition * d789b658f7 nb/intel/i945/raminit: Use boolean type for helper variables * 842dd3328d nb/intel/i945/raminit: Remove space for correct alignment @@ -1022,7 +1022,7 @@ i945 hardware that Libreboot supports. ### git log src/northbridge/intel/pineview/ -This benefits the Intel D510MO / D410PT mainboards, and any other pineview +This benefits the Intel D510MO / D410PT motherboards, and any other pineview board that Libreboot has added or will add. ```` @@ -1090,7 +1090,7 @@ board that Libreboot has added or will add. * deeccbf4e9 Drop explicit NULL initializations from `device_operations` * affd771ba3 nb/intel/pineview: drop intel_gma_get_controller_info() * 68680dd7cd Trim `.acpi_fill_ssdt_generator` and `.acpi_inject_dsdt_generator` -* f3f36faf35 src (minus soc and mainboard): Remove copyright notices +* f3f36faf35 src (minus soc and motherboard): Remove copyright notices * 39ff703aa9 nb/intel/pineview: Clean up code and comments * 8247cc3328 northbridge: Remove unused include * 2119d0ba43 treewide: Capitalize 'CMOS' @@ -1161,7 +1161,7 @@ board that Libreboot has added or will add. * 20f71369d9 nb/intel/pineview: Put stage cache in TSEG * 84fdda3812 nb/intel/pineview: Use parallel MP init * da44e34743 nb/intel/pineview: Select 1M TSEG -* c6ff1ac29e nb/intel/pineview: Move the boilerplate mainboard_romstage_entry +* c6ff1ac29e nb/intel/pineview: Move the boilerplate motherboard_romstage_entry * b31aee9973 nb/intel/{i945,pineview}: Remove unused function * c70eed1e62 device: Use pcidev_on_root() * 66b462dd4f nb/intel/pineview/raminit.c: Remove unused variable @@ -1286,7 +1286,7 @@ This benefits GM45 ThinkPads in Libreboot e.g. X200, T400, T500, R500, W500 etc * 68680dd7cd Trim `.acpi_fill_ssdt_generator` and `.acpi_inject_dsdt_generator` * 6343cd846a drivers/intel/gma: fold gma.asl into default_brightness_levels.asl * 612a867677 drivers/intel/gma/acpi: Add Kconfigs for backlight registers -* f3f36faf35 src (minus soc and mainboard): Remove copyright notices +* f3f36faf35 src (minus soc and motherboard): Remove copyright notices * 8247cc3328 northbridge: Remove unused include * 2119d0ba43 treewide: Capitalize 'CMOS' * ef90609cbb src: capitalize 'RAM' @@ -1448,7 +1448,7 @@ This benefits GM45 ThinkPads in Libreboot e.g. X200, T400, T500, R500, W500 etc ### git log src/northbridge/intel/x4x/ -This benefits mainly the Gigabyte GA-G41M-ES2L mainboard in Libreboot, and other +This benefits mainly the Gigabyte GA-G41M-ES2L motherboard in Libreboot, and other x4x boards that have now been added. In Libreboot 20160907, the only x4x board was the Gigabyte GA-G41M-ES2L @@ -1549,7 +1549,7 @@ was the Gigabyte GA-G41M-ES2L * 68680dd7cd Trim `.acpi_fill_ssdt_generator` and `.acpi_inject_dsdt_generator` * 6343cd846a drivers/intel/gma: fold gma.asl into default_brightness_levels.asl * 612a867677 drivers/intel/gma/acpi: Add Kconfigs for backlight registers -* f3f36faf35 src (minus soc and mainboard): Remove copyright notices +* f3f36faf35 src (minus soc and motherboard): Remove copyright notices * 8247cc3328 northbridge: Remove unused include * 2119d0ba43 treewide: Capitalize 'CMOS' * ef90609cbb src: capitalize 'RAM' @@ -1810,7 +1810,7 @@ Running `git log src/northbridge/amd/amdfam10/` we get these commits: * 1f4cb326fa northbridge: Remove useless include * 586f24dab4 northbridge: Remove unneeded include * 134da98a51 amd/{nb/amdfam10,cpu/pi}/Kconfig: Remove unused symbols -* 414779db10 src/mainboard: Remove unused "HW_MEM_HOLE_SIZE_AUTO_INC" +* 414779db10 src/motherboard: Remove unused "HW_MEM_HOLE_SIZE_AUTO_INC" * f765d4f275 src: Remove unneeded include * e9a0130879 src: Remove unneeded include * d2b9ec1362 src: Remove unneeded include "{arch,cpu}/cpu.h" @@ -1952,7 +1952,7 @@ Running `git log src/mainboard/asus/kgpe-d16/` we get: * cb3e16f287 AMD fam10: Remove HAVE_ACPI_RESUME support * 04d025cf50 amdfam10: Declare get_sysinfo() * 8560db6116 amdfam10: Declare empty activate_spd_rom() stub -* e39db681df src/mainboard: Add missing 'include ' +* e39db681df src/motherboard: Add missing 'include ' * a1e22b8192 src: Use 'include ' when appropriate * cd49cce7b7 coreboot: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) * 13f66507af device/mmio.h: Add include file for MMIO ops @@ -1979,7 +1979,7 @@ Running `git log src/mainboard/asus/kgpe-d16/` we get: * 1db4e3a358 amdfam10 boards: Declare get_pci1234() just once * a79b3f1c63 amdfam10 boards: Drop unused mb_sysconf.h * a26b02466e drivers/aspeed/ast: Select `MAINBOARD_HAS_NATIVE_VGA_INIT` -* 21c8f9cab3 mainboard: Remove useless include +* 21c8f9cab3 motherboard: Remove useless include * 472d68b066 mb/asus/kgpe-d16: Set ASpeed GPIO SPD mux lines during boot * f0c5be2a4f mb/*/*/Kconfig: Remove useless comment * 6d19a20f5f mb: Set coreboot as DSDT's manufacturer model ID @@ -1987,7 +1987,7 @@ Running `git log src/mainboard/asus/kgpe-d16/` we get: * f765d4f275 src: Remove unneeded include * ead574ed02 src: Get rid of duplicated includes * d2b9ec1362 src: Remove unneeded include "{arch,cpu}/cpu.h" -* 1156b35a23 mainboard: Remove unneeded include +* 1156b35a23 motherboard: Remove unneeded include * 718c6faff4 reset: Finalize move to new API * e20dd19dde amdfam10: Convert to `board_reset()` * 2c5652d72b mb: Fix non-local header treated as local @@ -1996,7 +1996,7 @@ Running `git log src/mainboard/asus/kgpe-d16/` we get: * 068253c369 mb/*/*/cmos.default: Harmonise CMOS files syntax * f716f2ac1a mb/*/*/cmos.default: Decrease debug_level to 'Debug' * 65bb5434f6 src: Get rid of non-local header treated as local -* 08fc8fff25 src/mainboard: Fix typo +* 08fc8fff25 src/motherboard: Fix typo * db70f3bb4d drivers/tpm: Add TPM ramstage driver for devices without vboot. * 95bca33efa src/mb: Use "foo *bar" instead of "foo* bar" * c07f8fbe6f security/tpm: Unify the coreboot TPM software stack @@ -2006,7 +2006,7 @@ Running `git log src/mainboard/asus/kgpe-d16/` we get: * 02b05d1f6b mb/asus: Get rid of device_t * d88fb36e61 security/tpm: Change TPM naming for different layers. * 64e2d19082 security/tpm: Move tpm TSS and TSPI layer to security section -* 482d16fb0a src/mainboard: Fix various typos +* 482d16fb0a src/motherboard: Fix various typos * ec48c749c2 AMD boards: Fix function name (soft_reset) in message * 74bd2b0e4c mb/asus/kcma-d8,kgde-d16: Don't select SPI_FLASH_WINBOND * b29078e401 mb/*/*: Remove rtc nvram configurable baud rate @@ -2022,7 +2022,7 @@ Running `git log src/mainboard/asus/kgpe-d16/` we get: * eca093ecfe mainboard/asus/kgpe-d16: Remove obsolete reference to TPM ASL file * 06a629e4b1 arch/x86: do not define type of SPIN_LOCK_UNLOCKED * 75a3d1fb7c amdfam10: Perform major include ".c" cleanup -* a8025db49f amd-based mainboards: Fix whitespace in _PTS comments +* a8025db49f amd-based motherboards: Fix whitespace in _PTS comments * 3a0cb458dc cpu/amd/mtrr.h: Drop excessive includes * 4607cacf30 cpu/x86/msr.h: Drop excessive includes * 425890e59a AMD fam10h-15h: MMCONF_SUPPORT_DEFAULT is already set @@ -2032,10 +2032,10 @@ Running `git log src/mainboard/asus/kgpe-d16/` we get: * 6350a2e43f src/mainboard/a-trend - emulation: Add space around operators * 7931c6a81d mb/asus/kgpe-d16: Add TPM support * 64444268e2 mb/asus/[kgpe-d16|kcma-d8]: Fix whitespace errors in devicetree.cb -* d23ee5de22 mainboard: Clean up boot_option/reboot_bits in cmos.layout -* 8ab989e315 src/mainboard: Capitalize ROM, RAM, CPU and APIC +* d23ee5de22 motherboard: Clean up boot_option/reboot_bits in cmos.layout +* 8ab989e315 src/motherboard: Capitalize ROM, RAM, CPU and APIC * bb9722bd77 Add newlines at the end of all coreboot files -* 95fe8fb1e0 mainboard: Format irq_tables.c +* 95fe8fb1e0 motherboard: Format irq_tables.c * 150f476c96 timestamp: Drop duplicate TS_END_ROMSTAGE entries * ca543396a7 mainboard/asus/[kgpe-d16|kcma-d8]: Enable secondary serial port header * 99894127ab mainboard/asus/[kgpe-di6|kcma-d8]: Fix board ROM information @@ -2049,7 +2049,7 @@ Running `git log src/mainboard/asus/kcma-d8/` we get: * cb3e16f287 AMD fam10: Remove HAVE_ACPI_RESUME support * 04d025cf50 amdfam10: Declare get_sysinfo() * 8560db6116 amdfam10: Declare empty activate_spd_rom() stub -* e39db681df src/mainboard: Add missing 'include ' +* e39db681df src/motherboard: Add missing 'include ' * a1e22b8192 src: Use 'include ' when appropriate * cd49cce7b7 coreboot: Replace all IS_ENABLED(CONFIG_XXX) with CONFIG(XXX) * 13f66507af device/mmio.h: Add include file for MMIO ops @@ -2074,14 +2074,14 @@ Running `git log src/mainboard/asus/kcma-d8/` we get: * 1db4e3a358 amdfam10 boards: Declare get_pci1234() just once * a79b3f1c63 amdfam10 boards: Drop unused mb_sysconf.h * a26b02466e drivers/aspeed/ast: Select `MAINBOARD_HAS_NATIVE_VGA_INIT` -* 21c8f9cab3 mainboard: Remove useless include +* 21c8f9cab3 motherboard: Remove useless include * f0c5be2a4f mb/*/*/Kconfig: Remove useless comment * 6d19a20f5f mb: Set coreboot as DSDT's manufacturer model ID * 0cca6e24b7 ACPI: Fix DSDT's revision field * f765d4f275 src: Remove unneeded include * ead574ed02 src: Get rid of duplicated includes * d2b9ec1362 src: Remove unneeded include "{arch,cpu}/cpu.h" -* 1156b35a23 mainboard: Remove unneeded include +* 1156b35a23 motherboard: Remove unneeded include * 718c6faff4 reset: Finalize move to new API * e20dd19dde amdfam10: Convert to `board_reset()` * 2c5652d72b mb: Fix non-local header treated as local @@ -2090,13 +2090,13 @@ Running `git log src/mainboard/asus/kcma-d8/` we get: * 068253c369 mb/*/*/cmos.default: Harmonise CMOS files syntax * f716f2ac1a mb/*/*/cmos.default: Decrease debug_level to 'Debug' * 65bb5434f6 src: Get rid of non-local header treated as local -* 08fc8fff25 src/mainboard: Fix typo +* 08fc8fff25 src/motherboard: Fix typo * 95bca33efa src/mb: Use "foo *bar" instead of "foo* bar" * e0e1e64855 amdfam10: Drop tests for LATE_CBMEM_INIT * d54e859ace mb/asus: Get rid of whitespace before tab * 1bad4ce421 sb/amd/sr5650: Fix invalid function declarations * 02b05d1f6b mb/asus: Get rid of device_t -* 482d16fb0a src/mainboard: Fix various typos +* 482d16fb0a src/motherboard: Fix various typos * ec48c749c2 AMD boards: Fix function name (soft_reset) in message * 74bd2b0e4c mb/asus/kcma-d8,kgde-d16: Don't select SPI_FLASH_WINBOND * b29078e401 mb/*/*: Remove rtc nvram configurable baud rate @@ -2109,7 +2109,7 @@ Running `git log src/mainboard/asus/kcma-d8/` we get: * 00b9f4c4b1 mb/*/*/cmos.layout: Make multibyte options byte aligned * 06a629e4b1 arch/x86: do not define type of SPIN_LOCK_UNLOCKED * 75a3d1fb7c amdfam10: Perform major include ".c" cleanup -* a8025db49f amd-based mainboards: Fix whitespace in _PTS comments +* a8025db49f amd-based motherboards: Fix whitespace in _PTS comments * 3a0cb458dc cpu/amd/mtrr.h: Drop excessive includes * 4607cacf30 cpu/x86/msr.h: Drop excessive includes * 425890e59a AMD fam10h-15h: MMCONF_SUPPORT_DEFAULT is already set @@ -2118,10 +2118,10 @@ Running `git log src/mainboard/asus/kcma-d8/` we get: * b87a734771 mainboard/*/*/dsdt.asl: Use tabs for indents * 6350a2e43f src/mainboard/a-trend - emulation: Add space around operators * 64444268e2 mb/asus/[kgpe-d16|kcma-d8]: Fix whitespace errors in devicetree.cb -* d23ee5de22 mainboard: Clean up boot_option/reboot_bits in cmos.layout -* 8ab989e315 src/mainboard: Capitalize ROM, RAM, CPU and APIC +* d23ee5de22 motherboard: Clean up boot_option/reboot_bits in cmos.layout +* 8ab989e315 src/motherboard: Capitalize ROM, RAM, CPU and APIC * bb9722bd77 Add newlines at the end of all coreboot files -* 95fe8fb1e0 mainboard: Format irq_tables.c +* 95fe8fb1e0 motherboard: Format irq_tables.c * 150f476c96 timestamp: Drop duplicate TS_END_ROMSTAGE entries * ca543396a7 mainboard/asus/[kgpe-d16|kcma-d8]: Enable secondary serial port header * 99894127ab mainboard/asus/[kgpe-di6|kcma-d8]: Fix board ROM information @@ -2132,7 +2132,7 @@ Running `git log src/mainboard/asus/kcma-d8/` we get: Running `git log src/mainboard/asus/kfsn4-dre/` we get: ```` -* ad0f485361 src/mainboard: change "unsigned" to "unsigned int" +* ad0f485361 src/motherboard: change "unsigned" to "unsigned int" * 12ef4f2d71 mb/asus/kfsn4-dre: Return early if CK804 not found * 04d025cf50 amdfam10: Declare get_sysinfo() * 8560db6116 amdfam10: Declare empty activate_spd_rom() stub @@ -2156,13 +2156,13 @@ Running `git log src/mainboard/asus/kfsn4-dre/` we get: * a2cfe9e900 amdfam10 boards: Add Makefiles and fix resourcemap.c * d482c7dace amdfam10 boards: Drop global bus_isa variable * 1db4e3a358 amdfam10 boards: Declare get_pci1234() just once -* 21c8f9cab3 mainboard: Remove useless include +* 21c8f9cab3 motherboard: Remove useless include * f0c5be2a4f mb/*/*/Kconfig: Remove useless comment * 6d19a20f5f mb: Set coreboot as DSDT's manufacturer model ID * f765d4f275 src: Remove unneeded include * ead574ed02 src: Get rid of duplicated includes * d2b9ec1362 src: Remove unneeded include "{arch,cpu}/cpu.h" -* 1156b35a23 mainboard: Remove unneeded include +* 1156b35a23 motherboard: Remove unneeded include * 718c6faff4 reset: Finalize move to new API * e20dd19dde amdfam10: Convert to `board_reset()` * 400ce55566 cpu/amd: Use common AMD's MSR @@ -2171,7 +2171,7 @@ Running `git log src/mainboard/asus/kfsn4-dre/` we get: * 068253c369 mb/*/*/cmos.default: Harmonise CMOS files syntax * f716f2ac1a mb/*/*/cmos.default: Decrease debug_level to 'Debug' * 65bb5434f6 src: Get rid of non-local header treated as local -* 08fc8fff25 src/mainboard: Fix typo +* 08fc8fff25 src/motherboard: Fix typo * b0f1988f89 src: Get rid of unneeded whitespace * 448d9fb431 src: Use "foo *bar" instead of "foo* bar" * 7f268eab78 mainboard/asus: Add license headers @@ -2185,7 +2185,7 @@ Running `git log src/mainboard/asus/kfsn4-dre/` we get: * 00b9f4c4b1 mb/*/*/cmos.layout: Make multibyte options byte aligned * ce642f08b9 Kconfig: Rework MAINBOARD_HAS_NATIVE_VGA_INIT_TEXTMODECFG * 75a3d1fb7c amdfam10: Perform major include ".c" cleanup -* a8025db49f amd-based mainboards: Fix whitespace in _PTS comments +* a8025db49f amd-based motherboards: Fix whitespace in _PTS comments * 3a0cb458dc cpu/amd/mtrr.h: Drop excessive includes * 4607cacf30 cpu/x86/msr.h: Drop excessive includes * 425890e59a AMD fam10h-15h: MMCONF_SUPPORT_DEFAULT is already set @@ -2193,8 +2193,8 @@ Running `git log src/mainboard/asus/kfsn4-dre/` we get: * b87a734771 mainboard/*/*/dsdt.asl: Use tabs for indents * 6350a2e43f src/mainboard/a-trend - emulation: Add space around operators * 837618bf20 mainboard/asus/*: transition away from device_t -* d23ee5de22 mainboard: Clean up boot_option/reboot_bits in cmos.layout -* 8ab989e315 src/mainboard: Capitalize ROM, RAM, CPU and APIC +* d23ee5de22 motherboard: Clean up boot_option/reboot_bits in cmos.layout +* 8ab989e315 src/motherboard: Capitalize ROM, RAM, CPU and APIC * bb9722bd77 Add newlines at the end of all coreboot files ```` diff --git a/site/news/libreboot20221214.md b/site/news/libreboot20221214.md index 0a45579..d6e7dd7 100644 --- a/site/news/libreboot20221214.md +++ b/site/news/libreboot20221214.md @@ -402,7 +402,7 @@ would simply merge) | * 7fdfb07 added ability to detect if the board needs the mrc and download it | * b8bd895 added mrc download script from old osbmk but changed to agnostic shebang | * d80bcfb added x230 coreboot config as an example of a config using the blobs extracted with the extraction script -| * d40b01c add script to extract blobs from the vendor rom image for ivy bridge lenovo boards. Could possible work/be extended for other mainboards +| * d40b01c add script to extract blobs from the vendor rom image for ivy bridge lenovo boards. Could possible work/be extended for other motherboards | * c3dfcf4 re-add me_cleaner and change to agnostic shebang * | f70c5cc lenovo/x230: set me_state=Disabled in cmos.default * | 9b4afd1 x230_12mb: set cbfs back to 7mb. i will add special truncated configs instead diff --git a/site/news/libreboot20230413.md b/site/news/libreboot20230413.md index 629aaad..cf8839b 100644 --- a/site/news/libreboot20230413.md +++ b/site/news/libreboot20230413.md @@ -33,7 +33,7 @@ The priority of this release has been build system fixes/improvements. For the time being, no more code changes will be made unless needed, in coreboot, for existing supported hardware; the focus is going to be on adding *more* boards to Libreboot, to support more hardware. I've been on a spree, buying lots of -mainboards that coreboot supports, that would be interesting in Libreboot. +motherboards that coreboot supports, that would be interesting in Libreboot. ### Build from source @@ -95,7 +95,7 @@ Changelog: ROM image archives in releases now contain lists of SHA1 hashes, matching what each file should be when running `blobutil/inject` * `blobutil/inject`: It is now possible to insert MRC and neutered ME images, - where required on specific mainboards, into *all* ROM images of a given + where required on specific motherboards, into *all* ROM images of a given tar archive, in addition to single ROM images. The patch for this is courtesy of Caleb La Grange (`shmalebx9` on libreboot IRC) * Removed daisy/peach chromebooks: The machines are believed to boot properly, @@ -134,7 +134,7 @@ Changelog: the script easier to read/work on. * `blobutil/inject`: use correct offset for insertion of `mrc.bin` (Haswell platform, e.g. ThinkPad T440p) - as written above. -* Removed mainboard: `d945gclf` - known to be problematic at boot. I have one, +* Removed motherboard: `d945gclf` - known to be problematic at boot. I have one, and I'm going to test it for re-entry in a future release. * Added missing dependency in Arch Linux dependencies installation script, patch courtesy of Andreas Hartmann. diff --git a/site/news/libreboot20230423.md b/site/news/libreboot20230423.md index 1033a4d..83fc8ae 100644 --- a/site/news/libreboot20230423.md +++ b/site/news/libreboot20230423.md @@ -26,7 +26,7 @@ in 2023. *This* new release, Libreboot 20230423, is released today on April 23rd, 2023. This is marked as a *testing* release, though it is *basically stable*. -We've been going at it like crazy, on a big spree adding more mainboards from +We've been going at it like crazy, on a big spree adding more motherboards from coreboot. Some fixes to the build system were also made, since the last release only *10 days ago*. @@ -56,7 +56,7 @@ Ergo, this is a very conservative changelog. It seems Libreboot has been releasing almost fortnightly, as of late; perhaps this could continue from now on. -### New mainboards now supported: +### New motherboards now supported: * **Dell Latitude E6400 (laptop)** (GM45, blob-free, flashable entirely in software, no disassembly required!) - courtesy Nicholas Chin, `nic3-14159` on @@ -162,7 +162,7 @@ please contact the Libreboot project. They are: More boards soon! --------------- -I've purchased about ~10 HP mainboards, all of the viable sandybridge, +I've purchased about ~10 HP motherboards, all of the viable sandybridge, ivybridge and haswell ones from coreboot. I'm going to add them all. I also have Dell Optiplex 7020 and 9020; these are on coreboot gerrit and diff --git a/site/news/libreboot20230625.md b/site/news/libreboot20230625.md index 368e406..d8baa69 100644 --- a/site/news/libreboot20230625.md +++ b/site/news/libreboot20230625.md @@ -54,7 +54,7 @@ mileage may vary, with other distros. Refer to Libreboot documentation. Work done since last release ---------------------------- -### New mainboards now supported: +### New motherboards now supported: These boards were added to Libreboot: @@ -73,12 +73,12 @@ focus on hardware support in addition to payloads (linux boot, UEFI etc). ### No-microcode ROMs available Since Libreboot 20221214 and up, CPU microcode is -included by default on all applicable x86 mainboards. However, +included by default on all applicable x86 motherboards. However, Libreboot provided (and still provides) documentation for how to manually remove it. Such removal is still possible, but *this* release now provides -two sets of ROM images for each x86 mainboard: one set of ROMs +two sets of ROM images for each x86 motherboard: one set of ROMs will *contain* CPU microcode, and another set *excludes* them. For more context, see [Binary Blob Reduction Policy](policy.md) and [Freedom Status](../freedom-status.md). @@ -118,7 +118,7 @@ Newest changes first, oldest changes last: * `u-boot`: Increase EFI variable buffer size. This fixes an error where Debian's signed shim allocates too many EFI variables to fit in the space provided, breaking the boot process in Debian. Patch courtesy Alper Nebi Yasak -* Re-added Gigabyte GA-G41M-ES2L mainboard. It actually does boot, but we have +* Re-added Gigabyte GA-G41M-ES2L motherboard. It actually does boot, but we have always known that raminit is quite experimental on this board. You just have to cycle through RAM until you find modules that work. * `nyan` chromebooks: Removed for now (not yet stable) - this release only @@ -137,8 +137,8 @@ Newest changes first, oldest changes last: ROMs that include microcode by default. This change is also alluded to in the sections above. * `blobutil/download`: Cache downloads based on checksum, to avoid needlessly - re-downloading files per mainboard. This is useful when compiling multiple - ROM images, for multiple mainboards. Patch courtesy Riku Viitanen. + re-downloading files per motherboard. This is useful when compiling multiple + ROM images, for multiple motherboards. Patch courtesy Riku Viitanen. * Dell Latitude E6400 (board): Fix SD cards (SD cards now work fine). Patch courtesy Nicholas Chin. * `util/nvmutil`: Vastly more efficient code (part of the audit, referenced in @@ -199,8 +199,8 @@ Newest changes first, oldest changes last: an `extra.sh` script, but it can be used to extend the default functionality of lbmk where lots of custom logic is needed for a given board. For example, if you needed to apply lots of patches from gerrit in a specific order, in a - way that could not be generalised for other mainboards where it's really - only applicable to that mainboard, you might use `extra.sh`. This was briefly + way that could not be generalised for other motherboards where it's really + only applicable to that motherboard, you might use `extra.sh`. This was briefly used in the erstwhile osboot project, on a few boards. * download/coreboot: Use the `gitclone` script for actually cloning coreboot, while still using the main script for handling trees/revisions and such. diff --git a/site/news/libreboot20231021.md b/site/news/libreboot20231021.md index 8b73915..21daf40 100644 --- a/site/news/libreboot20231021.md +++ b/site/news/libreboot20231021.md @@ -39,7 +39,7 @@ firmware, but not Libreboot! Booting Linux/BSD is also [well](../docs/linux/) Work done since last release -------------------------- -### New mainboards now supported: +### New motherboards now supported: The *primary* focus of this release has been build system improvements, and new build system features. However, these boards were added to Libreboot: @@ -211,7 +211,7 @@ Full list of changes (detail) -------------------- The changes are (not necessarily in order), but they do not necessarily cover -things like mainboards or extra features added; these are covered in sections +things like motherboards or extra features added; these are covered in sections above. This list is essentially a combination of the audit2 and audit3 change logs, combined: @@ -261,7 +261,7 @@ logs, combined: * All helper scripts are now under `include/`, and main scripts in `script/`, called by the main `build` script * Intel ME extraction is now provided in one function, instead of two, when - downloading vendor files per mainboard, before running it + downloading vendor files per motherboard, before running it through `me_cleaner` * Unified checking of the destination file, when downloading vendor updates. This results in more reliable checking of whether a vendor file has already @@ -304,7 +304,7 @@ logs, combined: * SECURITY: Use sha512sum (not sha1sum) when verifying certain downloads. This reduces the chance for collisions, during checksum verification. * Set GRUB timout to 5s by default, but allow override and set to 10s or 15s - on some mainboards. + on some motherboards. * Vendor scripts: don't use `/tmp` for ROM images when inserting vendor files. In case `/tmp` is a tmpfs and not much RAM is available, it is paramount that the user's file system is used instead, where there is likely greater capacity; @@ -548,7 +548,7 @@ logs, combined: * A lot of scripts have been removed entirely, and their logic not replaced; in many cases, Libreboot's build system contained logic that had gone unused for many years. -* More reliable configs now used on desktop mainboards: SeaBIOS-only for start, +* More reliable configs now used on desktop motherboards: SeaBIOS-only for start, but GRUB still available where feasible (in the SeaBIOS menu). This makes it more fool proof for a user who might use integrated graphics and then switch to a graphics card; the very same images will work. @@ -849,7 +849,7 @@ The log is as follows, relative to Libreboot 20230625: * d28ad6aa build/release/roms: use -T0 on serprog tarballs * 308c21dd build/boot/roms stragglers: properly handle errors * c16b28ef build/release/src: re-create symlinks, don't copy -* 32dcf9e5 coreboot/qemu_x86_12mb: re-add this mainboard +* 32dcf9e5 coreboot/qemu_x86_12mb: re-add this motherboard * 5aef8156 scripts: use printf, not echo, where appropriate * 76e12cd4 update/blobs printf statements: use double quotes * 84bf47b5 scripts: better handling of printf: stdout/stderr @@ -898,8 +898,8 @@ The log is as follows, relative to Libreboot 20230625: * da3c9bb3 merge config/ and resources/ * a0501050 blobs/download: don't handle ifd/gbe files * 03788d14 move ifd/gbe configs into config/ifd/ -* 6ddb0e09 run make oldconfig on coreboot/default mainboards -* 19efdf9e ich9m mainboards: use pre-assembled ifd/gbe files +* 6ddb0e09 run make oldconfig on coreboot/default motherboards +* 19efdf9e ich9m motherboards: use pre-assembled ifd/gbe files * af8d8cda add ich9m ifd/gbe files * d554efae build/release/src: copy e6430 ifd/gbe * 09aae7be build/rpi-pico-serprog: better error handling diff --git a/site/news/libreboot20240126.md b/site/news/libreboot20240126.md index 343b9c3..c7aa54f 100644 --- a/site/news/libreboot20240126.md +++ b/site/news/libreboot20240126.md @@ -40,9 +40,9 @@ have [external flashing gear](../docs/install/spi.md) ready just in case! Work done since last release ---------------------------- -### New mainboards supported +### New motherboards supported -These new mainboards have been added: +These new motherboards have been added: * [HP EliteBook 820 G2](hp820g2.md), added by Leah Rowe to lbmk, using the coreboot port done by Iru Cai. @@ -107,7 +107,7 @@ changes first): using the `xtree` and `tree_depend` variables in `target.cfg` files, for each coreboot tree and, in the case of xtree, it can be defined in a given coreboot board target. -* Removed mainboard: Lenovo X201 (due to thermal safety issues on this machine, +* Removed motherboard: Lenovo X201 (due to thermal safety issues on this machine, when using a neutered ME - this issue only affects systems that use ME6, whereas older/newer platfroms are unaffected). * coreboot/fam15h: More fixes, e.g. disable `-Werror` on binutils 2.32, and @@ -147,7 +147,7 @@ changes first): * `script/build/serprog`: Return error status (exit) if basename fails, when processing various board targets available on stm32/rp2040 projects. Patch courtesy of Leah Rowe. -* **NEW BOARD:** HP 8300 CMT mainboard, added by Riku Viitanen, who worked +* **NEW BOARD:** HP 8300 CMT motherboard, added by Riku Viitanen, who worked on it with a tester in the IRC channel. * Fixed implicit typecasting bug on flashprog 1.2 source code, thus preventing a build issue (tested on Debian 12.2). Patch courtesy of Leah Rowe. @@ -366,7 +366,7 @@ changes first): * dcf7da9a coreboot/fam15h_udimm: define xtree * f72a72af don't download projects on release archives * 435441d0 update/release: generate changelogs -* a225e4d5 fix amd mainboard configs +* a225e4d5 fix amd motherboard configs * c9961182 git.sh: fix bad call to ./update * 3e7e0c7d git.sh: support downloading dependency trees * 8f3d3ead re-use crossgcc builds on the coreboot trees diff --git a/site/news/libreboot20240225.md b/site/news/libreboot20240225.md index 758b857..a95aecd 100644 --- a/site/news/libreboot20240225.md +++ b/site/news/libreboot20240225.md @@ -109,10 +109,10 @@ Work done since last release With the exception of pico-serprog and replacing flashrom with flashprog (more on this later), the current upstream revisions remain unchanged, but this -release has fixed a few issues and added more mainboards, relative to last +release has fixed a few issues and added more motherboards, relative to last month's release. -### New mainboards +### New motherboards * **HP EliteBook 8560w** - added to lbmk by Riku Viitanen, using the coreboot port written by Iru Cai, with Riku's MXM support added on top (more on this later) @@ -184,7 +184,7 @@ fixed this issue: Riku also increased the default drive strength to 12mA on all RP2024 boards, -increasing reliabily when externally flashing certain mainboards (e.g. PCH +increasing reliabily when externally flashing certain motherboards (e.g. PCH having low/no resistance on connections to the data lines for the flash). ### Flashprog now used, instead of flashrom diff --git a/site/news/libreboot20240504.md b/site/news/libreboot20240504.md index 6198a04..712c0dc 100644 --- a/site/news/libreboot20240504.md +++ b/site/news/libreboot20240504.md @@ -48,7 +48,7 @@ a major new release of Libreboot. The previous stable release was Libreboot 20230625 released on 25 June 2023, and the previous *testing* release was Libreboot 20240225 released on 25 February 2024. Extreme care has been taken with this release, but it adds a host of new features such as USB3 -support in the GRUB payload, and a slew of mainboard fixes. *Read on* to learn +support in the GRUB payload, and a slew of motherboard fixes. *Read on* to learn more. The main purpose of this release has been to fix bugs. A lot more work will now @@ -129,10 +129,10 @@ This release supports the following hardware: - [ASUS Chromebook Flip C101 (gru-bob)](../docs/install/chromebooks.md) - [Samsung Chromebook Plus (v1) (gru-kevin)](../docs/install/chromebooks.md) -New mainboard added +New motherboard added ------------------- -This release adds support for the following mainboard: +This release adds support for the following motherboard: * Dell Latitude E5420, courtesy of Nicholas Chin @@ -262,7 +262,7 @@ are highlighted in bold: * Simpler, safer error handling in the build system * **util/autoport:** New utility, imported from coreboot's version but with extra patches merged for Haswell platforms. This can be used in future, tied heavily - to Libreboot's own coreboot trees, to more easily add new mainboards. + to Libreboot's own coreboot trees, to more easily add new motherboards. * **util/dell-flash-unlock: NetBSD support added**, courtesy of the developer who goes by the name *Linear Cannon*. Here is that person's website as of today: @@ -482,7 +482,7 @@ It is now the default behaviour, in the next release, that certain images contain a bootorder file in CBFS, making SeaBIOS try GRUB first, but you can still press ESC to access the SeaBIOS boot menu if you want to directly boot an OS from that. This, and the other change mentioned above, will guarantee -stability. GRUB is *no longer* the primary payload, on any mainboard. +stability. GRUB is *no longer* the primary payload, on any motherboard. However, it was later decided to put this release in the `testing` directory instead; it was initially designated as a stable release. diff --git a/site/news/libreboot20240612.md b/site/news/libreboot20240612.md index 6d1d1d2..26b9614 100644 --- a/site/news/libreboot20240612.md +++ b/site/news/libreboot20240612.md @@ -31,7 +31,7 @@ The [errata](libreboot20240504.md#errata) on Libreboot 20240504 meant that all ROM images had to be removed, so a new stable release had to be made ASAP to compensate. -A new *testing* release is planned for July, adding many more new mainboards; +A new *testing* release is planned for July, adding many more new motherboards; today's stable release only fixes bugs and adds some new features to the build system, which have been rigorously tested during the course of the recent audit. @@ -148,10 +148,10 @@ Changes are in order per category, from newest to oldest: * **GRUB is now a multi-tree project.** Each given coreboot target can specify which GRUB tree it wants to use, each containing its own revision and patches, with its own GRUB configuration file. This can be used later on - to provide specific optimisations on each given mainboard, but it is used + to provide specific optimisations on each given motherboard, but it is used at present to exclude xHCI patches on boards that don't need it; please also read the bugfix section (of this audit report) pertaining to this same topic, - for more context. Before this change was implemented, all mainboards used + for more context. Before this change was implemented, all motherboards used the exact same GRUB revision, with the same patches and the same config. * grub.cfg: scan `grub2/` last, on each given device/partition; this speeds up the boot time in most tests, because most setups use `grub/`, @@ -185,7 +185,7 @@ Changes are in order per category, from newest to oldest: * script/roms: Allow to override `grub_scan_disk` via `-s`, for example: `./build roms -s nvme t1650_12mb` * **grub.cfg: Use `grub_scan_disk` to set boot order (rather, boot order by - device type).** It is possible now to configure each mainboard with this + device type).** It is possible now to configure each motherboard with this variable, so that certain types of devices are scanned in a precise order; for example, scan NVMe SSDs first. * **include/git.sh: Allow manual override of `git submodule` handling**, instead @@ -200,7 +200,7 @@ Changes are in order per category, from newest to oldest: later changed so as to be the ONLY method for downloading submodules, skipping the actual git-submodule-update command entirely, on all projects.* * **Native NVMe driver added to the GRUB payload**, allowing users to boot from - NVMe SSDs where present on a given mainboard. The patch is courtesy of + NVMe SSDs where present on a given motherboard. The patch is courtesy of Mate Kukri, who ported SeaBIOS's own NVMe driver, converting all of the code to run properly within GRUB's own kernel. NVMe SSDs are now fully bootable on all machines that can have them, offering vastly superior @@ -344,12 +344,12 @@ The changes are, from newest to earliest: one you're reading about now so that they can be fixed, like this one was!) * **Re-configured GRUB so that only the Haswell and Broadwell machines contain xHCI support**, where it doesn't cause any issues (and is required), while - other mainboards use a version of GRUB that lacks support for xHCI. This is a + other motherboards use a version of GRUB that lacks support for xHCI. This is a mitigations against the bug reported in [lbmk issue 216](https://codeberg.org/libreboot/lbmk/issues/216). This is done, by using the new *multi-tree* GRUB handling, which is mentioned above in in the section (of this audit report) pertaining to *feature changes*, whereby - each mainboard can have its own GRUB revisions and patches, with its own + each motherboard can have its own GRUB revisions and patches, with its own GRUB configuration file (that could be uniquely optimised for it). * **Fix vboot build issue when running lbmk in i686 (32-bit) host machines**. The patch, courtesy of *Luke T. Schumaker*, adapts vboot's vmlinuz extract @@ -393,12 +393,12 @@ The changes are, from newest to earliest: supported a configuration whereby SeaBIOS reads a `bootorder` file in CBFS, making it try to run the GRUB payload first, while still allowing you to interrupt by pressing ESC to bring up an alternative boot select menu. This - is now the *default*, on all x86 mainboards. This is a mitigation against + is now the *default*, on all x86 motherboards. This is a mitigation against future instability in GRUB because, if such issues happen again, it will not cause a brick since you can just use SeaBIOS instead, and skip booting to the GRUB payload (on the affected machines, BIOS GRUB still worked, which your distro provides and SeaBIOS executes it). *NOTE: GRUB was later made - into a multi-tree project, with certain mainboards using a version that + into a multi-tree project, with certain motherboards using a version that has the xHCI patches, if required, because the machines that actually need xHCI support were not affected by the bug referenced in issue 216.* * Main build script: Check SUID before checking Git name/email, otherwise the diff --git a/site/news/libreboot20241008.md b/site/news/libreboot20241008.md index 20ac041..baf52f9 100644 --- a/site/news/libreboot20241008.md +++ b/site/news/libreboot20241008.md @@ -70,7 +70,7 @@ The following boards have been added since the Libreboot 20240612 release: ### About the Dell Latitude ports These are yet more Ivybridge (Intel 3rd gen) and Sandybridge (Intel 2nd gen) -mainboards, using the same EC as on other Latitudes supported in Libreboot, so +motherboards, using the same EC as on other Latitudes supported in Libreboot, so they are all internally flashable from the factory firmware. Installation instructions, pertaining to Dell Latitude models, can be found on @@ -106,7 +106,7 @@ Mate Kukri's excellent *[deguard](https://review.coreboot.org/admin/repos/deguar utility is automatically used at build time, to modify the ME, which has a bug on that platform allowing arbitrary execution. Using this bug, Mate was able to disable the Intel Boot Guard, on this 7th gen -mainboard. Without such a hack, coreboot would have previously been impossible! +motherboard. Without such a hack, coreboot would have previously been impossible! I've made some fixes on top of it myself: adding HDA verb configuration, and a VBT file. Mate will incorporate these changes in the patchset, which is still @@ -119,7 +119,7 @@ is also working on a ThinkPad T480 port, that is not yet ready on this day (the port is on Gerrit but lacks EC support at the moment). It may be possible to add many more Dell OptiPlex and other 7th gen (Intel -Kaby Lake) mainboards to coreboot, using this hack. The *Boot Guard* is Intel +Kaby Lake) motherboards to coreboot, using this hack. The *Boot Guard* is Intel DRM that normally checks a cryptographic signature on the bootblock in the machine, and that bootblock cannot be changed. Various other hacks have also been discovered in the past, such as Trammell @@ -168,7 +168,7 @@ The changes are as follows: A bug in MEv11, on earlier revisions, enables arbitrary code execution. Mate was able to exploit this bug, to disable the Intel Boot Guard, which is handled by the Intel ME. Currently used on the Dell OptiPlex 3050 Micro, but - could be expanded to support more mainboards. (**yes, you could have a libre + could be expanded to support more motherboards. (**yes, you could have a libre ME firmware in the future, because of this bug! Though the Intel ME is still required, albeit it with this hack and lbmk also runs `me_cleaner`**) * Relative to audit6: `lib.sh`: New `mk()` function can be used as shorthand @@ -203,7 +203,7 @@ The changes are as follows: enabling `CONFIG_PAYLOAD_NONE` exclusively. However, advanced users may wish to use something else such as Tianocore, which Libreboot may/will not provide (with Tianocore it's **will not**). Simply set `build_depend=""` - in the `target.cfg` file for a given mainboard, and then enable a payload + in the `target.cfg` file for a given motherboard, and then enable a payload under coreboot's menuconfig interface, or by direct modification of the defconfig file. When `CONFIG_PAYLOAD_NONE` is not set, lbmk will skip adding a payload, because it's a given that then coreboot's own build system @@ -252,7 +252,7 @@ The changes are as follows: downloading of vendor files, without needing specific hacks to be hardcoded in `script/trees`. The `./update trees -b coreboot TREE utils` command is no longer available; instead, do `./update trees -d coreboot TREE`; if - the TREE argument is instead an actual mainboard target, it also does the + the TREE argument is instead an actual motherboard target, it also does the vendor file download, if required. The `./vendor download` command is still available, and multiple board names can now be provided as argument, because for example, `./build roms x220_8mb x230_12mb` would @@ -309,12 +309,12 @@ The changes are as follows: single-tree projects, defined *by argument*, but it was quite error prone and there's no clean way to otherwise do it. We don't use the script this way, anywhere in lbmk, and users are advised the same. -* **`script/roms`: *Only* Support SeaBIOS and Sea*GRUB*, on x86 mainboards**. +* **`script/roms`: *Only* Support SeaBIOS and Sea*GRUB*, on x86 motherboards**. SeaGRUB is a configuration whereby SeaBIOS starts first, but immediately tries to load GRUB from the flash. This complements the other change, listed below. We will no longer provide configurations where GRUB is the primary payload, precisely to mitigate the same issue as described below (lbmk issue 216). - If *GRUB* is enabled, on a given mainboard, SeaBIOS-only setups are not + If *GRUB* is enabled, on a given motherboard, SeaBIOS-only setups are not provided; only SeaGRUB is provided. You can press ESC in the SeaGRUB menu, to access other boot methods besides *GRUB from flash*, so you can use it in the same way; additionally, you can remove the `bootorder` file from CBFS @@ -381,7 +381,7 @@ The changes are as follows: This mkhelper config also integrates `include/rom.sh`, containing these functions. This replicates the functionality originally provided by `script/roms`. -* coreboot: Set `build_depend` on `target.cfg` files for specific mainboards. +* coreboot: Set `build_depend` on `target.cfg` files for specific motherboards. This is used to manually specify which GRUB and SeaBIOS trees should be compiled, required when compiling for a specific target, for the next stage where a payload is added to the coreboot image, because lbmk does diff --git a/site/news/libreboot20241206.Revisions.md b/site/news/libreboot20241206.Revisions.md index 3595d7d..aec9d61 100644 --- a/site/news/libreboot20241206.Revisions.md +++ b/site/news/libreboot20241206.Revisions.md @@ -122,7 +122,7 @@ Revision 7 (18 December 2024) ---------- Added support for fetching ThunderBolt firmware and padding it, on ThinkPad -T480 and T480s mainboards. This can be used for externally flashing the newer +T480 and T480s motherboards. This can be used for externally flashing the newer firmware update, without the need to boot Windows to use Lenovo's own updater. Revision 8 (6 January 2025) diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 0c9fe5e..56b32f9 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -56,7 +56,7 @@ implementation; that machine could not originally do UEFI. This page lists all changes made since the *Libreboot 20241008* release. Since Libreboot 20241206 is a stable release, there has been a more conservative focus on fixing bugs and in general polishing, though several interesting features -have been added, in addition to numerous new mainboards. +have been added, in addition to numerous new motherboards. Summarised list of changes ------------------------- @@ -84,7 +84,7 @@ In descending order from latest changes to earliest changes: generally for any MEv11-based board, whereas the previous version contained hacky hardcoded logic for only the Dell OptiPlex 3050 Micro. In this Libreboot release, deguard supports the 3050, but also the ThinkPad T480 and T480S, - providing machine-specific ME configurations for each mainboard. Mate's new + providing machine-specific ME configurations for each motherboard. Mate's new deguard implementation essentially does the same thing as Intel's FITC tool, though with a much more terse and minimalist design. It could be expanded for many other things in the future, related to Intel ME. @@ -143,7 +143,7 @@ In descending order from the latest changes to the earliest changes: boards will have U-Boot tweaks made to them, in subsequent hotfixes to the Libreboot 20241206 release, and hotfixes to U-Boot itself are also likely, since U-Boot still requires a lot more testing. U-Boot does work quite well - on a number of tested mainboards; if yours works, or doesn't work, please get + on a number of tested motherboards; if yours works, or doesn't work, please get in touch with the Libreboot project, so that a tally can be kept. * Added Libreboot branding/versioning to the U-Boot bootflow menu, showing the Libreboot logo instead of the U-Boot one, and with a purple background @@ -206,7 +206,7 @@ changes to the earliest changes): on the host's x86\_64 toolchain, on an x86\_64 host. * Enabled the legacy 8254 timer on Dell OptiPlex 3050 Micro, to work around a hanging bug in SeaBIOS. This board was previously GRUB only, but now once again - uses a more flexible SeaGRUB setup like other mainboards do. The static option + uses a more flexible SeaGRUB setup like other motherboards do. The static option table was also disabled. * Merged a patch from Nicholas Chin, that tells the MEC5035 EC to send a correct shutdown signal to the operating system when the power button is pressed. @@ -299,7 +299,7 @@ This log is relative to Libreboot 20241008: * 0c7fb21a062 enable the serial console on thinkpad t60 * eb14a176bc8 Only boot 32-bit u-boot from grub, 64 from seabios * 279e69172f7 make the u-boot grub menuentry more useful -* fdbdf0449b3 Re-enable U-Boot x86 on real mainboards +* fdbdf0449b3 Re-enable U-Boot x86 on real motherboards * b549d1e5f38 u-boot x86 serial/ns16550: disable UART as needed * eba73c778a8 Disable U-Boot x86 except on Qemu * 4bc6ca545e7 fix U-Boot hotkey mention in grub.cfg diff --git a/site/news/microcode.md b/site/news/microcode.md index 74319a0..7f84567 100644 --- a/site/news/microcode.md +++ b/site/news/microcode.md @@ -21,9 +21,9 @@ about microcode on the [FAQ](../faq.md#microcode) and In the next Libreboot releases, ROM images that *exclude* CPU microcode updates will once again be available. Libreboot's [Binary Blob Reduction -Policy](policy.md) dictates that each mainboard must be provided with **as few** +Policy](policy.md) dictates that each motherboard must be provided with **as few** binary blobs as possible, ideally **none**. *At present*, *all* x86 and ARM -mainboards supported in Libreboot (in `lbmk.git` and in releases) can boot +motherboards supported in Libreboot (in `lbmk.git` and in releases) can boot with entirely [free software](https://writefreesoftware.org/), requiring *zero* vendor files of any kind within *coreboot*. @@ -37,7 +37,7 @@ these, or mitigate their existence (for example, `me_cleaner` is used on newer Intel platforms). One exception made in that policy is that CPU microcode updates *must* be -provided by default, on all x86 mainboards. The ARM platforms do not use +provided by default, on all x86 motherboards. The ARM platforms do not use microcode at all. This is a correct policy, because these updates fix critical security and stability issues in the silicon; more information about that can be found [here](policy.md#more-detailed-insight-about-microcode). Since @@ -81,7 +81,7 @@ The change was implemented by [this patch](https://browse.libreboot.org/lbmk.git/commit/?id=f338697b96757977d2a14da00a91236595704fed) on 19 June 2023, in the Libreboot build system. -In `board.cfg` for each mainboard defined (in Libreboot's build system, lbmk), +In `board.cfg` for each motherboard defined (in Libreboot's build system, lbmk), the following entries are available: * `microcode_required="n" or "y"` (it's "n" on ALL boards) @@ -102,14 +102,14 @@ If `microcode_required="n"`, the given ROM image `filename.rom` is either: * If no microcode file exists within it already, such as on ARM - mainboards, the ROM is simply copied to: `filename_nomicrocode.rom` + motherboards, the ROM is simply copied to: `filename_nomicrocode.rom` * If the ROM contains microcode (default on most x86 boards, except Qemu or in rare cases where none are advised), `filename.rom` is retained and is copied to `filename_nomicrocode.rom`, and the CPU microcode update file shall be removed from `filename_nomicrocode.rom`. What this means is that ROMs *with* OR *without* microcode will be present, -where applicable, on ROM images for each given mainboard. This will be the case +where applicable, on ROM images for each given motherboard. This will be the case by default, for ROM images provided in the next release of Libreboot and all releases that follow. @@ -119,7 +119,7 @@ Example: * `seabios_e6400_4mb_libgfxinit_txtmode_noblobs_nomicrocode.rom` It is *strongly* recommended, by the Libreboot project, that you -do *not* use the `_nomicrocode` ROMs on x86 mainboards. These updates +do *not* use the `_nomicrocode` ROMs on x86 motherboards. These updates are *required* to implement stable x86 ISA, otherwise your CPU will behave in strange, unpredictable ways, which could cause severe bugs in software that cause *real* issues. Issues such as data loss. @@ -143,7 +143,7 @@ is what people would otherwise use; thus, Libreboot's modern policy is pragmatic, advancing further the cause of *software freedom*. By contrast, Libreboot's previous policy was to *ban all binary blobs*, which -meant that many mainboards from coreboot were excluded. This resulted in less +meant that many motherboards from coreboot were excluded. This resulted in less people achieving a level of software freedom, because to this day, nothing quite like Libreboot exists with the scope and ambition that it has. Libreboot makes coreboot as easy to use as possible for normal, non-technical people who @@ -152,7 +152,7 @@ like the idea of coreboot, but are not competent to configure it from scratch. Accordingly, the old Libreboot policy, prior to November 2022, *harmed* the Free Software movement. Such harm was *corrected* in November 2022 and, going forward, it is the intention of the Libreboot project to eventually have -build targets *for every mainboard that coreboot supports!* +build targets *for every motherboard that coreboot supports!* ARM platforms ------------- diff --git a/site/news/policy.de.md b/site/news/policy.de.md index 9d8136e..da0acd8 100644 --- a/site/news/policy.de.md +++ b/site/news/policy.de.md @@ -8,7 +8,7 @@ Einleitung Dieser Artikel beschreibt die *Prinzipien* die das Libreboot Projekt definieren. Für Informationen darüber *wie diese Prinzipien in der Praxis angewendet werden*, bitte lies diesen Artikel stattdessen: [Software and hardware -freedom status for each mainboard supported by Libreboot](../freedom-status.md) +freedom status for each motherboard supported by Libreboot](../freedom-status.md) Libreboot's Richtlinie ist für jeden Benutzer so viel Software Freiheit zu bieten wie möglich, auf jeglichem Bit von unterstützter Hardware, und @@ -68,8 +68,8 @@ Blob *reduction* policy Coreboot, upon which Libreboot is based, is mostly libre software but does require vendor files on some platforms. A most common example might be raminit (memory controller initialisation) or video framebuffer initialisation. The -coreboot firmware uses certain vendor code for some of these tasks, on some mainboards, -but some mainboards from coreboot can be initialised with 100% libre source +coreboot firmware uses certain vendor code for some of these tasks, on some motherboards, +but some motherboards from coreboot can be initialised with 100% libre source code, which you can inspect, and compile for your use. Libreboot deals with this situation in a *strict* and *principled* way. The @@ -97,8 +97,8 @@ The libreboot project has the following policy: fact *required* as per libreboot policy. These updates fix CPU bugs, including security bugs, and since the CPU already has non-libre microcode burned into ROM anyway, the only choice is either *x86* or *broken x86*. Thus, libreboot - will only allow coreboot mainboard configurations where microcode updates - are *enabled*, if available for the CPU on that mainboard. + will only allow coreboot motherboard configurations where microcode updates + are *enabled*, if available for the CPU on that motherboard. [Releases after 20230423 will provide separate ROM images with microcode excluded, alongside the default ones that include microcode.](microcode.md) * Intel Management Engine: in the libreboot documentation, words *must* be written @@ -144,7 +144,7 @@ FREEDOM CATALOG A *[freedom status](../freedom-status.md)* page should also be made available, educating people about the software freedom status on each machine supported by the Libreboot build system. Please read: -[Software and hardware freedom status for each mainboard supported by +[Software and hardware freedom status for each motherboard supported by Libreboot](../freedom-status.md). It is desirable to see a world where all hardware and software is libre, under @@ -261,7 +261,7 @@ You may ask: should the other firmwares be free too? The answer is **yes**, but it's complicated: it's not always practical to even study those firmwares. For example, there are so many webcams out there, so many SSDs, so many devices all doing the same thing, but implemented differently. Coreboot is already -hard enough, and there are so many mainboards out there. +hard enough, and there are so many motherboards out there. For example: every SSD has its own controller, and it has to do a lot of error correction at great speed, to mitigate the inherent unreliability of @@ -381,7 +381,7 @@ proprietary software at all, but in order to have less of it, we have to have more - for now. Let's take an extreme example: what if coreboot was entirely binary blobs -for a given mainboard? Coreboot itself only initialises the hardware, and +for a given motherboard? Coreboot itself only initialises the hardware, and jumps to a payload in the flash; in this case, the payload (e.g. GRUB) would still be free software. Surely, all free firmware would be better, but this is still an improvement over the original vendor firmware. The diff --git a/site/news/policy.md b/site/news/policy.md index 516855d..f16916d 100644 --- a/site/news/policy.md +++ b/site/news/policy.md @@ -7,7 +7,7 @@ Free as in freedom! This article describes the *principles* that govern the Libreboot project. For information about *how those principles are applied in practise*, please read -this article instead: [Software and hardware freedom status for each mainboard +this article instead: [Software and hardware freedom status for each motherboard supported by Libreboot](../freedom-status.md) Libreboot's policy is to provide as much @@ -59,8 +59,8 @@ Blob *reduction* policy Coreboot, upon which Libreboot is based, is mostly libre software but does require certain vendor code on some platforms. A most common example might be raminit (memory controller initialisation) or video framebuffer initialisation. The -coreboot firmware uses certain vendor code for some of these tasks, on some mainboards, -but some mainboards from coreboot can be initialised with 100% libre source +coreboot firmware uses certain vendor code for some of these tasks, on some motherboards, +but some motherboards from coreboot can be initialised with 100% libre source code, which you can inspect, and compile for your use. Libreboot deals with this situation in a *strict* and *principled* way. The @@ -88,8 +88,8 @@ The libreboot project has the following policy: fact *required* as per libreboot policy. These updates fix CPU bugs, including security bugs, and since the CPU already has non-libre microcode burned into ROM anyway, the only choice is either *x86* or *broken x86*. Thus, libreboot - will only allow coreboot mainboard configurations where microcode updates - are *enabled*, if available for the CPU on that mainboard. + will only allow coreboot motherboard configurations where microcode updates + are *enabled*, if available for the CPU on that motherboard. [Releases after 20230423 will provide separate ROM images with microcode excluded, alongside the default ones that include microcode.](microcode.md) * Intel Management Engine: in the libreboot documentation, words *must* be written @@ -209,7 +209,7 @@ FREEDOM CATALOG A *[freedom status](../freedom-status.md)* page should also be made available, educating people about the software freedom status on each machine supported by the Libreboot build system. Please read: -[Software and hardware freedom status for each mainboard supported by +[Software and hardware freedom status for each motherboard supported by Libreboot](../freedom-status.md). It is desirable to see a world where all hardware and software is libre, under @@ -323,7 +323,7 @@ You may ask: should the other firmwares be free too? The answer is **yes**, but it's complicated: it's not always practical to even study those firmwares. For example, there are so many webcams out there, so many SSDs, so many devices all doing the same thing, but implemented differently. Coreboot is already -hard enough, and there are so many mainboards out there. +hard enough, and there are so many motherboards out there. For example: every SSD has its own controller, and it has to do a lot of error correction at great speed, to mitigate the inherent unreliability of @@ -443,7 +443,7 @@ proprietary software at all, but in order to have less of it, we have to have more - for now. Let's take an extreme example: what if coreboot was entirely binary blobs -for a given mainboard? Coreboot itself only initialises the hardware, and +for a given motherboard? Coreboot itself only initialises the hardware, and jumps to a payload in the flash; in this case, the payload (e.g. GRUB) would still be free software. Surely, all free firmware would be better, but this is still an improvement over the original vendor firmware. The diff --git a/site/news/policy.uk.md b/site/news/policy.uk.md index 4b7eef4..1ce0d15 100644 --- a/site/news/policy.uk.md +++ b/site/news/policy.uk.md @@ -252,7 +252,7 @@ You may ask: should the other firmwares be free too? The answer is **yes**, but it's complicated: it's not always practical to even study those firmwares. For example, there are so many webcams out there, so many SSDs, so many devices all doing the same thing, but implemented differently. Coreboot is already -hard enough, and there are so many mainboards out there. +hard enough, and there are so many motherboards out there. For example: every SSD has its own controller, and it has to do a lot of error correction at great speed, to mitigate the inherent unreliability of @@ -372,7 +372,7 @@ proprietary software at all, but in order to have less of it, we have to have more - for now. Let's take an extreme example: what if coreboot was entirely binary blobs -for a given mainboard? Coreboot itself only initialises the hardware, and +for a given motherboard? Coreboot itself only initialises the hardware, and jumps to a payload in the flash; in this case, the payload (e.g. GRUB) would still be free software. Surely, all free firmware would be better, but this is still an improvement over the original vendor firmware. The diff --git a/site/news/ports202402.md b/site/news/ports202402.md index 6b8b2f8..417b59e 100644 --- a/site/news/ports202402.md +++ b/site/news/ports202402.md @@ -4,7 +4,7 @@ Libreboot is a free/open source BIOS/UEFI replacement, providing boot firmware that initialises the hardware in your computer, to then load an operating system (e.g. Linux/BSD). It provides many additional benefits such as fast boot speeds, greater security and greater customisation, but the *primary* benefit is [software freedom](https://writefreesoftware.org/learn). -Libreboot has had a slew of new mainboards added recently. The work doesn't +Libreboot has had a slew of new motherboards added recently. The work doesn't stop. Many more will be added, for the next Libreboot release. The boards are: diff --git a/site/news/safety.md b/site/news/safety.md index 00883bd..14ce48f 100644 --- a/site/news/safety.md +++ b/site/news/safety.md @@ -46,7 +46,7 @@ Article **If unsure, just follow this guide. If you follow this guide on a board that does not need vendor files, the resulting ROM images will be identical and therefore nothing will have happened. The inject script is designed to insert -certain files, only if required on a given mainboard.** +certain files, only if required on a given motherboard.** **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. @@ -64,11 +64,11 @@ to any system that requires vendor code to be inserted inside ROM images.** 20240612, 20241008 and 20241206) **UPDATE (16 August 2023): This also applies to the recently added Dell -Precision T1650 mainboard.** +Precision T1650 motherboard.** As I write this post, [Libreboot 20230625](libreboot20230625.md) recently came out. There's technically nothing unsafe about the release itself, but certain -users have been bricking their machines, on the following mainboards: +users have been bricking their machines, on the following motherboards: * Sandybridge platforms (e.g. ThinkPad X220, T420) * Ivybridge platforms (e.g. ThinkPad X230, T430) @@ -102,7 +102,7 @@ Instructions are given here, for how to insert these files on release ROMs: [Insert vendor files on Sandybridge/Ivybridge/Haswell](../docs/install/ivy_has_common.md) The linked guide makes use of vendor scripts, that -handles *all* firmwares, automatically for each given mainboard. It can +handles *all* firmwares, automatically for each given motherboard. It can automatically download and insert all of the following: * Intel ME firmware diff --git a/site/news/update202308.md b/site/news/update202308.md index 9f76866..f4112b9 100644 --- a/site/news/update202308.md +++ b/site/news/update202308.md @@ -16,7 +16,7 @@ Introduction ### SeaBIOS and GRUB updates -For *all* mainboards that provide GRUB or SeaBIOS revisions, new versions of +For *all* motherboards that provide GRUB or SeaBIOS revisions, new versions of these payloads are now used in Libreboot, as implemented by these patches: * GRUB is now on version 2.12-rc1 from 10 July 2023, where previously it was on diff --git a/site/news/x201.md b/site/news/x201.md index a9bffff..9b5f0e4 100644 --- a/site/news/x201.md +++ b/site/news/x201.md @@ -4,7 +4,7 @@ Builds have also been removed from rsync, and build logic has been removed from lbmk. It was discovered that fan controls fail on this -mainboard, when you use a neutered Intel ME image. This issue seems +motherboard, when you use a neutered Intel ME image. This issue seems to only affect these older arrandale machines; the issue was discovered on X201 but probably affects the thinkpad T410, and other mobile arrandale machines. diff --git a/site/other.md b/site/other.md index caab302..cdbe3e2 100644 --- a/site/other.md +++ b/site/other.md @@ -82,7 +82,7 @@ Several coreboot ports (e.g. MSI Z690-A PRO) were implemented directly by the Dasharo project, and later upstreamed into the regular coreboot project. Dasharo has a special emphasis on commercial application, providing tailored -coreboot images for each supported mainboard, with an emphasis on stability. +coreboot images for each supported motherboard, with an emphasis on stability. It's a very different approach than Libreboot's approach; Libreboot provides a more generalised design in its build system and infrastructure. diff --git a/site/tasks/index.md b/site/tasks/index.md index 0bafb80..400742b 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -84,14 +84,14 @@ is not exhaustive, it just lists boards that are interesting to us at this time: * HP EliteBook Folio 9480m * HP EliteBook 8770w * HP EliteBook 840 G2 (not in coreboot yet, but should be similar to 820 G2) -* HP Z220 CMI and SFF mainboards -* MSI PRO Z690-A mainboard (supported by Dasharo, not sure about coreboot) - - also, Dasharo supports several more mainboards that aren't in coreboot +* HP Z220 CMI and SFF motherboards +* MSI PRO Z690-A motherboard (supported by Dasharo, not sure about coreboot) - + also, Dasharo supports several more motherboards that aren't in coreboot proper. * KGPE-D16 and KCMA-D8: use the Dasharo fork of coreboot, instead of coreboot `4.11_branch`, because Dasharo's version is much more up to date and more reliable with raminit. D8 isn't supported by Dasharo, but it's - not much different code-wise to the D16 mainboard, so differences + not much different code-wise to the D16 motherboard, so differences in coreboot `4.11_branch` could be adapted to provide a Dasharo port. ### ThinkPad T430s and T431s @@ -123,7 +123,7 @@ Not yet supported, but interesting for the project. Separated thus: already supported by coreboot: -* [ASUS P5Q mainboard](https://doc.coreboot.org/mainboard/asus/p5q.html) (ICH10 / i82801jx), +* [ASUS P5Q motherboard](https://doc.coreboot.org/mainboard/asus/p5q.html) (ICH10 / i82801jx), known variants, e.g.: Pro, C, L-Pro, SE * Scan coreboot code for ICH9/ICH10 systems, or boards with x4x/gm45 based northbridges. Many of these can boot blobless. @@ -296,7 +296,7 @@ being maintained anymore, so they were dropped. Some of those boards are still quite decent today. Various efforts here and there have revived some of them, e.g. the Dasharo project. -Also referenced there: Biostar A68N-5200 mainboard. Check +Also referenced there: Biostar A68N-5200 motherboard. Check coreboot `4.18_branch` for these boards. Coreboot started removing the AGESA boards after release 4.11. @@ -501,7 +501,7 @@ before [argon2 kdf support](../news/argon2.md) was merged in Libreboot GRUB. Seek QUBES endorsement ---------------------- -Libreboot is compatible with Qubes, on several supported mainboards. This could +Libreboot is compatible with Qubes, on several supported motherboards. This could be audited, to provide a complete list. Qubes has a page on their website which lists compatible devices. @@ -605,7 +605,7 @@ This is the preferred method and should be the default (enabled by default), because it can be done from GRUB. So, it could be provided on GRUB setups. We could make it so that all menuentries in the default Libreboot GRUB menu -enable this, when possible on a given mainboard. The GRUB *shell* would not +enable this, when possible on a given motherboard. The GRUB *shell* would not enable it, and special menuentries that don't enable it could be provided (or an entirely separate GRUB config, e.g. `grub_unprotected.cfg`). @@ -842,11 +842,11 @@ or it isn't a VGA ROM. We currently extract an nvidia ROM for certain models of Dell Latitude E6400, but the logic is more or less hardcoded. The script at `script/vendor/download` auto-downloads vendor firmwares needed -on certain mainboards, during build time. Libreboot's build system +on certain motherboards, during build time. Libreboot's build system uses the script at `script/vendor/inject` to add or remove such files after the fact, on release ROMs, because those firmwares are *deleted* at release time. This work began mostly after mid-2022, and has since been expanded to -cover many types of firmwares, used on various mainboards. +cover many types of firmwares, used on various motherboards. Investigate 16MB flash setups ----------------------------- @@ -936,7 +936,7 @@ documentation whenever possible. Static compiled utils in releases --------------------------------- -We curerntly only provide binaries of the firmware itself, for each mainboard, +We curerntly only provide binaries of the firmware itself, for each motherboard, but we do not provide utilities compiled. We provide only source code, and the user is expected to compile utilities from source. @@ -949,7 +949,7 @@ Download repositories in bulk At present, lbmk does what it needs to do, and downloads repositories only as required, upon each stage of the boot process. For example, it may download -gnulib when downloading GRUb, after having maybe built 5 mainboards all with +gnulib when downloading GRUb, after having maybe built 5 motherboards all with only SeaBIOS, having built SeaBIOS before those 5 - it doesn't build SeaBIOS and GRUB before the 5. @@ -1049,9 +1049,9 @@ fewer bytes of code within it. From an lbmk perspective, the upsides are largely ignored because we want to build hundreds and hundreds of ROM images, fast. That means reducing the amount -of time spent to compile for each mainboard. +of time spent to compile for each motherboard. -We currently do this on each mainboard: +We currently do this on each motherboard: * libgfxinit with text mode startup, if possible * libgfxinit with coreboot framebuffer, if possible @@ -1270,7 +1270,7 @@ This might be useful for: ### Partial coreboot re-builds A lot of the time in lbmk, we are building multiple variants of the same -mainboard, for different setups. We could skip a lot of the re-building. +motherboard, for different setups. We could skip a lot of the re-building. This pretty much goes hand in hand with the other entry on this TODO page, about spliting up the various stages in coreboot, and handling CBFS generation within lbmk. @@ -1605,8 +1605,8 @@ It allows the host CPU to access all of VRAM at once, without 32-bit legacy code. The above repository is a proof of concept that shows it working, though the work there is not directly applicable to us. -This feature is only supported commercially on much newer mainboards, and is -unavailable on many older mainboards, but it can be added if the firmware is +This feature is only supported commercially on much newer motherboards, and is +unavailable on many older motherboards, but it can be added if the firmware is updated. This is one of the benefits of the *freedom* coreboot gives you. We could enable this on all the older desktop machines, where otherwise their factory firmware does not and will not enable it (and the above link is for From 712f7395a1dc8cedb490e7084a0f31647d389bc4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 18:27:00 +0000 Subject: [PATCH 295/399] add favicon to template Signed-off-by: Leah Rowe --- site/template.de.include | 1 + site/template.include | 1 + site/template.it.include | 1 + site/template.uk.include | 1 + site/template.zh-cn.include | 1 + 5 files changed, 5 insertions(+) diff --git a/site/template.de.include b/site/template.de.include index 49f49e8..ff45a34 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -7,6 +7,7 @@ + diff --git a/site/template.include b/site/template.include index 3e616e7..32a111a 100644 --- a/site/template.include +++ b/site/template.include @@ -7,6 +7,7 @@ + diff --git a/site/template.it.include b/site/template.it.include index 4292fd5..d244527 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -7,6 +7,7 @@ + diff --git a/site/template.uk.include b/site/template.uk.include index 77f03de..00caafc 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -7,6 +7,7 @@ + diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index f193ac8..17b4cf6 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -7,6 +7,7 @@ + From 121325f3fb332dcaea49655babdd659336519073 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 18:38:16 +0000 Subject: [PATCH 296/399] add alt tags to homepage images (english) i can't really be bothered to do every image on the site today. i'll add it to my notes and do it another day. Signed-off-by: Leah Rowe --- site/docs/install/c201.md | 4 ++-- site/index.md | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/site/docs/install/c201.md b/site/docs/install/c201.md index 8858ab1..be81fc8 100644 --- a/site/docs/install/c201.md +++ b/site/docs/install/c201.md @@ -82,9 +82,9 @@ below. The write protect screw is located next to the SPI flash chip, circled in red in the picture below. It has to be removed. Refer to the following photos: -[![Screws](https://av.libreboot.org/c201/screws.jpg)](https://av.libreboot.org/c201/screws.jpg) +![ASUS Chromebook C201 underside](https://av.libreboot.org/c201/screws.jpg "ASUS Chromebook C201 underside") -[![WP screw](https://av.libreboot.org/c201/wp-screw.jpg)](https://av.libreboot.org/c201/wp-screw.jpg) +![ASUS Chromebook C201 write protect screw](https://av.libreboot.org/c201/wp-screw.jpg "ASUS Chromebook C201 write protect screw") The write protect screw can be put back in place later, when the device is known to be in a working state. diff --git a/site/index.md b/site/index.md index 6b90aca..e69be70 100644 --- a/site/index.md +++ b/site/index.md @@ -14,7 +14,7 @@ system. [Linux](docs/linux/) and [BSD](docs/bsd/) are well-supported. Help is available via [\#libreboot](https://web.libera.chat/#libreboot) on [Libera](https://libera.chat/) IRC. - +ThinkPad T480 running LibrebootThinkPad T480 running Libreboot You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, aswell as send your compatible hardware @@ -40,7 +40,7 @@ is *why* Libreboot exists. Overview of Libreboot design ---------------------------- - +HP EliteBook 2560p and Folio 9470m running Libreboot Libreboot provides [coreboot](https://coreboot.org/) for [machine initialisation](https://doc.coreboot.org/getting_started/architecture.html), @@ -68,7 +68,7 @@ still [reconfigure](docs/maintain/) Libreboot however you wish. Why use Libreboot? ------------------ - +Various Lenovo ThinkPads running Libreboot If you're already inclined towards free software, maybe already a coreboot user, Libreboot makes it easier to either get started or otherwise maintain coreboot @@ -115,7 +115,7 @@ you [wrest](https://trmm.net/TOCTOU/) back such control. Libreboot is not a fork of coreboot ----------------------------------- - +Dell Precision T1650 running Libreboot In fact, Libreboot tries to stay as close to *stock* coreboot as possible, for each board, but with many different types of configuration provided @@ -146,7 +146,7 @@ The [tasks page](tasks/) lists tasks that could (will) be worked on. It will be updated over time as more tasks are added/completede. If you want to help, you could pick one of these tasks and work on it. - +GRUB boot loader in Libreboot The *single* biggest way you can help is to *add* new motherboards in Libreboot, by submitting a config. Anything coreboot supports can be integrated in From c910f813c41f0e5164eba050a2534e88968386fc Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 18:44:27 +0000 Subject: [PATCH 297/399] s/aswell/as well/ Signed-off-by: Leah Rowe --- site/docs/install/ich9utils.md | 2 +- site/docs/maintain/index.md | 2 +- site/docs/misc/index.md | 2 +- site/index.de.md | 2 +- site/index.it.md | 2 +- site/index.md | 4 ++-- site/index.uk.md | 2 +- site/news/10.md | 2 +- site/news/audit2.md | 2 +- site/news/kgpe-d16.md | 2 +- site/news/libreboot20140720.md | 2 +- site/news/libreboot20210522.md | 2 +- site/news/libreboot20221214.md | 2 +- site/news/libreboot20230319.md | 4 ++-- site/news/libreboot20230625.md | 2 +- site/news/policy.md | 2 +- site/news/ports202402.md | 2 +- site/news/usa-libre-part2.md | 2 +- site/news/usa-libre.md | 2 +- site/tasks/index.md | 4 ++-- 20 files changed, 23 insertions(+), 23 deletions(-) diff --git a/site/docs/install/ich9utils.md b/site/docs/install/ich9utils.md index d161955..324f9c2 100644 --- a/site/docs/install/ich9utils.md +++ b/site/docs/install/ich9utils.md @@ -209,7 +209,7 @@ not rely on dumping the factory.rom image (whereas, ich9deblob does). Simply speaking, `ich9deblob` takes an original dump of the boot flash, where that boot flash contains a descriptor that defines the existence of Intel ME, and modifies it. The Intel Flash Descriptor is modified to disable the ME -region. It disables the ME itself aswell. The GbE region is moved to the +region. It disables the ME itself as well. The GbE region is moved to the location just after the descriptor. The BIOS region is specified as being after the descriptor+GbE regions, filling the rest of the boot flash. diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 4c617db..3387943 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -209,7 +209,7 @@ into copies of these images in files under `bin/`. However, modern lbmk now only puts coreboot images in `bin/`, with payloads included. If you still have `elf/` coreboot images in your lbmk tree, please do not -use them (and you may aswell delete them). +use them (and you may as well delete them). ### cache/ diff --git a/site/docs/misc/index.md b/site/docs/misc/index.md index 39adf9e..728c29e 100644 --- a/site/docs/misc/index.md +++ b/site/docs/misc/index.md @@ -84,7 +84,7 @@ There are also others like Minicom but Screen works nicely. By doing this before booting the X60/T60, you will see console output from libreboot. You will also see GRUB displaying on the serial output, -and you will be able to see MemTest86+ on the serial output aswell. You +and you will be able to see MemTest86+ on the serial output as well. You can also configure your distro so that a terminal (TTY) is accessible from the serial console. diff --git a/site/index.de.md b/site/index.de.md index 2fe49ce..451d23a 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -17,7 +17,7 @@ und [Libera](https://libera.chat/) IRC. You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, -on select hardware, aswell as send your compatible hardware +on select hardware, as well as send your compatible hardware for [Libreboot preinstallation](https://minifree.org/product/installation-service/). The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. diff --git a/site/index.it.md b/site/index.it.md index 042f9da..0a4a77c 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -15,7 +15,7 @@ su [Libera](https://libera.chat/). You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, -on select hardware, aswell as send your compatible hardware +on select hardware, as well as send your compatible hardware for [Libreboot preinstallation](https://minifree.org/product/installation-service/). The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. diff --git a/site/index.md b/site/index.md index e69be70..95d5eb7 100644 --- a/site/index.md +++ b/site/index.md @@ -17,7 +17,7 @@ on [Libera](https://libera.chat/) IRC. ThinkPad T480 running LibrebootThinkPad T480 running Libreboot You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, -on select hardware, aswell as send your compatible hardware +on select hardware, as well as send your compatible hardware for [Libreboot preinstallation](https://minifree.org/product/installation-service/). The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. @@ -143,7 +143,7 @@ users](docs/install/). ### How to help The [tasks page](tasks/) lists tasks that could (will) be worked on. It will -be updated over time as more tasks are added/completede. If you want to help, +be updated over time as more tasks are added/completed. If you want to help, you could pick one of these tasks and work on it. GRUB boot loader in Libreboot diff --git a/site/index.uk.md b/site/index.uk.md index e625718..8324d0c 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -16,7 +16,7 @@ x-toc-enable: true You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, -on select hardware, aswell as send your compatible hardware +on select hardware, as well as send your compatible hardware for [Libreboot preinstallation](https://minifree.org/product/installation-service/). The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. diff --git a/site/news/10.md b/site/news/10.md index 9402cb3..45547c9 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -415,7 +415,7 @@ so I try to keep everything very simple. Several other desktop boards were also added during this period, such as the Gigabyte GA-G41M-ES2L board that was ported to coreboot by Damien Zammit. He was compensated for his work; I paid him 4000 AUD for the trouble. Arthur -Heymans contributed several ports aswell, and today still does extensive work +Heymans contributed several ports as well, and today still does extensive work on coreboot - both Damien and Arthur left the Libreboot project, after Libreboot became independent again. diff --git a/site/news/audit2.md b/site/news/audit2.md index 17bb9d5..d97ee15 100644 --- a/site/news/audit2.md +++ b/site/news/audit2.md @@ -17,7 +17,7 @@ Great care is always taken when writing for [lbmk](../docs/maintain/), which is Libreboot's build system, but in the past, auditing was always done ad-hoc. Since the start of 2023, auditing is now a main aspect of Libreboot development, and the result has been that the *quality* of Libreboot's build system has -improved greatly. The same care has been given to documentation aswell. +improved greatly. The same care has been given to documentation as well. Many bugs have been fixed, and the Libreboot build system (lbmk) is generally much more efficient now, compared to the Libreboot 20230625 release. The main diff --git a/site/news/kgpe-d16.md b/site/news/kgpe-d16.md index 315ccc9..839ac0c 100644 --- a/site/news/kgpe-d16.md +++ b/site/news/kgpe-d16.md @@ -27,7 +27,7 @@ me at my email address: [info@minifree.org](mailto:info@minifree.org) I'm also arranging for an assembled machine with KCMA-D8 in it to be sent to me - though I'm not yet sure if that will go through, so if you have one of -those aswell, I'd be interested too. +those as well, I'd be interested too. How I plan to re-add -------------------- diff --git a/site/news/libreboot20140720.md b/site/news/libreboot20140720.md index 7f603e8..1b68c12 100644 --- a/site/news/libreboot20140720.md +++ b/site/news/libreboot20140720.md @@ -38,7 +38,7 @@ Revisions for r20140720 (3rd beta) (20th July 2014) (resources/grub/background/) - Updated buildrom-withgrub to use background.jpg instead of background.png -- Updated buildrom-withgrub to use gnulove.jpg aswell +- Updated buildrom-withgrub to use gnulove.jpg as well - Updated resources/grub/config/macbook21/grub\*cfg to use gnulove.jpg background. - Updated resources/grub/config/{x60,t60,x60t}/grub\*cfg to use diff --git a/site/news/libreboot20210522.md b/site/news/libreboot20210522.md index 90ffe98..bf4078b 100644 --- a/site/news/libreboot20210522.md +++ b/site/news/libreboot20210522.md @@ -648,7 +648,7 @@ However, the following fixes were made for Lenovo X200 recently: This is relevant for Tianocore, a UEFI payload, which libreboot currently does not integrate for any boards, but Tianocore integration is planned in the future. Tianocore provides the option to use any UEFI-compliant operating - system, and this benefits Linux distributions aswell (it Just Works). + system, and this benefits Linux distributions as well (it Just Works). SMMSTORE is basically UEFI's answer to CMOS "NVRAM". it is a way to store configurations, in SPI flash. it's handled via SMM interrupts (SMIs). NOTE: SMMSTOREv2 is also becoming a thing now diff --git a/site/news/libreboot20221214.md b/site/news/libreboot20221214.md index d6e7dd7..cf3b716 100644 --- a/site/news/libreboot20221214.md +++ b/site/news/libreboot20221214.md @@ -268,7 +268,7 @@ These are takes from the git log of `lbmk.git`: osbmk Git changes ------------- -It's important to show the osboot changes aswell. Osboot only became part of +It's important to show the osboot changes as well. Osboot only became part of Libreboot last month, but the "reboot" of the osboot project happened around the start of 2022, when it was put back in sync with Libreboot at the time, so changes from then to now will be showed. The *last* change in osboot as diff --git a/site/news/libreboot20230319.md b/site/news/libreboot20230319.md index cbc737a..2f73031 100644 --- a/site/news/libreboot20230319.md +++ b/site/news/libreboot20230319.md @@ -58,7 +58,7 @@ The changes can be summarised, thus: * **LIBRE** raminit code now available, on Haswell boards (ThinkPad T440p and ThinkPad W541). This is using patches from Angel Pons (hell on coreboot IRC), that are currently still in review on coreboot master. The *old* configs - that use `mrc.bin` for raminit are still available aswell, so this release + that use `mrc.bin` for raminit are still available as well, so this release contains ROMs with libre raminit *and* ROMs with vendor raminit. The reasons are explained below. * **FIXED S3 suspend/resume on Haswell (T440p/W541)** - but only on configs @@ -132,7 +132,7 @@ The libre raminit comes from this patchset: The MRC vendor file (and Angel's replacement code) don't just do raminit, they -handle a few other init tasks aswell, including USB host controller. +handle a few other init tasks as well, including USB host controller. ### New boards, x86 diff --git a/site/news/libreboot20230625.md b/site/news/libreboot20230625.md index d8baa69..347cfa3 100644 --- a/site/news/libreboot20230625.md +++ b/site/news/libreboot20230625.md @@ -213,7 +213,7 @@ Newest changes first, oldest changes last: * gitclone (script): Check whether a given patch exists before applying. Works around a quirk in most shells where `*` will error out if no files exist. * download/grub (script): If downloading `gnulib` fails, scrap the *grub* - download aswell, and exit with non-zero status (fail). This is done because + download as well, and exit with non-zero status (fail). This is done because gnulib is a dependency of GRUB. * blobutil/inject (script): When inserting `gbe.bin`, check that the file actually exists, and exit with non-zero status (fail) otherwise. diff --git a/site/news/policy.md b/site/news/policy.md index f16916d..45d6aca 100644 --- a/site/news/policy.md +++ b/site/news/policy.md @@ -143,7 +143,7 @@ examples of how this very policy is implemented in Libreboot: graphics card enabled; more about Intel graphics is covered below. We could provide the VGA ROM for those extra chips, e.g. Nvidia graphics chips, but we don't. We configure the machines in such a way where the Intel graphics - is used, exclusively, so the dedicated GPU may aswell be turned off, and + is used, exclusively, so the dedicated GPU may as well be turned off, and it *is* turned off in such circumstances. The Intel graphics provide good enough performance and reliable operation for most people, and native initialisation code is available from coreboot to make use of the Intel GPU diff --git a/site/news/ports202402.md b/site/news/ports202402.md index 417b59e..a3d5481 100644 --- a/site/news/ports202402.md +++ b/site/news/ports202402.md @@ -19,7 +19,7 @@ upgrade options available. Notably, it is a *desktop* computer, available as *SFF* (similar to ITX) and *MT* (ATX) variants. It is also also sold with [Libreboot preinstalled](https://minifree.org/product/libreboot-9020/); -I sell these machines preinstalled, aswell as several others, to raise funds +I sell these machines preinstalled, as well as several others, to raise funds for the Libreboot project. Profits from Minifree sales directly fund the Libreboot project. I added this myself recently, based on patches from coreboot Gerrit. diff --git a/site/news/usa-libre-part2.md b/site/news/usa-libre-part2.md index 8fd8e59..e787b16 100644 --- a/site/news/usa-libre-part2.md +++ b/site/news/usa-libre-part2.md @@ -172,7 +172,7 @@ or Apple's profits. No, I'm referring to *yours*. With libre software, *you* have the freedom to make real money; I'm just one of many examples of people who do just that. With *software freedom*, you can take existing technology and build something completely new that becomes the Next Best Thing; everyone -else has this freedom aswell, and people share knowledge freely because of the +else has this freedom as well, and people share knowledge freely because of the culture that type of world inspires. It's the world we live in, now. The people of New Hampshire will benefit greatly, if such freedoms are diff --git a/site/news/usa-libre.md b/site/news/usa-libre.md index 3a86d23..3473036 100644 --- a/site/news/usa-libre.md +++ b/site/news/usa-libre.md @@ -60,7 +60,7 @@ detail. It's not very long. At first glance, it may not seem that the bill affects individuals, but don't be fooled; this is a hugely positive step forward for everyone! If the state is -using Libre Software, that most likely means it'll be used in education aswell. +using Libre Software, that most likely means it'll be used in education as well. Although perhaps not immediately and readily apparent, this is a stake in the heart of proprietary software's current dominance, because it would remove one diff --git a/site/tasks/index.md b/site/tasks/index.md index 400742b..df1da84 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -344,7 +344,7 @@ For UEFI purposes, U-Boot seems more mature, and it offers other features like SPL. As already stated, this is the preferred UEFI implementation for Libreboot, but uefistub is listed too because it's interesting. -Probably useless, since U-Boot is more complete. We may aswell use U-Boot, but +Probably useless, since U-Boot is more complete. We may as well use U-Boot, but uefistub will remain mentioned here for the time being. The context for uefistub is linuxboot-only setups; this is where uefistub can truly shine, specifically on ARM64 devices. @@ -1059,7 +1059,7 @@ We currently do this on each motherboard: This is often literally 3 different ROM images, for all of the above. It is possible to have a libgfxinit setup where SeaBIOS is the payload, so that VGA -ROMs can be executed aswell, but this has several issues, covered elsewhere on +ROMs can be executed as well, but this has several issues, covered elsewhere on this page. It would be nice if all of this could be runtime options instead. By "runtime", From 3f90f156c37df78d236a53f8b687c0db743b75e0 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 18:46:44 +0000 Subject: [PATCH 298/399] fix meta character encoding (utf-8) Signed-off-by: Leah Rowe --- site/template.de.include | 2 +- site/template.include | 2 +- site/template.it.include | 2 +- site/template.uk.include | 2 +- site/template.zh-cn.include | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/site/template.de.include b/site/template.de.include index ff45a34..1c89ccc 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -1,7 +1,7 @@ - + diff --git a/site/template.include b/site/template.include index 32a111a..29dda6a 100644 --- a/site/template.include +++ b/site/template.include @@ -1,7 +1,7 @@ - + diff --git a/site/template.it.include b/site/template.it.include index d244527..2ea72ec 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -1,7 +1,7 @@ - + diff --git a/site/template.uk.include b/site/template.uk.include index 00caafc..d98ae1a 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -1,7 +1,7 @@ - + diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index 17b4cf6..301b689 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -1,7 +1,7 @@ - + From fceaf19cd82a16bbad70e90cbf9eeecf1183004f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 19:04:27 +0000 Subject: [PATCH 299/399] link writefreesoftware.org aggressively Signed-off-by: Leah Rowe --- site/docs/install/c201.md | 5 +++-- site/docs/install/d945gclf.md | 5 +++-- site/docs/install/dell3050.md | 5 +++-- site/docs/install/dell7010.md | 3 ++- site/docs/install/dell780.md | 5 +++-- site/docs/install/dell9020.md | 5 +++-- site/docs/install/ga-g41m-es2l.md | 5 +++-- site/docs/install/hp2170p.md | 5 +++-- site/docs/install/hp2560p.md | 5 +++-- site/docs/install/hp2570p.md | 5 +++-- site/docs/install/hp8200sff.md | 5 +++-- site/docs/install/hp820g2.md | 5 +++-- site/docs/install/hp8460p.md | 5 +++-- site/docs/install/hp8470p.md | 5 +++-- site/docs/install/hp8560w.md | 5 +++-- site/docs/install/hp9470m.md | 5 +++-- site/docs/install/index.md | 4 +++- site/docs/install/ivy_has_common.md | 3 ++- site/docs/install/ivy_internal.md | 5 +++-- site/docs/install/kcma-d8.md | 5 +++-- site/docs/install/kfsn4-dre.md | 5 +++-- site/docs/install/kgpe-d16.md | 5 +++-- site/docs/install/latitude.md | 3 ++- site/docs/install/macbook21.md | 5 +++-- site/docs/install/r400.md | 5 +++-- site/docs/install/t1650.md | 5 +++-- site/docs/install/t400.md | 5 +++-- site/docs/install/t420_external.md | 5 +++-- site/docs/install/t440p_external.md | 5 +++-- site/docs/install/t480.md | 5 +++-- site/docs/install/t500.md | 5 +++-- site/docs/install/t60_unbrick.md | 6 ++++-- site/docs/install/w541_external.md | 5 +++-- site/docs/install/x200.md | 5 +++-- site/docs/install/x230_external.md | 5 +++-- site/docs/install/x60_unbrick.md | 5 +++-- site/docs/install/x60tablet_unbrick.md | 5 +++-- 37 files changed, 109 insertions(+), 70 deletions(-) diff --git a/site/docs/install/c201.md b/site/docs/install/c201.md index be81fc8..63273e3 100644 --- a/site/docs/install/c201.md +++ b/site/docs/install/c201.md @@ -7,8 +7,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -ASUS Chromebook C201 motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +ASUS Chromebook C201 motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. WARNING: This board is known to have non-functioning video init at the time of writing, 19 February 2023. It is as yet unsolved. diff --git a/site/docs/install/d945gclf.md b/site/docs/install/d945gclf.md index 2dc97ba..ae6efe1 100644 --- a/site/docs/install/d945gclf.md +++ b/site/docs/install/d945gclf.md @@ -52,8 +52,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -Intel D945GCLF and/or D945GCLF2 desktop motherboard. Libreboot replaces -proprietary BIOS/UEFI firmware. +Intel D945GCLF and/or D945GCLF2 desktop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. If you just want flashing instructions, go to [../install/d945gclf.md](../install/d945gclf.md) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index e703be0..e06a66c 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -56,8 +56,9 @@ Open source BIOS/UEFI firmware ------------------------- This document will teach you how to install Libreboot, on your -Dell OptiPlex 3050 Micro desktop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +Dell OptiPlex 3050 Micro desktop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. **Unavailable in Libreboot 20240612 or earlier. You must [compile from source](../build/), or use a version newer than Libreboot 20240612.** diff --git a/site/docs/install/dell7010.md b/site/docs/install/dell7010.md index 564046a..493a003 100644 --- a/site/docs/install/dell7010.md +++ b/site/docs/install/dell7010.md @@ -64,7 +64,8 @@ Open source BIOS/UEFI firmware This document will teach you how to install Libreboot, on your Dell OptiPlex 7010 SFF and/or OptiPlex 9010 SFF desktop motherboard. -Libreboot replaces proprietary BIOS/UEFI firmware. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. **Unavailable in Libreboot 20240612 or earlier. You must [compile from source](../build/), or use a version newer than Libreboot 20240612.** diff --git a/site/docs/install/dell780.md b/site/docs/install/dell780.md index 28a52a9..8ef63c6 100644 --- a/site/docs/install/dell780.md +++ b/site/docs/install/dell780.md @@ -57,8 +57,9 @@ Open source BIOS/UEFI firmware ------------------------- This document will teach you how to install Libreboot, on your -Dell OptiPlex 780 desktop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +Dell OptiPlex 780 desktop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. **Unavailable in Libreboot 20240612 or earlier. You must [compile from source](../build/), or use a version newer than Libreboot 20240612.** diff --git a/site/docs/install/dell9020.md b/site/docs/install/dell9020.md index 7264cd2..7d4c219 100644 --- a/site/docs/install/dell9020.md +++ b/site/docs/install/dell9020.md @@ -67,8 +67,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -Dell OptiPlex 9020/7020 SFF/MT or XE2 SFF/MT desktop motherboard. Libreboot -replaces proprietary BIOS/UEFI firmware. +Dell OptiPlex 9020/7020 SFF/MT or XE2 SFF/MT desktop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. **Unavailable in Libreboot 20240126 or earlier. You must [compile from source](../build/), or use a version newer than Libreboot 20240126** diff --git a/site/docs/install/ga-g41m-es2l.md b/site/docs/install/ga-g41m-es2l.md index 3d3e907..b5995f6 100644 --- a/site/docs/install/ga-g41m-es2l.md +++ b/site/docs/install/ga-g41m-es2l.md @@ -52,8 +52,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -Gigabyte GA-G41M-ES2L desktop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +Gigabyte GA-G41M-ES2L desktop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. This is a desktop board using intel hardware (circa \~2009, ICH7 southbridge, similar performance-wise to the ThinkPad X200. It can make diff --git a/site/docs/install/hp2170p.md b/site/docs/install/hp2170p.md index 8ff6be8..0b8fbe3 100644 --- a/site/docs/install/hp2170p.md +++ b/site/docs/install/hp2170p.md @@ -60,8 +60,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -HP EliteBook 2170p laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +HP EliteBook 2170p laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. This is a portable, 11.6" Ivy Bridge platform from HP. More information is available on the [coreboot diff --git a/site/docs/install/hp2560p.md b/site/docs/install/hp2560p.md index b3c4db2..f340a1c 100644 --- a/site/docs/install/hp2560p.md +++ b/site/docs/install/hp2560p.md @@ -40,8 +40,9 @@ Open source BIOS/UEFI firmware ------------------------- This document will teach you how to install Libreboot, on your -HP EliteBook 2560p laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +HP EliteBook 2560p laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. HP EliteBook 2560p is a 12.5" laptop you can read more about here: diff --git a/site/docs/install/hp2570p.md b/site/docs/install/hp2570p.md index cfef220..3208d5a 100644 --- a/site/docs/install/hp2570p.md +++ b/site/docs/install/hp2570p.md @@ -40,8 +40,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -HP EliteBook 2570p laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +HP EliteBook 2570p laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. Brief board info ---------------- diff --git a/site/docs/install/hp8200sff.md b/site/docs/install/hp8200sff.md index 1fc7092..6b1b61b 100644 --- a/site/docs/install/hp8200sff.md +++ b/site/docs/install/hp8200sff.md @@ -55,8 +55,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -HP Elite 8200 SFF desktop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +HP Elite 8200 SFF desktop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. Libreboot has support for this, in the Git repository and release versions from 20230423 onwards. diff --git a/site/docs/install/hp820g2.md b/site/docs/install/hp820g2.md index 901f6ac..831348f 100644 --- a/site/docs/install/hp820g2.md +++ b/site/docs/install/hp820g2.md @@ -65,8 +65,9 @@ Open source BIOS/UEFI firmware ------------------------- This document will teach you how to install Libreboot, on your -HP EliteBook 820 G2 laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +HP EliteBook 820 G2 laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. Please build this from source with lbmk: diff --git a/site/docs/install/hp8460p.md b/site/docs/install/hp8460p.md index 82532c1..a4ea240 100644 --- a/site/docs/install/hp8460p.md +++ b/site/docs/install/hp8460p.md @@ -61,8 +61,9 @@ Open source BIOS/UEFI firmware ------------------------- These next sections will teach you how to install Libreboot, on your -HP EliteBook 8460p laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +HP EliteBook 8460p laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. **Unavailable in Libreboot 20231106 or earlier. You must [compile from source](../build/), or use a release newer than 20231106.** diff --git a/site/docs/install/hp8470p.md b/site/docs/install/hp8470p.md index 659fc72..c64804c 100644 --- a/site/docs/install/hp8470p.md +++ b/site/docs/install/hp8470p.md @@ -61,8 +61,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -HP EliteBook 8470p laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +HP EliteBook 8470p laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. Official information about the laptop can be found here: diff --git a/site/docs/install/hp8560w.md b/site/docs/install/hp8560w.md index 69da627..bd7470b 100644 --- a/site/docs/install/hp8560w.md +++ b/site/docs/install/hp8560w.md @@ -61,8 +61,9 @@ Open source BIOS/UEFI firmware ------------------------- These next sections will teach you how to install Libreboot, on your -HP EliteBook 8560w laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +HP EliteBook 8560w laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. **Unavailable in Libreboot 20240126 or earlier. You must [compile from source](../build/), or use a release newer than 20240126.** diff --git a/site/docs/install/hp9470m.md b/site/docs/install/hp9470m.md index 09d0023..6b53383 100644 --- a/site/docs/install/hp9470m.md +++ b/site/docs/install/hp9470m.md @@ -40,8 +40,9 @@ Open source BIOS/UEFI firmware ------------------------------ These sections will teach you how to install Libreboot, on your -HP EliteBook Folio 9470m laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +HP EliteBook Folio 9470m laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. HP EliteBook Folio 9470m is a 14" ultrabook with a backlit keyboard. diff --git a/site/docs/install/index.md b/site/docs/install/index.md index d5fb175..d6497c1 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -8,7 +8,9 @@ Open source BIOS/UEFI firmware This article will teach you how to install Libreboot, on any of the supported laptop, desktop and server motherboards of Intel/AMD x86/x86\_64 and ARM64 -platform. Libreboot replaces proprietary BIOS/UEFI firmware. +platform. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. **ALWAYS remember to make a backup of the current flash, when overwriting it, regardless of what firmware you currently have and what firmware you're diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 8382c39..c249bac 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -6,7 +6,8 @@ x-toc-enable: true Open source BIOS/UEFI firmware ------------------------------ -Libreboot replaces proprietary BIOS/UEFI firmware, but some newer boards still +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware, but some newer boards still occasionally need code from the hardware manufacturer in order to boot properly. This document will teach you how to handle such a scenario, and how to check for it. For more context, please read Libreboot's [Binary Blob Reduction diff --git a/site/docs/install/ivy_internal.md b/site/docs/install/ivy_internal.md index d782e77..217c086 100644 --- a/site/docs/install/ivy_internal.md +++ b/site/docs/install/ivy_internal.md @@ -7,8 +7,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -Lenovo ThinkPad X230 laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +Lenovo ThinkPad X230 laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. This document demonstrates an *internal flashing* method, by exploiting a little-known security vulnerability in Lenovo's original UEFI firmware. diff --git a/site/docs/install/kcma-d8.md b/site/docs/install/kcma-d8.md index b2bf0ff..bd9801f 100644 --- a/site/docs/install/kcma-d8.md +++ b/site/docs/install/kcma-d8.md @@ -9,8 +9,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -ASUS KCMA-D8 server/workstation motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +ASUS KCMA-D8 server/workstation motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. Specifications available here: diff --git a/site/docs/install/kfsn4-dre.md b/site/docs/install/kfsn4-dre.md index 31fa80c..68829f8 100644 --- a/site/docs/install/kfsn4-dre.md +++ b/site/docs/install/kfsn4-dre.md @@ -52,8 +52,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -ASUS KFSN4-DRE server/workstation motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +ASUS KFSN4-DRE server/workstation motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. This is a server board using AMD hardware (Fam10h). It can also be used for building a high-powered workstation. Powered by libreboot. diff --git a/site/docs/install/kgpe-d16.md b/site/docs/install/kgpe-d16.md index 88f262d..19a3e7c 100644 --- a/site/docs/install/kgpe-d16.md +++ b/site/docs/install/kgpe-d16.md @@ -7,8 +7,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -ASUS KGPE-D16 server/workstation motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +ASUS KGPE-D16 server/workstation motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. TODO: OLD page. TODO: check that all the info is still valid. diff --git a/site/docs/install/latitude.md b/site/docs/install/latitude.md index 10d72b1..89472fc 100644 --- a/site/docs/install/latitude.md +++ b/site/docs/install/latitude.md @@ -10,7 +10,8 @@ This document will teach you how to install Libreboot, on various models of Dell Latitude laptop motherboard, namely Dell Latitude E4300, E6400, E6400 XFR, E6400 ATG, E5420, E5520, E5530, E6420, E6430, E6520, E6530, E6230, E6330 and E6220; you must only install Libreboot on models with *Intel graphics*. -Libreboot replaces proprietary BIOS/UEFI firmware. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. In case any models are unlisted in the above paragraph, you should also check the full list of supported Dell Latitude models on the [Libreboot hardware diff --git a/site/docs/install/macbook21.md b/site/docs/install/macbook21.md index bde8002..c18e9de 100644 --- a/site/docs/install/macbook21.md +++ b/site/docs/install/macbook21.md @@ -55,8 +55,9 @@ Open source BIOS/UEFI firmware ------------------------- This document will teach you how to install Libreboot, on your -Apple MacBook 2,1 2005-2007 laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +Apple MacBook 2,1 2005-2007 laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. The MacBook1,1 and MacBook2,1 are very similar to the ThinkPad X60. It shares some hardware with the X60 such as the chipset. diff --git a/site/docs/install/r400.md b/site/docs/install/r400.md index a68fac2..358f459 100644 --- a/site/docs/install/r400.md +++ b/site/docs/install/r400.md @@ -56,8 +56,9 @@ Open source BIOS/UEFI firmware ------------------------- This document will teach you how to install Libreboot, on your -Lenovo ThinkPad R400 laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +Lenovo ThinkPad R400 laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. It is believed that all or most R400 laptops are compatible. See notes about [CPU diff --git a/site/docs/install/t1650.md b/site/docs/install/t1650.md index 75269d2..d6e0bed 100644 --- a/site/docs/install/t1650.md +++ b/site/docs/install/t1650.md @@ -59,8 +59,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -Dell Precision T1650 desktop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +Dell Precision T1650 desktop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. **Unavailable in Libreboot 20230625 or earlier. You must [compile from source](../build/), or use at least Libreboot 20231021.** diff --git a/site/docs/install/t400.md b/site/docs/install/t400.md index 1821097..c6c6a02 100644 --- a/site/docs/install/t400.md +++ b/site/docs/install/t400.md @@ -55,8 +55,9 @@ Open source BIOS/UEFI firmware ------------------------- This document will teach you how to install Libreboot, on your -Lenovo ThinkPad T400 laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +Lenovo ThinkPad T400 laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. It is believed that all or most laptops of the model T400 are compatible. See notes about [CPU diff --git a/site/docs/install/t420_external.md b/site/docs/install/t420_external.md index 89bf973..f6f7bd9 100644 --- a/site/docs/install/t420_external.md +++ b/site/docs/install/t420_external.md @@ -7,8 +7,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -Lenovo ThinkPad T420 laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +Lenovo ThinkPad T420 laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. The following instructions expect you to have these on hand: diff --git a/site/docs/install/t440p_external.md b/site/docs/install/t440p_external.md index 23c2b37..24691ee 100644 --- a/site/docs/install/t440p_external.md +++ b/site/docs/install/t440p_external.md @@ -7,8 +7,9 @@ Open source BIOS/UEFI firmware ------------------------- This document will teach you how to install Libreboot, on your -Lenovo ThinkPad T440p laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +Lenovo ThinkPad T440p laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. Buy Libreboot preinstalled -------------------------- diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 8128f2a..44f3297 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -62,8 +62,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -Lenovo ThinkPad T480 and/or T480s laptop motherboard. Libreboot replaces -proprietary BIOS/UEFI firmware. +Lenovo ThinkPad T480 and/or T480s laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. Buy pre-installed ----------------- diff --git a/site/docs/install/t500.md b/site/docs/install/t500.md index 7beaa1a..c1a035c 100644 --- a/site/docs/install/t500.md +++ b/site/docs/install/t500.md @@ -55,8 +55,9 @@ Open source BIOS/UEFI firmware ------------------------- This document will teach you how to install Libreboot, on your -Lenovo ThinkPad T500 or ThinkPad W500 laptop motherboard. Libreboot replaces -proprietary BIOS/UEFI firmware. +Lenovo ThinkPad T500 or ThinkPad W500 laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. It is believed that all or most T500 laptops are compatible. See notes about [CPU diff --git a/site/docs/install/t60_unbrick.md b/site/docs/install/t60_unbrick.md index 85b6ca3..9ba6d86 100644 --- a/site/docs/install/t60_unbrick.md +++ b/site/docs/install/t60_unbrick.md @@ -7,8 +7,10 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -Lenovo Thinkpad T60 motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. *This* version of the guide shows you how to +Lenovo Thinkpad T60 motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. +*This* version of the guide shows you how to flash using external hardware, which can be useful for un-bricking. **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) diff --git a/site/docs/install/w541_external.md b/site/docs/install/w541_external.md index e439ba1..c0fea61 100644 --- a/site/docs/install/w541_external.md +++ b/site/docs/install/w541_external.md @@ -7,8 +7,9 @@ Open source BIOS/UEFI firmware ------------------------- This document will teach you how to install Libreboot, on your -Lenovo ThinkPad W541 and/or W540 laptop motherboard. Libreboot replaces -proprietary BIOS/UEFI firmware. +Lenovo ThinkPad W541 and/or W540 laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. NOTE: The same image for W541 also works on the W540, as the motherboards are identical for coreboot purposes. diff --git a/site/docs/install/x200.md b/site/docs/install/x200.md index 8287ae5..e35fc95 100644 --- a/site/docs/install/x200.md +++ b/site/docs/install/x200.md @@ -53,8 +53,9 @@ Open source BIOS/UEFI firmware ------------------------- This document will teach you how to install Libreboot, on your -Lenovo ThinkPad X200, X200s or X200 Tablet laptop motherboard. Libreboot -replaces proprietary BIOS/UEFI firmware. +Lenovo ThinkPad X200, X200s or X200 Tablet laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. It is believed that all X200 laptops are compatible. X200S and X200 Tablet will also work, [depending on the configuration](#x200s). diff --git a/site/docs/install/x230_external.md b/site/docs/install/x230_external.md index 1b89e18..155fb68 100644 --- a/site/docs/install/x230_external.md +++ b/site/docs/install/x230_external.md @@ -7,8 +7,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -Lenovo ThinkPad X230 laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +Lenovo ThinkPad X230 laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. **Minifree now sells the Libreboot T480, instead of the Libreboot X230. See: ** diff --git a/site/docs/install/x60_unbrick.md b/site/docs/install/x60_unbrick.md index 049c12d..c87b855 100644 --- a/site/docs/install/x60_unbrick.md +++ b/site/docs/install/x60_unbrick.md @@ -7,8 +7,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -Lenovo ThinkPad X60 laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +Lenovo ThinkPad X60 laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. diff --git a/site/docs/install/x60tablet_unbrick.md b/site/docs/install/x60tablet_unbrick.md index 19bea73..304c380 100644 --- a/site/docs/install/x60tablet_unbrick.md +++ b/site/docs/install/x60tablet_unbrick.md @@ -7,8 +7,9 @@ Open source BIOS/UEFI firmware ------------------------------ This document will teach you how to install Libreboot, on your -Lenovo Thinkpad X60 Tablet laptop motherboard. Libreboot replaces proprietary -BIOS/UEFI firmware. +Lenovo Thinkpad X60 Tablet laptop motherboard. +Libreboot is a [Free Software](https://writefreesoftware.org/learn) project +that replaces proprietary BIOS/UEFI firmware. **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) now, as of 27 January 2024, which is a fork of flashrom. From 6c924caffbbe6e45371876d1b37dd52eb7297f53 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 19:08:33 +0000 Subject: [PATCH 300/399] homepage: make "wrest" link to deguard Signed-off-by: Leah Rowe --- site/index.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/site/index.md b/site/index.md index 95d5eb7..64654e6 100644 --- a/site/index.md +++ b/site/index.md @@ -110,7 +110,8 @@ restrictions, and you hear them talk about "security", they are only talking about *their* security, not yours. In the Libreboot project, it is reversed; we see Intel Boot Guard and similar such technologies as an attack on your freedom over your own property (your computer), and so, we make it our mission to help -you [wrest](https://trmm.net/TOCTOU/) back such control. +you [wrest](docs/install/deguard.md) [back](https://trmm.net/TOCTOU/) such +control. Libreboot is not a fork of coreboot ----------------------------------- From aa1b889795f6da1335d6ededdceb97313982306a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 19:09:35 +0000 Subject: [PATCH 301/399] link fix for some reason, untitled isn't always converting these links properly. i need to investigate why. Signed-off-by: Leah Rowe --- site/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/index.md b/site/index.md index 64654e6..897b1b5 100644 --- a/site/index.md +++ b/site/index.md @@ -110,7 +110,7 @@ restrictions, and you hear them talk about "security", they are only talking about *their* security, not yours. In the Libreboot project, it is reversed; we see Intel Boot Guard and similar such technologies as an attack on your freedom over your own property (your computer), and so, we make it our mission to help -you [wrest](docs/install/deguard.md) [back](https://trmm.net/TOCTOU/) such +you [wrest](docs/install/deguard.html) [back](https://trmm.net/TOCTOU/) such control. Libreboot is not a fork of coreboot From 3257c1393648b1eb73d4280cdff95ffc4587faf3 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 19:12:45 +0000 Subject: [PATCH 302/399] docs/index: improve link/bsd link titles Signed-off-by: Leah Rowe --- site/docs/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/index.md b/site/docs/index.md index 334b58a..c7eb0eb 100644 --- a/site/docs/index.md +++ b/site/docs/index.md @@ -29,8 +29,8 @@ Installing libreboot Installing operating systems ---------------------------- -- [How to install BSD on an x86 host system](bsd/) -- [Linux Guides](linux/) +- [Install BSD operating systems on Libreboot](bsd/) +- [Install Linux on a Libreboot system](linux/) Information for developers -------------------------- From 125c88f2add68ad08b9b95d1bf4d844ecce0451e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 19:14:42 +0000 Subject: [PATCH 303/399] typo: superfically should be superficially Signed-off-by: Leah Rowe --- site/docs/bsd/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/bsd/index.md b/site/docs/bsd/index.md index 815f279..c7ebb53 100644 --- a/site/docs/bsd/index.md +++ b/site/docs/bsd/index.md @@ -46,7 +46,7 @@ workstation systems. Some of them have unique features that you can't find anywhere else (e.g. FreeBSD jails, OpenBSD's numerous security enhancements, NetBSD's rump kernel design and clean code quality). -BSD systems are superfically similar to Linux systems, but they are very +BSD systems are superficially similar to Linux systems, but they are very different under the hood (different kernel designs, different userspace implementations, and so on). However, almost all of the Linux userspace programs that you enjoy using are probably available in the various BSD *ports trees*, From 016bdaf4c40bcf54e45882c4fbfc1afe35b554dc Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 19:29:18 +0000 Subject: [PATCH 304/399] grammar Signed-off-by: Leah Rowe --- site/docs/linux/grub_hardening.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index c57ddab..4ec9642 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -7,7 +7,7 @@ What is Secure libreBoot? ------------------------- Libreboot provides open source BIOS/UEFI firmware, replacing proprietary -BIOS/UEFI firmware, and that precisely is Libreboot primary mission; Libreboot +BIOS/UEFI firmware, and that precisely is Libreboot's primary mission; Libreboot is a [Free Software](https://writefreesoftware.org/learn) project, *first*. Our *next* priority is to provide you with *highly secure* boot firmware, free from backdoors and with well-audited code. *This* document does just that, by From b80d5e04ad473302c2a69a8b550dae8b548f67f9 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 19:33:59 +0000 Subject: [PATCH 305/399] fix wrong fact Signed-off-by: Leah Rowe --- site/docs/install/spi.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index 9176ccd..e8b9f54 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -295,7 +295,7 @@ and therefore damage is unlikely. However, as stated above and as we will state again: * This is bad electrical design. The CH341A can switch flexibly between 3V - and 5V operation, but most flashes today are 1.8V or 5V anyway, and there are + and 5V operation, but most flashes today are 1.8V or 3V anyway, and there are all kinds of scenarios (such as over-current or surge event) where this 5V idle logic level could still be applied. Modifying your CH341a to 3.3v only, as defined in the datasheet (and by this page) is highly recommended. From 07b4c69883d3a3696af0883d06c37edfc15bfac4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 19 Jan 2025 19:53:22 +0000 Subject: [PATCH 306/399] fix wrongful credit i accidentally used the wrong name wtf (credit for libreboot yy.mm idea) Signed-off-by: Leah Rowe --- site/news/schedule.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/news/schedule.md b/site/news/schedule.md index 1afe58a..83ddf0b 100644 --- a/site/news/schedule.md +++ b/site/news/schedule.md @@ -103,10 +103,10 @@ the same letter. Credit ------ -[Britney Lozza](https://janethemotherfucker.github.io/) was the one who suggested +[Jane Arkanian](https://janethemotherfucker.github.io/) was the one who suggested to me that I use this new release number and codename scheme, and I previously came up with the plan to use an April/June and October/December testing/stable release schedule. -Britney also came up with the codename that I've decided to use for +Jane also came up with the codename that I've decided to use for the June 2025 stable release - stay tuned! From 2276bb3183ef2d33aa99f216d34de1528783426f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 20 Jan 2025 11:00:12 +0000 Subject: [PATCH 307/399] use more searchable homepage title Signed-off-by: Leah Rowe --- site/docs/install/devmem.md | 3 +++ site/index.de.md | 2 +- site/index.fr.md | 2 +- site/index.it.md | 2 +- site/index.md | 2 +- site/index.ru.md | 2 +- site/index.uk.md | 2 +- site/index.zh-cn.md | 2 +- 8 files changed, 10 insertions(+), 7 deletions(-) diff --git a/site/docs/install/devmem.md b/site/docs/install/devmem.md index f6ba944..351728b 100644 --- a/site/docs/install/devmem.md +++ b/site/docs/install/devmem.md @@ -22,6 +22,9 @@ If the factory firmware implements UEFI, and this is how you boot when using the factory firmware, please ensure that *SecureBoot* is disabled, because it will interfere with lower memory accesses if left enabled. +If you can, boot in BIOS/CSM mode just to be sure, again with SecureBoot +disabled. + FLASH ERRORS (and workarounds) ------------------------------ diff --git a/site/index.de.md b/site/index.de.md index 451d23a..73e8b2e 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -1,5 +1,5 @@ --- -title: Libreboot projekt +title: Freie und Open Source BIOS/UEFI Firmware x-toc-enable: true ... diff --git a/site/index.fr.md b/site/index.fr.md index 460cbb8..1b25bac 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -1,5 +1,5 @@ --- -title: Projet Libreboot +title: Libre et Open Source BIOS/UEFI firmware x-toc-enable: true --- diff --git a/site/index.it.md b/site/index.it.md index 0a4a77c..2f15d50 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -1,5 +1,5 @@ --- -title: Progetto Libreboot +title: Libero e Open Source BIOS/UEFI firmware x-toc-enable: true ... diff --git a/site/index.md b/site/index.md index 897b1b5..e2028e9 100644 --- a/site/index.md +++ b/site/index.md @@ -1,5 +1,5 @@ --- -title: Libreboot project +title: Free and Open Source BIOS/UEFI firmware x-toc-enable: true ... diff --git a/site/index.ru.md b/site/index.ru.md index 56fdd19..c7198ab 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -1,5 +1,5 @@ --- -title: Проект Libreboot +title: свободную, с открытым исходным кодом BIOS/UEFI прошивка x-toc-enable: true ... diff --git a/site/index.uk.md b/site/index.uk.md index 8324d0c..48338fc 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -1,5 +1,5 @@ --- -title: Проект Libreboot +title: завантажувальну прошивку BIOS/UEFI прошивку x-toc-enable: true ... diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index a9386e8..55101de 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -1,5 +1,5 @@ --- -title: Libreboot 项目 +title: 自由且开源 BIOS/UEFI 固件 x-toc-enable: true ... From 72121b918442f0d0986140c3603e9b42ef5410ec Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 20 Jan 2025 11:43:14 +0000 Subject: [PATCH 308/399] css: make h3/h4 smaller in proportion they looked the same size as h2, and it was confusing, visually. Signed-off-by: Leah Rowe --- site/global.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/global.css b/site/global.css index 6b11740..97c7b2a 100644 --- a/site/global.css +++ b/site/global.css @@ -114,11 +114,11 @@ h2 } h3 { - font-size: 1.8em; + font-size: 1.6em; } h4 { - font-size:1.6em; + font-size:1.2em; } .f, .f * From 246820568f1938251d16b3c8ef6cfa70d9551e99 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 20 Jan 2025 13:41:54 +0000 Subject: [PATCH 309/399] improved a bunch of page titles i'm told that many of the page titles are too short i went through them systematically and changed a bunch of page titles, so that they more closely reflect the given subject matter Signed-off-by: Leah Rowe --- site/contact.de.md | 2 +- site/contact.fr.md | 2 +- site/contact.md | 2 +- site/contrib.md | 2 +- site/docs/grub/index.md | 2 +- site/docs/index.md | 2 +- site/docs/install/deguard.md | 2 +- site/docs/install/devmem.md | 2 +- site/docs/install/index.md | 2 +- site/docs/install/ivy_has_common.md | 2 +- site/docs/install/ivy_internal.md | 2 +- site/docs/install/playstation.md | 2 +- site/docs/install/spi_generic.md | 2 +- site/docs/install/t420_external.md | 2 +- site/docs/install/t60_unbrick.md | 2 +- site/docs/install/x230_external.md | 2 +- site/docs/maintain/porting.md | 2 +- site/docs/maintain/style.md | 2 +- site/docs/misc/emulation.md | 2 +- site/docs/misc/index.md | 2 +- site/docs/uboot/index.md | 2 +- site/docs/uboot/uboot-archlinux.md | 2 +- site/docs/uboot/uboot-debian-bookworm.md | 2 +- site/docs/uboot/uboot-openbsd.md | 2 +- site/docs/uboot/uboot-x86.md | 2 +- site/download.md | 2 +- site/faq.md | 2 +- site/freedom-status.md | 2 +- site/git.de.md | 2 +- site/git.md | 2 +- site/license.md | 2 +- site/news/10.md | 2 +- site/news/e6400.md | 2 +- site/news/libreboot20241008.md | 2 +- site/news/mirrors.md | 2 +- site/news/news.cfg | 4 ++-- site/news/translations.md | 2 +- site/news/x201.md | 2 +- site/other.md | 2 +- site/tasks/index.md | 2 +- 40 files changed, 41 insertions(+), 41 deletions(-) diff --git a/site/contact.de.md b/site/contact.de.md index 8290a4a..8262228 100644 --- a/site/contact.de.md +++ b/site/contact.de.md @@ -1,5 +1,5 @@ --- -title: Kontakt +title: Kontakt der Libreboot projekt x-toc-enable: true ... diff --git a/site/contact.fr.md b/site/contact.fr.md index c524dd3..9028d0b 100644 --- a/site/contact.fr.md +++ b/site/contact.fr.md @@ -1,5 +1,5 @@ --- -title: Contact +title: Contact the Libreboot project x-toc-enable: true ... diff --git a/site/contact.md b/site/contact.md index 69122dd..36e424d 100644 --- a/site/contact.md +++ b/site/contact.md @@ -1,5 +1,5 @@ --- -title: Contact +title: Contact the Libreboot project x-toc-enable: true ... diff --git a/site/contrib.md b/site/contrib.md index bb6355f..00e1d49 100644 --- a/site/contrib.md +++ b/site/contrib.md @@ -1,5 +1,5 @@ --- -title: Project contributors +title: People who contributed to the Libreboot project x-toc-enable: true ... diff --git a/site/docs/grub/index.md b/site/docs/grub/index.md index 1825c96..18e757b 100644 --- a/site/docs/grub/index.md +++ b/site/docs/grub/index.md @@ -1,5 +1,5 @@ --- -title: GRUB payload +title: Libreboot GRUB payload documentation x-toc-enable: true ... diff --git a/site/docs/index.md b/site/docs/index.md index c7eb0eb..96a9f92 100644 --- a/site/docs/index.md +++ b/site/docs/index.md @@ -1,5 +1,5 @@ --- -title: Libreboot documentation +title: Installing Libreboot Free/Opensource BIOS/UEFI firmware ... Always check [libreboot.org](https://libreboot.org/) for the latest updates to diff --git a/site/docs/install/deguard.md b/site/docs/install/deguard.md index 7980fd5..92b88ea 100644 --- a/site/docs/install/deguard.md +++ b/site/docs/install/deguard.md @@ -1,5 +1,5 @@ --- -title: Disabling Intel Boot Guard on MEv11 +title: Disabling Intel Boot Guard on MEv11 for Libreboot installation x-toc-enable: true ... diff --git a/site/docs/install/devmem.md b/site/docs/install/devmem.md index 351728b..c8d6916 100644 --- a/site/docs/install/devmem.md +++ b/site/docs/install/devmem.md @@ -1,5 +1,5 @@ --- -title: Disabling /dev/mem protections +title: Disabling /dev/mem protections on Linux and BSD x-toc-enable: true ... diff --git a/site/docs/install/index.md b/site/docs/install/index.md index d6497c1..fa6c680 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -1,5 +1,5 @@ --- -title: Install Libreboot +title: Install Libreboot Open Source BIOS/UEFI firmware x-toc-enable: true ... diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index c249bac..a72843c 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -1,5 +1,5 @@ --- -title: Insert vendor files not included in release images +title: Insert vendor files not included in Libreboot release images x-toc-enable: true ... diff --git a/site/docs/install/ivy_internal.md b/site/docs/install/ivy_internal.md index 217c086..a724307 100644 --- a/site/docs/install/ivy_internal.md +++ b/site/docs/install/ivy_internal.md @@ -1,5 +1,5 @@ --- -title: Ivybridge internal flashing +title: Install Libreboot internally on Lenovo ThinkPad X230 x-toc-enable: true ... diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index d3dbfd9..68498ab 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -1,5 +1,5 @@ --- -title: Sony PlayStation (PS1/PSX) +title: Install Libreboot on Sony PlayStation (PS1/PSX) x-toc-enable: true ... diff --git a/site/docs/install/spi_generic.md b/site/docs/install/spi_generic.md index 97e143e..2b130f7 100644 --- a/site/docs/install/spi_generic.md +++ b/site/docs/install/spi_generic.md @@ -1,5 +1,5 @@ --- -title: Generic SPI Flashing Guide +title: Generic SPI Flashing Guide for Libreboot Installation x-toc-enable: true ... diff --git a/site/docs/install/t420_external.md b/site/docs/install/t420_external.md index f6f7bd9..4bda72e 100644 --- a/site/docs/install/t420_external.md +++ b/site/docs/install/t420_external.md @@ -1,5 +1,5 @@ --- -title: ThinkPad T420 external flashing +title: Install Libreboot on Lenovo ThinkPad T420 x-toc-enable: true ... diff --git a/site/docs/install/t60_unbrick.md b/site/docs/install/t60_unbrick.md index 9ba6d86..67d8e1e 100644 --- a/site/docs/install/t60_unbrick.md +++ b/site/docs/install/t60_unbrick.md @@ -1,5 +1,5 @@ --- -title: ThinkPad T60 Recovery guide +title: Install Libreboot on Lenovo ThinkPad T60 x-toc-enable: true ... diff --git a/site/docs/install/x230_external.md b/site/docs/install/x230_external.md index 155fb68..864b9ac 100644 --- a/site/docs/install/x230_external.md +++ b/site/docs/install/x230_external.md @@ -1,5 +1,5 @@ --- -title: ThinkPad X230/X230T external flashing +title: Install Libreboot on Lenovo ThinkPad X230/X230T x-toc-enable: true ... diff --git a/site/docs/maintain/porting.md b/site/docs/maintain/porting.md index a0b6b4d..8353f69 100644 --- a/site/docs/maintain/porting.md +++ b/site/docs/maintain/porting.md @@ -1,5 +1,5 @@ --- -title: Porting guide for new motherboards +title: Porting Libreboot to new Intel-based motherboards ... **NOTE: Libreboot standardises on [flashprog](https://flashprog.org/wiki/Flashprog) diff --git a/site/docs/maintain/style.md b/site/docs/maintain/style.md index ef95d33..74e5ddd 100644 --- a/site/docs/maintain/style.md +++ b/site/docs/maintain/style.md @@ -1,5 +1,5 @@ --- -title: lbmk coding style and design +title: LibreBoot MaKe (lbmk) build system coding style x-toc-enable: true ... diff --git a/site/docs/misc/emulation.md b/site/docs/misc/emulation.md index 375eecf..c6c8362 100644 --- a/site/docs/misc/emulation.md +++ b/site/docs/misc/emulation.md @@ -1,5 +1,5 @@ --- -title: Building Libreboot for Emulation +title: Building Libreboot for Emulation e.g. QEMU x-toc-enable: true ... diff --git a/site/docs/misc/index.md b/site/docs/misc/index.md index 728c29e..fad55de 100644 --- a/site/docs/misc/index.md +++ b/site/docs/misc/index.md @@ -1,5 +1,5 @@ --- -title: Miscellaneous +title: Miscellaneous Libreboot documentation x-toc-enable: true ... diff --git a/site/docs/uboot/index.md b/site/docs/uboot/index.md index 3dc04a4..df3e1e4 100644 --- a/site/docs/uboot/index.md +++ b/site/docs/uboot/index.md @@ -1,5 +1,5 @@ --- -title: U-Boot payload (x86 and ARM) +title: U-Boot payload for Libreboot on x86 and ARM x-toc-enable: true ... diff --git a/site/docs/uboot/uboot-archlinux.md b/site/docs/uboot/uboot-archlinux.md index 13cce6f..7e4680e 100644 --- a/site/docs/uboot/uboot-archlinux.md +++ b/site/docs/uboot/uboot-archlinux.md @@ -1,5 +1,5 @@ --- -title: Installing ArchLinuxARM on a Chromebook with U-Boot installed +title: Installing ArchLinuxARM on a Chromebook with Libreboot and U-Boot x-toc-enable: true ... diff --git a/site/docs/uboot/uboot-debian-bookworm.md b/site/docs/uboot/uboot-debian-bookworm.md index 1e4eef5..5345244 100644 --- a/site/docs/uboot/uboot-debian-bookworm.md +++ b/site/docs/uboot/uboot-debian-bookworm.md @@ -1,5 +1,5 @@ --- -title: Debian Bookworm Install on a Samsung Chromebook Plus +title: Debian Bookworm Install on Librebooted Samsung Chromebook Plus x-toc-enable: true ... diff --git a/site/docs/uboot/uboot-openbsd.md b/site/docs/uboot/uboot-openbsd.md index 6b23caf..74dc6e9 100644 --- a/site/docs/uboot/uboot-openbsd.md +++ b/site/docs/uboot/uboot-openbsd.md @@ -1,5 +1,5 @@ --- -title: OpenBSD Install Attempt on a Samsung Chromebook Plus +title: OpenBSD Install Attempt on Librebooted Samsung Chromebook Plus x-toc-enable: true ... diff --git a/site/docs/uboot/uboot-x86.md b/site/docs/uboot/uboot-x86.md index b3fd090..fcafd4c 100644 --- a/site/docs/uboot/uboot-x86.md +++ b/site/docs/uboot/uboot-x86.md @@ -1,5 +1,5 @@ --- -title: U-Boot payload (x86 specific) +title: U-Boot x86 UEFI payload on Libreboot x-toc-enable: true ... diff --git a/site/download.md b/site/download.md index 4be0c58..f1af170 100644 --- a/site/download.md +++ b/site/download.md @@ -1,5 +1,5 @@ --- -title: Download Libreboot +title: Download Libreboot Free/Opensource BIOS/UEFI firmware x-toc-enable: true ... diff --git a/site/faq.md b/site/faq.md index 2109de0..da8e866 100644 --- a/site/faq.md +++ b/site/faq.md @@ -1,5 +1,5 @@ --- -title: Frequently Asked Questions +title: Frequently Asked Questions about Libreboot firmware x-toc-enable: true ... diff --git a/site/freedom-status.md b/site/freedom-status.md index e176e21..4d15100 100644 --- a/site/freedom-status.md +++ b/site/freedom-status.md @@ -1,5 +1,5 @@ --- -title: Software and hardware freedom status for each motherboard supported by Libreboot +title: Software and hardware freedom status for Libreboot Open Source BIOS/UEFI x-toc-enable: true ... diff --git a/site/git.de.md b/site/git.de.md index 03b72a8..19e2339 100644 --- a/site/git.de.md +++ b/site/git.de.md @@ -1,5 +1,5 @@ --- -title: Code review +title: Use Git and/or send patches to Libreboot x-toc-enable: true ... diff --git a/site/git.md b/site/git.md index 228655d..34ea57c 100644 --- a/site/git.md +++ b/site/git.md @@ -1,5 +1,5 @@ --- -title: Code review +title: How to use Git and/or send patches to Libreboot x-toc-enable: true ... diff --git a/site/license.md b/site/license.md index a91e93d..258233c 100644 --- a/site/license.md +++ b/site/license.md @@ -1,5 +1,5 @@ --- -title: License +title: Copyright license for the Libreboot website x-toc-enable: true ... diff --git a/site/news/10.md b/site/news/10.md index 45547c9..8e771e8 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -1,4 +1,4 @@ -% Libreboot 10-year anniversary +% Libreboot 10-year anniversary and history % Leah Rowe % 12 December 2023 diff --git a/site/news/e6400.md b/site/news/e6400.md index ac36d2e..0c54300 100644 --- a/site/news/e6400.md +++ b/site/news/e6400.md @@ -1,4 +1,4 @@ -% Dell Latitude E6400 added (blob-free, no disassembly) +% Dell Latitude E6400 added to Libreboot (blob-free, no disassembly) % Leah Rowe % 19 April 2023 diff --git a/site/news/libreboot20241008.md b/site/news/libreboot20241008.md index baf52f9..46ef246 100644 --- a/site/news/libreboot20241008.md +++ b/site/news/libreboot20241008.md @@ -1,4 +1,4 @@ -% Libreboot 20241008 released! +% Libreboot 20241008 released! With PlayStation support! % Leah Rowe % 8 October 2024 diff --git a/site/news/mirrors.md b/site/news/mirrors.md index b722c96..5d7cb1b 100644 --- a/site/news/mirrors.md +++ b/site/news/mirrors.md @@ -1,4 +1,4 @@ -% New Git repositories added as backup mirrors +% New Git repositories added as backup Libreboot mirrors % Leah Rowe % 11 April 2023 diff --git a/site/news/news.cfg b/site/news/news.cfg index 89b9fbb..5b36fd2 100644 --- a/site/news/news.cfg +++ b/site/news/news.cfg @@ -1,2 +1,2 @@ -BLOGTITLE="News for libreboot.org" -BLOGDESCRIPTION="News for libreboot.org" +BLOGTITLE="News about Libreboot releases and development" +BLOGDESCRIPTION="News about Libreboot releases and development" diff --git a/site/news/translations.md b/site/news/translations.md index 2804f25..42e15a9 100644 --- a/site/news/translations.md +++ b/site/news/translations.md @@ -1,4 +1,4 @@ -% Translations wanted +% Translations wanted for the Libreboot website % Leah Rowe % 4 January 2022 diff --git a/site/news/x201.md b/site/news/x201.md index 9b5f0e4..55239db 100644 --- a/site/news/x201.md +++ b/site/news/x201.md @@ -1,4 +1,4 @@ -% ThinkPad X201 removed from Libreboot +% ThinkPad X201 support removed from Libreboot % Leah Rowe % 12 January 2024 diff --git a/site/other.md b/site/other.md index cdbe3e2..22e0b8b 100644 --- a/site/other.md +++ b/site/other.md @@ -1,5 +1,5 @@ --- -title: Other coreboot distributions +title: Other coreboot distributions providing Open Source BIOS/UEFI firmware x-toc-enable: true ... diff --git a/site/tasks/index.md b/site/tasks/index.md index df1da84..27d6f08 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -1,5 +1,5 @@ --- -title: Jobs that need doing +title: Jobs that need doing in the Libreboot project x-toc-enable: true ... From 57c5edbbf55b3d7fc62d54a4f9d046fb8ff15208 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 20 Jan 2025 14:59:33 +0000 Subject: [PATCH 310/399] improve the ps1 page title Signed-off-by: Leah Rowe --- site/docs/install/playstation.md | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index 68498ab..bae232b 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -1,10 +1,12 @@ --- -title: Install Libreboot on Sony PlayStation (PS1/PSX) +title: Install Libreboot Open BIOS on Sony PlayStation (PS1/PSX) x-toc-enable: true ... -The PlayStation is a computer like any other. It ought to run all Free Software -if you want it to, and you can! +The PlayStation is a computer like any other. It ought to run +all [Free Software](https://writefreesoftware.org/learn) if you want it to, and +you can! In this document, you will learn how to replace the Sony BIOS on your +PlayStation, with a fully Open Source one instead.
    From d1921809b865e4aa883a3762b55ed0db44f594cf Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 20 Jan 2025 15:33:07 +0000 Subject: [PATCH 311/399] mayumi pic on the ps1 page Signed-off-by: Leah Rowe --- site/docs/install/playstation.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index bae232b..bc107f8 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -148,6 +148,25 @@ the Libreboot project, but this can be done at a future date. Other mods (hardware) --------------------- +### Modchip (mayumi v4) example + +Click the photo for full size. It shows a Mayumi v4 modchip and Dual Frequency +Oscillator mod installed (blue board is the modchip and the black board is +the DFO mod): + +Sony PlayStation (PSOne) console + +The modchip disables the copy protection and region restrictions. A modchip is +still advised, even if using an Open BIOS. The Open BIOS could be modified to +send commands that disable the wobble check, thus invalidating the need for +a modchip, but even then there are still caveats. Please read: + + + +The most technically correct solution, regardless of which BIOS you have, to +also install the modchip and DFO board, as shown. More info is written about +these in the next sections below: + ### Video timings The Open BIOS will not implement any DRM, so it's possible that you might boot From 3ec8d5abb60113fdb03aead1fd2c5719d0954bc7 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 20 Jan 2025 15:36:12 +0000 Subject: [PATCH 312/399] clarify ownership Signed-off-by: Leah Rowe --- site/docs/install/playstation.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index bc107f8..146ae01 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -152,7 +152,7 @@ Other mods (hardware) Click the photo for full size. It shows a Mayumi v4 modchip and Dual Frequency Oscillator mod installed (blue board is the modchip and the black board is -the DFO mod): +the DFO mod). Mods installed by Leah Rowe, as a proof of concept: Sony PlayStation (PSOne) console From 71228ffa0d20d007d1169a11bafe464ed5d84116 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 20 Jan 2025 15:45:22 +0000 Subject: [PATCH 313/399] add ps1 bios download link Signed-off-by: Leah Rowe --- site/docs/install/playstation.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index 146ae01..6d46175 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -38,8 +38,24 @@ can learn more about here: +### Download pre-built BIOS + +Get it here: + + + +Other mirrors are available, at the [Canoeboot download](../../download.md) +page; look in the `roms/playstation/` directory for a given Libreboot release. +This is built from the available sources in Libreboot releases, based on the +information written below. + +You can use this in a PlayStation emulator or on real hardware - the rest of +this page will tell you how to use it. + ### Build from source +OPTIONAL: You could alternatively use the pre-built version (see above). + Pre-compiled builds will be in the next Libreboot release, after version 20240612. For now, you must compile it from source, but the Libreboot build system provides automation for this. Please use the latest lbmk From 0fc65e4fac94d76af95a6d12bfb9aec72df394b4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 20 Jan 2025 15:48:43 +0000 Subject: [PATCH 314/399] remove obsolete paragraph (images available now) Signed-off-by: Leah Rowe --- site/docs/install/playstation.md | 5 ----- 1 file changed, 5 deletions(-) diff --git a/site/docs/install/playstation.md b/site/docs/install/playstation.md index 6d46175..c64fa66 100644 --- a/site/docs/install/playstation.md +++ b/site/docs/install/playstation.md @@ -56,11 +56,6 @@ this page will tell you how to use it. OPTIONAL: You could alternatively use the pre-built version (see above). -Pre-compiled builds will be in the next Libreboot release, after -version 20240612. For now, you must compile it from source, but the Libreboot -build system provides automation for this. Please use the latest lbmk -revision [from Git](../../git.md). - First, please make sure you have build dependencies. The build logic in lbmk has been tested on Debian 12 (x86\_64) and you can do this for example, as root: From 73e9255f700404851c37649503a90c84fde18935 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 21 Jan 2025 02:18:11 +0000 Subject: [PATCH 315/399] grammar Signed-off-by: Leah Rowe --- site/news/10.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/news/10.md b/site/news/10.md index 8e771e8..e80cc79 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -1529,7 +1529,7 @@ demonstrated that they have all the same intentions that they originally had in their LibrePlanet 2023 talk, that lead to the *first* Cold Boot War. Intent matters. A lot of people might disagree, but the world runs on dreams. -What we do in the moment is just an implementation dreams. Their dream is +What we do in the moment is just an manifestation of dreams. Their dream is to *destroy the Libreboot project*. Therefore, Cold Boot War II was declared, in the early hours of January 1st, 2025. From d9c07032e962516af7cc365ad79e3d8faf7a11e2 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 21 Jan 2025 04:26:54 +0000 Subject: [PATCH 316/399] better english description in meta tags Signed-off-by: Leah Rowe --- site/template.include | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/template.include b/site/template.include index 29dda6a..47b1f04 100644 --- a/site/template.include +++ b/site/template.include @@ -2,7 +2,7 @@ - + From 4eaaccbd0aeac2f859a888c08d941583866e28cc Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 21 Jan 2025 16:49:38 +0000 Subject: [PATCH 317/399] adapt canoeboot css but with libreboot colours i like the font style better, on canoeboot.org, where headers are not build, and the canoeboot site design made a few other tweaks too, relative to libreboot.org the new skin just looks slightly nicer Signed-off-by: Leah Rowe --- site/global.css | 20 +++++++++++++------- 1 file changed, 13 insertions(+), 7 deletions(-) diff --git a/site/global.css b/site/global.css index 97c7b2a..9737081 100644 --- a/site/global.css +++ b/site/global.css @@ -2,6 +2,9 @@ * This CSS is released under Creative Commons Zero 1.0 Universal license: * https://creativecommons.org/publicdomain/zero/1.0/legalcode.txt */ + +h1,h2,h3,h4{font-weight:normal; font-size:2em} + .specs { float: right; @@ -14,7 +17,7 @@ } -@media (max-width:89em) +@media (max-width:90em) { html { @@ -38,17 +41,21 @@ html { - background: #280b22; + /* color: #280b22; */ color: #ccc; + background: #280b22; font-family: sans-serif; line-height: 1.4; text-shadow: 1px 1px #000; } +hr { + color: #666; +} -code,pre, #TOC, a:hover +code,pre, #TOC, a:hover, img { - border-radius:0.25em; background: #4e324e; + border-radius:0.25em; } header img { @@ -64,7 +71,6 @@ img,video,iframe,pre { max-width: 100%; overflow: auto; - border-radius:0.25em; } .title>*, header ul>li, .nav ul>li, @@ -92,14 +98,14 @@ html, ul, #TOC @media (min-width:60em) { - .title-logo{display:none} + .title-logo{display:none; background:none;} div.title,h1.title { background:url("/favicon.ico") no-repeat; background-size:auto 99%; min-height:2em } div.title {background-position:right} - h1.title {padding:0 4em} + h1.title {padding:0 4em; font-size:2.5em; font-weight:normal;} #TOC { float: left; From e073938b8b22d809480c10bf1fae070250c9cc65 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 21 Jan 2025 16:53:18 +0000 Subject: [PATCH 318/399] homepage: use u-boot screenshot, not t1650 grub the grub t1650 image is text mode i want the home page to be all purple Signed-off-by: Leah Rowe --- site/index.de.md | 2 +- site/index.fr.md | 2 +- site/index.it.md | 2 +- site/index.md | 2 +- site/index.ru.md | 2 +- site/index.uk.md | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/site/index.de.md b/site/index.de.md index 73e8b2e..5d911ed 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -102,7 +102,7 @@ Kenntnisse oder Fertigkeiten abgesehen von der Fähigkeit einer Wie kann ich helfen ----------- - + Der beste Weg wie Du helfen kannst, ist das *hinzufügen* neuer Motherboards in Libreboot, indem Du eine Konfiguration zur Verfügung stellst. Alles was von diff --git a/site/index.fr.md b/site/index.fr.md index 1b25bac..d0169dd 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -60,7 +60,7 @@ Les versions de Libreboot fournissent des images ROM pré-compilées que vous po Comment aider ----------- - + La meilleure façon d'aider le projet est d’ajouter de nouvelles cartes mères au projet Libreboot en soumettant une configuration. Tout ce qui est pris en charge par Coreboot peut être intégré à Libreboot, avec des images ROM fournies dans les versions publiées. Voir : diff --git a/site/index.it.md b/site/index.it.md index 2f15d50..e8937ba 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -95,7 +95,7 @@ particolari ad eccezione del seguire [semplici istruzioni scritte per chiunque]( Come essere d'aiuto ------------------- - + Il *modo migliore* col quale puoi aiutarci e' quello di *aggiungere* nuove schede condividendone la configurazione. Qualunque cosa sia supportata da coreboot puo' essere integrata in Libreboot, diff --git a/site/index.md b/site/index.md index e2028e9..d7c914c 100644 --- a/site/index.md +++ b/site/index.md @@ -116,7 +116,7 @@ control. Libreboot is not a fork of coreboot ----------------------------------- -Dell Precision T1650 running Libreboot + In fact, Libreboot tries to stay as close to *stock* coreboot as possible, for each board, but with many different types of configuration provided diff --git a/site/index.ru.md b/site/index.ru.md index c7198ab..bf974d2 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -49,7 +49,7 @@ Libreboot ориентирован на сообщество, с фокусом Libreboot это не форк coreboot ------------------------------ - + По факту, Libreboot пытается быть как можно более похожей на *стоковый* coreboot для каждой материнской платы, но с множетсвом доступных опций для конфигурации, предоставляемых автоматической системой сборки. diff --git a/site/index.uk.md b/site/index.uk.md index 48338fc..03b404c 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -92,7 +92,7 @@ Coreboot помітно складний для встановлення для Як допомогти ----------- - + *Єдиний* найбільший шлях, яким ви можете допомогти є *додавання* нових материнських плат до Libreboot, за допомогою відправки конфігурації. Що завгодно, що підтримує coreboot може бути інтегровано в From 51b53dc54ff6451775df5e90d3cd9938b68b9462 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 22 Jan 2025 11:25:40 +0000 Subject: [PATCH 319/399] make the title section a link to the homepage Signed-off-by: Leah Rowe --- .gitignore | 2 +- site/global.css | 4 ++++ site/template.de.include | 4 ++-- site/template.include | 4 ++-- site/template.it.include | 4 ++-- site/template.uk.include | 4 ++-- site/template.zh-cn.include | 4 ++-- 7 files changed, 15 insertions(+), 11 deletions(-) diff --git a/.gitignore b/.gitignore index 53e5469..aa3b895 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ *.html +/site/sitemap.xml /site/news/index* /site/sitemap.md -/site/sitemap.xml /site/push *feed.xml *.sha1sum diff --git a/site/global.css b/site/global.css index 9737081..8345983 100644 --- a/site/global.css +++ b/site/global.css @@ -96,6 +96,10 @@ html, ul, #TOC display: none; } +div.title:hover { + cursor: pointer; +} + @media (min-width:60em) { .title-logo{display:none; background:none;} diff --git a/site/template.de.include b/site/template.de.include index 1c89ccc..4758c1d 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -56,9 +56,9 @@ $include-before$ $endfor$ $if(title)$
    -
    +

    $title$

    diff --git a/site/template.include b/site/template.include index 47b1f04..8deb951 100644 --- a/site/template.include +++ b/site/template.include @@ -56,9 +56,9 @@ $include-before$ $endfor$ $if(title)$
    -
    +

    $title$

    diff --git a/site/template.it.include b/site/template.it.include index 2ea72ec..4e8c168 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -56,9 +56,9 @@ $include-before$ $endfor$ $if(title)$
    -
    +

    $title$

    diff --git a/site/template.uk.include b/site/template.uk.include index d98ae1a..c2eaf67 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -56,9 +56,9 @@ $include-before$ $endfor$ $if(title)$
    -
    +

    $title$

    diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index 301b689..c192168 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -56,9 +56,9 @@ $include-before$ $endfor$ $if(title)$
    -
    +

    $title$

    From 755666a238881968b2fd94684987b6ffb2ad214a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 22 Jan 2025 12:07:04 +0000 Subject: [PATCH 320/399] make text color a bit brighter ede, so that the green part is a bit lower, giving the text a slight purple tint Signed-off-by: Leah Rowe --- site/global.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/global.css b/site/global.css index 8345983..9c0cd35 100644 --- a/site/global.css +++ b/site/global.css @@ -42,7 +42,7 @@ h1,h2,h3,h4{font-weight:normal; font-size:2em} html { /* color: #280b22; */ - color: #ccc; + color: #ede; background: #280b22; font-family: sans-serif; line-height: 1.4; From 138b3e306f24aa8f4fd365e25dbfdc524267b44f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 24 Jan 2025 13:25:17 +0000 Subject: [PATCH 321/399] nvmutil: add notes about 16/128 kb gbe files Signed-off-by: Leah Rowe --- site/docs/install/nvmutil.md | 24 ++++++++++++++++++------ 1 file changed, 18 insertions(+), 6 deletions(-) diff --git a/site/docs/install/nvmutil.md b/site/docs/install/nvmutil.md index 2c22e03..92fffc7 100644 --- a/site/docs/install/nvmutil.md +++ b/site/docs/install/nvmutil.md @@ -112,11 +112,24 @@ fact work nicely, but software such as Linux will check that this is correct. If the checksum is invalid, your kernel will refuse to make use of the NIC. -This NVM section is the first 128 bytes of a 4KB region in flash. -This 4KB region is then repeated, to make an 8KB region in +This NVM section is the first 128 bytes of a *block size* KB region in flash. +This *block size* KB region is then repeated, to make an *block size multipled +by two* KB region in flash, known as the *GbE region*. In `nvmutil`, the first part is referred to as *part 0* and the second part as *part 1*. +The block size can be 4KB, 8KB or 64KB, meaning that GbE files can +be 8KB, 16KB or 128KB; the first half is part 0 and the second half is part 1. +The first 4KB of each part is what we are concerned with; and in each 4KB part +is the 128-byte NVM area at the very start, containing our configuration. + +**NOTE: Support for 16KB and 128KB files was only added *after* the +Libreboot 20241206 release. It will be available in all releases after that, +or you can simply compile nvmutil from the Libreboot Git repository lbmk, +from directory `util/nvmutil/` - on the older releases, and older versions of +nvmutil, only 8KB GbE files are supported, but we mostly only use 8KB files +anyway (you're very unlikely to encounter 16KB or 128KB files).** + ### Known compatible PHYs TODO: write a full list her ofe what actual PHYs are known to work. @@ -378,7 +391,7 @@ command only requires read access on files. Where sufficient permission is not given (read and/or write), nvmutil will exit with non-zero status. Non-zero status will also be returned, if the target file is *not* -of size *8KB*. +of size *8KB*, *16KB* or *128KB*. Additional rules regarding exit status shall apply, depending on what command you use. Commands are documented in the following sections: @@ -469,7 +482,7 @@ will exit with non-zero status. This command requires read *and* write access on files. The `nvm` program can copy one NVM part to another. It copies -the *entire* 4KB part, within the 8KB file. +the *entire* *block size* KB part, within the *two blocks* KB file. Overwrite part 0 with the contents of part 1: @@ -488,7 +501,7 @@ zero status. This command requires read *and* write access on files. -The `nvm` program can swap both 4KB parts in the GbE +The `nvm` program can swap both *block size* KB parts in the GbE file. It does this, via simple XOR swaps. How to use: @@ -587,7 +600,6 @@ provided only for reference; it may be useful for future auditing. TODO ---- -* Support higher block sizes e.g. 8KB blocks for GbE part sections * Adapt this into a manpage (useful for Linux package repositories / BSD ports) * Send nvmutil upstream to coreboot, for inclusion under `util/` * In addition to the manpage, when sending to coreboot, also adapt this page From 0638856c1c2264cb4ca875db7daa75134822dcbb Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 25 Jan 2025 06:49:02 +0000 Subject: [PATCH 322/399] gnu grub boot loader Signed-off-by: Leah Rowe --- site/index.de.md | 26 +++++++++++++------------- site/index.fr.md | 19 ++++++++++--------- site/index.it.md | 21 +++++++++++---------- site/index.md | 27 ++++++++++++++------------- site/index.ru.md | 16 +++++++++------- site/index.uk.md | 21 +++++++++++---------- site/index.zh-cn.md | 17 +++++++++-------- 7 files changed, 77 insertions(+), 70 deletions(-) diff --git a/site/index.de.md b/site/index.de.md index 5d911ed..fc34224 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -16,19 +16,9 @@ und [Libera](https://libera.chat/) IRC. -You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, -on select hardware, as well as send your compatible hardware -for [Libreboot preinstallation](https://minifree.org/product/installation-service/). -The founder and lead developer of Libreboot, Leah Rowe, also owns and operates -Minifree; sales provide funding for Libreboot. - -**NEUESTE VERSION: Die neueste Version von Libreboot ist 20241206, veröffentlicht -am 6 December 2024. -Siehe auch: [Libreboot 20241206 release announcement](news/libreboot20241206.md).** - -Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 -Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* -on ARM64(Aarch64) motherboards. +Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payloads on +x86/x86\_64 Intel/AMD motherboards, and +a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight UEFI boot implementation, which can boot many Linux distros and BSD systems. @@ -37,6 +27,16 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. +**NEUESTE VERSION: Die neueste Version von Libreboot ist 20241206, veröffentlicht +am 6 December 2024. +Siehe auch: [Libreboot 20241206 release announcement](news/libreboot20241206.md).** + +You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, +on select hardware, as well as send your compatible hardware +for [Libreboot preinstallation](https://minifree.org/product/installation-service/). +The founder and lead developer of Libreboot, Leah Rowe, also owns and operates +Minifree; sales provide funding for Libreboot. + Warum solltest Du *Libreboot* verwenden? ---------------------------- diff --git a/site/index.fr.md b/site/index.fr.md index d0169dd..85471c7 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -8,15 +8,8 @@ Il initialise le matériel (le contrôleur de mémoire, le CPU, les périphériq -Vous pouvez également acheter du matériel avec [Libreboot pré-installé](https://minifree.org/) via l'entreprise Minifree Ltd, -ou envoyer votre propre ordinateur [pour y installer Libreboot](https://minifree.org/product/installation-service/). - -Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot. - -**NOUVELLE VERSION: La dernière version est [Libreboot 20241206](news/Libreboot20241206.md), sortie -le 6 December 2024.** - -Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 +Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payloads +on x86/x86\_64 Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available @@ -27,6 +20,14 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. +**NOUVELLE VERSION: La dernière version est [Libreboot 20241206](news/Libreboot20241206.md), sortie +le 6 December 2024.** + +Vous pouvez également acheter du matériel avec [Libreboot pré-installé](https://minifree.org/) via l'entreprise Minifree Ltd, +ou envoyer votre propre ordinateur [pour y installer Libreboot](https://minifree.org/product/installation-service/). + +Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot. + Pourquoi devriez-vous utiliser *Libreboot*? ----------------------------------- diff --git a/site/index.it.md b/site/index.it.md index e8937ba..44373d8 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -14,16 +14,8 @@ su [Libera](https://libera.chat/). -You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, -on select hardware, as well as send your compatible hardware -for [Libreboot preinstallation](https://minifree.org/product/installation-service/). -The founder and lead developer of Libreboot, Leah Rowe, also owns and operates -Minifree; sales provide funding for Libreboot. - -**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 20241206, rilasciato il 6 December 2024. -Vedi: [Libreboot 20241206 annuncio di rilascio](news/libreboot20241206.md).** - -Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 +Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payloads +on x86/x86\_64 Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available @@ -34,6 +26,15 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. +**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 20241206, rilasciato il 6 December 2024. +Vedi: [Libreboot 20241206 annuncio di rilascio](news/libreboot20241206.md).** + +You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, +on select hardware, as well as send your compatible hardware +for [Libreboot preinstallation](https://minifree.org/product/installation-service/). +The founder and lead developer of Libreboot, Leah Rowe, also owns and operates +Minifree; sales provide funding for Libreboot. + Per quale ragione utilizzare *Libreboot*? ----------------------------------------- diff --git a/site/index.md b/site/index.md index d7c914c..78d9299 100644 --- a/site/index.md +++ b/site/index.md @@ -16,11 +16,14 @@ on [Libera](https://libera.chat/) IRC. ThinkPad T480 running LibrebootThinkPad T480 running Libreboot -You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, -on select hardware, as well as send your compatible hardware -for [Libreboot preinstallation](https://minifree.org/product/installation-service/). -The founder and lead developer of Libreboot, Leah Rowe, also owns and operates -Minifree; sales provide funding for Libreboot. +Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payloads +on x86/x86\_64 +Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* +on ARM64(Aarch64) motherboards. +An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available +on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight +UEFI boot implementation. Libreboot's [design](docs/maintain/) incorporates all +of these payloads in a single image, and you choose one at boot time. **NEW RELEASE: The latest release is Libreboot 20241206, released on 6 December 2024. @@ -28,6 +31,12 @@ See: [Libreboot 20241206 release announcement](news/libreboot20241206.md) - the newest revision release, Libreboot 20241206 revision 8, is from 6 January 2025.** +You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, +on select hardware, as well as send your compatible hardware +for [Libreboot preinstallation](https://minifree.org/product/installation-service/). +The founder and lead developer of Libreboot, Leah Rowe, also owns and operates +Minifree; sales provide funding for Libreboot. + *We* believe the freedom to [study, share, modify and use software](https://writefreesoftware.org/), without any restriction, is one of the fundamental human rights that everyone must have. @@ -48,14 +57,6 @@ which then jumps to a [payload](https://doc.coreboot.org/payloads.html) in the boot flash; coreboot works with many payloads, which boot your operating system e.g. Linux/BSD. -Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 -Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* -on ARM64(Aarch64) motherboards. -An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available -on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight -UEFI boot implementation. Libreboot's [design](docs/maintain/) incorporates all -of these payloads in a single image, and you choose one at boot time. - Libreboot makes coreboot easy to use for non-technical users, by providing a [fully automated build system](docs/maintain/), [automated build process](docs/build/) and diff --git a/site/index.ru.md b/site/index.ru.md index bf974d2..b91e451 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -7,13 +7,8 @@ x-toc-enable: true -Вы также можете купить [Libreboot предустановленным](https://minifree.org) от Minifree Ltd, а также присылать нам свои совместимые устройства для [установки Libreboot](https://minifree.org/product/installation-service/). Основатель и ведущий разработчик Libreboot, Лия Роу, также владеет и управляет Minifree; продажи обеспечивают финансирование для Libreboot. - -**НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 20241206, опубликован 6 December 2024 года. Смотрите: [Libreboot 20241206 release announcment](news/libreboot20241206.md).** - -*Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://en.wikipedia.org/wiki/Right_to_repair) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. - -Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 +Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payloads +on x86/x86\_64 Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available @@ -24,6 +19,13 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. +**НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 20241206, опубликован 6 December 2024 года. Смотрите: [Libreboot 20241206 release announcment](news/libreboot20241206.md).** + +Вы также можете купить [Libreboot предустановленным](https://minifree.org) от Minifree Ltd, а также присылать нам свои совместимые устройства для [установки Libreboot](https://minifree.org/product/installation-service/). Основатель и ведущий разработчик Libreboot, Лия Роу, также владеет и управляет Minifree; продажи обеспечивают финансирование для Libreboot. + +*Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://en.wikipedia.org/wiki/Right_to_repair) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. + + Обзор устройства Libreboot -------------------------- diff --git a/site/index.uk.md b/site/index.uk.md index 03b404c..99529bf 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -15,16 +15,8 @@ x-toc-enable: true -You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, -on select hardware, as well as send your compatible hardware -for [Libreboot preinstallation](https://minifree.org/product/installation-service/). -The founder and lead developer of Libreboot, Leah Rowe, also owns and operates -Minifree; sales provide funding for Libreboot. - -**НОВИЙ ВИПУСК: Останній випуск Libreboot 20241206, випущено 6 December 2024. -Дивіться: [Оголошення про випуск Libreboot 20241206](news/libreboot20241206.md).** - -Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 +Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payloads +on x86/x86\_64 Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available @@ -35,6 +27,15 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. +**НОВИЙ ВИПУСК: Останній випуск Libreboot 20241206, випущено 6 December 2024. +Дивіться: [Оголошення про випуск Libreboot 20241206](news/libreboot20241206.md).** + +You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, +on select hardware, as well as send your compatible hardware +for [Libreboot preinstallation](https://minifree.org/product/installation-service/). +The founder and lead developer of Libreboot, Leah Rowe, also owns and operates +Minifree; sales provide funding for Libreboot. + Чому вам варто використовувати *Libreboot*? ---------------------------- diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index 55101de..dacba69 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -7,14 +7,8 @@ x-toc-enable: true -你也可以从 Minifree Ltd [购买特定硬件的 Libreboot 电脑](https://minifree.org/), -或者将兼容硬件寄来预装 Libreboot。 -Libreboot 的创始人和主要开发者,Leah Rowe,也是 Minifree 的所有者和经营者; -销售电脑为 Libreboot 提供资金。 - -**新版发布: 最新版本 Libreboot 20241206 已在 2024 年 12 月 06 日发布。详见: [Libreboot 20241206 发布公告](news/libreboot20241206.md).** - -Libreboot provides [GRUB](docs/linux/) and SeaBIOS payloads on x86/x86\_64 +Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payload +on x86/x86\_64 Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available @@ -25,6 +19,13 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. +**新版发布: 最新版本 Libreboot 20241206 已在 2024 年 12 月 06 日发布。详见: [Libreboot 20241206 发布公告](news/libreboot20241206.md).** + +你也可以从 Minifree Ltd [购买特定硬件的 Libreboot 电脑](https://minifree.org/), +或者将兼容硬件寄来预装 Libreboot。 +Libreboot 的创始人和主要开发者,Leah Rowe,也是 Minifree 的所有者和经营者; +销售电脑为 Libreboot 提供资金。 + 为什么要使用 *Libreboot*? ---------------------------- From 3c2af034edd69fc470d9fec267400e9a742b640c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 25 Jan 2025 07:08:47 +0000 Subject: [PATCH 323/399] gnu boot loader grub Signed-off-by: Leah Rowe --- site/index.de.md | 2 +- site/index.fr.md | 2 +- site/index.it.md | 2 +- site/index.md | 2 +- site/index.ru.md | 2 +- site/index.uk.md | 2 +- site/index.zh-cn.md | 2 +- site/template.de.include | 2 +- site/template.include | 2 +- site/template.it.include | 2 +- site/template.uk.include | 2 +- site/template.zh-cn.include | 2 +- 12 files changed, 12 insertions(+), 12 deletions(-) diff --git a/site/index.de.md b/site/index.de.md index fc34224..139f540 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -16,7 +16,7 @@ und [Libera](https://libera.chat/) IRC. -Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payloads on +Libreboot provides GNU boot loader "[GRUB](docs/linux/)" and SeaBIOS payloads on x86/x86\_64 Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. An [x86/x86\_64 U-Boot UEFI payload](docs/uboot/uboot-x86.md) is also available diff --git a/site/index.fr.md b/site/index.fr.md index 85471c7..4ab6977 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -8,7 +8,7 @@ Il initialise le matériel (le contrôleur de mémoire, le CPU, les périphériq -Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payloads +Libreboot provides GNU boot loader "[GRUB](docs/linux/)" and SeaBIOS payloads on x86/x86\_64 Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. diff --git a/site/index.it.md b/site/index.it.md index 44373d8..072018f 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -14,7 +14,7 @@ su [Libera](https://libera.chat/). -Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payloads +Libreboot provides GNU boot loader "[GRUB](docs/linux/)" and SeaBIOS payloads on x86/x86\_64 Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. diff --git a/site/index.md b/site/index.md index 78d9299..4acf802 100644 --- a/site/index.md +++ b/site/index.md @@ -16,7 +16,7 @@ on [Libera](https://libera.chat/) IRC. ThinkPad T480 running LibrebootThinkPad T480 running Libreboot -Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payloads +Libreboot provides GNU boot loader "[GRUB](docs/linux/)" SeaBIOS payloads on x86/x86\_64 Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. diff --git a/site/index.ru.md b/site/index.ru.md index b91e451..6f9474e 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -7,7 +7,7 @@ x-toc-enable: true -Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payloads +Libreboot provides GNU boot loader "[GRUB](docs/linux/)" and SeaBIOS payloads on x86/x86\_64 Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. diff --git a/site/index.uk.md b/site/index.uk.md index 99529bf..4772fae 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -15,7 +15,7 @@ x-toc-enable: true -Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payloads +Libreboot provides GNU boot loader "[GRUB](docs/linux/)" and SeaBIOS payloads on x86/x86\_64 Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index dacba69..31eb162 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -7,7 +7,7 @@ x-toc-enable: true -Libreboot provides GNU [GRUB](docs/linux/) boot loader and SeaBIOS payload +Libreboot provides GNU boot loader "[GRUB](docs/linux/)" and SeaBIOS payload on x86/x86\_64 Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. diff --git a/site/template.de.include b/site/template.de.include index 4758c1d..9c8bd55 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -2,7 +2,7 @@ - + diff --git a/site/template.include b/site/template.include index 8deb951..6985d07 100644 --- a/site/template.include +++ b/site/template.include @@ -2,7 +2,7 @@ - + diff --git a/site/template.it.include b/site/template.it.include index 4e8c168..807bfef 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -2,7 +2,7 @@ - + diff --git a/site/template.uk.include b/site/template.uk.include index c2eaf67..86fbb82 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -2,7 +2,7 @@ - + diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index c192168..d1cf266 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -2,7 +2,7 @@ - + From f3b11876443b39f536dec91fd9fff630d4417ee2 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 25 Jan 2025 07:11:08 +0000 Subject: [PATCH 324/399] grammar Signed-off-by: Leah Rowe --- site/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/index.md b/site/index.md index 4acf802..bb12feb 100644 --- a/site/index.md +++ b/site/index.md @@ -16,7 +16,7 @@ on [Libera](https://libera.chat/) IRC. ThinkPad T480 running LibrebootThinkPad T480 running Libreboot -Libreboot provides GNU boot loader "[GRUB](docs/linux/)" SeaBIOS payloads +Libreboot provides GNU boot loader "[GRUB](docs/linux/)" and SeaBIOS payloads on x86/x86\_64 Intel/AMD motherboards, and a [U-Boot UEFI payload](docs/uboot/) *for coreboot* on ARM64(Aarch64) motherboards. From 9bd18ec1ae411ea18eb0d742a33fb7ede4dae87e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 25 Jan 2025 07:25:05 +0000 Subject: [PATCH 325/399] hardened title Signed-off-by: Leah Rowe --- site/docs/linux/grub_hardening.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index 4ec9642..c104934 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -1,5 +1,5 @@ --- -title: Hardening GRUB (i.e. Secure libreBoot) +title: Hardened GNU boot loader (GRUB payload) x-toc-enable: true ... From b9e94013d85e3200944e0078b632e432fd41a9d7 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 25 Jan 2025 07:29:56 +0000 Subject: [PATCH 326/399] docs/install: better introduction Signed-off-by: Leah Rowe --- site/docs/install/index.md | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/site/docs/install/index.md b/site/docs/install/index.md index fa6c680..3ed0252 100644 --- a/site/docs/install/index.md +++ b/site/docs/install/index.md @@ -1,11 +1,16 @@ --- -title: Install Libreboot Open Source BIOS/UEFI firmware +title: Install Libreboot Open Source BIOS/UEFI boot firmware x-toc-enable: true ... -Open source BIOS/UEFI firmware +Open source BIOS/UEFI boot firmware ------------------------------ +With x86 machines, you can use the SeaBIOS or the GNU boot loader named GRUB as +a payload. On ARM +systems, you can use the U-Boot payload (coreboot still initialises hardware). +An x86/x86\_64 U-Boot UEFI payload is also available. + This article will teach you how to install Libreboot, on any of the supported laptop, desktop and server motherboards of Intel/AMD x86/x86\_64 and ARM64 platform. @@ -64,9 +69,6 @@ build system can be found in the [lbmk maintenance manual](../maintain/), and information about porting new systems in the [porting manual](../maintain/porting.md). -With x86 machines, you can use the SeaBIOS or GRUB bootloader payloads. On ARM -systems, you can use the U-Boot payload (coreboot still initialises hardware). - Libreboot currently supports the following systems: ### Games consoles From 675e3d8593fcf858ed969cb7c6c9aa76dc18746b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 25 Jan 2025 07:39:35 +0000 Subject: [PATCH 327/399] improve the linux page Signed-off-by: Leah Rowe --- site/docs/linux/index.md | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/site/docs/linux/index.md b/site/docs/linux/index.md index fc80616..0ad58ce 100644 --- a/site/docs/linux/index.md +++ b/site/docs/linux/index.md @@ -1,17 +1,12 @@ --- -title: Install Linux on a Libreboot system +title: Boot GNU and Linux on a Libreboot system x-toc-enable: true ... -Booting Linux from GRUB payload -------------------------------- +GNU boot loader "GRUB" +-------- -NOTE: This guide pertains to x86 hosts, and does not cover supported CrOS/ARM -chromebooks. For ARM targets, you should refer -to [u-boot documentation](../uboot/) - separate [U-Boot x86 -documentation](../uboot/uboot-x86.md) is also available. - -This page is useful for those who wish to use the GRUB GRUB payload directly. +This page is useful for those who wish to use the GNU boot loader called GRUB. If you're using SeaBIOS, the boot process will work similarly to traditional BIOS systems; refer to the SeaBIOS documentation on @@ -19,6 +14,13 @@ on Linux is generally assumed, especially for Libreboot development, but Libreboot also works quite nicely with [BSD systems](../bsd/). +### Booting Linux from GRUB payload + +NOTE: This guide pertains to x86 hosts, and does not cover supported CrOS/ARM +chromebooks. For ARM targets, you should refer +to [u-boot documentation](../uboot/) - separate [U-Boot x86 +documentation](../uboot/uboot-x86.md) is also available. + ### Useful links Refer to these pages, hosted by the Libreboot project: From a655788bdb83b9dd4b426382000b6771fb5a26f8 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 25 Jan 2025 07:44:45 +0000 Subject: [PATCH 328/399] improve home page title Signed-off-by: Leah Rowe --- site/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/index.md b/site/index.md index bb12feb..80c6cfe 100644 --- a/site/index.md +++ b/site/index.md @@ -1,5 +1,5 @@ --- -title: Free and Open Source BIOS/UEFI firmware +title: Free and Open Source BIOS/UEFI boot firmware x-toc-enable: true ... From e48c951f25cee6335c662c50eb29fddc84efd6ff Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 25 Jan 2025 11:25:12 +0000 Subject: [PATCH 329/399] lbssg Signed-off-by: Leah Rowe --- site/docs/index.md | 1 + site/docs/index.uk.md | 1 + site/docs/index.zh-cn.md | 1 + site/docs/sitegen/index.md | 849 +++++++++++++++++++++++++++++++++++++ site/git.de.md | 13 +- site/git.md | 13 +- site/git.uk.md | 13 +- site/index.de.md | 4 + site/index.fr.md | 4 + site/index.it.md | 4 + site/index.md | 4 + site/index.ru.md | 3 + site/index.uk.md | 4 + site/index.zh-cn.md | 4 + 14 files changed, 903 insertions(+), 15 deletions(-) create mode 100644 site/docs/sitegen/index.md diff --git a/site/docs/index.md b/site/docs/index.md index 96a9f92..9684d2d 100644 --- a/site/docs/index.md +++ b/site/docs/index.md @@ -43,6 +43,7 @@ Information for developers Other information ----------------- +- [Libreboot Static Site Generator](sitegen/) - [Miscellaneous](misc/) - [List of codenames](misc/codenames.md) diff --git a/site/docs/index.uk.md b/site/docs/index.uk.md index 2fc7309..cf0fd85 100644 --- a/site/docs/index.uk.md +++ b/site/docs/index.uk.md @@ -43,6 +43,7 @@ operates Minifree Ltd; sales provide funding for the Libreboot project. Інша інформація --------------- +- [Libreboot Static Site Generator](sitegen/) - [Різне](misc/) - [Список кодових назв](misc/codenames.md) diff --git a/site/docs/index.zh-cn.md b/site/docs/index.zh-cn.md index 40ac6e4..7e92669 100644 --- a/site/docs/index.zh-cn.md +++ b/site/docs/index.zh-cn.md @@ -41,6 +41,7 @@ operates Minifree Ltd; sales provide funding for the Libreboot project. 其它信息 -------- +- [Libreboot Static Site Generator](sitegen/) - [杂项](misc/) - [代号列表](misc/codenames.md) diff --git a/site/docs/sitegen/index.md b/site/docs/sitegen/index.md new file mode 100644 index 0000000..53073c0 --- /dev/null +++ b/site/docs/sitegen/index.md @@ -0,0 +1,849 @@ +--- +title: Libreboot Static Site Generator (lbssg) +x-toc-enable: true +... + +Home of your favourite firmware to boot GNU / Linux +--------------------------------------------------- + +This document describes the *static site generator*, which is used to build +the Libreboot website; it was previously called the *Untitled Static Site +Generator* and hosted separately, but it is now an official component of +the Libreboot project, since 25 January 2025. + +This static site generator is simply called the *Libreboot Static Site +Generator*, or just *lbssg* for short. It can be used for any number of +websites, and is in fact used elsewhere, but it is primarily used *by* and +developed *for* the Libreboot project. + +The Git repository is now `lbssg.git`, which you can find linked on +the [Git page](../../git.md). + +Websites made easy +------------------ + +This software is written in POSIX shell (`sh`) scripts, and uses Pandoc to +generate HTML from Markdown files. It is designed to be stupidly simple, +allowing Free and Open Source Software projects to easily host any number of +websites. + +It is a *multi-site* static site generator; a single instance of LBSSG can +handle an unlimited number of websites, all with different *templates* in +Pandoc (for different page layouts), CSS files, footer, header, navigation and +more. + +With lbssg, it is possible to generate an unlimited number of *news* +pages and *blogs*, with auto-generated RSS feeds. + +The variant of markdown is the Pandoc variant, which you can read about here:\ + + +The *templates* feature in Pandoc is really what makes lbssg very powerful. +You can make any number of websites, with many different designs, using Pandoc +templates. This is precisely why lbssg uses Pandoc. See:\ + + +Pandoc's *smart* mode is used. In this mode, it is possible to use HTML +inside Markdown files. For example, if you want to embed videos, use iframes, +use JavaScript and more. + +lbssg is *Free Software*, released under the terms of the GNU General Public +License, version 3 of the license or, at your option, any later version as +published by the Free Software Foundation. You can find a copy of this license +in the `COPYING` file, when you download lbssg, or you can read it here:\ + + +(some parts of it are under the MIT license) + +Learn more about Free Software:\ +. + +### Real-world examples + +Here are some websites built using the Libreboot Static Site Generator: + +* (Libreboot project, maintained by Leah Rowe) +* (Libreboot fork maintained by Leah Rowe) +* +* (Leah Rowe's blog) + +Requirements +------------ + +Libreboot Static Site Generator is designed to be stupidly simple. You need: + +* Unix-based operating system e.g. Linux-based distro, OpenBSD, FreeBSD. Etc +* Pandoc +* Web server (nginx or OpenBSD httpd recommended) +* Any implementation of these Unix utilities: `sh`, `find`, `grep` and `sed`. + +### POSIX compatibility + +As of revision `9cc6f5dc7349b7f339f99c84789b6c62ea7bb1c7` on 4 December 2023, +lbssg works with any POSIX `sh` implementation. Various utilities like +Sed, Find (that are POSIX) are now used in a POSIX way. This means that +lbssg can be used on pretty much any Unix system such as GNU+Linux, +Alpine Linux, Chimera Linux, BSDs like OpenBSD or FreeBSD, and so on. Older +revisions only worked with GNU tools, but the newer revision also still works +with GNU tools. Older revisions of lbssg were written in `bash`, not `sh`. + +Security notes +--------------- + +USE THIS SOFTWARE AT YOUR OWN RISK. A FULL SECURITY AUDIT IS NEEDED. + +Symlinks are intentionally unsupported, and *ignored*, in site directories +handled by lbssg. This is for security reasons. If you find that symlinks +are permitted, in any way, it's a bug and you should report it! + +At the very least, you are advised to take the following precautions + +* It is HIGHLY recommended that you run lbssg in a heavily chrooted + environment, if you're using this on a production web server. +* Disable symlinks in your web server + +DO NOT use lbssg in a shared hosting environment, especially on a crontab or +other automated setup. You, the operator, must ensure full control of all +sites handled by your lbssg installation. For the time being, this is +recommended until lbssg is full audited for security, and modified +accordingly. Efforts have already been made, but this software is very new +and requires a lot of testing. In general, you should consider lbssg to +be *alpha* quality, at best. It is not yet ready for a stable release; it is +currently only *rolling release*, hosted in a Git repository. + +lbssg only allows sites to be processed under `www/` in the +current working directory. You may choose to put `www/` under the git clone +of lbssg itself. Or you could specify the full path to the `build` script +and process files in a `www/` elsewhere. + +Getting started +--------------- + +Simply make a directory named `www/` somewhere. + +In `www/`, make a directory *per website*. For each website, +set `www/sitename/site/` as the document root in your web server. +lbssg expects this `site` directory to exist. + +### Example website + +Check the `www-example` directory, for an example website. Also look at the +logic in the file named `build`, in the main directory of the untitled static +site generator. + +The Libreboot website is also hosted in a Git repository, if you want a +real-world example of a website that uses lbssg. + +How to use +---------- + +You should use a normal Unix shell (`sh` implementations such as KSH, BASH, +ZSH, CSH etc will all work). This, along with Pandoc. + +See: + +You must then install a web server. The document root for your domain should +point to the `www/sitename/site` directory, where `sitename` is the name of +your site, e.g. `libreboot`, and `www/` is created under your instance of +lbssg. + +The way lbssg is designed, you use it directly, running directly on the +server that then hosts the HTML files. However, it is possible to use it in +other ways; for example, you could rsync the resulting files over ssh, to your +server, while running lbssg locally. It's up to you. + +### Generate entire websites + +For security reasons, lbssg will only operate on sites under `www/sitename/` +where `sitename` can be anything. + +To interact with `untitled`, your current working directory should be the main +directory *of untitled*, *not your website*. In that directory, the file named +`build` and the file named `clean` will exist. + +You can have untitled go through an entire website and, if it detects that such +an action is needed, it will build each page. It will check whether a page +needs to be built. For example, if it was already built and no changes were +made, it will skip that page. It does this, using `date -r file +%s` to check +file modification dates. Files ending in `.date` are created, for files that +are tracked by lbssg. + +For a given directory name under `www/`, do this: + + ./build sites www/directoryname + +You can also do: + + ./build sites directoryname + +For example, if your website was hosted at www/foobar: + + ./build sites foobar + +This will only work if your website is set up correctly. Look at the example +website in `www-example/` and read the sections below. + +To build *all* available websites under `www/`, just run it without an argument: + + ./build sites + +You can specify *multiple* websites. For example: + + ./build sites blogsite catblogsite + +In this example, the following sites would be built: + +* `www/blogsite` +* `www/catblogsite` + +NOTE: If you simply run `./build` without any arguments, the `./build sites` +command will be executed. + +### Build specific pages + +These commands will only operate on pages under `www/sitename/` where `sitename` +can be anything. This is for security reasons. + +If you want to save time (e.g. if you're just editing a few pages), you can +skip checking the entire site (or sites) and update just that page. Use this +command: + + ./build pages www/sitename/site/path/to/page.md + +You can also do: + + ./build pages sitename/path/to/page.md + +lbssg will automatically correct the path, if `www/` and `site/` are missing +from the path. For example, to update the homepage: + + ./build pages sitename/index.md + +You can specify multiple pages, *on multiple sites*. For example: + + ./build pages joebloggsandhisdog/index.md janedoesblog/news/guitar.md + +NOTE: the `mksitemap` and `mknews` functions are not automatically executed +when running these commands. + +NOTE: if you run `./build pages` without specifying any paths to pages, then +the `./build sites` command will be executed instead. However, if you specify +paths and none exist, nothing will happen. + +NOTE: If you simply run `./build` without any arguments, the `./build sites` +command will be executed. + +### Cleaning up + +If you want to un-make your site, such that the HTML files are purged, do this: + + ./clean + +This will clean *all* sites. If you only want to clean a specific site, do +this: + + ./clean sitename + +(sitename would be located at `www/sitename/`, in this example) + +NOTE: an HTML file is only deleted if a corresponding Markdown file exists. +This means that if you permanently delete a markdown file from your site, you +should ensure that the HTML file is also delete dif you don't want that file +to be available anymore. + +### Rolling builds + +If you're running lbssg directly, SSH'd into your httpd machine, you +might want to update an entire website from scratch. This ordinarily means +that you must run `./clean`, first - in other words, the website will be +offline (HTML files deleted) while it re-builds. + +To prevent this, you can use `roll` instead of `build`. For example: + + ./roll sites libreboot + +This also works with pages: + + ./roll pages libreboot/index.md + +You can also do this without argument, as with `build`, and it would build +everything. e.g.: + + ./roll + ./roll sites + ./roll pages + +This is especially useful for very large websites, where an entire re-build +might take 30 seconds or more. + +Markdown files +-------------- + +Write your markdown files, with file extensions ending in __*.*md__ and the +build script will automatically see them. It will convert them into HTML, +stripping off the __*.*md__ file extension and replacing it with `.html` + +Place these markdown files anywhere under `www/sitename/site/` where `sitename` +is whatever you named your website, per directory hierarchy rules of lbssg. + +Again, the `www-example` directory can be extremely useful if you want to play +around first, before you make a real website with lbssg. + +Files in www/sitename/ +---------------------- + +These files affect the site globally, for each website under `www/` + +Each site has its own directory: www/sitename/ + +`sitename` can be anything you want. e.g. `kittenblog` + +www/sitename/site.cfg +--------------------- + +**REQUIRED** + +sitename can be anything. + +site.cfg is the main configuration file for your website. + +Example entries (for libreboot.org): + +``` +TITLE="Libreboot" +CSS="/global.css" +DOMAIN="https://libreboot.org/" +BLOGDIR="news/" +DEFAULTLANG="en" +``` + +NOTE: Older versions of untitled had TITLE like this: + +``` +TITLE="-T Libreboot" +``` + +You must now omit the -T option, because it's hardcoded in the build script. + +### LAZY + +If `LAZY="y"`, lazy image loading will be enabled. This is useful for +conserving bandwidth. The default behaviour is `LAZY="n"` if not set +to `"y"`. See: + + + +### DEFAULTLANG + +This is optional. If unspecified, the default language will be English. Also, +if this entry defines an unsupported language, lbssg will default to +English. + +It specifies the default language, for your website. It may +be that you have multiple languages available on your website, +where __file*.*md__ is your chosen language (e.g. German, Japanese, Englist) +and __file.xx*.*md__ is another language for the same page. xx can be anything. + +### BLOGDIR + +This is the directory for your main news section, if you have a news section. +You do not need to declare this. + +The news section is only valid if it has the right files, in the directory +specified here. You can actually have as many news/blog sections as you like, +but this setting specifies the "main" one. For example, if you're a software +project you might have a news section, and a release section, and they might +both be news pages. News pages have RSS feeds and indexes automatically +generated by `untitled`. + +If your website is primarily a blog, you might leave this string empty. That +way, your *home page* is the news index. In that scenario, you would not place +an index file in the root of your website. Let `untitled` generate it for you! + +### DOMAIN + +This is the URL for the home page of your website. + +### CSS + +Specifies the .css stylesheet that is to be used. See above example. Just add +an entry saying `/path/to/css/file` for the CSS file. The `/` is the root +of your website, when viewed publicly. Basically, / would be the home page, +and everything after that is relative. In other words, it is the URI of your +CSS file. + +The actual domain name is not prefixed, when the CSS stylesheet path is given +inside the generated HTML document. + +### TITLE + +Use the format above. Don't use spaces or special characters. Just keep it +simply. E.g. `-T Gardening` + +This would usually be the name of your website, company, project or whatever +else. + +### SITEMAP + +OPTIONAL. + +Write this in `site.cfg` for a given site: + +``` +SITEMAP="n" +``` + +If you do this, the sitemap will not be generated. lbssg will otherwise +generate a sitemap, by default. + +site/template.include +--------------------- + +**REQUIRED** + +Put a pandoc template here, in this file. + +There is an HTML5 template in `www-example/` which you can adapt for your site. +TODO: make an xhtml template. Patches welcome! + +It is recommended that you put your common site navigation section in this +file (formatted in HTML). + +site/nav.include +---------------- + +**optional** + +Put this in the root of `www/sitename/site/`. You can actually put whatever +you want in here, but it can be used for a navigation menu. You could also use +it to put a side-wide notice, on your website. + +Write this file in Markdown. You could also put a common navigation section +in the template, and use `nav` files for site-wide announcements, or for +announcements on specific pages. How you use lbssg is entirely up to you! + +site/global.css +--------------- + +**optional** + +The filename can actually be anything, for your CSS. In fact, it's entirely +optional. You can leave the CSS string empty in `site.cfg` and just have a +site without CSS. + +The name `global.css` is merely what the example website (in `www-example/`) +uses, but you don't have to use this file name yourself. + +This file is for styling your pages (HTML ones, after building your Markdown +files). + +w3schools has a nice set of tutorials for learning CSS: + + + +site/sitemap.html +----------------- + +The file named __sitemap*.*md__ will be automatically generated, which is then +assembled into `sitemap.html`. This file will sit on the root directory of +your website. + +Do not manually create these files. They are automatically generated by +lbssg. They simply index your entire website. + +NOTE: It only looks at pages where a Markdown file exists. It ignores pages +where an HTML page exists but a Markdown page doesn't. + +site/sitemap.include +-------------------- + +**optional** + +This file MUST be included if you want a sitemap with your own text. + +If this file is missing, a sitemap will be generated but it will contain a +generic header on the page. + +Simply put a title and some text in here. lbssg and Pandoc will do the rest! + +site/footer.include +------------------- + +**optional** + +If present, this will add a common footer to every page on your website. Write +it in Markdown. + +Rules for Markdown files +------------------------ + +This applies to any __*.*md__ file under `www/sitename/site/` where `sitename` +is whatever you named your website, per directory hiearchy rules. + +The file named __file*.*md__ will be converted into HTML and copied (in HTML +format) to `file.html`. + +When you link to other pages, use absolute links or relative links, but don't +link to the `.html` pages. Link directly to the __*.*md__ files. lbssg +static site generator will use Sed to replace these with .html when generating +the HTML pages (it only skips replacing *external* links, +e.g. `https://example.com/cats.md` + +### TOC (Table of Contents) + +See pages in `www-example/` or example websites linked above (such as the +Libreboot project website). Look in the markdown files for those sites, on +pages that specify `x-toc-enable: true`. This is a special directive for the +Pandoc variant of Markdown. Some other Markdown parsers/generators will also +generate a table of contents. + +In the untitled static site generator, when a TOC is enabled, the depth is 4. +This means that, in HTML, the h1, h2, h3 and h4 tags will show up on the TOC. +The TOC is generated *based on* how you use headers in Markdown, and how they +ultimately end up when converted into HTML. + +### file.nav + +If present, the page from __file*.*md__ will have its own navigation menu, +which will override the default nav.include file. + +This can be anything. Write it in Markdown. For example, you could use this to +put announcements on a page. + +### file.css + +Where you have __file*.*md__, you can also include `file.css`, and this CSS +file will be applied specifically to that page. + +This does not replace any global CSS files that you specified in `site.cfg`. It +is applied *after* that one. One possible use-case for this is if you have an +otherwise decent CSS file for your site, but you need to override certain +rules on a specific page. + +### file.template + +Where you have your Markdown file, strip off the `md`, you create a new file +with the same name but with `.template` file extension. This will override the +default, global template, for that page only. + +### file.footer + +If present, this replaces the global footer for the specific page. + +News sections +------------- + +This section defines what files should be placed in directories that are to +be news sections. For instance, you might have a directory on your website +named `news/`, and you would place these files in that directory. + +An index page will be automatically generated, so don't bother making one +yourself. Simply write your news pages. Read the notes below for how to set up +news sections on your website. + +An RSS feed will also be generated, for every news section. + +*You can have as many news sections as you would like!* + +### Rules for news pages + +A table of contents is always enabled, on news pages (but not the news index), +unless you want it to be so. Technically, news indexes have a TOC but the page +isn't formatted such that a TOC will appear when Pandoc does its thing. + +Start your news page like so, in the Markdown +file e.g. __www/catblog/site/news/spots-birthday*.*md__ + +``` +% Page title +% Author name +% Date + +Page text goes here +``` + +### MANIFEST + +Place this file in the root of the directory where you want there to be a +news section. + +The order of the file names dictate what order the links will appear in, on +the news index that is automatically generated (see below). + +### news-list*.*md.include + +This will have a page title, and introductory text. When the index page is +generated (see below), the resulting index will include the contents of this +file, and then links to each page per the contents of `MANIFEST`. + +### index*.*md and index.html + +Do not place these files in directories containing a MANIFEST file. These will +be generated automatically, with an index linking to news articles. + +### news.cfg + +In this file, write the following lines: + +``` +BLOGTITLE="The daily grind" +BLOGDESCRIPTION="Hot takes, juicy gossip and everything inbetween!" +``` + +You can change these strings to whatever you want. Keep it simple! For +example: + +``` +BLOGTITLE="Bianca's worldly musings" +BLOGDESCRIPTION="Come see what I'm thinking about! I have many thoughts" +``` + +For news about your software project, you might say: + +``` +BLOGTITLE="Project announcements" +BLOGDESCRIPTION="News about ongoing development will be documented here" +``` + +### RSS files + +Files ending in `.rss` are automatically generated, if you have news sections. + +Translated pages +---------------- + +lbssg supports having translated pages. + +Here is an example of a website with multiple translations available, built +using untitled:\ + + +### Set a default language + +English is the default in lbssg, but you can *change* the default language! +For example, you might want a Chinese-language website but offer translated +pages in German. lbssg will happily let you do this! + +Simply set the `DEFAULTLANG` entry in `site.cfg`. + +### How to translate pages + +The way it works is quite simple: + +* __file*.*md__ is the original file, in your default language. The *default* + default language is English (en), but it can be anything. +* __file.xx*.*md__ is the translated file. xx can be anything, e.g. de, nl, pt +* `.include` files (footers, nav files, templates etc) are for your default + language +* `.xx.include` is the translated file. again, xx can be anything e.g. de, nl + +For translated pages, if a translated `.include` file is unavailable, the +default-language one will be used. + +You can *also* do this per-page. For example, you might override the default +footer on a page, by including `file.footer`. In this +situation, __file.de*.*md__ will also use `file.footer`. HOWEVER, you can +include `file.de.footer` aswell, if you so choose! + +### Translations done automatically + +Translations are handled *automatically*, *per page*. It does not happen +globally; this way, a website doesn't have to have translated versions of each +page. In Let's look at example scenarios: + +#### file*.*md, file.pt*.*md, file.pl*.*md + +In this example, a language menu will appear on each of these pages, allowing +selection of DEFAULT(e.g. English), Polish or Portuguese + +#### file.pt*.*md, file.pl*.*md + +In this example, no *default* page is included, but Polish and Portuguese are +available. In this example, Portuguese and Polish will be available in a +language select menu on each page. + +### template.LANGUAGE.include + +This is *optional*, so long as `template.include` is included. The translated +file will override. This will override the default template, on the specified +language. + +For example: `site/template.de.include` + +### file.LANGUAGE.template + +You might have `file.template` overriding the default global `template.include` +or `template.LANGUAGE.include` for a given page. + +lbssg *also* lets you override it on a specific *translation* of that page! + +For example: `site/file.de.template` + +### nav.LANGUAGE.include + +Override the default global navigation file, for a given website and a given +language. + +For example: `site/nav.de.include` + +### file.LANGUAGE.nav + +You might have `file.nav` overriding the default global `nav.include` +or `nav.LANGUAGE.include` for a given page. + +lbssg *also* lets you override it on a specific *translation* of that page! + +For example: `site/file.de.nav` + +### footer.LANGUAGE.include + +Override the default global footer file, for a given website, on a given +language. + +For example: `site/footer.de.include` + +### file.LANGUAGE.footer + +You might have `file.footer` overriding the default global `footer.include` +or `footer.LANGUAGE.include` for a given page. + +lbssg *also* lets you override it on a specific *translation* of that page! + +For example: `site/file.de.footer` + +### file.LANGUAGE.css + +You might have `file.css` available for __file*.*md__. +If __page.LANGUAGE*.*md__ exists, `file.LANGUAGE.css` will still be added to +that page, but that page can also have its own `file.LANGUAGE.css`. + +The `file.LANGUAGE.css` file does not override `file.css`. It is merely added. + +If `file.LANGUAGE.css` exists but `file.css` does not, it will still be +applied, but only on __file.LANGUAGE*.*md__. + +lang/xx/strings.cfg +------------------- + +### Add new language support + +On language menus, if a language is unsupported, the two-letter code will be +used. For example, if Russian is unsupported, `ru` will be the anchor text for +selecting Russian, but you can still select it. + +In untitled, you can see the file `lang/en/strings.cfg`. + +In there, you will also see translated ones, e.g. `lang/pl/strings.cfg`. + +If one does not exist for your language, you can create one. Patches welcome! + +Check `lang/en/strings.cfg` to see how it should be done! Entries +in `strings.cfg` are as follows: + +Example `strings.cfg` file: + +### LANGNAME + +This is the anchor text for a given language, on a language select menu, if +a site is to have translations. For example, `de` would be `Deutsch` here, for +the German language. + +Example strings: + +* Deutsch +* English +* Nederlands +* Espanol + +### LANGSELSTR + +This is the text for the language selection menu. **Currently not used** + +E.g. "Select language:" + +### BACKLINK\_PREVDIR + +This is the index link, for the previous directory. This link should be `../` + +### BACKLINK\_CURRENTDIR + +This is the index link, for the current directory. The link should be `./` + +### PUBLISHED\_BY + +For news pages, this string says e.g. "Article published by:" + +### PUBLICATION\_DATE + +For news pages, this string says e.g. "Article published on:" + +### MARKDOWN\_LINK + +This is the anchor text for the Markdown link, to each Markdown file. lbssg +displays the link to the original Markdown file, for each page, on each given +page. + +### RSS\_LINK + +This is the anchor text for the default feed, if a news feed is generated on +a given site. + +The link should be `/feed.xml` + +### SITEMAP\_LINK + +This is a Markdown link to the site map, if one is included on a given site. + +The link should be `/sitemap.md` + +### SHAMELESS\_PLUG + +At the bottom of each page, a string of text can be inserted. By default, this +is a string that says the page was generated by the lbssg Static Site +Generator, along with a link to the lbssg website. + +### PDIR + +The `PDIR` option should be `ltr` or `rtl`. This defines which order the text +should be in. Some languages, such as Arabic and Hebrew, are right-to-left +languages instead of left-to-right. + +Other files +----------- + +Libreboot static site generator only cares about the files specified on this +page. It ignores all other files. + +For things like images, videos and other binary files, it is recommended that +you create a specific directory or subdomain for them, and have only markdown +files on your lbssg website. + +However, it's up to you how you run your infrastructure. + +It is recommended that you use a Git repository to host your website. Then you +can easily keep track of changes to your site. You would use a static version +of lbssg on your server, and just build new changes to your site whenever +you push them. This is actually *why* the `site/` directory is enforced under +the `www/sitename/` directory for each site, so as to encourage good practise +(because by doing it this way, the `.git` directory will not be visible on your +public web server. You do *not* want that directory to be visible!) + +Regarding Untitled -> lbssg transition +--------------------------------------- + +Untitled Static Site Generator renamed to Libreboot Static Site Generator and +became part of the Libreboot project, on 25 January 2025. + +The entire website previously hosted at **https://untitled.vimuser.org/** has +been fully assimilated into the Libreboot website. + +The old Untitled Static Site Generator git repositories were: + +* +* +* +* + +The old repositories have been retained, but are now archived. You can find +the new *lbssg* repositories linked from the [Libreboot Git +page](../../git.md). diff --git a/site/git.de.md b/site/git.de.md index 19e2339..0baee40 100644 --- a/site/git.de.md +++ b/site/git.de.md @@ -12,6 +12,9 @@ Das `libreboot` Projekt hat hauptsächlich 3 Git Repositories: * Webseite (+Anleitungen): * Bilder (für die Webseite): * Pico-serprog: +* Libreboot Static Site Generator: + +Also see: [Libreboot Static Site Generator](docs/sitegen/). Du kannst dir lbmk auch auf Libreboot's eigener cgit Instanz *ansehen*, allerdings ist dies nicht für die Entwicklung gedacht (benutze hierfür bitte codeberg):\ @@ -106,8 +109,8 @@ Du kannst alles nach deinen Vorstellungen ändern. Beachte die nachfolgenden Informationen wie Du deine Änderungen zur Verfügung stellen kannst. Die gesamte Website ist in Markdown geschrieben, insbesondere die Pandoc Version. -Die statischen HTML Seiten werden mit [Untitled](https://untitled.vimuser.org/) -generiert. Leah Rowe, die Gründerin von Libreboot, ist auch die Gründerin des Untitled static +Die statischen HTML Seiten werden mit [lbssg](docs/sitegen/) +generiert. Leah Rowe, die Gründerin von Libreboot, ist auch die Gründerin des Libreboot static site generator Projekts. Wenn Du möchtest, kannst Du einen lokalen HTTP Server einrichten und eine @@ -151,12 +154,12 @@ Zu Entwicklungszwecken, könntest Du deine Bilder auch lokal verknüpfen, und anschliesend die URLs anpassen sobald Du deine Patches für die Dokumentation/Webseite schickst. Eine Anleitung wie Du eine lokale Version der Webseite herstellen kannst, -befinden sich auf der Untitled Webseite. Lade untitled +befinden sich auf der lbssg dokumentation. Lade untitled herunter, und erstelle in dem `untitled` Verzeichnis ein Verzeichnis mit dem Namen `www/` dann wechsle in dieses Verzeichnis und klone das `lbwww` Repository dorthin. Konfiguriere deinen lokalen HTTP Server entsprechend. -Nochmal, Anleitungen hierfür findest Du auf der Untitled Webseite. +Nochmal, Anleitungen hierfür findest Du auf der lbssg dokumentation. ### Name nicht erforderlich @@ -281,7 +284,7 @@ Mirrors fur pico-serprog.git ### lbwww.git Mirror Das `lbwww` Repository enthält Markdown Dateien (Pandoc Variant), für die -Verwendung mit dem [Untitled Static Site Generator](https://untitled.vimuser.org/); +Verwendung mit dem [Libreboot Static Site Generator](docs/sitegen/); dies wird von Libreboot verwendet um HTML Web Seiten bereitzustellen, *inklusive* der Seite die Du gerade liest! diff --git a/site/git.md b/site/git.md index 34ea57c..ea544a0 100644 --- a/site/git.md +++ b/site/git.md @@ -12,6 +12,9 @@ The `libreboot` project has 3 main Git repositories: * Website (+docs): * Images (for website): * Pico-serprog: +* Libreboot Static Site Generator: + +Also see: [Libreboot Static Site Generator](docs/sitegen/). You can also *browse* lbmk on Libreboot's own cgit instance, though it is not intended for development (use codeberg for that):\ @@ -97,8 +100,8 @@ repository: Make whatever changes you like. See notes below about how to send patches. The entire website is written in Markdown, specifically the Pandoc version of -it. The static HTML pages are generated with [Untitled](https://untitled.vimuser.org/). -Leah Rowe, the founder of libreboot, is also the founder of the Untitled static +it. The static HTML pages are generated with [lbssg](docs/sitegen/). +Leah Rowe, the founder of libreboot, is also the founder of the Libreboot static site generator project. If you like, you can set up a local HTTP server and build your own local @@ -140,12 +143,12 @@ For example, this reduced the Libreboot boot logo from around 11k to 3k: For development purposes, you might make your images local links first, and then adjust the URLs when you submit your documentation/website patches. -Instructions are on the Untitled website, for how to set up your local version +Instructions are on the lbssg manual, for how to set up your local version of the website. Download untitled, and inside your `untitled` directory, create a directory named `www/` then go inside the www directory, and clone the `lbwww` repository there. Configure your local HTTP server accordingly. -Again, instructions are available on the Untitled website for this purpose. +Again, instructions are available on the lbssg manual for this purpose. ### Name not required @@ -261,7 +264,7 @@ Mirrors of pico-serprog.git ### lbwww.git mirror The `lbwww` repository contains Markdown files (pandoc variant), for use -with the [Untitled Static Site Generator](https://untitled.vimuser.org/); this +with the [Libreboot Static Site Generator](docs/sitegen/); this is what Libreboot uses to provide HTML web pages, *including* the page that you are reading right now! diff --git a/site/git.uk.md b/site/git.uk.md index 8bf7d53..f840b9f 100644 --- a/site/git.uk.md +++ b/site/git.uk.md @@ -12,6 +12,9 @@ x-toc-enable: true * Веб-сайт (+документація): * Зображення (для веб-сайта): * Pico-serprog: +* Libreboot Static Site Generator: + +Also see: [Libreboot Static Site Generator](docs/sitegen/). Ви також можете *переглядати* lbmk на власному екземплярі Libreboot cgit, хоча це не призначено для розробки (використовуйте codeberg для цього):\ @@ -97,9 +100,9 @@ libreboot! Завантажте репозиторій Git: Вносьте будь-які зміни, які забажаєте. Дивіться нотатки нижче про те, як надсилати виправлення. Весь веб-сайт написаний у Markdown, зокрема його версія Pandoc. -Статичні сторінки HTML створюються за допомогою [Untitled](https://untitled.vimuser.org/). +Статичні сторінки HTML створюються за допомогою [lbssg](docs/sitegen/). Лія Роу, засновниця libreboot, також є засновницею проекту генератор статичних сайтів -Untitled. +lbssg. Якщо хочете, ви можете налаштувати локальний HTTP-сервер і створити власну локальну версію веб-сайту. Зауважте, що зображення все одно будуть посилатися на ті, що @@ -140,12 +143,12 @@ Untitled. Для цілей розробки ви можете спочатку створити локальні посилання на зображення, а потім налаштувати URL-адреси, коли надсилатимете документацію/патчі веб-сайту. -На веб-сайті Untitled є інструкції щодо налаштування локальної версії +На веб-сайті lbssg є інструкції щодо налаштування локальної версії веб-сайту. Завантажте untitled, і в своєму каталозі `untitled` створіть каталог під назвою `www/`, потім увійдіть у каталог www і клонуйте сховище `lbwww` там. Налаштуйте локальний HTTP-сервер відповідним чином. -Знову ж таки, інструкції для цього доступні на веб-сайті Untitled. +Знову ж таки, інструкції для цього доступні на веб-сайті lbssg. ### Ім'я не вимагається @@ -261,7 +264,7 @@ The email address is [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreb ### дзеркало lbwww.git Репозиторій `lbwww` містить файли Markdown (варіант pandoc), для використання -з [генератором статичних сайтів Untitled](https://untitled.vimuser.org/); це те, +з [генератором статичних сайтів Libreboot](docs/sitegen/); це те, що Libreboot використовує для надання веб-сторінок HTML, *включаючи* сторінку, яку ви читаєте прямо зараз! diff --git a/site/index.de.md b/site/index.de.md index 139f540..62ed28f 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -37,6 +37,10 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. +Libreboot is also the home of the [Libreboot Static Site +Generator](docs/sitegen/), formerly known as the *Untitled Static Site +Generator*. + Warum solltest Du *Libreboot* verwenden? ---------------------------- diff --git a/site/index.fr.md b/site/index.fr.md index 4ab6977..c74e40e 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -28,6 +28,10 @@ ou envoyer votre propre ordinateur [pour y installer Libreboot](https://minifree Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot. +Libreboot is also the home of the [Libreboot Static Site +Generator](docs/sitegen/), formerly known as the *Untitled Static Site +Generator*. + Pourquoi devriez-vous utiliser *Libreboot*? ----------------------------------- diff --git a/site/index.it.md b/site/index.it.md index 072018f..0b9a192 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -35,6 +35,10 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. +Libreboot is also the home of the [Libreboot Static Site +Generator](docs/sitegen/), formerly known as the *Untitled Static Site +Generator*. + Per quale ragione utilizzare *Libreboot*? ----------------------------------------- diff --git a/site/index.md b/site/index.md index 80c6cfe..7afa10f 100644 --- a/site/index.md +++ b/site/index.md @@ -46,6 +46,10 @@ matters. you continue to use your hardware, with continued firmware updates. All of this is *why* Libreboot exists. +Libreboot is also the home of the [Libreboot Static Site +Generator](docs/sitegen/), formerly known as the *Untitled Static Site +Generator*. + Overview of Libreboot design ---------------------------- diff --git a/site/index.ru.md b/site/index.ru.md index 6f9474e..97bd682 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -25,6 +25,9 @@ and more payloads (e.g. Linux kexec payload) are planned for future releases. *Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://en.wikipedia.org/wiki/Right_to_repair) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. +Libreboot is also the home of the [Libreboot Static Site +Generator](docs/sitegen/), formerly known as the *Untitled Static Site +Generator*. Обзор устройства Libreboot -------------------------- diff --git a/site/index.uk.md b/site/index.uk.md index 4772fae..cd1db1f 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -36,6 +36,10 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. +Libreboot is also the home of the [Libreboot Static Site +Generator](docs/sitegen/), formerly known as the *Untitled Static Site +Generator*. + Чому вам варто використовувати *Libreboot*? ---------------------------- diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index 31eb162..451fb0b 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -26,6 +26,10 @@ and more payloads (e.g. Linux kexec payload) are planned for future releases. Libreboot 的创始人和主要开发者,Leah Rowe,也是 Minifree 的所有者和经营者; 销售电脑为 Libreboot 提供资金。 +Libreboot is also the home of the [Libreboot Static Site +Generator](docs/sitegen/), formerly known as the *Untitled Static Site +Generator*. + 为什么要使用 *Libreboot*? ---------------------------- From eb3c0fba231a240f4c2d7bcd0490b5b6138008b9 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 25 Jan 2025 11:53:52 +0000 Subject: [PATCH 330/399] remove redundant paragraph i updated the footer now, and it's linked on the main docs index, and on the git page, so the paragraph on the home page is kinda bloat tbh Signed-off-by: Leah Rowe --- site/index.de.md | 4 ---- site/index.fr.md | 4 ---- site/index.it.md | 4 ---- site/index.md | 4 ---- site/index.ru.md | 4 ---- site/index.uk.md | 4 ---- site/index.zh-cn.md | 4 ---- 7 files changed, 28 deletions(-) diff --git a/site/index.de.md b/site/index.de.md index 62ed28f..139f540 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -37,10 +37,6 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -Libreboot is also the home of the [Libreboot Static Site -Generator](docs/sitegen/), formerly known as the *Untitled Static Site -Generator*. - Warum solltest Du *Libreboot* verwenden? ---------------------------- diff --git a/site/index.fr.md b/site/index.fr.md index c74e40e..4ab6977 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -28,10 +28,6 @@ ou envoyer votre propre ordinateur [pour y installer Libreboot](https://minifree Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot. -Libreboot is also the home of the [Libreboot Static Site -Generator](docs/sitegen/), formerly known as the *Untitled Static Site -Generator*. - Pourquoi devriez-vous utiliser *Libreboot*? ----------------------------------- diff --git a/site/index.it.md b/site/index.it.md index 0b9a192..072018f 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -35,10 +35,6 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -Libreboot is also the home of the [Libreboot Static Site -Generator](docs/sitegen/), formerly known as the *Untitled Static Site -Generator*. - Per quale ragione utilizzare *Libreboot*? ----------------------------------------- diff --git a/site/index.md b/site/index.md index 7afa10f..80c6cfe 100644 --- a/site/index.md +++ b/site/index.md @@ -46,10 +46,6 @@ matters. you continue to use your hardware, with continued firmware updates. All of this is *why* Libreboot exists. -Libreboot is also the home of the [Libreboot Static Site -Generator](docs/sitegen/), formerly known as the *Untitled Static Site -Generator*. - Overview of Libreboot design ---------------------------- diff --git a/site/index.ru.md b/site/index.ru.md index 97bd682..0407781 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -25,10 +25,6 @@ and more payloads (e.g. Linux kexec payload) are planned for future releases. *Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://en.wikipedia.org/wiki/Right_to_repair) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. -Libreboot is also the home of the [Libreboot Static Site -Generator](docs/sitegen/), formerly known as the *Untitled Static Site -Generator*. - Обзор устройства Libreboot -------------------------- diff --git a/site/index.uk.md b/site/index.uk.md index cd1db1f..4772fae 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -36,10 +36,6 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. -Libreboot is also the home of the [Libreboot Static Site -Generator](docs/sitegen/), formerly known as the *Untitled Static Site -Generator*. - Чому вам варто використовувати *Libreboot*? ---------------------------- diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index 451fb0b..31eb162 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -26,10 +26,6 @@ and more payloads (e.g. Linux kexec payload) are planned for future releases. Libreboot 的创始人和主要开发者,Leah Rowe,也是 Minifree 的所有者和经营者; 销售电脑为 Libreboot 提供资金。 -Libreboot is also the home of the [Libreboot Static Site -Generator](docs/sitegen/), formerly known as the *Untitled Static Site -Generator*. - 为什么要使用 *Libreboot*? ---------------------------- From 98ac57b0ef31ad34923644b11250e6d3e8a66417 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 25 Jan 2025 13:44:12 +0000 Subject: [PATCH 331/399] descriptions Signed-off-by: Leah Rowe --- site/docs/bsd/index.md.description | 1 + site/docs/build/index.md.description | 1 + site/docs/grub/index.md.description | 1 + site/docs/index.md.description | 1 + site/docs/index.zh-cn.md.description | 1 + site/docs/install/acer_g43t-am3.md.description | 1 + site/docs/install/c201.md.description | 1 + site/docs/install/chromebooks.md.description | 1 + site/docs/install/d945gclf.md.description | 1 + site/docs/install/deguard.md.description | 1 + site/docs/install/dell3050.md.description | 1 + site/docs/install/dell7010.md.description | 1 + site/docs/install/dell780.md.description | 1 + site/docs/install/dell9020.md.description | 1 + site/docs/install/dell_thermal.md.description | 1 + site/docs/install/devmem.md.description | 1 + site/docs/install/ga-g41m-es2l.md.description | 1 + site/docs/install/hp2170p.md.description | 1 + site/docs/install/hp2560p.md.description | 1 + site/docs/install/hp2570p.md.description | 1 + site/docs/install/hp8200sff.md.description | 1 + site/docs/install/hp820g2.md.description | 1 + site/docs/install/hp8300usdt.md.description | 1 + site/docs/install/hp8460p.md.description | 1 + site/docs/install/hp8470p.md.description | 1 + site/docs/install/hp8560w.md.description | 1 + site/docs/install/hp9470m.md.description | 1 + site/docs/install/ich9utils.md.description | 1 + site/docs/install/index.md.description | 1 + site/docs/install/ivy_has_common.md.description | 1 + site/docs/install/ivy_internal.md.description | 1 + site/docs/install/kcma-d8.md.description | 1 + site/docs/install/kfsn4-dre.md.description | 1 + site/docs/install/kgpe-d16.md.description | 1 + site/docs/install/latitude.md.description | 1 + site/docs/install/mac_address.md.description | 1 + site/docs/install/macbook21.md.description | 1 + site/docs/install/nvmutil.md.description | 1 + site/docs/install/nvmutilimport.md.description | 1 + site/docs/install/playstation.md.description | 1 + site/docs/install/r400.md.description | 1 + site/docs/install/spi.md.description | 1 + site/docs/install/spi_generic.md.description | 1 + site/docs/install/t1650.md.description | 1 + site/docs/install/t400.md.description | 1 + site/docs/install/t420_external.md.description | 1 + site/docs/install/t440p_external.md.description | 1 + site/docs/install/t480.md.description | 1 + site/docs/install/t500.md.description | 1 + site/docs/install/t60_unbrick.md.description | 1 + site/docs/install/w541_external.md.description | 1 + site/docs/install/x200.md.description | 1 + site/docs/install/x230_external.md.description | 1 + site/docs/install/x60_unbrick.md.description | 1 + site/docs/install/x60tablet_unbrick.md.description | 1 + site/docs/linux/grub_boot_installer.md.description | 1 + site/docs/linux/grub_cbfs.md.description | 1 + site/docs/linux/grub_hardening.md.description | 1 + site/docs/linux/index.md.description | 1 + site/docs/sitegen/index.md.description | 1 + site/docs/uboot/index.md.description | 1 + site/docs/uboot/uboot-debian-bookworm.md.description | 0 site/docs/uboot/uboot-x86.md.description | 1 + site/download.md.description | 1 + site/freedom-status.md.description | 4 ++++ site/freedom-status.uk.md.description | 4 ++++ site/git.de.md.description | 1 + site/git.md.description | 1 + site/git.uk.md.description | 1 + site/index.de.md.description | 1 + site/index.it.md.description | 1 + site/index.md.description | 1 + site/index.ru.md.description | 1 + site/index.zh-cn.md.description | 1 + site/news/10.md.description | 1 + site/news/argon2.md.description | 1 + site/news/audit.md.description | 1 + site/news/audit2.md.description | 1 + site/news/audit3.md.description | 1 + site/news/audit4.md.description | 1 + site/news/audit5.md.description | 1 + site/news/audit6.md.description | 1 + site/news/codeberg.md.description | 3 +++ site/news/e6400.md.description | 1 + site/news/e6400nvidia.md.description | 1 + site/news/fam15h.md.description | 1 + site/news/fedfree.md.description | 1 + site/news/freedom.md.description | 1 + site/news/gm45microcode.md.description | 1 + site/news/hp2170p.md.description | 1 + site/news/hp8200sff.md.description | 1 + site/news/hp8200sff.uk.md.description | 1 + site/news/hp820g2.md.description | 1 + site/news/hp8470p_and_dell_t1650.md.description | 1 + site/news/hp_elitebooks.md.description | 1 + site/news/kgpe-d16.md.description | 1 + site/news/libreboot20131212.md.description | 1 + site/news/libreboot20131213.md.description | 1 + site/news/libreboot20131214.md.description | 1 + site/news/libreboot20140221.md.description | 1 + site/news/libreboot20140309.md.description | 1 + site/news/libreboot20140605.md.description | 1 + site/news/libreboot20140611.md.description | 1 + site/news/libreboot20140622.md.description | 1 + site/news/libreboot20140711.md.description | 1 + site/news/libreboot20140716.md.description | 1 + site/news/libreboot20140720.md.description | 1 + site/news/libreboot20140729.md.description | 1 + site/news/libreboot20140811.md.description | 1 + site/news/libreboot20140903.md.description | 1 + site/news/libreboot20140911.md.description | 1 + site/news/libreboot20141015.md.description | 1 + site/news/libreboot20150124.md.description | 1 + site/news/libreboot20150126.md.description | 1 + site/news/libreboot20150208.md.description | 1 + site/news/libreboot20150518.md.description | 1 + site/news/libreboot20160818.md.description | 1 + site/news/libreboot20160902.md.description | 1 + site/news/libreboot20160907.md.description | 1 + site/news/libreboot20210522.md.description | 1 + site/news/libreboot20211122.md.description | 1 + site/news/libreboot20220710.md.description | 1 + site/news/libreboot20221214.md.description | 1 + site/news/libreboot20230319.md.description | 1 + site/news/libreboot20230413.md.description | 1 + site/news/libreboot20230423.md.description | 1 + site/news/libreboot20230625.md.description | 1 + site/news/libreboot20231021.md.description | 1 + site/news/libreboot20231101.md.description | 1 + site/news/libreboot20231106.md.description | 1 + site/news/libreboot20240126.md.description | 1 + site/news/libreboot20240225.md.description | 1 + site/news/libreboot20240504.md.description | 1 + site/news/libreboot20240612.md.description | 1 + site/news/libreboot20241008.md.description | 1 + site/news/libreboot20241206.Revisions.md.description | 1 + site/news/libreboot20241206.md.description | 1 + site/news/libreboot20241206rev8.md.description | 1 + site/news/microcode.md.description | 1 + site/news/mirrors.md.description | 1 + site/news/policy.md.description | 1 + site/news/ports202402.md.description | 1 + site/news/safety.md.description | 1 + site/news/schedule.md.description | 1 + site/news/sourcehut.md.description | 1 + site/news/translations.de.md.description | 1 + site/news/translations.md.description | 1 + site/news/update202308.md.description | 1 + site/news/usa-libre-part2.md.description | 1 + site/news/usa-libre-part3.md.description | 1 + site/news/usa-libre.md.description | 1 + site/news/x201.md.description | 2 ++ site/other.md.description | 1 + site/sitemap.md.description | 1 + 154 files changed, 162 insertions(+) create mode 100644 site/docs/bsd/index.md.description create mode 100644 site/docs/build/index.md.description create mode 100644 site/docs/grub/index.md.description create mode 100644 site/docs/index.md.description create mode 100644 site/docs/index.zh-cn.md.description create mode 100644 site/docs/install/acer_g43t-am3.md.description create mode 100644 site/docs/install/c201.md.description create mode 100644 site/docs/install/chromebooks.md.description create mode 100644 site/docs/install/d945gclf.md.description create mode 100644 site/docs/install/deguard.md.description create mode 100644 site/docs/install/dell3050.md.description create mode 100644 site/docs/install/dell7010.md.description create mode 100644 site/docs/install/dell780.md.description create mode 100644 site/docs/install/dell9020.md.description create mode 100644 site/docs/install/dell_thermal.md.description create mode 100644 site/docs/install/devmem.md.description create mode 100644 site/docs/install/ga-g41m-es2l.md.description create mode 100644 site/docs/install/hp2170p.md.description create mode 100644 site/docs/install/hp2560p.md.description create mode 100644 site/docs/install/hp2570p.md.description create mode 100644 site/docs/install/hp8200sff.md.description create mode 100644 site/docs/install/hp820g2.md.description create mode 100644 site/docs/install/hp8300usdt.md.description create mode 100644 site/docs/install/hp8460p.md.description create mode 100644 site/docs/install/hp8470p.md.description create mode 100644 site/docs/install/hp8560w.md.description create mode 100644 site/docs/install/hp9470m.md.description create mode 100644 site/docs/install/ich9utils.md.description create mode 100644 site/docs/install/index.md.description create mode 100644 site/docs/install/ivy_has_common.md.description create mode 100644 site/docs/install/ivy_internal.md.description create mode 100644 site/docs/install/kcma-d8.md.description create mode 100644 site/docs/install/kfsn4-dre.md.description create mode 100644 site/docs/install/kgpe-d16.md.description create mode 100644 site/docs/install/latitude.md.description create mode 100644 site/docs/install/mac_address.md.description create mode 100644 site/docs/install/macbook21.md.description create mode 100644 site/docs/install/nvmutil.md.description create mode 100644 site/docs/install/nvmutilimport.md.description create mode 100644 site/docs/install/playstation.md.description create mode 100644 site/docs/install/r400.md.description create mode 100644 site/docs/install/spi.md.description create mode 100644 site/docs/install/spi_generic.md.description create mode 100644 site/docs/install/t1650.md.description create mode 100644 site/docs/install/t400.md.description create mode 100644 site/docs/install/t420_external.md.description create mode 100644 site/docs/install/t440p_external.md.description create mode 100644 site/docs/install/t480.md.description create mode 100644 site/docs/install/t500.md.description create mode 100644 site/docs/install/t60_unbrick.md.description create mode 100644 site/docs/install/w541_external.md.description create mode 100644 site/docs/install/x200.md.description create mode 100644 site/docs/install/x230_external.md.description create mode 100644 site/docs/install/x60_unbrick.md.description create mode 100644 site/docs/install/x60tablet_unbrick.md.description create mode 100644 site/docs/linux/grub_boot_installer.md.description create mode 100644 site/docs/linux/grub_cbfs.md.description create mode 100644 site/docs/linux/grub_hardening.md.description create mode 100644 site/docs/linux/index.md.description create mode 100644 site/docs/sitegen/index.md.description create mode 100644 site/docs/uboot/index.md.description create mode 100644 site/docs/uboot/uboot-debian-bookworm.md.description create mode 100644 site/docs/uboot/uboot-x86.md.description create mode 100644 site/download.md.description create mode 100644 site/freedom-status.md.description create mode 100644 site/freedom-status.uk.md.description create mode 100644 site/git.de.md.description create mode 100644 site/git.md.description create mode 100644 site/git.uk.md.description create mode 100644 site/index.de.md.description create mode 100644 site/index.it.md.description create mode 100644 site/index.md.description create mode 100644 site/index.ru.md.description create mode 100644 site/index.zh-cn.md.description create mode 100644 site/news/10.md.description create mode 100644 site/news/argon2.md.description create mode 100644 site/news/audit.md.description create mode 100644 site/news/audit2.md.description create mode 100644 site/news/audit3.md.description create mode 100644 site/news/audit4.md.description create mode 100644 site/news/audit5.md.description create mode 100644 site/news/audit6.md.description create mode 100644 site/news/codeberg.md.description create mode 100644 site/news/e6400.md.description create mode 100644 site/news/e6400nvidia.md.description create mode 100644 site/news/fam15h.md.description create mode 100644 site/news/fedfree.md.description create mode 100644 site/news/freedom.md.description create mode 100644 site/news/gm45microcode.md.description create mode 100644 site/news/hp2170p.md.description create mode 100644 site/news/hp8200sff.md.description create mode 100644 site/news/hp8200sff.uk.md.description create mode 100644 site/news/hp820g2.md.description create mode 100644 site/news/hp8470p_and_dell_t1650.md.description create mode 100644 site/news/hp_elitebooks.md.description create mode 100644 site/news/kgpe-d16.md.description create mode 100644 site/news/libreboot20131212.md.description create mode 100644 site/news/libreboot20131213.md.description create mode 100644 site/news/libreboot20131214.md.description create mode 100644 site/news/libreboot20140221.md.description create mode 100644 site/news/libreboot20140309.md.description create mode 100644 site/news/libreboot20140605.md.description create mode 100644 site/news/libreboot20140611.md.description create mode 100644 site/news/libreboot20140622.md.description create mode 100644 site/news/libreboot20140711.md.description create mode 100644 site/news/libreboot20140716.md.description create mode 100644 site/news/libreboot20140720.md.description create mode 100644 site/news/libreboot20140729.md.description create mode 100644 site/news/libreboot20140811.md.description create mode 100644 site/news/libreboot20140903.md.description create mode 100644 site/news/libreboot20140911.md.description create mode 100644 site/news/libreboot20141015.md.description create mode 100644 site/news/libreboot20150124.md.description create mode 100644 site/news/libreboot20150126.md.description create mode 100644 site/news/libreboot20150208.md.description create mode 100644 site/news/libreboot20150518.md.description create mode 100644 site/news/libreboot20160818.md.description create mode 100644 site/news/libreboot20160902.md.description create mode 100644 site/news/libreboot20160907.md.description create mode 100644 site/news/libreboot20210522.md.description create mode 100644 site/news/libreboot20211122.md.description create mode 100644 site/news/libreboot20220710.md.description create mode 100644 site/news/libreboot20221214.md.description create mode 100644 site/news/libreboot20230319.md.description create mode 100644 site/news/libreboot20230413.md.description create mode 100644 site/news/libreboot20230423.md.description create mode 100644 site/news/libreboot20230625.md.description create mode 100644 site/news/libreboot20231021.md.description create mode 100644 site/news/libreboot20231101.md.description create mode 100644 site/news/libreboot20231106.md.description create mode 100644 site/news/libreboot20240126.md.description create mode 100644 site/news/libreboot20240225.md.description create mode 100644 site/news/libreboot20240504.md.description create mode 100644 site/news/libreboot20240612.md.description create mode 100644 site/news/libreboot20241008.md.description create mode 100644 site/news/libreboot20241206.Revisions.md.description create mode 100644 site/news/libreboot20241206.md.description create mode 100644 site/news/libreboot20241206rev8.md.description create mode 100644 site/news/microcode.md.description create mode 100644 site/news/mirrors.md.description create mode 100644 site/news/policy.md.description create mode 100644 site/news/ports202402.md.description create mode 100644 site/news/safety.md.description create mode 100644 site/news/schedule.md.description create mode 100644 site/news/sourcehut.md.description create mode 100644 site/news/translations.de.md.description create mode 100644 site/news/translations.md.description create mode 100644 site/news/update202308.md.description create mode 100644 site/news/usa-libre-part2.md.description create mode 100644 site/news/usa-libre-part3.md.description create mode 100644 site/news/usa-libre.md.description create mode 100644 site/news/x201.md.description create mode 100644 site/other.md.description create mode 100644 site/sitemap.md.description diff --git a/site/docs/bsd/index.md.description b/site/docs/bsd/index.md.description new file mode 100644 index 0000000..5168476 --- /dev/null +++ b/site/docs/bsd/index.md.description @@ -0,0 +1 @@ +Learn how to install OpenBSD, FreeBSD, NetBSD and other BSD operating systems on Libreboot. Libreboot provides free/opensource BIOS/UEFI firmware based on coreboot. diff --git a/site/docs/build/index.md.description b/site/docs/build/index.md.description new file mode 100644 index 0000000..67b97e6 --- /dev/null +++ b/site/docs/build/index.md.description @@ -0,0 +1 @@ +Libreboot project documentation. Learn about Libreboot installation, how Libreboot is designed and how you can contribute to the project. Libreboot provides free/opensource BIOS/UEFI boot firmware based on coreboot. diff --git a/site/docs/grub/index.md.description b/site/docs/grub/index.md.description new file mode 100644 index 0000000..a9f756b --- /dev/null +++ b/site/docs/grub/index.md.description @@ -0,0 +1 @@ +Documentation pertaining to the GNU boot loader named GRUB, as it applies to Libreboot. GRUB is provided as a coreboot payload, on many Libreboot configurations. diff --git a/site/docs/index.md.description b/site/docs/index.md.description new file mode 100644 index 0000000..839da72 --- /dev/null +++ b/site/docs/index.md.description @@ -0,0 +1 @@ +Documentation pertaining to Libreboot installation, configuration and maintenance. Information about development is provided. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with payloads such as the GNU boot loader named GRUB. diff --git a/site/docs/index.zh-cn.md.description b/site/docs/index.zh-cn.md.description new file mode 100644 index 0000000..b2861be --- /dev/null +++ b/site/docs/index.zh-cn.md.description @@ -0,0 +1 @@ +Libreboot 项目提供基于 coreboot 的自由且开源的引导固件. GNU GRUB, SeaBIOS, U-Boot. diff --git a/site/docs/install/acer_g43t-am3.md.description b/site/docs/install/acer_g43t-am3.md.description new file mode 100644 index 0000000..6b54174 --- /dev/null +++ b/site/docs/install/acer_g43t-am3.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Acer G43T-AM3 motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/c201.md.description b/site/docs/install/c201.md.description new file mode 100644 index 0000000..a493aac --- /dev/null +++ b/site/docs/install/c201.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS Chromebook C201. diff --git a/site/docs/install/chromebooks.md.description b/site/docs/install/chromebooks.md.description new file mode 100644 index 0000000..666c162 --- /dev/null +++ b/site/docs/install/chromebooks.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various ARM64-based Chromebook laptops. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/d945gclf.md.description b/site/docs/install/d945gclf.md.description new file mode 100644 index 0000000..772f227 --- /dev/null +++ b/site/docs/install/d945gclf.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Intel D945GCLF motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/deguard.md.description b/site/docs/install/deguard.md.description new file mode 100644 index 0000000..17ee5bb --- /dev/null +++ b/site/docs/install/deguard.md.description @@ -0,0 +1 @@ +Libreboot can disable the Intel Boot Guard, on any Intel 6th, 7th or 8th gen platform with Intel Management Engine version 11.x present. Intel Boot Guard would otherwise prevent coreboot from booting, by verifying the bootblock of the vendor's UEFI firmware. With this, you can use Libreboot and its various default coreboot payloads, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/dell3050.md.description b/site/docs/install/dell3050.md.description new file mode 100644 index 0000000..de6e2d1 --- /dev/null +++ b/site/docs/install/dell3050.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell Latitude 3050 Micro. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/dell7010.md.description b/site/docs/install/dell7010.md.description new file mode 100644 index 0000000..e93c754 --- /dev/null +++ b/site/docs/install/dell7010.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 7010 SFF. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/dell780.md.description b/site/docs/install/dell780.md.description new file mode 100644 index 0000000..4dc1d35 --- /dev/null +++ b/site/docs/install/dell780.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 780. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/dell9020.md.description b/site/docs/install/dell9020.md.description new file mode 100644 index 0000000..4e21d19 --- /dev/null +++ b/site/docs/install/dell9020.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 9020 MT and SFF, also XE2 SFF and MT. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/dell_thermal.md.description b/site/docs/install/dell_thermal.md.description new file mode 100644 index 0000000..1e76d53 --- /dev/null +++ b/site/docs/install/dell_thermal.md.description @@ -0,0 +1 @@ +Thermal protection has a few idiosyncrasies, on the various motherboards supported by Libreboot. This guide will explain what they are, and how they are handled by the LIbreboot project. diff --git a/site/docs/install/devmem.md.description b/site/docs/install/devmem.md.description new file mode 100644 index 0000000..f3f7dfe --- /dev/null +++ b/site/docs/install/devmem.md.description @@ -0,0 +1 @@ +Libreboot installation relies heavily on port IO and access to lower memory, which is usually restricted. This guide teaches you how to disabled such restrictions on Linux and BSD operating systems. diff --git a/site/docs/install/ga-g41m-es2l.md.description b/site/docs/install/ga-g41m-es2l.md.description new file mode 100644 index 0000000..7d7c2e3 --- /dev/null +++ b/site/docs/install/ga-g41m-es2l.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Gigabyte GA-G41M-ES2L motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/hp2170p.md.description b/site/docs/install/hp2170p.md.description new file mode 100644 index 0000000..339bbb4 --- /dev/null +++ b/site/docs/install/hp2170p.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2170p. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/hp2560p.md.description b/site/docs/install/hp2560p.md.description new file mode 100644 index 0000000..47782c4 --- /dev/null +++ b/site/docs/install/hp2560p.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2560p. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/hp2570p.md.description b/site/docs/install/hp2570p.md.description new file mode 100644 index 0000000..02e5dbb --- /dev/null +++ b/site/docs/install/hp2570p.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2570p. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/hp8200sff.md.description b/site/docs/install/hp8200sff.md.description new file mode 100644 index 0000000..9d974c7 --- /dev/null +++ b/site/docs/install/hp8200sff.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP Elite 8200 SFF motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/hp820g2.md.description b/site/docs/install/hp820g2.md.description new file mode 100644 index 0000000..a5c3998 --- /dev/null +++ b/site/docs/install/hp820g2.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 820 G2. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/hp8300usdt.md.description b/site/docs/install/hp8300usdt.md.description new file mode 100644 index 0000000..af5abf2 --- /dev/null +++ b/site/docs/install/hp8300usdt.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP Elite 8300 USDT motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/hp8460p.md.description b/site/docs/install/hp8460p.md.description new file mode 100644 index 0000000..5836809 --- /dev/null +++ b/site/docs/install/hp8460p.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8460p. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/hp8470p.md.description b/site/docs/install/hp8470p.md.description new file mode 100644 index 0000000..92bf0bf --- /dev/null +++ b/site/docs/install/hp8470p.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8470p. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/hp8560w.md.description b/site/docs/install/hp8560w.md.description new file mode 100644 index 0000000..4a1675e --- /dev/null +++ b/site/docs/install/hp8560w.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8560w. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/hp9470m.md.description b/site/docs/install/hp9470m.md.description new file mode 100644 index 0000000..d8b7690 --- /dev/null +++ b/site/docs/install/hp9470m.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook Folio 9470m. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/ich9utils.md.description b/site/docs/install/ich9utils.md.description new file mode 100644 index 0000000..b10e9e7 --- /dev/null +++ b/site/docs/install/ich9utils.md.description @@ -0,0 +1 @@ +Documentation pertaining to ich9utils which can generate or modify Intel Flash Descriptors, and Intel GbE NVM images. Now obsolete, this documentation provides a reference pertaining to how these utilities were developed. diff --git a/site/docs/install/index.md.description b/site/docs/install/index.md.description new file mode 100644 index 0000000..ed97ae0 --- /dev/null +++ b/site/docs/install/index.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various laptop, desktop and server motherboards, also a few games consoles. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/ivy_has_common.md.description b/site/docs/install/ivy_has_common.md.description new file mode 100644 index 0000000..a3c4843 --- /dev/null +++ b/site/docs/install/ivy_has_common.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your, while handling vendor firmware. Libreboot's strict Binary Blob Reduction Policy is observed, and referenced here. diff --git a/site/docs/install/ivy_internal.md.description b/site/docs/install/ivy_internal.md.description new file mode 100644 index 0000000..d784506 --- /dev/null +++ b/site/docs/install/ivy_internal.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X230. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/kcma-d8.md.description b/site/docs/install/kcma-d8.md.description new file mode 100644 index 0000000..ff69b46 --- /dev/null +++ b/site/docs/install/kcma-d8.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KCMA-D8 motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/kfsn4-dre.md.description b/site/docs/install/kfsn4-dre.md.description new file mode 100644 index 0000000..5044f19 --- /dev/null +++ b/site/docs/install/kfsn4-dre.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KFSN4-DRE motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/kgpe-d16.md.description b/site/docs/install/kgpe-d16.md.description new file mode 100644 index 0000000..96d55b0 --- /dev/null +++ b/site/docs/install/kgpe-d16.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KGPE-D16 motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/latitude.md.description b/site/docs/install/latitude.md.description new file mode 100644 index 0000000..e222da4 --- /dev/null +++ b/site/docs/install/latitude.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various Dell Latitude laptop models. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/mac_address.md.description b/site/docs/install/mac_address.md.description new file mode 100644 index 0000000..123a08f --- /dev/null +++ b/site/docs/install/mac_address.md.description @@ -0,0 +1 @@ +Libreboot lets you modify the MAC address on various supported motherboards. This guide will teach you how to change your MAC address, by various means. diff --git a/site/docs/install/macbook21.md.description b/site/docs/install/macbook21.md.description new file mode 100644 index 0000000..2a4a2aa --- /dev/null +++ b/site/docs/install/macbook21.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Apple MacBook 2,1 and 1,1 circa 2006. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/nvmutil.md.description b/site/docs/install/nvmutil.md.description new file mode 100644 index 0000000..481a21b --- /dev/null +++ b/site/docs/install/nvmutil.md.description @@ -0,0 +1 @@ +Instructions pertaining to nvmutil, which is software that can modify the MAC address and other information inside Intel GbE NVM images, on motherboards that make use of an Intel Flash Descriptor. diff --git a/site/docs/install/nvmutilimport.md.description b/site/docs/install/nvmutilimport.md.description new file mode 100644 index 0000000..aebe579 --- /dev/null +++ b/site/docs/install/nvmutilimport.md.description @@ -0,0 +1 @@ +Historical information pertaining to nvmutil which can modify MAC addresses on Intel GbE NVM images. diff --git a/site/docs/install/playstation.md.description b/site/docs/install/playstation.md.description new file mode 100644 index 0000000..e4ecb31 --- /dev/null +++ b/site/docs/install/playstation.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS boot firmware on your Sony PlayStation (PS1/PSX), optionally compiling it with GNU GCC. This makes heavy use of the PCSX-Redux Open BIOS, which can be used on PlayStation emulators and on real hardware. diff --git a/site/docs/install/r400.md.description b/site/docs/install/r400.md.description new file mode 100644 index 0000000..62a7f89 --- /dev/null +++ b/site/docs/install/r400.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad R400. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/spi.md.description b/site/docs/install/spi.md.description new file mode 100644 index 0000000..902bd27 --- /dev/null +++ b/site/docs/install/spi.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware by way of external flashing. This is done using SPI-compatible programmer devices such as Raspberry Pi Pico. Some warnings are also provided against the use of CH341a. diff --git a/site/docs/install/spi_generic.md.description b/site/docs/install/spi_generic.md.description new file mode 100644 index 0000000..d5b425d --- /dev/null +++ b/site/docs/install/spi_generic.md.description @@ -0,0 +1 @@ +Learn how to flash Libreboot using Le Potato, which supports SPI flashing on NOR 25xx ICs. diff --git a/site/docs/install/t1650.md.description b/site/docs/install/t1650.md.description new file mode 100644 index 0000000..51d725f --- /dev/null +++ b/site/docs/install/t1650.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell Precision T1650. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/t400.md.description b/site/docs/install/t400.md.description new file mode 100644 index 0000000..f366739 --- /dev/null +++ b/site/docs/install/t400.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo Thinkpad T400. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/t420_external.md.description b/site/docs/install/t420_external.md.description new file mode 100644 index 0000000..1a3a4fd --- /dev/null +++ b/site/docs/install/t420_external.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T420. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/t440p_external.md.description b/site/docs/install/t440p_external.md.description new file mode 100644 index 0000000..4de85d5 --- /dev/null +++ b/site/docs/install/t440p_external.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T440p. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/t480.md.description b/site/docs/install/t480.md.description new file mode 100644 index 0000000..a705fdd --- /dev/null +++ b/site/docs/install/t480.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T480. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/t500.md.description b/site/docs/install/t500.md.description new file mode 100644 index 0000000..c70af3e --- /dev/null +++ b/site/docs/install/t500.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T500. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/t60_unbrick.md.description b/site/docs/install/t60_unbrick.md.description new file mode 100644 index 0000000..a60940b --- /dev/null +++ b/site/docs/install/t60_unbrick.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T60. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/w541_external.md.description b/site/docs/install/w541_external.md.description new file mode 100644 index 0000000..c17fc7a --- /dev/null +++ b/site/docs/install/w541_external.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad W541. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/x200.md.description b/site/docs/install/x200.md.description new file mode 100644 index 0000000..8e6f379 --- /dev/null +++ b/site/docs/install/x200.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X200. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/x230_external.md.description b/site/docs/install/x230_external.md.description new file mode 100644 index 0000000..45cd73c --- /dev/null +++ b/site/docs/install/x230_external.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X230 via external flashing. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/x60_unbrick.md.description b/site/docs/install/x60_unbrick.md.description new file mode 100644 index 0000000..63a0631 --- /dev/null +++ b/site/docs/install/x60_unbrick.md.description @@ -0,0 +1 @@ +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X60. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. diff --git a/site/docs/install/x60tablet_unbrick.md.description b/site/docs/install/x60tablet_unbrick.md.description new file mode 100644 index 0000000..42c3634 --- /dev/null +++ b/site/docs/install/x60tablet_unbrick.md.description @@ -0,0 +1 @@ +Unbricking a Lenovo ThinkPad X60 Tablet after botched Libreboot installation. diff --git a/site/docs/linux/grub_boot_installer.md.description b/site/docs/linux/grub_boot_installer.md.description new file mode 100644 index 0000000..2543041 --- /dev/null +++ b/site/docs/linux/grub_boot_installer.md.description @@ -0,0 +1 @@ +Learn how to boot Linux distributions from the GNU boot loader named GRUB, on your Libreboot system. Libreboot provides free/opensource BIOS/UEFI firmwware based on coreboot, which has a few quirks that must be dealt with first. diff --git a/site/docs/linux/grub_cbfs.md.description b/site/docs/linux/grub_cbfs.md.description new file mode 100644 index 0000000..77ff45e --- /dev/null +++ b/site/docs/linux/grub_cbfs.md.description @@ -0,0 +1 @@ +The GNU boot loader named GRUB can read from coreboot's file system, and boot Linux/BSD systems from the flash. With these guides, you will know how to configure GRUB in flash for your Libreboot system. diff --git a/site/docs/linux/grub_hardening.md.description b/site/docs/linux/grub_hardening.md.description new file mode 100644 index 0000000..8693451 --- /dev/null +++ b/site/docs/linux/grub_hardening.md.description @@ -0,0 +1 @@ +The GNU boot loader named GRUB provides many encryption and boot protection measures, that can be used to increase the security of your Libreboot system. This rivals many competing schemes such as UEFI SecureBoot, and we call our hardened GRUB setup Secure libreBoot. diff --git a/site/docs/linux/index.md.description b/site/docs/linux/index.md.description new file mode 100644 index 0000000..0bf65fc --- /dev/null +++ b/site/docs/linux/index.md.description @@ -0,0 +1 @@ +Learn how to install Linux distributions on your Libreboot system. Libreboot provides free/opensource BIOS/UEFI firmware, in many ways comparable to the vendor firmware but it does have a few idiosyncrasies that must be taken care of. diff --git a/site/docs/sitegen/index.md.description b/site/docs/sitegen/index.md.description new file mode 100644 index 0000000..f27efde --- /dev/null +++ b/site/docs/sitegen/index.md.description @@ -0,0 +1 @@ +Learn about the Libreboot Static Site Generator, which is used to convert Markdown documents into HTML. Libreboot Static Site generator, or lbssg, is what generates the Libreboot project website. diff --git a/site/docs/uboot/index.md.description b/site/docs/uboot/index.md.description new file mode 100644 index 0000000..4e35cff --- /dev/null +++ b/site/docs/uboot/index.md.description @@ -0,0 +1 @@ +Free/opensource UEFI payload for Libreboot, via U-Boot UEFI coreboot payload. This is provided by the Libreboot project on ARM64 platforms. This replaces Google's usual Depthcharge payload, on ARM64 chromebooks. Also available for x86. diff --git a/site/docs/uboot/uboot-debian-bookworm.md.description b/site/docs/uboot/uboot-debian-bookworm.md.description new file mode 100644 index 0000000..e69de29 diff --git a/site/docs/uboot/uboot-x86.md.description b/site/docs/uboot/uboot-x86.md.description new file mode 100644 index 0000000..033031c --- /dev/null +++ b/site/docs/uboot/uboot-x86.md.description @@ -0,0 +1 @@ +Free/opensource UEFI payload for Libreboot, via U-Boot UEFI coreboot payload. This is provided by the Libreboot project on x86 and amd64 platforms. You can use this even on motherboards that never had UEFI to begin with. diff --git a/site/download.md.description b/site/download.md.description new file mode 100644 index 0000000..6a39c06 --- /dev/null +++ b/site/download.md.description @@ -0,0 +1 @@ +Download Libreboot free/opensource BIOS/UEFI firmware. Libreboot is a coreboot distro, and provides several payloads such as the GNU boot loader named GRUB, the SeaBIOS payload and the U-Boot payload (for x86 and ARM). diff --git a/site/freedom-status.md.description b/site/freedom-status.md.description new file mode 100644 index 0000000..6633be5 --- /dev/null +++ b/site/freedom-status.md.description @@ -0,0 +1,4 @@ +Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot +for booting Linux/BSD on supported x86/ARM motherboards. It comes with GNU boot +loader GRUB, SeaBIOS and U-Boot. This page describes how Libreboot handles vendor +code on each supported motherboard. diff --git a/site/freedom-status.uk.md.description b/site/freedom-status.uk.md.description new file mode 100644 index 0000000..6633be5 --- /dev/null +++ b/site/freedom-status.uk.md.description @@ -0,0 +1,4 @@ +Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot +for booting Linux/BSD on supported x86/ARM motherboards. It comes with GNU boot +loader GRUB, SeaBIOS and U-Boot. This page describes how Libreboot handles vendor +code on each supported motherboard. diff --git a/site/git.de.md.description b/site/git.de.md.description new file mode 100644 index 0000000..3f5f10a --- /dev/null +++ b/site/git.de.md.description @@ -0,0 +1 @@ +Send patches to the Libreboot project via Git. Libreboot is a community-led free/opensource BIOS/UEFI firmware project, based on coreboot and provides a variety of coreboot payloads, such as the GNU boot loader named GRUB. diff --git a/site/git.md.description b/site/git.md.description new file mode 100644 index 0000000..3f5f10a --- /dev/null +++ b/site/git.md.description @@ -0,0 +1 @@ +Send patches to the Libreboot project via Git. Libreboot is a community-led free/opensource BIOS/UEFI firmware project, based on coreboot and provides a variety of coreboot payloads, such as the GNU boot loader named GRUB. diff --git a/site/git.uk.md.description b/site/git.uk.md.description new file mode 100644 index 0000000..3f5f10a --- /dev/null +++ b/site/git.uk.md.description @@ -0,0 +1 @@ +Send patches to the Libreboot project via Git. Libreboot is a community-led free/opensource BIOS/UEFI firmware project, based on coreboot and provides a variety of coreboot payloads, such as the GNU boot loader named GRUB. diff --git a/site/index.de.md.description b/site/index.de.md.description new file mode 100644 index 0000000..3db20b3 --- /dev/null +++ b/site/index.de.md.description @@ -0,0 +1 @@ +Das Libreboot Projekt bietet eine freie/Open Source Boot Firmware mit GNU boot loader GRUB, SeaBIOS und U-Boot. diff --git a/site/index.it.md.description b/site/index.it.md.description new file mode 100644 index 0000000..de81a88 --- /dev/null +++ b/site/index.it.md.description @@ -0,0 +1 @@ +Il progetto Libreboot fornisce avvio libero e open source grazie al firmware basato su coreboot. Il progetto Libreboot fornisce avvio GNU boot loader GRUB, SeaBIOS e U-Boot. diff --git a/site/index.md.description b/site/index.md.description new file mode 100644 index 0000000..bb8da0e --- /dev/null +++ b/site/index.md.description @@ -0,0 +1 @@ +Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/index.ru.md.description b/site/index.ru.md.description new file mode 100644 index 0000000..30fc86e --- /dev/null +++ b/site/index.ru.md.description @@ -0,0 +1 @@ +Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/index.zh-cn.md.description b/site/index.zh-cn.md.description new file mode 100644 index 0000000..b2861be --- /dev/null +++ b/site/index.zh-cn.md.description @@ -0,0 +1 @@ +Libreboot 项目提供基于 coreboot 的自由且开源的引导固件. GNU GRUB, SeaBIOS, U-Boot. diff --git a/site/news/10.md.description b/site/news/10.md.description new file mode 100644 index 0000000..db74f87 --- /dev/null +++ b/site/news/10.md.description @@ -0,0 +1 @@ +Tenth year anniversary and history of the Libreboot project, as of December 2023. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/argon2.md.description b/site/news/argon2.md.description new file mode 100644 index 0000000..64f747f --- /dev/null +++ b/site/news/argon2.md.description @@ -0,0 +1 @@ +Argon2 KDF allows greater memory hardness, which means that it is much less vulnerable to bruteforce attacks. This encryption scheme was added to the GNU boot loader named GRUB, in Libreboot's version, thereby allowing full LUKS2 support in Libreboot's GRUB payload. diff --git a/site/news/audit.md.description b/site/news/audit.md.description new file mode 100644 index 0000000..94c24c0 --- /dev/null +++ b/site/news/audit.md.description @@ -0,0 +1 @@ +Libreboot build system audit. Libreboot's build system is constantly audited to fix bugs, improve stability and overall code efficiency. diff --git a/site/news/audit2.md.description b/site/news/audit2.md.description new file mode 100644 index 0000000..28933bd --- /dev/null +++ b/site/news/audit2.md.description @@ -0,0 +1 @@ +Libreboot build system audit 2. Libreboot's build system is constantly audited to fix bugs, improve stability and overall code efficiency. diff --git a/site/news/audit3.md.description b/site/news/audit3.md.description new file mode 100644 index 0000000..3666712 --- /dev/null +++ b/site/news/audit3.md.description @@ -0,0 +1 @@ +Libreboot build system audit 3. Libreboot's build system is constantly audited to fix bugs, improve stability and overall code efficiency. diff --git a/site/news/audit4.md.description b/site/news/audit4.md.description new file mode 100644 index 0000000..3012987 --- /dev/null +++ b/site/news/audit4.md.description @@ -0,0 +1 @@ +Libreboot build system audit 4. Libreboot's build system is constantly audited to fix bugs, improve stability and overall code efficiency. diff --git a/site/news/audit5.md.description b/site/news/audit5.md.description new file mode 100644 index 0000000..be1c3c1 --- /dev/null +++ b/site/news/audit5.md.description @@ -0,0 +1 @@ +Libreboot build system audit 5. Libreboot's build system is constantly audited to fix bugs, improve stability and overall code efficiency. diff --git a/site/news/audit6.md.description b/site/news/audit6.md.description new file mode 100644 index 0000000..07f5fe4 --- /dev/null +++ b/site/news/audit6.md.description @@ -0,0 +1 @@ +Libreboot build system audit 6. Libreboot's build system is constantly audited to fix bugs, improve stability and overall code efficiency. diff --git a/site/news/codeberg.md.description b/site/news/codeberg.md.description new file mode 100644 index 0000000..b317bdc --- /dev/null +++ b/site/news/codeberg.md.description @@ -0,0 +1,3 @@ +Libreboot's main Git repositories were moved to Codeberg, whereas +they were previously hosted on Notabug. Notabug is still used as a +backup Git repository mirror for the Libreboot project. diff --git a/site/news/e6400.md.description b/site/news/e6400.md.description new file mode 100644 index 0000000..6f7b5f4 --- /dev/null +++ b/site/news/e6400.md.description @@ -0,0 +1 @@ +Dell Latitude E6400 added to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/e6400nvidia.md.description b/site/news/e6400nvidia.md.description new file mode 100644 index 0000000..cbb06bb --- /dev/null +++ b/site/news/e6400nvidia.md.description @@ -0,0 +1 @@ +Advice regarding Nvidia GPUs on Dell Latitude E6400, when installing Libreboot free/opensource BIOS/UEFI boot firmware. diff --git a/site/news/fam15h.md.description b/site/news/fam15h.md.description new file mode 100644 index 0000000..c92f882 --- /dev/null +++ b/site/news/fam15h.md.description @@ -0,0 +1 @@ +Request for hardware donation of ASUS KGPE-D16. diff --git a/site/news/fedfree.md.description b/site/news/fedfree.md.description new file mode 100644 index 0000000..a1e31a0 --- /dev/null +++ b/site/news/fedfree.md.description @@ -0,0 +1 @@ +Federation of Freedom is a blog maintained by Leah Rowe, which describes some of the infrastructure of the Libreboot project, and tells you how to configure your own servers, for your own free and open source software project. diff --git a/site/news/freedom.md.description b/site/news/freedom.md.description new file mode 100644 index 0000000..06d0652 --- /dev/null +++ b/site/news/freedom.md.description @@ -0,0 +1 @@ +People ask about other firmware besides Libreboot all the time, such as Embedded Controller firmware. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot. diff --git a/site/news/gm45microcode.md.description b/site/news/gm45microcode.md.description new file mode 100644 index 0000000..c6a431f --- /dev/null +++ b/site/news/gm45microcode.md.description @@ -0,0 +1 @@ +Notice regarding the handling of CPU microcode updates in Libreboot, on laptops that use the Intel GM45 northbridge and ICH9m southbridge designs. diff --git a/site/news/hp2170p.md.description b/site/news/hp2170p.md.description new file mode 100644 index 0000000..3d23a5e --- /dev/null +++ b/site/news/hp2170p.md.description @@ -0,0 +1 @@ +HP EliteBook 2170p addod to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/hp8200sff.md.description b/site/news/hp8200sff.md.description new file mode 100644 index 0000000..dca0458 --- /dev/null +++ b/site/news/hp8200sff.md.description @@ -0,0 +1 @@ +HP Elite 8200 SFF added to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/hp8200sff.uk.md.description b/site/news/hp8200sff.uk.md.description new file mode 100644 index 0000000..dca0458 --- /dev/null +++ b/site/news/hp8200sff.uk.md.description @@ -0,0 +1 @@ +HP Elite 8200 SFF added to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/hp820g2.md.description b/site/news/hp820g2.md.description new file mode 100644 index 0000000..2871ad4 --- /dev/null +++ b/site/news/hp820g2.md.description @@ -0,0 +1 @@ +HP EliteBook 820 G2 addod to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/hp8470p_and_dell_t1650.md.description b/site/news/hp8470p_and_dell_t1650.md.description new file mode 100644 index 0000000..696fea9 --- /dev/null +++ b/site/news/hp8470p_and_dell_t1650.md.description @@ -0,0 +1 @@ +HP Elite 8470p and Dell Precision T1650 added to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with payloads like the GNU boot loader GRUB, SeaBIOS and U-Boot. diff --git a/site/news/hp_elitebooks.md.description b/site/news/hp_elitebooks.md.description new file mode 100644 index 0000000..b642099 --- /dev/null +++ b/site/news/hp_elitebooks.md.description @@ -0,0 +1 @@ +More HP EliteBooks added to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/kgpe-d16.md.description b/site/news/kgpe-d16.md.description new file mode 100644 index 0000000..4acadfa --- /dev/null +++ b/site/news/kgpe-d16.md.description @@ -0,0 +1 @@ +Notice regarding ASUS KGPE-D16 in the Libreboot project. diff --git a/site/news/libreboot20131212.md.description b/site/news/libreboot20131212.md.description new file mode 100644 index 0000000..5aa673d --- /dev/null +++ b/site/news/libreboot20131212.md.description @@ -0,0 +1 @@ +Libreboot 20131212 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20131213.md.description b/site/news/libreboot20131213.md.description new file mode 100644 index 0000000..69e372a --- /dev/null +++ b/site/news/libreboot20131213.md.description @@ -0,0 +1 @@ +Libreboot 20131213 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20131214.md.description b/site/news/libreboot20131214.md.description new file mode 100644 index 0000000..68fc0a2 --- /dev/null +++ b/site/news/libreboot20131214.md.description @@ -0,0 +1 @@ +Libreboot 20131214 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20140221.md.description b/site/news/libreboot20140221.md.description new file mode 100644 index 0000000..64e2ac3 --- /dev/null +++ b/site/news/libreboot20140221.md.description @@ -0,0 +1 @@ +Libreboot 20140221 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20140309.md.description b/site/news/libreboot20140309.md.description new file mode 100644 index 0000000..b26af46 --- /dev/null +++ b/site/news/libreboot20140309.md.description @@ -0,0 +1 @@ +Libreboot 20140309 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20140605.md.description b/site/news/libreboot20140605.md.description new file mode 100644 index 0000000..1586237 --- /dev/null +++ b/site/news/libreboot20140605.md.description @@ -0,0 +1 @@ +Libreboot 20140605 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20140611.md.description b/site/news/libreboot20140611.md.description new file mode 100644 index 0000000..59a14f9 --- /dev/null +++ b/site/news/libreboot20140611.md.description @@ -0,0 +1 @@ +Libreboot 20140611 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20140622.md.description b/site/news/libreboot20140622.md.description new file mode 100644 index 0000000..694ff34 --- /dev/null +++ b/site/news/libreboot20140622.md.description @@ -0,0 +1 @@ +Libreboot 20140622 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20140711.md.description b/site/news/libreboot20140711.md.description new file mode 100644 index 0000000..466815c --- /dev/null +++ b/site/news/libreboot20140711.md.description @@ -0,0 +1 @@ +Libreboot 20140711 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20140716.md.description b/site/news/libreboot20140716.md.description new file mode 100644 index 0000000..d2382fb --- /dev/null +++ b/site/news/libreboot20140716.md.description @@ -0,0 +1 @@ +Libreboot 20240225 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20140720.md.description b/site/news/libreboot20140720.md.description new file mode 100644 index 0000000..1898e11 --- /dev/null +++ b/site/news/libreboot20140720.md.description @@ -0,0 +1 @@ +Libreboot 20140720 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20140729.md.description b/site/news/libreboot20140729.md.description new file mode 100644 index 0000000..2884647 --- /dev/null +++ b/site/news/libreboot20140729.md.description @@ -0,0 +1 @@ +Libreboot 20140729 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20140811.md.description b/site/news/libreboot20140811.md.description new file mode 100644 index 0000000..a182a2c --- /dev/null +++ b/site/news/libreboot20140811.md.description @@ -0,0 +1 @@ +Libreboot 20140811 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20140903.md.description b/site/news/libreboot20140903.md.description new file mode 100644 index 0000000..138c674 --- /dev/null +++ b/site/news/libreboot20140903.md.description @@ -0,0 +1 @@ +Libreboot 20140903 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20140911.md.description b/site/news/libreboot20140911.md.description new file mode 100644 index 0000000..4a8ae1b --- /dev/null +++ b/site/news/libreboot20140911.md.description @@ -0,0 +1 @@ +Libreboot 20140911 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20141015.md.description b/site/news/libreboot20141015.md.description new file mode 100644 index 0000000..4fdb700 --- /dev/null +++ b/site/news/libreboot20141015.md.description @@ -0,0 +1 @@ +Libreboot 20141015 release. diff --git a/site/news/libreboot20150124.md.description b/site/news/libreboot20150124.md.description new file mode 100644 index 0000000..df51456 --- /dev/null +++ b/site/news/libreboot20150124.md.description @@ -0,0 +1 @@ +Libreboot 20150124 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20150126.md.description b/site/news/libreboot20150126.md.description new file mode 100644 index 0000000..684f909 --- /dev/null +++ b/site/news/libreboot20150126.md.description @@ -0,0 +1 @@ +Libreboot 20150126 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20150208.md.description b/site/news/libreboot20150208.md.description new file mode 100644 index 0000000..4895e71 --- /dev/null +++ b/site/news/libreboot20150208.md.description @@ -0,0 +1 @@ +Libreboot 20150208 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20150518.md.description b/site/news/libreboot20150518.md.description new file mode 100644 index 0000000..c707ddf --- /dev/null +++ b/site/news/libreboot20150518.md.description @@ -0,0 +1 @@ +Libreboot 20150518 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20160818.md.description b/site/news/libreboot20160818.md.description new file mode 100644 index 0000000..f544036 --- /dev/null +++ b/site/news/libreboot20160818.md.description @@ -0,0 +1 @@ +Libreboot 20160818 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20160902.md.description b/site/news/libreboot20160902.md.description new file mode 100644 index 0000000..8e2d66e --- /dev/null +++ b/site/news/libreboot20160902.md.description @@ -0,0 +1 @@ +Libreboot 20160902 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20160907.md.description b/site/news/libreboot20160907.md.description new file mode 100644 index 0000000..21d8b84 --- /dev/null +++ b/site/news/libreboot20160907.md.description @@ -0,0 +1 @@ +Libreboot 20160907 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20210522.md.description b/site/news/libreboot20210522.md.description new file mode 100644 index 0000000..f81590b --- /dev/null +++ b/site/news/libreboot20210522.md.description @@ -0,0 +1 @@ +Libreboot 20210522 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20211122.md.description b/site/news/libreboot20211122.md.description new file mode 100644 index 0000000..f664f51 --- /dev/null +++ b/site/news/libreboot20211122.md.description @@ -0,0 +1 @@ +Libreboot 20211122 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20220710.md.description b/site/news/libreboot20220710.md.description new file mode 100644 index 0000000..eab62c1 --- /dev/null +++ b/site/news/libreboot20220710.md.description @@ -0,0 +1 @@ +Libreboot 20220710 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20221214.md.description b/site/news/libreboot20221214.md.description new file mode 100644 index 0000000..c49dfbb --- /dev/null +++ b/site/news/libreboot20221214.md.description @@ -0,0 +1 @@ +Libreboot 20221214 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20230319.md.description b/site/news/libreboot20230319.md.description new file mode 100644 index 0000000..8e034cc --- /dev/null +++ b/site/news/libreboot20230319.md.description @@ -0,0 +1 @@ +Libreboot 20230319 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20230413.md.description b/site/news/libreboot20230413.md.description new file mode 100644 index 0000000..4fbe6e2 --- /dev/null +++ b/site/news/libreboot20230413.md.description @@ -0,0 +1 @@ +Libreboot 20230413 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20230423.md.description b/site/news/libreboot20230423.md.description new file mode 100644 index 0000000..5a052d7 --- /dev/null +++ b/site/news/libreboot20230423.md.description @@ -0,0 +1 @@ +Libreboot 20230423 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20230625.md.description b/site/news/libreboot20230625.md.description new file mode 100644 index 0000000..244f626 --- /dev/null +++ b/site/news/libreboot20230625.md.description @@ -0,0 +1 @@ +Libreboot 20230625 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20231021.md.description b/site/news/libreboot20231021.md.description new file mode 100644 index 0000000..ccfd4a0 --- /dev/null +++ b/site/news/libreboot20231021.md.description @@ -0,0 +1 @@ +Libreboot 20231021 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20231101.md.description b/site/news/libreboot20231101.md.description new file mode 100644 index 0000000..b9df681 --- /dev/null +++ b/site/news/libreboot20231101.md.description @@ -0,0 +1 @@ +Libreboot 20231101 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20231106.md.description b/site/news/libreboot20231106.md.description new file mode 100644 index 0000000..6506ac1 --- /dev/null +++ b/site/news/libreboot20231106.md.description @@ -0,0 +1 @@ +Libreboot 20231106 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20240126.md.description b/site/news/libreboot20240126.md.description new file mode 100644 index 0000000..6a4219b --- /dev/null +++ b/site/news/libreboot20240126.md.description @@ -0,0 +1 @@ +Libreboot 20240106 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20240225.md.description b/site/news/libreboot20240225.md.description new file mode 100644 index 0000000..820c455 --- /dev/null +++ b/site/news/libreboot20240225.md.description @@ -0,0 +1 @@ +Libreboot 20230225 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20240504.md.description b/site/news/libreboot20240504.md.description new file mode 100644 index 0000000..ef37127 --- /dev/null +++ b/site/news/libreboot20240504.md.description @@ -0,0 +1 @@ +Libreboot 20240504 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20240612.md.description b/site/news/libreboot20240612.md.description new file mode 100644 index 0000000..6b528b7 --- /dev/null +++ b/site/news/libreboot20240612.md.description @@ -0,0 +1 @@ +Libreboot 20240612 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20241008.md.description b/site/news/libreboot20241008.md.description new file mode 100644 index 0000000..b3b4cc8 --- /dev/null +++ b/site/news/libreboot20241008.md.description @@ -0,0 +1 @@ +Libreboot 20241008 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20241206.Revisions.md.description b/site/news/libreboot20241206.Revisions.md.description new file mode 100644 index 0000000..63d71e0 --- /dev/null +++ b/site/news/libreboot20241206.Revisions.md.description @@ -0,0 +1 @@ +Libreboot 20241206 release revisions. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20241206.md.description b/site/news/libreboot20241206.md.description new file mode 100644 index 0000000..33fff7d --- /dev/null +++ b/site/news/libreboot20241206.md.description @@ -0,0 +1 @@ +Libreboot 20241206 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/libreboot20241206rev8.md.description b/site/news/libreboot20241206rev8.md.description new file mode 100644 index 0000000..b9f603a --- /dev/null +++ b/site/news/libreboot20241206rev8.md.description @@ -0,0 +1 @@ +Libreboot 20241206, 8th revision. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. diff --git a/site/news/microcode.md.description b/site/news/microcode.md.description new file mode 100644 index 0000000..20fae76 --- /dev/null +++ b/site/news/microcode.md.description @@ -0,0 +1 @@ +Policy announcement regarding CPU microcode updates in Libreboot. diff --git a/site/news/mirrors.md.description b/site/news/mirrors.md.description new file mode 100644 index 0000000..2363b29 --- /dev/null +++ b/site/news/mirrors.md.description @@ -0,0 +1 @@ +New Libreboot Git repository mirrors are available, for downloading Libreboot free/opensource BIOS/UEFI boot firmware. diff --git a/site/news/policy.md.description b/site/news/policy.md.description new file mode 100644 index 0000000..38ca802 --- /dev/null +++ b/site/news/policy.md.description @@ -0,0 +1 @@ +Libreboot project Binary Blob Reduction Policy, which pertains to the handling of vendor code. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot. diff --git a/site/news/ports202402.md.description b/site/news/ports202402.md.description new file mode 100644 index 0000000..1080dcc --- /dev/null +++ b/site/news/ports202402.md.description @@ -0,0 +1 @@ +A number of new motherboards were added to Libreboot, thereby providing them with free/opensource BIOS/UEFI firmware based on coreboot. Libreboot is a coreboot distro, providing payloads such as the GNU boot loader named GRUB, by default. diff --git a/site/news/safety.md.description b/site/news/safety.md.description new file mode 100644 index 0000000..7224887 --- /dev/null +++ b/site/news/safety.md.description @@ -0,0 +1 @@ +Safety instructions pertaining to installation of Libreboot free/opensource BIOS/UEFI firmware. diff --git a/site/news/schedule.md.description b/site/news/schedule.md.description new file mode 100644 index 0000000..d7996c5 --- /dev/null +++ b/site/news/schedule.md.description @@ -0,0 +1 @@ +Libreboot will adopt a new release schedule from 2025 onward, with more consistent version numbering and release codenames. Libreboot will do testing releases in April and October, and stable releases in June and December, each year. diff --git a/site/news/sourcehut.md.description b/site/news/sourcehut.md.description new file mode 100644 index 0000000..f8bb3f4 --- /dev/null +++ b/site/news/sourcehut.md.description @@ -0,0 +1 @@ +Libreboot is now officially available on SourceHut, including mailing lists. diff --git a/site/news/translations.de.md.description b/site/news/translations.de.md.description new file mode 100644 index 0000000..b6a1ed1 --- /dev/null +++ b/site/news/translations.de.md.description @@ -0,0 +1 @@ +Instructions for how to translate the Libreboot website. diff --git a/site/news/translations.md.description b/site/news/translations.md.description new file mode 100644 index 0000000..bc531c8 --- /dev/null +++ b/site/news/translations.md.description @@ -0,0 +1 @@ +Translations needed for the Libreboot website. Learn how you can create and submit translations for the Libreboot project website. diff --git a/site/news/update202308.md.description b/site/news/update202308.md.description new file mode 100644 index 0000000..9d99d83 --- /dev/null +++ b/site/news/update202308.md.description @@ -0,0 +1 @@ +Upstream code revisions in Libreboot, as of August 2023, for example the GNU boot loader named GRUB was updated. diff --git a/site/news/usa-libre-part2.md.description b/site/news/usa-libre-part2.md.description new file mode 100644 index 0000000..32b6a46 --- /dev/null +++ b/site/news/usa-libre-part2.md.description @@ -0,0 +1 @@ +Free and open source software in your government. diff --git a/site/news/usa-libre-part3.md.description b/site/news/usa-libre-part3.md.description new file mode 100644 index 0000000..07dbfed --- /dev/null +++ b/site/news/usa-libre-part3.md.description @@ -0,0 +1 @@ +Free Software inside your government. diff --git a/site/news/usa-libre.md.description b/site/news/usa-libre.md.description new file mode 100644 index 0000000..32b6a46 --- /dev/null +++ b/site/news/usa-libre.md.description @@ -0,0 +1 @@ +Free and open source software in your government. diff --git a/site/news/x201.md.description b/site/news/x201.md.description new file mode 100644 index 0000000..c9ff70a --- /dev/null +++ b/site/news/x201.md.description @@ -0,0 +1,2 @@ +ThinkPad X201 support was removed from Libreboot, due +to thermal safety issues on that board. diff --git a/site/other.md.description b/site/other.md.description new file mode 100644 index 0000000..0dd0baf --- /dev/null +++ b/site/other.md.description @@ -0,0 +1 @@ +Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot. Several other projects exist that are very different to Libreboot, but also based on coreboot. diff --git a/site/sitemap.md.description b/site/sitemap.md.description new file mode 100644 index 0000000..e9d02ce --- /dev/null +++ b/site/sitemap.md.description @@ -0,0 +1 @@ +This page lists every other page on the Libreboot website. From 3b90750b4b6ea0e8c9682ca517bb76800e6a5e2a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 25 Jan 2025 15:04:38 +0000 Subject: [PATCH 332/399] shorter descriptions Signed-off-by: Leah Rowe --- site/docs/build/index.md.description | 2 +- site/docs/index.md.description | 2 +- site/docs/install/acer_g43t-am3.md.description | 2 +- site/docs/install/chromebooks.md.description | 2 +- site/docs/install/d945gclf.md.description | 2 +- site/docs/install/deguard.md.description | 2 +- site/docs/install/dell3050.md.description | 2 +- site/docs/install/dell7010.md.description | 2 +- site/docs/install/dell780.md.description | 2 +- site/docs/install/dell9020.md.description | 2 +- site/docs/install/dell_thermal.md.description | 2 +- site/docs/install/devmem.md.description | 2 +- site/docs/install/ga-g41m-es2l.md.description | 2 +- site/docs/install/hp2170p.md.description | 2 +- site/docs/install/hp2560p.md.description | 2 +- site/docs/install/hp2570p.md.description | 2 +- site/docs/install/hp8200sff.md.description | 2 +- site/docs/install/hp820g2.md.description | 2 +- site/docs/install/hp8300usdt.md.description | 2 +- site/docs/install/hp8460p.md.description | 2 +- site/docs/install/hp8470p.md.description | 2 +- site/docs/install/hp8560w.md.description | 2 +- site/docs/install/hp9470m.md.description | 2 +- site/docs/install/ich9utils.md.description | 2 +- site/docs/install/index.md.description | 2 +- site/docs/install/ivy_has_common.md.description | 2 +- site/docs/install/ivy_internal.md.description | 2 +- site/docs/install/kcma-d8.md.description | 2 +- site/docs/install/kfsn4-dre.md.description | 2 +- site/docs/install/kgpe-d16.md.description | 2 +- site/docs/install/latitude.md.description | 2 +- site/docs/install/macbook21.md.description | 2 +- site/docs/install/nvmutil.md.description | 2 +- site/docs/install/playstation.md.description | 2 +- site/docs/install/r400.md.description | 2 +- site/docs/install/spi.md.description | 2 +- site/docs/install/t1650.md.description | 2 +- site/docs/install/t400.md.description | 2 +- site/docs/install/t420_external.md.description | 2 +- site/docs/install/t440p_external.md.description | 2 +- site/docs/install/t480.md.description | 2 +- site/docs/install/t500.md.description | 2 +- site/docs/install/t60_unbrick.md.description | 2 +- site/docs/install/w541_external.md.description | 2 +- site/docs/install/x200.md.description | 2 +- site/docs/install/x230_external.md.description | 2 +- site/docs/install/x60_unbrick.md.description | 2 +- site/docs/linux/grub_boot_installer.md.description | 2 +- site/docs/linux/grub_cbfs.md.description | 2 +- site/docs/linux/grub_hardening.md.description | 2 +- site/docs/linux/index.md.description | 2 +- site/docs/sitegen/index.md.description | 2 +- site/docs/uboot/index.md.description | 2 +- site/docs/uboot/uboot-debian-bookworm.md.description | 0 site/docs/uboot/uboot-x86.md.description | 2 +- site/download.md.description | 2 +- site/freedom-status.md.description | 6 ++---- site/freedom-status.uk.md.description | 6 ++---- site/git.de.md.description | 2 +- site/git.md.description | 2 +- site/git.uk.md.description | 2 +- site/index.it.md.description | 2 +- site/index.md.description | 2 +- site/index.ru.md.description | 2 +- site/news/10.md.description | 2 +- site/news/argon2.md.description | 2 +- site/news/codeberg.md.description | 3 +-- site/news/e6400.md.description | 2 +- site/news/freedom.md.description | 3 ++- site/news/hp2170p.md.description | 2 +- site/news/hp8200sff.md.description | 2 +- site/news/hp8200sff.uk.md.description | 2 +- site/news/hp820g2.md.description | 2 +- site/news/hp8470p_and_dell_t1650.md.description | 2 +- site/news/hp_elitebooks.md.description | 2 +- site/news/libreboot20131212.md.description | 2 +- site/news/libreboot20131213.md.description | 2 +- site/news/libreboot20131214.md.description | 2 +- site/news/libreboot20140221.md.description | 2 +- site/news/libreboot20140309.md.description | 2 +- site/news/libreboot20140605.md.description | 2 +- site/news/libreboot20140611.md.description | 2 +- site/news/libreboot20140622.md.description | 2 +- site/news/libreboot20140711.md.description | 2 +- site/news/libreboot20140716.md.description | 2 +- site/news/libreboot20140720.md.description | 2 +- site/news/libreboot20140729.md.description | 2 +- site/news/libreboot20140811.md.description | 2 +- site/news/libreboot20140903.md.description | 2 +- site/news/libreboot20140911.md.description | 2 +- site/news/libreboot20150124.md.description | 2 +- site/news/libreboot20150126.md.description | 2 +- site/news/libreboot20150208.md.description | 2 +- site/news/libreboot20150518.md.description | 2 +- site/news/libreboot20160818.md.description | 2 +- site/news/libreboot20160902.md.description | 2 +- site/news/libreboot20160907.md.description | 2 +- site/news/libreboot20210522.md.description | 2 +- site/news/libreboot20211122.md.description | 2 +- site/news/libreboot20220710.md.description | 2 +- site/news/libreboot20221214.md.description | 2 +- site/news/libreboot20230319.md.description | 2 +- site/news/libreboot20230413.md.description | 2 +- site/news/libreboot20230423.md.description | 2 +- site/news/libreboot20230625.md.description | 2 +- site/news/libreboot20231021.md.description | 2 +- site/news/libreboot20231101.md.description | 2 +- site/news/libreboot20231106.md.description | 2 +- site/news/libreboot20240126.md.description | 2 +- site/news/libreboot20240225.md.description | 2 +- site/news/libreboot20240504.md.description | 2 +- site/news/libreboot20240612.md.description | 2 +- site/news/libreboot20241008.md.description | 2 +- site/news/libreboot20241206.Revisions.md.description | 2 +- site/news/libreboot20241206.md.description | 2 +- site/news/libreboot20241206rev8.md.description | 2 +- site/news/policy.md.description | 2 +- site/news/ports202402.md.description | 2 +- site/news/schedule.md.description | 2 +- site/other.md.description | 2 +- site/template.de.include | 2 +- site/template.include | 2 +- site/template.it.include | 2 +- site/template.uk.include | 2 +- site/template.zh-cn.include | 2 +- 125 files changed, 127 insertions(+), 131 deletions(-) delete mode 100644 site/docs/uboot/uboot-debian-bookworm.md.description diff --git a/site/docs/build/index.md.description b/site/docs/build/index.md.description index 67b97e6..955efdc 100644 --- a/site/docs/build/index.md.description +++ b/site/docs/build/index.md.description @@ -1 +1 @@ -Libreboot project documentation. Learn about Libreboot installation, how Libreboot is designed and how you can contribute to the project. Libreboot provides free/opensource BIOS/UEFI boot firmware based on coreboot. +Libreboot project documentation. Learn about Libreboot installation, how Libreboot is designed and how you can contribute to the project. diff --git a/site/docs/index.md.description b/site/docs/index.md.description index 839da72..745796e 100644 --- a/site/docs/index.md.description +++ b/site/docs/index.md.description @@ -1 +1 @@ -Documentation pertaining to Libreboot installation, configuration and maintenance. Information about development is provided. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with payloads such as the GNU boot loader named GRUB. +Documentation pertaining to Libreboot installation. Learn how to install Libreboot, and use coreboot payloads such as the GNU boot loader GRUB. diff --git a/site/docs/install/acer_g43t-am3.md.description b/site/docs/install/acer_g43t-am3.md.description index 6b54174..ddc02dd 100644 --- a/site/docs/install/acer_g43t-am3.md.description +++ b/site/docs/install/acer_g43t-am3.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Acer G43T-AM3 motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Acer G43T-AM3 motherboard. diff --git a/site/docs/install/chromebooks.md.description b/site/docs/install/chromebooks.md.description index 666c162..a349cb7 100644 --- a/site/docs/install/chromebooks.md.description +++ b/site/docs/install/chromebooks.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various ARM64-based Chromebook laptops. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various ARM64-based Chromebook laptops. diff --git a/site/docs/install/d945gclf.md.description b/site/docs/install/d945gclf.md.description index 772f227..9f804ce 100644 --- a/site/docs/install/d945gclf.md.description +++ b/site/docs/install/d945gclf.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Intel D945GCLF motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Intel D945GCLF motherboard. diff --git a/site/docs/install/deguard.md.description b/site/docs/install/deguard.md.description index 17ee5bb..cbc7400 100644 --- a/site/docs/install/deguard.md.description +++ b/site/docs/install/deguard.md.description @@ -1 +1 @@ -Libreboot can disable the Intel Boot Guard, on any Intel 6th, 7th or 8th gen platform with Intel Management Engine version 11.x present. Intel Boot Guard would otherwise prevent coreboot from booting, by verifying the bootblock of the vendor's UEFI firmware. With this, you can use Libreboot and its various default coreboot payloads, such as the GNU boot loader named GRUB. +Libreboot can disable the Intel Boot Guard, on any Intel 6th, 7th or 8th gen platform with Intel Management Engine version 11.x present, using deguard. diff --git a/site/docs/install/dell3050.md.description b/site/docs/install/dell3050.md.description index de6e2d1..3bcb6e6 100644 --- a/site/docs/install/dell3050.md.description +++ b/site/docs/install/dell3050.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell Latitude 3050 Micro. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Dell OptiPlex 3050 installation. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader. diff --git a/site/docs/install/dell7010.md.description b/site/docs/install/dell7010.md.description index e93c754..71ba34a 100644 --- a/site/docs/install/dell7010.md.description +++ b/site/docs/install/dell7010.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 7010 SFF. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 7010 SFF. diff --git a/site/docs/install/dell780.md.description b/site/docs/install/dell780.md.description index 4dc1d35..2a8e1d2 100644 --- a/site/docs/install/dell780.md.description +++ b/site/docs/install/dell780.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 780. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 780. diff --git a/site/docs/install/dell9020.md.description b/site/docs/install/dell9020.md.description index 4e21d19..5dedde4 100644 --- a/site/docs/install/dell9020.md.description +++ b/site/docs/install/dell9020.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 9020 MT and SFF, also XE2 SFF and MT. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell OptiPlex 9020 MT and SFF, also XE2 SFF and MT. diff --git a/site/docs/install/dell_thermal.md.description b/site/docs/install/dell_thermal.md.description index 1e76d53..80847b4 100644 --- a/site/docs/install/dell_thermal.md.description +++ b/site/docs/install/dell_thermal.md.description @@ -1 +1 @@ -Thermal protection has a few idiosyncrasies, on the various motherboards supported by Libreboot. This guide will explain what they are, and how they are handled by the LIbreboot project. +Thermal protection has a few idiosyncrasies, on the various motherboards supported by Libreboot. This guide will explain what they are. diff --git a/site/docs/install/devmem.md.description b/site/docs/install/devmem.md.description index f3f7dfe..cc57306 100644 --- a/site/docs/install/devmem.md.description +++ b/site/docs/install/devmem.md.description @@ -1 +1 @@ -Libreboot installation relies heavily on port IO and access to lower memory, which is usually restricted. This guide teaches you how to disabled such restrictions on Linux and BSD operating systems. +Libreboot installation relies heavily on port IO and access to lower memory, which is usually restricted. Learn how to enable access on Linux and BSD. diff --git a/site/docs/install/ga-g41m-es2l.md.description b/site/docs/install/ga-g41m-es2l.md.description index 7d7c2e3..54a301f 100644 --- a/site/docs/install/ga-g41m-es2l.md.description +++ b/site/docs/install/ga-g41m-es2l.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Gigabyte GA-G41M-ES2L motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Gigabyte GA-G41M-ES2L motherboard. diff --git a/site/docs/install/hp2170p.md.description b/site/docs/install/hp2170p.md.description index 339bbb4..9f4d0d2 100644 --- a/site/docs/install/hp2170p.md.description +++ b/site/docs/install/hp2170p.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2170p. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2170p. diff --git a/site/docs/install/hp2560p.md.description b/site/docs/install/hp2560p.md.description index 47782c4..2a968df 100644 --- a/site/docs/install/hp2560p.md.description +++ b/site/docs/install/hp2560p.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2560p. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2560p. diff --git a/site/docs/install/hp2570p.md.description b/site/docs/install/hp2570p.md.description index 02e5dbb..651f9a8 100644 --- a/site/docs/install/hp2570p.md.description +++ b/site/docs/install/hp2570p.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2570p. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 2570p. diff --git a/site/docs/install/hp8200sff.md.description b/site/docs/install/hp8200sff.md.description index 9d974c7..3b36651 100644 --- a/site/docs/install/hp8200sff.md.description +++ b/site/docs/install/hp8200sff.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP Elite 8200 SFF motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP Elite 8200 SFF motherboard. diff --git a/site/docs/install/hp820g2.md.description b/site/docs/install/hp820g2.md.description index a5c3998..a174b2b 100644 --- a/site/docs/install/hp820g2.md.description +++ b/site/docs/install/hp820g2.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 820 G2. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 820 G2. diff --git a/site/docs/install/hp8300usdt.md.description b/site/docs/install/hp8300usdt.md.description index af5abf2..3e84f10 100644 --- a/site/docs/install/hp8300usdt.md.description +++ b/site/docs/install/hp8300usdt.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP Elite 8300 USDT motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP Elite 8300 USDT motherboard. diff --git a/site/docs/install/hp8460p.md.description b/site/docs/install/hp8460p.md.description index 5836809..fb08fe9 100644 --- a/site/docs/install/hp8460p.md.description +++ b/site/docs/install/hp8460p.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8460p. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8460p. diff --git a/site/docs/install/hp8470p.md.description b/site/docs/install/hp8470p.md.description index 92bf0bf..617bfe9 100644 --- a/site/docs/install/hp8470p.md.description +++ b/site/docs/install/hp8470p.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8470p. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8470p. diff --git a/site/docs/install/hp8560w.md.description b/site/docs/install/hp8560w.md.description index 4a1675e..33f47d8 100644 --- a/site/docs/install/hp8560w.md.description +++ b/site/docs/install/hp8560w.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8560w. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook 8560w. diff --git a/site/docs/install/hp9470m.md.description b/site/docs/install/hp9470m.md.description index d8b7690..7815a45 100644 --- a/site/docs/install/hp9470m.md.description +++ b/site/docs/install/hp9470m.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your HP EliteBook Folio 9470m. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +HP EliteBook Folio 9470m added. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader. diff --git a/site/docs/install/ich9utils.md.description b/site/docs/install/ich9utils.md.description index b10e9e7..8d7fc3b 100644 --- a/site/docs/install/ich9utils.md.description +++ b/site/docs/install/ich9utils.md.description @@ -1 +1 @@ -Documentation pertaining to ich9utils which can generate or modify Intel Flash Descriptors, and Intel GbE NVM images. Now obsolete, this documentation provides a reference pertaining to how these utilities were developed. +Documentation pertaining to ich9utils which can generate or modify Intel Flash Descriptors, and Intel GbE NVM images. diff --git a/site/docs/install/index.md.description b/site/docs/install/index.md.description index ed97ae0..6ffec3a 100644 --- a/site/docs/install/index.md.description +++ b/site/docs/install/index.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various laptop, desktop and server motherboards, also a few games consoles. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various laptop, desktop and server motherboards. Boot payloads like GNU GRUB. diff --git a/site/docs/install/ivy_has_common.md.description b/site/docs/install/ivy_has_common.md.description index a3c4843..6bad493 100644 --- a/site/docs/install/ivy_has_common.md.description +++ b/site/docs/install/ivy_has_common.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your, while handling vendor firmware. Libreboot's strict Binary Blob Reduction Policy is observed, and referenced here. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your, with vendor code. Libreboot's strict Binary Blob Reduction Policy is observed. diff --git a/site/docs/install/ivy_internal.md.description b/site/docs/install/ivy_internal.md.description index d784506..8c24b2f 100644 --- a/site/docs/install/ivy_internal.md.description +++ b/site/docs/install/ivy_internal.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X230. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X230. diff --git a/site/docs/install/kcma-d8.md.description b/site/docs/install/kcma-d8.md.description index ff69b46..cb0fb2a 100644 --- a/site/docs/install/kcma-d8.md.description +++ b/site/docs/install/kcma-d8.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KCMA-D8 motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KCMA-D8 motherboard. diff --git a/site/docs/install/kfsn4-dre.md.description b/site/docs/install/kfsn4-dre.md.description index 5044f19..81bafe8 100644 --- a/site/docs/install/kfsn4-dre.md.description +++ b/site/docs/install/kfsn4-dre.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KFSN4-DRE motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KFSN4-DRE motherboard. diff --git a/site/docs/install/kgpe-d16.md.description b/site/docs/install/kgpe-d16.md.description index 96d55b0..fea4ece 100644 --- a/site/docs/install/kgpe-d16.md.description +++ b/site/docs/install/kgpe-d16.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KGPE-D16 motherboard. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your ASUS KGPE-D16 motherboard. diff --git a/site/docs/install/latitude.md.description b/site/docs/install/latitude.md.description index e222da4..b13ae1d 100644 --- a/site/docs/install/latitude.md.description +++ b/site/docs/install/latitude.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various Dell Latitude laptop models. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on various Dell Latitude laptop models. diff --git a/site/docs/install/macbook21.md.description b/site/docs/install/macbook21.md.description index 2a4a2aa..8464830 100644 --- a/site/docs/install/macbook21.md.description +++ b/site/docs/install/macbook21.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Apple MacBook 2,1 and 1,1 circa 2006. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Apple MacBook 2,1 and 1,1 circa 2006. diff --git a/site/docs/install/nvmutil.md.description b/site/docs/install/nvmutil.md.description index 481a21b..a344dc9 100644 --- a/site/docs/install/nvmutil.md.description +++ b/site/docs/install/nvmutil.md.description @@ -1 +1 @@ -Instructions pertaining to nvmutil, which is software that can modify the MAC address and other information inside Intel GbE NVM images, on motherboards that make use of an Intel Flash Descriptor. +Instructions pertaining to nvmutil, which is software that can modify the MAC address and other information inside Intel GbE NVM images. diff --git a/site/docs/install/playstation.md.description b/site/docs/install/playstation.md.description index e4ecb31..1f92b23 100644 --- a/site/docs/install/playstation.md.description +++ b/site/docs/install/playstation.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS boot firmware on your Sony PlayStation (PS1/PSX), optionally compiling it with GNU GCC. This makes heavy use of the PCSX-Redux Open BIOS, which can be used on PlayStation emulators and on real hardware. +Install free/opensource BIOS boot firmware on your Sony PlayStation (PS1/PSX), optionally compiling it with GNU GCC. This uses PCSX-Redux Open BIOS. diff --git a/site/docs/install/r400.md.description b/site/docs/install/r400.md.description index 62a7f89..51cc603 100644 --- a/site/docs/install/r400.md.description +++ b/site/docs/install/r400.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad R400. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +ThinkPad R400 installation. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader. diff --git a/site/docs/install/spi.md.description b/site/docs/install/spi.md.description index 902bd27..c3ad0ed 100644 --- a/site/docs/install/spi.md.description +++ b/site/docs/install/spi.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware by way of external flashing. This is done using SPI-compatible programmer devices such as Raspberry Pi Pico. Some warnings are also provided against the use of CH341a. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware by way of external flashing, using compatible 25xx NOR programmer (SPI flasher). diff --git a/site/docs/install/t1650.md.description b/site/docs/install/t1650.md.description index 51d725f..f010158 100644 --- a/site/docs/install/t1650.md.description +++ b/site/docs/install/t1650.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell Precision T1650. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Dell Precision T1650. diff --git a/site/docs/install/t400.md.description b/site/docs/install/t400.md.description index f366739..b5a4efd 100644 --- a/site/docs/install/t400.md.description +++ b/site/docs/install/t400.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo Thinkpad T400. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo Thinkpad T400. diff --git a/site/docs/install/t420_external.md.description b/site/docs/install/t420_external.md.description index 1a3a4fd..f098f4e 100644 --- a/site/docs/install/t420_external.md.description +++ b/site/docs/install/t420_external.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T420. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T420. diff --git a/site/docs/install/t440p_external.md.description b/site/docs/install/t440p_external.md.description index 4de85d5..2daa0de 100644 --- a/site/docs/install/t440p_external.md.description +++ b/site/docs/install/t440p_external.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T440p. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T440p. diff --git a/site/docs/install/t480.md.description b/site/docs/install/t480.md.description index a705fdd..7eada21 100644 --- a/site/docs/install/t480.md.description +++ b/site/docs/install/t480.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T480. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T480. diff --git a/site/docs/install/t500.md.description b/site/docs/install/t500.md.description index c70af3e..a3f1413 100644 --- a/site/docs/install/t500.md.description +++ b/site/docs/install/t500.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T500. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T500. diff --git a/site/docs/install/t60_unbrick.md.description b/site/docs/install/t60_unbrick.md.description index a60940b..7e035d9 100644 --- a/site/docs/install/t60_unbrick.md.description +++ b/site/docs/install/t60_unbrick.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T60. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad T60. diff --git a/site/docs/install/w541_external.md.description b/site/docs/install/w541_external.md.description index c17fc7a..b6406e1 100644 --- a/site/docs/install/w541_external.md.description +++ b/site/docs/install/w541_external.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad W541. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad W541. diff --git a/site/docs/install/x200.md.description b/site/docs/install/x200.md.description index 8e6f379..7df0131 100644 --- a/site/docs/install/x200.md.description +++ b/site/docs/install/x200.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X200. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X200. diff --git a/site/docs/install/x230_external.md.description b/site/docs/install/x230_external.md.description index 45cd73c..0cf267f 100644 --- a/site/docs/install/x230_external.md.description +++ b/site/docs/install/x230_external.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X230 via external flashing. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X230 via external flashing. diff --git a/site/docs/install/x60_unbrick.md.description b/site/docs/install/x60_unbrick.md.description index 63a0631..5eac014 100644 --- a/site/docs/install/x60_unbrick.md.description +++ b/site/docs/install/x60_unbrick.md.description @@ -1 +1 @@ -Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X60. Libreboot provides a plethora of coreboot payloads by default, such as the GNU boot loader named GRUB. +Learn how to install Libreboot free/opensource BIOS/UEFI boot firmware on your Lenovo ThinkPad X60. diff --git a/site/docs/linux/grub_boot_installer.md.description b/site/docs/linux/grub_boot_installer.md.description index 2543041..cfeafa6 100644 --- a/site/docs/linux/grub_boot_installer.md.description +++ b/site/docs/linux/grub_boot_installer.md.description @@ -1 +1 @@ -Learn how to boot Linux distributions from the GNU boot loader named GRUB, on your Libreboot system. Libreboot provides free/opensource BIOS/UEFI firmwware based on coreboot, which has a few quirks that must be dealt with first. +Learn how to boot Linux distro installers on your Libreboot system. diff --git a/site/docs/linux/grub_cbfs.md.description b/site/docs/linux/grub_cbfs.md.description index 77ff45e..c40fb3f 100644 --- a/site/docs/linux/grub_cbfs.md.description +++ b/site/docs/linux/grub_cbfs.md.description @@ -1 +1 @@ -The GNU boot loader named GRUB can read from coreboot's file system, and boot Linux/BSD systems from the flash. With these guides, you will know how to configure GRUB in flash for your Libreboot system. +The GNU boot loader GRUB can read from coreboot's file system, and boot Linux/BSD systems from the flash. Learn how to configure this behaviour. diff --git a/site/docs/linux/grub_hardening.md.description b/site/docs/linux/grub_hardening.md.description index 8693451..f954096 100644 --- a/site/docs/linux/grub_hardening.md.description +++ b/site/docs/linux/grub_hardening.md.description @@ -1 +1 @@ -The GNU boot loader named GRUB provides many encryption and boot protection measures, that can be used to increase the security of your Libreboot system. This rivals many competing schemes such as UEFI SecureBoot, and we call our hardened GRUB setup Secure libreBoot. +The GNU boot loader GRUB provides many encryption and boot protection schemes to increase security, rivalling schemes like UEFI SecureBoot. diff --git a/site/docs/linux/index.md.description b/site/docs/linux/index.md.description index 0bf65fc..865155d 100644 --- a/site/docs/linux/index.md.description +++ b/site/docs/linux/index.md.description @@ -1 +1 @@ -Learn how to install Linux distributions on your Libreboot system. Libreboot provides free/opensource BIOS/UEFI firmware, in many ways comparable to the vendor firmware but it does have a few idiosyncrasies that must be taken care of. +Learn how to install Linux distributions on your Libreboot system. diff --git a/site/docs/sitegen/index.md.description b/site/docs/sitegen/index.md.description index f27efde..19477cd 100644 --- a/site/docs/sitegen/index.md.description +++ b/site/docs/sitegen/index.md.description @@ -1 +1 @@ -Learn about the Libreboot Static Site Generator, which is used to convert Markdown documents into HTML. Libreboot Static Site generator, or lbssg, is what generates the Libreboot project website. +Learn about the Libreboot Static Site Generator, which is used to convert Markdown documents into HTML. This is what generates the Libreboot website. diff --git a/site/docs/uboot/index.md.description b/site/docs/uboot/index.md.description index 4e35cff..e351013 100644 --- a/site/docs/uboot/index.md.description +++ b/site/docs/uboot/index.md.description @@ -1 +1 @@ -Free/opensource UEFI payload for Libreboot, via U-Boot UEFI coreboot payload. This is provided by the Libreboot project on ARM64 platforms. This replaces Google's usual Depthcharge payload, on ARM64 chromebooks. Also available for x86. +Free/opensource UEFI payload for Libreboot, via U-Boot UEFI coreboot payload. This is provided by the Libreboot project on ARM64 and x86 platforms. diff --git a/site/docs/uboot/uboot-debian-bookworm.md.description b/site/docs/uboot/uboot-debian-bookworm.md.description deleted file mode 100644 index e69de29..0000000 diff --git a/site/docs/uboot/uboot-x86.md.description b/site/docs/uboot/uboot-x86.md.description index 033031c..2bdf149 100644 --- a/site/docs/uboot/uboot-x86.md.description +++ b/site/docs/uboot/uboot-x86.md.description @@ -1 +1 @@ -Free/opensource UEFI payload for Libreboot, via U-Boot UEFI coreboot payload. This is provided by the Libreboot project on x86 and amd64 platforms. You can use this even on motherboards that never had UEFI to begin with. +Free/opensource UEFI payload for Libreboot, via U-Boot UEFI coreboot payload. This is provided by the Libreboot project on x86 and amd64 platforms. diff --git a/site/download.md.description b/site/download.md.description index 6a39c06..73dc96d 100644 --- a/site/download.md.description +++ b/site/download.md.description @@ -1 +1 @@ -Download Libreboot free/opensource BIOS/UEFI firmware. Libreboot is a coreboot distro, and provides several payloads such as the GNU boot loader named GRUB, the SeaBIOS payload and the U-Boot payload (for x86 and ARM). +Download Libreboot free/opensource BIOS/UEFI firmware. Libreboot is a coreboot distro, and provides several payloads such as the GNU boot loader named GRUB. diff --git a/site/freedom-status.md.description b/site/freedom-status.md.description index 6633be5..9e14082 100644 --- a/site/freedom-status.md.description +++ b/site/freedom-status.md.description @@ -1,4 +1,2 @@ -Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot -for booting Linux/BSD on supported x86/ARM motherboards. It comes with GNU boot -loader GRUB, SeaBIOS and U-Boot. This page describes how Libreboot handles vendor -code on each supported motherboard. +Libreboot handles certain vendor code on specific motherboards. +Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot. diff --git a/site/freedom-status.uk.md.description b/site/freedom-status.uk.md.description index 6633be5..9e14082 100644 --- a/site/freedom-status.uk.md.description +++ b/site/freedom-status.uk.md.description @@ -1,4 +1,2 @@ -Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot -for booting Linux/BSD on supported x86/ARM motherboards. It comes with GNU boot -loader GRUB, SeaBIOS and U-Boot. This page describes how Libreboot handles vendor -code on each supported motherboard. +Libreboot handles certain vendor code on specific motherboards. +Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot. diff --git a/site/git.de.md.description b/site/git.de.md.description index 3f5f10a..f68f31e 100644 --- a/site/git.de.md.description +++ b/site/git.de.md.description @@ -1 +1 @@ -Send patches to the Libreboot project via Git. Libreboot is a community-led free/opensource BIOS/UEFI firmware project, based on coreboot and provides a variety of coreboot payloads, such as the GNU boot loader named GRUB. +Send patches to the Libreboot project via Git. Libreboot is a community-led free/opensource BIOS/UEFI boot firmware project, with payloads like GNU GRUB. diff --git a/site/git.md.description b/site/git.md.description index 3f5f10a..f68f31e 100644 --- a/site/git.md.description +++ b/site/git.md.description @@ -1 +1 @@ -Send patches to the Libreboot project via Git. Libreboot is a community-led free/opensource BIOS/UEFI firmware project, based on coreboot and provides a variety of coreboot payloads, such as the GNU boot loader named GRUB. +Send patches to the Libreboot project via Git. Libreboot is a community-led free/opensource BIOS/UEFI boot firmware project, with payloads like GNU GRUB. diff --git a/site/git.uk.md.description b/site/git.uk.md.description index 3f5f10a..f68f31e 100644 --- a/site/git.uk.md.description +++ b/site/git.uk.md.description @@ -1 +1 @@ -Send patches to the Libreboot project via Git. Libreboot is a community-led free/opensource BIOS/UEFI firmware project, based on coreboot and provides a variety of coreboot payloads, such as the GNU boot loader named GRUB. +Send patches to the Libreboot project via Git. Libreboot is a community-led free/opensource BIOS/UEFI boot firmware project, with payloads like GNU GRUB. diff --git a/site/index.it.md.description b/site/index.it.md.description index de81a88..185b450 100644 --- a/site/index.it.md.description +++ b/site/index.it.md.description @@ -1 +1 @@ -Il progetto Libreboot fornisce avvio libero e open source grazie al firmware basato su coreboot. Il progetto Libreboot fornisce avvio GNU boot loader GRUB, SeaBIOS e U-Boot. +Il progetto Libreboot fornisce avvio libero e open source grazie al firmware basato su coreboot. Il progetto Libreboot fornisce avvio GNU boot loader GRUB. diff --git a/site/index.md.description b/site/index.md.description index bb8da0e..d6be7fe 100644 --- a/site/index.md.description +++ b/site/index.md.description @@ -1 +1 @@ -Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD. diff --git a/site/index.ru.md.description b/site/index.ru.md.description index 30fc86e..429c622 100644 --- a/site/index.ru.md.description +++ b/site/index.ru.md.description @@ -1 +1 @@ -Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot. diff --git a/site/news/10.md.description b/site/news/10.md.description index db74f87..8e81f36 100644 --- a/site/news/10.md.description +++ b/site/news/10.md.description @@ -1 +1 @@ -Tenth year anniversary and history of the Libreboot project, as of December 2023. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Tenth year anniversary and history of the Libreboot project, as of December 2023. Libreboot development has often been turbulent, and full of twists. diff --git a/site/news/argon2.md.description b/site/news/argon2.md.description index 64f747f..a980685 100644 --- a/site/news/argon2.md.description +++ b/site/news/argon2.md.description @@ -1 +1 @@ -Argon2 KDF allows greater memory hardness, which means that it is much less vulnerable to bruteforce attacks. This encryption scheme was added to the GNU boot loader named GRUB, in Libreboot's version, thereby allowing full LUKS2 support in Libreboot's GRUB payload. +Argon2 KDF allows greater memory hardness, thus reducing vulnerability to bruteforce attacks. Argon2 KDF added to the GNU boot loader named GRUB. diff --git a/site/news/codeberg.md.description b/site/news/codeberg.md.description index b317bdc..0f6eb1b 100644 --- a/site/news/codeberg.md.description +++ b/site/news/codeberg.md.description @@ -1,3 +1,2 @@ Libreboot's main Git repositories were moved to Codeberg, whereas -they were previously hosted on Notabug. Notabug is still used as a -backup Git repository mirror for the Libreboot project. +they were previously hosted on Notabug. diff --git a/site/news/e6400.md.description b/site/news/e6400.md.description index 6f7b5f4..db7367d 100644 --- a/site/news/e6400.md.description +++ b/site/news/e6400.md.description @@ -1 +1 @@ -Dell Latitude E6400 added to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Dell Latitude E6400 added. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader. diff --git a/site/news/freedom.md.description b/site/news/freedom.md.description index 06d0652..3c7dae6 100644 --- a/site/news/freedom.md.description +++ b/site/news/freedom.md.description @@ -1 +1,2 @@ -People ask about other firmware besides Libreboot all the time, such as Embedded Controller firmware. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot. +How does Libreboot handle vendor firmware, on boards that otherwise require it? +Libreboot's strict Binary Blob Reduction Policy is observed at all times. diff --git a/site/news/hp2170p.md.description b/site/news/hp2170p.md.description index 3d23a5e..76f64b4 100644 --- a/site/news/hp2170p.md.description +++ b/site/news/hp2170p.md.description @@ -1 +1 @@ -HP EliteBook 2170p addod to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +HP EliteBook 2170p added. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader. diff --git a/site/news/hp8200sff.md.description b/site/news/hp8200sff.md.description index dca0458..97292b9 100644 --- a/site/news/hp8200sff.md.description +++ b/site/news/hp8200sff.md.description @@ -1 +1 @@ -HP Elite 8200 SFF added to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +HP Elite 8200 SFF added. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader. diff --git a/site/news/hp8200sff.uk.md.description b/site/news/hp8200sff.uk.md.description index dca0458..97292b9 100644 --- a/site/news/hp8200sff.uk.md.description +++ b/site/news/hp8200sff.uk.md.description @@ -1 +1 @@ -HP Elite 8200 SFF added to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +HP Elite 8200 SFF added. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader. diff --git a/site/news/hp820g2.md.description b/site/news/hp820g2.md.description index 2871ad4..bbffe53 100644 --- a/site/news/hp820g2.md.description +++ b/site/news/hp820g2.md.description @@ -1 +1 @@ -HP EliteBook 820 G2 addod to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +HP EliteBook 820 G2 added. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader. diff --git a/site/news/hp8470p_and_dell_t1650.md.description b/site/news/hp8470p_and_dell_t1650.md.description index 696fea9..df4e11b 100644 --- a/site/news/hp8470p_and_dell_t1650.md.description +++ b/site/news/hp8470p_and_dell_t1650.md.description @@ -1 +1 @@ -HP Elite 8470p and Dell Precision T1650 added to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with payloads like the GNU boot loader GRUB, SeaBIOS and U-Boot. +HP Elite 8470p and Dell Precision T1650 added. Libreboot is a free/opensource BIOS/UEFI firmware distro based on coreboot with payloads like GNU GRUB boot loader. diff --git a/site/news/hp_elitebooks.md.description b/site/news/hp_elitebooks.md.description index b642099..937ac26 100644 --- a/site/news/hp_elitebooks.md.description +++ b/site/news/hp_elitebooks.md.description @@ -1 +1 @@ -More HP EliteBooks added to Libreboot. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +More HP EliteBooks added. Libreboot is a free/opensource BIOS/UEFI boot firmware distribution based on coreboot with payloads like GNU GRUB boot loader. diff --git a/site/news/libreboot20131212.md.description b/site/news/libreboot20131212.md.description index 5aa673d..6410e91 100644 --- a/site/news/libreboot20131212.md.description +++ b/site/news/libreboot20131212.md.description @@ -1 +1 @@ -Libreboot 20131212 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20131212 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20131213.md.description b/site/news/libreboot20131213.md.description index 69e372a..fa45d9c 100644 --- a/site/news/libreboot20131213.md.description +++ b/site/news/libreboot20131213.md.description @@ -1 +1 @@ -Libreboot 20131213 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20131213 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20131214.md.description b/site/news/libreboot20131214.md.description index 68fc0a2..08e7ece 100644 --- a/site/news/libreboot20131214.md.description +++ b/site/news/libreboot20131214.md.description @@ -1 +1 @@ -Libreboot 20131214 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20131214 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20140221.md.description b/site/news/libreboot20140221.md.description index 64e2ac3..21b7c35 100644 --- a/site/news/libreboot20140221.md.description +++ b/site/news/libreboot20140221.md.description @@ -1 +1 @@ -Libreboot 20140221 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20140221 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20140309.md.description b/site/news/libreboot20140309.md.description index b26af46..fa836b9 100644 --- a/site/news/libreboot20140309.md.description +++ b/site/news/libreboot20140309.md.description @@ -1 +1 @@ -Libreboot 20140309 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20140309 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20140605.md.description b/site/news/libreboot20140605.md.description index 1586237..ae18e6c 100644 --- a/site/news/libreboot20140605.md.description +++ b/site/news/libreboot20140605.md.description @@ -1 +1 @@ -Libreboot 20140605 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20140605 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20140611.md.description b/site/news/libreboot20140611.md.description index 59a14f9..3933d7d 100644 --- a/site/news/libreboot20140611.md.description +++ b/site/news/libreboot20140611.md.description @@ -1 +1 @@ -Libreboot 20140611 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20140611 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20140622.md.description b/site/news/libreboot20140622.md.description index 694ff34..88fb3ed 100644 --- a/site/news/libreboot20140622.md.description +++ b/site/news/libreboot20140622.md.description @@ -1 +1 @@ -Libreboot 20140622 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20140622 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20140711.md.description b/site/news/libreboot20140711.md.description index 466815c..ad0873f 100644 --- a/site/news/libreboot20140711.md.description +++ b/site/news/libreboot20140711.md.description @@ -1 +1 @@ -Libreboot 20140711 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20140711 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20140716.md.description b/site/news/libreboot20140716.md.description index d2382fb..bd9c869 100644 --- a/site/news/libreboot20140716.md.description +++ b/site/news/libreboot20140716.md.description @@ -1 +1 @@ -Libreboot 20240225 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20140716 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20140720.md.description b/site/news/libreboot20140720.md.description index 1898e11..472bbb4 100644 --- a/site/news/libreboot20140720.md.description +++ b/site/news/libreboot20140720.md.description @@ -1 +1 @@ -Libreboot 20140720 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20140720 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20140729.md.description b/site/news/libreboot20140729.md.description index 2884647..d21f5f3 100644 --- a/site/news/libreboot20140729.md.description +++ b/site/news/libreboot20140729.md.description @@ -1 +1 @@ -Libreboot 20140729 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20140729 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20140811.md.description b/site/news/libreboot20140811.md.description index a182a2c..de35822 100644 --- a/site/news/libreboot20140811.md.description +++ b/site/news/libreboot20140811.md.description @@ -1 +1 @@ -Libreboot 20140811 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20140811 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20140903.md.description b/site/news/libreboot20140903.md.description index 138c674..429a583 100644 --- a/site/news/libreboot20140903.md.description +++ b/site/news/libreboot20140903.md.description @@ -1 +1 @@ -Libreboot 20140903 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20140903 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20140911.md.description b/site/news/libreboot20140911.md.description index 4a8ae1b..51a5cde 100644 --- a/site/news/libreboot20140911.md.description +++ b/site/news/libreboot20140911.md.description @@ -1 +1 @@ -Libreboot 20140911 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20140911 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20150124.md.description b/site/news/libreboot20150124.md.description index df51456..a0a53a2 100644 --- a/site/news/libreboot20150124.md.description +++ b/site/news/libreboot20150124.md.description @@ -1 +1 @@ -Libreboot 20150124 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20150124 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20150126.md.description b/site/news/libreboot20150126.md.description index 684f909..6c1a180 100644 --- a/site/news/libreboot20150126.md.description +++ b/site/news/libreboot20150126.md.description @@ -1 +1 @@ -Libreboot 20150126 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20150126 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20150208.md.description b/site/news/libreboot20150208.md.description index 4895e71..135102b 100644 --- a/site/news/libreboot20150208.md.description +++ b/site/news/libreboot20150208.md.description @@ -1 +1 @@ -Libreboot 20150208 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20150208 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20150518.md.description b/site/news/libreboot20150518.md.description index c707ddf..5b0d818 100644 --- a/site/news/libreboot20150518.md.description +++ b/site/news/libreboot20150518.md.description @@ -1 +1 @@ -Libreboot 20150518 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20150518 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20160818.md.description b/site/news/libreboot20160818.md.description index f544036..90c5776 100644 --- a/site/news/libreboot20160818.md.description +++ b/site/news/libreboot20160818.md.description @@ -1 +1 @@ -Libreboot 20160818 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20160818 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20160902.md.description b/site/news/libreboot20160902.md.description index 8e2d66e..739ed7f 100644 --- a/site/news/libreboot20160902.md.description +++ b/site/news/libreboot20160902.md.description @@ -1 +1 @@ -Libreboot 20160902 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20160902 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20160907.md.description b/site/news/libreboot20160907.md.description index 21d8b84..32b05cc 100644 --- a/site/news/libreboot20160907.md.description +++ b/site/news/libreboot20160907.md.description @@ -1 +1 @@ -Libreboot 20160907 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20160907 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20210522.md.description b/site/news/libreboot20210522.md.description index f81590b..a583f37 100644 --- a/site/news/libreboot20210522.md.description +++ b/site/news/libreboot20210522.md.description @@ -1 +1 @@ -Libreboot 20210522 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20210522 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20211122.md.description b/site/news/libreboot20211122.md.description index f664f51..ed76f87 100644 --- a/site/news/libreboot20211122.md.description +++ b/site/news/libreboot20211122.md.description @@ -1 +1 @@ -Libreboot 20211122 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20211122 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20220710.md.description b/site/news/libreboot20220710.md.description index eab62c1..03268ca 100644 --- a/site/news/libreboot20220710.md.description +++ b/site/news/libreboot20220710.md.description @@ -1 +1 @@ -Libreboot 20220710 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20220710 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20221214.md.description b/site/news/libreboot20221214.md.description index c49dfbb..996e778 100644 --- a/site/news/libreboot20221214.md.description +++ b/site/news/libreboot20221214.md.description @@ -1 +1 @@ -Libreboot 20221214 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20221214 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20230319.md.description b/site/news/libreboot20230319.md.description index 8e034cc..39e9e38 100644 --- a/site/news/libreboot20230319.md.description +++ b/site/news/libreboot20230319.md.description @@ -1 +1 @@ -Libreboot 20230319 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20230319 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20230413.md.description b/site/news/libreboot20230413.md.description index 4fbe6e2..740e099 100644 --- a/site/news/libreboot20230413.md.description +++ b/site/news/libreboot20230413.md.description @@ -1 +1 @@ -Libreboot 20230413 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20230413 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20230423.md.description b/site/news/libreboot20230423.md.description index 5a052d7..9176828 100644 --- a/site/news/libreboot20230423.md.description +++ b/site/news/libreboot20230423.md.description @@ -1 +1 @@ -Libreboot 20230423 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20230423 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20230625.md.description b/site/news/libreboot20230625.md.description index 244f626..f91d0a8 100644 --- a/site/news/libreboot20230625.md.description +++ b/site/news/libreboot20230625.md.description @@ -1 +1 @@ -Libreboot 20230625 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20230625 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20231021.md.description b/site/news/libreboot20231021.md.description index ccfd4a0..b6d8dbb 100644 --- a/site/news/libreboot20231021.md.description +++ b/site/news/libreboot20231021.md.description @@ -1 +1 @@ -Libreboot 20231021 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20231021 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20231101.md.description b/site/news/libreboot20231101.md.description index b9df681..a2c1d88 100644 --- a/site/news/libreboot20231101.md.description +++ b/site/news/libreboot20231101.md.description @@ -1 +1 @@ -Libreboot 20231101 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20231101 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20231106.md.description b/site/news/libreboot20231106.md.description index 6506ac1..47fc9a8 100644 --- a/site/news/libreboot20231106.md.description +++ b/site/news/libreboot20231106.md.description @@ -1 +1 @@ -Libreboot 20231106 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20231106 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20240126.md.description b/site/news/libreboot20240126.md.description index 6a4219b..5900979 100644 --- a/site/news/libreboot20240126.md.description +++ b/site/news/libreboot20240126.md.description @@ -1 +1 @@ -Libreboot 20240106 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20240126 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20240225.md.description b/site/news/libreboot20240225.md.description index 820c455..0a22fa0 100644 --- a/site/news/libreboot20240225.md.description +++ b/site/news/libreboot20240225.md.description @@ -1 +1 @@ -Libreboot 20230225 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20240225 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20240504.md.description b/site/news/libreboot20240504.md.description index ef37127..2adc0a3 100644 --- a/site/news/libreboot20240504.md.description +++ b/site/news/libreboot20240504.md.description @@ -1 +1 @@ -Libreboot 20240504 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20240504 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20240612.md.description b/site/news/libreboot20240612.md.description index 6b528b7..a776bae 100644 --- a/site/news/libreboot20240612.md.description +++ b/site/news/libreboot20240612.md.description @@ -1 +1 @@ -Libreboot 20240612 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20240612 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20241008.md.description b/site/news/libreboot20241008.md.description index b3b4cc8..0bfc05a 100644 --- a/site/news/libreboot20241008.md.description +++ b/site/news/libreboot20241008.md.description @@ -1 +1 @@ -Libreboot 20241008 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20241008 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20241206.Revisions.md.description b/site/news/libreboot20241206.Revisions.md.description index 63d71e0..7d2350f 100644 --- a/site/news/libreboot20241206.Revisions.md.description +++ b/site/news/libreboot20241206.Revisions.md.description @@ -1 +1 @@ -Libreboot 20241206 release revisions. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20241206 release revisions. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20241206.md.description b/site/news/libreboot20241206.md.description index 33fff7d..3e38cd1 100644 --- a/site/news/libreboot20241206.md.description +++ b/site/news/libreboot20241206.md.description @@ -1 +1 @@ -Libreboot 20241206 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20241206 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/libreboot20241206rev8.md.description b/site/news/libreboot20241206rev8.md.description index b9f603a..378cf72 100644 --- a/site/news/libreboot20241206rev8.md.description +++ b/site/news/libreboot20241206rev8.md.description @@ -1 +1 @@ -Libreboot 20241206, 8th revision. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot, for booting Linux/BSD on x86/x86_64 and ARM64 motherboards. +Libreboot 20241206rev8 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. diff --git a/site/news/policy.md.description b/site/news/policy.md.description index 38ca802..f0d0ebf 100644 --- a/site/news/policy.md.description +++ b/site/news/policy.md.description @@ -1 +1 @@ -Libreboot project Binary Blob Reduction Policy, which pertains to the handling of vendor code. Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot. +Libreboot project Binary Blob Reduction Policy, which pertains to the handling of vendor code. Libreboot provides exclusively free software, when possible. diff --git a/site/news/ports202402.md.description b/site/news/ports202402.md.description index 1080dcc..44c2d44 100644 --- a/site/news/ports202402.md.description +++ b/site/news/ports202402.md.description @@ -1 +1 @@ -A number of new motherboards were added to Libreboot, thereby providing them with free/opensource BIOS/UEFI firmware based on coreboot. Libreboot is a coreboot distro, providing payloads such as the GNU boot loader named GRUB, by default. +A number of new motherboards were added to Libreboot. Libreboot is a coreboot distro, providing payloads such as the GNU boot loader named GRUB, by default. diff --git a/site/news/schedule.md.description b/site/news/schedule.md.description index d7996c5..7d6a057 100644 --- a/site/news/schedule.md.description +++ b/site/news/schedule.md.description @@ -1 +1 @@ -Libreboot will adopt a new release schedule from 2025 onward, with more consistent version numbering and release codenames. Libreboot will do testing releases in April and October, and stable releases in June and December, each year. +Libreboot adopted a new release schedule in 2025, with more consistent version numbering and release codenames. Two stable and two testing releases annually. diff --git a/site/other.md.description b/site/other.md.description index 0dd0baf..c402f9d 100644 --- a/site/other.md.description +++ b/site/other.md.description @@ -1 +1 @@ -Libreboot is a free/opensource BIOS/UEFI firmware distribution based on coreboot with GNU boot loader GRUB, SeaBIOS and U-Boot. Several other projects exist that are very different to Libreboot, but also based on coreboot. +Libreboot is a free/opensource BIOS/UEFI boot firmware distribution. Several other projects exist that are very different to Libreboot, also based on coreboot. diff --git a/site/template.de.include b/site/template.de.include index 9c8bd55..4dbbddb 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -2,7 +2,7 @@ - + diff --git a/site/template.include b/site/template.include index 6985d07..a875399 100644 --- a/site/template.include +++ b/site/template.include @@ -2,7 +2,7 @@ - + diff --git a/site/template.it.include b/site/template.it.include index 807bfef..189acd7 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -2,7 +2,7 @@ - + diff --git a/site/template.uk.include b/site/template.uk.include index 86fbb82..8529add 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -2,7 +2,7 @@ - + diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index d1cf266..c155a2c 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -2,7 +2,7 @@ - + From 5cf2ddde7395a9f98ba4cebc6f493b00fb58af7f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 25 Jan 2025 18:31:03 +0000 Subject: [PATCH 333/399] expand other.md Signed-off-by: Leah Rowe --- site/other.md | 136 +++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 135 insertions(+), 1 deletion(-) diff --git a/site/other.md b/site/other.md index 22e0b8b..4ff262d 100644 --- a/site/other.md +++ b/site/other.md @@ -208,7 +208,72 @@ website. We in the Libreboot project wish to see everyone using free boot firmware, which was the primary motivation behind this page, in promoting the various projects. -Non-coreboot free firmware +Organisations +------------- + +This list will be populated over time. Several organisations exist out there +that pertain to *Free and Open Source firmware* development, supporting its +existence in general. Here are just a few of them: + +### Open Source Firmware Foundation (OSFF) + +Website: + +The OSFF is a non-profit organisation of Oregon, USA, whose mission it is to +coordinate communication between the various free boot projects (projects like +coreboot). Several coreboot developers are a part of +its [governance](https://opensourcefirmware.foundation/team/). + +The OSFF also hosts an annual [Open Source Firmware +Conference](https://www.osfc.io/), where various projects, companies and +peoples can talk about their work in this field. + +The OSFF exists precisely because nothing like it has existed before; the +world of boot firmware is largely dominated by proprietary IBVs (independent +BIOS vendors), the likes of e.g. AMI, Phoenix. + +Organisations like OSFF are critical, if we ever wish to see *libre* boot +firmware become the default firmware, on computers that normal people actually +purchase. All the separate projects out there do great work, but it is critical +that we have a central *sorting ground*, a *point of contact* if you will, +to represent us, and the OSFF's mission is to be exactly that. + +OSFF also has their own list of projects, similar to the list on *this* page +that you are reading now. See: + + + +Libreboot is currently not affiliated with the OSFF in any official capacity, +but it has our *full* support, and we will do what we can to help it, when we +can. + +### Software Freedom Conservancy (SFC) + +Although not strictly related to free/opensource firmware, the coreboot project +is an SFC member, which you can see here: + + + +The SFC is a non-profit organisation of New York, USA, dedicated to the +cause of [software freedom](https://writefreesoftware.org/learn), with a view +towards Copyleft advocacy, especially [copyleft +compliance enforcement](https://sfconservancy.org/copyleft-compliance/). + +SFC provides services to *member projects*, such as coreboot, which you +can read about here: + +* +* + +Services such as donations infrastructure, legal services (including things +like copyright assignements and enforcement), advice/assistance about project +governance, help with fundraising and outreach, etc. + +Although Libreboot is not affiliated with SFC in any official capacity, it is +otherwise an excellent organisation, it is listed here in honour of the +excellent work it does, including its support of the coreboot project. + +Non-coreboot firmware projects -------------------------- Several other projects besides coreboot provide free hardware initialisation, @@ -216,5 +281,74 @@ such as [U-Boot](https://www.u-boot.org/) (as own firmware, distinct from U-Boot as a coreboot payload), [Trusted Firmware](https://www.trustedfirmware.org/) and so on. +Here are a few such projects: + +### fwupd + +fwupd is essentially a centralised repository of firmware images, that +can be used to provide updates for your mainboard. Although not officially +supported nor endorsed by the Libreboot project, many Linux distros make +use of this to provide UEFI firmware updates for example. + +Libreboot doesn't use this, due to the many idiosyncrasies of Libreboot on +various motherboards; however, we may use it in a limited capacity, in the +future. + +### LinuxBoot + +Website: + +LinuxBoot can be provided as a UEFI DXE, or as a U-Boot SPL, coreboot payload +or Slim Bootloader Stage 1B, to provide a Linux kernel at boot time, which +kexecs into another Linux kernel. + +The benefit of using *Linux* to *boot Linux* is that then the bootloader part +of your firmware doesn't need to rewrite every driver, because Linux already +provides excellent drivers, and it also affords you many advanced +configuration possibility such as hardened encryption setups with things +like Measured Boot, and it could also be used to boot over a network. + +### OpenBMC + +Website: + +Linux distro for management controllers (BMCs) used on servers, +rack switches and RAID appliances. This provides a remote management +feature, most useful (for example) on colocated server hosting. + +### Oreboot + +Website: + +Oreboot is a special fork of coreboot, re-written in the Rust programming +language, focusing specifically on the *LinuxBoot* payload configuration. + +### Trusted Firmware + +Website: + +Trusted Firmware provides boot firmware for ARMv8-A, ARMv9-A +and ARMv8-M. Specifically tailored for use on embedded systems, and parts of +it are also used by the coreboot project on some boards. + +### U-Boot + +Website: + +U-Boot runs on a large number of embedded systems, with support for a variety +of architectures such as ARM, x86, RISC-V and others. U-Boot provides its own +small kernel and operating system, with drivers and applications designed to +boot your operating system using various methods. It has an advanced *shell*, +with excellent networking and file system support - most notably, we use it +in Libreboot as a UEFI payload for *coreboot*, but U-Boot can also provide its +own boot initialisation independently of coreboot. + +One of the nice features of U-Boot is its *licensing* (GPLv2 for the most part) +and similar coding style to Linux; the licensing and technical design means +that it's much easier to port existing Linux drivers, when something needs to +be done in the U-boot project. + +----------------------------------------- + We would like to list various distros of these too. If you know of a cool project, please get in touch with the Libreboot project! From 987afae58a40ebebb9bca57a81e92f98bdfdd3f3 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 25 Jan 2025 18:37:44 +0000 Subject: [PATCH 334/399] mention fossy Signed-off-by: Leah Rowe --- site/other.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/site/other.md b/site/other.md index 4ff262d..e20eca1 100644 --- a/site/other.md +++ b/site/other.md @@ -269,6 +269,11 @@ Services such as donations infrastructure, legal services (including things like copyright assignements and enforcement), advice/assistance about project governance, help with fundraising and outreach, etc. +SFC also hosts an annual conference, called *FOSSY*, which projects, companies +and peoples can go to to promote their work on free/opensource projects. See: + + + Although Libreboot is not affiliated with SFC in any official capacity, it is otherwise an excellent organisation, it is listed here in honour of the excellent work it does, including its support of the coreboot project. From f628901f61918fea7fd95dd9f65d859ff7881f72 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 26 Jan 2025 11:58:47 +0000 Subject: [PATCH 335/399] add spi to other.md Signed-off-by: Leah Rowe --- site/other.md | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/site/other.md b/site/other.md index e20eca1..fbd7c28 100644 --- a/site/other.md +++ b/site/other.md @@ -278,6 +278,43 @@ Although Libreboot is not affiliated with SFC in any official capacity, it is otherwise an excellent organisation, it is listed here in honour of the excellent work it does, including its support of the coreboot project. +### Software in the Public Interest (SPI) + +Website: + +The SPI is a non-profit organisation of New York, USA, dedicated to the +cause of [software freedom](https://writefreesoftware.org/learn). It provides +fiscal sponsorship and promotion of numerous Free and Open Source projects, +which you can read about here: + + + +It provides services to member projects such as donations infrastructure, +legal services, advice/assistance and oversight of project governance and +general help with fundraising. + +SFC most notably provides services to Debian, which is a member: + + + +Although SPI does not currently (at this time) sponsor any coreboot or +firmware-related projects, several of the projects that it *does* support +are critical for Libreboot development. For example, it also supports the +Arch Linux project: + + + +Libreboot development, especially build testing, happens largely on computers +running Debian Linux and Arch Linux, because these cover a large number of +users; we also test many other distros such as Fedora or Ubuntu. + +Organisations like SPI (and indeed SFC, OSFF) are critical to the general +health of the Free Software movement. Without them, we would not be able to +as effectively coordinate projects, especially in terms of funding. + +Libreboot is not currently affiliated with the SPI in any official capacity, +but they have our respect and they are listed here. + Non-coreboot firmware projects -------------------------- From cf64fdd4090d049c05855df68479c89b04106c10 Mon Sep 17 00:00:00 2001 From: Steffen Pankratz Date: Mon, 27 Jan 2025 16:06:09 +0100 Subject: [PATCH 336/399] Misc typo fixes. Signed-off-by: Steffen Pankratz --- site/docs/install/dell3050.md | 2 +- site/docs/install/dell_thermal.md | 2 +- site/docs/install/t500.md | 4 ++-- site/docs/install/w541_external.md | 6 +++--- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/site/docs/install/dell3050.md b/site/docs/install/dell3050.md index 03c0a74..0e7de68 100644 --- a/site/docs/install/dell3050.md +++ b/site/docs/install/dell3050.md @@ -173,7 +173,7 @@ Observe the following photo of the flash (SOIC-8): Dell OptiPlex 3050 Micro flash IC -You can otherwise flash internally, including from factory firmware(if the +You can otherwise flash internally, including from factory firmware (if the service jumper is set). Errata diff --git a/site/docs/install/dell_thermal.md b/site/docs/install/dell_thermal.md index a28552d..5e87935 100644 --- a/site/docs/install/dell_thermal.md +++ b/site/docs/install/dell_thermal.md @@ -17,7 +17,7 @@ Basically, what you need to do is: laptop came with, if you bought it on ebay for example). Arctic MX-6 is good. * Check that the fan works reliably -Also: the `intel_pstate` driver can be used to artifically cap CPU speed. See: +Also: the `intel_pstate` driver can be used to artificially cap CPU speed. See: diff --git a/site/docs/install/t500.md b/site/docs/install/t500.md index c1a035c..b9a35d6 100644 --- a/site/docs/install/t500.md +++ b/site/docs/install/t500.md @@ -23,7 +23,7 @@ x-toc-enable: true | **Architecture** | x86_64 | | **EC** | Proprietary | | **Original boot firmware** | LenovoBIOS | -| **Intel ME/AMD PSP** | Present. Can be completly disabled. | +| **Intel ME/AMD PSP** | Present. Can be completely disabled. | | **Flash chip** | SOIC-8/SOIC-16/WSON-8 4MiB/8MiB (Upgradable to 16MiB) | ``` @@ -107,7 +107,7 @@ NOTE: this can only be done when you are using Lenovo BIOS. How to update the EC firmware while running libreboot is unknown. libreboot only replaces the BIOS firmware, not EC. -Updated EC firmware has several advantages e.g. bettery battery +Updated EC firmware has several advantages e.g. better battery handling. The T500 is almost identical to the X200, code-wise. See diff --git a/site/docs/install/w541_external.md b/site/docs/install/w541_external.md index c0fea61..b5f02dd 100644 --- a/site/docs/install/w541_external.md +++ b/site/docs/install/w541_external.md @@ -61,7 +61,7 @@ external flashing. dd if=libreboot.rom of=top.rom bs=1M skip=8 dd if=libreboot.rom of=bottom.rom bs=1M count=8 -Flash the top chip with top.rom, and tho bottom chip with bottom.rom. +Flash the top chip with top.rom, and the bottom chip with bottom.rom. Don't worry about knowing which chip is which on a standard setup; flashprog will let you know if the image size is incorrect for the chip you're flashing. @@ -95,7 +95,7 @@ on pin 8 of the chip that you're flashing. Ideally you should pull the other chip select high via 47ohm resistor, which should be enough to prevent damage in the case of accidentally shorting the wrong pin. -Doing this means that you *disable* the chip fou're not flashing. It's very +Doing this means that you *disable* the chip you're not flashing. It's very important that you ensure only the one you want to flash is active, when using an external flasher. @@ -111,7 +111,7 @@ thinkpad\_acpi issues {#thinkpad-acpi} --------------------------------------- It has been reported by a user that `thinkpad_acpi` does not load correctly on -the T440p. Since the W541/W540/T540p are also haswell machines, you may be +the T440p. Since the W541/W540/T540p are also Haswell machines, you may be affected by this issue. If you encounter this, check [this page](../../faq.md#thinkpad-acpi) From 363fdf2d5e019e6c93b2715e71825916049184a1 Mon Sep 17 00:00:00 2001 From: arielenter Date: Tue, 4 Feb 2025 16:50:26 +0000 Subject: [PATCH 337/399] Some clarification and improvements MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 1.- Clarify that the special fork by google of flashrom is not required if you are internally flashing within ChromeOS. 2.- Add instructions to set a password in order to be able to use “sudo”. 3.- Show location of the write protection screw in Kevin boards. --- site/docs/install/chromebooks.md | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/site/docs/install/chromebooks.md b/site/docs/install/chromebooks.md index 715c177..523b1bc 100644 --- a/site/docs/install/chromebooks.md +++ b/site/docs/install/chromebooks.md @@ -31,7 +31,10 @@ these Chromebook devices. See: -You must then compile this from source, and run it. +This document assumes you’ll be using ChromeOS to do the internal flashing. +ChromeOS already comes with this special fork of flashrom pre-installed. But if +you are using another OS or an external flasher, you will need to compile and +use the aforementioned flashrom fork. Enable ChromeOS "Developer Mode" -------------------------------- @@ -48,6 +51,26 @@ screen. Waiting for 30 seconds or pressing `Ctrl + D` on this screen will proceed to boot into ChromeOS, which then erases all data on the device and reboots again into a clean ChromeOS installation. +Before following steps to configure your device as new in the first screen, you +should be able to see a “Enable debugging features” link that you should click +on. A confirmation dialog displays. Click Proceed. The system reboots, use +`Ctrl + D` again and displays a dialog with password prompts. Set the new root +password. Click Enable. The screen displays messages indicating success or +failure. Click OK. You'll see the first screen again. Follow the remaining +prompts to configure your Chrome device. + +Once you are finished configuring your device, you’ll be giving the option to +sign in; here you may use the guest account option in the bottom if you like. + +Now in the desktop we’ll set a password to use “sudo”: Use +`Ctrl+Alt+Forward Arrow` (the one two key to the right of esc key, representing +F2) to open a “Developer console” (similar to opening a tty) where the first +line ends with “localhost login”. Enter root and the password you just set for +it. Then you must run `chromeos-setdevpassword` and set another password, which +is the one that is actually used when running “sudo”. Now use +`Ctrl+Alt+Backward Arrow` (the key next to the right of esc, representing F1) +to get back to the desktop. + With Developer Mode enabled, you can launch a terminal emulator inside ChromeOS by pressing the `Ctrl + Alt + T` key combination. Run `shell` inside the resulting `crosh` prompt to actually get to a `bash` session @@ -119,6 +142,12 @@ that asserts the WP pin on the flash chip. The screw can be identified by the fact that it bridges electrical contacts, but finding and removing it might require you to disassemble most of the board. +In my case as an example, my kevin board had the protection screw +[here](https://av.libreboot.org/board/kevin/write_protection_screw.jpg). It was +tricky for me to find it since it was one of the screws that seemed to holds +the heat sink in place, which I thought made it an unlikely candidate. I +recommend you leave it unscrew never the less after flashing. + Newer boards have a root-of-trust chip enforcing write-protection. The [Closed Case Debugging](https://chromium.googlesource.com/chromiumos/platform/ec/+/cr50_stab/docs/case_closed_debugging_gsc.md) mechanism should be used to disable hardware write-protection. Opening From 84219b20eb0a207910805dca658dbe6b3fe1e70e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 6 Feb 2025 20:13:17 +0000 Subject: [PATCH 338/399] T480: mention pulseaudio vs pipewire Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 44f3297..17b090e 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -493,6 +493,9 @@ you've inserted manually. If it says "Unplugged", try it anyway. The HDA Verb may be incorrect. This will be investigated and a hotfix patch made to the Libreboot 20241206 images. +You must also be used *pulseaudio*, not *pipewire*, because even manual +switching doesn't work in pipewire. **It only works in pulseaudio.** + ### How to use HDMI audio You can get audio from Displayport/HDMI, but you must select it manually. From 46ab4acf3ab962305d5522a71b44cba45714e534 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 7 Feb 2025 22:36:26 +0800 Subject: [PATCH 339/399] contrib: Update the ich9gen section in Steve's contribs --- site/contrib.md | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/site/contrib.md b/site/contrib.md index 00e1d49..dc42608 100644 --- a/site/contrib.md +++ b/site/contrib.md @@ -631,20 +631,19 @@ engineered the layout of the Intel GbE NVM (non-volatile memory) region in the boot flash. This region defines configuration options for the onboard Intel GbE NIC, if present. -Based on this, I was able to take Steve's initial proof of concept and write +Based on this, I was able to take Steve's initial proof of concept +and work with him extensively to write the `ich9gen` utility, which generates an Intel Flash Descriptor and GbE NVM -region, from scratch, without an Intel ME region defined. It is this tool, -the `ich9gen` tool, that Libreboot uses to provide ROM images for GM45+ICH9M +region, from scratch, without an Intel ME region defined, +without needing a dump of the original Lenovo BIOS firmware. +Libreboot used to use `ich9gen` to provide ROM images for GM45+ICH9M platforms (such as ThinkPad X200/T400/T500/W500), with a fully functional descriptor and functional Gigabit Ethernet, but *without* needing Intel Management Engine (ME) firmware, thus making those machines *libre* (the ME is fully disabled, when you use a descriptor+gbe image generated by `ich9gen`). - -With *my* `ich9gen` tool (Steve's tool was called `ich9deblob`), you didn't -need a dump of the original Lenovo BIOS firmware anymore! I could not have -written this tool, without Steve's initial proof of concept. I worked with him, -extensively, for many months. All GM45+ICH9M support (X200, T400, etc) in -Libreboot is made possible because of the work he did, back in 2014. +Note that `ich9gen` is now obsolete as the Flash Descriptor and NVM region +are generated pre-assembled, and `nvmutil` is used to change MAC addresses +instead. ### Swift Geek From 4e7473b822bdb6d73da594c8a6ddb0293a5ffc9a Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 7 Feb 2025 22:38:21 +0800 Subject: [PATCH 340/399] docs/install/ich9utils.desc: Note deprecation --- site/docs/install/ich9utils.md.description | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/ich9utils.md.description b/site/docs/install/ich9utils.md.description index 8d7fc3b..c89e04e 100644 --- a/site/docs/install/ich9utils.md.description +++ b/site/docs/install/ich9utils.md.description @@ -1 +1 @@ -Documentation pertaining to ich9utils which can generate or modify Intel Flash Descriptors, and Intel GbE NVM images. +Documentation pertaining to the deprecated ich9utils which can generate or modify Intel Flash Descriptors, and Intel GbE NVM images. From dd0bf75198cfccde04c0ce984d584d5edd0744ef Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 7 Feb 2025 22:40:23 +0800 Subject: [PATCH 341/399] docs/install/mac_address: Remove ich9utils mentions --- site/docs/install/mac_address.md | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/site/docs/install/mac_address.md b/site/docs/install/mac_address.md index 8c857f5..ac15557 100644 --- a/site/docs/install/mac_address.md +++ b/site/docs/install/mac_address.md @@ -86,18 +86,7 @@ init scripts or you can use your operating system's own networking configuration. Refer to your operating system's documentation for how to do this. -Changing the MAC address on X200/T400/T500/W500 ------------------------------------------------ - -On GM45 laptops with ICH9M southbridge and Intel PHY module, the MAC address -is hardcoded in boot flash, which means it can be changed if you re-flash. - -See [ich9utils documentation](../install/ich9utils.md) - -If *all* you want to do is change the MAC address, you might try `nvmutil` -instead. See notes below: - -Changing the MAC address on ivybridge/sandybridge/haswell (e.g. X230/T440p) +Changing the MAC address (e.g. X230/T440p) ----------------------------------------------------------------- See [nvmutil documentation](../install/nvmutil.md) @@ -107,15 +96,6 @@ Sandybridge, Ivybridge and Haswell platforms, but it can be used on any platform with a valid GbE region in flash, where an Intel Flash Descriptor is used; this includes older GM45+ICH9M machines supported by Libreboot. -The `ich9utils` program is more useful in an lbmk context, because it -generates an entire Intel Flash Descriptor and GbE region from scratch; -coreboot has a similar method in its build system, using its own utility -called bincfg, but this tool is unused in lbmk. - -No tool like ich9utils exists for these boards yet, but lbmk includes the IFD -and GbE files in-tree (Intel ME is handled by extracting from Lenovo updates, -which the build system automatically fetches from the internet). - You can use `nvmutil` to change the existing MAC address in a GbE region. This sets the "hardcoded" MAC address, typically a globally assigned one set by the vendor, but you can use local addresses, and you can use randomised MACs. From 6b1b5745497cbedf16eb000f53129293c59a8893 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 7 Feb 2025 22:42:03 +0800 Subject: [PATCH 342/399] docs/install/{r4,t4,t5,x2}00: Remove ich9util mentions --- site/docs/install/r400.md | 3 +-- site/docs/install/t400.md | 3 +-- site/docs/install/t500.md | 3 +-- site/docs/install/x200.md | 3 +-- 4 files changed, 4 insertions(+), 8 deletions(-) diff --git a/site/docs/install/r400.md b/site/docs/install/r400.md index 358f459..e5b782d 100644 --- a/site/docs/install/r400.md +++ b/site/docs/install/r400.md @@ -71,8 +71,7 @@ the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16. *The R400 laptops come with the ME (and sometimes AMT in addition) before flashing libreboot. libreboot disables and removes it by using a -modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* -(contains notes, plus instructions) +modified descriptor.* Flashing instructions can be found at [../install/\#flashprog](../install/#flashprog) diff --git a/site/docs/install/t400.md b/site/docs/install/t400.md index c6c6a02..6d8f73e 100644 --- a/site/docs/install/t400.md +++ b/site/docs/install/t400.md @@ -70,8 +70,7 @@ the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16. *The T400 laptops come with the ME (and sometimes AMT in addition) before flashing libreboot. libreboot disables and removes it by using a -modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* -(contains notes, plus instructions) +modified descriptor.* Flashing instructions can be found at [../install/\#flashprog](../install/#flashprog) diff --git a/site/docs/install/t500.md b/site/docs/install/t500.md index c1a035c..d19bec1 100644 --- a/site/docs/install/t500.md +++ b/site/docs/install/t500.md @@ -72,8 +72,7 @@ the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16. *The T500 laptops come with the ME (and sometimes AMT in addition) before flashing libreboot. libreboot disables and removes it by using a -modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* -(contains notes, plus instructions) +modified descriptor.* Flashing instructions can be found at [../install/\#flashprog](../install/#flashprog) diff --git a/site/docs/install/x200.md b/site/docs/install/x200.md index e35fc95..070fce9 100644 --- a/site/docs/install/x200.md +++ b/site/docs/install/x200.md @@ -70,8 +70,7 @@ the palmrest: 4MiB is SOIC-8, 8MiB is SOIC-16. *The X200 laptops come with the ME (and sometimes AMT in addition) before flashing libreboot. libreboot disables and removes it by using a -modified descriptor: see [../install/ich9utils.md](../install/ich9utils.md)* -(contains notes, plus instructions) +modified descriptor.* Flashing instructions can be found at [../install/\#flashprog](../install/#flashprog) From dd993be62fd053768e4826a550fcaa649128c0ef Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 7 Feb 2025 22:48:37 +0800 Subject: [PATCH 343/399] faq: Remove ich9util mentions --- site/faq.md | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/site/faq.md b/site/faq.md index da8e866..cf0ccc0 100644 --- a/site/faq.md +++ b/site/faq.md @@ -295,7 +295,7 @@ privacy that can't be ignored. Before version 6.0 (that is, on systems from 2008/2009 and earlier), the ME can be disabled by setting a couple of values in the SPI flash memory. The ME firmware can then be removed entirely from the flash -memory space. The libreboot project [does this](docs/install/ich9utils.md) on +memory space. The libreboot project does this on the Intel 4 Series systems that it supports, such as the [ThinkPad X200](../docs/install/x200.md) and [ThinkPad T400](../docs/install/t400.md). ME firmware versions 6.0 and @@ -516,13 +516,8 @@ inconvenient to use an external programmer. On some systems, it is possible to write-protect the firmware, such that it is rendered read-only at the OS level (external flashing is still -possible, using dedicated hardware). For example, on current GM45 -laptops (e.g. ThinkPad X200, T400), you can write-protect (see -[ICH9 gen utility](docs/install/ich9utils.md#ich9gen)). - -It's possible to write-protect on all libreboot systems, but the instructions -need to be written. The documentation is in the main git repository, so you are -welcome to submit patches adding these instructions. +possible, using dedicated hardware). [See instructions +here.](docs/linux/grub_hardening.md#flash-write-protection) TODO: Document PRx based flash protection on Intel platforms, and investigate other methods on AMD systems. From 7307e9eb33106fc03fa0ed64d9d79184ee80b80c Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 7 Feb 2025 22:58:52 +0800 Subject: [PATCH 344/399] freedom-status: Remove ich9util mentions --- site/freedom-status.md | 11 ++--------- 1 file changed, 2 insertions(+), 9 deletions(-) diff --git a/site/freedom-status.md b/site/freedom-status.md index 4d15100..777dfc2 100644 --- a/site/freedom-status.md +++ b/site/freedom-status.md @@ -95,7 +95,7 @@ In a *descriptor* configuration, the flash is divided into regions such as: the initialisation firmware plus operating system for it is loaded from this dedicated region in the main boot flash. More info is available [in the FAQ](faq.md#intelme) - where ME firmware is otherwise present, Libreboot - either [removes](docs/install/ich9utils.html) it or (with the `me_cleaner` program) [reconfigures](https://github.com/corna/me_cleaner/wiki/How-does-it-work%3F) it in such + either removes it or (with the `me_cleaner` program) [reconfigures](https://github.com/corna/me_cleaner/wiki/How-does-it-work%3F) it in such a way where it is disabled during machine initialisation. * Platform region: non-program data, usually just a bunch of strings put there by the hardware vendor. @@ -152,11 +152,7 @@ whether the CPU comes out of reset). *Libreboot* provides a way to fully remove the ME firmware, while retaining full use of the machine, on GM45 platforms with ICH9M southbridge. These are -laptops: ThinkPad X200/T400/T500/W500 and so on of that generation. See: -[docs/install/ich9utils.md](docs/install/ich9utils.md) - -The `ich9utils` software is provided by Libreboot. The `ich9gen` utility was -specifically written by Leah Rowe, in 2014 and improved incrementally since. +laptops: ThinkPad X200/T400/T500/W500 and so on of that generation. On newer platforms as alluded to above, `me_cleaner` is used instead. @@ -301,7 +297,6 @@ Intel Flash Descriptors are provided as blobs on some boards, but these are not *software* blobs. They are configurations provided in a binary format, fully readable by libre software. For example: -* Libreboot's `ich9gen` program generates ICH9M flash descriptors from scratch. * Coreboot's `ifdtool` program has extensive features for manipulating Intel flash descriptors. * Corebot's `bincfg` program generates any sort of binary from a `.spec` file @@ -311,8 +306,6 @@ fully readable by libre software. For example: Intel GbE NVM config (configuration data, binary-encoded, for gigabit NIC): -* Libreboot's `ich9gen` program *also* generates GbE NVM images specifically - for Intel NICs used in GM45 thinkpads. * Libreboot's `nvmutil` program can manipulate GbE NVM images ### ARM/chromebooks From 6f6ccc1ea9b844d3cfbe9e1b8404b2e43518ac21 Mon Sep 17 00:00:00 2001 From: Runxi Yu Date: Fri, 7 Feb 2025 23:01:57 +0800 Subject: [PATCH 345/399] git: Remove ich9util mentions --- site/git.md | 11 +---------- 1 file changed, 1 insertion(+), 10 deletions(-) diff --git a/site/git.md b/site/git.md index ea544a0..3eb12cc 100644 --- a/site/git.md +++ b/site/git.md @@ -35,9 +35,7 @@ needed something more stable, so now Libreboot is hosted on codeberg. See: There are also these programs, hosted by the Libreboot project, and libreboot either recommends them or makes use of them: -The `ich9utils` project is now available under `util/ich9utils` in lbmk, and -lbmk uses *that*, but the old standalone repository is still available on -notabug (bucts is also there): +The old `ich9utils` and `bucts` repositories are available on notabug: * Bucts (utility): * ich9utils (utility): @@ -60,13 +58,6 @@ internally an libreboot ROM onto a ThinkPad X60 or T60 that is currently running the original Lenovo BIOS. Instructions for that are available here:\ [libreboot installation guides](docs/install/) -The `ich9utils` repository is used heavily, by the `lbmk` build system. However, -you can also download `ich9utils` on its own and use it. It generates ICH9M -descriptor+GbE images for GM45 ThinkPads that use the ICH9M southbridge. It may -also work for other systems using the same platform/chipset. -Documentation for `ich9utils` is available here:\ -[ich9utils documentation](docs/install/ich9utils.md) - ### lbmk (libreboot-make) This is the core build system in libreboot. You could say that `lbmk` *is* From 24d1145ca447d76c6e842cf50d15f9d42d6a754e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 8 Feb 2025 14:34:38 +0000 Subject: [PATCH 346/399] add example to gen docs Signed-off-by: Leah Rowe --- site/docs/sitegen/index.md | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/site/docs/sitegen/index.md b/site/docs/sitegen/index.md index 53073c0..1d25132 100644 --- a/site/docs/sitegen/index.md +++ b/site/docs/sitegen/index.md @@ -62,10 +62,11 @@ Learn more about Free Software:\ Here are some websites built using the Libreboot Static Site Generator: -* (Libreboot project, maintained by Leah Rowe) * (Libreboot fork maintained by Leah Rowe) -* -* (Leah Rowe's blog) +* (Leah Rowe's self-hosted servers tutorial website) +* (Libreboot project, maintained by Leah Rowe) +* (Leah Rowe's transgender advocacy website) +* (Leah Rowe's personal blog) Requirements ------------ From d0c1908702d86077185840f04818567d737c435f Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 9 Feb 2025 13:39:41 +0000 Subject: [PATCH 347/399] other.md: fix TF-A link Signed-off-by: Leah Rowe --- site/other.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/other.md b/site/other.md index fbd7c28..026a0ea 100644 --- a/site/other.md +++ b/site/other.md @@ -367,7 +367,7 @@ language, focusing specifically on the *LinuxBoot* payload configuration. ### Trusted Firmware -Website: +Website: Trusted Firmware provides boot firmware for ARMv8-A, ARMv9-A and ARMv8-M. Specifically tailored for use on embedded systems, and parts of From fa485ebbe6f9a2970b6f2175f66300f9e8e7aa6e Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 9 Feb 2025 14:45:15 +0000 Subject: [PATCH 348/399] list firmware-action on other.md Signed-off-by: Leah Rowe --- site/other.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/site/other.md b/site/other.md index 026a0ea..5a0a898 100644 --- a/site/other.md +++ b/site/other.md @@ -86,6 +86,39 @@ coreboot images for each supported motherboard, with an emphasis on stability. It's a very different approach than Libreboot's approach; Libreboot provides a more generalised design in its build system and infrastructure. +### Firmware-action + +Website: + +Documentation: + +**TODO: Link their FOSDEM 2025 talk when it becomes available on archives.** + +Launched at the start of 2023, this project by 9elements provides +a source-based package manager similar conceptually to lbmk; it downloads, +patches and compiles various upstream sources, specifically coreboot, +Linux, Tianocore/edk2, u-root and others. + +It currently does not provide specific build targets pre-configured, nor +binary releases, but it could theoretically be fashioned that way, and this +was asked of them at their FOSDEM 2025 talk, during questions and answers - and +much of what it's trying to do could inspire aspects of Libreboot's design in +the future. + +Their build system design is interesting, and has many of the same sort of +features lbmk has, such as tracking of build artifacts / re-use of build +artifacts to speed up re-builds. I (Leah Rowe, Libreboot maintainer) learned +of Firmware-action because I attended their FOSDEM 2025 talk. It is listed on +this page, because their build system design *can* be used to provide a fully +fledged coreboot distribution, with binary releases. + +The goal of the firmware-action project is to provide a fully reproducible +build environment, for integration with a CI/CD setup during coreboot +development. This build system has great potential to provide a useful +competitor versus, say, Heads or LinuxBoot projects. The design of this build +system could also be adapted to provide many different coreboot payloads, +even ones that it currently doesn't support, such as GNU GRUB. + ### Heads Website: From fda7faffcd674f1f223a5e9f66d0aea90512cb78 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 12 Feb 2025 23:15:15 +0000 Subject: [PATCH 349/399] 20241206rev9 notes Signed-off-by: Leah Rowe --- site/news/libreboot20241206.Revisions.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/site/news/libreboot20241206.Revisions.md b/site/news/libreboot20241206.Revisions.md index aec9d61..180b140 100644 --- a/site/news/libreboot20241206.Revisions.md +++ b/site/news/libreboot20241206.Revisions.md @@ -162,3 +162,23 @@ the full announcement, linked above: TPM drivers in SeaBIOS. * Better handling of dependencies, for various Linux distros. * Various code quality improvements for `util/nvmutil`, especially the Makefile. + +Revision 9 (12 February 2025) +----------- + +Merged a fix from Riku Viitanen, fixing an uninitialised variable in +pico-serprog, which caused sync issues on pico2 devices or other dongles +that used RP2530. See: + + + +This bug page on the upstream project describes the bug, and the fix as +mentioned there was merged in Libreboot's mirror, here in this commit: + + + +People who previously downloaded the tarball for pico-serprog images, should +download again, choosing 20241206rev9. + +The coreboot tarballs have not been replaced. The source tarball *has* been +replaced. From 8725126ec23241582766ed7a996805e357e139fc Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 15 Feb 2025 16:29:15 +0000 Subject: [PATCH 350/399] subtle improvement to CBW2 reference make it shorter, and more to the point Signed-off-by: Leah Rowe --- site/news/10.md | 85 ++++++++++++++++++++++++------------------------- 1 file changed, 41 insertions(+), 44 deletions(-) diff --git a/site/news/10.md b/site/news/10.md index e80cc79..5e05c46 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -1519,6 +1519,8 @@ on [minifree.org](https://minifree.org/). January 1st, 2025, UPDATE! ------------------------ +And some facts discovered in February 2025 have also been added! + ### Cold Boot War II The truce of 2024 has ended. GNU did a talk during 38C3 conference, where @@ -1526,7 +1528,10 @@ they spent at least *one third* of the talk, telling people to stop using Libreboot, to stop promoting Libreboot, stop contributing to it. This is an act of war against the Libreboot project. Their decision, in the talk, demonstrated that they have all the same intentions that they originally had -in their LibrePlanet 2023 talk, that lead to the *first* Cold Boot War. +in their LibrePlanet 2023 talk, that lead to the *first* Cold Boot War. Their +intent is that Libreboot must cease to exist, and that they must replace it; +they are not content simply with existing in their own right, rather, they want +their existence *to replace mine*. Intent matters. A lot of people might disagree, but the world runs on dreams. What we do in the moment is just an manifestation of dreams. Their dream is @@ -1536,38 +1541,13 @@ Therefore, Cold Boot War II was declared, in the early hours of January 1st, 202 There won't be much material difference as a result of this, but the consequence is that there is no longer good will from Libreboot towards the GNU project. -Canoeboot will be developed as aggressively as before, if not more so. It will -be maintained and updated aggressively, but now with this fact in mind, and -with the view that the GNU project must be contained; the mere existence -of the Canoeboot project is a direct attack on GNU, and it will continue. It -is an attack, because *they* can't attack *Canoeboot* lest they look like -hypocrites, which they are, but looking like it is worse. They were the ones -who tried to steal the Libreboot name, and they the aggressors; Canoeboot was -formed as an act of self defense to protect Libreboot, and Canoeboot is a fun -technical challenge. - -I was going to approach the GNU project and start a discussion about shutting +I *was* going to approach the GNU project and start a discussion about shutting down the Canoeboot project, and merge it with GNU. As of January 2025, GNU's own Libreboot fork *still* uses the same late 2021 coreboot and GRUB revisions that it used when they started back in June 2023. As of December 2024, the Canoeboot project used upstream revisions *from December 2024* and with completely up to date documentation. -Such an attempt at collaboration was made before, and it was rejected. It is -clear now that the GNU/FSF developers have nothing but contempt. Therefore, -the agenda from 1 January 2025 onward, is to *replace* GNU, not join it; to move -so far ahead of the project on a technical level, and to overwhelm it so much -in that regard, yet offer no truce and no way out for GNU. The end result shall -be that FSF/GNU fans only have Canoeboot, and nothing else. GNU has shown -historical opposition and hostility to the Libreboot project, to the extent -that they even tried to steal the name; therefore, I will show no mercy. - -This is not about tech. This is about dreams. A battle of dreams. My dream is -to maintain a highly popular [Free Software](https://writefreesoftware.org/learn) -boot project, namely Libreboot and Canoeboot; this dream exists because I enjoy -the work, and I believe in Free Software. GNU's dream has been to steal mine; -I do all the work, and they wanted to steal my thunder. - Canoeboot is vastly superior to anything GNU would ever do, or has done. Canoeboot's highly efficient [design](https://canoeboot.org/docs/maintain/) is much simpler and more powerful in practise, doing *more* in fewer lines @@ -1575,11 +1555,8 @@ of code - and it supports more hardware. Canoeboot is, at this time, interested in more GM45-based Dell Latitude models and X4x-based Dell OptiPlex 780 variants, among other ports. Other works are also planned. -Canoeboot shall continue, and there will not be a 2nd truce. The truce -of 2024 was announced unilaterally by the Libreboot project, at the start -of 2024, in the interest of improving relations. - -For those interested, the talk is here: +For those interested, GNU's anti-Libreboot talk is here (they also talk trash +about Canoeboot, though to a lesser extent than they do about Libreboot): **https://www.youtube.com/watch?v=dHJ9m6HRwq0** In it, they strongly imply that all Libreboot boards use Intel FSP/MRC, which @@ -1599,17 +1576,37 @@ but the reality is that this is literally impossible, on any hardware. The reason is strongly described in Libreboot's [Freedom Status](../freedom-status.md) and [Binary Blob Reduction Policy](policy.md) pages. -It is clear, then, that the GNU project wishes to undermine the Libreboot -project; their dream is that Libreboot will one day cease to exist. So in -response, Libreboot has this dream too, but about GNU. My revenge shall be -to continue maintaining Libreboot and Canoeboot, to a high standard, and to -get ever further ahead of them both technically, and politically. +They lie and lie and lie about me and about the Libreboot project, because if +they actually discussed the [nuance](policy.md) of Libreboot policy, they are +worried that more people might agree with Libreboot. They don't care about the +reality; they are also hypocrites, since they still use Libreboot and Canoeboot +themselves. For example, in their FOSDEM 2025 talk about machine learning, the +executive director of the FSF is clearly using a Dell Latitude E6400: +; +look about 46 minutes in and it shows the whole laptop. Their own project does +not support this laptop, only Libreboot and Canoeboot do! And neox told me on +IRC during February 2025 that he uses Libreboot on a ThinkPad T440p. So... why +should anyone take them seriously? GNU policy has little merit - Libreboot ignores +it, because their policy limits the amount of hardware that can be supported - and +what merit does it have at all when its creators don't even follow it? As of +February 2025, Richard Stallman's own website still claims that he uses a +Libreboot system: . +I could probably dig even deeper and find more examples, but you get the point. -The outcome of coldbootwar2 will be described in the *next* decade anniversary page, -on 12 December 2033. It is strongly expected that Libreboot will continue to -exist and thrive by then; today's Libreboot will be vastly inferior to that -future Libreboot, and it is expected that GNU will have long given up the ghost. -Canoeboot will still be maintained regularly. That is the dream, and it is my -wish that this dream be fully realised. It shall be done. +On merit, they are weak - and they don't even believe in their own merit. That +is why they need to attack the Libreboot project on their own project's website. +They could criticise just coreboot, which is the project they are actually dealing +with, but that's too hard; Libreboot is, to them, the easier target. They are +essentially cowards. Luckily, Libreboot and Canoeboot are literally *years ahead* +of them, on a technological level - and many of their people use Canoeboot and +Libreboot, because they get it: Libreboot is providing them with what they actually +need, namely, a free software boot project that tries to support as many machines +as possible, so it actually supports the hardware that they want to use. -I'm not allowed to win, but I will. +I was actually banned from the FSF's IRC channel on Libera, specifically because +I called neox (Adrien Bourmault) a hypocrite for using Libreboot, despite being +one of the co-founders of GNU's fork of Libreboot, that heavily criticises +Libreboot - and despite the fact that neox himself, in the above linked 38c3 +talk, heavily critises *me*. He lies, claiming that I oppose free software, +while using my project. Weak, weak, weak. I don't respect [hypocrites](https://vimuser.org/hypocrites.html) at all, +and neither should you. From 9a3fcc68afe213e897d23165aa6da2ec20527976 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 17 Feb 2025 20:57:37 +0000 Subject: [PATCH 351/399] docs/install/spi: remove repetition (ch341a) Signed-off-by: Leah Rowe --- site/docs/install/spi.md | 22 +++------------------- 1 file changed, 3 insertions(+), 19 deletions(-) diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index e8b9f54..a6b8e09 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -214,11 +214,6 @@ Higher speeds might work nicely, on Pico 2. Do not buy CH341A! ------------------ -This section was heavily expanded, on 19 January 2025, because we see many -people online still talking about the CH341a. Therefore, the hatred has been -amplified. Please read this section carefully, to know why we advise against -use of this particular programmer. - NOR flashes on libreboot systems run on 3.3V DC or 1.8V DC, and this includes data lines. CH341A can have 5V logic levels on data lines, which can damage your SPI flash and also the southbridge that it's connected to, plus anything else @@ -278,7 +273,8 @@ resistors) performed, on the black CH341A:\ The green version (not shown above) may come with 3.3v logic already wired, but -still needs to have pull-up resistors placed for WP/HOLD. +still needs to have pull-up resistors placed for WP/HOLD. Some of them may have +switchable voltage instead, via a physical toggle on the board. Disclaimer: A few (not many, but wily) people have criticised this section of the documentation, due to a misconception about what it really means and also because @@ -317,8 +313,7 @@ chip selects at once; it's just better, in every way. And the Raspberry Pi is completely reprogrammable, so you can use it for something else when you're done, e.g. UART dongle, or if you're wily enough, [PlayStation 1 Optical Disc Emulator](https://github.com/paulocode/picostation) - the Pico is simply a -highly versatile tool, much better value for money than the piece of junk -CH341a. +highly versatile tool, much better value for money. There is only one instance where the CH341a is *good*, and that is when you're actually flashing a loose (not soldered) chip, in the ZIF socket on the CH341a @@ -337,17 +332,6 @@ also newer models that have a voltage switch and logic level shifter already on the board, which can be very useful. *Clip-based* flashing (ISP / in-system programming) is, specifically, what we advise against using the CH341a for. -Even if you *are* doing socket-based flashing, we still suggest buying the Pico -instead, though the Pico doesn't come with a ZIF socket; you can wire the Pico -to a breadboard instead, if you want to use a socket for flashing. Then you -will also have a good ISP device, and the overall cost covering both use-case -scenarios is *lower* (cheaper part cost) than buying a CH341a *and* Pico; and -the Pico can also emulate the PlayStation Optical Disc Drive in your -playstation to boot from SD card instead of your dead CD drive, or could even -be a [JTAG adapter](https://hackaday.com/2022/04/11/need-a-jtag-adapter-use-your-pico/) - -again, the Pico is a reprogrammable device! Whereas, the CH341a is a fixed-function -device (and performs poorly). - Why pay $10 for a CH341a when you can pay $10 for a Raspberry Pi Pico which is electrically and functionally superior in every way? And the Pico is completely open source, right down to the boot rom. From e484a829e39bde74806c376455ca47d6718595c0 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 18 Feb 2025 07:55:53 +0000 Subject: [PATCH 352/399] snip i got a very respectable email last night from a person who i now hold in very high regard. and the email merits a response - and the response will be a good one. Signed-off-by: Leah Rowe --- site/news/10.md | 95 ------------------------------------------------- 1 file changed, 95 deletions(-) diff --git a/site/news/10.md b/site/news/10.md index 5e05c46..e3ebad9 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -1515,98 +1515,3 @@ the erstwhile *gluglug* domain then redirecting to it, and I registered Minifree Ltd in the UK. Minifree is how I fund the Libreboot project, by selling computers with Libreboot pre-installed. You can find it on [minifree.org](https://minifree.org/). - -January 1st, 2025, UPDATE! ------------------------- - -And some facts discovered in February 2025 have also been added! - -### Cold Boot War II - -The truce of 2024 has ended. GNU did a talk during 38C3 conference, where -they spent at least *one third* of the talk, telling people to stop using -Libreboot, to stop promoting Libreboot, stop contributing to it. This is an -act of war against the Libreboot project. Their decision, in the talk, -demonstrated that they have all the same intentions that they originally had -in their LibrePlanet 2023 talk, that lead to the *first* Cold Boot War. Their -intent is that Libreboot must cease to exist, and that they must replace it; -they are not content simply with existing in their own right, rather, they want -their existence *to replace mine*. - -Intent matters. A lot of people might disagree, but the world runs on dreams. -What we do in the moment is just an manifestation of dreams. Their dream is -to *destroy the Libreboot project*. - -Therefore, Cold Boot War II was declared, in the early hours of January 1st, 2025. -There won't be much material difference as a result of this, but the consequence -is that there is no longer good will from Libreboot towards the GNU project. - -I *was* going to approach the GNU project and start a discussion about shutting -down the Canoeboot project, and merge it with GNU. As of January 2025, GNU's -own Libreboot fork *still* uses the same late 2021 coreboot and GRUB revisions -that it used when they started back in June 2023. As of December 2024, the -Canoeboot project used upstream revisions *from December 2024* and with -completely up to date documentation. - -Canoeboot is vastly superior to anything GNU would ever do, or has done. -Canoeboot's highly efficient [design](https://canoeboot.org/docs/maintain/) -is much simpler and more powerful in practise, doing *more* in fewer lines -of code - and it supports more hardware. Canoeboot is, at this time, interested -in more GM45-based Dell Latitude models and X4x-based Dell OptiPlex 780 variants, -among other ports. Other works are also planned. - -For those interested, GNU's anti-Libreboot talk is here (they also talk trash -about Canoeboot, though to a lesser extent than they do about Libreboot): -**https://www.youtube.com/watch?v=dHJ9m6HRwq0** - -In it, they strongly imply that all Libreboot boards use Intel FSP/MRC, which -isn't true. Everything up to Haswell uses completely free raminit; completely -free initialisation within coreboot. - -In general, Libreboot's [Binary Blob Reduction Policy](policy.md) dictates -that if Free Software *can* be used, it must be - as a result, many systems -supported by Libreboot, boot entirely with free software. Libreboot is a free -software project, whose primary goal is to increase software freedoms for users -by providing them with free boot firmware. And yet: the GNU talk strongly -suggests that Libreboot is a *proprietary software project*. - -In that same GNU talk, GNU directly states that I, Leah Rowe, am "against 100% -free software" - also false. I want everyone to use Free Software exclusively, -but the reality is that this is literally impossible, on any hardware. The -reason is strongly described in Libreboot's [Freedom Status](../freedom-status.md) -and [Binary Blob Reduction Policy](policy.md) pages. - -They lie and lie and lie about me and about the Libreboot project, because if -they actually discussed the [nuance](policy.md) of Libreboot policy, they are -worried that more people might agree with Libreboot. They don't care about the -reality; they are also hypocrites, since they still use Libreboot and Canoeboot -themselves. For example, in their FOSDEM 2025 talk about machine learning, the -executive director of the FSF is clearly using a Dell Latitude E6400: -; -look about 46 minutes in and it shows the whole laptop. Their own project does -not support this laptop, only Libreboot and Canoeboot do! And neox told me on -IRC during February 2025 that he uses Libreboot on a ThinkPad T440p. So... why -should anyone take them seriously? GNU policy has little merit - Libreboot ignores -it, because their policy limits the amount of hardware that can be supported - and -what merit does it have at all when its creators don't even follow it? As of -February 2025, Richard Stallman's own website still claims that he uses a -Libreboot system: . -I could probably dig even deeper and find more examples, but you get the point. - -On merit, they are weak - and they don't even believe in their own merit. That -is why they need to attack the Libreboot project on their own project's website. -They could criticise just coreboot, which is the project they are actually dealing -with, but that's too hard; Libreboot is, to them, the easier target. They are -essentially cowards. Luckily, Libreboot and Canoeboot are literally *years ahead* -of them, on a technological level - and many of their people use Canoeboot and -Libreboot, because they get it: Libreboot is providing them with what they actually -need, namely, a free software boot project that tries to support as many machines -as possible, so it actually supports the hardware that they want to use. - -I was actually banned from the FSF's IRC channel on Libera, specifically because -I called neox (Adrien Bourmault) a hypocrite for using Libreboot, despite being -one of the co-founders of GNU's fork of Libreboot, that heavily criticises -Libreboot - and despite the fact that neox himself, in the above linked 38c3 -talk, heavily critises *me*. He lies, claiming that I oppose free software, -while using my project. Weak, weak, weak. I don't respect [hypocrites](https://vimuser.org/hypocrites.html) at all, -and neither should you. From 40ca3087b78ad30e1309371d5319cbdf1d6de73d Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 18 Feb 2025 15:56:34 +0000 Subject: [PATCH 353/399] more snip my intent was clearly presented by the wholesale removal present in the last revision. this follow-up revision further conveys my intentions. Signed-off-by: Leah Rowe --- site/news/10.md | 55 ++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/site/news/10.md b/site/news/10.md index e3ebad9..f11fc0e 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -60,7 +60,9 @@ that Libreboot no longer strictly aligns to FSF policy, but I still very much believe in the ideology behind it. I merely apply it in different, more [pragmatic](policy.md) ways - but this page is about the history of the project, so I have to put myself in the headspace I was in, during each development year -relative to when Libreboot started. +relative to when Libreboot started. Libreboot originally started very much as +an FSF-endorsed project, created specifically for the purpose of adhering to +their standards. ### Early history @@ -1221,7 +1223,7 @@ This period of Libreboot's history involved a massive amount of extreme and hostile competition between the Libreboot project and a *hostile fork* of Libreboot started by the FSF (now a GNU project). Libreboot fought hard to ensure that it, the *real* Libreboot project, the one on libreboot.org, survived, -becauseu the FSF literally tried to destroy it. They made no secret of it, and +because the FSF literally tried to destroy it. They made no secret of it, and even publicly announced such intentions at their LibrePlanet 2023 conference. Much of the remainder of this article will cover this period, and its aftermath. @@ -1478,14 +1480,31 @@ anymore; to do so was necessary, when they themselves did the same, because the FSF is a well-funded organisation with much bigger reach and would walk all over me if I allowed it, so it was necessary to show strength. -However, throughout 2024, GNU's fork has essentially been a dead project; they -haven't done any work on their build system of any consequence, and haven't -even updated their documentation that heavily. Their main focus was on -integrating the Untitled Static Site Generator into their infrastructure, -which otherwise relies heavily on TexInfo documents and CVS (Untitled relies on -Markdown and Git heavily - the FSF actually made a special rsync server for -to manually upload HTML files to, generated by Untitled, which they -wrapped around directly, within their fork of the Libreboot build system). +I don't start fights; I only finish them, decisively and without fear or +prejudice. Aside from minor acts on GNU's part, they have largely left me well +alone since the end of 2023, and my intention is to leave them alone. I have +at times perhaps been guilty of overthinking, but I basically don't care about +the FSF or GNU at this point. + +My intention is that the FSF promote *Canoeboot*, much like they did with the +old Libreboot, prior to policy change. GNU Boot can do whatever it wants, I +don't really care; so long as they're not taking potshots at Libreboot. FSF can +also promote their own project (GNU Boot), as they have; there's room for both. +It'd be nice if GNU Boot criticised coreboot instead of Libreboot; coreboot is +the project that includes binary blobs, Libreboot merely tries to make the best +of a situation that is not ideal, while not being dogmatic; Canoeboot and GNU +Boot are dogmatic answers to the same issue, namely that hardware vendors suck. +Prior to Libreboot's policy change, Libreboot was not a fork of something; it +was its own original distribution, and it criticized the hardware vendors and +coreboot for not being firm enough with them - and this is a criticism that +I still have, today, and always will have. What more is there to say? GNU chose +to see me as its enemy, even though I'm ideologically very much in line with it +and wish to see its goals advanced to the fullest; the only difference with +Libreboot is the exact method by which this is strived for, a methodology that +they (the GNU project) vehemently disagree with. Libreboot's instrument is +the [Binary Blob Reduction Policy](policy.md), while Canoeboot's is +the [Binary Blob Extermination Policy](https://canoeboot.org/news/policy.html), +and Canoeboot's policy is very much identical to GNU's own policy document. Last remarks ----------- @@ -1515,3 +1534,19 @@ the erstwhile *gluglug* domain then redirecting to it, and I registered Minifree Ltd in the UK. Minifree is how I fund the Libreboot project, by selling computers with Libreboot pre-installed. You can find it on [minifree.org](https://minifree.org/). + +*January 2025 update removed; hostilities briefly resumed, resulting from +accusations made by the GNU project against Libreboot and against me personally, +in a talk that they made at 38c3, but I've since decided to disregard it as being +that Adrien Bourmault simply doesn't know his place and spoke out of turn - I've +since begun discussions with the FSF and its executive director is remarkably +intelligent and decent, something I did not expect given my prior history - +more will be said about this, possibly, in future news updates, but not as +further updates to this 2023 article that you are currently reading. Good day!* + +*Some language on this page has been toned down, while not altering the substance +of this article in any way, and without removing any of the history or otherwise +any other information presented here. I remain wary of course, but my focus is +simply on Libreboot and Canoeboot - those people in GNU Boot such as Adrien +simply do not think the way I do and would likely never work with me. That is +why they have their project, and I have mine!!* From 02f623491b575a57af4db52f391a55d81dd912f7 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 18 Feb 2025 16:03:29 +0000 Subject: [PATCH 354/399] remove straggler Signed-off-by: Leah Rowe --- site/news/10.md | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/site/news/10.md b/site/news/10.md index f11fc0e..82914f8 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -1437,9 +1437,7 @@ date, in terms of code and documentation respectively. ### End of the Cold Boot War -**This reconciliation was cancelled. Please see the [update from January 2025](#january-1st-2025-update).** - -The *FSF* started the coldboot war. Libreboot merely won it. +The *FSF* started the coldboot war. Libreboot merely won it, decisively. From 2024 onward, unless more hostilities develop from FSF/GNU's side, I intend to adopt a more conciliatory approach toward GNU/FSF. I won the battle of 2023. From 2095c95771395f616d141e77fd19f7393cd2f276 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 19 Feb 2025 23:32:24 +0000 Subject: [PATCH 355/399] add t480 errata regarding the microphone Signed-off-by: Leah Rowe --- site/docs/install/t480.md | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index 17b090e..bff77dc 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -566,6 +566,17 @@ Errata Some features either don't work, or are untested, when running Libreboot on the ThinkPad T480 or T480s. +### Microphone not working + +Tested in Debian 12.9 with PulseAudio - the built-in microphone isn't +detected at all. You can use an external USB microphone instead. + +The aux also doesn't seem to work at present; it may be related to the same +issue with headphone jack auto-switching. + +The good news is that the *webcam* seems to work just fine. All this will +need to be investigated. + ### Power-on after power failure Older Libreboot revisions made this machine always turn on, when plugging in From 7d5145149283fa0b5ecfb5ebb60f5da1adeb938b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 20 Feb 2025 08:58:54 +0000 Subject: [PATCH 356/399] 20241206rev10 release announcement Signed-off-by: Leah Rowe --- site/news/MANIFEST | 1 + site/news/libreboot20241206.Revisions.md | 7 +++ site/news/libreboot20241206rev10.md | 68 ++++++++++++++++++++++++ 3 files changed, 76 insertions(+) create mode 100644 site/news/libreboot20241206rev10.md diff --git a/site/news/MANIFEST b/site/news/MANIFEST index d1feaa5..4f9fe40 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -1,3 +1,4 @@ +libreboot20241206rev10.md schedule.md libreboot20241206rev8.md libreboot20241206.md diff --git a/site/news/libreboot20241206.Revisions.md b/site/news/libreboot20241206.Revisions.md index 180b140..8ef77e3 100644 --- a/site/news/libreboot20241206.Revisions.md +++ b/site/news/libreboot20241206.Revisions.md @@ -182,3 +182,10 @@ download again, choosing 20241206rev9. The coreboot tarballs have not been replaced. The source tarball *has* been replaced. + +Revision 10 (18 February 2025) +----------- + +Several critical security fixes made to GRUB, and a few improvements to LVM +scanning in `grub.cfg` were made. Other minor fixes. A full announcement is +available in the [20241206rev10 announcement](libreboot20241206rev10.md). diff --git a/site/news/libreboot20241206rev10.md b/site/news/libreboot20241206rev10.md new file mode 100644 index 0000000..d22adc7 --- /dev/null +++ b/site/news/libreboot20241206rev10.md @@ -0,0 +1,68 @@ +% Libreboot 20241206, 10th revision released! GRUB security fixes, better LVM scanning, non-root USB2 hub support +% Leah Rowe +% 6 January 2025 + +Today's Libreboot 20241206 revision is the 10th revision in the Libreboot +20241206 stable release series. The changelog on this page is written, relative +to Libreboot 20241206 revision 9 which was released on 12 February 2025. +The *original* Libreboot 20241206 release came out on 6 December 2024. You +can find the full list of revisions [here](libreboot20241206.Revisions.md) +and the original release [here](libreboot20241206.md). + +Open source BIOS/UEFI firmware +------------------------------ + + + +Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing +boot firmware that initialises the hardware in your computer, to then load an +operating system (e.g. Linux/BSD). It is specifically +a *[coreboot distribution](../docs/maintain/)*, +in the same way that Debian is a Linux distribution. It provides an automated +build system to produce coreboot ROM images with a variety of payloads such as +GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +to use as possible for non-technical users. From a project management perspective, +this works in *exactly* the same way as a Linux distro, providing a source-based +package manager (called lbmk) which patches sources and compiles coreboot images. +It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, +and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) +or [GRUB](https://www.gnu.org/software/grub/) to boot your operating +system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). + +We also provide an experimental U-Boot setup on x86, as a coreboot payload for +providing a minimal UEFI implementation. + +### Regarding revision 10 + +Normally, revisions would only be documented on +the [Libreboot 20241206 revisions page](libreboot20241206.Revisions.md), but +this revision contains *critical security fixes*, so it was decided that there +should be a full announcement, to ensure that more people see it. + +Summarised list of changes +------------------------ + +### Revision updates + +GRUB released *73 patches* to its main branch, fixing a large number of +security issues. You can read about them here: + + + +This updates GRUB to revision `4dc6166571645780c459dde2cdc1b001a5ec844c` +from 18 February 2025. Several OOB heap writes, buffer overflows, use after +frees and so on, are now prevented with this update. + +### Feature changes + +In addition to the security fixes, several out-of-tree fixes from Libreboot's +main branch have been merged for GRUB, fixing bugs in the xHCI driver, and +adding support for non-root USB2 hubs on platforms that use the `xhci` GRUB +tree. + +### Configuration changes + +Changes to the GRUB configuration have been made, to make scanning of LVM +volume/group names more reliable, including on full-disk-encryption setups. +More such changes are planned for the next major release; the current changes +are very minor. From 380d78a68ebb70c99d0115705c6984a4d06c3018 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 20 Feb 2025 09:16:42 +0000 Subject: [PATCH 357/399] fix date Signed-off-by: Leah Rowe --- site/news/libreboot20241206rev10.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/news/libreboot20241206rev10.md b/site/news/libreboot20241206rev10.md index d22adc7..d37f268 100644 --- a/site/news/libreboot20241206rev10.md +++ b/site/news/libreboot20241206rev10.md @@ -1,6 +1,6 @@ % Libreboot 20241206, 10th revision released! GRUB security fixes, better LVM scanning, non-root USB2 hub support % Leah Rowe -% 6 January 2025 +% 18 February 2025 Today's Libreboot 20241206 revision is the 10th revision in the Libreboot 20241206 stable release series. The changelog on this page is written, relative From 5589d09492117b8cdf26c8aa3bcbeec254e0b932 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 28 Feb 2025 08:48:25 +0000 Subject: [PATCH 358/399] update revnotes on the home page Signed-off-by: Leah Rowe --- site/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/index.md b/site/index.md index 80c6cfe..59bd950 100644 --- a/site/index.md +++ b/site/index.md @@ -28,8 +28,8 @@ of these payloads in a single image, and you choose one at boot time. **NEW RELEASE: The latest release is Libreboot 20241206, released on 6 December 2024. See: [Libreboot 20241206 release announcement](news/libreboot20241206.md) - the -newest revision release, Libreboot 20241206 revision 8, is from 6 -January 2025.** +newest revision release, Libreboot 20241206 revision 10, is from 18 +February 2025.** You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, as well as send your compatible hardware From 5109958992afd8ffd94ca84a1803943abbb9af01 Mon Sep 17 00:00:00 2001 From: "Skylar \"The Cobra\" Astaroth" Date: Wed, 5 Mar 2025 09:28:46 -0500 Subject: [PATCH 359/399] MA472LL/A tested and working There was also a formatting error that I corrected --- site/docs/install/macbook21.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/site/docs/install/macbook21.md b/site/docs/install/macbook21.md index c18e9de..e5db56b 100644 --- a/site/docs/install/macbook21.md +++ b/site/docs/install/macbook21.md @@ -85,7 +85,7 @@ Specifically (Order No. / Model No. / CPU) for the MacBook1,1: * MA255LL/A / A1181 (EMC 2092) / Core Duo T2500 *(tested - working)* * MA254LL/A / A1181 (EMC 2092) / Core Duo T2400 *(tested - working)* -* MA472LL/A / A1181 (EMC 2092) / Core Duo T2500 (untested) +* MA472LL/A / A1181 (EMC 2092) / Core Duo T2500 *(tested - working)* For the MacBook2,1: @@ -94,9 +94,11 @@ For the MacBook2,1: * MA701LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 *(tested - working)* * MB061LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7200 *(tested - + working)* * MA700LL/A / A1181 (EMC 2121) / Intel Core 2 Duo T7200 *(tested - working)* -* MB063LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 *(tested - working)* +* MB063LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 *(tested - + working)* * MB062LL/A / A1181 (EMC 2139) / Intel Core 2 Duo T7400 *(tested - working)* From 198b3c6d20f5219a26adbbec4e6a889e1b4180c4 Mon Sep 17 00:00:00 2001 From: can kurttekin Date: Sun, 9 Mar 2025 15:33:51 +0300 Subject: [PATCH 360/399] Turkish translations for couple of pages. --- site/contact.tr.md | 79 +++++++++++ site/docs/index.tr.md | 42 ++++++ site/docs/install/x200.tr.md | 246 +++++++++++++++++++++++++++++++++++ site/download.tr.md | 179 +++++++++++++++++++++++++ site/faq.tr.md | 234 +++++++++++++++++++++++++++++++++ site/freedom-status.tr.md | 207 +++++++++++++++++++++++++++++ site/git.tr.md | 161 +++++++++++++++++++++++ site/index.tr.md | 85 ++++++++++++ site/logo-license.tr.md | 14 ++ site/template-license.tr.md | 28 ++++ 10 files changed, 1275 insertions(+) create mode 100644 site/contact.tr.md create mode 100644 site/docs/index.tr.md create mode 100644 site/docs/install/x200.tr.md create mode 100644 site/download.tr.md create mode 100644 site/faq.tr.md create mode 100644 site/freedom-status.tr.md create mode 100644 site/git.tr.md create mode 100644 site/index.tr.md create mode 100644 site/logo-license.tr.md create mode 100644 site/template-license.tr.md diff --git a/site/contact.tr.md b/site/contact.tr.md new file mode 100644 index 0000000..c891ff1 --- /dev/null +++ b/site/contact.tr.md @@ -0,0 +1,79 @@ +--- +title: Libreboot Projesi ile İletişim +x-toc-enable: true +... + +Libreboot Önyüklenmiş Olarak Satın Alın +-------------------------------------- + +Profesyonel kurulum istiyorsanız, Minifree Ltd seçili donanımlarda [Libreboot önyüklenmiş](https://minifree.org/) cihazlar satmaktadır ve ayrıca makinenizi göndererek Libreboot kurulumu yaptırmak istiyorsanız [Libreboot önyükleme hizmeti](https://minifree.org/product/installation-service/) sunmaktadır. + +Libreboot'un kurucusu ve baş geliştiricisi Leah Rowe aynı zamanda Minifree Ltd'yi de işletmektedir; satışlar Libreboot projesi için finansman sağlamaktadır. + +Libreboot'u kendiniz kuruyorsanız, bunun için de destek mevcuttur. İletişim bilgileri (IRC, e-posta listesi vb.) aşağıdadır: + +Kullanıcı Desteği +---------------- + +Destek istemek istiyorsanız IRC veya Reddit önerilir (IRC önerilir). IRC ve Reddit hakkında bilgi için aşağıya bakın. + +E-posta Listesi +-------------- + +Libreboot'un şu e-posta listesi vardır: + + +E-posta adresi: [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) + +Geliştirme Tartışmaları +---------------------- + +Geliştirmeye nasıl yardımcı olabileceğiniz hakkında bilgi için [Git sayfasındaki](git.md) notlara bakın. + +Yamaları (çekme istekleri aracılığıyla) nasıl göndereceğinize dair talimatlar da o sayfada bulunmaktadır. + +IRC Sohbet Odası +--------------- + +IRC, Libreboot projesiyle iletişim kurmanın ana yoludur. Libera IRC'de `#libreboot` kanalı. + +Web sohbeti: + + +Libera, Özgür Yazılım projeleri için kullanılan en büyük IRC ağlarından biridir. Onlar hakkında daha fazla bilgiyi burada bulabilirsiniz: + +Tercih ettiğiniz istemciyi (weechat veya irssi gibi) kullanarak bağlanmak isterseniz, bağlantı bilgileri şu şekildedir: + +* Sunucu: `irc.libera.chat` +* Kanal: `#libreboot` +* Port (TLS): `6697` +* Port (TLS olmayan): `6667` + +TLS şifrelemesi etkin olarak `6697` portunu kullanmanızı öneririz. + +Kimlik doğrulama için SASL kullanmanız önerilir. Libera web sitesindeki şu sayfalar size nasıl yapılacağını anlatır: + +* WeeChat SASL kılavuzu: +* Irssi SASL kılavuzu: +* HexChat SASL kılavuzu: + +Genel olarak, IRC yazılımınızın sağladığı belgeleri kontrol etmelisiniz. + +Sosyal Medya +----------- + +Libreboot resmi olarak birçok yerde bulunmaktadır. + +### Mastodon + +Kurucu ve baş geliştirici Leah Rowe, Mastodon'da: + +* + +Leah'ya ayrıca şu e-posta adresinden ulaşılabilir: +[leah@libreboot.org](mailto:leah@libreboot.org) + +### Reddit + +Çoğunlukla destek kanalı olarak ve ayrıca haber duyuruları için kullanılır: + \ No newline at end of file diff --git a/site/docs/index.tr.md b/site/docs/index.tr.md new file mode 100644 index 0000000..485230a --- /dev/null +++ b/site/docs/index.tr.md @@ -0,0 +1,42 @@ +--- +title: Libreboot Özgür/Açık Kaynak BIOS/UEFI Yazılımını Yükleme +... + +Libreboot ile ilgili en son güncellemeler için her zaman [libreboot.org](https://libreboot.org/) adresini kontrol edin. Haberler ve sürüm duyuruları [ana haberler bölümünde](../news/) bulunabilir. + +[Libreboot hakkında Sıkça Sorulan Sorular](../faq.md). + +Yardıma mı ihtiyacınız var? +-------------------------- + +[Libreboot IRC](../contact.md) ve diğer kanallarda yardım alabilirsiniz. + +Profesyonel kurulum istiyorsanız, Minifree Ltd seçili donanımlarda [Libreboot ön yüklü](https://minifree.org/) sistemler satmaktadır ve ayrıca cihazınızı göndererek Libreboot kurulumu yaptırabileceğiniz bir [Libreboot ön yükleme hizmeti](https://minifree.org/product/installation-service/) sunmaktadır. + +Libreboot'un kurucusu ve baş geliştiricisi Leah Rowe aynı zamanda Minifree Ltd'nin sahibi ve işletmecisidir; satışlar Libreboot projesi için finansman sağlamaktadır. + +Libreboot'u yükleme +------------------ + +- [Libreboot nasıl yüklenir](install/) + +İşletim sistemlerini yükleme +--------------------------- + +- [Libreboot üzerine BSD işletim sistemleri kurulumu](bsd/) +- [Libreboot sistemine Linux kurulumu](linux/) + +Geliştiriciler için bilgiler +--------------------------- + +- [Libreboot kaynak kodunu nasıl derleyebilirsiniz](build/) +- [Yapı sistemi geliştirici dokümantasyonu](maintain/) +- [GRUB yükleyici](grub/) +- [U-Boot yükleyici](uboot/) + +Diğer bilgiler +------------- + +- [Libreboot Statik Site Oluşturucu](sitegen/) +- [Çeşitli](misc/) +- [Kod adları listesi](misc/codenames.md) \ No newline at end of file diff --git a/site/docs/install/x200.tr.md b/site/docs/install/x200.tr.md new file mode 100644 index 0000000..6909b8c --- /dev/null +++ b/site/docs/install/x200.tr.md @@ -0,0 +1,246 @@ +--- +title: Lenovo ThinkPad X200 / X200s / X200 Tablet'e Libreboot Kurulumu +x-toc-enable: true +... + +
    +
    +ThinkPad X200 +
    + +| ***Özellikler*** | | +|---------------------------|------------------------------------------------| +| **Üretici** | Lenovo | +| **Model** | ThinkPad X200/X200S/X200 Tablet | +| **Çıkış Tarihi** | Temmuz/Eylül 2009 | +| **Yonga Seti** | Intel Cantiga GM45 | +| **İşlemci** | Intel Core 2 Duo (Penryn ailesi) | +| **Ekran Kartı** | Intel GMA X4500MHD | +| **Ekran** | 1280x800/1440x900 TFT | +| **Bellek** | 1,2,3 veya 4GB (Resmi olmayan şekilde 8GB'a kadar yükseltilebilir) | +| **Mimari** | x86\_64 | +| **EC** | Tescilli | +| **Orijinal önyükleme yazılımı** | LenovoBIOS | +| **Intel ME/AMD PSP** | Mevcut. Tamamen devre dışı bırakılabilir. | +| **Flash yongası** | SOIC-8/SOIC-16/WSON-8 4MiB/8MiB (16MiB'a yükseltilebilir) | + +``` +W+: Üretici yazılımı olmadan çalışır; +N: Çalışmaz; +W*: Üretici yazılımı ile çalışır; +U: Test edilmedi; +P+: Kısmen çalışır; +P*: Üretici yazılımı ile kısmen çalışır +``` + +| ***Özellikler*** | | +|------------------|---------------------------------------| +| **Orijinal önyükleme yazılımı ile dahili flaşlama** | N | +| **Ekran** | W+ | +| **Ses** | W+ | +| **RAM Başlatma** | W+ | +| **Harici çıkış** | W+ | +| **Ekran parlaklığı** | P+ | + +| ***Desteklenen Yükleyiciler*** | | +|--------------------------------|-----------| +| **GRUB** | Çalışıyor | +| **SeaBIOS** | Çalışıyor | +| **SeaBIOS ve GRUB** | Çalışıyor | +
    + +Açık kaynak BIOS/UEFI yazılımı +------------------------- + +Bu belge, Lenovo ThinkPad X200, X200s veya X200 Tablet dizüstü bilgisayar anakartınıza +Libreboot'u nasıl kuracağınızı öğretecektir. Libreboot, tescilli BIOS/UEFI yazılımının +yerini alan bir [Özgür Yazılım](https://writefreesoftware.org/learn) projesidir. + +Tüm X200 dizüstü bilgisayarların uyumlu olduğuna inanılmaktadır. X200S ve X200 +Tablet de [yapılandırmaya bağlı olarak](#x200s) çalışacaktır. + +X200 anakartını X201 kasasına takmak mümkün olabilir, ancak bu henüz libreboot +projesi tarafından test edilmemiştir. Aynı durum X200S ve X201S arasında da +geçerli olabilir; bu da test edilmemiştir. *Büyük olasılıkla doğrudur.* + +X200 için iki olası flash yonga boyutu vardır: 4MiB (32Mbit) veya 8MiB (64Mbit). +Bu, avuç içi desteğinin altındaki flash yongasının türüne göre belirlenebilir: +4MiB SOIC-8, 8MiB SOIC-16'dır. + +*X200 dizüstü bilgisayarlar, libreboot'u flaşlamadan önce ME (ve bazen ek olarak AMT) +ile birlikte gelir. libreboot, değiştirilmiş bir tanımlayıcı kullanarak bunu devre +dışı bırakır ve kaldırır.* + +Flaşlama talimatları [../install/\#flashprog](../install/#flashprog) adresinde +bulunabilir. + +**NOT: Libreboot, 27 Ocak 2024 itibariyle artık [flashprog](https://flashprog.org/wiki/Flashprog) +kullanmaktadır; bu, flashrom'un bir çatallamasıdır. Bunun nedeni +[Libreboot 20240225 sürümünde](../../news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom) +açıklanmıştır.** + +Dell Latitude E6400 +------------------- + +**Henüz bir X200 satın almadıysanız: [Dell Latitude E6400](../install/latitude.md) +flaşlaması çok daha kolaydır; sökme işlemi gerekmez, Dell BIOS'tan Libreboot'a +tamamen yazılım üzerinden flaşlanabilir. Aynı donanım neslidir (GM45), aynı +işlemciler, video işlemci vb. ile.** + +EC güncellemesi {#ecupdate} +--------------------- + +En son EC yazılımı sürümüne güncellemeniz önerilir. [EC yazılımı](../../faq.md#ec-embedded-controller-firmware) +libreboot'tan ayrıdır, bu yüzden biz aslında bunu sağlamıyoruz, ancak hala +Lenovo BIOS kullanıyorsanız, hem BIOS hem de EC sürümünü güncelleyecek olan +Lenovo BIOS güncelleme yardımcı programını çalıştırabilirsiniz. Bakınız: + +- [../install/#flashprog](../install/#flashprog) +- +- [X200, X200s, X200si BIOS Güncellemesi](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-laptops/thinkpad-x200/downloads/ds015007) +- [X200t BIOS Güncellemesi](http://pcsupport.lenovo.com/au/en/products/laptops-and-netbooks/thinkpad-x-series-tablet-laptops/thinkpad-x200-tablet/downloads/ds018814) + +NOT: Bu işlem yalnızca Lenovo BIOS kullanırken yapılabilir. libreboot çalışırken +EC yazılımını nasıl güncelleyeceğiniz bilinmemektedir. libreboot yalnızca BIOS +yazılımının yerini alır, EC'nin değil. + +Güncellenmiş EC yazılımının daha iyi pil yönetimi gibi birçok avantajı vardır. + +Pil Geri Çağırma {#batteryrecall} +------------------------------ + +[21 Nisan 2015'te Lenovo, X200 ve X200S'in de dahil olduğu bazı ThinkPad modellerinde +bulunan Lenovo pillerinin geri çağırma kapsamını genişletti.](https://pcsupport.lenovo.com/cr/en/solutions/hf004122) +Etkilenip etkilenmediğinizi öğrenmek için [bu Lenovo aracını kullanın.](https://lenovobattery2014.orderz.com/) +Lenovo, geri çağrılan modellerin sahiplerinin "sistemi kapatmasını, pili çıkarmasını +ve ThinkPad'i yalnızca AC adaptörü ve güç kablosunu takarak çalıştırmasını" öneriyor. +Pil doğrulamasının ardından Lenovo, geri çağrılan pilleri ücretsiz olarak değiştirecektir. +X200/X200s için pil değiştirme talimatları [bu sayfada](https://pcsupport.lenovo.com/cr/en/parts/pd003507/) +bulunabilir. + +LCD uyumluluk listesi {#lcd_supported_list} +---------------------- + +LCD panel listesi (X200 panelleri burada listelenmiştir): + + +X200, X200S ve X200 Tablet için tüm LCD panellerin çalıştığı bilinmektedir. + +### AFFS/IPS paneller {#ips} + +#### X200 + + adresinden +uyarlanmıştır. + +TN ve IPS paneller arasındaki fark için wikipedia'ya bakın. IPS'ler normal bir +TN'den çok daha iyi renk/kontrasta sahiptir ve genellikle iyi görüş açılarına +sahip olacaktır. + +Bunlar X200 tabletten geliyor gibi görünüyor. Üzerinde cam dokunmatik ekran +koruması olmayan bir tane bulmanız gerekiyor (ancak bunu çıkarmak mümkün +olabilir). Ayrıca üzerinde sayısallaştırıcı olmamalıdır (yine, sayısallaştırıcıyı +çıkarmak mümkün olabilir). + +- BOE-Hydis HV121WX4-120, HV121WX4-110 veya HV121WX4-100 - ucuz sayılır, + bulmak zor olabilir + +- Samsung LTN121AP02-001 - yaygın olarak bulunur, ucuz + +*X200'ünüzde LED arkadan aydınlatmalı bir panel varsa, CCFL panellerle uyumlu +bir invertör ve kablo demeti de almanız gerekir. Hangi panel tipine sahip +olduğunuzu görmek için [\#led\_howtotell](#led_howtotell) bölümüne bakın. +İnvertör/kablo gerekiyorsa, parça numaraları şunlardır: bluetooth ve kamera +bağlantıları ile CCFL LVDS kablosu için 44C9909 ve invertör için 42W8009 +veya 42W8010.* + +Bunların parlak ve mat versiyonları vardır. Mat, yansıma önleyici anlamına +gelir ki bu istediğiniz şeydir (bu yazarın görüşüne göre). + +Ekranın nasıl değiştirileceği için HMM'ye (donanım bakım kılavuzu) bakın. + +Kaynaklar: + +- [ThinkPad Forums - X200'de Mat AFFS Panel](http://forum.thinkpads.com/viewtopic.php?f=2&t=84941) +- [ThinkPad Forums - X200 AFFS Modifikasyonu için Parçalar](http://forum.thinkpads.com/viewtopic.php?p=660662#p660662) +- [ThinkWiki.de - X200 Ekran Değişimi](http://thinkwiki.de/X200_Displayumbau) + +#### X200S + + X200S ekranlarının/ +montajlarının daha ince olduğunu açıklıyor. Kapağın tamamını normal bir X200/X201'den +gelen bir kapakla değiştirmeniz gerekiyor. + +### LED mi CCFL mi olduğunu nasıl anlarım? {#led_howtotell} + +Bazı X200'lerde LCD panellerinde CCFL arka aydınlatma, bazılarında LED arka +aydınlatma vardır. Bu aynı zamanda invertörlerin de değişeceği anlamına gelir, +bu yüzden paneli ve/veya invertörü değiştirirken dikkatli olmalısınız. (CCFL +invertör yüksek voltajlıdır ve LED arkadan aydınlatmalı bir paneli tahrip eder). + +CCFL'ler cıva içerir. CCFL arka aydınlatmalı bir X200 (doğru invertörle LED'e +değiştirilmemişse. Tedarikçinize danışın!) şunu söyleyecektir: *"Bu ürün Lityum +İyon Pil, Lityum Pil ve cıva içeren bir lamba içerir; yerel, eyalet veya federal +yasalara göre bertaraf edin"* (LED arkadan aydınlatmalı bir panele sahip olan +farklı bir şey söyleyecektir). + +Kurulum notları +------------------ + +Lenovo BIOS çalışıyorsa [harici flaşlama](spi.md) gereklidir. + +Bu kılavuz, ThinkPad X200'lerinde hala orijinal Lenovo BIOS'u bulunan ve +libreboot isteyenler içindir. Bu kılavuz ayrıca X200'ünüzü bozarsanız, +kurtarmanın nasıl yapılacağını bilmek için de (uyarlanarak) takip edilebilir. + +Orijinal Lenovo yazılımı çalışıyorsa, flash yongasına erişebilmek için klavyeyi +ve avuç içi desteğini çıkarmanız gerekecektir; yonga avuç içi desteğinin hemen +altındadır. Ardından harici bir SPI programlayıcı bağlayacak ve pil çıkarılmış +durumdayken kapalıyken yongayı harici olarak yeniden flaşlayacaksınız. + +NOT: Bu kılavuz yalnızca normal X200 için geçerlidir. X200S ve X200 Tablet +flaşlaması için lütfen libreboot.org'da bulunan diğer kılavuzları okuyun. + +### Flash yonga boyutu + +Flash yonga modelini ve boyutunu öğrenmek için x200'de bu komutu çalıştırın: + + flashprog -p internal + +### MAC adresi + +[mac\_address.md](mac_address.md) dosyasına bakın. + +### Prosedür + +Bu bölüm X200 içindir. Bu, X200S veya X200 Tablet için geçerli değildir +(bu sistemler için, flash yongası kartın diğer tarafında olduğundan anakartı +tamamen çıkarmanız gerekir). + +Bu vidaları çıkarın:\ +![](https://av.libreboot.org/x200/disassembly/0003.jpg) + +Klavyeyi nazikçe ekrana doğru itin, ardından kaldırın ve isteğe bağlı olarak +karttan bağlantısını kesin:\ +![](https://av.libreboot.org/x200/disassembly/0004.jpg) +![](https://av.libreboot.org/x200/disassembly/0005.jpg) + +Parmak izi okuyucusunun kablosunu çıkarın ve ardından avuç içi desteğini +sol ve sağ tarafından kaldırarak yukarı çekin:\ +![](https://av.libreboot.org/x200/disassembly/0006.1.jpg) +![](https://av.libreboot.org/x200/disassembly/0006.jpg) + +Bu, hem SOIC-8 hem de SOIC-16 için flash yongasının konumunu gösterir:\ +![](https://av.libreboot.org/x200/x200_soic16.jpg) +![](https://av.libreboot.org/x200/x200_soic8.jpg) + +Flash yongasının bir kısmını örten bandı kaldırın ve ardından klipsi bağlayın:\ +![](https://av.libreboot.org/x200/disassembly/0008.jpg) + +Artık libreboot'u kurmaya hazır olmalısınız. + +[SPI programlama talimatlarına](spi.md) bakın. + +İşiniz bittiğinde, sistemi tekrar bir araya getirin. Önyükleme yapmazsa, bu +platformda (coreboot'ta) raminit çok güvenilmez olduğu için diğer RAM modüllerini +deneyin. \ No newline at end of file diff --git a/site/download.tr.md b/site/download.tr.md new file mode 100644 index 0000000..e688586 --- /dev/null +++ b/site/download.tr.md @@ -0,0 +1,179 @@ +--- +title: Libreboot Özgür/Açık Kaynaklı BIOS/UEFI Yazılımını İndirin +x-toc-enable: true +... + +Yeni sürümler [ana haberler bölümünde](news/) duyurulur. + +Libreboot geliştirmesiyle daha çok ilgileniyorsanız, Git depolarına bağlantılar da içeren [libreboot geliştirme sayfasına](../git.md) gidin. [/docs/maintain/](docs/maintain/) sayfasında Libreboot'un nasıl bir araya getirildiği ve nasıl bakım yapılacağı açıklanmaktadır. Libreboot'u kaynak koddan derlemek istiyorsanız, [bu sayfayı okuyun](docs/build/). + +Libreboot Önyüklenmiş Olarak Satın Alın +-------------------------------------- + +Profesyonel kurulum istiyorsanız, Minifree Ltd seçili donanımlarda [Libreboot önyüklenmiş](https://minifree.org/) cihazlar satmaktadır ve ayrıca makinenizi göndererek Libreboot kurulumu yaptırmak istiyorsanız [Libreboot önyükleme hizmeti](https://minifree.org/product/installation-service/) sunmaktadır. + +Libreboot'un kurucusu ve baş geliştiricisi Leah Rowe aynı zamanda Minifree Ltd'yi de işletmektedir; satışlar Libreboot projesi için finansman sağlamaktadır. + +Güvenlik Uyarısı +--------------- + +**KURULUMDAN ÖNCE LÜTFEN [BU TALİMATLARI OKUYUN](docs/install/ivy_has_common.md), +AKSİ TAKDİRDE CİHAZINIZI BOZMUŞ OLABİLİRSİNİZ!! - Lütfen bağlantıya tıklayın ve oradaki talimatları +takip edin. Hatırlatma olarak, [işte bağlantı tekrar burada](docs/install/ivy_has_common.md).** + +GPG İmza Anahtarı +---------------- + +**En son sürüm, `stable` dizini altındaki Libreboot 20241206'dır.** + +### YENİ ANAHTAR + +Tam anahtar parmak izi: `8BB1 F7D2 8CF7 696D BF4F 7192 5C65 4067 D383 B1FF` + +Bu anahtar, 20240126 sürümünden *sonraki* Libreboot sürümleri içindir. 2024 yılındaki tüm Libreboot sürümleri için geçerlidir ve (erken iptal edilmezse) 26 Aralık 2028'de sona erecektir. + +Anahtarı buradan indirin: [lbkey.asc](lbkey.asc) + +Libreboot sürümleri GPG kullanılarak imzalanır. + +### ESKİ ANAHTAR + +Tam anahtar parmak izi: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856` + +Bu anahtar, 20160907 sürümünden *sonraki* ve Libreboot 20240126 sürümüne kadar olan Libreboot sürümleri içindir. Bu anahtar Aralık 2023'te *sona erdi*, bu nedenle Libreboot 20240126'dan sonraki sürümler için *yeni* anahtarı (yukarıya bakın) kullanmalısınız. + +Anahtarı buradan indirin: [lbkey.asc](lbkeyold.asc) + +Libreboot sürümleri GPG kullanılarak imzalanır. + +### ESKİ ESKİ ANAHTAR: + +Bu anahtar Libreboot 20160907 ve 20160907'den eski sürümler içindir: + +Tam anahtar parmak izi: CDC9 CAE3 2CB4 B7FC 84FD C804 969A 9795 05E8 C5B2 + +GPG anahtarı ayrıca bu dışa aktarılmış pubkey dökümüyle de indirilebilir: [lbkeyold.asc](lbkeyoldold.asc). + + sha512sum -c sha512sum.txt + gpg --verify sha512sum.txt.sig + +Git Deposu +--------- + +Bu sayfada düzenli sürüm arşivlerine bağlantılar listelenmiştir. + +Ancak, Libreboot'un en güncel sürümü için indirebileceğiniz bir Git deposu vardır. Buraya gidin: + +[Libreboot'u Git'ten nasıl indirirsiniz](git.md) + +HTTPS Yansıları {#https} +-------------- + +**En son sürüm, `stable` dizini altındaki Libreboot 20241206'dır.** + +Bu yansılar TLS (https://) şifrelemesi kullandığı için önerilir. + +Libreboot'u bu yansılardan indirebilirsiniz: + +* (Princeton +üniversitesi, ABD) +* (shapovalov.website, Ukrayna) +* (Kent +Üniversitesi, BK) +* (MIT üniversitesi, ABD) +* (koddos.net, Hollanda) +* (koddos.net, Hong Kong) +* (cyberbits.eu, Fransa) + +RSYNC Yansıları {#rsync} +-------------- + +Aşağıdaki rsync yansıları herkese açık olarak kullanılabilir: + +* (Kent Üniversitesi, +BK) +* (Princeton üniversitesi, ABD) +* (shapovalov.website, Ukrayna) +* (linux.ro, Romanya) +* (koddos.net, Hollanda) +* (koddos.net, Hong Kong) + +Bir yansı mı çalıştırıyorsunuz? Libreboot projesiyle iletişime geçin, bağlantı bu sayfaya eklenecektir! + +Rsync yansınızı web sunucunuz üzerinden kullanıma sunabilir ve ayrıca *kendi* yansınızı rsync üzerinden erişilebilir olacak şekilde yapılandırabilirsiniz. İnternette bir rsync sunucusunun nasıl kurulacağını gösteren birçok kaynak vardır. + +Kendi rsync yansınızı nasıl oluşturursunuz: + +Libreboot'un tüm sürüm arşivlerini yansılamak için kullanışlıdır. Bir rsync komutunu crontab'a koyabilir ve dosyaları web sunucunuzdaki bir dizine çekebilirsiniz. + +Tüm seti yansılayacaksanız, en az 25GiB ayırmanız önerilir. Libreboot'un rsync'i şu anda yaklaşık 12GiB'dir, bu nedenle 25GiB ayırmak size gelecek için bol alan sağlayacaktır. Minimum olarak, Libreboot yansınız için en az 15-20GiB alan kullanılabilir olduğundan emin olmalısınız. + +Resmi bir yansı barındırmak istiyorsanız, *libreboot.org yansısını kullanmanız şiddetle önerilir*. Aksi takdirde, sadece kendi yerel yansınızı oluşturmak istiyorsanız, libreboot.org'dan senkronize olan diğer yansılardan birini kullanmalısınız. + +Yansıyı oluşturmadan önce, web sunucunuzda bir dizin oluşturun. Örneğin: + + mkdir /var/www/html/libreboot/ + +Şimdi rsync'i çalıştırabilirsiniz, örneğin: + + rsync -avz --delete-after rsync://rsync.libreboot.org/mirrormirror/ /var/www/html/libreboot/ + +Bunu saatlik bir crontab'a koyabilirsiniz. Örneğin: + + crontab -e + +Ardından crontab'a bu satırı ekleyin ve kaydedin/çıkın (saatlik crontab): + + 0 * * * * rsync -avz --delete-after rsync://rsync.libreboot.org/mirrormirror/ /var/www/html/libreboot/ + +**Yukarıdaki rsync komutunda her yolun sonunda ileri eğik çizginin (/) olması son derece önemlidir. +Aksi takdirde, rsync çok garip davranacaktır.** + +**NOT: `rsync.libreboot.org` doğrudan halka açık değildir, yalnızca +IP'leri beyaz listeye alınanlar erişebilir. Bant genişliği nedeniyle, libreboot.org'da çalışan +güvenlik duvarı, belirli IP'ler dışında gelen rsync isteklerini engeller.** + +**Bir rsync yansısı çalıştırmak istiyorsanız, yukarıdaki üçüncü taraf yansılarından birinden senkronize edin +ve yansınızı kurun. Ardından IP adreslerinizin rsync kullanımı için beyaz listeye alınması için +Leah Rowe ile iletişime geçebilirsiniz - IP adresleri rsync ana bilgisayarınızın DNS A/AAAA +kayıtlarıyla eşleşiyorsa, bu kullanılabilir. libreboot.org'da saatlik bir crontab'da çalışan bir betik, +beyaz listeye alınmış rsync yansılarının A/AAAA kayıtlarını otomatik olarak alır ve güvenlik duvarından +geçmelerine izin veren kurallar ekler.** + +Rsync yansınızı düzenli olarak güncel tutmak istiyorsanız, bir crontab'a ekleyebilirsiniz. Bu sayfa size crontab'ın nasıl kullanılacağını anlatır: + + +HTTP Yansıları {#http} +------------- + +**En son sürüm, `stable` dizini altındaki Libreboot 20241206'dır.** + +UYARI: bu yansılar HTTPS olmadığı için şifrelenmemiştir. Trafiğiniz +kötü niyetli kişiler tarafından müdahaleye uğrayabilir. Doğru anahtara sahip olduğunuzu +varsayarak, özellikle GPG imzalarını kontrol ettiğinizden emin olun. Tabii ki, +HTTPS kullansanız bile bunu yapmalısınız. + +* (linux.ro, Romanya) +* (in-berlin.de, Almanya) + +FTP Yansıları {#ftp} +------------ + +**En son sürüm, `stable` dizini altındaki Libreboot 20241206'dır.** + +UYARI: FTP de HTTP gibi şifrelenmemiştir. Aynı riskler mevcuttur. + +* (Kent +Üniversitesi, BK) +* (linux.ro, Romanya) + +Statik Olarak Bağlanmış +---------------------- + +Libreboot, bazı sürümlerde mevcut kaynak koddan derlenmiş statik olarak bağlanmış yürütülebilir dosyalar içerir. Bu yürütülebilir dosyalar, birçok Linux dağıtımında çalışabilmeleri için belirli kitaplıkları içlerinde barındırır. + +GPL v2'ye uymak için, Libreboot projesi tarafından kaynak ISO'lar sağlanır. Bu kaynak ISO'ları `rsync` yansılarındaki `ccsource` dizininde bulabilirsiniz. + +20160907 sürümünden sonraki Libreboot sürümleri statik olarak bağlanmış ikili dosyalar dağıtmaz. Bunun yerine, bu sürümler normal Libreboot kaynak kodu arşivlerinin yeterli olduğu önceden derlenmiş ROM imajları dışında yalnızca kaynak içerir. Bu yeni sürümler bunun yerine derleme bağımlılıklarının kurulumunu otomatikleştirir ve çeşitli yardımcı programları kaynak koddan derlemek için belgelerde talimatlar sunar. + +Bu yürütülebilir dosyalar `flashprog` gibi yardımcı programlardır. \ No newline at end of file diff --git a/site/faq.tr.md b/site/faq.tr.md new file mode 100644 index 0000000..0700117 --- /dev/null +++ b/site/faq.tr.md @@ -0,0 +1,234 @@ +--- +title: Libreboot Yazılımı Hakkında Sık Sorulan Sorular +x-toc-enable: true +... + +**NOT: Libreboot, 27 Ocak 2024 itibariyle artık flashrom'un bir çatalı olan [flashprog](https://flashprog.org/wiki/Flashprog)'u standart olarak kullanmaktadır. +Bunun nedeni [Libreboot 20240225 sürümünde](news/libreboot20240225.md#flashprog-now-used-instead-of-flashrom) açıklanmıştır** + +Diğer adıyla Sıkça Sorgulanan Yanıtlar + +Yazılım Yüklemeden Önce Güvenliği Devre Dışı Bırakın +--------------------------------------------------- + +Dahili yazılım yüklemeden önce, `/dev/mem` korumalarını devre dışı bırakmanız gerekir. İşiniz bittiğinde tekrar etkinleştirdiğinizden emin olun. + +Bakınız: [/dev/mem korumasını devre dışı bırakma](docs/install/devmem.md) + +Libreboot Önyüklenmiş Olarak Satın Alın +-------------------------------------- + +Profesyonel kurulum istiyorsanız, Minifree Ltd seçili donanımlarda [Libreboot önyüklenmiş](https://minifree.org/) cihazlar satmaktadır ve ayrıca makinenizi göndererek Libreboot kurulumu yaptırmak istiyorsanız [Libreboot önyükleme hizmeti](https://minifree.org/product/installation-service/) sunmaktadır. + +Libreboot'un kurucusu ve baş geliştiricisi Leah Rowe aynı zamanda Minifree Ltd'yi de işletmektedir; satışlar Libreboot projesi için finansman sağlamaktadır. + +Önemli Konular +------------- + +### Libreboot'u kaynak koddan nasıl derlerim? + +[lbmk derleme talimatlarına](docs/build/) bakın. + +### Derleme sistemi nasıl çalışır? + +[lbmk bakım kılavuzuna](docs/maintain/) bakın. + +### CH341A Kullanmayın! + +Bu SPI programlayıcı çipinize ve bağlı olduğu anakarta zarar verecektir. + +Daha fazla bilgi için [docs/install/spi.md](docs/install/spi.md) sayfasındaki CH341A hakkındaki notları okuyun. + +### Nasıl Yardımcı Olabilirim + +Projeye önemli ölçüde yardımcı olmak için yetenekli bir geliştirici olmanız gerekmez. +Coreboot tarafından desteklenen bir kartınız varsa, onu Libreboot'a [port etmeyi](/docs/maintain/porting.md) düşünün. + +Libreboot'ta desteklenen bir kartınız varsa, lütfen test edici olmayı düşünün. +Test etmek minimal çaba gerektirir ve projeye gerçekten yardımcı olur. +ROM'lar yayınlanmadan önce test etmekle ilgileniyorsanız [kart bakımcıları belgelerine](/docs/maintain/testing.md) bakın. + +### GM45 ThinkPad'lerde Düzensiz Arka Işık + +Coreboot'ta kullanılacak doğru PWM değerini nasıl tespit edeceğimizi bilmiyoruz, bu yüzden coreboot'taki varsayılan değeri kullanıyoruz ve bu bazı CCFL panellerde bu soruna neden oluyor, ancak LED panellerde olmuyor. + +[belgeler: arka ışık kontrolü](../docs/misc/#finetune-backlight-control-on-intel-gpus) sayfasındaki notları takip ederek dağıtımınızda bunu çözebilirsiniz. + +### GM45 ThinkPad Ethernet Portu Otomatik Bağlanmıyor + +Bu, network-manager kullanan bazı sistemlerde gözlemlendi. Bu durum hem orijinal BIOS'ta hem de libreboot'ta oluyor. Bu donanımdaki bir özelliktir. Debian sistemlerinde, ethernet kablosunu bağladığınızda ağ servisini yeniden başlatmak bir çözüm yoludur: + + sudo service network-manager restart + +Systemd tabanlı dağıtımlarda şunu deneyebilirsiniz: + + sudo systemctl restart network-manager + +(servis adı, yapılandırmanıza bağlı olarak sizin için farklı olabilir) + +### PIKE2008 Modülü KGPE-D16 / KCMA-D8'i Donduruyor + +ASUS KCMA-D8 veya KGPE-D16'da PIKE2008 modülünden seçenek ROM'unu yüklemek sistemin önyüklemede donmasına neden olur. Bunu yükte kullanmak mümkündür (linuxboot gibi bir linux çekirdeği yükü kullanıyorsanız) veya normal SATA'dan önyükleme yapmak (SeaGRUB ve/veya SeaBIOS ile) ve sonra Linux'ta kullanmak mümkündür. Linux çekirdeği, seçenek ROM'unu yüklemeden PIKE2008 modülünü kullanabilir. + +### ThinkPad Dizüstü Bilgisayarlarda Çekirdek Panik Günlüklerini Nasıl Kaydederim? + +Bunu yapmanın en kolay yolu, çekirdeğin netconsole'unu kullanmak ve paniği yeniden oluşturmaktır. Netconsole iki makine gerektirir: panik olan (kaynak) ve çökme günlüklerini alacak olan (hedef). Kaynağın ethernet kablosuyla bağlı olması ve hedefin panik anında erişilebilir olması gerekir. Bu sistemi kurmak için, kaynakta root olarak (`source#`) ve hedefte normal kullanıcı olarak (`target$`) aşağıdaki komutları çalıştırın: + +1. Hedef makinede bir dinleyici sunucu başlatın (netcat iyi çalışır): + + `target$ nc -u -l -p 6666` + +2. Configfs'yi bağlayın (önyükleme başına yalnızca bir kez, zaten bağlı olup olmadığını + `mount | grep /sys/kernel/config` ile kontrol edebilirsiniz. Bağlı değilse + çıktı vermeyecektir). + + `source# modprobe configfs` + + `source# mkdir -p /sys/kernel/config` + + `source# mount none -t configfs /sys/kernel/config` + +3. Kaynağın ethernet arayüz adını bulun, `enp*` veya `eth*` şeklinde olmalıdır, + `ip address` veya `ifconfig` çıktısına bakın. + + `source# iface="enp0s29f8u1"` bunu değiştirin + + Hedef makinenin IPv4 adresini buraya girin: + + `source# tgtip="192.168.1.2"` bunu değiştirin + +4. Kaynak makinede netconsole günlükleme hedefi oluşturun: + + `source# modprobe netconsole` + + `source# cd /sys/kernel/config/netconsole` + + `source# mkdir target1; cd target1` + + `source# srcip=$(ip -4 addr show dev "$iface" | grep -Eo '[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+')` + + `source# echo "$srcip" > local_ip` + + `source# echo "$tgtip" > remote_ip` + + `source# echo "$iface" > dev_name` + + `source# arping -I "$iface" "$tgtip" -f | grep -o '..:..:..:..:..:..' > remote_mac` + + `source# echo 1 > enabled` + +5. Konsol günlük seviyesini hata ayıklamaya değiştirin: + + `source# dmesg -n debug` + +6. Günlüklemenin çalışıp çalışmadığını test edin, örneğin kaynakta bir USB + cihazı takıp çıkararak. Hedef makinede netcat'i (nc) başlattığınız + terminalde birkaç satır görünmelidir. + +7. Çekirdek paniğini yeniden oluşturmayı deneyin. + +Donanım Uyumluluğu +----------------- + +### Hangi sistemler libreboot ile uyumludur? + +Herhangi bir sistem kolayca eklenebilir, bu nedenle *uyumluluk* yalnızca libreboot'un kullandığı `lbmk` derleme sistemine entegre edilmiş kartlara atıfta bulunur. + +[Kurulum sayfası](docs/install/) uyumlu makineleri listeler. + +### Modern Intel Donanımlarında Özgürlük Tuzakları {#intel} + +Coreboot nominal olarak Özgür Yazılımdır, ancak desteklediği bazı x86 hedeflerinde hem Intel hem de AMD'de belirli satıcı kodları gerektirir. + +#### Intel Yönetim Motoru (ME) {#intelme} + +NOT: Aşağıdaki bilgiler biraz eskidir. Günümüzde Intel ME bir ARC yardımcı işlemcisinde çalışmamaktadır, bunun yerine ME yazılımı Minix işletim sistemi tabanlı x86 için yazılmış, değiştirilmiş bir Intel 486 tabanlı mimaride çalışır. Ancak, genel tasarım felsefesi ve işleyiş çoğunlukla aynıdır. + +Intel ME'ye sahip *çoğu* güncel Intel platformunda, BringUp'tan sonra Intel ME'yi devre dışı bırakmak artık mümkündür. Bakınız: + + + +İçinde Intel ME bulunan tüm GM45+ICH9M dizüstü bilgisayarlarda (ayrıca bu X4X+ICH10 masaüstü bilgisayarlar anlamına gelir), ME yazılımının önyükleme belleğinde bulunması gerekmez. Ya ME'yi devre dışı bırakan ve önyükleme belleğindeki bölgeyi kaldıran değiştirilmiş bir tanımlayıcı kullanılır ya da tanımlayıcısız bir kurulum kullanılır. Ancak, tüm modern Intel platformları ana önyükleme belleğinde bir Intel ME imajının bulunmasını gerektirir. + +Şimdi ana konuya geçelim: + +Haziran 2006'da Intel'in 965 Express Yonga Seti Ailesi (Grafik ve) Bellek Denetleyici Hub'ları veya (G)MCH'ler ve ICH8 G/Ç Denetleyici Ailesinde tanıtılan Intel Yönetim Motoru (ME), (G)MCH yongasında fiziksel olarak bulunan ayrı bir hesaplama ortamıdır. 2009'un 3. çeyreğinde, ilk nesil Intel Core i3/i5/i7 (Nehalem) CPU'ları ve Platform Denetleyici Hub'larının (PCH) 5 Serisi Yonga Seti ailesi, ICH'nin yerini alan PCH yongasının içinde daha sıkı entegre edilmiş bir ME (şimdi 6.0 sürümünde) getirdi. Böylece ME, ***2006 ortasından bu yana tüm Intel masaüstü, mobil (dizüstü) ve sunucu sistemlerinde mevcuttur***. + +ME, bir ARC işlemci çekirdeğinden (ME'nin sonraki nesillerinde diğer işlemci çekirdekleriyle değiştirilmiştir), kod ve veri önbelleklerinden, bir zamanlayıcıdan ve ek cihazların bağlandığı güvenli bir dahili veri yolundan oluşur. Bu cihazlar arasında bir kriptografi motoru, dahili ROM ve RAM, bellek denetleyicileri ve ana işletim sisteminin belleğine erişmek ve ME'nin sınırlı dahili RAM'ini desteklemek için korumalı bir harici bellek bölgesi ayırmak için bir ***doğrudan bellek erişimi (DMA) motoru*** bulunur. ME ayrıca bir Intel Gigabit Ethernet Denetleyicisi üzerinden kendi MAC adresiyle ***ağ erişimine*** sahiptir. Dahili ROM'da saklanan önyükleme programı, PC'nin SPI flash yongasından bir yazılım "manifestosu" yükler. Bu manifesto ***güçlü bir kriptografik anahtarla*** imzalanmıştır ve ME yazılımının sürümleri arasında farklılık gösterir. Manifesto belirli bir Intel anahtarıyla imzalanmamışsa, önyükleme ROM'u yazılımı yükleyip çalıştırmaz ve ME işlemci çekirdeği durdurulur. + +ME yazılımı sıkıştırılmıştır ve içeriklerinin güvenli kriptografik hash'leriyle birlikte manifestoda listelenen modüllerden oluşur. Bir modül işletim sistemi çekirdeğidir ve "ThreadX" adlı ***özel bir gerçek zamanlı işletim sistemi (RTOS) çekirdeğine*** dayanır. Geliştirici Express Logic, ThreadX için lisanslar ve kaynak kodu satar. Intel gibi müşterilerin ThreadX kaynak kodunu açıklaması veya alt lisans vermesi yasaktır. Başka bir modül, bir ***Java sanal makinesi*** ve kriptografi, güvenli depolama vb. için önceden yüklenmiş Java sınıfları kümesinden oluşan Dinamik Uygulama Yükleyicisidir (DAL). DAL modülü, PC'nin HDD veya SSD'sinden ek ME modülleri yükleyip çalıştırabilir. ME yazılımı ayrıca flash bellek alanında Intel Aktif Yönetim Teknolojisi (AMT), bir Güvenilir Platform Modülü (TPM) uygulaması, Intel Boot Guard ve ses ve video DRM sistemleri dahil olmak üzere bir dizi yerel uygulama modülü içerir. + +Intel "vPro" markasının bir parçası olan Aktif Yönetim Teknolojisi (AMT) uygulaması, uzak kullanıcıların PC'yi açmasını, kapatmasını, bilgi görüntülemesini ve başka şekillerde yönetmesini sağlayan bir Web sunucusu ve uygulama kodudur. PC ***kapalıyken bile uzaktan kullanılabilir*** (Wake-on-Lan aracılığıyla). Trafik SSL/TLS kitaplıkları kullanılarak şifrelenir, ancak tüm büyük SSL/TLS uygulamalarının çok ses getiren güvenlik açıkları olduğunu hatırlayın. AMT uygulamasının kendisinin, rootkit'ler ve keylogger'lar geliştirmek ve bir PC'nin yönetim özelliklerine gizlice şifreli erişim kazanmak için kullanılan ***[bilinen güvenlik açıkları](https://en.wikipedia.org/wiki/Intel_Active_Management_Technology#Known_vulnerabilities_and_exploits)*** vardır. ME'nin PC'nin RAM'ine tam erişimi olduğunu unutmayın. Bu, ME'nin bilgisayarınızdaki tüm verileri görebileceği anlamına gelir. + +ME yazılımı, bilgisayarınızın donanımını başlatmak için gereken düşük seviyeli kodun yanı sıra, Intel'in sizin bilgisayarınızı kontrol etmesini sağlayan bir arka kapı görevi görür. Bu, Intel'in bilgisayarınızı uzaktan kontrol etmesine, verilerinize erişmesine ve bilgisayarınızı kapatmasına olanak tanır. ME, bilgisayarınızın RAM'ine tam erişime sahiptir ve ağ üzerinden iletişim kurabilir. + +ME'nin varlığı, bilgisayarınızın güvenliğini ve gizliliğini tehlikeye atar. ME'nin varlığı, bilgisayarınızın güvenliğini ve gizliliğini tehlikeye atar. Bu nedenle, ME'yi devre dışı bırakmak veya kaldırmak önemlidir. Libreboot, ME'yi devre dışı bırakır veya kaldırır, böylece bilgisayarınızın kontrolünü size geri verir. + +### AMD Platform Security Processor (PSP) {#amd} + +AMD Platform Security Processor (PSP), AMD'nin Intel ME'ye benzer bir teknolojisidir. PSP, AMD işlemcilerinde bulunan bir ARM işlemci çekirdeğidir. PSP, ME gibi, bilgisayarınızın RAM'ine tam erişime sahiptir ve ağ üzerinden iletişim kurabilir. + +PSP, AMD'nin bilgisayarınızı kontrol etmesini sağlayan bir arka kapı görevi görür. Bu, AMD'nin bilgisayarınızı uzaktan kontrol etmesine, verilerinize erişmesine ve bilgisayarınızı kapatmasına olanak tanır. PSP, bilgisayarınızın RAM'ine tam erişime sahiptir ve ağ üzerinden iletişim kurabilir. + +PSP'nin varlığı, bilgisayarınızın güvenliğini ve gizliliğini tehlikeye atar. Bu nedenle, PSP'yi devre dışı bırakmak veya kaldırmak önemlidir. Libreboot, PSP'yi devre dışı bırakır veya kaldırır, böylece bilgisayarınızın kontrolünü size geri verir. + +### Libreboot'u Nasıl Kurarım? + +Libreboot'u kurmanın birkaç yolu vardır: + +1. Minifree Ltd'den [Libreboot önyüklenmiş](https://minifree.org/) bir bilgisayar satın alabilirsiniz. +2. Uyumlu bir bilgisayarınız varsa, [Libreboot önyükleme hizmeti](https://minifree.org/product/installation-service/) için Minifree Ltd'ye gönderebilirsiniz. +3. [Kurulum talimatlarını](docs/install/) takip ederek kendiniz kurabilirsiniz. + +### Libreboot'u Kaynak Koddan Nasıl Derlerim? + +[lbmk derleme talimatlarına](docs/build/) bakın. + +### Derleme Sistemi Nasıl Çalışır? + +[lbmk bakım kılavuzuna](docs/maintain/) bakın. + +### Libreboot'u Güncellemeli miyim? + +Evet, Libreboot'u güncel tutmanız önerilir. Her yeni sürüm, güvenlik düzeltmeleri ve yeni özellikler içerir. Güncelleme talimatları için [kurulum sayfasına](docs/install/) bakın. + +### Libreboot'u Kaldırabilir miyim? + +Evet, Libreboot'u kaldırabilir ve orijinal BIOS/UEFI yazılımınıza geri dönebilirsiniz. Ancak, bu işlem risklidir ve dikkatli yapılmalıdır. Talimatlar için [kurulum sayfasına](docs/install/) bakın. + +### Libreboot Hangi İşletim Sistemlerini Destekler? + +Libreboot, [Linux](docs/linux/) ve [BSD](docs/bsd/) işletim sistemlerini iyi destekler. Windows gibi özgür olmayan işletim sistemleri de çalışabilir, ancak bu sistemler Libreboot'un özgürlük felsefesiyle çelişir. + +### Libreboot'ta Sorun Yaşıyorum. Ne Yapmalıyım? + +1. [SSS sayfasını](faq.html) kontrol edin - sorununuzun yanıtı burada olabilir. +2. [Belgeleri](docs/) okuyun - sorununuzla ilgili bilgi burada olabilir. +3. [IRC kanalına](https://web.libera.chat/#libreboot) katılın - burada yardım isteyebilirsiniz. +4. [E-posta listesine](https://lists.sr.ht/~libreboot/libreboot) yazın - burada da yardım isteyebilirsiniz. +5. [Hata takipçisinde](https://codeberg.org/libreboot/lbmk/issues) sorununuzu arayın veya yeni bir hata raporu oluşturun. + +### Libreboot'a Nasıl Katkıda Bulunabilirim? + +Libreboot'a birçok şekilde katkıda bulunabilirsiniz: + +1. [Yeni anakartlar ekleyerek](docs/maintain/porting.md) +2. [Test ederek](docs/maintain/testing.md) +3. [Belgeleri geliştirerek](docs/maintain/) +4. [Çeviri yaparak](news/translations.md) +5. [Hataları düzelterek](https://codeberg.org/libreboot/lbmk/issues) +6. [Bağış yaparak](https://www.patreon.com/libreleah) + +### Libreboot'un Geleceği Nedir? + +Libreboot, özgür yazılım topluluğunun bir parçası olarak gelişmeye devam edecektir. Hedeflerimiz: + +1. Daha fazla donanım desteği eklemek +2. Kullanıcı deneyimini iyileştirmek +3. Güvenliği artırmak +4. Belgeleri geliştirmek +5. Topluluk katılımını artırmak + +### Libreboot'u Ticari Olarak Kullanabilir miyim? + +Evet, Libreboot [GNU Genel Kamu Lisansı](https://www.gnu.org/licenses/gpl-3.0.html) altında lisanslanmıştır. Bu, yazılımı özgürce kullanabileceğiniz, değiştirebileceğiniz ve dağıtabileceğiniz anlamına gelir. Ancak, değişikliklerinizi de aynı lisans altında paylaşmanız gerekir. \ No newline at end of file diff --git a/site/freedom-status.tr.md b/site/freedom-status.tr.md new file mode 100644 index 0000000..6968568 --- /dev/null +++ b/site/freedom-status.tr.md @@ -0,0 +1,207 @@ +--- +title: Libreboot Açık Kaynak BIOS/UEFI için Yazılım ve Donanım Özgürlüğü Durumu +x-toc-enable: true +... + +Özgürlük olarak özgür +---------------------- + +Bu sayfa, Kasım 2022'de kabul edilen Libreboot'un [İkili Blob Azaltma Politikası](news/policy.md)'nın nasıl uygulandığını, özellikle de "eğer özgür yazılım kullanılabiliyorsa, kullanılmalıdır" diyen satırı nasıl uygulandığını belgeliyor. + +Libreboot, donanım başlatma için [coreboot](https://coreboot.org/) kullanır. Coreboot nominal olarak [*özgür* veya *açık kaynak* yazılım](https://writefreesoftware.org/) olmasına rağmen, *bazı* (hepsi değil) platformlarda coreboot, raminit gibi şeyler için belirli [satıcı dosyaları](https://en.wikipedia.org/wiki/Binary_blob) gerektirir. Libreboot tarafından şu anda desteklenen tüm kartlar, coreboot'un kendisinden tamamen *özgür*, *libre* veya *açık kaynak* kodla başlatılabilir, çünkü Libreboot şu anda yalnızca bu tür anakartlara odaklanmaktadır. Libreboot'un amacı, coreboot'tan tüm anakartları desteklemektir. + +Libreboot, Kasım 2022'de daha fazla donanımı (coreboot'tan) desteklemek için daha *pragmatik* bir [ikili blob azaltma politikası](news/policy.md) benimsemiştir, böylece çoğu insanın aksi takdirde kullanacağı tamamen tescilli önyükleme yazılımına kıyasla *yazılım özgürlüğünü* artıran coreboot'u daha fazla insanın kullanabilmesini sağlamak için; Libreboot'un modern politikası bu nedenle pragmatiktir ve *yazılım özgürlüğü* davasını daha da ileriye taşır. + +Libreboot'un *önceki* politikası *tüm ikili blobları yasaklamaktı*. Bu, coreboot'u kullanabilecek insan sayısını azaltarak Özgür Yazılım hareketine aktif olarak *zarar verdi*, çünkü bugüne kadar Libreboot gibi bir şey henüz yok. Libreboot'un ana amacı, coreboot'u coreboot fikrini seven ancak sıfırdan yapılandırmak için yeterli olmayan normal, teknik olmayan kullanıcılar için *kullanımı mümkün olduğunca kolay hale getirmektir*. Bu zarar, Kasım 2022'de *düzeltildi*. + +### Coreboot mimarisi + +Belirli konular hakkında bağlam için lütfen okuyun: + + + +Coreboot'ta %100 libre başlatma +------------------------------- + +Bu ayrımın (özellikle coreboot'un başlatma tarafına atıfta bulunarak) neden önemli olduğu, aşağıdaki bölümlerde daha net hale gelecektir: + +Libreboot'ta evrensel bir muafiyet yapılır, CPU mikro kod güncellemelerinin mevcutsa dahil edilmesini (okuyun: proje politikası gereği) zorunlu kılar. Bunun nedenleri hakkında daha fazla bilgi edinmek için şu makaleyi okuyabilirsiniz: + +[CPU mikro kod güncellemeleri **TAMAM**](news/policy.md#more-detailed-insight-about-microcode) + +[Libreboot 20230423'ten sonraki sürümler, mikro kod hariç tutulan ayrı ROM'lar sağlayacak, varsayılan olanlarla birlikte mikro kod dahil edilecektir.](news/microcode.md) + +Intel platformları +------------------ + +### Tanımlayıcı vs tanımlayıcı olmayan yapılandırma + +Libreboot, Intel platformlarını kullanan birkaç anakartı destekler. Bunlardan, bu makale için esasen iki tür makine vardır: + +* Tanımlayıcı olmayan yapılandırma +* Tanımlayıcı tabanlı yapılandırma + +*Tanımlayıcı* ne anlama gelir? Geleneksel olarak, Intel makinelerindeki ana flash IC (önyükleme yazılımını içeren, genellikle *BIOS* olarak adlandırılır), yalnızca *x86* yürütülebilir kod içerir ve CPU, bellek denetleyicisi ve çevre birimleri gibi tüm donanımları başlatmaktan sorumludur. Bu, *tanımlayıcı olmayan* yapılandırma olarak adlandırılacaktır; bu tür yapılandırmalarda, Intel ME yazılımı varsayılan olarak yoktur. + +Bir *tanımlayıcı* yapılandırmasında, flash aşağıdaki gibi bölgelere ayrılmıştır: + +* Intel flash tanımlayıcı: her zaman flash'ın ilk 4KiB'si. Makine için ikili kodlanmış yapılandırma verileri ve bölgeler (bu veya aşağıdaki diğerleri gibi) burada tanımlanır. Bazı açılardan, bunu bir sabit diskteki *Ana Önyükleme Kaydı*na benzetebilirsiniz. +* Intel GbE NVM (gigabit ethernet kalıcı bellek): yerleşik Intel gigabit ethernet cihazı için ikili kodlanmış yapılandırma verileri, eğer varsa. MAC adresi, NIC'nin hangi hızda çalışması gerektiği, PCI kimlikleri, *LED yanıp sönme hızı* ve daha fazlası gibi birçok ayarı içerir. Bir Intel olmayan NIC kullanılıyorsa, bu flash bölgesi mevcut olmayacaktır. +* ME (Intel Yönetim Motoru): varsayılan durumunda *kötü* bir güvenlik açığı olan ME, tam ağ bağlantısı ile uzaktan yönetim gibi birçok özellik sağlar. ME, ana CPU'dan ayrı özel bir yardımcı işlemcidir ve başlatma yazılımı ve işletim sistemi bu özel bölgeden ana önyükleme flash'ına yüklenir. Daha fazla bilgi [SSS'de](faq.md#intelme) mevcuttur - ME yazılımının başka bir yerde mevcut olduğu durumlarda, Libreboot ya onu kaldırır ya da (`me_cleaner` programı ile) [yeniden yapılandırır](https://github.com/corna/me_cleaner/wiki/How-does-it-work%3F) ve makine başlatma sırasında devre dışı bırakılır. +* Platform bölgesi: genellikle donanım satıcısı tarafından yerleştirilen bir dizi dize olan program dışı veriler. +* BIOS bölgesi: bu, CPU, bellek denetleyicisi ve çevre birimlerini başlatmaktan sorumlu olan ana önyükleme yazılımını içerir ve makineyi programları çalıştırabilecek bir duruma getirir (muhtemelen bir önyükleyici, ardından bir işletim sistemi). Coreboot kodu (Libreboot tarafından sağlanır) buraya gider. + +*Temel olarak*, bu tür "bölgeleri" bir sabit diskteki *bölümlere* benzetebilirsiniz. Önemli olan, flash IC'nin bu tür bölgelere *bölünmüş* olmasıdır, her bölge belirli bir amaç için tasarlanmıştır. + +*Tanımlayıcı* ve *GbE* bölgelerinin içeriği Intel veri sayfaları tarafından tanımlanmıştır, ancak bu veri sayfaları genellikle *ayrılmış* bölümler içerir ve bu bölümler belgelenmemiş olarak bırakılır. Yıllar boyunca yapılan tersine mühendislik çalışmaları bu boş noktaların bazılarını belgelemiştir. + +### Libreboot Intel ME görüntülerini dağıtmaz + +Libreboot, Git deposunda veya sürümlerde Intel ME yazılımını hiçbir şekilde dağıtmaz. Gerektiğinde, Libreboot, `me_cleaner` programını çalıştırarak otomatik olarak indirip kuran komut dosyaları sağlar. Bu tamamen otomatikleştirilmiştir. Lütfen okuyun: + + + +Libreboot yapılandırmalarında, Intel ME'nin *BringUp* kodu kalır. ME BringUp (BUP), ME'nin başlatılmasını sağlayan coreboot'a benzer; aynı benzetmeyle, Libreboot'un bunu yapılandırma şekli, *coreboot*'u bir yükleyici olmadan çalıştırmaya benzer. ME başlatılır, kod çalıştırabilecek bir duruma getirilir, ancak sonra *kod çalıştırmaz*. Bu nedenle *devre dışı bırakılmıştır*. + +Başka bir deyişle, *nötrleştirilmiş* bir Intel ME kurulumu, hem yazılım özgürlüğü hem de güvenlik açısından tamamen zararsızdır. Kullanılmayan, kullanılmayan bir işlemci haline gelir ve gerçek dünyadaki çoğu insanın kullanmak istemeyeceği bir şeydir. Bu perspektifle, Intel ME'nin ortalama kullanıcı için artık tamamen önemsiz olduğunu görüyoruz. + +*Yayınlanmış* Libreboot ROM görüntüleri, önceden derlenmiş olarak sağlanır, ME yazılımını hiç içermez; bir sürüm hazırlarken otomatik yayın komut dosyaları tarafından temizlenirler. Kaynaktan derliyorsanız, Libreboot yapı sistemi bunu otomatik olarak indirir (satıcıdan), nötrleştirir ve ardından ekler; sürüm ROM'larında, yapı sistemleri tarafından kullanılan aynı komut dosyaları manuel olarak çalıştırılabilir ve aynı sonucu elde eder. Lütfen okuyun: [docs/install/ivy_has_common.md](docs/install/ivy_has_common.md) + +ME yazılımı, neredeyse tüm Intel platformlarında *gereklidir*, aksi takdirde makine 30 dakika sonra *kapanır* (veya ME, CPU'nun sıfırlamadan çıkıp çıkmayacağını kontrol ediyorsa, hiç başlatmaz). + +### Intel ME kaldırma/devre dışı bırakma hakkında daha fazla bilgi + +*Libreboot*, GM45 platformlarında ICH9M güney köprüsü ile ME yazılımını tamamen kaldırmanın bir yolunu sağlar. Bunlar dizüstü bilgisayarlardır: ThinkPad X200/T400/T500/W500 ve bu nesil. + +Yukarıda bahsedildiği gibi, daha yeni platformlarda `me_cleaner` kullanılır. + +Belirli türde satıcı dosyaları hakkında notlar +--------------------------------------------- + +### VGA seçenek ROM'ları + +*Yerel* video başlatma, coreboot tarafından sağlanan kaynak kodu altında tüm desteklenen Intel platformları için desteklenir ve *etkindir*. + +Bazı durumlarda, bir dizüstü bilgisayar coreboot tarafından desteklenmeyen bir grafik yongasına sahip olabilir. Bu durumda, *VGA Seçenek ROM* adı verilen bir satıcı dosyası kullanılmalıdır. Libreboot, Dell Latitude E6400'ün Nvidia GPU modelleri için deneysel bir dalda VGA ROM'unu otomatik olarak indiren deneysel desteğe sahiptir. Bu şu anda sürümlerde veya `lbmk`'nin kararlı dalında mevcut değildir. + +Diğer durumlarda, bir makine *iki* grafik cihazına sahip olabilir, bunlardan biri coreboot tarafından sağlanan yerel (özgür/libre) başlatma ile. Bu durumlarda, diğer cihaz için bir VGA ROM eklemek mümkündür; Libreboot şu anda bunun için belgelerden yoksundur, ancak test edilmiştir. Örnek: bazı ivybridge veya haswell thinkpad'lerde çift Intel/Nvidia grafik. + +*Eklenti* GPU'lar için, SeaBIOS (yükleyici) genellikle kartta bulunan bir VGA ROM'u tarayabilir ve çalıştırabilir. Bu, Libreboot'un desteklediği belirli masaüstü anakartlarda test edilmiştir ve gayet iyi çalışır; Libreboot'un bu dosyaları hiç ele alması gerekmez. + +Libreboot'un varsayılanı, pratikte mümkün olduğunda her zaman özgürlüktür. Bu ek GPU'ları kullanmak isteyen kullanıcılar, Libreboot politikasındaki aşağıdaki paragrafı dikkate almalıdır: + +*"Yukarıdaki ilkeler varsayılan yapılandırmalar için geçerli olmalıdır. Ancak, libreboot kullanıcıların istediklerini yapmalarına izin verecek şekilde yapılandırılabilir olmalıdır."* - yapılandırılabilir, kesinlikle öyledir! Bkz: [docs/maintain/](docs/maintain/) + +### Bellek denetleyici başlatma + +Libreboot, 20230319 veya daha yüksek sürümlerde Haswell'e kadar olan tüm Intel bellek denetleyicileri için *tamamen libre* başlatma sağlar; Broadwell'de Intel MRC kullanılır ve Skylake/yeni platformlarda FSP-M kullanılır. + +ARM platformları (chromebook'lar) +--------------------------------- + +Çoğunlukla özgür yazılım, `daisy` ve `peach` anakartlarında satıcıdan BL1 önyükleyici dosyalarının dahil edilmesi gerekliliği dışında. Bunlar: + +* HP Chromebook 11 G1 (daisy-spring) **(sorunlar nedeniyle Libreboot'tan kaldırıldı (daha sonra yeniden eklenecek))** +* Samsung Chromebook XE303 (daisy-snow) **(aynı şekilde)** +* Samsung Chromebook 2 13" (peach-pi) **(aynı şekilde)** +* Samsung Chromebook 2 11" (peach-pit) **(aynı şekilde)** +* nyan-* chromebook'lar da geçici olarak kaldırıldı, ancak Libreboot'ta %100 özgür yazılım + +Her kart için özel olarak satıcı dosyalarının listesi +----------------------------------------------------- + +Bu makale, Libreboot'ta hangi satıcı dosyalarının yer aldığını ayrıntılı bir genel bakışla açıklamıştır. Yine, coreboot'tan tamamen libre başlatma *tüm şu anda desteklenen kartlarda* mevcuttur. + +*Coreboot'tan* bu kritik bir yönüdür, ancak Libreboot'un tam kapsamı, bazı durumlarda coreboot dışında yazılım içeren ana flash IC'dir. + +İşte her kart için bu dosyaların listesi: + +### Intel/x86 + +#### Intel ME: + +Bu hedeflerde nötrleştirilmiş ME gereklidir: + +`dell9020mt_nri_12mb`, `dell9020sff_nri_12mb`, `e5420_6mb`, `e5520_6mb`, `e5530_12mb`, `e6220_10mb`, `e6230_12mb`, `e6320_10mb`, `e6330_12mb`, `e6420_10mb`, `e6430_12mb`, `e6520_10mb`, `e6530_12mb`, `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8200sff_4mb`, `hp8200sff_8mb`, `hp820g2_12mb`, `hp8300cmt_16mb`, `hp8300usdt_16mb`, `hp8460pintel_8mb`, `hp8470pintel_16mb`, `hp8560w_8mb`, `hp9470m_16mb`, `t1650_12mb`, `t420_8mb`, `t420s_8mb`, `t430_12mb`, `t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230t_12mb`, `x230t_16mb`, `dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb`, `t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb` + +Belirtildiği gibi, Libreboot bunu ME'nin artık bir güvenlik tehdidi olmadığı bir durumda sağlar. Kendini başlatır, ancak sonra hiçbir şey yapmaz, bu nedenle devre dışı bırakılmıştır. Bu, `me_cleaner` kullanılarak yapılır. Bkz: + +MEv11 tabanlı platformlarda, ThinkPad T480 ve Dell OptiPlex 3050 Micro gibi, Intel Boot Guard'ı devre dışı bırakmak için [deguard](docs/install/deguard.md) da kullanıyoruz. + +#### KBC1126 EC yazılımı (HP dizüstü bilgisayarlar): + +Bu, şu hedefler için geçerlidir: `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8470pintel_16mb`, `hp9470m_16mb`. + +[EC yazılımı](faq.md#ec-embedded-controller-firmware) ana önyükleme flash'ına eklenir, ayrı bir IC'de değil. Bu *daha iyidir* çünkü gelecekte libre yedeklerin kurulumu daha kolay olur ve tersine mühendislik çok daha kolay hale gelir. Libreboot'un yapı sistemi, bu tür yazılımları bir komut dosyasında ele alır ve yapı sürecinde otomatik olarak indirir. Libreboot 20230423'ten itibaren EC yazılımını temizler ve coreboot yapılandırması tarafından her kart için tanımlanan doğru ofsete `cbfstool` ile eklemek için özel bir komut dosyasında işlevsellik sağlar. + +#### Intel FSP + +Coreboot tarafından bazı kartlarda kullanılan romstage ve raminit sağlar. Libreboot'ta, aşağıdaki yapı hedefleri için kullanıyoruz: + +`t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb`, `dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb` + +#### SMSC SCH5545 Çevresel Kontrol + +Bu, Dell Precision T1650'de fan kontrolü için gereken küçük bir yazılımdır. + +#### CPU mikro kodu: + +[*Mikro kod* güncellemeleri](faq.md#microcode) varsayılan olarak *tüm* x86 platformlarında sağlanır. Teknik olarak gerekli değildir, ancak şiddetle tavsiye edilir. Kaldırmak için şunu yapın: + + cbfstool filename.rom remove -n cpu_microcode_blob.bin + +ASUS KFSN4-DRE, KCMA-D8 ve KGPE-D16 kartlarında bunun yerine şunu yapın: + + cbfstool filename.rom remove -n microcode_amd.bin + cbfstool filename.rom remove -n microcode_amd_fam15h.bin + +[Libreboot 20230423'ten sonraki sürümler, mikro kod hariç tutulan ayrı ROM'lar sağlayacak, varsayılan olanlarla birlikte mikrokod dahil edilecektir.](news/microcode.md) + +Mikro kod güncellemelerinin kaldırılması sistem kararlılığını olumsuz yönde etkileyecek, standart olmayan bozuk davranışlar getirecek ve makinenin düzgün önyükleme yapamamasına neden olabilecektir. Diğer durumlarda, S3 askıya alma/devam ettirme gibi özellikleri bozabilir. + +CPU mikro kod dosyaları varsayılan olarak tüm x86 kartlarında dahil edilir. Çoğu durumda gerekli olmasa da, kullanılmaları şiddetle tavsiye edilir. Nedenleri için bkz: +[news/policy.md#more-detailed-insight-about-microcode](news/policy.md#more-detailed-insight-about-microcode) + +#### Intel Flash Tanımlayıcı (IFD): + +Intel Flash Tanımlayıcıları bazı kartlarda blob olarak sağlanır, ancak bunlar *yazılım* blobu değildir. Bunlar ikili formatta sağlanan yapılandırmalardır ve özgür yazılım tarafından tamamen okunabilir. Örneğin: + +* Coreboot'un `ifdtool` programı, Intel flash tanımlayıcılarını değiştirmek için kapsamlı özelliklere sahiptir. +* Coreboot'un `bincfg` programı, insan tarafından okunabilir bir formatta herhangi bir ikili formatı tanımlayabilen bir `.spec` dosyasından herhangi bir ikili oluşturur. Çeşitli platformlar için birkaç flash tanımlayıcı içerir, ancak Libreboot bunları kullanmaz. + +Intel GbE NVM yapılandırması (gigabit NIC için ikili kodlanmış yapılandırma verileri): + +* Libreboot'un `nvmutil` programı GbE NVM görüntülerini değiştirebilir + +### ARM/chromebook'lar + +#### BL1 önyükleyici (peach/daisy): + +BL1 önyükleyici şunlar için gereklidir: `daisy_snow`, `daisy_spring` ve `peach_pit`. + +Bu kartlar *şu anda* mevcut değil. Yapı sistemi henüz BL1 dosyalarını otomatik olarak eklemediği için Libreboot'tan kaldırıldılar. Kartların, Libreboot'taki Alper'in U-Boot portunu kullanarak çalıştığına inanılıyor. + +Sonuç +---------- + +Yukarıdakilerden görebileceğiniz gibi, Libreboot gerçekten de *ikili blob azaltma politikası*nı uyguluyor ve *azaltma* vurgusu en kritik nokta. Libreboot'un tüm kartlarda makul düzeyde *yazılım özgürlüğü* sağladığı söylenebilir. + +Libreboot, çeşitli ek özellikler sağlamak için birçok platform için daha fazla bu tür dosya *ekleyebilirdi*, ancak Libreboot projesinin *amacı* *özgür* yazılımı teşvik etmek ve tescilli yazılım geliştiricilerinin kullanıcılar üzerindeki gücünü *en aza indirmek* olduğu için bunları eklemeyi tercih etmez. + +Umarım bu makale düşünmek için malzeme sağlamıştır. + +### Bir not: donanım özgürlüğü + +Şu anda desteklenen Libreboot makinelerinin hiçbiri özgür *donanıma* sahip değildir, yani IC'ler kamuya açık *verilog* dosyaları ve benzerleriyle birlikte gelmez. Bu makinelerin kendi yedeklerini üretemezsiniz. + +Her makinenin devre kartlarını açıklayan bazı şematikler ve boardview dosyaları çeşitli kanallar aracılığıyla çevrimiçi olarak mevcuttur. Bunları kendiniz aramanız gerekir; bir gün, Tamir Hakkı hareketi umarız ki bu tür belgelere kamunun evrensel erişimini sağlayacaktır. + +İleri okuma +--------------- + +Bu makale *ana önyükleme flash*'ına giren kodu açıkladı, ancak satın aldığınız herhangi bir bilgisayarda sistemin başka yerlerinde *tonlarca* yazılım bulunur. Bazı içgörüler Libreboot SSS'de mevcuttur. Bkz: + +* [faq.md#what-level-of-software-freedom-does-libreboot-give-me](faq.md#what-level-of-software-freedom-does-libreboot-give-me) +* [faq.md#what-other-firmware-exists-outside-of-libreboot](faq.md#what-other-firmware-exists-outside-of-libreboot) + +Bunlardan en kritik olanları HDD/SSD yazılımı ve EC yazılımıdır. Bu iki bağlantıda açıklanan sorunlar, Libreboot'lular da dahil olmak üzere birçok farklı bilgisayar ve dünyadaki neredeyse diğer tüm bilgisayarlar için geçerlidir. diff --git a/site/git.tr.md b/site/git.tr.md new file mode 100644 index 0000000..338fae2 --- /dev/null +++ b/site/git.tr.md @@ -0,0 +1,161 @@ +--- +title: Git'i Nasıl Kullanırsınız ve/veya Libreboot'a Yama Gönderirsiniz +x-toc-enable: true +... + +Libreboot Depoları +----------------- + +`libreboot` projesinin 3 ana Git deposu vardır: + +* Derleme sistemi: +* Web sitesi (+belgeler): +* Görseller (web sitesi için): +* Pico-serprog: +* Libreboot Statik Site Oluşturucu: + +Ayrıca bakınız: [Libreboot Statik Site Oluşturucu](docs/sitegen/). + +Ayrıca lbmk'yi Libreboot'un kendi cgit örneğinde *gezinebilirsiniz*, ancak bu geliştirme için tasarlanmamıştır (bunun için codeberg'i kullanın):\ + + +[Görevler](tasks/) sayfası, uygulamak istediğimiz (hepsi değil) bazı şeyleri listeler, henüz uygulanmamışsa. Yamalar hoş karşılanır! + +Ana Git depoları çalışmıyorsa, `lbmk` ve `lbwww`'nin yansıları bu sayfada aşağıda listelenmiştir. + +Libreboot daha önce NotABug'ı kullanıyordu, ancak muhtemelen çok fazla kişi kullandığı için genellikle akşamları HTTP 500 hataları döndürmesi nedeniyle sürekli güvenilirlik sorunları yaşandı; Libreboot'un daha kararlı bir şeye ihtiyacı olduğuna karar verildi, bu yüzden şimdi Libreboot codeberg'de barındırılıyor. Bakınız: [8 Nisan 2023'te codeberg'e taşınma duyurusu](news/codeberg.md) + +Ayrıca Libreboot projesi tarafından barındırılan ve libreboot'un ya önerdiği ya da kullandığı şu programlar da var: + +Eski `ich9utils` ve `bucts` depoları notabug'da mevcuttur: + +* Bucts (yardımcı program): +* ich9utils (yardımcı program): + +Bu depolardan herhangi birini indirebilir, istediğiniz değişiklikleri yapabilir ve ardından aşağıdaki talimatları kullanarak değişikliklerinizi gönderebilirsiniz. + +Libreboot'u (tüm parçalarını) bir Linux dağıtımında derlemeniz önerilir. Örneğin, derleme sistemi (lbmk) BSD sistemlerinde test edilmemiştir. Linux sisteminize `git`'i kurun ve depolardan birini indirin. + +Libreboot'un geliştirilmesi Git sürüm kontrol sistemi kullanılarak yapılır. Git'i nasıl kullanacağınızı bilmiyorsanız [resmi Git belgelerine](https://git-scm.com/doc) bakın. + +`bucts` deposu, son kontrol ettiğimizde `stuge.se`'deki orijinal depo artık mevcut olmadığı için libreboot projesi tarafından barındırılmaktadır. `bucts` programı Peter Stuge tarafından yazılmıştır. Şu anda orijinal Lenovo BIOS'unu çalıştıran bir ThinkPad X60 veya T60'a dahili olarak bir libreboot ROM'u yüklüyorsanız `bucts`'ye ihtiyacınız var. Bunun için talimatlar burada mevcuttur:\ +[libreboot kurulum kılavuzları](docs/install/) + +### lbmk (libreboot-make) + +Bu, libreboot'taki çekirdek derleme sistemidir. `lbmk`'nin libreboot *olduğunu* söyleyebilirsiniz! Git deposunu indirin: + + git clone https://codeberg.org/libreboot/lbmk + +Yukarıda görülen `git` komutu, libreboot derleme sistemi `lbmk`'yi indirecektir. Ardından şu şekilde içine girebilirsiniz: + + cd lbmk + +İstediğiniz değişiklikleri yapın veya sadece derleyin. `lbmk`'yi nasıl derleyeceğinize dair talimatlar için [derleme talimatlarına](docs/build/) bakın. + +Derleme sisteminin kendisi ve nasıl çalıştığı hakkında bilgi [lbmk bakım kılavuzunda](docs/maintain/) mevcuttur. + +### lbwww ve lbwww-img + +Libreboot web sitesi ve belgelerin *tamamı* bir Git deposunda barındırılmaktadır. Şu şekilde indirin: + + git clone https://codeberg.org/libreboot/lbwww + +Görseller adresinde barındırılır ve ayrı bir depoda mevcuttur: + + git clone https://codeberg.org/libreboot/lbwww-img + +İstediğiniz değişiklikleri yapın. Yama gönderme hakkında aşağıdaki notlara bakın. + +Web sitesinin tamamı Markdown'da, özellikle Pandoc versiyonunda yazılmıştır. Statik HTML sayfaları [lbssg](docs/sitegen/) ile oluşturulur. Libreboot'un kurucusu Leah Rowe, aynı zamanda Libreboot statik site oluşturucu projesinin de kurucusudur. + +İsterseniz yerel bir HTTP sunucusu kurabilir ve web sitesinin kendi yerel sürümünüzü oluşturabilirsiniz. Lütfen görsellerin hala adresinde barındırılanlarla bağlantılı olacağını unutmayın, bu nedenle `lbwww-img`'ye eklediğiniz görseller (eklediğiniz görseller için) görsel bağlantılarını `av.libreboot.org`'a bağlarsanız yerel `lbwww` sitenizde görünmeyecektir. Ancak, bu tür görsellerin av.libreboot.org'da barındırılması gereklidir. + +Bu nedenle, web sitesine görsel eklemek istiyorsanız, lütfen her biri için bağlantıları olacak şekilde `lbwww-img` deposuna da gönderin. Libreboot web sitesinde birleştirildiğinde, görselleriniz canlı olarak görünecektir. + +Bir fotoğraf ekliyorsanız, web dağıtımı için sıkıştırın. Görseller genellikle 800px genişliğinde ve genellikle 100KiB'den küçük boyutta olmalıdır: + +İlk olarak, favori görsel işleme programınızı kullanarak görselinizi yaklaşık 800px genişliğe ölçeklendirin. Örneğin, `imagemagick` ile şunu yapabilirsiniz (görüntünün zaten tercih edilenden daha küçük veya eşit olmadığından emin olun). + + convert original.jpg -resize 600000@ -quality 70% web.jpg + +Göndermeden önce jpg görseller üzerinde her zaman `jpegoptim` çalıştırmalısınız. Gereksiz meta verileri kaldırır ve içlerinde kullanılan huffman tablolarını akıllıca yeniden düzenleyerek *kayıpsız* olarak daha da optimize eder. + + jpegoptim -s --all-progressive web.jpg + +Görsel bir (çizgi) çizimse, bitmap'lere göre vektör grafikleri tercih edilir. Bu nedenle, mümkünse bunları SVG olarak kaydedin. Bunlar değiştirilmesi kolaydır ve çevirmenlerin işini de kesinlikle kolaylaştıracaktır. + +PNG görseller `zopfli` ile optimize edilmelidir (bu da kayıpsızdır). Örneğin, bu Libreboot önyükleme logosunu yaklaşık 11k'dan 3k'ya düşürdü: + + zopflipng -ym image.png image.png + +Geliştirme amaçları için, önce görsellerinizi yerel bağlantılar yapabilir ve ardından belge/web sitesi yamalarınızı gönderirken URL'leri ayarlayabilirsiniz. + +Web sitesinin yerel sürümünüzü nasıl kuracağınıza dair talimatlar lbssg kılavuzunda mevcuttur. Untitled'ı indirin ve untitled dizininizin içinde `www/` adlı bir dizin oluşturun, ardından www dizininin içine girin ve `lbwww` deposunu oraya klonlayın. Yerel HTTP sunucunuzu buna göre yapılandırın. + +Yine, bu amaç için talimatlar lbssg kılavuzunda mevcuttur. + +### İsim Gerekli Değil + +Yaptığınız katkılar, herkesin erişebileceği bir Git deposunda kamuya açık olarak kaydedilir. Bu, katkıda bulunanın adını ve e-posta adresini içerir. + +Git'te, yazar adı ve e-posta adresi için tanımlayıcı veriler kullanmanız gerekmez. `libreboot Contributor` kullanabilir ve e-posta adresiniz contributor@libreboot.org olarak belirtilebilir. Gizliliğinizi korumak istiyorsanız bunu yapmanıza izin verilir. Gizliliğe inanıyoruz. Anonim kalmayı seçerseniz, buna saygı duyacağız. + +Tabii ki, istediğiniz adı ve/veya e-posta adresini kullanabilirsiniz. + +Yasal olarak konuşursak, uluslararası telif hakkı yasasının Bern Sözleşmesi kapsamında tüm telif hakları otomatiktir. Hangi adı kullandığınız, hatta telif hakkı beyan edip etmediğiniz önemli değildir (ancak belirli telif hakkı lisanslarının kullanılmasını gerektiriyoruz - bu sayfada bunun hakkında daha fazla bilgi okuyun). + +Commit'lerinizde/yamalarınızda farklı bir ad ve e-posta adresi kullanırsanız, oldukça anonim olmalısınız. Değişiklikleri genel bir Git deposuna göndermeden önce onaylamak için [git log](https://git-scm.com/book/en/v2/Git-Basics-Viewing-the-Commit-History) ve [git show](https://git-scm.com/docs/git-show) kullanın. + +### Lisanslar (katkıda bulunanlar için) + +Çalışmanızı özgür bir lisans altında özgürce lisansladığınızdan emin olun. Libreboot artık hangi lisansların kabul edildiğine dair keyfi kısıtlamalar koymamaktadır ve halihazırda birçok lisans mevcuttur. Katkınızı denetleyeceğiz ve sorun varsa size bildireceğiz (örn. lisans yok). + +Çalışmanızda *her zaman* bir lisans beyan edin! Bir lisans beyan etmemek, varsayılan, kısıtlayıcı telif hakkı yasalarının geçerli olduğu anlamına gelir, bu da çalışmanızı özel mülk yapar ve aynı kısıtlamalara tabi olur. + +MIT lisansı başlamak için iyi bir lisanstır ve Libreboot'taki tüm yeni çalışmalar için tercih edilen lisanstır, ancak seçici değiliz. Libreboot tarihsel olarak çoğunlukla GPL lisanslaması kullanmıştır; bunların çoğu kalmıştır ve muhtemelen kalacaktır. Bu sizin çalışmanız; açıkçası, mevcut bir çalışmadan türetiyorsanız, lisans uyumluluğu için katkınızda aynı lisansı kullanmak mantıklı olabilir. + +[Burada](https://opensource.org/licenses) yaygın lisans örnekleri bulabilirsiniz. + +Mevcut bir çalışmadan *türetiyorsanız*, katkınızın lisansının türetildiği çalışmanın lisanslamasıyla uyumlu olması önemlidir. MIT lisansı iyidir çünkü birçok diğer lisansla geniş çapta uyumludur ve diğer lisansların vermediği birçok özgürlüğe (alt lisanslama özgürlüğü gibi) izin verir: + + + +### Yama Gönderme + + adresinde bir hesap oluşturun ve üzerinde çalışmak istediğiniz depoya (giriş yapmış olarak) gidin. *Fork*'a tıklayın ve hesabınızda kendi libreboot deponuz olacak. Deponuzu klonlayın, istediğiniz değişiklikleri yapın ve ardından Codeberg'deki hesabınızdaki deponuza gönderin. İsterseniz bunu yeni bir dalda da yapabilirsiniz. + +Codeberg hesabınızda, resmi libreboot deposuna gidebilir ve bir Çekme İsteği gönderebilirsiniz. Çalışma şekli, insanların bu günlerde kullandığı diğer popüler web tabanlı Git platformlarına benzer. + +Yamalarınızı oraya gönderebilirsiniz. Alternatif olarak, libreboot IRC kanalına giriş yapabilir ve yamalarla kendi Git deponuz varsa, hangi yamaların incelenmesini istediğinizi kanala bildirebilirsiniz. + +Bir Çekme İsteği gönderdikten sonra, libreboot bakımcıları e-posta yoluyla bilgilendirilecektir. Projeden yeterince hızlı yanıt alamazsanız, Libera Chat'teki `#libreboot` kanalı aracılığıyla projeyi bilgilendirebilirsiniz. + +Yama göndermenin başka bir yolu da doğrudan Leah Rowe'a e-posta göndermektir: +[info@minifree.org](mailto:info@minifree.org) Leah'nın proje e-posta adresidir. + +Ancak, kod inceleme sürecinin şeffaflığı için, şimdilik Codeberg'i kullanmanız önerilir. + +### E-posta Listesi + +Libreboot'un şu e-posta listesi vardır: + + +E-posta adresi: [~libreboot/libreboot@lists.sr.ht](mailto:~libreboot/libreboot@lists.sr.ht) + +lbmk.git'in Yansıları +-------------------- + +`lbmk` deposu, Libreboot sürümlerini (derlenmiş ROM imajları dahil) üreten Libreboot'un otomatik derleme sistemini içerir. + +Bu bağlantılardan herhangi biri üzerinde `git clone` çalıştırabilirsiniz (bağlantılar ayrıca Web tarayıcınızda değişiklikleri görüntülemek için tıklanabilir): + +* +* +* +* +* +* +* +* +* \ No newline at end of file diff --git a/site/index.tr.md b/site/index.tr.md new file mode 100644 index 0000000..aa5e774 --- /dev/null +++ b/site/index.tr.md @@ -0,0 +1,85 @@ +--- +title: Özgür ve Açık Kaynaklı BIOS/UEFI Önyükleme Yazılımı +x-toc-enable: true +... + +*Libreboot*, Debian'ın bir *Linux dağıtımı* olması gibi, bir *[coreboot dağıtımıdır](docs/maintain)*. Libreboot, [belirli Intel/AMD x86 ve ARM tabanlı anakartlarda](docs/install/#which-systems-are-supported-by-libreboot) özel mülk BIOS/UEFI yazılımının yerini alan, coreboot tabanlı [özgür, açık kaynaklı](https://writefreesoftware.org/) (*libre*) önyükleme yazılımı sağlar. Bu anakartlar dizüstü ve masaüstü bilgisayarları içerir. Donanımı başlatır (örn. bellek denetleyicisi, CPU, çevre birimleri) ve işletim sisteminiz için bir önyükleyici başlatır. [Linux](docs/linux/) ve [BSD](docs/bsd/) iyi desteklenmektedir. [Libera](https://libera.chat/) IRC'deki [\#libreboot](https://web.libera.chat/#libreboot) kanalından yardım alabilirsiniz. + +Libreboot çalıştıran ThinkPad T480Libreboot çalıştıran ThinkPad T480 + +Libreboot, x86/x86_64 Intel/AMD anakartlarda GNU önyükleyici "[GRUB](docs/linux/)" ve SeaBIOS yüklerini, ARM64(Aarch64) anakartlarda ise *coreboot için* [U-Boot UEFI yükünü](docs/uboot/) sağlar. Bazı kartlarda [x86/x86_64 U-Boot UEFI yükü](docs/uboot/uboot-x86.md) de mevcuttur. x86, x86_64 ve arm64 U-Boot yükleri hafif bir UEFI önyükleme uygulaması sağlar. Libreboot'un [tasarımı](docs/maintain/) tüm bu yükleri tek bir imajda birleştirir ve önyükleme sırasında birini seçersiniz. + +**YENİ SÜRÜM: En son sürüm 6 Aralık 2024'te yayınlanan Libreboot 20241206'dır. +Bakınız: [Libreboot 20241206 sürüm duyurusu](news/libreboot20241206.md) - en +yeni revizyon sürümü olan Libreboot 20241206 revizyon 10, 18 Şubat 2025 tarihlidir.** + +Ayrıca Minifree Ltd'den seçili donanımlarda [Libreboot önyüklenmiş cihazlar satın alabilir](https://minifree.org/) veya uyumlu donanımınızı [Libreboot önyükleme hizmeti](https://minifree.org/product/installation-service/) için gönderebilirsiniz. Libreboot'un kurucusu ve baş geliştiricisi Leah Rowe aynı zamanda Minifree'yi de işletmektedir; satışlar Libreboot için finansman sağlamaktadır. + +*Biz*, yazılımı [inceleme, paylaşma, değiştirme ve kullanma özgürlüğünün](https://writefreesoftware.org/), herhangi bir kısıtlama olmaksızın, herkesin sahip olması gereken temel insan haklarından biri olduğuna inanıyoruz. Bu bağlamda, *yazılım özgürlüğü* önemlidir. Özgürlüğünüz önemlidir. Eğitim önemlidir. [Onarım hakkı](https://en.wikipedia.org/wiki/Right_to_repair) önemlidir; Libreboot, donanımınızı sürekli yazılım güncellemeleriyle kullanmaya devam etmenizi sağlar. Tüm bunlar Libreboot'un *var olma nedenidir*. + +Libreboot Tasarımına Genel Bakış +-------------------------------- + +Libreboot çalıştıran HP EliteBook 2560p ve Folio 9470m + +Libreboot, [makine başlatma](https://doc.coreboot.org/getting_started/architecture.html) için [coreboot](https://coreboot.org/) sağlar, bu da önyükleme belleğindeki bir [yüke](https://doc.coreboot.org/payloads.html) atlar; coreboot, Linux/BSD gibi işletim sisteminizi önyükleyen birçok yükle çalışır. + +Libreboot, [tam otomatik bir derleme sistemi](docs/maintain/), [otomatik derleme süreci](docs/build/) ve [kullanıcı dostu kurulum talimatları](docs/install/) sağlayarak, ayrıca desteklenen donanımlara kurulum için önceden derlenmiş ROM imajları sağlayan düzenli [ikili sürümler](download.md) sunarak, coreboot'u teknik olmayan kullanıcılar için kullanımı kolay hale getirir. Libreboot'un sağladığı gibi bir otomasyon olmadan, coreboot çoğu kullanıcı için erişilemez olurdu; yine de Libreboot'u istediğiniz gibi [yeniden yapılandırabilirsiniz](docs/maintain/). + +Neden Libreboot Kullanmalı? +--------------------------- + +Libreboot çalıştıran çeşitli Lenovo ThinkPad'ler + +Halihazırda özgür yazılıma eğilimliyseniz, belki de zaten bir coreboot kullanıcısıysanız, Libreboot, derleme otomasyonu aracılığıyla ya başlamanızı ya da coreboot'u makinenizde sürdürmenizi kolaylaştırır. Düzenli test edilmiş sürümler sağlar, önceden derlenmiş, genellikle kararlılığı sağlamak için coreboot (ve diğer kodlar) üzerinde belirli yamalarla birlikte gelir. Karşılaştırma olarak, coreboot her birkaç ayda bir kod tabanının bir anlık görüntüsüyle sürekli sürüm modelini kullanır; çok geliştirici odaklıdır, oysa Libreboot özellikle son kullanıcılar için tasarlanmıştır. Başka bir deyişle, Libreboot'un amacı *Sadece Çalışmaktır*. Coreboot'un doğrudan yapılandırılması ve kurulumu da mümkündür, ancak Libreboot bunu *çok* daha kolay hale getirir. + +Libreboot size çoğu diğer önyükleme yazılımıyla alamayacağınız [Özgür Yazılım](https://writefreesoftware.org/) sağlar, ayrıca daha hızlı önyükleme hızları ve [daha iyi güvenlik](docs/linux/grub_hardening.md) sunar. Birçok kullanım senaryosu için son derece güçlü ve [yapılandırılabilirdir](docs/maintain/). Özel mülk BIOS satıcıları tarafından size dayatılan kısıtlamalardan (güvenlik sorunlarından bahsetmiyorum bile) memnun değilseniz, Libreboot sizin için olası bir seçenektir. Coreboot'tan miras aldığı için, kodda bilinen arka kapılar içermez ve 1980'lerden kalma eski öğeler içermez. Libreboot, düzenli olarak denetlenen ve geliştirilen coreboot'a dayalı Linux/BSD sistemleri için şık, hızlı bir önyükleme deneyimi sağlar. + +Libreboot özel mülk yazılımlardan daha güvenilirdir. Birçok kişi [özgür bir işletim sistemi](https://www.openbsd.org/) kullansa bile özel mülk (özgür olmayan) önyükleme yazılımı kullanır. Özel mülk yazılımlar genellikle [arka kapılar](faq.html#intel) [içerir](faq.html#amd) ve hatalı olabilir. Libreboot projesi, Aralık 2013'te, coreboot yazılımını teknik olmayan kullanıcılar için erişilebilir kılma açık amacıyla kuruldu. + +Libreboot, kullanıcıların özel mülk önyükleme yazılımından kaçmasına yardımcı olmaya odaklanan topluluk odaklı bir projedir; biz kendimiz tüm yazılımların [özgür](https://writefreesoftware.org/) olduğu bir dünyada yaşamak istiyoruz ve bu nedenle Libreboot, o dünyaya yaklaşmaya yardımcı olma çabasıdır. Büyük satıcıların aksine, sizi herhangi bir şekilde kısıtlamaya çalışmıyoruz veya sizi bir güvenlik tehdidi olarak görmüyoruz; yazılımı özgürce kullanma, inceleme, değiştirme ve yeniden dağıtma yeteneğinin herkesin sahip olması gereken bir insan hakkı olduğunu düşünüyoruz. Bilgisayarlara uyarlandığında, bunlar satın aldığınız ürünlerdir ve bu nedenle onları istediğiniz gibi değiştirme özgürlüğüne sahip olmalısınız. Intel'in *Boot Guard*'ından (yalnızca kendileri tarafından imzalanmış yazılımın çalıştırılmasına izin vererek coreboot'u engelleyen) veya diğer satıcıların benzer kısıtlamalar getirmesinden bahsederken "güvenlik"ten bahsettiklerini duyduğunuzda, yalnızca *kendi* güvenliklerinden bahsediyorlar, sizinkinden değil. Libreboot projesinde, bu tersine çevrilmiştir; biz Intel Boot Guard ve benzeri teknolojileri kendi mülkünüz (bilgisayarınız) üzerindeki özgürlüğünüze bir saldırı olarak görüyoruz ve bu nedenle, bu tür kontrolü [geri almanıza](docs/install/deguard.html) [yardımcı olmayı](https://trmm.net/TOCTOU/) misyonumuz haline getiriyoruz. + +Libreboot Coreboot'un Bir Çatalı Değildir +---------------------------------------- + + + +Aslında, Libreboot her kart için mümkün olduğunca *stok* coreboot'a yakın kalmaya çalışır, ancak Libreboot derleme sistemi tarafından otomatik olarak sağlanan birçok farklı yapılandırma türüyle birlikte. + +*Alpine Linux*'un bir *Linux dağıtımı* olması gibi, Libreboot bir *coreboot dağıtımıdır*. ROM imajını sıfırdan oluşturmak istiyorsanız, aksi takdirde ROM imajını hazırlamak için coreboot, GRUB ve ihtiyacınız olan diğer yazılımların uzman düzeyinde yapılandırmasını gerçekleştirmeniz gerekir. *Libreboot* ile, Git'ten veya bir kaynak arşivinden indirebilir ve basit bir betik çalıştırabilirsiniz, ve tüm ROM imajlarını oluşturacaktır. `lbmk` (Libreboot MaKe) adlı otomatik bir derleme sistemi, bu ROM imajlarını herhangi bir kullanıcı girişi veya müdahalesi gerekmeden otomatik olarak oluşturur. Yapılandırma önceden gerçekleştirilmiştir. + +Libreboot'un otomatik derleme sistemini kullanmadan normal coreboot'u derleseydiniz, çalışan bir yapılandırma üretmek için çok daha fazla müdahale ve iyi teknik bilgi gerektirirdi. + +Libreboot'un düzenli ikili sürümleri bu ROM imajlarını önceden derlenmiş olarak sağlar ve [teknik olmayan kullanıcılar için yazılmış basitleştirilmiş talimatları](docs/install/) takip etme yeteneği dışında özel bir bilgi veya beceri gerektirmeden bunları kurabilirsiniz. + +### Nasıl Yardımcı Olabilirsiniz + +[Görevler sayfası](tasks/) üzerinde çalışılabilecek (çalışılacak) görevleri listeler. Daha fazla görev eklendikçe/tamamlandıkça güncellenecektir. Yardımcı olmak istiyorsanız, bu görevlerden birini seçip üzerinde çalışabilirsiniz. + +Libreboot'ta GRUB önyükleyici + +Yardımcı olabileceğiniz *en büyük* yol, bir yapılandırma göndererek Libreboot'a *yeni* anakartlar eklemektir. Coreboot'un desteklediği her şey, sürümlerde sağlanan ROM imajlarıyla Libreboot'a entegre edilebilir. Bakınız: + +* [Kart bakımcısı/test edicisi olmak için başvurun](docs/maintain/testing.md) +* [Yeni anakartlar için port kılavuzu](docs/maintain/porting.md) +* [Libreboot derleme sistemi belgeleri](docs/maintain/) + +Bunun ardından, derleme sistemi bakımı (yukarıya bakın) ve ciddiye aldığımız *belgelendirme* var. Belgelendirme, herhangi bir projede kritik öneme sahiptir. + +*Kullanıcı desteği* de kritik öneme sahiptir. IRC'de kalın ve eğer birine sorunuyla yardımcı olabilecek yetkinliğe sahipseniz (veya onlarla birlikte öğrenecek kadar kurnazysanız), bu projeye büyük bir hizmettir. Birçok kişi ayrıca `r/libreboot` subreddit'inde kullanıcı desteği istemektedir. + +[Hata takipçisinde](https://codeberg.org/libreboot/lbmk/issues) listelenen hataları kontrol edebilirsiniz. + +Bir hata fark eder ve düzeltmeniz varsa, [yamaları nasıl göndereceğinize dair talimatlar burada](git.md), ve ayrıca rapor edebilirsiniz. Ayrıca, bu web sitesinin tamamı Markdown ile yazılmıştır ve yamalar gönderebileceğiniz [ayrı bir depoda](https://codeberg.org/libreboot/lbwww) barındırılmaktadır. + +Tüm geliştirme tartışmaları ve kullanıcı desteği IRC kanalında yapılmaktadır. Daha fazla bilgi [iletişim sayfasında](contact.md) bulunmaktadır. + +### libreboot.org için Çeviriler Gerekli + +Libreboot şu anda Ukraynaca ve Fransızca çevrilmiş web sayfalarına sahiptir (ancak her iki dilde de henüz tüm sayfalar için değil). + +Çevirilere yardımcı olmak istiyorsanız, sayfaları çevirebilir, mevcut çevirileri güncelleyebilir ve çevrilmiş versiyonlarınızı gönderebilirsiniz. Talimatlar için lütfen okuyun: + +[libreboot.org için çeviri nasıl gönderilir](news/translations.md) + +Belirli bir dilde biri zaten çalışıyor olsa bile, her zaman birden fazla kişi kullanabiliriz. Ne kadar çok o kadar iyi! \ No newline at end of file diff --git a/site/logo-license.tr.md b/site/logo-license.tr.md new file mode 100644 index 0000000..ad5221c --- /dev/null +++ b/site/logo-license.tr.md @@ -0,0 +1,14 @@ +--- +title: Libreboot logo lisansı +... + +Libreboot logosu, 2014 yılında Marcus Moeller tarafından oluşturulmuş olup telif hakkı da kendisine aittir. Logo, Creative Commons Zero lisansı, versiyon 1.0 şartları altında yayınlanmıştır. + +Bu logoya dayalı çıkartma dosyaları 2015 yılında Patrick McDermott tarafından oluşturulmuş ve aynı lisans altında yayınlanmıştır. + +Bu lisansın (CC-0 1.0) bir kopyasını şu adreste bulabilirsiniz: + + +Çıkartma tasarımlarındaki yazı tipi `lato`'dur. Vektörlerdeki metinlerin doğru görünmesi için bu yazı tipini yüklemeniz gerekir. + +Logo dosyalarını burada görebilirsiniz: \ No newline at end of file diff --git a/site/template-license.tr.md b/site/template-license.tr.md new file mode 100644 index 0000000..0921bc6 --- /dev/null +++ b/site/template-license.tr.md @@ -0,0 +1,28 @@ +--- +title: Şablon lisansı +... + +Bu web sitesi Markdown ile yazılmış ve Pandoc kullanılarak statik HTML'ye derlenmiştir. Kullanılan HTML şablonu, +Telif Hakkı (c) 2014--2017, John MacFarlane + +Şablondaki değişiklikler 2021-2024 Leah Rowe telif hakkına sahiptir ve Creative Commons Zero lisansı versiyon 1.0 evrensel şartları altında yayınlanmıştır. Bu lisansı şu adreste bulabilirsiniz: + + +Şablon dosyasını burada bulabilirsiniz: [/template.include](/template.include) + +`template.include` dosyası değiştirilmiş versiyondur (Leah Rowe tarafından değiştirilmiştir). +Orijinal versiyonu burada bulabilirsiniz: [/template.original](/template.original) + +Belirli sayfalarda başka değiştirilmiş şablonlar da kullanılabilir. Bunu libreboot web sitesinin Git deposunda kontrol edebilirsiniz. + +John MacFarlane tarafından oluşturulan `template.original` adlı orijinal şablon dosyası aşağıdaki koşullar altında yayınlanmıştır: + +Kaynak ve ikili formlarda, değiştirilmiş veya değiştirilmemiş olarak yeniden dağıtım ve kullanım, aşağıdaki koşullar karşılandığı sürece izin verilir: + +Kaynak kodunun yeniden dağıtımı, yukarıdaki telif hakkı bildirimini, bu koşullar listesini ve aşağıdaki sorumluluk reddini içermelidir. + +İkili formda yeniden dağıtım, yukarıdaki telif hakkı bildirimini, bu koşullar listesini ve aşağıdaki sorumluluk reddini, dağıtımla birlikte sağlanan belgelerde ve/veya diğer materyallerde yeniden üretmelidir. + +John MacFarlane'in adı veya diğer katkıda bulunanların adları, önceden yazılı izin alınmadan bu yazılımdan türetilen ürünleri onaylamak veya tanıtmak için kullanılamaz. + +BU YAZILIM TELİF HAKKI SAHİPLERİ VE KATKIDA BULUNANLAR TARAFINDAN "OLDUĞU GİBİ" SAĞLANMIŞTIR VE TİCARİ ELVERİŞLİLİK VE BELİRLİ BİR AMACA UYGUNLUK DAHİL ANCAK BUNLARLA SINIRLI OLMAMAK ÜZERE, AÇIK VEYA ZIMNİ HERHANGİ BİR GARANTİ REDDEDİLMEKTEDİR. TELİF HAKKI SAHİBİ VEYA KATKIDA BULUNANLAR, HERHANGİ BİR DOĞRUDAN, DOLAYLI, ARIZİ, ÖZEL, ÖRNEK NİTELİĞİNDE VEYA SONUÇSAL HASARDAN (YEDEK MAL VEYA HİZMETLERİN TEMİNİ; KULLANIM, VERİ VEYA KAR KAYBI; VEYA İŞ KESİNTİSİ DAHİL ANCAK BUNLARLA SINIRLI OLMAMAK ÜZERE) SORUMLU TUTULAMAZ, BU TÜR HASARLARIN OLASILIĞI KONUSUNDA BİLGİLENDİRİLMİŞ OLSALAR BİLE, SÖZLEŞME, KATI SORUMLULUK VEYA HAKSIZ FİİL (İHMAL VEYA DİĞER DURUMLAR DAHİL) GİBİ HERHANGİ BİR SORUMLULUK TEORİSİ ALTINDA, BU YAZILIMIN KULLANIMINDAN KAYNAKLANAN HİÇBİR ŞEKİLDE SORUMLU TUTULAMAZLAR. \ No newline at end of file From 1e4efd903e07795a2c8c96cf111eccbaca95c0e3 Mon Sep 17 00:00:00 2001 From: justinschuldt Date: Fri, 14 Mar 2025 07:00:13 +0000 Subject: [PATCH 361/399] fix maintain page typos --- site/docs/maintain/index.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 3387943..1acc220 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -503,7 +503,7 @@ Please also visit: This is a bootloader provided on ARM chromebooks, within Libreboot. It also provides UEFI. Information about that can be found on these resources: -* [U-Boot documentation](../u-boot/) +* [U-Boot documentation](../uboot/) * [Chromebook documentation](../install/chromebooks.md) This is currently the only payload on *ARM* systems, within Libreboot. @@ -1166,7 +1166,7 @@ as: These are similar in meaning to their coreboot counterparts. -The tree` entry is actually a link, where its value is a directory name +The `tree` entry is actually a link, where its value is a directory name under `config/u-boot`. For example, `tree="default"` would refer to `config/u-boot/default` and the corresponding U-Boot source tree created (when running `./mk u-boot`, which makes use of `target.cfg`) From b38fb3356061cf7a28a7a02b67da41ec4cd4d145 Mon Sep 17 00:00:00 2001 From: arielenter Date: Sun, 30 Mar 2025 21:55:27 +0000 Subject: [PATCH 362/399] Add uboot instructions for installing Trisquel Aramo --- site/docs/uboot/uboot-trisquel-aramo.md | 59 +++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 site/docs/uboot/uboot-trisquel-aramo.md diff --git a/site/docs/uboot/uboot-trisquel-aramo.md b/site/docs/uboot/uboot-trisquel-aramo.md new file mode 100644 index 0000000..44ec104 --- /dev/null +++ b/site/docs/uboot/uboot-trisquel-aramo.md @@ -0,0 +1,59 @@ +--- +title: Trisquel 11 Aramo on Samsung Chromebook Plus XE513C24 +x-toc-enable: true +... + +System Configuration +-------------------- + +Hardware: Samsung Chromebook Plus XE513C24 (gru\_kevin) + +Libreboot: 2024-12-06 + +Operating System: Trisquel 11.0.1 Aramo + +Background +------------------------- + +The current arm64 installer for Trisquel 11 has a so far unresolved problem where the the installer doesn’t start after choosing any of the installation methods offered by the arm64 ISO’s menu [trisquel-netinst_11.0.1_arm64.iso](https://cdimage.trisquel.info/trisquel-images/trisquel-netinst_11.0.1_arm64.iso). The screen simply stays blank without anything ever showing up or happening. The issue has been discussed in the forum of Trisquel [comment-178704](https://trisquel.info/en/trisquel-samsung-chromebook-v1-kevin-support-group#comment-178704). + +Until the problem is resolved, “debootstrap” can be used as a workaround. + +What is debootstrap? +------------------------- + +Most Debian based distributions offer an installer that can be executed from an external media, but what happen if we have an already installed system? would it be possible to install a second system from it into another drive for example? With debootstrap you can. + +Debootstrap installation workaround +------------------------- + +Since there was a precedence that Debian 12 could be easily installed using it’s installation ISO [uboot-debian-bookworm](https://libreboot.org/docs/uboot/uboot-debian-bookworm.html), I figure it could be possible to install Trisquel 11 after it and thankfully it worked. + +The way I did it, is that I installed Debian 12 into a SD card using its installer from a USB A memory. For this purpose I used and adapter/hub since this computer only has USB C inputs. Then after booting Debian from the SD card, I used debootstrap to install Trisquel 11 into the internal MMC. + +Detailed instructions and other useful info +------------------------- + +A step by step guide can be found in the following Trisquel’s documentation page [arm64-chromebooks-trisquel-installation](https://trisquel.info/en/wiki/arm64-chromebooks-trisquel-installation). + +The following page also details many user experiences, some fixes and some tips to improve the usability of Trisquel with this device [samsung-chromebook-v1-kevin-support-group](https://trisquel.info/en/wiki/samsung-chromebook-v1-kevin-support-group). Many of its points might also apply to Debian users as well. + +A review of the device from a Trisquel’s user point of view can be found here: [samsung-chromebook-v1-kevin-review](https://trisquel.info/en/samsung-chromebook-v1-kevin-review) + +System Functionality +------------------------- + +Things that work: + +* Touch screen and stylus +* Touchpad +* Speakers +* Volume buttons on side of laptop. +* Graphics +* Playing videos + +Things that do not work: + +* Wireless internet and Bluetooth (non free software drivers are required) +* The headphone jack does't work +* Some times the computer stops responding with the screen shutoff while trying to hibernate or recovering from it. For this reason I disabled hibernation on my system. From 067aa382163435faf042664290a7a1c67c04fc3d Mon Sep 17 00:00:00 2001 From: arielenter Date: Sun, 30 Mar 2025 21:59:26 +0000 Subject: [PATCH 363/399] Add uboot instructions for installing Trisquel Aramo --- site/docs/install/chromebooks.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/site/docs/install/chromebooks.md b/site/docs/install/chromebooks.md index 523b1bc..8d43bf4 100644 --- a/site/docs/install/chromebooks.md +++ b/site/docs/install/chromebooks.md @@ -144,7 +144,7 @@ removing it might require you to disassemble most of the board. In my case as an example, my kevin board had the protection screw [here](https://av.libreboot.org/board/kevin/write_protection_screw.jpg). It was -tricky for me to find it since it was one of the screws that seemed to holds +tricky for me to find it since it was one of the screws that seemed to hold the heat sink in place, which I thought made it an unlikely candidate. I recommend you leave it unscrew never the less after flashing. @@ -217,6 +217,7 @@ three general methods for installing that vary depending on the distribution: * [ArchLinuxARM on RK3399-based Chromebooks](../uboot/uboot-archlinux.md). * [Debian Bookworm on Samsung Chromebook Plus XE513C24](../uboot/uboot-debian-bookworm.md). +* [Trisquel Aramo on Samsung Chromebook Plus XE513C24](../uboot/uboot-trisquel-aramo.md). * [Debian on Asus Chromebook C201](https://wiki.debian.org/InstallingDebianOn/Asus/C201). ### Unsuccessful installations: From dbf5ec3ebf49c81c9055d8587eee0d5476059258 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 1 Apr 2025 12:21:11 +0100 Subject: [PATCH 364/399] remove _fsp references in the documentation users must only use the _vfsp targets, where Intel FSP is used. The _fsp targets were removed from lbmk quite recently. Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 6 ++++++ site/docs/install/t480.md | 6 +----- site/freedom-status.md | 5 ++--- site/freedom-status.tr.md | 4 ++-- site/freedom-status.uk.md | 5 ++--- 5 files changed, 13 insertions(+), 13 deletions(-) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index a72843c..04a61d1 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -304,6 +304,12 @@ in the build system; these releases include `_vfsp` images instead. Newer targets added in the future, that need FSP, will also have `_vfsp` in the file name, for consistency. +To eliminate any doubt: `_fsp` targets were also removed from lbmk, +on 1 April 2025. Not everyone was aware of this change, yet the resulting build +was identical (when compiling from source). To eliminate all questions about it, +the `_fsp` targets were removed entirely. Please use the `_vfsp` targets from +now on, when dealing with any machine that uses Intel FSP. + This is written as errata because some users may still be using older release images but on the newer build system from May 2024 onward; you must use the Libreboot 20240225 release if you want to inject MRC and so on, for these older diff --git a/site/docs/install/t480.md b/site/docs/install/t480.md index bff77dc..d8f454e 100644 --- a/site/docs/install/t480.md +++ b/site/docs/install/t480.md @@ -707,11 +707,7 @@ git commit -s -m "experimental/unstable t480 thunderbolt support" **NOTE: With the above change, or if using the branch referenced below, the build targets will be `t480_fsp_16mb` and `t480s_fsp_16mb`, -not `t480_vfsp_16mb` and `t480s_vfsp_16mb`; see notes regarding fsp/vfsp -elsewhere on this page. This branch also does not contain other fixes from -Libreboot 20231206 rev8/newer, since it's based on 20241206 rev2. A rebase will -not be conducted; instead, ThunderBolt PCI-E support will simply be added in -a subsequent release, and revision to the 20241206 release.** +not `t480_vfsp_16mb` and `t480s_vfsp_16mb`. You can now follow standard [build instructions](../build/). diff --git a/site/freedom-status.md b/site/freedom-status.md index 777dfc2..341c435 100644 --- a/site/freedom-status.md +++ b/site/freedom-status.md @@ -230,7 +230,7 @@ Here is a list, *for each* board, of those files: Neutered ME required on these targets: -`dell9020mt_nri_12mb`, `dell9020sff_nri_12mb`, `e5420_6mb`, `e5520_6mb`, `e5530_12mb`, `e6220_10mb`, `e6230_12mb`, `e6320_10mb`, `e6330_12mb`, `e6420_10mb`, `e6430_12mb`, `e6520_10mb`, `e6530_12mb`, `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8200sff_4mb`, `hp8200sff_8mb`, `hp820g2_12mb`, `hp8300cmt_16mb`, `hp8300usdt_16mb`, `hp8460pintel_8mb`, `hp8470pintel_16mb`, `hp8560w_8mb`, `hp9470m_16mb`, `t1650_12mb`, `t420_8mb`, `t420s_8mb`, `t430_12mb`, `t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230t_12mb`, `x230t_16mb`, `dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb`, `t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb` +`dell9020mt_nri_12mb`, `dell9020sff_nri_12mb`, `e5420_6mb`, `e5520_6mb`, `e5530_12mb`, `e6220_10mb`, `e6230_12mb`, `e6320_10mb`, `e6330_12mb`, `e6420_10mb`, `e6430_12mb`, `e6520_10mb`, `e6530_12mb`, `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8200sff_4mb`, `hp8200sff_8mb`, `hp820g2_12mb`, `hp8300cmt_16mb`, `hp8300usdt_16mb`, `hp8460pintel_8mb`, `hp8470pintel_16mb`, `hp8560w_8mb`, `hp9470m_16mb`, `t1650_12mb`, `t420_8mb`, `t420s_8mb`, `t430_12mb`, `t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230t_12mb`, `x230t_16mb`, `dell3050micro_vfsp_16mb`, `t480_vfsp_16mb`, `t480s_vfsp_16mb` As stated, Libreboot provides this in a state where the ME is no longer a threat to security. It initialises itself, but then does nothing, so it's @@ -259,8 +259,7 @@ at the correct offset as defined by coreboot config for each board. Provides romstage and raminit, used by coreboot on some boards. In Libreboot, we use it for the following build targets: -`t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb`, -`dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb` +`t480_vfsp_16mb`, `t480s_vfsp_16mb`, `dell3050micro_vfsp_16mb` #### SMSC SCH5545 Environmental Control diff --git a/site/freedom-status.tr.md b/site/freedom-status.tr.md index 6968568..e4c1e95 100644 --- a/site/freedom-status.tr.md +++ b/site/freedom-status.tr.md @@ -122,7 +122,7 @@ Bu makale, Libreboot'ta hangi satıcı dosyalarının yer aldığını ayrıntı Bu hedeflerde nötrleştirilmiş ME gereklidir: -`dell9020mt_nri_12mb`, `dell9020sff_nri_12mb`, `e5420_6mb`, `e5520_6mb`, `e5530_12mb`, `e6220_10mb`, `e6230_12mb`, `e6320_10mb`, `e6330_12mb`, `e6420_10mb`, `e6430_12mb`, `e6520_10mb`, `e6530_12mb`, `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8200sff_4mb`, `hp8200sff_8mb`, `hp820g2_12mb`, `hp8300cmt_16mb`, `hp8300usdt_16mb`, `hp8460pintel_8mb`, `hp8470pintel_16mb`, `hp8560w_8mb`, `hp9470m_16mb`, `t1650_12mb`, `t420_8mb`, `t420s_8mb`, `t430_12mb`, `t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230t_12mb`, `x230t_16mb`, `dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb`, `t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb` +`dell9020mt_nri_12mb`, `dell9020sff_nri_12mb`, `e5420_6mb`, `e5520_6mb`, `e5530_12mb`, `e6220_10mb`, `e6230_12mb`, `e6320_10mb`, `e6330_12mb`, `e6420_10mb`, `e6430_12mb`, `e6520_10mb`, `e6530_12mb`, `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8200sff_4mb`, `hp8200sff_8mb`, `hp820g2_12mb`, `hp8300cmt_16mb`, `hp8300usdt_16mb`, `hp8460pintel_8mb`, `hp8470pintel_16mb`, `hp8560w_8mb`, `hp9470m_16mb`, `t1650_12mb`, `t420_8mb`, `t420s_8mb`, `t430_12mb`, `t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230t_12mb`, `x230t_16mb`, `dell3050micro_vfsp_16mb`, `t480_vfsp_16mb`, `t480s_vfsp_16mb` Belirtildiği gibi, Libreboot bunu ME'nin artık bir güvenlik tehdidi olmadığı bir durumda sağlar. Kendini başlatır, ancak sonra hiçbir şey yapmaz, bu nedenle devre dışı bırakılmıştır. Bu, `me_cleaner` kullanılarak yapılır. Bkz: @@ -138,7 +138,7 @@ Bu, şu hedefler için geçerlidir: `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb Coreboot tarafından bazı kartlarda kullanılan romstage ve raminit sağlar. Libreboot'ta, aşağıdaki yapı hedefleri için kullanıyoruz: -`t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb`, `dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb` +`t480_vfsp_16mb`, `t480s_vfsp_16mb`, `dell3050micro_vfsp_16mb` #### SMSC SCH5545 Çevresel Kontrol diff --git a/site/freedom-status.uk.md b/site/freedom-status.uk.md index 7081ac7..66d34ba 100644 --- a/site/freedom-status.uk.md +++ b/site/freedom-status.uk.md @@ -324,7 +324,7 @@ Libreboot *наразі* не розміщує ці блоби взагалі, Нейтралізований ME потрібен на цих цілях: -`dell9020mt_nri_12mb`, `dell9020sff_nri_12mb`, `e5420_6mb`, `e5520_6mb`, `e5530_12mb`, `e6220_10mb`, `e6230_12mb`, `e6320_10mb`, `e6330_12mb`, `e6420_10mb`, `e6430_12mb`, `e6520_10mb`, `e6530_12mb`, `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8200sff_4mb`, `hp8200sff_8mb`, `hp820g2_12mb`, `hp8300cmt_16mb`, `hp8300usdt_16mb`, `hp8460pintel_8mb`, `hp8470pintel_16mb`, `hp8560w_8mb`, `hp9470m_16mb`, `t1650_12mb`, `t420_8mb`, `t420s_8mb`, `t430_12mb`, `t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230t_12mb`, `x230t_16mb`, `dell3050micro_fsp`, `dell3050micro_vfsp_16mb`, `t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb` +`dell9020mt_nri_12mb`, `dell9020sff_nri_12mb`, `e5420_6mb`, `e5520_6mb`, `e5530_12mb`, `e6220_10mb`, `e6230_12mb`, `e6320_10mb`, `e6330_12mb`, `e6420_10mb`, `e6430_12mb`, `e6520_10mb`, `e6530_12mb`, `hp2170p_16mb`, `hp2560p_8mb`, `hp2570p_16mb`, `hp8200sff_4mb`, `hp8200sff_8mb`, `hp820g2_12mb`, `hp8300cmt_16mb`, `hp8300usdt_16mb`, `hp8460pintel_8mb`, `hp8470pintel_16mb`, `hp8560w_8mb`, `hp9470m_16mb`, `t1650_12mb`, `t420_8mb`, `t420s_8mb`, `t430_12mb`, `t440plibremrc_12mb`, `t520_8mb`, `t530_12mb`, `w530_12mb`, `w541_12mb`, `x220_8mb`, `x230_12mb`, `x230_16mb`, `x230t_12mb`, `x230t_16mb`, `dell3050micro_vfsp_16mb`, `t480_vfsp_16mb`, `t480s_vfsp_16mb` Як заявлено, Libreboot надає це в стані, де ME більше не є загрозою для безпеки. Він ініціалізує себе, але потім нічого не робить, тому його @@ -353,8 +353,7 @@ at the correct offset as defined by coreboot config for each board. Provides romstage and raminit, used by coreboot on some boards. In Libreboot, we use it for the following build targets: -`t480_fsp_16mb`, `t480_vfsp_16mb`, `t480s_fsp_16mb`, `t480s_vfsp_16mb`, -`dell3050micro_fsp_16mb`, `dell3050micro_vfsp_16mb` +`t480_vfsp_16mb`, `t480s_vfsp_16mb`, `dell3050micro_vfsp_16mb` #### SMSC SCH5545 Environmental Control From 086765046d83b48fc503666800802fa37357e4fa Mon Sep 17 00:00:00 2001 From: Ronanand0 Date: Tue, 8 Apr 2025 08:38:19 +0000 Subject: [PATCH 365/399] hp820g2 tpm2 upgrade + spec. site update Added description on how to upgrade the tpm firmware without pictures and replaced specifications link from the wayback machine as the original site is deleted. --- site/docs/install/hp820g2.md | 35 +++++++++++++++++++++++++++++------ 1 file changed, 29 insertions(+), 6 deletions(-) diff --git a/site/docs/install/hp820g2.md b/site/docs/install/hp820g2.md index 831348f..41a2c21 100644 --- a/site/docs/install/hp820g2.md +++ b/site/docs/install/hp820g2.md @@ -80,7 +80,7 @@ Alternatively, you can use pre-compiled release images. Full hardware specifications can be found on HP's own website: - + Pre-compiled images now possible! -------------------------------- @@ -185,14 +185,37 @@ Refer generally to the [main flashing guide](../install/) and to the [external flashing guide](../install/spi.md) so that you can learn how to actually flash it. -TPM 2.0 potentially supported +TPM 2.0 supported ----------------------------- -The onboard TPM is an SLB 9660, which supports TPM 1.2 but it is known to be -compatible with TPM 2.0 via firmware upgrade. Although not yet tested, we have -some notes about that here: +** DO NOT DO THIS WITH ORIGINAL BOOT FIRMWARE, IT BECAMES UNBOOTABLE; see + ** -[../../tasks/#hp-820-g2-tpm](../../tasks/#hp-820-g2-tpm) +The onboard TPM is an SLB 9660, which supports TPM 1.2 but it is known to be +compatible with TPM 2.0 via firmware upgrade, but incompatible with stock rom. + +Only by externally backing up the stock flash and private flash, flashing libreboot, booting to OS, downgrading it, then reflashing stock firmware from backup would make it work again. **Untested, may work with HP TPM Configuration Utility on Windows.** + +One way to do it is using the TPMFactoryUpd tool from + +iavael's + +or +crass's github repo with SLB 966x firmware; + + +after making it and checking the machine's tpm version with; + +``` +TPMFactoryUpd -info +``` + +Before upgrading, make sure the ownership is unclaimed and tpm enabled. +to update, you should use config file in the firmware folder inside the downloaded and extracted 9665FW update package_1.5.zip, then start the upgrade process: + +``` +TPMFactoryUpd -update config-file -config TPM12_latest.cfg +``` Not yet used meaningfully by Libreboot itself, but the TPM can be used to implement things like measured boot. From c73745f6486fc966a4f1f4ccabbae570f2cc3cc0 Mon Sep 17 00:00:00 2001 From: Ronanand0 Date: Tue, 8 Apr 2025 08:45:44 +0000 Subject: [PATCH 366/399] spec link update Original site deleted -> backup from wayback machine --- site/docs/install/hp2570p.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/hp2570p.md b/site/docs/install/hp2570p.md index 3208d5a..b46a292 100644 --- a/site/docs/install/hp2570p.md +++ b/site/docs/install/hp2570p.md @@ -49,7 +49,7 @@ Brief board info Vendor info here: - + Installation of Libreboot ------------------------- From 6bbbf9fe085eb5e3cf7cc6f9019dcbb9b0d750e8 Mon Sep 17 00:00:00 2001 From: Ronanand0 Date: Tue, 8 Apr 2025 09:04:11 +0000 Subject: [PATCH 367/399] Link for vendor manual --- site/docs/install/hp8560w.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/docs/install/hp8560w.md b/site/docs/install/hp8560w.md index bd7470b..ecaec94 100644 --- a/site/docs/install/hp8560w.md +++ b/site/docs/install/hp8560w.md @@ -65,6 +65,8 @@ HP EliteBook 8560w laptop motherboard. Libreboot is a [Free Software](https://writefreesoftware.org/learn) project that replaces proprietary BIOS/UEFI firmware. +Vendor manual [here](https://web.archive.org/web/20240901000000*/https://h10032.www1.hp.com/ctg/Manual/c03424153.pdf). + **Unavailable in Libreboot 20240126 or earlier. You must [compile from source](../build/), or use a release newer than 20240126.** From 0a83f8fc42d9fd9193375bc9a306a0b994f801dd Mon Sep 17 00:00:00 2001 From: Ronanand0 Date: Tue, 8 Apr 2025 09:05:09 +0000 Subject: [PATCH 368/399] Update site/docs/install/hp8560w.md --- site/docs/install/hp8560w.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/hp8560w.md b/site/docs/install/hp8560w.md index ecaec94..fea69c7 100644 --- a/site/docs/install/hp8560w.md +++ b/site/docs/install/hp8560w.md @@ -65,7 +65,7 @@ HP EliteBook 8560w laptop motherboard. Libreboot is a [Free Software](https://writefreesoftware.org/learn) project that replaces proprietary BIOS/UEFI firmware. -Vendor manual [here](https://web.archive.org/web/20240901000000*/https://h10032.www1.hp.com/ctg/Manual/c03424153.pdf). +Vendor manual [here](https://web.archive.org/web/20240629174138/https://h10032.www1.hp.com/ctg/Manual/c03424153.pdf). **Unavailable in Libreboot 20240126 or earlier. You must [compile from source](../build/), or use a release newer than 20240126.** From be35d8c0e1ae62f76f5c2f1c1eaf23f24caef5ea Mon Sep 17 00:00:00 2001 From: Ronanand0 Date: Tue, 8 Apr 2025 09:13:04 +0000 Subject: [PATCH 369/399] hp8470p spec. link update hp -> wayback machine --- site/docs/install/hp8470p.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/docs/install/hp8470p.md b/site/docs/install/hp8470p.md index c64804c..1d337fa 100644 --- a/site/docs/install/hp8470p.md +++ b/site/docs/install/hp8470p.md @@ -66,7 +66,7 @@ Libreboot is a [Free Software](https://writefreesoftware.org/learn) project that replaces proprietary BIOS/UEFI firmware. Official information about the laptop can be found here: - + This is a beastly 14" Ivy Bridge platform from HP. **NOTE: Until otherwise stated, only the Intel GPU variant is supported in From a52ebef53bc4fdc34ac62012e05973bb52183cb8 Mon Sep 17 00:00:00 2001 From: Ronanand0 Date: Tue, 8 Apr 2025 09:20:51 +0000 Subject: [PATCH 370/399] hp9470m Vendor manual update From wayback machine --- site/docs/install/hp9470m.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/docs/install/hp9470m.md b/site/docs/install/hp9470m.md index 6b53383..ee99f37 100644 --- a/site/docs/install/hp9470m.md +++ b/site/docs/install/hp9470m.md @@ -46,6 +46,8 @@ that replaces proprietary BIOS/UEFI firmware. HP EliteBook Folio 9470m is a 14" ultrabook with a backlit keyboard. +Vendor manual [here](https://web.archive.org/web/20240509202822/http://h10032.www1.hp.com/ctg/Manual/c03909856.pdf). + Libreboot has support for this, in the Git repository and release versions from Libreboot 20230423 onwards. From 9ce0dc2889ede3ca2c48122bdf4e926b14771f53 Mon Sep 17 00:00:00 2001 From: Ronanand0 Date: Tue, 8 Apr 2025 09:24:29 +0000 Subject: [PATCH 371/399] hp8460p vendor manual added --- site/docs/install/hp8460p.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/site/docs/install/hp8460p.md b/site/docs/install/hp8460p.md index a4ea240..376ec82 100644 --- a/site/docs/install/hp8460p.md +++ b/site/docs/install/hp8460p.md @@ -65,6 +65,8 @@ HP EliteBook 8460p laptop motherboard. Libreboot is a [Free Software](https://writefreesoftware.org/learn) project that replaces proprietary BIOS/UEFI firmware. +Vendor manual [here](https://web.archive.org/web/20240814185019/https://h10032.www1.hp.com/ctg/Manual/c03253774.pdf). + **Unavailable in Libreboot 20231106 or earlier. You must [compile from source](../build/), or use a release newer than 20231106.** From 9c86f0c89a55d352da4038f53cb118420ad5acad Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 17 Apr 2025 01:30:33 +0100 Subject: [PATCH 372/399] docs/linux: Update regarding Fedora "sixteenbit" It has been reported to me that setting this variable is no longer required. It *is* required on older Fedora versions, so it will be retained, but a note has been added saying that it is no longer required on newer Fedora versions. Signed-off-by: Leah Rowe --- site/docs/linux/index.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/site/docs/linux/index.md b/site/docs/linux/index.md index 0ad58ce..ec6c6ef 100644 --- a/site/docs/linux/index.md +++ b/site/docs/linux/index.md @@ -165,6 +165,10 @@ Set the `sixteenbit` variable to an empty string, then run: grub2-mkconfig -o /boot/grub2/grub.cfg +**NOTE: On newer Federa versions, setting the sixteenbit variable is +no longer required and it is no longer present. However, you should still +deal with the BLS issue, mentioned below:** + ### BLS issue With [newer versions of fedora](https://fedoraproject.org/wiki/Changes/BootLoaderSpecByDefault), From 68f4ff8a0fb9d50fbe781ef00d75932fff5813dc Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 21 Apr 2025 00:55:44 +0100 Subject: [PATCH 373/399] 20241206rev11 notes Signed-off-by: Leah Rowe --- site/index.md | 4 +- site/news/MANIFEST | 1 + site/news/libreboot20241206.Revisions.md | 7 ++ site/news/libreboot20241206rev11.md | 133 +++++++++++++++++++++++ 4 files changed, 143 insertions(+), 2 deletions(-) create mode 100644 site/news/libreboot20241206rev11.md diff --git a/site/index.md b/site/index.md index 59bd950..b5cbb4d 100644 --- a/site/index.md +++ b/site/index.md @@ -28,8 +28,8 @@ of these payloads in a single image, and you choose one at boot time. **NEW RELEASE: The latest release is Libreboot 20241206, released on 6 December 2024. See: [Libreboot 20241206 release announcement](news/libreboot20241206.md) - the -newest revision release, Libreboot 20241206 revision 10, is from 18 -February 2025.** +newest revision release, Libreboot 20241206 revision 11, is from 20 +April 2025.** You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, as well as send your compatible hardware diff --git a/site/news/MANIFEST b/site/news/MANIFEST index 4f9fe40..f7a1f1c 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -1,3 +1,4 @@ +libreboot20241206rev11.md libreboot20241206rev10.md schedule.md libreboot20241206rev8.md diff --git a/site/news/libreboot20241206.Revisions.md b/site/news/libreboot20241206.Revisions.md index 8ef77e3..2242ca0 100644 --- a/site/news/libreboot20241206.Revisions.md +++ b/site/news/libreboot20241206.Revisions.md @@ -189,3 +189,10 @@ Revision 10 (18 February 2025) Several critical security fixes made to GRUB, and a few improvements to LVM scanning in `grub.cfg` were made. Other minor fixes. A full announcement is available in the [20241206rev10 announcement](libreboot20241206rev10.md). + +Revision 11 (20 April 2025) +----------- + +Several regressions have been fixed, that were caused by the previous CVE +fixes merged in Revision 10. +See: [20241206rev11 announcement](libreboot20241206rev11.md). diff --git a/site/news/libreboot20241206rev11.md b/site/news/libreboot20241206rev11.md new file mode 100644 index 0000000..4f37968 --- /dev/null +++ b/site/news/libreboot20241206rev11.md @@ -0,0 +1,133 @@ +% Libreboot 20241206, 11th revision released! (fixes to GRUB regressions) +% Leah Rowe +% 20 April 2025 + +Today's Libreboot 20241206 revision is the 11th revision in the Libreboot +20241206 stable release series. The changelog on this page is written, relative +to Libreboot 20241206 revision 10 +You can find the full list of revisions [here](libreboot20241206.Revisions.md) +and the original release [here](libreboot20241206.md). + +Open source BIOS/UEFI firmware +------------------------------ + + + +Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing +boot firmware that initialises the hardware in your computer, to then load an +operating system (e.g. Linux/BSD). It is specifically +a *[coreboot distribution](../docs/maintain/)*, +in the same way that Debian is a Linux distribution. It provides an automated +build system to produce coreboot ROM images with a variety of payloads such as +GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +to use as possible for non-technical users. From a project management perspective, +this works in *exactly* the same way as a Linux distro, providing a source-based +package manager (called lbmk) which patches sources and compiles coreboot images. +It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, +and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) +or [GRUB](https://www.gnu.org/software/grub/) to boot your operating +system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). + +We also provide an experimental U-Boot setup on x86, as a coreboot payload for +providing a minimal UEFI implementation. + +### Regarding revision 11 + +Normally, revisions would only be documented on +the [Libreboot 20241206 revisions page](libreboot20241206.Revisions.md), but +this revision contains *critical regression fixes*, so it was decided that there +should be a full announcement, to ensure that more people see it. + +Summarised list of changes +------------------------ + +Several major CVE fixes were merged in the previous release revision, but +these caused several regressions especially in filesystem drivers (e.g. fs/ext2). + +For example, very large files would sometimes not load properly on ext4 file +systems, leading to a distro no longer booting (this also affected people who +used the loopback device). + +See below for a full list of fixes merged from upstream, included in this +revision release. GRUB should hopefully be stable now. + +If you previously updated to the revision 10 release, and you rely on the +GRUB payload, you are *strongly* advised to install 20241206rev11 instead. + +### Revision updates + +The following GRUB fixes were merged from upstream: + +``` +* a4da71daf util/grub-install: Include raid5rec module for RAID 4 as well +* 223fcf808 loader/ia64/efi/linux: Reset grub_errno on failure to allocate +* 6504a8d4b lib/datetime: Specify license in emu module +* 8fef533cf configure: Add -mno-relax on riscv* +* 1fe094855 docs: Document the long options of tpm2_key_protect_init +* 6252eb97c INSTALL: Document the packages needed for TPM2 key protector tests +* 9d4b382aa docs: Update NV index mode of TPM2 key protector +* 2043b6899 tests/tpm2_key_protector_test: Add more NV index mode tests +* 9f66a4719 tests/tpm2_key_protector_test: Reset "ret" on fail +* b7d89e667 tests/tpm2_key_protector_test: Simplify the NV index mode test +* 5934bf51c util/grub-protect: Support NV index mode +* cd9cb944d tpm2_key_protector: Support NV index handles +* fa69deac5 tpm2_key_protector: Unseal key from a buffer +* 75c480885 tss2: Add TPM 2.0 NV index commands +* 041164d00 tss2: Fix the missing authCommand +* 46c9f3a8d tpm2_key_protector: Add tpm2_dump_pcr command +* 617dab9e4 tpm2_key_protector: Dump PCRs on policy fail +* 204a6ddfb loader/i386/linux: Update linux_kernel_params to match upstream +* 6b64f297e loader/xnu: Fix memory leak +* f94d257e8 fs/btrfs: Fix memory leaks +* 81146fb62 loader/i386/linux: Fix resource leak +* 1d0059447 lib/reloacator: Fix memory leaks +* f3f1fcecd disk/ldm: Fix memory leaks +* aae2ea619 fs/ntfs: Fix NULL pointer dereference and possible infinite loop +* 3b25e494d net/drivers/ieee1275/ofnet: Add missing grub_malloc() +* fee6081ec kern/ieee1275/init: Increase MIN_RMA size for CAS negotiation on PowerPC machines +* b66c6f918 fs/zfs: Fix a number of memory leaks in ZFS code +* 1d59f39b5 tests/util/grub-shell: Remove the work directory on successful run and debug is not on +* e0116f3bd tests/grub_cmd_cryptomount: Remove temporary directories if successful and debug is not on +* e6e2b73db tests/grub_cmd_cryptomount: Default TMPDIR to /tmp +* 32b02bb92 tests/grub_cmd_cryptomount: Cleanup the cryptsetup script unless debug is enabled +* c188ca5d5 tests: Cleanup generated files on expected failure in grub_cmd_cryptomount +* 50320c093 tests/util/grub-shell-luks-tester: Add missing line to create RET variable in cleanup +* bb6d3199b tests/util/grub-shell-luks-tester: Find cryptodisk by UUID +* 3fd163e45 tests/util/grub-shell: Default qemuopts to envvar $GRUB_QEMU_OPTS +* ff7f55307 disk/lvm: Add informational messages in error cases of ignored features +* a16b4304a disk/lvm: Add support for cachevol LV +* 9a37d6114 disk/lvm: Add support for integrity LV +* 6c14b87d6 lvm: Match all LVM segments before validation +* d34b9120e disk/lvm: Remove unused cache_pool +* 90848a1f7 disk/lvm: Make cache_lv more generic as ignored_feature_lv +* 488ac8bda commands/ls: Add directory header for dir args +* 096bf59e4 commands/ls: Print full paths for file args +* 90288fc48 commands/ls: Output path for single file arguments given with path +* 6337d84af commands/ls: Show modification time for file paths +* cbfb031b1 commands/ls: Merge print_files_long() and print_files() into print_file() +* 112d2069c commands/ls: Return proper GRUB_ERR_* for functions returning type grub_err_t +* da9740cd5 commands/acpi: Use options enum to index command options +* 1acf11fe4 docs: Capture additional commands restricted by lockdown +* 6a168afd3 docs: Document restricted filesystems in lockdown +* be0ae9583 loader/i386/bsd: Fix type passed for the kernel +* ee27f07a6 kern/partition: Unbreak support for nested partitions +* cb639acea lib/tss2/tss2_structs.h: Fix clang build - remove duplicate typedef +* 696e35b7f include/grub/mm.h: Remove duplicate inclusion of grub/err.h +* 187338f1a script/execute: Don't let trailing blank lines determine the return code +* ff173a1c0 gitignore: Ignore generated files from libtasn +* fbcc38891 util/grub.d/30_os-prober.in: Conditionally show or hide chain and efi menu entries +* 56ccc5ed5 util/grub.d/30_os-prober.in: Fix GRUB_OS_PROBER_SKIP_LIST for non-EFI +* 01f064064 docs: Do not reference non-existent --dumb option +* 3f440b5a5 docs: Replace @lbracechar{} and @rbracechar{} with @{ and @} +* f20988738 fs/xfs: Fix grub_xfs_iterate_dir() return value in case of failure +* 1ed2628b5 fs/xfs: Add new superblock features added in Linux 6.12/6.13 +* 348cd416a fs/ext2: Rework out-of-bounds read for inline and external extents +* c730eddd2 disk/ahci: Remove conditional operator for endtime +* f0a08324d term/ns8250-spcr: Return if redirection is disabled +* 7161e2437 commands/file: Fix NULL dereference in the knetbsd tests +* 11b9c2dd0 gdb_helper: Typo hueristic +* 224aefd05 kern/efi/mm: Reset grub_mm_add_region_fn after ExitBootServices() call +* 531750f7b i386/tsc: The GRUB menu gets stuck due to unserialized rdtsc +* f2a1f66e7 kern/i386/tsc_pmtimer: The GRUB menu gets stuck due to failed calibration +* 13f005ed8 loader/i386/linux: Fix cleanup if kernel doesn't support 64-bit addressing +``` From 47c993cba483ff23a4c7b866c6cedcc905e9a2bd Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 30 Apr 2025 12:03:42 +0100 Subject: [PATCH 374/399] Libreboot 25.04 release Signed-off-by: Leah Rowe --- site/docs/install/spi.md | 10 +- site/docs/maintain/index.md | 317 +++++----- site/download.md | 8 +- site/download.tr.md | 10 +- site/download.uk.md | 10 +- site/index.de.md | 6 +- site/index.fr.md | 4 +- site/index.it.md | 4 +- site/index.md | 8 +- site/index.ru.md | 2 +- site/index.tr.md | 8 +- site/index.uk.md | 4 +- site/index.zh-cn.md | 2 +- site/news/MANIFEST | 1 + site/news/libreboot2504.md | 791 +++++++++++++++++++++++++ site/news/libreboot2504.md.description | 1 + 16 files changed, 988 insertions(+), 198 deletions(-) create mode 100644 site/news/libreboot2504.md create mode 100644 site/news/libreboot2504.md.description diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index a6b8e09..5303dea 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -102,8 +102,14 @@ Raspberry Pi Pico ### RP2040/RP2530 both supported -**Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8 -or higher. Releases before this only supported the original Pico, and other +NOTE: RP2530 dongles removed in the Libreboot 25.04 testing release, but will +be re-added in future revisions. It was removed due to bugs, so Libreboot only +supports Pico1 for now, and the Pico2 images were also removed from the December +release of 2024, retroactively. Subsequent revisions will once again re-add +Pico 2 support, after it has been better tested. + +**Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8, +but experimental. Releases before this only supported the original Pico, and other RP2040 dongles; newer Libreboot releases now support both RP2040 and RP2530.** The pinout on Raspberry Pi Pico and Raspberry Pi Pico 2 are identical, but you diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 1acc220..229b7c6 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -170,7 +170,7 @@ instead, because nproc is not available on every operating system. ### XBMK\_RELEASE -If set to `y`, it signals to `script/roms` that a release is being built, +If set to `y`, it signals that a release is being built, and it will honour `release="n"` in target.cfg files. You could also set this yourself when doing regular builds, if you wanted to test how `./mk -b coreboot` behaves running it in release mode. Do this if you want to: @@ -518,7 +518,7 @@ and it can successfully boot UEFI applications on x86 Libreboot systems. Please also visit: This is compiled, so as to provide `UEFIExtract`. Currently used by the -vendor download logic within `include/vendor.sh`, to download SCH5545 EC +vendor download logic within `include/inject.sh`, to download SCH5545 EC firmware (used for fan control on Dell Precision T1650). This has also been modified to build reliably on non-glibc-based systems e.g. @@ -1330,7 +1330,7 @@ posix shell scripts) that constitute the entire Libreboot build system, lbmk: Scripts in root directory of lbmk --------------------------------- -### build +### mk This is the main build script. @@ -1339,7 +1339,7 @@ Example commands: ./mk -b coreboot ./mk -Special commands available (not provided by files under `script/`): +Special commands available: ./mk release ./mk inject @@ -1353,164 +1353,6 @@ You can also know what build system revision you have by running: This script is the beating heart of Libreboot. Break it and you break Libreboot. -include/ --------- - -This directory contains *helper scripts*, to be included -by main scripts using the `.` command (called the `source` -command in `bash`, but we rely upon posix `sh` only). - -### include/git.sh - -These functions in here previously existed as independent scripts, but they -were unified here, and they are used when you pass the `-f` argument -to `script/update/trees` (e.g. `./mk -f coreboot`). - -These functions deal with git cloning, submodule updates, revision resets and -the application of patch files via `git am`. *Every* git repository downloaded -by lbmk is handled by the functions in this file. - -### include/mrc.sh - -This was previously a separate script. The download logic was removed, and -now the logic under `include/vendor.sh` is used for downloads. This file now -only contains those functions used for extraction of MRC files from Google -Chromebook images, currently only used for Haswell motherboards. - -This is an include, used by `include/vendor.sh`, but it's here in -this file because the vendor download script is GPLv3-only, while the MRC -extract logic in this file is GPLv2-only (forked from coreboot ages ago). Thus, -it is provided as an include to bypass license incompatibility. It has been -heavily modified to use the same style of logic and general control flow used -in the script at `include/vendor.sh`, and it is used from there. - -### include/lib.sh - -Several other parts of lbmk also use this file. It is added to as little as -possible, and contains miscallaneous functions that don't belong anywhere else. - -The functions here are mostly those that deal with configuration files; scanning -them to set variables and so on. - -This file also contains generic error handling, used by all lbmk scripts. - -This also contains functions to verify the current libreboot version, and check -whether Git is properly initialised on the host system. It also contains -the `setvars` function, which provides a shorthand way of initialising many -variables (combined with use of `eval`), which lbmk uses heavily. - -This function also contains `x_()` which lbmk uses to execute commands -and ensure that they cause an exit (with non-zero status) from lbmk, if they -return an error state. - -This also includes the `mk()` function, which can be used as shorthand to -build multiple projects, but it doesn't handle targets within multi-tree projects, -so if for example you say `mk coreboot`, it would build every coreboot target. -This is useful for the release build logic, because now it can much more simply -build all of Libreboot, while still being flexible about it. - -### include/rom.sh - -This builds coreboot ROM images. Specifically, this contains mkhelper functions. -It also builds serprog images, and it could be used to provide functions for -building other types of firmware. - -Command: `./mk -b coreboot targetname` - -The `targetname` argument must be specified, chosen from this output: - - ./mk -b coreboot list - -Pass several board names if you wish to build only for specific targets. For -example: - - ./mk -b coreboot x60 x200_8mb - -To build *all* targets, specify: - - ./mk -b coreboot - -For x86 targets, these scripts build with the GRUB and/or SeaBIOS payloads -inserted into the ROM images; secondary payloads like Memtest86+ are also -handled and inserted here. - -It heavily makes use of the `target.cfg` file, for a given board. This script -will *only* operate on a single target, from a directory in `config/coreboot/`. - -If `grub_scan_disk` is set, it sets that in the `scan.cfg` file that is to be -inserted into a ROM image, when `payload_grub` is turned on. - -It automatically detects if `crossgcc` is to be compiled, on a given coreboot -tree (in cases where it has not yet been compiled), and compiles it for a -target based on the `arch` entry in `target.cfg`. - -It creates ROM images with GRUB, SeaBIOS, U-Boot, optionally with Memtest86+ -also included, in various separate configurations in many different ROM images -for user installation. - -If no payload is defined in `target.cfg`, the `build/roms` script will exit -with error status. - -If SeaBIOS is to be used, on `libgfxinit` setups, SeaVGABIOS will also be -inserted. This provides a minimal VGA compatibility layer on top of the -coreboot framebuffer, but does not allow for *switching* the VGA mode. It is -currently most useful for directly executing ISOLINUX/SYSLINUX bootloaders, -and certain OS software (some Windows setups might work, poorly, depending on -the board configuration, but don't hold your breath; it is far from complete). - -If SeaBIOS is to be used, in `vgarom` setups or `normal` setups, SeaVGABIOS -is not inserted and you rely on either coreboot and/or SeaBIOS to execute VGA -option ROMs. - -In all cases, this script automatically inserts several SeaBIOS runtime -configurations, such as: `etc/ps2-keyboard-spinup` set to 3000 (PS/2 spinup -wait time), `etc/pci-optionrom-exec` set to 2 (despite that already being -the default anyway) to enable *all* option ROMs, unless `vgarom` setups are -used, in which case the option is set to *0* (disabled) because coreboot is -then expected to handle option ROMs, and SeaBIOS should not do it. - -This script handles U-Boot separately, for ARM-based chromeos devices. - -When the ROM is finished compiling, it will appear under a directory in `bin/` - -This script is the beating heart of Libreboot. Break it, and you break -Libreboot! - -CCACHE is automatically used, when building coreboot, but not currently for -other projects. This is done by cooking coreboot configs at build time, enabling -coreboot's build option for it. - -### Serprog images: - -Build firmware images for serprog-based SPI programmers, where they use an -STM32 MCU. It also builds for RP2040-based programmers like Raspberry Pi Pico. - -Example command: `./mk -b pico-serprog` - -Example command: `./mk -b stm32-vserprog` - -This also uses `rom.sh` as with the coreboot image build logic. It's all -defined in that file, so read the main section pertaining to this file. - -### include/vendor.sh - -Helper functions for downloading and injecting vendor files. How to use: - - ./mk inject ARGUMENTS - ./mk -d coreboot TARGET - -Refer elsewhere in the documentation for how to handle vendor files, and/or -read [the guide](../install/ivy_has_common.md). - -script/ -------- - -### script/trees - -*This* is the other beating heart of Libreboot. Used heavily by Libreboot, this -script is what handles defconfig files for SeaBIOS, U-Boot *and* coreboot; it -used to be separate scripts, but the logic was unified under this single script. - It *also* handles simple git trees, where there is only one revision for the project, e.g. GRUB, and the command syntax is the same. Whether a project is multi-tree or single-tree is determined by the presence of the @@ -1625,3 +1467,154 @@ All of this used to about 20 different scripts, all with much-duplicated logic. Now it is unified, efficiently, under a single script. Remember: code equals bugs, so less code equals fewer bugs. + +include/ +-------- + +This directory contains *helper scripts*, to be included +by main scripts using the `.` command (called the `source` +command in `bash`, but we rely upon posix `sh` only). + +### include/git.sh + +These functions in here previously existed as independent scripts, but they +were unified here, and they are used when you pass the `-f` argument to `mk`. + +These functions deal with git cloning, submodule updates, revision resets and +the application of patch files via `git am`. *Every* git repository downloaded +by lbmk is handled by the functions in this file. + +### include/mrc.sh + +This was previously a separate script. The download logic was removed, and +now the logic under `include/inject.sh` is used for downloads. This file now +only contains those functions used for extraction of MRC files from Google +Chromebook images, currently only used for Haswell motherboards. + +This is an include, used by `include/inject.sh`, but it's here in +this file because the vendor download script is GPLv3-only, while the MRC +extract logic in this file is GPLv2-only (forked from coreboot ages ago). Thus, +it is provided as an include to bypass license incompatibility. It has been +heavily modified to use the same style of logic and general control flow used +in the script at `include/inject.sh`, and it is used from there. + +### include/lib.sh and init.sh + +The `init.sh` file contains generic lbmk initialisation, and extra library +functions are contained inside `lib.sh`. + +Several other parts of lbmk also use this file. It is added to as little as +possible, and contains miscallaneous functions that don't belong anywhere else. + +The functions here are mostly those that deal with configuration files; scanning +them to set variables and so on. + +This file also contains generic error handling, used by all lbmk scripts. + +This also contains functions to verify the current libreboot version, and check +whether Git is properly initialised on the host system. It also contains +the `setvars` function, which provides a shorthand way of initialising many +variables (combined with use of `eval`), which lbmk uses heavily. + +This function also contains `x_()` which lbmk uses to execute commands +and ensure that they cause an exit (with non-zero status) from lbmk, if they +return an error state. + +This also includes the `mk()` function, which can be used as shorthand to +build multiple projects, but it doesn't handle targets within multi-tree projects, +so if for example you say `mk coreboot`, it would build every coreboot target. +This is useful for the release build logic, because now it can much more simply +build all of Libreboot, while still being flexible about it. + +### include/rom.sh + +This builds coreboot ROM images. Specifically, this contains mkhelper functions. +It also builds serprog images, and it could be used to provide functions for +building other types of firmware. + +Command: `./mk -b coreboot targetname` + +The `targetname` argument must be specified, chosen from this output: + + ./mk -b coreboot list + +Pass several board names if you wish to build only for specific targets. For +example: + + ./mk -b coreboot x60 x200_8mb + +To build *all* targets, specify: + + ./mk -b coreboot + +For x86 targets, these scripts build with the GRUB and/or SeaBIOS payloads +inserted into the ROM images; secondary payloads like Memtest86+ are also +handled and inserted here. + +It heavily makes use of the `target.cfg` file, for a given board. This script +will *only* operate on a single target, from a directory in `config/coreboot/`. + +If `grub_scan_disk` is set, it sets that in the `scan.cfg` file that is to be +inserted into a ROM image, when `payload_grub` is turned on. + +It automatically detects if `crossgcc` is to be compiled, on a given coreboot +tree (in cases where it has not yet been compiled), and compiles it for a +target based on the `arch` entry in `target.cfg`. + +It creates ROM images with GRUB, SeaBIOS, U-Boot, optionally with Memtest86+ +also included, in various separate configurations in many different ROM images +for user installation. + +If no payload is defined in `target.cfg`, the `build/roms` script will exit +with error status. + +If SeaBIOS is to be used, on `libgfxinit` setups, SeaVGABIOS will also be +inserted. This provides a minimal VGA compatibility layer on top of the +coreboot framebuffer, but does not allow for *switching* the VGA mode. It is +currently most useful for directly executing ISOLINUX/SYSLINUX bootloaders, +and certain OS software (some Windows setups might work, poorly, depending on +the board configuration, but don't hold your breath; it is far from complete). + +If SeaBIOS is to be used, in `vgarom` setups or `normal` setups, SeaVGABIOS +is not inserted and you rely on either coreboot and/or SeaBIOS to execute VGA +option ROMs. + +In all cases, this script automatically inserts several SeaBIOS runtime +configurations, such as: `etc/ps2-keyboard-spinup` set to 3000 (PS/2 spinup +wait time), `etc/pci-optionrom-exec` set to 2 (despite that already being +the default anyway) to enable *all* option ROMs, unless `vgarom` setups are +used, in which case the option is set to *0* (disabled) because coreboot is +then expected to handle option ROMs, and SeaBIOS should not do it. + +This script handles U-Boot separately, for ARM-based chromeos devices. + +When the ROM is finished compiling, it will appear under a directory in `bin/` + +This script is the beating heart of Libreboot. Break it, and you break +Libreboot! + +CCACHE is automatically used, when building coreboot, but not currently for +other projects. This is done by cooking coreboot configs at build time, enabling +coreboot's build option for it. + +### Serprog images: + +Build firmware images for serprog-based SPI programmers, where they use an +STM32 MCU. It also builds for RP2040-based programmers like Raspberry Pi Pico. + +Example command: `./mk -b pico-serprog` + +Example command: `./mk -b stm32-vserprog` + +This also uses `rom.sh` as with the coreboot image build logic. It's all +defined in that file, so read the main section pertaining to this file. + +### include/inject.sh + +Helper functions for downloading and injecting vendor files. How to use: + + ./mk inject ARGUMENTS + ./mk -d coreboot TARGET + +Refer elsewhere in the documentation for how to handle vendor files, and/or +read [the guide](../install/ivy_has_common.md). diff --git a/site/download.md b/site/download.md index f1af170..635b527 100644 --- a/site/download.md +++ b/site/download.md @@ -33,7 +33,7 @@ there, before flashing. For posterity, GPG signing key --------------- -**The latest release is Libreboot 20241206, under the `stable` directory.** +**The latest release is Libreboot 25.04, under the `testing` directory.** ### NEW KEY @@ -85,7 +85,7 @@ there is a Git repository that you can download from. Go here: HTTPS mirrors {#https} ------------- -**The latest release is Libreboot 20241206, under the `stable` directory.** +**The latest release is Libreboot 25.04, under the `testing` directory.** These mirrors are recommended, since they use TLS (https://) encryption. @@ -176,7 +176,7 @@ crontab. This page tells you how to use crontab: HTTP mirrors {#http} ------------ -**The latest release is Libreboot 20241206, under the `stable` directory.** +**The latest release is Libreboot 25.04, under the `testing` directory.** WARNING: these mirrors are non-HTTPS which means that they are unencrypted. Your traffic could be subject to interference by @@ -190,7 +190,7 @@ if using HTTPS. FTP mirrors {#ftp} ----------- -**The latest release is Libreboot 20241206, under the `stable` directory.** +**The latest release is Libreboot 25.04, under the `testing` directory.** WARNING: FTP is also unencrypted, like HTTP. The same risks are present. diff --git a/site/download.tr.md b/site/download.tr.md index e688586..3cad1dc 100644 --- a/site/download.tr.md +++ b/site/download.tr.md @@ -24,7 +24,7 @@ takip edin. Hatırlatma olarak, [işte bağlantı tekrar burada](docs/install/iv GPG İmza Anahtarı ---------------- -**En son sürüm, `stable` dizini altındaki Libreboot 20241206'dır.** +**En son sürüm, `testing` dizini altındaki Libreboot 25.04'dır.** ### YENİ ANAHTAR @@ -69,7 +69,7 @@ Ancak, Libreboot'un en güncel sürümü için indirebileceğiniz bir Git deposu HTTPS Yansıları {#https} -------------- -**En son sürüm, `stable` dizini altındaki Libreboot 20241206'dır.** +**En son sürüm, `testing` dizini altındaki Libreboot 25.04'dır.** Bu yansılar TLS (https://) şifrelemesi kullandığı için önerilir. @@ -146,7 +146,7 @@ Rsync yansınızı düzenli olarak güncel tutmak istiyorsanız, bir crontab'a e HTTP Yansıları {#http} ------------- -**En son sürüm, `stable` dizini altındaki Libreboot 20241206'dır.** +**En son sürüm, `testing` dizini altındaki Libreboot 25.04'dır.** UYARI: bu yansılar HTTPS olmadığı için şifrelenmemiştir. Trafiğiniz kötü niyetli kişiler tarafından müdahaleye uğrayabilir. Doğru anahtara sahip olduğunuzu @@ -159,7 +159,7 @@ HTTPS kullansanız bile bunu yapmalısınız. FTP Yansıları {#ftp} ------------ -**En son sürüm, `stable` dizini altındaki Libreboot 20241206'dır.** +**En son sürüm, `testing` dizini altındaki Libreboot 25.04'dır.** UYARI: FTP de HTTP gibi şifrelenmemiştir. Aynı riskler mevcuttur. @@ -176,4 +176,4 @@ GPL v2'ye uymak için, Libreboot projesi tarafından kaynak ISO'lar sağlanır. 20160907 sürümünden sonraki Libreboot sürümleri statik olarak bağlanmış ikili dosyalar dağıtmaz. Bunun yerine, bu sürümler normal Libreboot kaynak kodu arşivlerinin yeterli olduğu önceden derlenmiş ROM imajları dışında yalnızca kaynak içerir. Bu yeni sürümler bunun yerine derleme bağımlılıklarının kurulumunu otomatikleştirir ve çeşitli yardımcı programları kaynak koddan derlemek için belgelerde talimatlar sunar. -Bu yürütülebilir dosyalar `flashprog` gibi yardımcı programlardır. \ No newline at end of file +Bu yürütülebilir dosyalar `flashprog` gibi yardımcı programlardır. diff --git a/site/download.uk.md b/site/download.uk.md index 7d55784..9352e4f 100644 --- a/site/download.uk.md +++ b/site/download.uk.md @@ -33,7 +33,7 @@ there, before flashing. For posterity, Код підпису GPG --------------- -**Останнім випуском є Libreboot 20241206, в директорії `stable`.** +**Останнім випуском є Libreboot 25.04, в директорії `testing`.** ### НОВИЙ КЛЮЧ @@ -52,7 +52,7 @@ will expire on 26 December 2028. Повний відбиток ключа: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856` This key is for Libreboot releases *after* the 20160907 release, and up -to the Libreboot 20241206 release. This key *expired* during December 2023, +to the Libreboot 25.04 release. This key *expired* during December 2023, so you should use the *newer* key (see above) for the releases after Libreboot 20240126. @@ -85,7 +85,7 @@ Libreboot 20240126. Дзеркала HTTPS {#https} ------------- -**Останнім випуском є Libreboot 20241206, в директорії `stable`.** +**Останнім випуском є Libreboot 25.04, в директорії `testing`.** Дані дзеркала є рекомендованими, оскільки використовують TLS (https://) шифрування. @@ -176,7 +176,7 @@ crontab. Ця сторінка розповідає вам, як викорис Дзеркала HTTP {#http} ------------ -**Останнім випуском є Libreboot 20241206, під директорією `stable`.** +**Останнім випуском є Libreboot 25.04, під директорією `testing`.** УВАГА: ці дзеркала є не-HTTPS, що означає, що вони незашифровані. Ваш трафік може бути об'єктом втручання @@ -190,7 +190,7 @@ crontab. Ця сторінка розповідає вам, як викорис Дзеркала FTP {#ftp} ----------- -**Останнім випуском є Libreboot 20241206, під директорією `stable`.** +**Останнім випуском є Libreboot 25.04, під директорією `testing`.** УВАГА: FTP є також незашифрованим, подібно HTTP. Ті ж самі ризики присутні. diff --git a/site/index.de.md b/site/index.de.md index 139f540..6919c53 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -27,9 +27,9 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. -**NEUESTE VERSION: Die neueste Version von Libreboot ist 20241206, veröffentlicht -am 6 December 2024. -Siehe auch: [Libreboot 20241206 release announcement](news/libreboot20241206.md).** +**NEUESTE VERSION: Die neueste Version von Libreboot ist 25.04, veröffentlicht +am 30 April 2025. +Siehe auch: [Libreboot 25.04 release announcement](news/libreboot2504.md).** You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, as well as send your compatible hardware diff --git a/site/index.fr.md b/site/index.fr.md index 4ab6977..3f59410 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -20,8 +20,8 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. -**NOUVELLE VERSION: La dernière version est [Libreboot 20241206](news/Libreboot20241206.md), sortie -le 6 December 2024.** +**NOUVELLE VERSION: La dernière version est [Libreboot 25.04](news/libreboot2504.md), sortie +le 30 April 2025.** Vous pouvez également acheter du matériel avec [Libreboot pré-installé](https://minifree.org/) via l'entreprise Minifree Ltd, ou envoyer votre propre ordinateur [pour y installer Libreboot](https://minifree.org/product/installation-service/). diff --git a/site/index.it.md b/site/index.it.md index 072018f..d693e93 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -26,8 +26,8 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. -**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 20241206, rilasciato il 6 December 2024. -Vedi: [Libreboot 20241206 annuncio di rilascio](news/libreboot20241206.md).** +**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 25.04, rilasciato il 30 April 2025. +Vedi: [Libreboot 25.04 annuncio di rilascio](news/libreboot2504.md).** You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, as well as send your compatible hardware diff --git a/site/index.md b/site/index.md index b5cbb4d..0f102e9 100644 --- a/site/index.md +++ b/site/index.md @@ -25,11 +25,9 @@ on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight UEFI boot implementation. Libreboot's [design](docs/maintain/) incorporates all of these payloads in a single image, and you choose one at boot time. -**NEW RELEASE: The latest release is Libreboot 20241206, released on -6 December 2024. -See: [Libreboot 20241206 release announcement](news/libreboot20241206.md) - the -newest revision release, Libreboot 20241206 revision 11, is from 20 -April 2025.** +**NEW RELEASE: The latest release is Libreboot 25.04, released on +30 April 2025. +See: [Libreboot 25.04 release announcement](news/libreboot2504.md). You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, as well as send your compatible hardware diff --git a/site/index.ru.md b/site/index.ru.md index 0407781..64a1bd0 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -19,7 +19,7 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. -**НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 20241206, опубликован 6 December 2024 года. Смотрите: [Libreboot 20241206 release announcment](news/libreboot20241206.md).** +**НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 25.04, опубликован 30 April 2025 года. Смотрите: [Libreboot 25.04 release announcment](news/libreboot2504.md).** Вы также можете купить [Libreboot предустановленным](https://minifree.org) от Minifree Ltd, а также присылать нам свои совместимые устройства для [установки Libreboot](https://minifree.org/product/installation-service/). Основатель и ведущий разработчик Libreboot, Лия Роу, также владеет и управляет Minifree; продажи обеспечивают финансирование для Libreboot. diff --git a/site/index.tr.md b/site/index.tr.md index aa5e774..4098655 100644 --- a/site/index.tr.md +++ b/site/index.tr.md @@ -9,9 +9,9 @@ x-toc-enable: true Libreboot, x86/x86_64 Intel/AMD anakartlarda GNU önyükleyici "[GRUB](docs/linux/)" ve SeaBIOS yüklerini, ARM64(Aarch64) anakartlarda ise *coreboot için* [U-Boot UEFI yükünü](docs/uboot/) sağlar. Bazı kartlarda [x86/x86_64 U-Boot UEFI yükü](docs/uboot/uboot-x86.md) de mevcuttur. x86, x86_64 ve arm64 U-Boot yükleri hafif bir UEFI önyükleme uygulaması sağlar. Libreboot'un [tasarımı](docs/maintain/) tüm bu yükleri tek bir imajda birleştirir ve önyükleme sırasında birini seçersiniz. -**YENİ SÜRÜM: En son sürüm 6 Aralık 2024'te yayınlanan Libreboot 20241206'dır. -Bakınız: [Libreboot 20241206 sürüm duyurusu](news/libreboot20241206.md) - en -yeni revizyon sürümü olan Libreboot 20241206 revizyon 10, 18 Şubat 2025 tarihlidir.** +**YENİ SÜRÜM: En son sürüm 4 April 2025'te yayınlanan Libreboot 25.04'dır. +Bakınız: [Libreboot 25.04 sürüm duyurusu](news/libreboot2504.md) - en +yeni revizyon sürümü olan Libreboot 25.04 revizyon 10, 18 Şubat 2025 tarihlidir.** Ayrıca Minifree Ltd'den seçili donanımlarda [Libreboot önyüklenmiş cihazlar satın alabilir](https://minifree.org/) veya uyumlu donanımınızı [Libreboot önyükleme hizmeti](https://minifree.org/product/installation-service/) için gönderebilirsiniz. Libreboot'un kurucusu ve baş geliştiricisi Leah Rowe aynı zamanda Minifree'yi de işletmektedir; satışlar Libreboot için finansman sağlamaktadır. @@ -82,4 +82,4 @@ Libreboot şu anda Ukraynaca ve Fransızca çevrilmiş web sayfalarına sahiptir [libreboot.org için çeviri nasıl gönderilir](news/translations.md) -Belirli bir dilde biri zaten çalışıyor olsa bile, her zaman birden fazla kişi kullanabiliriz. Ne kadar çok o kadar iyi! \ No newline at end of file +Belirli bir dilde biri zaten çalışıyor olsa bile, her zaman birden fazla kişi kullanabiliriz. Ne kadar çok o kadar iyi! diff --git a/site/index.uk.md b/site/index.uk.md index 4772fae..dbe4d47 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -27,8 +27,8 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. -**НОВИЙ ВИПУСК: Останній випуск Libreboot 20241206, випущено 6 December 2024. -Дивіться: [Оголошення про випуск Libreboot 20241206](news/libreboot20241206.md).** +**НОВИЙ ВИПУСК: Останній випуск Libreboot 25.04, випущено 30 April 2024. +Дивіться: [Оголошення про випуск Libreboot 25.04](news/libreboot2504.md).** You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, as well as send your compatible hardware diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index 31eb162..08e790e 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -19,7 +19,7 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. -**新版发布: 最新版本 Libreboot 20241206 已在 2024 年 12 月 06 日发布。详见: [Libreboot 20241206 发布公告](news/libreboot20241206.md).** +**新版发布: 最新版本 Libreboot 25.04 已在 2025 年 04 月 30 日发布。详见: [Libreboot 25.04 发布公告](news/libreboot2504.md).** 你也可以从 Minifree Ltd [购买特定硬件的 Libreboot 电脑](https://minifree.org/), 或者将兼容硬件寄来预装 Libreboot。 diff --git a/site/news/MANIFEST b/site/news/MANIFEST index f7a1f1c..9879344 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -1,3 +1,4 @@ +libreboot2504.md libreboot20241206rev11.md libreboot20241206rev10.md schedule.md diff --git a/site/news/libreboot2504.md b/site/news/libreboot2504.md new file mode 100644 index 0000000..e7ae0de --- /dev/null +++ b/site/news/libreboot2504.md @@ -0,0 +1,791 @@ +% Libreboot 25.04 "Corny Calamity" released! +% Leah Rowe +% 30 April 2025 + +Today's Libreboot 25.04 revision is a *testing release*, whereas the previous +stable release was Libreboot 20241206. The codename for this release +is *Corny Calamity*. This is the first release to have a codename, and it is +using YY.MM format for the version number for the first time. Older releases +used YYYYMMDD as release dates. + +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** + +New schedule and version numbers +------------------------------- + +This change in version release scheme was previously reported in the news +post announcing Libreboot's new [formal release schedule](schedule.md). As per +that article, the next stable release will be Libreboot 25.06, in June 2025. + +Regarding the changelog +-------------------- + +A lot has happened since Libreboot 20241206, released in December 2024. Although +several revisions were made to that release in recent months, *this* new +release changelog is relative to the *original* December 2024 release, so some +of these changes were also included in 20241206 revision releases. + +Open source BIOS/UEFI firmware +---------------------------- + + + +Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing +boot firmware that initialises the hardware in your computer, to then load an +operating system (e.g. Linux/BSD). It is specifically +a *[coreboot distribution](../docs/maintain/)*, +in the same way that Debian is a Linux distribution. It provides an automated +build system to produce coreboot ROM images with a variety of payloads such as +GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +to use as possible for non-technical users. From a project management perspective, +this works in *exactly* the same way as a Linux distro, providing a source-based +package manager (called lbmk) which patches sources and compiles coreboot images. +It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, +and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) +or [GRUB](https://www.gnu.org/software/grub/) to boot your operating +system; on ARM(chromebooks) and certain x86 mainboards, we provide *U-Boot* (as +a coreboot payload), which provides a lightweight UEFI implementation.. + + + +Summarised list of changes +------------------------- + +### Board support + +The following boards have been added since the Libreboot 20241206 release: + +* Acer Q45T-AM support added (similar to G43T-AM3 mainboard) + +G43T-AM3 and Q45T-AM were also changed to a descriptor-based setup, with +full GbE region and correct 4MB ROM size, so for example ethernet should +work fine now. + +### Revision updates + +In descending order from latest changes to earliest changes: + +* Bump SeaBIOS to to rev 9029a010, 4 March 2025 +* Updated Untitled to newer LBSSG repository. +* Bump flashprog to rev e060018 (1 March 2025) +* Bump U-Boot on ARM64 boards to U-Boot v2025.04. Patching courtesy of + Alper Nebi Yasak. +* Bump uefitool to rev a072527, 26 Apr 2025 to fix CMake compatibility issue + since CMake 4 no longer supports version 3.5, whereas the old uefitool had + an earlier version as the minimum supported. This fixed a minor build error. +* Merged coreboot/next with coreboot/default +* Bump coreboot/next to rev c247f62749b as of 20 April 2025 +* Bump coreboot/default to rev c247f62749b as of 20 April 2025 +* Bump GRUB to rev a4da71daf (20 April 2025) +* Bump flashprog to revision eb2c041 (14 Nov 2024). + +The GRUB revision includes a number of critical CVE fixes, and regression +fixes, that were also included in Libreboot 20241206 rev11. + +The NASM version was updated to version 2.16.03 on coreboot/fam15h, to prevent +build errors, instead of fixing the old NASM 2.14.02. Tested on Debian Sid +Experimental, with GCC15-based toolchain, and on Fedora 42. + +PICO support: Reverted to the old pico serprog/sdk repositories used +in Libreboot 20240612. This is temporary, because pico2 support is currently +broken, so this release only has pico1 support, when dealing with Rpi Pico +devices. Upstream pico-serprog works fine on pico2, so this will be fixed +in and re-updated again in a future revision release. The pico2 update images +were retroactively removed from the 20241206 release on rsync. + +A patch from upstream was backported to the old pico-sdk version, so that it +builds correctly on newer GCC15 (tested on Debian Sid with "Experimental" +packages enabled). + +### Licensing + +* Added SPDX license headers to almost every configuration file in lbmk. + +### Security + +These can be considered bug fixes, but these are special fixes that are of +massive concern to users. + +* Merged *73* critical CVE fixes into the GNU GRUB source code, from upstream. +* Stricter use of pledge and unveil in the nvmutil source code. +* *Much* safer `./mk inject`. It used to be that the tarballs were extracted + and files inserted into the extracted images, but the tarballs were left + unmodified; many users thought then that they should extract the tarball + and flash that, which lead to bricks. And it was easy to flash uninjected + images, where files (e.g. Intel ME) are needed, so now ROM images are padded + by one byte, to prevent flashing, and the user is strongly reminded to + inject files first; upon running the `./mk inject` commands, these images + are then safe to flash. +* Fix globbing issues in lbmk by double-quoting variables everywhere, and + generally making sure that certain characters are escaped properly when + necessary. To reduce the chance of bad commands being run by mistake or + intentionally. +* Removed auto-confirm on `./mk dependencies` commands, to mitigate the risk + of a buggy package manager on the user's distro possibly removing many + packages. Now the user must confirm their choice, e.g. when a conflict + occurs, instead of the package manager already deciding for the user. +* ThinkPad T480 / OptiPlex 3050: Disable HyperThreading/SMT by default, for + security, to reduce the attack vector of certain speculative execution-based + exploits. + +### Feature changes + +In descending order from latest changes to earliest changes: + +* `init.sh`: More verbose error info, on non-zero exits. +* `util/nvmutil`: Within each 4KB part, only handle 4KB, even if the block + size is bigger. This means using less memory, and modification of anything + past 4KB is not required. +* `util/nvmutil`: Support 16KB and 128KB GbE files, in addition to the + usual 8KB files. The size is based on the block size of the flash you use. +* Added non-root USB3 hub support to GRUB on the xHCI implementation, courtesy + of a patch from Nitrokey. +* GRUB: Scan LUKS inside *every* LVM, to support the uncommon use case where + LUKS is inside LVM, instead of LVM inside LUKS. It is theoretically possible, + even if ill advised. +* GRUB: Scan *every* LVM device, where available, as a fallback at boot time + when all else fails. +* Release ROMs prefixed with a "DO NOT FLASH" warning and padded by one byte, + where vendor files are required. The `./mk inject` commands remove this + prefix/padding, after vendor files are inserted and checksums verified. +* Better detecting of whether vendor files are needed, and confirmation to + the user while running `./mk inject` commands. +* Allow restoring the default MAC address on `./mk inject` commands, by using + the `setmac restore` arguments. +* Randomise the MAC address by default, where applicable, when running + the `./mk inject` commands, because lots of users previously flashed without + changing it, so lots of users had generic MAC addresses. + The `setmac keep` argument prevents this from happening, where desired. +* `include/vendor.sh`: More user-friendly debug messages, for the user to + know what's going on. +* `util/nvmutil`: Add uninstall command to the Makefile +* `util/nvmutil`: Add distclean command to the Makefile +* `util/nvmutil`: Nicer hexdump display, similar to `hexdump -C`. +* Support a `re` argument in `./mk dependencies` Fedora commands, for + re-installation of packages as desired. +* Support `--reinstall` in the `./mk dependencies debian` command, when the + user wants to re-install dependencies. +* Put temporary `PATH` directory in the normal `XBMK_CACHE` directory, and + clear it whenever a new parent instance of the build system is executed. + This is used for the GCC/GNAT matched symlinks, for example, or the python + symlink created at startup. +* Pico 2 support briefly added, but was a bit buggy for now, so it's removed + in this release, and was retroactively removed in rsync for the + Libreboot 20241206 release; this will be re-added in a future release. +* Added GRUB-first payload setups as an option, but not enabled by default. + The user can add `payload_grubsea="y"` in the `target.cfg` file for a given + mainboard. +* Support automatically downloading Lenovo ThunderBolt firmware for the + ThinkPad T480, automatically padding it for installation. This update fixes + a charging bug that affected some earlier launch models. +* Insert GRUB backgrounds in CBFS instead of GRUB memdisk, which makes + GRUB background images easier to replace. + +### Configuration changes + +In descending order from the latest changes to the earliest changes: + +* T480/3050micro: Removed the `fsp` targets, because we only need + the `vfsp` targets. +* Added `gnutls-devel` to Fedora 41 dependencies. +* Added `libx86` to Arch dependencies, needed for the `int` utility. +* Added `less` to Arch dependencies, because it's needed for certain commands + e.g. git commands. +* GRUB: Use the codeberg mirror first, to mitigate GNU mirrors often being + slow or rate limited, e.g. for gnulib downloads. +* fedora41/dependencies: add libuuid-devel +* Added `uuid-devel` to fedora41 dependencies +* flashprog: Disable `-Werror` to prevent minor warnings being treated as errors. + +### Bug fixes + +The following bug fixes have been merged (in descending order from the latest +changes to the earliest changes): + +* coreboot (all trees): Added patch fixing GMP build errors on modern + GCC15 hostcc. +* coreboot (all trees): Fixed building of crossgcc with newer GCC15. Patches + courtesy of Alper Nebi Yasak. +* coreboot (all trees): Added a patch to fix building coreboot utils with + newer GCC15. +* dependencies/debian: Fixed the libusb package name for newer Debian releases, + courtesy of Alper Nebi Yasak. +* SeaBIOS: Fixed `malloc_fn` function pointers in the `romfile` patch, courtesy + of Alper Nebi Yasak. Fix build errors on GCC 15. +* `include/lib.sh`: Force use of System Python e.g. `/usr/bin/python`, when + a python venv is detected. This prevents the build system from hanging. +* coreboot `g43t_am3`: Fixed the `data.vbt` path. +* Alper Nebi Yasak fixed the Python 2/3 detection in some edge cases when + the `python` command is python2. +* `include/lib.sh` (later `init.sh`): Do root check *first*, right after + the dependencies check, whereas it previously did the python check before + checking for root user. +* lbmk: Don't use TMPDIR directly, use another variable containing its value, + and make sure it doesn't get changed wrongly. This reduces the possibility + of accidentally leaving old tmp files laying around. +* `include/lib.sh`: `tar` commands now return an exit with error, if a fault + occurs, whereas it didn't before, due to piped output. This is done + using the `x_` wrapper on tar commands, to provide error exits. +* `mk`: function `check_project_hashes` now returns an error, if the sha512sum + command fails. It previously didn't, due to piped outputs. It's now mitigated + by using `x_` on piped commands, for error exits. +* Forking of lbmk parent instance to child instance isno longer handled by + variables. It's been simplified, to only be based on whether TMPDIR is set, + and it's generally more robust now in this release. The old code sometimes + broke under certain edge cases. +* `include/vendor.sh` (later renaming to `inject.sh`): General code cleanup, + about 100 sloc removed without reducing features. +* lbmk: Initialise `PATH` to a standard string if not set, on the parent + instance of lbmk. +* lbmk: Use `pwd` instead of the `PWD` variable, resetting the latter safely + as lbmk runs. This prevents lbmk from changing directory to an erroneous + system path, if `PWD` wasn't properly set for some reason. This is a + preventative bug fix, because no actual issue ever occured in practise. +* Much safer Python version check at lbmk startup, using data structures that + are provided universally by all Python implementations, instead of + relying on the output of `--version`. +* Fixed T480 backlight controls, courtesy of a patch from Mate Kukri. +* Set up Python in `PATH` when lbmk starts, to ensure that it is always + version 3. This is checked at startup. +* `include/vendor.sh`: Prevent double-nuke, where a given tarball already had + vendor files removed prior to release. +* `include/vendor.sh`: Allow setting a MAC address even if vendor files aren't + needed. +* `include/vendor.sh`: Download utils even if `vcfg` is not set, in case the + user is also setting a MAC address. +* `util/nvmutil`: Honour the `INSTALL` variable, if set by the user, otherwise + it is set to `install` by default. +* `util/nvmutil`: Don't do `clean` when running `uninstall`. +* `util/nvmutil`: Proper DESTDIR/PREFIX handling, whereas it was not handled + properly at all before. +* `util/nvmutil`: Only set CC/CFLAGS if unset, and use sensible defaults. +* Fixed various shellcheck errors in lbmk. +* HP EliteBook 820 G2: Fixed vendor file insertion and set `release=y`. The + insertion of Intel MRC and refcode previously didn't pass checksum validation. +* ThinkPad T480 / OptiPlex 3050: Force power-off state upon recovery from + power loss, otherwise the system always turns on as soon as a charger is + plugged in. This is configured by hardcoding, due to a current lack of any + option table on the T480. +* Debian dependencies: replace liblz4-tool with lz4 and liblz4-dev. The latter + is also available in Debian Trixie and Sid, at this time, in addition to + Debian Bookworm, so it works on all of them. +* U-Boot (x86): Fixed a bug since Swig 4.3.0 changed the syntax for its + language-specific AppendOut functions. A patch from upstream was backported, + and the patch is also compatible with older versions of Swig. +* In lbmk scripts, use `command -v` instead of `which`, to find the locations + of certain binaries. This is a bug fix, since `which` is non-standard and + so could break on some setups. +* Crossgcc: when building it for coreboot, fix mismatching GCC/GNAT versions + so that they match, if multiple versions are present. This was done because + Debain Trixie initially had GCC 14 and GNAT 13, whereas we need GNAT to build + the Intel video init code on many mainboards. +* T480/T480: Disable TPM2 to mitigate a hang in SeaBIOS due to buggy drivers. +* `dependencies/debian`: Fix the `python3-distutils` package, renamed it + to `python3-distutils-extra`, which works on bookworm *and* newer, but the + former did not. +* `git.sh`: don't initialise the `livepull` variable globally, reset it per + target instead, to prevent some repositories from being wrongly re-cloned. +* Thinkpad T480 / Dell OptiPlex 3050: Handle FSP insertion post-release, rather + than providing FSP images directly in release images. It is now handled by + the `./mk inject` command, copying the reference image from coreboot and + splitting it upp and rebasing it, to mitigate certain technicalities of + Intel's FSP license, which otherwise permits free redistribution. +* Safer, more reliable exit when handling vendor files, because in some cases + lbmk was leaving the `lock` file in place (erroneously). +* Safer exit when running the `./mk dependencies` commands, so that lbmk is + more likely to exit, because it was theoretically possible that it might + not under certain edge cases. +* Disable nvme hotplug on Dell OptiPlex 3050 Micro, to prevent replugging in + Linux, which would otherwise lead to possible data corruption. +* T480: Fix coreboot SPD size to 512 instead of 256 (it was already + auto-corrected to 512 at build time, but the original configs were 256 which + is wrong). +* Add tarballs and gpg signatures to `.gitignore` + +### General code cleanup + +A large audit has been conducted, removing a lot of dead code in the build +system and improving the code quality considerably. Not all of such cleanup +changes are listed, because otherwise it'd overwhelm the changelog, and many +of the changes alone are quite pedantic, but together make a big change. You +can consult the Git log if you're more interested. + +A lot of bloat was removed, but a *lot* of new features, especially safety +features, were added, so the build system is *bigger*: lbmk has a sloccount +of *1507* source lines, in this release, versus 1145 in the 20241206 release. +However, this is with a slew of new features that are useful, including much +safer handling of vendor files, safer in that the risk of bricks is reduced. +This sloccount includes only the core shell scripts that comprise the build +system; there are millions of lines of code, between all the upstream sources +that lbmk imports, or otherwise depends on. lbmk is *[tiny](../docs/maintain/)*. + +In descending order from the latest changes to the earliest changes: + +* `init.sh`: Generally moralised it, moving separate tasks into separate + functions, rathher than having it be one big monolith. +* `vendor.sh` was renamed to `inject.sh`, so that future changes can be + in better sync between lbmk and cbmk on this file, because the cbmk version + has the MAC address changer (but no vendorfile handling). In the future, + this will be split so that `vendor.sh` exists again, containing only the + vendorfile handling, and `inject.sh` will only handle MAC addresses. +* `init.sh`: Several variables were moved out of this file and elsewwhere in + lbmk. +* Moved the `singletree` function to `git.sh` instead of `lib.sh` +* Moved the `cbfs` function from `lib.sh` to `rom.sh`. +* `include/lib.sh`: Use a more top-down function order, more clear, and it was + split into an extra file `init.sh` that does the most basic lbmk initialisation + at startup, whereas what remains in `lib.sh` really are generic library + functions used throughout lbmk. +* `include/git.sh`: Removed unused crossgcc linking feature, because we don't + use it anymore (coreboot trees have their own crossgcc and never link to + another these days). Libreboot used to have many more coreboot trees, some + of which re-used crossgcc from another tree. Similarly, the accompanying + variable `tree_depend` is no longer handled. The `xtree` variable is still + handled, because projects like U-Boot use that to configure crossgcc. +* include/vendor.sh: Removed unnecessary check against the ROM image size. + Generally simplified the processing of release images. +* include/git.sh`: Removed many redundant functions, merging several of them. +* `include/mrc.sh`: Fixed a bad print, making proper use of a string inside + a printf statement. +* Simplified many file checks in lbmk, by using the `e` function. +* Removed a bunch of useless `eval` commands in general, throughout lbmk, + making the code much cleaner. +* lbmk: the `x_` function is now used much more aggressively, for error + handling, simplifying error handling in lbmk overall. +* `mk` main script: Merged the `trees` script with it, so now it's all one + script. The `mk` script is now the only executable script in lbmk. +* `mk` (main script): The `roms` command is removed (legacy / obsolete). +* The version/versiondate files are now dotfiles, to hide during operation. +* `include/lib.sh`: Hardcoded projectname/projectsite variables, instead + of storing them in a file. +* `trees` script: Unified handling of flags (same string used in error output), + to ensure that error(usage) messages always match. +* `trees` script (later merged into `mk`): Removed a lot of old bloat. +* `util/nvmutil`: Make the checksum word position a define. Generally cleaned + up a lot of code to make it clearer for the reader. Added more verbose + messages to the user, confirming things such as how much was read or written + on the user's file system. Various miscallaneous bug fixes (edge cases that + were unlikely to ever be triggered). +* `util/nvmutil`: More efficient use of memory when handling files. +* `util/nvmutil`: Much cleaner handling of user input. +* `util/nvmutil: More granular MAC address parsing errors, easy for debugging. +* `util/nvmutil`: Make the Gbe Checksum a define, for readibility. +* `util/nvmutil`: Obey the 79-character-per-line limit, as per lbmk coding + style. +* `util/nvmutil`: Tidied up several pledge calls +* Removed use of several unnecessary subshells and `eval` statements in lbmk. +* `trees`: Later, the GCC/GNAT matching feature was rewritten to work both ways, + where an older GCC was matched to GNAT and vice versa, whereas it previously + only went one way. `gcc` and `gnat` are manipulated in `PATH` to ensure that + the user has a consistent version of both. +* `path.sh` later merged into the `trees` script (which later merged + into the main `mk` script). This `path.sh` is what contained the first + implementation of the GNAT/GCC version matching feature. +* `path.sh`: Remove unnecessary shebang, and the same on other `include/` + scripts. NOTE: `path.sh` was later merged into `lib.sh`, which then became + split into `init.sh` in later changes (see above). +* Removed legacy build system commands e.g. `./build` and `./update`; now + only the newer `./mk` commands are supported. This and the change below was + briefly reverted, for the 20241206 revisions, but then re-introduced in + preparation for this Libreboot 25.04 release. +* Removed the deprecated `./vendor` command; now only `./mk` commands are + used. The `./mk -d coreboot target` commands are used, for downloading + vendor files. +* Removed unused patch that was for the original deguard implementation, + prior to Mate Kukri's re-write of it. + +Git log +------- + +This log is relative to Libreboot 20241206: + +``` +* 4f77125066d coreboot/fam15h: update submodule for nasm +* 0f2202554ab coreboot/fam15h: update nasm to 2.16.03 +* 2009c26f0aa serprog: Remove pico2 support for the time being +* a08b8d94fc5 seabios: bump to rev 9029a010, 4 March 2025 +* 342eca6f3d1 update untitled +* b0a6d4711a3 coreboot413: add alper's fix to cbfstool for gcc15 +* 628ae867c9a flashprog: bump to rev e060018 (1 March 2025) +* 5e96db5a2b4 further gcc-15 fix for gmp on -std=23 +* 9a9cd26b2d5 coreboot/default and fam15h: gmp fix, gcc15 hostcc +* 80007223c85 lib.sh: Provide printf for mktarball +* a16c483e5fd Merge pull request 'coreboot: fam15h: Add patches to fix build with GCC 15 as host compiler' (#318) from alpernebbi/lbmk:coreboot-fam15h-gcc15 into master +|\ +| * 685685ab0e4 coreboot: fam15h: Add patches to fix build with GCC 15 as host compiler +|/ +* 02110f2bc1d Merge pull request 'coreboot: Add patch to fix build with GCC 15 as host compiler' (#317) from alpernebbi/lbmk:coreboot-gcc15-nonstring into master +|\ +| * 5ad1de3931a coreboot: Add patch to fix build with GCC 15 as host compiler +|/ +* 9e7bceb7fa9 Merge pull request 'seabios: Fix malloc_fn function pointer in romfile patch' (#313) from alpernebbi/lbmk:seabios-romfile-malloc-fptr into master +|\ +| * 35c853f8b33 seabios: Fix malloc_fn function pointer in romfile patch +* | 686e136f150 Merge pull request 'dependencies/debian: Fix libusb package name' (#315) from alpernebbi/lbmk:debian-libusb-dependency into master +|\ \ +| * | 6f120f01588 dependencies/debian: Fix libusb package name +| |/ +* / d8b0e749983 init.sh: fix yet another double quote for dotfiles +|/ +* 780844112ae Merge pull request 'Update U-Boot to v2025.10' (#305) from alpernebbi/lbmk:uboot-v2025.04 into master +|\ +| * 1265927ca38 u-boot: gru: Disable INIT_SP_RELATIVE +| * 5bea1fade9a u-boot: arm64: Expand our modified defconfigs to full configs +| * fd56d8ada13 u-boot: arm64: Merge our modifications into new defconfigs +| * ed9ddd7415f u-boot: arm64: Add new upstream defconfigs +| * b1fa44858cb u-boot: arm64: Rebase to v2025.04 +| * 976fc6890ae u-boot: arm64: Save our modifications to the upstream defconfigs +| * 418570a6172 u-boot: arm64: Turn configs into defconfigs +|/ +* 093a86d9c09 init.sh: don't use eval to read version files +* 3045079947b init.sh: use backslash for dotfiles in eval +* da108d1c045 mk: Don't run mkhelpers if mode is set +* 71a58a38ab4 mk: condense main() again +* f3882b9bf21 init.sh: make git name/email error more useful +* 9cebda333d5 init.sh: move git name/mail check to xbmk_git_init +* ea081adc4ca init.sh: tidy up the git name/email check +* 3292bded692 mk: make main() more readable +* 97a5e3d15ed mk: move git check to init.sh xbmk_set_version +* 11cd952060d init.sh: tidy up xbmk_init() +* f6c5c8d396d mk: move git_init to init.sh +* ec1c92238cc init.sh: minor cleanup +* e009f09e7fa init.sh: clean up setvars +* 9ec72153408 init.sh setvars: make err a printf for eval +* 18ad654a1f7 init.sh: merge xbmk_child_init with xbmk_init +* 15268202478 init.sh: split xbmk_child_init into functions +* 0280cd4c0e7 init.sh: move parent fork to new function +* a0e1d42ff74 init.sh: Provide more complete error info +* a8f0623efbb update uefitool to rev a072527, 26 Apr 2025 +* c698972130f rename include/vendor.sh to inject.sh +* 24e488aae56 lib.sh: move _ua to the xbmkget function +* 6779d3f9915 move variables out of init.sh to others +* 848159fa0eb lib.sh: rename vendor_checksum +* 1de77c6558c lib.sh: move singletree() to git.sh +* 703fe444312 lib.sh: move cbfs() to rom.sh +* b57952e90d2 re-split include/init.sh to lib.sh +* 8ecb62c6628 rename include/lib.sh to init.sh +* ce4381169fa lib.sh: introduce more top-down function order +* 15b64cfebe8 mk/git.sh: remove tree_depend variable +* 9b8179c0e5d git.sh: remove unused xgcc linking feature +* 4624c6e536c mk: remove unused variables (ser/xp) +* aba5b3a3532 mk: simplify main() +* 0ab7c6ff9cf lib.sh: use realpath to get sys python on venv +* 8edea026c58 lib.sh: Force use of System Python to prevent hang +* b1b964fa5c3 lib.sh: further condense the python check +* 9543a325acb lib.sh: further simplify the python check +* 9baabed7186 lib.sh: condense the python check +* 0c5c5ffc873 lib.sh: simplify mk() +* 83022b6ba83 lib.sh: simplify cbfs() +* 13ad839691d lib.sh: simplify the python check +* b1ea4165754 mk: remove mkhelp() and use x_() instead +* 4cf64e59ed0 mk: simplify handling of trees() +* d0581914c74 coreboot/hp8300cmt: purge xhci_overcurrent_mapping +* cb52fc4ba82 Fix VBT path on HP Elite desktops +* 2bee87cfc26 lib.sh: add missing copyright year +* 4b7ab403c65 ifd/q45t_am: unlock regions by default +* 564155277ea coreboot/g43t_am3: use ifd-based setup +* 0ddd1963751 coreboot/q45t_am3: use ifd-based setup +* 3b2d933842a coreboot/default: add missing submodules +* a10d81399c7 NEW MAINBOARD: Acer Q45T-AM (G43T-AM3 variant) +* d114e0a765c mk: don't print confirmation of git pkg.cfg +* f59c24f12aa coreboot/g43t_am3: fix data.vbt path +* 21020fa319a add missing config/data/coreboot/0 +* 2b4629d790b Merge pull request 'lib.sh: Fix python3 detection when 'python' is python2' (#290) from alpernebbi/lbmk:python3-detection-fix into master +|\ +| * a18d287a81e lib.sh: Fix python3 detection when 'python' is python2 +|/ +* c7569a67145 coreboot/next: merge with coreboot/default +* 762c7ff43eb coreboot/default: Update, c247f62749b (8 Feb 2025) +* 86e7aa80c51 Update the GRUB revisions +* 8d57bf6009e Revert "git.sh: minor cleanup" +* a2898771f6e lib.sh: perform root check even earlier +* 779f6003421 lib.sh: tidy up opening logic (put it together) +* bac4be99c20 lib.sh: do root check before python check +* e63d8dd20d9 git.sh: minor cleanup +* 11078508a25 lib.sh: simplify mktarball() +* 087bbedc5f8 vendor.sh: tidy up vendor_download() +* e11fd52d958 mk: tidy up check_gnu_path() +* 3442f4278ed mk: simplify check_project_hashes() +* 6b6a0fa607c lib.sh: fix missing s/TMPDIR/xbmktmp +* e07a2adb130 lbmk: don't handle TMPDIR directly +* 9d3b52cd1d2 rom.sh: minor cleanup +* b4402c54258 vendor.sh: yet even more code cleanup +* fe5bdc7633d vendor.sh: even more cleanup +* fcedb17a9a1 vendor.sh: more cleanup +* 4e2b59ed3ff vendor.sh: minor cleanup +* a3acf4c3f95 vendor.sh: simplify process_release_roms +* 30213a96883 vendor.sh: remove unnecessary check +* 38df7275f12 git.sh: remove unnecessary comment +* f5891fb6991 git.sh: remove link_crossgcc() +* a685654b90f git.sh: remove move_repo() +* e4aa62f79a8 git.sh: remove prep_submodule() +* 2839feb9e43 git.sh: make git_prep command clearer +* 410fa702c9c mrc.sh: Make proper use of variable inside printf +* 075902c3ea7 simplify a few file checks +* b2255425eba rom.sh: remove unnecessary check +* 39640d76a75 lbmk: minor cleanup +* c8dc701f3eb lib.sh mktarball: stricter tar error handling +* 58a53d7046f vendor.sh: don't err on bruteforce me extract +* 958fa34832a mk check_project_hashes: handle error on sha512sum +* 8b4b069e3f6 vendor.sh: remove unnecessary xchanged="y" +* 166dbb04c92 vendor.sh: set need_files="n" if skipping patch +* e90657cc734 vendor.sh: Don't handle vendor files if not needed +* 2e10a45fa36 Revert "lib.sh: use eval for the command in x_" +* 738d4bb6b6d lib.sh: fix bad eval writing resized file +* eb9e5d2d5d4 lib.sh: fix bad eval writing version/versiondate +* 3bfdecdc75b lib.sh: use eval for the command in x_ +* 4fa3bb9e5b1 mk: use eval to run mkhelp commands +* 9b3635718a8 mk: tidy up the switch/case block in main() +* 0c381028abc mk: tidier error handling +* 023f9cf0498 lib.sh: tidy up the error handling +* cb3253befb9 rom.sh: tidy up error handling +* 7af46721bcb vendor.sh: tidy up error handling +* 04ebb3b91a0 vendor.sh: tidy up decat_fspfd() +* 0c87fdf96ad git.sh: clean up fetch_project() +* 9eb8856b3c5 mk: Remove unnecessary argument checks on trees() +* 52f3d54116f vendor.sh: properly call err_ in fail_inject +* c4c6692b761 remove xbmk_parent, handle forking in lib.sh +* fd5431db05d lib.sh: define x_ right after err_ +* 972681a127b mk: minor cleanup +* b41cd39b686 lib.sh: minor cleanup +* 49939502648 mrc.sh: minor cleanup +* c158d82298b rom.sh: minor cleanup +* cb36248c8c0 vendor.sh: tidy up check_release() +* 409cab39c56 vendor.sh: tidy up vendor_inject() +* 12b1623e473 vendor.sh: tidy up readcfg() +* 0d85f061e2e vendor.sh: tidy up patch_release_roms() +* 61f20141028 vendor.sh: tidy up process_release_roms() +* 5901f36e49d vendor.sh: tidy up patch_rom() +* 082930ce0e7 vendor.sh: tidy up inject() +* e1f91f30372 vendor.sh: tidy up modify_mac_addresses() +* 3181ac50126 script/trees: merge with mk and delete script/ +* 3d03dd1a507 mk: remove the legacy "roms" command +* f0c629dcc6c lib.sh: write version/versiondate to dotfiles +* 23b942c83e9 lib.sh: hardcode projectname/projectsite +* a03bb793aea remove update/vendor symlinks +* d7f80ebe71e move build to mk +* 57d58527fd0 trees: unify the execution of mkhelper commands +* e5262da4be7 trees: tidy up configure_project() +* 51798278397 build: make coreboot building an else in "roms" +* c189257888a trees: don't build dependencies if dry=":" +* 115a66fddd3 trees: unified handling of flags +* 3ea633cc791 trees: simplified handling of badhash/do_make +* 9be40e94a2b trees: don't set mode on ./mk -b +* 67ad7c2635c trees: don't set mod on ./mk -d +* 24448948419 trees: don't initialise mode to "all" +* 97c50a39a60 trees: clean up some comments +* cfb14fd8dd8 vendor.sh: simplified readkconfig() +* 5b697b93a2d lib.sh: double-quote pwd to prevent globbing +* 5a0a24f5559 lbmk: unified PWD handling (work directory) +* a25a29cfbb7 lib.sh: initialise PATH if it's unset +* 1022abf6991 move XBMKPATH to include/lib.sh +* 0764c969a29 lbmk: use pwd util, not PWD environmental variable +* f98b9b01107 clean up a few semicolons in the build system +* 8ccb61cc718 trees: err if first argument is not a flag +* 947c3e1a176 trees: err if no argument given +* edbbde0b12d trees: set dry=":" on ./mk -f +* 33bb0ecf764 trees: clean up initialisation of the dry variable +* c7636ff1dfc trees: initialise mode to "all", not "" +* d0bd12631a6 trees: don't abuse the mode variable on -f +* c4cd876c609 trees: Add missing flag to error output +* 5ebcae5235f lbmk: minor code formatting cleanup +* 70cef71dbab grub/xhci: Remove unused patch +* 3f14a470a2e remove _fsp targets (keep _vfsp) +* d7312260e7e util/nvmutil: remove excessive comments +* e348ea0381a Bump GRUB revision to add 73 security patches +* 4b228c11f9f Merge pull request 'Update pico-serprog revision' (#271) from Riku_V/lbmk:master into master +|\ +| * a8359e30b27 Update pico-serprog revision +|/ +* d2cb954933b util/nvmutil: Fix bad error messages on R/W +* e1e515bd22a util/nvmutil: hardened pledge on help output +* ada057a865c Merge pull request 'Simplify the README' (#269) from runxiyu/lbmk:readme-simplification into master +|\ +| * 9ced146b47c README.md: Use newlines instead of bulleted list for docs/support links +| * 266122592cd README.md: Use the EFF's page on Right to Repair +| * e36aa8c5a5c README.md: Vastly simplify it +| * c17f4381ce5 README.md: Mention SeaBIOS and U-Boot instead of Tianocore as payloads +|/ +* 47eb049cb47 Merge pull request 'deps/arch: genisoimage belongs to cdrtools' (#267) from runxiyu/lbmk:master into master +|\ +| * fa9a0df2458 deps/arch: genisoimage belongs to cdrtools +|/ +* a98490573be util/nvmutil: only set mac_updated at the end +* 6b9cf09ca21 restore old x230 gbe file +* 8a435355135 util/nvmutil: Fix bad comparison +* a65a0c2f963 util/nvmutil: allow ./nvm gbe MAC +* 96356ce94f6 util/nvmutil: move "e" to swap() +* b1d8975959d util/nvmutil: Only read up to 4KB on larger gbe +* 6821659bcb2 util/nvmutil: fix minor mistake (line break) +* 3bb7520f6d9 util/nvmutil: do setmac if only filename given +* d94b274fd9f vendor.sh: don't error if grep -v fails +* 6ebdd3c72ba vendor.sh: Don't show gbe filename on inject +* a08748a9eda util/nvmutil: don't say write not needed if errno +* 6841a351ebc util/nvmutil: print dump *after* modification +* da0a6c216cf util/nvmutil: verbosely print the written MAC +* db5879c6b5a util/nvmutil: minor cleanup in cmd_dump +* bd7215d1eb7 util/nvmutil: show nvm words written on writeGbe +* c70117c79c4 util/nvmutil: clean up readonly check on writeGbe +* cf5a63e65ca util/nvmutil: Remove useless gbeFileChanged var +* 83601aa524b util/nvmutil: reset errno if any MAC updated +* 3e86bf5ce25 util/nvmutil: reset errno when writing a MAC +* bcf53cc2cc0 util/nvmutil: show total number of bytes read +* c91cc329cf8 util/nvmutil: rename tbw/bw to tnw/nw +* 90607108330 util/nvmutil: err if bytes read lower than nf +* c72f699d368 util/nvmutil: err if fewer bytes written +* d666f67ebe5 util/nvmutil: Show bytes written in writeGbe +* b2d6393ed5f util/nvmutil swap(): ensure that no overflow occurs +* 063fef14d34 util/nvmutil: make swap() a bit clearer +* fd1bbdc96cb util/nvmutil: make 0x3f checksum position a define +* 5ddf7f251d6 util/nvmutil: make 128 (nvm area) a define +* 8850acc7da6 util/nvmutil swap(): Only handle the nvm area +* 49506a88328 util/nvmutil: move write checks to writeGbe +* 948377b0e7e util/nvmutil: make cmd_swap its own function again +* 6e134c9f4bf util/nvmutil: minor cleanup +* 98e105ac4f1 util/nvmutil: allocate less memory for setchecksum +* 52e8ea57f7b util/nvmutil: Further reduce memory usage +* 7a7d356824e util/nvmutil: Remove unnecessary buf16 variable +* cdf23975bc1 util/nvmutil: Only allocate needed memory for file +* ed45da9cae5 util/nvmutil: Remove unnecessary buffer +* ec3148dc3b5 util/nvmutil: Show specific error for bad cmd argc +* 073420d3056 util/nvmutil: cleaner argument handling +* a6c18734e70 util/nvmutil: extreme pledge/unveil hardening +* deb307eaf63 util/nvmutil: more minor cleanup +* c14eccaf153 util/nvmutil: more granular MAC parsing errors +* 88fb9cc90ea util/nvmutil: more cleanup +* 5aaf27f80c3 remove errant comment in nvmutil +* c829b45c17c util/nvmutil: support 16kb and 128kb gbe files +* a98ca5bf65c util/nvmutil: Prevent unveil allowing dir access +* 68c32034a00 typo: nvme should say nvm in nvmutil.c +* c944c2bbac7 util/nvmutil: General code cleanup +* 8c65e64e398 snip +* f666652fe15 snip +* 64d3c7b5150 grub/xhci: Add xHCI non-root-hub fixes from Nitrokey +* 7bf0d4c2ed5 add gnults-devel to fedora 41 dependencies +* 66d084e7f7c grub.cfg: scan luks *inside lvm* +* 5a3b0dab966 grub.cfg: Scan *every* LVM device +* 3c9f4be76f6 Libreboot 20241206, 8th revision +* d4cc94d6b44 rom.sh: don't run mkpicotool on dry builds +* de6d2f556f1 pico-sdk: Import picotool as a dependency +* 4210ee68ea2 lib.sh: Much safer python version check +* 8c7ba6131cc coreboot/next uprev: Fix T480 backlight keys +* 411fb697dfc set up python in PATH, ensuring that it is python3 +* e8336bcc3ca vendor.sh: Proper semantics on prefix file names +* 63f45782638 vendor.sh: Confirm if need_files=n +* 13b06ae130f vendor.sh: Allow restoring the default GbE file +* ab8feff92e0 vendor.sh: set random MAC address *by default* +* 0ceaa01d45d vendor.sh: add clarification to nogbe warning +* 4d5caf1dcfc vendor.sh: check that the vcfg file exists +* fc4ee88e167 vendor.sh: error out if nuking failed +* 8819a93d89b add line break, part 3 +* 8ce1a00f517 add line break, part 2 +* bc2c14e76a8 add line break +* c762850311a vendor.sh: prevent double-nuke +* 68299ad05ca vendor.sh: much more verbose errors/confirmation +* b8e6d12f3d9 add libx86 to arch dependencies +* cf8ad497b4e vendor.sh: Remove unnecessary return +* c858099b359 vendor.sh: Download utils even if vcfg unset +* ce16856a242 vendor.sh: Allow setmac if vendorfiles not needed +* 4b51787d078 add less to arch dependencies +* 8bd028ec153 lib.sh: Set python after dependencies +* 44b6df7c24c update my copyright years on modified scripts +* 818f3d630c2 vendor.sh: Don't error if vcfg is unset +* 432a1a5bca7 lib.sh: Fix unescaped quotes in chkvars() +* a73b0fd910a Revert "fix more unescaped quotes in eval" +* ec6bcc1fba5 fix more unescaped quotes in eval +* 5284f20b981 fix ./mk dependencies build issue +* d825f9a9683 rom.sh: Remove errant GRUB modules check +* 4149f3dc81a submodule/grub: use codeberg for 1st gnulib mirror +* 0305975e705 util/nvmutil: Update AUTHORS and COPYING files +* 20b192e13bd util/nvmutil: Describe nvmutil in help output +* d1ca21628cb util/nvmutil: Remove the correct binary on uninstall +* e63fe256dfc util/spkmodem-recv: More correct Makefile +* efd50ee548b util/nvmutil: Honour the INSTALL variable +* 8008838abbc util/nvmutil: Don't clean when doing uninstall +* 982f257f58a util/nvmutil: Proper DESTDIR/PREFIX handling +* 3f85ae5f853 util/nvmutil: Set CC and CFLAGS only if unset +* 2c7b9fb9412 util/nvmutil: Capitalise BABA +* 57f9906f6d1 util/nvmutil: Add uninstall to Makefile +* 4defe2c6085 util/nvmutil: Add distclean to Makefile +* 033e4cd9d50 util/nvmutil: Make the GbE checksum a define +* 874317c4e59 util/nvmutil: nicer hexdump display +* a338e585eed util/nvmutil: show the correct hexdump order +* b032e483ef1 lib.sh mktarball: cleaner if statement +* 0cf58c22734 fix lbmk shellcheck errors +* 8276560cc99 lib.sh and rom.sh: update my header +* 08e86d2218c vendor.sh inject: reset err upon return +* 41275d699ca vendor.sh: MUCH, MUCH, MUCH safer ./mk inject +* ed7293494e3 util/nvmutil: Obey the 79-character per line limit +* 637b5e36fd2 util/nvmutil: Tidy up copyright header +* cd28db883e2 vendor.sh: fix comment +* 57971ceb227 util/nvmutil: Fix another straggler +* 15b37b2a1ab util/nvmutil: Tidy up pledge calls +* e8799310db2 hp820g2: fix vendorfile inject and set release=y +* f9ab082ec19 fedora41/dependencies: add libuuid-devel +* 661591f9f0b add uuid-devel to fedora41 dependencies +* 1a46c047386 support ./mk dependencies fedora reinstall +* d58d63569f1 fix missing semicolon in grub nvme patch +* 95ea3293df5 bump seabios to rev 1602647f1 (7 November 2024) +* 6d7e6c361b3 Bump GRUB revision to 6811f6f09 (26 November 2024) +* 09a01477df6 t480/3050micro: force power off post power failure +* d344cd95eac flashprog: Disable -Werror +* dc95e912bfe bump flashprog to revision eb2c041 (14 Nov 2024) +* 27c8c1c16ba replace liblz4-tool with lz4 and liblz4-dev +* d3a732a64db lib.sh dependencies: support --reinstall argument +* 466ada423dd move xbmkpath to XBMK_CACHE/ +* b0a23840327 Revert "Remove legacy update/vendor commands" +* 3d7dd4aa9fe Fix U-Boot build issue with Swig 4.3.0 +* 0c810747469 use command -v instead of which +* 6c7e3ce2d6e trees: remove unnecessary subshell +* ad137eae89d trees: only symlink host gcc/gnat to build xgcc +* cfb6de94c33 trees: correction on check_gnu_path +* ec2f0716662 trees: match gcc/gnat versions both ways +* f64b5996279 Merge path.sh into script/trees +* 295463d281e path.sh: Further cleanup +* 5b24e0a5a96 path.sh: More thorough gcc/gnat version check +* 7849a075886 path.sh: minor cleanup +* 17168a87dbf path.sh: remove unnecessary shebang +* e565df94fd7 Fix globbing issue in lbmk +* c80cc0a00b6 remove auto-confirm on distro dependencies +* 01fc65a0a9d Mitigate Debian Trixie/Sid GCC/GNAT version mismatch +* 424b0c7103b t480/3050micro: disable hyperthreading +* 603105f3b4e t480/t480s: Disable TPM2 to mitigate SeaBIOS lag +* 754bd1e6ca3 rom.sh: Name pico directory serprog_pico +* db22308eba5 add 2024 to Riku's copyright header on rom.sh +* 4fa5f696db8 Merge pull request 'rp2530' (#258) from Riku_V/lbmk:rp2530 into master +|\ +| * a5e0360992d pico-sdk: update to 2.1.0 +| * e2f8cc7f3ee pico-serprog: enable building for multiple pico chips +|/ +* ccc2b4d589f add spdx headers to dependencies configs +* a3969701e6b dependencies/debian: fix debian sid +* 8f370cb60d9 add spdx headers to various config files +* d591ea4c5dc git.sh: don't initialise livepull globally +* b5da9feba3b vendor.sh: Print useful message on ./mk inject +* 12c6259cb2f vendor.sh: Handle FSP insertion post-release +* 78132051462 Remove legacy update/vendor commands +* 07037561bd6 lbmk: remove use of deprecated ./vendor command +* 5d1f1823067 vendor.sh: Safer exit when vendorfiles not needed +* a18175a5df9 data/deguard: Remove unused patch +* ee8f53b96ff lib.sh: Safer exit from ./mk dependencies +* a8b35c88cf1 remove geteltorito and mtools from lbmk +* 1dd32ea5487 rom.sh: support grub-first setups +* f7801ef4770 vendor.sh: delete old tb.bin first, just in case +* 02cbf8a729d vendor.sh: make TBFW pad size configurable +* 9884e5ed1b0 T480/T480S: Support fetching ThunderBolt firmware +* 36b42dd1c11 also de-rainbow the u-boot menu +* eafc82028a4 Revert "use rainbow deer on the grub background" +* 44969c73bd2 rom.sh: insert grub background in cbfs not memdisk +* 401efb24b22 use rainbow deer on the grub background +* dc27cb91784 add some scripts to .gitignore +* 3b6b283eabe disable 3050micro nvme hotplug +* c2023921893 fix t480 spd size (512, not 256) +* da527459b68 add tarballs and signatures to gitignore +* b910424b5df fix another very stupid mistake +* e3b77b132e6 fix the stupidest bug ever +``` + +This is nearly *400* changes! diff --git a/site/news/libreboot2504.md.description b/site/news/libreboot2504.md.description new file mode 100644 index 0000000..f79fcdf --- /dev/null +++ b/site/news/libreboot2504.md.description @@ -0,0 +1 @@ +Libreboot 25.04 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. From 261d19edbf382e6162dff167eebd69b323777706 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 30 Apr 2025 12:48:58 +0100 Subject: [PATCH 375/399] that's modularised, not "moralised" Signed-off-by: Leah Rowe --- site/news/libreboot2504.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/news/libreboot2504.md b/site/news/libreboot2504.md index e7ae0de..ca64244 100644 --- a/site/news/libreboot2504.md +++ b/site/news/libreboot2504.md @@ -324,7 +324,7 @@ that lbmk imports, or otherwise depends on. lbmk is *[tiny](../docs/maintain/)*. In descending order from the latest changes to the earliest changes: -* `init.sh`: Generally moralised it, moving separate tasks into separate +* `init.sh`: Generally modularised it, moving separate tasks into separate functions, rathher than having it be one big monolith. * `vendor.sh` was renamed to `inject.sh`, so that future changes can be in better sync between lbmk and cbmk on this file, because the cbmk version From 6286e69902c881b98d7a4d8b509a2458b956e7e5 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 30 Apr 2025 12:50:43 +0100 Subject: [PATCH 376/399] remove u-boot pic in the announcement it shows an old version number, which is confusing just the t480 photo is sufficient Signed-off-by: Leah Rowe --- site/news/libreboot2504.md | 2 -- 1 file changed, 2 deletions(-) diff --git a/site/news/libreboot2504.md b/site/news/libreboot2504.md index ca64244..b08bb38 100644 --- a/site/news/libreboot2504.md +++ b/site/news/libreboot2504.md @@ -49,8 +49,6 @@ or [GRUB](https://www.gnu.org/software/grub/) to boot your operating system; on ARM(chromebooks) and certain x86 mainboards, we provide *U-Boot* (as a coreboot payload), which provides a lightweight UEFI implementation.. - - Summarised list of changes ------------------------- From 9eacd92e116edc589218b15535d560ddb32b77e6 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 30 Apr 2025 18:12:59 +0100 Subject: [PATCH 377/399] release build test notes Signed-off-by: Leah Rowe --- site/news/libreboot2504.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/site/news/libreboot2504.md b/site/news/libreboot2504.md index b08bb38..e3c34f4 100644 --- a/site/news/libreboot2504.md +++ b/site/news/libreboot2504.md @@ -8,6 +8,13 @@ is *Corny Calamity*. This is the first release to have a codename, and it is using YY.MM format for the version number for the first time. Older releases used YYYYMMDD as release dates. +This release was built on the latest Debian 12.10 Bookworm release, as of +this day. It was also build-tested successfully on Debian Sid as of this +day, *with the experimental repository enabled and lbmk dependencies installed +from the experimental repository, including the recent GCC 15 toolchain*. +It was also tested on Fedora 42. Many fixes were made, so that it builds on the +most bleeding edge distros, and all the popular stable distros. + **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, From 87894a422097d26ba1d62c4dd5487e560f32314a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 30 Apr 2025 19:00:28 +0100 Subject: [PATCH 378/399] fix lack of boldness on the homepage version notice Signed-off-by: Leah Rowe --- site/index.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/site/index.md b/site/index.md index 0f102e9..e2f7f9c 100644 --- a/site/index.md +++ b/site/index.md @@ -27,7 +27,7 @@ of these payloads in a single image, and you choose one at boot time. **NEW RELEASE: The latest release is Libreboot 25.04, released on 30 April 2025. -See: [Libreboot 25.04 release announcement](news/libreboot2504.md). +See: [Libreboot 25.04 release announcement](news/libreboot2504.md).** You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, as well as send your compatible hardware From f1471fdb064fb94a008a2022cf92a28f6ab7a850 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 30 Apr 2025 23:10:10 +0100 Subject: [PATCH 379/399] add more pictures to the release page Signed-off-by: Leah Rowe --- site/news/libreboot2504.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/site/news/libreboot2504.md b/site/news/libreboot2504.md index e3c34f4..8790527 100644 --- a/site/news/libreboot2504.md +++ b/site/news/libreboot2504.md @@ -8,6 +8,8 @@ is *Corny Calamity*. This is the first release to have a codename, and it is using YY.MM format for the version number for the first time. Older releases used YYYYMMDD as release dates. + + This release was built on the latest Debian 12.10 Bookworm release, as of this day. It was also build-tested successfully on Debian Sid as of this day, *with the experimental repository enabled and lbmk dependencies installed @@ -38,7 +40,7 @@ of these changes were also included in 20241206 revision releases. Open source BIOS/UEFI firmware ---------------------------- - + Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing boot firmware that initialises the hardware in your computer, to then load an From f994c7ac226223c197c019b843de77d8c4db729c Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Wed, 30 Apr 2025 23:20:11 +0100 Subject: [PATCH 380/399] add even more pics to the release page Signed-off-by: Leah Rowe --- site/news/libreboot2504.md | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/site/news/libreboot2504.md b/site/news/libreboot2504.md index 8790527..213f274 100644 --- a/site/news/libreboot2504.md +++ b/site/news/libreboot2504.md @@ -73,6 +73,8 @@ work fine now. ### Revision updates + + In descending order from latest changes to earliest changes: * Bump SeaBIOS to to rev 9029a010, 4 March 2025 @@ -109,6 +111,8 @@ packages enabled). ### Licensing + + * Added SPDX license headers to almost every configuration file in lbmk. ### Security @@ -140,6 +144,8 @@ massive concern to users. ### Feature changes + + In descending order from latest changes to earliest changes: * `init.sh`: More verbose error info, on non-zero exits. @@ -193,6 +199,8 @@ In descending order from latest changes to earliest changes: ### Configuration changes + + In descending order from the latest changes to the earliest changes: * T480/3050micro: Removed the `fsp` targets, because we only need @@ -209,6 +217,8 @@ In descending order from the latest changes to the earliest changes: ### Bug fixes + + The following bug fixes have been merged (in descending order from the latest changes to the earliest changes): @@ -314,6 +324,8 @@ changes to the earliest changes): ### General code cleanup + + A large audit has been conducted, removing a lot of dead code in the build system and improving the code quality considerably. Not all of such cleanup changes are listed, because otherwise it'd overwhelm the changelog, and many From b88487ab6ce010bda62383aa42d6389795d9b19b Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Thu, 1 May 2025 11:32:43 +0100 Subject: [PATCH 381/399] css: limit images to 80 percent on 1337box display otherwise it looks a bit crap on large images Signed-off-by: Leah Rowe --- site/global.css | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/site/global.css b/site/global.css index 9c0cd35..3688ae5 100644 --- a/site/global.css +++ b/site/global.css @@ -155,6 +155,11 @@ h4 background: rgba(0, 0, 0, 0.8); } +.f img { + max-width: 80%; + max-height: 80%; +} + *:focus + .f { display: block; From 6f6c27c936fed18bd9b0048ffd343f7d9e02c743 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 2 May 2025 02:02:47 +0100 Subject: [PATCH 382/399] 25.04rev1 notes Signed-off-by: Leah Rowe --- site/news/libreboot2504.md | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/site/news/libreboot2504.md b/site/news/libreboot2504.md index 213f274..55c9e4b 100644 --- a/site/news/libreboot2504.md +++ b/site/news/libreboot2504.md @@ -808,3 +808,36 @@ This log is relative to Libreboot 20241206: ``` This is nearly *400* changes! + +Revision releases +----------------- + +When certain bugs are found, releases may be re-built and re-uploaded. When +this happens, the original release is replaced with a *revision release*. + +### 25.04rev1 (1 May 2025) + +A minor issue was found with AHCI initialisation on the ThinkPad T420, caused +by one of the seven new SeaBIOS patches merged in the release. The seven patches +are largely optional and inconsequential changes, for Libreboot users anyway, +so they have been reverted. + +The AHCI bug was was caused on ThinkPad T420 by a patch that *resets* the +state of the AHCI controller, before enabling it, in SeaBIOS. This patch was +written by the author, to make SeaBIOS's AHCI driver work in CSM mode. + +For this revision release, that patch is removed, but in Libreboot's master +branch, the SeaBIOS revision is once again up to date, including the seven +recently imported commits, but that version patches SeaBIOS to only apply +the change to AHCI behaviour if SeaBIOS is running as a CSM. + +This `25.04rev1` release also contains a missing config for text-mode startup +on the ThinkPad T420. + +It is possible that this AHCI issue may have been caused on other mainboards, +but we currently do not know. It is better to assume that all mainboards were +affected, so you should update to the rev1 release if you had the +original 25.04 release. + +This revision release was committed to the `25.04_branch` branch, and any +further revision releases will be in the same branch. From 888fbb03046fde216ac160e9dbc9d53bd86b0e8a Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sat, 3 May 2025 07:30:18 +0100 Subject: [PATCH 383/399] nvmutil docs: say x instead of ?, for randomness nvmutil still supports ?, but x is now preferred, due to a bug that was found when using it with zsh x doesn't cause errors in zsh. support for x was added to nvmutil recently, when specifying a random character. Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 6 +++--- site/docs/install/nvmutil.md | 12 ++++++------ 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index 04a61d1..b0ffe40 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -121,14 +121,14 @@ running `nvmutil`; it also skips building nvmutil. Essentially, this will restore the default MAC address from standard release images. The above MAC address is a random example; please make sure to use one that matches -your board, if you wish. You can also use randomisation this way; the `?` character +your board, if you wish. You can also use randomisation this way; the `x` character will be randomised, e.g.: - ./mk inject libreboot-RELEASE_targetname.tar.xz setmac ??:??:??:??:??:?? + ./mk inject libreboot-RELEASE_targetname.tar.xz setmac xx:xx:xx:xx:xx:xx You can mix and match arbitrary characters with random ones, e.g.: - ./mk inject libreboot-RELEASE_targetname.tar.xz setmac 0?:??:12:?a:6?:69 + ./mk inject libreboot-RELEASE_targetname.tar.xz setmac 0x:xx:12:xa:6x:69 The script can automatically detect the board as long as you do not change the file name. diff --git a/site/docs/install/nvmutil.md b/site/docs/install/nvmutil.md index 92fffc7..db81675 100644 --- a/site/docs/install/nvmutil.md +++ b/site/docs/install/nvmutil.md @@ -48,7 +48,7 @@ also use the inject command, like so (examples): ./mk inject libreboot-RELEASE_targetname.tar.xz ./mk inject libreboot-RELEASE_targetname.tar.xz setmac ./mk inject libreboot-RELEASE_targetname.tar.xz setmac 00:1f:16:00:11:22 - ./mk inject libreboot-RELEASE_targetname.tar.xz setmac 00:??:16:0?:1?:22 + ./mk inject libreboot-RELEASE_targetname.tar.xz setmac 00:xx:16:0x:1x:22 ./mk inject libreboot-RELEASE_targetname.tar.xz setmac restore This writes the MAC address on the GbE region of the image. You must do this @@ -62,7 +62,7 @@ Without argument after the tarball, it behaves the same as `setmac`. If `setmac` is provided without argument, or no argument is given, the MAC address is randomised. Otherwise, you can specify an arbitrary address. -The `?` character is random, and you can specify that any of them be random, +The `x` character is random, and you can specify that any of them be random, while setting others (or all of them) arbitrarily. On the corresponding nibble, the bit for unicast/multicast and global/local are set accordingly, so that randomly generated addresses are *always* unicast and *local*, unless the @@ -410,7 +410,7 @@ The following rules are enforced in code: * User cannot specify multicast addresses * User cannot specify `00:00:00:00:00:00` * When generating random addresses, if the right - most nibble of the left-most byte is `?` (random), + most nibble of the left-most byte is `x` (random), nvmutil will (in code) force the generated MAC address to be local (not global), and will prevent a multicast address from being generated. @@ -433,20 +433,20 @@ How to use (the MAC address in just an example): You can also set random MAC addresses: - nvm gbe.bin setmac ??:??:??:??:??:?? + nvm gbe.bin setmac xx:xx:xx:xx:xx:xx In this example, every character is random. However, you can mix and match random characters with static ones. For example: - nvm gbe.bin setmac 00:1f:16:??:??:?? + nvm gbe.bin setmac 00:1f:16:xx:xx:xx You can also pass it without a MAC address: nvm gbe.bin setmac If you only type `setmac` without specifying a MAC address, -it will do the same thing as `setmac ??:??:??:??:??:??`. +it will do the same thing as `setmac xx:xx:xx:xx:xx:xx`. This will set the last three bytes randomly, while the MAC address would begin with `00:1f:16`. From 4ecef4611a3e21ef8867c0c2afe6b0ec4dc96ce7 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 4 May 2025 18:26:24 +0100 Subject: [PATCH 384/399] note nvmutil compatibility regarding randomness Signed-off-by: Leah Rowe --- site/docs/install/ivy_has_common.md | 4 ++++ site/docs/install/nvmutil.md | 4 ++++ 2 files changed, 8 insertions(+) diff --git a/site/docs/install/ivy_has_common.md b/site/docs/install/ivy_has_common.md index b0ffe40..fc7dfdd 100644 --- a/site/docs/install/ivy_has_common.md +++ b/site/docs/install/ivy_has_common.md @@ -77,6 +77,10 @@ have the mac address changed; please continue reading! ### Injecting vendor files into tarballs +**WARNING: Older versions of nvmutil used `?` for random characters. Newer +versions use `x` instead. If you have an older version, use `?` instead, +when generating random characters in MAC addresses.** + In order to inject the necessary files into a rom image, run the script from the root of lbmk and point to the rom image. If you only wish to flash a release rom then the process of injecting the necessary files is quite simple. diff --git a/site/docs/install/nvmutil.md b/site/docs/install/nvmutil.md index db81675..ac26aef 100644 --- a/site/docs/install/nvmutil.md +++ b/site/docs/install/nvmutil.md @@ -42,6 +42,10 @@ Automatic MAC address changer **Please [install build dependencies](../build/) before you do this.** +**WARNING: Older versions of nvmutil used `?` for random characters. Newer +versions use `x` instead. If you have an older version, use `?` instead, +when generating random characters in MAC addresses.** + Instead of running nvmutil manually, like below, you can also use the inject command, like so (examples): From ea0daee30e880a7652dd837f12c858ac2a86dd96 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 9 May 2025 15:42:57 +0100 Subject: [PATCH 385/399] NEW 2025 release schedule Signed-off-by: Leah Rowe --- site/news/MANIFEST | 1 + site/news/revisions.md | 157 +++++++++++++++++++++++++++++++++++++++++ site/news/schedule.md | 15 ++++ 3 files changed, 173 insertions(+) create mode 100644 site/news/revisions.md diff --git a/site/news/MANIFEST b/site/news/MANIFEST index 9879344..5e0baff 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -1,3 +1,4 @@ +revisions.md libreboot2504.md libreboot20241206rev11.md libreboot20241206rev10.md diff --git a/site/news/revisions.md b/site/news/revisions.md new file mode 100644 index 0000000..f30c2eb --- /dev/null +++ b/site/news/revisions.md @@ -0,0 +1,157 @@ +% NEW Libreboot 2025 release schedule +% Leah Rowe +% 9 May 2025 + +**THIS REPLACES THE [original 2025 release schedule](schedule.md).** + +This policy change was enacted on 9 May 2025. The original plan was to +have April/June and October/December releases each for, for testing and +stable releases respectively, but this is pointless. + +Instead, we will have stable releases in June and December each year, and +any releases in-between will either be a revision to the current stable +release, or an RC to the next release. + +RC (release candidate) releases, when they are made, will later be deleted +when a new RC comes out, or the next main stable release comes out. This is +more logical, and essentially the same as the original plan, except that +we will then no longer have old testing releases lingering on the rsync +server, moving forward. + +To make everything clear, the next sections will clarify this in detail +anyway, as the original release schedule article did: + +RC/Stable release cycle +---------------------------- + +These rules shall govern Libreboot release cycles, in the year 2025 and in +years beyond 2025. + +### June and December + +In other words, the following Libreboot releases will come out in 2025: + +* Libreboot 25.06 (stable release) +* Libreboot 25.12 (stable release) + +A [Libreboot 25.04](libreboot2504.md) release was also made, under the +previous plan. It won't actually be renamed, but you might now therefore +regard that as an RC to the 25.06 release. + +A general rule of thumb is that an RC should be made no later than about two +to three months before the stable release, with many RC revisions made +throughout, until it is replaced by the real stable release. + +For example, an RC release might come out in March of a given year, and that +would continue to be refined until it got replaced by the June release. The +same logic applies for September to December. + +Aggressive development periods can continue throughout. + +Each release series will get its own branch; the 25.06 release will have +the `25.06_branch` branch on the Git repository of lbmk. We currently, at +the time of this article, have a `25.04_branch` branch; this will later branch +off to `25.06_branch`, as soon as the next commits go into it. + +Releases will have codenames too; please read further down this article, for +information about that. The April 2025 release, Libreboot 25.04, was: +Libreboot 25.04 "Corny Calamity". + +Corny Calamity won't be the codename for Libreboot 25.06; the June 2025 +release will be named *Luminous Lemon*. + +### Rules for revisions + +RC releases come out two to three months before stable; any number of +non-breaking or otherwise relatively safe changes can be made. In practise, +the master branch of lbmk mostly uses a branchless development model anyway. + +In practise, what this means is that there will be a feature freeze a little +while before a given stable release, but only in that release's own branch; +the master branch can continue to receive aggressive development. + +For example, if a major new feature is being done in the master branch that +won't be ready for the next release, that's OK, it can continue in master, +because the release will have its own branch anyway. + +### Post-stable revisions + +Revision releases can be made *after* a stable release comes out. A pre-release +RC (release candidate) shall have `rc` in it, for example `25.06rc1` commit +tag. If `25.06` then came out, a stable release, and later a new update to it +would be made, the first update release would be tagged as `25.06rev1`. + +Stable release revisions must not fundamentally alter the substance of a given +stable release, relative to first release. Essentially, any revisions to stable +releases post-release will be critical bug fixes; in a few cases, special +additions will be made when desirable and safe (e.g. Pico 2 support was added +to Libreboot 20241206 post-release, in the revision 8 update from 2025-01-06). + +Revisions made to a stable release, after the RC phase, must basically only +be critical bug fixes and especially security fixes. Any change of substance +should go into the master branch and/or the branch for the next release. + +### Why? + +In the past, a problem Libreboot has had was that we'd do testing releases, +but not do revisions on them; then by the time a stable release came around, +some upstream revisions would be about 4-6 months out of date (typically). + +With this new formalised structure, we can be as close to upstream as possible +by the time of each stable release, for each given upstream e.g. coreboot. + +This release schedule will also provide greater opportunity for coverage of +Libreboot releases, since people know then what to expect and what dates to +put in their calendars. + +This decision is part of a much larger initiative to boost Libreboot's +popularity and therefore use within the free software world. + +Release version numbers +----------------------- + +### Libreboot YY.MM releases + +Libreboot YYYYMMDD was the previous version number scheme. + +The new scheme is: Libreboot YY.MM + +For example, the April 2025 release was Libreboot 25.04. This was a one-off +release, under the [previous 2025 schedule](schedule.md). + +The new release scheme is better, because we presently need to start release +builds early in the morning to ensure (given build time and possible errors +to be fixed) that they are released on the day. For example, a 20250404 release +would have to come out on April 4th, so if it finished compiling on April 5th, +it would become Libreboot 20250405 under the previous scheme. + +With this new scheme, and given Libreboot's expansion plans, it won't matter +even if a release build takes 2 days to complete, because the day of the month +will no longer be included in a given release number. + +### Y2.1k compliance + +If Libreboot still exists in the year 2100, then those releases will be +e.g. Libreboot 100.04 for April 2100 release. + +It could happen. Even if I'm no longer around by then, Libreboot might still be. + +### Release codenames + +The release codename for Libreboot 25.04 will be "Corny Calamity", which is a +nod of respect to an equally gutsy release codename that *Fedora* used in +one of their releases (Beefy Miracle!). + +The rules for Libreboot release codenames are: two words, each starting with +the same letter. + +### TL DR + +This is basically the same as the original 2025 release schedule, except +that we won't have testing releases anymore; we will have RC releases, and RC +releases will not stay on rsync forever. Therefore, each year, Libreboot +will only have two new sets of release tarballs uploaded to its servers, +instead of four. This is more efficient. + +So in substance, this is the same but re-fashioned to make the project cheaper +to run. diff --git a/site/news/schedule.md b/site/news/schedule.md index 83ddf0b..7f8d24f 100644 --- a/site/news/schedule.md +++ b/site/news/schedule.md @@ -2,6 +2,21 @@ % Leah Rowe % 17 January 2025 +**THIS RELEASE SCHEDULE IS OBSOLETE. PLEASE READ +THE [NEW SCHEDULE](revisions.md) instead - there will instead be just TWO +releases annually, and a Release Candidate stage will be used. Therefore, +the Libreboot 25.04 release, which did come out, might instead be +considered Libreboot 25.06 RC1 - except an actual RC1 is planned, so just +think of it as RC0 instead!.** + +TL DR, the new schedule is basically the same as below, but only a June and +December release will be done; releases in-between will be either a revision +release to the previous release, or an RC to the next release. + +This policy change was enacted on 9 May 2025. + +And now, the original article: + Libreboot releases will now be on a much stricter timeline than in the past. Testing/Stable release cycle From a8355f83390639b8bc1cee799dc3137cf9e2f85c Mon Sep 17 00:00:00 2001 From: Ronanand0 Date: Fri, 16 May 2025 11:39:53 +0000 Subject: [PATCH 386/399] Update tasks list with hp 840 g2 (id 2216) boards Those mentioned boards are equivalent to the 840 g2 (exlcuding the gpus), so anyone who any of these models could test it too. --- site/tasks/index.md | 13 +++++-------- 1 file changed, 5 insertions(+), 8 deletions(-) diff --git a/site/tasks/index.md b/site/tasks/index.md index 27d6f08..9ec629b 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -83,7 +83,7 @@ is not exhaustive, it just lists boards that are interesting to us at this time: * HP Revolve 810 G1 * HP EliteBook Folio 9480m * HP EliteBook 8770w -* HP EliteBook 840 G2 (not in coreboot yet, but should be similar to 820 G2) +* HP EliteBook 840 G2 (not in coreboot yet, but almost identical to 820 G2) * HP Z220 CMI and SFF motherboards * MSI PRO Z690-A motherboard (supported by Dasharo, not sure about coreboot) - also, Dasharo supports several more motherboards that aren't in coreboot @@ -106,16 +106,13 @@ machine). Both are supported by coreboot. -### 840 G2 (possible 820 G2) +### Zbook 14/15u G2 / Elitebook 840/850 G2 (indistinguishably same boards (id 2216) with different gpu if included) (a bit bigger board, but almost everything is equal to the 820 G2) -These notes are based on a chat on Libreboot IRC. +The 840/850 G2 may have an AMD® Radeon™ R7 M260X gpu and 14/15u would have an AMD® FirePro™ M4170 gpu added, which would became useless using libreboot. -The TPM is Infineon SLB9660 and does TPM 1.2. We could maybe upgrade -firmware to that of SLB9665. It would no longer work with the HP BIOS but -maybe coreboot could be used, and then we could have -newer TPM version - SLB9665 firmware can meet TPM 2.0 specification. +Works the same way as the 820 G2 (including flashing libreboot on it too.), but the battery indicator usually shows wrong values (for example; a quick power drain down to 25%, then rebooting the machine shows ~50%, etc..) -(we do not yet use the TPM in any meaningful way on Libreboot machines) +Everything else (except the battery status and extra gpus) shall work as it is on the elitebook 820 g2. ### Blobless boards From 9128788bd70296dd515f7ba147c39ad8a2484d2f Mon Sep 17 00:00:00 2001 From: Ronanand0 Date: Fri, 16 May 2025 11:46:30 +0000 Subject: [PATCH 387/399] Update site/tasks/index.md --- site/tasks/index.md | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/site/tasks/index.md b/site/tasks/index.md index 9ec629b..81a2e71 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -83,7 +83,7 @@ is not exhaustive, it just lists boards that are interesting to us at this time: * HP Revolve 810 G1 * HP EliteBook Folio 9480m * HP EliteBook 8770w -* HP EliteBook 840 G2 (not in coreboot yet, but almost identical to 820 G2) +* HP EliteBook 840 G2* (not in coreboot yet, but almost identical to 820 G2) * HP Z220 CMI and SFF motherboards * MSI PRO Z690-A motherboard (supported by Dasharo, not sure about coreboot) - also, Dasharo supports several more motherboards that aren't in coreboot @@ -106,7 +106,9 @@ machine). Both are supported by coreboot. -### Zbook 14/15u G2 / Elitebook 840/850 G2 (indistinguishably same boards (id 2216) with different gpu if included) (a bit bigger board, but almost everything is equal to the 820 G2) +### Zbook 14/15u G2 / Elitebook 840/850 G2 (~820 G2) + +Indistinguishably same boards (id 2216) with different gpu if included.(a bit bigger board, but almost everything is equal to the 820 G2) The 840/850 G2 may have an AMD® Radeon™ R7 M260X gpu and 14/15u would have an AMD® FirePro™ M4170 gpu added, which would became useless using libreboot. From fc83a7156a1f5e307b76790fd8346832d0c775f9 Mon Sep 17 00:00:00 2001 From: Ronanand0 Date: Fri, 16 May 2025 11:53:14 +0000 Subject: [PATCH 388/399] Mentioning others boards working with this firmware --- site/docs/install/hp820g2.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/site/docs/install/hp820g2.md b/site/docs/install/hp820g2.md index 41a2c21..b29baee 100644 --- a/site/docs/install/hp820g2.md +++ b/site/docs/install/hp820g2.md @@ -220,6 +220,13 @@ TPMFactoryUpd -update config-file -config TPM12_latest.cfg Not yet used meaningfully by Libreboot itself, but the TPM can be used to implement things like measured boot. +Similar models working with this firmware +---------- + +More testing is needed, but works almost flawlessly; + + + References ---------- From c443c76ee41ea982d90f3cb8ae101cb6ff757a70 Mon Sep 17 00:00:00 2001 From: Ronanand0 Date: Fri, 16 May 2025 12:07:11 +0000 Subject: [PATCH 389/399] Include the T1700 boards when building from sources. --- site/docs/install/dell9020.md | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/site/docs/install/dell9020.md b/site/docs/install/dell9020.md index 7d4c219..f512150 100644 --- a/site/docs/install/dell9020.md +++ b/site/docs/install/dell9020.md @@ -217,14 +217,22 @@ separate targets for MT and SFF. ### Build ROM image from source -For the MT variant (7020 MT and 9020 MT): +For the **20 MT variant (7020 MT and 9020 MT): ./mk -b coreboot dell9020mt_nri_12mb -For the SFF variant (7020 SFF and 9020 SFF): +For the **20 SFF variant (7020 SFF and 9020 SFF): ./mk -b coreboot dell9020sff_nri_12mb +For the T1700 MT variant: + + ./mk -b coreboot t1700mt_bmrc_12mb + +For the T1700 SFF variant: + + ./mk -b coreboot t1700sff_bmrc_12mb + It is important that you choose the right one. The MT variant is the full MTX tower. From 675a6d2efdb6acd9e222531d49137c835f80e750 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 23 May 2025 12:31:33 +0100 Subject: [PATCH 390/399] documentation cleanup Signed-off-by: Leah Rowe --- site/docs/install/chromebooks.md | 4 ---- 1 file changed, 4 deletions(-) diff --git a/site/docs/install/chromebooks.md b/site/docs/install/chromebooks.md index 8d43bf4..7692307 100644 --- a/site/docs/install/chromebooks.md +++ b/site/docs/install/chromebooks.md @@ -185,10 +185,6 @@ TODO: Instructions to preserve vital data when FMAPs are compatible. Flash the ROM image ------------------- -WARNING: Although none are supported yet, make sure not to flash ROM -images on x86 Chromebooks without injecting non-redistributable code -first (like Intel ME firmware). This is not yet documented here. - You can flash the ROM image both internally and externally. For the latter, see the [external flashing guide](spi.md) and the ChromiumOS [Closed Case Debugging](https://chromium.googlesource.com/chromiumos/platform/ec/+/cr50_stab/docs/case_closed_debugging_gsc.md) From 939b0e741ce6052bd5d179867e2bd4e76e912186 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 23 May 2025 16:41:50 +0100 Subject: [PATCH 391/399] unaligned non-compliance based on the recent counter part in cbwww.git, made on this same day, and with the same premise, one of utter disassociation with the GNU Advisory Committee. the cbwww commit was called "unaligned compliance". Signed-off-by: Leah Rowe --- site/docs/install/ga-g41m-es2l.md | 2 +- site/docs/install/hp2170p.md | 6 +----- site/docs/install/spi.md | 6 +----- site/docs/install/spi.zh-cn.md | 2 +- site/docs/linux/grub_hardening.md | 6 +++--- site/docs/linux/index.md | 2 +- site/docs/maintain/index.md | 14 ++++++-------- site/docs/maintain/style.md | 5 +++-- site/docs/sitegen/index.md | 4 ++-- site/faq.tr.md | 2 +- site/git.de.md | 7 +------ site/index.de.md | 2 +- site/index.fr.md | 2 +- site/index.it.md | 2 +- site/index.uk.md | 2 +- site/index.zh-cn.md | 2 +- site/license.md | 25 +++++++++++++------------ site/news/audit.md | 2 +- site/news/fam15h.md | 4 ++-- site/news/libreboot20230625.md | 2 +- site/news/libreboot20240504.md | 2 +- site/news/libreboot20240612.md | 2 +- site/news/libreboot20241008.md | 2 +- site/news/libreboot20241206.md | 2 +- site/news/libreboot20241206rev10.md | 4 ++-- site/news/libreboot20241206rev11.md | 2 +- site/news/libreboot20241206rev8.md | 2 +- site/news/libreboot2504.md | 2 +- site/tasks/index.md | 2 +- 29 files changed, 53 insertions(+), 66 deletions(-) diff --git a/site/docs/install/ga-g41m-es2l.md b/site/docs/install/ga-g41m-es2l.md index b5995f6..55091d3 100644 --- a/site/docs/install/ga-g41m-es2l.md +++ b/site/docs/install/ga-g41m-es2l.md @@ -116,7 +116,7 @@ NOTE: due to a bug in the hardware, the MAC address is hardcoded in coreboot. Therefore, you must set your own MAC address in your operating system. -Use [macchanger](http://www.gnu.org/software/macchanger) in your +Use macchanger in your distro, to set a valid MAC address. By doing this, your NIC should work nicely. diff --git a/site/docs/install/hp2170p.md b/site/docs/install/hp2170p.md index 0b8fbe3..247f329 100644 --- a/site/docs/install/hp2170p.md +++ b/site/docs/install/hp2170p.md @@ -66,11 +66,7 @@ that replaces proprietary BIOS/UEFI firmware. This is a portable, 11.6" Ivy Bridge platform from HP. More information is available on the [coreboot -documentation](https://doc.coreboot.org/mainboard/hp/2170p.html) - that page -said (on 16 August 2023) that GRUB hangs due to the `at_keyboard` module, but -this is no longer true; it's -[fixed](https://git.savannah.gnu.org/cgit/grub.git/commit/?id=830456a6e3b6ac92d10f9261177722a308652a1a) -in the latest GRUB revisions, and Libreboot's version of GRUB contains this fix. +documentation](https://doc.coreboot.org/mainboard/hp/2170p.html). **Unavailable in Libreboot 20230625 or earlier. You must [compile from source](../build/), or use at least Libreboot 20231021.** diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index 5303dea..668e97b 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -1203,11 +1203,7 @@ This page and the photos on it are available under [CC BY SA 4.0](https://creativecommons.org/licenses/by-sa/4.0/legalcode.txt) Check the Git repository for history of who owns what part of the document. -Some of these resources originate from the *old* Libreboot git repository, -before Libreboot split into separate repositories that include its `lbmk` -repository. - -Photos showing a BeagleBone Black are under the normal GNU Free Documentation +Photos showing a BeagleBone Black are under the normal GFDL license like other pages and images on this website, or you can use them under the CC-BY-SA 4.0 license if you wish (I, Leah Rowe, own all BBB photos shown on this page, except for the one on the beaglebone website, and that one is diff --git a/site/docs/install/spi.zh-cn.md b/site/docs/install/spi.zh-cn.md index eba229a..789dfbd 100644 --- a/site/docs/install/spi.zh-cn.md +++ b/site/docs/install/spi.zh-cn.md @@ -733,6 +733,6 @@ WSON8 IC:\ 部分这些资源源自于*旧的* Libreboot git 仓库,Libreboot 随后分离成了单独的仓库,包括 `lbmk` 仓库。 -展示了 BeagleBone Black 的照片,以 GNU Free Documentation License 许可,如同本网站的其他页面和图像。如果你想的话,你也可以在 CC-BY-SA 4.0 下使用它们(我,Leah Rowe,拥有本页展示的全部 BBB 照片的所有权,除了 beaglebone 网站上的那一张以外;而那一张只是在这里链接的,而不是托管在 av.libreboot.org 服务器的)。 +展示了 BeagleBone Black 的照片,以 GFDL 许可,如同本网站的其他页面和图像。如果你想的话,你也可以在 CC-BY-SA 4.0 下使用它们(我,Leah Rowe,拥有本页展示的全部 BBB 照片的所有权,除了 beaglebone 网站上的那一张以外;而那一张只是在这里链接的,而不是托管在 av.libreboot.org 服务器的)。 本页面的该版本托管在 `lbwww` git 仓库,其图像托管在 `lbwww-img` 仓库(来自用户 libreboot)。 diff --git a/site/docs/linux/grub_hardening.md b/site/docs/linux/grub_hardening.md index c104934..b390235 100644 --- a/site/docs/linux/grub_hardening.md +++ b/site/docs/linux/grub_hardening.md @@ -368,6 +368,6 @@ at some point, and this page will definitely be updated when that happens) References ---------- -* [GRUB manual](https://www.gnu.org/software/grub/manual/html_node/Security.html#Security) -* [GRUB info pages](http://git.savannah.gnu.org/cgit/grub.git/tree/docs/grub.texi) -* [Coreboot GRUB security howto](https://www.coreboot.org/GRUB2#Security) +* GRUB manual: *https://www.gnu.org/software/grub/manual/html_node/Security.html#Security* +* GRUB info pages: *http://git.savannah.gnu.org/cgit/grub.git/tree/docs/grub.texi* +* Coreboot GRUB security howto: *https://www.coreboot.org/GRUB2#Security* diff --git a/site/docs/linux/index.md b/site/docs/linux/index.md index ec6c6ef..884be14 100644 --- a/site/docs/linux/index.md +++ b/site/docs/linux/index.md @@ -6,7 +6,7 @@ x-toc-enable: true GNU boot loader "GRUB" -------- -This page is useful for those who wish to use the GNU boot loader called GRUB. +This page is useful for those who wish to use the boot loader called GRUB. If you're using SeaBIOS, the boot process will work similarly to traditional BIOS systems; refer to the SeaBIOS documentation on diff --git a/site/docs/maintain/index.md b/site/docs/maintain/index.md index 229b7c6..a4f9bb4 100644 --- a/site/docs/maintain/index.md +++ b/site/docs/maintain/index.md @@ -110,8 +110,7 @@ but BSD systems are currently not well-tested with lbmk. **Make sure you have dependencies installed!** -**The [main build guide](../build) will tell you how to install dependencies, -such as GNU toolchains and various libraries.** +**The [main build guide](../build) will tell you how to install dependencies.** ### Host CPU @@ -428,8 +427,6 @@ purpose, on much newer Intel systems (from around Skylake era or later). ### src/grub/TREE -Please also visit: - The GRUB bootloader, a reference multiboot implementation with its own small kernel/OS and drivers (e.g. file systems, cryptography). This is the default recommended [coreboot payload](https://doc.coreboot.org/payloads.html) @@ -639,10 +636,11 @@ or coreboot source code and you'll find it). However, the original code from GRUB was of quite poor quality and this code is often used. For fun, it was decided that this utility would be imported -directly into `lbmk.git`, and thoroughly cleaned. The lbmk version has been -more or less re-written, using the original logic as a base; variables are -more clearly named. A top-down, OpenBSD-inspired coding style is used, -replacing the GNU coding style implemented in the original code. The [OpenBSD +directly into `lbmk.git`, and thoroughly cleaned. The lbmk version has +been re-written. + +A top-down, OpenBSD-inspired coding style is used, +replacing the coding style implemented in the original code. The [OpenBSD coding style](https://man.openbsd.org/style.9) is much easier to read. This code has been modified to make use of the `pledge()` system call, when used diff --git a/site/docs/maintain/style.md b/site/docs/maintain/style.md index 74e5ddd..9733a8a 100644 --- a/site/docs/maintain/style.md +++ b/site/docs/maintain/style.md @@ -298,9 +298,10 @@ In addition to not using bashisms, commands that lbmk uses must also be portable; where possible, third party projects should be tweaked. This is actually something that is currently lacking or otherwise untested -in Libreboot; it's currently assumed that only common Linux distributions +in Libreboot; it's currently assumed that only GNU/Linux (specifically GNU/Linux) will work, because many of the projects that Libreboot makes use of will use -bashisms, and/or rely on idiosyncrasies of glibc. +bashisms, or other GNUisms (e.g. GNU-specific C extensions or GMake specific +behaviour in Makefiles). Work+testing is sorely needed, in this area. It would be nice if Libreboot could be built on BSD systems, for example. diff --git a/site/docs/sitegen/index.md b/site/docs/sitegen/index.md index 1d25132..fbce19b 100644 --- a/site/docs/sitegen/index.md +++ b/site/docs/sitegen/index.md @@ -50,8 +50,8 @@ use JavaScript and more. lbssg is *Free Software*, released under the terms of the GNU General Public License, version 3 of the license or, at your option, any later version as published by the Free Software Foundation. You can find a copy of this license -in the `COPYING` file, when you download lbssg, or you can read it here:\ - +in the `COPYING` file, when you download lbssg, or you can read it +here: https://www.gnu.org/licenses/gpl-3.0.en.html (some parts of it are under the MIT license) diff --git a/site/faq.tr.md b/site/faq.tr.md index 0700117..7d3b9da 100644 --- a/site/faq.tr.md +++ b/site/faq.tr.md @@ -231,4 +231,4 @@ Libreboot, özgür yazılım topluluğunun bir parçası olarak gelişmeye devam ### Libreboot'u Ticari Olarak Kullanabilir miyim? -Evet, Libreboot [GNU Genel Kamu Lisansı](https://www.gnu.org/licenses/gpl-3.0.html) altında lisanslanmıştır. Bu, yazılımı özgürce kullanabileceğiniz, değiştirebileceğiniz ve dağıtabileceğiniz anlamına gelir. Ancak, değişikliklerinizi de aynı lisans altında paylaşmanız gerekir. \ No newline at end of file +Evet, Libreboot GNU Genel Kamu Lisansı altında lisanslanmıştır. Bu, yazılımı özgürce kullanabileceğiniz, değiştirebileceğiniz ve dağıtabileceğiniz anlamına gelir. Ancak, değişikliklerinizi de aynı lisans altında paylaşmanız gerekir. diff --git a/site/git.de.md b/site/git.de.md index 0baee40..7d75b7d 100644 --- a/site/git.de.md +++ b/site/git.de.md @@ -201,12 +201,7 @@ das deine Arbeit unter die Standard Urheberrechte fällt, was deine Arbeit proprietär macht und somit von denselben Einschränkungen betroffen ist. Die MIT Lizenz ist ein guter Start, und sie ist die bevorzugte Lizenz -für sämtliche Arbeit an Libreboot, aber wir sind nicht pingelig. Libreboot -hat in der Vergangenheit GNU Lizenzen so wie GPL verwendet; vieles davon -besteht nach wie vor und wird auch weiterhin bestehen. -Es ist deine Arbeit; sofern deine Arbeit auf der Arbeit eines anderen basiert, -ist es aufgrund der Lizenz-Kompatibilität ggfs. naheliegend diesselbe Lizenz zu -verwenden. +für sämtliche Arbeit an Libreboot, aber wir sind nicht pingelig. [Hier](https://opensource.org/licenses) findest Du übliche Beispiele für Lizenzen. diff --git a/site/index.de.md b/site/index.de.md index 6919c53..a9a7a63 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -63,7 +63,7 @@ Das Libreboot Projekt verwendet [Coreboot](https://www.coreboot.org/) für Die Coreboot Installation ist für unerfahrene Benutzer überaus schwierig; sie übernimmt lediglich die Basis Initialisierung und springt dann zu einem separaten [payload](https://doc.coreboot.org/payloads.html) Programm (z.B. -[GRUB](https://www.gnu.org/software/grub/), +GRUB, [Tianocore](https://www.tianocore.org/)), welche zusätzlich konfiguriert werden muss. *Libreboot löst dieses Problem*; es ist eine *Coreboot Distribution* mit einem [automatisierten Build System](docs/build/) welches vollständige *ROM images* diff --git a/site/index.fr.md b/site/index.fr.md index 3f59410..a78af73 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -41,7 +41,7 @@ Vous avez des droits : droit à la vie privée, liberté de pensée, liberté d Libreboot, fondé en décembre 2013, a pour objectif de rendre le micrologiciel libre accessible même aux utilisateurs non techniques. Libreboot s’appuie sur [Coreboot](https://www.Coreboot.org) pour -[l'initialisation matérielle](https://doc.Coreboot.org/getting_started/architecture.html). Coreboot est réputé complexe à installer, en particulier pour les utilisateurs non techniques ; il se limite à l’initialisation matérielle de base avant de transmettre le contrôle à une [charge utile](https://doc.Coreboot.org/payloads.html) (comme [GRUB](https://www.gnu.org/software/grub/) ou [Tianocore](https://www.tianocore.org/)), qui nécessite également une configuration. Libreboot simplifie ce processus : il s’agit d’une distribution de Coreboot dotée d’un [système de compilation automatisé](docs/builds/), capable de créer des images ROM complètes pour une installation plus simple et fiable. +[l'initialisation matérielle](https://doc.Coreboot.org/getting_started/architecture.html). Coreboot est réputé complexe à installer, en particulier pour les utilisateurs non techniques ; il se limite à l’initialisation matérielle de base avant de transmettre le contrôle à une [charge utile](https://doc.Coreboot.org/payloads.html) (comme GRUB ou [Tianocore](https://www.tianocore.org/)), qui nécessite également une configuration. Libreboot simplifie ce processus : il s’agit d’une distribution de Coreboot dotée d’un [système de compilation automatisé](docs/builds/), capable de créer des images ROM complètes pour une installation plus simple et fiable. Une documentation détaillée est disponible. diff --git a/site/index.it.md b/site/index.it.md index d693e93..05ebc01 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -62,7 +62,7 @@ Il progetto Libreboot fa uso di [coreboot](https://www.coreboot.org/) per Coreboot e' notoriamente difficile da installare per utenti che hanno una scarsa formazione tecnica; gestisce solo l'inizializzazione di base e successivamente carica un programma come [payload](https://doc.coreboot.org/payloads.html) (ad esempio. -[GRUB](https://www.gnu.org/software/grub/), +GRUB, [Tianocore](https://www.tianocore.org/)), i quali possono essere configurati a piacere. *Libreboot risolve questo problema*; e' una *distribuzione di coreboot* con un [sistema di compilazione automatizzato](docs/build/) che produce *immagini ROM* complete, per una diff --git a/site/index.uk.md b/site/index.uk.md index dbe4d47..55f53ec 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -60,7 +60,7 @@ Libreboot надає вам [свободи](https://writefreesoftware.org/), я Coreboot помітно складний для встановлення для більшості нетехнічних користувачів; він виконує тільки базову ініціалізацію та перестрибує до окремої програми [корисного навантаження](https://doc.coreboot.org/payloads.html) (наприклад, -[GRUB](https://www.gnu.org/software/grub/), +GRUB, [Tianocore](https://www.tianocore.org/)), які також мають бути налаштованими. *Програмне забезпечення Libreboot вирішує цю проблему*; це *дистрибутив coreboot* з [автоматизованою системою побудови](docs/build/index.uk.md), яка збирає завершені *образи ROM*, для diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index 08e790e..effcae7 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -33,7 +33,7 @@ Libreboot 赋予了你从其他大多数引导固件得不到的[自由](https:/ *我们*相信,不受限制地[研究、分享、修改及使用软件](https://writefreesoftware.org/)的自由,是每个人都必须享有的基本人权的一部分。这时,*软件自由*至关重要。你的自由至关重要。教育至关重要。[修理权](https://en.wikipedia.org/wiki/Right_to_repair)至关重要。尽管许多人在用[自由的操作系统](https://www.openbsd.org/),但他们用的引导固件却是专有(非自由)的。专有固件常常[包含](faq.html#intel)了[后门](faq.html#amd),而且可能有很多缺陷。为了让不懂技术的用户也能使用 coreboot 固件,我们于 2013 年 12 月成立了 Libreboot 项目, -Libreboot 项目使用 [coreboot](https://www.coreboot.org/) 来[初始化硬件](https://doc.coreboot.org/getting_started/architecture.html)。对大部分不懂技术的用户来说,coreboot 是出了名地难安装;它只处理了基础的初始化,然后跳转进入单独的 [payload](https://doc.coreboot.org/payloads.html) 程序(例如 [GRUB](https://www.gnu.org/software/grub/)、[Tianocore](https://www.tianocore.org/)),而后者也需要进行配置。*Libreboot 解决了上述问题*;作为 *coreboot 发行版*,配有[自动构建系统](docs/build/),能构建完整的 *ROM 映像*,从而让安装更加稳定。另有文档可参考。 +Libreboot 项目使用 [coreboot](https://www.coreboot.org/) 来[初始化硬件](https://doc.coreboot.org/getting_started/architecture.html)。对大部分不懂技术的用户来说,coreboot 是出了名地难安装;它只处理了基础的初始化,然后跳转进入单独的 [payload](https://doc.coreboot.org/payloads.html) 程序(例如 GRUB、[Tianocore](https://www.tianocore.org/)),而后者也需要进行配置。*Libreboot 解决了上述问题*;作为 *coreboot 发行版*,配有[自动构建系统](docs/build/),能构建完整的 *ROM 映像*,从而让安装更加稳定。另有文档可参考。 Libreboot 不是 coreboot 的分支 ----------------------------------- diff --git a/site/license.md b/site/license.md index 258233c..6dd5422 100644 --- a/site/license.md +++ b/site/license.md @@ -23,16 +23,9 @@ You can download the logo files from `lbwww-img.git`. See: These pages are static HTML, generated from Markdown files, which you can find a link to at the bottom of each HTML page, for the corresponding Markdown file. -The terms of this license are written below, unmodified, except to change the -formatting so that the text would integrate nicely on this website. - -You can also find the license here: - - -The markdown version, hosted by the GNU project, can be found here: - - -The *unmodified* license text is as follows: +The terms of this license are written below, unmodified from the original +reference, except to change the formatting so that the text would integrate +nicely on this website: GNU Free Documentation License ============================== @@ -40,7 +33,7 @@ GNU Free Documentation License Version 1.3, 3 November 2008 Copyright (C) 2000, 2001, 2002, 2007, 2008 Free Software Foundation, -Inc. +Inc. *https://fsf.org/* Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. @@ -421,7 +414,7 @@ The Free Software Foundation may publish new, revised versions of the GNU Free Documentation License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. See -. +*https://www.gnu.org/licenses/* Each version of the License is given a distinguishing version number. If the Document specifies that a particular numbered version of this @@ -499,3 +492,11 @@ permit their use in free software. The license text ended in the previous paragraph. Now you see the generic footer generated for every page on this website: +Please also see [logo license](logo-license.md) + +The GFDL license copied above, was copied from the documented hosted +here: *https://www.gnu.org/licenses/fdl-1.3.en.html* + +The markdown version can be found here: *https://www.gnu.org/licenses/fdl-1.3.md* + +The *markdown* version was adapted, to display on this page. diff --git a/site/news/audit.md b/site/news/audit.md index 68629f4..06bd871 100644 --- a/site/news/audit.md +++ b/site/news/audit.md @@ -110,7 +110,7 @@ style and replacing it with a BSD coding style (the licensing is unchanged). For reference, here is the original version from GRUB: - +https://git.savannah.gnu.org/cgit/grub.git/plain/util/spkmodem-recv.c?id=822b726b33b8dc07dd01b257a2dfcc7b07d12e2f And here is the version coreboot had, which Libreboot forked: diff --git a/site/news/fam15h.md b/site/news/fam15h.md index 3be961e..4dad591 100644 --- a/site/news/fam15h.md +++ b/site/news/fam15h.md @@ -42,8 +42,8 @@ The following changes have been made, relative to Libreboot 20211122: implements video initialisation in *Ada* on many platforms, but these AMD boards use AST (Aspeed) framebuffer chips, where coreboot video initialisation is written in normal C. This avoids having to deal with build issues, when - [building older Gnat with newer host - Gnat](https://gcc.gnu.org/install/prerequisites.html) + building older Gnat with newer host + Gnat: https://gcc.gnu.org/install/prerequisites.html The PIKE2008 fix from Libreboot 20211122 was retained, and it is included in today's change. This inserts an empty option ROM in CBFS, without which SeaBIOS diff --git a/site/news/libreboot20230625.md b/site/news/libreboot20230625.md index 347cfa3..614f460 100644 --- a/site/news/libreboot20230625.md +++ b/site/news/libreboot20230625.md @@ -187,7 +187,7 @@ Newest changes first, oldest changes last: coding style, to replace the (very horrible, very messy) GNU coding style. It is also [pledged](https://man.openbsd.org/pledge.2) in Libreboot's version. For reference, - [here](https://git.savannah.gnu.org/cgit/grub.git/plain/util/spkmodem-recv.c?id=822b726b33b8dc07dd01b257a2dfcc7b07d12e2f) + https://git.savannah.gnu.org/cgit/grub.git/plain/util/spkmodem-recv.c?id=822b726b33b8dc07dd01b257a2dfcc7b07d12e2f is the GRUB version, and [here](https://raw.githubusercontent.com/coreboot/coreboot/8febc91b3041a1d027bf0d36d30ccb119496524f/util/spkmodem_recv/spkmodem-recv.c) is coreboot's version of it. And now to blow your mind, [here](https://browse.libreboot.org/lbmk.git/tree/util/spkmodem_recv/spkmodem-recv.c?id=b508245451b71b3443fa3202f3863a6de731e9c8) diff --git a/site/news/libreboot20240504.md b/site/news/libreboot20240504.md index 712c0dc..a69e27b 100644 --- a/site/news/libreboot20240504.md +++ b/site/news/libreboot20240504.md @@ -21,7 +21,7 @@ this works in *exactly* the same way as a Linux distro, providing the same type of infrastructure, but for your boot firmware instead of your operating system. It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) -or [GRUB](https://www.gnu.org/software/grub/) to boot your operating +or GRUB to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). Libreboot provides many additional benefits such as fast boot speeds, greater diff --git a/site/news/libreboot20240612.md b/site/news/libreboot20240612.md index 26b9614..33518c1 100644 --- a/site/news/libreboot20240612.md +++ b/site/news/libreboot20240612.md @@ -22,7 +22,7 @@ this works in *exactly* the same way as a Linux distro, providing the same type of infrastructure, but for your boot firmware instead of your operating system. It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) -or [GNU GRUB](https://www.gnu.org/software/grub/) to boot your operating +or GRUB to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). This is a *bugfix* release, and is considered stable. It fixes a series of bugs diff --git a/site/news/libreboot20241008.md b/site/news/libreboot20241008.md index 46ef246..972cbd4 100644 --- a/site/news/libreboot20241008.md +++ b/site/news/libreboot20241008.md @@ -25,7 +25,7 @@ this works in *exactly* the same way as a Linux distro, providing a source-based package manager (called lbmk) which patches sources and compiles coreboot images. It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) -or [GRUB](https://www.gnu.org/software/grub/) to boot your operating +or GRUB to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). The changes of the recent [6th build system audit](audit6.md) are included, in diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 56b32f9..39a56d5 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -36,7 +36,7 @@ this works in *exactly* the same way as a Linux distro, providing a source-based package manager (called lbmk) which patches sources and compiles coreboot images. It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) -or [GRUB](https://www.gnu.org/software/grub/) to boot your operating +or GRUB to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). ### U-Boot UEFI payload on x86\_64 diff --git a/site/news/libreboot20241206rev10.md b/site/news/libreboot20241206rev10.md index d37f268..087469c 100644 --- a/site/news/libreboot20241206rev10.md +++ b/site/news/libreboot20241206rev10.md @@ -26,7 +26,7 @@ this works in *exactly* the same way as a Linux distro, providing a source-based package manager (called lbmk) which patches sources and compiles coreboot images. It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) -or [GRUB](https://www.gnu.org/software/grub/) to boot your operating +or GRUB to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). We also provide an experimental U-Boot setup on x86, as a coreboot payload for @@ -47,7 +47,7 @@ Summarised list of changes GRUB released *73 patches* to its main branch, fixing a large number of security issues. You can read about them here: - +https://lists.gnu.org/archive/html/grub-devel/2025-02/msg00024.html This updates GRUB to revision `4dc6166571645780c459dde2cdc1b001a5ec844c` from 18 February 2025. Several OOB heap writes, buffer overflows, use after diff --git a/site/news/libreboot20241206rev11.md b/site/news/libreboot20241206rev11.md index 4f37968..d21e303 100644 --- a/site/news/libreboot20241206rev11.md +++ b/site/news/libreboot20241206rev11.md @@ -25,7 +25,7 @@ this works in *exactly* the same way as a Linux distro, providing a source-based package manager (called lbmk) which patches sources and compiles coreboot images. It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) -or [GRUB](https://www.gnu.org/software/grub/) to boot your operating +or GRUB to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). We also provide an experimental U-Boot setup on x86, as a coreboot payload for diff --git a/site/news/libreboot20241206rev8.md b/site/news/libreboot20241206rev8.md index e86d8c0..947da69 100644 --- a/site/news/libreboot20241206rev8.md +++ b/site/news/libreboot20241206rev8.md @@ -24,7 +24,7 @@ this works in *exactly* the same way as a Linux distro, providing a source-based package manager (called lbmk) which patches sources and compiles coreboot images. It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) -or [GRUB](https://www.gnu.org/software/grub/) to boot your operating +or GRUB to boot your operating system; on ARM(chromebooks), we provide *U-Boot* (as a coreboot payload). We also provide an experimental U-Boot setup on x86, as a coreboot payload for diff --git a/site/news/libreboot2504.md b/site/news/libreboot2504.md index 55c9e4b..dc10fac 100644 --- a/site/news/libreboot2504.md +++ b/site/news/libreboot2504.md @@ -54,7 +54,7 @@ this works in *exactly* the same way as a Linux distro, providing a source-based package manager (called lbmk) which patches sources and compiles coreboot images. It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) -or [GRUB](https://www.gnu.org/software/grub/) to boot your operating +or GRUB to boot your operating system; on ARM(chromebooks) and certain x86 mainboards, we provide *U-Boot* (as a coreboot payload), which provides a lightweight UEFI implementation.. diff --git a/site/tasks/index.md b/site/tasks/index.md index 81a2e71..8b2df59 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -520,7 +520,7 @@ try to use VGA modes, or some syslinux configs (that GRUB can parse) will, causing weird behaviour on many Libreboot systems. TODO: modify GRUB to only have behaviour matching `GRUB_TERMINAL=console`. -See: +See: `https://www.gnu.org/software/grub/manual/grub/html_node/Simple-configuration.html` This will prevent the need for modification. In some cases, it is necessary to modify `GRUB_TERMINAL` in distro grub configs. The way Libreboot's GRUB From c1a7cb4f7febb1e6cfacbbf9b2435c382a5e6299 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 23 May 2025 18:15:32 +0100 Subject: [PATCH 392/399] delete other.md, just link canoeboot instead i originally envisioned a federation of sorts, between the other coreboot distros, but almost all of them simply told me that they would rather coordinate everything centrally. fair enough. i will still tell people about those other projects though, when appropriate. for example, there are many cases where i recommend chultrabook/mrchromebox and heads, for their respective use cases that libreboot does not currently cater to. however, i maintain canoeboot and would like to see that much more aggressively promoted from now on, so i've done precisely that; this same change will be adapted, so that Canoeboot releases each state which libreboot version they are based on, linking to each corresponding Libreboot release announcement. Signed-off-by: Leah Rowe --- site/index.de.md | 3 + site/index.fr.md | 3 + site/index.it.md | 3 + site/index.md | 3 + site/index.ru.md | 3 + site/index.tr.md | 3 + site/index.uk.md | 3 + site/index.zh-cn.md | 3 + site/news/libreboot20231021.md | 3 + site/news/libreboot20231101.md | 3 + site/news/libreboot20231106.md | 3 + site/news/libreboot20240504.md | 3 + site/news/libreboot20240612.md | 3 + site/news/libreboot20241008.md | 3 + site/news/libreboot20241206.md | 3 + site/news/libreboot20241206rev10.md | 3 + site/news/libreboot2504.md | 3 + site/other.md | 429 ---------------------------- site/other.md.description | 1 - site/template.de.include | 1 - site/template.include | 1 - site/template.it.include | 1 - site/template.uk.include | 1 - site/template.zh-cn.include | 1 - 24 files changed, 51 insertions(+), 435 deletions(-) delete mode 100644 site/other.md delete mode 100644 site/other.md.description diff --git a/site/index.de.md b/site/index.de.md index a9a7a63..a407eda 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -37,6 +37,9 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. +A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. +Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). + Warum solltest Du *Libreboot* verwenden? ---------------------------- diff --git a/site/index.fr.md b/site/index.fr.md index a78af73..9b5e4e9 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -28,6 +28,9 @@ ou envoyer votre propre ordinateur [pour y installer Libreboot](https://minifree Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot. +A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. +Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). + Pourquoi devriez-vous utiliser *Libreboot*? ----------------------------------- diff --git a/site/index.it.md b/site/index.it.md index 05ebc01..2527989 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -35,6 +35,9 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. +A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. +Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). + Per quale ragione utilizzare *Libreboot*? ----------------------------------------- diff --git a/site/index.md b/site/index.md index e2f7f9c..85d62e9 100644 --- a/site/index.md +++ b/site/index.md @@ -44,6 +44,9 @@ matters. you continue to use your hardware, with continued firmware updates. All of this is *why* Libreboot exists. +A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. +Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). + Overview of Libreboot design ---------------------------- diff --git a/site/index.ru.md b/site/index.ru.md index 64a1bd0..53370d6 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -25,6 +25,9 @@ and more payloads (e.g. Linux kexec payload) are planned for future releases. *Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://en.wikipedia.org/wiki/Right_to_repair) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. +A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. +Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). + Обзор устройства Libreboot -------------------------- diff --git a/site/index.tr.md b/site/index.tr.md index 4098655..470fbb0 100644 --- a/site/index.tr.md +++ b/site/index.tr.md @@ -17,6 +17,9 @@ Ayrıca Minifree Ltd'den seçili donanımlarda [Libreboot önyüklenmiş cihazla *Biz*, yazılımı [inceleme, paylaşma, değiştirme ve kullanma özgürlüğünün](https://writefreesoftware.org/), herhangi bir kısıtlama olmaksızın, herkesin sahip olması gereken temel insan haklarından biri olduğuna inanıyoruz. Bu bağlamda, *yazılım özgürlüğü* önemlidir. Özgürlüğünüz önemlidir. Eğitim önemlidir. [Onarım hakkı](https://en.wikipedia.org/wiki/Right_to_repair) önemlidir; Libreboot, donanımınızı sürekli yazılım güncellemeleriyle kullanmaya devam etmenizi sağlar. Tüm bunlar Libreboot'un *var olma nedenidir*. +A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. +Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). + Libreboot Tasarımına Genel Bakış -------------------------------- diff --git a/site/index.uk.md b/site/index.uk.md index 55f53ec..30293b9 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -36,6 +36,9 @@ for [Libreboot preinstallation](https://minifree.org/product/installation-servic The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. +A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. +Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). + Чому вам варто використовувати *Libreboot*? ---------------------------- diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index effcae7..d89dd9c 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -26,6 +26,9 @@ and more payloads (e.g. Linux kexec payload) are planned for future releases. Libreboot 的创始人和主要开发者,Leah Rowe,也是 Minifree 的所有者和经营者; 销售电脑为 Libreboot 提供资金。 +A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. +Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). + 为什么要使用 *Libreboot*? ---------------------------- diff --git a/site/news/libreboot20231021.md b/site/news/libreboot20231021.md index 21daf40..8235e4c 100644 --- a/site/news/libreboot20231021.md +++ b/site/news/libreboot20231021.md @@ -2,6 +2,9 @@ % Leah Rowe % 21 October 2023 +A corresponding [Canoeboot 20231026](https://canoeboot.org/news/canoeboot20231026.html) +release is also available. + **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, diff --git a/site/news/libreboot20231101.md b/site/news/libreboot20231101.md index a81cd24..2f8bb17 100644 --- a/site/news/libreboot20231101.md +++ b/site/news/libreboot20231101.md @@ -2,6 +2,9 @@ % Leah Rowe % 1 November 2023 +A corresponding [Canoeboot 20231101](https://canoeboot.org/news/canoeboot20231101.html) +release is also available. + **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, diff --git a/site/news/libreboot20231106.md b/site/news/libreboot20231106.md index f9e9095..7fe98ed 100644 --- a/site/news/libreboot20231106.md +++ b/site/news/libreboot20231106.md @@ -2,6 +2,9 @@ % Leah Rowe % 6 November 2023 +A corresponding [Canoeboot 20231107](https://canoeboot.org/news/canoeboot20231107.html) +release is also available. + **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, diff --git a/site/news/libreboot20240504.md b/site/news/libreboot20240504.md index a69e27b..4b2c3ee 100644 --- a/site/news/libreboot20240504.md +++ b/site/news/libreboot20240504.md @@ -2,6 +2,9 @@ % Leah Rowe % 4 May 2024 +A corresponding [Canoeboot 20240504](https://canoeboot.org/news/canoeboot20240504.html) +release is also available. + **Do not use the 20240504 release. This changelog is still provided as reference, but there were problems with this release. Please instead use the [Libreboot 20240612 release](libreboot20240612.md).** diff --git a/site/news/libreboot20240612.md b/site/news/libreboot20240612.md index 33518c1..fa97928 100644 --- a/site/news/libreboot20240612.md +++ b/site/news/libreboot20240612.md @@ -2,6 +2,9 @@ % Leah Rowe % 12 June 2024 +A corresponding [Libreboot 20240612](https://canoeboot.org/news/canoeboot20240612.html) +release is also available. + **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, diff --git a/site/news/libreboot20241008.md b/site/news/libreboot20241008.md index 972cbd4..0b30c88 100644 --- a/site/news/libreboot20241008.md +++ b/site/news/libreboot20241008.md @@ -2,6 +2,9 @@ % Leah Rowe % 8 October 2024 +A corresponding [Canoeboot 20241102](https://canoeboot.org/news/canoeboot20241102.html) +release is also available. + This is a *testing* release, whereas the current stable release on this day is *Libreboot 20240612*. diff --git a/site/news/libreboot20241206.md b/site/news/libreboot20241206.md index 39a56d5..2f9744d 100644 --- a/site/news/libreboot20241206.md +++ b/site/news/libreboot20241206.md @@ -2,6 +2,9 @@ % Leah Rowe % 6 December 2024 +A corresponding [Canoeboot 20241207](https://canoeboot.org/news/canoeboot20241207.html) +release is also available. + Today's Libreboot 20241206 revision is a *stable release*, whereas the previous testing release was Libreboot 20241008, and the previous stable release was Libreboot 20240612. A new *revision* release became available on 5 January 2025, diff --git a/site/news/libreboot20241206rev10.md b/site/news/libreboot20241206rev10.md index 087469c..3bd0a23 100644 --- a/site/news/libreboot20241206rev10.md +++ b/site/news/libreboot20241206rev10.md @@ -2,6 +2,9 @@ % Leah Rowe % 18 February 2025 +A corresponding [Canoeboot 20250107rev1](https://canoeboot.org/news/canoeboot20250107rev1.html) +release is also available. + Today's Libreboot 20241206 revision is the 10th revision in the Libreboot 20241206 stable release series. The changelog on this page is written, relative to Libreboot 20241206 revision 9 which was released on 12 February 2025. diff --git a/site/news/libreboot2504.md b/site/news/libreboot2504.md index dc10fac..7d9cfef 100644 --- a/site/news/libreboot2504.md +++ b/site/news/libreboot2504.md @@ -2,6 +2,9 @@ % Leah Rowe % 30 April 2025 +A corresponding [Canoeboot 25.04](https://canoeboot.org/news/canoeboot2504.html) +release is also available. + Today's Libreboot 25.04 revision is a *testing release*, whereas the previous stable release was Libreboot 20241206. The codename for this release is *Corny Calamity*. This is the first release to have a codename, and it is diff --git a/site/other.md b/site/other.md deleted file mode 100644 index 5a0a898..0000000 --- a/site/other.md +++ /dev/null @@ -1,429 +0,0 @@ ---- -title: Other coreboot distributions providing Open Source BIOS/UEFI firmware -x-toc-enable: true -... - -What is a coreboot distro? --------------------------- - -Libreboot is a *coreboot distribution* or *coreboot distro*, in the same way -that Debian is a *Linux distro*. Its purpose is to provide free/opensource boot -firmware, replacing proprietary BIOS/UEFI firmware, and it -supports [many machines](docs/install/#which-systems-are-supported-by-libreboot). - -It is a coreboot distro precisely because of its [design](docs/maintain/). -Libreboot's build system automatically downloads, patches and builds all the -various upstream sources such as coreboot, GRUB, SeaBIOS, U-Boot and so on. -This automation is used to provide [binary releases](download.md), which the -user can [easily install](docs/install/). Coreboot is notoriously difficult -to configure and install, for most people, and you need a high degree of -technical skill to use it; distros like Libreboot bridge this gap, making -coreboot accessible to non-technical users. - -Libreboot was the *first* coreboot distro, -existing [since December 2013](news/10.md). Many Libreboot users exist today, -who would otherwise not use coreboot at all. - -Coreboot is highly flexible for many configurations. It is quite possible build -to [your own coreboot image](https://doc.coreboot.org/getting_started/index.html) -but most non-technical users should probably use a coreboot distro. - -It's thanks to the various coreboot distros that many people use coreboot today; -without them, many otherwise non-technical users might not use coreboot at all. - -List of coreboot distros ------------------------- - -Not all distros are listed; only those of high quality or otherwise of interest; -quality, not quantity. In alphabetical order: - -### Canoeboot - -Website: - -Git repositories: - -Canoeboot is a *special fork* of Libreboot; both Canoeboot and Libreboot are -maintained in parallel by the same developer, Leah Rowe. Canoeboot supports -far less hardware than Libreboot, but provides a *pure* free software coreboot -distribution, due to its [policy](https://canoeboot.org/news/policy.html). As -a result of Canoeboot's policy, it currently only supports very old hardware. - -It otherwise has the exact same design as Libreboot, and is kept in relative -sync [at all times](https://canoeboot.org/about.html), often doing releases side -by side on the same days as Libreboot. - -*Libreboot* supports more hardware than Canoeboot, due to its more -pragmatic [Binary Blob Reduction Policy](news/policy.md) adopted on 17 -November 2022; Canoeboot is a continuation of Libreboot from prior to this, -since Libreboot initially used the same dogmatic policy as Canoeboot. A small -minority of users demanded it post-November 2022, so Canoeboot was born. - -If you're an absolute Free Software fanatic, Canoeboot is for you. Otherwise, -if you want to use much newer hardware, Libreboot is a worthy choice. Since -Canoeboot only supports much older hardware, and uses Libreboot's *old* policy, -you could consider Canoeboot to be *legacy Libreboot*. Libreboot adopted the -Binary Blob Reduction Policy in November 2022, as part of a general desire to -support more - and newer - hardware. - -### Dasharo - -Website: - -Git repositories: - -Supports many machines, with a choice of EDK2(UEFI) or Heads(Linuxboot) -payload in the flash. Some older machines may provide a SeaBIOS payload -instead. A lot of work that goes into the upstream coreboot project came -from the Dasharo developers. - -Dasharo provides their own fork of coreboot, with a specific tree *per board*. -Several coreboot ports (e.g. MSI Z690-A PRO) were implemented directly by -the Dasharo project, and later upstreamed into the regular coreboot project. - -Dasharo has a special emphasis on commercial application, providing tailored -coreboot images for each supported motherboard, with an emphasis on stability. -It's a very different approach than Libreboot's approach; Libreboot provides -a more generalised design in its build system and infrastructure. - -### Firmware-action - -Website: - -Documentation: - -**TODO: Link their FOSDEM 2025 talk when it becomes available on archives.** - -Launched at the start of 2023, this project by 9elements provides -a source-based package manager similar conceptually to lbmk; it downloads, -patches and compiles various upstream sources, specifically coreboot, -Linux, Tianocore/edk2, u-root and others. - -It currently does not provide specific build targets pre-configured, nor -binary releases, but it could theoretically be fashioned that way, and this -was asked of them at their FOSDEM 2025 talk, during questions and answers - and -much of what it's trying to do could inspire aspects of Libreboot's design in -the future. - -Their build system design is interesting, and has many of the same sort of -features lbmk has, such as tracking of build artifacts / re-use of build -artifacts to speed up re-builds. I (Leah Rowe, Libreboot maintainer) learned -of Firmware-action because I attended their FOSDEM 2025 talk. It is listed on -this page, because their build system design *can* be used to provide a fully -fledged coreboot distribution, with binary releases. - -The goal of the firmware-action project is to provide a fully reproducible -build environment, for integration with a CI/CD setup during coreboot -development. This build system has great potential to provide a useful -competitor versus, say, Heads or LinuxBoot projects. The design of this build -system could also be adapted to provide many different coreboot payloads, -even ones that it currently doesn't support, such as GNU GRUB. - -### Heads - -Website: - -Git repositories: - -Heads provides a LinuxBoot payload using U-Root, and has many advanced features -such as TPM-based MeasuredBoot. With combined use of a FIDO key, you can easily -and more reliably determine whether you boot firmware has been tampered with. - -The Linux-based payload in flash uses kexec to boot another Linux kernel. It -provides an easy to use boot menu, highly configurable and supports many -Linux distros easily. - -If you're the sort of person who needs full disk encryption and you have a -focus on security, Heads is for you. Perfect for use with something like Qubes. - -Libreboot provides its own [security mechanisms](docs/linux/grub_hardening.html), -but Heads is much more flexible and complete, in this regard. The only downside -to Heads's Linux-based flash setup, is that it's basically a Linux-only -coreboot distro (whereas Libreboot can boot BSD and even *Windows*, in some -cases). - -Another focus of the heads project is on *reproducible builds*. Its build -system bootstraps a toolchain that then compiles everything else, including -the coreboot crossgcc toolchain. The purpose of this is to provide matching -ROM hashes on every build; for this purpose, it also auto-downloads vendor -files such as Intel ME at build time, instead of requiring you to dump from -the original boot firmware. - -Heads's vendorcode auto-download logic inspired Libreboot's -own [vendorcode inject](docs/install/ivy_has_common.md) design; Libreboot -greatly expanded on it, on more machines. - -We in Libreboot have an affinity for the Heads project, and have worked with -them in the past, and they with us, helping each other back and forth. Many of -the machines supported in Libreboot are also supported in Heads, and vice versa, -but they target different kinds of users and use-case scenarios, with Libreboot -targeting a more general audience (while providing security hardening options), -whereas Heads specifically targets security-conscious users. - -### MrChromeBox - -Website: - -Git repositories: - -Provides a tailored EDK2(UEFI) payload on supported *Chromebooks*. You can use -this to replace ChromeOS with a regular Linux distro or BSD system - even -Windows - if you wish. - -The benefit of using *MrChromebox* is that it provides up to date EDK2, unlike -proprietary vendors who often provide old, CVE-ridden versions of EDK2 forks -such as InsydeH2O. - -With MrChromebox's guidance, you can have a completely up to date UEFI firmware -on your machine, and get good use out of your Chromebook for many more years, -with regular security updates. - -You can also use the [Chrultrabook Docs](https://docs.chrultrabook.com/) which -make use of MrChromebox and might prove useful. - -One of Chultrabook's maintainers, Elly, did this talk at 37C3 conference, -demonstrating Chultrabook: - - and also did this more general -talk about coreboot at 38C3: . It's -very good reference material if you want to know more about coreboot, and -coreboot distros more generally. - -Elly also did this interview with Brodie Robertson, about coreboot, and -explains the concept of a coreboot distro in more detail in one part of -the interview: - - -Libreboot largely avoids supporting Chromebooks, precisely because -MrChromebox is a perfectly viable option on these machines. - -### Skulls - -Git repositories: - -Skulls provides simple coreboot images with SeaBIOS payload, on a handful of -Thinkpads. Libreboot *also* provides similar SeaBIOS configurations, on all -of the same machines, but Libreboot's design does mean that there are a few -additional steps for installation. -If you just want the simplest, most barebones setup, Skulls is a great choice. - -Libreboot *also* provides U-Boot and GRUB, and has other ambitions. Libreboot -aims to provide ease of use while also providing great power and flexibility. -So Libreboot is aimed specifically at power users, while also trying to -accomodate non-technical users; Skulls largely targets the latter. - -### System76 Open Firmware - -Git repository: - -Other repositories e.g. EC firmware: - -System76 provides their own special coreboot fork, that they tailor for -specific machines that they sell; they also provide free EC firmware. Jeremy -Soller of System76 maintains this firmware, and the work is regularly -upstreamed into the regular coreboot project. - -System76 provides the coreboot firmware, along with EDK2 UEFI payload. It can -boot Linux distros, BSD systems and even Windows perfectly. - -Is your distro unlisted? ------------------------- - -Please get in touch! We'd love to link your project here. - -The coreboot project also maintains its own list of coreboot distros: - - - -Libreboot maintains its own list, because it is felt that distros should also -link to each other, since many people who find coreboot for the first time may -find it through a distro (such as Libreboot) and not check coreboot's own -website. We in the Libreboot project wish to see everyone using free boot -firmware, which was the primary motivation behind this page, in promoting the -various projects. - -Organisations -------------- - -This list will be populated over time. Several organisations exist out there -that pertain to *Free and Open Source firmware* development, supporting its -existence in general. Here are just a few of them: - -### Open Source Firmware Foundation (OSFF) - -Website: - -The OSFF is a non-profit organisation of Oregon, USA, whose mission it is to -coordinate communication between the various free boot projects (projects like -coreboot). Several coreboot developers are a part of -its [governance](https://opensourcefirmware.foundation/team/). - -The OSFF also hosts an annual [Open Source Firmware -Conference](https://www.osfc.io/), where various projects, companies and -peoples can talk about their work in this field. - -The OSFF exists precisely because nothing like it has existed before; the -world of boot firmware is largely dominated by proprietary IBVs (independent -BIOS vendors), the likes of e.g. AMI, Phoenix. - -Organisations like OSFF are critical, if we ever wish to see *libre* boot -firmware become the default firmware, on computers that normal people actually -purchase. All the separate projects out there do great work, but it is critical -that we have a central *sorting ground*, a *point of contact* if you will, -to represent us, and the OSFF's mission is to be exactly that. - -OSFF also has their own list of projects, similar to the list on *this* page -that you are reading now. See: - - - -Libreboot is currently not affiliated with the OSFF in any official capacity, -but it has our *full* support, and we will do what we can to help it, when we -can. - -### Software Freedom Conservancy (SFC) - -Although not strictly related to free/opensource firmware, the coreboot project -is an SFC member, which you can see here: - - - -The SFC is a non-profit organisation of New York, USA, dedicated to the -cause of [software freedom](https://writefreesoftware.org/learn), with a view -towards Copyleft advocacy, especially [copyleft -compliance enforcement](https://sfconservancy.org/copyleft-compliance/). - -SFC provides services to *member projects*, such as coreboot, which you -can read about here: - -* -* - -Services such as donations infrastructure, legal services (including things -like copyright assignements and enforcement), advice/assistance about project -governance, help with fundraising and outreach, etc. - -SFC also hosts an annual conference, called *FOSSY*, which projects, companies -and peoples can go to to promote their work on free/opensource projects. See: - - - -Although Libreboot is not affiliated with SFC in any official capacity, it is -otherwise an excellent organisation, it is listed here in honour of the -excellent work it does, including its support of the coreboot project. - -### Software in the Public Interest (SPI) - -Website: - -The SPI is a non-profit organisation of New York, USA, dedicated to the -cause of [software freedom](https://writefreesoftware.org/learn). It provides -fiscal sponsorship and promotion of numerous Free and Open Source projects, -which you can read about here: - - - -It provides services to member projects such as donations infrastructure, -legal services, advice/assistance and oversight of project governance and -general help with fundraising. - -SFC most notably provides services to Debian, which is a member: - - - -Although SPI does not currently (at this time) sponsor any coreboot or -firmware-related projects, several of the projects that it *does* support -are critical for Libreboot development. For example, it also supports the -Arch Linux project: - - - -Libreboot development, especially build testing, happens largely on computers -running Debian Linux and Arch Linux, because these cover a large number of -users; we also test many other distros such as Fedora or Ubuntu. - -Organisations like SPI (and indeed SFC, OSFF) are critical to the general -health of the Free Software movement. Without them, we would not be able to -as effectively coordinate projects, especially in terms of funding. - -Libreboot is not currently affiliated with the SPI in any official capacity, -but they have our respect and they are listed here. - -Non-coreboot firmware projects --------------------------- - -Several other projects besides coreboot provide free hardware initialisation, -such as [U-Boot](https://www.u-boot.org/) (as own firmware, distinct from U-Boot -as a coreboot payload), [Trusted Firmware](https://www.trustedfirmware.org/) and -so on. - -Here are a few such projects: - -### fwupd - -fwupd is essentially a centralised repository of firmware images, that -can be used to provide updates for your mainboard. Although not officially -supported nor endorsed by the Libreboot project, many Linux distros make -use of this to provide UEFI firmware updates for example. - -Libreboot doesn't use this, due to the many idiosyncrasies of Libreboot on -various motherboards; however, we may use it in a limited capacity, in the -future. - -### LinuxBoot - -Website: - -LinuxBoot can be provided as a UEFI DXE, or as a U-Boot SPL, coreboot payload -or Slim Bootloader Stage 1B, to provide a Linux kernel at boot time, which -kexecs into another Linux kernel. - -The benefit of using *Linux* to *boot Linux* is that then the bootloader part -of your firmware doesn't need to rewrite every driver, because Linux already -provides excellent drivers, and it also affords you many advanced -configuration possibility such as hardened encryption setups with things -like Measured Boot, and it could also be used to boot over a network. - -### OpenBMC - -Website: - -Linux distro for management controllers (BMCs) used on servers, -rack switches and RAID appliances. This provides a remote management -feature, most useful (for example) on colocated server hosting. - -### Oreboot - -Website: - -Oreboot is a special fork of coreboot, re-written in the Rust programming -language, focusing specifically on the *LinuxBoot* payload configuration. - -### Trusted Firmware - -Website: - -Trusted Firmware provides boot firmware for ARMv8-A, ARMv9-A -and ARMv8-M. Specifically tailored for use on embedded systems, and parts of -it are also used by the coreboot project on some boards. - -### U-Boot - -Website: - -U-Boot runs on a large number of embedded systems, with support for a variety -of architectures such as ARM, x86, RISC-V and others. U-Boot provides its own -small kernel and operating system, with drivers and applications designed to -boot your operating system using various methods. It has an advanced *shell*, -with excellent networking and file system support - most notably, we use it -in Libreboot as a UEFI payload for *coreboot*, but U-Boot can also provide its -own boot initialisation independently of coreboot. - -One of the nice features of U-Boot is its *licensing* (GPLv2 for the most part) -and similar coding style to Linux; the licensing and technical design means -that it's much easier to port existing Linux drivers, when something needs to -be done in the U-boot project. - ------------------------------------------ - -We would like to list various distros of these too. If you know of a cool -project, please get in touch with the Libreboot project! diff --git a/site/other.md.description b/site/other.md.description deleted file mode 100644 index c402f9d..0000000 --- a/site/other.md.description +++ /dev/null @@ -1 +0,0 @@ -Libreboot is a free/opensource BIOS/UEFI boot firmware distribution. Several other projects exist that are very different to Libreboot, also based on coreboot. diff --git a/site/template.de.include b/site/template.de.include index 4dbbddb..22ebe5e 100644 --- a/site/template.de.include +++ b/site/template.de.include @@ -83,7 +83,6 @@ $endif$
  • Bugs
  • Kontakt
  • Spenden
  • -
  • Andere Coreboot-Distributionen

  • diff --git a/site/template.include b/site/template.include index a875399..ccdb4f1 100644 --- a/site/template.include +++ b/site/template.include @@ -83,7 +83,6 @@ $endif$
  • Bugs
  • Contact
  • Donate
  • -
  • Other coreboot distros

  • diff --git a/site/template.it.include b/site/template.it.include index 189acd7..73b9fcc 100644 --- a/site/template.it.include +++ b/site/template.it.include @@ -83,7 +83,6 @@ $endif$
  • Difetti (bugs)
  • Contatti
  • Donazioni
  • -
  • Altre distribuzioni coreboot

  • diff --git a/site/template.uk.include b/site/template.uk.include index 8529add..6ed8413 100644 --- a/site/template.uk.include +++ b/site/template.uk.include @@ -83,7 +83,6 @@ $endif$
  • Помилки
  • Зв'язок
  • Пожертвувати
  • -
  • Інші дистрибутиви coreboot

  • diff --git a/site/template.zh-cn.include b/site/template.zh-cn.include index c155a2c..096cc99 100644 --- a/site/template.zh-cn.include +++ b/site/template.zh-cn.include @@ -83,7 +83,6 @@ $endif$
  • 缺陷
  • 联系
  • 捐赠
  • -
  • 其他 coreboot 发行版

  • From 9e1697ed8c478932bbad245323f05903bb6b1054 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Fri, 23 May 2025 19:05:37 +0100 Subject: [PATCH 393/399] i'm a developer, not a developed i'm quite undeveloped Signed-off-by: Leah Rowe --- site/index.de.md | 2 +- site/index.fr.md | 2 +- site/index.it.md | 2 +- site/index.md | 2 +- site/index.ru.md | 2 +- site/index.tr.md | 2 +- site/index.uk.md | 2 +- site/index.zh-cn.md | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/site/index.de.md b/site/index.de.md index a407eda..7f960fc 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -38,7 +38,7 @@ The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. -Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). +Both Canoeboot and Libreboot are maintained by the same developer (Leah Rowe). Warum solltest Du *Libreboot* verwenden? ---------------------------- diff --git a/site/index.fr.md b/site/index.fr.md index 9b5e4e9..9d0f366 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -29,7 +29,7 @@ ou envoyer votre propre ordinateur [pour y installer Libreboot](https://minifree Leah Rowe, fondateur et principal développeur du projet Libreboot, est également propriétaire de Minifree Ltd. Les ventes contribuent à financer le développement du projet Libreboot. A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. -Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). +Both Canoeboot and Libreboot are maintained by the same developer (Leah Rowe). Pourquoi devriez-vous utiliser *Libreboot*? ----------------------------------- diff --git a/site/index.it.md b/site/index.it.md index 2527989..867dac0 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -36,7 +36,7 @@ The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. -Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). +Both Canoeboot and Libreboot are maintained by the same developer (Leah Rowe). Per quale ragione utilizzare *Libreboot*? ----------------------------------------- diff --git a/site/index.md b/site/index.md index 85d62e9..55736ea 100644 --- a/site/index.md +++ b/site/index.md @@ -45,7 +45,7 @@ you continue to use your hardware, with continued firmware updates. All of this is *why* Libreboot exists. A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. -Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). +Both Canoeboot and Libreboot are maintained by the same developer (Leah Rowe). Overview of Libreboot design ---------------------------- diff --git a/site/index.ru.md b/site/index.ru.md index 53370d6..1b44277 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -26,7 +26,7 @@ and more payloads (e.g. Linux kexec payload) are planned for future releases. *Мы* верим, что свобода [изучать, делиться, модифицировать и использовать программное обеспечение](https://writefreesoftware.org/) без каких-либо ограничений, является одним из основных человеческих прав, который должен иметь каждый. В этом контексте, *свобода программного обеспечения* важна. Ваша свобода важна. Образование важно. [Право на ремонт](https://en.wikipedia.org/wiki/Right_to_repair) важно; Libreboot позволяет вам продолжить использовать ваше оборудование. Вот *почему* Libreboot существует. A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. -Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). +Both Canoeboot and Libreboot are maintained by the same developer (Leah Rowe). Обзор устройства Libreboot -------------------------- diff --git a/site/index.tr.md b/site/index.tr.md index 470fbb0..97f232a 100644 --- a/site/index.tr.md +++ b/site/index.tr.md @@ -18,7 +18,7 @@ Ayrıca Minifree Ltd'den seçili donanımlarda [Libreboot önyüklenmiş cihazla *Biz*, yazılımı [inceleme, paylaşma, değiştirme ve kullanma özgürlüğünün](https://writefreesoftware.org/), herhangi bir kısıtlama olmaksızın, herkesin sahip olması gereken temel insan haklarından biri olduğuna inanıyoruz. Bu bağlamda, *yazılım özgürlüğü* önemlidir. Özgürlüğünüz önemlidir. Eğitim önemlidir. [Onarım hakkı](https://en.wikipedia.org/wiki/Right_to_repair) önemlidir; Libreboot, donanımınızı sürekli yazılım güncellemeleriyle kullanmaya devam etmenizi sağlar. Tüm bunlar Libreboot'un *var olma nedenidir*. A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. -Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). +Both Canoeboot and Libreboot are maintained by the same developer (Leah Rowe). Libreboot Tasarımına Genel Bakış -------------------------------- diff --git a/site/index.uk.md b/site/index.uk.md index 30293b9..c4a95d5 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -37,7 +37,7 @@ The founder and lead developer of Libreboot, Leah Rowe, also owns and operates Minifree; sales provide funding for Libreboot. A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. -Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). +Both Canoeboot and Libreboot are maintained by the same developer (Leah Rowe). Чому вам варто використовувати *Libreboot*? ---------------------------- diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index d89dd9c..90af7dc 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -27,7 +27,7 @@ Libreboot 的创始人和主要开发者,Leah Rowe,也是 Minifree 的所有 销售电脑为 Libreboot 提供资金。 A parallel [Libreboot fork, Canoeboot](https://canoeboot.org), also exists. -Both Canoeboot and Libreboot are maintained by the same developed (Leah Rowe). +Both Canoeboot and Libreboot are maintained by the same developer (Leah Rowe). 为什么要使用 *Libreboot*? ---------------------------- From 56120eb2fbfa432eb6b465d93503f1da8b6ac5c5 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 25 May 2025 12:18:05 +0100 Subject: [PATCH 394/399] further clarification about pico2 support Signed-off-by: Leah Rowe --- site/contrib.md | 2 +- site/docs/install/spi.md | 20 +++++++++----------- site/docs/install/spi.zh-cn.md | 3 +-- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/site/contrib.md b/site/contrib.md index dc42608..5d38b99 100644 --- a/site/contrib.md +++ b/site/contrib.md @@ -547,7 +547,7 @@ in Libreboot. Riku also added the HP Folio 9470m to Libreboot. Riku is also in charge of Libreboot's fork of `pico-serprog`, which is used -to provide serprog firmware on RP2040 and RP2530 devices. These devices can +to provide serprog firmware on Raspberry Pi Pico devices. These devices can be used to set up a cheap but reliable NOR flasher, which is now the default recommended one for flashing Libreboot externally. Riku's fork contains several enhancements, such as a higher default drive level of 12mA and the ability to diff --git a/site/docs/install/spi.md b/site/docs/install/spi.md index 668e97b..043a416 100644 --- a/site/docs/install/spi.md +++ b/site/docs/install/spi.md @@ -100,17 +100,16 @@ is called *external* because it's not the *internal* one on your motherboard. Raspberry Pi Pico ----------------- -### RP2040/RP2530 both supported +### Pico 1 (RP2040) supported -NOTE: RP2530 dongles removed in the Libreboot 25.04 testing release, but will +Pico 2 support was removed, due to stability issues. These are the RP2530 +devices. Pico 1 dongles work just fine (RP2040). + +**NOTE: RP2530 dongles removed in the Libreboot 25.04 testing release, but will be re-added in future revisions. It was removed due to bugs, so Libreboot only -supports Pico1 for now, and the Pico2 images were also removed from the December -release of 2024, retroactively. Subsequent revisions will once again re-add -Pico 2 support, after it has been better tested. - -**Pico 2 and other RP2530 dongles also supported, on Libreboot 20241206 rev8, -but experimental. Releases before this only supported the original Pico, and other -RP2040 dongles; newer Libreboot releases now support both RP2040 and RP2530.** +supports Pico1 (RP2040) for now, and the Pico2 images were also removed from the +December release of 2024, retroactively. Subsequent revisions will once again +re-add Pico 2 support, after it has been better tested.** The pinout on Raspberry Pi Pico and Raspberry Pi Pico 2 are identical, but you must take care to flash the correct image on either device. @@ -154,8 +153,7 @@ do: This will automatically build the rpi-pico firmware, and the file will be at `bin/serprog_pico/serprog_pico.uf2` -and `bin/serprog_pico/serprog_pico_w.uf2` - images with `pico2` in the -file name are for the Pico 2, and they can also be used. +and `bin/serprog_pico/serprog_pico_w.uf2`. ### Install the serprog firmware diff --git a/site/docs/install/spi.zh-cn.md b/site/docs/install/spi.zh-cn.md index 789dfbd..3b2220a 100644 --- a/site/docs/install/spi.zh-cn.md +++ b/site/docs/install/spi.zh-cn.md @@ -89,8 +89,7 @@ do: This will automatically build the rpi-pico firmware, and the file will be at `bin/serprog_pico/serprog_pico.uf2` -and `bin/serprog_pico/serprog_pico_w.uf2` - images with `pico2` in the -file name are for the Pico 2, and they can also be used. +and `bin/serprog_pico/serprog_pico_w.uf2`. ### Install the serprog firmware From df73de2bcd051ee16d8061b1c61befc3a3a47169 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 1 Jun 2025 04:20:54 +0100 Subject: [PATCH 395/399] do not promote a now-tainted project i no longer wish to associate libreboot in any way with said project, whose name i will no longer mention, not even in this commit message. i can't do anything about previous mentions, in the git history, nor in lbmk.git. i *could* replace all mentions of said project, with the name of the project it's based on, namely 86box, since 86box does have support for those pentium 2 boards as well, and i could re-add those boards at a later date with 86box as a test setup. however, this would not be worthwhile, since those boards aren't very useful anyway. not for libreboot purposes, anyway. Signed-off-by: Leah Rowe --- site/news/audit5.md | 1 - site/news/libreboot20221214.md | 3 --- site/news/libreboot20230319.md | 5 ----- site/news/libreboot20240612.md | 1 - 4 files changed, 10 deletions(-) diff --git a/site/news/audit5.md b/site/news/audit5.md index b0f04ae..f25ccee 100644 --- a/site/news/audit5.md +++ b/site/news/audit5.md @@ -673,7 +673,6 @@ The latest changes are listed first, going all the way down to earlier changes: * 9cdf4192 git.sh: further simplify nuke() * 1cede024 git.sh: simplify link_crossgcc() * 77e482aa git.sh: simplify nuke() -* 42e97950 Merge pull request 'Add dependency scripts for Fedora 40 and Ubuntu 24.04' (#220) from fuel-pcbox/lbmk:master into master |\ | * 046007b4 Add dependency scripts for Fedora 40 and Ubuntu 24.04 * | a0eb79df add crossgcc tarballs to config/submodules/ diff --git a/site/news/libreboot20221214.md b/site/news/libreboot20221214.md index cf3b716..5305c16 100644 --- a/site/news/libreboot20221214.md +++ b/site/news/libreboot20221214.md @@ -32,9 +32,6 @@ a summary of changes. This list *may not be complete*, but it is as follows: -* ASUS p2b\_ls/p3b\_f added, for testing with [PCBox](https://pcbox-emu.xyz) - - these ROM images achieve perfect raminit and jump to payload in the emulator, - but VGA ROM initialisation does not yet work. * QEMU (arm64 and x86\_64) images added, for testing payloads and so on. * lenovo/t430 (thinkpad) * lenovo/x230 (thinkpad) diff --git a/site/news/libreboot20230319.md b/site/news/libreboot20230319.md index 2f73031..1df682a 100644 --- a/site/news/libreboot20230319.md +++ b/site/news/libreboot20230319.md @@ -150,11 +150,6 @@ add for the next release: ^ I would have put these in today's release, but didn't have time, and wanted to get this release done today. -### Removed boards - -* asus p2b\_ls/p3b\_f - they didn't boot properly in pcbox, and the real - hardware is basically useless / impossible to find - lbmk Git changes ------------ diff --git a/site/news/libreboot20240612.md b/site/news/libreboot20240612.md index fa97928..a76d6c6 100644 --- a/site/news/libreboot20240612.md +++ b/site/news/libreboot20240612.md @@ -724,7 +724,6 @@ The latest changes are listed first, going all the way down to earlier changes: * 9cdf4192 git.sh: further simplify nuke() * 1cede024 git.sh: simplify link_crossgcc() * 77e482aa git.sh: simplify nuke() -* 42e97950 Merge pull request 'Add dependency scripts for Fedora 40 and Ubuntu 24.04' (#220) from fuel-pcbox/lbmk:master into master |\ | * 046007b4 Add dependency scripts for Fedora 40 and Ubuntu 24.04 * | a0eb79df add crossgcc tarballs to config/submodules/ From 6742a9fc954182e9699b9b5bf844f0d42e5dcd82 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Sun, 1 Jun 2025 04:26:19 +0100 Subject: [PATCH 396/399] cleanup Signed-off-by: Leah Rowe --- site/news/libreboot20221214.md | 345 --------------------------------- 1 file changed, 345 deletions(-) diff --git a/site/news/libreboot20221214.md b/site/news/libreboot20221214.md index 5305c16..49984b5 100644 --- a/site/news/libreboot20221214.md +++ b/site/news/libreboot20221214.md @@ -86,351 +86,6 @@ never worked reliably on these boards to begin with and they were barely maintained anymore. Use an older release of Libreboot, if you still want to use these boards. -lbmk Git changes ------------- - -These are takes from the git log of `lbmk.git`: - -``` -* c6bb4d25 (HEAD -> master, tag: 20221214, srht/master, origin/master, notabug/master) build/release/src: don't delete .gitcheck -* 0fbf3325 correct a faulty if statement in build/release/src -* ab2cfb86 util/nvmutil: only mask random unicast/local macs -* fea3e51c update the readme -* 664cdcfb fix ./build boot roms all -* 48c73186 p2b_ls/p3b_f boards: Disable memtest payload -* 31111c64 build/boot roms: add exits for failing commands -* 4eba525b p2b_ls/p3b_f boards: no payload and no vga init -* c931b40e Merge branch 'master' of qeeg/lbmk into master -|\ -| * 6351a4a4 Add P2B-LS and P3B-F configs -* | 34a56281 Merge branch 'cros-postmerge-fixes' of alpernebbi/lbmk into master -|\ \ -| * | f079b83d build/release/src: Include U-Boot sources in source archive -| * | 70435784 build/clean: Add helper script to clean U-Boot builds -| * | 0bd4fdbe dependencies/debian: Install dependencies for U-Boot -| * | 3d5bd034 coreboot: Add qemu_arm64_12mb board -| * | d14731be u-boot: Add qemu_arm64_12mb board -| * | b5a5801f coreboot: qemu_x86_12mb: Enable DRIVERS_UART_8250IO -| * | 737573ce u-boot: Add qemu_x86_12mb build -| * | 1c62b003 build/roms: Support using "u-boot" ELF file as U-Boot payload -| * | 6cabcec5 u-boot: Add video damage tracking patch series -| * | 38328b93 u-boot: Set default revision to v2022.10 -| * | c798975d u-boot: Use a common tree -| * | 5b6bf2a8 build/roms: Don't rebuild crossgcc if it was already built -| * | bee50540 build/roms: Make coreboot crossgcc usable for payloads and modules -| * | a5863561 build/roms: Build 32-bit crossgcc for AArch64 as well -| * | 9fb4ecec build/roms: Don't build Memtest86+ when not specified by cmdline -| * | 4e3097b5 build/roms: Disable U-Boot when not in payloads specified by cmdline -| * | 584210bd download/u-boot: Change to download target before running extra.sh -| * | 2b761f2f download/u-boot: Re-add usage text for no-argument form -| * | 71cf7f9d download/u-boot: Remove support for deleting git folders -| |/ -* | b495aa09 util/nvmutil: consistent parentheses on comparison -* | 17fa25e5 util/nvmutil file reads: skip reading if errno!=0 -* | 27876c64 util/nvmutil: return error when fstat() is -1 -|/ -* 960af2d6 util/nvmutil: rhex(): fail if errno not zero -* 3d01cf28 util/nvmutil: minor code formatting cleanup -* a7ea70c7 build/release/roms: delete ME/MRC firmware in ROMs -* 0c334380 build/boot/roms: remove errant code -* 33bbb36d remove errant detail from comment -* 55869474 delete build/release/u-boot-libre -* 137b5434 remove logic for avoiding nonredistributable blobs -* 7679c8e0 coreboot/default: add --nuke flag to ifdtool -* a5e4416a util/nvmutil: remove errant line break -* c100dd1f util/nvmutil: missing paretheses on if statement -* 036d7107 util/nvmutil: don't initialise rbuf unless needed -* 851892b4 util/nvmutil: rename variable in hextonum -* 0bf3f1ed util/nvmutil: don't reallocate memory in hextonum -* e5a46b46 util/nvmutil: dont report bad size if /dev/urandom -* ededa5dd util/nvmutil: rename variables in hextonum -* e2e321fc util/nvmutil: use BUFSIZ for rmac size in hextonum -* a6d0112d util/nvtutil: fix out of bounds error -* 04ced693 update the README -* 85937f3f util/nvmutil: reset errno on cmd_swap -* ec082429 scripts: avoid relying on spaces from sha1sum output -* 7c5334ca Merge branch 'hide-mei' of XRevan86/lbmk into master -|\ -| * 69eaca2c coreboot: hide MEI on neutered-ME targets -|/ -* cf052220 Merge branch 'master' of Arsen/lbmk into master -|\ -| * a40ba4ad t430_12mb: Add, based on x230_12mb -* | 0c5dfddd Merge branch 'x230edp' of XRevan86/lbmk into master -|\ \ -| |/ -|/| -| * a33e8429 coreboot: add x230edp_12mb, remove x230fhd_12mb -|/ -* e8eee6dd util/nvmutil: mild refactoring -* 342e5abe util/nvmutil: improved errno handling in main -* d7465efb util/nvmutil: put hextonum in its own function -* 9e5ff5e4 util/nvmutil: move ENOTDIR check to function -* ff88cb1a util/nvmutil: further improved errno handling -* b81b51f9 util/nvmutil: remove errant code -* a94bac81 util/nvmutil: improved error handling -* 55a951a7 util/nvmutil: fix off by one bug -* 0108615f nvmutil copy/swap: actually set nvmPartModified -* 82300f4f util/nvmutil: move cmd copy to own function -* ddf3b76c util/nvmutil: move cmd swap to own function -* c2ed251c util/nvmutil: move cmd brick to own function -* eaad16ed util/nvmutil: cmd setchecksum in own function -* cea1beea util/nvmutil: split "dump" into smaller functions -* 59e4f560 Merge branch 'dev' of shmalebx9/lbmk into master -|\ -| * 99652baa fix injection script -| * 175b48a4 added more checks and optimised extraction script -| * b2c71747 make gitcheck verify coreboot subdir -| * 1246c3ad add smort failures to blob download script -* | 0ae00e88 util/nvmutil: re-factor to reduce code indentation -* | 0bbd4f1f util/nvmutil: write gbe files in a function -* | b0f9f47e util/nvmutil: human-friendly exit messages, part 2 -* | e35a33d5 Merge branch 'qemu' of shmalebx9/lbmk into master -|\ \ -| * | da155b3d added x86 qemu board based on x230 coreboot config -* | | e1bbdadc build/roms: remove seabios_grubfirst logic -| |/ -|/| -* | 7629dfb8 remove duplicate patch causing build error -|/ -* ca45a60f bump grub revision to latest upstream -* c1c76a05 dependencies/arch: notice about unifont dependency -* 43196abc also fix crossgcc on cros/fhd coreboot trees -* f0631908 cros devices: use a common coreboot tree -* 24a866ba remove kfsn4-dre, kcma-d8 and kgpe-d16 -* f5b4eb3f update gitignore -* 60793c55 fix gnat build issue on coreboot repositories -* 6114c349 add innoextract to federa dependency script -* 5ec5d0ea ditto others -* 551e845e ditto debian script -* f896bb84 remove stupid flags from arch dependency script -* 5a01e98d build/dependencies/*: remove python2 -* 6c12afa9 util/nvmutil: more human-friendly exit messages -* 50174563 fix part 1 checksum in t440p gbe.bin -* a7b8d0cf update .gitignore -* b3b3642f assimilate nvmutil -* 8740404e make background splash screen purple -* 3f12ef85 bonerfix -* cf945dda blobs/inject: use nvmutil, not nvmutils -* 2589d367 update the README -* 7af99534 (tag: psdg) pragmatic system distribution guideline compliance -* b5c25efe Merge branch 'u-boot-chromebooks' of alpernebbi/lbmk into master -|\ -| * 61ac6c3f u-boot: Add peach pi chromebook configs -| * f848eb81 coreboot: Add peach pit chromebook configs -| * e08e3da2 u-boot: Add peach pit chromebook configs -| * 8584fcc1 coreboot: Add spring chromebook configs -| * f9f5d5fc u-boot: Add spring chromebook configs -| * 2dcb7cab coreboot: Add snow chromebook configs -| * be8bebaa u-boot: Add snow chromebook configs -| * c97f8e5c coreboot: Add nyan blaze chromebook configs -| * 330f985d u-boot: Add nyan blaze chromebook configs -| * ddc695a2 coreboot: Add nyan big chromebook configs -| * 0d696ee3 u-boot: Add nyan big chromebook configs -| * 2e0f13d9 coreboot: Add veyron mickey chromebit configs -| * 330c62ae u-boot: Add veyron mickey chromebit configs -| * f84209ce coreboot: Add veyron jerry chromebook configs -| * fc7794a1 u-boot: Add veyron jerry chromebook configs -| * bbba94ed coreboot: Add veyron minnie chromebook configs -| * bc47f8cc u-boot: Add veyron minnie chromebook configs -| * 2ed1111d coreboot: Add veyron speedy chromebook configs -| * fa553566 u-boot: Add veyron speedy chromebook configs -| * 0ae23980 coreboot: Add bob chromebook configs -| * ff39bba2 u-boot: Add bob chromebook configs -| * af46cbff coreboot: Add kevin chromebook configs -| * 38655635 u-boot: Add kevin chromebook configs -| * 6d6bd5ee build/roms: Rebuild cbutils module before starting coreboot build -| * 61ede998 build/roms: Support using U-Boot as a coreboot payload -| * a69855f7 build/roms: Build 32-bit crossgcc for AArch64 as well -| * 769f18f2 build/roms: Fix building for ARMv7 and AArch64 boards -| * 9bfbdb59 scripts: Add helpers to modify and update U-Boot configs -| * 1dc05e40 build/payload: Add helper script to build U-Boot as payload -| * cf295741 download: Use shallow clones for big projects -| * ef39e05b download: Allow keeping .git dirs with NODELETE=git -| * 764a439a u-boot-libre: Add support for deblobbing U-Boot v2022.07 -| * 270272eb download/u-boot: Remove .git folders as well -| * 820b8e70 download/u-boot: Support running extra commands from board dirs -| * eae6b35d download/u-boot: Support applying patches from board dirs -| * 454364cc download/u-boot: Try to update submodules as in coreboot script -| * 0aeb69b5 download/u-boot: Use GitHub mirror as fallback -| * 7b552bd2 download/u-boot: Support reading tree and revision from board.cfg -| * 8dd1a245 download/u-boot: Prepare files per board instead of per revision -| * d8da9b51 .gitignore: Ignore u-boot directory -| * 22b1db69 u-boot-libre: Set tar mtime to SOURCE_DATE_EPOCH or @0 -| * 01f61263 u-boot-libre: Fix releasing blob list as deblob script -| * 89a4c2c6 u-boot-libre: remove nonfree firmware in drivers/dma/MCD_tasks.c -| * f679fbd3 u-boot-libre: Fix reproducability issue due to timezone -``` - -osbmk Git changes -------------- - -It's important to show the osboot changes as well. Osboot only became part of -Libreboot last month, but the "reboot" of the osboot project happened around -the start of 2022, when it was put back in sync with Libreboot at the time, -so changes from then to now will be showed. The *last* change in osboot as -shown below is the revision that got merged with lbmk: - -To be more clear: on 19 December 2021, osboot got nuked and re-forked from -scratch, relative to Libreboot, so the earliest revisions in the log below -are Libreboot from that time (forked from lbmk -revision `c3a66c32750fa4a9a90ddb6383b09fdfb6ff77f5`), so this is actually -a full list of all osboot-related changes that became part of Libreboot -in the osboot/libreboot merge last month: - -(some of them are identical changes to lbmk, because efforts *were* made at -the time to keep osboot/libreboot in sync, before it was decided that they -would simply merge) - -``` -* c8c030b (HEAD -> master, origin/master, origin/HEAD) fork lbmk 61ac6c3f0b26deadc2fb8355a8dd0d25b29baacd -* eef6b71 clean up the download script -* 1d2f9e8 Merge branch 'finetune' of shmalebx9/osbmk into master -|\ -| * bd4f1b4 added fine-tuned control for building roms -* | 55e5d92 Merge branch 'gitframework' of shmalebx9/osbmk into master -|\ \ -| * | a6e5c87 added internal git package management -* | | 4b424a8 Merge branch 'master' of anjan/osbmk into master -|\ \ \ -| * | | 7a444dc debian dependencies: add python-is-python3 -| |/ / -* | | 7728a98 lenovo/w541: new board added -* | | d05ab33 re-do x220 configs -* | | ad68c8c add lenovo/t520 -* | | 7979263 add lenovo/t420s -* | | 3e20a41 build/roms: remove unnecessary bloat -* | | a18e962 build/roms: fix missing cbfstool bug -* | | 74ef993 re-do x230 fhd configs -* | | b1b481d fix build issues with x230 fhd -* | | 3472940 actually add the x230 fhd patch -* | | 3106501 script/blobs: check to download *default* coreboot -* | | 81b4ff7 Re-add X230 FHD patches -| |/ -|/| -* | 83c230b add t440p config with 4mb cbfs -|/ -* 31fbee4 make only the logo darker, in grub backgrounds -* 5e2da8f update build/release/src based on osbmk changes -* 00707ea say the name osboot, in the grub menu -* 56bb8a8 add bootsplash with new logo -* 675db3d Merge branch 'dev' of shmalebx9/osbmk into master -|\ -| * 2098cfa initialize git if it isn't already -| * d4690d0 updated gitignore for new dependencies and blobs -* | e43a28c Merge branch 'dev' of shmalebx9/osbmk into master -|\| -| * 5139ad4 added myself as a license holder to changes in last commit -| * 327a39e added workaround for git credentials -|/ -* b079a19 patch me_cleaner to specifically use python3 -* 5cc10a7 specifically call python3, in scripts -* 91b6542 fixed b0rked descriptor -* ca8d824 added myself as a license holder to various scripts -* aaeba81 removed obselete entries from blob sources -* 2a11133 hardcoded paths to redistributable blobs -* 4e2bd46 updated blobutil scripts to deal with hardcoded paths -* 4ca4801 Perform the silentoldconfig step of seabios before full make -* 1c921b5 new board: lenovo/x230t_16mb -* 335f95c add missing board.cfg for x230_16mb -* c4a705e set regions read-write on xx30/ifd.bin -* cafb408 Merge branch 'dev' of shmalebx9/osbmk into master -|\ -| * 7c7d96e Download script can tell whether to pull 16mb ifd -| * 999331d added x230_16mb -* | c437778 x230/x220: don't set CONFIG_HAVE_EM100_SUPPORT=y -* | dfeb26c fix txtmode configs: me/ifd/gbe insertion not enabled -|/ -* 6390a90 nuke boards/x230_truncated_16mb for now -* 174f6c2 disable CONFIG_HAVE_EM100_SUPPORT on boards -* 8b698a4 new board: lenovo/x230t -* ac790ee update nvmutils -* 79e94d7 Merge branch 'dev' of shmalebx9/osbmk into master -|\ -| * 55d44bc added licenses just in case -|/ -* 3171b91 Merge branch 'dev' of shmalebx9/osbmk into master -|\ -| * cba24e8 fix txtmode config for t440p -| * 55d6503 changed build system for new blobutil -| * 1462a3c move all blobs scripts to one directory -* | 84a9d53 update flashprog -* | cda2d70 reset nvmutils to known good revision -* | 65b62c0 exit if can't download nvmutils -* | 12c9fd2 coreboot: set me_state=Disabled on all boards -* | 7ef3b88 Merge branch 'dev' of shmalebx9/osbmk into master -|\| -| * d78c65e added t440p blobs -* | 8e7b3c3 Merge branch 'dev' of shmalebx9/osbmk into master -|\| -| * bc91ff2 fixed breaking bug in blobs downloader -|/ -* 95ae701 enable CONFIG_PCIEXP_HOTPLUG on all boards that support it -* 75a9f00 Merge branch 'dev' of shmalebx9/osbmk into master -|\ -| * ae0b95a added t420 -* | 8971e0d Merge branch 'dev' of shmalebx9/osbmk into master -|\| -| * b3081fc better error handling -| * e59a546 updated blob injector to give option to change mac -| * 563d0de made blob downloader save blobs under board_short no matter what -|/ -* 5d5746f Merge branch 'dev' of shmalebx9/osbmk into master -|\ -| * 68533c6 removed hardcoded tmp files -| * 7fc071b added blob injector for binary releases -| * 3457579 added release infrastructure -|/ -* 71f6936 Merge branch 'master' of shmalebx9/osbmk into master -|\ -| * 938bd04 switch x230 config back to 12mb cbfs size -| * b69d4fa Added dependencies for automatic blob extraction -| * 0829f5b added x220 support -| * 1f4e6d7 added ifd and gbe for xx20 and xx30 boards -| * b933bff Added the scripts for automatically downloading blobs -|/ -* 489f2ee memtest86+: fix build error (patch from Félicien Pillot) -* 240779a lenovo/x230: fix build -* f6cffa0 Merge branch 'master' of shmalebx9/osbmk into master -|\ -| * fa8e5fa switched back to the old way of downloading the mrc -| * 831d8f3 added t440p rom as an example of a rom needing the mrc -| * cf479fd added a simpler version of the old mrc download script. This one just uses the default coreboot way of extracting it using the included script, so it will always be up to date -| * 7fdfb07 added ability to detect if the board needs the mrc and download it -| * b8bd895 added mrc download script from old osbmk but changed to agnostic shebang -| * d80bcfb added x230 coreboot config as an example of a config using the blobs extracted with the extraction script -| * d40b01c add script to extract blobs from the vendor rom image for ivy bridge lenovo boards. Could possible work/be extended for other motherboards -| * c3dfcf4 re-add me_cleaner and change to agnostic shebang -* | f70c5cc lenovo/x230: set me_state=Disabled in cmos.default -* | 9b4afd1 x230_12mb: set cbfs back to 7mb. i will add special truncated configs instead -* | d39da96 rename x230_16 to x230_truncate_16mb -|/ -* baf4fd4 Revert "lenovo/x230: set me_state=Disable in cmos.default" -* 4828eb0 new cfg: lenovo/x230_16mb: 16MB-128KB CBFS size for truncated ME -* 1334dd5 lenovo/x230: set config 12MB-128KB cbfs size for truncated ME -* ecb98cc lenovo/x230: set me_state=Disable in cmos.default -* 3a5d399 1MB coreboot config: don't enable grub_withseabios -* 19d2cda optimize grub modules: pre-load ones that will likely be used -* d7e5a08 build/boot/roms: fix wrong variable name -* 81330c6 coreboot/*: set grub_scan_disk to ahci on most boards -* 99f58d8 apple/macbook21: set grub_scan_disk to ahci -* 17830a4 build/boot/roms: substitute grub_scan_disk according to board.cfg -* f222519 grub.cfg: skip ata/ahci according to grub_scan_disk -* defe338 grub.cfg: clean up messages, be less verbose -* 1fa0e53 grub.cfg: add isolinux menuentry for ata* (replace broken cd/dvd menuentry) -* e33645a grub.cfg: delete option to boot from CD/DVD -* b370cd1 grub.cfg: clean up comments -* 81f3755 grub.cfg: don't use */? wildcards. they slow down the boot -* 6a315b6 grub.cfg: optimize search_isolinux -* ccc7aed remove entry in .gitignore from the last commit -* f84d09b Fix grub's slow boot -* 6ffbcee rename README to README.md -* 47155b3 lenovo/x230: re-add support from coreboot -* 82f381b do full coreboot checkout. enable microcode updates. don't delete blobs -* 6afa56e rename project back to osboot and delete grub background -* 8614ee7 assimilate lbmk c3a66c32750fa4a9a90ddb6383b09fdfb6ff77f5 -``` - Known issues ------------ From 514bda8049526b2074ab72083359411aefda5a27 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 9 Jun 2025 20:30:06 +0100 Subject: [PATCH 397/399] remove orwellian language there is no such thing as community Signed-off-by: Leah Rowe --- site/docs/maintain/testing.md | 2 +- site/git.de.md.description | 2 +- site/git.md.description | 2 +- site/git.uk.md.description | 2 +- site/index.md | 4 ++-- site/news/10.md | 4 ++-- site/news/freedom.md | 4 ++-- site/news/policy.de.md | 4 ++-- site/news/policy.md | 4 ++-- site/news/policy.uk.md | 4 ++-- site/news/usa-libre.md | 13 ------------- 11 files changed, 16 insertions(+), 29 deletions(-) diff --git a/site/docs/maintain/testing.md b/site/docs/maintain/testing.md index 3264170..81980e1 100644 --- a/site/docs/maintain/testing.md +++ b/site/docs/maintain/testing.md @@ -12,7 +12,7 @@ Libreboot strives to make Coreboot accessible for as many users as possible. To accomplish this goal, we must add as many boards as possible. As the total number of supported boards increases it becomes more and more difficult for our main contributors to test every single release for every single supported board. -We therefore need the help of the community in testing releases before they are +We therefore need the help of users in testing releases before they are distributed to users. You do *not* need to be a developer in order to be a board maintainer. diff --git a/site/git.de.md.description b/site/git.de.md.description index f68f31e..ac07f2d 100644 --- a/site/git.de.md.description +++ b/site/git.de.md.description @@ -1 +1 @@ -Send patches to the Libreboot project via Git. Libreboot is a community-led free/opensource BIOS/UEFI boot firmware project, with payloads like GNU GRUB. +Send patches to the Libreboot project via Git. Libreboot is a free/opensource BIOS/UEFI boot firmware project, with payloads like GNU GRUB. diff --git a/site/git.md.description b/site/git.md.description index f68f31e..ac07f2d 100644 --- a/site/git.md.description +++ b/site/git.md.description @@ -1 +1 @@ -Send patches to the Libreboot project via Git. Libreboot is a community-led free/opensource BIOS/UEFI boot firmware project, with payloads like GNU GRUB. +Send patches to the Libreboot project via Git. Libreboot is a free/opensource BIOS/UEFI boot firmware project, with payloads like GNU GRUB. diff --git a/site/git.uk.md.description b/site/git.uk.md.description index f68f31e..ac07f2d 100644 --- a/site/git.uk.md.description +++ b/site/git.uk.md.description @@ -1 +1 @@ -Send patches to the Libreboot project via Git. Libreboot is a community-led free/opensource BIOS/UEFI boot firmware project, with payloads like GNU GRUB. +Send patches to the Libreboot project via Git. Libreboot is a free/opensource BIOS/UEFI boot firmware project, with payloads like GNU GRUB. diff --git a/site/index.md b/site/index.md index 55736ea..1e27659 100644 --- a/site/index.md +++ b/site/index.md @@ -10,7 +10,7 @@ firmware based on coreboot, replacing proprietary BIOS/UEFI firmware on [specific Intel/AMD x86 and ARM based motherboards](docs/install/#which-systems-are-supported-by-libreboot), including laptop and desktop computers. It initialises the hardware (e.g. memory controller, CPU, peripherals) and starts a bootloader for your operating -system. [Linux](docs/linux/) and [BSD](docs/bsd/) are well-supported. Help is +system (OS). [Linux](docs/linux/) and [BSD](docs/bsd/) are well-supported. Help is available via [\#libreboot](https://web.libera.chat/#libreboot) on [Libera](https://libera.chat/) IRC. @@ -98,7 +98,7 @@ Proprietary firmware often [contains](faq.html#intel) [backdoors](faq.html#amd), and can be buggy. The Libreboot project was founded in December 2013, with the express purpose of making coreboot firmware accessible for non-technical users. -Libreboot is a community-oriented project, with a focus on helping users escape +Libreboot is a *free software* project, with a focus on helping users escape proprietary boot firmware; we ourselves want to live in a world where all software is [free](https://writefreesoftware.org/), and so, Libreboot is an effort to help get closer to that world. Unlike the big vendors, we don't try to stifle diff --git a/site/news/10.md b/site/news/10.md index 82914f8..3d704da 100644 --- a/site/news/10.md +++ b/site/news/10.md @@ -274,7 +274,7 @@ does not provide. Especially for more modern systems, there are *many* moving parts that the user otherwise has to deal with, whereas Libreboot automates all of it. Such automation *did not exist* anywhere, prior to Libreboot. The only noteworthy exception would have been the Chromebook products, where Google -did(does) provide updates, but without so much community focus as Libreboot and +did(does) provide updates, but without so much great focus as Libreboot and without quite the same user-accessible build system automation; their infrastructure is designed so that vendors can sell more Chromebooks. @@ -1161,7 +1161,7 @@ and opened up a lot more machines for me. But to do that, I had to abandon Libreboot policy. Hence, osboot was born. Libreboot policy was a liability to the free software movement, because it limited the amount of free software that people could easily use. Remember, nothing else as easy to use as Libreboot -existed, within the coreboot community. I saw that many people have machines +existed, among coreboot-based projects. I saw that many people have machines which *can* have most of the proprietary firmware replaced with free software, namely coreboot, but Libreboot set very arbitrary limits on what boards I could add. These restrictions *became* a liability to the project. diff --git a/site/news/freedom.md b/site/news/freedom.md index 8894876..8b1a549 100644 --- a/site/news/freedom.md +++ b/site/news/freedom.md @@ -14,8 +14,8 @@ Now, *ideology* is all well and good, but it must be translated into something concrete that exists in the real world. You can't get there with thought! Today, I published a follow-up article that defines how the policy -is *implemented* in practise. There has been some confusion among some members -of the community, about what the policy means in practise. +is *implemented* in practise. There has been some confusion among some fans of +the Libreboot project, about what the policy means in practise. Refer here to the new article, thus: diff --git a/site/news/policy.de.md b/site/news/policy.de.md index da0acd8..8fb3b0f 100644 --- a/site/news/policy.de.md +++ b/site/news/policy.de.md @@ -308,7 +308,7 @@ that stores it, and it makes research/development more expensive; having an easy software update mechanism allows bugs to be fixed more quickly, during development and post-release, thus reducing costs. This saves the industry *billions*, and it is actually of benefit to the free software -community, because it makes reverse engineering easier, and it makes +movement, because it makes reverse engineering easier, and it makes actually updating the firmware easier, so more proprietary software can actually be *replaced with free software*. If some standard interface exists, for the firmware, then that makes reverse engineering easier *across many @@ -404,7 +404,7 @@ accept blobs, and *not* talk about them. In Libreboot, it's the exact opposite: we make sure you know about them, and tell you that they are bad, and we say that they should be fully replaced. -Unlike some in the community, we even advocate for free software in cases +Unlike certain types of people, we even advocate for free software in cases where the software can't actually be replaced. For example: the RP2040 Boot ROM is free software, with public source code: diff --git a/site/news/policy.md b/site/news/policy.md index 45d6aca..d268b76 100644 --- a/site/news/policy.md +++ b/site/news/policy.md @@ -370,7 +370,7 @@ that stores it, and it makes research/development more expensive; having an easy software update mechanism allows bugs to be fixed more quickly, during development and post-release, thus reducing costs. This saves the industry *billions*, and it is actually of benefit to the free software -community, because it makes reverse engineering easier, and it makes +movement, because it makes reverse engineering easier, and it makes actually updating the firmware easier, so more proprietary software can actually be *replaced with free software*. If some standard interface exists, for the firmware, then that makes reverse engineering easier *across many @@ -466,7 +466,7 @@ accept blobs, and *not* talk about them. In Libreboot, it's the exact opposite: we make sure you know about them, and tell you that they are bad, and we say that they should be fully replaced. -Unlike some in the community, we even advocate for free software in cases +Unlike certain types of people, we even advocate for free software in cases where the software can't actually be replaced. For example: the RP2040 Boot ROM is free software, with public source code: diff --git a/site/news/policy.uk.md b/site/news/policy.uk.md index 1ce0d15..7e1d7a4 100644 --- a/site/news/policy.uk.md +++ b/site/news/policy.uk.md @@ -299,7 +299,7 @@ that stores it, and it makes research/development more expensive; having an easy software update mechanism allows bugs to be fixed more quickly, during development and post-release, thus reducing costs. This saves the industry *billions*, and it is actually of benefit to the free software -community, because it makes reverse engineering easier, and it makes +movement, because it makes reverse engineering easier, and it makes actually updating the firmware easier, so more proprietary software can actually be *replaced with free software*. If some standard interface exists, for the firmware, then that makes reverse engineering easier *across many @@ -395,7 +395,7 @@ accept blobs, and *not* talk about them. In Libreboot, it's the exact opposite: we make sure you know about them, and tell you that they are bad, and we say that they should be fully replaced. -Unlike some in the community, we even advocate for free software in cases +Unlike certain types of people, we even advocate for free software in cases where the software can't actually be replaced. For example: the RP2040 Boot ROM is free software, with public source code: diff --git a/site/news/usa-libre.md b/site/news/usa-libre.md index 3473036..0f9bc9e 100644 --- a/site/news/usa-libre.md +++ b/site/news/usa-libre.md @@ -247,16 +247,3 @@ Defend freedom! Don't listen to any of the arguments against it by proprietary software companies; they don't care about you, and instead only care about profit. They fundamentally do not want you to have any sort of freedom over your own computer, and they actively pursue tactics (such as DRM) to thwart you. - -Microsoft and Apple are not your friends. There is no such thing as the -Windows community. When you use proprietary systems, you are isolated from -everyone around you, and so are they. *You* are the product, for the proprietary -software to exploit at the behest of their developers who only care -about *money*. - -However, there *is* such a thing as the Libre Software community. It is a -vibrant community, consisting of millions of people collectively all over the -world, and they are all free to work with each other infinitely. It gave us -most of the technology that we take for granted today, including *the modern -internet, where ISPs run libre software almost exclusively!* - From 2fc8efd375aef58d6c5d6b8e4ffe87b3bd2ff3d4 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Mon, 30 Jun 2025 13:49:26 +0100 Subject: [PATCH 398/399] Libreboot 25.06 release announcement Signed-off-by: Leah Rowe --- site/download.md | 8 +- site/download.tr.md | 8 +- site/download.uk.md | 15 +- site/index.de.md | 6 +- site/index.fr.md | 4 +- site/index.it.md | 4 +- site/index.md | 6 +- site/index.ru.md | 2 +- site/index.tr.md | 5 +- site/index.uk.md | 4 +- site/index.zh-cn.md | 2 +- site/news/MANIFEST | 1 + site/news/libreboot2506.md | 884 +++++++++++++++++++++++++ site/news/libreboot2506.md.description | 1 + 14 files changed, 917 insertions(+), 33 deletions(-) create mode 100644 site/news/libreboot2506.md create mode 100644 site/news/libreboot2506.md.description diff --git a/site/download.md b/site/download.md index 635b527..d9f18b6 100644 --- a/site/download.md +++ b/site/download.md @@ -33,7 +33,7 @@ there, before flashing. For posterity, GPG signing key --------------- -**The latest release is Libreboot 25.04, under the `testing` directory.** +**The latest release is Libreboot 25.06, under the `stable` directory.** ### NEW KEY @@ -85,7 +85,7 @@ there is a Git repository that you can download from. Go here: HTTPS mirrors {#https} ------------- -**The latest release is Libreboot 25.04, under the `testing` directory.** +**The latest release is Libreboot 25.06, under the `stable` directory.** These mirrors are recommended, since they use TLS (https://) encryption. @@ -176,7 +176,7 @@ crontab. This page tells you how to use crontab: HTTP mirrors {#http} ------------ -**The latest release is Libreboot 25.04, under the `testing` directory.** +**The latest release is Libreboot 25.06, under the `stable` directory.** WARNING: these mirrors are non-HTTPS which means that they are unencrypted. Your traffic could be subject to interference by @@ -190,7 +190,7 @@ if using HTTPS. FTP mirrors {#ftp} ----------- -**The latest release is Libreboot 25.04, under the `testing` directory.** +**The latest release is Libreboot 25.06, under the `stable` directory.** WARNING: FTP is also unencrypted, like HTTP. The same risks are present. diff --git a/site/download.tr.md b/site/download.tr.md index 3cad1dc..3d0c926 100644 --- a/site/download.tr.md +++ b/site/download.tr.md @@ -24,7 +24,7 @@ takip edin. Hatırlatma olarak, [işte bağlantı tekrar burada](docs/install/iv GPG İmza Anahtarı ---------------- -**En son sürüm, `testing` dizini altındaki Libreboot 25.04'dır.** +**En son sürüm, `stable` dizini altındaki Libreboot 25.06'dır.** ### YENİ ANAHTAR @@ -69,7 +69,7 @@ Ancak, Libreboot'un en güncel sürümü için indirebileceğiniz bir Git deposu HTTPS Yansıları {#https} -------------- -**En son sürüm, `testing` dizini altındaki Libreboot 25.04'dır.** +**En son sürüm, `stable` dizini altındaki Libreboot 25.06'dır.** Bu yansılar TLS (https://) şifrelemesi kullandığı için önerilir. @@ -146,7 +146,7 @@ Rsync yansınızı düzenli olarak güncel tutmak istiyorsanız, bir crontab'a e HTTP Yansıları {#http} ------------- -**En son sürüm, `testing` dizini altındaki Libreboot 25.04'dır.** +**En son sürüm, `stable` dizini altındaki Libreboot 25.06'dır.** UYARI: bu yansılar HTTPS olmadığı için şifrelenmemiştir. Trafiğiniz kötü niyetli kişiler tarafından müdahaleye uğrayabilir. Doğru anahtara sahip olduğunuzu @@ -159,7 +159,7 @@ HTTPS kullansanız bile bunu yapmalısınız. FTP Yansıları {#ftp} ------------ -**En son sürüm, `testing` dizini altındaki Libreboot 25.04'dır.** +**En son sürüm, `stable` dizini altındaki Libreboot 25.06'dır.** UYARI: FTP de HTTP gibi şifrelenmemiştir. Aynı riskler mevcuttur. diff --git a/site/download.uk.md b/site/download.uk.md index 9352e4f..fda54af 100644 --- a/site/download.uk.md +++ b/site/download.uk.md @@ -33,7 +33,7 @@ there, before flashing. For posterity, Код підпису GPG --------------- -**Останнім випуском є Libreboot 25.04, в директорії `testing`.** +**Останнім випуском є Libreboot 25.06, в директорії `stable`.** ### НОВИЙ КЛЮЧ @@ -51,10 +51,9 @@ will expire on 26 December 2028. Повний відбиток ключа: `98CC DDF8 E560 47F4 75C0 44BD D0C6 2464 FA8B 4856` -This key is for Libreboot releases *after* the 20160907 release, and up -to the Libreboot 25.04 release. This key *expired* during December 2023, -so you should use the *newer* key (see above) for the releases after -Libreboot 20240126. +This key is for Libreboot releases *after* the 20160907 release. +This key *expired* during December 2023, so you should use the *newer* +key (see above) for the releases after Libreboot 20240126. Завантажте ключ тут: [lbkey.asc](lbkeyold.asc) @@ -85,7 +84,7 @@ Libreboot 20240126. Дзеркала HTTPS {#https} ------------- -**Останнім випуском є Libreboot 25.04, в директорії `testing`.** +**Останнім випуском є Libreboot 25.06, в директорії `stable`.** Дані дзеркала є рекомендованими, оскільки використовують TLS (https://) шифрування. @@ -176,7 +175,7 @@ crontab. Ця сторінка розповідає вам, як викорис Дзеркала HTTP {#http} ------------ -**Останнім випуском є Libreboot 25.04, під директорією `testing`.** +**Останнім випуском є Libreboot 25.06, під директорією `stable`.** УВАГА: ці дзеркала є не-HTTPS, що означає, що вони незашифровані. Ваш трафік може бути об'єктом втручання @@ -190,7 +189,7 @@ crontab. Ця сторінка розповідає вам, як викорис Дзеркала FTP {#ftp} ----------- -**Останнім випуском є Libreboot 25.04, під директорією `testing`.** +**Останнім випуском є Libreboot 25.06, під директорією `stable`.** УВАГА: FTP є також незашифрованим, подібно HTTP. Ті ж самі ризики присутні. diff --git a/site/index.de.md b/site/index.de.md index 7f960fc..3378e8a 100644 --- a/site/index.de.md +++ b/site/index.de.md @@ -27,9 +27,9 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. -**NEUESTE VERSION: Die neueste Version von Libreboot ist 25.04, veröffentlicht -am 30 April 2025. -Siehe auch: [Libreboot 25.04 release announcement](news/libreboot2504.md).** +**NEUESTE VERSION: Die neueste Version von Libreboot ist 25.06, veröffentlicht +am 30 June 2025. +Siehe auch: [Libreboot 25.06 release announcement](news/libreboot2506.md).** You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, as well as send your compatible hardware diff --git a/site/index.fr.md b/site/index.fr.md index 9d0f366..06d40ea 100644 --- a/site/index.fr.md +++ b/site/index.fr.md @@ -20,8 +20,8 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. -**NOUVELLE VERSION: La dernière version est [Libreboot 25.04](news/libreboot2504.md), sortie -le 30 April 2025.** +**NOUVELLE VERSION: La dernière version est [Libreboot 25.06](news/libreboot2506.md), sortie +le 30 June 2025.** Vous pouvez également acheter du matériel avec [Libreboot pré-installé](https://minifree.org/) via l'entreprise Minifree Ltd, ou envoyer votre propre ordinateur [pour y installer Libreboot](https://minifree.org/product/installation-service/). diff --git a/site/index.it.md b/site/index.it.md index 867dac0..8354bf6 100644 --- a/site/index.it.md +++ b/site/index.it.md @@ -26,8 +26,8 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. -**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 25.04, rilasciato il 30 April 2025. -Vedi: [Libreboot 25.04 annuncio di rilascio](news/libreboot2504.md).** +**ULTIMO RILASCIO: L'ultimo rilascio e' Libreboot 25.06, rilasciato il 30 June 2025. +Vedi: [Libreboot 25.06 annuncio di rilascio](news/libreboot2506.md).** You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, as well as send your compatible hardware diff --git a/site/index.md b/site/index.md index 1e27659..a8b2d39 100644 --- a/site/index.md +++ b/site/index.md @@ -25,9 +25,9 @@ on some boards. The x86, x86\_64 and arm64 U-Boot payloads provide a lightweight UEFI boot implementation. Libreboot's [design](docs/maintain/) incorporates all of these payloads in a single image, and you choose one at boot time. -**NEW RELEASE: The latest release is Libreboot 25.04, released on -30 April 2025. -See: [Libreboot 25.04 release announcement](news/libreboot2504.md).** +**NEW RELEASE: The latest release is Libreboot 25.06, released on +30 June 2025. +See: [Libreboot 25.06 release announcement](news/libreboot2506.md).** You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, as well as send your compatible hardware diff --git a/site/index.ru.md b/site/index.ru.md index 1b44277..c8b4c22 100644 --- a/site/index.ru.md +++ b/site/index.ru.md @@ -19,7 +19,7 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. -**НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 25.04, опубликован 30 April 2025 года. Смотрите: [Libreboot 25.04 release announcment](news/libreboot2504.md).** +**НОВЫЙ РЕЛИЗ: Последний релиз Libreboot - 25.06, опубликован 30 June 2025 года. Смотрите: [Libreboot 25.06 release announcment](news/libreboot2506.md).** Вы также можете купить [Libreboot предустановленным](https://minifree.org) от Minifree Ltd, а также присылать нам свои совместимые устройства для [установки Libreboot](https://minifree.org/product/installation-service/). Основатель и ведущий разработчик Libreboot, Лия Роу, также владеет и управляет Minifree; продажи обеспечивают финансирование для Libreboot. diff --git a/site/index.tr.md b/site/index.tr.md index 97f232a..301f4f9 100644 --- a/site/index.tr.md +++ b/site/index.tr.md @@ -9,9 +9,8 @@ x-toc-enable: true Libreboot, x86/x86_64 Intel/AMD anakartlarda GNU önyükleyici "[GRUB](docs/linux/)" ve SeaBIOS yüklerini, ARM64(Aarch64) anakartlarda ise *coreboot için* [U-Boot UEFI yükünü](docs/uboot/) sağlar. Bazı kartlarda [x86/x86_64 U-Boot UEFI yükü](docs/uboot/uboot-x86.md) de mevcuttur. x86, x86_64 ve arm64 U-Boot yükleri hafif bir UEFI önyükleme uygulaması sağlar. Libreboot'un [tasarımı](docs/maintain/) tüm bu yükleri tek bir imajda birleştirir ve önyükleme sırasında birini seçersiniz. -**YENİ SÜRÜM: En son sürüm 4 April 2025'te yayınlanan Libreboot 25.04'dır. -Bakınız: [Libreboot 25.04 sürüm duyurusu](news/libreboot2504.md) - en -yeni revizyon sürümü olan Libreboot 25.04 revizyon 10, 18 Şubat 2025 tarihlidir.** +**YENİ SÜRÜM: En son sürüm 30 June 2025'te yayınlanan Libreboot 25.06'dır. +Bakınız: [Libreboot 25.06 sürüm duyurusu](news/libreboot2506.md) Ayrıca Minifree Ltd'den seçili donanımlarda [Libreboot önyüklenmiş cihazlar satın alabilir](https://minifree.org/) veya uyumlu donanımınızı [Libreboot önyükleme hizmeti](https://minifree.org/product/installation-service/) için gönderebilirsiniz. Libreboot'un kurucusu ve baş geliştiricisi Leah Rowe aynı zamanda Minifree'yi de işletmektedir; satışlar Libreboot için finansman sağlamaktadır. diff --git a/site/index.uk.md b/site/index.uk.md index c4a95d5..ac2d055 100644 --- a/site/index.uk.md +++ b/site/index.uk.md @@ -27,8 +27,8 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. -**НОВИЙ ВИПУСК: Останній випуск Libreboot 25.04, випущено 30 April 2024. -Дивіться: [Оголошення про випуск Libreboot 25.04](news/libreboot2504.md).** +**НОВИЙ ВИПУСК: Останній випуск Libreboot 25.06, випущено 30 June 2024. +Дивіться: [Оголошення про випуск Libreboot 25.06](news/libreboot2506.md).** You can also [buy Libreboot preinstalled](https://minifree.org/) from Minifree Ltd, on select hardware, as well as send your compatible hardware diff --git a/site/index.zh-cn.md b/site/index.zh-cn.md index 90af7dc..706f3d3 100644 --- a/site/index.zh-cn.md +++ b/site/index.zh-cn.md @@ -19,7 +19,7 @@ depends on your preferences. Libreboot's design incorporates all of these boot methods in a single image, so you can choose which one you use at boot time, and more payloads (e.g. Linux kexec payload) are planned for future releases. -**新版发布: 最新版本 Libreboot 25.04 已在 2025 年 04 月 30 日发布。详见: [Libreboot 25.04 发布公告](news/libreboot2504.md).** +**新版发布: 最新版本 Libreboot 25.06 已在 2025 年 06 月 30 日发布。详见: [Libreboot 25.06 发布公告](news/libreboot2506.md).** 你也可以从 Minifree Ltd [购买特定硬件的 Libreboot 电脑](https://minifree.org/), 或者将兼容硬件寄来预装 Libreboot。 diff --git a/site/news/MANIFEST b/site/news/MANIFEST index 5e0baff..441e34e 100644 --- a/site/news/MANIFEST +++ b/site/news/MANIFEST @@ -1,3 +1,4 @@ +libreboot2506.md revisions.md libreboot2504.md libreboot20241206rev11.md diff --git a/site/news/libreboot2506.md b/site/news/libreboot2506.md new file mode 100644 index 0000000..8347be8 --- /dev/null +++ b/site/news/libreboot2506.md @@ -0,0 +1,884 @@ +% Libreboot 25.06 "Luminous Lemon" released! +% Leah Rowe +% 30 June 2025 + +A corresponding [Canoeboot 25.06](https://canoeboot.org/news/canoeboot2506.html) +release is also available. + +Today's Libreboot 25.06 revision is a *stable release*, whereas the previous +stable release was Libreboot 20241206; the previous *testing* release was +Libreboot 25.04, and this releases fixes a few bugs. The codename for this release +is *Luminous Lemon*. + + + +This release was built on the latest Debian 12.10 Bookworm release, as of +this day. It was also build-tested successfully on the latest Arch Linux updates +as of 26 June 2025. + +**[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR +YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions +there, before flashing. For posterity, +[here is the link again](../docs/install/ivy_has_common.md).** + +New schedule and version numbers +------------------------------- + +This change in version release scheme was previously reported in the news +post announcing Libreboot's new [formal release schedule](schedule.md). As per +that article, the next stable release will be Libreboot 25.06, in June 2025. + +Regarding the changelog +-------------------- + +The Libreboot 25.04 releases were essentially RCs (release candidates) of +the Libreboot 25.06 release, given the [revised release schedule](revisions.md). + +The focus since Libreboot 25.04 has been on fixing bugs, while making as few +breaking changes as possible, ideally none; this also means that fewer boards +were added, and fewer features were added. This is because major works are +done right up until RCs, about two months before official release, and then +bugs are fixed between then and the release; this changelog reflects that. + +The [original schedule](schedule.md) created *four* annual releases: YY.04, YY.06, +YY.10 and YY.12. 04 and 10 being testing releases, leading up to 06 and 12. These +numbers refer to the month of the year, and YY represents the year. + +The revised schedule changed this to *two* releases, with RCs that get deleted +after the stable release comes out; 25.04 shall be retained on rsync, but it +is retroactively (and informally) referred to as "Libreboot 25.06 RC0". This +explanation has been provided, for context. + +Open source BIOS/UEFI firmware +---------------------------- + + + +Libreboot is a free/open source BIOS/UEFI replacement on x86 and ARM, providing +boot firmware that initialises the hardware in your computer, to then load an +operating system (e.g. Linux/BSD). It is specifically +a *[coreboot distribution](../docs/maintain/)*, +in the same way that Debian is a Linux distribution. It provides an automated +build system to produce coreboot ROM images with a variety of payloads such as +GRUB or SeaBIOS, with regular well-tested releases to make coreboot as easy +to use as possible for non-technical users. From a project management perspective, +this works in *exactly* the same way as a Linux distro, providing a source-based +package manager (called lbmk) which patches sources and compiles coreboot images. +It makes use of [coreboot](https://www.coreboot.org/) for hardware initialisation, +and then a payload such as [SeaBIOS](https://www.seabios.org/SeaBIOS) +or GRUB to boot your operating +system; on ARM(chromebooks) and certain x86 mainboards, we provide *U-Boot* (as +a coreboot payload), which provides a lightweight UEFI implementation.. + +Summarised list of changes +------------------------- + +### Board support + +The following boards have been added since the Libreboot 20241206 release: + +* Dell Precision T1700 SFF and MT + +Board ports were low priority for this release; now it shall be the focus, +between June 2025 and October 2025, ready for the 25.12 release cycle leading +into December 2025. + +Dell Precision T1700 is essentially the OptiPlex 9020 but with a slightly +different, code-compatible PCH that also supports ECC memory features when an +Intel Xeon processor is installed. + +### Revision updates + +In descending order from latest changes to earliest changes: + +* GRUB: Update to revision 73d1c959e (14 March 2025) + +The GRUB update brings in several changes from upstream: + +``` +* 73d1c959e cryptocheck: Add --quiet option +* dbc0eb5bd disk/cryptodisk: Wipe the passphrase from memory +* 301b4ef25 disk/cryptodisk: Add the "erase secrets" function +* 23ec4535f docs: Document available crypto disks checks +* 10d778c4b commands/search: Add the diskfilter support +* 7a584fbde disk/diskfilter: Introduce the "cryptocheck" command +* ed691c0e0 commands/search: Introduce the --cryptodisk-only argument +* c448f511e kern/rescue_reader: Block the rescue mode until the CLI authentication +* 4abac0ad5 fs/xfs: Fix large extent counters incompat feature support +``` + +### Licensing + +* no changes (relative to Libreboot 25.04) + +### Security + +These can be considered bug fixes, but these are special fixes that are of +massive concern to users. + +* This GRUB change was merged, in the aforementioned revision + update: `dbc0eb5bd disk/cryptodisk: Wipe the passphrase from memory` - this + wipes the LUKS key from memory, after GRUB exits, where one was created + by GRUB while unlocking a given volume. + +### Feature changes + + + +In descending order from latest changes to earliest changes: + +* `init.sh`: looser `XBMK_THREADS` validation; correct it on child instances, + if it's not set, or set incorrectly. +* `get.sh`: use subshells on `try_` functions, wrapped in an error handler + so as to provide more verbose output under fault conditions. This makes it + easier to debug when a download fails. +* `git.sh`: Re-implement redundant git downloads, more reliably than before; all + repositories are now cached, reliably, including submodules, even when upstream + repo links differ wildly. This reduces the amount of internet bandwidth used, + when handling multiple builds. +* `release.sh`: build in tmp directory first, leaving old files behind under + fault conditions, for further analysis +* `inject.sh`: re-add mac address confirmation, for user-friendliness, when + running the inject commands. +* `init.sh`: Resolve `XBMK_CACHE` via readlink +* `init.sh`: Use `readlink` in `pybin()`, with realpath only as fallback. This + makes the function more redundant, working on more systems by default. +* `lib.sh`: support any command on `find_exec()` (later renamed); this is a + generic function, that implements a while loop for a given set of files, + based on the output a command that generates those paths. This is operated + on by a function, defined when calling find\_exec. This unifies all use of + while loops on lists of files and directories, throughout xbmk, rather + than re-implementing the for/while loops each time. +* `inject.sh`: simplify kconfig scanning by using the `fe_` with a new + function, `scankconfig()`. This new function checks *all* coreboot configs + for a given target, whereas the old behaviour only resulted in the *first* + config being checked. In practise, this causes no real behaviour changes. +* `rom.sh`: Print the rom image path being generated +* `lib.sh`: Add warning if x_ is called without args + +### Configuration changes + + + +In descending order from the latest changes to the earliest changes: + +* ifd/hp8300usdt: set the HAP bit by default; it was previously not set, but + the `me_cleaner` config was nonetheless used, and ME Soft Temporary Disable + was also used. As a result, this change is basically redundant, but otherwise + technically correct (more so than the previous behaviour). +* coreboot: Remove unused vboot tests (futility tests), to shrink the size of + release tarballs. +* coreboot/default: Remove unneeded FSP modules when downloading, because + only the Kabylake version is needed at this time. This is done, using + the `nuke()` function via `nuke.list` files. This shrinks the size of + release tarballs. +* `dependencies/debian`: add `libx86` +* HP 820 G2: Use fam15h cbfstool tree for refcode; this avoids the need to + clutter the source code with an entire additional coreboot tree, thus reducing + the size of releases. +* A GRUB configuration change was made, fixing auto-scanning of LVMs when + doing cryptomount. + +### Bug fixes + + + +Most of these are build system fixes, but for example there is also a fix +applied to the GRUB source code. + +The following bug fixes have been merged (in descending order from the latest +changes to the earliest changes): + +* `tree.sh`: add sha512 error for `check_project_hashes()`. Handle errors + in `sha512sum` and `awk`; also check that `project.hash` exists and error + out if it doesn't, when checking a given project hash. We know that the + project hash file should always exist, and always be read; technically, + find might not yield results, but then an empty file would be produced. + the empty file edge-case scenario would already have resulted in an error + exit inside `configure_project()`, so that's already covered. +* `tree.sh`: add error checking in `check_project_hashes()`, when reading + the `old_pkhash` variable; we need to error out where a read error occurs. + such an error is extremely unlikely, so this fix is largely theoretical and + preventative. +* `tree.sh`: more reliable clean in `run_make_command()`; don't do a no-op if + it fails, instead fall back to the `clean` method, and throw an error + if *that* fails. The no-op existed because not all projects have distclean, + but we always intend for them to be cleaned. This therefore prevents + further unhandled error conditions, in such edge cases. +* put coreboot utils in `elf/coreboot/TREE`, to prevent old binaries from + still being used when a code change is made. +* `release.sh`: use printf to create version files, instead of copying the + version files, because they don't exist in some cases, so this prevents + an error condition. +* `init.sh`: error out if .git/ is a symlink; this is a preventative bug fix, + to prevent future unknown bugs in such a scenario. +* `get.sh`: Properly error out if `tmpclone()` fails, where it previously + failed to throw an error under certain fault conditions. +* `tree.sh`: Don't auto-run make-oldconfig; it now must be applied permanently, + via e.g. `./mk -u` commands. Otherwise, undesirable changes can sometimes + be made during build time, especially on projects that don't use scons + quite as reliably, as in the U-Boot build system. +* `get.sh`: re-generate remotes every time, on cached Git repositories, so + that configuration changes in `config/git/` are automatically applied when + dealing with multiple versions of a given upstream project. +* `release.sh`: copy version files to `rsrc` (release source directory), + otherwise an `unknown` version number is erroneously created. This fixes + a regression caused by previous optimisation to `init.sh` +* xbmk: add fake config makefile args to `flashprog`, and `pcsx-redux`, to + prevent `./mk -u` (without additional arguments) from erroneously exiting + with error status. otherwise, an error can occur in such conditions if + a Makefile has not yet been created. +* `rom.sh`: skip running `copyps1bios()` on dry builds, otherwise + running `./mk -d` without argument will cause an error. +* `tree.sh`: Don't run make-clean on dry runs (`./mk -d`), to prevent error + conditions while building GRUB, if `./mk -d` is passed without additional + argument, since the latter requiires running autoconf to get a Makefile in + the GRUB build system. +* `get.sh`: add missing check in `fetch_project()`; we were checking the + main URL on a download, but not the backup URL. +* `get.sh`: stricter URL check in `xbmkget()`; throw an error if a URL is + empty, rather than skipping to the next. If a URL is set but fails, then + falling back to the next is OK (or throw an error if the backup is set, + and also failed). +* `get.sh`: Make `xbmkget` always throw an error upon exiting the loop check; + it was previously throwing an error if the for loop returned with zero status. + Depending on the sh implementation, or changes made in the future, this could + cause unpredictable buggy behaviour. Therefore, the error exit is much + stricter now, and less ambiguous, to prevent future bugs, because it is + imperative that execution must never continue under fault conditions. If a + file or repository is successfully handled, a return (zero) occurs, otherwise + the loop exits and a non-zero exit occurs. +* `tree.sh`: fix up `copy_elf()`, or specifically fix a bad `for` loop, + because shorthand conditionals are used and the way they were used can be + buggy on some sh implementations, so they are terminated more explicitly. +* xbmk: stricter handling of files on while loops, to prevent instances where + execution continues under fault conditions. This prevents other, less + predictable bugs in the future. +* `init.sh`: Hardcode `XBMK_CACHE` for integrity; this is a bug fix, because + there's too much that can be wrong with this being configurable, so now it + is hardcoded at runtime. It was never intended to be configurable anyway. +* `init.sh`: check/validate version/versiondate once read, in child instances + of xbmk, to further verify that they were previously set, and set correctly. + This is theoretically a preventative bug fix. +* `init.sh`: force an error condition if the xbmk version was not read. This + prevents further erroneous state within xbmk. +* `init.sh`: check the `lock` file BEFORE `git init`, to prevent erroneous + initialisation while another xbmk parent instance is running. +* `init.sh`: return from xbmk child instances in `set_env()` instead. This is + easier than the previous check, preventing the initialisation of a git repo + and/or recreation of xbmktmp and xbmklocal by erroneoues parent executions + of xbmk while another parent is running - the latter of which could have + caused a massively unpredictable build failure, so this is also a + preemptive bug fix, fixing and preventing all kinds of weird unknown bugs. +* `vendor.sh`: Remove `_dest` if it's bad; this complements a bug fix, in the + bug fix section above, that caches the extracted files and hashes them. On a + subsequent run where the given file is needed, it is *re-checked* if the + final file exists. This mitigates the possibility that corruption may have + occured, under unhandled fault conditions. Therefore, this is a preventative + bug fix. +* `release.sh`: don't move `src/docs/` to `docs/` inside release archives, + because otherwise `./mk -b` will fail, inside release archives. +* `vendor.sh`: Properly verify SHA512SUM on extraction. This is performed on + the actual extracted files, alongside the existing check on downloaded files. + This mitigates against future fault conditions in the extraction process, + thus fixing a major design flaw. *This change also caches those files, thus + speeding up extractions when they're done multiple times.* +* `get.sh` submodules: Don't delete files recursively. Use `rm -R` instead + of `rm -Rf`, on files. +* `git.sh`: Only create destination repo on success; don't leave a broken cache + laying around, which would otherwise break the build system under certain + conditions. +* `release.sh`: removed an unnecessary `src_dirname` variable +* `release.sh`: delete tmp/cache from release tarballs +* `inject.sh`: Remove confusing path on tar creation; that is, don't print said + path, because temporary paths are printed during this, when creating tarballs. + In this file, the correct path is printed at the end of the process, when + handling an images tarball. +* `tree.sh`: only create elfdir in `copy_elf()`, to prevent empty directories + being created where a project provides `build.list`, but where no actual + configs are being built on a given target name. +* `mrc.sh`: operate on refcode in tmp area first, to prevent bad files from + being saved to the final destination under fault conditions. This pertains + to the change made at build time that enables GbE devices from the refcode. +* `inject.sh`: use subshell to speed up `find_me()` (this is a bug fix, because + slowness is a bug) +* `mk`: add missing error handli for `mk -f` (when doing releases) +* `git.sh`: hard fail if git am fails (regression fix) +* `git.sh`: Hard fail if reset fails; allowing re-try when cloning fails, but + the reset-fail scenario didn't cause any exit at all. This is fixed now. +* `init.sh`: Only check `XBMK_CACHE` if it exists +* `grub.cfg`: fix trying to boot all logical volumes after unlocking an encrypted + volume; this makes booting LVMs more reliable, on encrypted boot setups. +* `init.sh`: also allow `XBMK_RELEASE=Y` or `=N`, not just `n` and `y`, + because some people use uppercase here. This is considered a bug fix, but + could just as easily have been in the features section. +* `init.sh`: check `XBMK_CACHE` is a directory instead of a file. +* `init.sh`: run `set_version` *before* `set_env`, to prevent a future situation + where the version is not set correctly. In general, the version should always + be set as early as poessible when running xbmk. +* `inject.sh`: clean up tmp me file before extract; this is a preventative fix, + to ensure that cross-flashing does not occur. +* `lib.sh`: re-add missing break in fe/fx\_, that caused improper exits (or non + exits) in some cases. +* `singletree/elfcheck`: use `fx_`, not `fe_`; this is a less strict test, to + prevent certain errors under specific edge-case conditions. +* `rom.sh`: Safer `cprom()`; don't insert special files like GRUB keymaps AFTER + copying the system ROM to the final destination; do it BEFORE, instead, to + ensure that bad images aren't left in place under fault conditions. +* `rom.sh`: specifically check keymaps in `cprom()`; it previously checked + whether a setup is *not* seauboot, which was valid, but future conditionals + would break this check. the code has been changed in advance, to prevent bugs + in a future revision of xbmk. +* `mk`: Fix bad error handling for `gnu_setver`; I accidentally mixed and/or in + a shorthand conditional statement, which leads to buggy behaviour in various + implementations of sh. +* GRUB: Mark E820 reserved on coreboot memory, to fix cbmem when running + with strict `/dev/mem` access; otherwise, restrictions on access to memory + below 1MB will cause an error when trying to access the cbmem console. +* `lib.sh`: set `-u -e` in `err()` in case they were set `+u +e` in other parts + of xbmk. +* `init.sh`: Silence the output of git config --global +* `init.sh`: Run git name/email check before init; otherwise, it returns if + init is already done, which could lead to an error later when building + coreboot. +* `lib.sh`: stricter `xbmk_err` check in `err()` +* `lib.sh`: simplify err-not-set handling +* `lib.sh` err: add missing redirect to stderr +* xbmk: MUCH safer `err` function; make it an actual function, instead of + a variable. Initially, this function was made to then check a variable, + that refers to a function, and a fallback was provided for non-zero exit + in case the pointed function didn't, but it was later made to be just a + simple function that exits with a message. Code equals bugs, so fewer lines + of code will yield fewer bugs. +* `lib.sh`: Make x_ err if first arg is empty; this is a preventative bug fix, + to make the build system still exit under such conditions, but it would + result in an empty error message. +* `lib.sh`: Make err_ always exit no matter what; this is a preventative bug + fix, just making the exit stricter in all cases. +* `mk`: re-make gnupath/ after handling crossgcc, rather than deleting files + within. This makes the creation of it more reliable. +* `mk`: re-make gnupath/ for each cross compiler, to ensure that no stagnant + build artifacts are re-used +* `inject.sh`: Stricter TBFW handling; don't copy it until it has been + properly padded to the correct size. +* `init.sh`: *Re-create* tmpdirs on parent instance, to ensure that they are + not cluttered with old files that might cause weird bugs in the future; this + is a preventative bug fix. +* `init.sh`: Always create xbmklocal, to prevent errors in the case when it + isn't created automatically in certain child instances, like when running + a *release* copy of the build system, during release builds. +* `lib.sh`: Fix bad touch command +* `inject.sh`: always re-build nvmutil, so that changes to it are automatically + re-applied when running the build system again. (and only build it once, + for a given instance of xbmk) +* `util/nvmutil`: use `x`, not `?`, for random characters, while still + supporting `?` for backwards compatibility. This is because ZSH errors out + when providing the old characters, in some setups. Use of `x` is more + reliable, across several implementations of sh, e.g. `xx:xx:xx:xx:xx:xx` + would be a full random MAC address. +* `lib.sh` find\_ex: explicitly create the tmp file, to prevent errors, which + were nonetheless unlikely to begin with. +* `init.sh`: Explicitly create the xbmktmp directory (make sure to do this + when creating this which is a temporary directory). +* `lib.sh`: add fe_ which is fx_ but err on find +* xbmk: unified execution on `find` commands. Handle it with a new special + function that is common across the build system. +* `mk`: Download vendorfiles before building release, to mitigate intermittent + internet connectivity during release builds, otherwise a release build could + fail. This way, all downloads are done simultaneously, since downloads are + the fastest part, even on a crap internet connection. +* Revert AHCI reset patch for SeaBIOS, which caused AHCI not to work in SeaBIOS + on the 25.04 release; the latter was also revised, to fix this. SeaBIOS has + since added a new release, which includes a fix that delays AHCI reset, to + mitigate in cases where the controller isn't ready sooner. However, this + release simply reverts the AHCI reset patch for now. The AHCI reset plus delay + will be present in Libreboot's next release, after 25.06. +* lenovo/t420: Add missing text-mode configuration + +### General code cleanup + + + +Another bug focus in this release was to clean up the logic of Libreboot's +build system, and fix several bugs, especially those relating to error handling. + +A lot of cleanup was done on the init functions used by the build system, to +initialise common variables, such as environmental variables, and temporary +files and/or directories; such logic was moved to a new script called `init.sh`. + +In descending order from the latest changes to the earliest changes: + +* `lib.sh`: simplify `setvars()` +* `lib.sh`: simplify `chkvars()` +* `mk`: simplify `main()` +* `get.sh`: simplify `fetch_project()` +* `get.sh`: simplify `try_copy()` +* `get.sh`: tidy up `bad_checksum()` +* `get.sh`: simplify `fetch_targets()` +* general cleanup in `get.sh` and `vendor.sh` +* xbmk: rename `xbmklocal`/`xbmktmp` variables (shorten them) +* `get.sh`: consolidate printf statements +* `get.sh`: remove redundant printf in `fetch_project()` +* `get.sh`: remove superfluous command in `try_git()` +* `vendor.sh`: simplify `fetch()` +* `rom.sh`: simplify `mkcoreboottar()` +* `rom.sh`: rename `mkvendorfiles()`, which actually handles general init + tasks, including the processing of vendor files where appropriate. +* `rom.sh`: simplify ccache handling for coreboot; make-oldconfig wasn't + needed at all, when cooking configs to enable ccache, so the *cook* function + became much smaller and was then merged with `mkvendorfiles()` +* `rom.sh`: simplify u-boot payload handling, by using a single variable name + that defines the type of U-Boot tree. This allows several other U-Boot-related + checks to be greatly simplified, as they were. +* `vendor.sh`: add a colon at the end of a `for` loop +* `get.sh`: make `xbmkget()` easier to understand, by not using shorthand + conditional statements in the for loop handling a repository or file + download. +* `init.sh`: merge `xbmk_lock()` with `xbmk_set_env()` +* `init.sh`: set pyver from `set_env()` instead of the main function. +* `init.sh`: merge `xbmk_mkdirs()` with `set_env()` +* `init.sh`: only update version files on parent, to speed up xbmk +* `init.sh`: simplify unknown version creation, where none was created and + no Git metadata exists. +* `init.sh`: only set xbmk version on parent instance; we only need to read + what was set, on child instances. In other words, apply the principle of + least privelege. +* `init.sh`: initialise variables AFTER path, to avoid unnecessary work inside + child instances of xbmk. +* `init.sh`: merge `create_pathdirs()` with `set_pyver()` +* `init.sh`: Set python version only on parent instances of xbmk, to speed + up operation of the xbmk build system. +* `init.sh`: `xbmk_create_tmpdir()` to `xbmk_mkdirs()` +* `init.sh`: move `gnupath` creation to `create_tmpdir()` +* `init.sh`: move PATH init to `set_env()` +* `inject.sh`: shorten the `nukemode` variable name +* `vendor.sh`: simplify `mksha512sum()` +* `get.sh`: simplify `bad_checksum()` +* `release.sh`: use `x_()` on find command for `nuke()`, so as to remove the + need for a more complicated while loop inside said function. +* `get.sh`: move `nuke()` to `release.sh` and only run it on releases; don't + do it on normal xbmk Git. It's only needed in the former context, because + that has to do with distribution by the project, and this makes + development easier. Therefore, files are only purged within the release + archives, but not during development. +* `release.sh`: simplify `prep_release_bin()` +* `mrc.sh`: merge `extract_mrc()` with `extract_shellball()` +* `get.sh`: simplify `tmpclone()` +* `get.sh`: simplify `nuke()` by using `fx_` for the file loop +* `get.sh`: simplify `try_copy()` +* `get.sh`: simplify `fetch_submodules()` config check +* `get.sh`: simplify `fetch_submodules()` by using `xbmkget()` for everything, + instead of implementing redundant logic in the build system. +* `git.sh`: rename to `get.sh` +* `rom.sh`: reduce indendation in `check_coreboot_utils`; simplify the for + loop by replacing it with a call to `fx_` instead. +* `release.sh`: simplify `release()` +* `release.sh`: clean up the `vdir` after release +* `release.sh`: removed an unnecessary `mkdir` command +* `release.sh`: split up `build_release()` into smaller functions +* `lib.sh`: remove `rmgit()` +* `lib.sh`: remove the unnecessary `mk()` function +* `lib.sh`: move `xbmkget()` to `git.sh` +* `lib.sh`: move `mksha512sum()` to `vendor.sh` +* `lib.sh`: split up `try_file()` into smaller functions +* `lib.sh`: move `_ua` to `try_file()` +* `mrc.sh`: minor cleanup +* `inject.sh`: remove the `hashfiles` variable +* `inject.sh`: define `xchanged` here instead +* `vendor.sh`: remove `check_vcfg()` +* `vendor.sh`: simplify `getvfile()` +* `vendor.sh`: simplify `setvfile()` +* `lib.sh`: use `fx_` in `rmgit()` +* `lib.sh`: split up `xbmkget()` into smaller functions +* `inject.sh`: only compile nvmutil if needed +* `inject.sh`: simplified serprog check +* `vendor.sh`: tidy up variables +* `vendor.sh`: split up `setvfile()` into smaller functions +* `inject.sh`: further cleanup for `vendor.sh`, such that all vendor-download + functions are only defined in `vendor.sh`; this means that the Canoeboot + version of the file can remain in much closer sync, with fewer differences. +* `tree.sh`: simplified srcdir check on make-clean +* `inject.sh`: split download functions to a new file, `vendor.sh` +* `inject.sh`: split up the inject functions into smaller functions for + each specific task. +* xbmk: use `x_` instead of `err`, where appropriate, because it handles + globbing perfectly these days, and `x_` is cleaner in most cases. +* `mrc.sh`: fix outdated info in a comment +* `inject.sh`: use direct comparison for metmp, to speed up checking so many + files. +* `mk`: remove unnecessary line break +* `mk`: re-split tree logic to new file, `include/tree.sh` +* `mk`: move release functions to `include/release.sh` +* `git.sh`: use `setvars()` for fail variables +* `init.sh`: remove useless export; variables that are y/n can just be reset + to `n` if not set to `y`, for simplicity. +* `init.sh`: export `LOCALVERSION` in `set_env` instead of `set_version`. +* `inject.sh`: simplify `extract_kbc1126ec()` +* `inject.sh`: simplified MAC address handling +* `inject.sh`: Simplify `patch_release_roms()` +* `lib.sh`: Remove useless command in `err()` +* `inject.sh`: rename `copytb` and `preprom` functions (make the names shorter). +* `lib.sh`: Simplified `fx_()` and removed `fe_()`; fe didn't prefix `x_` to + a given command, but fx did. Now, it is prefix manually, for greater control, + on commands that need stricter error handling, while it can be avoided on + commands where strict error handling is unfeasible. +* `mk`: Create serprog tarballs here instead; `rom.sh` was simplified to use + mkhelp when building actual images. +* build serprog images using `fx_` *defined inside mkhelper*, to tidy up xbmk +* `rom.sh`: build serprog images with `fx_`, rather than implementing a + specific for loop. +* `inject.sh`: insanely optimise the me bruteforce, by operating on files + recursively via the `fx_` function, instead of manually implementing a + recursive file search, when bruteforce-extracting `me.bin` images. +* `git.sh`: Simplify git am handling by using the new `fe_` or `fx_` function, + instead of making a specific while loop. +* `inject.sh`: remove an unused function +* `init.sh`: New function `dx_` to execute path files; this is used instead + of for loops all around xbmk, to simplify operations where the output of + a file search is used as argument to a function. +* `inject.sh`: Further simplified FSP extraction +* `lib.sh` `find_ex`: Write sort errors to `/dev/null` +* `lib.sh` `x_()`: Remove warning of empty args; it's really not required, + since it's obvious anyway in the resulting final error message. +* xbmk: Replace `err()` with much simpler implementation, for reliability + and bug prevention. +* `rom.sh`: simplify `mkseagrub()` +* `mk`: simplify `elfcheck()` +* `lib.sh`: simplify `singletree()` +* `git.sh`: move `singletree()` to `lib.sh` +* `inject.sh`: simplify `extract_intel_me_bruteforce()` +* `inject.sh`: Remove unnecessary check +* `inject.sh` `extract_intel_me()`: reduce indentation +* `inject.sh`: Move FSP extraction only to `extract_fsp`, since that's the + only place where it's needed. +* `inject.sh`: tidy up intel me handling +* `inject.sh`: tidy up the deguard command +* `lib.sh`: simplify `err()` +* `init.sh`: single-quote xbmklock in `xbmk_lock()` +* `init.sh`: define lock file in a variable instead; this makes it more + flexible, because the path can be checked and then re-used nicely. +* `init.sh`: tidy up `xbmk_child_exec()`; make the command style more consistent +* `lib.sh`: rename errx to xmsg +* `inject.sh`: tidy up TBFW handling +* `inject.sh`: remove useless comment block +* `init.sh`: tidy up the python version check +* `init.sh`: move non-init functions to `lib.sh` +* `init.sh`: simplify dependencies handling +* `rom.sh`: tidy up `copyps1bios()` +* `mk`: tidy up xgccargs handling +* `mk`: generally removed dead code +* `init.sh`: tidy up pathdir creation +* `mk`: tidy up `check_cross_compiler()` +* `mk`: reduce indentation in `check_cross_compiler()` +* `mk`: Allow use of x_ on prefix functions +* `mk`: tidy up `check_project_hashes()` sha512sum check +* `mk`: simplify `check_gnu_path()` +* `inject.sh`: general code cleanup +* `inject.sh`: simplify `extract_archive()` +* `inject.sh`: simplified fsp extraction +* `inject.sh`: Remove redundant code in copy_tbfw +* xbmk: Unified local ./tmp handling +* `lib.sh`: redirect find errors to `/dev/null` to prevent clutter on + the user's terminal +* `init.sh`: unified handling of ./tmp +* `mk`: include rom.sh directly +* `lib.sh`: Simplify rmgit() +* `lib.sh`: support multiple arguments in remkdir() +* `lib.sh`: simplify remkdir() +* xbmk: move x_() to `lib.sh` +* `init.sh`: move setvars/err_ to lib.sh + +Git log +------- + +This log is relative to Libreboot 25.04: + +``` +* b1ef562b767 tree.sh: add sha512 error for check_project_hashes +* 04bee3834d0 tree.sh: add error check in check_project_hashes() +* 677dfc4d103 tree.sh: more reliable clean in run_make_command +* 267d4c90341 inject.sh: add missing semicolons +* 974bdbb3815 vendor.sh: fix bad cbfstool path +* dc6996252a0 put coreboot utils in elf/coreboot/TREE +* b77154640de release.sh: use printf to create version files +* dee6997d0cc lib.sh: simplify setvars() +* 79ded40f3d0 lib.sh: simplify chkvars() +* 5036a0bc501 mk: simplify main() +* 41308ee9244 get.sh: simplify fetch_project() +* b5867be214d get.sh: simplify try_copy() +* 495098d6a71 get.sh: tidy up bad_checksum() +* 671e3aa27b4 get.sh: simplify fetch_targets() +* 09b6e91803d general cleanup in get.sh and vendor.sh +* 18dacd4c22b xbmk: rename xbmklocal/xbmktmp variables +* e981132c829 get.sh: consolidate printf statements +* afc36754b13 get.sh: remove redundant printf in fetch_project +* ffe387ac6b9 get.sh: remove superfluous command in try_git() +* ba7c49c090b vendor.sh: simplify fetch() +* 30bc3732c39 init.sh: error out if .git/ is a symlink +* 2493203ee53 get.sh: Properly error out if tmpclone fails +* ad333ae2481 tree.sh: Don't auto-run make-oldconfig +* 97ce531c341 rom.sh: simplify mkcoreboottar() +* a47e9811723 rom.sh: rename mkvendorfiles +* d2e148fdd9d rom.sh: simplify ccache handling for coreboot +* 8c3f10ba402 rom.sh: simplify u-boot payload handling +* 3e28873532b ifd/hp8300usdt: set the HAP bit by default +* 452aeb6001a coreboot: Remove unused vboot tests +* 64cc91bca33 coreboot/default: Remove unneeded FSP modules +* 0216a3104a5 get.sh: Always update git remotes +* 419733d3073 get.sh: re-generate remotes every time +* 231b320e63b release.sh: copy version files to rsrc +* fc0720184d9 xbmk: add fake config makefile args to flashprog +* f9266601b8c vendor.sh: add colon at the end of a for loop +* 8e0c6059d15 rom.sh: skip copyps1bios on dry builds +* a3250d14474 tree.sh: Don't run make-clean on dry runs +* 24b8e633e03 GRUB: Update to revision 73d1c959e (14 March 2025) +* f6b77822835 Revert "vendor.sh: optimise find_me()" +* fb7aaa78bb0 vendor.sh: optimise find_me() +* 903f78bf080 get.sh: add missing check in fetch_project() +* f15bb8153a3 get.sh: stricter URL check in xbmkget() +* cdc0fb49e1c get.sh: make xbmkget() easier to understand +* 620c1dd6fae get.sh: Make xbmkget err on exiting the loop check +* 900da04efa9 tree.sh: fix up copy_elf(), bad for loop +* 8aaf404ddea lib.sh: Use while, not for, to process arguments +* d9c64b26754 xbmk: stricter handling of files on while loops +* b25a4876434 init.sh: looser XBMK_THREADS validation +* 769a97aed5a init.sh: Hardcode XBMK_CACHE for integrity +* 265ec0b7673 dependencies/debian: add libx86 +* 2702a43a86d init.sh: merge xbmk_lock() with xbmk_set_env() +* fc4006ce877 init.sh: move xbmk_set_version +* 962902a1c4a init.sh: set pyver from set_env +* 158c56072c0 init.sh: merge xbmk_mkdirs with set_env +* 5f022acbf47 init.sh: check version/versiondate once read +* 485a60e2f6a init.sh: error if version not read +* 99f09f25ef3 init.sh: only update version files on parent +* 94437278dc7 init.sh: simplify unknown version creation +* 6b603b9fbf4 init.sh: only set xbmk version on parent instance +* ac36ea7f950 init.sh: initialise variables AFTER path +* 484afcb9196 init.sh: merge create_pathdirs with set_pyver +* d0bee6b4ebb init.sh: Set python version only on parent +* 4aa69a7d1f0 init.sh: remove useless command +* 36ffe6ef501 init.sh: remove useless comment +* 0343081d905 init.sh: xbmk_create_tmpdir to xbmk_mkdirs +* c75bc0449d0 init.sh: move gnupath creation to create_tmpdir +* 253aa81a3f9 init.sh: move PATH init to set_env +* e05a18d3513 init.sh: check the lock file BEFORE git init +* cde3b7051e4 init.sh: return from child in set_env instead +* 7ec9ee42283 inject.sh: shorten the nukemode variable name +* b48eb161e49 vendor.sh: simplify mksha512sum() +* ac609d5aae4 vendor.sh: Remove _dest if it's bad +* a3e1ed9823d release.sh: rename relsrc to rsrc +* 44df3b2bff8 release.sh: tidy up nuke() +* 3c58181f69e get.sh: remove useless message +* 01a0217c1e3 get.sh: simplify bad_checksum() +* 4ca57943d70 release.sh: simplify nuke() EVEN MORE, yet again +* 47a3982bbea release.sh: use x_ on find command for nuke() +* 6dc71cc0246 release.sh: simplify nuke() EVEN MORE +* 05c07f7401b get.sh: move nuke() to release.sh +* 587d245cafa release.sh: simplify prep_release_bin() +* 136bd66c280 mrc.sh: merge extract_mrc with extract_shellball +* dbe109d7b54 release.sh: don't move src/docs/ +* 840d6a1d277 get.sh: FURTHER simplify nuke() +* d2564fd9457 get.sh: simplify tmpclone() +* 6dea381614d get.sh: fix bad mkdir command +* 6a2ed9428b7 vendor.sh: Fix broken KBC1126 insertion +* 4313b474a59 vendor.sh: additional safety check +* d668f3a3529 vendor.sh: Properly verify SHA512SUM on extraction +* a191d22bd6d get.sh: add missing eval to dx_ in nuke() +* c8813c9a144 properly exit 1 when calling fx_ +* 208dfc89bd5 get.sh: simplify nuke() +* 46f42291d3c get.sh: fix broken printf statement +* f29aa9c8d59 get.sh: use subshells on try_ functions +* e62886dedae get.sh: simplify try_copy() +* d9ed03f9ea5 get.sh submodules: Don't delete files recursively +* 8d5475ed5b5 get.sh: simplify fetch_submodules() config check +* 21867b7d805 get.sh: simplify fetch_submodules() +* e9fe5a74a2e get.sh: fix caching of crossgcc tarballs +* 6089716f07c release.sh: Don't run prep_release with fx_ +* b04c86e5740 git.sh: rename to get.sh +* 3c23ff4fa18 git.sh: Only create destination repo on success +* ed8a33d6fb1 git.sh: cleanup +* 1ca26c5d238 git.sh: Re-implement redundant git downloads +* e38805a9448 rom.sh: reduce indendation in check_coreboot_utils +* 6bf24221e60 release.sh: simplify release() +* 66f7ecdb2d7 release.sh: clean up the vdir after release +* d4c0479093a release.sh: remove src_dirname variable +* 6d3a6347c3e release.sh: build in tmp directory first +* a0105e1ab44 release.sh: remove unnecessary mkdir command +* f4871da9bca release.sh: split up build_release() +* c85aff5c54e release.sh: delete tmp/cache from the tarball +* 92954eeb38f lib.sh: remove rmgit() +* 05b5914b354 lib.sh: remove mk() +* c9696e23338 lib.sh: move xbmkget() to git.sh +* 23913bb8d2a lib.sh: move mksha512sum() to vendor.sh +* 80f0562e8d1 lib.sh: split up try_file() +* 89cd828e87c lib.sh: move _ua to try_file() +* 308a9ab1e17 mrc.sh: minor cleanup +* 40163dcfa4e mrc.sh: update copyright year to include 2025 +* ef800b652c8 inject.sh: remove the hashfiles variable +* 311ae2f8df2 inject.sh: define xchanged here instead +* 76f81697e6e vendor.sh: remove check_vcfg() +* 97d4d020d97 vendor.sh: simplify getvfile() +* 57f896ac016 vendor.sh: simplify setvfile() +* 3879f6c4d8f lib.sh: use fx_ in rmgit() +* 0911a5a5aed lib.sh: split up xbmkget() +* a449afb287f inject.sh: only compile nvmutil if needed +* 2bbf2ae80b7 inject.sh: simplified serprog check +* 9c27b7437cf vendor.sh: tidy up variables +* 0cc816167bb vendor.sh: split up setvfile() +* 7d90d434252 remove another confusing message +* a0c436ad4ba inject.sh: Remove confusing path on tar creation +* dcfd3e632e2 inject.sh: re-add mac address confirmation +* e5af201060e inject.sh: further cleanup for vendor.sh +* 0aa99f4bf8b tree.sh: only create elfdir in copy_elf() +* a8e374020c0 tree.sh: simplified srcdir check on make-clean +* 0f931b508a8 inject.sh: split to vendor.sh the download parts +* 3554b5aad9c inject.sh: split up the inject functions +* 81dbde7e09f lbmk: use x_ instead of err, where appropriate +* 14d46abceda mrc.sh: operate on refcode in tmp area first +* 6e521c2e1ea mrc.sh: fix outdated info in the comment +* 23486abef3a inject.sh: use direct comparison for metmp +* 91220ce1833 inject.sh: use subshell to speed up find_me() +* ff33ec3352b mk: use zero exit instead, to run trees +* c2b627dc6d0 remove useless comment +* 066402b7e7a mk: remove unnecessary line break +* 7012c00ed11 mk: re-split tree logic to include/tree.sh +* 50ce1ac9b22 mk: move release functions to idnclude/release.sh +* 1ce3e7a3d39 mk: add missing error handli for mk -f +* 0d876622fcb git.sh: re-write tmpclone without caching +* 454f11bdd7b git.sh: use setvars for fail variables +* 6bdb15fd329 git.sh: hard fail if git am fails +* 93d4eca04ae git.sh: Hard fail if reset fails +* a3ba8acface init.sh: Only check XBMK_CACHE if it exists +* 021e7615c84 HP 820 G2: Use fam15h cbfstool tree for refcode +* fe926052441 also fix the other grub trees +* a8594762d27 Merge pull request 'fix trying to boot all logical volumes after unlocking an encrypted volume' (#330) from cqst/lbmk:master into master +|\ +| * e084b06dc76 fix trying to boot all logical volumes after unlocking an encrypted volume +|/ +* 2cea8517f3b init.sh: remove useless export +* 1b0afdcea22 init.sh: also allow XBMK_RELEASE=Y or N +* 570f1417a80 init.sh: Resolve XBMK_CACHE via readlink +* e1af1055ed1 init.sh: check XBMK_CACHE is a directory instead +* e1628ad8f3e init.sh: export LOCALVERSION in set_env +* 40a944118f2 init.sh: run set_version before set_env +* cba04aa74b8 init.sh: Use readlink in pybin() +* a94bd3c0939 inject.sh: simplify extract_kbc1126ec() +* e3098c61f43 inject.sh: simplified MAC address handling +* d530e68594d inject.sh: Simplify patch_release_roms() +* 7f71328f0e2 lib.sh: Remove useless command in err() +* 394b4ea7a59 inject.sh: rename copytb and preprom functions +* ec5c954337b lib.sh: Simplified fx_() and removed fe_() +* 1390f7f8007 mk: Create serprog tarballs here instead +* 0ef77e65832 build serprog using fe_ *defined inside mkhelper* +* d2e6f989d7e rom.sh: build serprog images with fe_ +* 0faef899469 lib.sh: support any command on find_exec() +* 2b7f6b7d7ce inject.sh: Simplify extract_intel_me_bruteforce() +* 485d785d331 inject.sh: clean up tmp me file before extract +* fac99aa2d44 lib.sh: re-add missing break in fe/fx_ +* 03300766d14 inject.sh: tidy up extract_intel_me_bruteforce +* 4781dbd2a05 inject.sh: fix oversight in me bruteforce +* cf78583a6d8 inject.sh: remove unnecessary check +* 5657cc1afb3 inject.sh: don't use subshell for me bruteforce +* 5686f35e0f1 inject.sh: insanely optimise the me bruteforce +* e8be3fd1d41 git.sh: Simplify git am handling +* 4c1de1ad126 inject.sh: remove unused function +* 282b939d9da init.sh: New function dx_ to execute path files +* 73074dedee3 inject.sh: Further simplified FSP extraction +* 7585336b914 inject.sh: simplify kconfig scanning +* ef38333f8b0 lib.sh find_ex: Write sort errors to /dev/null +* c275f35e7e2 lib.sh x_(): Remove warning of empty args +* 17d826d3a96 lbmk: Replace err with much simpler implementation +* f98e34a24dd singletree/elfcheck: use fx_, not fe_ +* 8ca06463ebc rom.sh: Print the rom image path being generated +* dc9fe517cb0 rom.sh: Safer cprom() +* 2be8d1c7982 rom.sh: specifically check keymaps in cprom() +* 89a8cd4936a rom.sh: simplify mkseagrub() +* c2182d82193 mk: simplify elfcheck() +* 437ac2454c1 lib.sh: simplify singletree() +* 62ec3dac075 git.sh: move singletree() to lib.sh +* 6b247c93e25 mk: Fix bad error handling for gnu_setver +* ee8bb28ba21 GRUB: Mark E820 reserved on coreboot memory +* 61ec396ef6d inject.sh: simplify extract_intel_me_bruteforce() +* e4edc2194d3 inject.sh: Remove unnecessary check +* f4057d7daab inject.sh extract_intel_me(): reduce indentation +* b7ca59debe6 inject.sh: Move FSP extraction only to extract_fsp +* eb882de94cb inject.sh: tidy up intel me handling +* 153dd76a82e inject.sh: tidy up the deguard command +* 428c46ca2b1 lib.sh: set -u -e in err() +* 20c87308587 lib.sh: Provide error message where none is given +* 35265731c5b init.sh: Silence the output of git config --global +* 5e3aaa1eb8b init.sh: Run git name/email check before init +* a3b5626f53d lib.sh: stricter xbmk_err check in err() +* 51b2a1159d0 lib.sh: simplify err-not-set handling +* 61e5fd1a0b2 lib.sh: Add warning if x_ is called without args +* 4020fb43280 lib.sh: simplify err() +* b51846da6de init.sh: single-quote xbmklock in xbmk_lock() +* 8b7bd992f66 init.sh: define lock file in a variable instead +* 9611c19e7ed init.sh: tidy up xbmk_child_exec() +* 37ca0c90e1c lib.sh err: add missing redirect to stderr +* 54291ebb720 lbmk: MUCH safer err function +* 3f7dc2a55f5 lib.sh: rename errx to xmsg +* 59c94664e3e lib.sh: Make x_ err if first arg is empty +* 91bb6cbede0 lib.sh: Make err_ always exit no matter what +* b19c4f8f674 inject.sh: tidy up TBFW handling +* 439020fbda5 inject.sh: remove useless comment block +* 6e447876cca init.sh: tidy up the python version check +* 7392f6fc8ec init.sh: move non-init functions to lib.sh +* 7acec7a3a1d init.sh: simplify dependencies handling +* 93ba36ae456 rom.sh: tidy up copyps1bios() +* fc71e52fdfc mk: tidy up xgccargs handling +* 184871bc17c mk: remove useless code +* b6a2dc4ea3c init.sh: tidy up pathdir creation +* f5b2bdb8868 mk: re-make gnupath/ after handling crossgcc +* 1b7a9fd637d mk: tidy up check_cross_compiler +* 488d52e784f mk: re-make gnupath/ for each cross compiler +* c33467df1e6 mk: reduce indentation in check_cross_compiler() +* aa4083443b1 mk: Allow use of x_ on prefix functions +* 8f828e6cd35 mk: tidy up check_project_hashes() sha512sum check +* 7a2f33264d7 mk: simplify check_gnu_path() +* 46b968a6e85 inject.sh: minor code cleanup +* 5499ae66bd8 inject.sh: simplify extract_archive() +* 72f4412a52d inject.sh: simplified fsp extraction +* bf569d2b4dc inject.sh: Remove redundant code in copy_tbfw +* 8de0ed811fb inject.sh: Stricter TBFW handling +* 530e4109a2b init.sh: *Re-create* tmpdirs on parent instance +* 498f5a26cc8 init.sh: Always create xbmklocal +* 00d22f20829 lbmk: Unified local ./tmp handling +* 0f7b3691aba lib.sh: redirect find errors to /dev/null +* 7fadb17fd9e lib.sh: Fix bad touch command +* 0b09d970732 inject.sh: Only build nvmutil once +* 308df9ca406 inject.sh: always re-build nvmutil +* 44a1cc9ef85 util/nvmutil: use x, not ?, for random characters +* a17875c3459 lib.sh find_ex: explicitly create the tmp file +* 0ffaf5c7331 init.sh: Explicitly create the xbmktmp directory +* fcc52b986e7 init.sh: unified handling of ./tmp +* 47762c84ad0 lib.sh: add fe_ which is fx_ but err on find +* d18d1c2cae2 lbmk: unified execution on find commands +* 773d2deaca0 NEW MAINBOARD: Dell Precision T1700 SFF and MT +* 9b11e93686c mk: include rom.sh directly +* 1f7e4b35cb2 mk: Download vendorfiles before building release +* acb0ea202f2 lib.sh: Simplify rmgit() +* 15b76bc202f lib.sh: support multiple arguments in remkdir() +* f3ae3dbbbe4 lib.sh: simplify remkdir() +* 6c4d88f2686 move x_() to lib.sh +* 2ae565ba93a init.sh: move setvars/err_ to lib.sh +* c073ee9d4fc Restore SeaBIOS 9029a010 update, but with AHCI fix +* 8245f0b3211 Revert "seabios: bump to rev 9029a010, 4 March 2025" +* 4c50157234d coreboot/t420_8mb: add missing txtmode config +``` + +Revision releases +----------------- + +When certain bugs are found, releases may be re-built and re-uploaded. When +this happens, the original release is replaced with a *revision release*. + +Revisions are numbered; for example, the first post-release revision +is *rev1*. + +### 25.06 (30 June 2025) + +No revisions, thus far. The original 25.06 release is the current revision, so +it could be considered *rev0* (revision zero). + + diff --git a/site/news/libreboot2506.md.description b/site/news/libreboot2506.md.description new file mode 100644 index 0000000..f8ae0af --- /dev/null +++ b/site/news/libreboot2506.md.description @@ -0,0 +1 @@ +Libreboot 25.06 release announcement. Libreboot is a free/opensource BIOS/UEFI firmware distribution with coreboot payloads such as GNU boot loader GRUB. From 8cfc7486bdce0d8a37437648a519dac095149ee6 Mon Sep 17 00:00:00 2001 From: Leah Rowe Date: Tue, 1 Jul 2025 00:24:18 +0100 Subject: [PATCH 399/399] made the announcement show changes since december 2024 not april 2025 Signed-off-by: Leah Rowe --- site/news/libreboot2506.md | 748 ++++++++++++++++++++++++++++++++++--- 1 file changed, 697 insertions(+), 51 deletions(-) diff --git a/site/news/libreboot2506.md b/site/news/libreboot2506.md index 8347be8..69a9edf 100644 --- a/site/news/libreboot2506.md +++ b/site/news/libreboot2506.md @@ -5,50 +5,25 @@ A corresponding [Canoeboot 25.06](https://canoeboot.org/news/canoeboot2506.html) release is also available. +There *was* a Libreboot 25.04 release in April 2025, but that is retroactively +regarded as an RC of 25.06. The original 25.06 release announcement showed +changes since 25.04, but the changelog is now relative to December 2024. +This reflects the [revised release schedule](revisions.md). It means that the +changelog is much bigger, and also includes the changes that went in +Libreboot 25.04. + Today's Libreboot 25.06 revision is a *stable release*, whereas the previous -stable release was Libreboot 20241206; the previous *testing* release was -Libreboot 25.04, and this releases fixes a few bugs. The codename for this release -is *Luminous Lemon*. +stable release was Libreboot 20241206. This revised release log lists all +changes as of today, 30 June 2025, since the Libreboot 20241206 release of +December 2024. -This release was built on the latest Debian 12.10 Bookworm release, as of -this day. It was also build-tested successfully on the latest Arch Linux updates -as of 26 June 2025. - **[PLEASE READ THESE INSTRUCTIONS BEFORE INSTALLING](../docs/install/ivy_has_common.md), OR YOU MAY BRICK YOUR MACHINE!! - Please click the link and follow the instructions there, before flashing. For posterity, [here is the link again](../docs/install/ivy_has_common.md).** -New schedule and version numbers -------------------------------- - -This change in version release scheme was previously reported in the news -post announcing Libreboot's new [formal release schedule](schedule.md). As per -that article, the next stable release will be Libreboot 25.06, in June 2025. - -Regarding the changelog --------------------- - -The Libreboot 25.04 releases were essentially RCs (release candidates) of -the Libreboot 25.06 release, given the [revised release schedule](revisions.md). - -The focus since Libreboot 25.04 has been on fixing bugs, while making as few -breaking changes as possible, ideally none; this also means that fewer boards -were added, and fewer features were added. This is because major works are -done right up until RCs, about two months before official release, and then -bugs are fixed between then and the release; this changelog reflects that. - -The [original schedule](schedule.md) created *four* annual releases: YY.04, YY.06, -YY.10 and YY.12. 04 and 10 being testing releases, leading up to 06 and 12. These -numbers refer to the month of the year, and YY represents the year. - -The revised schedule changed this to *two* releases, with RCs that get deleted -after the stable release comes out; 25.04 shall be retained on rsync, but it -is retroactively (and informally) referred to as "Libreboot 25.06 RC0". This -explanation has been provided, for context. - Open source BIOS/UEFI firmware ---------------------------- @@ -75,8 +50,13 @@ Summarised list of changes ### Board support +The priority for the first half of 2025 has been on further auditing the +Libreboot build system, so fewer board ports were added. More board ports +will be added instead in the December 2025 release (a lot more). + The following boards have been added since the Libreboot 20241206 release: +* Acer Q45T-AM support added (similar to G43T-AM3 mainboard) * Dell Precision T1700 SFF and MT Board ports were low priority for this release; now it shall be the focus, @@ -92,24 +72,44 @@ Intel Xeon processor is installed. In descending order from latest changes to earliest changes: * GRUB: Update to revision 73d1c959e (14 March 2025) +* Bump SeaBIOS to to rev 9029a010, 4 March 2025 +* Updated Untitled to newer LBSSG repository. +* Bump flashprog to rev e060018 (1 March 2025) +* Bump U-Boot on ARM64 boards to U-Boot v2025.04. Patching courtesy of + Alper Nebi Yasak. +* Bump uefitool to rev a072527, 26 Apr 2025 to fix CMake compatibility issue + since CMake 4 no longer supports version 3.5, whereas the old uefitool had + an earlier version as the minimum supported. This fixed a minor build error. +* Merged coreboot/next with coreboot/default +* Bump coreboot/next to rev c247f62749b as of 20 April 2025 +* Bump coreboot/default to rev c247f62749b as of 20 April 2025 +* Bump flashprog to revision eb2c041 (14 Nov 2024). -The GRUB update brings in several changes from upstream: +The GRUB revision includes a number of critical CVE fixes, and regression +fixes, that were also included in Libreboot 20241206 rev11. Some later fixes +are also present, such as wiping LUKS keys from memory after successfully +booting Linux (Linux handles LUKS itself, and starts the process again). -``` -* 73d1c959e cryptocheck: Add --quiet option -* dbc0eb5bd disk/cryptodisk: Wipe the passphrase from memory -* 301b4ef25 disk/cryptodisk: Add the "erase secrets" function -* 23ec4535f docs: Document available crypto disks checks -* 10d778c4b commands/search: Add the diskfilter support -* 7a584fbde disk/diskfilter: Introduce the "cryptocheck" command -* ed691c0e0 commands/search: Introduce the --cryptodisk-only argument -* c448f511e kern/rescue_reader: Block the rescue mode until the CLI authentication -* 4abac0ad5 fs/xfs: Fix large extent counters incompat feature support -``` +The NASM version was updated to version 2.16.03 on coreboot/fam15h, to prevent +build errors, instead of fixing the old NASM 2.14.02. Tested on Debian Sid +Experimental, with GCC15-based toolchain, and on Fedora 42. + +PICO support: Reverted to the old pico serprog/sdk repositories used +in Libreboot 20240612. This is temporary, because pico2 support is currently +broken, so this release only has pico1 support, when dealing with Rpi Pico +devices. Upstream pico-serprog works fine on pico2, so this will be fixed +in and re-updated again in a future revision release. The pico2 update images +were retroactively removed from the 20241206 release on rsync. + +A patch from upstream was backported to the old pico-sdk version, so that it +builds correctly on newer GCC15 (tested on Debian Sid with "Experimental" +packages enabled). ### Licensing -* no changes (relative to Libreboot 25.04) + + +* Added SPDX license headers to almost every configuration file in lbmk. ### Security @@ -120,6 +120,27 @@ massive concern to users. update: `dbc0eb5bd disk/cryptodisk: Wipe the passphrase from memory` - this wipes the LUKS key from memory, after GRUB exits, where one was created by GRUB while unlocking a given volume. +* Merged *73* critical CVE fixes into the GNU GRUB source code, from upstream. +* Stricter use of pledge and unveil in the nvmutil source code. +* *Much* safer `./mk inject`. It used to be that the tarballs were extracted + and files inserted into the extracted images, but the tarballs were left + unmodified; many users thought then that they should extract the tarball + and flash that, which lead to bricks. And it was easy to flash uninjected + images, where files (e.g. Intel ME) are needed, so now ROM images are padded + by one byte, to prevent flashing, and the user is strongly reminded to + inject files first; upon running the `./mk inject` commands, these images + are then safe to flash. +* Fix globbing issues in lbmk by double-quoting variables everywhere, and + generally making sure that certain characters are escaped properly when + necessary. To reduce the chance of bad commands being run by mistake or + intentionally. +* Removed auto-confirm on `./mk dependencies` commands, to mitigate the risk + of a buggy package manager on the user's distro possibly removing many + packages. Now the user must confirm their choice, e.g. when a conflict + occurs, instead of the package manager already deciding for the user. +* ThinkPad T480 / OptiPlex 3050: Disable HyperThreading/SMT by default, for + security, to reduce the attack vector of certain speculative execution-based + exploits. ### Feature changes @@ -155,6 +176,54 @@ In descending order from latest changes to earliest changes: config being checked. In practise, this causes no real behaviour changes. * `rom.sh`: Print the rom image path being generated * `lib.sh`: Add warning if x_ is called without args +* `init.sh`: More verbose error info, on non-zero exits. +* `util/nvmutil`: Within each 4KB part, only handle 4KB, even if the block + size is bigger. This means using less memory, and modification of anything + past 4KB is not required. +* `util/nvmutil`: Support 16KB and 128KB GbE files, in addition to the + usual 8KB files. The size is based on the block size of the flash you use. +* Added non-root USB3 hub support to GRUB on the xHCI implementation, courtesy + of a patch from Nitrokey. +* GRUB: Scan LUKS inside *every* LVM, to support the uncommon use case where + LUKS is inside LVM, instead of LVM inside LUKS. It is theoretically possible, + even if ill advised. +* GRUB: Scan *every* LVM device, where available, as a fallback at boot time + when all else fails. +* Release ROMs prefixed with a "DO NOT FLASH" warning and padded by one byte, + where vendor files are required. The `./mk inject` commands remove this + prefix/padding, after vendor files are inserted and checksums verified. +* Better detecting of whether vendor files are needed, and confirmation to + the user while running `./mk inject` commands. +* Allow restoring the default MAC address on `./mk inject` commands, by using + the `setmac restore` arguments. +* Randomise the MAC address by default, where applicable, when running + the `./mk inject` commands, because lots of users previously flashed without + changing it, so lots of users had generic MAC addresses. + The `setmac keep` argument prevents this from happening, where desired. +* `include/vendor.sh`: More user-friendly debug messages, for the user to + know what's going on. +* `util/nvmutil`: Add uninstall command to the Makefile +* `util/nvmutil`: Add distclean command to the Makefile +* `util/nvmutil`: Nicer hexdump display, similar to `hexdump -C`. +* Support a `re` argument in `./mk dependencies` Fedora commands, for + re-installation of packages as desired. +* Support `--reinstall` in the `./mk dependencies debian` command, when the + user wants to re-install dependencies. +* Put temporary `PATH` directory in the normal `XBMK_CACHE` directory, and + clear it whenever a new parent instance of the build system is executed. + This is used for the GCC/GNAT matched symlinks, for example, or the python + symlink created at startup. +* Pico 2 support briefly added, but was a bit buggy for now, so it's removed + in this release, and was retroactively removed in rsync for the + Libreboot 20241206 release; this will be re-added in a future release. +* Added GRUB-first payload setups as an option, but not enabled by default. + The user can add `payload_grubsea="y"` in the `target.cfg` file for a given + mainboard. +* Support automatically downloading Lenovo ThunderBolt firmware for the + ThinkPad T480, automatically padding it for installation. This update fixes + a charging bug that affected some earlier launch models. +* Insert GRUB backgrounds in CBFS instead of GRUB memdisk, which makes + GRUB background images easier to replace. ### Configuration changes @@ -178,13 +247,25 @@ In descending order from the latest changes to the earliest changes: the size of releases. * A GRUB configuration change was made, fixing auto-scanning of LVMs when doing cryptomount. +* T480/3050micro: Removed the `fsp` targets, because we only need + the `vfsp` targets. +* Added `gnutls-devel` to Fedora 41 dependencies. +* Added `libx86` to Arch dependencies, needed for the `int` utility. +* Added `less` to Arch dependencies, because it's needed for certain commands + e.g. git commands. +* GRUB: Use the codeberg mirror first, to mitigate GNU mirrors often being + slow or rate limited, e.g. for gnulib downloads. +* fedora41/dependencies: add libuuid-devel +* Added `uuid-devel` to fedora41 dependencies +* flashprog: Disable `-Werror` to prevent minor warnings being treated as errors. ### Bug fixes -Most of these are build system fixes, but for example there is also a fix -applied to the GRUB source code. +This combines both build system fixes, and changes to upstream sources (e.g. +coreboot and various payloads like SeaBIOS/GRUB, utilities like flashprog, and +so on). The following bug fixes have been merged (in descending order from the latest changes to the earliest changes): @@ -394,6 +475,105 @@ changes to the earliest changes): release simply reverts the AHCI reset patch for now. The AHCI reset plus delay will be present in Libreboot's next release, after 25.06. * lenovo/t420: Add missing text-mode configuration +* coreboot (all trees): Added patch fixing GMP build errors on modern + GCC15 hostcc. +* coreboot (all trees): Fixed building of crossgcc with newer GCC15. Patches + courtesy of Alper Nebi Yasak. +* coreboot (all trees): Added a patch to fix building coreboot utils with + newer GCC15. +* dependencies/debian: Fixed the libusb package name for newer Debian releases, + courtesy of Alper Nebi Yasak. +* SeaBIOS: Fixed `malloc_fn` function pointers in the `romfile` patch, courtesy + of Alper Nebi Yasak. Fix build errors on GCC 15. +* `include/lib.sh`: Force use of System Python e.g. `/usr/bin/python`, when + a python venv is detected. This prevents the build system from hanging. +* coreboot `g43t_am3`: Fixed the `data.vbt` path. +* Alper Nebi Yasak fixed the Python 2/3 detection in some edge cases when + the `python` command is python2. +* `include/lib.sh` (later `init.sh`): Do root check *first*, right after + the dependencies check, whereas it previously did the python check before + checking for root user. +* lbmk: Don't use TMPDIR directly, use another variable containing its value, + and make sure it doesn't get changed wrongly. This reduces the possibility + of accidentally leaving old tmp files laying around. +* `include/lib.sh`: `tar` commands now return an exit with error, if a fault + occurs, whereas it didn't before, due to piped output. This is done + using the `x_` wrapper on tar commands, to provide error exits. +* `mk`: function `check_project_hashes` now returns an error, if the sha512sum + command fails. It previously didn't, due to piped outputs. It's now mitigated + by using `x_` on piped commands, for error exits. +* Forking of lbmk parent instance to child instance isno longer handled by + variables. It's been simplified, to only be based on whether TMPDIR is set, + and it's generally more robust now in this release. The old code sometimes + broke under certain edge cases. +* `include/vendor.sh` (later renaming to `inject.sh`): General code cleanup, + about 100 sloc removed without reducing features. +* lbmk: Initialise `PATH` to a standard string if not set, on the parent + instance of lbmk. +* lbmk: Use `pwd` instead of the `PWD` variable, resetting the latter safely + as lbmk runs. This prevents lbmk from changing directory to an erroneous + system path, if `PWD` wasn't properly set for some reason. This is a + preventative bug fix, because no actual issue ever occured in practise. +* Much safer Python version check at lbmk startup, using data structures that + are provided universally by all Python implementations, instead of + relying on the output of `--version`. +* Fixed T480 backlight controls, courtesy of a patch from Mate Kukri. +* Set up Python in `PATH` when lbmk starts, to ensure that it is always + version 3. This is checked at startup. +* `include/vendor.sh`: Prevent double-nuke, where a given tarball already had + vendor files removed prior to release. +* `include/vendor.sh`: Allow setting a MAC address even if vendor files aren't + needed. +* `include/vendor.sh`: Download utils even if `vcfg` is not set, in case the + user is also setting a MAC address. +* `util/nvmutil`: Honour the `INSTALL` variable, if set by the user, otherwise + it is set to `install` by default. +* `util/nvmutil`: Don't do `clean` when running `uninstall`. +* `util/nvmutil`: Proper DESTDIR/PREFIX handling, whereas it was not handled + properly at all before. +* `util/nvmutil`: Only set CC/CFLAGS if unset, and use sensible defaults. +* Fixed various shellcheck errors in lbmk. +* HP EliteBook 820 G2: Fixed vendor file insertion and set `release=y`. The + insertion of Intel MRC and refcode previously didn't pass checksum validation. +* ThinkPad T480 / OptiPlex 3050: Force power-off state upon recovery from + power loss, otherwise the system always turns on as soon as a charger is + plugged in. This is configured by hardcoding, due to a current lack of any + option table on the T480. +* Debian dependencies: replace liblz4-tool with lz4 and liblz4-dev. The latter + is also available in Debian Trixie and Sid, at this time, in addition to + Debian Bookworm, so it works on all of them. +* U-Boot (x86): Fixed a bug since Swig 4.3.0 changed the syntax for its + language-specific AppendOut functions. A patch from upstream was backported, + and the patch is also compatible with older versions of Swig. +* In lbmk scripts, use `command -v` instead of `which`, to find the locations + of certain binaries. This is a bug fix, since `which` is non-standard and + so could break on some setups. +* Crossgcc: when building it for coreboot, fix mismatching GCC/GNAT versions + so that they match, if multiple versions are present. This was done because + Debain Trixie initially had GCC 14 and GNAT 13, whereas we need GNAT to build + the Intel video init code on many mainboards. +* T480/T480: Disable TPM2 to mitigate a hang in SeaBIOS due to buggy drivers. +* `dependencies/debian`: Fix the `python3-distutils` package, renamed it + to `python3-distutils-extra`, which works on bookworm *and* newer, but the + former did not. +* `git.sh`: don't initialise the `livepull` variable globally, reset it per + target instead, to prevent some repositories from being wrongly re-cloned. +* Thinkpad T480 / Dell OptiPlex 3050: Handle FSP insertion post-release, rather + than providing FSP images directly in release images. It is now handled by + the `./mk inject` command, copying the reference image from coreboot and + splitting it upp and rebasing it, to mitigate certain technicalities of + Intel's FSP license, which otherwise permits free redistribution. +* Safer, more reliable exit when handling vendor files, because in some cases + lbmk was leaving the `lock` file in place (erroneously). +* Safer exit when running the `./mk dependencies` commands, so that lbmk is + more likely to exit, because it was theoretically possible that it might + not under certain edge cases. +* Disable nvme hotplug on Dell OptiPlex 3050 Micro, to prevent replugging in + Linux, which would otherwise lead to possible data corruption. +* T480: Fix coreboot SPD size to 512 instead of 256 (it was already + auto-corrected to 512 at build time, but the original configs were 256 which + is wrong). +* Add tarballs and gpg signatures to `.gitignore` ### General code cleanup @@ -587,13 +767,86 @@ In descending order from the latest changes to the earliest changes: * `lib.sh`: simplify remkdir() * xbmk: move x_() to `lib.sh` * `init.sh`: move setvars/err_ to lib.sh +* `init.sh`: Generally modularised it, moving separate tasks into separate + functions, rathher than having it be one big monolith. +* `vendor.sh` was renamed to `inject.sh`, so that future changes can be + in better sync between lbmk and cbmk on this file, because the cbmk version + has the MAC address changer (but no vendorfile handling). In the future, + this will be split so that `vendor.sh` exists again, containing only the + vendorfile handling, and `inject.sh` will only handle MAC addresses. +* `init.sh`: Several variables were moved out of this file and elsewwhere in + lbmk. +* Moved the `singletree` function to `git.sh` instead of `lib.sh` +* Moved the `cbfs` function from `lib.sh` to `rom.sh`. +* `include/lib.sh`: Use a more top-down function order, more clear, and it was + split into an extra file `init.sh` that does the most basic lbmk initialisation + at startup, whereas what remains in `lib.sh` really are generic library + functions used throughout lbmk. +* `include/git.sh`: Removed unused crossgcc linking feature, because we don't + use it anymore (coreboot trees have their own crossgcc and never link to + another these days). Libreboot used to have many more coreboot trees, some + of which re-used crossgcc from another tree. Similarly, the accompanying + variable `tree_depend` is no longer handled. The `xtree` variable is still + handled, because projects like U-Boot use that to configure crossgcc. +* include/vendor.sh: Removed unnecessary check against the ROM image size. + Generally simplified the processing of release images. +* include/git.sh`: Removed many redundant functions, merging several of them. +* `include/mrc.sh`: Fixed a bad print, making proper use of a string inside + a printf statement. +* Simplified many file checks in lbmk, by using the `e` function. +* Removed a bunch of useless `eval` commands in general, throughout lbmk, + making the code much cleaner. +* lbmk: the `x_` function is now used much more aggressively, for error + handling, simplifying error handling in lbmk overall. +* `mk` main script: Merged the `trees` script with it, so now it's all one + script. The `mk` script is now the only executable script in lbmk. +* `mk` (main script): The `roms` command is removed (legacy / obsolete). +* The version/versiondate files are now dotfiles, to hide during operation. +* `include/lib.sh`: Hardcoded projectname/projectsite variables, instead + of storing them in a file. +* `trees` script: Unified handling of flags (same string used in error output), + to ensure that error(usage) messages always match. +* `trees` script (later merged into `mk`): Removed a lot of old bloat. +* `util/nvmutil`: Make the checksum word position a define. Generally cleaned + up a lot of code to make it clearer for the reader. Added more verbose + messages to the user, confirming things such as how much was read or written + on the user's file system. Various miscallaneous bug fixes (edge cases that + were unlikely to ever be triggered). +* `util/nvmutil`: More efficient use of memory when handling files. +* `util/nvmutil`: Much cleaner handling of user input. +* `util/nvmutil: More granular MAC address parsing errors, easy for debugging. +* `util/nvmutil`: Make the Gbe Checksum a define, for readibility. +* `util/nvmutil`: Obey the 79-character-per-line limit, as per lbmk coding + style. +* `util/nvmutil`: Tidied up several pledge calls +* Removed use of several unnecessary subshells and `eval` statements in lbmk. +* `trees`: Later, the GCC/GNAT matching feature was rewritten to work both ways, + where an older GCC was matched to GNAT and vice versa, whereas it previously + only went one way. `gcc` and `gnat` are manipulated in `PATH` to ensure that + the user has a consistent version of both. +* `path.sh` later merged into the `trees` script (which later merged + into the main `mk` script). This `path.sh` is what contained the first + implementation of the GNAT/GCC version matching feature. +* `path.sh`: Remove unnecessary shebang, and the same on other `include/` + scripts. NOTE: `path.sh` was later merged into `lib.sh`, which then became + split into `init.sh` in later changes (see above). +* Removed legacy build system commands e.g. `./build` and `./update`; now + only the newer `./mk` commands are supported. This and the change below was + briefly reverted, for the 20241206 revisions, but then re-introduced. +* Removed the deprecated `./vendor` command; now only `./mk` commands are + used. The `./mk -d coreboot target` commands are used, for downloading + vendor files. +* Removed unused patch that was for the original deguard implementation, + prior to Mate Kukri's re-write of it. Git log ------- -This log is relative to Libreboot 25.04: +This log shows all changes in today's release, from 30 June 2025, ever +since the Libreboot 20241206 release of 6 December 2025: ``` +* c46a71138c7 Libreboot 25.06 release * b1ef562b767 tree.sh: add sha512 error for check_project_hashes * 04bee3834d0 tree.sh: add error check in check_project_hashes() * 677dfc4d103 tree.sh: more reliable clean in run_make_command @@ -865,8 +1118,395 @@ This log is relative to Libreboot 25.04: * c073ee9d4fc Restore SeaBIOS 9029a010 update, but with AHCI fix * 8245f0b3211 Revert "seabios: bump to rev 9029a010, 4 March 2025" * 4c50157234d coreboot/t420_8mb: add missing txtmode config +* f21749da8b1 Libreboot 25.04 Corny Calamity +* bb5f5cd5763 add pico-sdk backport patch fixing gcc 14.x +* 4f77125066d coreboot/fam15h: update submodule for nasm +* 0f2202554ab coreboot/fam15h: update nasm to 2.16.03 +* 2009c26f0aa serprog: Remove pico2 support for the time being +* a08b8d94fc5 seabios: bump to rev 9029a010, 4 March 2025 +* 342eca6f3d1 update untitled +* b0a6d4711a3 coreboot413: add alper's fix to cbfstool for gcc15 +* 628ae867c9a flashprog: bump to rev e060018 (1 March 2025) +* 5e96db5a2b4 further gcc-15 fix for gmp on -std=23 +* 9a9cd26b2d5 coreboot/default and fam15h: gmp fix, gcc15 hostcc +* 80007223c85 lib.sh: Provide printf for mktarball +* a16c483e5fd Merge pull request 'coreboot: fam15h: Add patches to fix build with GCC 15 as host compiler' (#318) from alpernebbi/lbmk:coreboot-fam15h-gcc15 into master +|\ +| * 685685ab0e4 coreboot: fam15h: Add patches to fix build with GCC 15 as host compiler +|/ +* 02110f2bc1d Merge pull request 'coreboot: Add patch to fix build with GCC 15 as host compiler' (#317) from alpernebbi/lbmk:coreboot-gcc15-nonstring into master +|\ +| * 5ad1de3931a coreboot: Add patch to fix build with GCC 15 as host compiler +|/ +* 9e7bceb7fa9 Merge pull request 'seabios: Fix malloc_fn function pointer in romfile patch' (#313) from alpernebbi/lbmk:seabios-romfile-malloc-fptr into master +|\ +| * 35c853f8b33 seabios: Fix malloc_fn function pointer in romfile patch +* | 686e136f150 Merge pull request 'dependencies/debian: Fix libusb package name' (#315) from alpernebbi/lbmk:debian-libusb-dependency into master +|\ \ +| * | 6f120f01588 dependencies/debian: Fix libusb package name +| |/ +* / d8b0e749983 init.sh: fix yet another double quote for dotfiles +|/ +* 780844112ae Merge pull request 'Update U-Boot to v2025.10' (#305) from alpernebbi/lbmk:uboot-v2025.04 into master +|\ +| * 1265927ca38 u-boot: gru: Disable INIT_SP_RELATIVE +| * 5bea1fade9a u-boot: arm64: Expand our modified defconfigs to full configs +| * fd56d8ada13 u-boot: arm64: Merge our modifications into new defconfigs +| * ed9ddd7415f u-boot: arm64: Add new upstream defconfigs +| * b1fa44858cb u-boot: arm64: Rebase to v2025.04 +| * 976fc6890ae u-boot: arm64: Save our modifications to the upstream defconfigs +| * 418570a6172 u-boot: arm64: Turn configs into defconfigs +|/ +* 093a86d9c09 init.sh: don't use eval to read version files +* 3045079947b init.sh: use backslash for dotfiles in eval +* da108d1c045 mk: Don't run mkhelpers if mode is set +* 71a58a38ab4 mk: condense main() again +* f3882b9bf21 init.sh: make git name/email error more useful +* 9cebda333d5 init.sh: move git name/mail check to xbmk_git_init +* ea081adc4ca init.sh: tidy up the git name/email check +* 3292bded692 mk: make main() more readable +* 97a5e3d15ed mk: move git check to init.sh xbmk_set_version +* 11cd952060d init.sh: tidy up xbmk_init() +* f6c5c8d396d mk: move git_init to init.sh +* ec1c92238cc init.sh: minor cleanup +* e009f09e7fa init.sh: clean up setvars +* 9ec72153408 init.sh setvars: make err a printf for eval +* 18ad654a1f7 init.sh: merge xbmk_child_init with xbmk_init +* 15268202478 init.sh: split xbmk_child_init into functions +* 0280cd4c0e7 init.sh: move parent fork to new function +* a0e1d42ff74 init.sh: Provide more complete error info +* a8f0623efbb update uefitool to rev a072527, 26 Apr 2025 +* c698972130f rename include/vendor.sh to inject.sh +* 24e488aae56 lib.sh: move _ua to the xbmkget function +* 6779d3f9915 move variables out of init.sh to others +* 848159fa0eb lib.sh: rename vendor_checksum +* 1de77c6558c lib.sh: move singletree() to git.sh +* 703fe444312 lib.sh: move cbfs() to rom.sh +* b57952e90d2 re-split include/init.sh to lib.sh +* 8ecb62c6628 rename include/lib.sh to init.sh +* ce4381169fa lib.sh: introduce more top-down function order +* 15b64cfebe8 mk/git.sh: remove tree_depend variable +* 9b8179c0e5d git.sh: remove unused xgcc linking feature +* 4624c6e536c mk: remove unused variables (ser/xp) +* aba5b3a3532 mk: simplify main() +* 0ab7c6ff9cf lib.sh: use realpath to get sys python on venv +* 8edea026c58 lib.sh: Force use of System Python to prevent hang +* b1b964fa5c3 lib.sh: further condense the python check +* 9543a325acb lib.sh: further simplify the python check +* 9baabed7186 lib.sh: condense the python check +* 0c5c5ffc873 lib.sh: simplify mk() +* 83022b6ba83 lib.sh: simplify cbfs() +* 13ad839691d lib.sh: simplify the python check +* b1ea4165754 mk: remove mkhelp() and use x_() instead +* 4cf64e59ed0 mk: simplify handling of trees() +* d0581914c74 coreboot/hp8300cmt: purge xhci_overcurrent_mapping +* cb52fc4ba82 Fix VBT path on HP Elite desktops +* 2bee87cfc26 lib.sh: add missing copyright year +* 4b7ab403c65 ifd/q45t_am: unlock regions by default +* 564155277ea coreboot/g43t_am3: use ifd-based setup +* 0ddd1963751 coreboot/q45t_am3: use ifd-based setup +* 3b2d933842a coreboot/default: add missing submodules +* a10d81399c7 NEW MAINBOARD: Acer Q45T-AM (G43T-AM3 variant) +* d114e0a765c mk: don't print confirmation of git pkg.cfg +* f59c24f12aa coreboot/g43t_am3: fix data.vbt path +* 21020fa319a add missing config/data/coreboot/0 +* 2b4629d790b Merge pull request 'lib.sh: Fix python3 detection when 'python' is python2' (#290) from alpernebbi/lbmk:python3-detection-fix into master +|\ +| * a18d287a81e lib.sh: Fix python3 detection when 'python' is python2 +|/ +* c7569a67145 coreboot/next: merge with coreboot/default +* 762c7ff43eb coreboot/default: Update, c247f62749b (8 Feb 2025) +* 86e7aa80c51 Update the GRUB revisions +* 8d57bf6009e Revert "git.sh: minor cleanup" +* a2898771f6e lib.sh: perform root check even earlier +* 779f6003421 lib.sh: tidy up opening logic (put it together) +* bac4be99c20 lib.sh: do root check before python check +* e63d8dd20d9 git.sh: minor cleanup +* 11078508a25 lib.sh: simplify mktarball() +* 087bbedc5f8 vendor.sh: tidy up vendor_download() +* e11fd52d958 mk: tidy up check_gnu_path() +* 3442f4278ed mk: simplify check_project_hashes() +* 6b6a0fa607c lib.sh: fix missing s/TMPDIR/xbmktmp +* e07a2adb130 lbmk: don't handle TMPDIR directly +* 9d3b52cd1d2 rom.sh: minor cleanup +* b4402c54258 vendor.sh: yet even more code cleanup +* fe5bdc7633d vendor.sh: even more cleanup +* fcedb17a9a1 vendor.sh: more cleanup +* 4e2b59ed3ff vendor.sh: minor cleanup +* a3acf4c3f95 vendor.sh: simplify process_release_roms +* 30213a96883 vendor.sh: remove unnecessary check +* 38df7275f12 git.sh: remove unnecessary comment +* f5891fb6991 git.sh: remove link_crossgcc() +* a685654b90f git.sh: remove move_repo() +* e4aa62f79a8 git.sh: remove prep_submodule() +* 2839feb9e43 git.sh: make git_prep command clearer +* 410fa702c9c mrc.sh: Make proper use of variable inside printf +* 075902c3ea7 simplify a few file checks +* b2255425eba rom.sh: remove unnecessary check +* 39640d76a75 lbmk: minor cleanup +* c8dc701f3eb lib.sh mktarball: stricter tar error handling +* 58a53d7046f vendor.sh: don't err on bruteforce me extract +* 958fa34832a mk check_project_hashes: handle error on sha512sum +* 8b4b069e3f6 vendor.sh: remove unnecessary xchanged="y" +* 166dbb04c92 vendor.sh: set need_files="n" if skipping patch +* e90657cc734 vendor.sh: Don't handle vendor files if not needed +* 2e10a45fa36 Revert "lib.sh: use eval for the command in x_" +* 738d4bb6b6d lib.sh: fix bad eval writing resized file +* eb9e5d2d5d4 lib.sh: fix bad eval writing version/versiondate +* 3bfdecdc75b lib.sh: use eval for the command in x_ +* 4fa3bb9e5b1 mk: use eval to run mkhelp commands +* 9b3635718a8 mk: tidy up the switch/case block in main() +* 0c381028abc mk: tidier error handling +* 023f9cf0498 lib.sh: tidy up the error handling +* cb3253befb9 rom.sh: tidy up error handling +* 7af46721bcb vendor.sh: tidy up error handling +* 04ebb3b91a0 vendor.sh: tidy up decat_fspfd() +* 0c87fdf96ad git.sh: clean up fetch_project() +* 9eb8856b3c5 mk: Remove unnecessary argument checks on trees() +* 52f3d54116f vendor.sh: properly call err_ in fail_inject +* c4c6692b761 remove xbmk_parent, handle forking in lib.sh +* fd5431db05d lib.sh: define x_ right after err_ +* 972681a127b mk: minor cleanup +* b41cd39b686 lib.sh: minor cleanup +* 49939502648 mrc.sh: minor cleanup +* c158d82298b rom.sh: minor cleanup +* cb36248c8c0 vendor.sh: tidy up check_release() +* 409cab39c56 vendor.sh: tidy up vendor_inject() +* 12b1623e473 vendor.sh: tidy up readcfg() +* 0d85f061e2e vendor.sh: tidy up patch_release_roms() +* 61f20141028 vendor.sh: tidy up process_release_roms() +* 5901f36e49d vendor.sh: tidy up patch_rom() +* 082930ce0e7 vendor.sh: tidy up inject() +* e1f91f30372 vendor.sh: tidy up modify_mac_addresses() +* 3181ac50126 script/trees: merge with mk and delete script/ +* 3d03dd1a507 mk: remove the legacy "roms" command +* f0c629dcc6c lib.sh: write version/versiondate to dotfiles +* 23b942c83e9 lib.sh: hardcode projectname/projectsite +* a03bb793aea remove update/vendor symlinks +* d7f80ebe71e move build to mk +* 57d58527fd0 trees: unify the execution of mkhelper commands +* e5262da4be7 trees: tidy up configure_project() +* 51798278397 build: make coreboot building an else in "roms" +* c189257888a trees: don't build dependencies if dry=":" +* 115a66fddd3 trees: unified handling of flags +* 3ea633cc791 trees: simplified handling of badhash/do_make +* 9be40e94a2b trees: don't set mode on ./mk -b +* 67ad7c2635c trees: don't set mod on ./mk -d +* 24448948419 trees: don't initialise mode to "all" +* 97c50a39a60 trees: clean up some comments +* cfb14fd8dd8 vendor.sh: simplified readkconfig() +* 5b697b93a2d lib.sh: double-quote pwd to prevent globbing +* 5a0a24f5559 lbmk: unified PWD handling (work directory) +* a25a29cfbb7 lib.sh: initialise PATH if it's unset +* 1022abf6991 move XBMKPATH to include/lib.sh +* 0764c969a29 lbmk: use pwd util, not PWD environmental variable +* f98b9b01107 clean up a few semicolons in the build system +* 8ccb61cc718 trees: err if first argument is not a flag +* 947c3e1a176 trees: err if no argument given +* edbbde0b12d trees: set dry=":" on ./mk -f +* 33bb0ecf764 trees: clean up initialisation of the dry variable +* c7636ff1dfc trees: initialise mode to "all", not "" +* d0bd12631a6 trees: don't abuse the mode variable on -f +* c4cd876c609 trees: Add missing flag to error output +* 5ebcae5235f lbmk: minor code formatting cleanup +* 70cef71dbab grub/xhci: Remove unused patch +* 3f14a470a2e remove _fsp targets (keep _vfsp) +* d7312260e7e util/nvmutil: remove excessive comments +* e348ea0381a Bump GRUB revision to add 73 security patches +* 4b228c11f9f Merge pull request 'Update pico-serprog revision' (#271) from Riku_V/lbmk:master into master +|\ +| * a8359e30b27 Update pico-serprog revision +|/ +* d2cb954933b util/nvmutil: Fix bad error messages on R/W +* e1e515bd22a util/nvmutil: hardened pledge on help output +* ada057a865c Merge pull request 'Simplify the README' (#269) from runxiyu/lbmk:readme-simplification into master +|\ +| * 9ced146b47c README.md: Use newlines instead of bulleted list for docs/support links +| * 266122592cd README.md: Use the EFF's page on Right to Repair +| * e36aa8c5a5c README.md: Vastly simplify it +| * c17f4381ce5 README.md: Mention SeaBIOS and U-Boot instead of Tianocore as payloads +|/ +* 47eb049cb47 Merge pull request 'deps/arch: genisoimage belongs to cdrtools' (#267) from runxiyu/lbmk:master into master +|\ +| * fa9a0df2458 deps/arch: genisoimage belongs to cdrtools +|/ +* a98490573be util/nvmutil: only set mac_updated at the end +* 6b9cf09ca21 restore old x230 gbe file +* 8a435355135 util/nvmutil: Fix bad comparison +* a65a0c2f963 util/nvmutil: allow ./nvm gbe MAC +* 96356ce94f6 util/nvmutil: move "e" to swap() +* b1d8975959d util/nvmutil: Only read up to 4KB on larger gbe +* 6821659bcb2 util/nvmutil: fix minor mistake (line break) +* 3bb7520f6d9 util/nvmutil: do setmac if only filename given +* d94b274fd9f vendor.sh: don't error if grep -v fails +* 6ebdd3c72ba vendor.sh: Don't show gbe filename on inject +* a08748a9eda util/nvmutil: don't say write not needed if errno +* 6841a351ebc util/nvmutil: print dump *after* modification +* da0a6c216cf util/nvmutil: verbosely print the written MAC +* db5879c6b5a util/nvmutil: minor cleanup in cmd_dump +* bd7215d1eb7 util/nvmutil: show nvm words written on writeGbe +* c70117c79c4 util/nvmutil: clean up readonly check on writeGbe +* cf5a63e65ca util/nvmutil: Remove useless gbeFileChanged var +* 83601aa524b util/nvmutil: reset errno if any MAC updated +* 3e86bf5ce25 util/nvmutil: reset errno when writing a MAC +* bcf53cc2cc0 util/nvmutil: show total number of bytes read +* c91cc329cf8 util/nvmutil: rename tbw/bw to tnw/nw +* 90607108330 util/nvmutil: err if bytes read lower than nf +* c72f699d368 util/nvmutil: err if fewer bytes written +* d666f67ebe5 util/nvmutil: Show bytes written in writeGbe +* b2d6393ed5f util/nvmutil swap(): ensure that no overflow occurs +* 063fef14d34 util/nvmutil: make swap() a bit clearer +* fd1bbdc96cb util/nvmutil: make 0x3f checksum position a define +* 5ddf7f251d6 util/nvmutil: make 128 (nvm area) a define +* 8850acc7da6 util/nvmutil swap(): Only handle the nvm area +* 49506a88328 util/nvmutil: move write checks to writeGbe +* 948377b0e7e util/nvmutil: make cmd_swap its own function again +* 6e134c9f4bf util/nvmutil: minor cleanup +* 98e105ac4f1 util/nvmutil: allocate less memory for setchecksum +* 52e8ea57f7b util/nvmutil: Further reduce memory usage +* 7a7d356824e util/nvmutil: Remove unnecessary buf16 variable +* cdf23975bc1 util/nvmutil: Only allocate needed memory for file +* ed45da9cae5 util/nvmutil: Remove unnecessary buffer +* ec3148dc3b5 util/nvmutil: Show specific error for bad cmd argc +* 073420d3056 util/nvmutil: cleaner argument handling +* a6c18734e70 util/nvmutil: extreme pledge/unveil hardening +* deb307eaf63 util/nvmutil: more minor cleanup +* c14eccaf153 util/nvmutil: more granular MAC parsing errors +* 88fb9cc90ea util/nvmutil: more cleanup +* 5aaf27f80c3 remove errant comment in nvmutil +* c829b45c17c util/nvmutil: support 16kb and 128kb gbe files +* a98ca5bf65c util/nvmutil: Prevent unveil allowing dir access +* 68c32034a00 typo: nvme should say nvm in nvmutil.c +* c944c2bbac7 util/nvmutil: General code cleanup +* 8c65e64e398 snip +* f666652fe15 snip +* 64d3c7b5150 grub/xhci: Add xHCI non-root-hub fixes from Nitrokey +* 7bf0d4c2ed5 add gnults-devel to fedora 41 dependencies +* 66d084e7f7c grub.cfg: scan luks *inside lvm* +* 5a3b0dab966 grub.cfg: Scan *every* LVM device +* 3c9f4be76f6 Libreboot 20241206, 8th revision +* d4cc94d6b44 rom.sh: don't run mkpicotool on dry builds +* de6d2f556f1 pico-sdk: Import picotool as a dependency +* 4210ee68ea2 lib.sh: Much safer python version check +* 8c7ba6131cc coreboot/next uprev: Fix T480 backlight keys +* 411fb697dfc set up python in PATH, ensuring that it is python3 +* e8336bcc3ca vendor.sh: Proper semantics on prefix file names +* 63f45782638 vendor.sh: Confirm if need_files=n +* 13b06ae130f vendor.sh: Allow restoring the default GbE file +* ab8feff92e0 vendor.sh: set random MAC address *by default* +* 0ceaa01d45d vendor.sh: add clarification to nogbe warning +* 4d5caf1dcfc vendor.sh: check that the vcfg file exists +* fc4ee88e167 vendor.sh: error out if nuking failed +* 8819a93d89b add line break, part 3 +* 8ce1a00f517 add line break, part 2 +* bc2c14e76a8 add line break +* c762850311a vendor.sh: prevent double-nuke +* 68299ad05ca vendor.sh: much more verbose errors/confirmation +* b8e6d12f3d9 add libx86 to arch dependencies +* cf8ad497b4e vendor.sh: Remove unnecessary return +* c858099b359 vendor.sh: Download utils even if vcfg unset +* ce16856a242 vendor.sh: Allow setmac if vendorfiles not needed +* 4b51787d078 add less to arch dependencies +* 8bd028ec153 lib.sh: Set python after dependencies +* 44b6df7c24c update my copyright years on modified scripts +* 818f3d630c2 vendor.sh: Don't error if vcfg is unset +* 432a1a5bca7 lib.sh: Fix unescaped quotes in chkvars() +* a73b0fd910a Revert "fix more unescaped quotes in eval" +* ec6bcc1fba5 fix more unescaped quotes in eval +* 5284f20b981 fix ./mk dependencies build issue +* d825f9a9683 rom.sh: Remove errant GRUB modules check +* 4149f3dc81a submodule/grub: use codeberg for 1st gnulib mirror +* 0305975e705 util/nvmutil: Update AUTHORS and COPYING files +* 20b192e13bd util/nvmutil: Describe nvmutil in help output +* d1ca21628cb util/nvmutil: Remove the correct binary on uninstall +* e63fe256dfc util/spkmodem-recv: More correct Makefile +* efd50ee548b util/nvmutil: Honour the INSTALL variable +* 8008838abbc util/nvmutil: Don't clean when doing uninstall +* 982f257f58a util/nvmutil: Proper DESTDIR/PREFIX handling +* 3f85ae5f853 util/nvmutil: Set CC and CFLAGS only if unset +* 2c7b9fb9412 util/nvmutil: Capitalise BABA +* 57f9906f6d1 util/nvmutil: Add uninstall to Makefile +* 4defe2c6085 util/nvmutil: Add distclean to Makefile +* 033e4cd9d50 util/nvmutil: Make the GbE checksum a define +* 874317c4e59 util/nvmutil: nicer hexdump display +* a338e585eed util/nvmutil: show the correct hexdump order +* b032e483ef1 lib.sh mktarball: cleaner if statement +* 0cf58c22734 fix lbmk shellcheck errors +* 8276560cc99 lib.sh and rom.sh: update my header +* 08e86d2218c vendor.sh inject: reset err upon return +* 41275d699ca vendor.sh: MUCH, MUCH, MUCH safer ./mk inject +* ed7293494e3 util/nvmutil: Obey the 79-character per line limit +* 637b5e36fd2 util/nvmutil: Tidy up copyright header +* cd28db883e2 vendor.sh: fix comment +* 57971ceb227 util/nvmutil: Fix another straggler +* 15b37b2a1ab util/nvmutil: Tidy up pledge calls +* e8799310db2 hp820g2: fix vendorfile inject and set release=y +* f9ab082ec19 fedora41/dependencies: add libuuid-devel +* 661591f9f0b add uuid-devel to fedora41 dependencies +* 1a46c047386 support ./mk dependencies fedora reinstall +* d58d63569f1 fix missing semicolon in grub nvme patch +* 95ea3293df5 bump seabios to rev 1602647f1 (7 November 2024) +* 6d7e6c361b3 Bump GRUB revision to 6811f6f09 (26 November 2024) +* 09a01477df6 t480/3050micro: force power off post power failure +* d344cd95eac flashprog: Disable -Werror +* dc95e912bfe bump flashprog to revision eb2c041 (14 Nov 2024) +* 27c8c1c16ba replace liblz4-tool with lz4 and liblz4-dev +* d3a732a64db lib.sh dependencies: support --reinstall argument +* 466ada423dd move xbmkpath to XBMK_CACHE/ +* b0a23840327 Revert "Remove legacy update/vendor commands" +* 3d7dd4aa9fe Fix U-Boot build issue with Swig 4.3.0 +* 0c810747469 use command -v instead of which +* 6c7e3ce2d6e trees: remove unnecessary subshell +* ad137eae89d trees: only symlink host gcc/gnat to build xgcc +* cfb6de94c33 trees: correction on check_gnu_path +* ec2f0716662 trees: match gcc/gnat versions both ways +* f64b5996279 Merge path.sh into script/trees +* 295463d281e path.sh: Further cleanup +* 5b24e0a5a96 path.sh: More thorough gcc/gnat version check +* 7849a075886 path.sh: minor cleanup +* 17168a87dbf path.sh: remove unnecessary shebang +* e565df94fd7 Fix globbing issue in lbmk +* c80cc0a00b6 remove auto-confirm on distro dependencies +* 01fc65a0a9d Mitigate Debian Trixie/Sid GCC/GNAT version mismatch +* 424b0c7103b t480/3050micro: disable hyperthreading +* 603105f3b4e t480/t480s: Disable TPM2 to mitigate SeaBIOS lag +* 754bd1e6ca3 rom.sh: Name pico directory serprog_pico +* db22308eba5 add 2024 to Riku's copyright header on rom.sh +* 4fa5f696db8 Merge pull request 'rp2530' (#258) from Riku_V/lbmk:rp2530 into master +|\ +| * a5e0360992d pico-sdk: update to 2.1.0 +| * e2f8cc7f3ee pico-serprog: enable building for multiple pico chips +|/ +* ccc2b4d589f add spdx headers to dependencies configs +* a3969701e6b dependencies/debian: fix debian sid +* 8f370cb60d9 add spdx headers to various config files +* d591ea4c5dc git.sh: don't initialise livepull globally +* b5da9feba3b vendor.sh: Print useful message on ./mk inject +* 12c6259cb2f vendor.sh: Handle FSP insertion post-release +* 78132051462 Remove legacy update/vendor commands +* 07037561bd6 lbmk: remove use of deprecated ./vendor command +* 5d1f1823067 vendor.sh: Safer exit when vendorfiles not needed +* a18175a5df9 data/deguard: Remove unused patch +* ee8f53b96ff lib.sh: Safer exit from ./mk dependencies +* a8b35c88cf1 remove geteltorito and mtools from lbmk +* 1dd32ea5487 rom.sh: support grub-first setups +* f7801ef4770 vendor.sh: delete old tb.bin first, just in case +* 02cbf8a729d vendor.sh: make TBFW pad size configurable +* 9884e5ed1b0 T480/T480S: Support fetching ThunderBolt firmware +* 36b42dd1c11 also de-rainbow the u-boot menu +* eafc82028a4 Revert "use rainbow deer on the grub background" +* 44969c73bd2 rom.sh: insert grub background in cbfs not memdisk +* 401efb24b22 use rainbow deer on the grub background +* dc27cb91784 add some scripts to .gitignore +* 3b6b283eabe disable 3050micro nvme hotplug +* c2023921893 fix t480 spd size (512, not 256) +* da527459b68 add tarballs and signatures to gitignore +* b910424b5df fix another very stupid mistake +* e3b77b132e6 fix the stupidest bug ever ``` +This is about 650 changes. + Revision releases ----------------- @@ -881,4 +1521,10 @@ is *rev1*. No revisions, thus far. The original 25.06 release is the current revision, so it could be considered *rev0* (revision zero). +Build testing +------------- + +This release was built on the latest Debian 12.10 Bookworm release, as of +this day. It was also build-tested successfully on the latest Arch Linux updates +as of 26 June 2025.