Как переопределить стандартный стабильный драйвер Nvidia - PullRequest
0 голосов
/ 20 декабря 2018

Я пытаюсь переопределить стабильный пакет nvidia из моего configuration.nix из драйвера nvidia 410 в 390, однако, кажется, что он не работает, используя конфигурацию переопределения ниже.

Я включаю драйвер с помощью опции services.xserver.videoDrivers = [ "nvidia" ] и подписан на канал unstable.

configuration.nix:

  nixpkgs.config = {
    allowUnfree = true;

    packageOverrides = super: let self = super.pkgs; in
    {
        linuxPackages = super.linuxPackages_latest.extend (self: super: {
          nvidiaPackages = super.nvidiaPackages // {
            stable = super.nvidiaPackages.stable_390;
          };
        });
    };
  };

Я также попытался перейти с super на self в следующей строке:

stable = super.nvidiaPackages.stable_390;

Но это также не оказывает никакого влияния.

1 Ответ

0 голосов
/ 10 января 2019

Из того, что я смог выяснить, вам нужно переопределить как пакеты linux, так и nvidia_x11 в наборе основных пакетов.Если я этого не сделал, я обнаружил тихий откат к драйверам nvidia по умолчанию.

Ниже приведен пример, который менее детализирован, чем ваша попытка.Я думал, что существует вероятность несоответствия между зависимостями ядра, используемыми для сборки и загрузки во время выполнения, поэтому вместо этого я выкачал весь набор linuxPackage.

В настоящее время (10.01.2009), nvidia 410.7х сломан (см. выпуск 53708 ).Поэтому я прикрепил свою конфигурацию к последнему коммиту с помощью nvidia 410.6x.Для получения дополнительной информации о закреплении nixpkgs см. вики-страницу .Вы все еще можете закрепить мастер и добавить пространство имен unstable к вашему набору пакетов, не влияя на ядро.

{ config, pkgs, nixpkgs, ... }:

let
  # get the last working revision with nvidia 410.x
  nixos-unstable-pinned = import (builtins.fetchTarball {
    name = "nixos-unstable_nvidia-410-66_2018-11-03";
    url = https://github.com/nixos/nixpkgs/archive/bf084e0ed7a625b50b1b0f42b98358dfa23326ee.tar.gz;
    sha256 = "0w05cw9s2pa07vqy21ack7g7983ig67lhwkdn24bzah3z49c2d8k";
  }) { };

  # We'll use this twice
  pinnedKernelPackages = nixos-unstable-pinned.linuxPackages_latest;

in

{
  # allow nvidia drivers to be loaded 
  nixpkgs.config.allowUnfree = true;

  nixpkgs.config.packageOverrides = pkgs: {
    # swap out all of the linux packages
    linuxPackages_latest = pinnedKernelPackages;

    # make sure x11 will use the correct package as well
    nvidia_x11 = nixos-unstable-pinned.nvidia_x11;
  };

  # line up your kernel packages at boot
  boot.kernelPackages = pinnedKernelPackages;
}

Надеюсь, это поможет!

...