nVidia proprietary driver / Xinerama strangenesses

After replacing my Matrox G550 display adapter in my workhorse openSuSE 10.3
system by an nVidia GeForce 6200 TC Dual DVI PCIe card (for lack of support
of resolutions beyond 1280x1024 over DVI from the G550) and installing the
proprietary driver NVIDIA-Linux-x86-177.82-pkg1.run (for lack of dual screen
support from the open source nv driver) I notice some oddities:

  1. The Gnome systray doesn’t seem to be working anymore. The openSuSE updater
    and NetworkManager open in regular (although ridiculously small) windows and
    minimize to the taskbar. KTorrent starts but doesn’t display its window
    anywhere at all.

  2. In Dual Screen (Xinerama) configuration, both screens have a Gnome menu
    button but clicking on either one always opens the Gnome menu on the first
    display, so the only way of opening an application on the second display is
    by starting it from a shell and explicitly setting the --display option or
    $DISPLAY environment variable to “:0.1” (as opposed to “:0.0”).

  3. When I work with the mouse on the second display for a while the
    screensaver sets in for both displays. Hitting keyboard keys or moving the
    mouse to the first display prevents this. Apparently mouse activity on the
    second display is not seen as activity by the screensaver mechanism.

  4. If I have Thunderbird running on display :0.1 and Firefox on :0.0 and I
    click on a link in an E-mail in Thunderbird, I reproduceably get a message
    box saying: “Firefox is already running but doesn’t react. In order to open
    a new window you must terminate the running Firefox process or restart your
    computer.” If both Thunderbird and Firefox run on the same display everything
    is fine.

Anyone else seeing this? Any hints for fixing it?

Thanks,
Tilman

You might want to first of all confirm you are actually running the Nvidia driver. If in the terminal, you run

nvidia-settings

Under driver information, do you see the Nvidia driver listed?

foresthill schrieb:
> You might want to first of all confirm you are actually running the
> Nvidia driver.

I am. Otherwise, as I wrote, Xinerama would not work at all.

Also I seem to remember (though I didn’t verify it because it is
such a hassle to uninstall the nVidia driver) that with the
open source driver those problems did not occur.

Nevertheless, I ran the command you asked for:

> If in the terminal, you run
>
> PHP code:
> --------------------
> nvidia-settings
> --------------------
>
>
> Under driver information, do you see the Nvidia driver listed?

It says (copied manually, clipboard operations don’t seem to work
in that app):

System Information
Operating System: Linux-x86
NVIDIA Driver Version: 177.82
X Server Information
Display Name: xenon:0
Server Version Number: 11.0
Server Vendor String: The X.Org Foundation
Server Vendor Version: 7.2.0 (70200000)
NV-Control Version: 1.17
X Screens: 2

HTH
T.

Try posting your xorg.conf file. Also make sure you don’t have duplicate sections, specially the “Server Flags”.

brunomcl schrieb:
> Try posting your xorg.conf file. Also make sure you don’t have duplicate
> sections, specially the “Server Flags”.

Ok, this is the /etc/X11/xorg.conf the problems happen with, straight as
saved from nvidia-settings:

--------8<--------8<--------8<--------8<--------8<--------8<--------8<--------8<

nvidia-xconfig: X configuration file generated by nvidia-xconfig

nvidia-xconfig: version 1.0 (buildmeister@builder63) Tue Nov 4 14:07:17 PST 2008

nvidia-settings: X configuration file generated by nvidia-settings

nvidia-settings: version 1.0 (buildmeister@builder63) Tue Nov 4 14:08:09 PST 2008

/…/

SaX generated X11 config file

Created on: 2008-12-03T20:19:44+0100.

Version: 8.1

Contact: Marcus Schaefer <sax@suse.de>, 2005

Contact: SaX-User list <https://lists.berlios.de/mailman/listinfo/sax-users>

Automatically generated by [ISaX] (8.1)

