Guida per la migrazione a X Modulare

Contenuti:

1.Introduzione

Perché modulare? 

Vi meravigliereste se un singolo ed elementare pacchetto come xorg-x11 venisse diviso in almeno 300 pacchetti separati? E avreste anche motivo di esserlo. =) Questo cambiamento non è qualcosa che Gentoo sta facendo indipendentemente dallo sviluppo di X.Org; gli sviluppatori di questo software stanno suddividendo tutti i pacchetti in versioni separate, e il gruppo degli sviluppatori di Gentoo sta seguendo la stessa modalità.

Le ragioni dietro la divisione e alla modifica della struttura di X.Org sono almeno tre:

  • E' troppo difficile per i nuovi sviluppatori addentrarsi in X, perciò si è migrati ad autotools, un sistema di cui molte persone sono soddisfatte, se non addirittura felici.
  • Seguendo questo spostamento, con autotools è possibile dividere i sorgenti, e questo rende X più facile da sviluppare.
  • Le varie parti di X sono state tenute insieme senza motivo in passato, e ciò ha reso la risoluzione di bug spesso non possibile.. Se si riusciva ad effettuare le correzioni, esse richiedevano la ricompilazione totale di XOrg. Per esempio, un bug nei driver ati significava aspettare 6 mesi fino al prossimo rilascio, oppure bisognava ricompilare tutto, anche i fonts, per risolvere il problema, senza nessuna ragione valida.

2.Migrare a X Modulare

Introduzione 

Per far sì che vecchi pacchetti non creino conflitti, faremo pulizia di tutti i file relativi al vecchio xorg-x11, prima di installare X modulare. Non è assolutamente essenziale ciò, ma aiuterà ad effettuare una migrazione il più trasparente possibile.

Primo passaggio. Rimuovere completamente il vecchio X 

Esempio 1: Fare una copia di sicurezza del vecchio xorg-x11

# emerge gentoolkit
# quickpkg xorg-x11

Liberarsi dell'installazione monolitica:

Esempio 2: Rimuoevere l'installazione monolitica

# emerge -Ca xorg-x11 virtual/x11

Potreste aver bisogno di una copia di sicurezza di xorg-x11 monolitico nel caso in seguito si verificassero incidenti irreversibili.

Se la vostra directory /usr/X11R6 non è un collegamento simbolico a /usr, cancellatela e cominciate da zero. Ma prima di farlo, salvate la lista di tutti i pacchetti installati dentro di essa. Il pacchetto gentoolkit fornisce equery.

Esempio 3: Creare una lista di pacchetti

# if [[ ! -L /usr/X11R6 ]]; \
	then equery belongs /usr/X11R6 > ~/usr-x11r6-packages \
	&& rm -rf /usr/X11R6; fi

Secondo passaggio: Installare X modulare 

Per prima cosa aggiungete i pacchetti necessari a /etc/portage/package.unmask. Aprite /usr/portage/profiles/package.mask con l'editor di testo che preferite e copiate l'intero blocco di mascheramento di X modulare in package.unmask. Copiate gli stessi dati in /etc/portage/package.keywords se state eseguendo un sistema stabile. Se tutti questi passaggi vi sono oscuri, leggete la sezione sul mascheramento nel manuale Gentoo.

Altri pacchetti che potrebbero necessitare di package.keywords per gli utenti con un'installazione stabile.
>=sys-apps/portage-2.1_pre4
=sys-apps/man-1.6b-r2
app-admin/eselect-opengl
>=app-admin/eselect-1.0_rc1
media-video/nvidia-kernel
media-video/nvidia-glx

Per l'accelerazione grafica, dovrete attivare la flag USE dri.

Successivamente, installate i driver necessari. Questa operazione potrà variare in base al vostro hardware video o di input. Se avete già il file di configurazione /etc/X11/xorg.con funzionante, eseguite il seguente comando per farvi un'idea di che driver avrete bisogno:

Esempio 4: Trovare i driver dei quali avete bisogno

# grep Driver /etc/X11/xorg.conf
Driver      "kbd"
Driver      "mouse"
Driver      "radeon"

Esempio 5: Verificare i driver disponibili

