Commit Graph

204 Commits

Author SHA1 Message Date
Leah Rowe f8183e187b say the name libreboot, in grub menus 2022-03-20 00:44:45 +00:00
Leah Rowe 8ca0761fb0 specifically call python3, in scripts
with this change, it's unlikely we'll hit errors again. previously,
some projects used were calling "python" which in context was
python3, but on some setups, the user only has python2 and python3
but no symlink for "python" (which if exists, we assumed linked to
python3)

now it's unambiguous. docs/build/ can probably be updated now, as
a result of this change, to remove the advice about that
2022-03-13 18:17:09 +00:00
John Doe 676eb110c7 Perform the silentoldconfig step of seabios before full make
I was running into a race condition when rebuilding seabios with a high cpu count,
resulting in failure with this error message:

cc1: fatal error: can't open 'out/src/asm-offsets.s' for writing: No such file or directory

Performing the silentoldconfig step before the full make step seems to resolve the failure.
2022-03-11 19:52:47 -05:00
Leah Rowe 33a43ffc07 update flashrom 2022-03-07 04:58:11 +00:00
Leah Rowe 9557da45df Merge branch 'master' of GNUtoo/lbmk into master 2022-03-06 17:07:45 +00:00
Denis 'GNUtoo' Carikli 3b80a42aa0
scripts: download: coreboot: fix ./download all
When running ./download all, we have the following error:
    resources/scripts/download/coreboot: Line 52: $1 is not set.

The ./download all command was broken by the following commit:
2bb805e2e0 (download: Add --help in the
individual download scripts).

Reported-by: madbehaviorus[m] on #libreboot on liberachat
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-03-06 18:02:16 +01:00
John Doe acc57bda6d scripts: process git versions when lbmk is a worktree or submodule
git worktrees have plaintext .git files which contain the gitdir in their content.
2022-03-04 14:14:05 -05:00
Denis 'GNUtoo' Carikli 8833be159b
scripts: download: u-boot: fix u-boot repository URL
Without that fix we have the following warning during the download:
    Cloning into 'u-boot/u-boot'...
    warning: redirecting to https://source.denx.de/u-boot/u-boot.git/

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 19:33:53 +01:00
Denis 'GNUtoo' Carikli 425162db93
boot-libre: add --gen-blob-script to generate a deblob script
This should enable various distributions and build system to reuse
the generated script to deblob u-boot releases themselves.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 19:11:14 +01:00
Denis 'GNUtoo' Carikli ee2731af44
boot-libre: ship the blob list too
This should enable various distributions and build system to reuse
that blob to deblob u-boot releases themselves.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 19:11:12 +01:00
Denis 'GNUtoo' Carikli 414aa56287
u-boot-libre: Add help and support for multiple versions
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 19:10:30 +01:00
Denis 'GNUtoo' Carikli 1afdbaad1a
u-boot-libre: Add reproducible builds and tests
The tar options come from the tutorial to remove archives metadata at
reproducible-builds.org[1].

[1]https://reproducible-builds.org/docs/archives/

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 19:10:26 +01:00
Denis 'GNUtoo' Carikli 2bb805e2e0
download: Add --help in the individual download scripts
This doesn't change the existing usage of the scripts:
- For the Coreboot script, before this change, all arguments that were
  passed were considered as board to download the Coreboot source code
  for.

  Here we added the '--help' and '--list-boards' arguments, so it
  should not be an issue as it is extremely unlikely that a board
  would be called '--help' or '--list-boards'.

- All the other scripts don't use any arguments so passing --help
  should not conflict with the existing usage.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 18:00:31 +01:00
Denis 'GNUtoo' Carikli 4b2d426a20
scripts: download: u-boot: Add help and support for multiple revisions
Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 18:00:30 +01:00
Denis 'GNUtoo' Carikli f955248044
u-boot-stable-src-release: rename to u-boot-libre
If the script is named u-boot-stable-src-release and that users see an
u-boot-libre tarball they will not make the link between both unless
we rename the script.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 17:58:53 +01:00
Denis 'GNUtoo' Carikli 354e9bd187
u-boot-stable-src-release: follow u-boot and linux-libre naming conventions
Many people using FSDG compliant distributions or wanting to use one
are already familiar with linux-libre. This change renames the
resulting tarball to u-boot-libre to make it easier for people to
understand the goal of this tarball.

In addition we also rename the version from v2021.07 (which is the git
tag corresponding to the release) to 2021.07 as u-boot upstream
tarballs use that.

