与 Nouveau 驱动程序相比,NVIDIA 驱动程序存在以下缺陷:
- 它将我的 TCL 显示器限制为 1920w(所有显示器都支持 3840w)
- 下图中的显示排列经常与下图中的显示排列相反。这个 askubuntu 问题——通常在非活动超时后输入密码重新激活。屏幕不反映其物理布置而是并排布置的布置似乎不受影响。
在 nouveau 驱动程序处于活动状态时:
$ uname -a
Linux jaboweryML 6.5.0-28-generic #29~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Thu Apr 4 14:39:20 UTC 2 x86_64 x86_64 x86_64 GNU/Linux
$ sudo lshw -class display
[sudo] password for jabowery:
*-display
description: VGA compatible controller
product: GA104 [GeForce RTX 3070 Ti]
vendor: NVIDIA Corporation
physical id: 0
bus info: pci@0000:09:00.0
logical name: /dev/fb0
version: a1
width: 64 bits
clock: 33MHz
capabilities: pm msi pciexpress vga_controller bus_master cap_list rom fb
configuration: depth=32 driver=nouveau latency=0 resolution=3840,2160
resources: irq:108 memory:fb000000-fbffffff memory:d0000000-dfffffff memory:e0000000-e1ffffff ioport:e000(size=128) memory:c0000-dffff
$ xrandr
Screen 0: minimum 16 x 16, current 7680 x 4320, maximum 32767 x 32767
XWAYLAND0 connected 3840x2160+2023+0 (normal left inverted right x axis y axis) 1110mm x 620mm
3840x2160 29.98*+
2048x1536 29.95
...
XWAYLAND1 connected primary 3840x2160+3840+2160 (normal left inverted right x axis y axis) 600mm x 340mm
3840x2160 59.98*+
2048x1536 59.95
...
XWAYLAND2 connected 3840x2160+0+2160 (normal left inverted right x axis y axis) 600mm x 340mm
3840x2160 59.98*+
2048x1536 59.95
...
$ sudo dmesg | grep -iE "drm|display"
[ 0.000000] Command line: BOOT_IMAGE=/boot/vmlinuz-6.5.0-28-generic root=UUID=57cf3490-db84-4071-8c09-ceb97e4bc676 ro nvidia-drm.modeset=1
[ 0.124437] Kernel command line: BOOT_IMAGE=/boot/vmlinuz-6.5.0-28-generic root=UUID=57cf3490-db84-4071-8c09-ceb97e4bc676 ro nvidia-drm.modeset=1
[ 2.500157] systemd[1]: Starting Load Kernel Module drm...
[ 2.523083] ACPI: bus type drm_connector registered
[ 2.528328] systemd[1]: [email protected]: Deactivated successfully.
[ 2.528976] systemd[1]: Finished Load Kernel Module drm.
[ 2.546654] evdi evdi.0: [drm] Cannot find any crtc or sizes
[ 2.547152] [drm] Initialized evdi 1.14.4 20240410 for evdi.0 on minor 0
[ 2.547210] evdi evdi.1: [drm] Cannot find any crtc or sizes
[ 2.547330] [drm] Initialized evdi 1.14.4 20240410 for evdi.1 on minor 1
[ 2.547381] evdi evdi.2: [drm] Cannot find any crtc or sizes
[ 2.547538] [drm] Initialized evdi 1.14.4 20240410 for evdi.2 on minor 2
[ 2.551746] evdi evdi.3: [drm] Cannot find any crtc or sizes
[ 2.552219] [drm] Initialized evdi 1.14.4 20240410 for evdi.3 on minor 3
[ 3.247232] nouveau 0000:09:00.0: DRM: VRAM: 8192 MiB
[ 3.247237] nouveau 0000:09:00.0: DRM: GART: 536870912 MiB
[ 3.247240] nouveau 0000:09:00.0: DRM: BIT table 'A' not found
[ 3.247242] nouveau 0000:09:00.0: DRM: BIT table 'L' not found
[ 3.247244] nouveau 0000:09:00.0: DRM: TMDS table version 2.0
[ 3.247247] nouveau 0000:09:00.0: DRM: DCB version 4.1
[ 3.247250] nouveau 0000:09:00.0: DRM: DCB outp 00: 04800f86 04600020
[ 3.247253] nouveau 0000:09:00.0: DRM: DCB outp 01: 04000f82 00020020
[ 3.247255] nouveau 0000:09:00.0: DRM: DCB outp 02: 04811f76 04600010
[ 3.247258] nouveau 0000:09:00.0: DRM: DCB outp 03: 04011f72 00020010
[ 3.247260] nouveau 0000:09:00.0: DRM: DCB outp 04: 02822f66 04600020
[ 3.247262] nouveau 0000:09:00.0: DRM: DCB outp 05: 02022f62 00020020
[ 3.247265] nouveau 0000:09:00.0: DRM: DCB outp 07: 02033f52 00020010
[ 3.247267] nouveau 0000:09:00.0: DRM: DCB conn 00: 02000046
[ 3.247269] nouveau 0000:09:00.0: DRM: DCB conn 01: 01000146
[ 3.247271] nouveau 0000:09:00.0: DRM: DCB conn 02: 00020246
[ 3.247273] nouveau 0000:09:00.0: DRM: DCB conn 03: 00010361
[ 3.247983] nouveau 0000:09:00.0: DRM: MM: using COPY for buffer copies
[ 3.251558] [drm] Initialized nouveau 1.3.1 20120801 for 0000:09:00.0 on minor 4
[ 3.919154] fbcon: nouveaudrmfb (fb0) is primary device
[ 4.774965] nouveau 0000:09:00.0: [drm] fb0: nouveaudrmfb frame buffer device
[ 6.968525] workqueue: drm_fb_helper_damage_work [drm_kms_helper] hogged CPU for >10000us 4 times, consider switching to WQ_UNBOUND
[ 8.648527] workqueue: output_poll_execute [drm_kms_helper] hogged CPU for >10000us 4 times, consider switching to WQ_UNBOUND
切换到 nvidia 驱动程序(已测试)后,这些命令产生以下结果:
$ nvidia-smi
Wed May 1 16:57:33 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 535.171.04 Driver Version: 535.171.04 CUDA Version: 12.2 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 3070 Ti Off | 00000000:09:00.0 On | N/A |
| 30% 41C P3 48W / 290W | 945MiB / 8192MiB | 1% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 3800 G /usr/bin/gnome-shell 941MiB |
+---------------------------------------------------------------------------------------+
$ dpkg -l | grep ^ii.*nvidia
ii libnvidia-cfg1-535:amd64 535.171.04-0ubuntu0.22.04.1 amd64 NVIDIA binary OpenGL/GLX configuration library
ii libnvidia-common-535 535.171.04-0ubuntu0.22.04.1 all Shared files used by the NVIDIA libraries
ii libnvidia-compute-535:amd64 535.171.04-0ubuntu0.22.04.1 amd64 NVIDIA libcompute package
ii libnvidia-compute-535:i386 535.171.04-0ubuntu0.22.04.1 i386 NVIDIA libcompute package
ii libnvidia-decode-535:amd64 535.171.04-0ubuntu0.22.04.1 amd64 NVIDIA Video Decoding runtime libraries
ii libnvidia-decode-535:i386 535.171.04-0ubuntu0.22.04.1 i386 NVIDIA Video Decoding runtime libraries
ii libnvidia-encode-535:amd64 535.171.04-0ubuntu0.22.04.1 amd64 NVENC Video Encoding runtime library
ii libnvidia-encode-535:i386 535.171.04-0ubuntu0.22.04.1 i386 NVENC Video Encoding runtime library
ii libnvidia-extra-535:amd64 535.171.04-0ubuntu0.22.04.1 amd64 Extra libraries for the NVIDIA driver
ii libnvidia-fbc1-535:amd64 535.171.04-0ubuntu0.22.04.1 amd64 NVIDIA OpenGL-based Framebuffer Capture runtime library
ii libnvidia-fbc1-535:i386 535.171.04-0ubuntu0.22.04.1 i386 NVIDIA OpenGL-based Framebuffer Capture runtime library
ii libnvidia-gl-535:amd64 535.171.04-0ubuntu0.22.04.1 amd64 NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii libnvidia-gl-535:i386 535.171.04-0ubuntu0.22.04.1 i386 NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii linux-modules-nvidia-535-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28
ii linux-modules-nvidia-535-generic-hwe-22.04 6.5.0-28.29~22.04.1+2 amd64 Extra drivers for nvidia-535 for the generic-hwe-22.04 flavour
ii linux-objects-nvidia-535-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28 (objects)
ii linux-objects-nvidia-535-server-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28 (objects)
ii linux-objects-nvidia-545-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28 (objects)
ii linux-signatures-nvidia-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel signatures for nvidia modules for version 6.5.0-28-generic
ii nvidia-compute-utils-535 535.171.04-0ubuntu0.22.04.1 amd64 NVIDIA compute utilities
ii nvidia-driver-535 535.171.04-0ubuntu0.22.04.1 amd64 NVIDIA driver metapackage
ii nvidia-firmware-535-535.171.04 535.171.04-0ubuntu0.22.04.1 amd64 Firmware files used by the kernel module
ii nvidia-kernel-common-535 535.171.04-0ubuntu0.22.04.1 amd64 Shared files used with the kernel module
ii nvidia-kernel-source-535 535.171.04-0ubuntu0.22.04.1 amd64 NVIDIA kernel source package
ii nvidia-prime 0.8.17.1 all Tools to enable NVIDIA's Prime
ii nvidia-settings 510.47.03-0ubuntu1 amd64 Tool for configuring the NVIDIA graphics driver
ii nvidia-utils-535 535.171.04-0ubuntu0.22.04.1 amd64 NVIDIA driver support binaries
ii screen-resolution-extra 0.18.2 all Extension for the nvidia-settings control panel
ii xserver-xorg-video-nvidia-535 535.171.04-0ubuntu0.22.04.1
$ dpkg -l | grep ^ii.*nvidia|grep -v 535.171.04
ii linux-modules-nvidia-535-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28
ii linux-modules-nvidia-535-generic-hwe-22.04 6.5.0-28.29~22.04.1+2 amd64 Extra drivers for nvidia-535 for the generic-hwe-22.04 flavour
ii linux-objects-nvidia-535-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28 (objects)
ii linux-objects-nvidia-535-server-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28 (objects)
ii linux-objects-nvidia-545-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28 (objects)
ii linux-signatures-nvidia-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel signatures for nvidia modules for version 6.5.0-28-generic
ii nvidia-prime 0.8.17.1 all Tools to enable NVIDIA's Prime
ii nvidia-settings 510.47.03-0ubuntu1 amd64 Tool for configuring the NVIDIA graphics driver
ii screen-resolution-extra 0.18.2 all Extension for the nvidia-settings control panel
切换到 545.29.06 并重新启动会产生以下结果:
$ nvidia-smi
Thu May 2 14:32:29 2024
+---------------------------------------------------------------------------------------+
| NVIDIA-SMI 545.29.06 Driver Version: 545.29.06 CUDA Version: 12.3 |
|-----------------------------------------+----------------------+----------------------+
| GPU Name Persistence-M | Bus-Id Disp.A | Volatile Uncorr. ECC |
| Fan Temp Perf Pwr:Usage/Cap | Memory-Usage | GPU-Util Compute M. |
| | | MIG M. |
|=========================================+======================+======================|
| 0 NVIDIA GeForce RTX 3070 Ti Off | 00000000:09:00.0 On | N/A |
| 30% 40C P3 48W / 290W | 1601MiB / 8192MiB | 9% Default |
| | | N/A |
+-----------------------------------------+----------------------+----------------------+
+---------------------------------------------------------------------------------------+
| Processes: |
| GPU GI CI PID Type Process name GPU Memory |
| ID ID Usage |
|=======================================================================================|
| 0 N/A N/A 3551 G /usr/lib/xorg/Xorg 846MiB |
| 0 N/A N/A 3890 G /usr/bin/gnome-shell 204MiB |
| 0 N/A N/A 6659 G gnome-control-center 43MiB |
| 0 N/A N/A 7084 G ...,262144 --variations-seed-version=1 494MiB |
+---------------------------------------------------------------------------------------+
$ dpkg -l | grep ^ii.*nvidia
ii libnvidia-cfg1-545:amd64 545.29.06-0ubuntu0.22.04.2 amd64 NVIDIA binary OpenGL/GLX configuration library
ii libnvidia-common-545 545.29.06-0ubuntu0.22.04.2 all Shared files used by the NVIDIA libraries
ii libnvidia-compute-545:amd64 545.29.06-0ubuntu0.22.04.2 amd64 NVIDIA libcompute package
ii libnvidia-compute-545:i386 545.29.06-0ubuntu0.22.04.2 i386 NVIDIA libcompute package
ii libnvidia-decode-545:amd64 545.29.06-0ubuntu0.22.04.2 amd64 NVIDIA Video Decoding runtime libraries
ii libnvidia-decode-545:i386 545.29.06-0ubuntu0.22.04.2 i386 NVIDIA Video Decoding runtime libraries
ii libnvidia-encode-545:amd64 545.29.06-0ubuntu0.22.04.2 amd64 NVENC Video Encoding runtime library
ii libnvidia-encode-545:i386 545.29.06-0ubuntu0.22.04.2 i386 NVENC Video Encoding runtime library
ii libnvidia-extra-545:amd64 545.29.06-0ubuntu0.22.04.2 amd64 Extra libraries for the NVIDIA driver
ii libnvidia-fbc1-545:amd64 545.29.06-0ubuntu0.22.04.2 amd64 NVIDIA OpenGL-based Framebuffer Capture runtime library
ii libnvidia-fbc1-545:i386 545.29.06-0ubuntu0.22.04.2 i386 NVIDIA OpenGL-based Framebuffer Capture runtime library
ii libnvidia-gl-545:amd64 545.29.06-0ubuntu0.22.04.2 amd64 NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii libnvidia-gl-545:i386 545.29.06-0ubuntu0.22.04.2 i386 NVIDIA OpenGL/GLX/EGL/GLES GLVND libraries and Vulkan ICD
ii linux-modules-nvidia-545-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28
ii linux-modules-nvidia-545-generic-hwe-22.04 6.5.0-28.29~22.04.1+2 amd64 Extra drivers for nvidia-545 for the generic-hwe-22.04 flavour
ii linux-objects-nvidia-535-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28 (objects)
ii linux-objects-nvidia-535-server-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28 (objects)
ii linux-objects-nvidia-545-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28 (objects)
ii linux-signatures-nvidia-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel signatures for nvidia modules for version 6.5.0-28-generic
ii nvidia-compute-utils-545 545.29.06-0ubuntu0.22.04.2 amd64 NVIDIA compute utilities
ii nvidia-driver-545 545.29.06-0ubuntu0.22.04.2 amd64 NVIDIA driver metapackage
ii nvidia-firmware-545-545.29.06 545.29.06-0ubuntu0.22.04.2 amd64 Firmware files used by the kernel module
ii nvidia-kernel-common-545 545.29.06-0ubuntu0.22.04.2 amd64 Shared files used with the kernel module
ii nvidia-kernel-source-545 545.29.06-0ubuntu0.22.04.2 amd64 NVIDIA kernel source package
ii nvidia-prime 0.8.17.1 all Tools to enable NVIDIA's Prime
ii nvidia-settings 510.47.03-0ubuntu1 amd64 Tool for configuring the NVIDIA graphics driver
ii nvidia-utils-545 545.29.06-0ubuntu0.22.04.2 amd64 NVIDIA driver support binaries
ii screen-resolution-extra 0.18.2 all Extension for the nvidia-settings control panel
ii xserver-xorg-video-nvidia-545 545.29.06-0ubuntu0.22.04.2 amd64 NVIDIA binary Xorg driver
$ dpkg -l | grep ^ii.*nvidia|grep -v 545.29.06
ii linux-modules-nvidia-545-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28
ii linux-modules-nvidia-545-generic-hwe-22.04 6.5.0-28.29~22.04.1+2 amd64 Extra drivers for nvidia-545 for the generic-hwe-22.04 flavour
ii linux-objects-nvidia-535-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28 (objects)
ii linux-objects-nvidia-535-server-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28 (objects)
ii linux-objects-nvidia-545-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel nvidia modules for version 6.5.0-28 (objects)
ii linux-signatures-nvidia-6.5.0-28-generic 6.5.0-28.29~22.04.1+2 amd64 Linux kernel signatures for nvidia modules for version 6.5.0-28-generic
ii nvidia-prime 0.8.17.1 all Tools to enable NVIDIA's Prime
ii nvidia-settings 510.47.03-0ubuntu1 amd64 Tool for configuring the NVIDIA graphics driver
ii screen-resolution-extra 0.18.2 all Extension for the nvidia-settings control panel