PLEASE DO NOT EDIT THIS FILE!

Section “ServerLayout”
Identifier “Layout[all]”
Screen 0 “Screen0” 1280 0
Screen 1 “Screen1” LeftOf “Screen0”
InputDevice “Keyboard[0]” “CoreKeyboard”
InputDevice “Mouse[1]” “CorePointer”
Option “Clone” “off”
Option “Xinerama” “off”
EndSection

Section “Files”
InputDevices “/dev/gpmdata”
InputDevices “/dev/input/mice”
FontPath “/usr/share/fonts/misc:unscaled”
FontPath “/usr/share/fonts/local”
FontPath “/usr/share/fonts/75dpi:unscaled”
FontPath “/usr/share/fonts/100dpi:unscaled”
FontPath “/usr/share/fonts/Type1”
FontPath “/usr/share/fonts/URW”
FontPath “/usr/share/fonts/Speedo”
FontPath “/usr/share/fonts/PEX”
FontPath “/usr/share/fonts/cyrillic”
FontPath “/usr/share/fonts/latin2/misc:unscaled”
FontPath “/usr/share/fonts/latin2/75dpi:unscaled”
FontPath “/usr/share/fonts/latin2/100dpi:unscaled”
FontPath “/usr/share/fonts/latin2/Type1”
FontPath “/usr/share/fonts/latin7/75dpi:unscaled”
FontPath “/usr/share/fonts/baekmuk:unscaled”
FontPath “/usr/share/fonts/japanese:unscaled”
FontPath “/usr/share/fonts/kwintv”
FontPath “/usr/share/fonts/truetype”
FontPath “/usr/share/fonts/uni:unscaled”
FontPath “/usr/share/fonts/CID”
FontPath “/usr/share/fonts/ucs/misc:unscaled”
FontPath “/usr/share/fonts/ucs/75dpi:unscaled”
FontPath “/usr/share/fonts/ucs/100dpi:unscaled”
FontPath “/usr/share/fonts/hellas/misc:unscaled”
FontPath “/usr/share/fonts/hellas/75dpi:unscaled”
FontPath “/usr/share/fonts/hellas/100dpi:unscaled”
FontPath “/usr/share/fonts/hellas/Type1”
FontPath “/usr/share/fonts/misc/sgi:unscaled”
FontPath “/usr/share/fonts/xtest”
FontPath “/opt/kde3/share/fonts”
EndSection

Section “Module”
Load “dbe”
Load “type1”
Load “freetype”
Load “extmod”
Load “glx”
EndSection

Section “ServerFlags”
Option “AllowMouseOpenFail” “on”
Option “Xinerama” “1”
EndSection

Section “InputDevice”
Identifier “Keyboard[0]”
Driver “kbd”
Option “Protocol” “Standard”
Option “XkbLayout” “de”
Option “XkbModel” “pc105”
Option “XkbRules” “xfree86”
Option “XkbVariant” “nodeadkeys”
EndSection

Section “InputDevice”
Identifier “Mouse[1]”
Driver “mouse”
Option “Buttons” “5”
Option “Device” “/dev/input/mice”
Option “Name” “Dell Optical Wheel Mouse”
Option “Protocol” “explorerps/2”
Option “Vendor” “Sysp”
Option “ZAxisMapping” “4 5”
EndSection

Section “Modes”
Identifier “Modes[0]”
ModeLine “1680x1050” 119.00 1680 1728 1760 1840 1050 1053 1059 1080
EndSection

Section “Monitor”
Identifier “Monitor[0]”
VendorName “PHL”
ModelName “PHILIPS PHILIPS 220SW”
UseModes “Modes[0]”
DisplaySize 474 296
HorizSync 30.0 - 83.0
VertRefresh 43.0 - 76.0
Option “CalcAlgorithm” “XServerPool”
Option “DPMS”
EndSection

