• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Monitorauflösung einstellen bei Verwendung eines Switch

uwel

Newbie
Hallo,

nachdem ich 2 neue Pc's mit Windows XP und Suse Linux 12.2 (kernel-desktop 3.4.11-2.16.1) installiert habe, habe ich zum schnellen Wechseln einen Switch von D-Link dazwischen geschaltet.

Ohne Switch, d. h. der Monitor ist direkt am PC mittels VGA-Kabel angeschlossen, funktionieren beide Systeme einwandfrei mit der Auflösung von 1280*960.

Das Problem: Mit Switch (alle Geräte über VGA-Kabel angeschlossen) startet Suse nur mit der Auflösung 640*480. Der ebenfalls installierte NVidia Treiber (nvidia-gfxG02-kmp-desktop 304.43_k3.4.6_2.10-19.1) startet ebenfalls nicht.

Meine Vermutung: Suse Linux fragt beim Start nach dem Monitor und seinen Eigenschaften, erhält über den Switch jedoch keine Antwort.

Wie kann ich Suse Linux dazu bringen, ohne Anfrage mit voreingestellten Werten (sofern meine Vermutung stimmt) zu starten? Die handwerkliche Lösung, starten mit direkt angeschlossenem Monitor und anschließendem Umstecken, ist unbefriedigend. Hiermit trickse ich nur das System aus, die Einstellungen beim Start bleiben nämlich erhalten.

Grafikkarte: NVidia GeForce 7600 GS

Vielen Dank für jede Hilfe

Uwe
 

Trekkie00

Member
Wäre für Deine Anwendung die Software synergy eine Alternative?

Homepage : http://synergy-foss.org/de/
Repository für openSuSE 12.2 : http://download.opensuse.org/repositories/X11:/Utilities/openSUSE_12.2/
 
OP
U

uwel

Newbie
Hallo Trekkie00,

wenn ich die Anwendung Synergy richtig verstehe, ohne sie installiert und ausprobiert zu haben, dann benötige ich für jeden PC auch einen Bildschirm. Beim Switch habe ich aber nur einen Bildschirm für beide Rechner und ebenso nur eine Tastatur. Nur zwei Mäuse sind mir geblieben, da insbesondere Windows die Maus nach dem hin- und herswitchen nicht mehr findet. Daher funktioniert es mit zwei Mäusen besser.

Insofern ist Synergy keine Alternative.

Trotzdem Danke

Uwe
 
OP
U

uwel

Newbie
Keiner eine Idee?

Um das ganze etwas einzugrenzen: Es hat früher unter 11.2 funktioniert, somit muss etwas geändert worden sein.

Wenn ich den Bildschirm direkt am Rechner angeschlossen habe, habe ich die korrekte Auflösung. Klemme ich den Bildschirm anschließend auf den Switch um, bleibt die Auflösung erhalten, ich kann Sie aber nicht aktiv auf eine hohe Auflösung (über Systemeinstellungen/Anzeige) einstellen. Gleiches passiert, wenn ich mich jetzt ab- und wieder anmelde. Ich habe nur eine Auflösung von 640*480.

Starte ich den Rechner mit einem über den Switch angeschlossenen Bildschirm, startet das Anmeldemenü mit der geringen Auflösung 640*480. Klemme ich den Bildschirm jetzt um und melde mich an, bleibt diese Auflösung zwar erhalten, ich kann aber über Systemeinstellungen/Anzeige eine hohe Auflösung wählen.

Suse 12.2 muss also mindestens beim Hochfahren und anschließend bei der Anmeldung die Bildschirmeinstellungen bzw. Monitordaten abfragen. Wenn ich jetzt weiß, wo das passiert und ob ich diese Abfrage umgehen und durch voreingestellte Werte ersetzen kann, sollte das Problem gelöst werden können. Um dies herauszufinden, reichen meine Kenntnisse leider nicht aus.

Uwe
 
A

Anonymous

