【问题标题】:How to override default stable Nvidia driver如何覆盖默认的稳定 Nvidia 驱动程序
【发布时间】:2018-12-20 08:05:25
【问题描述】:

我正在尝试从我的configuration.nix 从 nvidia 驱动程序 410 覆盖稳定的 nvidia 包到 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;

但这也没有任何影响。

【问题讨论】:

    标签: nixos


    【解决方案1】:

    据我所知,您需要覆盖核心包集中的 linux 包和 nvidia_x11。如果我不这样做,我会遇到默认的 nvidia 驱动程序的静默回退。

    以下示例没有您的尝试那么精细。我的想法是,用于构建和在运行时加载的内核依赖项之间可能存在不匹配,因此我换掉了整个 linuxPackage 集。

    目前(01/10/2019),nvidia 410.7x 已损坏(见Issue 53708)。因此,我已将我的配置固定到使用 nvidia 410.6x 的最后一次提交。有关固定 nixpkgs 的更多信息,请参阅the wiki page。您仍然可以锁定 master 并将 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;
    }
    

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-25
      • 1970-01-01
      • 2018-11-13
      • 2021-03-26
      • 1970-01-01
      • 2016-04-13
      • 1970-01-01
      相关资源
      最近更新 更多