Backstreet Ruby/ Ruby

Software besorgen und anwenden
Post Reply
Message
Author
sami

Backstreet Ruby/ Ruby

#1 Post by sami »

Hallo,

Also der erste Test mit "nur DualHead" ist erstmal positiv gewesen.
(Auf der nvidia Webseite steht ein Konfig-Tool zur Verfügung ;-)
ftp://download.nvidia.com/XFree86/nvidia-settings )

Also die 3 Möglichkeiten
- Kopie des 1. Monitors auf den 2.
- Beide Monitore als einen gemeinsamen, großen verwenden (Twn Mode)
- Beide Monitore als extra Screen mit verschiedenen Inhalt und eigener Startleiste (Separat Mode)

Irgendwie fehlen mir da noch ein paar Grundlagen:
Wozu benötige ich den Ruby-Patch?
Nur für die Tastatur ?

Viele Grüße
sami

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#2 Post by Janka »

Deine 3 Möglichkeiten sind allesamt mit *einem* Display:

1. Clone: Dabei kriegt X vom zweiten Bildschirmausgang gar nichts mit. Das ist nur möglich, wenn beide Bildschirme dieselbe Ausflösung fahren. Die besseren VGA-Adapter erlauben aber unterschiedliche Bildwiederholfrequenzen an den Ausgängen. Das ist eine Sache des Treibers.
2. Xinerama: Dabei verwaltet X nur einen Screen, teilt diesen an bestimmten Stellen und steuert verschiedene Ausgänge an. Dies lässt sich ohne große Umstände auf jedem Rechner mit mehreren Grafikausgängen (ob nun auf einer Karte oder auf mehreren) einrichten.
3. Ein Display, mehrere Screens: Das ist der "klassische" Multihead-Modus mit X. Geht auch ohne große Umstände auf jedem Rechner mit mehreren Grafikausgängen.

Wenn du mehrere *Displays* haben willst, brauchst du ja für jedes Display eine Tastatur. Das ist also quasi ein "lokaler Terminalserver". Und genau dafür wird der Ruby-Patch benötigt, sonst geht's nicht -- weil Linux ohne diesen Patch nur eine logische Tastatur kennt. Um mehrere Tastaturen zu erlauben, ändert der Ruby-Patch die Zuordnung der Virtual Terminals (VT) zu den Tastaturen.

Normalerweise hat man auf VT1 dieText-/Framebufferkonsole 1, etc. und auf VT7 das erste X11, auf VT8 das zweite X11 (für Benutzer wechseln) usw. Alle diese VTs sind allen Tastaturen zugeordnet. Der Ruby-Patch ändert dies nun: VT1..16 bekommen nur die erste Tastatur, VT17-32 nur die zweite Tastatur usw. Wenn man also nun ein X auf VT17 startet, bekommt es die zweite Tastatur zugeordnet und man kann darauf ein weiteres X-Display (mit dem zweiten Monitor) aufbauen.

Nachteil: Wenn man die VTs über Strg+Alt+F... umschaltet, gibt's ein heilloses Durcheinander. Deshalb sollte man das abschalten.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

sami

2 Server - 1 Konsole

#3 Post by sami »

Hallo Janka, schönen Sonntag ;-) ,

Habe erstmal nicht die Zeit mich da einzurbeiten, aber Eines wüsste ich noch gern:

Wenn ich die 2 Server mit 2 zugeordneten Mäusen auf einem Terminal laufen lasen will, benötige ich da uach diesen Patch?

ich hatte ein 2. Server-Layout angelegt, eine 2 Maus-Schnittstelle definiert und das alles mit der option "sharevts" gestartet, dies hatte aber nicht so funktioniert wie erhofft:

ich hatte dann Server 0 mit Maus0 auf Terminal 7 und Server 1 mit Maus 1 auf Terminal 8 ;(

Viele Grüße
sami

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#4 Post by Janka »

Wozu soll es gut sein, zwei Mäuse zu haben, die unterschiedliche Zeiger bewegen, die Tastatur aber zu teilen?

Um zwei Xserver gleichzeitig mit unterschiedlichen Konfigurationen starten zu können, musst du entweder einem der X-Server mit -config beim Start anweisen, eine komplett andere Konfigurationsdatei zu benutzen, oder mit -layout, eine andere ServerLayout-Sektion als die normale.

Um alle Mäuse zu einer zusammenzulegen, nimmt man /dev/input/mice als Pseudo-Maus-Device. Oder gpm als X-Maustreiber.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

sami

2 mäuse

#5 Post by sami »

> Wozu soll es gut sein, zwei Mäuse zu haben, die unterschiedliche Zeiger bewegen, die Tastatur aber zu teilen?

dann kann man wenigstens ein Spiel zu zweit gegeneinander spielen, oder jeder für sich ;-)