# emerge --verbose --pretend xorg-x11
[ebuild   R   ] x11-base/xorg-x11-7.0-r1  USE="-xprint" INPUT_DEVICES="keyboard
mouse -acecad -aiptek -calcomp -citron -digitaledge -dmc -dynapro -elo2300
-elographics -evdev -fpit -hyperpen -jamstudio -joystick -magellan -magictouch
-microtouch -mutouch -palmax -penmount -spaceorb -summa -synaptics% -tek4957
-ur98 -vmmouse -void" VIDEO_CARDS="i128 mga savage -apm -ark -ati* -chips
-cirrus -cyrix -dummy -fbdev -fglrx% -glint -i740 -i810 -imstt -neomagic
-newport -nsc -nv -nvidia% -rendition -s3 -s3virge -siliconmotion -sis -sisusb
-sunbw2 -suncg14 -suncg3 -suncg6 -sunffb -sunleo -suntcx -tdfx -tga -trident
-tseng -v4l -vesa -vga -via -vmware -voodoo" 0 kB

Impostate INPUT_DEVICES e VIDEO_CARDS secondo le vostre esigenze in /etc/make.conf. I settaggi minimi per l'esempio precedente potrebbero essere INPUT_DEVICES="keyboard mouse" VIDEO_CARDS="ati". Se non impostate una o l'altra variabile, xorg-x11 farà installare tutti i possibili driver di quel tipo. Per avere dei driver di scorta, potreste aggiungere anche vesa e fbdev a VIDEO_CARDS.

A questo punto installate il metapacchetto, il quale installerà il server e le applicazioni principali, fornendovi una implementazione funzionante di X per il desktop::

Esempio 6: Installare il metapacchetto modulare

# emerge xorg-x11
# etc-update
# revdep-rebuild
# emerge $(<~/usr-x11r6-packages)

Nota: Se si vuole una installazione minimale, installare solo xorg-server. Questo emergerà solo il necessario per far partire un X server.

Noterete che questa installazione sarà alquanto minimale, poichè elementi come xcursor-themes non verranno installati di default. Per esempio, potreste voler installare xcursor-themes se avete cambiato la configurazione dei cursori su whiteglass, redglass o handhelds. Se usate i temi gentoo, gentoo-blue o gentoo-silver per i cursori, installate gentoo-xcursors.

Nota: Con l'installazione modulare, driver esterni come nvidia-glx o wacom o applicazioni vnc potrebbero non funzionare, se essi installano delle loro parti in /usr/lib/modules/ invece che in /usr/lib/xorg/modules. Molti di questi pacchetti hanno una rilevazione di X modulare inserita nel processo di installazione, di conseguenza essi vanno reinstallati a seguito dell'installazione di X modulare.

3.Avvertimenti/Problemi Comuni

'emerge -u world' vuole installare xorg-x11 6.x o virtual/x11 

Questo avviene perchè le dipendenze di alcuni pacchetti non sono ancora state aggiornate per la versione modulare. Potete dare una mano nel faticoso compito di migrazione leggendo la Guida alla migrazione a X modulare (in inglese) e fornire patch dei bugs ai manutentori dei singoli pacchetti. I manutentori saranno elencati in metadata.xml nella stessa directory del pacchetto e il pacchetto herdstat velocizzerà la loro interrogazione.

Cos'è successo a tutte le flag USE? 

Diverse flag USE usate nella serie xorg-x11-6.8 sono state rimosse o spostate nella 7.0. Qualche nuova flag USE è invece apparsa. Ecco il perchè:

