On Thu, 2009-04-30 at 15:26 -0400, Adam Jackson wrote: > On Thu, 2009-04-30 at 11:06 -0700, Jim Bevier wrote: > > Hello all, > > > > I tried the i386 live CD and i386 install DVD. I had a Nvidia Riva TNT card > > in one system (I was running RedHat 7.1, don't ask), and it could not start > > X during startup. I tried vga=791 and xdriver=vesa, but X would not work. > > I removed the card and used the built-in video chip, and it started up > > without a problem. Anyone know of a work around for this nvidia driver > > problem? > > xdriver= only takes effect for install CDs, not live CDs, since atm only > anaconda looks for that option on kcmdline. > > I believe we'll try to load nouveau on all nv chips now, but it doesn't > support nv3 chips because wow that's ancient, so this is probably a case > where we should use nv instead. Well, we don't quite try and load it on *all*: http://cvs.fedoraproject.org/viewvc/rpms/xorg-x11-server/devel/xserver-1.5.99.902-nouveau.patch?revision=1.1&view=markup two series of chips known not to work with nv or nouveau are blacklisted to vesa, and anything with vendor ID 0x12D2 (an old vendor ID used in the Riva era) is blacklisted to use nv. Also, the Riva TNT is NV04, not NV03. Now I look at this patch again, though, I don't think the blacklist is quite right. I keep a copy of the Mandriva card database handy. It has these IDs listed as Riva 128s: [adamw@adam xorg-server-20090110]$ grep "RIVA 128" ~/local2/ldetect-lst/lst/pcitable 0x10b4 0x1b1d "Card:NVIDIA RIVA 128" 0x10de 0x0018 "Card:NVIDIA RIVA 128" 0x10de 0x0019 "Card:NVIDIA RIVA 128" 0x12d2 0x0018 "Card:NVIDIA RIVA 128" 0x12d2 0x0019 "Card:NVIDIA RIVA 128" so if that's accurate, we should be blacklisting 0x10b4 0x1b1d, 0x10de 0x0018 and 0x10de 0x0019 to use nv as well. This is backed up, by implication, by the NVIDIA ID list here: http://www.nvidia.com/object/IO_18897.html which shows 0020 as the RIVA TNT supported by the 71.xx legacy driver, but *doesn't* list the 0018 or 0019, implying that they are indeed pre-TNT chipsets. pciids.sf.net doesn't list them, but pcidatabase.com does: http://www.pcidatabase.com/pci_c_header.php { 0x10DE, 0x0018, "NV3", "Riva 128" } , { 0x10DE, 0x0019, "NV3", "Riva 128ZX" } , and Google returns several results identifying these IDs as Riva 128s. There's also 0x10DE 0x0008, 0x0009 and 0x0010. From what I can find, the 0x0008 and 0x0009 were the original NV1 chips - Diamond Edge 3D, as they were released. lshw claims the 0x0010 is the NV2, which was never released to the public. The 0x12D2 case is a bit odd. It seems to be an old vendor ID listed as "NVidia / SGS Thomson (Joint Venture)" in some places. Several sources claim essentially the same set of device IDs for early NVIDIA cards being used with the 12D2 vendor ID as well as the 10DE one - so 0x12D2 0x0018 would be a Riva 128 just like 0x10DE 0x0018 is. Here's at least one example illustrating this in an apparently real system: http://9fans.net/archive/2001/05/231 Here's a patch by Dave Airlie which added this list of 12D2 IDs to drm_pciids.txt: http://archive.netbsd.se/?ml=dri-patches&a=2006-08&m=2297125 they were subsequently deleted by this commit: http://cgit.freedesktop.org/mesa/drm/commit/?id=30acb90a6077798b1e0c4927273067500905d6d1 but without any particular context. Personally I'm sceptical that anything past 0x12D2 0x0019 actually existed - I can't find any kind of reference to a 12D2 0020, 12D2 0028 or anything else later than 0019 in a real system. There are several old apparently independent sources that list them, though: http://www.disklessworkstations.com/web/downloads/vidlist http://lists.freegeek.org/pipermail/commits/2004-February/001246.html http://www.nvnews.net/vbulletin/showthread.php?t=58491 so we should probably account for them in case they really do exist. nv claims support from NV3 onwards (but not NV1). nouveau claims support from NV4 onwards. based on the above, I'd recommend the attached changes to xserver-1.5.99.902-nouveau.patch . Basically, blacklist 0008 and 0009 for 10DE and 12D2 to vesa, blacklist 0018 and 0019 for both to nv, and use nouveau for everything else. The oddball 0x10b4 0x1b1d is, according to old kudzu and ldetect-lst, the STB Velocity 128 3D, which Google (and my own slightly unreliable memory) agree is a Riva 128-based card. It seems to be the only time this PCI vendor ID was ever used, so we can just send that vendor ID straight to nv. Any NV4 cards which don't work with nouveau, like the one in this thread, need a bug report, so please file one :) thanks! -- Adam Williamson Fedora QA Community Monkey IRC: adamw | Fedora Talk: adamwill AT fedoraproject DOT org http://www.happyassassin.net
--- xorg-server-1.6.1/hw/xfree86/common/xf86AutoConfig.c 2009-04-14 10:14:57.000000000 -0700 +++ xorg-server-1.6.1/hw/xfree86/common/xf86AutoConfig.c.new 2009-04-30 15:10:55.733939521 -0700 @@ -179,7 +179,44 @@ case 0x102b: driverList[0] = "mga"; break; case 0x10c8: driverList[0] = "neomagic"; break; case 0x105d: driverList[0] = "i128"; break; - case 0x10de: case 0x12d2: driverList[0] = "nv"; break; + case 0x10de: + switch (dev->device_id & 0xfff0) { + /* NV1 chips never will be supported by nv/nouveau */ + case 0x0008: + case 0x0009: + /* Currently non-functional with both nouveau and nv */ + case 0x0840: + case 0x0860: + driverList[0] = "vesa"; + break; + /* NV3 chips never will be supported by nouveau */ + case 0x0018: + case 0x0019: + driverList[0] = "nv"; + break; + default: + driverList[0] = "nouveau"; + break; + } + break; + case 0x12d2: + switch (dev->device_id & 0xfff0) { + /* NV1 chips never will be supported by nv/nouveau */ + case 0x0008: + case 0x0009: + driverList[0] = "vesa"; + break; + /* NV3 chips never will be supported by nouveau */ + case 0x0018: + case 0x0019: + driverList[0] = "nv"; + break; + default: + driverList[0] = "nouveau"; + break; + } + break; + case 0x10b4: driverList[0] = "nv"; break; case 0x1163: driverList[0] = "rendition"; break; case 0x5333: switch (dev->device_id)
-- fedora-test-list mailing list fedora-test-list@xxxxxxxxxx To unsubscribe: https://www.redhat.com/mailman/listinfo/fedora-test-list