Guida per la migrazione a X Modulare
1.
Introduzione
Perché modulare?
Probabilmente ci si meraviglierebbe se un singolo ed elementare pacchetto come
xorg-x11 venisse diviso in almeno 300 pacchetti separati. 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 font, per
risolvere il problema, senza nessuna ragione valida.
2.
Migrare a X Modulare
Introduzione
Per far sì che vecchi pacchetti non creino conflitti, verrà fatta 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
Codice 2.1: Fare una copia di sicurezza del vecchio xorg-x11 |
# emerge gentoolkit
# quickpkg xorg-x11
|
Liberarsi dell'installazione monolitica:
Codice 2.2: Rimuovere l'installazione monolitica |
# emerge -Ca xorg-x11 virtual/x11
|
si potrebbe aver bisogno di una copia di sicurezza di xorg-x11 monolitico nel
caso in seguito si verificassero incidenti irreversibili. È consigliabile
installare un browser testuale come links o lynx per visualizzare questa guida
mentre X non è disponibile.
Se la propria directory /usr/X11R6 non è un collegamento simbolico
a /usr, cancellarla e cominciare da zero. Ma prima di farlo,
salvare la lista di tutti i pacchetti installati dentro di essa. Il pacchetto
gentoolkit fornisce equery.
Codice 2.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 l'accelerazione grafica, attivare la flag USE dri.
Successivamente, installare i driver necessari. Questa operazione potrà variare
in base al proprio hardware video o di input. Se si possiede già un file di
configurazione /etc/X11/xorg.con funzionante, eseguire il seguente
comando per farsi un'idea di quale driver si avrà bisogno:
Codice 2.4: Trovare i driver dei quali si ha bisogno |
# grep Driver /etc/X11/xorg.conf
Driver "kbd"
Driver "mouse"
Driver "radeon"
|
Codice 2.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
|
Impostare INPUT_DEVICES e VIDEO_CARDS secondo le proprie esigenze in
/etc/make.conf. Le impostazioni minimail per l'esempio precedente
potrebbero essere INPUT_DEVICES="keyboard mouse"
VIDEO_CARDS="ati". Se non si imposta l'una o l'altra variabile, xorg-x11
farà installare tutti i possibili driver di quel tipo. Per avere dei driver di
scorta, si potrebbe aggiungere anche vesa e fbdev a VIDEO_CARDS.
A questo punto installare il metapacchetto, il quale installerà il server e le
applicazioni principali, fornendo una implementazione funzionante di X per il
desktop:
Codice 2.6: Installare il metapacchetto modulare |
# emerge xorg-x11
# etc-update
|
Si noterà che questa installazione sarà alquanto minimale, poichè elementi come
xcursor-themes non verranno installati in modo predefinito. Per esempio,
si potrebbe voler installare xcursor-themes se è stata cambiata la
configurazione dei cursori su whiteglass, redglass o handhelds. Se si usano i
temi gentoo, gentoo-blue o gentoo-silver per i cursori, installare
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. È possibile dare una mano nel faticoso
compito di migrazione leggendo la Guida per il porting
a X modulare e fornire le patch dei bug 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. Si potrà installarne di ulteriori tramite i pacchetti in
media-fonts/.
|
| cjk |
USE=nls su font-misc-misc e font-sony-misc per ottenere i font JISX0201
giapponesi. 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 |
È possibile installare manualmente xfs. |
| ipv6 |
Spostato nei singoli pacchetti che lo usano. Impostarlo globalmente in base
alle proprie necessità.
|
| 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 serve qualcosa di ancora più minimale, dare 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, sarà possibile ottenere l'accelerazione 3D software 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 spazio e causa altri problemi con
qualche pacchetto che si aspetta la sua presenza.
|
Cos'è successo a tutti i file di configurazione?
Nel pacchetto X.Org 6.8 di Gentoo tutti i file di configurazione e gli script
risiedevano in /etc/X11. In X.Org modulare l'ubicazione di questi
file è stata cambiata dagli sviluppatori di X.Org stesso: in pratica i file di
configurazione sono ancora in /etc/X11, ma gli script e le
configurazioni predefinite ora risiedono in /usr/lib/X11 (o
/usr/lib64/X11) e /usr/share/X11.
A causa della protezione delle configurazioni (CONFIG_PROTECT), probabilmente si
avranno ancora i vecchi file di configurazione di X.Org 6.8 in
/etc/X11, occuperanno spazio ma potranno risultare utili.
Siccome queste nuove directory non sono in CONFIG_PROTECT, è importante che ogni
modifica alle configurazioni predefinite venga fatta copiando i file necessari
in /etc/X11 e aggiornando la configurazione appropriata in quella
posizione. In alternativa, ma non è consigliabile, la nuova ubicazione può
essere protetta. Di seguito vengono proposti alcuni esempi:
Codice 3.1: Personalizzare l'inizializzazione di XDM |
# cp -a /usr/lib/X11/xdm/Xsetup_0 /etc/X11/xdm/
# nano /etc/X11/xdm/xdm-config
! The following three resources set up display :0 as the console.
DisplayManager._0.setup: /usr/lib/X11/xdm/Xsetup_0
DisplayManager._0.startup: /usr/lib/X11/xdm/GiveConsole
DisplayManager._0.reset: /usr/lib/X11/xdm/TakeConsole
! The following three resources set up display :0 as the console.
DisplayManager._0.setup: /etc/X11/xdm/Xsetup_0
DisplayManager._0.startup: /usr/lib/X11/xdm/GiveConsole
DisplayManager._0.reset: /usr/lib/X11/xdm/TakeConsole
|
Nota:
Nei sistemi a 64 bit multilib con il profilo senza il collegamento simbolico, bisogna sostituire lib con lib64.
|
In questo esempio proposto da Joe Womack, verranno personalizzate alcune
impostazioni di xterm Ciò può essere fatto sia globalmente sia per
utente.
Codice 3.2: Personalizzare app-defaults/XTerm-color globalmente |
# cp -a /usr/share/X11/app-defaults/XTerm-color /etc/X11/app-defaults/
# echo '# Questo si applica alla configurazione globale.' >>
/etc/env.d/10xpaths
# echo 'XFILESEARCHPATH=/etc/X11/%T/%N:/usr/share/X11/%T/%N' >>
/etc/env.d/10xpaths
|
Codice 3.3: Personalizzare app-defaults/XTerm-color localmente |
# echo '# Questo si applica alla personalizzazione utente in $HOME/app-defaults.' >> /etc/env.d/10xpaths
# echo 'XUSERFILESEARCHPATH=$HOME/%T/%N' >> /etc/env.d/10xpaths
# echo '! Xterm defaults' >> .Xresources
# echo 'XTerm*CursorColor: orange' >> .Xresources
# echo 'XTerm*loginShell: true' >> .Xresources
# echo 'XTerm*scrollBar: true' >> .Xresources
# echo 'XTerm*saveLines: 1000' >> .Xresources
# xrdb -merge $HOME/.Xresources
|
Nota:
Vedere http://www.faqs.org/faqs/x-faq/part2/section-22.html per avere maggiori
dettagli nell'impostazione di XFILESEARCHPATH e XUSERFILESEARCHPATH. Vedere
http://tldp.org/HOWTO/XWindow-User-HOWTO/moreconfig.html#XRESOURCES per
ulteriori dettagli su .Xresources.
|
Problemi dei driver
Sono state ricevute alcune 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 aiutare a far
funzionare il rendering diretto si può usare questo comando:
Codice 3.4: Ottenere delle informazioni di debug da glxinfo |
# LIBGL_DEBUG=verbose glxinfo
|
Autoriconoscimenti del protocollo del mouse
Se è stato impostato "Protocol" "auto" in xorg.conf per il proprio mouse,
esso potrebbe non funzionare. Bisognerà specificare "Protocol"
"ExplorerPS/2" o "IMPS/2" per far sì che il proprio mouse funzioni
correttamente.
Ricevo messaggi d'errore riguardo la mancanza di libbitmap o
libpcidata
Reinstallare >=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, assicurarsi che nessuna voce ModulePath esista in
/etc/X11/xorg.conf.
gdm/kdm non funzionano
Se è stato installato X modulare in una nuova installazione di Gentoo, si
potrebbe 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 si possono
corregge i pacchetti che vengono installati lì dentro e inserire i rispettivi
bug. Inoltre, ricordarsi di reinstallare i pacchetti.
Codice 3.5: 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.
Controllare 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", si dovrebbe mettere
"XkbLayout" "latin", "XkbOptions" "lv3:ralt_switch". Per
ripristinare la vecchia configurazione "sk_qwerty", si dovrebbe mettere
"XkbLayout" "sk", "XkbVariant" "qwerty". Per fare un esempio
più complesso, si dovrebbe avere "XkbLayout" "us,sk_qwerty". Per far sì
che funzioni, la nuova impostazione dovrebbe essere "XkbLayout" "us,sk",
e il trucchetto è nella virgola presente nell'esempio seguente:
"XkbVariant" ",qwerty", perchè in questo modo si applicherà la variante
solo alla seconda configurazione.
Codice 3.6: 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. Assicurarsi di eseguire
etc-update per applicare questi cambiamenti.
I contenuti di questo documento sono rilasciati sotto la licenza Creative
Commons - Attribution / Share Alike.
|