Nvidia: Difference between revisions

imported>Delan
m clarify that some laptops need modesetting omitted in sync mode too
imported>Mic92
fix indentation
Line 121: Line 121:
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{{file|/etc/nixos/configuration.nix|nix|<nowiki>
{
{
  services.xserver.videoDrivers = [ "nvidia" ];
  # --- or on certain laptops ---
   services.xserver.videoDrivers = [ "modesetting" "nvidia" ];
   services.xserver.videoDrivers = [ "modesetting" "nvidia" ];
   hardware.nvidia.optimus_prime = {
   hardware.nvidia.optimus_prime = {
     enable = true;
     enable = true;
Line 176: Line 173:
{ pkgs ? import <nixpkgs> {} }:
{ pkgs ? import <nixpkgs> {} }:


let fhs = pkgs.buildFHSUserEnv {
let  
        name = "cuda-env";
  fhs = pkgs.buildFHSUserEnv {
        targetPkgs = pkgs: with pkgs;
    name = "cuda-env";
              [ git
    targetPkgs = pkgs: with pkgs; [
                gitRepo
      git
                gnupg
      gitRepo
                autoconf
      gnupg
                curl
      autoconf
                procps
      curl
                gnumake
      procps
                utillinux
      gnumake
                m4
      utillinux
                gperf
      m4
                unzip
      gperf
                cudatoolkit
      unzip
                linuxPackages.nvidia_x11
      cudatoolkit
                libGLU libGL
      linuxPackages.nvidia_x11
xorg.libXi xorg.libXmu freeglut
      libGLU libGL
                xorg.libXext xorg.libX11 xorg.libXv xorg.libXrandr zlib  
      xorg.libXi xorg.libXmu freeglut
ncurses5
      xorg.libXext xorg.libX11 xorg.libXv xorg.libXrandr zlib  
stdenv.cc
      ncurses5
binutils
      stdenv.cc
                ];
      binutils
          multiPkgs = pkgs: with pkgs; [ zlib ];
    ];
          runScript = "bash";
    multiPkgs = pkgs: with pkgs; [ zlib ];
          profile = ''
    runScript = "bash";
                  export CUDA_PATH=${pkgs.cudatoolkit}
    profile = ''
                  # export LD_LIBRARY_PATH=${pkgs.linuxPackages.nvidia_x11}/lib
      export CUDA_PATH=${pkgs.cudatoolkit}
  export EXTRA_LDFLAGS="-L/lib -L${pkgs.linuxPackages.nvidia_x11}/lib"
      # export LD_LIBRARY_PATH=${pkgs.linuxPackages.nvidia_x11}/lib
  export EXTRA_CCFLAGS="-I/usr/include"
      export EXTRA_LDFLAGS="-L/lib -L${pkgs.linuxPackages.nvidia_x11}/lib"
            '';
      export EXTRA_CCFLAGS="-I/usr/include"
          };
    '';
  };
in pkgs.stdenv.mkDerivation {
in pkgs.stdenv.mkDerivation {
   name = "cuda-env-shell";
   name = "cuda-env-shell";
Line 222: Line 220:
pkgs.stdenv.mkDerivation {
pkgs.stdenv.mkDerivation {
   name = "cuda-env-shell";
   name = "cuda-env-shell";
   buildInputs = with pkgs;
   buildInputs = with pkgs; [
                  [ git gitRepo gnupg autoconf curl
    git gitRepo gnupg autoconf curl
                    procps gnumake utillinux m4 gperf unzip
    procps gnumake utillinux m4 gperf unzip
                    cudatoolkit linuxPackages.nvidia_x11
    cudatoolkit linuxPackages.nvidia_x11
                    libGLU libGL
    libGLU libGL
                    xorg.libXi xorg.libXmu freeglut
    xorg.libXi xorg.libXmu freeglut
                    xorg.libXext xorg.libX11 xorg.libXv xorg.libXrandr zlib  
    xorg.libXext xorg.libX11 xorg.libXv xorg.libXrandr zlib  
                    ncurses5 stdenv.cc binutils
    ncurses5 stdenv.cc binutils
                  ];
  ];
   shellHook = ''
   shellHook = ''
       export CUDA_PATH=${pkgs.cudatoolkit}
       export CUDA_PATH=${pkgs.cudatoolkit}
       # export LD_LIBRARY_PATH=${pkgs.linuxPackages.nvidia_x11}/lib:${pkgs.ncurses5}/lib
       # export LD_LIBRARY_PATH=${pkgs.linuxPackages.nvidia_x11}/lib:${pkgs.ncurses5}/lib
  export EXTRA_LDFLAGS="-L/lib -L${pkgs.linuxPackages.nvidia_x11}/lib"
      export EXTRA_LDFLAGS="-L/lib -L${pkgs.linuxPackages.nvidia_x11}/lib"
  export EXTRA_CCFLAGS="-I/usr/include"
      export EXTRA_CCFLAGS="-I/usr/include"
   '';           
   '';           
}
}