<!-- $FreeBSD$ -->
<!-- The FreeBSD Documentation Spanish Project -->
  <sect>
    <heading>El sistema X Windows y las c&oacute;nsolas virtuales<label id="x"></heading>

    <sect1>
      <heading>Quiero ejecutar las X, &iquest;c&oacute;mo lo hago?</heading>

      <p>La manera m&aacute;s f&aacute;cil es, simplemente, especificar que 
      quieres usar las X durante el proceso de instalaci&oacute;n.

      <p>Entonces, lee y sigue la documentaci&oacute;n de la herramienta
      <htmlurl url=
      "http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xf86config"
      name="xf86config">, la cual te ayuda a configurar el sistema XFree86 sobre
      las caracter&iacute;sticas propias de tu sistema (tarjeta de v&iacute;deo
      , rat&oacute;n, etc).

      <p>Quiz&aacute;s te interesar&iacute;a investigar y probar el servidor 
      Xaccel, disponible a un precio muy razonable. Mira en la secci&oacute;n
      <ref id="xig" name="Xi Graphics">  o 
      <ref id="metrox" name="Metro Link"> para m&aacute;s detalles.

    <sect1>
      <heading>&iquest;Porqu&eacute; no funciona mi rat&oacute;n con las X?<label id="x-and-moused"></heading>

      <p>Si est&aacute;s usando syscons (el driver de c&oacute;nsola por 
      defecto), puedes configurar FreeBSD para soportar un rat&oacute;n en cada 
      c&oacute;nsola virtual.
      Para evitar conflictos con las X, syscons soporta un dispositivo
      virtual llamado <tt>/dev/sysmouse</tt>. Todos los eventos recibidos
      desde el mouse real son escritos en el dispositivo sysmouse, usando
      el protocolo MouseSystems. Si quieres usar el rat&oacute;n en una o 
      m&aacute;s c&oacute;nsolas virtuales <bf/y/ usar las X, te recomendamos 
      la siguiente configuraci&oacute;n:

      <verb>
        /etc/rc.conf:
          moused_type=ps/2          # or whatever your actual type is
          moused_port=/dev/psm0     # or whatever your real port is
          moused_flags=

        /etc/XF86Config
          Section Pointer
              Protocol "MouseSystems"
              Device   "/dev/sysmouse"
              .....
      </verb>

      <p>Hay gente que prefiere usar <tt>/dev/mouse</tt> bajo X. Para que
      esto funcione, <tt>/dev/mouse</tt> debe estar lincado a
      <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?sysmouse"
      name="/dev/sysmouse">:

      <verb>
        # cd /dev
        # rm -f mouse
        # ln -s sysmouse mouse
      </verb>

    <sect1>
      <heading>Los menus de X Window  y cajas de di&aacute;logo no funcionan bien.</heading>

      <p>Intenta desactivar la tecla Num Lock.

      <p>Si tu tecla Num Lock est&aacute; activada por defecto al arrancar el
      sistema, deber&iacute;as a&ntilde;adir la siguiente l&iacute;nea en la 
      secci&oacute;n <tt/Keyboard/ del fichero <tt/XF86Config/.

      <verb>
        # Let the server do the NumLock processing.  This should only be
        # required when using pre-R6 clients
            ServerNumLock
      </verb>

    <sect1>
      <heading>&iquest;Qu&eacute; es una c&oacute;nsola virtual y como creo m&aacute;s?</heading>

      <p>Las c&oacute;nsolas virtuales te permiten tener sesiones 
      simult&aacute;neas en la misma m&aacute;quina sin necesidad de tener 
      montajes complicados como una red o ejecuci&oacute;n de X.

      <p>Cuando el sistema arranca, mostrar&aacute; el prompt de login en el
      monitor una vez finalizado el mismo. Puedes entonces teclear
      tu login y password y empezar a trabajar (o jugar), en la primera
      c&oacute;nsola virtual.

      <p>En algun momento, es probablemente querras iniciar otra sesion
      , por ejemplo, para mirar la documentaci&oacute;n de un programa que 
      est&aacute;s ejecutando, o para leer el correo mientras esperas que 
      termine una sesi&oacute;n ftp que tienes establecida. Solo haz Alt-F2 y 
      encontrar&aacute;s un prompt un prompt de login esperandote en la segunda
      "c&oacute;nsola virtual". Cuando quieras volver a la sesi&oacute;n 
      original, s&oacute;lo tienes que pulsar Alt-F1.

      <p>La instalaci&oacute;n por defecto de FreeBSD tiene tres c&oacute;nsolas
      virtuales activadas, y Alt-F1, Alt-F2 y Alt-F3 cambian entre ellas.

      Para activar mas c&oacute;nsolas virtuales, edita <htmlurl
      url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys">
      y a&ntilde;ade tantas entradas como c&oacute;nsolas virtuales quieras a 
      partir de <tt/ttyv4/, despu&eacute;s del comentario "Virtual Terminals":

      <verb>
        # Edit the existing entry for ttyv3 in /etc/ttys and change
        # "off" to "on".
        ttyv3   "/usr/libexec/getty Pc"         cons25  on secure
        ttyv4   "/usr/libexec/getty Pc"         cons25  on secure
        ttyv5   "/usr/libexec/getty Pc"         cons25  on secure
        ttyv6   "/usr/libexec/getty Pc"         cons25  on secure
        ttyv7   "/usr/libexec/getty Pc"         cons25  on secure
        ttyv8   "/usr/libexec/getty Pc"         cons25  on secure
        ttyv9   "/usr/libexec/getty Pc"         cons25  on secure
        ttyva   "/usr/libexec/getty Pc"         cons25  on secure
        ttyvb   "/usr/libexec/getty Pc"         cons25  on secure
      </verb>

      <p>Utiliza tantas c&oacute;nsolas como quieras o necesites. Cuantas 
      m&aacute;s c&oacute;nsolas tengas, m&aacute;s recursos utilizas; esto 
      puede ser importante si tienes 8MB de RAM o menos. Tambi&eacute;n te 
      puede interesar cambiar el modo <tt/secure/ a <tt/insecure/.

      <p><bf/NOTA IMPORTANTE/ si quieres usar un servidor X <bf/DEBES/
      dejar, al menos, un terminal virtual sin usar (o desactivado).

      <p>La manera m&aacute;s f&aacute;cil de desactivar una c&oacute;nsola 
      es "apagarla". Por ejemplo, para desactivar el terminal 12, cambia esto:

      <verb>
        ttyvb   "/usr/libexec/getty Pc"         cons25  on secure
      </verb>

      <p>por esto:

      <verb>
        ttyvb   "/usr/libexec/getty Pc"         cons25  off secure
      </verb>

      <p>Si tu teclado solo tiene 10 teclas de funci&oacute;n, tendras que 
      acabar con:

      <verb>
        ttyv9   "/usr/libexec/getty Pc"         cons25  off secure
        ttyva   "/usr/libexec/getty Pc"         cons25  off secure
        ttyvb   "/usr/libexec/getty Pc"         cons25  off secure
      </verb>

      <p>(Tambi&eacute;n puedes, simplemente, borrar estas l&iacute;neas.)

      <p>Una vez has editado el fichero <htmlurl
      url="http://www.FreeBSD.org/cgi/man.cgi?ttys" name="/etc/ttys">,
      el siguiente paso es asegurarte de que tienes suficientes
      dispositivos de terminales virtuales. La manera m&aacute;s f&aacute;cil 
      de hacerlo es:

      <verb>
        # cd /dev
        # ./MAKEDEV vty12                 # For 12 devices
      </verb>

      <p>A continuaci&oacute;n, la manera m&aacute;s f&aacute;cil de activar 
      las c&oacute;nsolas virtuales es rearrancar el sistema. Si, realmente no 
      quieres rearrancarlo, puedes para el servidor de X Window y ejecutar
      (como <tt/root/):

      <verb>
        kill -HUP 1
      </verb>

      <p>Es imperativo que pares el servidor de X Window si est&aacute;
      funcionando, antes de ejecutar este comando. Si no lo haces,
      parecer&aacute; que tu sistema est&aacute; parado/colgado despu&eacute;s 
      de ejecutar el comando kill.

    <sect1>
      <heading>&iquest;C&oacute;mo accedo a las c&oacute;nsolas virtuales desde X?</heading>

      <p>Si la c&oacute;nsola est&aacute; actualmente mostrando X Window, 
      puedes usar Ctrl-Alt-F1, etc, para cambiar entre las c&oacute;nsolas 
      virtuales. Ten en cuenta que una vez pases de una c&oacute;nsola X Window
      a un terminal virtual, solo tienes que usar la tecla Alf- para volver a 
      conmutar entre terminales virtuales o volver a las X. No necesitas pulsar
      la tecla Ctrl. Si usas la tecla Ctrl para volver a las X en alguna
      de las releases antiguas, puedes encontrarte que la c&oacute;nsola de 
      texto est&aacute; bloqueada. Pulsa la tecla Ctrl de nuevo para 
      desbloquearla.

    <sect1>
      <heading>&iquest;C&oacute;mo arranco XDM desde el fichero <tt>/etc/ttys</tt>?</heading>

      <p>Existen dos escuelas sobre como arrancar el <htmlurl url= 
      "http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xdm"
      name="xdm">. Una escuela arranca el xdm desde el fichero
      <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?ttys"
      name="/etc/ttys"> usando el ejemplo dado, mientras que la otra
      simplemente arranca el xdm desde el fichero
      <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?rc" name="rc.local"> o
      desde un script <tt/X.sh/ en <tt>/usr/local/etc/rc.d</tt>.
      Ambos m&eacute;todos son igualmente v&aacute;lidos, y uno puede funcionar
      en situaciones que el otro no. En ambos casos el resultado es el mismo:
      el sistema X Window lanzar&aacute; un prompt de login gr&aacute;fico.

      <p>El m&eacute;todo ttys tiene la ventaja de documentar en que vty se
      lanzar&aacute;n las X pasando la responsabilidad de rearrancar el 
      servidor X al hacer el logout al proceso init. El m&eacute;todo
      rc.local hace m&aacute;s f&aacute;cil terminar con el proceso xdm
      en caso de problemas con el servidor X.

      <p>Si arrancamos desde rc.local, <tt/xdm/ debe ser arrancado sin
      argumentos (como un daemon). xdm debe arrancar DESPUES del proceso
      getty, o ambos entrar&aacute;n en conflicto bloqueando la 
      c&oacute;nsola. La mejor manera de evitar este problema es tener un 
      script que retrase el arranque de xdm durante 10 segundos.

      <p>Una versi&oacute;n previa de esta FAQ dec&iacute;a que deb&iacute;as
      a&ntilde;adir el <tt/terminal virtual/ usado por las X al fichero
      <tt>/usr/X11R6/lib/X11/xdm/Xservers</tt>. Esto no es necesario: las X
      usar&aacute;n el primer <tt/terminal virtual/ que encuentre libre.

    <sect1>
      <heading>Cuando arranco xconsole obtengo "Couldn't open console".</heading>

      <p>Si arrancas las <htmlurl
      url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=X"
      name="X"> con <htmlurl
      url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=startx"
      name="startx">, los permisos en /dev/console no ser&aacute;n cambiados,
      resultando en cosas como que <htmlurl
      url="http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xterm"
      name="xterm -C"> y <htmlurl url=
      "http://www.FreeBSD.org/cgi/man.cgi?manpath=xfree86&amp;query=xconsole"
      name="xconsole"> no funcionen.

      <p>Esto se debe a la manera en que son fijados los permisos de la
      c&oacute;nsola. En un sistema multiusuario, podemos no querer que 
      cualquier usuario pueda escribir en la c&oacute;nsola de sistema. Para 
      usuarios que realizan logins directamente desde una m&aacute;quina con 
      un VTY, existe el fichero
      <htmlurl url="http://www.FreeBSD.org/cgi/man.cgi?fbtab" name="fbtab">
      para resolver estos problemas.

      <p>Aseg&uacute;rate de que existe al menos una l&iacute;nea como esta 
      sin comentar:

      <verb>
        /dev/ttyv0 0600 /dev/console
      </verb>

      <p>Est&aacute; en <htmlurl 
      url="http://www.FreeBSD.org/cgi/man.cgi?fbtab(5)"
      name="/etc/fbtab"> y asegurar&aacute; que cualquiera que realice un login
      en <tt>/dev/ttyv0</tt> ser&aacute; el propietario de la c&oacute;nsola.

    <sect1>
      <heading>Mi rat&oacute;n PS/2 no funciona bien en X.</heading>

      <p>Tu rat&oacute;n y el driver de rat&oacute;n quiz&aacute;s est&eacute;n
      fuera de sincronizaci&oacute;n.

      <p>En versiones 2.2.5 y anteriores, conmutando entre sesiones X y
      sesiones de terminales virtuales, pod&iacute;a provocar una
      desincronizaci&oacute;n. Si el problema ocurre muy amenudo, 
      deber&iacute;as a&ntilde;adir la siguiente opci&oacute;n en el fichero 
      de configuraci&oacute;n de tu kernel y recompilarlo.

      <verb>
        options PSM_CHECKSYNC
      </verb>

      <p>Mira la secci&oacute;n <ref id="make-kernel" name="creando un kernel">
      si no tienes experiencia en compilar nuevos kernels.

      <p>En versiones 2.2.6 y posteriores, el chequeo de sincronizaci&oacute;n
      es realizado de otra manera, y es estandard en el driver de rat&oacute;n
      PS/2. Aun as&iacute;, en casos extra&ntilde;os puedes llegar a ver 
      mensajes de error de sincronizaci&oacute;n como este:

      <verb>
        psmintr: out of sync (xxxx != yyyy)
      </verb>

      y parecer que tu rat&oacute;n no funciona adecuadamente.

      <p>Si esto ocurre, desactiva el c&oacute;digo de chequeo de 
      sincronizaci&oacute;n poniendo los flags del driver PS/2 a 0x100. Entra 
      en <em>UserConfig</em> poniendo la opci&oacute;n <tt>-c</tt> en el prompt
      de arranque:

      <verb>
        boot: -c
      </verb>

      Entonces, en la l&iacute;nea de comando de <em>UserConfig</em>, teclea:

      <verb>
        UserConfig> flags psm0 0x100
        UserConfig> quit
      </verb>

    <sect1>
      <heading>Mi rat&oacute;n PS/2 de MouseSystems no funciona.</heading>

      <p>Hemos recibido reportes de que algunos modelos de ratones PS/2 de
      MouseSystems solo trabajan si est&aacute;n configurados en modo "alta
      resoluci&oacute;n".

      <p>Desafortunadamente no hay soluci&oacute;n para versiones 2.0.x y 2.1.x.
      En versiones 2.2.x, aplica el siguiente parche en
      <tt>/sys/i386/isa/psm.c</tt> y compila un nuevo kernel.

      <verb>
