Xorg/Guía

From Gentoo Wiki
< Xorg
Jump to:navigation Jump to:search
This page is a translated version of the page Xorg/Guide and the translation is 45% complete.
Outdated translations are marked like this.

Xorg es el servidor servidor de X Window que permite a los usuarios tener un entorno gráfico a su alcance. Esta guía explica lo que es Xorg, cómo instalarlo y qué opciones de configuración existen.

See also
Xorg and X server articles.

¿Qué es el Servidor X Window?

Gráfico vs Línea de Comandos

Un usuario medio puede estar asustado si piensa que va a tener que teclear órdenes en la línea de comandos (CLI). ¿Porqué no apuntar y hacer clic a través de la libertad que ofrece Gentoo (y Linux en general)? Bien, naturalmente, ¡Pueden hacer esto!

Gentoo ofrece una amplia variedad de interfaces gráficas llamativas como gestores de ventanas y entornos de escritorio que se pueden instalar sobre una instalación existente.

Una de las mayores sorpresas con las que se encuentran los usuarios nuevos en Linux: las interfaces gráficas de usuario no son más que una aplicación (o en algunos casos un conjunto de aplicaciones) que se ejecutan en un sistema. No es parte del kernel de Linux ni de ningún otro componente interno del sistema. Dicho esto, las GUI son herramientas poderosas que desbloquean las capacidades gráficas de una estación de trabajo.

Debido a la importancia de los estándares son importantes, un estándar para dibujar y mover ventanas en una pantalla, interactuar con el usuario a través del ratón y teclado y otros aspectos básicos pero importantes se han creado bajo el nombre "Sistema X Window", generalmente abreviado X11 o simplemente X. Se utiliza en Unix, Linux y sistemas operativos tipo Unix en todo el mundo.

La aplicación que ofrece a los usuarios de Linux la capacidad de ejecutar interfaces gráficas de usuario y que utiliza el estándar X11 es Xorg-X11, una bifurcación del provecto XFree86. En su momento XFree86 decidió utilizar una licencia que podría ser incompatible con la licencia GPL, por tanto, se recomienda el uso de Xorg. Los paquetes XFree86 ya no están disponibles en el repositorio de Gentoo.

El Proyecto X.org

El proyecto X.org crea y mantiene una implementación del sistema X11 de código abierto y redistribuible libremente. Se trata, por tanto, de una infraestructura de escritorio basada en un sistema X11 de código abierto.

Xorg ofrece una interfaz entre su hardware y el software gráfico que quiere correr. Además de esto, Xorg también trabaja en red, lo que implica que puede correr una aplicación en un sistema mientras la está viendo en otro.

Instalar Xorg

Antes de que pueda instalar Xorg, necesitará preparar su sistema para ello. En primer lugar, configure el núcleo para que ofrezca soporte a dispositivos de entrada y tarjetas de vídeo. A continuación, prepararemos /etc/portage/make.conf de modo que se construyan e instalen los controladores y paquetes Xorg correctos.

Soporte para controladores de entrada

El soporte para la interfaz de eventos (CONFIG_INPUT_EVDEV) debe activarse haciendo un cambio en la configuración del núcleo. Lea la Guía de Configuración del Núcleo si no sabe cómo configurar su núcleo.

KERNEL Habilitar evdev en el núcleo
Device Drivers --->
  Input device support --->
  <*>  Event interface

Ajuste del modo del núcleo

Los controladores de vídeo de código abierto actuales se apoyan en el ajuste del modo del núcleo (KMS o Kernel ModeSetting). KMS proporciona un arranque gráfico mejorado con menos parpadeo, mayor velocidad en el cambio a modo usuario, una consola framebuffer integrada, cambio rápido de la consola a Xorg y otras características.

Verify legacy framebuffer drivers have been disabled

Importante
KMS entra en conflicto con los controladores heredados, que deben permanecer deshabilitados en la configuración de su núcleo.

En primer lugar, prepare su núcleo para KMS. Necesitará hacer esto independientemente del controlador de vídeo Xorg que esté utilizando.

