![GPU 从硬件设备列表中消失](https://linux22.com/image/926536/GPU%20%E4%BB%8E%E7%A1%AC%E4%BB%B6%E8%AE%BE%E5%A4%87%E5%88%97%E8%A1%A8%E4%B8%AD%E6%B6%88%E5%A4%B1.png)
非常像发生的事情这家伙,我的 GPU 从设备列表中消失了。没有lscpi
显示lshw
显卡的存在,我不明白是什么导致了这个问题。
系统信息:
- Thinkpad P1(第二代)搭载从 19.10 升级而来的 Ubuntu 20.04。
- 内核版本是5.4。
- GPU NVIDIA Quadro T1000。
问题实际上是在固件升级(BIOS 和主板)后出现的,所以我尝试降级,但fwupdmgr downgrade
没有可用的降级选项。然后我尝试从 Ubuntu Live 启动,在那里我能够检测到 GPU,它似乎工作正常。因此,问题不可能是固件类型。
我尝试使用 、 和 来搜索一些有用的错误提示journalctl
,dmesg
但/var/log/syslog
收效甚微。如果您认为它们有用,我可以附上日志。
我不知道这是内核模块问题还是其他什么问题。我觉得我尝试了所有我能尝试的方法,但没有成功。我甚至清除并删除了所有 nvidia 驱动程序和 nvidia 相关库,但这不可能是lshw
设备甚至不显示的原因...
PS 使用 nvida-installer 尝试强制安装驱动程序也不起作用。
编辑:发现新见解。
在日记里我发现了这样一句话:
kernel: nouveau 0000:01:00.0: DRM: Disabling PCI power management to avoid bug
(完整输出见下文[1])
因此,我禁用了 nouveau 驱动程序并将其列入黑名单,以查看它是否在搞乱什么,但收效甚微。新的输出不包含有关停用 0000:01:00.0(即显卡)的任何语音,但它只显示
kernel: pci 0000:01:00.0: Removing from iommu group 1
(完整输出见下文[2])
但我不知道这是什么意思,也没有在网上找到任何有用的信息。
评论中请求:正如您所见,仅显示英特尔显卡:
:~$ lspci -k | grep -EA3 'VGA|3D|Display'
00:02.0 VGA compatible controller: Intel Corporation UHD Graphics 630 (Mobile)
Subsystem: Lenovo UHD Graphics 630 (Mobile)
Kernel driver in use: i915
Kernel modules: i915
第二个请求:
:~$ ls -al /dev | grep nvidia
crw-rw-rw- 1 root root 195, 0 lug 2 19:40 nvidia0
crw-rw-rw- 1 root root 195, 255 lug 2 19:40 nvidiactl
crw-rw-rw- 1 root root 195, 254 lug 2 19:40 nvidia-modeset
crw-rw-rw- 1 root root 235, 0 lug 2 19:40 nvidia-uvm
crw-rw-rw- 1 root root 235, 1 lug 2 19:40 nvidia-uvm-tools
:~$ grep 125 /etc/group
colord:x:125:
第三个请求:/proc/cmdline 的输出
BOOT_IMAGE=/vmlinuz-5.4.0-40-generic root=/dev/mapper/vgubuntu-root ro quiet nosplash noacpi noapic pcie_port_pm=off
我应该明确一点,最后三个选项的存在与否都没有任何区别,除了增加风扇的使用量。
第四项请求:
----:~$ grep -r nvidia /lib/udev/rules.d/ /etc/udev/rules.d
/lib/udev/rules.d/61-gdm.rules:# disable Wayland when using the proprietary nvidia driver
/lib/udev/rules.d/61-gdm.rules:DRIVER=="nvidia", RUN+="/usr/lib/gdm3/gdm-disable-wayland"
/lib/udev/rules.d/71-nvidia.rules:SUBSYSTEM=="pci", ATTRS{vendor}=="0x10de", DRIVERS=="nvidia", TAG+="seat", TAG+="master-of-seat"
/lib/udev/rules.d/71-nvidia.rules:# Start and stop nvidia-persistenced on power on and power off
/lib/udev/rules.d/71-nvidia.rules:ACTION=="add", DEVPATH=="/bus/pci/drivers/nvidia", TAG+="systemd", ENV{SYSTEMD_WANTS}="nvidia-persistenced.service"
/lib/udev/rules.d/71-nvidia.rules:# Load and unload nvidia-modeset module
/lib/udev/rules.d/71-nvidia.rules:ACTION=="add", DEVPATH=="/bus/pci/drivers/nvidia", RUN+="/sbin/modprobe nvidia-modeset"
/lib/udev/rules.d/71-nvidia.rules:ACTION=="remove", DEVPATH=="/bus/pci/drivers/nvidia", RUN+="/sbin/modprobe -r nvidia-modeset"
/lib/udev/rules.d/71-nvidia.rules:# Load and unload nvidia-drm module
/lib/udev/rules.d/71-nvidia.rules:ACTION=="add", DEVPATH=="/bus/pci/drivers/nvidia", RUN+="/sbin/modprobe nvidia-drm"
/lib/udev/rules.d/71-nvidia.rules:ACTION=="remove", DEVPATH=="/bus/pci/drivers/nvidia", RUN+="/sbin/modprobe -r nvidia-drm"
/lib/udev/rules.d/71-nvidia.rules:# Load and unload nvidia-uvm module
/lib/udev/rules.d/71-nvidia.rules:ACTION=="add", DEVPATH=="/bus/pci/drivers/nvidia", RUN+="/sbin/modprobe nvidia-uvm"
/lib/udev/rules.d/71-nvidia.rules:ACTION=="remove", DEVPATH=="/bus/pci/drivers/nvidia", RUN+="/sbin/modprobe -r nvidia-uvm"
/lib/udev/rules.d/71-nvidia.rules:# This will create the device nvidia device nodes
/lib/udev/rules.d/71-nvidia.rules:ACTION=="add", DEVPATH=="/bus/pci/drivers/nvidia", RUN+="/sbin/ub-device-create"
/lib/udev/rules.d/71-nvidia.rules:# Create the device node for the nvidia-uvm module
/lib/udev/rules.d/71-nvidia.rules:ACTION=="add", DEVPATH=="/module/nvidia_uvm", SUBSYSTEM=="module", RUN+="/sbin/ub-device-create"
/lib/udev/rules.d/71-u-d-c-gpu-detection.rules:ACTION=="add", SUBSYSTEMS=="pci", DRIVERS=="nvidia", RUN+="/bin/touch /run/u-d-c-nvidia-was-loaded"
[1] 使用 nouveau 驱动程序输出
----:~$ cat journalctl -b | grep -i '01:00\|nvidia\|nouveau'
giu 22 19:21:28 ----- kernel: pci 0000:01:00.0: [10de:1fb9] type 00 class 0x030000
giu 22 19:21:28 ----- kernel: pci 0000:01:00.0: reg 0x10: [mem 0xed000000-0xedffffff]
giu 22 19:21:28 ----- kernel: pci 0000:01:00.0: reg 0x14: [mem 0xc0000000-0xcfffffff 64bit pref]
giu 22 19:21:28 ----- kernel: pci 0000:01:00.0: reg 0x1c: [mem 0xd0000000-0xd1ffffff 64bit pref]
giu 22 19:21:28 ----- kernel: pci 0000:01:00.0: reg 0x24: [io 0x2000-0x207f]
giu 22 19:21:28 ----- kernel: pci 0000:01:00.0: reg 0x30: [mem 0xfff80000-0xffffffff pref]
giu 22 19:21:28 ----- kernel: pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
giu 22 19:21:28 ----- kernel: pci 0000:01:00.1: [10de:10fa] type 00 class 0x040300
giu 22 19:21:28 ----- kernel: pci 0000:01:00.1: reg 0x10: [mem 0xee000000-0xee003fff]
giu 22 19:21:28 ----- kernel: pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
giu 22 19:21:28 ----- kernel: pci 0000:01:00.0: vgaarb: bridge control possible
giu 22 19:21:28 ----- kernel: pci 0000:01:00.0: can't claim BAR 6 [mem 0xfff80000-0xffffffff pref]: no compatible bridge window
giu 22 19:21:28 ----- kernel: pci 0000:01:00.0: BAR 6: assigned [mem 0xee080000-0xee0fffff pref]
giu 22 19:21:28 ----- kernel: pci 0000:01:00.1: D0 power state depends on 0000:01:00.0
giu 22 19:21:28 ----- kernel: pci 0000:01:00.0: Adding to iommu group 1
giu 22 19:21:28 ----- kernel: pci 0000:01:00.1: Adding to iommu group 1
giu 22 19:21:28 ----- kernel: pci 0000:01:00.0: optimus capabilities: enabled, status dynamic power, hda bios codec supported
giu 22 19:21:28 ----- kernel: nouveau: detected PR support, will not use DSM
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: enabling device (0002 -> 0003)
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: NVIDIA TU117 (167000a1)
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: bios: version 90.17.31.00.23
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: fb: 4096 MiB GDDR5
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: VRAM: 4096 MiB
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: GART: 536870912 MiB
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: BIT table 'A' not found
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: BIT table 'L' not found
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: TMDS table version 2.0
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: DCB version 4.1
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: DCB outp 00: 02800f66 04600020
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: DCB outp 01: 02011f52 00020010
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: DCB outp 02: 01022f36 04600010
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: DCB outp 03: 01033f46 04600020
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: DCB conn 00: 00020047
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: DCB conn 01: 00010161
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: DCB conn 02: 00001248
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: DCB conn 03: 00002348
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: failed to create kernel channel, -22
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: MM: using COPY for buffer copies
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: unknown connector type 48
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: unknown connector type 48
giu 22 19:21:28 ----- kernel: [drm] Initialized nouveau 1.3.1 20120801 for 0000:01:00.0 on minor 1
giu 22 19:21:28 ----- kernel: nouveau 0000:01:00.0: DRM: Disabling PCI power management to avoid bug
giu 22 19:21:30 ----- kernel: snd_hda_intel 0000:01:00.1: enabling device (0000 -> 0002)
giu 22 19:21:30 ----- kernel: snd_hda_intel 0000:01:00.1: Disabling MSI
giu 22 19:21:30 ----- kernel: snd_hda_intel 0000:01:00.1: Handle vga_switcheroo audio client
giu 22 19:21:30 ----- kernel: pci 0000:01:00.0: Removing from iommu group 1
giu 22 19:21:31 ----- kernel: input: HDA NVidia HDMI/DP,pcm=3 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input20
giu 22 19:21:31 ----- kernel: input: HDA NVidia HDMI/DP,pcm=7 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input21
giu 22 19:21:31 ----- kernel: input: HDA NVidia HDMI/DP,pcm=8 as /devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/input22
giu 22 19:21:31 ----- kernel: pci 0000:01:00.1: Removing from iommu group 1
giu 22 19:21:31 ----- systemd-udevd[761]: controlC1: /usr/lib/udev/rules.d/78-sound-card.rules:5 Failed to write ATTR{/sys/devices/pci0000:00/0000:00:01.0/0000:01:00.1/sound/card1/controlC1/../uevent}, ignoring: No such file or directory
giu 22 19:21:31 ----- audit[1241]: AVC apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=1241 comm="apparmor_parser"
giu 22 19:21:31 ----- audit[1241]: AVC apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=1241 comm="apparmor_parser"
giu 22 19:21:31 ----- kernel: audit: type=1400 audit(1592846491.687:6): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=1241 comm="apparmor_parser"
giu 22 19:21:31 ----- kernel: audit: type=1400 audit(1592846491.687:7): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=1241 comm="apparmor_parser"
[2] 不使用 nouveau driver 的输出
-----:~$ journalctl -b | grep -i '01:00\|nvidia\|nouveau'
giu 23 08:15:49 ----- kernel: pci 0000:01:00.0: [10de:1fb9] type 00 class 0x030000
giu 23 08:15:49 ----- kernel: pci 0000:01:00.0: reg 0x10: [mem 0xed000000-0xedffffff]
giu 23 08:15:49 ----- kernel: pci 0000:01:00.0: reg 0x14: [mem 0xc0000000-0xcfffffff 64bit pref]
giu 23 08:15:49 ----- kernel: pci 0000:01:00.0: reg 0x1c: [mem 0xd0000000-0xd1ffffff 64bit pref]
giu 23 08:15:49 ----- kernel: pci 0000:01:00.0: reg 0x24: [io 0x2000-0x207f]
giu 23 08:15:49 ----- kernel: pci 0000:01:00.0: reg 0x30: [mem 0xfff80000-0xffffffff pref]
giu 23 08:15:49 ----- kernel: pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
giu 23 08:15:49 ----- kernel: pci 0000:01:00.1: [10de:10fa] type 00 class 0x040300
giu 23 08:15:49 ----- kernel: pci 0000:01:00.1: reg 0x10: [mem 0xee000000-0xee003fff]
giu 23 08:15:49 ----- kernel: pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
giu 23 08:15:49 ----- kernel: pci 0000:01:00.0: vgaarb: bridge control possible
giu 23 08:15:49 ----- kernel: pci 0000:01:00.0: can't claim BAR 6 [mem 0xfff80000-0xffffffff pref]: no compatible bridge window
giu 23 08:15:49 ----- kernel: pci 0000:01:00.0: BAR 6: assigned [mem 0xee080000-0xee0fffff pref]
giu 23 08:15:49 ----- kernel: pci 0000:01:00.1: D0 power state depends on 0000:01:00.0
giu 23 08:15:49 ----- kernel: pci 0000:01:00.0: Adding to iommu group 1
giu 23 08:15:49 ----- kernel: pci 0000:01:00.1: Adding to iommu group 1
giu 23 08:15:49 ----- kernel: pci 0000:01:00.0: Removing from iommu group 1
giu 23 08:15:49 ----- kernel: pci 0000:01:00.1: Removing from iommu group 1
giu 23 08:15:49 ----- kernel: nvidia: module license 'NVIDIA' taints kernel.
giu 23 08:15:49 ----- kernel: nvidia-nvlink: Nvlink Core is being initialized, major device number 235
giu 23 08:15:49 ----- kernel: NVRM: No NVIDIA graphics adapter found!
giu 23 08:15:49 ----- kernel: nvidia-nvlink: Unregistered the Nvlink Core, major device number 235
giu 23 08:15:50 ----- kernel: nvidia-nvlink: Nvlink Core is being initialized, major device number 235
giu 23 08:15:50 ----- kernel: NVRM: No NVIDIA graphics adapter found!
giu 23 08:15:50 ----- kernel: nvidia-nvlink: Unregistered the Nvlink Core, major device number 235
giu 23 08:15:52 ----- audit[1086]: AVC apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=1086 comm="apparmor_parser"
giu 23 08:15:52 ----- audit[1086]: AVC apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=1086 comm="apparmor_parser"
giu 23 08:15:52 ----- kernel: audit: type=1400 audit(1592892952.070:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=1086 comm="apparmor_parser"
giu 23 08:15:52 ----- kernel: audit: type=1400 audit(1592892952.070:5): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=1086 comm="apparmor_parser"
还有一个journalctl
输出:在手动安装所有 nvidia 软件(和最新驱动程序)后执行,并用作启动选项pcie_port_pm=off
(如@nobody 所建议)
-----:~$ journalctl -b | grep -i '01:00\|nvidia\|nouveau'
lug 02 09:47:59 ----- kernel: pci 0000:01:00.0: [10de:1fb9] type 00 class 0x030000
lug 02 09:47:59 ----- kernel: pci 0000:01:00.0: reg 0x10: [mem 0xed000000-0xedffffff]
lug 02 09:47:59 ----- kernel: pci 0000:01:00.0: reg 0x14: [mem 0xc0000000-0xcfffffff 64bit pref]
lug 02 09:47:59 ----- kernel: pci 0000:01:00.0: reg 0x1c: [mem 0xd0000000-0xd1ffffff 64bit pref]
lug 02 09:47:59 ----- kernel: pci 0000:01:00.0: reg 0x24: [io 0x2000-0x207f]
lug 02 09:47:59 ----- kernel: pci 0000:01:00.0: reg 0x30: [mem 0xfff80000-0xffffffff pref]
lug 02 09:47:59 ----- kernel: pci 0000:01:00.0: PME# supported from D0 D3hot D3cold
lug 02 09:47:59 ----- kernel: pci 0000:01:00.1: [10de:10fa] type 00 class 0x040300
lug 02 09:47:59 ----- kernel: pci 0000:01:00.1: reg 0x10: [mem 0xee000000-0xee003fff]
lug 02 09:47:59 ----- kernel: pci 0000:01:00.0: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
lug 02 09:47:59 ----- kernel: pci 0000:01:00.0: vgaarb: bridge control possible
lug 02 09:47:59 ----- kernel: pci 0000:01:00.0: can't claim BAR 6 [mem 0xfff80000-0xffffffff pref]: no compatible bridge window
lug 02 09:47:59 ----- kernel: pci 0000:01:00.0: BAR 6: assigned [mem 0xee080000-0xee0fffff pref]
lug 02 09:47:59 ----- kernel: pci 0000:01:00.1: D0 power state depends on 0000:01:00.0
lug 02 09:47:59 ----- kernel: pci 0000:01:00.0: Adding to iommu group 1
lug 02 09:47:59 ----- kernel: pci 0000:01:00.1: Adding to iommu group 1
lug 02 09:47:59 ----- kernel: nvidia: loading out-of-tree module taints kernel.
lug 02 09:47:59 ----- kernel: nvidia: module license 'NVIDIA' taints kernel.
lug 02 09:47:59 ----- kernel: nvidia: module verification failed: signature and/or required key missing - tainting kernel
lug 02 09:47:59 ----- kernel: nvidia-nvlink: Nvlink Core is being initialized, major device number 237
lug 02 09:47:59 ----- kernel: nvidia 0000:01:00.0: enabling device (0002 -> 0003)
lug 02 09:47:59 ----- kernel: nvidia 0000:01:00.0: vgaarb: changed VGA decodes: olddecodes=io+mem,decodes=none:owns=none
lug 02 09:47:59 ----- kernel: NVRM: loading NVIDIA UNIX x86_64 Kernel Module 440.100 Fri May 29 08:45:51 UTC 2020
lug 02 09:47:59 ----- kernel: nvidia-modeset: Loading NVIDIA Kernel Mode Setting Driver for UNIX platforms 440.100 Fri May 29 08:14:04 UTC 2020
lug 02 09:47:59 ----- kernel: [drm] [nvidia-drm] [GPU ID 0x00000100] Loading driver
lug 02 09:47:59 ----- kernel: [drm] Initialized nvidia-drm 0.0.0 20160202 for 0000:01:00.0 on minor 1
lug 02 09:47:59 ----- kernel: nvidia-uvm: Loaded the UVM driver, major device number 235.
lug 02 09:47:59 ----- kernel: pci 0000:01:00.1: Removing from iommu group 1
lug 02 09:47:59 ----- kernel: pci 0000:01:00.0: Removing from iommu group 1
lug 02 09:48:02 ----- kernel: audit: type=1400 audit(1593676082.870:3): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=1113 comm="apparmor_parser"
lug 02 09:48:02 ----- kernel: audit: type=1400 audit(1593676082.870:4): apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=1113 comm="apparmor_parser"
lug 02 09:48:02 ----- audit[1113]: AVC apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe" pid=1113 comm="apparmor_parser"
lug 02 09:48:02 ----- audit[1113]: AVC apparmor="STATUS" operation="profile_load" profile="unconfined" name="nvidia_modprobe//kmod" pid=1113 comm="apparmor_parser"
lug 02 09:48:03 ----- systemd[1]: Starting NVIDIA Persistence Daemon...
lug 02 09:48:03 ----- nvidia-persistenced[1231]: Verbose syslog connection opened
lug 02 09:48:03 ----- nvidia-persistenced[1231]: Now running with user ID 125 and group ID 132
lug 02 09:48:03 ----- nvidia-persistenced[1231]: Started (1231)
lug 02 09:48:03 ----- nvidia-persistenced[1231]: Failed to query NVIDIA devices. Please ensure that the NVIDIA device files (/dev/nvidia*) exist, and that user 125 has read and write permissions for those files.
lug 02 09:48:03 ----- nvidia-persistenced[1231]: PID file unlocked.
lug 02 09:48:03 ----- nvidia-persistenced[1228]: nvidia-persistenced failed to initialize. Check syslog for more details.
lug 02 09:48:03 ----- nvidia-persistenced[1231]: PID file closed.
lug 02 09:48:03 ----- nvidia-persistenced[1231]: The daemon no longer has permission to remove its runtime data directory /var/run/nvidia-persistenced
lug 02 09:48:03 ----- nvidia-persistenced[1231]: Shutdown (1231)
lug 02 09:48:03 ----- systemd[1]: nvidia-persistenced.service: Control process exited, code=exited, status=1/FAILURE
lug 02 09:48:03 ----- systemd[1]: nvidia-persistenced.service: Failed with result 'exit-code'.
lug 02 09:48:03 ----- systemd[1]: Failed to start NVIDIA Persistence Daemon.
答案1
请在此处查看 generix 提供的有用答案:https://forums.developer.nvidia.com/t/no-matter-which-drivers-i-install-i-cannot-boot-my-ubuntu-20-04-lts-beyond-a-black-screen/127510/9
- 再次切换到 nvidia:
sudo prime-select nvidia
- 删除
/lib/udev/rules.d/50-pm-nvidia.rules
(也删除/lib/udev/rules.d/80-pm-nvidia.rules
) - 删除杂散的黑名单文件:
sudo rm /lib/modprobe.d/blacklist-nvidia.conf /etc/modprobe.d/blacklist-nvidia.conf
- 更新 initrd:
sudo update-initramfs -u
- 重启
也可以看看此 Nvidia 论坛帖子generix 指出:
好的,是这样的:
/lib/udev/rules.d/80-pm-nvidia.rules
:
ACTION=="add", SUBSYSTEM=="pci", ATTR{vendor}=="0x10de", ATTR{class}=="0x030000", ATTR{remove}="1"
它正在从总线上移除 nvidia gpu。文件的其余部分是准备渲染卸载的规则。这看起来又在 Ubuntu 的 prime-select/nvidia-prime 中发生了一些变化,真的不知道这样做有什么意义……
对我来说,sudo prime-select nvidia
通常可以解决问题,但如果不行,手动删除/lib/udev/rules.d/50-pm-nvidia.rules
并/lib/udev/rules.d/80-pm-nvidia.rules
重新启动就可以了。
值得庆幸的是,这些 udev 规则将在 20.10(groovy)中消失(参见 nvidia-prime 0.8.15 的更新日志),因此这种“Nvidia GPU 消失”的问题很快就会成为过去。