Add firmware packaging and validation scripts

Red Bear OS Team
This commit is contained in:
2026-04-16 12:45:24 +01:00
parent 54e63420ec
commit 7b98843b97
1012 changed files with 121829 additions and 0 deletions
@@ -0,0 +1,61 @@
[source]
# Local overlay recipe. Firmware sources are fetched during the custom build step into a shared
# cache, then staged into /lib/firmware.
path = "source"
upstream = "https://gitlab.com/kernel-firmware/linux-firmware.git"
[build]
template = "custom"
script = """
FIRMWARE_URL="https://gitlab.com/kernel-firmware/linux-firmware/-/archive/main/linux-firmware-main.tar.gz"
CACHE_DIR="${COOKBOOK_ROOT}/build/redbear-firmware-cache"
ARCHIVE="${CACHE_DIR}/linux-firmware-main.tar.gz"
EXTRACTED="${CACHE_DIR}/linux-firmware-main"
mkdir -p "${CACHE_DIR}"
if [ ! -f "${ARCHIVE}" ]; then
wget -O "${ARCHIVE}" "${FIRMWARE_URL}"
fi
rm -rf "${EXTRACTED}"
mkdir -p "${EXTRACTED}"
tar -xf "${ARCHIVE}" -C "${EXTRACTED}" --strip-components=1
mkdir -p "${COOKBOOK_STAGE}/lib/firmware"
mkdir -p "${COOKBOOK_STAGE}/lib/firmware/LICENSES"
# Install all firmware payloads from linux-firmware while keeping license metadata separate.
while IFS= read -r -d '' file; do
rel="${file#${EXTRACTED}/}"
case "$(basename "$rel")" in
README|README.md|Makefile|check_whence.py)
continue
;;
LICENCE*|LICENSE*)
install -Dm0644 "$file" "${COOKBOOK_STAGE}/lib/firmware/LICENSES/$(basename "$rel")"
continue
;;
WHENCE)
install -Dm0644 "$file" "${COOKBOOK_STAGE}/lib/firmware/LICENSES/WHENCE"
continue
;;
esac
install -Dm0644 "$file" "${COOKBOOK_STAGE}/lib/firmware/${rel}"
done < <(find "${EXTRACTED}" -type f -print0)
cat > "${COOKBOOK_STAGE}/lib/firmware/LICENSES/index.txt" <<'EOF'
Red Bear firmware bundle
========================
Firmware under /lib/firmware is third-party upstream firmware from linux-firmware.
Licenses vary by vendor and artifact.
See:
- /lib/firmware/LICENSES/WHENCE
- /lib/firmware/LICENSES/LICENCE.*
- /lib/firmware/LICENSES/LICENSE*
Firmware is redistributed unmodified and remains under its own licenses.
EOF
"""