diff --git a/site/tasks/index.md b/site/tasks/index.md index 891bd8c..1286f92 100644 --- a/site/tasks/index.md +++ b/site/tasks/index.md @@ -21,12 +21,6 @@ how to submit patches, and it describes the Libreboot project infrastructure. You may also benefit from *assimilating* all knowledge contained in the *[lbmk maintenance manual](../docs/maintain/).* -U-Boot test/lib/strlcat.c -========================= - -Delete this file, in U-Boot trees, before the next release -after Libreboot 20231106. - Rockchip RK3588 SoCs in coreboot ================================ @@ -122,11 +116,9 @@ Boards * HP Revolve 810 G1 * HP EliteBook Folio 9480m * HP EliteBook 8770w -* HP EliteBook 820 G2 * 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 -* Dell OptiPlex 7020 and 9020 * MSI PRO Z690-A mainboard (supported by Dasharo, not sure about coreboot) - also, Dasharo supports several more mainboards that aren't in coreboot proper. @@ -773,62 +765,6 @@ specs for it, are provided for in the above linked issue page. Several more high-end HP EliteBook machines use MXM graphics modules, e.g. HP EliteBook 8560w. -MXM works! TODO: merge ----------------------- - -Riku got it working. See: - -* SeaBIOS patch 1: -* SeaBIOS patch 2: -* mxmdump util: -* int tool: - -the "int" tool can be used to determine what mxm spec you have, and the mxmdump -util can be used to dump the mxm config. on systems where there is no i2c rom, -the system firmware (in this case libreboot) must provide it via int15h -interrupt. riku's seabios patches implement this. - -TODO: Document this properly, if not already documented. - -John lane GRUB patches -====================== - -The GRUB project itself has started merging some of this functionality, for -things like detached LUKS headers. We had these for GRUB in Libreboot 2016 -releases, but they were since removed. - -Current functionality works on most setups, and we merge [Argon2 -KDF support](../news/argon2.md) into GRUB, out-of-tree. - -See: - -Interesting, the Arch Linux AUR has several of these patches for its -GRUB 2.06 package. See: - - -These could be re-based for GRUB 2.12, which is what Libreboot uses. - -Already merged --------------- - -GRUB 2.12 has these patches already, so we don't need to do anything. The -above pertains to GRUB 2.06, but they were upstreamed for 2.12. That being -said, we do have some users who like 2.06 for some reason! - -Document how to use -------------------- - -John lane's site even has instructions for how to use detached LUKS headers -in GRUB. - -Maybe we could do something for it in automation too. When scanning for -grub.cfg files, at the stage where cryptomount -a is executed, we could -also check for LUKS header files and handle them if found. Yes, we could make -the default Libreboot setup work out of the box, with detached LUKS headers. -We already have this functionality, as described above, but we need to -configure it. Read John Lane's site for more information, and the upstream -GRUB documentation will also cover it. - lbmk-c: clustered builds ======================== @@ -1073,133 +1009,6 @@ some boards, though it's seldom-used and not very universally supported. It might be useful on some machines. The research here (by Angel Pons) may be transferrable to other platforms. -Better dependencies handling -============================ - -Lbmk supports handling dependencies, in such a way that a required program is -automatically downloaded *after* the main one. For example, GRUB requires gnulib. - -The problem is that it doesn't work in reverse. For example, when you download -gnulib, it's actually saved under `src/grub/gnulib`, and `src/grub/` is the -directory created when downloading GRUB. - -Illustration: - -``` -./update trees -f gnulib -./update trees -f grub -``` - -This will first download gnulib, but then `src/grub` now exists, and the second -command to download GRUB will fail, because that directory now exists, but does -not have anything in it. Some checks for GRUB may then pass, thinking that -GRUB has already been downloaded, when it hasn't. - -Observe: - -``` -no u lbmk$ git clone . test -Cloning into 'test'... -cdone. - dno u lbmk$ c dtest -bash: c: command not found -no u lbmk$ l^C -no u lbmk$ cd test -no u test$ ls -build COPYING projectname script util -config include README.md update vendor -no u test$ ./update trees -f gnulib -Cloning into '/home/leah/Project/lbdev/lbmk/test/tmp/gitclone'... -remote: Counting objects: 281482, done. -remote: Compressing objects: 100% (33030/33030), done. -remote: Total 281482 (delta 248520), reused 281273 (delta 248367) -Receiving objects: 100% (281482/281482), 69.48 MiB | 7.98 MiB/s, done. -Resolving deltas: 100% (248520/248520), done. -HEAD is now at 9f48fb992a filevercmp: fix several unexpected results -no u test$ ./update trees -f grub -src/grub already exists, so skipping download -src/grub/gnulib already exists, so skipping download -``` - -In this case, GRUB will now *always* fail to download, until the `src/grub` -directory is deleted, which would delete gnulib. - -The following could be done: - -* Check whether a given location for a download is within a location used by - another project, and refuse to do anything if that's the case (exit with error) - OR: -* Automatically download that other program first - -It's probably cleaner to go with the first one. Prevent a program downloaded by -lbmk from being included within another. If another such program is needed -inside another, for example as a submodule, then the program could be modified. -For example, modify GRUB to use the location of `../gnulib` as the directory -for gnulib, where you would then have `src/grub` and `src/gnulib` - this can -already be done, simply by configuring everything in `config/git/`, but lbmk -currently does not check this. - -For comparison, here's what happens if you download GRUB (which defines gnulib -as a dependency): - -``` -no u test$ rm -Rf src/grub -no u test$ ./update trees -f grub -Cloning into '/home/leah/Project/lbdev/lbmk/test/tmp/gitclone'... -remote: Counting objects: 101717, done. -remote: Compressing objects: 100% (23307/23307), done. -remote: Total 101717 (delta 76079), reused 101552 (delta 75971) -Receiving objects: 100% (101717/101717), 71.90 MiB | 12.85 MiB/s, done. -Resolving deltas: 100% (76079/76079), done. -HEAD is now at 64e3cee72 gpt: Add compile time asserts for guid and gpt_partentry sizes -Applying: mitigate grub's missing characters for borders/arrow characters -Applying: say the name libreboot, in the grub menu -Applying: Add CC0 license -Applying: Define GRUB_UINT32_MAX -Applying: Add Argon2 algorithm -Applying: Error on missing Argon2id parameters -Applying: Compile with Argon2id support -Applying: Make grub-install work with Argon2 -Applying: at_keyboard coreboot: force scancodes2+translate -Applying: keylayouts: don't print "Unknown key" message -Applying: don't print missing prefix errors on the screen -Applying: don't print error if module not found -Applying: don't print empty error messages -Cloning into '/home/leah/Project/lbdev/lbmk/test/tmp/gitclone'... -remote: Counting objects: 281482, done. -remote: Compressing objects: 100% (33030/33030), done. -remote: Total 281482 (delta 248520), reused 281273 (delta 248367) -Receiving objects: 100% (281482/281482), 69.48 MiB | 9.55 MiB/s, done. -Resolving deltas: 100% (248520/248520), done. -HEAD is now at 9f48fb992a filevercmp: fix several unexpected results -no u test$ ls src/grub -acinclude.m4 BUGS docs INSTALL po TODO -asm-tests conf geninit.sh linguas.sh README unicode -AUTHORS config.h.in gentpl.py MAINTAINERS SECURITY util -autogen.sh configure.ac gnulib Makefile.am tests -bootstrap COPYING grub-core Makefile.util.def THANKS -bootstrap.conf coreboot.cfg include NEWS themes -no u test$ ls src/grub/gnulib -build-aux COPYING gnulib-tool.py.TODO posix-modules -cfg.mk DEPENDENCIES lib pygnulib -ChangeLog doc m4 README -check-AC_LIBOBJ etc Makefile STATUS-libposix -check-copyright examples modules tests -check-module gnulib-tool MODULES.html.sh top -config gnulib-tool.py NEWS users.txt -``` - -A more general audit is in order, overhauling the entire dependencies -infrastracture, within lbmk. A lot of the sanity checking is done manually, just -by configuring everything sensibly and knowing what pitfalls to avoid. - -Libreboot is essentially no different to apt-get, in so far an lbmk is -concerned. The *apk* package manager in Alpine Linux is the closest to lbmk -mentality; their package manager is highly advanced, but written with a very -minimalist and efficient design. Libreboot's handling of packages and -dependencies could be re-modelled -using [apk-tools](https://git.alpinelinux.org/apk-tools/) as inspiration. - Detect module changes ===================== @@ -1318,41 +1127,6 @@ way to ensure that they were correctly extracted, though it could default back to current behaviour (only check the main file) if individual checksums for inside files are not defined. -Handle submodules manually -========================== - -Lbmk automatically downloads git submodules (all of them) on a given downloaded -repository, when a `.gitmodules` file is present. This functionality should -be *retained*, but submodules are also not to be relied upon for redundancy. - -In some cases, especially critical projects like coreboot, these submodules -should be defined by lbmk `config/git/` files instead, with redundant -repositories, and the host projects (e.g. coreboot) modified to use these, -instead of gitmodules. - -Git's own submodules logic doesn't handle redundancy really well and it's not -very fault tolerant either. Libreboot's lbmk, while less featureful, is -designed for redundancy. - -What if someone is compiling a given revision of lbmk in 10 years from now? -Some of those repository links might have died, or those projects might have -experienced a hostile takeover and been overwritten. Anything can happen. -If there are backup repository links already baked into lbmk configs, it offers -some redundancy in the future. - -It also offers some redundancy now, in the present, if a given git server goes -offline for a break period of time. Libreboot's design is quite simple, and done -with this philosophy in mind, that everything should always have a backup. - -Auto-update repositories ------------------------- - -Already written elsewhere on this TODO page is to automatically decide which -repositories need updating, when running any part of lbmk. This is thought of -with the same mentality in mind, always thinking about what someone will be -running in the future. You can't predict what will happen, so you have to be -prepared. Users are unpredictable. - Reproducible builds =================== @@ -1637,14 +1411,6 @@ 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. -Scan submodules for backups ---------------------------- - -Where a project does use submodules, it's possible that we may already define -how to download it, with redundant links. We could scan for this, by parsing -the `.gitmodules` file within a project and comparing to what we have -under `config/git/`. - Chinese users can't run lbmk ========================== @@ -2025,20 +1791,6 @@ And also this, straight from the horse's mouth: -GRUB nvme support -================= - -GRUB doesn't support nvme on bare metal. - -SeaBIOS does. - -Libreboot is getting a lot of new ports, and some of them can use nvme -drives. We need nvme support in GRUB. - -TODO: adapt SeaBIOS nvme code for GRUB. Also submit upstream. - -GRUB can do nvme but only if it's supported by the (UEFI) vendor firmware. - 4th SSD on T440p ================