Gast
Hatte hier gleich gelagertes Problem unter 12.2 mit ATI und einem 16 Port KVM am VGA-Ausgang. Der Monitor sollte wie alle anderen Rechner an diesem Konsol-Switch mit 1280x1024@75Hz und 24bit Farbtiefe betrieben werden.
Allerdings Pustekuchen. Es wurde ein default Monitor gesehen, und dieser nur mit maximal 1024x768@75Hz angesteuert.
Code:
# hwinfo --monitor
37: None 00.0: 10000 Monitor                                    
  [Created at monitor.95]
  Unique ID: rdCR.IAXagWAf5O6
  Hardware Class: monitor
  Model: "Smart Cable"
  Vendor: AVO 
  Device: eisa 0x0000 "Smart Cable"
  Resolution: 720x400@70Hz
  Resolution: 640x480@60Hz
  Resolution: 640x480@72Hz
  Resolution: 640x480@75Hz
  Resolution: 800x600@56Hz
  Resolution: 800x600@60Hz
  Resolution: 800x600@72Hz
  Resolution: 800x600@75Hz
  Resolution: 1024x768@60Hz
  Resolution: 1024x768@70Hz
  Resolution: 1024x768@75Hz
  Size: 304x228 mm
  Detailed Timings #0:
     Resolution: 1024x768
     Horizontal: 1024 1040 1136 1312 (+16 +112 +288) +hsync
       Vertical:  768  769  772  800 (+1 +4 +32) +vsync
    Frequencies: 78.75 MHz, 60.02 kHz, 75.03 Hz
  Driver Info #0:
    Max. Resolution: 1024x768
    Vert. Sync Range: 56-75 Hz
    Hor. Sync Range: 24-61 kHz
    Bandwidth: 78 MHz
  Config Status: cfg=no, avail=yes, need=no, active=unknown
Ohne Switch dazwischen wurde der Monitor richtig erkannt. Verhalten wie oben auch beschrieben.
Das Einstellen im Bootloader brachte zwar entsprechende Framebufferauflösung für den Startvorgang und die Konsolen aber sobald der X-Server gestartet ist, war wieder maximal 1024x768 angesagt. Sax2 gibts nicht mehr, Sax3 kannste vergessen und alles andere ging auch nicht, die Lösung war dann ziemliche Handarbeit und bestand in der Erstellung einer eigenen speziellen /etc/X11/xorg.conf . Die Tatsache das die Karte gleich mal 3 Ausgange (HDMI-0, HDMI-1 und VGA-0) hat, machte es nicht einfacher.

Das erste ist das erstellen einer xorg.conf Vorlage. Das geht nur wenn der X-Server nicht gestartet ist, also erst einmal in Runlevel 3
dort dann ausführen.
Code:
Xorg -configure
unter /root/xorg.conf.new ist dann eine solche Vorlage zu finden.
Leider hatte diese nur dummy Einträge für den Monitor, auch ein Erstellen dieser ohne Konsolswitch brachte leider keine gültigen Einträge für den Monitor sondern auch nur Dummys. Hilfreich könnte eine alte xorg.conf aus einem System 10.x oder frühem 11.x sein am selben Monitor sein. Entsprechende Abschnitte kann man daraus verwenden und braucht sie nicht per Hand neu zu erstellen.

Die Interessanten Abschnitte sind in etwa folgende:
Code:
Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Monitor"
        Identifier   "Monitor1"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Monitor"
        Identifier   "Monitor2"
        VendorName   "Monitor Vendor"
        ModelName    "Monitor Model"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "NoAccel"                   # [<bool>]
        #Option     "SWcursor"                  # [<bool>]
        #Option     "Dac6Bit"                   # [<bool>]
...
        # jede Menge von weiteren auskommentierten Einträgen welche für mögliche Optionen der Grafikkarte stehen
...
        #Option     "NewPLL"                    # [<bool>]
        #Option     "ZaphodHeads"               # <str>
        Identifier  "Card0"
        Driver      "radeon"
        BusID       "PCI:0:1:0"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "ShadowFB"                  # [<bool>]
        #Option     "Rotate"                    # <str>
        #Option     "fbdev"                     # <str>
        #Option     "debug"                     # [<bool>]
        Identifier  "Card1"
        Driver      "fbdev"
        BusID       "PCI:0:1:0"
EndSection

Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
        #Option     "ShadowFB"                  # [<bool>]
        #Option     "DefaultRefresh"            # [<bool>]
        #Option     "ModeSetClearScreen"        # [<bool>]
        Identifier  "Card2"
        Driver      "vesa"
        BusID       "PCI:0:1:0"
EndSection

Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        SubSection "Display"
                Viewport   0 0
                Depth     1
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     4
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     8
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     15
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     16
        EndSubSection
        SubSection "Display"
                Viewport   0 0
                Depth     24
        EndSubSection
EndSection
sowie noch 2 weitere identische "Section Screen" Abschnitte jeweils für Card1 und Card2

Als erstes habe ich in der so erstellen xorg.conf.new den Abschnitt für den Monitor0 geändert.
Code:
Section "Monitor"
        Identifier   "Monitor0"
        VendorName   "LCD"
        ModelName    "1280X1024@75HZ"
        DisplaySize  305 230
        HorizSync    29-81
        Option       "PreferredMode" "1280x1024"
        VertRefresh  58-76
        UseModes     "Modes0"
EndSection
Der VendorName ist frei erfunden ebenso der ModelName, die Werte HorizSync und VerRefresh kann man aus dem Handbuch des Monitors oder aus einer eventuellen alten xorg.conf übernehmen. Die DisplaySize ist die Größe des Bildschirmes in mm (für die richtige Kalkulation von dpi und somit der Schriftgrößen von Vorteil). Option "PreferredMode" soll hier die bevorzugte Auflösung sein. UseModes verweist hier auf einen Abschnitt den es vorher in der xorg.conf.new nicht gab. In diesem Abschnitt werden die genauen Auflösungen beschrieben, die der Monitor beherrscht.

Dieser Abschnitt wurde neu erstellt und sieht so aus.
Code:
Section "Modes"
        Identifier   "Modes0"
        Modeline      "1280x1024" 138.54 1280 1336 1472 1728 1024 1025 1028 1069
        Modeline      "1280x960" 131.72 1280 1368 1504 1728 960 961 964 1003
        Modeline      "1280x960" 122.11 1280 1368 1504 1728 960 961 964 1000
        Modeline      "1280x960" 111.52 1280 1360 1496 1712 960 961 964 997
        Modeline      "1280x960" 102.10 1280 1360 1496 1712 960 961 964 994
        Modeline      "1280x800" 108.77 1280 1360 1496 1712 800 801 804 836
        Modeline      "1280x800" 100.78 1280 1360 1496 1712 800 801 804 833
        Modeline      "1280x800" 92.08 1280 1352 1488 1696 800 801 804 831
        Modeline      "1280x800" 83.46 1280 1344 1480 1680 800 801 804 828
        Modeline      "1152x864" 106.51 1152 1224 1352 1552 864 865 868 903
        Modeline      "1152x864" 97.69 1152 1224 1344 1536 864 865 868 900
        Modeline      "1152x864" 90.02 1152 1224 1344 1536 864 865 868 897
        Modeline      "1152x864" 81.62 1152 1216 1336 1520 864 865 868 895
        Modeline      "1280x768" 104.48 1280 1360 1496 1712 768 769 772 803
        Modeline      "1280x768" 95.88 1280 1352 1488 1696 768 769 772 800
Hier wurden jetzt eine Menge rausgeschnitten
        Modeline      "640x480" 31.13 640 664 728 816 480 481 484 502
        Modeline      "640x480" 28.83 640 664 728 816 480 481 484 500
        Modeline      "640x480" 26.60 640 664 728 816 480 481 484 499
        Modeline      "640x480" 23.86 640 656 720 800 480 481 484 497
EndSection
In diesem Abschnitt sind alle Auflösungen und die entsprechenden Frequenzen beschrieben die der Monitor unterstützt. Wer eine alte xorg.conf hat, kann sie dort entnehmen. Eine andere Quelle ist auch eventuell die /var/log/Xorg.0.log wenn man einen Rechner hat der auf diesem Monitor sauber arbeitet, oder wenn wie in diesem Fall der Rechner im Direktanschluss am Monitor sauber funktioniert . Im Zweifelsfall kann man die einzelnen Zeilen, (oder die Auflösungen die man gedenkt in Zukunft zu nutzen, Achtung manche Spiele wollen manchmal recht seltsame Auflösungen benutzen ) auch manuell mit Hilfe des Handbuchs vom Monitor erzeugen. Dazu sind die Auflösungen und die Frequenz notwendig.
der Befehl zum erstellen einer Modeline ist cvt und eine Befehls Zeile für "1280x1024 75Hz" sieht dann zb so aus.
Code:
 cvt 1280 1024 75
