Files
RedBear-OS/docs/firmware.md
T
2026-04-16 12:46:07 +01:00

86 lines
2.6 KiB
Markdown

# Firmware in Red Bear OS
## Purpose
This document defines the Red Bear firmware policy.
Firmware is treated as third-party runtime content, not as normal project source code.
## Basic Rules
- firmware is third-party
- firmware licenses vary by vendor and artifact
- firmware remains under its own licenses
- firmware is redistributed unmodified
- firmware is loaded at runtime from the filesystem
- firmware should not be embedded into driver binaries
## Source and Packaging Model
Red Bear should package firmware separately from the core OS logic.
Recommended package-group model:
- `firmware-base`
- `firmware-intel`
- `firmware-amd`
- `firmware-wifi`
The current Red Bear package path for the broad upstream firmware corpus is:
- `local/recipes/system/redbear-firmware/`
That package is intended to stage firmware under:
- `/lib/firmware/`
License metadata should remain clearly separated inside the firmware tree, for example under:
- `/lib/firmware/LICENSES/`
## Licensing and Redistribution
The practical downstream model is the same one used by Linux distributions:
- Linux distributions ship `linux-firmware` as a separate package
- the operating system itself can remain under its own license
- firmware stays under the vendor license documented in `WHENCE` and related license files
Red Bear should follow the same model.
Do not claim a single Red Bear repo-wide license applies to the firmware blobs themselves.
## What Red Bear Must Not Do
- do not claim firmware is MIT just because Red Bear OS code is MIT-like or permissive
- do not remove vendor license files or `WHENCE`
- do not modify firmware blobs
- do not merge firmware blobs into normal source trees without clear separation
- do not assume every blob is redistributable without checking upstream `WHENCE` / license metadata
## Runtime Loading Rule
Drivers and userspace daemons should request firmware from the filesystem at runtime.
For Red Bear, the canonical runtime path is:
- `/lib/firmware/...`
The current helper daemon for that model is:
- `firmware-loader` providing `scheme:firmware`
This keeps the architecture cleaner and legally safer than embedding blobs into binaries.
## Upstream References
- upstream firmware source: `linux-firmware`
- upstream license and redistribution metadata: `WHENCE`
- vendor-specific license files: `LICENCE.*`, `LICENSE*`
## Bottom Line
Red Bear can distribute a Linux-firmware-derived firmware package, but it must do so as separate
firmware content with its own license metadata, installed under `/lib/firmware/`, and loaded at
runtime rather than compiled into project binaries.