diff options
| author | Ophestra <cat@gensokyo.uk> | 2026-03-08 22:49:37 +0900 |
|---|---|---|
| committer | Ophestra <cat@gensokyo.uk> | 2026-03-08 22:50:36 +0900 |
| commit | 6988c9c4dbff700f6eb66edeb1a00e8b59ec6fc0 (patch) | |
| tree | 7774b22caf25c0d5145fdffa3159af0b8941790e /internal | |
| parent | d6e0ed8c76ba327c180fe384171768bbe1898ca0 (diff) | |
internal/rosa: firmware artifact
Required for generic hardware.
Signed-off-by: Ophestra <cat@gensokyo.uk>
Diffstat (limited to 'internal')
| -rw-r--r-- | internal/rosa/all.go | 2 | ||||
| -rw-r--r-- | internal/rosa/kernel.go | 52 |
2 files changed, 54 insertions, 0 deletions
diff --git a/internal/rosa/all.go b/internal/rosa/all.go index 61460dd4..8817fb02 100644 --- a/internal/rosa/all.go +++ b/internal/rosa/all.go @@ -30,6 +30,8 @@ const ( KernelHeaders // KernelSource is a writable kernel source tree installed to [AbsUsrSrc]. KernelSource + // Firmware is firmware blobs for use with the Linux kernel. + Firmware ACL ArgpStandalone diff --git a/internal/rosa/kernel.go b/internal/rosa/kernel.go index 9d19d352..a7da81d1 100644 --- a/internal/rosa/kernel.go +++ b/internal/rosa/kernel.go @@ -1272,3 +1272,55 @@ func init() { Description: "a program in the kernel source tree for creating initramfs archive", } } + +func (t Toolchain) newFirmware() (pkg.Artifact, string) { + const ( + version = "20260221" + checksum = "vTENPW5rZ6yLVq7YKDLHkCVgKXvwUWigEx7T4LcxoKeBVYIyf1_sEExeV4mo-e46" + ) + return t.NewPackage("firmware", version, pkg.NewHTTPGetTar( + nil, "https://gitlab.com/kernel-firmware/linux-firmware/-/"+ + "archive/"+version+"/linux-firmware-"+version+".tar.bz2", + mustDecode(checksum), + pkg.TarBzip2, + ), &PackageAttr{ + // dedup creates temporary file + Writable: true, + // does not use configure + EnterSource: true, + + Env: []string{ + "HOME=/proc/nonexistent", + }, + }, &MakeHelper{ + OmitDefaults: true, + SkipConfigure: true, + InPlace: true, + + Make: []string{ + "DESTDIR=/work/system", + "install-zst", + }, + SkipCheck: true, // requires pre-commit + Install: `make "-j$(nproc)" DESTDIR=/work/system dedup`, + }, + Perl, + Parallel, + Nettle, + Rdfind, + Zstd, + Findutils, + Coreutils, + ), version +} +func init() { + artifactsM[Firmware] = Metadata{ + f: Toolchain.newFirmware, + + Name: "firmware", + Description: "firmware blobs for use with the Linux kernel", + Website: "https://git.kernel.org/pub/scm/linux/kernel/git/firmware/linux-firmware.git/", + + ID: 141464, + } +} |
