lunedì 28 dicembre 2009

Frame buffer con Grub e Grub 2

Oggi trattiamo un aspetto puramente estetico, ovvero la risoluzione della console all'avvio della macchina.
Normalmente un sistema Debian, di default, viene installato e configurato per essere il più possibile compatibile con tutto l'hardware presente sul mercato, quindi la risoluzione della console viene impostata a valori molto bassi (640x480) per poter funzionare su qualunque monitor, ma questo fa sì che anche l'interfaccia testuale abbia un numero limitato di righe e colonne (80x24 se ricordo giusto).
A me questa risoluzione risulta troppo scarsa per poter lavorare adeguatamente, quindi voglio sempre aumentare la risoluzione aumentando di conseguenza il numero di righe e colonne di testo visualizzabili. Per far questo si deve modificare il file di configurazione di grub; questo file è diverso a seconda della versione di grub:
  • /boot/grub/menu.lst per grub 1 aggiungendo il parametro vga nelle opzioni di avvio del kernel (ricordatevi di modificare la linea corretta, ovvero non quella che riguarda il single-user mode);
  • /boot/grub/grub.cfg per grub 2 modificando il parametro gfxmode e gfxpayload.
In grub 1 le varie modalità video sono identificate da valori esadecimali (0x) in base alla propria scheda video; per conoscere le modalità disponibili ed i valori associati si utilizza il comando vbeprobe dalla modalità a linea di comando di grub (vi si entra premendo 'c' durante la visualizzazione del menù) e, una volta identificata la modalità desiderata, la si testa con vbetest. Se tutto viene visualizzato correttamente si può procedere con i calcoli necessari a ricavare il valore da associare al parametro vga.
Il valore da impostare al parametro vga da inserire come opzione alla stringa di avvio del kernel si ottiene partendo dal valore esadecimale di proprio interesse (ad esempio 0x144), a questo si aggiunge 0x200 (ottenendo 0x344, in decimale 836), il nuovo valore così ottenuto in genere è del tipo 0x3..; questo è il valore da assegnare al parametro vga specificandolo come vga=0x3.. oppure vga=8.. (valore decimale).
La nuova linea di avvio all'interno di grub sarà del tipo:
  • kernel /boot/vmlinuz-x.y.z root=/dev/hda1 ro quiet vga=0x344
Fate attenzione a modificare la linea corretta, ovvero non quella di failsafe o single user mode.
In grub 2 le impostazioni sono molto più semplici ed
i parametri sono in formato "uman readable", ovvero la stringa del valore e del tipo RisoluzioneOrizzontalexRisoluzioneVerticalexBitDiColore; i parametri coinvolti in questo caso sono due: gfxmode, che stabilisce la risoluzione durante la visualizzazione del menù di avivo, e gfxpayload, che tsabilisce la risoluzione da visualizzare in modalità testuale. Ad esempio, per avere tutte le risoluzioni a 1024x768 con una profondità di colore a 32 bit si dovranno aggiungere le seguenti linee:
  • set gfxmode=1024x768x32
  • set gfxpayload=1024x768x32
Direi che per oggi è tutto, buon divertimento con le nuove risoluzioni.

Nessun commento:

Posta un commento