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";
|
nvidia-patch.url = "github:icewind1991/nvidia-patch-nixos";
|
||||||
```
|
```
|
||||||
|
|
||||||
|
- Apply the overlay:
|
||||||
|
```
|
||||||
|
nixpkgs.overlays = [inputs.nvidia-patch.overlay];
|
||||||
|
```
|
||||||
|
|
||||||
- Apply the patch to your nvidia package
|
- Apply the patch to your nvidia package
|
||||||
```nix
|
```nix
|
||||||
{
|
{
|
||||||
|
pkgs,
|
||||||
config,
|
config,
|
||||||
inputs,
|
inputs,
|
||||||
system,
|
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
|
hash = "sha256-+BkDUfVqqYMAG62OarNPJiNfghvHpOhhMlS5H+SV1dQ="; # sha256sum for https://github.com/keylase/nvidia-patch at the specified revision
|
||||||
|
|
||||||
# create patch functions for the specified revision
|
# create patch functions for the specified revision
|
||||||
patchFbc = driverPackage: (inputs.nvidia-patch.patchFbc.${system} driverPackage rev hash);
|
nvidia-patch = pkgs.nvidia-patch rev hash;
|
||||||
patchNvenc = driverPackage: (inputs.nvidia-patch.patchNvenc.${system} driverPackage rev hash);
|
|
||||||
|
|
||||||
# nvidia package to patch
|
# nvidia package to patch
|
||||||
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
package = config.boot.kernelPackages.nvidiaPackages.stable;
|
||||||
in {
|
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 {
|
devShell = pkgs.mkShell {
|
||||||
nativeBuildInputs = with pkgs; [jq patch];
|
nativeBuildInputs = with pkgs; [jq patch];
|
||||||
};
|
};
|
||||||
|
}) // {
|
||||||
extract = pkgs.callPackage ./extract.nix {};
|
overlay = final: prev: {
|
||||||
createPatch = prefix: driverPackage: rev: hash: driverPackage.overrideAttrs ({
|
nvidia-patch = rev: hash: let
|
||||||
version,
|
inherit (nixpkgs.lib) importJSON;
|
||||||
preFixup ? "",
|
extract = final.callPackage ./extract.nix {};
|
||||||
...
|
jsons = extract rev hash;
|
||||||
}: let
|
createPatch = prefix: rev: hash: driverPackage: driverPackage.overrideAttrs ({
|
||||||
inherit (nixpkgs.lib) importJSON;
|
version,
|
||||||
jsons = extract rev hash;
|
preFixup ? "",
|
||||||
patchList = importJSON "${jsons}/${prefix}patch-list.json";
|
...
|
||||||
objectList = importJSON "${jsons}/${prefix}object-list.json";
|
}: let
|
||||||
object = objectList.${version};
|
patchList = importJSON "${jsons}/${prefix}patch-list.json";
|
||||||
patch = patchList.${version};
|
objectList = importJSON "${jsons}/${prefix}object-list.json";
|
||||||
in {
|
patch = patchList.${version};
|
||||||
preFixup =
|
object = objectList.${version};
|
||||||
preFixup
|
in {
|
||||||
+ ''
|
preFixup =
|
||||||
sed -i '${patch}' $out/lib/${object}.${version}
|
preFixup
|
||||||
'';
|
+ ''
|
||||||
});
|
sed -i '${patch}' $out/lib/${object}.${version}
|
||||||
patchNvenc = createPatch "";
|
'';
|
||||||
patchFbc = createPatch "fbc-";
|
});
|
||||||
});
|
in {
|
||||||
|
patch-nvenc = createPatch "" rev hash;
|
||||||
|
patch-fbc = createPatch "fbc-" rev hash;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue