patos/pkgs/linux-firmware/post-install.sh

59 lines
1.5 KiB
Bash
Executable file

set -ex -uo pipefail
_pick() {
local p="$1" f d; shift
for f; do
d="$out/$p/${f#$out/}"
mkdir -p "$(dirname "$d")"
mv $out/"$f" "$d"
rm -rf $out/"$f"
done
}
_package() {
local p="$1"
mkdir -p $out/$p/usr/lib/extension-release.d
cat << EOF > $out/$p/usr/lib/extension-release.d/extension-release.$p
ID=patos
IMAGE_ID=$p
IMAGE_VERSION=$version
VERSION_ID=patos
EOF
mkfs.erofs --all-root -Efragments,dedupe,ztailpacking $out/$p.raw $out/$p
veritysetup format --root-hash-file $out/$p.roothash $out/$p.raw $out/$p.verity
}
# remove arm64 firmware https://bugs.archlinux.org/task/76583
rm $out/usr/lib/firmware/mrvl/prestera/mvsw_prestera_fw_arm64-v4.1.img.zst
_pick amd-ucode usr/lib/firmware/amd-ucode
_package amd-ucode
_pick linux-firmware-nfp usr/lib/firmware/netronome
_package linux-firmware-nfp
_pick linux-firmware-mellanox usr/lib/firmware/mellanox
_package linux-firmware-mellanox
_pick linux-firmware-marvell usr/lib/firmware/{libertas,mwl8k,mwlwifi,mrvl}
_package linux-firmware-marvell
_pick linux-firmware-qcom usr/lib/firmware/qcom
_package linux-firmware-qcom
_pick linux-firmware-liquidio usr/lib/firmware/liquidio
_package linux-firmware-liquidio
# _pick linux-firmware-qlogic usr/lib/firmware/{qlogic,qed,ql2???_*,c{b,t,t2}fw-*}
# _package linux-firmware-qlogic
# _pick linux-firmware-bnx2x usr/lib/firmware/bnx2x*
# _package linux-firmware-bnx2x
# and the rest is base firmware
_pick linux-firmware usr/lib/firmware
_package linux-firmware
# clean up
# rm -rf $out/usr