aboutsummaryrefslogtreecommitdiffhomepage
path: root/internal
diff options
context:
space:
mode:
authorOphestra <cat@gensokyo.uk>2026-03-08 22:49:37 +0900
committerOphestra <cat@gensokyo.uk>2026-03-08 22:50:36 +0900
commit6988c9c4dbff700f6eb66edeb1a00e8b59ec6fc0 (patch)
tree7774b22caf25c0d5145fdffa3159af0b8941790e /internal
parentd6e0ed8c76ba327c180fe384171768bbe1898ca0 (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.go2
-rw-r--r--internal/rosa/kernel.go52
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,
+ }
+}