View Issue Details
ID | Project | Category | View Status | Date Submitted | Last Update |
---|---|---|---|---|---|
0001112 | channel: elrepo/el8 | nvidia-detect | public | 2021-06-23 10:02 | 2021-06-24 03:19 |
Reporter | gbrandl | Assigned To | pperry | ||
Priority | normal | Severity | major | Reproducibility | always |
Status | resolved | Resolution | fixed | ||
Platform | x86-64 | OS | CentOS | OS Version | 8.4 |
Summary | 0001112: nvidia-detect fails to detect NVIDIA Corporation GK107GL [Quadro 410] | ||||
Description | Since the upgrade to 8.4, nvidia-detect does not find the given card anymore, saying "No NVIDIA devices were found." The machine is a HP Z420, relevant `lspci` output: # lspci | grep VGA 05:00.0 VGA compatible controller: NVIDIA Corporation GK107GL [Quadro 410] (rev a1) # lspci -n | grep 05:00.0 05:00.0 0300: 10de:0fff (rev a1) The PCI ID `10de:0fff` is listed in `nvidia-detect -l` as being supported by the newest driver. | ||||
Steps To Reproduce | Install nvidia-detect on a HP Z420 workstation, call `nvidia-detect`. | ||||
Tags | No tags attached. | ||||
|
What is the version of nvidia-detect? Please show output from 'nvidia-detect -v' What was the last version that works for you? |
|
Sorry, forgot to add the version. It is nvidia-detect-460.73.01-1.el8.x86_64 # nvidia-detect -v Probing for supported NVIDIA devices... No NVIDIA devices were found. I can't tell you the last working version; we only run it once on install. This came up when installing a fresh machine after the 8.4 bump. The machines are all the same make and model, though, and contain the same NVidia card. I did try with the older version available in the repo (nvidia-detect-440.64-1.el8.x86_64), but that is not working either. |
|
OK, I got the source from the SRPM, and debugged the problem. It looks like the code does not call `pci_fill_info` on the returned pci_dev structs, and therefore all the info fields (device_class, vendor_id, device_id etc.) are zero. I don't know why this was not required previously, maybe it is an incompatibility in the pci-utils package. The following patch seems to fix the issue: --- nvidia-detect.c 2021-05-11 14:09:41.698807061 +0200 +++ nvidia-detect.c.new 2021-06-23 18:31:27.085090004 +0200 @@ -460,6 +460,7 @@ /* Iterate over all devices */ for (dev=pacc->devices; dev; dev=dev->next) { + pci_fill_info(dev, PCI_FILL_IDENT | PCI_FILL_CLASS); if ((dev->device_class & 0xff00) == 0x0300) { |
|
I confirm the issue. Thanks for the patch. We used to call pci_fill_info(), but dropped it very early on (2013) as it was not required to get the device_class. It would appear that has changed with the update to pciutils-3.7.0. I'll run some tests and get a fix built this evening for you to test. Thanks again |
|
Updated packages including your patch have been built and should be available on mirror sites shortly. nvidia-detect-460.84-1.el8.elrepo.x86_64.rpm nvidia-detect-460.84-1.el7.elrepo.x86_64.rpm Thanks again for the patch. |
|
Can confirm that the new c8 package works again. Thanks for the super fast response! |
|
You're welcome! Thanks for the feedback - closed as fixed. |
Date Modified | Username | Field | Change |
---|---|---|---|
2021-06-23 10:02 | gbrandl | New Issue | |
2021-06-23 10:02 | gbrandl | Status | new => assigned |
2021-06-23 10:02 | gbrandl | Assigned To | => pperry |
2021-06-23 11:48 | pperry | Note Added: 0007694 | |
2021-06-23 11:48 | pperry | Note Edited: 0007694 | |
2021-06-23 11:49 | pperry | Note Edited: 0007694 | |
2021-06-23 12:20 | gbrandl | Note Added: 0007695 | |
2021-06-23 12:33 | gbrandl | Note Added: 0007696 | |
2021-06-23 12:57 | pperry | Note Added: 0007698 | |
2021-06-23 15:22 | pperry | Note Added: 0007699 | |
2021-06-24 01:32 | gbrandl | Note Added: 0007700 | |
2021-06-24 03:19 | pperry | Note Added: 0007701 | |
2021-06-24 03:19 | pperry | Status | assigned => resolved |
2021-06-24 03:19 | pperry | Resolution | open => fixed |