From 6988c9c4dbff700f6eb66edeb1a00e8b59ec6fc0 Mon Sep 17 00:00:00 2001 From: Ophestra Date: Sun, 8 Mar 2026 22:49:37 +0900 Subject: [PATCH] internal/rosa: firmware artifact Required for generic hardware. Signed-off-by: Ophestra --- internal/rosa/all.go | 2 ++ internal/rosa/kernel.go | 52 +++++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+) diff --git a/internal/rosa/all.go b/internal/rosa/all.go index 61460dd..8817fb0 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 9d19d35..a7da81d 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, + } +}