Meine unter SuSE 6.1 mit SaX erzeugten (auch mit den anderen Config-Tools komme ich zum gleichen Ergebnis)
        Modelines in der XF86Config sind falsch! X.err meldet "valid modelines". Wer erklärt mir auf DEUTSCH (bitte keine verweise
        auf irrsinnslange englische Texte) wie ich "richtige" Modelines erzeuge, bzw. berechne und dann eintrage?
        Walter (Walter)
        
        Antwort:
        Hier eine kleine Einführung:
        als Beispiel dient ein VESA Modus, die eigentlich jede Karte können sollte.
        Auflösung: 640x480
        Bildrate: 72Hz
        Horizontalfrequenz: 37.9 kHz
        Pixelfrequenz (Dotclock): 31.5 MHz
        Eine Modeline hat folgende Felder
        Name
        Clock
        Horizontaltiming (4 Felder)
        Vertikaltiming (4 Felder)
        Flags (optional)
        Betrachten wir den 640x480 Modus. Erstes Feld der Modeline ist einfach. Damit der Modus leicht wiederzufinden ist, nennen wir ihn `640x480x72'
        Das Clockfeld gibt an welchen Basistakt der Grafikchip zur Erzeugung des Bildes verwenden soll. Vereinfacht gibt dieser Takt an, wie viele Pixel in der Sekunde insgesamt dargestellt werden. (Nicht alle diese Pixel sind Teil des sichtbaren Bildes) Nicht alle Grafikkarten verfügen über frei programmierbare Taktgeneratoren. Allerdings kann i.A. jede Grafikkarte bestimmte Standardfrequenzen produzieren.
        Es sollen 640*480 Pixel 72 mal in der Sekunde dargestellt werden.
        Erste Rechnung: 640*480*72 = 22.118.400 = 22.1 MHz
        Für diesen Modus ist also eine Pixelfrequenz von mindestens 22.1 MHz erforderlich. Ein Blick ins Handbuch, wahlweise ein X -probeonly, wahlweise ein geschicktes Raten, wahlweise Magie (Kristallkugel usw.) verraten uns, daß die verwendete Grafikkarte einen Clockchip verwendet, der eine Frequenz von 31.5 MHz produzieren kann. (Hier ist Raten nicht verkehrt, da 31.5 MHz ein VESA Std. sind)
        Für die sichtbaren Pixel benötigt der Modus 22.1 MHz. Wir wählen einen Modus mit 31.5 MHz, was passiert mit den restlichen 10 Mhz? Um die Frage zu beantworten muß man wissen, wie ein Monitor ein Bild darstellt. Ein Röhrenmonitor produziert ein Bild vergleichbar einem Fernseher mittels eines Elektronenstahls der Zeilenweise auf eine Mattscheibe gelenkt wird. Die Geschwindigkeit der Ablenkeinheit ist aber endlich. Es vergeht also nach jeder Zeile eine gewisse Zeit, bis der Strahl wieder auf der linken Seite angekommen ist, und am Ende jedes Bildaufbaus muß der Stahl von rechts unten wieder nach links oben gebracht werden. Während dieser Zeiten darf die Grafikkarte keine Bildinformationen sondern nur schwarze Pixel schicken. Damit alle Zeilen angenehm untereinander stehen, d.h. an der selben Stelle anfangen muß der Monitor sich synchronisieren für die Synchronisation am Anfang jeder Zeile und am Anfang jedes Bildes benötigt der Monitor erneut ein wenig Zeit. Auch während dieser Perioden darf die Grafikkarte kein
        Nun zurück zum Beispiel: Achtung! Die nun folgende Rechenmethode wird vermutlich einigen Leute die Haare zu Berge stehen lassen. Wer hier Verbesserungen kennt, die ohne technische Dokumentation und ohne E-Technik Studium auskommen möge mich korrigieren.
        Wir wollen 31.5 MHz verteilen:
        Rechnung für horizontale Auflösung:
        31500000 / (640*72) = 683.59
        Rechnung für vertikale Auflösung:
        31500000 / (480*72) = 911.45
        Wir könnten nun also 640*683*72 oder 911*480*72 verwenden, um die 31.5 MHz zu verbrauchen. Beides ist unbrauchbar, aber wir wissen nun die absoluten Obergrenzen. Gleichmäßiges verteilen bringt
        (640+911)/2 = 775.5
        (480+683)/2 = 581.5
        775*581*72 = 32419800 = 32.4 MHz
        fast richtig.
        Die Pixel die der Monitor zum synchronisieren hat sind nun
        Horizontal: 775 - 640 = 135 Pixel
        Das entspricht einer Zeit von
        135 / 31.5 = 4.2us (Mikrosekunden = 1/1.000.000s)
        Vertikal: 581 - 480 = 101 Zeilen
        Zeilenfrequenz = 581*72 = 41832 Zeilen pro Sekunde
        101 / 41832 = 2.41 mS (Millisekunden = 1/1.000s)
        Sinnvollerweise verteilt man die Synchronisationzeiten also eher so, daß der vertikale Zeitraum größer wird. (4 millionstel Sekunden sind einfach verflucht kurz)
        Basteln wir uns trotzdem nun eine erste Modeline mit den `berechneten' Werten:
        Name: 640x480x72
        Dotclock: 31.5
        Horz sichtbar: 640
      
