work on pi5 kernel

This commit is contained in:
chaos 2024-09-04 10:05:55 +01:00
parent 00e93b7789
commit 9215a46e2c
No known key found for this signature in database
6 changed files with 104 additions and 4 deletions

View file

@ -84,11 +84,14 @@ in {
];
boot = {
kernelPackages = pkgs.linuxPackages_rpi4;
kernelPackages = pkgs.linuxPackages_rpi5;
supportedFilesystems = mkForce ["vfat"];
kernelParams = [
"kunit.enable=0"
"console=ttyS0,115200n8"
"console=tty0"
"ip=192.168.178.26::192.168.178.1:255.255.255.0:raspberry:end0:any"
"boot.shell_on_fail"
"nohibernate"

View file

@ -49,6 +49,7 @@ in
inherit (pkgs) mk-enc-usb mk-encrypted-drive;
inherit (pkgs) gotosocial mpd-headless;
inherit (pkgs) kitty-terminfo;
inherit (pkgs) linux_rpi5;
inherit (inputs.home-manager-unstable.packages."${system}") home-manager;
};
}

View file

@ -12,6 +12,15 @@ final: prev: rec {
vault = prev.vault-bin;
linux_rpi5 = final.callPackage ./linux-rpi5.nix {
kernelPatches = with final.kernelPatches; [
bridge_stp_helper
request_key_helper
];
};
linuxPackages_rpi5 = final.linuxPackagesFor linux_rpi5;
mpd-headless =
(prev.mpdWithFeatures.override {
ffmpeg = final.ffmpeg_6-headless;

82
overlay/linux-rpi5.nix Normal file
View file

@ -0,0 +1,82 @@
{
lib,
fetchFromGitHub,
buildLinux,
fetchpatch,
...
} @ args: let
# NOTE: raspberrypifw & raspberryPiWirelessFirmware should be updated with this
modDirVersion = "6.6.31";
tag = "stable_20240529";
in
lib.overrideDerivation (buildLinux (args
// {
version = "${modDirVersion}-${tag}";
inherit modDirVersion;
src = fetchFromGitHub {
owner = "raspberrypi";
repo = "linux";
rev = tag;
hash = "sha256-4Rc57y70LmRFwDnOD4rHoHGmfxD9zYEAwYm9Wvyb3no=";
};
defconfig = "bcm2712_defconfig";
features =
{
efiBootStub = false;
}
// (args.features or {});
kernelPatches =
(args.kernelPatches or [])
++ [
# Fix "WARNING: unmet direct dependencies detected for MFD_RP1", and
# subsequent build failure.
# https://github.com/NixOS/nixpkgs/pull/268280#issuecomment-1911839809
# https://github.com/raspberrypi/linux/pull/5900
{
name = "drm-rp1-depends-on-instead-of-select-MFD_RP1.patch";
patch = fetchpatch {
url = "https://github.com/peat-psuwit/rpi-linux/commit/6de0bb51929cd3ad4fa27b2a421a2af12e6468f5.patch";
hash = "sha256-9pHcbgWTiztu48SBaLPVroUnxnXMKeCGt5vEo9V8WGw=";
};
}
# Fix `ERROR: modpost: missing MODULE_LICENSE() in <...>/bcm2712-iommu.o`
# by preventing such code from being built as module.
# https://github.com/NixOS/nixpkgs/pull/284035#issuecomment-1913015802
# https://github.com/raspberrypi/linux/pull/5910
{
name = "iommu-bcm2712-don-t-allow-building-as-module.patch";
patch = fetchpatch {
url = "https://github.com/peat-psuwit/rpi-linux/commit/693a5e69bddbcbe1d1b796ebc7581c3597685b1b.patch";
hash = "sha256-8BYYQDM5By8cTk48ASYKJhGVQnZBIK4PXtV70UtfS+A=";
};
}
];
extraMeta = {
platforms = with lib.platforms; arm ++ aarch64;
hydraPlatforms = ["aarch64-linux"];
};
}
// (args.argsOverride or {}))) (_oldAttrs: {
postConfigure = ''
# The v7 defconfig has this set to '-v7' which screws up our modDirVersion.
sed -i $buildRoot/.config -e 's/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=""/'
sed -i $buildRoot/include/config/auto.conf -e 's/^CONFIG_LOCALVERSION=.*/CONFIG_LOCALVERSION=""/'
'';
postFixup = ''
dtbDir=$out/dtbs/broadcom
rm $dtbDir/bcm283*.dtb
copyDTB() {
cp -v "$dtbDir/$1" "$dtbDir/$2"
}
copyDTB bcm2711-rpi-4-b.dtb bcm2838-rpi-4-b.dtb
'';
})

View file

@ -1 +1,6 @@
{...}: { hardware.logitech.wireless = { enable = true; enableGraphical = true; }; }
{...}: {
hardware.logitech.wireless = {
enable = true;
enableGraphical = true;
};
}

View file

@ -35,7 +35,7 @@ in {
{
hostName = "hetzner-arm.servers.genderfucked.monster";
systems = ["aarch64-linux"];
supportedFeatures = ["native-arm64"];
supportedFeatures = ["native-arm64" "big-parallel"];
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUk5cGM0REU1UlV4UUp2T1pwenFOQWVac0JlRW1kcmp4OFlnV3orVXBMckcgcm9vdEBoZXR6bmVyLWFybQo=";
maxJobs = 3;
speedFactor = 1;
@ -46,7 +46,7 @@ in {
{
hostName = "raspberry-pi5.servers.genderfucked.monster";
systems = ["aarch64-linux"];
supportedFeatures = ["native-arm64"];
supportedFeatures = ["native-arm64" "big-parallel"];
publicHostKey = "c3NoLWVkMjU1MTkgQUFBQUMzTnphQzFsWkRJMU5URTVBQUFBSUNZNFpuQ1NVeWpjOHR3UXVpMzhwU21qdHluSVZUVnFiNzB5blNRa0Z3anYgcm9vdEByYXNwYmVycnkK";
maxJobs = 4;
speedFactor = 4;