我在一台相当老旧的戴尔笔记本电脑上运行 Ubuntu 22.04.3。它(通常)有四个 DP 端口,DP-1 到 DP-4,HDMI 插槽显示为 DP-4。最近我去做演讲,发现 HDMI 上根本无法输出任何内容。当时,我以为我的老旧硬件坏了。VGA 端口工作正常,所以我们就这么过了。
但是,我妻子的笔记本电脑型号几乎相同(老一代),一周前她使用 HDMI 输出进行演示,但今天去使用它时,它也没有产生任何输出。这时我开始怀疑并开始进一步调查,这时我注意到 xrandr 的输出列出了内部显示器、VGA 端口和 HDMI 端口(这不是实际的 HDMI 端口,从来都不是),只有 DP-1、DP-2 到 DP-4 不存在。这反映了“设置”工具的行为,它根本没有显示任何连接。
然后,我从旧的 Ubuntu 18.04 安装盘启动,外部屏幕(当 22.04 拒绝识别任何东西时仍然连接)完美地弹出。
我妻子的机器在上周左右停止驱动这个端口,这让我认为这是一种更新问题(我的机器比她的机器更晚从头重建,而且我不确定自从全新安装 22.04.3 以来我是否尝试过使用 HDMI 端口)。
我需要报告什么才能帮助别人帮助我弄清楚发生了什么,并找到解决方法和/或在更新中修复问题?
初步猜测可能有帮助的是“hwinfo --gfxcard”的输出:
13: PCI 100.0: 0300 VGA compatible controller (VGA)
[Created at pci.386]
Unique ID: VCu0.q87dynqFfH7
Parent ID: vSkL.uHVYA+EuUr0
SysFS ID: /devices/pci0000:00/0000:00:01.0/0000:01:00.0
SysFS BusID: 0000:01:00.0
Hardware Class: graphics card
Model: "nVidia GK107GLM [Quadro K1100M]"
Vendor: pci 0x10de "nVidia Corporation"
Device: pci 0x0ff6 "GK107GLM [Quadro K1100M]"
SubVendor: pci 0x1028 "Dell"
SubDevice: pci 0x15cc
Revision: 0xa1
Memory Range: 0xf4000000-0xf4ffffff (rw,non-prefetchable,disabled)
Memory Range: 0xe0000000-0xefffffff (ro,non-prefetchable,disabled)
Memory Range: 0xf0000000-0xf1ffffff (ro,non-prefetchable,disabled)
I/O Ports: 0xe000-0xe07f (rw,disabled)
Memory Range: 0xf5000000-0xf507ffff (ro,non-prefetchable,disabled)
IRQ: 11 (no events)
Module Alias: "pci:v000010DEd00000FF6sv00001028sd000015CCbc03sc00i00"
Driver Info #0:
Driver Status: nvidiafb is not active
Driver Activation Cmd: "modprobe nvidiafb"
Driver Info #1:
Driver Status: nouveau is not active
Driver Activation Cmd: "modprobe nouveau"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Attached to: #10 (PCI bridge)
26: PCI 02.0: 0300 VGA compatible controller (VGA)
[Created at pci.386]
Unique ID: _Znp.Ucbde_kbrc3
SysFS ID: /devices/pci0000:00/0000:00:02.0
SysFS BusID: 0000:00:02.0
Hardware Class: graphics card
Device Name: "Onboard IGD"
Model: "Intel 4th Gen Core Processor Integrated Graphics Controller"
Vendor: pci 0x8086 "Intel Corporation"
Device: pci 0x0416 "4th Gen Core Processor Integrated Graphics Controller"
SubVendor: pci 0x1028 "Dell"
SubDevice: pci 0x05cc
Revision: 0x06
Driver: "i915"
Driver Modules: "i915"
Memory Range: 0xf5400000-0xf57fffff (rw,non-prefetchable)
Memory Range: 0xd0000000-0xdfffffff (ro,non-prefetchable)
I/O Ports: 0xf000-0xf03f (rw)
Memory Range: 0x000c0000-0x000dffff (rw,non-prefetchable,disabled)
IRQ: 37 (57500 events)
Module Alias: "pci:v00008086d00000416sv00001028sd000005CCbc03sc00i00"
Driver Info #0:
Driver Status: i915 is active
Driver Activation Cmd: "modprobe i915"
Config Status: cfg=new, avail=yes, need=no, active=unknown
Primary display adapter: #13
该机器正在运行“推荐的驱动程序”,即 nvidia-driver-390 并且机器本身是 Dell Precision M4800(如果我没记错的话,我妻子的机器是 M4700,也许是 M4600,但包装几乎相同。如果相关的话,我当然可以找出确切的型号等。)
编辑/添加:$ uname -r 6.5.0-17-generic
我尝试更改视频驱动程序,但出现错误,声称我未获得授权(我有权限,我知道我的密码,我是管理员用户,我输入的密码正确)。这是我能抓取到的错误报告(无法复制粘贴文本,也无法移动窗口)
$ ls /bin/gcc*
/bin/gcc /bin/gcc-ar /bin/gcc-nm /bin/gcc-ranlib
/bin/gcc-11 /bin/gcc-ar-11 /bin/gcc-nm-11 /bin/gcc-ranlib-11
/bin/gcc-12 /bin/gcc-ar-12 /bin/gcc-nm-12 /bin/gcc-ranlib-12
$ strings /lib/modules/6.5.0-17-generic/updates/dkms/nvidia.ko |grep gcc
strings: '/lib/modules/6.5.0-17-generic/updates/dkms/nvidia.ko': No such file
$ ls /lib/modules
5.15.0-25-generic 5.15.0-48-generic 5.19.0-38-generic 6.2.0-32-generic
5.15.0-30-generic 5.15.0-50-generic 5.19.0-40-generic 6.2.0-33-generic
5.15.0-33-generic 5.15.0-52-generic 5.19.0-41-generic 6.2.0-34-generic
5.15.0-37-generic 5.15.0-53-generic 5.19.0-42-generic 6.2.0-35-generic
5.15.0-39-generic 5.15.0-56-generic 5.19.0-43-generic 6.2.0-36-generic
5.15.0-40-generic 5.15.0-57-generic 5.19.0-45-generic 6.2.0-37-generic
5.15.0-41-generic 5.15.0-58-generic 5.19.0-46-generic 6.2.0-39-generic
5.15.0-43-generic 5.15.0-60-generic 5.19.0-50-generic 6.5.0-14-generic
5.15.0-46-generic 5.19.0-32-generic 6.2.0-26-generic 6.5.0-15-generic
5.15.0-47-generic 5.19.0-35-generic 6.2.0-31-generic 6.5.0-17-generic
$ find /lib/modules -name nvidia\*ko
/lib/modules/6.2.0-39-generic/kernel/nvidia-390/nvidia-modeset.ko
/lib/modules/6.2.0-39-generic/kernel/nvidia-390/nvidia-uvm.ko
/lib/modules/6.2.0-39-generic/kernel/nvidia-390/nvidia.ko
/lib/modules/6.2.0-39-generic/kernel/nvidia-390/nvidia-drm.ko
/lib/modules/6.2.0-39-generic/kernel/drivers/video/fbdev/nvidia/nvidiafb.ko
/lib/modules/6.2.0-39-generic/kernel/drivers/platform/x86/nvidia-wmi-ec-backlight.ko
/lib/modules/6.5.0-15-generic/kernel/drivers/video/fbdev/nvidia/nvidiafb.ko
/lib/modules/6.5.0-15-generic/kernel/drivers/platform/x86/nvidia-wmi-ec-backlight.ko
/lib/modules/6.5.0-17-generic/kernel/drivers/video/fbdev/nvidia/nvidiafb.ko
/lib/modules/6.5.0-17-generic/kernel/drivers/platform/x86/nvidia-wmi-ec-backlight.ko
$ ls /boot
config-6.2.0-39-generic memtest86+.bin
config-6.5.0-15-generic memtest86+.elf
config-6.5.0-17-generic memtest86+_multiboot.bin
efi System.map-6.2.0-39-generic
grub System.map-6.5.0-15-generic
initrd.img System.map-6.5.0-17-generic
initrd.img-6.2.0-39-generic vmlinuz
initrd.img-6.5.0-15-generic vmlinuz-6.2.0-39-generic
initrd.img-6.5.0-17-generic vmlinuz-6.5.0-15-generic
initrd.img.old vmlinuz-6.5.0-17-generic
lost+found vmlinuz.old
更新:2 月 14 日;我运行了 sudo apt update/upgrade,它尝试重建一些 nvidia 内容,但失败了。我截断了这个输出,因为它太长了,如果你认为我省略了一些相关内容,LMK,我可以提供更多,但在我看来,这是相关的:
Setting up nvidia-dkms-390 (390.157-0ubuntu0.22.04.2) ...
update-initramfs: deferring update (trigger activated)
INFO:Enable nvidia
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/put_your_quirks_here
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/dell_latitude
DEBUG:Parsing /usr/share/ubuntu-drivers-common/quirks/lenovo_thinkpad
Removing old nvidia-390.157 DKMS files...
Deleting module nvidia-390.157 completely from the DKMS tree.
Loading new nvidia-390.157 DKMS files...
Building for 6.5.0-17-generic
Building for architecture x86_64
Building initial module for 6.5.0-17-generic
ERROR: Cannot create report: [Errno 17] File exists: '/var/crash/nvidia-dkms-390.0.crash'
Error! Bad return status for module build on kernel: 6.5.0-17-generic (x86_64)
Consult /var/lib/dkms/nvidia/390.157/build/make.log for more information.
dpkg: error processing package nvidia-dkms-390 (--configure):
installed nvidia-dkms-390 package post-installation script subprocess returned error exit status 10
Setting up google-chrome-stable (121.0.6167.184-1) ...
Setting up libgdm1 (42.0-1ubuntu7.22.04.4) ...
Setting up dns-root-data (2023112702~ubuntu0.22.04.1) ...
[...]
Errors were encountered while processing:
nvidia-dkms-390
E: Sub-process /usr/bin/dpkg returned an error code (1)
并且该错误文件已经存在,并将其作为第一个错误报告(在我看来,好像是某个标题的版本不匹配或者其他什么?)
/var/lib/dkms/nvidia/390.157/build/common/inc/nv-mm.h:164:45: error: passing argument 1 of ‘get_user_pages_remote’ from incompatible pointer type [-Werror=incompatible-pointer-types]
164 | return get_user_pages_remote(tsk, mm, start, nr_pages, flags,
| ^~~
| |
| struct task_struct *
In file included from /var/lib/dkms/nvidia/390.157/build/common/inc/nv-pgprot.h:17,
from /var/lib/dkms/nvidia/390.157/build/common/inc/nv-linux.h:20:
我还应该收集哪些信息(请告诉我应该运行的命令)?