Gentoo Logo

COMO: Migrar al servidor X modular

Contenido:

1.  Introducción

¿Por qué modular?

Puede preguntarse, ¿por qué el simple y sencillo paquete xorg-x11 se convirtió en casi 300 paquetes separados? Y ciertamente tiene razón en esto. =) No es algo que Gentoo esté haciendo independientemente de los desarrolladores principales de X.Org; ellos están dividiendo todos los paquetes en versiones separadas y nosotros estamos siguiendo esta decisión.

El razonamiento tras la división y cambios en el sistema de compilación tiene al menos tres partes:

  • Para los nuevos desarrolladores es muy difícil involucrarse en X, de ahí la migración a autotools, un sistema que a las personas les resulta más cómodo y probablemente están más contentos con él.
  • Junto a dicha migración, es posible dividir el código fuente con autotools y esto también lo hace mucho más amigable para los desarrolladores.
  • Las cosas han estado innecesariamente juntas en el pasado y esto hizo que la corrección de fallos fuera algo imposible. Si los desarrolladores lograban corregir fallos, se requería recompilar todo X.Org. Por ejemplo, un fallo en el controlador ati tendría que esperar 6 meses hasta la próxima versión o bien, tendría que recompilar las fuentes, sin razón alguna.

2.  Migrar al servidor X modular

Introducción

Para evitar que los paquetes antiguos interrumpan en este proceso, eliminaremos por completo el xorg-x11 antiguo antes de instalar el servidor X modular. Esto no es absolutamente crucial, pero ayudará a asegurar una migración sin problemas.

Primer paso: Eliminar su antiguo servidor X

Cree una copia de seguridad del xorg-x11 monolítico pasa usarla en caso de que el X modular no funcione del todo bien y quiera regresar a la versión 6.x. Puede también querer instalar un nuevo navegador modo texto como links o lynx para ver este howto cuando no disponga de X.

Listado de Código 2.1: Respaldar el xorg-x11 antiguo

# emerge gentoolkit
# quickpkg xorg-x11

Deshágase de la instalación monolítica. Para evitar la posibilidad de que su sistema deje de responder por completo, salga de la sesión X en ejecución antes de desinstalar X.Org.

Listado de Código 2.2: Eliminar la instalación monolítica

# emerge -Ca xorg-x11 virtual/x11

Si su /usr/X11R6 no es un enlace simbólico a /usr, bórrelo y empiece desde cero. Pero primero, guarde una lista de todos los paquetes instalados ahí. El paquete gentoolkit proporciona equery.

Listado de Código 2.3: Hacer una lista de paquetes

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

Finalmente, si existe /usr/lib/X11/xkb (/usr/lib64/X11/xkb para los usuarios de sistemas de 64 bits), entonces debería ser eliminado. Este es un requisito para instalar el paquete xkeyboard-config.

Segundo paso: Instalar el X modular

Para el renderizado directo, verifique que esté activo el parámetro USE dri. Debería estar activado de forma predeterminada.

Luego, decida qué controladores necesitará instalar. Esto variará dependiendo de su hardware de entrada y vídeo. Si ya tiene un /etc/X11/xorg.conf funcional, entonces ejecute esta orden para tener una idea de qué controladores necesita:

Listado de Código 2.4: Encontrar qué controladores necesita

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

Listado de Código 2.5: Chequear los controladores disponibles

# 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 radeon savage -apm -ark -chips
-cirrus -cyrix -dummy -fbdev -fglrx% -glint -i740 -i810 -imstt -mach64 -neomagic
-newport -nsc -nv -nvidia% -r128 -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

Ajuste las variables INPUT_DEVICES y VIDEO_CARDS de acuerdo a sus necesidades en el fichero /etc/make.conf. Para el ejemplo de arriba, la configuración mínima sería INPUT_DEVICES="keyboard mouse" y VIDEO_CARDS="radeon". Si no ajusta alguna de las dos variables entonces xorg-x11 instalará todos los controladores disponibles correspondientes. Para los controladores secundarios (de respaldo), puede ser interesante agregar los parámetros vesa y fbdev a la variable VIDEO_CARDS.

Ahora, instale el metapaquete. Este instalará el servidor y las aplicaciones usuales, lo que le dará una implementación funcional del escritorio de X:

Listado de Código 2.6: Instalar el metapaquete modular

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

Nota: Si realmente desea una instalación mínima, tan solo instale xorg-server. Esto hará que se descargue solo lo necesario para que pueda iniciar un servidor X.

