Com tenir el framebuffer a la mateixa resolució i freqüència que les X

Cada vegada que canviava al framebuffer (Ctrl+Alt+F*) el monitor feia un CRECK i es notava com canviava de freqüència (degut a que el framebuffer el tenia a la opció que venia per defecte, 1024×768 a 60 Hz, i les Xfree estaven a 85 Hz).

Amb això conseguirem tenir el framebuffer a la mateixa freqüència que les X, evitant que el monitor ens hagi de fer esperar uns segons fins que adapti la freqüència de rellotge, i ademés evitarà que perdem els ulls amb unes freqüències matadores!



Abans però, cal dir que això no funciona amb el framebuffer per defecte (vesafb), ja que no es pot fer servir el fbset amb aquest driver. Cal doncs que la teva tarjeta tingui driver per al framebuffer. Mirem a /usr/src/linux/Documentation/fb/00-INDEX els drivers de framebuffers que tenim disponibles (potser per internet hi han més drivers, encara que no estiguin a la oficial…)

Aixi que s’ha d’agafar un d’aquests drivers (aty128fb, clgenfb, matrox, …), compilar-lo al kernel “built-in”, i arrancar amb l’opció video=driver:x@freq. (en comptes de amb vga=…).

—- Amb això ja tenim el fb a una freq adequada pels nostres ulls. Lo de baix només cal fer-ho si teniu la paranoia de tenir-ho tot en ordre 😛 —–

El driver de la 3dfx és una mica inacabat, i quan canvio coses amb el fbset estant a la mateixa frequència, se’m giren els colors. Per lo que arranco amb una freq més baixa (video=driver:x@70 per ex), i al canviar les opcions amb el fbset els colors son normals. Vosaltres ho podeu provar si voleu. Si no teniu el problema dels colors, pos poseu la freq, encara que només serà una freq baixa per uns instants, ja que afegirem una comanda al INIT.

Primer hem de saber els paràmetres que estem fent servir actualment a les X, aixi que els obtenim amb un “xvidtune -show”.

usuari@domini: $ xvidtune -show
"1024x768"     94.50   1024 1072 1168 1376    768  769  772  808 +hsync +vsync
usuari@domini: $

Aquestes dades les posem en un arxiu buit, per exemple /home/usuari/dadesxvidtune, però afegint un Modeline al davant, de manera que ens quedi:

Modeline “1024×768” 94.50 1024 1072 1168 1376 768 769 772 808 +hsync +vsync

Ara, com a root, fem “modeline2fb /home/usuari/dadesxvidtune”, i ens hauría de donar algo així:

# modes.fb - video mode descriptions for fbset
#
# See fbset(8) and fb.modes(5) for more information

mode "1024x768"
  geometry   1024 768   1024 16368   8
  timings    10582   208 48   36 1   96 3
  hsync high
  vsync high
endmode

Be, agafem això i ho afegim al /etc/fb.modes, però canviem la primera linea mode “1024×768” per un altre nom, per exemple mode “elmateixquexfree”. Ja estem preparats per fer un “fbset elmateixquexfree” com a root, amb el que ens posarà el framebuffer als mateixos paràmetres que les XFree.

Ara el que volem es que això s’executi només arrancar: creem un arxiu a /etc/init.d/ (o on sigui que la teva distribució tingui els scripts d’arranc) que contingui això:

#!/bin/sh
echo Canviant la frequencia del framebuffer ...
fbset lamateixaquexfree
echo done.

Lo de echo ho he posat perque faci bonic, però podeu eliminar les dues linies 😛

Creem el link a /etc/rcn.d (on n és un runlevel, el 2 per exemple). Desde /etc/rc2.d/ executem “ln -s ../init.d/framebuffer S09framebuffer”.

Ara podem reiniciar si volem, i comprovar que només arrancar ja tenim el fb i les X als mateixos valors.

Ale, espero que algú se n’hagi enterat, si es necessiten aclaracions, aqui estic! 😛

Salut.
Autor: mengor

This entry was posted in Linux. Bookmark the permalink.

Leave a Reply