Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
Bug 78397 - splash screen hangs after upgrading to nvidia 1.0.6629
Summary: splash screen hangs after upgrading to nvidia 1.0.6629
Status: RESOLVED WORKSFORME
Alias: None
Product: Gentoo Linux
Classification: Unclassified
Component: [OLD] Unspecified (show other bugs)
Hardware: x86 Linux
: High major (vote)
Assignee: X11 External Driver Maintainers
URL:
Whiteboard:
Keywords:
: 78623 78797 (view as bug list)
Depends on:
Blocks:
 
Reported: 2005-01-17 12:00 UTC by *
Modified: 2006-03-24 14:10 UTC (History)
4 users (show)

See Also:
Package list:
Runtime testing required: ---


Attachments
Xorg log (Xorg.0.log,29.78 KB, text/plain)
2005-01-17 12:01 UTC, *
Details

Note You need to log in before you can comment on or make changes to this bug.
Description * 2005-01-17 12:00:29 UTC
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.
Comment 1 * 2005-01-17 12:01:23 UTC
Created attachment 48772 [details]
Xorg log
Comment 2 STefan 2005-01-17 14:13:55 UTC
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.
Comment 3 Carsten Lohrke (RETIRED) gentoo-dev 2005-01-18 04:35:10 UTC
X became absolutely unusable after the upgrade here, too.
Comment 4 Andrew Bevitt 2005-01-18 05:04:50 UTC
Can we get a kernel log aswell?

Try disabling composite (if you have it enabled).
Comment 5 mambro 2005-01-19 10:01:19 UTC
I've the same problem with Nvidia riva TNT2 M64 Pro 32Mb and kernel gentoo-dev-sources-2.6.10-r4. 
Comment 6 STefan 2005-01-19 13:42:42 UTC
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.
Comment 7 Carsten Lohrke (RETIRED) gentoo-dev 2005-01-19 16:09:55 UTC
*** Bug 78623 has been marked as a duplicate of this bug. ***
Comment 8 Andrew Bevitt 2005-01-20 04:58:32 UTC
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.
Comment 9 Carsten Lohrke (RETIRED) gentoo-dev 2005-01-20 05:42:42 UTC
*** Bug 78797 has been marked as a duplicate of this bug. ***
Comment 10 Carsten Lohrke (RETIRED) gentoo-dev 2005-01-20 05:44:15 UTC
Andrew, I think this is pretty unacceptable, seeing this problem with all kind of cards.
Comment 11 * 2005-01-20 07:45:15 UTC
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.
Comment 12 Blu3 2005-01-20 07:53:41 UTC
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.
Comment 13 Andrew Bevitt 2005-01-20 15:50:35 UTC
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?
Comment 14 STefan 2005-01-20 16:49:18 UTC
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.
Comment 15 James l 2005-01-21 03:06:54 UTC
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++;
Comment 16 Andrew Bevitt 2005-01-21 03:32:17 UTC
Donnie: Whats the status with that patch (see xorg bug link in comment #15) and xorg?
Comment 17 Donnie Berkholz (RETIRED) gentoo-dev 2005-01-21 08:31:51 UTC
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.
Comment 18 Paul Kronenwetter 2005-01-27 09:35:46 UTC
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 ;)
Comment 19 Mark Mruss 2005-01-27 21:28:47 UTC
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
Comment 20 Tad Marko 2005-02-09 07:58:35 UTC
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.
Comment 21 Jeremy Huddleston (RETIRED) gentoo-dev 2006-03-24 14:10:49 UTC
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.