rpi5: edk2 building, with default config
parent
718e2a32e3
commit
f355364c2e
|
@ -55,7 +55,7 @@ in {
|
|||
echo ''${path/\/nix\/store\/}
|
||||
}
|
||||
|
||||
cp ${pkgs.rpi5-uefi-bin}/boot/* firmware
|
||||
cp ${pkgs.rpi5-uefi}/* firmware
|
||||
|
||||
mkdir -p firmware/EFI/nixos
|
||||
touch firmware/EFI/nixos-sd-system-image
|
||||
|
@ -249,8 +249,6 @@ in {
|
|||
bluez
|
||||
pipewire
|
||||
(v4l-utils.override { withGUI = false; })
|
||||
|
||||
rpi5-edk2
|
||||
];
|
||||
programs.nix-index.enable = lib.mkForce false;
|
||||
services.journald.extraConfig = ''
|
||||
|
|
|
@ -1,6 +1,5 @@
|
|||
{ lib, stdenv, fetchFromGitHub, openssl
|
||||
, buildPackages, runCommand, clangStdenv, fetchpatch, libuuid
|
||||
, python3 }:
|
||||
{ lib, stdenv, fetchFromGitHub, openssl, buildPackages, runCommand, clangStdenv
|
||||
, fetchpatch, libuuid, python3 }:
|
||||
|
||||
let
|
||||
srcWithVendoring = fetchFromGitHub {
|
||||
|
@ -38,7 +37,7 @@ in stdenv.mkDerivation {
|
|||
# trick taken from https://src.fedoraproject.org/rpms/edk2/blob/08f2354cd280b4ce5a7888aa85cf520e042955c3/f/edk2.spec#_319
|
||||
GCC5_AARCH64_PREFIX = stdenv.cc.targetPrefix;
|
||||
|
||||
makeFlags = [ "-C edk2/BaseTools" ];
|
||||
makeFlags = [ "-C edk2/BaseTools" "-j 14" ];
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = "-Wno-return-type"
|
||||
+ lib.optionalString stdenv.cc.isGNU " -Wno-error=stringop-truncation"
|
||||
|
|
|
@ -1,49 +1,57 @@
|
|||
{ lib, stdenv, openssl, pkgsCross
|
||||
, buildPackages, runCommand, rpi5-arm-tf, rpi5-edk2-tools, libuuid
|
||||
, python3, bc }:
|
||||
{ lib, stdenv, openssl, pkgsCross, buildPackages, runCommand, rpi5-arm-tf
|
||||
, rpi5-edk2-tools, libuuid, python3, bc, util-linux, nasm, acpica-tools }:
|
||||
|
||||
let
|
||||
pythonEnv = buildPackages.python3.withPackages (ps: [ps.tkinter]);
|
||||
in stdenv.mkDerivation {
|
||||
name = "rpi5-arm-uefi";
|
||||
|
||||
inherit (rpi5-edk2-tools) src version;
|
||||
let pythonEnv = buildPackages.python3.withPackages (ps: [ ps.tkinter ]);
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "rpi5-uefi";
|
||||
version = "20240316";
|
||||
|
||||
nativeBuildInputs = [ bc pythonEnv ];
|
||||
inherit (rpi5-edk2-tools) src;
|
||||
|
||||
nativeBuildInputs = [ bc pythonEnv util-linux nasm acpica-tools ];
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
strictDeps = true;
|
||||
|
||||
# trick taken from https://src.fedoraproject.org/rpms/edk2/blob/08f2354cd280b4ce5a7888aa85cf520e042955c3/f/edk2.spec#_319
|
||||
GCC5_AARCH64_PREFIX = stdenv.cc.targetPrefix;
|
||||
|
||||
env.NIX_CFLAGS_COMPILE = toString [ "-Wformat" ];
|
||||
|
||||
prePatch = ''
|
||||
rm -rf BaseTools
|
||||
ln -sv ${rpi5-edk2-tools}/BaseTools BaseTools
|
||||
rm -rf edk2/BaseTools
|
||||
ln -sv ${rpi5-edk2-tools}/BaseTools edk2/BaseTools
|
||||
'';
|
||||
|
||||
configurePhase = ''
|
||||
runHook preConfigure
|
||||
export WORKSPACE="$PWD"
|
||||
. ${rpi5-edk2-tools}/edksetup.sh BaseTools
|
||||
export PACKAGES_PATH=$WORKSPACE/edk2:$WORKSPACE/edk2-platforms:$WORKSPACE/edk2-non-osi
|
||||
|
||||
. $WORKSPACE/edk2/edksetup.sh BaseTools
|
||||
runHook postConfigure
|
||||
'';
|
||||
|
||||
buildPhase = ''
|
||||
runHook preBuild
|
||||
|
||||
build -a AARCH64 \
|
||||
-b RELEASE \
|
||||
-t GCC \
|
||||
-p edk2-platforms/Platform/RaspberryPi/RPi5/RPi5.dsc \
|
||||
-D TFA_BUILD_ARTIFACTS=${rpi5-arm-tf} \
|
||||
--pcd gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString=L"${rpi5-edk2-tools.version}" \
|
||||
--pcd gEfiMdeModulePkgTokenSpaceGuid.PcdFirmwareVersionString=L"${version}" \
|
||||
-n $NIX_BUILD_CORES $buildFlags
|
||||
|
||||
|
||||
runHook postBuild
|
||||
'';
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
mv -v Build/*/* $out
|
||||
|
||||
mkdir -p $out
|
||||
mv -v Build/RPi5/RELEASE_GCC/FV/RPI_EFI.fd $out/
|
||||
mv -v config.txt $out/
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue