nix-files/pkgs/additional/linux-firmware-megous/default.nix

42 lines
1.3 KiB
Nix

{ stdenv
, lib
, fetchgit
, anx7688 ? true # USB-C chip (pinephone)
, ov5640 ? true # camera (pinephone: rear camera)
, rtl_bt ? true # rtl8723cs bluetooth (pinephone)
# other files in megi's repo:
# - brcm/
# - brcmfmac43362-*
# - brcmfmac43455-sdio-*: BCM43455 WiFi/BT (raspberry pi 4b)
# - brcmfmac43456-*
# - hm5065-*.bin: 5 MP sensor used in the pine devboards (likely not in the phones)
# - regulatory.db
# - rockchip/dptx.bin
# - rtlwifi/rtl8188eufw.bin
# - rtw88/rtw8822c-*.bin
# - rtw89/rtw8852a_fw.bin
}:
stdenv.mkDerivation {
name = "linux-firmware-megous";
version = "unstable-2023-2023-05-06";
src = fetchgit {
url = "https://megous.com/git/linux-firmware";
rev = "0510074346983ad33b3d52ce8f5d6a8f89a564a8";
hash = "sha256-qZVkGv4PCqKSYz92yy0+9oZY7dPW24rmj5obeaVXt0Y=";
};
dontBuild = true;
installPhase = ''
mkdir -p "$out/lib/firmware"
${lib.optionalString rtl_bt "cp -R rtl_bt $out/lib/firmware"}
${lib.optionalString anx7688 "cp anx7688-fw.bin $out/lib/firmware"}
${lib.optionalString ov5640 "cp ov5640_af.bin $out/lib/firmware"}
'';
meta = with lib; {
description = "firmware files associated with megi's kernel, particularly for the pinephone";
homepage = "https://xnux.eu/howtos/build-pinephone-kernel.html#toc-firmware-files";
};
}