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:
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 |
Per prima cosa copiare il file Xsetup_0 in /etc così verrà incluso nella protezione delle configurazioni. # cp -a /usr/lib/X11/xdm/Xsetup_0 /etc/X11/xdm/ Modificare il file e personalizzarlo a piacimento. Infine, modificare xdm-config per aggiornare il percorso per questo file. # nano /etc/X11/xdm/xdm-config Cambiare la seguente sezione da così: ! 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 a così: ! 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 |
Come sopra, creare una copia del file in /etc per includerlo nella protezione delle configurazioni: # cp -a /usr/share/X11/app-defaults/XTerm-color /etc/X11/app-defaults/ Personalizzare il file a piacimento. A questo punto bisogna dire a Xt dove trovare i file tramite XFILESEARCHPATH. Inserire questa variabile in un file all'interno di /etc/env.d: # 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 |
Ci sono principalmente due modi per farlo: 1) Configurare una directory app-defaults per utente: # echo '# Questo si applica alla personalizzazione utente in $HOME/app-defaults.' >> /etc/env.d/10xpaths # echo 'XUSERFILESEARCHPATH=$HOME/%T/%N' >> /etc/env.d/10xpaths 2) Creare un file .Xdefaults o .Xresources e copiare le impostazioni che si vogliono modificare. Le modifiche di questo esempio fanno sì che tutti gli Xterm abbiano un cursore aranciano, siano eseguiti come shell di login, abbiano una barra di scorrimento come decorazione, e 1000 linee di buffer per lo scroll all'indietro: # echo '! Xterm defaults' >> .Xresources # echo 'XTerm*CursorColor: orange' >> .Xresources # echo 'XTerm*loginShell: true' >> .Xresources # echo 'XTerm*scrollBar: true' >> .Xresources # echo 'XTerm*saveLines: 1000' >> .Xresources Per applicare queste impostazione, riavviare X o eseguire: # 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. |
Sono state ricevute alcune segnalazioni in cui:
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.
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.
Codice 3.6: Scovare i cambiamenti di XKB |
Controllare in /var/log/Xorg.0.log per individuare questo messaggio: (WW) Couldn't load XKB keymap, falling back to pre-XKB keymap Se non si ha questo errore, la propria installazione di XKB funziona già. # grep Xkb /etc/X11/xorg.conf Option "XkbModel" "logibik" Option "XkbLayout" "dvorak" Option "XkbOptions" "ctrl:swapcaps" Per prima cosa, guardare cos'è cambiato per la configurazione in uso, spostandosi nella directory symbols/pc . # cd /usr/share/X11/xkb/symbols/ Se è stato installato xkbdata invece di xkeyboard-config, spostatrsi 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 controllare l'esistenza di una variante xkb_symbols chiamata dvorak. # grep xkb_symbols.*dvorak us xkb_symbols "dvorak" { Ciò significa che in xorg.conf ci sarò bisogno di Option "XkbLayout" "us" e Option "XkbVariant" "dvorak". Ma quando si proverà a testare questa configurazione con setxkbmap, si otterrà 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ò testarlo con setxkbmap. # setxkbmap -model logiik -layout us -variant dvorak -option "ctrl:swapcaps" Funziona correttamente, per cui impostare la voce XkbModel a quel valore. Dopo di ciò, tutto dovrebbe funzionare correttamente |
I contenuti di questo documento sono rilasciati sotto la licenza Creative Commons - Attribution / Share Alike.