Bug 28810 - Blank consoles (Ctrl+Alt+Fn) after X starts on Arch Linux with FX5200 card.
Summary: Blank consoles (Ctrl+Alt+Fn) after X starts on Arch Linux with FX5200 card.
Status: RESOLVED FIXED
Alias: None
Product: xorg
Classification: Unclassified
Component: Driver/nouveau (show other bugs)
Version: git
Hardware: x86-64 (AMD64) Linux (All)
: medium critical
Assignee: Nouveau Project
QA Contact: Xorg Project Team
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-06-29 03:24 UTC by Peter Hardman
Modified: 2010-07-05 13:24 UTC (History)
0 users

See Also:
i915 platform:
i915 features:


Attachments
Kernel log with nouveau built from git (54.88 KB, text/plain)
2010-06-29 03:24 UTC, Peter Hardman
no flags Details
Xorg log to go wth the kernel log (64.43 KB, text/plain)
2010-06-29 03:25 UTC, Peter Hardman
no flags Details
Video rom (39.36 KB, application/gzip)
2010-06-30 04:06 UTC, Peter Hardman
no flags Details
Output of lspci -vvnn (25.57 KB, text/plain)
2010-07-03 08:06 UTC, Peter Hardman
no flags Details
nv34_tv_detect_quirk.patch (1.88 KB, patch)
2010-07-03 09:23 UTC, Francisco Jerez
no flags Details | Splinter Review

Description Peter Hardman 2010-06-29 03:24:08 UTC
Created attachment 36597 [details]
Kernel log with nouveau built from git

Ctrl+Alt+Fn switches to virtual consoles but the display is blank although the keyboard works. The backlight _is_ on. 

The console works OK up to the point when X starts. 

video=1280x1024 is specified in the kernel boot line in GRUB otherwise KMS switches to something like the TV resolution (720x576) before X starts and X starts at 1024x768.
Comment 1 Peter Hardman 2010-06-29 03:25:22 UTC
Created attachment 36598 [details]
Xorg log to go wth the kernel log

Added the Xorg log.
Comment 2 Emil Velikov 2010-06-29 07:20:30 UTC
It appears that there are some bits left from the blob (/usr/lib/xorg/modules/extensions/libglx.so), and the xorg.conf is not setup correctly (you should use, nouveau, rather than nv/vesa).

Have you gone through the TroubleShooting [1], namely sections 3 and 8

[1] http://nouveau.freedesktop.org/wiki/TroubleShooting
Comment 3 Peter Hardman 2010-06-29 13:10:27 UTC
Oh dear, how embarrassing.

I _thought_ I had gone through section 3, but I had done it on the wrong instance of Arch... I had not removed the nvidia-173xx-utils package on the test instance.

I also didn't realise I even had the vesa driver installed.

So the problem is now resolved.

And now I know what RandR does, and how to disable the TV out in xorg.conf.

Again, many apologies fot the time wasted..