Section “Monitor”
Identifier “Monitor0”
VendorName “Unknown”
ModelName “Philips 220SW”
HorizSync 30.0 - 83.0
VertRefresh 56.0 - 76.0
EndSection

Section “Monitor”
Identifier “Monitor1”
VendorName “Unknown”
ModelName “Acer AL1721”
HorizSync 30.0 - 83.0
VertRefresh 55.0 - 75.0
EndSection

Section “Device”
Identifier “Device[0]”
Driver “nvidia”
VendorName “NVidia”
BoardName “GeForce 6200 TurboCache™”
EndSection

Section “Device”
Identifier “Device0”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce 6200 TurboCache™”
BusID “PCI:1:0:0”
Screen 0
EndSection

Section “Device”
Identifier “Device1”
Driver “nvidia”
VendorName “NVIDIA Corporation”
BoardName “GeForce 6200 TurboCache™”
BusID “PCI:1:0:0”
Screen 1
EndSection

Section “Screen”
Identifier “Screen[0]”
Device “Device[0]”
Monitor “Monitor[0]”
DefaultDepth 24
Option “usevnc” “no”
SubSection “Display”
Depth 15
Modes “1680x1050” “1280x1024” “1024x768” “800x600”
EndSubSection
SubSection “Display”
Depth 16
Modes “1680x1050” “1280x1024” “1024x768” “800x600”
EndSubSection
SubSection “Display”
Depth 24
Modes “1680x1050” “1280x1024” “1024x768” “800x600”
EndSubSection
SubSection “Display”
Depth 8
Modes “1680x1050” “1280x1024” “1024x768” “800x600”
EndSubSection
EndSection

Section “Screen”
Identifier “Screen0”
Device “Device0”
Monitor “Monitor0”
DefaultDepth 24
Option “TwinView” “0”
Option “metamodes” “DFP-0: 1680x1050 +0+0; DFP-0: 1280x1024 +0+0; DFP-0: 1024x768 +0+0; DFP-0: 800x600 +0+0”
SubSection “Display”
Depth 24
EndSubSection
EndSection

Section “Screen”
Identifier “Screen1”
Device “Device1”
Monitor “Monitor1”
DefaultDepth 24
Option “TwinView” “0”
Option “metamodes” “DFP-1: nvidia-auto-select +0+0”
SubSection “Display”
Depth 24
EndSubSection
EndSection
-------->8-------->8-------->8-------->8-------->8-------->8-------->8-------->8

If I disable one of the screens, the problems disappear, so it’s not the
nVidia driver per se which is causing them, but the dual-screen mode.

Thanks,
Tilman

It seems that xinerama is enabled in ServerFlags but disabled in ServerLayout. I understand that in case of duplicate statements X honors the last one, but I don’t now about Section precedence. You may want to test it.

Also note that twinview is disabled in both screens. Not sure this is correct.

Do you want Xinerama or twinview? I think you may be able to use both, for instance, eith two dual-head cards, but I’m not sure. It’s worth some research.

To the op, have you already rebooted your machine?
It says in the nvidia-settings if memory serves that it needs to be restarted to take effect. Please try checking it.

conram schrieb:
> To the op, have you already rebooted your machine?
> It says in the nvidia-settings if memory serves that it needs to be
> restarted to take effect. Please try checking it.

Even though it would surprise me very much if an actual reboot was
necessary (an X server restart should suffice) I have in fact rebooted
my machine several times, for reasons unrelated to this problem, and
the condition has reappeared each time.

Thanks,
Tilman

Checking this thread has reminded me why I’ve given up on SuSe Linux. I’ve tried for months to get 11.0 to drive my Radeon 200 video chipset, and have failed. I’ve tried ever post, every driver from ATI, and still can’t get X up and running. I grabbed Ubuntu 8.10 distro and it went in without any fighting. Now, why is that? My belief is that they actually care about their distribution, and ensure that everyone installing can get a safe X up and running…SuSe hasn’t cared for a number of releases now, so I’ve given up on their distribution. Stop fighting, get Ubuntu.