> Um alle Mäuse zu einer zusammenzulegen, nimmt man /dev/input/mice ..
Ja, das war so voreingestellt, hatte dies also dann auf /dev/input/mouse0 und .. mouse1 umgeswitcht. Wollte schlieslich für jeden Monitor eine extra Maus.


> .. oder mit -layout, eine andere ServerLayout-Sektion als die normale ..

Ja so hatte ich die Server auch gestartet, dass hat ja auch funktioniert, aber auf unterschiedlichen Terminals. Also, ich sah dann die beiden monitore nie gleichzeitig und musste mit F7 bzw F8 umschalten.

LG sami

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#6 Post by Janka »

Hast du denn für die jeweiligen Grafikkarten auch die richtige BusID angegeben? Wenn nicht, kann der Xserver ja nicht wissen, dass er auf der zweiten Grafikkarte ausgeben soll.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

sami

xserver

#7 Post by sami »

Der X-Server ist meines erachtens richtig zugeordnet,
das erkennt man ja auch daran, das auf dem Monitor0 auch nur die Mause0 arbeitet.

Mein Problem ist, beide Server unter einem Terminal zustarten.

Es ist eine Karte mit je einem analogen und digitalen Ausgang.

Hier mal die xorg.conf

Code: Select all

# /etc/xorg.conf für nvidia-Karte 6200 Dual-Ausgang
# DFP (digital) und CRT (analog TFT)

#
# TEST fuer den Displays zugeordnete Mauese
#

# ****************************************************************
# Refer to the xorg.conf man page for details about the format of
# this file.
# ****************************************************************

# ****************************************************************
# Module section - dynamisch ladbare Module
# ****************************************************************

Section "Module"
    Load "dbe" # Double-Buffering Extension
    Load "v4l" # Video for Linux
    Load "extmod"
    Load "type1"
    Load "freetype"
    Load "glx" # 3D layer
EndSection

Section "Extensions"
    Option "Composite"
EndSection

Section "Files"
    # font server independent of the X server to render fonts.
    # minimal fonts to allow X to run without xfs
    ModulePath "/usr/lib/xorg/modules/extensions/nvidia97xx"
    ModulePath "/usr/lib/xorg/modules"
    FontPath "unix/:-1"
    FontPath "/usr/share/fonts/misc:unscaled"
EndSection
# ****************************************************************
# Input device section
# ****************************************************************

Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    Option "XkbModel" "pc105"
    Option "XkbLayout" "de(nodeadkeys)"
    Option "XkbOptions" "compose:rwin"
EndSection

Section "InputDevice"
    Identifier "Mouse1"
    Driver "mouse"
    Option "Protocol" "ExplorerPS/2"
    Option "Device" "/dev/input/mouse0"
EndSection

Section "InputDevice"
    Identifier "Mouse2"
    Driver "mouse"
    Option "Protocol" "ExplorerPS/2"
    Option "Device" "/dev/input/mouse1"
EndSection
# ****************************************************************
# Graphics device section
# ****************************************************************

Section "Device"
    Identifier "Videocard0"
    VendorName "NVIDIA Corporation"
    BoardName "GeForce 6200"
    Driver "nvidia"
    BusID "PCI:1:0:0"
    Option "Twin View" "1"
EndSection

Section "Device"
    Identifier "Videocard1"
    VendorName "NVIDIA Corporation"
    BoardName "GeForce 6200"
    Driver "nvidia"
    BusID "PCI:1:0:0"
    Option "Twin View" "1"
EndSection
# ****************************************************************
# Monitor section
# ****************************************************************

Section "Monitor"
    Identifier "Monitor0"
    VendorName "Unknown"
    ModelName "Philips 170C"
    HorizSync 30.0 - 83.0
    VertRefresh 56.0 - 76.0
EndSection

Section "Monitor"
    # TV fullscreen mode or DVD fullscreen output.
    # 768x576 @ 79 Hz, 50 kHz hsync
    Identifier "Monitor1"
    VendorName "Unknown"
    ModelName "GERICOM 520A"
    HorizSync 31.0 - 60.0
    VertRefresh 56.0 - 85.0
    ModeLine "768x576" 50.0 768 832 846 1000 576 590 595 630
    ModeLine "768x576" 63.0 768 800 960 1024 576 578 590 616
