mirror of
https://github.com/icewind1991/nvidia-patch-nixos.git
synced 2026-06-03 11:04:06 +02:00
switch to overlay
This commit is contained in:
parent
7125db93f2
commit
a4e8e6f4e7
2 changed files with 36 additions and 26 deletions
11
README.md
11
README.md
|
|
@ -9,9 +9,15 @@ nvidia-patch flake for NixOS
|
|||
nvidia-patch.url = "github:icewind1991/nvidia-patch-nixos";
|
||||
```
|
||||
|
||||
- Apply the overlay:
|
||||
```
|
||||
nixpkgs.overlays = [inputs.nvidia-patch.overlay];
|
||||
```
|
||||
|
||||
- Apply the patch to your nvidia package
|
||||
```nix
|
||||
{
|
||||
pkgs,
|
||||
config,
|
||||
inputs,
|
||||
system,
|
||||
|
|
@ -21,13 +27,12 @@ nvidia-patch flake for NixOS
|
|||
hash = "sha256-+BkDUfVqqYMAG62OarNPJiNfghvHpOhhMlS5H+SV1dQ="; # sha256sum for https://github.com/keylase/nvidia-patch at the specified revision
|
||||
|
||||
# create patch functions for the specified revision
|
||||
patchFbc = driverPackage: (inputs.nvidia-patch.patchFbc.${system} driverPackage rev hash);
|
||||
patchNvenc = driverPackage: (inputs.nvidia-patch.patchNvenc.${system} driverPackage rev hash);
|
||||
nvidia-patch = pkgs.nvidia-patch rev hash;
|
||||
|
||||
# nvidia package to patch
|
||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||
in {
|
||||
hardware.nvidia.package = patchNvenc (patchFbc package);
|
||||
hardware.nvidia.package = nvidia-patch.patch-nvenc (nvidia-patch.patch-fbc package);
|
||||
}
|
||||
|
||||
```
|
||||
51
flake.nix
51
flake.nix
|
|
@ -20,27 +20,32 @@
|
|||
devShell = pkgs.mkShell {
|
||||
nativeBuildInputs = with pkgs; [jq patch];
|
||||
};
|
||||
|
||||
extract = pkgs.callPackage ./extract.nix {};
|
||||
createPatch = prefix: driverPackage: rev: hash: driverPackage.overrideAttrs ({
|
||||
version,
|
||||
preFixup ? "",
|
||||
...
|
||||
}: let
|
||||
inherit (nixpkgs.lib) importJSON;
|
||||
jsons = extract rev hash;
|
||||
patchList = importJSON "${jsons}/${prefix}patch-list.json";
|
||||
objectList = importJSON "${jsons}/${prefix}object-list.json";
|
||||
object = objectList.${version};
|
||||
patch = patchList.${version};
|
||||
in {
|
||||
preFixup =
|
||||
preFixup
|
||||
+ ''
|
||||
sed -i '${patch}' $out/lib/${object}.${version}
|
||||
'';
|
||||
});
|
||||
patchNvenc = createPatch "";
|
||||
patchFbc = createPatch "fbc-";
|
||||
});
|
||||
}) // {
|
||||
overlay = final: prev: {
|
||||
nvidia-patch = rev: hash: let
|
||||
inherit (nixpkgs.lib) importJSON;
|
||||
extract = final.callPackage ./extract.nix {};
|
||||
jsons = extract rev hash;
|
||||
createPatch = prefix: rev: hash: driverPackage: driverPackage.overrideAttrs ({
|
||||
version,
|
||||
preFixup ? "",
|
||||
...
|
||||
}: let
|
||||
patchList = importJSON "${jsons}/${prefix}patch-list.json";
|
||||
objectList = importJSON "${jsons}/${prefix}object-list.json";
|
||||
patch = patchList.${version};
|
||||
object = objectList.${version};
|
||||
in {
|
||||
preFixup =
|
||||
preFixup
|
||||
+ ''
|
||||
sed -i '${patch}' $out/lib/${object}.${version}
|
||||
'';
|
||||
});
|
||||
in {
|
||||
patch-nvenc = createPatch "" rev hash;
|
||||
patch-fbc = createPatch "fbc-" rev hash;
|
||||
};
|
||||
};
|
||||
};
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue