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

[gelöst] Konsole Framebuffer Einstellungen

Hallo,

beim Booten übergebe ich folgende Parameter:
Code:
vga=0x31A video=vesafb:xres:1280,yres:1024,depth:16,left:232,right:64,hslen:112,upper:38,lower:1,vslen:3,pixclock:9259
Die Timing-Parameter habe ich mir gemäß einer Anleitung aus dem Internet schön aus meiner modeline ausgerechnet. Die erwünschte Wiederholfrequenz wäre 60 Hz.

fbset (und die Info-Box auf'm Monitor) zeigen mir allerdings 75 Hz. Und das Bild ist etwas nach links verschoben, so dass der erste Buchstabe des Prompts fehlt.

Es scheint so, als würde die video-Zeile völlig ignoriert. Ich kann da sonst was reinschreiben, total Wurst. Nur die Änderung der vga-Zeile bewirkt was.

Die video-Zeile wäre aber sehr nützlich, da man da nun das Timing schön einstellen kann, so dass das Bild auch die richtige Größe und Position hat.

Irgendwelche Tips?

Danke und Grüße,

Zitronenquark
 

Zodiac

Newbie
Vielleicht ist bei Deiner Berechnung doch etwas schief gegangen, und die Parameter stimmen nicht 100%

Falls Du etwas anderes benutzt hast: hier eine Anleitung, wie Du aus einer funktionierenden XFree86 Installation die Parameter herausbekommst.
http://www.linuxjunkies.org/html/Framebuffer-HOWTO.html#s18

Dort wird beispielsweise nicht
Code:
video=vesafb...
angegeben, sondern
Code:
video=vesa...
[/url]
 
OP
Z

Zitronenquark

Newbie
Folgende Erkenntnisse habe ich mittlerweile erlangt.

Der Framebuffer wird aktiviert, wenn beim Booten der Parameter vga an den Kernel übergeben wird.
Code:
kernel /boot/vmlinuz root=/dev/hdb1 vga=0x31A resume=/dev/hdb2 splash=0 showopts
Ohne diesen Parameter gibt's nur normalen Textmodus, auch der Parameter video aktiviert diesen nicht.
Code:
kernel /boot/vmlinuz root=/dev/hdb1 resume=/dev/hdb2 splash=0 showopts video=vesa:xres:1280,yres:1024,depth:16,left:232,right:64,hslen:112,upper:38,lower:1,vslen:3,pixclock:9259
Schreibt man vga dazu, werden alle Variablen des video Parameters ignoriert. Aber der Framebuffer geht wieder.

Daher ist es auch Wurst, ob man vesa, vesafb oder nvidiafb schreibt, es ändert sich einfach nix.

Die Grafikkarte unterstützt auch den gewünschten vga Modus. Was aber auch egal ist, da man in die video Zeile auch totalen Blödsinn schreiben kann.

So, mein Bild in der Konsole ist nun immer noch nicht in der richtigen Position, es fehlt immer das erste Zeichen.
 
OP
Z

Zitronenquark

Newbie
So, wieder mal keinen Schritt weiter gekommen.

Ich entdeckte, dass es eine Datei /etc/fb.modes gibt.

Dort habe ich folgendes eingetragen:
Code:
mode "1280x1024-60"
    geometry 1280 1024 1280 1024 16
    timings 9259 232 64 38 1 112 3
    hsync high
    vsync high
endmode
Die /boot/grub/menu.lst habe ich wie folgt geändert:
Code:
title SUSE Linux 10.1 vesamode
    root (hd0,0)
    kernel /boot/vmlinuz root=/dev/hdb1 resume=/dev/hdb2 splash=0 showopts vga=0x31A video=vesa:mode:1280x1024-60
    initrd /boot/initrd

title SUSE Linux 10.1 vesafbmode
    root (hd0,0)
    kernel /boot/vmlinuz root=/dev/hdb1 resume=/dev/hdb2 splash=0 showopts vga=0x31A video=vesafb:mode:1280x1024-60
    initrd /boot/initrd

title SUSE Linux 10.1 vesa
    root (hd0,0)
    kernel /boot/vmlinuz root=/dev/hdb1 resume=/dev/hdb2 splash=0 showopts vga=0x31A video=vesa:1280x1024-60
    initrd /boot/initrd

title SUSE Linux 10.1 vesafb
    root (hd0,0)
    kernel /boot/vmlinuz root=/dev/hdb1 resume=/dev/hdb2 splash=0 showopts vga=0x31A video=vesafb:1280x1024-60
    initrd /boot/initrd
Ich habe mehrere Optionen kombiniert (vesa oder vesafb sowie mode oder eben kein mode), da ich im Internet mehrere Variationen fand. Was aber wieder mal egal ist, da sich absolut nichts ändert.

Die Ausgabe von fbset ist nämlich folgende:
Code:
mode "1280x1024-77"
    # D: 131.096 MHz, H: 80.328 kHz, V: 76.649 Hz
    geometry 1280 1024 1280 1024 16
    timings 7628 160 32 16 4 160 4
    rgba 5/11,6/5,5/0,0/0
endmode
Das Infofeld meines Monitors zeigt aber 64 kHz/60 Hz.

Außerdem existiert der Eintrag "1280x1024-77" gar nicht in der /etc/fb.modes!

Daraufhin habe ich die /etc/fb.modes und die /boot/grub/menu.lst nochmal geändert und "1280x1024-60" durch "1280x1024-77" ersetzt. Hat aber auch nix geholfen.

Die große Frage ist: Wo stehen denn nun die Parameter? Die Ausgabe von fbset stimmt nicht mit der Realität überein, sämtliche Änderungen werden ignoriert, man findet nichts im Internet dazu.

So langsam regt es mich auf! :x
 
OP
Z

Zitronenquark

Newbie
Sehr umständlich, aber jetzt geht's.

Es scheint so, dass man dem Vesa-Framebuffer keine Timing-Parameter übergeben kann.

Da ich eine Nvidia-Geforce2 Karte habe, könnte man auch den Nvidia-Framebuffer nutzen. Dies hatte ich schon versucht, hat aber leider nichts gebracht. Der Grund dafür war: nvidiafb war als Modul vorhanden. Es muss aber im Kernel einkompiliert sein, damit er beim Booten zur Verfügung steht.

Folgende Zeile ist wichtig in der .config
Code:
CONFIG_FB_NVIDIA=y
Also Kernel neu kompiliert, installiert und folgendes noch geändert:
/etc/fb.modes
Code:
mode "1280x1024-60"
geometry 1280 1024 1280 1024 16
timings 9259 232 64 38 1 112 3
hsync high
vsync high
endmode
/boot/grub/menu.lst
Code:
title SUSE Linux 10.1 selfmade
kernel /boot/vmlinuz-2.6.16.13-4-selfmade root=/dev/hdb1 resume=/dev/hdb2 splash=0 showopts video=nvidiafb:1280x1024-60
initrd /boot/initrd-2.6.16.13-4-selfmade
/etc/init.d/boot.local
Code:
/sbin/fbset 1280x1024-60
Warum man fbset nochmal explizit aufrufen muss ist mir etwas schleierhaft. Aber was soll's, es geht. :D
 
OP
Z

Zitronenquark

Newbie
Es geht auch noch anders. Der nvidiafb muss aber trotzdem im Kernel einkompiliert sein.

/boot/grub/menu.lst
Code:
title SUSE Linux 10.1 selfmade
kernel /boot/vmlinuz-2.6.16.13-4-selfmade root=/dev/hdb1 resume=/dev/hdb2 splash=0 showopts
initrd /boot/initrd-2.6.16.13-4-selfmade
/etc/sysconfig/console
Code:
FB_MODULES=""
FBSET_PARAMS="-a 1280x1024-60"
 
Oben