EndSection
# ****************************************************************
# Screen section
# ****************************************************************

Section "Screen"
    Identifier "Screen0"
    Device "Videocard0"
    Monitor "Monitor0"
    DefaultDepth 24
    
    Subsection "Display"
        Depth 24
        Modes "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
    EndSubsection
    Option "metamodes" "DFP: nvidia-auto-select +0+0"
EndSection

Section "Screen"
    Identifier "Screen1"
    Device "Videocard1"
    Monitor "Monitor1"
    DefaultDepth 24
    
    Subsection "Display"
        Depth 24
        Modes "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
    EndSubsection
    
    # Option         "AddARGBGLXVisuals"
    Option "metamodes" "CRT: nvidia-auto-select +0+0"
    Option "DPMS"
EndSection
# ****************************************************************
# Server flage section
# ****************************************************************

Section "ServerFlags"
    # Option "DontZap" # disable <Crtl><Alt><BS> &#40;server abort&#41;
    # Option "Dont VTSwitch" # bei Patch mit 2 Keyboards
    Option "ShareVTS"
    Option "Xinerama" "true"
    
    # Option "DontZoom" # disable <Crtl><Alt><KP_+>/<KP_-> &#40;resolution switching&#41;
    # ** allows the server to start up even if the mouse does not work&#58; **
    Option "allowmouseopenfail"
EndSection
# ****************************************************************
# Server Layout section
# ****************************************************************

Section "ServerLayout"
    Identifier "ServerLayout0"
    InputDevice "Keyboard0" "CoreKeyboard"
    InputDevice "Mouse1" "CorePointer"
    InputDevice "Mouse2" "SendCoreEvents"
    Screen 0  "Screen0" 0 0
EndSection

Section "ServerLayout"
    Identifier "ServerLayout1"
    InputDevice "Keyboard0" "CoreKeyboard"
    InputDevice "Mouse1" "CorePointer"
    Screen 0  "Screen1# /etc/xorg.conf für nvidia-Karte 6200 Dual-Ausgang
# DFP &#40;digital&#41; und CRT &#40;analog TFT&#41;

#
# TEST fuer den Displays zugeordnete Mauese
#

# ****************************************************************
# Refer to the xorg.conf man page for details about the format of
# this file.
# ****************************************************************
#

# ****************************************************************
# Module section - dynamisch ladbare Module
# ****************************************************************

Section "Module"
    Load "dbe" # Double-Buffering Extension
    Load "v4l" # Video for Linux
    Load "extmod"
    Load "type1"
    Load "freetype"
    Load "glx" # 3D layer
EndSection

Section "Extensions"
    Option "Composite"
EndSection

Section "Files"
    # font server independent of the X server to render fonts.
    # minimal fonts to allow X to run without xfs
    ModulePath "/usr/lib/xorg/modules/extensions/nvidia97xx"
    ModulePath "/usr/lib/xorg/modules"
    FontPath "unix/&#58;-1"
    FontPath "/usr/share/fonts/misc&#58;unscaled"
EndSection
# ****************************************************************
# Input device section
# ****************************************************************

Section "InputDevice"
    Identifier "Keyboard0"
    Driver "kbd"
    Option "XkbModel" "pc105"
    Option "XkbLayout" "de&#40;nodeadkeys&#41;"
    Option "XkbOptions" "compose&#58;rwin"
EndSection

Section "InputDevice"
    Identifier "Mouse1"
    Driver "mouse"
    Option "Protocol" "ExplorerPS/2"
    Option "Device" "/dev/input/mouse0"
EndSection

Section "InputDevice"
    Identifier "Mouse2"
    Driver "mouse"
    Option "Protocol" "ExplorerPS/2"
    Option "Device" "/dev/input/mouse1"
EndSection
# ****************************************************************
# Graphics device section
# ****************************************************************

Section "Device"
    Identifier "Videocard0"
    VendorName "NVIDIA Corporation"
    BoardName "GeForce 6200"
    Driver "nvidia"
    BusID "PCI&#58;1&#58;0&#58;0"
    Option "Twin View" "1"
EndSection

Section "Device"
    Identifier "Videocard1"
    VendorName "NVIDIA Corporation"
    BoardName "GeForce 6200"
    Driver "nvidia"
    BusID "PCI&#58;1&#58;0&#58;0"
    Option "Twin View" "1"
