xorg won't start on nvida 6600 card due to nv driver not supporting 6600's

Bug #102683 reported by folkoy
2
Affects Status Importance Assigned to Milestone
xserver-xorg-video-nv (Ubuntu)
Confirmed
Medium
Timo Aaltonen

Bug Description

Binary package hint: xserver-xorg-driver-nv

During Ubuntu 7.04 Beta installation, the Geforce 6600 has been detected and assigned video driver xorg "nv" in /etc/xorg.conf. This is what was expected.

After reboot into newly installed Feisty, Xorg started and video display is all garbled, strecthed and with wrong colors.

Possible Workaround found (use at your own risk)
- I had to switch to console;
    CTRL-ALT-F1

- Go in single user mode;
$ telinit 1

- Change video driver from "nv" to "vesa" in the xorg.conf; sudo vi /etc/xorg.conf and replace "nv" by "vesa" or
$ sudo cp /etc/xorg.conf /etc/xorg.conf.orig; sudo sed s/nv/vesa/ /etc/xorg.conf > /tmp/tst; sudo cp /tmp/tst /etc/xorg.conf

 -Go back to multiuser graphic mode
$ telinit 2

After xorg restarted, Xorg should work properly since it would be using "vesa" driver instead of "nv" driver.

Processor used: Intel Pentium IV 2.4GigHz
Videocard: BFG Geforce 6600 GT OC 128Meg (AGP video card)

It seems the "nv" driver is broken. Feisty is updated as of april 3 and the problem with Xorg "nv" driver is still there.

For this PC configuration, it would have been better if Ubuntu installation would have used "vesa" driver for in the xorg.conf file.

When the video is gardbled, you can sometime recognize part of the gdm/kdm login screen. The image is very stretched and with all the wrong colors...

P.S. There is no linux distro and no Xorg "nv" driver that has ever worked on this PC and this video card. Xorg "vesa" driver works fine. The proprietary driver from Nvidia works perfectly.

thanks

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

What monitor do you have? Please attach the log files you get with nv and vesa, and the xorg.conf for nv.

Changed in xserver-xorg-video-nv:
status: Unconfirmed → Needs Info
assignee: nobody → tepsipakki
Revision history for this message
folkoy (pluron) wrote :

Monitor is Viewsonic P225fb 21inchs monitor (tube)

$ lspci |grep nVidia
01:00.0 VGA compatible controller: nVidia Corporation NV43 [GeForce 6600/GeForce 6600 GT] (rev a2)
$ cat /proc/cmdline
root=/dev/hdb7 ro vga=0x31A

Logs are attached when Xorg is using NV driver
(Note: after installing nvidia-glx, there are still some parameter left in the xorg.conf file. I assume this is no problem because the "vesa" driver works fine event though those parameters are still there... )

Revision history for this message
folkoy (pluron) wrote :

logs when starting with vesa

Revision history for this message
folkoy (pluron) wrote :

The /etc/X11/xorg.conf with vesa

anything else you need?

thanks again

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

what if you remove the "vga=0x31A" from the kernel boot options, does it improve things? Try also disabling usplash (remove 'splash' from the boot options).

Revision history for this message
folkoy (pluron) wrote :
Download full text (3.7 KiB)

-The 'splash' kernel command line is never used.

-I Tried with and without vga=0x31A and it makes no difference. In both case the "nv" driver fails and screen is all garbled. This parameters (vga=0x31A ) is for using the video frame buffer and have high resolution font at the console.

-I Found out something very interesting. If I change the video driver in xorg.conf to "nv" and restart X.org it is working only if "nv" is immediately used after the proprietary driver "nvidia" (from nVidia) is used (no computer reboot in between).

This look like something on the video card is not initialized properly by "nv" but this thing is left initalized properly after proprietary "nvidia" ran just before "nv" is used. If I try to launch a second time Xorg with "nv", it fails miserably. BUT if I relaunch X.org with the proprietary "nvidia" and then relaunch with "nv" it works again.

Here is how I proceed;
1-Boot the PC and go "telinit 1"

2-Edit /etc/X11/xorg.conf and set driver to "nvidia" then launch X.org (by invoking startx ). Xorg start properly. Then exit X.org (CTRL-Backspace) (computer is NOT rebooted).

3-clear /var/log/Xorg.0 and edit /etc/X11/xorg.conf and set driver to "nv" then launch X.org (by invoking startx ). HO SURPRISE, "NV" DRIVER WORKS!! I capture the /var/log/Xorg.0.log as "nvafternvidiaok", then exit X.org (CTRL-Backspace) (computer is NOT rebooted)