Note que esta instalación intenta ser lo más mínima posible, así que cosas como xcursor-themes no son instaladas de forma predeterminada. En el ejemplo particular, querría xcursor-themes si cambió la configuración del cursor a whiteglass, redglass o handhelds. Si usa los temas de cursor gentoo, gentoo-blue o gentoo-silver, entonces instale gentoo-xcursors.

Nota: Con el X modular instalado, los controladores externos como nvidia-glx, wacom y también algunas aplicaciones vnc pueden no funcionar si instalan cosas a /usr/lib/modules en vez de /usr/lib/xorg/modules. Muchas de esas aplicaciones tendrán agregada la detección del X modular al proceso de instalación, por lo tanto, necesitarán ser reinstaladas luego de la instalación del X modular. Además, muchos controladores externos tiene un parámetro USE dlloader que deberá activar y a continuación recompilar los controladores.

3.  Advertencias y problemas frecuentes

'emerge -u world' quiere instalar xorg-x11 6.x o virtual/x11

Esto es debido a que el árbol todavía no está adaptado a las dependencias del X modular. Puede ayudar a la transición leyendo el COMO: Migrar a X modular y reportando fallos con parches a los mantenedores de los paquetes. Los mantenedores estarán listados en metadata.xml en el mismo directorio del paquete en cuestión y el paquete herdstat hará que las consultas a estos últimos sean más rápidas.

En particular, si está ejecutando el X modular en un sistema estable, puede que tenga problemas. Muchos paquetes funcionan solo con el X modular en sus versiones de prueba (~arch), así que quizás tenga que agregar paquetes adicionales al fichero /etc/portage/package.keywords.

¿Qué sucedió con todos los parámetros USE?

Muchos parámetros USE presentes en la serie 6.8 de xorg-x11 desaparecieron o se trasladaron en la nueva versión 7.0. Aparecieron algunos nuevos, a continuación una explicación de aquello:

Parámetro USE ¿Qué sucedió en 7.0?
3dfx En 7.0, incorpora glide-v3 desde el metapaquete xorg-x11
3dnow, mmx, sse Activada de forma predeterminada en tiempo de construcción ya que existen chequeos en tiempo de compilación
bitmap-fonts, truetype-fonts, type1-fonts El metapaquete xorg-x11 incorpora una pequeña selección de las fuentes tipográficas más usadas. Adicionalmente puede instalar otras en media-fonts/
cjk Utilice USE=nls en font-misc-misc y font-sony-misc para obtener las fuentes tipográficas JISX0201 japonesas. Hay más en font-jis-misc. Las fuentes tipográficas chinas se encuentran en font-isas-misc y las coreanas en font-daewoo-misc.
dlloader 7.0 usa dlloader de forma predeterminada y elfloader no funciona.
doc Trasladado a app-doc/xorg-docs
dmx Incorporado en xorg-server a menos que se utilice USE=minimal
font-server Puede instalar xfs manualmente
ipv6 Trasladado a los paquetes que lo usan. Configúrelo globalmente si lo desea.
minimal Para obtener el mismo efecto, tan solo instale xorg-server en vez de xorg-x11. Utilice USE=minimal en xorg-server para evitar la compilación de Xdmx, Xvfb y Xnest. Si necesita algo aún más mínimo, observe en x11-base/kdrive.
nls En la versión 7.0, USE=nls instala todas las versiones de las fuentes tipográficas no-ISO8859-1
nocxx Todavía no hay un equivalente en 7.0
opengl Cambió de nombre a "dri", la cual activa el renderizado directo en xorg-server y muchos controladores. Independiente de que USE=dri esté o no activado, todavía puede obtener renderizado 3D por software con Mesa.
pam Trasladado a paquetes individuales que lo usan, tales como xorg-server y xdm
sdk 7.0 debe instalar el kit de desarrollo de software (SDK) como consecuencia de la modularización.
static En la mayoría de los casos no tiene mucho sentido intentar compilar un servidor estático en el mundo modular, puesto que el controlador no se puede compilar para que quede incorporado en este.
xprint En el metapaquete, incorpora libXp. En otras aplicaciones, incorpora soporte para xprint. La mayoría de la gente no querra activarlo.
xv Deja de ser opcional porque no ahorra mucho espacio y causa otros problemas con algunos paquetes que esperan que esté activado.

¿Qué ocurrió con todos los ficheros de configuración?

