I did update world this morning which updated nvidia kernel/glx/settings from 1.0.6111 to 1.0.6629 and when X starts it hangs on the nvidia splash screen. Perhaps this should not have been marked as stable? I'm using Xorg 6.8.0-r3 (also marked as stable even though there is a serious DPMS bug) and an SN41G2 with built-in GeForce4 MX graphics. Reproducible: Always Steps to Reproduce: 1. emerge world 2. reboot Actual Results: X hangs on the nvidia splash screen. Expected Results: Display a graphical login menu.
Created attachment 48772 [details] Xorg log
May I also raise the question, why 6629 was marked as stable. There are several problems with 6629, check: http://bugs.gentoo.org/show_bug.cgi?id=75833 This is a confirmed bug, confirmed by nvidia. On my MX 4000 6629 shows the video corruption with or without glx use, and with or without AGP use. So I think 6629 should not marked be stable.
X became absolutely unusable after the upgrade here, too.
Can we get a kernel log aswell? Try disabling composite (if you have it enabled).
I've the same problem with Nvidia riva TNT2 M64 Pro 32Mb and kernel gentoo-dev-sources-2.6.10-r4.
Hi Andrew, from nvnews forum you can see this is a bug affecting lots of people: http://www.nvnews.net/vbulletin/showthread.php?t=40143&page=1&pp=15 http://www.nvnews.net/vbulletin/showthread.php?t=44244 So I think the best thing is to mark 6629 as unstable.
*** Bug 78623 has been marked as a duplicate of this bug. ***
If we use this argument for a reason to not mark 6629 stable, then we can use the fact that agp is broken in 6111 (for some demographic) to say it shouldn't be marked stable.. Which means there would be no stable version, yes this is a known issue, but as far as I see it, package.mask exists for a reason, for the user to mask packages with when there are issues for them with a package. Bug nvidia about releasing their fixed version. I am not going to remask 6629 (i _might_ be persuaded to change my mind, however that is unlikely) ; Im marking this upstream for this reason, as we cant fix the nvidia issue.
*** Bug 78797 has been marked as a duplicate of this bug. ***
Andrew, I think this is pretty unacceptable, seeing this problem with all kind of cards.
I guess I don't understand the difference between stable and unstable. Does stable mean that 95% or some large number of people don't have a problem? Or does it mean that it's stable for whoever maintains the package? If I could have an opinion, I would prefer that critical things like X and graphics drivers not be marked as stable as easily as less important packages. I thought that was the reason for package.keywords- for users to (knowingly) accept the possibility of breakage in exchange for using the latest and greatest. Did someone still need the kernel log (is that the same as /var/log/messages?) And I don't think I have composite enabled. Thanks.
As I indicated in my bug report that was duped to this, -nothing- made it work, it hung the machine every single time. I can see marking something stable with a caveat for instability under certain options, but when every known combination of fixes fails to yield a working solution at all -- it should not be marked stable for the platform. Obviously there are a lot of users that it doesn't work for.
6111 works for one demographic, which 6629 does not work for. 6629 works for another demographic, which 6111 does not work for. What do you want me to do? Force people that cant use the stable 6111 version to have to use unstable? Or (as it does atm) provide two stable versions that can be chosen between pending local circumstances? Which is the worse of the two evils?
Well Andrew, I don't know what's wrong with 6111, if there are users(not just one) who complain, that 6111 is broken and if there is prove (checking Xorg or Xfree kernel logs) that this is not just some installation problem or some kernel problem then 6111 is defective. 6629 is abviously defective for cards older than FX5200 as we can see from these reports and from the reports at the nvnews forum. So if both are broken, then both should be marked unstable, those you want to test their luck with the driver can do it by unmasking. Initially everyone should have a working stable X which is achived by using nv driver. In my opinion only software, drivers that don't have any know defects should be marked stable. However it's up to you, you are the maintainer.
Fix for AMD64/NVIDIA/PCIE (It's an xorg-x11 problem.) As bug 78797 was marked as a duplicate of 78397, I'm posting this both places. https://bugs.freedesktop.org/show_bug.cgi?id=2322 I patched the ebuild to use the 'agressive' patch. It works fine. That resolves: (ONLY ON AMD64... not the other issues with 6629 has as seen in bug 78397 (I think 78797 & 78397 are rather different bugs...one being an xorg issue, and the other an nvidia issue...)) Nvidia logo shown instead of garbage when X starts. Problems when Render is active Xvideo issues (blank screen for me, others got garbage) Requirement for a Software Cursor (SWCursor true or HWCursor false) Corruption of the text console Crash of X when nvidia-settings is run (probably something I've forgotten ;) ) (patch, 2nd line modified from that seen on fd.o's bugzilla) --- xf86pciBus.c.orig 2005-01-18 14:30:21.000000000 -0800 +++ xc/programs/Xserver/hw/xfree86/common/xf86pciBus.c 2005-01-18 14:36:19.000000000 -0800 @@ -179,7 +179,6 @@ int i = 0, j, k; int num = 0; pciVideoPtr info; - Bool mem64 = FALSE; pcrpp = xf86PciInfo = xf86scanpci(0); getPciClassFlags(pcrpp); @@ -293,120 +292,39 @@ * 64-bit base addresses are checked for and avoided on 32-bit * platforms. */ - if (pcrp->pci_base0) { - if (pcrp->pci_base0 & PCI_MAP_IO) { - info->ioBase[0] = (memType)PCIGETIO(pcrp->pci_base0); - info->type[0] = pcrp->pci_base0 & PCI_MAP_IO_ATTR_MASK; - } else { - info->type[0] = pcrp->pci_base0 & PCI_MAP_MEMORY_ATTR_MASK; - info->memBase[0] = (memType)PCIGETMEMORY(pcrp->pci_base0); - if (PCI_MAP_IS64BITMEM(pcrp->pci_base0)) { - mem64 = TRUE; -#if defined(LONG64) || defined(WORD64) - info->memBase[0] |= - (memType)PCIGETMEMORY64HIGH(pcrp->pci_base1) << 32; -#else - if (pcrp->pci_base1) - info->memBase[0] = 0; -#endif - } - } - } + for (j = 0; j < 6; ++j) { + CARD32 bar = (&pcrp->pci_base0)[j]; - if (pcrp->pci_base1 && !mem64) { - if (pcrp->pci_base1 & PCI_MAP_IO) { - info->ioBase[1] = (memType)PCIGETIO(pcrp->pci_base1); - info->type[1] = pcrp->pci_base1 & PCI_MAP_IO_ATTR_MASK; - } else { - info->type[1] = pcrp->pci_base1 & PCI_MAP_MEMORY_ATTR_MASK; - info->memBase[1] = (memType)PCIGETMEMORY(pcrp->pci_base1); - if (PCI_MAP_IS64BITMEM(pcrp->pci_base1)) { - mem64 = TRUE; -#if defined(LONG64) || defined(WORD64) - info->memBase[1] |= - (memType)PCIGETMEMORY64HIGH(pcrp->pci_base2) << 32; -#else - if (pcrp->pci_base2) - info->memBase[1] = 0; -#endif - } - } - } else - mem64 = FALSE; - - if (pcrp->pci_base2 && !mem64) { - if (pcrp->pci_base2 & PCI_MAP_IO) { - info->ioBase[2] = (memType)PCIGETIO(pcrp->pci_base2); - info->type[2] = pcrp->pci_base2 & PCI_MAP_IO_ATTR_MASK; - } else { - info->type[2] = pcrp->pci_base2 & PCI_MAP_MEMORY_ATTR_MASK; - info->memBase[2] = (memType)PCIGETMEMORY(pcrp->pci_base2); - if (PCI_MAP_IS64BITMEM(pcrp->pci_base2)) { - mem64 = TRUE; -#if defined(LONG64) || defined(WORD64) - info->memBase[2] |= - (memType)PCIGETMEMORY64HIGH(pcrp->pci_base3) << 32; -#else - if (pcrp->pci_base3) - info->memBase[2] = 0; -#endif - } - } - } else - mem64 = FALSE; - - if (pcrp->pci_base3 && !mem64) { - if (pcrp->pci_base3 & PCI_MAP_IO) { - info->ioBase[3] = (memType)PCIGETIO(pcrp->pci_base3); - info->type[3] = pcrp->pci_base3 & PCI_MAP_IO_ATTR_MASK; - } else { - info->type[3] = pcrp->pci_base3 & PCI_MAP_MEMORY_ATTR_MASK; - info->memBase[3] = (memType)PCIGETMEMORY(pcrp->pci_base3); - if (PCI_MAP_IS64BITMEM(pcrp->pci_base3)) { - mem64 = TRUE; -#if defined(LONG64) || defined(WORD64) - info->memBase[3] |= - (memType)PCIGETMEMORY64HIGH(pcrp->pci_base4) << 32; -#else - if (pcrp->pci_base4) - info->memBase[3] = 0; -#endif - } - } - } else - mem64 = FALSE; - - if (pcrp->pci_base4 && !mem64) { - if (pcrp->pci_base4 & PCI_MAP_IO) { - info->ioBase[4] = (memType)PCIGETIO(pcrp->pci_base4); - info->type[4] = pcrp->pci_base4 & PCI_MAP_IO_ATTR_MASK; - } else { - info->type[4] = pcrp->pci_base4 & PCI_MAP_MEMORY_ATTR_MASK; - info->memBase[4] = (memType)PCIGETMEMORY(pcrp->pci_base4); - if (PCI_MAP_IS64BITMEM(pcrp->pci_base4)) { - mem64 = TRUE; -#if defined(LONG64) || defined(WORD64) - info->memBase[4] |= - (memType)PCIGETMEMORY64HIGH(pcrp->pci_base5) << 32; -#else - if (pcrp->pci_base5) - info->memBase[4] = 0; -#endif + if (bar != 0) { + if (bar & PCI_MAP_IO) { + info->ioBase[j] = (memType)PCIGETIO(bar); + info->type[j] = bar & PCI_MAP_IO_ATTR_MASK; + } else { + info->type[j] = bar & PCI_MAP_MEMORY_ATTR_MASK; + info->memBase[j] = (memType)PCIGETMEMORY(bar); + if (PCI_MAP_IS64BITMEM(bar)) { + if (j == 5) { + xf86MsgVerb(X_WARNING, 0, + "****BAR5 specified as 64-bit wide, " + "which is not possible. " + "Ignoring BAR5.****\n"); + info->memBase[j] = 0; + } else { + CARD32 bar_hi = (&pcrp->pci_base0)[j + 1]; + if (sizeof(memType) == 8) { + /* 64 bit architecture */ + info->memBase[j] |= + (memType)bar_hi << 32; + } else { + if (bar_hi != 0) + info->memBase[j] = 0; + } + ++j; /* Step over the next BAR */ + } + } } } - } else - mem64 = FALSE; - - if (pcrp->pci_base5 && !mem64) { - if (pcrp->pci_base5 & PCI_MAP_IO) { - info->ioBase[5] = (memType)PCIGETIO(pcrp->pci_base5); - info->type[5] = pcrp->pci_base5 & PCI_MAP_IO_ATTR_MASK; - } else { - info->type[5] = pcrp->pci_base5 & PCI_MAP_MEMORY_ATTR_MASK; - info->memBase[5] = (memType)PCIGETMEMORY(pcrp->pci_base5); - } - } else - mem64 = FALSE; + } info->listed_class = pcrp->listed_class; } i++;
Donnie: Whats the status with that patch (see xorg bug link in comment #15) and xorg?
Proposed for 6.8.2, not yet accepted upstream. Once it is, I'll be happy to add a patch to our 6.8.1*. James: If you're changing stuff, please post to the fd.o bug about whether it should be changed there.
I am fortunate enough to have access to three machines with nVidia cards of various models. 6111 works on all of them, but all 6629 revisions so far (through -r2) only works on one of the three machines. My symptoms are that the nVidia logo screen never goes away. However gdm login is still possible and the Gentoo Gnome splash comes through the logo screen. The screen then goes to the default color and no windows are visible. However again, my default Xterm does exist and I can open others, still invisible but with a different cursor (text input bar vs. the pointer as on the background). When xscreensaver decides to kick in I see everything it places on the screen as if there's nothing wrong. I'm currently on xorg-x11-6.8.0-r4 but I saw the same behavior on 6.8.0-r3 and possibly on a version of 6.7.0. Plesae let me know if I can supply logs of any sort to this effort as my package.mask files are getting larger ;)
I was having a similar problem using nvidia-kernel 6629, I downgraded to 6111 and now everything works. For me the Nvidia logo wouldn't go away, so it appeared as though it was hung. But in actual fact it wasn't hung, it's just as if the screen wasn't being re-painted. I was actually able to log into gnome just by typing, I couldn't see anything but after I entered my username and password, the hard drive started going. I also noticed that if I switched run levels and then came back, it was not longer hung on the Nvidia logo, instead it was a black screen with a thing gray line in the top left corner. If you need any information from me let me know. gentoo-dev-sources 2.6.10-r6 + xOrg
This is a me too. I did not try to log in, but I presume that I'd see the same behavior as those who say that log in was still possible even though the nVidia logo never went away. Package mask back to 1.0.6111 cured my problems. If you're not going to remask 1.0.6629, then please leave 1.0.6111 in Portage until we're far enough down the road that there's something that's stable for everyone. AMD Athlon, nForce2 motherboard.
closing this bug as it's inactive and works for me. Please try a newer version of the driver and report back if you still have problems.