4-Launch X.org again (by invoking startx ). NOW "NV" DRIVER FAILS AND SCREEN IS GARBLED!! I capture the /var/log/Xorg.0.log as "nvafternvbad", then exit X.org (CTRL-Backspace) (computer is NOT rebooted)

Every time "nv" is used either after "nv" or "vesa", it fails to works.
Every time "nv" is used after "nvidia" it works.

The video card works with "vesa" driver all the time.

Note that I know "nv" was working in the test above as the refresh rate was different than proprietary driver so visually I can see it's not the "nVidia" driver.

If you look at the difference of both logs file you see this;

$ diff -Nur nvafternvidiaok nvafternvbad
--- nvafternvidiaok 2007-04-05 22:03:24.000000000 -0400
+++ nvafternvbad 2007-04-05 22:05:01.000000000 -0400
@@ -11,7 +11,7 @@
 Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
-(==) Log file: "/var/log/Xorg.0.log", Time: Thu Apr 5 22:00:22 2007
+(==) Log file: "/var/log/Xorg.0.log", Time: Thu Apr 5 22:04:28 2007
 (==) Using config file: "/etc/X11/xorg.conf"
 (==) ServerLayout "Default Layout"
 (**) |-->Screen "Default Screen" (0)
@@ -429,7 +429,7 @@
 (II) Reloading /usr/lib/xorg/modules//libddc.so
 (II) NV(0): I2C bus "DDC" initialized.
 (II) NV(0): Probing for analog device on output A...
-(--) NV(0): ...found one
+(--) NV(0): ...can't find one
 (II) NV(0): Probing for analog device on output B...
 (--) NV(0): ...found one
 (II) NV(0): Probing for EDID on I2C bus A...
@@ -496,8 +496,8 @@
 (II) NV(0): I2C device "DDC:ddc2" registered at address 0xA0.
 (II) NV(0): I2C device "DDC:ddc2" removed.
 (II) NV(0): ... none found
