NixOS에서 KDE 디스플레이가 작동하지 않는 경우 - Thinkpad P15 Gen 2, NVIDIA RTX A4000

NixOS에서 KDE 디스플레이가 작동하지 않는 경우 - Thinkpad P15 Gen 2, NVIDIA RTX A4000

새로운 Thinkpad P15 Gen 2에 NixOS를 설치하려고 하는데 데스크탑 환경에서 화면에 아무 것도 표시되지 않습니다. 열거나 재부팅할 때마다 ctrl+alt+F4를 눌러 셸에 들어갈 때까지 화면이 검은색으로 유지됩니다. KDE Plasma 5를 사용하려고 하는데 다른 DE가 더 잘 작동하면 기꺼이 사용해 보겠습니다. KDE와 함께 설치 프로그램 ISO를 사용했는데 그래픽 디스플레이와 모든 것을 표시할 수 있었습니다. 그런 다음 파티션에 설치한 후 그래픽을 표시할 수 없습니다.

이것은 내 구성입니다.nix(현재 채널은 nixos/21.11):

{ config, pkgs, ... }:

{
  imports =
    [ # Include the results of the hardware scan.
      ./hardware-configuration.nix
    ];

  # Use the systemd-boot EFI boot loader.
  boot.loader.systemd-boot.enable = true;
  boot.loader.efi.canTouchEfiVariables = true;

  boot.kernelPackages = pkgs.linuxPackages_5_16;

  networking.hostName = "fins-thinkpad"; # Define your hostname.
  
  networking.networkmanager.enable = true;  # Easiest to use and most distros use this by default.

  # Nvidia drivers unfree
  nixpkgs.config.allowUnfree = true;

  # Enable the X11 windowing system.
  services.xserver.enable = true;

  # Enable the Plasma 5 Desktop Environment.
  services.xserver.displayManager.sddm.enable = true;
  services.xserver.desktopManager.plasma5.enable = true;
  services.xserver.videoDrivers = [ "nvidia" ];
  hardware.opengl.enable = true;

  users.users.finley = {
    isNormalUser = true;
    extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user.
  };

  environment.systemPackages = with pkgs; [
    vim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default.
    wget
    firefox
  ];

  system.stateVersion = "22.05"; # Did you read the comment?
}

그리고 내 hardware-configuration.nix:

{ config, lib, pkgs, modulesPath, ... }:

{
  imports =
    [ (modulesPath + "/installer/scan/not-detected.nix")
    ];

  boot.initrd.availableKernelModules = [ "xhci_pci" "thunderbolt" "nvme" "usb_storage" "sd_mod" "sdhci_pci" ];
  boot.initrd.kernelModules = [ ];
  boot.kernelModules = [ "kvm-intel" ];
  boot.extraModulePackages = [ ];

  fileSystems."/" =
    { device = "/dev/disk/by-uuid/7e6bcba1-25e7-43f5-8dd2-1458d863c0c4";
      fsType = "ext4";
    };

  fileSystems."/boot" =
    { device = "/dev/disk/by-uuid/19A7-C717";
      fsType = "vfat";
    };

  swapDevices =
    [ { device = "/dev/disk/by-uuid/14412169-fb90-4e0c-ae3f-735c817b8cf3"; }
    ];

  # The global useDHCP flag is deprecated, therefore explicitly set to false here.
  # Per-interface useDHCP will be mandatory in the future, so this generated config
  # replicates the default behaviour.
  networking.useDHCP = lib.mkDefault false;
  networking.interfaces.enp11s0.useDHCP = lib.mkDefault true;
  networking.interfaces.wlp9s0.useDHCP = lib.mkDefault true;

  powerManagement.cpuFreqGovernor = lib.mkDefault "powersave";
  hardware.cpu.intel.updateMicrocode = lib.mkDefault config.hardware.enableRedistributableFirmware;
  # high-resolution display
  hardware.video.hidpi.enable = lib.mkDefault true;
}

디스플레이 관리자의 로그는 다음 Pastebin 원본 링크에 있습니다.https://pastebin.com/raw/YycVPVVd

출력은 다음과 같습니다 lspci -k | grep -A3 'VGA'.

00:02.0 VGA compatible controller: Intel Corporation Device 9a70 (rev 01)
    Subsystem: Lenovo Device 22d8
    Kernel driver in use: i915
    Kernel modules: i915
--
01:00.0 VGA compatible controller: NVIDIA Corporation Device 24b7 (rev a1)
    Subsystem: Lenovo Device 22d8
    Kernel driver in use: nvidia
    Kernel modules: nvidiafb, nouveau, nvidia_drm, nvidia

필요한 경우 더 많은 로그나 파일을 게시할 수 있으며 이를 작동시키기 위해 무엇이든 시도할 의향이 있습니다! 도움을 주셔서 미리 감사드립니다!

답변1

이는 실제로 내 노트북의 통합 Intel 그래픽이 Nvidia 카드와 잘 작동하지 않기 때문에 발생했습니다. 통합 그래픽은 모드 설정 드라이버에서만 사용할 수 있으므로 구성을 다음과 같이 변경하면 문제가 해결됩니다.

services.xserver.videoDrivers = [ "modesetting" ]

바꾸다 [ "nvidia" ]. 또한 NixOS의 PRIME 구성을 사용하면 통합 그래픽과 Nvidia 그래픽 간의 오프로드 설정이 매우 간단해집니다.Wikipedia에 설명된 대로.

관련 정보