En el paquete X.Org 6.8 de Gentoo, todos los ficheros de configuración y guiones se almacenaron en /etc/X11. En el X.Org modular, las localizaciones de estos ficheros se han cambiado, esto es, los ficheros de configuración están todavía en /etc/X11, pero los guiones y configuraciones por defecto están ahora en /usr/lib/X11 (o /usr/lib64/X11) y /usr/share/X11.

Gracias a la protección de la configuración (CONFIG_PROTECT), probablemente tendrá todos sus ficheros de configuración antiguos de X.Org 6.8 aún en /etc/X11, ocupando espacio y pareciendo útiles.

Ya que estos nuevos directorios no están en CONFIG_PROTECT, es importante que cualquier cambio a las configuraciones por defecto se realice copiando los fichero relevantes a /etc/X11 y actualizando los ficheros de configuración apropiados allí. De forma alternativa, pero no recomendada, la nueva localización puede ser ajustada para ser protegida de la configuración. Abajo se muestran algunos ejemplos:

Listado de Código 3.1: Personalizar la inicialización de XDM


En primer lugar, copie el fichero Xsetup_0 a /etc para que esté protegido
de la configuración.

# cp -a /usr/lib/X11/xdm/Xsetup_0 /etc/X11/xdm/

Edite el fichero y ajústelo a su gusto.


Entonces, edite xdm-config para actualizar el camino a este fichero.

# nano /etc/X11/xdm/xdm-config

Cambie lo siguiente:

    ! 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 esto:

    ! 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: En sistemas multilibrería de 64-bit con el perfil no-symlink, necesitará cambiar la librería a lib64.

En este ejemplo, enviado por Joe Womack, personalizaremos algunos ajustes xterm. Esto puede ser realizado globalmente o para cada usuario.

Listado de Código 3.2: Personalizar app-defaults/XTerm-color de forma global


Al igual que arriba, cree una copia del fichero en /etc de modo que esté
protegido de la configuración:

# cp -a /usr/share/X11/app-defaults/XTerm-color /etc/X11/app-defaults/

Personalice el fichero a su gusto. Ahora, necesitaremos indicarle a Xt donde
puede encontrar los ficheros a través de XFILESEARCHPATH. Póngalo en un
fichero dentro de /etc/env.d:

# echo '# Esto aplica a la configuración para todo el sistema.' >> /etc/env.d/10xpaths
# echo 'XFILESEARCHPATH=/etc/X11/%T/%N:/usr/share/X11/%T/%N' >> /etc/env.d/10xpaths

Listado de Código 3.3: Personalizar app-defaults/XTerm-color de forma local

Hay dos formas de hacer esto:
1) Prepare un directorio app-defaults para cada usuario:
# echo '# Esto aplica para las personalizaciones de usuario en $HOME/app-defaults.' >> /etc/env.d/10xpaths 
# echo 'XUSERFILESEARCHPATH=$HOME/%T/%N' >> /etc/env.d/10xpaths


2) Cree un .Xdefaults o .Xresources y copie los ajustes que quiera cambiar.
Este ejemplo cambia todos los XTerms para que tengan el cursor naranja, se
ejecuten como un interfaz de línea de comandos, tengan una decoración
en la barra de desplazamiento y un búfer de 1000 líneas de desplazamiento
hacia atrás:

# echo '! Xterm defaults'               >> .Xresources
# echo 'XTerm*CursorColor:      orange' >> .Xresources
# echo 'XTerm*loginShell:       true'   >> .Xresources
# echo 'XTerm*scrollBar:        true'   >> .Xresources
# echo 'XTerm*saveLines:        1000'   >> .Xresources


Para que estos cambios tengan efecto, reinicie X o ejecute:

# xrdb -merge $HOME/.Xresources

Nota: Lea http://www.faqs.org/faqs/x-faq/part2/section-22.html para más detalles sobre el ajuste de XFILESEARCHPATH y XUSERFILESEARCHPATH. Mire en http://tldp.org/HOWTO/XWindow-User-HOWTO/moreconfig.html#XRESOURCES para más detalles sobre .Xresources.

Problemas con los controladores

Se nos ha informado que:

  • vesa bloquea el sistema con la tarjeta Matrox
  • vga hace que la pantalla se vea muy extraña (dividida en cuatro partes)

Hacer que la aceleración 3D nuevamente funcione

Para obtener información de depuración que ayude a hacer que funcione el renderizado directo:

Listado de Código 3.4: Obtener cierta información de depuración

# grep -e EE -e WW /var/log/Xorg.0.log
# LIBGL_DEBUG=verbose glxinfo

Autodetección del protocolo del ratón