-(--) NV(0): CRTC 0 appears to have a CRT attached
-(I...

Read more...

Revision history for this message
folkoy (pluron) wrote :
Revision history for this message
Timo Aaltonen (tjaalton) wrote :
Revision history for this message
folkoy (pluron) wrote :
Download full text (3.3 KiB)

Unfortunately this new driver did not fix the problem. The problem is still there and there is no behavior change with this new driver.
This new driver work only ONCE and it's when it's used IMMEDIATELY after the proprietary nVidia driver from the company nVidia.
In all other circumstance it fails like described above.

I proved I installed the driver like this;
$ dpkg -i xserver-xorg-video-nv_2.0.0-0ubuntu3.1_i386.deb

I proved I used this new driver;
$ diff /usr/lib/xorg/modules/drivers/nv_drv.so nv_drv.so.bak
Binary files /usr/lib/xorg/modules/drivers/nv_drv.so and nv_drv.so.bak differ

The diff below shows the /var/log/Xorg.0.log difference when the new "nv" driver worked after being invoked after nVidia proprietary driver ran (attached file: Xorg.0.log_nvafternvidia.txt). The other file is after "nv" was relaunched after "nv" ran once, in this scenario the "nv" didn't found the Analog device port A and found the wrong CRTC (attached file: Xorg.0.log_nvafternv.txt).

You can see that the file Xorg.0.log_nvafternv.txt is showing you that the driver failed to find "analog device on output A" and it was mistaken by finding there was a monitor CRTC 1. I have only one monitor attached to port 0 as it's detected when "nv" had detected when it worked (after running after nvidia driver). When "nv" ran without problem it found "analog device on output A" and found monitor 0 "Using CRT on CRTC 0".

$ diff -Nur Xorg.0.log_nvafternvidia.txt Xorg.0.log_nvafternv.txt
--- Xorg.0.log_nvafternvidia.txt 2007-04-12 20:21:05.000000000 -0400
+++ Xorg.0.log_nvafternv.txt 2007-04-12 20:21:46.000000000 -0400
@@ -11,7 +11,7 @@
 Markers: (--) probed, (**) from config file, (==) default setting,
        (++) from command line, (!!) notice, (II) informational,
        (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
-(==) Log file: "/var/log/Xorg.0.log", Time: Thu Apr 12 20:19:44 2007
+(==) Log file: "/var/log/Xorg.0.log", Time: Thu Apr 12 20:21:21 2007
 (==) Using config file: "/etc/X11/xorg.conf"
 (==) ServerLayout "Default Layout"
 (**) |-->Screen "Default Screen" (0)
@@ -428,7 +428,7 @@
 (II) Reloading /usr/lib/xorg/modules//libddc.so
 (II) NV(0): I2C bus "DDC" initialized.
 (II) NV(0): Probing for analog device on output A...
-(--) NV(0): ...found one
+(--) NV(0): ...can't find one
 (II) NV(0): Probing for analog device on output B...
 (--) NV(0): ...found one
 (II) NV(0): Probing for EDID on I2C bus A...
@@ -495,8 +495,8 @@
 (II) NV(0): I2C device "DDC:ddc2" registered at address 0xA0.
 (II) NV(0): I2C device "DDC:ddc2" removed.
 (II) NV(0): ... none found
-(--) NV(0): CRTC 0 appears to have a CRT attached
-(II) NV(0): Using CRT on CRTC 0
+(--) NV(0): CRTC 1 appears to have a CRT attached
+(II) NV(0): Using CRT on CRTC 1
 (II) NV(0): Using hsync ranges from config file
 (II) NV(0): Using vrefresh ranges from config file
 (II) NV(0): Printing DDC gathered Modelines:
@@ -848,5 +848,3 @@
 Could not init font path element /usr/X11R6/lib/X11/fonts/misc, removing from list!
 Could not init font path element /usr/share/fonts/X11/cyrillic, removing from list!
 Could not init font path element /usr/X11R6/lib/X11/fonts/Type1, removing f...

Read more...

Revision history for this message
folkoy (pluron) wrote :

Here is the other attachement. In this case the new driver failed.

What you want me to do next?

thanks very much

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

man nv says:

       Option "CrtcNumber" "integer"
              Many graphics cards with NVIDIA chips have two video outputs.
              The driver attempts to autodetect which one the monitor is con‐
              nected to. In the case that autodetection picks the wrong one,
              this option may be used to force usage of a particular output.
              The options are "0" or "1". Default: autodetected.

so you could try setting:

Option "CrtNumber" "0"

Revision history for this message
folkoy (pluron) wrote :

-Adding this parameter did make the new "nv" driver you asked me to try work all the time.

-Here are the "nv" pameters used in xorg.conf;
Section "Device"
        Identifier "nVidia Corporation NV43 [GeForce 6600 GT]"
        Driver "nv"
        Option "CrtcNumber" "0"
        Busid "PCI:1:0:0"
        Option "AddARGBVisuals" "True"
        Option "AddARGBGLXVisuals" "True"
        Option "NoLogo" "True"
EndSection

NOTE: some extra option comes from nvidia-glx driver but their don't seem to harm "nv".

-in attachement the log produced by "nv" with "CrtcNumber" parameter.

-The problem is now to make the driver work all the time after fresh installation. New user can't be expected to add parameters in their xorg.conf. Even Linux literate won't know that they need to tweak this parameter.

-How do I revert back (i.e. apt/dpkg commands) to the "nv" driver from Feisty distro to try it out too? I only tried the driver you sent me.

-Do you have a new driver that detects the correct monitor that I can try out?

thanks veru much

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

You can revert to the Feisty driver using aptitude and select the correct version (-0ubuntu3). Or download the deb from a mirror and install it.

It seems that there is a bug in the driver that makes it not to autoprobe correctly, but nothing we can do for Feisty which is released in a week.

Changed in xserver-xorg-video-nv:
status: Needs Info → Confirmed
importance: Undecided → Medium
Revision history for this message
folkoy (pluron) wrote :

OK, it's understandable that the fix may not be in for Feisty release.
It would be appreciated if the investigation can continue as soon as possible.
Is there any timeframe estimate for continuing to look into the issue?

As soon as you have new things to try out to isolate the problem tell me.

thanks again

Revision history for this message
Timo Aaltonen (tjaalton) wrote :

There is a new upstream version, which has code for getting correct mode for the driver. It might help, and I'll push it in feisty-updates anyway. It won't help the livecd though.

Revision history for this message
folkoy (pluron) wrote :

Thanks Timo.
How will I know this update has been pulled from my computer? The next time I see changes to xserver-xorg-video-nv?

Is there any expected timeframe? 1-2 weeks?

thanks

Revision history for this message
Sitsofe Wheeler (sitsofe) wrote :

This looks like a dup of Bug #41979 ...

Revision history for this message
folkoy (pluron) wrote :

The screen display I've got when the problem is occuring is identical to the screenshot attached to Bug #41979
The issue is with the autodection of monitor. Adding line;
Option "CrtcNumber" "0"
makes the problem go away.

Is there any new driver we can try to see if the problem is now fixed?

 We can't expect people to edit their xorg.conf to add this line.

thanks

Revision history for this message
folkoy (pluron) wrote :

any update on this bug?
thanks

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.