Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

framebuffer e 80x25

9 views
Skip to first unread message

gioacchino

unread,
Oct 4, 2009, 1:38:41 PM10/4/09
to
Salve a tutti,
da console è possibile passare da una risoluzione 80x25 caratteri ad una
risoluzione 1280x1024 (ad esempio) e viceversa senza riavviare il
computer? Abilitando il framebuffer è possibile ritornare alla modalità
testo senza riavviare?

Bo

unread,
Nov 10, 2009, 7:22:21 AM11/10/09
to

Programmando un programma o
tramite librerie.. SVGALib, Mesa...
cambiando le impostazioni in /etc/X11/xorg.conf

se utilizzi X
...

ah, per ritornare in 80x25 da X
CTRL + ALT + F1

7
BYE

gioacchino

unread,
Nov 10, 2009, 12:42:47 PM11/10/09
to

Mi spiego meglio, non vorrei utilizzare il server X.
L'idea sarebbe quella di partire a 80x25 e di lavorare in quella
modalità, poi però cambiare risoluzione "al volo" magari per vedere
immagini, video, documenti pdf o in generale tutte quelle applicazioni
che hanno bisogno di grafica.
Mentre aspettavo la risposta al mio post precedente ho provato ad
abilitare il framebuffer con driver specifici per la scheda ed ho
utilizzato fbset per il cambio di risoluzione.
L'unico problema che è rimasto è che vorrei abilitare il framebuffer ad
una risoluzione "testo" a 80x25 oppure ad una risoluzione "grafica" che
si avvicini il più fedelmente possibile alla resa di 80x25 caratteri.

Antonio Macchi

unread,
Nov 10, 2009, 12:52:50 PM11/10/09
to

c'era una guida italiana stupenda sul frame buffer

http://www.slacky.eu/wikislack/index.php?title=Framebuffer_Console_HOWTO

purtroppo l'informazione che cerchi tu dentro la guida mi pare che non c'e'
(pero', se non l'hai letta ancora, merita leggerla lostesso... illumina
molto bene la questione)

dentro la guida c'e' la mail del tipo che si e' interessato alla questione

samuele...@gmail.com


se ti risponde, poi ricordati di postare la sua risposta qui per tutti
ciao

Antonio Macchi

unread,
Nov 10, 2009, 1:20:55 PM11/10/09
to
anzi.. se decidi di contattarlo, potresti anche pregargli di inserire la
tua domanda tra le FAQ in fondo alla guida

ci sono solo due domande, e una terza come la tua ci starebbe molto bene

gioacchino

unread,
Nov 10, 2009, 3:46:47 PM11/10/09
to
Il Tue, 10 Nov 2009 18:52:50 +0100, Antonio Macchi ha scritto:

> c'era una guida italiana stupenda sul frame buffer
>
> http://www.slacky.eu/wikislack/index.php?title=Framebuffer_Console_HOWTO
> purtroppo l'informazione che cerchi tu dentro la guida mi pare che non
> c'e' (pero', se non l'hai letta ancora, merita leggerla lostesso...
> illumina molto bene la questione)

L'avevo letta in passato, molto interessante.

> dentro la guida c'e' la mail del tipo che si e' interessato alla
> questione
>
> samuele...@gmail.com
>
>
> se ti risponde, poi ricordati di postare la sua risposta qui per tutti
> ciao

Grazie, ma sono riuscito anche da solo ad raggiungere in qualche modo il
risultato.
Mettendo la risoluzione a 640x400 ottengo 80x25 caratteri ed ho il
framebuffer abilitato con tutti i vantaggi (vedere immagini, pdf ecc...)

Per prima cosa è necessario rimuovere (commentare) la riga corrispondente
al driver del framebuffer dal file:
/etc/modprobe.d/blacklist-framebuffer.conf

Poi è necessario inserire il driver nel seguente file:
/etc/initramfs-tools/modules

Infine ricompilare il kernel:
update-initramfs -u

Per il driver bisogna scegliere quello corrispondente alla scheda video
che si dispone (ad esempio nvidiafb per scheda nvidia).

Per cambiare risoluzione:
fbset risoluzione
dove le risoluzioni possibili sono nel file /etc/fb.modes

Se si utilizza il driver vesafb basta utilizzare all'avvio il parametro
vga di grub (o lilo) ma non si potrà cambiare risoluzione "al volo" con
fbset.

Purtroppo per nvidiafb le impostazioni per disabilitare all'avvio questo
driver quando non si vuole attivare il framebuffer
video=nvidia:off
sembrano non funzionare... ma questo è un altro problema.

Antonio Macchi

unread,
Nov 10, 2009, 4:02:11 PM11/10/09
to
> Se si utilizza il driver vesafb basta utilizzare all'avvio il parametro
> vga di grub (o lilo) ma non si potrà cambiare risoluzione "al volo" con
> fbset.


infatti ricordo do aver provato una volta senza esisti il comando fbset

sai forse perche' con vesafb non si puo'?

Antonio Macchi

unread,
Nov 10, 2009, 10:58:55 PM11/10/09
to
io sono andato lostesso a chiedere al creatore della guida se sia
possibile passare da vgacon a fbdev

