Bug 28002

Summary: Mageia 8 not detecting dual head video INTEL / NVIDIA on HP OMEN Laptop.
Product: Mageia Reporter: Ezequiel Partida <ezequiel_partida>
Component: RPM PackagesAssignee: Kernel and Drivers maintainers <kernel>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: Normal CC: davidwhodgins, ghibomgx
Version: 8   
Target Milestone: ---   
Hardware: All   
OS: Linux   
Whiteboard:
Source RPM: CVE:
Status comment:
Attachments: parsed version of supported-gpus.json
false-positive pci-ids to be removed from pcitable.x86_64
revised pcitables for nvidia390
revised pcitable for nvidia-current (460.32)
revised pcitables for nvidia340 (retired)
false positive for driver 340

Description Ezequiel Partida 2021-01-02 09:39:50 CET
Hello everyonme

I have a new HP OMEN Laptop with the next video cards.

NVidia TU117M [GeForce GTX 1650 Ti Mobile]
Intgel UHD Graphics

Mageia 8 only detects the Intel video card with no problems but it does not detect the NVIDIA video card.. using XFDrake fails.

On my other laptops INTEL/AMD MGA gives me a choice to configure both video cards on xorg.conf but not on this one.

I tried bumblebee but it crashes while detecting new hardware.

Using 5.10.4-desktop-1.mga8

I just make an xorg.conf manually to test using noveaou

Please advice.

Regards
Comment 1 Dave Hodgins 2021-01-02 12:25:24 CET
What's the output of (as root) "lspcidrake -v|grep Card"?

Assignee: bugsquad => kernel
CC: (none) => davidwhodgins

Comment 2 Ezequiel Partida 2021-01-03 09:34:08 CET
Hello Dave

$lspcidrake -v|grep Card

Card:Intel 810 and later: Intel Corporation|UHD Graphics [DISPLAY_VGA] (vendor:8086 device:9bc4 subv:103c subd:878c) (rev: 05)

$lspcidrake -v | grep DISPLAY

Card:Intel 810 and later: Intel Corporation|UHD Graphics [DISPLAY_VGA] (vendor:8086 device:9bc4 subv:103c subd:878c) (rev: 05)
nouveau         : NVIDIA Corporation|TU117M [GeForce GTX 1650 Ti Mobile] [DISPLAY_VGA] (vendor:10de device:1f95 subv:103c subd:878c) (rev: a1)
Comment 3 Ezequiel Partida 2021-01-08 23:36:05 CET
Still nothing on this Dave?..

Regards
Comment 4 Dave Hodgins 2021-01-09 00:01:22 CET
I'm leader of the qa team. The bug is assigned to the team that handles the
kernel etc. I just asked for the pci output as I know from prior experience,
that the info would be asked for when I saw the bug report.
Comment 5 Thomas Backlund 2021-01-09 00:30:04 CET
looks like ldetect-lst is not properly updated to match what nvidia-current driver supports...

Will take a look tomorrow..
Comment 6 Giuseppe Ghibò 2021-01-09 08:30:19 CET
Thomas, looks like README of the 460.32.03 driver lists at least 22 cards with "device:1f95", of the kind "GeForce GTX 1650 Ti with Max-Q Design", but merge2pcitable (i.e NVIDIA_CARD="NVIDIA GeForce 635 series and later" ldetect-lst/convert/merge2pcitable.pl nvidia_readme README.txt ldetect-lst/lst/pcitable.x86_64 > lst/pcitable.x86_64.new) which was used to extract the ids, doesn't catch any of them, but only those related to id=10de (which aren't listed any for the "GeForce GTX 1650 Ti with Max-Q Design"). Probably something to fix in merge2pcitable.pl script.

In the future could more robust to extract the ids from the supported-gpus.json instead of the README file.

CC: (none) => ghibomgx

Comment 7 Thomas Backlund 2021-01-09 17:35:47 CET
it actually had missed several ids.

