Hallo, ich habe einen SuSE 9.0 Kernel, der laut config folgende fb Treiber enthaelt: ... CONFIG_FB_CYBER2000=m CONFIG_FB_VESA=y CONFIG_FB_VGA16=m CONFIG_FB_HGA=m CONFIG_VIDEO_SELECT=y CONFIG_FB_MATROX=m CONFIG_FB_MATROX_MILLENIUM=y CONFIG_FB_MATROX_MYSTIQUE=y CONFIG_FB_MATROX_G450=y CONFIG_FB_MATROX_G100=y CONFIG_FB_MATROX_I2C=m CONFIG_FB_MATROX_MAVEN=m CONFIG_FB_MATROX_PROC=m CONFIG_FB_MATROX_MULTIHEAD=y ... Beim Booten wird der vesa Treiber verwendet, zumindest entnehme ich das folgenden Meldungen im Startprotokoll: ... <6>vesafb: framebuffer at 0xf8000000, mapped to 0xf881b000, size 32768k <6>vesafb: mode is 1280x1024x16, linelength=2560, pages=5 ... <4>Console: switching to colour frame buffer device 148x51 <6>fb0: VESA VGA frame buffer device ... Da ich eine Matrox G450 Graphikkarte habe, sollte wohl eher der matrox Treiber -- matroxfb -- verwendet werden. Hier meine Fragen: Darf ich den oben angegebenen Eintraegen der config Datei entnehmen, dass der Treiber matroxfb Bestandteil meines Kernels ist? Wie erreiche ich, dass der matrox Treiber statt des vesa Treibers verwendet wird? Vielen Dank im voraus, mit freundlichen Gruessen Andreas Schenk
Hallo, Am Fri, 25 Mar 2005, Andreas Schenk schrieb:
Darf ich den oben angegebenen Eintraegen der config Datei entnehmen, dass der Treiber matroxfb Bestandteil meines Kernels ist?
Ja.
Wie erreiche ich, dass der matrox Treiber statt des vesa Treibers verwendet wird?
Statt dem 'vga' Kernelparameter nimm: video=matrox:vesa:<MODUS> Fuer <MODUS> siehe /usr/src/linux/Documentation/fb/matroxfb.txt, z.B fuer 1024x768 / 24bit: video=matrox:vesa:440 Du musst aber auch noch das Modul (matroxfb?) in die initrd aufnehmen, also in /etc/sysconfig/kernel in INITRD_MODULES eintragen und die initrd neu erstellen. -dnh -- For every complex problem, there is a solution that is simple, neat, and wrong. -- H. L. Mencken
Hallo, Am Freitag, 25. März 2005 21:24 schrieb David Haller:
Am Fri, 25 Mar 2005, Andreas Schenk schrieb: [...] Statt dem 'vga' Kernelparameter nimm:
video=matrox:vesa:<MODUS>
Fuer <MODUS> siehe /usr/src/linux/Documentation/fb/matroxfb.txt, z.B fuer 1024x768 / 24bit: video=matrox:vesa:440
Hab ich getan, nun wird gar kein fb Treiber mehr geladen. Liegt vielleicht am Problem weiter unten.
Du musst aber auch noch das Modul (matroxfb?) in die initrd aufnehmen, also in /etc/sysconfig/kernel in INITRD_MODULES eintragen und die initrd neu erstellen.
Was trage ich hier ein? Versucht (via YaST2) habe ich aus alt 'reiserfs' neu 'reiserfs matroxfb' gemacht. Ich hoffe, dass initrd durch Verwenden von YaST2 neu erstellt wurde. (Wie pruefe ich das?) Da kein fb Treiber mehr geladen wurde, habe ich den alten Wert zurueckgesetzt und FB_MODULES auf den Vorschlag von SuSE gesetzt: matroxfb_base vesa=0x182 fv=85 matroxfb_maven matroxfb_crtc2 Leider weiss ich nicht, was hier einzutragen waere. Beim Sichern kommt dann ein Popup mit der Fehlermeldung "der Dienst kbd konnte nicht gestartet werden". Der Eintrag fuer FB_MODULES wird aber uebernommen. Auch damit wird kein fb Treiber geladen. Was nun? Zur Info: modprobe -l liefert: ... /lib/modules/2.4.21-273-smp4G/kernel/drivers/video/matrox/matroxfb_DAC1064.o /lib/modules/2.4.21-273-smp4G/kernel/drivers/video/matrox/matroxfb_Ti3026.o /lib/modules/2.4.21-273-smp4G/kernel/drivers/video/matrox/matroxfb_accel.o /lib/modules/2.4.21-273-smp4G/kernel/drivers/video/matrox/matroxfb_base.o /lib/modules/2.4.21-273-smp4G/kernel/drivers/video/matrox/matroxfb_crtc2.o /lib/modules/2.4.21-273-smp4G/kernel/drivers/video/matrox/matroxfb_g450.o /lib/modules/2.4.21-273-smp4G/kernel/drivers/video/matrox/matroxfb_maven.o /lib/modules/2.4.21-273-smp4G/kernel/drivers/video/matrox/matroxfb_misc.o /lib/modules/2.4.21-273-smp4G/kernel/drivers/video/matrox/matroxfb_proc.o ... Meine Graphikkarte ist eine G450. Mit freundlichen Gruessen Andreas Schenk
Am Samstag, 26. März 2005 00:08 schrieb Andreas Schenk:
Was trage ich hier ein? Versucht (via YaST2) habe ich
aus alt 'reiserfs' neu 'reiserfs matroxfb' gemacht.
Ich hoffe, dass initrd durch Verwenden von YaST2 neu erstellt wurde.
Starte einfach mal manuell 'mkinitrd' (Konsole als root), dann kannst Du sicher sein, dass es mit aufgenommen wird. -- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Erst mal vielen Dank an David und Manfred. Mein Rechner tut leider noch immer nicht das beabsichtigte. Hier ein Zwischenstand: (1) Unter INITRD_MODULES habe ich die Module matrixfb_g450 und matroxfb_crtc2 eingetragen. (2) Skript mk_initrd ausgefuehrt. (3) Als Kernelparameter habe ich (nach Konsultation der Doku) die beiden Versionen video=matrox:vesa:0x1FF bzw. video=vga:off video=vesa:off video=matrox:vesa:0x1FF ausprobiert. Mit (1) und (2) sowie beiden Versionen von (3) wird matroxfb geladen, zeigt aber keine Wirkung. Laut Protokoll sind auch die beiden Devices fb0 und fb1 "registriert". Ohne (1-3) wurde vesafb geladen, und zwar laut Protokoll frueher als nun matroxfb. veasfb hat auch ordentlich auf Aendern der Kernelparameter vga=xxx reagiert. matroxfb kommt aber scheinbar zu spaet. Das Laden sehe ich naemlich schon am Bildschirm (protokolliert), und der arbeitet zu diesem Zeitpunkt schon mit einer Einstellung, die nichts mit (3) zu tun haben kann, da matroxfb ja da noch gar nicht geladen ist... Nach dem Laden "springt" der Bildschirm zwar kurz, die Einstellungen aendern sich aber nicht. Mit freundlichen Gruessen Andreas Schenk
Hallo, Am Sat, 26 Mar 2005, Andreas Schenk schrieb:
Erst mal vielen Dank an David und Manfred. Mein Rechner tut leider noch immer nicht das beabsichtigte. Hier ein Zwischenstand:
(1) Unter INITRD_MODULES habe ich die Module matrixfb_g450 und matroxfb_crtc2 eingetragen. (2) Skript mk_initrd ausgefuehrt. (3) Als Kernelparameter habe ich (nach Konsultation der Doku) die beiden Versionen
video=matrox:vesa:0x1FF
Gib hier den Wert lieber dezimal an, also video=matrox:vesa:511 -dnh --
Make a software that is foolproof, and someone will make a better fool. Make a software that is foolproof, and only fools will want to use it. Since software cannot be foolproof, we should get rid of the the fools. A common mistake that people make, when trying to design something completely foolproof is to underestimate the ingenuity of complete fools. Douglas Adams - Mostly Harmless
Hallo, Am Samstag, 26. März 2005 19:11 schrieb David Haller:
Am Sat, 26 Mar 2005, Andreas Schenk schrieb:
Erst mal vielen Dank an David und Manfred. Mein Rechner tut leider noch immer nicht das beabsichtigte. Hier ein Zwischenstand:
(1) Unter INITRD_MODULES habe ich die Module matrixfb_g450 und matroxfb_crtc2 eingetragen. (2) Skript mk_initrd ausgefuehrt. (3) Als Kernelparameter habe ich (nach Konsultation der Doku) die beiden Versionen
video=matrox:vesa:0x1FF
Gib hier den Wert lieber dezimal an, also video=matrox:vesa:511
Hab ich probiert, sowie weitere in der Doku angegebene Versionen, alles ohne Erfolg. Dennoch scheint sich der Kreis langsam zu schliessen, d.h. wir scheinen zu meinen eigentlichen -- im Thread "Konsole ist schwarz bzw. schwarzer Bildschirm beim Herunterfahren" beschriebenen Problem zu kommen: Ich habe naemlich ein paar mal die boot option 3 verwendet. Sodann habe ich das Kommando fbset -fb /dev/fb0 -xres <x> -yres <y> -depth <d> ausprobiert, fuer die Werte <d> = 8 und = 24, sowie fuer mehrere Kombinationen fuer <x> und <y>. Nur <x> = 640 und <y> = 400 hat funktioniert! Bei den Kombinationen 768x576, 800x600, 960x720, 1280x1014 und 1600x1200 bleib der Schirm schwarz und ein Popup mit Signalfehler und Angaben zu den Frequenzen fD, fH und fV wurde vom Monitor angezeigt. Das ist sehr aehnlich dem im anderen Thread beschriebenen Verhalten. Dennoch sollten sowohl Monitor als auch Graphikkarte mit diesen Werten klar kommen. Mit freundlichen Gruessen Andreas Schenk
Hallo, Am Thu, 31 Mar 2005, Andreas Schenk schrieb:
Am Samstag, 26. März 2005 19:11 schrieb David Haller: [..] Hab ich probiert, sowie weitere in der Doku angegebene Versionen, alles ohne Erfolg. Dennoch scheint sich der Kreis langsam zu schliessen, d.h. wir scheinen zu meinen eigentlichen -- im Thread "Konsole ist schwarz bzw. schwarzer Bildschirm beim Herunterfahren" beschriebenen Problem zu kommen: Ich habe naemlich ein paar mal die boot option 3 verwendet. Sodann habe ich das Kommando
fbset -fb /dev/fb0 -xres <x> -yres <y> -depth <d>
ausprobiert, fuer die Werte <d> = 8 und = 24, sowie fuer mehrere Kombinationen fuer <x> und <y>. Nur <x> = 640 und <y> = 400 hat funktioniert! Bei den Kombinationen
768x576, 800x600, 960x720, 1280x1014 und 1600x1200
Hm. Bei 800x600 wundert's mich, beim Rest weniger.
bleib der Schirm schwarz und ein Popup mit Signalfehler und Angaben zu den Frequenzen fD, fH und fV wurde vom Monitor angezeigt.
Zeigt dein Monitor zufaellig die Frequenz(en) an, wenn er tut (ich hab da nen extra Eintrag im OSD)... Dann koenntest du mal schauen, was der mag. Und dann schau mal in /etc/fb.modes ob du passende Modi findest. Oder du schaust dir die Werte von X-Modi (sofern du welche in deiner x.org.conf oder XF86Config hast) an und rechnest die Pixelclock (MHz) in picosekunden um. Z.B.: 36.00 MHz "pixeltakt" = 36.00 Mpixel/s = 36.00 pixel/ms = 1/36.00 ms/pixel = 0.2777777 ms/pixel = 27778 ps/pixel 143.62 MHz "pixeltakt" = 143.62 Mpixel/s = 143.62 pixel/ms = 1/143.62 ms/pixel = 0.0069628 ms/pixel = 6963 ps/pixel Wenn du weitere funktionierende Modes findest kannst du die dem matroxfb mittels xres: yres: pixclock: usw. mitteilen (ganz aehnlich zu fbset). Evtl. ist's aber auch einfacher, du verwendest 'maxclk:', 'fh:' und 'fv:' Siehe /usr/src/linux/Documentation/fb/matroxfb.txt (hast du da die Anmerkungen zur g450 gelesen?) HTH, -dnh -- "I think there is a world market for maybe five computers." -- Thomas Watson, chairman of IBM, 1943.
Hallo, Am Donnerstag, 31. März 2005 02:26 schrieb David Haller:
Am Thu, 31 Mar 2005, Andreas Schenk schrieb:
Am Samstag, 26. März 2005 19:11 schrieb David Haller:
[...]
Zeigt dein Monitor zufaellig die Frequenz(en) an, wenn er tut (ich
Beim Aufruf (via boot option 3) fbset -fb /dev/fb0 -t 25000 88 40 23 1 128 4 ist der Monitor dunkel und im Popup zum Signalfehler zeigt der Monitor an: fD: 40,0 MHz (blau) fH: 44,6 kHz (blau) fV: 87,9 Hz (rot blinkend) Die timings habe ich aus /etc/fb.modes. Dort steht aber: mode "800x600-60" # D: 40.00 MHz, H: 37.879 kHz, V: 60.32 Hz geometry 800 600 800 600 8 timings 25000 88 40 23 1 128 4 hsync high vsync high endmode Einer muss doch hier luegen, oder? Bei der Gelegenheit: Mein Monitor ist ein EIZO FlexScan L985EX mit folgenden Daten Horizontal Scan Freq. Digital: 31 - 76 kHz Vertical Scan Freq. Digital: 59-61 Hz Dot Clock (max.) Digital 162 MHz Der oben angegebene Mode sollte also eigentlich passen. Bei der Gelegenheit: Bei anderen Versuchen mit fbset blinkt der Monitor zwischen schwarz und sehr dunkel (fast schwarz), es erscheint aber kein Popup und der Monitor piept, die Statusleuchte bleibt blau. (Dieses Verhalten ist uebrigends im Kapitel Fehlerbeseitigung nicht behandelt...)
hab da nen extra Eintrag im OSD)... Dann koenntest du mal schauen, was der mag. Und dann schau mal in /etc/fb.modes ob du passende Modi
s.o.
findest. Oder du schaust dir die Werte von X-Modi (sofern du welche in deiner x.org.conf oder XF86Config hast) an und rechnest die
x.org.conf habe ich nicht. In /etc/X11/XF86Config sind folgende Modelines aufgefuehrt: Section "Modes" Identifier "Modes[0]" Modeline "1600x1200" 158.15 1600 1704 1880 2160 1200 1201 1204 1241 Modeline "1280x1024" 106.97 1280 1360 1496 1712 1024 1025 1028 1059 Modeline "1600x1200" 158.15 1600 1704 1880 2160 1200 1201 1204 1241 Modeline "1280x1024" 106.97 1280 1360 1496 1712 1024 1025 1028 1059 EndSection
Pixelclock (MHz) in picosekunden um. Z.B.:
[...]
Wenn du weitere funktionierende Modes findest kannst du die dem matroxfb mittels xres: yres: pixclock: usw. mitteilen (ganz aehnlich zu fbset).
Habe folgendes probiert, aus den modelines ausgerechnet: fbset -fb /dev/fb0 -xres 1600 -yres 1200 -depth 24 -left 280 -right 104 -hslen 176 -upper 37 -lower 1 -vslen 3 analog fuer 1280x1024 und analog zu den timings aus /etc/fb.modes zu 1600x1200-60. In diesen Faellen blinkt der Monitor zwischen schwarz und fast schwarz (s.o.). Letzteres passt aber auch haarscharf nicht mehr, wenn ich die Angaben glauben darf: mode "1600x1200-60" # D: 156.00 MHz, H: 76.200 kHz, V: 60.00 Hz geometry 1600 1200 1600 1200 8 timings 6411 256 32 52 10 160 8 endmode H ist um 0,200 kHz zu hoch. Da hier kein Popup kommt, weiss ich leider nicht wirklich, was dem Monitor nicht passt, vgl. oben.
Evtl. ist's aber auch einfacher, du verwendest 'maxclk:', 'fh:' und 'fv:'
???
Siehe /usr/src/linux/Documentation/fb/matroxfb.txt (hast du da die Anmerkungen zur g450 gelesen?)
Ja, ich bin der Meinung es ist alles o.k.: Wenn ich meine Hardwareinfo richtig lese, habe ich 32MByte RAM. Die beiden angegebenen Module werden laut Startprotokoll geladen und als /dev/fb0 (*_g450) und /dev/fb1 (*_crtc2) registriert. Ich habe aber nur einen Monitor an /dev/fb0 angeschlossen. Habe ich hier etwas uebersehen? Mit freundlichen Gruessen Andreas Schenk
Am Donnerstag, 31. März 2005 23:35 schrieb Andreas Schenk:
fbset -fb /dev/fb0 -t 25000 88 40 23 1 128 4 ^^ ist der Monitor dunkel und im Popup zum Signalfehler zeigt der Monitor an:
fD: 40,0 MHz (blau) fH: 44,6 kHz (blau) fV: 87,9 Hz (rot blinkend) ^^^^
Horizontal Scan Freq. Digital: 31 - 76 kHz Vertical Scan Freq. Digital: 59-61 Hz ^^^^^ liegst Du damit nicht irgendwie weit über dem erlaubten?
-- Machs gut | http://www.iivs.de/schwinde/buerger/tremmel/ | http://packman.links2linux.de/ Manfred | http://www.knightsoft-net.de
Am Freitag, 1. April 2005 20:12 schrieb Manfred Tremmel:
Am Donnerstag, 31. März 2005 23:35 schrieb Andreas Schenk:
fbset -fb /dev/fb0 -t 25000 88 40 23 1 128 4
^^
ist der Monitor dunkel und im Popup zum Signalfehler zeigt der Monitor an:
fD: 40,0 MHz (blau) fH: 44,6 kHz (blau) fV: 87,9 Hz (rot blinkend)
^^^^
Horizontal Scan Freq. Digital: 31 - 76 kHz Vertical Scan Freq. Digital: 59-61 Hz
^^^^^ liegst Du damit nicht irgendwie weit über dem erlaubten?
Ist mir schon klar, aber warum, bzw. welches ist das richtige timing? Wie angegeben steht in /etc/fb.modes: mode "800x600-60" # D: 40.00 MHz, H: 37.879 kHz, V: 60.32 Hz geometry 800 600 800 600 8 timings 25000 88 40 23 1 128 4 hsync high vsync high endmode Wenn ich den Werten in der Kommentarzeile glauben darf und sie richtig interpretiere, dann sollte dieser Mode exakt passen!? Was also ist falsch: die Kommentarzeile, die timings, mein Verstaendnis der Dinge, ... Die Angaben meines Monitors und der Kommentarzeile stimmen nur fuer D ueberein, fuer H weichen sie um 10% voneinander ab, fuer V um fast 50%... Mit freundlichen Gruessen Andreas Schenk
Hallo, ich aendere mal den Betreff, da der Treiber matroxfb ja nun installiert ist. Ich kann ihn bislang allerdings nur mit 640x400 nutzen, obwohl ich einen 1600x1200 Monitor habe. Die Problembeschreibung kann dem urspruenglichen Thread entnommen werden. Mein derzeitiges Verstaendniss ist, dass nun die timings irgendwie falsch sind. Ich moechte hier nur eins hinzufuegen: Unter X laeuft mein Monitor mit 1600x1200 @ 75KHz 60Hz -- das sagt jedenfalls sax beim Test der Konfiguration. Dabei arbeite ich jedoch nicht(!) mit dem FBDev. Wenn ich mit Hilfe von sax die FBDev Option waehle, schlaegt der Test mit sax fehl. Auch hier wird vom Monitor ein Signalfehler mit einem Wert fuer fV angezeigt, der ausserhalb der vom Monitor erlaubten Grenzen liegt. Nehme ich die FBDev Option ohne jede weitere Aenderung wieder heraus, ist der Test erneut erfolgreich. Mit freundlichen Gruessen Andreas Schenk
Hallo, ich moechte hier die Ergebnisse meiner bisherigen Versuche zusammenfassen. Sie sind unbefriedigend und deuten nach allem, was ich davon verstehe, auf einen Fehler hin. Vielleicht ist mein Verstaendniss aber auch falsch. (1) Ich habe die Matrox FB-Treiber nun wieder aus INITRD_MODULES entfernt (und mk_initrd ausgefuehrt). (2) Sodann habe ich FB_MODULES auf "matroxfb_g450 matroxfb_crtc2" sowie FBSET_PARAMS auf "1024x768-60" gesetzt. "Das funktioniert." (sysconfig fuer Console, Framebuffer) (3) Die Framebuffer Timings verstehe ich nicht. Ich kann nun in der Console fbset -fb /dev/fb0 600x480-60 fbset -fb /dev/fb0 800x600-60 fbset -fb /dev/fb0 1024x768-60 ausfuehren, dass funktioniert. (Siehe auch (2)). (4) Nun kommt aber das Problem / der Fehler: Ich habe in /etc/fb.modes drei Modes zur Geometrie 1600x1200. Die angegebenen Frequenzen sind folgende: mode "1600x1200-60" # D: 156.00 MHz, H: 76.200 kHz, V: 60.00 Hz ... mode "1600x1200-66" # D: 172.00 MHz, H: 82.700 kHz, V: 66.00 Hz ... mode "1600x1200-76" # D: 198.00 MHz, H: 95.200 kHz, V: 76.00 Hz ... Wenn ich nun fbset mit diesen drei Modes wie oben ausfuehre, beschwert sich mein Monitor mit Signalfehler ueber die Frequenzen. Es gibt dabei folgende Rueckmeldung: 1600x1200-60: fD: 133,3 MHz (schwarz, also wohl akzeptiert) fH: 65,0 kHz (schwarz, also wohl akzeptiert) fV: 51,1 Hz (rot blinkend, also wohl nicht akzeptiert) 1600x1200-66: fD: 144,7 MHz (schwarz, also wohl akzeptiert) fH: 69,5 kHz (schwarz, also wohl akzeptiert) fV: 55,5 Hz (rot blinkend, also wohl nicht akzeptiert) 1600x1200-76: fD: 165,0 MHz (rot blinkend, also wohl nicht akzeptiert) fH: 79,3 kHz (rot blinkend, also wohl nicht akzeptiert) fV: 63,4 Hz (schwarz, also wohl akzeptiert) Nochmal zum Vergleich: Mein Monitor hat folgende Daten: Horizontal Scan Freq. Digital: 31 - 76 kHz Vertical Scan Freq. Digital: 59-61 Hz Dot Clock (max.) Digital 162 MHz Klar, dass mein Monitor sich beschwert. Das Problem ist vielmehr, dass die in fb.modes angegebenen Werte von denen, die mein Monitor angibt, sehr stark abweichen. Wenn ich die in den Modes angegebenen Frequenzen aber aus den Timings ausrechne, wie in der Manual-Page angegeben, so scheinen die Angaben in fb.modes korrekt. Wie kommt diese Diskrepanz zustande? Mit freundlichen Gruessen Andreas Schenk
participants (3)
-
Andreas Schenk
-
David Haller
-
Manfred Tremmel