und liefert folgende Ausgabe
Code:
# 1280x1024 74.90 Hz (CVT 1.31M4) hsync: 80.30 kHz; pclk: 138.75 MHz
Modeline "1280x1024_75.00"  138.75  1280 1368 1504 1728  1024 1027 1034 1072 -hsync +vsync
die Modeline Zeile kann 1 zu 1 in der Konfiguration verwendet werden.

Als nächstes wird noch eine Zuweisung vorgenommen bei welcher Auflösung bei welcher Farbtiefe möglich ist. Hierbei ist weniger von Interesse was der Monitor kann sondern was die Grafikkarte beherrscht. bei sehr hohen Auflösungen und großer Farbtiefe reicht bei "kleinen" Grafikkarten der Speicher nicht. Das sollte beachtet werden, bei meiner Konfiguration ist das egal, ich kann bequem alle Farbtiefen bis 1280x1024 verwenden.
Wir ändern dazu die Sektion Screen0 in der Monitor0 und Card0 verknüpft sind.
Code:
Section "Screen"
        Identifier "Screen0"
        Device     "Card0"
        Monitor    "Monitor0"
        DefaultDepth 24
  SubSection "Display"
    Depth      15
    Modes      "1280x1024" "1280x960" "1280x800" "1152x864" "1280x768" "1280x720" "1024x768" "1280x600" "1024x600" "800x600" "768x576" "640x480" 
  EndSubSection
  SubSection "Display"
    Depth      16
    Modes      "1280x1024" "1280x960" "1280x800" "1152x864" "1280x768" "1280x720" "1024x768" "1280x600" "1024x600" "800x600" "768x576" "640x480" 
  EndSubSection
  SubSection "Display"
    Depth      24
    Modes      "1280x1024" "1280x960" "1280x800" "1152x864" "1280x768" "1280x720" "1024x768" "1280x600" "1024x600" "800x600" "768x576" "640x480" 
  EndSubSection
  SubSection "Display"
    Depth      8
    Modes      "1280x1024" "1280x960" "1280x800" "1152x864" "1280x768" "1280x720" "1024x768" "1280x600" "1024x600" "800x600" "768x576" "640x480" 
  EndSubSection
EndSection
die default Farbtiefe wird hier gleich mit DefaultDepth angegeben,( irgendwie habe ich unter KDE nichts richtiges gefunden wie die Farbtiefe im laufenden Betrieb zu ändern wäre).

Da die ATI Karte jetzt aber noch mehrere Ausgänge hat, müss ich noch festlegen an welchem Ausgang sich der soeben konfigurierte Monitor0 befindet. Dazu benötigen wir den genauen Namen wie Xorg die einzelnen Schnittstellen bezeichnet. (kann man aus der /var/log/Xorg.0.log oder aus den Konfigurationstools von KDE ablesen, auch xrandr ist eventuell möglich) Den Anschluss den ich verwende nennt sich "VGA-0"

Zur Verknüpfung Ausgang "VGA-0" mit dem "Monitor0" wird im Abschnitt "Section Device" wo bei mir der radeon Treiber steht, eine Optionszeile hinzugefügt, der entsprechende Abschnitt sieht dann folgend aus.

Code:
Section "Device"
        ### Available Driver options are:-
        ### Values: <i>: integer, <f>: float, <bool>: "True"/"False",
        ### <string>: "String", <freq>: "<f> Hz/kHz/MHz",
        ### <percent>: "<f>%"
        ### [arg]: arg optional
hier stehen die vielen ausdokumentierten Optionen des Treibers       
        Option      "Monitor-VGA-0"             "Monitor0"
        Identifier  "Card0"
        Driver      "radeon"
        BusID       "PCI:0:1:0"
EndSection