diff -u psm.c.orig psm.c
@@ -766,6 +766,8 @@
     if (verbose >= 2)
 	log(LOG_DEBUG, "psm%d: SET_DEFAULTS return code:%04x\n",
 	    unit, i);
+    set_mouse_resolution(sc->kbdc, PSMD_RES_HIGH);
+
 #if 0
     set_mouse_scaling(sc->kbdc); 	/* 1:1 scaling */
     set_mouse_mode(sc->kbdc);		/* stream mode */
      </verb>

      <p>En versiones 2.2.6 o posteriores, especifica el flag 0x04 al
      driver PS/2 para poner el rat&oacute;n en modo de alta resoluci&oacute;n.
      Entra en <em>UserConfig</em>:

      <verb>
        boot: -c
      </verb>

      y en la l&iacute;nea de comandos teclea:

      <verb>
        UserConfig> flags psm0 0x04
        UserConfig> quit
      </verb>

      <p>Mira en la secci&oacute;n anterior para posibles causas de problemas
      con los ratones.
    
    <sect1>
       <heading>Cuando compilo una aplicaci&oacute;n X. <tt/imake/ no puede
       encontrar el fichero <tt/imake.tmpl/. &iquest;D&oacute;nde est&aacute;?</heading>

       <p>Imake.tmpl es parte del package Imake, una aplicaci&oacute;n 
       estandard de compilaci&oacute;n de X. Tanto Imake como headers y otros 
       ficheros necesarios para compilar aplicaciones X est&aacute;n en la 
       distribuci&oacute;n de programaci&oacute;n X. Puedes instalarla desde 
       el sysinstall o manualmente desde los ficheros de la distribuci&oacute;n
       X.

    <sect1>
       <heading>&iquest;C&oacute;mo invierto los botones del rat&oacute;n?</heading>

       <p>Ejecuta el comando <tt/ xmodmap -e "pointer = 3 2 1"/ desde el 
       fichero .xinitrc o .xsession.

    <sect1>
      <heading>&iquest;C&oacute;mo instalo un "splash screen" y donde los consigo?</heading>

      <p>Justo antes de la publicaci&oacute;n de FreeBSD 3.1 se a&ntilde;adi&oacute;
      una nueva caracter&iacute;stica que permite mostrar "splash screens" durante los
      mensajes de arranque del sistema. Los "splash screen" deben ser un bitmap de
      256 colores (<tt>*.BMP</tt>) o ZSoft PCX (<tt>*.PCX</tt>). Adem&aacute;s, deben tener
      una resoluci&oacute;n de 320x200 o inferior para poder trabajar en controladoras
      VGA est&aacute;ndars. Si se compila el soporte VESA en el kernel, se pueden usar
      bitmaps de hasta 1024x768. Recordar que el soporte de VESA requiere que la
      opci&oacute;n <tt>VM86</tt> sea compilada en el kernel. El soporte actual
      de VESA puede ser compilado directamente en el kernel con la opci&oacute;n de
      configuraci&oacute;n <tt>VESA</tt> o cargando el m&oacute;dulo kld VESA
      durante el arranque.</p>

      <p>Para usar un "splash screen" necesitas modificar los archivos de
      inicio que controlan el proceso de arranque de FreeBSD. Estos archivos cambiaron
      con FreeBSD 3.2, as&iacute; que ahora existen dos maneras de cargar un
      "splash screen":

      <itemize>
        <item>FreeBSD 3.1

          <p>El primer paso es encontrar una versi&oacute;n bitmap de tu "splash
          screen". La release 3.1 s&oacute;lo soporta bitmaps de Windows. Una
          vez hayas elegido tu "splash screen" copiala en
          <tt>/boot/splash.bmp</tt>. A continuaci&oacute;n necesitas tener
          un archivo <tt>/boot/loader.rc</tt> que contenga las siguientes
          l&iacute;neas:

          <verb>
            load kernel
            load -t splash_image_data /boot/splash.bmp
            load splash_bmp
            autoboot
         </verb>
       </item>

       <item>FreeBSD 3.2+

         <p>Adem&aacute;s de soportar los "splash screens" en formato PCX, 
         FreeBSD 3.2 incluye un mejor sistema de configuraci&oacute;n
         del proceso de arranque. Si quieres, puedes usar el m&eacute;todo
         se&ntilde;alado para FreeBSD 3.1. Si lo haces, y quieres usar PCX,
         reemplaza <tt>splash_bmp</tt> con <tt>splash_pcx</tt>. Si por el
         contrario quieres usar la nueva configuraci&oacute;n de arranque, 
         necesitas crear un archivo <tt>/boot/loader.rc</tt> que contenga
         las siguientes l&iacute;neas:

         <verb>
           include /boot/loader.4th
           start
         </verb>

         <p>y otro archivo <tt>/boot/loader.conf</tt> que contenga lo
         siguiente:

         <verb>
           splash_bmp_load="YES"
           bitmap_load="YES"
         </verb>

         <p>Esto asume que est&aacute;s usando <tt>/boot/splash.bmp</tt>
         como tu "splash screen". Si quieres usar un archivo PCX, 
         copialo a <tt>/boot/splash.pcx</tt>, crea un archivo 
         <tt>/boot/loader.rc</tt> como se ha indicado anteriormente, y
         crea un <tt>/boot/loader.conf</tt> que contenga:

         <verb>
           splash_pcx_load="YES"
           bitmap_load="YES"
           bitmap_name="/boot/splash.pcx"
         </verb>
       </item>
     </itemize>

     <p>Ahora todo lo que necesitas es un "splash screen". Puedes navegar
     por una inmejorable galer&iacute;a en <htmlurl
     url="http://www.cslab.vt.edu/~jobaldwi/splash/"
     name="http://www.cslab.vt.edu/~jobaldwi/splash/">.</p>
    
   </sect1>
  </sect>

