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
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.
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
se ti risponde, poi ricordati di postare la sua risposta qui per tutti
ciao
ci sono solo due domande, e una terza come la tua ci starebbe molto bene
> 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.
infatti ricordo do aver provato una volta senza esisti il comando fbset
sai forse perche' con vesafb non si puo'?
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
> 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
> 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"