Damit sollte die Konfiguration fertig sein. Die Datei wird als /etc/X11/xorg.conf gespeichert und beim nächstem Start von Xorg verwendet.
Danach sollte unbedingt die /var/log/Xorg.0.log kontrolliert werden ob es irgendwelche Probleme gab. Auch für eine Fehlersuche und eine Kontrolle ob es wirklich richtig funktioniert hat ist diese Datei dann der allererste Anlaufpunkt. Im groben Fehlerfall einfach die /etc/X11/xorg.conf löschen oder umbenennen.

In meinem Fall hat es prima funktioniert und der Rechner startet im gewünschten Modus, das Bild ist zentriert die Schrift klar und scharf und Kreise sehen sehr schön rund aus. Einige niedrigere Auflösungen funktionieren auch prächtig, also Operation gelungen.
xrandr zeigt mir jetzt auch einen Überblick über die möglichen Auflösungen und Frequenzen dazu.
Code:
xrandr
Screen 0: minimum 320 x 200, current 1280 x 1024, maximum 8192 x 8192
HDMI-0 disconnected (normal left inverted right x axis y axis)
HDMI-1 disconnected (normal left inverted right x axis y axis)
VGA-0 connected 1280x1024+0+0 (normal left inverted right x axis y axis) 304mm x 228mm
   1280x1024      75.0*+
   1024x768       75.0 +   76.0     75.1     70.7     70.1     65.3     60.0     60.0  
   1280x960       76.0     70.7     65.3     60.0  
   1280x800       76.0     70.7     65.3     60.0  
   1152x864       76.0     70.7     65.3     60.0  
   1280x768       76.0     70.7     65.3     60.0  
   1280x720       76.0     70.7     65.3     60.0  
   1280x600       76.0     70.7     65.3     60.0  
   1024x600       76.0     70.7     65.3     60.0  
   800x600        76.0     72.2     75.0     70.7     65.3     60.3     60.0  
   768x576        76.0     70.7     65.3     60.0  
   640x480        72.8     75.0     76.0     70.7     65.3     60.0     60.0  
   720x400        70.1

Wer es jetzt ganz genau braucht, kann alle Modi ausprobieren, und sollte einer gar nicht gehen, dann aus der xorg.conf rausschmeißen, oder probieren den einen oder anderen noch leicht zu korrigieren. (zB. mit xvidtune aber mit aller äußerster Vorsicht) Hier in dem Fall stammen die Monitor Daten aus einem anderem Rechner der schon seit Jahren an diesem Switch und an diesem Monitor hängt, die Konfiguration war dort ursprünglich mal mit sax2 erstellt worden. Ich habe dort noch keinen Modi gebraucht der nicht funktioniert hat, außerdem ist das ja nicht der erste Rechner der ich so eine Handgemachte xorg.conf verpassen musste. Die Konfigurationsdaten des Monitor sind somit auf allen Rechnern gleich und also lasse ich das auf diesem Rechner jetzt so wie es ist, obwohl wie die Ausgabe von xrandr zeigt, wohl einiges nicht so ganz optimal zu passen scheint.
Dass ganze Verfahren und die einzelnen Einträge werden sicherlich bei jedem etwas anders sein und eine solcherart manuell erstellte Konfigurationsdatei sicherlich auch nicht immer gleich auf Anhieb richtig funktionieren, aber vielleicht hilft dem einen oder anderem doch diese Dokumentation. ;)

robi
 
OP
U

uwel

Newbie
Hallo robi,

besten dank für diese mehr als umfangreiche Antwort.

Das sieht jetzt ganz danach aus, als ob ich eine alte Suse Version installieren werde um eine alte xorg.conf zu erzeugen. Ohne deren Inhalt traue ich mich nicht an diese Sache ran. Außerdem sieht die ganze Geschichte nach deutlich mehr Zeitaufwand aus als ursprünglich gedacht. Ich werde den Beitrag somit vorerst offen lassen und hoffentlich in absehbarer Zeit eine Erfolgsmeldung hineinschreiben können. Sollten zwischenzeitlich andere user das gleiche Problem haben und auf diese Weise zu lösen versuchen, wäre ein Beitrag über Erfolge oder Probleme sicher hilfreich. Nicht nur für mich, sondern auch für alle Nachahmer.

Uwe
 
Oben