Uvesafb (Italiano)

From ArchWiki
Revision as of 06:05, 29 November 2010 by Pointone (Talk | contribs) (use i18n template)

Jump to: navigation, search

This template has only maintenance purposes. For linking to local translations please use interlanguage links, see Help:i18n#Interlanguage links.


Local languages: Català – Dansk – English – Español – Esperanto – Hrvatski – Indonesia – Italiano – Lietuviškai – Magyar – Nederlands – Norsk Bokmål – Polski – Português – Slovenský – Česky – Ελληνικά – Български – Русский – Српски – Українська – עברית – العربية – ไทย – 日本語 – 正體中文 – 简体中文 – 한국어


External languages (all articles in these languages should be moved to the external wiki): Deutsch – Français – Română – Suomi – Svenska – Tiếng Việt – Türkçe – فارسی

Uvesafb è un nuovo framebuffer driver per i sistemi Linux, ed è entrato nel kernel vanilla dalla versione 2.6.24. Questo ha molte altre funzionalità rispetto a vesafb, tra cui: supporto per risoluzioni personalizzate, supporto schede video con un BIOS aderente allo standard VBE 2.0.

Il demone di virtualizzazione

Uvesafb contrasta con gli altri framebuffer driver, e necessita di un demone di virtualizzazione in userspace, chiamato v86d. Può sembrare folle emulare codice x86 su una macchina x86, ma questo è importante se si vuole utilizzare il codice del framebuffer su un'altra archittetura hardware (in particolare quelle non x86). Il pacchetto Template:Package Official include un hook per initcpio (chiamato v86d), che carica il modulo uvesafb ed esegue il demone di virtualizzazione quando richiesto. Devi aggiungere l'hook v86d nell'array HOOKS nel file Template:Filename. Dovresti posizionarlo dopo l'hook base e prima di keymap (nel caso utilizzassi l'hook keymap). Quindi devi rigenerare la tua initramfs con mkinitcpio (modifica il commando qui sotto a seconda della tua configurazione).

# mkinitcpio -p kernel26
Note: v86d richiede che klibc sia compilato su un kernel con incluso uvesafb. Quindi devi aggiornare klibc alla versione più recente (la versione attuale presente in core funziona).

Rimuovere i parametri di boot del kernel

Ricorda di eliminare ogni parametro del kernel riguardante le funzionalità framebuffer non legate ad uvesafb dal file di configurazione del tuo bootloader:

  • Il parametro vga=<foo> forzerà il caricamento del vecchio vesafb;
  • Il parametro video=<foo> non dovrebbe essere usato quando uvesfb è compilato come modulo (come nel kernel di default di Arch Linux).

Opzioni per uvesafb

Le opzioni per uvesafb possono essere impostate nel file Template:Filename o più in generale in Template:Filename. Il file di default fornito nel pacchetto v86d evidenzia la sintassi da utilizzare e ti dice dove reperire ulteriori informazioni su uvesafb:

# This file sets the parameters for uvesafb module.
# The following format should be used:
# options uvesafb mode=<xres>x<yres>[-<bpp>][@<refresh>] scroll=<ywrap|ypan|redraw> ...
#
# For more details see:
# http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=Documentation/fb/uvesafb.txt
#
options uvesafb mode=1280x800-32 scroll=ywrap

Dal kernel 2.6.27 in su devi scrivere:

...
options uvesafb mode_option=1280x800-32 scroll=ywrap

Uvesafb compilato nel kernel

Se utilizzi un kernel custom, puoi scegliere di compilare uvesafb all'interno del kernel ed eseguire v86d più tardi nel processo di avvio, per esempio da Template:Filename. In questo caso, le opzioni per uvesafb possono essere passate come parametri di avvio al kernel nel formato video=uvesafb:<options>. Nota: Questa soluzione non va bene nel caso tu voglia combinare uvesafb con 915resolution com suggerito più avanti.

Homepage di Uvesafb

L'homepage di uvesafb è http://dev.gentoo.org/~spock/projects/uvesafb, dove puoi trovare informazioni più dettagliate (puoi lasciar perdere le informazioni riguardanti la patch del kernel, dato che uvesafb è ora incluso nel kernel vanilla; Inoltre parte della documentazione assume che uvesafb sia compilato all'interno del kernel, mentre nel kernel di Arch Linux è compilato come modulo).

Uvesafb e 915resolution

In questa sezione, esaminiamo uno scenario più complesso. Alcuni chipset video Intel per notebook con wide screen sono conosciuti per avere un BIOS bacato, che non supportano la risoluzione nativa dello schermo! Per questo motivo, 915resolution è stato creato per patchare il bios all'avvio e permettere al server X di usare la risoluzione widescreen. Al momento, il server X è in grado di fare questo senza l'intervento di 915resolution. Comunque, 915resolution può essere combinato con uvesafb in modo da ottenere un widescreen framebuffer, senza nessun bisogno di lanciare X. In questo caso, devi caricare uvesafb dopo aver eseguito 915resolution, in modo che uvesafb possa utlizzare la risoluzione appropriata.

915resolution-static

In questo scenario, 915resolution deve essere compilato staticamente (visto che verrà incluso nella initramfs, non può essere collegato a librerie esterne). Per questo motivo non puoi utilizzare il pacchetto 915resolution presente nel repository community. E' presente in AUR il pacchetto 915resolution-static. Questo compila 915resolution staticamente e fornisce un hook 915resolution, in modo che tu possa eseguire 915resolution prima di caricare uvesafb ed ottenere una risoluzione personalizzata. Installa dunque 915resolution-static via makepkg e pacman o per mezzo di yaourt.

La risoluzione

Per ottenere la risoluzione da te scelta, devi configurare l'hook 915resolution in modo da definire la modalità del BIOS che vuoi rimpiazzare. Puoi ottenere aiuto su tutte le opzioni per 915resolution con

# 915resolution -h

Quindi edita il file Template:Filename e modifica le opzioni necessarie.

run_hook ()
{
   msg -n ":: Patching the VBIOS..."
   /usr/sbin/915resolution 5c 1280 800
   msg "done."
}

Per default, 5c è il codice della modalità del BIOS da rimpiazzare. Puoi ottenere un lista delle modalità video del BIOS disponibili con il comando:

# 915resolution -l.
Note: Devi scegliere il codice di una modalità video di cui non hai bisogno (nè in framebuffer nè in X), perchè 915resolution la rimpiazzerà con quella desiderata. Nell'esempio 1280x800 è la nuova risoluzione scelta.

v86d

Install v86d via pacman

# pacman -S v86d

Modifica /etc/modprobe.d/uvesafb.conf

Modifica le opzioni per uvesafb in Template:Filename con la risoluzione di cui hai bisogno, per esempio:

options uvesafb mode=1280x800-32 scroll=ywrap

Dal kernel 2.6.27 in su scrivi:

...
options uvesafb mode_option=1280x800-32 scroll=ywrap

Modifica degli hook

Aggiungi l'hook 915resolution nell'array HOOKS in Template:Filename, e, dopo questo, l'hook v86d. Metti questi hook prima di keymap, resume e filesystems.

HOOKS="base udev 915resolution v86d ..."

Conclusione

Rigenera la tua initramfs, riavvia e goditi la il tuo widescreen framebuffer.