brunomcl schrieb:
> It seems that xinerama is enabled in ServerFlags but disabled in
> ServerLayout. I understand that in case of duplicate statements X honors
> the last one, but I don’t now about Section precedence. You may want to
> test it.

Hmm, that’s what the configuration utilities sax2 and nvidia-settings
generated for me, and I heeded the warning “DO NOT EDIT” at the top.
But now that you mention it, I did find it strange that every time I
reran nvidia-settings the check mark before “Enable Xinerama” was gone,
while sax2 would complain every time: “Cannot disable all displays. At
least one display must be active.” Perhaps the two do not really
cooperate well on the same xorg.conf file.

> Also note that twinview is disabled in both screens. Not sure this is
> correct.

Neither am I. In fact, the documentation I found seems to imply TwinView
and Xinerama are more or less the same, so I’m quite surprised there are
separate options for them at all, let alone for each screen individually.

> Do you want Xinerama or twinview? I think you may be able to use both,
> for instance, eith two dual-head cards, but I’m not sure. It’s worth
> some research.

All I want is to use my two monitors connected to the two DVI ports
of my GeForce card for separate contents. The sax2 “dual-head settings”
dialog tells me I have to use Xinerama for that. (The alternative being
“cloned multihead”, ie. displaying the same content on both screens,
which is not what I want and would probably not work anyway because the
two monitors differ in size and native resolution.) If TwinView can do
that without Xinerama I’ll gladly drop the latter. (Although the
Xinerama maintainers might perhaps still be interested in a bug report.)

It looks like my first research topic should be the exact relationship
between Xinerama and TwinView. Any pointers?

Thanks,
Tilman

Hi Tilman,

Can you try going back to init 3 and run sax2 –r –m 0=nvidia.
Try to accept all and if your prompted by sax2 for a test just don’t bother but save.
If the sax2 test gui will not appear, please try going back to run level 5
and login to your user, then as su run the nvidia-settings. (Not with suse right now and can’t write in detail.) Try using the separate independent screen (not xinerama I guess) set your default monitor and all the other stuff e.g.: resolution/refresh rate then save it without merging with the existing xorg configuration, then restart x to see if there is changes.

With your #4. question in the first post, I am experiencing it too. Seems that you can only open firefox in one screen and won’t allow a second on the second screen. Before I can open two instances of firefox in the first screen and just drag it with mouse in the second screen which will not let me do it anymore.

On the side. I never touch sax2 with my nvidia card and rely in the nvidia-settings to configure it. Sax2/yast2 doesn’t recognize my nvidia 7300 gt.

conram

tgalebach schrieb:
> Checking this thread has reminded me why I’ve given up on SuSe Linux.
> I’ve tried for months to get 11.0 to drive my Radeon 200 video chipset,
> and have failed. I’ve tried ever post, every driver from ATI, and still
> can’t get X up and running. I grabbed Ubuntu 8.10 distro and it went in
> without any fighting. Now, why is that? My belief is that they
> actually care about their distribution, and ensure that everyone
> installing can get a safe X up and running…SuSe hasn’t cared for a
> number of releases now, so I’ve given up on their distribution. Stop
> fighting, get Ubuntu.

Will Ubuntu drive my nVidia GeForce 6200 TC with dual DVI monitors?
If so, could you post the xorg.conf file?

Thanks,
Tilman

IFAIK (please someone correct me if I’m wrong), xinerama was the only option to have two or more independent screen back when there were no or little 3D accel, dual head cards, etc. Xinerama is an extension to X. With Xinerama activated, some options would appear in the KDE control center in Workspace > Panels, such as monitors position, and Workspace > Window Behaviour > Advanced. I don’t know if this options still exist - they don’t show in machines with only one monitor - or have been deprecated.