the missing ids are now in ldetect-lst-0.6.18-1.mga8 currently buillding
Comment 8 Giuseppe Ghibò 2021-01-09 17:47:04 CET
Thanks. How did you get the fixed list with missing IDs? I.e? https://gitweb.mageia.org/software/ldetect-lst/commit/?id=0b5844c6773a47e193355ea9f69061f7df59d29f

Were at this point the IDs from nvidia-390.xx need a review too?
Comment 9 Thomas Backlund 2021-01-09 20:10:18 CET
(In reply to Giuseppe Ghibò from comment #8)
> Thanks. How did you get the fixed list with missing IDs? I.e?
> https://gitweb.mageia.org/software/ldetect-lst/commit/
> ?id=0b5844c6773a47e193355ea9f69061f7df59d29f


usually I diff the README between driver versions to spot anything that the extract script misses.

This time I did a manual review with some help of cut/tr/sort and some manual adaptions

> 
> Were at this point the IDs from nvidia-390.xx need a review too?

just did, and switched over several gpus from nvidia340 to nvidia390 and added the missing ones in ldetect-lst-0.6.19-1.mga8 according to the nvidia README in 390.141 driver

so now we should be back in full sync
Comment 10 Giuseppe Ghibò 2021-01-09 23:10:20 CET
Thanks for the manual review. I just spotted some "false positive", i.e. in particular there are listed cards with pci-ids as the card name, e.g. we have ids, 0xa600, and 0x3090 or 0x3080, which were generated by some previous merge2pcitable.pl run (most of them problably under my run, sorry). merge2pcitable.pl probably needs a fix or a replacement, at least for nvidia part.

In particular, for instance, the pci-ids 0x3090, apparently should have been for the RTX 3090, which indeed has pci-ids "0x2204", and also there isn't really any card listed with 0x3090 as pci-id.

False positives shouldn't hurt anyway, as probably are referring to some card whose pci-ids with that particular vendor doesn't exist, but anyway better to cleanup.

I tried to parse the provided "supported-gpus.json", with the following command:

cat supported-gpus.json | jq -r '.chips[] | {devid,subdevid,subvendorid,name,legacybranch} | @text' > supported-gpus-parsed-subs.txt

The cards for nvidia-current are listed with "legacybranch":null, cards for nvidia390, are listed with "legacybranch":"390.xx", and cards with "legacybranch":"340.xx" for the nvidia340.

I haven't spotted any false negative (at least for nvidia-current), which means no cards are missed.

I attach the result for a quick parsed supported-gpus.json. And an initial result of pcitable.x86_64.toremove.txt, containing the list of false positive cards or not supported anymore for (sample|random double-checking with the README.txt doesn't show them too).
Comment 11 Giuseppe Ghibò 2021-01-09 23:12:10 CET
Created attachment 12202 [details]
parsed version of supported-gpus.json
Comment 12 Giuseppe Ghibò 2021-01-09 23:12:54 CET
Created attachment 12203 [details]
false-positive pci-ids to be removed from pcitable.x86_64
Comment 13 Giuseppe Ghibò 2021-01-10 20:54:13 CET
Hi Thomas, I include here my revised and cleaned list of pcitables for nvidia390 and nvidia-current driver (340 is no longer needed since I read in ML you just retired) for including in ldetect-lst. Outside these lists should be removed, as with wrong ids (such as the 0x3090 case I told yesterday) or not supported anymore. Some card overlaps between the driver series, which means that you can use either one driver or the other; it was currently already so right now, AFAIK XFdrake choose automatically the highest rank driver, but nevertheless manually you can choose one or another and getting it working. E.g. card with devid 1195, which corresponds to Geforce GTX 660, can be used with either one driver or the other.
Comment 14 Giuseppe Ghibò 2021-01-10 20:56:54 CET
Created attachment 12208 [details]
revised pcitables for nvidia390
Comment 15 Giuseppe Ghibò 2021-01-10 20:57:59 CET
Created attachment 12209 [details]
revised pcitable for nvidia-current (460.32)
Comment 16 Giuseppe Ghibò 2021-01-10 20:59:38 CET
Created attachment 12210 [details]
revised pcitables for nvidia340 (retired)
Comment 17 Giuseppe Ghibò 2021-01-10 21:57:48 CET
Thomas, I've reviewed the new list about current ldetect-lst 0.6.20. It seems still containing some glitch for card belonging to old 340 driver, i.e. card listed as "Card:NVIDIA GeForce 8100 to GeForce 415", which now should be redirected to nouveau. It seems list still suffers from many false-positive cards derived from the merge2pcitable.pl bug. Just as an example, looking in lst/pcitable, we have:

0x10de 0x9300  "Card:NVIDIA GeForce 8100 to GeForce 415"
0x10de 0x9400  "Card:NVIDIA GeForce 8100 to GeForce 415"

if we look in README.txt from nvidia-340.108, those cards aren't listed, i.e. there aren't any card with pci-ids 0x9300 or 0x9400. I think those cards should be removed from the list (you may refer to the attached pcitable.340.txt modulo the cards you already redirected to driver 390).

I attach the list of current false positives for 340 which results in current pcitable.

There is also one typo, the card listed as, which is a "GeForce 8200M G":

 0x10de 0x0845  "Card:NVIDIA GeForce 6100 to GeForce 7950"

should belong to:

 0x10de 0x0845  "Card:NVIDIA GeForce 8100 to GeForce 415"

as is on a family beyond 7950.
Comment 18 Giuseppe Ghibò 2021-01-10 21:58:14 CET
Created attachment 12211 [details]
false positive for driver 340
Comment 19 Ezequiel Partida 2021-02-12 08:33:59 CET
(In reply to Giuseppe Ghibò from comment #11)
> Created attachment 12202 [details]
> parsed version of supported-gpus.json

Hello Giuseppe.

Does this means I won´t be able to use MGA8 with my GeForce GTX 1650 TI?

XFDrake installs ¨Nouveau¨ and not ¨nvidia¨ 460.32.. This version is the one listed at the NVIDIA site tha supposely is compatible with GeForce GTX 1650-

Regards
Ezequiel Partida (ZekeMX)
Comment 20 Giuseppe Ghibò 2021-02-12 09:10:54 CET
AFAIK, it should be fixed with latest ldetect-lst 0.6.26-1.mga8 (which sync with nvidia 460.39, so update to use 460.39 not 460.32).

XFdrake prioritize to free drivers (nouveau) anyway, you have to choose Cards -> Nvidia -> "Geforce 635 series and later" if you want to use the NVidia proprietary drivers.

lspcidrake -v | grep "3D"

what shows now?
Comment 21 Giuseppe Ghibò 2021-02-12 09:23:02 CET
Ah, I forgot that it's a laptop with Optimus, I thought it was a desktop 1650 Ti. So update to latest cauldron packages, configure in XFdrake your Intel card anyway, remove any bumblebee, install mageia-prime package, run mageia-prime-install and reboot. It should switch Xorg to nvidia.
Comment 22 Ezequiel Partida 2021-03-24 08:13:40 CET
When using XFdrake, if I choose Configure only card *NVIDIA Corporation|TU117M [GeForce GTX 1650 Ti Mobile] (PCI:1:0:0) XFdrake chooses NVIDIA Propietary driver 460.67 (Not nouveau) If I select to use Nvidia 635 Series or later (as explained by Giuseppe), the problem is that I only get Plasma 5 on my external monitor and text on my internal laptop screen (No DE).

Running /usr/bin/nvidia-settings does detect my NVIDIA drivers.

If I choose to configure all heads independently, It does detect both intel and Nvidia GPUs but using nouveau, it would be great if XFdrake could give me the option to choose the second video card with option to use Nouveau or propietary.

I did change it manualy fron Nouveau to Nvidia on xorg.conf after I installed the propietary 460.67 drivers and it works great. Now I get plasma 5 on both internal and external screens.
Comment 23 Ezequiel Partida 2023-05-10 07:14:18 CEST
This works now..

I will mark it as resolved

Resolution: (none) => FIXED
Status: NEW => RESOLVED