Si tiene configurado "Protocol" "auto" en el fichero xorg.conf en la sección correspondiente al ratón, puede que no funcione. Necesita especificar "Protocol" "ExplorerPS/2" o "IMPS/2" para que la ruedita funcione.

Estoy obteniendo mensajes de error de que no se encuentra libbitmap o libpcidata

Asegúrese de que no existe una línea con ModulePath en su fichero /etc/X11/xorg.conf.

gdm/kdm no funciona

Si instaló el X modular en una instalación nueva de Gentoo, puede que no tenga el enlace simbólico /usr/X11R6 -> /usr. El paquete x11-base/xorg-x11 asegurará que ese enlace exista durante el proceso de instalación.

Puede ayudar a sacar las cosas de /usr/X11R6 reparando los paquetes que instalan cosas allí y reportando fallos. También, recuerde reinstalar estos paquetes.

Listado de Código 3.5: Paquetes que se instalan en /usr/X11R6

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

XKB no funciona, no puedo cambiar a terminales virtuales, etc.

  • Muchas disposiciones de XKB se han trasladado, consolidado o simplemente han desaparecido. Dele una mirada a /usr/share/X11/xkb/symbols/pc para ver qué le pasó a sus antiguos ajustes de XkbLayout en xorg.conf. Por ejemplo, para reemplazar la antigua disposición "us_intl", tendría que colocar "XkbLayout" "latin", "XkbOptions" "lv3:ralt_switch". Para reemplazar la antigua disposición "sk_qwerty", tendría que colocar "XkbLayout" "sk", "XkbVariant" "qwerty". En un ejemplo más avanzado, quizás tenga "XkbLayout" "us,sk_qwerty". Para que funcione aquello, el nuevo ajuste sería "XkbLayout" "us,sk", y el truco es la "coma": "XkbVariant" ",qwerty", ya que lo que se desea es que la variante se aplique a su segunda disposición.

Listado de Código 3.6: Encontrar los cambios de XKB

Revise el fichero /var/log/Xorg.0.log y busque este mensaje:
(WW) Couldn't load XKB keymap, falling back to pre-XKB keymap
Si no tiene ese mensaje de error, su XKB funciona.
# grep Xkb /etc/X11/xorg.conf
        Option "XkbModel"  "logibik"
        Option "XkbLayout"  "dvorak"
        Option "XkbOptions" "ctrl:swapcaps"
Primero, vea qué cambio en su disposición. Esto se encuentra en el directorio symbols/pc.
# cd /usr/share/X11/xkb/symbols/
Si tiene instalado xkbdata en vez xkeyboard-config, cámbiese al subdirectorio pc/.
# ls *dvorak*
OK, no aparece nada.
Muchas de las disposiciones antiguas se trasladaron a sus mapas de teclados basados en el código de país.
# ls *us*
us
Ahora, revisemos si hay una variante de xkb_symbols llamada dvorak.
# grep xkb_symbols.*dvorak us
xkb_symbols "dvorak" {
Eso significa que en el xorg.conf necesitamos escribir Option "XkbLayout" "us"
y Option "XkbVariant" "dvorak".

Pero ahora cuando intentamos probar esto con setxkbmap, todavía obtenemos un error
# setxkbmap -model logibik -layout us -variant dvorak -option "ctrl:swapcaps"
Quizás también cambió el modelo.
# cd /usr/share/X11/xkb/rules/
# grep logibik xorg.lst
Lo anterior no entrega resultados, así que ese modelo desapareció. ¿Qué habrá pasado con los modelos similares?
# 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
¡Fantástico! El modelo "logiik" parece similar, así que probémoslo con setxkbmap.
# setxkbmap -model logiik -layout us -variant dvorak -option "ctrl:swapcaps"
Funcionó, así que debe cambiar la línea que tenga XkbModel
Luego de aquello, todo funciona

Otros problemas

  • El paquete x11-base/xorg-x11 ahora filtra todas las líneas que contengan ModulePath y RgbPath de su fichero /etc/X11/xorg.conf, pues ambas rutas cambiaron a partir de versiones anteriores. Asegúrese de ejecutar etc-update para finalizar estos cambios. Si por alguna razón no se filtraron, elíminelas Ud. mismo.


Imprimir

Página actualizada 5 de noviembre, 2006

Sumario: Esta guía le muestra cómo migrar al servidor X.Org modular.

Donnie Berkholz
Autor

Joshua Baergen
Autor

Andrés Pereira
Traductor

José María Alonso
Traductor

Donate to support our development efforts.

Copyright 2001-2014 Gentoo Foundation, Inc. Questions, Comments? Contact us.