NVidia then developed its own scheme for this, using (two or more) single or (one or more) dual-head cards (from the GeForce2MX on IIRC), called twinview, of which the clone mode is one way you can use it (for example, a presentation of your laptop’s screen in a video projetor), the other being separate screens, which I understand is what you want.

So, I’d try to disable xinerama, enable twinview. This was set as ‘option “TwinView”’ in the Device section, not sure if for both heads or only for the second. It’s been a long time since I messed with this.

I’d guess that sax2 ou nvidia settings is disabling twinview because xinerama is on, but not correctly configured. You could back up your xorg.conf, remove the xinerama lines and try to set twinview with nvidia-settings, as root, or the config will not be written to xorg.conf.

conram schrieb:
> Can you try going back to init 3 and run sax2 –r –m 0=nvidia.
> Try to accept all and if your prompted by sax2 for a test just don’t
> bother but save.

This left me with a single screen. First monitor works fine, second
monitor goes inactive (“no signal” message) as soon as I switch to
RL5. (In text mode, it always mirrors the first one.)

Also, after logging in Gnome complains:

The X system keyboard settings differ from your current GNOME
keyboard settings.
Expected model “pc105”, layout “de nodeadkeys” and options
“compose compose:rwin eurosign eurosign:e”, but the following
settings were found: model “microsoftpro”, layout “de nodeadkeys”
and no options.
Which set do you want to use?
[Use X Settings] [Keep GNOME Settings]

(Translated back from German.)

> try going back to run level 5
> and login to your user, then as su run the nvidia-settings.

nvidia-settings produced a bunch of complaints:

ERROR: Invalid X Screen 1 specified on line 51 of configuration file
‘/root/.nvidia-settings-rc’ (there is only 1 X Screen on this Display).

with the line number incrementing from 51 to 80 but then came up fine.
My first screen “Philips 22SW (DFP-0 on GPU-0)” (the working one) was
set to “Configuration: Separate X screen” with no way to change it,
the alternatives “Disabled” and “TwinView” being both greyed out.
The second screen “Acer AL1721 (DFP-1 on GPU-0)” appeared with
“Configuration: Disabled”, with both alternatives “Separate X Screen”
and “TwinView” available.

> Try using the separate
> independent screen (not xinerama I guess) set your default monitor and
> all the other stuff e.g.: resolution/refresh rate then save it without
> merging with the existing xorg configuration, then restart x to see if
> there is changes.

For the first test I set my second screen to “Separate X screen” just
like the first one, clicked “Save to X Configuration File”, keeping
the filename /etc/X11/xorg.conf but removing the checkmark from
“Merge with existing file”. The checkmark for “Xinerama” was not set,
and I left it that way. After restarting X, the second screen was
black but active, and after logging back in it came up as a second
display (:0.1) with its own desktop icons and menu bar. Problem #1
was gone (ie. the opensuse-updater minimized fine into the systray)
but the keyboard warning came up again, this time telling me
“found layout: us”, and my keyboard layout was indeed set to US no
matter whether I answered “keep Gnome settings” or “use X settings”.
Problems #2 (“Computer” button on screen 1 opening the Gnome menu on
screen 0) and #4 (Firefox on screen 0 not accepting requests from
screen 1) were still present. I didn’t have the patience to test
problem #3 (screen saver) because it was just too annoying to type
with the wrong kezboard lazout. (The US layout exchanges y and z
with respect to the German one.) Oh yes, the screens were also
arranged the wrong way (moving the mouse beyond the right border of
the first screen made it reenter on the left side of the second screen
which is actually situated to the left of the first one) with no
obvious means of correcting that.

I then ran nvidia-settings again (unsurprisingly, there were no
“Invalid X Screen” warnings this time) and changed the first screen
from “Separate screen” to “TwinView” which automatically changed the
second one to “TwinView” too, and also made an option “Position”
appear, allowing me to specify that my second screen is to the left of
the first one. Again I saved without merging and restarted X. Again,
the keyboard warning and the bad kezboard lazout. But this time, I had
a single X display (:0.0) covering both screens and arranged correctly
too, hence problems #2 and #4 were gone. (I assume #3 was gone, too,
but once again I wasn’t patient enough to test it.)