The revision wasn't bumped as we didn't have any releases of
u-boot-libre yet.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-16 17:58:28 +01:00
Denis 'GNUtoo' Carikli 7422411b24
Add support for releasing deblobbed u-boot 2020.07 source tarballs
Once the tarball are released, it will enable distributions to use
these tarballs to produce deblobbed u-boot packages.

Note that the produced tarball is not reproducible yet. Because of
that it has to be trusted.

During a release, it's a good idea to sign the uncompressed tarball as
the various compression formats and associated tools make different
tradeoffs.

For instance with xz, xz -9e tends to compress really well with the
the most used xz[1] implementation, and most GNU/Linux users probably
already have it installed, but and the drawbacks is that the format is
very fragile[2].

The lzip format is more suited for long term archiving but its most
packaged implementation[3] is less likely to be already installed by
users than more well known formats like xz, bzip2 or gzip.

Being able to add more compression formats after the release is also
useful, for instance to accommodate different build systems or use
cases (like being able to build u-boot with less dependencies in
distributions like Guix, or building u-boot directly on devices which
don't have enough RAM for xz for instance).

[1]https://tukaani.org/xz/
[2]https://www.nongnu.org/lzip/xz_inadequate.html
[3]https://www.nongnu.org/lzip/

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-10 10:55:03 +01:00
Denis 'GNUtoo' Carikli ae0be6f8b4
scripts: download: coreboot: Fix check for build error
build_error is supposed to be a file since it's created with touch.

Signed-off-by: Denis 'GNUtoo' Carikli <GNUtoo@cyberdimension.org>
2022-02-10 10:55:03 +01:00
Leah Rowe 37b4500513 memtest86+: fix build error (patch from Félicien Pillot) 2022-02-08 07:45:41 +00:00
Leah Rowe 937590d2b1 optimize grub modules: pre-load ones that will likely be used 2021-12-30 06:50:53 +00:00
Leah Rowe 2701555582 build/boot/roms: fix wrong variable name 2021-12-29 07:37:11 +00:00
Leah Rowe babce03fbd coreboot/*: set grub_scan_disk to ahci on most boards
on ga-g41m-es2l, set it to ata
2021-12-29 07:18:21 +00:00
Leah Rowe 5d65d6c3d3 apple/macbook21: set grub_scan_disk to ahci 2021-12-29 07:14:22 +00:00
Leah Rowe 6b4b49cf8f build/boot/roms: substitute grub_scan_disk according to board.cfg 2021-12-29 07:10:56 +00:00
Leah Rowe 835ff5ec83 grub.cfg: skip ata/ahci according to grub_scan_disk
logic for setting it in grub.cfg will be done in the next commit
2021-12-29 06:55:07 +00:00
Leah Rowe 9b1499fd1e grub.cfg: clean up messages, be less verbose 2021-12-29 06:26:48 +00:00
Leah Rowe 86d4ca9b50 grub.cfg: add isolinux menuentry for ata* (replace broken cd/dvd menuentry) 2021-12-29 06:10:45 +00:00
Leah Rowe 7cebee25ff grub.cfg: delete option to boot from CD/DVD
it's confusing, broken and most people nowadays don't use optical drives

it's not even possible in most setups anyway
2021-12-29 06:05:36 +00:00
Leah Rowe bbdb9512f3 grub.cfg: clean up comments 2021-12-29 06:04:42 +00:00
Leah Rowe c98308c499 grub.cfg: don't use */? wildcards. they slow down the boot
hardcode everything. in practise, the new logic will work just the same in
almost all cases, for most people, but it works around performance issues in
grub. cleanup of grub.cfg will be done in the next commit
2021-12-29 05:58:03 +00:00
Leah Rowe 0ea263129a grub.cfg: optimize search_isolinux
GRUB is slow at device enumeration. This patch works around it in the same way
as vitali64's recent patch.
2021-12-29 02:37:05 +00:00
Vitali64 cff081c6db Fix grub's slow boot
On many boards, grub takes a very long time to
search for a grub.cfg file on the disk.
The problem is the search_grub function which
takes a long time to complete.
I (vitali64) studied the grub.cfg from 2016 and
the grub.cfg from 2021 and optimized the
grub.cfg. It should be faster now.
2021-12-29 01:03:18 +00:00
Leah Rowe 7221782940 lenovo/r400: disable death beeps 2021-12-20 02:46:25 +00:00
Leah Rowe c3a66c3275 fix usb keyboards in grub 2021-12-19 23:15:32 +00:00
Leah Rowe cae73ff493 Revert "grub.cfg: enable USB keyboards"
This reverts commit ed63e94914.
2021-12-12 02:24:50 +00:00
Leah Rowe dbe4a0c6a3 coreboot configs: don't enable wifi during early init 2021-12-11 15:24:42 +00:00
Leah Rowe ed63e94914 grub.cfg: enable USB keyboards 2021-12-11 15:02:41 +00:00
Leah Rowe fd583308aa grub.cfg: disable serial output 2021-12-11 15:02:15 +00:00
Leah Rowe f20160f3bb coreboot configs: disable serial output during coreboot initialization 2021-12-11 15:00:17 +00:00
Leah Rowe c771aad44f add scripts for modifying coreboot configs 2021-12-11 14:25:26 +00:00
Vitali64 7e6691e999 Add ARMv7 and AArch64 support 2021-12-11 13:38:43 +00:00
Vitali64 dec2d7206e add myself in the build/roms_helper script 2021-12-09 06:46:18 +00:00
Leah Rowe 7db63c2685 macbook21_16mb: always clear DRAM on regular boot 2021-12-07 21:36:32 +00:00
Vitali64 4c8518899a Add macbook*1 16mb configs 2021-12-07 18:51:49 +00:00
Wei Mingzhi 4dff61eb32 Add script for installing dependencies on Fedora 35. Based on work done by qeeg. 2021-12-02 08:12:42 +08:00
Wei Mingzhi 15209c3895 Do not treat warnings as errors when building flashrom. This fixes build failure with newer versions of GCC. 2021-12-02 08:12:01 +08:00
Leah Rowe 9938fa14b1 Fix broken SpeedStep on GM45 laptops such as ThinkPad X200, T400, T500, W500
Coreboot is enabling PECI on these CPUs which, according to Intel erratum, must
only be done after loading microcode updates, otherwise the CPUID feature set
becomes corrupted. That's my understanding, and I think this is why SpeedStep
is broken. To be specific, it could but but operating systems no longer detect
that the feature is supported. In any case, belgin on IRC found the commit in
coreboot, after a bisect, enabling PECI. This commit in Libreboot adds a patch,
reverting coreboot's PECI patch.
2021-12-01 04:32:02 +00:00
Leah Rowe 4b64e34fc2 build/roms: warn if grub_scan_disk is not set at all 2021-11-30 18:44:08 +00:00
Leah Rowe c7944c0e01 build/roms: warn when grub_scan_disk is set incorrectly 2021-11-30 18:40:27 +00:00
Leah Rowe c87b6f6369 build/boot/roms: don't error out if grub_scan_disk is invalid
just set it to the default, instead
2021-11-30 18:35:52 +00:00
Leah Rowe 9a0677eafd fix incorrect logic on recent grub optimization patch
or was used, instead of and
2021-11-30 18:31:19 +00:00
Vitali64 b74056563f Workaround for grub's slow boot 2021-11-28 17:16:18 +00:00
Leah Rowe eed25bd220 update coreboot and nuke tianocore
tianocore is a liability for the libreboot project. it's a bloated mess, and
unreliable, broken on many boards, and basically impossible to audit.

i don't trust tianocore, so i'm removing it.
2021-11-22 10:03:50 +00:00
shmalebx9 12eceb6a67 added dependency script for void 2021-11-20 12:51:56 -07:00
Leah Rowe bc7243f1e1 build/boot/roms: fix wrong filename for pike2008 option roms 2021-11-18 17:02:36 +00:00
Leah Rowe 8a79f7b163 Fix https://notabug.org/libreboot/lbmk/issues/59 2021-11-18 07:18:53 +00:00
Leah Rowe 4e8c8930cf remove pandoc from dependencies scripts
the static site generator was forked into https://untitled.vimuser.org/
2021-11-18 07:07:51 +00:00
Leah Rowe 4e4f4146d7 download backup seabios repo if the main one is down 2021-11-11 11:36:45 +00:00
Leah Rowe 5957c685a2 fix broken seabios download 2021-11-11 11:30:52 +00:00
Leah Rowe 8888b2b777 bump seabios to the latest version in seabios.git 2021-11-03 15:56:47 +00:00
Leah Rowe 7e6bec17ef build/roms: add g43t-am3_16mb config 2021-11-01 09:53:34 +00:00
Leah Rowe b1fba0e103 roll back memtest86+ revision
works around a build error with gcc 7.5. the patches being removed
from memtest86+ aren't really necessary for the average user anyway
2021-11-01 08:10:32 +00:00
Leah Rowe 71ebf7e863 build/roms: add d945gclf_16mb 2021-11-01 07:15:27 +00:00
Leah Rowe 93c957ddb6 build/roms: add 16mb d510mo config
you must de-solder the default chip and install the new one.
winbond w25q128fvsig is a nice choice of 16MB (128Mbit) IC
2021-11-01 06:45:15 +00:00
Leah Rowe 40202d1286 download/memtest: delete .git* afterwards 2021-11-01 05:59:50 +00:00
Leah Rowe 240eb6da23 memtest86plus: use coreboot's fork of it
it is superior
2021-11-01 05:26:26 +00:00
Leah Rowe 6d23b3fe55 Include memtest86+ on setups where this is practical 2021-11-01 04:04:56 +00:00
Leah Rowe 68d3c9372a Revert "nuke memtest86+"
This reverts commit 84a1bc502b.
2021-11-01 02:51:10 +00:00
Leah Rowe cca23ac713 nuke d8/d16 configs for 4mb/8mb setups. only have 2mb and 16mb configs
4mb and 8mb users can just pad their roms to 16mb, using the instructions on
<https://libreboot.org/faq.html#how-do-i-pad-a-rom-before-flashing>

maintaining them in lbmk is a waste of time, and also a hazard because it's a
lot of duplicated labour when making any changes, which could result in awful
mistakes being made
2021-11-01 02:37:55 +00:00
Leah Rowe f89d85dd90 build/boot/roms: add t60_16mb_intelgpu configs 2021-11-01 01:56:32 +00:00
Leah Rowe b4fa5cdd01 build/boot/roms: add x60_16mb configs 2021-11-01 01:52:35 +00:00
Leah Rowe c2720c58e7 lenovo/t400: Enable all SATA ports (add persmule's patch)
See:
<https://lists.nongnu.org/archive/html/libreboot/2016-08/msg00063.html>

This enables all SATA ports, allowing full T400s compatibility. T400s already
works just fine, when flashing a T400 ROM, but not all SATA ports were usable.

The specific patch is here:
<https://lists.nongnu.org/archive/html/libreboot/2016-08/txtgT_L8DC94R.txt>

There was also this patch, which coreboot actually adapted upstream:
<https://lists.nongnu.org/archive/html/libreboot/2016-08/txtMXyws85Q_P.txt>

Yes, this patch was submitted in 2016. I overlooked it, during all this time.
2021-10-31 23:36:47 +00:00
Leah Rowe 84a1bc502b nuke memtest86+ 2021-10-31 20:52:01 +00:00
Leah Rowe eec4dcd97e grub.cfg: scan grub.cfg on lvm first, before crypto volumes
In most LUKS setups, the user configured LVM, so doing this check first will
increase boot speeds.
2021-10-31 18:10:34 +00:00
Leah Rowe 3364d90edd grub.cfg: attempt cryptomount on raid volumes 2021-10-31 18:08:13 +00:00
Leah Rowe de9dabe43d grub.cfg: replace spaces with tabs 2021-10-31 17:55:49 +00:00
Leah Rowe 37ebccb8a8 grub.cfg: don't handle usb at all in the main menuentry
usb support is extremely buggy in grub, and can cause boot delay issues
2021-10-31 17:21:14 +00:00
Leah Rowe ebeeff6969 grub.cfg: don't run search_grub usb in the main menuentry
There is literally an entire other menuentry just for this purpose.
2021-10-31 17:17:05 +00:00
Leah Rowe 7c998b4538 grub.cfg: search usb *last*, in the main menuentry
There is already a separate menuentry for USB, and most people don't boot their
installed system from USB anyway. This will result in faster boot speeds.
2021-10-31 17:14:41 +00:00
Leah Rowe 62fa042a17 re-add grub backgrounds and update grub. mitigate missing characters
mitigate missing characters in unifont for border/arrow characters. this saves
space because now it is no longer necessary to add a custom font

the background added has the libreboot logo on it, and it's 10kb in size unlike
the old gnulove background that was hundreds of KB
2021-10-31 07:13:46 +00:00
Leah Rowe 49198fe3d1 Disable PIKE2008 option ROM loading on KGPE-D16/KCMA-D8
These option ROMs are known to cause a system hang. If you insert an empty
option ROM into CBFS, it disables any option ROM loading for those devices
when using SeaBIOS.
2021-10-30 21:22:27 +01:00
Leah Rowe 651a3f05fd update to coreboot master on macbook21, and add vitali64's cstate 3 patch
improved battery life on macbook21
2021-10-30 19:19:31 +01:00
Leah Rowe 4e093b3ecc grub.cfg: increase default timeout to 10 seconds
this is a compromise. i was going to do 30 for desktops, 1 for laptops.
however, some laptop users complain about the 1 second timeout being too fast.
10 seconds should just about please everyone.
2021-10-30 18:23:18 +01:00
Leah Rowe ad87e84ae1 grub.cfg: also unroll the list of usb devices 2021-10-30 16:13:27 +01:00
Leah Rowe f195282d90 grub.cfg patch from shmalebx9: reverse search order for encrypted partitions
Also, when a cryptomount is successful, break from the loop and boot from that.
In most cases, this will work just fine, and this change improves the boot
speed in the vast majority of cases.

From <https://notabug.org/libreboot/lbmk/issues/53>

This is based on commit 5767489cadc4a9a1f2e7bffe03457e29e1c9a101 from
https://github.com/shmalebx9/Bleeding-Libreboot/
2021-10-30 16:03:10 +01:00
Leah Rowe 777316eb4f coreboot/default: Fix Werror when building ThinkPad T400 images 2021-08-23 10:34:56 +01:00
Leah Rowe 4b7be66596 coreboot: revert cpu/intel: Configure IA32_FEATURE_CONTROL for alternative SMRR
This fixes issue 3:
https://notabug.org/libreboot/lbmk/issues/3

In this issue, GM45 laptops such as X200/T400 will hang on reboot (normal boot
works, and shutting down works too).
2021-08-23 09:31:56 +01:00
madbehaviorus b152f3ae01 The tianocore build script fails, because there are no coreboot-version file are available. So I set it as commit and the script works like a charm 2021-06-06 11:31:05 +02:00
Ron Nazarov 0fadeed493 replace #!/bin/bash with #!/usr/bin/env bash 2021-06-03 12:47:08 +01:00
Canberk TURAN 0e2459270d Turkish Q Keyboard Layout Added 2021-05-23 16:30:08 +00:00
Leah Rowe b4bcdc42f0 build/release/src: don't auto-download tianocore
it will already be there, if it was used when build rom images
2021-05-23 00:49:12 +01:00
Leah Rowe 15e4b8a00c build/crossgcc: insert .coreboot-version 2021-05-22 20:28:41 +01:00
Leah Rowe 85ec4e0e08 board/x301: add new board
similar to x200
2021-05-22 20:19:45 +01:00
Leah Rowe cba1e5bf3c board/d945gclf/cfg: re-do config 2021-05-22 20:03:27 +01:00
Leah Rowe 911bd74495 board/d510mo/cfg: re-do config 2021-05-22 20:00:04 +01:00
Leah Rowe 3db7b791d6 board/d510mo/cfg: enable payload_grub_withseabios 2021-05-22 19:59:58 +01:00
Leah Rowe 1d1d069bdc board/kfsn4-dre/cfg: re-do config. 1mb and 2mb roms available
libgfxinit_txtmode with seabios only
2021-05-22 19:53:02 +01:00
Leah Rowe 5c5e3baf92 board/g43t-am3/cfg: re-do configs. libgfxinit_txtmode only
For add-on GPU, use one of the SeaBIOS images.
2021-05-22 19:39:57 +01:00
Leah Rowe 943e1afd6b board/ga-g41m-es2l/cfg: re-do config. libgfxinit_txtmode only
Use seabios ROM if you want to use an add-on GPU.
seabios_withgrub and seabios_grubfirst are also available.
2021-05-22 19:31:35 +01:00
Leah Rowe 43dd4d5446 board/ga-g41m-es2l/cfg: enable payload_grub_withseabios
SeaBIOS should fit nicely, now that memtest is disabled
2021-05-22 19:31:25 +01:00
Leah Rowe 52d8fccaae don't include memtest by default. make it a board.cfg option 2021-05-22 19:21:24 +01:00
Leah Rowe cfd47cc0a5 build/roms: re-do KCMA-D8 and KGPE-D16 configs
2MiB and 16MiB were the only flash sizes supported. 4 and 8MiB have been
added.

Now there are only libgfxinit_txtmode configs.

Use seabios_withgrub or seabios_grubfirst ROMs if you wish to use an add-on
GPU.
2021-05-22 18:39:51 +01:00
Leah Rowe ce0013aebf download/ich9utils: download the libreboot version instead
it's exactly the same anyway
2021-05-18 17:07:29 +01:00
Leah Rowe 89517ed6b9 libreboot!
this is forked from the "libre" branch in osboot, which is itself a libre,
deblobbed fork of osboot, a blobbed up fork of libreboot

libreboot needed to be purged clean. this is the new libreboot development
repository. the old one has been abandoned
2021-05-18 13:56:12 +01:00