Guida per la migrazione a X Modulare
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 |
# grep Xkb /etc/X11/xorg.conf
Option "XkbModel" "logibik"
Option "XkbLayout" "dvorak"
Option "XkbOptions" "ctrl:swapcaps"
# cd /usr/share/X11/xkb/symbols/
# ls *dvorak*
# ls *us*
us
# grep xkb_symbols.*dvorak us
xkb_symbols "dvorak" {
# setxkbmap -model logibik -layout us -variant dvorak-option "ctrl:swapcaps"
# cd /usr/share/X11/xkb/rules/
# grep logibik xorg.lst
# 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
# setxkbmap -model logiik -layout us -variant dvorak -option "ctrl:swapcaps"
|
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.
|