diff options
Diffstat (limited to 'pkgs/os-specific/linux/raspberrypi-eeprom/default.nix')
-rw-r--r-- | pkgs/os-specific/linux/raspberrypi-eeprom/default.nix | 55 |
1 files changed, 55 insertions, 0 deletions
diff --git a/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix b/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix new file mode 100644 index 00000000000..5113d3c1070 --- /dev/null +++ b/pkgs/os-specific/linux/raspberrypi-eeprom/default.nix @@ -0,0 +1,55 @@ +{ stdenvNoCC, lib, fetchFromGitHub, makeWrapper +, python3, binutils-unwrapped, findutils, kmod, pciutils, libraspberrypi +}: +stdenvNoCC.mkDerivation rec { + pname = "raspberrypi-eeprom"; + version = "2021.04.29-138a1"; + + src = fetchFromGitHub { + owner = "raspberrypi"; + repo = "rpi-eeprom"; + rev = "v${version}"; + sha256 = "sha256-nzAMPa4gqCAcROFa7z34IoMA3aoMHX9fYCsPFde9dac="; + }; + + buildInputs = [ python3 ]; + nativeBuildInputs = [ makeWrapper ]; + + postPatch = '' + # Don't try to verify md5 signatures from /var/lib/dpkg and + # fix path to the configuration. + substituteInPlace rpi-eeprom-update \ + --replace 'IGNORE_DPKG_CHECKSUMS=''${LOCAL_MODE}' 'IGNORE_DPKG_CHECKSUMS=1' \ + --replace '/etc/default' '/etc' + ''; + + installPhase = '' + mkdir -p $out/bin $out/share/rpi-eeprom + + cp rpi-eeprom-config rpi-eeprom-update $out/bin + cp -r firmware/{beta,critical,old,stable} $out/share/rpi-eeprom + ''; + + fixupPhase = '' + patchShebangs $out/bin + wrapProgram $out/bin/rpi-eeprom-update \ + --set FIRMWARE_ROOT $out/share/rpi-eeprom \ + ${lib.optionalString stdenvNoCC.isAarch64 "--set VCMAILBOX ${libraspberrypi}/bin/vcmailbox"} \ + --prefix PATH : "${lib.makeBinPath ([ + binutils-unwrapped + findutils + kmod + pciutils + (placeholder "out") + ] ++ lib.optionals stdenvNoCC.isAarch64 [ + libraspberrypi + ])}" + ''; + + meta = with lib; { + description = "Installation scripts and binaries for the closed sourced Raspberry Pi 4 EEPROMs"; + homepage = "https://www.raspberrypi.org/documentation/hardware/raspberrypi/booteeprom.md"; + license = with licenses; [ bsd3 unfreeRedistributableFirmware ]; + maintainers = with maintainers; [ das_j ]; + }; +} |