安装 Nvidia 驱动程序后分辨率停留在 800x600

安装 Nvidia 驱动程序后分辨率停留在 800x600

想要在 Fedora 40 上安装 Nvidia 驱动程序,以便我可以编写 CUDA 代码。我实际上要参考这个问题因为非常相似;只是7年前有人提出这个问题,但没有得到答案。事实上,我见过很多人有同样的问题,但没有能够解决问题的答案。大多数解决方案都集中在通过 RPMFusion 存储库安装驱动程序,而不是通过其他方式(即通过 Nvidia 网站)。我是从 RPMFusion 直接安装的,所以这对我来说不是问题。

我已经为 Fedora 40 安装了 kmod-nvidia(以及 akmod-nvidia,在 kmod 不起作用之后)软件包。完成此操作并重新启动后,我的分辨率卡在 800x600。我使用的显示器是 1680x1050。现在无论我做什么都无法更改分辨率,并且我的显示器显示为“无”。

根据 nvidia-smi 命令,驱动程序为 550.76。

lspci -d ::03xx -nnv输出:

01:00.0 VGA compatible controller [0300]: NVIDIA Corporation GA106 [GeForce RTX 3060 Lite Hash Rate] [10de:2504] (rev a1) (prog-if 00 [VGA controller])
        Subsystem: ASUSTeK Computer Inc. Device [1043:881d]
        Flags: bus master, fast devsel, latency 0, IRQ 172
        Memory at a0000000 (32-bit, non-prefetchable) [size=16M]
        Memory at 4000000000 (64-bit, prefetchable) [size=256M]
        Memory at 4010000000 (64-bit, prefetchable) [size=32M]
        I/O ports at 4000 [size=128]
        Expansion ROM at 000c0000 [virtual] [disabled] [size=128K]
        Capabilities: <access denied>
        Kernel driver in use: nvidia
        Kernel modules: nvidia_drm, nvidia

cat /proc/fb抛出“没有这样的目录”

xrandr --listproviders输出:

Providers: number : 1
Provider 0: id: 0x41 cap: 0x2, Sink Output crtcs: 1 outputs: 1 associated providers: 0 name:modesetting

我使用的是配备 x86-64 Intel 核心和 RTX 3060 GPU 的台式计算机。

即使安装 debugfs 后,/sys/kernel/debug/vgaswitcheroo/switch 也不存在。

我努力了:

  • Fedora 40 的全新安装
  • Fedora 39 的全新安装
  • KDE 和 Gnome; X11 和 Wayland
  • 安装驱动程序的不同方法
  • 使用 xrandr 通过终端设置分辨率(抛出“在可用模式中找不到尺寸 1680x1050”)

答案1

好的,所以它是台式机,而且您没有 iGPU,这可能会导致其自身的复杂性。内核端看起来正常:nvidia模块已加载,并且似乎没有nouveau活动的冲突模块。

xrandr --listproviders输出表明唯一的提供程序是通用的,modesetting而不是类似的内容NVIDIA-0:这表明 X11 服务器没有使用正确的 X11 驱动程序模块来配合 NVIDIA 内核模块。

这表明您需要一个xorg.conf片段,其中包含Device明确指定nvidiaGPU 的 X11 驱动程序模块的部分。它可能是这样的/etc/X11/xorg.conf.d/nvidia.conf

Section "Module"
    Disable        "dri"  # just to silence a warning about obsolete DRI 1.0
EndSection
 
Section "Device"
    Identifier     "Device0"
    Driver         "nvidia"   # Selects this module...
    VendorName     "NVIDIA Corporation"
    BusID          "1:0:0"    # ... for this GPU.
EndSection

我猜想最新的系统更新会自动提供类似的内容,或者导致nvidiaX11 驱动程序的优先级高于通用modesetting驱动程序。

相关内容