EndSection
# ****************************************************************
# Monitor section
# ****************************************************************

Section "Monitor"
    Identifier "Monitor0"
    VendorName "Unknown"
    ModelName "Philips 170C"
    HorizSync 30.0 - 83.0
    VertRefresh 56.0 - 76.0
EndSection

Section "Monitor"
    # TV fullscreen mode or DVD fullscreen output.
    # 768x576 @ 79 Hz, 50 kHz hsync
    Identifier "Monitor1"
    VendorName "Unknown"
    ModelName "GERICOM 520A"
    HorizSync 31.0 - 60.0
    VertRefresh 56.0 - 85.0
    ModeLine "768x576" 50.0 768 832 846 1000 576 590 595 630
    ModeLine "768x576" 63.0 768 800 960 1024 576 578 590 616
EndSection
# ****************************************************************
# Screen section
# ****************************************************************

Section "Screen"
    Identifier "Screen0"
    Device "Videocard0"
    Monitor "Monitor0"
    DefaultDepth 24
    
    Subsection "Display"
        Depth 24
        Modes "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
    EndSubsection
    Option "metamodes" "DFP&#58; nvidia-auto-select +0+0"
EndSection

Section "Screen"
    Identifier "Screen1"
    Device "Videocard1"
    Monitor "Monitor1"
    DefaultDepth 24
    
    Subsection "Display"
        Depth 24
        Modes "1600x1200" "1280x1024" "1024x768" "800x600" "640x480"
    EndSubsection
    
    # Option         "AddARGBGLXVisuals"
    Option "metamodes" "CRT&#58; nvidia-auto-select +0+0"
    Option "DPMS"
EndSection
# ****************************************************************
# Server flage section
# ****************************************************************

Section "ServerFlags"
    # Option "DontZap" # disable <Crtl><Alt><BS> &#40;server abort&#41;
    # Option "Dont VTSwitch" # bei Patch mit 2 Keyboards
    Option "ShareVTS"
    Option "Xinerama" "true"
    
    # Option "DontZoom" # disable <Crtl><Alt><KP_+>/<KP_-> &#40;resolution switching&#41;
    # ** allows the server to start up even if the mouse does not work&#58; **
    Option "allowmouseopenfail"
EndSection
# ****************************************************************
# Server Layout section
# ****************************************************************

Section "ServerLayout"
    Identifier "ServerLayout0"
    InputDevice "Keyboard0" "CoreKeyboard"
    InputDevice "Mouse1" "CorePointer"
    InputDevice "Mouse2" "SendCoreEvents"
    Screen 0  "Screen0" 0 0
EndSection

Section "ServerLayout"
    Identifier "ServerLayout1"
    InputDevice "Keyboard0" "CoreKeyboard"
    InputDevice "Mouse1" "CorePointer"
    Screen 0  "Screen1" 0 0
EndSection




sami

korrektur

#8 Post by sami »

sorry, das war nicht die richtige Fassung, hier noch mal:

# /etc/xorg.conf für nvidia-Karte 6200 ... *********

User avatar
Janka
Posts: 3585
Joined: 11. Feb 2006 19:10

#9 Post by Janka »

Als Grundhindernis sehe ich mal, dass du eine Karte mit zwei Ausgängen verwendest, nicht zwei getrennte Karten. Das bedeutet, dass du *nicht* zwei unabhängige Xserver verwenden kannst. Beide Monitore müssen von derselben X-Instanz angesteuert werden, da es sich nur um eine Videohardware handelt. Jede X-Instanz kann aber nur eine Tastatur und einen Pointer verwalten, unabhängig von der Zahl der tatsächlich vorhandenen Eingabegeräte. Auch der Ruby-Patch hilft hier nicht.

Die Konfiguration, die deiner Wunschkonfiguration am nächsten kommt, ist die mit einem Display, aber separaten Screens. Das Spiel (welches?) muss nun vom X-Pointer alternative Eingabegeräte unterstützen. Dann gibt man dort direkt das Maus- und/oder Keyboard-Device an und fertig.

Janka
Ich vertonne Spam immer in /dev/dsp statt /dev/null.
Ich mag die Schreie.

sami

xserver

#10 Post by sami »

Danke Dir erstmals.
Die Ansteuerung mit den Mäusen pro Display hatte ja funktioniert, ich bekam nur nicht beide Displays zur gleichen "Zeit" - entweder tty7 oder tty8.

Post Reply