Linux 15.058 Themen, 107.339 Beiträge
          Hier eine kleine Einführung:
          als Beispiel dient ein VESA Modus, die eigentlich jede Karte können sollte.
          Auflösung: 640x480
          Bildrate: 72Hz
          Horizontalfrequenz: 37.9 kHz
          Pixelfrequenz (Dotclock): 31.5 MHz
          Eine Modeline hat folgende Felder
          Name
          Clock
          Horizontaltiming (4 Felder)
          Vertikaltiming (4 Felder)
          Flags (optional)
          Betrachten wir den 640x480 Modus. Erstes Feld der Modeline ist einfach. Damit der Modus leicht wiederzufinden ist, nennen wir ihn `640x480x72'
          Das Clockfeld gibt an welchen Basistakt der Grafikchip zur Erzeugung des Bildes verwenden soll. Vereinfacht gibt dieser Takt an, wie viele Pixel in der Sekunde insgesamt dargestellt werden. (Nicht alle diese Pixel sind Teil des sichtbaren Bildes) Nicht alle Grafikkarten verfügen über frei programmierbare Taktgeneratoren. Allerdings kann i.A. jede Grafikkarte bestimmte Standardfrequenzen produzieren.
          Es sollen 640*480 Pixel 72 mal in der Sekunde dargestellt werden.
          Erste Rechnung: 640*480*72 = 22.118.400 = 22.1 MHz
          Für diesen Modus ist also eine Pixelfrequenz von mindestens 22.1 MHz erforderlich. Ein Blick ins Handbuch, wahlweise ein X -probeonly, wahlweise ein geschicktes Raten, wahlweise Magie (Kristallkugel usw.) verraten uns, daß die verwendete Grafikkarte einen Clockchip verwendet, der eine Frequenz von 31.5 MHz produzieren kann. (Hier ist Raten nicht verkehrt, da 31.5 MHz ein VESA Std. sind)
          Für die sichtbaren Pixel benötigt der Modus 22.1 MHz. Wir wählen einen Modus mit 31.5 MHz, was passiert mit den restlichen 10 Mhz? Um die Frage zu beantworten muß man wissen, wie ein Monitor ein Bild darstellt. Ein Röhrenmonitor produziert ein Bild vergleichbar einem Fernseher mittels eines Elektronenstahls der Zeilenweise auf eine Mattscheibe gelenkt wird. Die Geschwindigkeit der Ablenkeinheit ist aber endlich. Es vergeht also nach jeder Zeile eine gewisse Zeit, bis der Strahl wieder auf der linken Seite angekommen ist, und am Ende jedes Bildaufbaus muß der Stahl von rechts unten wieder nach links oben gebracht werden. Während dieser Zeiten darf die Grafikkarte keine Bildinformationen sondern nur schwarze Pixel schicken. Damit alle Zeilen angenehm untereinander stehen, d.h. an der selben Stelle anfangen muß der Monitor sich synchronisieren für die Synchronisation am Anfang jeder Zeile und am Anfang jedes Bildes benötigt der Monitor erneut ein wenig Zeit. Auch während dieser Perioden darf die Grafikkarte kein
          Nun zurück zum Beispiel: Achtung! Die nun folgende Rechenmethode wird vermutlich einigen Leute die Haare zu Berge stehen lassen. Wer hier Verbesserungen kennt, die ohne technische Dokumentation und ohne E-Technik Studium auskommen möge mich korrigieren.
          Wir wollen 31.5 MHz verteilen:
          Rechnung für horizontale Auflösung:
          31500000 / (640*72) = 683.59
          Rechnung für vertikale Auflösung:
          31500000 / (480*72) = 911.45
          Wir könnten nun also 640*683*72 oder 911*480*72 verwenden, um die 31.5 MHz zu verbrauchen. Beides ist unbrauchbar, aber wir wissen nun die absoluten Obergrenzen. Gleichmäßiges verteilen bringt
          (640+911)/2 = 775.5
          (480+683)/2 = 581.5
          775*581*72 = 32419800 = 32.4 MHz
          fast richtig.
          Die Pixel die der Monitor zum synchronisieren hat sind nun
          Horizontal: 775 - 640 = 135 Pixel
          Das entspricht einer Zeit von
          135 / 31.5 = 4.2us (Mikrosekunden = 1/1.000.000s)
          Vertikal: 581 - 480 = 101 Zeilen
          Zeilenfrequenz = 581*72 = 41832 Zeilen pro Sekunde
          101 / 41832 = 2.41 mS (Millisekunden = 1/1.000s)
          Sinnvollerweise verteilt man die Synchronisationzeiten also eher so, daß der vertikale Zeitraum größer wird. (4 millionstel Sekunden sind einfach verflucht kurz)
          Basteln wir uns trotzdem nun eine erste Modeline mit den `berechneten' Werten:
          Name: 640x480x72
          Dotclock: 31.5
          Horz sichtbar: 640
          Horz tatsächlich: 775
          Vert sichtbar: 480
          Vert tatsächlich: 581
          Fehlen noch jeweils zwei Angaben für horizontale und vertikale Synchronisation. Naiver Ansatz: Daumen mal Pi (genauer Ansatz siehe Modeline-Howto) also 650 und 740 horizontal und 500 550 vertikal.
          Ergibt folgende Modeline:
          640x480x72 31.5 640 650 740 775 480 500 550 581
          Eingetragen und getestet e
        
          hi
          man soll noch ca. 5 % für den rücklaufsignal dazurechnen
          also
          640*480*72*1,05 = 23.2 MHz
          grüß
          adam
          (adam)
        
