Vraag & Antwoord

OS Linux

2 onafhankelijke displays

2 antwoorden
  • Dit is waarschijnlijk een tamelijke ingewikkeld probleem. Zie het als een uitdaging het samen voor elkaar te krijgen! (vanwege de klachten over gebrek aan uitdaging op een niet nader te noemen ander forum ;) ) Als ik aan GNU/Linux denk, dan denk ik aan een besturingssysteem waarbij de mogelijkheden eindeloos zijn, er zijn geen grenzen. Natuurlijk weet ik dat er wel degelijk grenzen zijn al worden de grenzen van mijn kennis in veel gevallen echter eerder bereikt. Dit is zo'n geval. Er was eens een jongen die een maffe constructie had verzonnen. Deze jongen heeft een laptop (grima), een desktop (haldir) en een router (isildur) en ja deze jongen is fan van Lord of the Rings. Nu is het zo dat die jongen, ik dus, zo'n beetje alle vrije tijd spendeert in een hok van 4 bij 4, namelijk het computerhok. Het is dus mooi als ik dat hok zo min mogelijk uit hoef en dat dacht ik als volgt te realizeren. Ik stop in de desktop (haldir) een TV-kaart. Ik sluit op haldir een 2e monitor aan. Ik zet de 2e monitor naast mijn laptop en stuur deze vanaf mijn laptop aan. Ik laat op deze monitor teksten staan, zodat ik meer ruimte op mijn laptop over heb en kijk op deze 2e monitor TV. Om even een verklaring te geven waarom alles zo ingewikkeld moet. De desktop is voor het grootste deel (80% oid) wel van mij, maar aangezien ik toch een laptop heb werk ik daar gewoon altijd op. Ik heb daarvoor een los toetsenbord en muis en een standaard, zodat ik gewoon een normale werkplek heb, ideaal. De desktop wordt veel gebruikt door mijn zusje, broertje en moeder. Ik kan het grootste deel van de tijd dus niet de TV-kaart aanzetten op het 1e scherm van de desktop, omdat daar iemand anders op wil werken. Op mijn laptop kan alleen een exerne tv-kaart en die zijn brak en duur vandaar deze oplossing. De TV-kaart heb ik 2e hands gekocht, maar die heb ik nog even niet in huis (krijg ik op de meeting in Tiel), maar ik heb vanmorgen al wel een 2e hands 17-inch monitor gekocht en wilde dus vast aan de slag gaan. In mijn desktop zit een Leadtek Geforce 4 ti4400 met zowel een VGA als een DVI uitgang. Aangezien mijn normale Phlips (109S) de VGA uitgang al bezette heb ik een convertje gekocht om ook het 2e scherm aan te kunnen sluiten (een Taxon Ergovision 730). Toen ik de desktop aanzette, kwamen alle POST meldingen en later de kernel output niet meer op de 1e maar op de 2e monitor. Dat was niet de bedoeling dus na wat moeilijk gedaan te hebben kwam ik op het idee gewoon even de kabels om te zetten en dat werkte. Ik heb dus vanaf de boot een zwarte 2e monitor en een zoals normaal functionerende 1e monitor. Nu is dus de bedoeling dat ik vanaf mijn laptop via ssh inlog op mijn desktop. Daar display 1 opstart die naar de 2e monitor moet en deze vervolgens gewoon met toetsenbord en muis van de laptop kan besturen. Ik had geen ervaring met dat soort constructies, maar begon gewoon vol goede moet te koten in de XF86Config file. Met wat hulp van Google etc moest het toch wel lukken. Nu ben ik al een eindje gekomen door oa de config op de volgende punten aan te passen: [code:1:c241863a76] # ********************************************************************** # Monitor section # ********************************************************************** # Any number of monitor sections may be present Section "Monitor" Identifier "Philips 109S" # HorizSync is in kHz unless units are specified. # HorizSync may be a comma separated list of discrete values, or a # comma separated list of ranges of values. # NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S # USER MANUAL FOR THE CORRECT NUMBERS. HorizSync 30-92 # HorizSync 30-64 # multisync # HorizSync 31.5, 35.2 # multiple fixed sync frequencies # HorizSync 15-25, 30-50 # multiple ranges of sync frequencies # VertRefresh is in Hz unless units are specified. # VertRefresh may be a comma separated list of discrete values, or a # comma separated list of ranges of values. # NOTE: THE VALUES HERE ARE EXAMPLES ONLY. REFER TO YOUR MONITOR'S # USER MANUAL FOR THE CORRECT NUMBERS. VertRefresh 50-160 EndSection Section "Monitor" Identifier "Taxan Ergovision 730" HorizSync 30-69 VertRefresh 50-120 EndSection [/code:1:c241863a76] [code:1:c241863a76] # ********************************************************************** # Graphics device section # ********************************************************************** # Any number of graphics device sections may be present # Standard VGA Device: Section "Device" Identifier "Standard VGA" VendorName "Unknown" BoardName "Unknown" # The chipset line is optional in most cases. It can be used to override # the driver's chipset detection, and should not normally be specified. # Chipset "generic" # The Driver line must be present. When using run-time loadable driver # modules, this line instructs the server to load the specified driver # module. Even when not using loadable driver modules, this line # indicates which driver should interpret the information in this section. Driver "vga" # The BusID line is used to specify which of possibly multiple devices # this section is intended for. When this line isn't present, a device # section can only match up with the primary video device. For PCI # devices a line like the following could be used. This line should not # normally be included unless there is more than one video device # intalled. # BusID "PCI:0:10:0" # VideoRam 256 # Clocks 25.2 28.3 EndSection # Device configured by xf86config: Section "Device" Identifier "Leadtek Geforce4 ti4400 #0" Driver "nvidia" BusID "PCI:1:0:0" #VideoRam 131072 # Insert Clocks lines here if appropriate Screen 0 EndSection Section "Device" Identifier "Leadtek Geforce4 ti4400 #1" Driver "nvidia" BusID "PCI:1:0:0" Screen 1 EndSection [/code:1:c241863a76] [code:1:c241863a76] # ********************************************************************** # Screen sections # ********************************************************************** # Any number of screen sections may be present. Each describes # the configuration of a single screen. A single specific screen section # may be specified from the X server command line with the "-screen" # option. Section "Screen" Identifier "Screen 0" Device "Leadtek Geforce4 ti4400 #0" Monitor "Philips 109S" DefaultDepth 24 Subsection "Display" Depth 8 Modes "1280x1024" "1024x768" "800x600" "640x480" ViewPort 0 0 EndSubsection Subsection "Display" Depth 16 Modes "1280x1024" "1024x768" "800x600" "640x480" ViewPort 0 0 EndSubsection Subsection "Display" Depth 24 Modes "1280x1024" "1024x768" "800x600" "640x480" ViewPort 0 0 EndSubsection EndSection Section "Screen" Identifier "Screen 1" Device "Leadtek Geforce4 ti4400 #1" Monitor "Taxan Ergovision 730" DefaultDepth 24 Subsection "Display" Depth 8 Modes "1280x1024" "1024x768" "800x600" "640x480" ViewPort 0 0 EndSubsection Subsection "Display" Depth 16 Modes "1280x1024" "1024x768" "800x600" "640x480" ViewPort 0 0 EndSubsection Subsection "Display" Depth 24 Modes "1024x768" "800x600" "640x480" ViewPort 0 0 EndSubsection EndSection [/code:1:c241863a76] Dit zijn alle secties die volgens mij volledig in orde zijn. De moeilijkheid zit hem in het volgende gedeelte en enkele bijkomende complicaties: [code:1:c241863a76] # ********************************************************************** # ServerLayout sections. # ********************************************************************** # Any number of ServerLayout sections may be present. Each describes # the way multiple screens are organised. A specific ServerLayout # section may be specified from the X server command line with the # "-layout" option. In the absence of this, the first section is used. # When now ServerLayout section is present, the first Screen section # is used alone. Section "ServerLayout" # The Identifier line must be present Identifier "Simple Layout #0" # Each Screen line specifies a Screen section name, and optionally # the relative position of other screens. The four names after # primary screen name are the screens to the top, bottom, left and right # of the primary screen. In this example, screen 2 is located to the # right of screen 1. Screen "Screen 0" # Each InputDevice line specifies an InputDevice section name and # optionally some options to specify the way the device is to be # used. Those options include "CorePointer", "CoreKeyboard" and # "SendCoreEvents". InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection Section "ServerLayout" Identifier "Simple Layout #1" #Screen "Screen 0" Screen "Screen 1" InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection [/code:1:c241863a76] Zoals het commentaar van de configfile al aangeeft wordt dus standaard de eerste sectie gekozen, ofwel "Simple Layout #0". Dit is de standaardlayout die ook na al mijn gepruts nog gewoon werkt. De desktop boot, het eerste scherm gaat aan (dat is dus in de config screen 0). Het tweede scherm blijft zwart. Dat is ook hoe ik het in principe zou willen hebben. Vervolgens trek ik op mijn laptop een konsole open, log ik over ssh in en dan wil ik dus een display 1 kunnen starten op de 2e monitor die ik met toetsenbord en muis v van mijn laptop kan besturen. Daar komt het eerste probleem om de hoek kijken. Als ik namelijk over ssh inlog op de desktop en ik tik bijvoorbeeld startx -- :1 als user marcel dan komt hij aanzetten met de volgende melding: [code:1:c241863a76] marcel@haldir:~$ startx -- :1 Using authority file /home/marcel/.Xauthority Writing authority file /home/marcel/.Xauthority Using authority file /home/marcel/.Xauthority Writing authority file /home/marcel/.Xauthority XFree86 Version 4.3.0 Release Date: 27 February 2003 X Protocol Version 11, Revision 0, Release 6.6 Build Operating System: Linux 2.4.20 i686 [ELF] Build Date: 01 March 2003 Before reporting problems, check http://www.XFree86.Org/ to make sure that you have the latest version. Module Loader present 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/XFree86.1.log", Time: Sat Nov 1 21:36:19 2003 (==) Using config file: "/etc/X11/XF86Config" (II) [GLX]: Initializing GLX extension startkde: Starting up... kbuildsycoca running... mcop warning: user defined signal handler found for SIG_PIPE, overriding Got panel toplevel Panel [/code:1:c241863a76] Alles lijkt dus prima te gaan en eigenlijk gaat dat het ook. KDE start idd op, maar _over_ de op de desktop draaiende sessie in display 0 heen. Die sessie verdwijnt naar de achtergrond en komt pas weer boven als de door mij opgestarte sessie afgeslotem wordt. Om het probleem even bondig te formuleren: Als je over ssh inlogt kan de desktop geen onderscheid maken tussen de verschillende displays. De display zou namelijk gewoon op tty8 moeten gaan draaien. Als ik gewoon achter mijn dekstop gaat zitten en als user marcel op tty1 intik: startx -- :1, dan gebeurt dat ook gewoon. Sessie draait op tty8 en de al draaiende sessie loopt gewoon door op tty7. Dat is dus probleem nummero 1. Het tweede punt is natuurlijk dat die sessie niet naar tty8, maar naar de 2e monitor, ofwel screen 1 moet gaan. En zie dat X maar eens wijs te maken. Ik heb getracht dit te bereiken door een tweede serverlayout in te voegen, namelijk "Simple Server Layout #1". Eigenlijk lijkt dat goed te werken, want als ik het #-je voor screen 0 weghaal: [code:1:c241863a76] Section "ServerLayout" Identifier "Simple Layout #1" Screen "Screen 0" Screen "Screen 1" InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection [/code:1:c241863a76] En ik start vervolgens een 2e X-server met de volgende optie: X :1 -layout "Simple Layout #1" dan wordt er op tty8 een tweede display geopend dat doorloopt op de 2e monitor. Daarin kan ik vervolgens vanaf tty2 bijvoorbeeld een kde sessie starten met: [code:1:c241863a76] export DISPLAY:1 startkde [/code:1:c241863a76] Ik krijg dan zoals dat ook hoort op mijn eerste scherm de normale KDE sessie zoals gewoonlijk en een extra kde sessie op het tweede scherm. Als ik de configuratie als volgt aanpas: [code:1:c241863a76] Section "ServerLayout" Identifier "Simple Layout #1" Screen "Screen 0" Screen "Screen 1" LeftOf "Screen 0" InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection [/code:1:c241863a76] Kan ik ook mijn muis tussen beide schermen verslepen. Dat is allemaal heel leuk en aardig, maar dat is dus niet de bedoeling ;) Hoewel op tty7 de sessie waaronder mijn moeder normaal werkt gewoon door draait kan ze deze natuurlijk niet besturen als er tty8 aan staat. Schakel ik van tty8 naar tty7 terug, dan gaat logischer wijs ook het tweede scherm weer uit. Dat is allemaal niet zo vreemd en daarom vermelde ik ook in de topic titel dat ik een onafhankelijke display probeer te bereiken. Dat leek mij eigenlijk niet zo moeilijk. Ik paste gewoon de config als volgt aan (ik haal gewoon screen 0 uit de server-layout: [code:1:c241863a76] Section "ServerLayout" Identifier "Simple Layout #1" Screen "Screen 1" InputDevice "Mouse1" "CorePointer" InputDevice "Keyboard1" "CoreKeyboard" EndSection [/code:1:c241863a76] Je zou nu verwachten dat na het commando: X :1 -layout "Simple Layout #1" gewoon op het tweede scherm, screen 1, display 1 zou gaan draaien. Dat probeert de x-server ook alleen krijg ik vervolgens de volgende errors: [code:1:c241863a76] root@haldir:~# X :1 -layout "Simple Layout #1" XFree86 Version 4.3.0 Release Date: 27 February 2003 X Protocol Version 11, Revision 0, Release 6.6 Build Operating System: Linux 2.4.20 i686 [ELF] Build Date: 01 March 2003 Before reporting problems, check http://www.XFree86.Org/ to make sure that you have the latest version. Module Loader present 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/XFree86.1.log", Time: Sat Nov 1 22:21:35 2003 (==) Using config file: "/etc/X11/XF86Config" (WW) NVIDIA: No matching Device section for instance (BusID PCI:1:0:0) found (EE) Screen 0 deleted because of no matching config section. Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWSave from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWSave from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWRestore from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWRestore from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWUnmapMem from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol fbCloseScreen from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol fbWinPrivateIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol fbWinPrivateIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol fbCreateWindow from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol fbCreateGC from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol fbGCPrivateIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol fbValidateGC from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol fbPictureInit from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol vgaHWGetIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol fbWinPrivateIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol fbWinPrivateIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! Symbol fbWinPrivateIndex from module /usr/X11R6/lib/modules/drivers/nvidia_drv.o is unresolved! *** If unresolved symbols were reported above, they might not *** be the reason for the server aborting. Fatal server error: Caught signal 4. Server aborting When reporting a problem related to a server crash, please send the full server output, not just the last messages. This can be found in the log file "/var/log/XFree86.1.log". Please report problems to xfree86@xfree86.org. Aborted root@haldir:~# [/code:1:c241863a76] En dat is dus probleem nummer 2. Nu kwam ik er dus achter dat dit hoe raar het ook klinkt dit werd veroorzaakt doordat tty7 en tty8 dan dezelfde input devices gebruikten. Op zich niet zo gek natuurlijk, alleen de error die het tot gevolg heeft wel. Ik probeerde vervolgens de sectie aan te passen tot: [code:1:c241863a76] Section "ServerLayout" Identifier "Simple Layout #1" Screen "Screen 1" EndSection [/code:1:c241863a76] Maar als ik dan met X :1 -layout "Simple Layout #1" probeer te starten krijg ik de volgend error: [code:1:c241863a76] root@haldir:~# X :1 -layout "Simple Layout #1" XFree86 Version 4.3.0 Release Date: 27 February 2003 X Protocol Version 11, Revision 0, Release 6.6 Build Operating System: Linux 2.4.20 i686 [ELF] Build Date: 01 March 2003 Before reporting problems, check http://www.XFree86.Org/ to make sure that you have the latest version. Module Loader present 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/XFree86.1.log", Time: Sat Nov 1 22:23:12 2003 (==) Using config file: "/etc/X11/XF86Config" (EE) No core pointer device specified (EE) Unable to determine the screen layout (EE) Error from xf86HandleConfigFile() Fatal server error: no screens found When reporting a problem related to a server crash, please send the full server output, not just the last messages. This can be found in the log file "/var/log/XFree86.1.log". Please report problems to xfree86@xfree86.org. root@haldir:~# [/code:1:c241863a76] Ligt dit wellicht aan het ontbreken van inputdevices? Zo ja zou een USB toetsenbord dit probleem kunnen verhelpen? Zo ja welke goedhartige geek heeft nog een USB ramplank liggen en verblijdt mij, ik ben namelijk blut :( Het liefst wil ik natuurlijk gewoon het toetsenbord van mijn laptop gebruiken voor de besturing, maar volgens mij is het een ziekelijke moeilijke opgave om dat voor elkaar te krijgen aangezien het keyboard dan zowel mijn laptop als display 1 op de desktop remote aan moet sturen. Het is volgens een aantal stukken die ik via google vond zoiezo nodig een 2e X-server te draaien met een andere server-layout. Ik heb zelf nog wat lopen kutten, maar ik kan krijg ook geen andere manier verzonnen om in de eerste server-layout aan te geven dat display 1 aar screen 1 moet verhuizen. Kort samengevat: 1. als ik over ssh inlog display 1 start gaat deze niet naar de goede tty, maar walst over de huidige sessie op tty7 heen 2. display 1 wil niet starten, wellicht door het ontbreken van een extra toetsenbord? 3. hoe zou ik het voor elkaar kunnen krijgen om display 1 met het toetsenbord en de muis van mijn laptop te besturen?
  • Heb je ook gezorgd dat de $DISPLAY variable op de latop naar :1 wijst voor X op te starten?

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.