USE flag Cosa comporta in xorg 7.0?
3dfx Nella versione 7.0, aggiunge glide-v3 come dipendenza del metapacchetto xorg-x11
3dnow, mmx, sse Abilitate in modo predefinito in fase di compilazione, perchè ci sono dei controlli in fase di esecuzione.
bitmap-fonts, truetype-fonts, type1-fonts Il metapacchetto xorg-x11 installa un piccola selezione dei principali font usati o richiesti. Potrete installarne di ulteriori tramite i pacchetti in media-fonts/.
cjk USE=nls su font-misc-misc e font-sony-misc per ottenere i font JISX0201giapponesi. Molti altri sono in font-jis-misc. I font cinesi sono in font-isas-misc. I font coreani sono in font-daewoo-misc.
dlloader la versione 7.0 usa il dllloader in modo predefinito, e l'elfloader non funziona.
doc Spostato in app-doc/xorg-docs
dmx Contenuto in xorg-server almeno che USE=minimal
font-server Potete installare manualmente xfs.
ipv6 Spostato nei singoli pacchetti che lo usano. Impostatelo globalmente se ne avete bisogno.
minimal Per avere lo stesso effetto, installare solamente xorg-server invece che xorg-x11. USE=minimal in xorg-server per evitare di compilare Xdmx, Xvfb e Xnest. Se vi serve qualcosa di ancora più minimale, date un'occhiata in x11-base/kdrive.
nls In 7.0, USE=nls installa tutte le versioni non-ISO8859-1 dei font.
nocxx Non esiste ancora un equivalente in 7.0
opengl Il nome è stato cambiato in "dri", il quale abilita il rendering diretto in xorg-server e diversi driver. Sia che USE=dri sia abilitato, sia che sia disabilitato, potrete ottenere l'accelerazione 3D softeare tramite Mesa.
pam Spostato nei singoli pacchetti che lo usano, come xorg-server e xdm
sdk 7.0 deve installare l'SDK come conseguenza della modularizzazione.
static Nella maggior parte dei casi non ha molto senso provare a compilare un server statico in un mondo modulare, poichè i driver non verrebbero compilati al suo interno.
xprint Nel metapacchetto, installa libXp. Nelle altre applicazion abilita il supporto a xprint. Molte persone non avranno bisogno di abilitare questa flag USE.
xv Non più opzionale perchè non salva molto spazion e causa altri problemi con qualche pacchetto che si aspetta la sua presenza.

Problemi dei driver 

Abbiamo ricevuto segnalazioni in cui:

  • vesa blocca sistemi con schede video Matrox
  • vga produce una schermata molto bizzarra, divisa in quattro parti

Far funzionare di nuovo l'accellerazione 3D 

Per ottenere qualche informazione di debug da glxinfo per aiutarvi a far funzionare il rendering diretto potete usare questo comando:

Esempio 7: Ottenere delle informazioni di debug da glxinfo

# LIBGL_DEBUG=verbose glxinfo

Autoriconoscimenti del protocolo del mouse 

Se avete impostato "Protocol" "auto" in xorg.conf per il vostro mouse, esso potrebbe non funzionare. Dovrete specificare "Protocol" "ExplorerPS/2" o "IMPS/2" per far sì che il vostro mouse funzioni correttamente.

Ricevo messaggi d'errore riguardo la mancanza di libbitmap o libpcidata 

Reinstallate >=xorg-server-0.99.1-r4. Questo è un bug temporaneo nell'ebuild che causa questa cancellazione a seguito della rimozione di un pacchetto.Invece, /usr/lib/xorg dovrebbe venire cancellato quando non rimane nessun xorg-server nel sistema.

Inoltre, assicuratevi che nessuna voce ModulePath esista in /etc/X11/xorg.conf.

gdm/kdm non funzionano 

Se avete installato X modulare in una nuova installazione di Gentoo, potreste non avere il collegamento simbolico /usr/X11R6 -> /usr. il pacchetto x11-base/xorg-x11 assicurerà che il collegamento simbolico esista durante il processo di emerge.

Per aiutare nel tenere fuori le cose da /usr/X11R6 potete corregge i pacchetti che vengono installati lì dentro e inserire i rispettivi bug. Inoltre, ricordatevi di reinstallare i pacchetti.

Esempio 8: Pacchetti che vengono installati in /usr/X11R6

# cat ~/usr-x11r6-packages
# emerge --pretend $(< ~/usr-x11r6-packages )

