rpi5: boots now automatically, with correct config
parent
fe726b3452
commit
def1f40aa6
|
@ -55,7 +55,8 @@ in {
|
|||
echo ''${path/\/nix\/store\/}
|
||||
}
|
||||
|
||||
cp ${pkgs.rpi5-uefi}/* firmware
|
||||
cp -v ${pkgs.rpi5-uefi}/* firmware
|
||||
cp -v ${pkgs.rpi5-dtb}/* firmware
|
||||
|
||||
mkdir -p firmware/EFI/nixos
|
||||
touch firmware/EFI/nixos-sd-system-image
|
||||
|
@ -91,7 +92,7 @@ in {
|
|||
serial --speed=115200 --unit=0 --word=8 --parity=no --stop=1
|
||||
terminal_output console serial
|
||||
|
||||
timeout 10
|
||||
set timeout=10
|
||||
set default="0"
|
||||
|
||||
menuentry '${config.system.nixos.distroName} ${config.system.nixos.label}' {
|
||||
|
@ -99,7 +100,6 @@ in {
|
|||
toString config.boot.kernelParams
|
||||
}
|
||||
initrd /EFI/nixos/$initrdFile
|
||||
devicetree /bcm2712-rpi-5-b.dtb
|
||||
}
|
||||
EOF
|
||||
'';
|
||||
|
|
|
@ -13,4 +13,5 @@ self: super: rec {
|
|||
rpi5-edk2-tools = self.callPackage ../pkgs/rpi5-edk2-tools.nix { };
|
||||
rpi5-uefi = self.callPackage ../pkgs/rpi5-uefi.nix { };
|
||||
rpi5-uefi-bin = self.callPackage ../pkgs/rpi5-uefi-bin.nix { };
|
||||
rpi5-dtb = self.callPackage ../pkgs/rpi5-dtb.nix { };
|
||||
}
|
||||
|
|
|
@ -0,0 +1,26 @@
|
|||
{ stdenv, fetchurl, ... }:
|
||||
|
||||
let
|
||||
dtbVersion = "1e403e23baab5673f0494a200f57cd01287d5b1a";
|
||||
fileName = "bcm2712-rpi-5-b.dtb";
|
||||
in
|
||||
stdenv.mkDerivation {
|
||||
pname = "rpi5-dtb";
|
||||
version = "20240316";
|
||||
|
||||
src = fetchurl {
|
||||
url = "https://github.com/raspberrypi/firmware/raw/${dtbVersion}/boot/${fileName}";
|
||||
hash = "sha256-xUMqzINz+mMR4UciG4ulyGhblXcwr6x1ksXerCsn5zI=";
|
||||
};
|
||||
|
||||
phases = [ "installPhase" ];
|
||||
|
||||
installPhase = ''
|
||||
runHook preInstall
|
||||
|
||||
mkdir -p $out/
|
||||
cp $src $out/${fileName}
|
||||
|
||||
runHook postInstall
|
||||
'';
|
||||
}
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
let version = "v0.3";
|
||||
in stdenv.mkDerivation {
|
||||
pname = "rpi5-uefi";
|
||||
pname = "rpi5-uefi-bin";
|
||||
inherit version;
|
||||
|
||||
src = fetchzip {
|
||||
|
|
|
@ -3,10 +3,9 @@
|
|||
|
||||
let pythonEnv = buildPackages.python3.withPackages (ps: [ ps.tkinter ]);
|
||||
in stdenv.mkDerivation rec {
|
||||
name = "rpi5-uefi";
|
||||
version = "20240316";
|
||||
pname = "rpi5-uefi";
|
||||
|
||||
inherit (rpi5-edk2-tools) src;
|
||||
inherit (rpi5-edk2-tools) src version;
|
||||
|
||||
nativeBuildInputs = [ bc pythonEnv util-linux nasm acpica-tools ];
|
||||
depsBuildBuild = [ buildPackages.stdenv.cc ];
|
||||
|
@ -22,7 +21,8 @@ in stdenv.mkDerivation rec {
|
|||
ln -sv ${rpi5-edk2-tools}/BaseTools edk2/BaseTools
|
||||
|
||||
sed -i -e '/ACPI_SD_LIMIT_UHS_DEFAULT/s/TRUE/FALSE/' edk2-platforms/Platform/RaspberryPi/RPi5/Drivers/RpiPlatformDxe/ConfigTable.h
|
||||
sed -i -e '/default\s*= SYSTEM_TABLE_MODE_ACPI/s/SYSTEM_TABLE_MODE_ACPI/SYSTEM_TABLE_MODE_BOTH/' ./edk2-platforms/Platform/RaspberryPi/RPi5/Drivers/RpiPlatformDxe/RpiPlatformDxeHii.vfr
|
||||
sed -i -e '/default\s*= SYSTEM_TABLE_MODE_ACPI/s/SYSTEM_TABLE_MODE_ACPI/SYSTEM_TABLE_MODE_BOTH/' edk2-platforms/Platform/RaspberryPi/RPi5/Drivers/RpiPlatformDxe/RpiPlatformDxeHii.vfr
|
||||
sed -i -e '/"SystemTableMode"/s/0$/1/' edk2-platforms/Platform/RaspberryPi/RPi5/RPi5.dsc
|
||||
'';
|
||||
|
||||
configurePhase = ''
|
||||
|
|
Loading…
Reference in New Issue