At that point, in order to fix the kezboard issue, I tried starting
over with sax2 -r in RL3, but this time, against your advice, clicking
“Change Configuration” in sax2 and setting the correct keyboard
parameters. This avoided the first “keyboard settings” warning, but
after running nvidia-settings and saving without merging, my keyboard
layout was again back to US.

Next I attempted to set the correct keyboard mapping in the Gnome
control center. That did not have any effect at all except changing
the “expected” part in the “keyboard settings” warning after logon.

Then I changed the keyboard settings in YaST - Select Keyboard Layout
(which is really just SaX2 in disguise). This worked, but at the same
time broke the dual screen configuration, ie. after the next X restart
the second screen stayed black again.

So finally I resorted to running nvidia-settings and afterwards
editing /etc/X11/xorg.conf manually to change

Section “InputDevice”

generated from default

Identifier “Keyboard0”
Driver “kbd”
EndSection

to

Section “InputDevice”
Driver “kbd”
Identifier “Keyboard0”
Option “Protocol” “Standard”
Option “XkbLayout” “de”
Option “XkbModel” “pc105”
Option “XkbOptions” “Compose,compose:rwin,eurosign:e”
Option “XkbRules” “xfree86”
Option “XkbVariant” “nodeadkeys”
EndSection

That seems to have done the trick for the keyboard at least, but after
looking inside the various xorg.conf files created during the tests
above I am a bit nervous about other entries in the SaX2 generated
ones which are missing from those by nvidia-settings, such as FontPath
and Mouse Option lines.

> With your #4. question in the first post, I am experiencing it too.
> Seems that you can only open firefox in one screen and won’t allow a
> second on the second screen.

I could live with that if communication between the two screens worked,
so that for example Thunderbird from one screen could ask Firefox on
the other one to open a link.

> Before I can open two instances of firefox
> in the first screen and just drag it with mouse in the second screen
> which will not let me do it anymore.

With TwinView, that works. So it seems like TwinView is the way to go.

> On the side. I never touch sax2 with my nvidia card and rely in the
> nvidia-settings to configure it.

The trouble with nvidia-settings is that it always blindly sets the
keyboard layout to “US”, which is somewhat inconvenient for owners
of non-US keyboards like me.

> Sax2/yast2 doesn’t recognize my nvidia
> 7300 gt.

On my system, SaX2 pretends to recognize the nVidia card but
invariably breaks any dual-screen configuration I might have set up.

So in sum, the solution seems to be:

  • use TwinView
  • create your xorg.conf manually by merging the best parts from what
    nvidia-settings and sax2 generate

Not very satisfying, but apparently the best we can do.

Thanks,
Tilman

Just a random thought here, but have you tried other versions of the driver?

Sometimes the when one bug is fixed, it breaks something else. So even though you are using the most recent driver, sometimes an earlier version might work better.

foresthill schrieb:
> Just a random thought here, but have you tried other versions of the
> driver?
>
> Sometimes the when one bug is fixed, it breaks something else. So even
> though you are using the most recent driver, sometimes an earlier
> version might work better.

Well, the driver itself works fine, so I’m really not much inclined
to switch. It’s just the configuration programs, nvidia-settings and
sax2, which step on each other’s toes. I can work around that by
manually editing my xorg.conf file.

So, thanks for your suggestion, but I’d rather not try that.

Hi,

If I go to YaST search for nvidia it find lots of nvidia files.
Which file should I click on it?:\

suse-pro

No one can answer that question until we know the following info:

-Your card (legacy or non-legacy)
-Kernel version
-OS version (32 bit or 64 bit)

nVidia GeForce 7100
and the new opensuse 11.1 using KDE 4
32 bit