Pete
Comment 4 Francisco Jerez 2010-06-29 13:20:51 UTC
(In reply to comment #0)
> video=1280x1024 is specified in the kernel boot line in GRUB otherwise KMS
> switches to something like the TV resolution (720x576) before X starts and X
> starts at 1024x768.

An mmiotrace from the blob would be useful to fix that (see [1] and [2]). Do you have access to a TV?

[1] http://cgit.freedesktop.org/nouveau/linux-2.6/tree/Documentation/trace/mmiotrace.txt
[2] http://nouveau.freedesktop.org/wiki/MmioTrace
Comment 5 Peter Hardman 2010-06-29 14:16:47 UTC
The GUI resolution when X starts is fixed by having the proper drivers and an xorg.conf that specifies the resolution I want.

The consoles are still not using the full screen though - about a 720x576 sized patch in the top LH corner of the screen. Smaller than the TV-1 when that was overlayed on VGA-1

Do you just want an mmio trace that covers the point when the Kernel switches from VGA to 720x576, or do you want one that covers X starting as well? 

And I don't have access to a TV. Actually, since there's nothing connected to the TV (S-video?) connector I don't understand why the driver is using it in the first place. It doesn't use the DVI connector which also has nothing connected to it.

Pete
Comment 6 Francisco Jerez 2010-06-29 15:38:24 UTC
(In reply to comment #5)
> Do you just want an mmio trace that covers the point when the Kernel switches
> from VGA to 720x576, or do you want one that covers X starting as well? 
> 
> And I don't have access to a TV. Actually, since there's nothing connected to
> the TV (S-video?) connector I don't understand why the driver is using it in
> the first place. It doesn't use the DVI connector which also has nothing
> connected to it.

Right, that's why an mmiotrace from your card would be useful. If you're interested on fixing it you could:

 * Start tracing (the details are described in the links I posted
   in my last comment).

 * Start X with the nvidia proprietary driver (IOW the "blob"),
   but before, put the following in your xorg.conf, 'Section "Device"':
> Option "UseDisplayDevice" "TV"

 * Stop tracing and send the compressed results to mmio.dumps at
   gmail.com.
Comment 7 Peter Hardman 2010-06-30 01:36:35 UTC
I'm currently on Xorg 1.8 and apparently the NVIDA driver is not supported by that version of Xorg (which is why I'm using nouveau in the first place). For the purposes of getting a trace will it be OK to use Xorg 1.8 or should I downgrade to 1.7?

No big deal, but if I need to downgrade it will have to wait until I can have unfettered access to this PC for a few hours - which will not be till the weekend at the earliest.

Pete
Comment 8 Francisco Jerez 2010-06-30 03:15:15 UTC
(In reply to comment #7)
> I'm currently on Xorg 1.8 and apparently the NVIDA driver is not supported by
> that version of Xorg (which is why I'm using nouveau in the first place). For
> the purposes of getting a trace will it be OK to use Xorg 1.8 or should I
> downgrade to 1.7?
> 
Not sure.

> No big deal, but if I need to downgrade it will have to wait until I can have
> unfettered access to this PC for a few hours - which will not be till the
> weekend at the earliest.
> 
Ok, could I also have a look at your VBIOS [1]? It might be enough to fix it.

> Pete

[1] http://nouveau.freedesktop.org/wiki/DumpingVideoBios
Comment 9 Peter Hardman 2010-06-30 04:06:41 UTC
Created attachment 36630 [details]
Video rom
Comment 10 Francisco Jerez 2010-06-30 07:04:25 UTC
(In reply to comment #9)
> Created an attachment (id=36630) [details]
> Video rom

Nothing suspicious in it, so yeah, a full mmiotrace would be more useful.
Comment 11 Ben Skeggs 2010-06-30 07:39:39 UTC
If you can load the nvidia kernel module it might be enough to do this to get a trace (instead of starting X):

mknod nvidia0 c 195 0
cat nvidia0
Comment 12 Francisco Jerez 2010-06-30 08:14:29 UTC
(In reply to comment #11)
> If you can load the nvidia kernel module it might be enough to do this to get a
> trace (instead of starting X):
> 
> mknod nvidia0 c 195 0
> cat nvidia0

I don't think so, we need to catch it while it's trying to detect TV.
Comment 13 Tavian Barnes 2010-06-30 09:11:48 UTC
(In reply to comment #7)
> I'm currently on Xorg 1.8 and apparently the NVIDA driver is not supported by
> that version of Xorg (which is why I'm using nouveau in the first place). For
> the purposes of getting a trace will it be OK to use Xorg 1.8 or should I
> downgrade to 1.7?

You could start X with the "-ignoreABI" command-line option (or set it somewhere in xorg.conf).  I'm guessing that if X works with this option, the trace will be useful.
Comment 14 Peter Hardman 2010-06-30 13:06:11 UTC
Turned out I only had to downgrade the kernel from 2.6.34 to 3.6.33. I've emailed the trace to mmio.dump at gmail.com. It's also available at:

http://www.somborneshetlands.co.uk/things/Zotac-FX5200-mmiotrace.tar.gz

Pete
Comment 15 Francisco Jerez 2010-07-02 12:06:46 UTC
(In reply to comment #14)
> Turned out I only had to downgrade the kernel from 2.6.34 to 3.6.33. I've
> emailed the trace to mmio.dump at gmail.com. It's also available at:
> 
> http://www.somborneshetlands.co.uk/things/Zotac-FX5200-mmiotrace.tar.gz
> 
Thanks. It turns out that the blob's also detecting load in your TV output:

R 4 195.041175 1 0xfc682608 0xf0001000 0x0 0
                              ^
So most likely someone screwed it up when the board was assembled: We can do nothing besides skipping load detection for your specific card. Can you provide the output from "lspci -vvnn"?

> Pete
Comment 16 Peter Hardman 2010-07-03 08:06:09 UTC
Created attachment 36724 [details]
Output of lspci -vvnn

Ouput of lspci -vvnn attached.

TBH now I've installed this card in my Windows machine I'm undecided whether the false load detection is a bug or a 'feature'. The Windows installer fires up a configurator after it's loaded the driver, and the first thing it tells you is that you probably don't want the card configured as it is! It initialises in the same mode the nouveau driver does 'Clone' with both TV and VGA enabled and one overlaid on the other. The difference is that the VGA is on top so if you don't understand what the configurator is telling you and leave it alone no harm is done visually - so long as you really haven't got a TV and no monitor - but maybe it can detect no monitor - I don't have a TV so can't test that scenario. It also avoids the 'you must have xxx installed before you can configure the driver' syndrome you often get with multi-function printers.

The xorg.conf Option lines added by nvidia-settings to disable TV don't work for nouveau, but 'xrandr --output TV-1 --off' does work for X. 

Pete
Comment 17 Francisco Jerez 2010-07-03 09:23:09 UTC
Created attachment 36728 [details] [review]
nv34_tv_detect_quirk.patch

(In reply to comment #16)
> Created an attachment (id=36724) [details]
> Output of lspci -vvnn
> 
> Ouput of lspci -vvnn attached.
> 
Ok, could you try the attached patch?

> The xorg.conf Option lines added by nvidia-settings to disable TV don't work
> for nouveau, but 'xrandr --output TV-1 --off' does work for X. 
> 
See [1], 'Option "Ignore"' is what you were looking for, but you shouldn't need it anymore.

> Pete

[1] http://wiki.debian.org/XStrikeForce/HowToRandR12
Comment 18 Peter Hardman 2010-07-03 11:37:04 UTC
Thanks for the patch. Building a Linux kernel seems to be a complete nightmare unlike NetBSD where its very easy. I'll give it a go once I've figured out how its done -and why it seems so complicated.

I'd found 'Option "Ignore"' at [1] just after I'd added the output of lspci.

[1] http://www.thinkwiki.org/wiki/Xorg_RandR_1.2#xorg.conf
Comment 19 Peter Hardman 2010-07-05 06:19:58 UTC
I've built a kernel incorporating the nv34_tv_detect_quirk patch and it now all works as it should - KMS wsitches to the monitor's native resolution of 1280x1024 as the module is loaded at boot, the virtual ttys use the same resolution, and there is no need to turn TV-1 off before starting X, or use the "Ignore" option in xorg.conf.

Pete
Comment 20 Francisco Jerez 2010-07-05 13:24:46 UTC
(In reply to comment #19)
> I've built a kernel incorporating the nv34_tv_detect_quirk patch and it now all
> works as it should - KMS wsitches to the monitor's native resolution of
> 1280x1024 as the module is loaded at boot, the virtual ttys use the same
> resolution, and there is no need to turn TV-1 off before starting X, or use the
> "Ignore" option in xorg.conf.
> 
Thanks, it should be fixed in master now.

> Pete


Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.