XKB non funziona, non posso spostarmi tra i VT, ecc 

  • Molte configurazioni di XKB sono state rimosse, spostate o consolidate. Controllate in /usr/share/X11/xkb/symbols/ per vedere cos'è successo al vecchio parametro XkbLayout in xorg.conf. Per esempio, per ripristinare la vecchia configurazione "us_intl", dovreste mettere "XkbLayout" "latin", "XkbOptions" "lv3:ralt_switch". Per ripristinare la vecchia configurazione "sk_qwerty", dovreste mettere "XkbLayout" "sk", "XkbVariant" "qwerty". Per fare un esempio più complesso, potreste avere "XkbLayout" "us,sk_qwerty". Per far sì che funzioni, il nuovo settaggio dovrebbe essere "XkbLayout" "us,sk", e il trucchetto è nella virgola presente nell'esempio seguente: "XkbVariant" ",qwerty", perchè in questo modo applicherete la variante solo alla seconda configurazione.

Esempio 9: Scovare i cambiamenti di XKB

Controllate in /var/log/Xorg.0.log per individuare questo
messaggio:
(WW) Couldn't load XKB keymap, falling back to pre-XKB keymap
If you do not have that error, your XKB works already.
# grep Xkb /etc/X11/xorg.conf
Option "XkbModel"  "logibik"
Option "XkbLayout"  "dvorak"
Option "XkbOptions" "ctrl:swapcaps"
Per prima cosa, guardate cos'è cambiato per la configurazione che
usate, spostandovi nella directory symbols/pc .
# cd /usr/share/X11/xkb/symbols/
Se avete installato xkbdata invece di xkeyboard-config, spostatevi
nella sottodirectory pc/ .
# ls *dvorak*
OK, non è stato mostrato nulla.
Molti delle vecchie configurazioni sono state spostate nelle mappe
caratteri codificate per paese
# ls *us*
us
A questo punto controlliamo l'esistenza di una variante xkb_symbols
chiamata dvorak.
# grep xkb_symbols.*dvorak us
xkb_symbols "dvorak" {
Ciò significa che in xorg.conf necessiteremo di Option "XkbLayout"
"us" e Option "XkbVariant" "dvorak".

Ma quando proviamo a testare questa configurazione con setxkbmap,
otterremo ancora un errore
# setxkbmap -model logibik -layout us -variant dvorak-option "ctrl:swapcaps"
Il modello potrebbe anche essere cambiato.
# cd /usr/share/X11/xkb/rules/
# grep logibik xorg.lst
Nessun output da questo comando, per cui questo modello non esiste
più. Si può comunque provare con dei modelli simili.
# grep logi* xorg.lst
logiaccess      Logitech Access Keyboard
logicdit        Logitech Cordless Desktop iTouch
logicdp         Logitech Cordless Desktop Pro
logicdpa        Logitech Cordless Desktop Pro (alternate option)
logicdpa2       Logitech Cordless Desktop Pro (alternate option2)
logicdo         Logitech Cordless Desktop Optical
logicfn         Logitech Cordless Freedom/Desktop Navigator
logicdn         Logitech Cordless Desktop Navigator
logidak         Logitech Deluxe Access Keyboard
logiitc         Logitech iTouch Cordless Keyboard (model Y-RB6)
logiik          Logitech Internet Keyboard
logiitc         Logitech iTouch Cordless Keyboard (model Y-RB6)
logiik          Logitech Internet Keyboard
logiink         Logitech Internet Navigator Keyboard
logiultrax      Logitech Ultra-X Keyboard
Bene! Il modello "logiik" sembra abbastanza simile, perciò
testiamolo con setxkbmap.
# setxkbmap -model logiik -layout us -variant dvorak -option "ctrl:swapcaps"
Funziona correttamente, per cui impostate la voce XkbModel a quel valore.
Dopo di ciò, tutto dovrebbe funzionare correttamente

Altri problemi 

  • Il pacchetto x11-base/xorg-x11 ora filtra tutte le voci ModulePath e RgbPath contenute in /etx/X11/xorg.conf, poichè entrambi i percorsi sono cambiati dalla versione precedente. Assicuratevi di eseguire etc-update per applicare questi cambiamenti.


Ultimo aggiorn.:
2006-01-02
Donnie Berkholz
Autore

Joshua Baergen
Autore

Davide Cendron
Traduzione

Sommario:  Questa guida spiega come migrare ad X.org modulare.
- 2002 Gentoo.it - Domande, commenti e/o correzioni? Email gentoo-dev@gentoo.it.