KERNEL Deshabilitar el soporte de framebuffer heredado y habilitar el soporte báśico de consola FB
Device Drivers --->
   Graphics support --->
      Frame Buffer Devices --->
         <*> Support for frame buffer devices --->
         ## (Deshabilitar todos los controladores, incluyendo VGA, Intel, nVidia y ATI, excepto para el soporte de framebuffer basado en EFI, solo si se está utilizando UEFI)
 
    ## (Más abajo, habilitar el soporte básico para la consola. KMS lo utiliza.)
    Console display driver support --->
      <*>  Framebuffer Console Support

A continuación, configure el núcleo para utilizar el controlador MS apropiado para la tarjeta de vídeo. Intel, nVidia, y AMD/ATI son las tarjetas más comunes, siga el listado de códigos para cada tarjeta mostrado abajo.

Intel

Para tarjetas, leer la sección del artículo sobre Intel.

NVIDIA

Para tarjetas nVidia:

In addition to the kernel driver, certain cards require closed source firmware to be built-in to the Linux kernel. Depending on the selected driver, readers should visit each respective article to check to see if firmware (from the sys-kernel/linux-firmware is necessary for their specific card.

KERNEL Ajustes para nVidia
Device Drivers --->
   Graphics support --->
      <*>  Nouveau (nVidia) cards

AMD/ATI

Para las tarjetas AMD/ATI más nuevas (RadeonHD 2000 y posteriores), emerge sys-kernel/linux-firmware (el paquete incluye radeon y amdgpu; el paquete separado x11-drivers/radeon-ucode ya no existe). Una vez que se haya instalado uno de estos paquetes, convierta el controlador Radeon en un módulo en el núcleo u, opcionalmente, configure el núcleo como se detalla en la sección de firmware del artículo de Radeon o , para las tarjetas gráficas AMD más nuevas (GCN1.1+), la sección de firmware del artículo AMDGPU:

Tarjetas viejas:

KERNEL Ajustes para AMD/ATI Radeon
## (Configurar el núcleo para que utilice el firmware radeon-ucode)
Device Drivers --->
   Generic Driver Options --->
   [*]  Include in-kernel firmware blobs in kernel binary
  ## # Específico de tarjetas ATI, (leer la página de Radeon para obtener detalles de los ficheros de firmware que se deben incluir)
   (radeon/<CARD-MODEL>.bin ...)
  ## # Especificar el directorio raíz
   (/lib/firmware/) External firmware blobs to build into the kernel binary
 
## (Habilitar el soporte KMS de Radeon)
Device Drivers --->
   Graphics support --->
   <M/*>    ATI Radeon
   [*]      Enable modesetting on radeon by default
   [ ]      Enable userspace modesetting on radeon (DEPRECATED)

Tarjetas nuevas:

KERNEL Ajutes AMDGPU
## (Configurar el núcleo para utilizar el firmware amdgpu)
Device Drivers --->
   Generic Driver Options --->
   [*]  Include in-kernel firmware blobs in kernel binary
  ## # AMD card specific, (see AMDGPU page for details which firmware files to include)
   (amdgpu/<CARD-MODEL>.bin ...)
  ## # Specify the root directory
   (/lib/firmware/) External firmware blobs to build into the kernel binary
 
## (Habilitar el soporte para Radeon KMS)
Device Drivers --->
   Graphics support --->
   <M/*> Direct Rendering Manager (XFree86 4.1.0 and higher DRI support) --->
   <M/*> AMD GPU
         [ /*] Enable amdgpu support for SI parts
         [ /*] Enable amdgpu support for CIK parts 
         [*]   Enable AMD powerplay component  
         ACP (Audio CoProcessor) Configuration  ---> 
             [*] Enable AMD Audio CoProcessor IP support (CONFIG_DRM_AMD_ACP)
         Display Engine Configuration  --->
             [*] AMD DC - Enable new display engine
             [ /*] DC support for Polaris and older ASICs
             [ /*] AMD FBC - Enable Frame Buffer Compression
             [ /*] DCN 1.0 Raven family
   <M/*> HSA kernel driver for AMD GPU devices
Nota
Las antiguas tarjetas Radeon (las series X1900 y anteriores) no necesitan firmware extra ni ninguna configuración del firmware. Para ellas, se debe habilitar el Gestor de Renderizado Directo (Direct Rendering Manager DRM) y el ajuste del modo ATI.
Nota
Los núcleos Linux >= 3.9 no tienen activado el ajuste de modo radeon por defecto (Enable modesetting on radeon by default ) ya que se implica por defecto. No alarmarse si se no se encuetra esta opción en los núcleos actuales.
Nota
El Núcleo Linux>=4.15 incluye Display Core (DC) que es necesario para que AMDGPU funcione. Este controlador más nuevo fue escrito para GCN5.0 Vega y DCN1.0 Raven Ridge (APU), pero también agrega funcionalidad adicional para tarjetas gráficas Radeon más antiguas que comienzan con GCN1.1 Southern Islands y más nuevas. Está previsto que este soporte adicional para tarjetas Radeon más antiguas sea el estándar, así que no se alarme si encuentra que esta opción falta en los núcleos más nuevos.

Abandonar la configuración del núcleo reconstruir el núcleo y reiniciar.

Ahora que ya se ha configurado KMS, continúe con la preparación de /etc/portage/make.conf en la siguiente sección.

Ahora que el núcleo está preparado, se deben configurar dos variables importantes en el archivo /etc/portage/make.conf antes de instalar Xorg.

Make.conf

Portage knows the X USE flag for enabling support for X in other packages (default in all desktop profiles). Make sure this USE flag is added to the USE flag list to ensure X compatibility system wide:

ARCHIVO /etc/portage/make.conf
USE="X"

La primera variable es VIDEO_CARDS. Se utiliza para definir los controladores de vídeo que pretende utilizar y su valor, normalmente, está basado en el tipo de tarjeta que tiene instalada en su sistema. Los valores más comunes son nouveau para tarjetas nVidia o radeon para tarjetas ATI. Ambos son controladores de código abierto con buen soporte y desarrollados activamente. Si dispone de una tarjeta de vídeo AMD más actual (Southern Islands y posteriores), puede intentar el nuevo controlador de código abierto amdgpu. Lea el artículo AMDGPU para obtener más detalles.

Nota
Puede probar también los controladores de nVidia y AMD/ATI, nvidia y fglrx respectivamente. Sin embargo, la configuración de estos controladores está más allá del alcance de esta guía. Por favor, lea Guía nVidia de Gentoo Linux y las Preguntas Frecuentes sobre ATI en Gentoo Linux. Si no sabe qué controlador elegir, eche un vistazo a estas guías para obtener información.

El controlador intel se puede utilizar en ordenadores de escritorio o portátiles con chipsets gráficos comunes de Intel.

Nota
La variable VIDEO_CARDS puede contener más de un controlador, siempre y cuando se separen los valores por un espacio.

La segunda variable es INPUT_DEVICES y se utiliza para determinar qué controladores se construirán para gestionar los dispositivos de entrada.

make.defaults tiene a Libinput como el controlador de entrada por defecto.

Para comprobar lo que está activado actualmente, ejecute:

user $portageq envvar INPUT_DEVICES

En el caso de que se necesiten dispositivos de entrada alternativos como un panel táctil (touchpad) Synaptics para un equipo portátil, asegúrese de añadirlos a INPUT_DEVICES en el fichero /etc/portage/make.conf:

CÓDIGO Entradas ejemplo de make.conf
## (Para tener soporte del ratón, el teclado y el panel táctil Synaptics)
INPUT_DEVICES="libinput synaptics"
## (Para tarjetas nVidia)
VIDEO_CARDS="nouveau"
## (Para tarjetas AMD/ATI)
VIDEO_CARDS="radeon"

Si los ajustes sugeridos no funcionan, haga emerge del paquete x11-base/xorg-drivers (lea los pasos más abajo). Comprueba todas las opciones disponibles y elegir aquéllas que se puedan aplicar al sistema. Este ejemplo es para un sistema con un teclado, ratón, panel táctil Synaptics y una tarjeta de vídeo Radeon.

root #emerge --pretend x11-base/xorg-drivers
 
These are the packages that would be merged, in order:
 
Calculating dependencies... done!
[ebuild   R   ]  x11-base/xorg-drivers-1.9  INPUT_DEVICES="evdev synaptics
-acecad -aiptek -elographics% -fpit% -joystick -keyboard -mouse -penmount -tslib
-virtualbox -vmmouse -void -wacom"
VIDEO_CARDS="radeon -apm -ark -ast -chips -cirrus -dummy -epson -fbdev -fglrx
(-geode) -glint -i128 (-i740) (-impact) -intel -mach64 -mga -neomagic (-newport)
-nouveau -nv -nvidia -r128 -rendition -s3 -s3virge -savage -siliconmotion -sis
-sisusb (-sunbw2) (-suncg14) (-suncg3) (-suncg6) (-sunffb) (-sunleo) (-suntcx)
-tdfx -tga -trident -tseng -v4l -vesa -via -virtualbox -vmware (-voodoo) (-xgi)"
0 kB

The USE flags have the following meaning:

USE flags for x11-base/xorg-server X.Org X servers

debug Enable extra debug codepaths, like asserts and extra output. If you want to get meaningful backtraces see https://wiki.gentoo.org/wiki/Project:Quality_Assurance/Backtraces
elogind Use elogind to get control over framebuffer when running as regular user
minimal Install a very minimal build (disables, for example, plugins, fonts, most drivers, non-critical features)
selinux !!internal use only!! Security Enhanced Linux support, this must be set by the selinux profile or breakage will occur
suid Enable setuid root program(s)
systemd Enable use of systemd-specific libraries and features like socket activation or session tracking
test Enable dependencies and/or preparations necessary to run tests (usually controlled by FEATURES=test but can be toggled independently)
udev Enable virtual/udev integration (device discovery, power and storage device support, etc)
unwind Enable libunwind usage for backtraces
xcsecurity Build Security extension
xephyr Build the Xephyr server
xnest Build the Xnest server
xorg Build the Xorg X server (HIGHLY RECOMMENDED)
xvfb Build the Xvfb server

Nota
By default the suid USE flag is disabled, which is fine when, as per recommendation, X runs under a logind provider like elogind, or systemd. The suid USE flag should however be enabled in /etc/portage/package.use/xorg-server in case no logind provider is used and X is run under a normal user account, e.g. started with startx. Please see also this repository news article. Setting suid would then prevent permission errors on /dev/tty0, or on virtual console 7.

Emerge

Después de definir las variables necesarias y las banderas USE, se puede instalar Xorg:

root #emerge --ask x11-base/xorg-server

Cuándo la instalación haya finalizado, necesitará reinicializar algunas variables de entorno antes de continuar:

root #env-update
root #source /etc/profile

Configurar Xorg

El servidor X está diseñado para funcionar automáticamente, no es necesario editar los ficheros de configuración de Xorg. Se deberían detectar y configurara sin problemas dispositivos tales como pantallas, teclados, y ratones.

Debería intentar en primer lugar lanzar startx sin editar ningún fichero de configuración. Si Xorg no arranca, o existe algún otro problema, necesitará configurar Xorg manualmente como se muestra en la siguiente sección.

Para ejecutar Xorg con un usuario no root, vea Non root Xorg.

Nota
Si se han realizado cambios al núcleo, no se debe olvidar reiniciar el sistema antes de usar startx para utilizar el último núcleo construido. Si en el proceso se actualizó el núcleo a una nueva versión seguramente se necesitará actulizar los ficheros de configuración del cargador de arranque.

El directorio xorg.conf.d

Importante
La configuración de los ficheros dentro de xorg.conf.d se debe tomar como la última opción. Si es posible, es deseable lanzar Xorg sin ninguna configuración especial.

La mayoría de los archivos de configuración de Xorg se almacenan en /etc/X11/xorg.conf.d/. A cada archivo se le da un nombre único acabado en .conf. Los nombres de los archivos dentro del directorio de configuración de Xorg se leerán en orden alfanumérico. Por ejemplo, el archivo 10-evdev.conf se leerá antes que 20-synaptics.conf y a-evdev.conf se leerá antes que b-synaptics.conf y así sucesivamente. No se requiere que los archivos dentro de este directorio estén numerados, pero hacer esto ayuda a mantenerlos organizados. La organización de éstos servirá dde ayuda cuando tengamos que depurar problemas con estos archivos.

Nota
Xorg ofrece configuraciones ejemplo en /usr/share/doc/xorg-server-${version}/xorg.conf.example.bz2. Éstas se pueden utilizar para crear ficheros de configuración personalizados en /etc/X11/xorg.conf.d/. Los ejemplos ofrecen muchísimos comentarios. Si se necesita más información acerca de la sintaxis, siempre está disponible man xorg.conf. Se pueden encontrar otros ejemplos en la sección Otros recursos al final de esta guía.

Usar startx

Pruebe startx para arrancar el servidor X. startx es un guión (instalado por el paquete x11-apps/xinit) que ejecuta una sesión X, esto es, arranca el servidor X y algunas aplicaciones gráficas en él. Las aplicaciones a arrancar se deciden utilizando la siguiente lógica:

  • Si hay un fichero llamado .xinitrc en su directorio personal, se ejecutarán las órdenes listadas en el mismo.
  • De lo contrario leerá el valor de la variable XSESSION desde el fichero /etc/env.d/90xsession y lanzará la sesión adecuada. Los valores disponibles para XSESSION están en el fichero /etc/X11/Sessions/. Para definir una sesión por defecto para todo el sistema, lance:
root #echo XSESSION="Xfce4" > /etc/env.d/90xsession
Esto creará el archivo 90xsession y definirá la sesión X por defecto para que lance Xfce. Recuerde lanzar env-update después de hacer cambios en 90xsession.
user $startx

Si no ha instalado un gestor de ventanas, solo verá una pantalla negra. Ya que esto puede ser también un síntoma de que algo no va bien, puede que quiera hacer emerge de x11-wm/twm y de x11-terms/xterm solo para probar X .

Una vez se hayan instalado los programas, se debe lanzar de nuevo startx. Deberían aparecer algunas ventanas de xterm lo que permite comprobar fácilmente que el servidor X está funcionando correctamente. Una vez se está satisfecho con los resultados, se puede desinstalar los paquetes x11-wm/twm y x11-terms/xterm si se instalaron en el paso indicado más arriba con el fin de eliminar los paquetes que se utilizan para realizar pruebas. Estos paquetes no se necesitan en un entorno de escritorio actual.

Se podría también dar la sesión (programa a lanzar) como argumento a startx:

user $startx /usr/bin/startfluxbox

Además, para pasar opciones al servidor X11 anteponiéndolas con un doble guión:

user $startx -- vt7

Ajustando la configuración X

Definir la resolución de la pantalla

Si parece que la resolución de la pantalla no es la correcta, necesitará comprobar dos secciones en su configuración xorg.conf.d. En primer lugar, tiene la sección Screen que muestra las resoluciones que su servidor X soportará. Puede que no se liste ninguna resolución en esta sección. En este caso, Xorg estimará las resoluciones basándose en la información de la segunda sección Monitor.

Ahora cambiemos la resolución. En el siguiente ejemplo de /etc/X11/xorg.conf.d/40-monitor.conf añadimos la línea PreferredMode para que nuestro servidor X arranque con una resolución de 1440x900 por defecto. La opción (Option) en la sección Device debe corresponderse con el nombre de su monitor (DVI-0), el cual se puede obtener corriendo xrandr. Instalar xrandr (emerge xrandr) para obtener todas esta información. El argumento después del nombre del monitor (en la sección Device) debe corresponderse con la el identificador (Identifier) en la sección Monitor.

ARCHIVO /etc/X11/xorg.conf.d/40-monitor.conf
Section "Device"
 Identifier "RadeonHD 4550"
 Option "Monitor-DVI-0" "DVI screen"
EndSection
Section "Monitor"
 Identifier "DVI screen"
 Option "PreferredMode" "1440x900" EndSection

Corra X (startx) para comprobar que se está utilizando la resolución deseada.

Múltiples monitores

Puede establecer más de un monitor en /etc/X11/xorg.conf.d/. Asignar a cada monitor un identificador único e indicar su posición física, por ejemplo, "RightOf" (a la derecha) o "Above"(encima) de otro monitor. El siguiente ejemplo muestra como configurar un monitor DVI y uno VGA siendo el monitor VGA el que está a la derecha:

ARCHIVO /etc/X11/xorg.conf.d/40-monitor.conf
Section "Device"
 Identifier "RadeonHD 4550"
 Option "Monitor-DVI-0" "DVI screen"
 Option "Monitor-VGA-0" "VGA screen"
EndSection
Section "Monitor"
 Identifier "DVI screen"
EndSection
Section "Monitor"
 Identifier "VGA screen"
 Option "RightOf" "DVI screen"
EndSection

Configurar el teclado

Para obtener ayuda sobre los métodos para conmutar la disposición de teclado leer el artículo sobre conmutación de la disposición del teclado.

Nota
The rest of this section may not be needed if following the Keyboard layout switching article.

Para configurar X en el uso de un teclado internacional, tendrá que crear el fichero de configuración apropiado en /etc/X11/xorg.conf.d/. El siguiente ejemplo muestra el uso de una disposición de teclado Checo:

ARCHIVO /etc/X11/xorg.conf.d/30-keyboard.conf
Section "InputClass"
    Identifier "keyboard-all"
    Driver "evdev"
    Option "XkbLayout" "us,cz"
    Option "XkbModel" "logitech_g15"
    Option "XkbRules" "xorg"
    Option "XkbOptions" "grp:alt_shift_toggle,grp:switch,grp_led:scroll,compose:rwin,terminate:ctrl_alt_bksp"
    Option "XkbVariant" ",qwerty"
    MatchIsKeyboard "on"
EndSection

La orden "terminate" (terminate:ctrl_alt_bksp ) le permite acabar con la sesión X mediante la combinación de teclas Ctrl-Alt-Supr. Esto, sin embargo, hará que X no termine de buena forma, algo que no es deseable. Puede ser de utilidad cuando los programas han congelado su pantalla completamente, o cuando está configurando o ajustando su entorno Xorg. Tenga cuidado cuando mate su escritorio con esta combinación de teclas; terminar de esta forma no le gustará a la mayoría de los programas y podría perder parte (o todo) de lo que esté realizando en ese momento.

Because the "evdev" driver can handle multiple devices (even non-keyboards), limiting the section to only some devices might be needed for proper working of all the devices. Use the MatchProduct directive to specify the device name, consult man xorg.conf for more info.

For more information about XkbModel and XkbOptions, consult /usr/share/X11/xkb/rules/base.lst and man xkeyboard-config.

Terminar

Lance startx y alégrese del resultado. ¡Enhorabuena!, ahora (seguramente) tendrá un sistema Xorg funcionando en su sistema!. El siguiente paso es instalar un gestor de ventanas funcional como KDE, GNOME, o Xfce, pero eso no forma parte de esta guía. Se puede encontrar información sobre la instalación de estos entornos de escritorio en esta misma wiki.

Véase también

  • Wayland - La siguiente generación de protocolos de gestión de ventanas para Linux.
  • X (Manual de seguridad) - La entrada del manual de seguridad referente a asegurar el servidor X.

Recursos externos

Crear y editar los ficheros de configuración

Las órdenes man xorg.conf y man evdev ofrecen referencias rápidas y completas sobre la sintaxis utilizada en estos ficheros de configuración. ¡Asegúrese de tenerlos abiertos en un terminal cuando edite los ficheros de configuración de Xorg!

Example configurations can be found at /usr/share/doc/xorg-server-*/xorg.conf.example.bz2.

También existen muchos recursos en línea sobre la edición de ficheros de configuración en /etc/X11/. Únicamente se listan aquí algunos; utilice su motor de búsqueda favorito para encontrar más.

Otros recursos

Se puede encontrar más información sobre la instalación y configuración de diversos entornos de escritorio y aplicaciones en la sección de nuestra documentación.

Si se actualiza a xorg-server 1.9 o superior, asegúrese de leer la guía de migración.

X.org ofrece muchas FAQs en su sitio Web, además de su documentación.


This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Sven Vermeulen (SwifT) , Joshua Saddler(nightmorph)
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.