la risposta per la verita' non l'ho ancora ben capita... e devo andarmi
a rileggere un attimo la sua guida, comunque la posto qui (spero
l'autore non ne abbia a male)

---------------------------------------

Ciao
Si è possibile, ma è necessario usare qualche accorgimento.
L'operazione che descrivi viene fatta all'avvio del sistema ed è
definita "binding/unbinding" (e/o "takeover"). Nella guida vi accenno
senza entrare nel merito, dato che raramente serve farlo a meno di non
essere sviluppatori del kernel.

Comunque, volendolo fare, è necessario aver compilato nel kernel il
supporto al binding/unbinding (come indicato nella mia guida) e a sysfs.
In /sys/class/vtconsole avrai tutti i driver caricati, sia system che
modular (vedi la guida per la spiegazione).
Solitamente i driver framebuffer sono quelli da vtcon1 in poi, in vtcon0
avrai il system driver. Per vedere a cosa si riferiscono i vari vtcon,
basta fare il cat di "name", come indicato nella guida.
Per fare il detach di un modular driver è sufficiente fare un echo 0 su
"bind", ad esempio:

echo 0 > /sys/class/vtconsole/vtcon1/bind

Con echo 1 ovviamente fai l'attach.
E fin qui sembra una passeggiata... il problema è che ci sono delle
controindicazioni :-)
La prima è che fatto il detach sul modular driver il controllo viene
generalmente ripassato al system driver. E' bene assicurarsi che come
system driver sia caricato vgacon e non dummycon, se no si avrà una
console inutilizzabile (la guida spiega come fare a determinare il
caricamento di vgacon).
La seconda è che non è detto che il modular driver nel passare il
controllo a vgacon setti la modalità vesa testuale corretta (alcuni lo
fanno, altri no). Per esserne sicuro devi usare un tool apposito che
setti la modalità vesa, vbetool.
Prima devi fare un avvio in modalità testuale (vedi sempre la guida) e
salvare lo stato vbe in un file, così:

vbetool vbestate save > tuofile

poi quando fai il detach, ci concateni il restore così:

vbetool vbestate restore < tuofile && echo 0 >
/sys/class/vtconsole/vtcon1/bind

et voilà! il gioco è fatto.


---------------------------------------

beh... non resta che provare.
ciao

gioacchino

unread,
Nov 12, 2009, 8:04:01 AM11/12/09
to
Il Tue, 10 Nov 2009 22:02:11 +0100, Antonio Macchi ha scritto:

> infatti ricordo do aver provato una volta senza esisti il comando fbset
> sai forse perche' con vesafb non si puo'?

Il driver vesafb non supporta il cambiamento della risoluzione al volo,
il perché non lo so.
Puoi guardare qui:
http://forum.debianizzati.org/profiles/thenoise-
u134.html;sa,showPosts;start,690

Utilizzando però driver specifici, fbset funziona a dovere.

Se non puoi utilizzare una risoluzione che ti piace in fbset potresti
prima lanciare vga=numero (in tal caso implicitamente viene caricato
vesafb) da grub/lilo, poi lanci fbset senza parametri e ti da le
informazioni sulla risoluzione corrente e scrivi in /etc/fb.modes la
nuova risoluzione (in fb.modes ci sono le risoluzioni supportate).

fbset >> /etc/fb.modes

Occhio sempre a vedere che la risoluzione sia supportata dalla scheda/
monitor per non fare danni!
Dall'output di fbset ci sono anche altre informazioni ma non conosco se
possono essere inserite in fb.modes. Comunque le informazioni
fondamentali dovrebbero essere geometry e timings, le altre non le
conosco e le tolgo con un editor di testi (a dire la verità conosco poco
anche queste).

Questo è un esempio:
mode "1280x960-75"
# D: 125.644 MHz, H: 74.788 kHz, V: 74.788 Hz
geometry 1280 960 1280 960 16
timings 7959 224 32 36 1 144 3
endmode

gioacchino

unread,
Nov 12, 2009, 2:53:46 PM11/12/09
to
Il Wed, 11 Nov 2009 04:58:55 +0100, Antonio Macchi ha scritto:

> io sono andato lostesso a chiedere al creatore della guida se sia
> possibile passare da vgacon a fbdev
>
> la risposta per la verita' non l'ho ancora ben capita... e devo andarmi
> a rileggere un attimo la sua guida, comunque la posto qui (spero
> l'autore non ne abbia a male)
>
> ---------------------------------------

> beh... non resta che provare.
> ciao

In effetti ho provato con uvesafb un driver vesa generico che permette
anche il cambiamento di risoluzione.

Per l'attach e il detach è semplice:
echo 0 > /sys/class/vtconsole/vtcon1/bind
echo 1 > /sys/class/vtconsole/vtcon1/bind

La prima controindicazione viene evitata perché carica vgacon come system
driver.

La seconda invece rimane un problema perché dopo aver salvato lo stato vbe


vbetool vbestate restore < tuofile && echo 0 > /sys/class/vtconsole/
vtcon1/bind

si ottiene come risultato:
"Function not supported"

0 new messages