               Preguntas mas frecuentes de FreeBSD 4.X, 5.X y 6.X

  Proyecto de documentacion de FreeBSD

   Revision: 43184

   Copyright (c) 1995-2005 The FreeBSD Documentation Project

   La redistribucion y uso en fuente (SGML DocBook) y formatos "compilados"
   (SGML, HTML, PDF, PostScript, RTF y cualquier otro) con o sin
   modificacion, esta permitida siempre y cuando se cumplan las siguientes
   condiciones:

    1. La redistribucion del codigo fuente (SGML DocBook) debe contener esta
       informacion de copyright, esta lista de condiciones y el siguiente
       texto como las primeras lineas del fichero sin modificar.

    2. La redistribucion en formatos compilados (transformado a otros DTDs,
       convertidos a PDF, PostScript, RTF y otros formatos) debe reproducir
       el siguiente texto de copyright, esta lista de condiciones y el
       siguiente texto en la documentacion y/u otros materiales entregados
       con la distribucion.

  Importante:

   THIS DOCUMENTATION IS PROVIDED BY THE FREEBSD DOCUMENTATION PROJECT "AS
   IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
   THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE FREEBSD DOCUMENTATION
   PROJECT BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
   DOCUMENTATION, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

   Resumen

   Esta es la FAQ de FreeBSD version 4.X, 5.X y 6.X. Todas las secciones
   estan dirigidas a FreeBSD 4.0 y superiores. Los capitulos con <XXX> estan
   bajo construccion. Si estas interesado en colaborar en este proyecto,
   envia un e-mail a la lista de distribucion del proyecto de documentacion
   de FreeBSD (en ingles) lista de correo del proyecto de documentacion de
   FreeBSD o a la direccion doc@es.FreeBSD.org en castellano. La ultima
   version de este documento esta siempre disponible en el Mirror en espanol
   de FreeBSD. Puede obtenerse como un unico archivo en formato HTML via HTTP
   o en formato texto, PostScript o PDF desde el servidor FTP de FreeBSD.
   Tambien se pueden hacer busquedas en las FAQ.

   [ Split HTML / Single HTML ]

     ----------------------------------------------------------------------

   Tabla de contenidos

   1. Introduccion

   2. Instalacion

   3. Compatibilidad hardware

   4. Problemas

   5. Aplicaciones Comerciales

   6. Aplicaciones de usuario

   7. Configuracion del Kernel

   8. Administracion de sistema

   9. El sistema X Windows y las consolas virtuales

   10. Networking

   11. PPP

   12. Comunicaciones serie

   13. Preguntas varias

   14. Solo para hackers serios de FreeBSD

   15. AGRADECIMIENTOS

                            Capitulo 1. Introduccion

   !Bienvenido a la FAQ de FreeBSD 4.X-6.X!

   Como es habitual con las FAQ de los grupos de noticias (USENET), este
   documento pretende abarcar las preguntas mas frecuentes referentes al
   sistema operativo FreeBSD (!y por supuesto contestarlas!). Pensadas en un
   principio para reducir el trafico y evitar que se hagan las mismas
   preguntas una y otra vez, las FAQ se han convertido en un valorado recurso
   de obtencion de informacion.

   Todo el esfuerzo se ha hecho en intentar que esta FAQ sea lo mas
   informativa posible; si tienes cualquier comentario o sugerencia, por
   favor, envia un correo a lista de correo del proyecto de documentacion de
   FreeBSD.

   1.1. ?Que es FreeBSD?

   1.2. ?Cual es el objetivo del Proyecto FreeBSD?

   1.3. ?Tiene la licencia FreeBSD alguna restriccion?

   1.4. ?Puede FreeBSD remplazar mi sistema operativo actual?

   1.5. ?Por que se llama FreeBSD?

   1.6. ?Cuales son las diferencias entre FreeBSD y NetBSD, OpenBSD y otros
   sistemas operativos BSD libres?

   1.7. ?Cual es la ultima version de FreeBSD?

   1.8. ?Que es FreeBSD-CURRENT?

   1.9. ?Que significa FreeBSD-STABLE?

   1.10. ?Cuando se realizan las releases de FreeBSD?

   1.11. ?Quien es responsable de FreeBSD?

   1.12. ?Donde puedo conseguir FreeBSD?

   1.13. ?Como puedo instalar un mirror de FreeBSD?

   1.14. ?Donde encuentro informacion sobre las listas de distribucion de
   FreeBSD?

   1.15. ?Que grupos de noticias estan disponibles sobre FreeBSD?

   1.16. ?Hay algun canal IRC (Internet Relay Chat) sobre FreeBSD?

   1.17. Libros sobre FreeBSD

   1.18. ?Como accedo a la base de datos de Problem Report?

   1.19. ?Donde puedo obtener versiones ASCII/PostScript de la FAQ?

   1.20. ?Donde puedo obtener versiones ASCII/PostScript del Handbook?

   1.21. El Handbook en ASCII no esta en texto plano!

   1.22. Me gustaria ser Mirror del web de FreeBSD!

   1.23. Me gustaria traducir la documentacion.

   1.24. Otras fuentes de informacion.

1.1.  ?Que es FreeBSD?                                                                                    
      De manera resumida, FreeBSD es un sistema operativo tipo UNIX(R) para plataformas Alpha/AXP, AMD64  
      e Intel EM64T, i386 IA-64, PC-98 y UltraSPARC basado en "4.4BSD-Lite" de la Universidad de Berkeley 
      en California. Tambien esta indirectamente basado en el port de Net/2 para i386 de Berkeley,        
      conocido como "386BSD", realizado por William Jolitz's. Una descripcion mas detallada de FreeBSD y  
      de como puede trabajar, se encuentra en FreeBSD home page.                                          
                                                                                                          
      FreeBSD es usado por companias, proveedores de Internet, profesionales de la informatica,           
      estudiantes y usuarios particulares de todo el mundo en su trabajo, educacion y ocio. Puedes ver a  
      algunos de ellos en FreeBSD Gallery.                                                                
                                                                                                          
      Para informacion mas detallada sobre FreeBSD, por favor mira en FreeBSD Handbook.                   
1.2.  ?Cual es el objetivo del Proyecto FreeBSD?                                                          
      El objetivo del Proyecto FreeBSD es proveer software que pueda ser usado en todos los ambitos sin   
      ningun tipo de atadura. Muchos de nosotros estamos significativamente involucrados en el desarrollo 
      del codigo (y del proyecto) y no seria cierto decir que no esperabamos o esperamos algun tipo de    
      financiacion, pero definitivamente no estamos preparados para insistir en ello. Creemos que nuestra 
      primera y principal "mision" es proporcionar el codigo libremente, y en cualquier ambito, para que  
      el codigo se difunda lo mas posible y genere los mayores beneficios. Esto es, creemos en uno de los 
      objetivos fundamentales del Software Libre y lo apoyamos de manera incondicional.                   
                                                                                                          
      El codigo fuente de los programas registrados bajo la GNU General Public License (GPL) o la GNU     
      Library General Public License (LGPL), se proporciona bajo las condiciones fijadas por esas         
      licencias. Debido a complicaciones adicionales en el uso comercial de Software GPL, intentamos      
      reemplazar ese software por otros registrados bajo la licencia FreeBSD,menos estricta y mas         
      permisiva.                                                                                          
1.3.  ?Tiene la licencia FreeBSD alguna restriccion?                                                      
      Si. Las restricciones no controlan el uso del codigo. Cualquier duda puede ser contestada leyendo   
      la licencia. Esta misma puede ser resumida de la siguiente manera:                                  
                                                                                                          
        * No establecerse asi mismo como autor.                                                           
                                                                                                          
        * No culpar al proyecto en caso de no funcionar.                                                  
1.4.  ?Puede FreeBSD remplazar mi sistema operativo actual?                                               
      Para la mayor parte de la gente, si. Aunque esta pregunta no se contesta tan facilmente.            
                                                                                                          
      La mayoria de las personas no usa realmente un sistema operativo. Usan aplicaciones. Las            
      aplicaciones son las que en realidad usan el sistema operativo. FreeBSD esta disenado para proveer  
      un ambiente robusto y listo para aplicaciones. Soporta una gran variedad de exploradores de web,    
      suites de oficina, lectores de correo electronico, programas de graficos, ambientes de              
      programacion, servidores y casi todo lo que se desee. La mayor parte de estas aplicaciones pueden   
      ser encontradas en la Coleccion de Ports.                                                           
                                                                                                          
      Si se requiere de una aplicacion solamente disponible para un sistema operativo, simplemente no     
      puede cambiar ese sistema operativo. Aunque muy probablemente encuentre una aplicacion muy parecida 
      en FreeBSD. Si lo que se desea es una solida oficina o un servidor de Internet, una estacion de     
      trabajo confiable, o solamente la habilidad de trabajar sin interrupciones, FreeBSD seguramente     
      hara lo que usted necesita. Una gran cantidad de usuarios alrededor del mundo, incluyendo novatos y 
      usuarios de UNIX(R) experimentados usan FreeBSD como su sistema operativo.                          
                                                                                                          
      Si se desea migrar a FreeBSD desde algun otro ambiente UNIX(R), usted ya sabe mas de lo que se      
      necesita. Si su constumbre es un sistema operativo grafico como Windows o viejas versiones de Mac   
      OS, usted tendra que invertir mas tiempo aprendiendo la forma en la que UNIX(R) hace las cosas.     
      Este FAQ y el FreeBSD Handbook son excelentes lugares donde empezar.                                
1.5.  ?Por que se llama FreeBSD?                                                                          
        * Este sistema debe ser usado libremente, sin coste alguno incluso para fines comerciales.        
                                                                                                          
        * El codigo fuente completo del sistema operativo es de libre distribucion, y se han establecido  
          el menor numero posible de restricciones para su uso, distribucion e incorporacion a otras      
          aplicaciones (comerciales o no).                                                                
                                                                                                          
        * Cualquier persona que tenga alguna sugerencia de mejora y/o "parche" de algun "bug", es libre   
          de enviar el codigo y que este sea anadido al codigo fuente de la distribucion original (sujeto 
          a una o dos condiciones obvias).                                                                
                                                                                                          
      Para todos nuestros lectores cuyo primer lenguaje no sea el ingles, aclaremos que la palabra "free" 
      es usada en dos sentidos, uno significando "sin coste" y el otro "puedes hacer lo que quieras".     
      Aparte de una o dos cosas que no puedes hacer con el codigo de FreeBSD, por ejemplo decir que lo    
      has escrito, realmente puedes hacer lo que quieras con el.                                          
1.6.  ?Cuales son las diferencias entre FreeBSD y NetBSD, OpenBSD y otros sistemas operativos BSD libres? 
      James Howard escribio una buena explicacion para DaemonNews, acerca de la historia y las            
      diferencias entre los diferentes proyectos, llamada The BSD Family Tree, la cual puede contestar    
      esta pregunta.                                                                                      
1.7.  ?Cual es la ultima version de FreeBSD?                                                              
      La version 4.9R es la ultima -STABLE; fue declarada definitiva (a partir de ahora "release") en     
      Diciembre de 2003.                                                                                  
                                                                                                          
      Brevemente explicado, -STABLE esta dirigido a proveedores de Internet y otros usuarios corporativos 
      que quieren estabilidad y una sucesion tranquila en los cambios y actualizaciones a las nuevas      
      versiones y sus mejoras. Solo debes usar la rama -CURRENT si estas seguro de estar preparado para   
      su mayor "volatilidad" (relativa a -STABLE).                                                        
                                                                                                          
      Las versiones Release se hacen cada varios meses. Aunque mucha gente mantiene mas al dia los        
      fuentes de FreeBSD (lee las preguntas en FreeBSD-CURRENT y FreeBSD-STABLE, ello esta pensado para   
      gente que se considere preparada para seguir el desarrollo continuo del codigo fuente.              
1.8.  ?Que es FreeBSD-CURRENT?                                                                            
      FreeBSD-CURRENT es la version de desarrollo del sistema operativo, la cual acabara siendo la        
      version FreeBSD-STABLE. Como es de suponer, esta version es de interes solo para los                
      desarrolladores que trabajan en el sistema y "masoquistas" de la programacion. Mira la seccion      
      correspondiente en el handbook para saber como funciona esta opcion.                                
                                                                                                          
      Si no estas familiarizado con el sistema operativo o no eres capaz de identificar la diferencia     
      entre un problema real y un problema temporal, no deberias usar FreeBSD-CURRENT. Esta rama a veces  
      avanza muy rapidamente y puede no ser compilable durante unos dias. La gente que usa                
      FreeBSD-CURRENT es capaz de analizar los problemas y solo comunicarlos si son motivo de errores.    
      Preguntas como "al ejecutar make world obtengo un error referente a grupos" en la lista de          
      distribucion -CURRENT pueden quedar fuera de lugar.                                                 
                                                                                                          
      Una release snapshot corresponde al desarrollo de la rama -CURRENT; distribuciones en CDROM de esta 
      version estan disponibles. Los objetivos de cada release snapshot son:                              
                                                                                                          
        * Comprobar la ultima version del software de instalacion.                                        
                                                                                                          
        * Dar a la gente que le gustaria usar la version -CURRENT, pero que no tiene el tiempo suficiente 
          para seguir el ritmo diario de actualizaciones, una manera facil de poder instalarla en su      
          sistema.                                                                                        
                                                                                                          
        * Preservar un punto de referencia fijado en el codigo en cuestion, solo en caso de que           
          ``rompamos'' algo realmente importante. (De todas maneras, el CVS normalmente previene de que   
          cosas tan horribles como estas puedean suceder :)                                               
                                                                                                          
        * Asegurar que las nuevas caracteristicas desarrolladas puedan ser comprobadas suficientemente    
          por el mayor numero de gente.                                                                   
                                                                                                          
      No se garantiza que ningun snapshot pueda ser considerado "calidad de produccion". Para conseguir   
      estabilidad y un sistema garantizado, tendras que usar las versiones release.                       
                                                                                                          
      Las release snapshot estan directamente disponibles en ftp://current.FreeBSD.org/pub/FreeBSD/ y son 
      generadas un promedio de una vez por dia para las ramas 4.0-CURRENT y 3.0-STABLE.                   
1.9.  ?Que significa FreeBSD-STABLE?                                                                      
      Cuando la version de FreeBSD 2.0.5 fue declarada release, decidimos dividir el desarrollo de        
      FreeBSD en dos ramas. Una rama fue llamada -STABLE, otra -CURRENT. FreeBSD-STABLE esta previsto     
      para provedores de Internet y otras empresas para las que no resultan deseables cambios repentinos  
      o experimentales. FreeBSD-CURRENT, por otra parte, ha sido la linea comun desde la release 2.0,     
      llegando hasta 5.2.1-RELEASE (y mas alla). Se espera que 5-STABLE sea creado a la salida de         
      5.3-RELEASE y es entonces cuando FreeBSD-CURRENT pasara a ser 6-CURRENT. Aqui hay un pequeno        
      grafico ASCII para ayudar a entender este sistema de desarrollo:                                    
                                                                                                          
                       2.0                                                                                
                        |                                                                                 
                        |                                                                                 
                        |  [2.1-STABLE]                                                                   
       *BRANCH*       2.0.5 -> 2.1 -> 2.1.5 -> 2.1.6 -> 2.1.7.1  [2.1-STABLE termina]                     
                        |                            (Mar 1997)                                           
                        |                                                                                 
                        |                                                                                 
                        |  [2.2-STABLE]                                                                   
       *BRANCH*       2.2.1 -> 2.2.2-RELEASE -> 2.2.5 -> 2.2.6 -> 2.2.7 -> 2.2.8 [termina]                
                        |       (Mar 1997)    (Oct 97) (Abr 98) (Jul 98) (Dic 98)                         
                        |                                                                                 
                        |                                                                                 
                     3.0-SNAPs  (comenzado Q1 1997)                                                       
                        |                                                                                 
                        |                                                                                 
                     3.0-RELEASE (Oct 1998)                                                               
                        |                                                                                 
                        |  [3.0-STABLE]                                                                   
       *BRANCH*      3.1-RELEASE  (Feb 1999) -> 3.2 -> 3.3 -> 3.4 -> 3.5 -> 3.5.1                         
                        |                     (May 1999) (Sep 1999) (Dic 1999) (Junio 2000) (Julio 2000)  
                        |                                                                                 
                        |  [4.0-STABLE]                                                                   
       *BRANCH*        4.0  (Mar 2000) -> 4.1 -> 4.1.1 -> 4.2 -> 4.3 -> 4.4 -> ... later 4.X releases ... 
                        |                                                                                 
                        |              (Julio 2000)   (Sep 2000)   (Nov 2000)                             
                     5.0-RELEASE (Enero 2003)                                                             
                        |                                                                                 
                        |                                                                                 
                     5.1-RELEASE (Junio 2003)                                                             
                        |                                                                                 
                        |                                                                                 
                     5.2-RELEASE                                                                          
                        |                                                                                 
                        |                                                                                 
                     5.2.1-RELEASE (Febrero 2004)                                                         
                       \|/                                                                                
                        +                                                                                 
                [5-CURRENT continua]                                                                      
                                                                                                          
      La version 2.2-STABLE fue retirada con el release 2.2.8. La rama 3-STABLE fue terminada con la      
      release 3.5.1, la ultima release de 3.X. Los unicos cambios que se le podrian hacer son arreglos en 
      la seguridad.                                                                                       
                                                                                                          
      4-STABLE es actualmente el branch -STABLE en desarrollo. El ultimo release en branch 4-STABLE es    
      8.4-RELEASE, el cual fue hecho en June 2013.                                                        
                                                                                                          
      La rama 5-CURRENT progresa lentamente hacia la creacion de la rama 5-STABLE. Ver ?Que es            
      FreeBSD-CURRENT? para mas informacion sobre esta rama.                                              
1.10. ?Cuando se realizan las releases de FreeBSD?                                                        
      El Grupo de ingenieria de releases <re@FreeBSD.org> publica una nueva version de FreeBSD cada 4     
      meses aproximadamente. Las fechas de las nuevas versiones se anuncian por adelantado, con la        
      finalidad de que los desarrolladores trabajando en el sistema sepan cuando deben terminar sus       
      proyectos para ser probados e integrados en el sistema. Hay un periodo de prueba para cada release, 
      para asegurar que los nuevos cambios introducidos en el sistema no comprometan la estabilidad de la 
      version. Algunos usuarios califican esta precaucion como una de las mejores caracteristicas de      
      FreeBSD, aunque esperar el alcance de -STABLE puede ser un poco frustrante.                         
                                                                                                          
      Mas informacion en el proceso de las releases (incluyendo fechas y releases futuras) puede ser      
      encontrada en la pagina de release engineering.                                                     
                                                                                                          
      Para personas que quieran o necesiten mas emocion, diariamente se crean snapshots binarios de la    
      misma manera.                                                                                       
1.11. ?Quien es responsable de FreeBSD?                                                                   
      Las decisiones clave concernientes al proyecto FreeBSD como la direccion a seguir y quien esta      
      autorizado a anadir codigo a la distribucion original, se hace a traves de un grupo de unas 17      
      personas llamado core team. Existe tambien un grupo de unas 150 personas o committers que tambien   
      estan autorizadas a realizar cambios directamente sobre la distribucion original.                   
                                                                                                          
      De todas maneras, la cambios importantes son discutidos en las listas de distribucion en las que no 
      existen restricciones sobre quien participa en las discusiones.                                     
1.12. ?Donde puedo conseguir FreeBSD?                                                                     
      Todas las versiones release de FreeBSD estan disponibles via ftp anonimo en el servidor FTP de      
      FreeBSD:                                                                                            
                                                                                                          
        * Para la actual 3.X-STABLE release, 3.5.1-RELEASE mira en 3.5.1-RELEASE.                         
                                                                                                          
        * La ultima 5.X release, 9.2-RELEASE puedes encontrarla en el directorio 9.2-RELEASE.             
                                                                                                          
        * Para la actual 4-STABLE release, 9.2-RELEASE, mira en directorio 8.4-RELEASE.                   
                                                                                                          
        * 4.X snapshots son construidos diariamente.                                                      
                                                                                                          
        * 5.0 Snapshot releases son hechas una vez al dia a partir de la rama -CURRENT, siendo este un    
          servicio puramente para desarrolladores.                                                        
                                                                                                          
      Mas informacion acerca de como obtener FreeBSD en CD, DVD, y otros medios en el Handbook .          
1.13. ?Como puedo instalar un mirror de FreeBSD?                                                          
      Puedes encontrar informacion acerca de como instalar un mirror de FreeBSD en el articulo Mirroring  
      FreeBSD.                                                                                            
1.14. ?Donde encuentro informacion sobre las listas de distribucion de FreeBSD?                           
      Puedes encontrar toda la informacion en la seccion de listas del Handbook.                          
1.15. ?Que grupos de noticias estan disponibles sobre FreeBSD?                                            
      Puedes encontrar toda la informacion en la seccion de news del Handbook.                            
1.16. ?Hay algun canal IRC (Internet Relay Chat) sobre FreeBSD?                                           
      Si, muchas de las grandes redes de IRC tienen canales de chat de FreeBSD.                           
                                                                                                          
        * El canal #FreeBSD en EFNet es un forum de FreeBSD, pero no acudas alli para obtener soporte     
          tecnico o contar tus penas sobre como leer las paginas man ;). Es un canal de chat, de          
          principio a fin, y los temas que se tratan suelen ser cosas como sexo, deportes o armas         
          nucleares. !Estas avisado!. Disponible en el servidor irc.chat.org.                             
                                                                                                          
        * El canal #FreeBSD en DALNET esta disponible en el servidor irc.dal.net en USA y irc.eu.dal.net  
          en Europa.                                                                                      
                                                                                                          
        * El canal #FreeBSD en UNDERNET esta disponible en us.undernet.org en USA y eu.undernet.org en    
          Europa. Igual que en EFNET, no hagas preguntas tecnicas. Es un canal de chat, no de soporte.    
                                                                                                          
        * El canal #FreeBSD en HybNet. Este canal es un canal de ayuda. Puedes encontrar la lista de      
          servidores en el website de HybNet.                                                             
                                                                                                          
      Cada uno de estos canales es diferente y no estan conectados entre ellos. Sus estilos de chat       
      difieren, por lo que podris probarlos todos para ver cual te gusta mas.                             
1.17. Libros sobre FreeBSD                                                                                
      El libro de Greg Lehey's ``Installing and Running FreeBSD'' esta disponible en Walnut Creek y se    
      vende con el CDROM 2.2.5. Hay tambien un libro mas completo titulado ``The Complete FreeBSD'', el   
      cual tiene manuales adicionales e incluye el CDROM 2.2.6. Deberia estar disponible en las mejores   
      librerias.                                                                                          
                                                                                                          
      Hay un proyecto de documentacion de FreeBSD con el que puedes contactar (o mejor, participar), en   
      la lista de distribucion doc: <doc@FreeBSD.org>. En esta lista se tratan todos los temas referentes 
      a la documentacion de FreeBSD. Para verdaderas preguntas sobre FreeBSD, existe la lista question:   
      <questions@FreeBSD.org>.                                                                            
                                                                                                          
      Esta disponible un ``manual'' (handbook a patir de ahora) de FreeBSD, y se puede encontrar en: El   
      Handbook de FreeBSD. Ten en cuenta que este es un trabajo en constante desarrollo y actualizacion,  
      por lo que algunas secciones podrian estar incompletas.                                             
                                                                                                          
      Teniendo en cuenta que FreeBSD 2.2.x esta basado en la version Berkeley 4.4BSD-Lite2, la mayoria de 
      manuales de 4.4BSD con aplicables a FreeBSD 2.2.x. O'Reilly y Asociados publican estos manuales:    
                                                                                                          
        * 4.4BSD System Manager's Manual By Computer Systems Research Group, UC Berkeley 1st Edition June 
          1994, 804 pages ISBN: 1-56592-080-5                                                             
                                                                                                          
        * 4.4BSD User's Reference Manual By Computer Systems Research Group, UC Berkeley 1st Edition June 
          1994, 905 pages ISBN: 1-56592-075-9                                                             
                                                                                                          
        * 4.4BSD User's Supplementary Documents By Computer Systems Research Group, UC Berkeley 1st       
          Edition July 1994, 712 pages ISBN: 1-56592-076-7                                                
                                                                                                          
        * 4.4BSD Programmer's Reference Manual By Computer Systems Research Group, UC Berkeley 1st        
          Edition June 1994, 886 pages ISBN: 1-56592-078-3                                                
                                                                                                          
        * 4.4BSD Programmer's Supplementary Documents By Computer Systems Research Group, UC Berkeley 1st 
          Edition July 1994, 596 pages ISBN: 1-56592-079-1                                                
                                                                                                          
      Una descripcion de estos puede ser encontrada via WWW en:                                           
                                                                                                          
      Descripcion de libros sobre 4.4BSD                                                                  
                                                                                                          
      Para profundizar mas en la organizacion del kernel de 4.4BSD, no puedes ir mal con los siguientes:  
                                                                                                          
      McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and John Quarterman.                       
                                                                                                          
      The Design and Implementation of the 4.4BSD Operating System. Reading, Mass. : Addison-Wesley,      
      1996. ISBN 0-201-54979-4                                                                            
                                                                                                          
      Un buen libro en administracion de sistemas es:                                                     
                                                                                                          
      Evi Nemeth, Garth Snyder, Scott Seebass & Trent R. Hein, ``Unix System Administration Handbook'',   
      Prentice-Hall, 1995 ISBN: 0-13-151051-7                                                             
                                                                                                          
      NOTA Asegurate de conseguir la segunda edicion, con cubierta roja y no la primera.                  
                                                                                                          
      Este libro cubre las necesidades basicas, asi como TCP/IP, DNS, NFS,SLIP/PPP, sendmail, INN/NNTP,   
      impresion, etc,. Es caro, (aproximadamente unos US$45-$55), pero vale la pena. Tambien incluye un   
      CD-ROM con los fuentes de varias herramientas, muchas de las cuales estan incluidas, tambien, en la 
      version 2.2.6R (CDROM) de FreeBSD, incluso incluyendo versiones mas modernas.                       
1.18. ?Como accedo a la base de datos de Problem Report?                                                  
      La base de datos de Problem Report puede ser consultada via web a traves de la direccion query.     
      Tambien pueden ser enviados via web a traves de la direccion envio. El comando send-pr(1) tambien   
      puede ser usado para el envio de reporte de problemas.                                              
1.19. ?Donde puedo obtener versiones ASCII/PostScript de la FAQ?                                          
      La FAQ actualizada esta disponible en el servidor Web de FreeBSD o en cualquiera de los mirrors en  
      formato PostScript y texto (7 bits ASCII y 8 bits Latin-1).                                         
                                                                                                          
      Formato PostScript (unos 370KB):                                                                    
                                                                                                          
        * http://www.FreeBSD.org/FAQ/FAQ.ps                                                               
                                                                                                          
      Formato ASCII (unos 220KB):                                                                         
                                                                                                          
        * http://www.FreeBSD.org/FAQ/FAQ.ascii                                                            
                                                                                                          
      Formato texto ISO 8859-1 (unos 220KB):                                                              
                                                                                                          
        * http://www.FreeBSD.org/FAQ/FAQ.latin1                                                           
1.20. ?Donde puedo obtener versiones ASCII/PostScript del Handbook?                                       
      El Hansbook actualizado esta disponible en el servidor Web de FreeBSD o en cualquiera de los        
      mirrors en formato PostScript y texto (7 bits ASCII y 8 bits Latin-1).                              
                                                                                                          
      Formato PostScript (unos 1.7MB):                                                                    
                                                                                                          
        * http://www.FreeBSD.org/handbook/handbook.ps                                                     
                                                                                                          
      Formato ASCII (unos 1080KB):                                                                        
                                                                                                          
        * http://www.FreeBSD.org/handbook/handbook.ascii                                                  
                                                                                                          
      Formato texto ISO 8859-1 (unos 1080KB):                                                             
                                                                                                          
        * http://www.FreeBSD.org/handbook/handbook.latin1                                                 
1.21. El Handbook en ASCII no esta en texto plano!                                                        
      Cierto, las versiones ASCII y Latin1 del Handbook no estan estrictamente en formato de texto plano; 
      contienen caracteres de control de impresion asumiendo que el documento sera enviado a una          
      impresora. Si necesitas tenerlos en un formato leible, pasa el archivo por el programa col:         
                                                                                                          
      $ col -b < inputfile > outputfile                                                                   
                                                                                                          
1.22. Me gustaria ser Mirror del web de FreeBSD!                                                          
      Hay multiples maneras de hacer mirror de las paginas web.                                           
                                                                                                          
        * Usando CVSUP: Puedes obtener todo el contenido del web usando el programa CVSUP desde el        
          servidor cvsup.FreeBSD.org. Anade esta linea a tu archivo de configuracion de cvsup:            
                                                                                                          
          www release=current hostname=/home base=/usr/local/etc/cvsup                                    
          prefix=/usr/local/www/data/www.FreeBSD.org delete old use-rel-suffix                            
                                                                                                          
                                                                                                          
        * Usando rsync: Mira en la pagina de mirrors para mas informacion.                                
                                                                                                          
        * Usando mirror de FTP: Puedes bajarte la copia de los contenidos del web usando tu herramienta   
          favorita de mirror de FTP. Simplemente empieza en                                               
          ftp://ftp.FreeBSD.org/pub/FreeBSD/FreeBSD-current/www.                                          
1.23. Me gustaria traducir la documentacion.                                                              
      Bueno, no podemos pagar, pero quizas te enviemos un CD-ROM o una camiseta y anadiremos tu nombre en 
      la seccion ``Contributors'' del Handbook si nos envias una traduccion de la documentacion.          
1.24. Otras fuentes de informacion.                                                                       
      Los siguientes grupos de news contienen temas relacionados con FreeBSD y sus usuarios:              
                                                                                                          
        * comp.unix.bsd.FreeBSD.announce (moderada)                                                       
                                                                                                          
        * comp.unix.bsd.FreeBSD.misc                                                                      
                                                                                                          
        * comp.unix.bsd.misc                                                                              
                                                                                                          
      Recursos Web:                                                                                       
                                                                                                          
        * The FreeBSD Home Page.                                                                          
                                                                                                          
        * Si tienes un portatil asegurate de pasar por Tatsumi Hosokawa's Mobile Computing page.          
                                                                                                          
        * Informacion sobre SMP (Symmetric MultiProcessing), soporte de SMP.                              
                                                                                                          
        * Informacion sobre aplicaciones multimedia. Si estas interesado especificamente en el chip Bt848 
          de video captura, entonces sigue este link.                                                     
                                                                                                          
      El handbook de FreeBSD tiene una completa bibliografia en la seccion bibliografia la cual           
      recomendamos leer si estas interesado en comprar libros actuales relacionados con estos temas.      

                            Capitulo 2. Instalacion

   2.1. ?Que archivo necesito para instalar FreeBSD?

   2.2. !Ayuda!, La imagen del disco de arranque no cabe en un floppy

   2.3. ?Donde puedo encontrar las instrucciones de instalacion de FreeBSD?

   2.4. ?Que necesito para poder ejecutar FreeBSD?

   2.5. Solo tengo 4Mb de RAM. ?Puedo instalar FreeBSD?

   2.6. ?Como puedo hacer mi propio disco de instalacion?

   2.7. ?Puedo tener mas de un sistema operativo en mi PC?

   2.8. ?Puede Windows 95 coexistir con FreeBSD?

   2.9. Windows 95 desinstalo mi boot manager! ?Como lo recupero?

   2.10. ?Puedo instalar FreeBSD en un disco con sectores erroneos?

   2.11. Ocurren cosas extranas cuando arranco con el disco de instalacion

   2.12. !Ayuda! !No puedo instalar desde una cinta!

   2.13. Conexion de dos maquinas FreeBSD via puerto paralelo (PLIP)

   2.14. ?Puedo instalar FreeBSD en mi portatil sobre PLIP (Parallel Line
   IP)?

   2.15. ?Que geometria debo usar para mis discos?

   2.16. ?Existe alguna restriccion en como dividir el disco?

   2.17. ?Que hay sobre los ``disk managers''?

   2.18. Cuando arranco FreeBSD obtengo ``Missing Operating System''

   2.19. No puedo pasar del prompt `F?'.

   2.20. Tengo >16MB de RAM. ?Puede causar esto problemas?

   2.21. ?Necesito instalar todo el codigo fuente?

   2.22. ?Necesito crear un nuevo kernel?

   2.23. Vivo fuera de USA. ?Puedo usar la encriptacion DES?

   2.24. El ``boot disc'' arranca pero se cuelga en la pantalla ``Probing
   Devices...''

   2.25. Aparece el siguiente error ``panic: can't mount root'' al reiniciar
   el computador despues de la instalacion

   2.26. ?Cual es el limite de memoria?.

   2.27. ?Cual es el limite del sistema de archivos FFS?

   2.28. ?Como puedo poner archivos de 1TB en un disquete?

   2.29. He compilado un nuevo kernel y al arrancar aparece el error
   "archsw.readin.failed".

2.1.  ?Que archivo necesito para instalar FreeBSD?                                  
      Generalmente solo es necesario un disco de 1,44Mb con una imgen del archivo   
      floppies/boot.flp. Arranca con este disco para comenzar con el programa de    
      instalacion, el cual se encargara de realizar todas las operaciones           
      necesarias (gestion de TCP/IP, cintas, CDROMs, floppies, particiones DOS y    
      cualquier cosa necesaria para realizar la instalacion).                       
                                                                                    
      Si necesitas bajarte las distribuciones (para una instalacion desde una       
      particion DOS por ejemplo), estas son las distribuciones minimas que          
      necesitaras:                                                                  
                                                                                    
        * bin/                                                                      
                                                                                    
        * manpages/                                                                 
                                                                                    
        * compat*/                                                                  
                                                                                    
        * doc/                                                                      
                                                                                    
        * src/ssys.*                                                                
                                                                                    
      Todas las instrucciones sobre este procedimiento y una ampliacion de la       
      documentacion se puede encontrar en Instalacion de FreeBSD.                   
2.2.  !Ayuda!, La imagen del disco de arranque no cabe en un floppy                 
      Un floppy de 1.44MB puede contener hasta 1474560 bytes de datos. La imagen de 
      arranque es exactamente de 1474560 bytes.                                     
                                                                                    
      Los errores mas comunes en la preparacion de disco de arranque son:           
                                                                                    
        * No bajarse la imagen en modo binario cuando se usa FTP.                   
                                                                                    
          Algunos clientes FTP intentan bajar por defecto los archivos en modo      
          ASCII e intentan cambiar los caracteres de final de linea recibidos por   
          el que utilice el sistema cliente. Esto corrompera inevitablemente la     
          imagen de arranque. Revisa el tamano de la imagen: si no es exactamente   
          el mismo tamano del archivo existente en el servidor, la imagen no        
          servira.                                                                  
                                                                                    
          Solucion: teclea binary en la linea de comandos del FTP despues de        
          conectar y antes de empezar a bajar la imagen.                            
                                                                                    
        * Usando el comando copy de DOS (o cualquier herramienta GUI equivalente)   
          para transferir la imagen a un disquete.                                  
                                                                                    
          Programas como copy no funcionaran para la transferencia de la imagen a   
          un disco. La imagen tiene el contenido completo del disco, pista por      
          pista, y no esta pensada para ser trasladada a un disquete como un        
          archivo normal. Tienes que hacer una transferencia ``raw'' usando         
          herramientas de bajo nivel como fdimage o rawrite, descritas en la guia   
          de instalacion de FreeBSD.                                                
2.3.  ?Donde puedo encontrar las instrucciones de instalacion de FreeBSD?           
      Las instrucciones de instalacion estan en Instalacion de FreeBSD.             
2.4.  ?Que necesito para poder ejecutar FreeBSD?                                    
      Necesitaras un PC con 386 o superior, 5 Mb o mas de memoria RAM y al menos 60 
      Mb de espacio en disco duro. Puede funcionar con tarjetas graficas de bajo    
      nivel (Hercules), pero para poder ejecutar X11R6 es necesario una tarjeta VGA 
      o superior.                                                                   
2.5.  Solo tengo 4Mb de RAM. ?Puedo instalar FreeBSD?                               
      FreeBSD 2.1.7 fue la ultima version de FreeBSD que podia ser instalada en un  
      sistema de 4Mb. Las nuevas versiones de FreeBSD, como la 2.2, necesitan al    
      menos 5Mb para poder ser instaladas.                                          
                                                                                    
      Todas las versiones de FreeBSD, incluyendo la 3.0, funcionaran en sistemas    
      con 4Mb de RAM, lo que no puedes ejecutar es la instalacion en sistemas con   
      4Mb. Puedes anadir memoria extra para el proceso de instalacion, y una vez    
      instalado, volver a los 4Mb. Tambien puedes instalar tu disco en una maquina  
      con mas de 4Mb, realizar la instalacion y reponer el disco en su maquina con  
      4Mb.                                                                          
                                                                                    
      Hay algunas situaciones en las que FreeBSD 2.1.7 no se instalara en sistemas  
      con 4Mb. Para ser exactos: no se instalara con 640Kb de memoria base + 3Mb de 
      memoria extendida. Si tu placa base puede remapear algo de la memoria         
      ``perdida'' fuera de los 640Kb a la region de 1Mb, entonces aun podras        
      instalar FreeBSD 2.1.7.                                                       
                                                                                    
      Intenta entrar en el setup de tu BIOS y busca la opcion ``remap''. Activala.  
      Quizas tendras que desactivar la opcion de ROM shadowing.                     
                                                                                    
      Es mas facil anadir en la maquina 4Mb de memoria para la instalacion. Crea un 
      kernel unicamente con las opciones que necesites y vuelve a quitar los 4Mb    
      anadidos.                                                                     
                                                                                    
      Tambien puedes instalar la version 2.0.5 y a continuacion actualizar tu       
      sistema a la 2.1.7 con la opcion ``upgrade'' del programa de instalacion de   
      la version 2.1.7.                                                             
                                                                                    
      Despues de la instalacion, si te creas un kernel personalizado, funcionara en 
      4Mb. Algunos fueron capaces de arrancar con 2Mb (aunque despues el sistema    
      era incapaz de hacer nada mas :-))                                            
2.6.  ?Como puedo hacer mi propio disco de instalacion?                             
      Realmente, no hay una manera para solo hacer un disco de instalacion          
      personalizado. Hay algun codigo en /usr/src/release/floppies/Makefile que     
      supuestamente es para hacer solo un disco de instalacion personalizado, pero  
      no esta realmente testeado todavia.                                           
2.7.  ?Puedo tener mas de un sistema operativo en mi PC?                            
      Echa un vistazo en La pagina multi-OS.                                        
2.8.  ?Puede Windows 95 coexistir con FreeBSD?                                      
      Instala primero Windows 95 y despues FreeBSD. El boot manager de FreeBSD se   
      encargara de darte la opcion de arrancar con cualquiera de los dos sistemas.  
      Si lo haces al reves, Windows 95 borrara el boot manager sin hacer ninguna    
      pregunta previa. Si ocurre esto, pasa a la siguiente seccion.                 
2.9.  Windows 95 desinstalo mi boot manager! ?Como lo recupero?                     
      Puedes reinstalar el boot manager que viene con FreeBSD de dos maneras:       
                                                                                    
        * Ejecutando el DOS, entra en el directorio tools/ de tu distribucion de    
          FreeBSD y busca el archivo bootinst.exe. Ejecutalo de la siguiente        
          manera:                                                                   
                                                                                    
          bootinst.exe boot.bin                                                     
                                                                                    
          Y el boot manager estara reinstalado.                                     
                                                                                    
          Arranca con el disco de instalacion de FreeBSD y entra en la seccion      
          ``Custom Installation''. Selecciona ``Partition''. Escoge el disco en el  
          cual debe estar instalado el boot manager, y cuando entres en el editor   
          de particiones, sin hacer ningun cambio, selecciona (W)rite. Seras        
          preguntado para confirmar la accion, responde ``si'', y cuando estes en   
          la ventana de ``Boot manager selection'' asegurate de seleccionar ``Boot  
          Manager''. Esto reescribira el boot manager en el disco. Ahora, sal del   
          programa de instalacion y rearranca el computador de la manera habitual.  
2.10. ?Puedo instalar FreeBSD en un disco con sectores erroneos?                    
      La gestion de sectores erroneos por parte de FreeBSD no esta desarrollada     
      todavia al 100% y desgraciadamente debemos decirte que si tienes discos IDE o 
      ESDI con gran cantidad de sectores erroneos, FreeBSD no es para ti. De todas  
      maneras, te aconsejamos que antes de descartar la instalacion, hagas un       
      intento.                                                                      
2.11. Ocurren cosas extranas cuando arranco con el disco de instalacion             
      Si observas cosas como que la maquina se ``cuelga'' o se reinicializa         
      espontaneamente cuando intentas arrancar con el disco de instalacion, aqui    
      tienes tres preguntas que debes responder tu mismo:                           
                                                                                    
       1. ?Estas usando un disco nuevo, recien formateado y libre de errores, o     
          estas usando el disco de publicidad que venia con la revista que lleva    
          guardada varios meses debajo de la cama?                                  
                                                                                    
       2. ?Descargaste por ftp la imagen del disco en modo binario?... (no te       
          preocupes ya que hasta el mejor de nosotros, por lo menos una vez, ha     
          descargado un archivo en modo ASCII).                                     
                                                                                    
       3. Si estas usando uno de esos nuevos sistemas operativos como Windows 95 o  
          Windows NT, debes arrancar la maquina en modo DOS puro, ya que parece ser 
          que los Windows no se llevan bien con los programas que escriben          
          directamente sobre los dispositivos hardware, como hace el programa de    
          creacion de discos de instalacion de FreeBSD.                             
                                                                                    
      Han habido informaciones referentes a problemas al bajar el disco de          
      instalacion con Netscape, por lo que te recomendamos que uses un programa     
      diferente como cliente de ftp.                                                
2.12. !Ayuda! !No puedo instalar desde una cinta!                                   
      Si estas instalando la version 2.1.7R desde una cinta, debes crear esa cinta  
      con un tamano de bloque de tar de 10 (5120 bytes). El tamano por defecto de   
      los bloques tar es de 20 (10240 bytes), y las cintas creadas con este tamano  
      por defecto no pueden ser usadas para instalar FreeBSD 2.1.7R; con estas      
      cintas tendras un error referente a un tamano de registro demasiado grande.   
2.13. Conexion de dos maquinas FreeBSD via puerto paralelo (PLIP)                   
      Coge un cable de laplink y asegurate que ambos computadores tienen un kernel  
      que soporta el puerto paralelo.                                               
                                                                                    
      $ dmesg | grep lp                                                             
      lpt0 at 0x378-0x37f irq 7 on isa                                              
      lpt0: Interrupt-driven port                                                   
      lp0: TCP/IP capable interface                                                 
                                                                                    
                                                                                    
      Conecta el cable en los dos puertos paralelos.                                
                                                                                    
      Configura los parametros de red para el interfaz lp0 (como root) en ambas     
      maquinas. Por ejemplo, si quieres conectar la maquina max y moritz:           
                                                                                    
      max <-----> moritz                                                            
      Direccion IP   10.0.0.1      10.0.0.2                                         
                                                                                    
                                                                                    
      En el arranque de max                                                         
                                                                                    
      # ifconfig lp0 10.0.0.1 10.0.0.2                                              
                                                                                    
                                                                                    
      En el arranque de moritz                                                      
                                                                                    
      # ifconfig lp0 10.0.0.2 10.0.0.1                                              
                                                                                    
                                                                                    
      Esto es todo!!. Por favor, lee los man de lp(4) y lpt(4).                     
                                                                                    
      Tambien deberias anadir las maquinas en el archivo /etc/hosts:                
                                                                                    
      127.0.0.1               localhost.my.domain localhost                         
      10.0.0.1                max.my.domain max                                     
      10.0.0.2                moritz.my.domain moritz                               
                                                                                    
                                                                                    
      Para asegurarte que funciona haz:                                             
                                                                                    
      en max:                                                                       
                                                                                    
      $ ifconfig lp0                                                                
      lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500            
              inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000                         
                                                                                    
                                                                                    
      $ netstat -r                                                                  
      Routing tables                                                                
                                                                                    
      Internet:                                                                     
      Destination        Gateway            Flags     Refs     Use     Netif Expire 
      moritz              max              UH          4   127592       lp0         
                                                                                    
                                                                                    
      $ ping -c 4 moritz                                                            
      PING moritz (10.0.0.2): 56 data bytes                                         
      64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms                      
      64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms                      
      64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms                      
      64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms                      
                                                                                    
      --- moritz ping statistics ---                                                
      4 packets transmitted, 4 packets received, 0% packet loss                     
      round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 ms                    
                                                                                    
2.14. ?Puedo instalar FreeBSD en mi portatil sobre PLIP (Parallel Line IP)?         
      Conecta los dos computadores usando Laplink mediante el puerto paralelo y usa 
      las siguientes caracteristicas:                                               
                                                                                    
      +----------------------------------------+                                    
      |A-name A-End   B-End   Descr.  Port/Bit |                                    
      +----------------------------------------+                                    
      |DATA0  2       15      Data    0/0x01   |                                    
      |-ERROR 15      2               1/0x08   |                                    
      +----------------------------------------+                                    
      |DATA1  3       13      Data    0/0x02   |                                    
      |+SLCT  13      3               1/0x10   |                                    
      +----------------------------------------+                                    
      |DATA2  4       12      Data    0/0x04   |                                    
      |+PE    12      4               1/0x20   |                                    
      +----------------------------------------+                                    
      |DATA3  5       10      Strobe  0/0x08   |                                    
      |-ACK   10      5               1/0x40   |                                    
      +----------------------------------------+                                    
      |DATA4  6       11      Data    0/0x10   |                                    
      |BUSY   11      6               1/0x80   |                                    
      +----------------------------------------+                                    
      |GND    18-25   18-25   GND -            |                                    
      +----------------------------------------+                                    
                                                                                    
                                                                                    
      Mira tambien esta nota en la pagina de informatica movil.                     
2.15. ?Que geometria debo usar para mis discos?                                     
      (Por geometria de un disco, entendemos el numero de cilindros, cabezales y    
      sectores por pista en el disco - de ahora en adelante nos referiremos por     
      conveniencia a estos parametros como C/H/S. Asi es como trabaja el BIOS de    
      los PC's para gestionar la lectura/escritura.                                 
                                                                                    
      Por alguna razon, esto parece crear mucha confusion. Ante todo, la geometria  
      fisica de un disco SCSI es totalmente irrelevante ya que FreeBSD trabaja en   
      terminos de bloques de disco. Con discos IDE, FreeBSD trabaja en terminos de  
      C/H/S, pero todos los discos modernos convierten estos datos en referencias   
      internas de bloques.                                                          
                                                                                    
      Para discos SCSI, la geometria a usar depende de si tenemos activado en la    
      controladora el soporte de translacion (comunmente conocido como "soporte     
      para discos mayores de 1GB" o algo similar). Si esta opcion esta desactivada, 
      entonces usa N cilindros, 64 cabezales y 32 sectores por pista, donde N es la 
      capacidad del disco en MB. Por ejemplo, para un disco de 2GB, los parametros  
      correctos serian 2048 cilindros, 64 cabezales y 32 sectores.                  
                                                                                    
      Si el soporte de translacion esta activado y la capacidad del disco es mayor  
      de 1GB, usa M cilindros, 63 cabezales (*no* 64), y 255 sectores, donde M es   
      la capacidad del disco en MB dividida por 7.844238. Para nuestro ejemplo de   
      un disco de 2GB, los parametros serian 261 cilindros, 62 cabezales y 255      
      sectores.                                                                     
                                                                                    
      Si no estas seguro sobre los parametros a usar, o FreeBSD falla al detectar   
      la geometria correcta del disco durante la instalacion, el metodo mas simple  
      para solucionar este problema es crear una pequena particion DOS en el disco. 
      Entonces, la geometria deberia ser detectada correctamente (y siempre puedes  
      borrar esa particion desde el ``editor de particiones'' si no quieres         
      mantenerla).                                                                  
                                                                                    
      Alternativamente, existe una utilidad de libre distribucion incluida en       
      FreeBSD llamada pfdisk.exe (situada en el directorio tools del CD-ROM de      
      distribucion o en cualquiera de los servidores ftp) que nos dice la geometria 
      del disco usada por el sistema operativo DOS. Lo unico que tenemos que hacer  
      es introducir los datos obtenidos en el editor de particiones de FreeBSD.     
2.16. ?Existe alguna restriccion en como dividir el disco?                          
      Si. Debes asegurarte de que la particion raiz esta por debajo del cilindro    
      1024, para que el BIOS pueda arrancar el kernel desde ella. (Esta es una      
      limitacion del BIOS de los PCs, no de FreeBSD).                               
                                                                                    
      Para discos SCSI, esto implica que la particion raiz debe estar instalada en  
      los primeros 1024MB (o en los primeros 4096MB si la translacion extendida     
      esta activada). Para discos IDE, la particion raiz debe estar en los primeros 
      504MB.                                                                        
2.17. ?Que hay sobre los ``disk managers''?                                         
      FreeBSD reconoce el disk manager Ontrack. Otros disk managers no estan        
      soportados.                                                                   
                                                                                    
      Si quieres usar el disco solo con FreeBSD no necesitas el disk manager. Solo  
      configura el disco para el espacio maximo que pueda manejar el BIOS           
      (usualmente 504MB), y FreeBSD se encargara de averiguar cuanto espacio tienes 
      realmente. Si estas usando un disco antiguo con controladora MFM, necesitaras 
      decirle explicitamente a FreeBSD cuantos cilindros puede usar.                
                                                                                    
      Si quieres usar el disco con FreeBSD y otro sistema operativo, todavia puedes 
      hacerlo sin necesitar un disk manager; solo asegurate de que la particion     
      raiz de FreeBSD y la particion de arranque del otro sistema operativo estan   
      en los primeros 1024 cilindros. Si eres cuidadoso, una particion raiz de 20MB 
      deberia ser suficiente.                                                       
2.18. Cuando arranco FreeBSD obtengo ``Missing Operating System''                   
      Esto es un clasico conflicto entre FreeBSD y DOS u otro sistema operativo     
      sobre sus ideas de geometria.. Tendras que reinstalar FreeBSD, pero teniendo  
      en cuenta la informacion que te damos mas arriba sobre este asunto.           
2.19. No puedo pasar del prompt `F?'.                                               
      Este es otro problema descrito en el parrafo anterior. La geometria de tu     
      BIOS y los datos de configuracion de FreeBSD no coinciden. Si tu controladora 
      o BIOS soporta la translacion de cilindros (tambien conocido como "soporte    
      para discos de mas de 1GB"), intenta activar/desactivar esta opcion y         
      reinstala FreeBSD.                                                            
2.20. Tengo >16MB de RAM. ?Puede causar esto problemas?                             
      Aparte del rendimiento, no. FreeBSD 2.X tiene buffers que permiten al ``bus   
      mastering controller'' acceder a mas de 16MB. (Esto solo es aplicable si      
      estas usando dispositivos ISA).                                               
                                                                                    
      Tambien mira la seccion maquinas con >64M si tienes esta cantidad de memoria  
      o si usas maquinas Compaq u otro BIOS que no da correctamente la cantidad de  
      memoria disponible.                                                           
2.21. ?Necesito instalar todo el codigo fuente?                                     
      En general, no. De todas maneras, te recomendamos que instales, por lo menos, 
      el kit de codigo fuente base, el cual incluye muchos de los archivos aqui     
      mencionados, y el kit sys, que incluye el codigo fuente del kernel. No hay    
      nada en el sistema que requiera el codigo fuente para funcionar, a excepcion  
      del programa de configuracion de kernel config. Con la excepcion de las       
      fuentes del kernel, nuestra estructura esta disenada para que puedas montar   
      una unidad en solo lectura via NFS en la que exista el codigo fuente, y aun   
      asi, ser capaz de compilar los nuevos binarios. (Debido a las restriciones de 
      los fuentes del kernel, recomendamos que no montes estos en /usr/src          
      directamente, sino en cualquier otra parte del disco con los links simbolicos 
      apropiados para duplicar la estructura principal del arbol de directorios     
      original),                                                                    
                                                                                    
      Teniendo los fuentes on-line y sabiendo como crear un sistema con ellas       
      (compilar), te haremos mucho mas facil la actualizacion a futuras versiones   
      de FreeBSD.                                                                   
                                                                                    
      Para seleccionar autenticamente un subconjunto del codigo fuente, usa la      
      opcion Custom del menu desde el menu Distributions de la herramienta de       
      instalacion. El script src/install.sh instalara solo partes de la             
      distribucion del codigo fuente dependiendo de los parametros (argumentos) que 
      se le pasen.                                                                  
2.22. ?Necesito crear un nuevo kernel?                                              
      La creacion de un nuevo kernel era, originariamente, un paso requerido en la  
      instalacion de FreeBSD, pero en las versiones mas recientes nos hemos         
      beneficiado de la introduccion de una herramienta de configuracion de kernel  
      mucho mas amigable. Cuando en el prompt de arranque de FreeBSD (boot:),       
      usamos el parametro "-c", llegamos a una pantalla de configuracion visual la  
      cual permite configurar las opciones del kernel para la mayoria de tarjetas   
      ISA.                                                                          
                                                                                    
      Todavia es recomendable la creacion de un nuevo kernel conteniendo solo los   
      drivers que nos sean necesarios para ahorrar un poco de RAM, pero no es       
      estrictamente necesario para la mayoria de sistemas.                          
2.23. Vivo fuera de USA. ?Puedo usar la encriptacion DES?                           
      Si no es absolutamente necesario que uses la encriptacion DES, puedes usar la 
      encriptacion por defecto de FreeBSD para una mejor seguridad, y sin           
      restricciones de importacion. La encriptacion por defecto de los passwords en 
      FreeBSD esta basada en MD5, y es necesario un mayor uso intensivo de CPU con  
      programas de descubrimiento de passwords que en DES. La unica razon para no   
      usar hoy en dia la encriptacion MD5 seria usar un sistema de passwords        
      compartidos entre sistemas FreeBSD y no FreeBSD.                              
                                                                                    
      Puesto que el algoritmo de encriptacion DES no puede ser legalmente exportado 
      fuera de USA, los usuarios externos a USA NO deberian descargar este software 
      desde los servidores FTP situados en USA.                                     
                                                                                    
      Existe una alternativa para la biblioteca de encriptacion, basada en el       
      codigo escrito en Australia por David Burren. Este codigo esta disponible en  
      algunos mirrors de FreeBSD fuera de USA. El codigo fuente de la biblioteca de 
      encriptacion, y los binarios de los programas que la usan pueden encontrarse  
      en los siguientes servidores FTP:                                             
                                                                                    
      South Africa                                                                  
                                                                                    
         ftp://ftp.internat.FreeBSD.org/pub/FreeBSD                                 
         ftp://storm.sea.uct.ac.za/pub/FreeBSD                                      
                                                                                    
      Brazil                                                                        
                                                                                    
         ftp://ftp.iqm.unicamp.br/pub/FreeBSD                                       
                                                                                    
      Finland                                                                       
                                                                                    
         ftp://nic.funet.fi/pub/unix/FreeBSD/eurocrypt                              
                                                                                    
      Los usuarios de fuera de USA no deben descargar ningun software de            
      encriptacion de servidores situados en USA, ya que de no seguir esta norma    
      los responsables de esos servidores podrian verse envueltos en importantes    
      problemas legales.                                                            
                                                                                    
      Se esta desarrollando una distribucion no estadounidense de Kerberos, cuyas   
      versiones actuales pueden obtenerse via ftp anonimo en braae.ru.ac.za.        
                                                                                    
      Existe tambien una lista de distribucion para la discusion de software de     
      encriptacion externo a USA. Para mas informacion envia un e-mail con una      
      simple linea diciendo "help en el cuerpo del mensaje a:                       
                                                                                    
      <majordomo@braae.ru.ac.za>.                                                   
2.24. El ``boot disc'' arranca pero se cuelga en la pantalla ``Probing Devices...'' 
      Si tienes instalado un ZIP o un Jaz IDE, desconectalo e intentalo de nuevo.   
      El disco de arranque puede haberse confundido con los discos. Una vez el      
      sistema este instalado, puedes volver a conectar los dispositivos. Esperamos  
      que esto sea arreglado en las proximas releases.                              
2.25. Aparece el siguiente error ``panic: can't mount root'' al reiniciar el        
      computador despues de la instalacion                                          
      Este error proviene de la confusion entre los bloques de arranque y lo que ve 
      el kernel en los discos. El error se suele manifestar en sistemas con dos     
      discos IDE, con los discos duros dispuestos como master o ''single'' en       
      controladoras diferentes, estando FreeBSD instalado en la controladora IDE    
      secundaria. Los bloques de arranque piensan que el sistema esta instalado en  
      wd1 (el segundo disco en el BIOS) mientras el kernel asigna el primer disco   
      de la controladora secundaria wd2. Despues de la deteccion de dispositivos,   
      el kernel intenta montar lo que los bloques de arranque piensan que es el     
      disco de arranque, wd1, cuando realmente es el wd2, y falla.                  
                                                                                    
      Para solucionar el problema, haz una de las siguientes cosas:                 
                                                                                    
       1. En el prompt de arranque (boot:), pon 1:wd(2,a)kernel y presiona Enter.   
          Si el sistema arranca, ejecuta el comando:                                
                                                                                    
          echo "1:wd(2,a)kernel" > /boot.config                                     
                                                                                    
                                                                                    
          para actualizar la cadena de arranque por defecto.                        
                                                                                    
       2. Mueve el disco de FreeBSD a la controladora IDE primaria para que los     
          discos sean consecutivos.                                                 
                                                                                    
       3. Crea un nuevo kernel, modifica las lineas de configuracion de wd de la    
          siguiente manera:                                                         
                                                                                    
          controller      wdc0    at isa? port "IO_WD1" bio irq 14 vector wdintr    
          disk            wd0     at wdc0 drive 0                                   
          # disk          wd1     at wdc0 drive 1 # comment out this line           
                                                                                    
          controller      wdc1    at isa? port "IO_WD2" bio irq 15 vector wdintr    
          disk            wd1     at wdc1 drive 0 # change from wd2 to wd1          
          disk            wd2     at wdc1 drive 1 # change from wd3 to wd2          
                                                                                    
                                                                                    
          Instala el nuevo kernel: Si moviste los discos y quieres recuperar la     
          configuracion previa, reemplaza los discos en la configuracion deseada y  
          rearranca el sistema. Tu sistema deberia arrancar sin problemas.          
2.26. ?Cual es el limite de memoria?.                                               
      Para memoria, el limite (teorico) es de 4 gigabytes. Un gigabyte ha sido      
      comprobado y funciona sin problemas: generalmente no se pueden comprar        
      equipos i386 que soporten mas cantidad de memoria.                            
2.27. ?Cual es el limite del sistema de archivos FFS?                               
      Para sistemas de archivos FFS, el maximo teorico esta en 8 terabytes (bloques 
      de 2G), o 16TB para el tamano de bloque por defecto de 8K. En la practica hay 
      un limite ``blando'' de 1 terabyte, pero con pequeaas modificaciones son      
      posibles (y existen) sistemas de archivos de 4 terabytes.                     
                                                                                    
      El tamano maximo de un unico archivo FFS es aproximadamente de 1 Gbloque      
      (4TB) si el tamano del bloque es de 4K.                                       
                                                                                    
      maxfilesize                                                                   
      ----------------------------------                                            
                      2.2.7    3.0                                                  
      fs block size   -stable  -current  works  should-work                         
      -------------   -------  --------  -----  -----------                         
      4K              4T-1       4T-1    4T-1   4+T                                 
      8K              32+G       8T-1    32+G   16T-1                               
      16K             128+G      16T-1   128+G  32T-1                               
      32K             512+G      32T-1   512+G  64T-1                               
      64K             2048+G     64T-1   2048+G 128T-1                              
                                                                                    
                                                                                    
      Cuando el tamano del bloque del sistema de archivos es de 4K, los bloques     
      triple-indirectos funcionan y el limite total deberia venir determinado por   
      el numero maximo de bloques que puede ser representado usando los bloques     
      triple-indirectos (aproximadamente 1K^3 + 1K^2 + 1K), pero el limite total lo 
      establece un limite (incorrecto) de 1G-1 en el numero de bloques. El limite   
      en el numero de bloques deberia ser de 2G-1, pero estos numeros de bloque son 
      inalcanzables cuando los bloques del sistema de archivos son de 4K.           
2.28. ?Como puedo poner archivos de 1TB en un disquete?                             
      El tamano maximo de un archivo no depende directamente del tamano maximo del  
      disco. El tamano maximo del disco es de 1TB. Es una ventaja que el tamano del 
      archivo pueda ser mayor que el tamano del disco.                              
                                                                                    
      El siguiente ejemplo crea un archivo con un tamano de 1TB usando 32K de       
      espacio de disco (3 bloques indirectos y 1 bloque de datos) en una pequena    
      particion raiz.                                                               
                                                                                    
      ttyv0:bde@alphplex:/tmp/q> cat foo                                            
      df .                                                                          
      dd if=/dev/zero of=z bs=1 seek=`echo 2^43 - 2 | bc` count=1                   
      ls -l z                                                                       
      du z                                                                          
      df .                                                                          
      ttyv0:bde@alphplex:/tmp/q> sh foo                                             
      Filesystem  1024-blocks     Used    Avail Capacity  Mounted on                
      /dev/sd0a         64479    27702    31619    47%    /                         
      1+0 records in                                                                
      1+0 records out                                                               
      1 bytes transferred in 0.000187 secs (5346 bytes/sec)                         
      -rw-r--r--  1 bde  bin  8796093022207 Sep  7 16:04 z                          
      32      z                                                                     
      Filesystem  1024-blocks     Used    Avail Capacity  Mounted on                
      /dev/sd0a         64479    27734    31587    47%    /                         
      ttyv0:bde@alphplex:/tmp/q> exit                                               
                                                                                    
                                                                                    
      Bruce Evans, septiembre de 1998                                               
2.29. He compilado un nuevo kernel y al arrancar aparece el error                   
      "archsw.readin.failed".                                                       
      Puedes arrancar especificando el kernel directamente en la segunda fase del   
      boot, pulsando cualquier tecla cuando veas el simbolo | justo antes de que se 
      arranque el cargador (loader). Mas especificamente, has actualizado los       
      fuentes para tu kernel, y lo has creado y actualizado a partir de ellos sin   
      hacer un ``make world''. Asi no funciona. Haz un ``make world''.              

                      Capitulo 3. Compatibilidad hardware

   3.1. ?Que tipo de discos duros soporta FreeBSD?

   3.2. ?Que controladoras SCSI estan soportadas?

   3.3. ?Que lectores CD-ROM soporta FreeBSD?

   3.4. ?Soporta FreeBSD discos ZIP?

   3.5. ?Soporta FreeBSD JAZ, EZ y otros discos removibles?

   3.6. ?Que tarjetas serie multipuerto estan soportadas por FreeBSD?

   3.7. Tengo un tipo de raton no habitual. ?Como lo configuro?

   3.8. ?Como uso mi raton PS/2 (``mouse port'' o ``teclado'')?

   3.9. ?Es posible hacer uso del raton fuera de X Windows?

   3.10. ?Como hago un cut & paste con el raton en una consola de texto?

   3.11. Mi raton tiene una rueda de desplazamiento y botones. ?Puedo usarlo?

   3.12. ?Como uso el mouse/trackball/touchpad en mi portatil?

   3.13. ?Que tipo de dispositivos de cinta estan soportados?

   3.14. ?Soporta FreeBSD ``tape changers''?

   3.15. ?Que tarjetas de sonido estan soportadas por FreeBSD?

   3.16. No obtengo sonido de la tarjeta es1370 con driver pcm

   3.17. ?Que tarjetas de red soporta FreeBSD?

   3.18. No tengo coprocesador matematico - ?es malo?

   3.19. ?Que otros dispositivos soporta FreeBSD 2.X?

   3.20. ?Soporta FreeBSD la administracion de energia en mi portatil?

   3.21. Los sistemas Micron se bloquean al arrancar

   3.22. Tengo una de las controladoras Adaptec mas modernas y FreeBSD no
   puede encontrarla

   3.23. Tengo un modem interno Plug & Play y FreeBSD no lo encuentra

   3.24. ?Como obtengo el prompt ``boot:'' en una consola serie?

   3.25. ?Por que no funciona mi tarjeta de red PCI 3Com con mi computador
   Micron?

   3.26. ?Soporta FreeBSD el multiprocesamiento simetrico (SMP)?

   3.1.  ?Que tipo de discos duros soporta FreeBSD?                            
         FreeBSD soporta discos duros EIDE y SCSI (con controladoras           
         compatibles; mira en la siguiente seccion), y todos los discos que    
         usen el interface original ``Western Digital'' (MFM, RLL, ESDI y por  
         supuesto IDE). Algunas controladoras ESDI que usan interfaces         
         propietarios quiza no funcionen correctamente.                        
   3.2.  ?Que controladoras SCSI estan soportadas?                             
         FreeBSD soporta las siguientes controladoras SCSI:                    
                                                                               
         Adaptec                                                               
                                                                               
            AH-1505 <ISA> AH-152x Series <ISA> AH-154x Series <ISA> AH-174x    
            Series <EISA> Sound Blaster SCSI (AH-152x compat) <ISA>            
            AH-2742/2842 Series <ISA/EISA> AH-2820/2822/2825 Series            
            (Narrow/Twin/Wide) <VLB> AH-294x and aic7870 MB controllers        
            (Narrow/Twin/Wide) <PCI> AH-394x (Narrow/Twin/Wide)                
                                                                               
         Buslogic                                                              
                                                                               
            BT-445 Series <VLB> BT-545 Series <ISA> BT-742 Series <EISA>       
            BT-747 Series <EISA> BT-946 Series <PCI> BT-956 Series <PCI>       
                                                                               
         Future Domain                                                         
                                                                               
            TMC-950 Series <ISA>                                               
                                                                               
         PCI Generic                                                           
                                                                               
            NCR 53C81x based controllers <PCI> NCR 53C82x based controllers    
            <PCI> NCR 53C860/75 based controllers <PCI>                        
                                                                               
         ProAudioSpectrum                                                      
                                                                               
            Zilog 5380 based controllers <ISA> Trantor 130 based controllers   
            <ISA>                                                              
                                                                               
         DTC                                                                   
                                                                               
            DTC 3290 EISA SCSI in AHA-154x emulation.                          
                                                                               
         Seagate                                                               
                                                                               
            ST-01/02 Series <ISA>                                              
                                                                               
         UltraStor                                                             
                                                                               
            UH-14f Series <ISA> UH-24f Series <EISA> UH-34f Series <VLB>       
                                                                               
         Western Digital                                                       
                                                                               
            WD7000 <ISA> <No scatter/gather>                                   
   3.3.  ?Que lectores CD-ROM soporta FreeBSD?                                 
         Esta soportado cualquier disco SCSI conectado a una controladora      
         soportada                                                             
                                                                               
         Los siguientes interfaces de CD-ROM propietarios tambien estan        
         soportados:                                                           
                                                                               
           * Mitsumi LU002 (8bit), LU005 (16bit) and FX001D (16bit 2x Speed).  
                                                                               
           * Sony CDU 31/33A                                                   
                                                                               
           * Sound Blaster Non-SCSI CD-ROM                                     
                                                                               
           * Matsushita/Panasonic CD-ROM                                       
                                                                               
           * ATAPI compatible IDE CD-ROMs                                      
                                                                               
         Todas las tarjetas no SCSI son conocidas por ser extremadamente       
         lentas comparadas con los discos SCSI, y algunos CDROM ATAPI quiza no 
         funcionen correctamente.                                              
                                                                               
         A partir de la version 2.2 de FreeBSD en CDROM de Walnut Creek se     
         soporta el arranque directo (boot) desde el propio CD.                
   3.4.  ?Soporta FreeBSD discos ZIP?                                          
         FreeBSD soporta los ZIP SCSI externos. Las unidades ZIP solo pueden   
         funcionar en los ID's SCSI 5 y 6, pero si el BIOS de tu controladora  
         lo soporta, puedes arrancar desde el. No sabemos que controladoras    
         dejan arrancar desde ID's diferentes de la 0 o 1... mira en tu        
         documentacion y hazmelo saber si te funciona.                         
                                                                               
         Los discos Zip ATAPI (IDE) estan soportados en FreeBSD 2.2.6 y        
         releases posteriores.                                                 
                                                                               
         FreeBSD ha incluido el soporte de discos ZIP por puerto paralelo      
         desde la version 3.0. Si estas usando una version actualizada, debes  
         asegurarte de que tu configuracion del kernel incluye los drivers     
         scbus0, da0, ppbus0 y vp0 (el kernel GENERIC los contiene todos       
         excepto vp0). Con todos estos drivers presentes, el disco por puerto  
         paralelo deberia estar disponible como /dev/da0s4. Los discos se      
         pueden montar usando mount /dev/da0s4 /mnt o (para discos dos)        
         mount_msdos /dev/da0s4 /mnt.                                          
                                                                               
         Tambien mira en discos removibles, y esta nota en 'formatting'.       
   3.5.  ?Soporta FreeBSD JAZ, EZ y otros discos removibles?                   
         Aparte de la version IDE de EZ, todos estos son dispositivos SCSI,    
         por lo que deberian funcionar sin problemas ya que FreeBSD los toma   
         como discos SCSI y el IDE EZ tambien deberia funcionar sin problemas  
         ya que se toma como un disco IDE estandar.                            
                                                                               
         No estoy seguro de como soporta FreeBSD el cambio de soporte mientras 
         esta funcionando. Deberas, desde luego, desmontar la unidad antes de  
         poder cambiar el soporte, y estar seguro de que todas las unidades    
         externas estan encendidas antes de arrancar el computador con FreeBSD 
         para que este pueda reconocerlas.                                     
                                                                               
         Mira esta nota en 'formatting'.                                       
   3.6.  ?Que tarjetas serie multipuerto estan soportadas por FreeBSD?         
         Hay una lista de ellas en la seccion dispositivos varios del manual   
         (handbook).                                                           
                                                                               
         Algunas tarjetas ``sin nombre'' tambien han funcionado, especialmente 
         las que dicen ser compatibles AST.                                    
                                                                               
         Mira la pagina sio para obtener mas informacion sobre la              
         configuracion de estas tarjetas.                                      
   3.7.  Tengo un tipo de raton no habitual. ?Como lo configuro?               
         FreeBSD soporta el ``bus mouse'' y el ``InPort bus mouse'' de         
         fabricantes como Microsoft, Logitech y ATI. El driver de mouse estia  
         compilado en el kernel GENERIC (kernel por defecto que carga el       
         sistema). Si estas haciendote un kernel a medida que incluya el       
         driver de raton, asegurate de anadir la siguiente linea en el archivo 
         de configuracion del kernel:                                          
                                                                               
         device mse0 at isa? port 0x23c tty irq5 vector mseintr                
                                                                               
   3.8.  ?Como uso mi raton PS/2 (``mouse port'' o ``teclado'')?               
         Si estas usando una version reciente de FreeBSD, el driver necesario, 
         psm, esta incluido y activado en el kernel. El propio kernel deberia  
         detectar tu raton PS/2 en el momento de arrancar.                     
                                                                               
         Si estas usando una version antigua, solo tienes que activarlo en la  
         configuracion del kernel en el momento de la instalacion del sistema. 
         Si este ya esta instalado, escribe -c en el prompt boot: y activalo.  
         Por defecto, este driver esta desactivado.                            
                                                                               
         Si estas usando alguna de las versiones mas antiguas, tendras que     
         anadir la siguiente linea en el archivo de configuracion del kernel y 
         compilar uno nuevo:                                                   
                                                                               
         device psm0 at isa? port "IO_KBD" conflicts tty irq 12 vector psmintr 
                                                                               
                                                                               
         Mira la seccion configuracion del kernel si no tienes experiencia en  
         la creacion de nuevos kernel.                                         
                                                                               
         Una vez que el kernel detecta correctamente el dispositivo psm0 al    
         arrancar, asegurate de que existe una entrada en /dev para este       
         dispositivo. Puedes hacerlo tecleando:                                
                                                                               
         cd /dev; sh MAKEDEV psm0                                              
                                                                               
   3.9.  ?Es posible hacer uso del raton fuera de X Windows?                   
         Si estas usando el driver por defecto de la consola, syscons, puedes  
         usar el raton en las consolas de texto para realizar ``cut & paste''. 
         Ejecuta el demonio (daemon) de raton moused y arranca el raton en la  
         consola virtual:                                                      
                                                                               
         moused -p /dev/xxxx -t yyyy                                           
         vidcontrol -m on                                                      
                                                                               
                                                                               
         donde xxxx es el nombre del dispositivo del raton e yyyy es un tipo   
         de protocolo para el raton. Mira en moused para saber los tipos de    
         protocolo soportados.                                                 
                                                                               
         Si quieres ejecutar el demonio moused automaticamente al arrancar el  
         sistema, activa las siguientes variables en /etc/sysconfig (para      
         version 2.2.1).                                                       
                                                                               
         mousedtype="yyyy"                                                     
         mousedport="xxxx"                                                     
         mousedflags=""                                                        
                                                                               
                                                                               
         En versiones 2.2.2 o superiores, activa las siguientes variables en   
         /etc/rc.conf.                                                         
                                                                               
         moused_type="yyyy"                                                    
         moused_port="xxxx"                                                    
         moused_flags=""                                                       
                                                                               
                                                                               
         A partir de la version 2.2.6, el demonio del raton es capaz de        
         determinar automaticamente el protocolo correcto a utilizar. Solo     
         tienes que especificar auto como el protocolo a usar.                 
                                                                               
         Cuando el demonio de raton esta funcionando, el acceso al raton       
         necesita coordinarse con otros programas como X Window. Mira en esta  
         seccion para mas informacion.                                         
   3.10. ?Como hago un cut & paste con el raton en una consola de texto?       
         Una vez que tengas el demonio del raton funcionando (mira la seccion  
         anterior, pulsa el boton 1 (izquierdo) y mueve el raton para          
         seleccionar la region de texto. A continuacion, pulsa el boton 2      
         (medio) o 3 (derecho) para hacer un paste (pegar) de la region        
         seleccionada en el lugar en el que tengamos situado el cursor.        
                                                                               
         En versiones 2.2.6 o superiores, pulsando el boton 2 hara un paste    
         del texto seleccionado. Pulsando el boton 3 extenderemos la region    
         seleccionada de texto. Si tu raton no tiene el boton medio, puedes    
         emularlo o ``remapear'' (reconfigurar) los botones de tu raton con    
         las opciones del demonio moused. Mira en moused para mas informacion. 
   3.11. Mi raton tiene una rueda de desplazamiento y botones. ?Puedo usarlo?  
         La respuesta es, desafortunadamente, ``depende''. Estos ratones con   
         caracteristicas adicionales requieren en muchos casos drivers propios 
         y especializados. A no ser que el driver de dispositivo o el programa 
         de usuario tenga soporte especifico, el raton se comportara como un   
         raton normal y corriente.                                             
   3.12. ?Como uso el mouse/trackball/touchpad en mi portatil?                 
         Por favor, mira en la respuesta anterior. Mira tambien esta nota en   
         la seccion de computadores portatiles.                                
   3.13. ?Que tipo de dispositivos de cinta estan soportados?                  
         FreeBSD soporta unidades SCSI, QIC-36 (con interfaz QIC-02) y         
         QIC-40/80 (interfaz floppy). Esto inclye dispositivos de 8mm          
         (conocidos como Exabyte) y dispositivos DAT. Los QIC-40/80 son        
         conocidos por su lentitud.                                            
                                                                               
         Algunos de los dispositivos de 8mm primitivos no son totalmente       
         compatibles con SCSI2 por lo que puede que no funcionen correctamente 
         en FreeBSD.                                                           
   3.14. ?Soporta FreeBSD ``tape changers''?                                   
         FreeBSD 2.2 soporta SCSI changers usando el dispositivo ch y el       
         comando chio. Los detalles acerca de como controlar realmente el      
         changer se encuentran en chio.                                        
   3.15. ?Que tarjetas de sonido estan soportadas por FreeBSD?                 
         FreeBSD soporta las tarjetas SoundBlaster, SoundBlaster Pro,          
         SoundBlaster 16, Pro Audio Spectrum 16, AdLib y Gravis Ultrasound.    
         Hay tambien soporte limitado para la tarjeta MPU-401 y compatibles    
         midi. Las tarjetas SoundBlaster 16 ASP todavia no son soportadas. El  
         Microsoft Sound System si esta soportado.                             
                                                                               
         NOTA: !Esto es solo para sonido! Este driver no soporta CD-ROMs, SCSI 
         o joysticks en estas tarjetas, a excepcion de la SoundBlaster. El     
         interface SCSI de SoundBlaster y algunos CD-ROMs no SCSI estan        
         soportados, pero no podras arrancar el sistema desde ellos.           
   3.16. No obtengo sonido de la tarjeta es1370 con driver pcm                 
         Puedes ejecutar el siguiente mandato cada vez que arranques el        
         sistema:                                                              
                                                                               
         mixer pcm 100 vol 100 cd 100                                          
   3.17. ?Que tarjetas de red soporta FreeBSD?                                 
         Mira la seccion de tarjetas Ethernet en el manual para una lista mas  
         completa.                                                             
                                                                               
         de driver                                                             
                                                                               
            DEC DC21x40 and compatible PCI controllers (including 21140 100bT  
            cards)                                                             
                                                                               
         ed driver                                                             
                                                                               
            NE2000 and 1000 WD/SMC 8003, 8013 and Elite Ultra (8216) 3Com      
            3c503 HP 27247B and 27252A And clones of the above                 
                                                                               
         le driver                                                             
                                                                               
            DEC EtherWORKS II and EtherWORKS III controllers                   
                                                                               
         ie driver                                                             
                                                                               
            AT&T EN100/StarLAN 10 3COM 3c507 Etherlink 16/TP NI5210 Intel      
            EtherExpress                                                       
                                                                               
         is driver                                                             
                                                                               
            Isolan AT 4141-0 Isolink 4110                                      
                                                                               
         el driver                                                             
                                                                               
            3com 3c501 (does not support Multicast or DMA)                     
                                                                               
         eg driver                                                             
                                                                               
            3com 3c505 Etherlink/+                                             
                                                                               
         ze driver                                                             
                                                                               
            IBM PCMCIA credit card adapter                                     
                                                                               
         lnc drive                                                             
                                                                               
            Lance/PCnet cards (Isolan, Novell NE2100, NE32-VL)(*)              
                                                                               
         ep driver                                                             
                                                                               
            3com 3c509 (Must disable PNP support on card)                      
                                                                               
         cx driver                                                             
                                                                               
            Cronyx/Sigma multiport Sync/Async (Cisco and PPP framing)          
                                                                               
         zp driver                                                             
                                                                               
            3Com PCMCIA Etherlink III (aka 3c589)(A-C only)                    
                                                                               
         fea driver                                                            
                                                                               
            DEC DEFEA EISA FDDI controller                                     
                                                                               
         fpa driver                                                            
                                                                               
            DEC DEFPA PCI FDDI controller                                      
                                                                               
         fe driver                                                             
                                                                               
            Fujitsu MB86960A/MB86965A Ethernet cards                           
                                                                               
         NOTA Los drivers marcados con (*) pueden tener problemas.             
                                                                               
         NOTA: 3C598D NO esta soportada todavia.                               
                                                                               
         NOTA: FreeBSD tambien soporta TCP/IP sobre lineas paralelo. En estos  
         momentos, no somos compatibles con otras versiones, pero esperamos    
         corregirlo en un futuro cercano. Encontraras mas informacion sobre    
         este tema en la pagina man de lp(4).                                  
                                                                               
         NOTA: Algunas de estas tarjetas requieren una particion DOS en el     
         disco duro para ejecutar el programa de configuracion.                
   3.18. No tengo coprocesador matematico - ?es malo?                          
         NOTA: Esto solo afectara a los computadores 386/486SX/486SLC. El      
         resto de los microprocesadores tienen un coprocesador integrado.      
                                                                               
         En general, esto no causara problemas, pero hay circunstancias en las 
         que pudieras echarlo de menos, especialmente si trabajas en entorno X 
         Window. Si puedes, te recomendamos que compres uno y lo instales en   
         tu computador.                                                        
   3.19. ?Que otros dispositivos soporta FreeBSD 2.X?                          
         Aqui hay una lista de drivers que no se han podido catalogar en las   
         categorias anteriores.                                                
                                                                               
         b004.c                                                                
                                                                               
            Driver for B004 compatible Transputer boards                       
                                                                               
         ``ctx'' driver                                                        
                                                                               
            Driver for CORTEX-I Frame grabber                                  
                                                                               
         ``gp'' driver                                                         
                                                                               
            Driver for National Instruments AT-GPIB and AT-GPIB/TNT boards     
                                                                               
         ``pca'' driver                                                        
                                                                               
            Driver for PC speakers to allow the playing of audio files         
                                                                               
         ``spigot'' driver                                                     
                                                                               
            Driver for the Creative Labs Video Spigot                          
                                                                               
         gsc driver                                                            
                                                                               
            Driver for the Genuis GS-4500 Hand scanner                         
                                                                               
         joy driver                                                            
                                                                               
            Driver for a joystick                                              
                                                                               
         labpc driver                                                          
                                                                               
            Driver for National Instrument's Lab-PC and Lab-PC+                
                                                                               
         ``uart'' driver                                                       
                                                                               
            Stand-alone 6850 UART for MIDI                                     
                                                                               
         psm driver                                                            
                                                                               
            PS/2 mouse port                                                    
                                                                               
         tw.c                                                                  
                                                                               
            Driver for the X-10 POWERHOUSE                                     
   3.20. ?Soporta FreeBSD la administracion de energia en mi portatil?         
         FreeBSD soporta APM en algunas maquinas. Por favor, mira en el        
         archivo de configuracion del kernel LINT y busca la parabra APM       
   3.21. Los sistemas Micron se bloquean al arrancar                           
         Algunas placas base Micron tienen una implementacion de PCI en el     
         BIOS que no es estandar, lo que provoca que FreeBSD no pueda          
         encontrar los dispositivos PCI en las direcciones en las que deberian 
         estar.                                                                
                                                                               
         Desactiva la opcion ``Plug and Play Operating System'' en el BIOS     
         para solucionar el problema. Puedes encontrar mas informacion en:     
         http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron          
   3.22. Tengo una de las controladoras Adaptec mas modernas y FreeBSD no      
         puede encontrarla                                                     
         Las nuevas controladoras Adaptec con chipset de la serie AIC789x      
         estan soportados bajo la nueva CAM SCSI que hace su debut en la       
         version 3.0 de FreeBSD. Los parches para las versiones 3.0-CURRENT y  
         2.2-STABLE estan en:                                                  
         ftp://ftp.FreeBSD.org/pub/FreeBSD/development/cam/. Un disco de       
         arranque con soporte CAM esta disponible en:                          
         http://www.FreeBSD.org/~abial/cam-boot/. En ambos casos lee el        
         archivo README antes de empezar.                                      
   3.23. Tengo un modem interno Plug & Play y FreeBSD no lo encuentra          
         Necesitaras anadir el ID del modem PnP a la lista de ID PnP en el     
         driver serie. Para activar el soporte PnP, compila un nuevo kernel    
         con controller pnp0 en el archivo de configuracion y rearranca el     
         sistema. El kernel mostrara en pantalla los IDs de todos los          
         dispositivos PnP que encuentre. Copia el ID del modem en la tabla del 
         archivo /sys/i386/isa/sio.c, sobre la linea 2777. Busca la cadena     
         "SUP1310" en la estructura "siopnp_ids[]" para encontrar la tabla.    
         Genera un nuevo kernel, instalalo y rearranca. Tu modem deberia ser   
         encontrado.                                                           
                                                                               
         Quiza tengas que configurar manualmente los dispositivos PnP usando   
         el comando ``pnp'' en la configuracion de arranque usandolo de la     
         siguiente manera:                                                     
                                                                               
         pnp 1 0 enable os irq0 3 drq0 0 port0 0x2f8                           
                                                                               
   3.24. ?Como obtengo el prompt ``boot:'' en una consola serie?               
          1. Crea un nuevo kernel con options COMCONSOLE.                      
                                                                               
          2. Crea el archivo /boot.config y pon -P como unico texto en el      
             archivo.                                                          
                                                                               
          3. Desconecta el teclado del computador.                             
                                                                               
         Mira el archivo /usr/src/sys/i386/boot/biosboot/README.serial para    
         mas informacion.                                                      
   3.25. ?Por que no funciona mi tarjeta de red PCI 3Com con mi computador     
         Micron?                                                               
         Algunas placas base Micron tienen una implementacion de PCI en el     
         BIOS que no es estandar, lo que provoca que FreeBSD no pueda          
         encontrar los dispositivos PCI en las direcciones en las que debieran 
         estar.                                                                
                                                                               
         Para solucionar el problema, desactiva la opcion ``Plug and Play      
         Operating System'' en el BIOS.                                        
                                                                               
         Puedes encontrar mas informacion sobre este problema en               
         http://cesdis.gsfc.nasa.gov/linux/drivers/vortex.html#micron          
   3.26. ?Soporta FreeBSD el multiprocesamiento simetrico (SMP)?               
         SMP solo esta soportado a partir de la version 3.0-STABLE             

                             Capitulo 4. Problemas

   4.1. Tengo bloques erroneos en mi disco duro!

   4.2. FreeBSD no reconoce mi Bustek 742a EISA SCSI!

   4.3. Mi controladora SCSI HP Netserver's no es detectada!

   4.4. ?Que ocurre con la controladora IDE CMD640?

   4.5. Tengo mensajes como ``ed1: timeout''.

   4.6. Cuando monto el CDROM, obtengo ``Incorrect super block''.

   4.7. Cuando monto un CDROM, obtengo ``Device not configured''.

   4.8. Mi impresora es ridiculamente lenta. ?Que puedo hacer?

   4.9. Mis programas ocasionalmente mueren con errores ``Signal 11''.

   4.10. Cuando arranco, la pantalla queda negra!

   4.11. Tengo 128MB de RAM pero el sistema solo usa 64MB.

   4.12. FreeBSD 2.0 aborta con ``kmem_map too small!''

   4.13. ``CMAP busy panic'' al arrancar con un nuevo kernel.

   4.14. ahc0: brkadrint, Illegal Host Access at seqaddr 0x0

   4.15. Sendmail dice ``mail loops back to myself''

   4.16. No funcionan correctamente las aplicaciones a pantalla completa en
   maquinas remotas

   4.17. Aparece el mensaje de error "calcru: negative time..."

4.1.  Tengo bloques erroneos en mi disco duro!                                   
      Los discos SCSI deberian ser capaces de marcar estos bloques erroneos      
      automaticamente para que no presenten problemas. Algunos discos, por       
      alguna razon desconocida, se venden con esta caracteristica desactivada.   
                                                                                 
      Para activar esta opcion, tendras que editar una de las opciones del       
      dispositivo, lo que puede ser hecho con FreeBSD tecleando el siguiente     
      comando (como root):                                                       
                                                                                 
      scsi -f /dev/rsd0c -m 1 -e -P 3                                            
                                                                                 
                                                                                 
      y cambiando los valores de AWRE y ARRE de 0 a 1:-                          
                                                                                 
      AWRE (Auto Write Reallocation Enbld):  1                                   
      ARRE (Auto Read Reallocation Enbld):  1                                    
                                                                                 
                                                                                 
      Para otros tipos de discos, dependes de las caracteristicas de los         
      sistemas operativos. Desafortunadamente, el comando "bad144" que se        
      incluye en FreeBSD, necesita ser desarrollado mas en profundidad.          
                                                                                 
      Se supone que los discos IDE incluyen de serie la posibilidad de           
      "remapear" los bloques danados; si tienes documentacion de tu disco,       
      podras ver si esta opcion esta activada o desactivada.                     
4.2.  FreeBSD no reconoce mi Bustek 742a EISA SCSI!                              
      Esta informacion es especifica para la tarjeta 742a, pero puede ser        
      aplicable a otras tarjetas Buslogic. (Bustek = Buslogic)                   
                                                                                 
      Existen dos versiones de la tarjeta 742a. Son revisiones de hardware A-G y 
      H. La letra de revision esta situada despues del numero de ensamblaje. La  
      742a tiene 2 ROMs, una es el BIOS y la otra es el Firmware. FreeBSD no se  
      fija en la version de BIOS de la tarjeta, pero si en la de Firmware.       
      Buslogic te enviara una actualizacion de de las ROMs si te pones en        
      contacto con su departamento tecnico. La BIOS y el Firmware son            
      distribuidas de manera inseparable. Deberias tener la version de Firmware  
      mas actualizada para la revision de hardware de tu tarjeta.                
                                                                                 
      Las tarjetas con revision A-G solo pueden aceptar BIOS/Firmware 2.41/2.21. 
      La revision H y superiores pueden aceptar las versiones mas actuales       
      4.70/3.37. La diferencia entre las versiones de Firmware es que la 3.38    
      soporta "round robin".                                                     
                                                                                 
      Las tarjetas Buslogic tienen un numero de serie serigrafiado en ellas. Si  
      tienes una revision de hardware antigua, puedes llamar al departamento de  
      RMA de Buslogic y darles el numero de serie de la tarjeta para intentar    
      cambiarla por una revision superior del hardware.                          
                                                                                 
      FreeBSD 2.1 solo soporta revisiones de Firmware 2.21 o superiores. Si      
      tienes una version inferior, tu tarjeta no sera reconocida como Buslogic.  
      Quizas sea reconocida como una Adaptec 1540. Las primeras versiones de     
      Firmware de Buslogic contienen una modo de emulacion de la AHA1540.        
                                                                                 
      Si tienes una revision de hardware antigua y consigues una mas actual      
      (2.21), necesitaras chequear la posicion del jumper W1 y asegurarte que    
      esta en la posicion B-C (por defecto esta en B-C).                         
4.3.  Mi controladora SCSI HP Netserver's no es detectada!                       
      Este es un problema ya conocido. Las controladoras SCSI EISA integradas en 
      la placa base en las maquinas HP Netserver, ocupan el slot numero 11. El   
      espacio de direcciones para los slots EISA >=10 colisionan con los         
      espacios de direcciones asignados para los dispositivos PCI, y la          
      autoconfiguracion de FreeBSD no maneja esta situacion demasiado bien.      
                                                                                 
      Lo mejor que puedes hacer es pretender que no existan clases de rangos de  
      direcciones :), cambiando el valor de la opcion del kernel EISA_SLOTS a un 
      valor de 12. Configura y compila un nuevo kernel como se describe en la    
      entrada correspondiente del manual.                                        
                                                                                 
      Por supuesto, esto presenta un pequeno problema. Para poder solucionarlo,  
      es necesario un truco en la utilidad de configuracion. No uses el          
      interface "visual", simplemente teclea lo siguiente en la linea de comando 
      de la utilidad                                                             
                                                                                 
      eisa 12                                                                    
      quit                                                                       
                                                                                 
                                                                                 
      Esperamos que en las proximas versiones tengamos solucionados estos temas. 
4.4.  ?Que ocurre con la controladora IDE CMD640?                                
      No funciona. No puede manejar comandos en los dos canales simultaneamente. 
                                                                                 
      Hay una solucion posible y se activa automaticamente si tu sistema usa     
      este chip. Para mas detalles, referirse al man del driver de discos (man 4 
      wd).                                                                       
                                                                                 
      Si todavia estas usando FreeBSD 2.2.1 o 2.2.2 con una controladora IDE     
      CMD640 y quieres usar el segundo canal, crea un nuevo kernel con options   
      "CMD640" activada. Esta es la opcion por defecto en la version 2.2.5 y     
      superiores.                                                                
4.5.  Tengo mensajes como ``ed1: timeout''.                                      
      Esto, normalmente es causado por conflictos de interrupciones (por         
      ejemplo, dos tarjetas usando la misma IRQ). Las versiones anteriores a la  
      2.0.5R eran tolerantes con los problemas de conflictos de IRQ. A partir de 
      esa version, los conflictos de IRQ ya no son tolerados. Arranca con la     
      opcion -c y cambia la entrada correspondiente a tu tarjeta.                
                                                                                 
      Si estas usando conectores BCN en tu tarjeta de red, el mensaje de error   
      puede ser debido a una mala terminacion de la red. Para chequear esto,     
      conecta un terminador directamente a la salida BNC de la tarjeta (sin      
      cable) y mira si el mensaje desaparece.                                    
4.6.  Cuando monto el CDROM, obtengo ``Incorrect super block''.                  
      Tienes que indicar el tipo de dispositivo que quieres montar. Por defecto  
      mount asumira que el dispositivo que quieres montar es ``ufs''. Si quieres 
      montar un CDROM, tienes que especificar -t cd9660. Esto hace que el        
      sistema asuma que tiene que montar un sistema de archivos con formato ISO  
      9660 que es lo que los CDROM deben tener.                                  
                                                                                 
      Como ejemplo, si quieres montar una unidad CDROM, /dev/cd0c, bajo /mnt,    
      tienes que ejecutar                                                        
                                                                                 
      mount -t cd9660 /dev/cd0c /mnt                                             
                                                                                 
                                                                                 
      Ten en cuenta que el nombre de tu dispositivo (/dev/cd0c en este ejemplo)  
      puede ser diferente dependiendo del interface que estes usando. El comando 
      anterior puede ser acortado tecleando:                                     
                                                                                 
      mount_cd9660 /dev/cd0c /mnt                                                
                                                                                 
4.7.  Cuando monto un CDROM, obtengo ``Device not configured''.                  
      Esto, generalmente, significa que no hay ningun disco en el lector de      
      CDROM. Tambien puede significar que el lector no es visible para el bus.   
      Chequea que esta bien configurado en lo referente a master/slave si es IDE 
      (ATAPI).                                                                   
                                                                                 
      Algunas veces un CDROM SCSI puede "desaparecer" por que no ha tenido       
      tiempo suficiente para responder a un reset del bus. Si tienes un CDROM    
      SCSI, anade la siguiente linea en el archivo de configuracion del kernel y 
      recompilalo.                                                               
                                                                                 
      options "SCSI_DELAY=15"                                                    
                                                                                 
4.8.  Mi impresora es ridiculamente lenta. ?Que puedo hacer?                     
      Si es paralelo, y el unico problema es la lentitud, intenta configurar el  
      puero de impresora en modo "polled":                                       
                                                                                 
      lptcontrol -p                                                              
                                                                                 
                                                                                 
      Algunas impresoras nuevas de HP son conocidas por no trabajar              
      correctamente en modo de interrupcion, aparentemente debido (y todavia no  
      exactamente entendido), a un problema de "timing".                         
4.9.  Mis programas ocasionalmente mueren con errores ``Signal 11''.             
      Esto puede ser por hardware erroneo (memoria, placa base, etc). Intenta    
      ejecutar algun programa de test de memoria. Ten en cuenta que es posible   
      que tu memoria pase el test del programa que uses, pero que falle en       
      algunas condiciones de uso, como en compilacion de kernel.                 
                                                                                 
      La FAQ SIG11 (listada mas abajo) apunta a problemas de lentitud de         
      memoria. Incrementa el numero de "wait states" en tu BIOS o instala una    
      memoria mas rapida.                                                        
                                                                                 
      Tambien puedes intentar desactivar el cache de placa base en el BIOS y     
      comprueba si se resuelve el problema.                                      
                                                                                 
      Hay una extensa FAQ en the SIG11 problem FAQ                               
4.10. Cuando arranco, la pantalla queda negra!                                   
      Este es un problema conocido con las tarjetas de video ATI Mach 64. El     
      problema es que esta tarjeta usa la direccion 2e8, tambien usada por el    
      puerto serie 4. Debido a un bug (feature?) en el driver sio.c , este       
      "tocara" este puerto aunque no este instalado o este desactivado.          
                                                                                 
      Hasta que el problema sea fijado, puedes hacer esto:                       
                                                                                 
       1. Teclea -c en el prompt de arranque. Esto te llevara a la seccion de    
          configuracion del kernel.                                              
                                                                                 
       2. Desactiva sio0, sio1, sio2 y sio3 (todos ellos). De esta manera, el    
          driver sio no se activa.                                               
                                                                                 
       3. Teclea exit para seguir arrancando.                                    
                                                                                 
      Si quieres ser capaz de usar tus puertos serie, tendras que compilar un    
      nuevo kernel con la siguiente modificacion: /usr/src/sys/i386/isa/sio.c.   
      Busca la cadena 0x2e8 y borra esta cadena y la coma anterior (manten la    
      coma siguiente). Ahora, compila un nuevo kernel de la manera habitual.     
                                                                                 
      Despues de realizar estos cambios, puedes encontrarte aun que las X Window 
      no funcionan correctamente. Algunas tarjetas de video modernas ATI Mach 64 
      (especialmente la ATI Mach Xpression) no funcionan con la version actual   
      de XFree86; la pantalla se queda negra cuando arrancas las X o ocurren     
      cosas extranas en su funcionamiento. Puedes instalar una version beta del  
      nuevo servidor X que trabaja mejor, situada en el servidor XFree86 y       
      seguir los links hasta el download. Coge los siguientes archivos:          
                                                                                 
      AccelCards, BetaReport, Cards, Devices, FILES, README.ati, README.FreeBSD, 
      README.Mach64, RELNOTES, VGADriver.Doc, X312BMa64.tgz                      
                                                                                 
      Reemplaza los viejos archivos por las nuevas versiones y asegurate de      
      ejecutar de nuevo xf86config.                                              
4.11. Tengo 128MB de RAM pero el sistema solo usa 64MB.                          
      Debido a la forma que tiene FreeBSD de "ver" el tamano de memoria en el    
      BIOS, solo puede detectar 16 bits (65535 Kbytes = 64MB) (o menos...        
      algunas BIOS fijan el tamano de la memoria a 16MB).                        
                                                                                 
      Para solucionar este problema, tienes que usar la opcion del kernel        
      indicada mas adelante. Hay una manera de ver la informacion completa sobre 
      memoria en el BIOS, pero no tenemos espacio en los bloques de arranque     
      (bootblocks) para hacerlo. Por ahora, tenemos que trabajar con la opcion   
      del kernel.                                                                
                                                                                 
      options "MAXMEM=<n>"                                                       
                                                                                 
      Donde n es tu memoria en Kilobytes. Para 128MB, tendrias que usar 131072.  
4.12. FreeBSD 2.0 aborta con ``kmem_map too small!''                             
      Nota El mensaje deberia ser ``mb_map too small!''                          
                                                                                 
      La parada indica que el sistema no tiene memoria virtual suficiente para   
      los buffers de red (especificamente, clusters mbuf). Puedes incrementar la 
      cantidad de memoria virtual disponible para los clusters mbuf anadiendo:   
                                                                                 
      options "NMBCLUSTERS=<n>"                                                  
                                                                                 
      al archivo de configuracion del kernel, donde <n> es un numero en el rango 
      512-4096, dependiendo del numero de conexiones tcp simultaneas que         
      necesites soportar. Te recomendamos intentar con 2048. Puedes monitorizar  
      el numero de clusters mbuf en uso con la orden netstat -m.                 
4.13. ``CMAP busy panic'' al arrancar con un nuevo kernel.                       
      El programa que intenta detectar archivos /var/db/kvm_*.db puede fallar y  
      provocar el "panic" en el arranque.                                        
                                                                                 
      Si esto ocurre, arranca en mono-usuario y haz:                             
                                                                                 
      rm /var/db/kvm_*.db                                                        
                                                                                 
4.14. ahc0: brkadrint, Illegal Host Access at seqaddr 0x0                        
      Esto significa un conflicto con una controladora Ultrastor SCSI.           
                                                                                 
      Durante el proceso de arranque, entra en el menu de configuracion del      
      kernel y desactiva el dispositivo uha0.                                    
4.15. Sendmail dice ``mail loops back to myself''                                
      Esto esta contestado en la FAQ de sendmail de la siguiente manera:         
                                                                                 
                  * Tengo el error "Local configuration error" :                 
                                                                                 
                  553 relay.domain.net config error: mail loops back to myself   
                  554 <user@domain.net>... Local configuration error             
                                                                                 
                  Como puedo solventar el problema?                              
                                                                                 
                  Has intentado enviar un mail al dominio domain.net y que sea   
                  reenviado a un host especifico (en este caso relay.domain.net) 
                  usando un registro MX, pero la maquina que tiene que aceptar   
                  ese mail, no reconoce el domimio como propio. Anade            
                  domain.net al archivo /etc/sendmail.cw (si estas usando        
                  FEATURE(use_cw_file) o anade "Cw domain.net" al archivo        
                  sendmail.cf                                                    
                                                                                 
                                                                                 
      La version actual de la FAQ de sendmail puede ser encontrada en            
      comp.mail.sendmail, comp.mail.misc, comp.mail.smail, comp.answers, y       
      news.answers. Tambien puedes recibir una copia enviando un mail a          
      mail-server@rtfm.mit.edu con el comando "send                              
      usenet/news.answers/mail/sendmail-faq" en el cuerpo del mensaje.           
4.16. No funcionan correctamente las aplicaciones a pantalla completa en         
      maquinas remotas                                                           
      Quizas la maquina remota tiene el tipo de terminal diferente de cons25 que 
      es el usado por la consola de FreeBSD.                                     
                                                                                 
      Hay diferentes maneras de solucionar este problema:                        
                                                                                 
        * Despues de hacer el login en la maquina remota, configura la variable  
          SHELL como ANSI o sco.                                                 
                                                                                 
        * Usa el emulador VT100 como screen local. screen te permite la          
          posibilidad de ejecutar multiples y concurrentes sesiones desde un     
          terminal.                                                              
                                                                                 
        * Instala la base de datos del terminal cons25 en la maquina remota.     
                                                                                 
        * Lanza las X y haz el login en la maquina remota desde xterm.           
4.17. Aparece el mensaje de error "calcru: negative time..."                     
      Esto puede ser causado por varios problemas de hardware o software         
      relacionados con las interrupciones. Utilizar TCP/IP sobre el puerto       
      paralelo con un MTU muy grande es una buena manera de provocar este error. 
      Las tarjetas graficas aceleradoras tambien lo pueden provocar, teniendo    
      que revisar la interrupcion utilizada por la tarjeta.                      
                                                                                 
      El efecto de este error es que los procesos mueren con el mensaje "SIGXCPU 
      exceeded cpu time limit".                                                  
                                                                                 
      Para FreeBSD 3.0 y posteriores desde el 29 de Noviembre de 1998: si el     
      problema no puede fijarse de otra manera, la solucion es poner la variable 
      sysctl a:                                                                  
                                                                                 
      sysctl -w kern.timecounter.method=1                                        
                                                                                 
                                                                                 
      Esto puede significar un impacto en el rendimiento del sistema, pero       
      considerando la causa del problema, probablemente no lo notaras. Si el     
      problema persiste, manten la variable sysctl a uno y anade la opcion       
      "NTIMECOUNTER" en tu kernel para aumentar su valor. Si finalmente llegas a 
      un valor de "NTIMECOUNTER=20" el problema no esta resuelto, y las          
      interrupciones estan demasiado saturadas para ofrecer un buen rendimiento. 

                      Capitulo 5. Aplicaciones Comerciales

   NOTA Esta seccion esta todavia poco desarrollada, por lo que esperamos que
   las companias nos ayuden a completarla :) . El grupo de FreeBSD no tiene
   ningun interes financiero en ninguna de las empresas aqui listadas,
   simplemente estan como servicio publico (y creemos que el interes
   comercial por FreeBSD puede tener efectos muy positivos en la viabilidad a
   largo termino). Animamos a las empresas desarrolladoras de software que
   nos envien su informacion para ser incluidas en esta lista.

   5.1. ?Donde puedo obtener Motif para FreeBSD?

   5.2. ?Donde puedo conseguir CDE para FreeBSD?

   5.3. ?Hay algun servidor X comercial de altas prestaciones?

   5.4. ?Hay algun sistema de base de datos para FreeBSD?

   5.5. ?Puedo usar Oracle en FreeBSD?

   5.1. ?Donde puedo obtener Motif para FreeBSD?                              
        Contacta con Apps2go para una distribucion de Motif ELF 2.1 para      
        FreeBSD.                                                              
                                                                              
        Esta distribucion incluye:                                            
                                                                              
          * OSF/Motif manager, xmbind, panner, wsm.                           
                                                                              
          * Kit de desarrollo con uil, mrm, xm, xmcxx, includes y archivos    
            Imake.                                                            
                                                                              
          * Librerias ELF estaticas y dinamicas (para usar con FreeBSD 3.0 y  
            posteriores).                                                     
                                                                              
          * Applets demostrativos.                                            
                                                                              
        Asegurate de especificar que deseas la distribucion para FreeBSD      
        cuando hagas el pedido. Tambien se distribuyen versiones para NetBSD  
        y OpenBSD por Apps2go. La distribucion solo esta disponible por FTP.  
                                                                              
        Mas informacion                                                       
                                                                              
           Pagina web de Apps2go                                              
                                                                              
        o                                                                     
                                                                              
           Ventas o Soporte                                                   
                                                                              
        o                                                                     
                                                                              
           telefono (817) 431 8775 o +1 817 431-8775                          
                                                                              
        Contacta con Metro Link para obtener una distribucion de Motif 2.1    
        ELF o a.out para FreeBSD.                                             
                                                                              
        Esta distribucion incluye:                                            
                                                                              
          * OSF/Motif manager, xmbind, panner, wsm.                           
                                                                              
          * Kit de desarrollo con uil, mrm, xm, xmcxx, includes y archivos    
            Imake.                                                            
                                                                              
          * Librerias estaticas y dinamicas (especifica ELF para FreeBSD 3.0  
            y superior o a.out para FreeBSD 2.2.8 o anterior).                
                                                                              
          * Applets demostrativos.                                            
                                                                              
          * Paginas man preformateadas.                                       
                                                                              
        Asegurate de especificar que deseas la distribucion para FreeBSD      
        cuando hagas el pedido. Tambien se distribuyen versiones para Linux   
        por Metro Link. La distribucion esta disponible en CDROM o via FTP.   
                                                                              
        Contacta con Xi Graphics para una distribucion de Motif a.out 2.0     
        para FreeBSD.                                                         
                                                                              
        Esta distribucion incluye:                                            
                                                                              
          * OSF/Motif manager, xmbind, panner, wsm.                           
                                                                              
          * Kit de desarrollo con uil, mrm, xm, xmcxx, includes y archivos    
            Imake.                                                            
                                                                              
          * Librerias estaticas y dinamicas (para usar con FreeBSD 2.2.8 y    
            anteriores).                                                      
                                                                              
          * Applets demostrativos.                                            
                                                                              
          * Paginas man preformateadas.                                       
                                                                              
        Asegurate de especificar que deseas la distribucion para FreeBSD      
        cuando hagas el pedido. Tambien se distribuyen versiones para BSDI y  
        Linux por Xi Graphics. La distribucion se hace en cuatro disquetes... 
        en el futuro esto se cambiara por una version en CDROM unificada.     
   5.2. ?Donde puedo conseguir CDE para FreeBSD?                              
        Contacta con Xi Graphics para la distribucion CDE 1.0.10 para         
        FreeBSD. Incluye Motif 1.2.5, y puede ser usada con Motif 2.0.        
                                                                              
        Este es un CDROM unificado para FreeBSD y Linux.                      
                                                                              
        Xi Graphics ya no vende el CDE para FreeBSD.                          
                                                                              
        KDE es un entorno grafico "open source" similar a CDE en muchos       
        aspectos.                                                             
   5.3. ?Hay algun servidor X comercial de altas prestaciones?                
        Si, Xi Graphics y Metro Link venden el producto Accelerated-X para    
        FreeBSD y otros sistemas basados en Intel.                            
                                                                              
        La oferta de Metro Link es un servidor X de altas prestaciones que    
        ofrece una facil configuracion usando el conjunto de herramientas     
        "FreeBSD Package", soporte de multiples tarjetas de video             
        concurrentes y solo se distribuye en formato binario desde su FTP.    
        Mencionar que la oferta de Metro Link esta disponible por el          
        razonable precio de $39.                                              
                                                                              
        Metro Link tambien vende el Motif ELF y a.out para FreeBSD.           
                                                                              
        Mas informacion                                                       
                                                                              
           Web de Metro Link                                                  
                                                                              
        o                                                                     
                                                                              
           Ventas o Soporte.                                                  
                                                                              
        o                                                                     
                                                                              
           Telefono (954) 938-0283 o +1 954 938-0283                          
                                                                              
        La oferta de Xi Graphics es un servidor X de altas prestaciones que   
        ofrece una facil configuracion, soporte para multiples tarjetas de    
        video concurrentes, y solo se distribuye en formato binario, en una   
        distribucion en disquetes unificada para FreeBSD y Linux. Xi Graphics 
        tambien ofrece un servidor X de altas prestaciones para computadores  
        portatiles.                                                           
                                                                              
        Hay una distribucion demo para testear (version 5.0).                 
                                                                              
        Xi Graphics tambien vende el Motif y CDE para FreeBSD.                
                                                                              
        Mass informacion                                                      
                                                                              
           Web de Xi Graphics WWW                                             
                                                                              
        o                                                                     
                                                                              
           ventas o Soporte                                                   
                                                                              
        o                                                                     
                                                                              
           Telefono (800) 946 7433 o +1 303 298-7478.                         
   5.4. ?Hay algun sistema de base de datos para FreeBSD?                     
        Si!. Mira en la seccion Productos Comerciales del web de FreeBSD.     
                                                                              
        Tambien te recomendamos que mires en la seccion Bases de Datos de la  
        coleccion de Ports.                                                   
   5.5. ?Puedo usar Oracle en FreeBSD?                                        
        Si. Las siguientes paginas te explican como configurar el Oracle de   
        Linux en FreeBSD:                                                     
                                                                              
          * http://www.scc.nl/~marcel/howto-oracle.html                       
                                                                              
          * http://www.lf.net/lf/pi/oracle/install-linux-oracle-on-FreeBSD    

                      Capitulo 6. Aplicaciones de usuario

   6.1. ?Donde estan las aplicaciones?

   6.2. ?Donde encuentro la libreria libc.so.3.0?

   6.3. Ghostscript tiene muchos errores con mi 386/486SX.

   6.4. Cuando ejecuto una aplicacion SCO/iBCS2, falla en socksys.

   6.5. ?Como configuro INN (Internet News) para mi maquina?

   6.6. ?Que version de Microsoft FrontPage debo usar?

   6.7. ?FreeBSD soporta Java?

   6.8. ?Porque no puedo compilar este port en mi maquina 3.x-stable?

   6.9. ?Donde encuentro ld.so?

   6.1. ?Donde estan las aplicaciones?                                         
        Por favor, mira en la seccion de ports para obtener informacion sobre  
        programas y aplicaciones que han sido portados a FreeBSD. En estos     
        momentos la lista llega a los 1800 creciendo dia a dia, por lo que te  
        recomendamos que la visites habitualmente o te subscribas a la lista   
        de distribucion FreeBSD-announce para las actualizaciones periodicas   
        de nuevas aportaciones.                                                
                                                                               
        La mayoria de programas estan disponibles tanto para la rama 2.2 como  
        para la 3.x y 4.0, y muchos de ellos deberian funcionar en sistemas    
        2.1.x. Cada vez que se realiza una release de FreeBSD, se incluye un   
        snapshot del arbol de aplicaciones en el directorio ports/.            
                                                                               
        Tambien trabajamos con el concepto de "package", que es, esencialmente 
        una distribucion binaria "zipada" con una pequena informacion extra    
        que realiza la instalacion del programa automaticamente. Un package    
        puede ser instalado y desinstalado facilmente sin tener que saber los  
        detalles de archivos o configuraciones que esto conlleva.              
                                                                               
        Usa el menu de instalacion de "packages" en /stand/sysinstall (bajo la 
        opcion post-configuration del menu principal) o ejecuta el comando     
        pkg_add(1) con el package que estas interesado en instalar. Los        
        package pueden ser identificados por su extension .tgz. En la          
        distribucion de CDROM existe un directorio packages/All en la que se   
        encuentran todos los packages disponibles. Tambien pueden conseguirse  
        en la red en los siguientes servidores:                                
                                                                               
        para 2.2.8-RELEASE/2.2-stable                                          
                                                                               
           ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/packages-2.2.8/        
                                                                               
        para 3.4-release/3.4-stable                                            
                                                                               
           ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-3-stable/     
                                                                               
        para 4.0-current                                                       
                                                                               
           ftp://ftp.FreeBSD.ORG/pub/FreeBSD/ports/i386/packages-4-current/    
                                                                               
        o en tu mirror mas cercano.                                            
                                                                               
        Ten en cuenta que no todos los ports estan disponibles como packages.  
        Es siempre buena idea visitar periodicamente la direccion              
        ftp.FreeBSD.org.                                                       
   6.2. ?Donde encuentro la libreria libc.so.3.0?                              
        Estas intentando ejecutar un package para version 2.2/3.x/4.0 en un    
        sistema de version 2.1.x. Por favor, mira en la seccion anterior y usa 
        el package adecuado para tu sistema.                                   
   6.3. Ghostscript tiene muchos errores con mi 386/486SX.                     
        No tienes coprocesador matematico, verdad? Necesitaras anadir el       
        emulador matematico en tu kernel; puedes hacerlo anadiendo lo          
        siguiente en el archivo de configuracion del kernel:                   
                                                                               
        options GPL_MATH_EMULATE                                               
                                                                               
                                                                               
        NOTA Necesitaras eliminar la opcion MATH_EMULATE.                      
   6.4. Cuando ejecuto una aplicacion SCO/iBCS2, falla en socksys.             
        Primero necesitas editar el archivo /etc/sysconfig (o /etc/rc.conf) y  
        en la ultima seccion cambiar la siguiente variable a YES:              
                                                                               
        # Set to YES if you want ibcs2 (SCO) emulation loaded at startup       
        ibcs2=NO                                                               
                                                                               
                                                                               
        El kernel caragara el modulo ibcs2 al arrancar.                        
                                                                               
        A continuacion necesitaras configurar /compat/ibcs2/dev de la          
        siguiente manera                                                       
                                                                               
        lrwxr-xr-x  1 root  wheel         9 Oct 15 22:20 X0R@ -> /dev/null     
        lrwxr-xr-x  1 root  wheel         7 Oct 15 22:20 nfsd@ -> socksys      
        -rw-rw-r--  1 root  wheel         0 Oct 28 12:02 null                  
        lrwxr-xr-x  1 root  wheel         9 Oct 15 22:20 socksys@ -> /dev/null 
        crw-rw-rw-  1 root  wheel   41,   1 Oct 15 22:14 spx                   
                                                                               
                                                                               
        Solo necesitas el socksys para ir a /dev/null e imitar la apertura y   
        cierre de archivos. El codigo en -current gestionara el resto. Esto es 
        mucho mas limpio que la manera en la que se hacia antes. Si quieres el 
        driver spx para un conexion, define SPX_HACK cuando compiles el        
        kernel.                                                                
   6.5. ?Como configuro INN (Internet News) para mi maquina?                   
        Despues de la instalacion del package o port de inn, un excelente      
        lugar para empezar es Dave Barr's INN Page donde encontraras las FAQ   
        de INN.                                                                
   6.6. ?Que version de Microsoft FrontPage debo usar?                         
        Usa el Port. Una version pre-parcheada para Apache esta disponible en  
        la coleccion de ports.                                                 
   6.7. ?FreeBSD soporta Java?                                                 
        Si. Por favor, mira en http://www.FreeBSD.org/java/.                   
   6.8. ?Porque no puedo compilar este port en mi maquina 3.x-stable?          
        Si utilizas una version de FreeBSD que ha quedado ligeramente          
        anticuada con respecto a -stable o -current necesitaras el kit de      
        actualizacion de ports disponible en http://www.FreeBSD.org/ports/. Si 
        tienes una version actualizada, es posible que alguien haya modificado 
        el port de manera que este compile en -current pero no en -stable. Por 
        favor, envia un informe de error con el comando send-pr(1) ya que la   
        coleccion de ports esta pensada para que funcione tanto en las ramas   
        -stable como -current.                                                 
   6.9. ?Donde encuentro ld.so?                                                
        Si quieres ejecutar aplicaciones a.out como Netscape en sistemas con   
        formato de ejecucion ELF como FreeBSD 3.1-RELEASE o posteriores,       
        necesitaras la libreria /usr/libexec/ld.so y algunas otras en formato  
        a.out. Estas librerias estan incluidas en la distribucion compat22.    
        Usa /stand/sysinstall o el script install.sh en el subdirectorio       
        compat22 e instalala. Tambien deberian consultarse los archivos ERRATA 
        de FreeBSD 3.1-R y 3.2-R.                                              

                      Capitulo 7. Configuracion del Kernel

   7.1. Me gustaria personalizar mi kernel. ?Es dificil?

   7.2. La compilacion del kernel falla por "_hw_float is missing."

   7.3. Conflicto de interrupciones con tarjeta serie multi-port.

   7.4. ?Como activo el soporte para discos QIC-40/80?

7.1. Me gustaria personalizar mi kernel. ?Es dificil?                                
     No!, primero, necesitas la distribucion completa de fuentes o, por lo menos, la 
     distribucion de fuentes del kernel. De esta manera tienes los fuentes           
     necesarios para crearte un nuevo kernel. Al contrario que muchos Unix           
     comerciales, nosotros tenemos la politica de NO vender nuestro kernel en        
     formato binario.                                                                
                                                                                     
     La instalacion de los fuentes ocupa un poco mas de espacio, pero te permite     
     consultar los fuentes del kernel en caso de dificultad o entender que esta      
     ocurriendo realmente en la ejecucion del sistema.                               
                                                                                     
     Una vez tienes instalada la distribucion completa de fuentes, o por lo menos la 
     del kernel, haz lo siguiente como root:                                         
                                                                                     
      1. cd /usr/src/sys/i386/conf                                                   
                                                                                     
      2. cp GENERIC MYKERNEL                                                         
                                                                                     
      3. vi MYKERNEL                                                                 
                                                                                     
      4. config MYKERNEL                                                             
                                                                                     
      5. cd ../../compile/MYKERNEL                                                   
                                                                                     
      6. make depend                                                                 
                                                                                     
      7. make all                                                                    
                                                                                     
      8. make install                                                                
                                                                                     
      9. reboot                                                                      
                                                                                     
     El paso 2 no es necesario si todavia tienes un archivo de configuracion del     
     kernel de una release anterior de FreeBSD 2.X. - simplemente, copia el archivo  
     antiguo y examinalo cuidadosamente para asegurar que no haya cambiado la        
     sintaxis da algun driver, o haya alguno anticuado.                              
                                                                                     
     Un buen archivo de configuracion para consultar es LINT, el cual contiene       
     ejemplos documentados para todas las posibles opciones del kernel. El archivo   
     de configuracion GENERIC se usa para crear el kernel "por defacto" que es el    
     que estaras usando si no has creado ninguno nuevo.                              
                                                                                     
     Si no necesitas hacer ningun cambio al archivo GENERIC, puedes saltar al paso   
     3, donde personalizas el kernel para tu sistema. El paso 8 solo debe ejecutarse 
     si los pasos 6 y 7 se han realizado de manera satisfactoria. Esto copiara una   
     imagen del nuevo kernel a /kernel y realizara una copia del antiguo kernel en   
     /kernel.old. Es muy importante recordar esto por si el nuevo kernel falla en    
     algun momento - puedes seleccionar kernel.old en el prompt de arranque. Al      
     hacer un reboot, por defecto se cargara el nuevo kernel.                        
                                                                                     
     Si la compilacion en el paso 7 falla por alguna razon, es recomendable que      
     empieces desde el paso 4 substituyendo GENERIC por MYKERNEL. Si puedes generar  
     el kernel GENERIC, significa que algo en tu archivo de configuracion es         
     incorrecto (o has decubierto un bug). Si la compilacion del kernel GENERIC      
     falla, posiblemente tengas los fuentes corruptos.                               
                                                                                     
     Finalmente, si necesitas ver los mensajes originales de arranque del sistema    
     para compilar un nuevo kernel, ejecuta el comando dmesg. Este comando debe      
     imprimir en pantalla todos los mensajes producidos por el kernel al arrancar,   
     los cuales te pueden servir en la configuracion de tu nuevo kernel.             
                                                                                     
     NOTA Recomendamos hacer un historial fechado de los kernel que vayas creando,   
     de la manera kernel.YYMMDD una vez esten funcionando correctamente. De esta     
     manera, si la proxima vez que juegues con el kernel algo no funciona, puedes    
     arrancar desde el ultimo kernel correcto. Esto es especialmente importante si   
     ahora estas arrancando desde una controladora no soportada por el kernel        
     GENERIC (si, experiencia personal).                                             
7.2. La compilacion del kernel falla por "_hw_float is missing."                     
     Dejame adivinar. Has borrado npx0 de tu archivo de configuracion porque no      
     tienes coprocesador matematico, no? Mal hecho :-) El dispositivo npx0 es        
     OBLIGATORIO. Aunque no tengas coprocesador, debes incluir el dispositivo npx0   
7.3. Conflicto de interrupciones con tarjeta serie multi-port.                       
     Cuando compilo el kernel con drivers para tarjetas serie multipuerto, el        
     sistema me dice que solo el primer puerto es testeado y el resto son obviados   
     debido a conflictos de interrupcion. Como soluciono esto?                       
                                                                                     
     El problema en este caso es que FreeBSD tiene codigo interno que evita caidas   
     del sistema por conflictos de hardware o software. La manera de solucionar esto 
     es dejar en blanco la entrada correspondiente a la irq en todos los puertos     
     excepto en uno. Aqui tienes un ejemplo:                                         
                                                                                     
             #                                                                       
             # Multiport high-speed serial line - 16550 UARTS                        
             #                                                                       
             device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr     
             device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr           
             device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr           
             device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr           
                                                                                     
7.4. ?Como activo el soporte para discos QIC-40/80?                                  
     Necesitas "descomentar" la siguiente linea en el archivo generico de            
     configuracion (o anadirla en tu propio archivo), anade un flags 0x1 en la linea 
     fdc y recompila.                                                                
                                                                                     
     controller  fdc0  at isa? port "IO_FD1" bio irq 6 drq 2 flags 0x1 vector fdintr 
     disk        fd0   at fdc0 drive 0                       ^^^^^^^^^               
     disk        fd1   at fdc0 drive 1                                               
     #tape       ft0   at fdc0 drive 2                                               
     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^                                               
                                                                                     
                                                                                     
     A continuacion, crea un nuevo dispositivo llamado /dev/ft0 entrando en el       
     directorio /dev y ejecutando el comando:                                        
                                                                                     
             sh ./MAKEDEV ft0                                                        
                                                                                     
                                                                                     
     Para el primer dispositivo. ft1 para el segundo y asi para todos los            
     dispositivos de este tipo que tengas.                                           
                                                                                     
     Tendras un dispositivo llamado /dev/ft0, al cual puedes escribir a traves de un 
     programa especial de manejo llamado ft - mira el man en ft para mas detalles.   
                                                                                     
     Versiones anteriores a la -current tenian algunos problemas al encontrase con   
     cintas en mal estado; si tienes problemas en los que parece que la cinta se     
     rebovina siempre al llegar al mismo lugar, intenta utilizar la ultima version   
     del programa ft que encontraras en /usr/src/sbin/ft en -current.                

                     Capitulo 8. Administracion de sistema

   8.1. ?Donde estan los archivos de configuracion de arranque del sistema?

   8.2. ?Como anado un usuario facilmente?

   8.3. ?Como puedo anadir mi nuevo disco a FreeBSD?

   8.4. Tengo un nuevo disco removible, ?como lo uso?

   8.5. ?Como monto una particion secundaria DOS?

   8.6. ?Puedo montar otros sistemas de archivos bajo FreeBSD?

   8.7. ?Como puedo usar el "NT loader" para arrancar FreeBSD?

   8.8. ?Como arranco FreeBSD y Linux desde LILO?

   8.9. ?Como arranco FreeBSD y Linux usando BootEasy?

   8.10. ?Puede un disco "dedicado" provocar problemas?

   8.11. ?Como puedo anadir mas espacio de swap?

   8.12. Tengo problemas para poner en marcha mi impresora.

   8.13. Mi teclado no coincide con los caracteres de pantalla.

   8.14. Las cuotas de usuario no funcionan correctamente.

   8.15. Mi ccd no funciona correctamente

   8.16. ?Porque no puedo editar el disklabel en mi ccd?

   8.17. ?Soporta FreeBSD primitivas IPC System V?

   8.18. ?Como uso sendmail para envio de mail UUCP?

   8.19. ?Como configuro el correo para conexiones NO permanentes a Internet?

   8.20. Olvide el password de Root!!

   8.21. ?Como mantengo el control sobre Control-Alt-Delete?

   8.22. ?Como reformateo archivos de texto DOS a UNIX?

   8.23. ?Como puedo hace "kill" de procesos por nombre?

   8.24. ?Porque el su no me dejar ser root al no estar en el ACL?

   8.25. ?Como desinstalo Kerberos?

   8.26. ?Como anado pseudoterminales a mi sistema?

   8.27. ?Como puedo releer el archivo /etc/rc.conf y relanzar /etc/rc sin
   tener que hacer un reboot?

   8.28. ?Que es un sandbox?

8.1.  ?Donde estan los archivos de configuracion de arranque del sistema?            
      De la version 2.0.5R a la 2.2.1R, el archivo principal de configuracion es     
      /etc/sysconfig. Todas las opciones son especificadas en este archivo y otros   
      como /etc/rc y /etc/netstart.                                                  
                                                                                     
      Mira en el archivo /etc/sysconfig y cambia los valores para tu sistema. Este   
      archivo esta comentado para ayudar en la configuracion                         
                                                                                     
      En versiones posteriores a la 2.2.1 y 3.0 el archivo /etc/sysconfig fue        
      renombrado como rc.conf. La sintaxis tambien fue retocada para ser mas         
      descriptiva. El archivo /etc/netstart tambien fue renombrado como              
      /etc/rc.network para que todos los archivos de configuracion puedan ser        
      copiados con el comando cp /usr/src/etc/rc* /etc.                              
                                                                                     
      /etc/rc.local existe como siempre y deberia ser usado para arrancar servicios  
      locales adicionales como INN o programas propios.                              
                                                                                     
      El archivo /etc/rc.serial es para la inicializacion de puertos serie.          
                                                                                     
      El archivo /etc/rc.i386 es para especificaciones propias de Intel, como la     
      emulacion iBCS2 o la configuracion de la consola del sistema.                  
                                                                                     
      A partir de la version 2.1.0R, tambien puedes tener un directorio en el que    
      instalar archivos de arranque locales especificado en /etc/sysconfig (o        
      /etc/rc.conf):                                                                 
                                                                                     
              # Localizacion de los archivos de arranque locales.                    
              local_startup=/usr/local/etc/rc.local.d                                
                                                                                     
                                                                                     
      Cada archivo acabado en .sh sera ejecutado en orden alfabetico.                
                                                                                     
      Si quieres asegurarte de un cierto orden en la ejecucion sin tener que cambiar 
      todos los nombres de los archivos, puedes usar un esquema similar al siguiente 
      con digitos al principio del nombre de cada archivo:                           
                                                                                     
              10news.sh                                                              
              15httpd.sh                                                             
              20ssh.sh                                                               
                                                                                     
                                                                                     
      Puede ser visto como "malo" (o SysV :-)) pero nos provee de un esquema regular 
      para programas anadidos localmente sin tener que hacer ediciones complicadas   
      del archivo /etc/rc.local. Muchos de los ports/packages asumen que             
      /usr/local/etc/rc.d es un directorio de arranque local.                        
8.2.  ?Como anado un usuario facilmente?                                             
      Usa el comando adduser. Para opciones mas avanzadas, usa el comando pw         
                                                                                     
      Para borrar a un usuario, usa el comando rmuser.                               
8.3.  ?Como puedo anadir mi nuevo disco a FreeBSD?                                   
      Consultar el Tutorial de Formateo de Discos en www.FreeBSD.org.                
8.4.  Tengo un nuevo disco removible, ?como lo uso?                                  
      Se trate de un disco removible como un ZIP o EA (o un floppy, si quieres       
      usarlo de esta manera), o un nuevo disco duro, una vez instalado y reconocido  
      por el sistema, y tengas tu cartridge/floppy/etc en su interior, las cosas son 
      como para la mayoria de dispositivos.                                          
                                                                                     
      (esta seccion esta basada en Mark Mayo's ZIP FAQ)                              
                                                                                     
      Si es un disco ZIP o floppy, y esta formateado en DOS, puedes usar el comando: 
                                                                                     
      mount -t msdos /dev/fd0c /floppy                                               
                                                                                     
                                                                                     
      Si es un floppy, o este:                                                       
                                                                                     
      mount -t msdos /dev/da2s4 /zip                                                 
                                                                                     
                                                                                     
      para un disco ZIP con la configuracion de fabrica.                             
                                                                                     
      Para otros discos, mira como configurarlos usando fdisk o /stand/sysinstall.   
                                                                                     
      El resto de ejemplos seran para un disco ZIP en da2, el tercer disco SCSI.     
                                                                                     
      A no ser que se trate de un floppy o disco removible, lo que planeas compartir 
      con otros usuarios, es aconsejable convertir el formato de archivos a BSD.     
      Obtendras nombre de archivos largos, como minimo doblaras la velocidad de      
      acceso del disco, y mucha mas estabilidad. Antes, necesitas rehacer las        
      particiones. Puedes usar el comando fdisk o la utilidad /stand/sysinstall. Si  
      es un disco pequeno que quieres dedicar enteramente a FreeBSD, solo tienes que 
      eliminar la FAT y tabla de particiones, y usar el sistema de particiones de    
      FreeBSD:                                                                       
                                                                                     
      dd if=/dev/zero of=/dev/rda2 count=2                                           
      disklabel -Brw da2 auto                                                        
                                                                                     
                                                                                     
      Puedes usar el comando disklabel o /stand/sysinstall para crear multiples      
      particiones BSD.                                                               
                                                                                     
      Finalmente, crea un nuevo sistema de archivos:                                 
                                                                                     
      newfs /dev/rda2c                                                               
                                                                                     
                                                                                     
      y montalo:                                                                     
                                                                                     
      mount /dev/da2c /zip                                                           
                                                                                     
                                                                                     
      Seria una buena idea anadir una linea como esta en el archivo /etc/fstab para  
      que solo tengas que teclear "mount /zip" las siguientes veces.                 
                                                                                     
      /dev/da2c /zip ffs rw,noauto 0 0                                               
                                                                                     
8.5.  ?Como monto una particion secundaria DOS?                                      
      Las particiones DOS secundarias se encuentran despues de TODAS las particiones 
      primarias. Por ejemplo, si tienes una particion "E" como la segunda particion  
      DOS en el segundo disco SCSI, necesitas crear los archivos especiales para el  
      dispositivo 5 en /dev, y despues montar /dev/da1s5:                            
                                                                                     
      # cd /dev                                                                      
      # ./MAKEDEV da1s5                                                              
      # mount -t msdos /dev/da1s5 /dos/e                                             
                                                                                     
8.6.  ?Puedo montar otros sistemas de archivos bajo FreeBSD?                         
      Digital UNIX UFS CDROMs pueden ser montados directamente en FreeBSD. Montar    
      particiones de disco de Digital UNIX y otros sistemas que soportan UFS puede   
      ser mas complejo, dependiendo de los detalles de la particion de disco del     
      sistema operativo en cuestion.                                                 
                                                                                     
      Linux: 2.2 y posteriores soportan particiones ext2fs. Mira mount_ext2fs para   
      mas informacion.                                                               
                                                                                     
      NT: Existe un driver de solo lectura de NTFS para FreeBSD. Para mas            
      informacion, mira este tutorial de Mark Ovens en                               
      http://www.users.globalnet.co.uk/~markov/ntfs_install.html.                    
8.7.  ?Como puedo usar el "NT loader" para arrancar FreeBSD?                         
      La idea general es que copies el primer sector de la particion root nativa de  
      FreeBSD en un archivo en la particion DOS/NT. Asumiento que nombras a ese      
      archivo como c:\bootsect.bsd puedes editar el archivo c:\boot.ini para         
      conseguir algo como esto:                                                      
                                                                                     
      [boot loader]                                                                  
      timeout=30                                                                     
      default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS                            
      [operating systems]                                                            
      multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"                       
      C:\BOOTSECT.BSD="FreeBSD"                                                      
      C:\="DOS"                                                                      
                                                                                     
                                                                                     
      Este proceso asume que DOS, NT, FreeBSD o cualquier otro sistema ha sido       
      instalado en sus respectivas particiones en el mismo disco. En nuestro caso,   
      DOS y NT estan en la primera particion y FreeBSD en la segunda. Instalamos     
      FreeBSD para arrancarlo desde su particion nativa y no desde el disco MBR.     
                                                                                     
      Monta un floppy formateado en DOS bajo la particion /mnt.                      
                                                                                     
      dd if=/dev/rda0a of=/mnt/bootsect.bsd bs=512 count=1                           
                                                                                     
                                                                                     
      Rearranca en DOS o NT. Copia el archivo bootsect.bsd y/o el archivo            
      bootsect.lnx del floppy a C:\. Modifica los atributos a boot.ini con:          
                                                                                     
      attrib -s -r c:\boot.ini                                                       
                                                                                     
                                                                                     
      Edita y anade las lineas apropiadas del boot.ini mostrado enteriormente de     
      ejemplo, y vuelve a poner los atributos originales:                            
                                                                                     
      attrib +s +r c:\boot.ini                                                       
                                                                                     
                                                                                     
      Si FreeBSD esta arrancando desde el MBR, restauralo desde el comando fdisk     
      despues de reconfigurarlos para arrancar desde sus particiones nativas.        
8.8.  ?Como arranco FreeBSD y Linux desde LILO?                                      
      Si tienes FreeBSD y Linux en el mismo disco, solo tienes que seguir las        
      instrucciones de instalacion de LILO para arrancar un sistema operativo no     
      Linux. Brevemente, son estas:                                                  
                                                                                     
      Arranca Linux, y anade las siguientes lineas en el archivo /etc/lilo.conf:     
                                                                                     
      other=/dev/hda2                                                                
      table=/dev/hda                                                                 
      label=FreeBSD                                                                  
                                                                                     
                                                                                     
      (Asumiendo que tu particion FreeBSD es conocida por Linux como /dev/hda2). A   
      continuacion, ejecuta lilo como root y ya deberia estar.                       
                                                                                     
      Si FreeBSD esta en otro disco, necesitas anadir ``loader=/boot/chain.b'' al    
      archivo lilo.conf. Por ejemplo:                                                
                                                                                     
      other=/dev/sdb4                                                                
      table=/dev/sdb                                                                 
      loader=/boot/chain.b                                                           
      label=FreeBSD                                                                  
                                                                                     
                                                                                     
      En algunos casos necesitaras especificar el numero de disco en BIOS para que   
      el cargador del boot funcione correctamente desde el segundo disco. Por        
      ejemplo, si tu disco SCSI con FreeBSD es visto por el BIOS como disco 1, en el 
      prompt del cargador de arranque necesitaras especificar:                       
                                                                                     
      Boot: 1:da(0,a)/kernel                                                         
                                                                                     
                                                                                     
      En FreeBSD 2.2.5 y posteriores, puedes configurar boot(8) para que haga esto   
      automaticamente.                                                               
                                                                                     
      El Linux+FreeBSD mini-HOWTO es una buena referencia para las opciones de       
      interoperabilidad entre FreeBSD y Linux.                                       
8.9.  ?Como arranco FreeBSD y Linux usando BootEasy?                                 
      Instala el LILO al inicio de la particion de arranque del Linux en lugar de    
      hacerlo en el "Master Boot Record". Asi podras arrancar el LILO desde          
      BootEasy.                                                                      
                                                                                     
      Si estas usando Windows-95 y Linux, tambien es recomendable hacer esto para    
      simplificar el arranque de Linux en caso de que sea necesaria una              
      reinstalacion del Windows-95 (ya que no quiere convivir con otros sistemas     
      operativos en el mismo Master Boot Record).                                    
8.10. ?Puede un disco "dedicado" provocar problemas?                                 
      El proceso de instalacion nos permite elegir dos metodos diferentes de         
      particionar un disco. El sistema por defecto hace que el disco sea compatible  
      con otros sistemas operativos en la misma maquina, usando las tablas de        
      entrada de fdisk (llamadas "slices" en FreeBSD). Opcionalmente, podemos        
      instalar un boot-selector que nos permite seleccionar el sistema operativo con 
      el que queremos arrancar.                                                      
                                                                                     
      Mientras este es el caso mas com&un para gente proveniente del mundo de PC,    
      para la gente proveniente del mundo Unix y quienes quieren instalar una        
      maquina para funcionar con FreeBSD y solo FreeBSD, es mas habitual usar el     
      sistema de reservar todo el espacio del disco para un solo sistema operativo.  
      Si seleccionas "A)ll FreeBSD" en el editor de fdisk de la utilidad sysinstall, 
      y respondes la siguiente pregunta con "No", usaras este ultimo sistema. Ten en 
      cuenta que usando este sistema no te permitira la instalacion de ningun otro   
      sistema operativo o selector de arranque (boot manager).                       
                                                                                     
      Entonces, ?por que se llama "peligroso"?. Un disco en este modo no contiene lo 
      que las utilidades normales de un PC considerarian una tabla de particion de   
      archivos valida. Dependiendo del diseno de estas aplicaciones, puede que danen 
      el sector de arranque una vez entren en contacto con el disco. Por lo menos    
      una BIOS Award usada por maquinas HP Netservers (pero no solo por ellos) es    
      concocida por ignorar los disco duros que no contengan lo que el BIOS entiende 
      por una tabla de archivos valida.                                              
                                                                                     
      Para volver un disco "peligrosamente dedicado" a formato estandar de PC, hay   
      basicamente dos opciones. La primera es, escribes suficientes bytes NULL sobre 
      el MBR para hacer que las siguientes instalaciones crean que estan en un disco 
      sin usar. Puedes hacer esto asi:                                               
                                                                                     
      dd if=/dev/zero of=/dev/rda0 count=15                                          
                                                                                     
                                                                                     
      Alternativamente, puedes hacer:                                                
                                                                                     
      fdisk /mbr                                                                     
                                                                                     
                                                                                     
      que instalara un nuevo master boot record.                                     
8.11. ?Como puedo anadir mas espacio de swap?                                        
      La mejor manera es incrementar el tamano de tu particion de swap, o usar esta  
      excusa para anadir un otro disco nuevo.                                        
                                                                                     
      Anadir swap en discos separados hace las cosas mas rapidas que simplemente     
      anadir swap en el mismo disco. Como ejemplo, si estas compilando codigo fuente 
      en un disco, y el swap esta en otro disco, es mucho mas rapido que si el swap  
      y la compilacion se realizaran en el mismo disco. Esto es cierto               
      especificamente para discos SCSI.                                              
                                                                                     
      Los discos IDE no son capaces de permitir el acceso a ambos discos en el mismo 
      canal al mismo tiempo (FreeBSD no soporta el modo 4, ya que todas las I/O de   
      discos IDE son "programadas").                                                 
                                                                                     
      Es realmente muy mala idea instalar el swap sobre NFS a no ser que trabajes en 
      una red muy rapida con un muy buen servidor.                                   
                                                                                     
      Aqui hay un ejemplo para un archivo de swap de 64Mb /usr/swap0, piensa que     
      puedes usar el nombre que quieras).                                            
                                                                                     
      Asegurate que el kernel esta compilado con la linea                            
                                                                                     
      pseudo-device   vn 1   #Vnode driver (turns a file into a device)              
                                                                                     
                                                                                     
      en tu archivo de configuracion. El kernel GENERIC la contiene.                 
                                                                                     
       1. crea un vn-device                                                          
                                                                                     
          cd /dev                                                                    
          sh ./MAKEDEV vn0                                                           
                                                                                     
                                                                                     
       2. crea un swapfile (/usr/swap0)                                              
                                                                                     
          dd if=/dev/zero of=/usr/swap0 bs=1024k count=64                            
                                                                                     
                                                                                     
       3. activa el archivo de swap en /etc/rc.conf                                  
                                                                                     
          swapfile="/usr/swap0"   # Set to name of swapfile if aux swapfile desired. 
                                                                                     
                                                                                     
       4. rearranca la maquina.                                                      
                                                                                     
      Para activar el archivo de swap inmediatamente teclea                          
                                                                                     
      vnconfig -ce /dev/vn0c /usr/swap0 swap                                         
                                                                                     
8.12. Tengo problemas para poner en marcha mi impresora.                             
      Por favor, revisa la seccion de impresoras del manual. Cubre la mayoria de     
      posibles problemas. Pasate por esta seccion.                                   
8.13. Mi teclado no coincide con los caracteres de pantalla.                         
      El programa de control de teclado tiene una opcion para cargar el mapa de      
      teclado. En el directorio /usr/share/syscons/keymaps hay diferentes archivos   
      de mapas de teclado. Selecciona el que corresponde a tu sistema y cargalo.     
                                                                                     
      kbdcontrol -l uk.iso                                                           
                                                                                     
                                                                                     
      Tanto el directorio /usr/share/syscons/keymaps como la extension .kbd son      
      asumidas por la orden kbdcontrol.                                              
                                                                                     
      Esto puede ser configurado en /etc/sysconfig (o rc.conf). Mira los comentarios 
      correspondientes en el propio archivo.                                         
                                                                                     
      En la version 2.0.5R y posteriores, todo lo referente a fuentes, teclado, etc  
      esta en /usr/share/examples/syscons.                                           
                                                                                     
      Actualmente se soportan los siguientes mapas de teclado:                       
                                                                                     
        * Belgian ISO-8859-1                                                         
                                                                                     
        * Brazilian 275 keyboard Codepage 850                                        
                                                                                     
        * Brazilian 275 keyboard ISO-8859-1                                          
                                                                                     
        * Danish Codepage 865                                                        
                                                                                     
        * Danish ISO-8859-1                                                          
                                                                                     
        * French ISO-8859-1                                                          
                                                                                     
        * German Codepage 850                                                        
                                                                                     
        * German ISO-8859-1                                                          
                                                                                     
        * Italian ISO-8859-1                                                         
                                                                                     
        * Japanese 106                                                               
                                                                                     
        * Japanese 106x                                                              
                                                                                     
        * Latin American                                                             
                                                                                     
        * Norwegian ISO-8859-1                                                       
                                                                                     
        * Polish ISO-8859-2 (programmer's)                                           
                                                                                     
        * Russian Codepage 866 (alternative)                                         
                                                                                     
        * Russian koi8-r (shift)                                                     
                                                                                     
        * Russian koi8-r                                                             
                                                                                     
        * Spanish ISO-8859-1                                                         
                                                                                     
        * Swedish Codepage 850                                                       
                                                                                     
        * Swedish ISO-8859-1                                                         
                                                                                     
        * Swiss-German ISO-8859-1                                                    
                                                                                     
        * United Kingdom Codepage 850                                                
                                                                                     
        * United Kingdom ISO-8859-1                                                  
                                                                                     
        * United States of America ISO-8859-1                                        
                                                                                     
        * United States of America dvorak                                            
                                                                                     
        * United States of America dvorakx                                           
8.14. Las cuotas de usuario no funcionan correctamente.                              
       1. No actives las cuotas en '/',                                              
                                                                                     
       2. Pon el archivo de cuotas en el sistema de archivos en el que se vayan a    
          forzar las cuotas de usuario:                                              
                                                                                     
          FS      QUOTA FILE                                                         
          /usr    /usr/admin/quotas                                                  
          /home   /home/admin/quotas                                                 
                    ...                                                              
                                                                                     
8.15. Mi ccd no funciona correctamente                                               
      El sintoma es:                                                                 
                                                                                     
      # ccdconfig -C                                                                 
      ccdconfig: ioctl (CCDIOCSET): /dev/ccd0c: Inappropriate file type or format    
      #                                                                              
                                                                                     
                                                                                     
      Esto actualmente ocurre cuando estas intentando concatenar las particiones c'. 
      El driver ccd requiere que la particion sea del tipo FS_BSDFFS. Edita la       
      etiqueta del disco (disklabel) que estas intentando concatenar y cambia el     
      tipo de particion a '4.2BSD'.                                                  
8.16. ?Porque no puedo editar el disklabel en mi ccd?                                
      El sintoma es:                                                                 
                                                                                     
      # disklabel ccd0                                                               
      (it prints something sensible here, so let's try to edit it)                   
      # disklabel -e ccd0                                                            
      (edit, save, quit)                                                             
      disklabel: ioctl DIOCWDINFO: No disk label on disk;                            
      use "disklabel -r" to install initial label                                    
      #                                                                              
                                                                                     
                                                                                     
      Esto es porque el disklabel retornado por el ccd es actualmente uno que no     
      corresponde con el real. Puedes resolver este problema escribiendo             
      explicitamente:                                                                
                                                                                     
      # disklabel ccd0 > /tmp/disklabel.tmp                                          
      # disklabel -Rr ccd0 /tmp/disklabel.tmp                                        
      # disklabel -e ccd0                                                            
      (ahora funcionara)                                                             
                                                                                     
8.17. ?Soporta FreeBSD primitivas IPC System V?                                      
      Si, FreeBSD las soporta. Estas incluyen memoria compartida, mensajes y         
      semaforos. Necesitas anadir las siguientes lineas en la configuracion de tu    
      kernel para activarlas.                                                        
                                                                                     
      options    SYSVSHM                                                             
      options    "SHMMAXPGS=64"   # 256Kb of sharable memory                         
      options    SYSVSEM          # enable for semaphores                            
      options    SYSVMSG          # enable for messaging                             
                                                                                     
                                                                                     
      Recompila e instala.                                                           
                                                                                     
      NOTA: Quizas necesites incrementar SHMMAXPGS a un numero como 4096 (16M) si    
      quieres usar GIMP. 256K es suficiente para la memoria compartida en X11R6.     
8.18. ?Como uso sendmail para envio de mail UUCP?                                    
      La configuracion de sendmail incluida en FreeBSD esta preparada para sistemas  
      que conectan directamente con Internet. Los sistemas que quieran usar UUCP     
      para el envio de mail deben utilizar otro archivo de configuracion.            
                                                                                     
      Retocar /etc/sendmail.cf manualmente esta considerado algo para puristas. La   
      version 8 de sendmail incluye un nuevo sistema de configuracion llamado m4, en 
      el cual la configuracion se realiza en un nivel mas alto. Deberias usar los    
      archivos de configuracion situados en                                          
                                                                                     
      /usr/src/usr.sbin/sendmail/cf                                                  
                                                                                     
                                                                                     
      Si no instalaste tu sistema con el codigo fuente completo, el paquete de       
      configuracion de sendmail esta en una distribucion aparte. Asumiendo que       
      tienes tu CD-ROM montado, haz:                                                 
                                                                                     
      cd /usr/src                                                                    
      tar -xvzf /cdrom/dists/src/ssmailcf.aa                                         
                                                                                     
                                                                                     
      No te preocupes, solo son unos cientos de kilobytes de tamano. El archivo      
      README en el directorio cf puede servir como introduccion a la configuracion   
      del m4.                                                                        
                                                                                     
      Para envio y recepcion va UUCP, te aconsejamos usar la opcion mailertable. Se  
      basa en una base de datos que sendmail puede usar como base para tomar las     
      decisiones de enrutado del mail.                                               
                                                                                     
      Primero tienes que crear tu archivo .mc. Estos archivos se encuentran en el    
      directorio /usr/src/usr.sbin/sendmail/cf/cf. Si miras, encontraras algunos     
      ejemplos. Asumiendo que tu archivo se llama foo.com, todo lo que necesitas     
      hacer para convertirlo en un archivo sendmail.cf valido es:                    
                                                                                     
      cd /usr/src/usr.sbin/sendmail/cf/cf                                            
      make foo.cf                                                                    
      cp foo.cf /etc/sendmail.cf                                                     
                                                                                     
                                                                                     
      Un archivo tipico .mc seria algo como:                                         
                                                                                     
                include(`../m4/cf.m4')                                               
                VERSIONID(`Your version number')                                     
                OSTYPE(bsd4.4)                                                       
                                                                                     
                FEATURE(nodns)                                                       
                FEATURE(nocanonify)                                                  
                FEATURE(mailertable)                                                 
                                                                                     
                define(`UUCP_RELAY', your.uucp.relay)                                
                define(`UUCP_MAX_SIZE', 200000)                                      
                                                                                     
                MAILER(local)                                                        
                MAILER(smtp)                                                         
                MAILER(uucp)                                                         
                                                                                     
                Cw    your.alias.host.name                                           
                Cw    youruucpnodename.UUCP                                          
                                                                                     
                                                                                     
      Las opciones nodns y nocanonify previenen del uso del DNS durante el trafico   
      de correo. La clausula UUCP_RELAY se necesita por razones imperiosas, no       
      preguntes :). Simplemente pon un nombre de maquina de Internet que sea capaz   
      de gestionar pseudo-dominios .UUCP; mas sencillo, entraras el mail relay de tu 
      ISP.                                                                           
                                                                                     
      Una vez hayas hecho esto, necesitas el archivo llamado /etc/mailtertable. Un   
      ejemplo tipico seria:                                                          
                                                                                     
                #                                                                    
                # makemap hash /etc/mailertable.db < /etc/mailertable                
                #                                                                    
                horus.interface-business.de   uucp-dom:horus                         
                .interface-business.de        uucp-dom:if-bus                        
                interface-business.de         uucp-dom:if-bus                        
                .heep.sax.de                  smtp8:%1                               
                horus.UUCP                    uucp-dom:horus                         
                if-bus.UUCP                   uucp-dom:if-bus                        
                .                             uucp-dom:sax                           
                                                                                     
                                                                                     
      Como puedes ver, esto es parte de un archivo real. Las tres primeras lineas    
      manejan casos especiales donde el correo dirigido a un dominio no debe ser     
      enviado a traves de la ruta por defecto, si no a traves de un UUCP vecino para 
      acortar el path de envio. La siguiente linea gestiona el mail del dominio      
      local para que sea enviado via SMTP. Finalmente, los vecinos UUCP son anotados 
      en la parte .UUCP pseudo-domains, para poder sobreescribir las reglas por      
      defecto. La ultima linea es siempre un punto, que indica el mail gateway hacia 
      el resto del mundo. Todos los nombres de nodos detras de uucp-dom: deben ser   
      vecinos validos UUCP.                                                          
                                                                                     
      Como recordatorio de que este archivo debe ser convertido a una base de datos  
      DBM antes de ser usada, la linea de comandos para realizar esta operacion esta 
      puesta como un comentario al inicio del archivo. Siempre tienes que ejecutar   
      este comando cada vez que realices algun cambio en tu mailtertable.            
                                                                                     
      Si no tienes la seguridad de que una ruta de correo vaya a funcionar           
      correctamente, recuerda la opcion -bt de sendmail. Esta opcion arranca el      
      sendmail en modo test; simplemente entra 0, seguido por la direccion de mail   
      sobre la que quieres testear la ruta. La ultima linea te indica el agente      
      interno, el host de destino y la direccion (posiblemente traducido). Sal de    
      este modo tecleando Control-D.                                                 
                                                                                     
                j@uriah 191% sendmail -bt                                            
                ADDRESS TEST MODE (ruleset 3 NOT automatically invoked)              
                Enter <ruleset> <address>                                            
                > 0 foo@interface-business.de                                        
                rewrite: ruleset  0   input: foo @ interface-business . de           
                ...                                                                  
                rewrite: ruleset  0 returns: $# uucp-dom $@ if-bus $: foo \          
                < @ interface-business . de >                                        
                > ^D                                                                 
                j@uriah 192%                                                         
                                                                                     
8.19. ?Como configuro el correo para conexiones NO permanentes a Internet?           
      Si tienes una direccion IP fija en la conexion, no necesitaras ajustar nada de 
      lo que ya viene por defecto. Configura tu hostname como el nombre asignado a   
      tu IP de Internet y sendmail hara el resto.                                    
                                                                                     
      Si tienes direcciones IP asignadas dinamicamente y usas una conexion ppp a     
      Internet, probablemente tendras un buzon en el servidor de correo de tu        
      proveedor. Supongamos que el dominio de tu proveedor es myisp.com, y tu nombre 
      de usuario es user. Supongamos tambien que has llamado a tu maquina bsd.home y 
      que tu proveedor te ha indicado que uses la maaquina relay.myISP.com como mail 
      realy (gateway).                                                               
                                                                                     
      Para poder recoger el correo de tu buzon necesitaras instalar un agente de     
      recogida de correo. Fetchmail es una buena opcion ya que soporta diferentes    
      protocolos. Normalmente se usa POP3. Puedes recoger automaticamente tu correo  
      al realizar la conexion anadiendo la siguiente linea en el archivo             
      /etc+ppp/ppp.linkup:                                                           
                                                                                     
                  MYADDR:                                                            
                  !bg su user -c fetchmail                                           
                                                                                     
                                                                                     
      Asumimos que tienes una cuenta para user en bsd.home. En el home directory de  
      user en bsd.home, crea el archivo .fetchmailrc:                                
                                                                                     
                poll myISP.com protocol pop3 fetchall pass MySecret;                 
                                                                                     
                                                                                     
      No hace falta decir que este archivo no debe ser "leible" por nadie excepto    
      user ya que contiene el password MySecret.                                     
                                                                                     
      Para enviar el correo con la cabecera from: correcta, debes decirle al         
      sendmail que use <user@myISP.com> en lugar de <user@bsd.home>. Tambien         
      deberias decirle al sendmail que envie todo el correo saliente a traves de     
      relay.myISP.com, para una transmision mucho mas rapida.                        
                                                                                     
      El siguiente archivo .mc debe ser suficiente:                                  
                                                                                     
                VERSIONID(`bsd.home.mc version 1.0')                                 
                OSTYPE(bsd4.4)dnl                                                    
                FEATURE(nouucp)dnl                                                   
                MAILER(local)dnl                                                     
                MAILER(smtp)dnl                                                      
                Cwlocalhost                                                          
                Cwbsd.home                                                           
                CwmyISP.com                                                          
                MASQUERADE_AS(`myISP.com')dnl                                        
                FEATURE(allmasquerade)dnl                                            
                FEATURE(masquerade_envelope)dnl                                      
                FEATURE(nocanonify)dnl                                               
                FEATURE(nodns)dnl                                                    
                define(SMART_HOST, `relay.myISP.com')                                
                DmmyISP.com                                                          
                define(`confDOMAIN_NAME',`myISP.com')dnl                             
                define(`confDELIVERY_MODE',`deferred')dnl                            
                                                                                     
                                                                                     
      Mira en la seccion anterior para los detalles de como convertir este archivo   
      .mc en un sendmail.cf. No te olvides de rearrancar sendmail despues de cada    
      actualizacion del archivo sendmail.cf.                                         
8.20. Olvide el password de Root!!                                                   
      Tranquilo!!!. Simplemenre rearranca tu sistema, teclea -s en el prompt de      
      arranque para entrar en modo monousuario. En la pregunta sobre el shell a      
      usar, pulsa ENTER. Aparecera un prompt #. Teclea mount -u / para remontar tu   
      sistema de archivos en modo de lectura/escritura y a continuacion teclea mount 
      -a para montar todos los sistemas de archivos. Ejecura passwd root para        
      cambiar el password de root. Teclea exit para continuar normalmente con el     
      arranque.                                                                      
8.21. ?Como mantengo el control sobre Control-Alt-Delete?                            
      Edita el mapa de teclado que estas usando para la consola y reemplaza las      
      palabras boot por nop. El mapa de teclado por defecto es                       
      /usr/share/syscons/keymaps/us.iso.kbd. Por supuesto si usas otro mapa de       
      teclado adecuado a tu pais, tendrias que editarlo.                             
8.22. ?Como reformateo archivos de texto DOS a UNIX?                                 
      Simplemente usando este comando de perl:                                       
                                                                                     
                perl -i.bak -npe 's/\r\n/\n/g' file ...                              
                                                                                     
                                                                                     
      file es el archivo a procesar. La modificacion se hace en el propio archivo    
      dejando el original grabado con extension .bak.                                
                                                                                     
      Alternativamente puedes usar el comando tr(1)                                  
                                                                                     
      tr -d '\r' < dos-text-file > unix-file                                         
                                                                                     
      dos-text-file es el archivo que contiene el texto DOS mientras que unix-file   
      contendra la salida convertida. Este sistema puede ser mas rapido que usar     
      perl.                                                                          
8.23. ?Como puedo hace "kill" de procesos por nombre?                                
      Usa killall(1).                                                                
8.24. ?Porque el su no me dejar ser root al no estar en el ACL?                      
      El error proviene de sistema del autentificacion distribuida Kerberos. El      
      problema no es fatal pero si molesto. Puedes ejecutar el comando su con la     
      opcion -K, o desinstalar Kerberos como se describe en la siguiente seccion.    
8.25. ?Como desinstalo Kerberos?                                                     
      Para eliminar Kerberos del sistema, reinstala la distribucion bin de la        
      release que estes usando. Si tienes el CDROM, puedes montar el cd (asumiremos  
      que esta en /cdrom) y ejecutar:                                                
                                                                                     
                cd /cdrom/bin                                                        
                ./install.sh                                                         
                                                                                     
8.26. ?Como anado pseudoterminales a mi sistema?                                     
      Si tienes muchos usuarios de telnet, ssh, X, o de consola, probablemente       
      terminaras desbordando el numero de pseudoterminales del sistema. Aqui tienes  
      como anadir mas:                                                               
                                                                                     
       1. Compila e instala un nuevo kernel com la linea                             
                                                                                     
                        pseudo-device pty 256                                        
                                                                                     
                                                                                     
          en el archivo de configuracion.                                            
                                                                                     
       2. Ejecuta el comando                                                         
                                                                                     
                        # cd /dev                                                    
                        # ./MAKEDEV pty{1,2,3,4,5,6,7}                               
                                                                                     
                                                                                     
          para crear 256 nodos de dispositivo para los nuevos terminales.            
                                                                                     
       3. Edita el archivo /etc/ttys y anade una linea para cada uno de los 256      
          terminales. Estas lineas deben seguir la estructura de las entradas        
          existentes, algo como esto:                                                
                                                                                     
                        ttyqc none network                                           
                                                                                     
                                                                                     
          El orden de la designacion de letras es tty[pqrsPQRS][0-9a-v], usando una  
          expresion regular.                                                         
                                                                                     
       4. Rearranca el sistema con el nuevo kernel, y lo tendras listo para          
          funcionar.                                                                 
8.27. ?Como puedo releer el archivo /etc/rc.conf y relanzar /etc/rc sin tener que    
      hacer un reboot?                                                               
      Entra en modo monousuario y a continuacion vuelve a modo multiusuario.         
                                                                                     
      En la consola haz:                                                             
                                                                                     
                # shutdown now                                                       
                (Nota: sin -r o -h)                                                  
                                                                                     
                # return                                                             
                # exit                                                               
                                                                                     
8.28. ?Que es un sandbox?                                                            
      Sandbox es un termino de seguridad. Puede significar dos cosas:                
                                                                                     
        * Un proceso que es situado en el interior de una serie de muros virtuales   
          disenados como prevencion e imposibilitar el acceso al sistema principal   
          en caso de que alguien comprometa la seguridad de ese proceso.             
                                                                                     
          Se dice que el proceso es capaz de "jugar" entre los muros. Esto significa 
          que se supone que nada de lo que haga el proceso referente a la ejecucion  
          de codigo, puede ser capaz de romper los muros, asi no es necesario hacer  
          auditorias detalladas de su codigo para poder conocer todo lo referente a  
          los riesgos de seguridad del proceso.                                      
                                                                                     
          Los muros pueden, por ejemplo, un userid. Esta es la definicion usada en   
          las paginas man de seguridad y del programa named.                         
                                                                                     
          Veamos como ejemplo el servicio 'ntalk' (consultar /etc/inetd.conf). Este  
          servicio solia ejecutarse con el userid de root. Ahora se ejecuta con el   
          userid tty. El usuario tty esta disenado para ser usado como usuario       
          sandbox, dificultando asi la tarea de un intruso que haya conseguido       
          penetrar en el sistema a traves del servicio ntalk. De esta manera, el     
          intruso solo puede afectar a los servicios, programas o procesos propiedad 
          del usuario tty.                                                           
                                                                                     
        * Un proceso que se ha situado en el interior de una simulacion de la        
          maquina. Esto es mas hard-core. Basicamente, significa que alguien que sea 
          capaz de penetrar en el proceso, creera que ha penetrado en el sistema     
          principal, pero de hecho, ha penetrado en una simulacion de esa maquina y  
          no puede modificar ningun dato real.                                       
                                                                                     
          El sistema mas comun de conseguir esto es crear un entorno simulado en un  
          subdirectorio y ejecutar los procesos en ese subdirectorio mediante chroot 
          (la raiz "/" para ese proceso es este directorio, no la raiz "/" real del  
          sistema).                                                                  
                                                                                     
          Otro sistema habitual es montar un sistema de archivos de solo lectura y a 
          continuacio,n crear un nivel de sistema de archivos por encima del         
          anterior que de al proceso la sensacion de encontrarse en un sistema de    
          archivos de lectura/escritura. El proceso creera que es capaz de escribir  
          esos archivos, pero solo el proceso ve los efectos; otros procesos del     
          sistema no ven absolutamente nada.                                         
                                                                                     
          Se intenta crear este tipo de sandbox totalmente transparentes para que el 
          usuario (o intruso) no se de cuenta que esta en el.                        
                                                                                     
      UNIX implementa dos tipos de sandboxes. Uno es a nivel de procesos, y el otro  
      es a nivel de usuarios (userid).                                               
                                                                                     
      Cada proceso UNIX es totalmente independiente de cualquier otro proceso UNIX.  
      Un proceso no puede modificar el espacio de direcciones de otro. Es diferente  
      a los sistemas Windows en los que un proceso puede sobreescribir facilmente el 
      espacio de direcciones de otro proceso, probocando una caida de la maquina.    
                                                                                     
      Un proceso UNIX es propiedad de un userid determinado. Si el userid no es el   
      usuario root, este solo podra acceder a los procesos de su propiedad, evitando 
      la intrusion en procesos ajenos. El userid tambien se usa como sistema de      
      proteccion para datos grabados en disco.                                       

           Capitulo 9. El sistema X Windows y las consolas virtuales

   9.1. Quiero ejecutar las X, ?como lo hago?

   9.2. ?Porque no funciona mi raton con las X?

   9.3. Los menus de X Window y cajas de dialogo no funcionan bien.

   9.4. ?Que es una consola virtual y como creo mas?

   9.5. ?Como accedo a las consolas virtuales desde X?

   9.6. ?Como arranco XDM desde el archivo /etc/ttys?

   9.7. Cuando arranco xconsole obtengo "Couldn't open console".

   9.8. Mi raton PS/2 no funciona bien en X.

   9.9. Mi raton PS/2 de MouseSystems no funciona.

   9.10. Cuando compilo una aplicacion X. imake no puede encontrar el archivo
   imake.tmpl. ?Donde esta?

   9.11. ?Como invierto los botones del raton?

   9.12. ?Como instalo un "splash screen" y donde los consigo?

9.1.  Quiero ejecutar las X, ?como lo hago?                                      
      La manera mas facil es, simplemente, especificar que quieres usar las X    
      durante el proceso de instalacion.                                         
                                                                                 
      Entonces, lee y sigue la documentacion de la herramienta xf86config, la    
      cual te ayuda a configurar el sistema XFree86 sobre las caracteristicas    
      propias de tu sistema (tarjeta de video , raton, etc).                     
                                                                                 
      Quizas te interesaria investigar y probar el servidor Xaccel, disponible a 
      un precio muy razonable. Mira en la seccion Xi Graphics o Metro Link para  
      mas detalles.                                                              
9.2.  ?Porque no funciona mi raton con las X?                                    
      Si estas usando syscons (el driver de consola por defecto), puedes         
      configurar FreeBSD para soportar un raton en cada consola virtual. Para    
      evitar conflictos con las X, syscons soporta un dispositivo virtual        
      llamado /dev/sysmouse. Todos los eventos recibidos desde el mouse real son 
      escritos en el dispositivo sysmouse, usando el protocolo MouseSystems. Si  
      quieres usar el raton en una o mas consolas virtuales y usar las X, te     
      recomendamos la siguiente configuracion:                                   
                                                                                 
                /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"                                   
                       .....                                                     
                                                                                 
                                                                                 
      Hay gente que prefiere usar /dev/mouse bajo X. Para que esto funcione,     
      /dev/mouse debe estar lincado a /dev/sysmouse:                             
                                                                                 
                # cd /dev                                                        
                # rm -f mouse                                                    
                # ln -s sysmouse mouse                                           
                                                                                 
9.3.  Los menus de X Window y cajas de dialogo no funcionan bien.                
      Intenta desactivar la tecla Num Lock.                                      
                                                                                 
      Si tu tecla Num Lock esta activada por defecto al arrancar el sistema,     
      deberias anadir la siguiente linea en la seccion Keyboard del archivo      
      XF86Config.                                                                
                                                                                 
                # Let the server do the NumLock processing.  This should only be 
                # required when using pre-R6 clients                             
                    ServerNumLock                                                
                                                                                 
9.4.  ?Que es una consola virtual y como creo mas?                               
      Las consolas virtuales te permiten tener sesiones simultaneas en la misma  
      maquina sin necesidad de tener montajes complicados como una red o         
      ejecucion de X.                                                            
                                                                                 
      Cuando el sistema arranca, mostrara 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 consola virtual.               
                                                                                 
      En algun momento, es probablemente querras iniciar otra sesion , por       
      ejemplo, para mirar la documentacion de un programa que estas ejecutando,  
      o para leer el correo mientras esperas que termine una sesion ftp que      
      tienes establecida. Solo haz Alt-F2 y encontraras un prompt un prompt de   
      login esperandote en la segunda "consola virtual". Cuando quieras volver a 
      la sesion original, solo tienes que pulsar Alt-F1.                         
                                                                                 
      La instalacion por defecto de FreeBSD tiene tres consolas virtuales        
      activadas, y Alt-F1, Alt-F2 y Alt-F3 cambian entre ellas.                  
                                                                                 
      Para activar mas consolas virtuales, edita /etc/ttys y anade tantas        
      entradas como consolas virtuales quieras a partir de ttyv4, despues del    
      comentario "Virtual Terminals":                                            
                                                                                 
              # 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          
                                                                                 
                                                                                 
      Utiliza tantas consolas como quieras o necesites. Cuantas mas consolas     
      tengas, mas recursos utilizas; esto puede ser importante si tienes 8MB de  
      RAM o menos. Tambien te puede interesar cambiar el modo secure a insecure. 
                                                                                 
      NOTA IMPORTANTE si quieres usar un servidor X DEBES dejar, al menos, un    
      terminal virtual sin usar (o desactivado).                                 
                                                                                 
      La manera mas facil de desactivar una consola es "apagarla". Por ejemplo,  
      para desactivar el terminal 12, cambia esto:                               
                                                                                 
                ttyvb   "/usr/libexec/getty Pc"         cons25  on secure        
                                                                                 
                                                                                 
      por esto:                                                                  
                                                                                 
                ttyvb   "/usr/libexec/getty Pc"         cons25  off secure       
                                                                                 
                                                                                 
      Si tu teclado solo tiene 10 teclas de funcion, tendras que acabar con:     
                                                                                 
                ttyv9   "/usr/libexec/getty Pc"         cons25  off secure       
                ttyva   "/usr/libexec/getty Pc"         cons25  off secure       
                ttyvb   "/usr/libexec/getty Pc"         cons25  off secure       
                                                                                 
                                                                                 
      (Tambien puedes, simplemente, borrar estas lineas.)                        
                                                                                 
      Una vez has editado el archivo /etc/ttys, el siguiente paso es asegurarte  
      de que tienes suficientes dispositivos de terminales virtuales. La manera  
      mas facil de hacerlo es:                                                   
                                                                                 
                # cd /dev                                                        
                # ./MAKEDEV vty12                 # For 12 devices               
                                                                                 
                                                                                 
      A continuacion, la manera mas facil de activar las consolas virtuales es   
      rearrancar el sistema. Si, realmente no quieres rearrancarlo, puedes para  
      el servidor de X Window y ejecutar (como root):                            
                                                                                 
                kill -HUP 1                                                      
                                                                                 
                                                                                 
      Es imperativo que pares el servidor de X Window si esta funcionando, antes 
      de ejecutar este comando. Si no lo haces, parecera que tu sistema esta     
      parado/colgado despues de ejecutar el comando kill.                        
9.5.  ?Como accedo a las consolas virtuales desde X?                             
      Si la consola esta actualmente mostrando X Window, puedes usar             
      Ctrl-Alt-F1, etc, para cambiar entre las consolas virtuales. Ten en cuenta 
      que una vez pases de una consola 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 consola de texto esta bloqueada. Pulsa la tecla Ctrl de 
      nuevo para desbloquearla.                                                  
9.6.  ?Como arranco XDM desde el archivo /etc/ttys?                              
      Existen dos escuelas sobre como arrancar el xdm . Una escuela arranca el   
      xdm desde el archivo /etc/ttys usando el ejemplo dado, mientras que la     
      otra simplemente arranca el xdm desde el archivo rc.local o desde un       
      script X.sh en /usr/local/etc/rc.d. Ambos metodos son igualmente validos,  
      y uno puede funcionar en situaciones que el otro no. En ambos casos el     
      resultado es el mismo: el sistema X Window lanzara un prompt de login      
      grafico.                                                                   
                                                                                 
      El metodo ttys tiene la ventaja de documentar en que vty se lanzaran las X 
      pasando la responsabilidad de rearrancar el servidor X al hacer el logout  
      al proceso init. El metodo rc.local hace mas facil terminar con el proceso 
      xdm en caso de problemas con el servidor X.                                
                                                                                 
      Si arrancamos desde rc.local, xdm debe ser arrancado sin argumentos (como  
      un daemon). xdm debe arrancar DESPUES del proceso getty, o ambos entraran  
      en conflicto bloqueando la consola. La mejor manera de evitar este         
      problema es tener un script que retrase el arranque de xdm durante 10      
      segundos.                                                                  
                                                                                 
      Una version previa de esta FAQ decia que debias anadir el terminal virtual 
      usado por las X al archivo /usr/X11R6/lib/X11/xdm/Xservers. Esto no es     
      necesario: las X usaran el primer terminal virtual que encuentre libre.    
9.7.  Cuando arranco xconsole obtengo "Couldn't open console".                   
      Si arrancas las X con startx, los permisos en /dev/console no seran        
      cambiados, resultando en cosas como que xterm -C y xconsole no funcionen.  
                                                                                 
      Esto se debe a la manera en que son fijados los permisos de la consola. En 
      un sistema multiusuario, podemos no querer que cualquier usuario pueda     
      escribir en la consola de sistema. Para usuarios que realizan logins       
      directamente desde una maquina con un VTY, existe el archivo fbtab para    
      resolver estos problemas.                                                  
                                                                                 
      Asegurate de que existe al menos una linea como esta sin comentar:         
                                                                                 
                /dev/ttyv0 0600 /dev/console                                     
                                                                                 
                                                                                 
      Esta en /etc/fbtab y asegurara que cualquiera que realice un login en      
      /dev/ttyv0 sera el propietario de la consola.                              
9.8.  Mi raton PS/2 no funciona bien en X.                                       
      Tu raton y el driver de raton quizas esten fuera de sincronizacion.        
                                                                                 
      En versiones 2.2.5 y anteriores, conmutando entre sesiones X y sesiones de 
      terminales virtuales, podia provocar una desincronizacion. Si el problema  
      ocurre muy amenudo, deberias anadir la siguiente opcion en el archivo de   
      configuracion de tu kernel y recompilarlo.                                 
                                                                                 
                options PSM_CHECKSYNC                                            
                                                                                 
                                                                                 
      Mira la seccion creando un kernel si no tienes experiencia en compilar     
      nuevos kernels.                                                            
                                                                                 
      En versiones 2.2.6 y posteriores, el chequeo de sincronizacion es          
      realizado de otra manera, y es estandar en el driver de raton PS/2. Aun    
      asi, en casos extranos puedes llegar a ver mensajes de error de            
      sincronizacion como este:                                                  
                                                                                 
                psmintr: out of sync (xxxx != yyyy)                              
                                                                                 
                                                                                 
      y parecer que tu raton no funciona adecuadamente.                          
                                                                                 
      Si esto ocurre, desactiva el codigo de chequeo de sincronizacion poniendo  
      los flags del driver PS/2 a 0x100. Entra en UserConfig poniendo la opcion  
      -c en el prompt de arranque:                                               
                                                                                 
                boot: -c                                                         
                                                                                 
                                                                                 
      Entonces, en la linea de comando de UserConfig, teclea:                    
                                                                                 
                UserConfig> flags psm0 0x100                                     
                UserConfig> quit                                                 
                                                                                 
9.9.  Mi raton PS/2 de MouseSystems no funciona.                                 
      Hemos recibido reportes de que algunos modelos de ratones PS/2 de          
      MouseSystems solo trabajan si estan configurados en modo "alta             
      resolucion".                                                               
                                                                                 
      Desafortunadamente no hay solucion para versiones 2.0.x y 2.1.x. En        
      versiones 2.2.x, aplica el siguiente parche en /sys/i386/isa/psm.c y       
      compila un nuevo kernel.                                                   
                                                                                 
      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 */                           
                                                                                 
                                                                                 
      En versiones 2.2.6 o posteriores, especifica el flag 0x04 al driver PS/2   
      para poner el raton en modo de alta resolucion. Entra en UserConfig:       
                                                                                 
                boot: -c                                                         
                                                                                 
                                                                                 
      y en la linea de comandos teclea:                                          
                                                                                 
                UserConfig> flags psm0 0x04                                      
                UserConfig> quit                                                 
                                                                                 
                                                                                 
      Mira en la seccion anterior para posibles causas de problemas con los      
      ratones.                                                                   
9.10. Cuando compilo una aplicacion X. imake no puede encontrar el archivo       
      imake.tmpl. ?Donde esta?                                                   
      Imake.tmpl es parte del package Imake, una aplicacion estandar de          
      compilacion de X. Tanto Imake como headers y otros archivos necesarios     
      para compilar aplicaciones X estan en la distribucion de programacion X.   
      Puedes instalarla desde el sysinstall o manualmente desde los archivos de  
      la distribucion X.                                                         
9.11. ?Como invierto los botones del raton?                                      
      Ejecuta el comando xmodmap -e "pointer = 3 2 1" desde el archivo .xinitrc  
      o .xsession.                                                               
9.12. ?Como instalo un "splash screen" y donde los consigo?                      
      Justo antes de la publicacion de FreeBSD 3.1 se anadio una nueva           
      caracteristica que permite mostrar "splash screens" durante los mensajes   
      de arranque del sistema. Los "splash screen" deben ser un bitmap de 256    
      colores (*.BMP) o ZSoft PCX (*.PCX). Ademas, deben tener una resolucion de 
      320x200 o inferior para poder trabajar en controladoras VGA estandares. 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 opcion VM86 sea  
      compilada en el kernel. El soporte actual de VESA puede ser compilado      
      directamente en el kernel con la opcion de configuracion VESA o cargando   
      el modulo kld VESA durante el arranque.                                    
                                                                                 
      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, asi que ahora existen dos maneras de cargar un "splash    
      screen":                                                                   
                                                                                 
        * FreeBSD 3.1                                                            
                                                                                 
          El primer paso es encontrar una version bitmap de tu "splash screen".  
          La release 3.1 solo soporta bitmaps de Windows. Una vez hayas elegido  
          tu "splash screen" copiala en /boot/splash.bmp. A continuacion         
          necesitas tener un archivo /boot/loader.rc que contenga las siguientes 
          lineas:                                                                
                                                                                 
                        load kernel                                              
                        load -t splash_image_data /boot/splash.bmp               
                        load splash_bmp                                          
                        autoboot                                                 
                                                                                 
                                                                                 
        * FreeBSD 3.2+                                                           
                                                                                 
          Ademas de soportar los "splash screens" en formato PCX, FreeBSD 3.2    
          incluye un mejor sistema de configuracion del proceso de arranque. Si  
          quieres, puedes usar el metodo senalado para FreeBSD 3.1. Si lo haces, 
          y quieres usar PCX, reemplaza splash_bmp con splash_pcx. Si por el     
          contrario quieres usar la nueva configuracion de arranque, necesitas   
          crear un archivo /boot/loader.rc que contenga las siguientes lineas:   
                                                                                 
                        include /boot/loader.4th                                 
                        start                                                    
                                                                                 
                                                                                 
          y otro archivo /boot/loader.conf que contenga lo siguiente:            
                                                                                 
                        splash_bmp_load="YES"                                    
                       bitmap_load="YES"                                         
                                                                                 
                                                                                 
          Esto asume que estas usando /boot/splash.bmp como tu "splash screen".  
          Si quieres usar un archivo PCX, copialo a /boot/splash.pcx, crea un    
          archivo /boot/loader.rc como se ha indicado anteriormente, y crea un   
          /boot/loader.conf que contenga:                                        
                                                                                 
                        splash_pcx_load="YES"                                    
                        bitmap_load="YES"                                        
                        bitmap_name="/boot/splash.pcx"                           
                                                                                 
                                                                                 
      Ahora todo lo que necesitas es un "splash screen". Puedes navegar por una  
      inmejorable galeria en http://www.cslab.vt.edu/~jobaldwi/splash/.          

                            Capitulo 10. Networking

   10.1. ?Donde puedo encontrar informacion sobre "diskless booting"?

   10.2. ?Puede una maquina FreeBSD ser usada como router dedicado?

   10.3. ?Puedo conectar mi Win95 con Internet a traves de FreeBSD?

   10.4. ?Por que falla la compilacion del ultimo BIND del ISC?

   10.5. ?Soporta FreeBSD SLIP y PPP?

   10.6. ?Soporta FreeBSD NAT o Masquerading?

   10.7. No puedo crear el dispositivo /dev/ed0!

   10.8. ?Como puedo configurar alias de ethernets?

   10.9. ?Como hago para usar el otro puerto de una 3C503?

   10.10. Tengo problemas con NFS desde/hacia FreeBSD.

   10.11. ?Porque no puedo hacer NFS-mount desde Linux?

   10.12. ?Porque no puedo hacer NFS-mount desde una Sun?

   10.13. Tengo problemas usando ppp contra maquinas NeXTStep.

   10.14. ?Como activo soporte de IP multicast?

   10.15. ?Que tarjetas de red estan basadas en el chipset DEC PCI?

   10.16. ?Porque tengo que usar el FQDN para hosts en mi servidor?

   10.17. ``Permission denied'' para todas las operaciones de red.

   10.18. ?Cuanto tiempo retrasa IPFW el trafico?

   10.19. ?Como puedo redirigir peticiones de una maquina a otra?

   10.20. ?Donde puedo conseguir una herramienta de control de ancho de
   banda?.

   10.21. ?Porque aparece "/dev/bpf0: device not configured"?

10.1.  ?Donde puedo encontrar informacion sobre "diskless booting"?                      
       "Diskless booting" significa que una maquina FreeBSD sea arrancada sobre una red, 
       y lea los archivos necesarios de un servidor y no desde su disco duro. Para mas   
       detalles, por favor, lee la seccion diskless booting del manual                   
10.2.  ?Puede una maquina FreeBSD ser usada como router dedicado?                        
       Los estandares de Internet y las buenas practicas de ingenieria nos prohiben      
       proveer el forward de paquetes en la distribucion estandar. Aun asi, puedes       
       activar esta opcion cambiando la siguiente variable a YES en el archivo rc.conf:  
                                                                                         
                 gateway_enable=YES          # Set to YES if this host will be a gateway 
                                                                                         
                                                                                         
       Esta opcion pondra la variable sysctl net.inet.ip.forwarding a 1.                 
                                                                                         
       En muchos casos tambien necesitaras ejecutar un proceso de rutado para indicar la 
       existencia en la red de tu router; FreeBSD incluye el daemon estandar de rutado   
       BSD routed, aunque en situaciones mas complejas quizas quieras usar GaTeD         
       disponible en http://www.gated.org/                                               
                                                                                         
       Es nuestro deber advertirte que estando FreeBSD configurado de esta manera, no    
       cumple completamente con todos los estandares de routers de Internet, pero es     
       suficiente para uso ordinario.                                                    
10.3.  ?Puedo conectar mi Win95 con Internet a traves de FreeBSD?                        
       Tipicamente, la gente que pregunta esto tiene dos pc's en casa, uno con FreeBSD y 
       otro con Win95; la idea es usar FreeBSD para conectar a Internet y luego ser      
       capaz de acceder a Internet desde el computador con Windows 95. Este es realmente 
       un caso especial de la pregunta anterior.                                         
                                                                                         
       Hay un util documento disponible que explica como configurar FreeBSD como un      
       Router PPP                                                                        
                                                                                         
       NOTA: Esto requiere, al menos, tener dos direcciones IP fijas disponibles, y      
       posiblemente tres o mas, dependiendo del numero de maquinas que quieras conectar. 
       Como alternativa, si no tienes una direccion IP fija, puedes usar una de las      
       subredes privadas e instalar un proxy como SQUID y The TIS firewall toolkit en tu 
       FreeBSD.                                                                          
                                                                                         
       Mira tambien la seccion natd.                                                     
10.4.  ?Por que falla la compilacion del ultimo BIND del ISC?                            
       Hay un conflicto entre el archivo cdefs.h incluido en la distribucion de BIND y   
       el distribuido con FreeBSD. Solo tienes que borrar compat/include/sys/cdefs.h.    
10.5.  ?Soporta FreeBSD SLIP y PPP?                                                      
       Si. Mira las paginas man de slattach, sliplogin, pppd y ppp. pppd y ppp soportan  
       conexiones entrantes y salientes. Sliplogin trabaja exclusivamente con conexiones 
       entrantes y slattach con conexiones salientes.                                    
                                                                                         
       Estos programas son descritos en las siguientes secciones del manual:             
                                                                                         
         * Handbook entry on SLIP (server side)                                          
                                                                                         
         * Handbook entry on SLIP (client side)                                          
                                                                                         
         * Handbook entry on PPP (kernel version)                                        
                                                                                         
         * Handbook entry on PPP (user-mode version)                                     
                                                                                         
       Si solo tienes acceso a Internet a traves de un "shell account", quizas quieras   
       mirar el package slirp. Puede darte un (limitado) acceso a servicios como ftp y   
       http.                                                                             
10.6.  ?Soporta FreeBSD NAT o Masquerading?                                              
       Si tienes una red local (una o mas maquinas), pero solo se te ha asignado una     
       unica direccion IP desde tu proveedor de Internet (o si recibes las direcciones   
       de manera dinamica), te interesa mirar el programa natd. Natd te permite conectar 
       una red entera a Internet usando solamente una direccion IP.                      
                                                                                         
       El programa ppp tiene una funcionalidad similar incluida, a traves del parametro  
       -alias. La libreria alias es usada en ambos casos.                                
10.7.  No puedo crear el dispositivo /dev/ed0!                                           
       En el sistema de trabajo de red de Berkeley, los interfaces de red solo son       
       directamente accesibles por el codigo del kernel. Por favor, mira el archivo      
       /etc/rc.network y los man de los programas de red alli mencionados. Si esto te    
       deja totalmente confundido, entonces tendrias que conseguir algun libro de        
       administracion de red de cualquier sistema operativo basado en BSD; con algunas   
       excepciones significativas, administrar el sistema de red en FreeBSD es           
       basicamente igual que en SunOS 4.0 o Ultrix.                                      
10.8.  ?Como puedo configurar alias de ethernets?                                        
       Anade ``netmask 0xffffffff'' en el comando ifconfig como el siguiente:            
                                                                                         
                 ifconfig ed0 alias 204.141.95.2 netmask 0xffffffff                      
                                                                                         
10.9.  ?Como hago para usar el otro puerto de una 3C503?                                 
       Si quieres usar los otros puertos, tendras que especificar parametros adicionales 
       en el comando ifconfig. El puerto por defecto es link0. Para usar el puerto AUI   
       en lugar del BSN, usa link2. Estos flags tendrian que ser especificados usando    
       las variable ifconfig_* en el archivo /etc/rc.conf.                               
10.10. Tengo problemas con NFS desde/hacia FreeBSD.                                      
       Algunas tarjetas de red son mejores que otras y algunas veces pueden causar       
       problemas con aplicaciones de uso intensivo de red como NFS                       
                                                                                         
       Mira la entrada en el manual de NFS para mas informacion sobre este tema.         
10.11. ?Porque no puedo hacer NFS-mount desde Linux?                                     
       Algunas versiones de NFS para Linux solo aceptan peticiones para montar unidades  
       hechas desde un puerto privilegiado; intenta:                                     
                                                                                         
                 mount -o -P linuxbox:/blah /mnt                                         
                                                                                         
10.12. ?Porque no puedo hacer NFS-mount desde una Sun?                                   
       Las estaciones de trabajo Sun con SunOS 4.x solo aceptan peticiones de montar     
       unidades hechas desde puertos privilegiados; intenta                              
                                                                                         
                 mount -o -P sunbox:/blah /mnt                                           
                                                                                         
10.13. Tengo problemas usando ppp contra maquinas NeXTStep.                              
       Intenta desactivar las extensiones TCP en                                         
       url="http://www.FreeBSD.org/cgi/man.cgi?rc.conf" name="/etc/rc.conf"> cambiando   
       la siguiente variable a NO:                                                       
                                                                                         
                 tcp_extensions=NO                                                       
                                                                                         
                                                                                         
       Las maquinas Xylogic's Annex tambien tienen este problema, por lo que tienes que  
       hacer el mismo cambio para conectar con ellas.                                    
10.14. ?Como activo soporte de IP multicast?                                             
       Las operaciones multicast estan totalmente soportadas en FreeBSD 2.0 y            
       superiores. Si quieres usar tu maquina como router multicast, necesitaras cargar  
       el modulo de kernel ip_mrouted_mod y ejecutar el programa mrouted.                
                                                                                         
       Para mas informacion:                                                             
                                                                                         
       Producto        Descripcion             Donde                                     
       --------------- ----------------------- ---------------------------------------   
       faq.txt Mbone FAQ ftp.isi.edu:/mbone/faq.txt                                      
       imm/immserv IMage Multicast  ftp.hawaii.edu:/paccom/imm.src.tar.Z                 
                for jpg/gif images.                                                      
       nv Network Video. ftp.parc.xerox.com:                                             
                /pub/net-reseach/exp/nv3.3alpha.tar.Z                                    
       vat LBL Visual Audio Tool. ftp.ee.lbl.gov:                                        
                /conferencing/vat/i386-vat.tar.Z                                         
       wb LBL White Board. ftp.ee.lbl.gov:                                               
                /conferencing/wb/i386-wb.tar.Z                                           
       mmcc MultiMedia Conference ftp.isi.edu:                                           
                Control program /confctrl/mmcc/mmcc-intel.tar.Z                          
       rtpqual Tools for testing the ftp.psc.edu:/pub/net_tools/rtpqual.c                
                quality of RTP packets.                                                  
       vat_nv_record Recording tools for vat ftp.sics.se:archive/vat_nv_record.tar.Z     
                and nv.                                                                  
                                                                                         
10.15. ?Que tarjetas de red estan basadas en el chipset DEC PCI?                         
       Aqui tienes una lista hecha por Glen Foster:                                      
                                                                                         
               Fabricante      Modelo                                                    
               ----------------------------------------------                            
               ASUS            PCI-L101-TB                                               
               Accton          ENI1203                                                   
               Cogent          EM960PCI                                                  
               Compex          ENET32-PCI                                                
               D-Link          DE-530                                                    
               Dayna           DP1203, DP2100                                            
               DEC             DE435, DE450                                              
               Danpex          EN-9400P3                                                 
               JCIS            Condor JC1260                                             
               Linksys         EtherPCI                                                  
               Mylex           LNP101                                                    
               SMC             EtherPower 10/100 (Model 9332)                            
               SMC             EtherPower (Model 8432)                                   
               TopWare         TE-3500P                                                  
               Zynx            ZX342                                                     
                                                                                         
10.16. ?Porque tengo que usar el FQDN para hosts en mi servidor?                         
       Probablemente el host estara en un dominio diferente; por ejemplo, si estas en el 
       dominio foo.bar.edu y quieres encontrar un host llamado "mumble" en el dominio    
       bar.edu, tendras que llamarlo por su nombre de dominio, "mumble.bar.edu", en vez  
       de solo "mumble".                                                                 
                                                                                         
       Tradicionalmente, esto era permitido por los resolvers BIND BSD. La version       
       actual de bind que se incluye en FreeBSD no resuelve abreviaciones de nombres     
       para hosts fuera de nuestro dominio.                                              
10.17. ``Permission denied'' para todas las operaciones de red.                          
       Si tienes el kernel compilado con la opcion IPFIREWALL . debes tener en cuenta    
       que la politica por defecto es denegar explicitamente todos los paquetes que no   
       estan explicitamente permitidos.                                                  
                                                                                         
       Si involuntariamente has desconfigurado el firewall de tu sistema, puedes         
       restaurar la operatibilidad de la red tecleando el siguiente comando como usuario 
       root:                                                                             
                                                                                         
                 ipfw add 65534 allow all from any to any                                
                                                                                         
                                                                                         
       Para mas informacion en la configuracion del firewall de FreeBSD, mira la seccion 
       del manual.                                                                       
10.18. ?Cuanto tiempo retrasa IPFW el trafico?                                           
       Esta respuesta depende mucho en las reglas definidas y en la version del          
       procesador. Para la mayoria de aplicaciones que tienen que ver con la ethernet y  
       pequenas reglas, la respuesta es, practicamente nada.                             
                                                                                         
       Aqui tienes una lista de cosas a tener en cuenta para crear reglas de filtrado    
       eficientes:                                                                       
                                                                                         
         * Poner una regla "established" al inicio para manejar la mayoria de trafico    
           TCP. No pongas ninguna regla allow tcp antes de esta.                         
                                                                                         
         * Pon las reglas mas usadas antes de las menos usadas (sin modificar la         
           permisividad del firewall). Puedes ver cuales son las reglas mas usadas       
           examinando los contadores de paquetes con la orden ipfw -a l.                 
10.19. ?Como puedo redirigir peticiones de una maquina a otra?                           
       Puedes redirigir peticiones FTP (y otros servicios) con el package "socket",      
       disponible en la coleccion de ports categoria "sysutils". Simplemente tienes que  
       reemplazar la linea del servicio correspondiente en el archivo /etc/services de   
       la siguiente manera:                                                              
                                                                                         
       ftp stream tcp nowait nobody /usr/local/bin/socket socket ftp.foo.com ftp         
                                                                                         
                                                                                         
       donde "ftp.foo.com" y "ftp" son la maquina y puerto de destino.                   
10.20. ?Donde puedo conseguir una herramienta de control de ancho de banda?.             
       Existen dos herramientas de control de ancho de banda para FreeBSD. ALTQ es       
       gratis; Bandwidth Manager de Emerging Technologies es un producto comercial.      
10.21. ?Porque aparece "/dev/bpf0: device not configured"?                               
       El driver Berkeley Packet Filter (bpf) necesita ser activado para ejecutar        
       programas que lo utilizan. Anade esto al archivo de configuracion de tu kernel y  
       crea uno nuevo:                                                                   
                                                                                         
                 pseudo-device bpfilter         # Berkeley Packet Filter                 
                                                                                         
                                                                                         
       A continuacion, despues de rearrancar tendras el dispositivo. Esto puede hacerse  
       entrando en el directorio /dev y ejecutando el siguiente comando:                 
                                                                                         
                   # sh MAKEDEV bpf0                                                     
                                                                                         
                                                                                         
       Por favor, mira la entrada correspondiente en el handbook para mas informacion    
       sobre la creacion de dispositivos.                                                

                                Capitulo 11. PPP

   11.1. El ppp no funciona. ?Que estoy haciendo mal?

   11.2. Ppp se bloquea al ejecutarlo

   11.3. PPP no quiere marcar en modo -auto

   11.4. ?Que significa "No route to host"?

   11.5. Mi conexion se corta pasados 3 minutos

   11.6. Mi conexion se corta en situaciones de carga

   11.7. Mi conexion se corta en periodos aleatorios

   11.8. No ocurre nada despues del mensaje Login OK

   11.9. Sigo teniendo errores sobre el parametro magic

   11.10. Las negociaciones LCP continuan hasta que se cierra la conexion

   11.11. Ppp se bloquea al conectar

   11.12. Ppp se bloqua al abrir un shell de test

   11.13. Ppp sobre un cable null-modem no funciona

   11.14. ?Por que llama sin motivo el ppp en modo -auto?

   11.15. ?Que significan estos errores CCP?

   11.16. PPP se cuelga durante transferencia de archivos con errores I/OP

   11.17. ?Por que ppp no loguea la velocidad de la conexion?

   11.18. Ppp ignora el caracter `\' en mi chat script

   11.19. Ppp produce un seg-fault, pero no veo el archivo ppp.core

   11.20. El proceso que fuerza una llamada en modo auto nunca funciona

   11.21. ?Porque muchos juegos no funcionan con el parametro -alias?

   11.22. ?Ha hecho alguien una lista de puertos utiles?

   11.23. ?Que son los errores FCS?

   11.24. Nada de esto me ayuda - Estoy desesperado !

11.1.  El ppp no funciona. ?Que estoy haciendo mal?                                                                       
       Primero deberias leer el man de ppp y la seccion de PPP del handbook. Activa los logs con el comando               
                                                                                                                          
                 set log Phase Chat Connect Carrier lcp ipcp ccp command                                                  
                                                                                                                          
                                                                                                                          
       Este comando deberia ser tecleado en el prompt del ppp o incluirse en el archivo de configuracion                  
       /etc/ppp/ppp.conf (al inicio de la seccion default es el mejor lugar). Asegurate que el archivo                    
       url="http://www.FreeBSD.org/cgi/man.cgi?syslog.conf" name="/etc/syslog.conf"> contiene las siguientes lineas:      
                                                                                                                          
               !ppp                                                                                                       
               *.*              /var/log/ppp.log                                                                          
                                                                                                                          
                                                                                                                          
       y que el archivo /var/log/ppp.log existe. Puedes encontrar mucha informacion sobre lo que esta pasando en las      
       conexiones con el archivo de log.                                                                                  
                                                                                                                          
       Si tu version de ppp no entiende el comando "set log" deberias bajarte la ultima version. Esta compilara sin       
       problemas en FreeBSD 2.1.5 y superiores.                                                                           
11.2.  Ppp se bloquea al ejecutarlo                                                                                       
       Esto ocurre normalmente por que no se puede resolver el nombre de la maquina. La mejor manera de solucionar este   
       problema es asegurarse que el sistema use en primer lugar el archivo /etc/hosts para hacer la resolucion de        
       nombres. Para ello, basta con editar el archivo /etc/host.conf y poner la linea hosts en primer lugar. A           
       continuacion, simplemente hay que anadir una linea para la maquina local en el archivo /etc/hosts. Si no existe    
       una red local, modificar la linea localhost:                                                                       
                                                                                                                          
       127.0.0.1 foo.bar.com foo localhost                                                                                
                                                                                                                          
                                                                                                                          
       Anadir otra linea para la maquina local. Consultar las paginas man relevantes para mas detalles.                   
                                                                                                                          
       Ahora se deberia poder ejecutar el siguiente mandato de forma satisfactoria ping -c1 `hostname`.                   
11.3.  PPP no quiere marcar en modo -auto                                                                                 
       Primero, asegurate de tener una ruta por defecto. Ejecutando el comando                                            
       url="http://www.FreeBSD.org/cgi/man.cgi?netstat"> name="netstat -rn"> deberias ver dos entradas como estas:        
                                                                                                                          
       Destination        Gateway            Flags     Refs     Use     Netif Expire                                      
       default            10.0.0.2           UGSc        0        0      tun0                                             
       10.0.0.2           10.0.0.1           UH          0        0      tun0                                             
                                                                                                                          
                                                                                                                          
       Esto es asumiendo que hayas usado las direcciones del manual, la pagina man o del archivo de ejemplo               
       ppp.conf.sample. Si no tienes una ruta por defecto, puede ser por que estes usando una version antigua de ppp que  
       no entiende la palabra HISADDR en el archivo ppp.conf. Si tu version de ppp es de antes de FreeBSD 2.2.5, cambia   
       la linea                                                                                                           
                                                                                                                          
                 add 0 0 HISADDR                                                                                          
                                                                                                                          
                                                                                                                          
       por otra diciendo                                                                                                  
                                                                                                                          
                 add 0 0 10.0.0.2                                                                                         
                                                                                                                          
                                                                                                                          
       Otra razon para la inexistencia de la ruta por defecto es que sin darte cuenta hayas creado un default router en   
       el archivo /etc/rc.conf (anteriormente llamado /etc/sysconfig) y hayas omitido la linea                            
                                                                                                                          
                 delete ALL                                                                                               
                                                                                                                          
                                                                                                                          
       en el archivo ppp.conf. Si es este el caso vuelve a la seccion configuracion final del sistema en el handbook.     
11.4.  ?Que significa "No route to host"?                                                                                 
       Este error se debe normalmente a la falta de la seccion                                                            
                                                                                                                          
                   MYADDR:                                                                                                
                   delete ALL                                                                                             
                   add 0 0 HISADDR                                                                                        
                                                                                                                          
                                                                                                                          
       en el archivo /etc/ppp/ppp.linkup. Esto es solo necesario si tienes una direccion IP dinamica o no sabes la        
       direccion de tu gateway. Si estas usando el modo interactivo, puedes teclear lo siguiente despues de entrar en     
       packet mode:                                                                                                       
                                                                                                                          
                 delete ALL                                                                                               
                 add 0 0 HISADDR                                                                                          
                                                                                                                          
                                                                                                                          
       Pasate por la seccion PPP y direcciones IP dinamicas del handbook para mas informacion.                            
11.5.  Mi conexion se corta pasados 3 minutos                                                                             
       El timeout de ppp por defecto es de 3 minutos. Se puede ajustar con la linea:                                      
                                                                                                                          
                 set timeout NNN                                                                                          
                                                                                                                          
                                                                                                                          
       Donde NNN es el numero de segundos de inactividad antes de cerrar la conexion. Si NNN es 0, la conexion no se      
       cerrara nunca por timeout. Es posible poner este comando en el archivo ppp.conf, o teclearla en el prompt del modo 
       interactivo. Tambien es posible ajustarla en cualquier momento mientras la conexion este activa conectando al      
       socket del servidor ppp usando telnet o pppctl. Leete el man de ppp para mas detalles.                             
11.6.  Mi conexion se corta en situaciones de carga                                                                       
       Si tienes la opcion Link Quality Reporting (LQR) configurada es posible que demasiados paquetes LQR se pierdan     
       entre tu maquina y el remoto. PPP deduce que la linea es mala y corta la conexion. En versiones anteriores a la    
       2.2.5 de FreeBSD, LQR estaba activado por defecto. Ahora esta desactivado por defecto. LQR puede ser activado con  
       la linea                                                                                                           
                                                                                                                          
                 disable lqr                                                                                              
                                                                                                                          
11.7.  Mi conexion se corta en periodos aleatorios                                                                        
       Algunas veces, en lineas telefonicas de baja calidad o con mucho ruido, o lineas con la opcion de llamada en       
       espera activada, el modem corta la conexion por que piensa (erroneamente) que ha perdido la portadora.             
                                                                                                                          
       Hay una opcion en muchos modems para determiar la tolerancia a perdidas temporales de portadora. En un USR         
       Sportster por ejemplo, esta es medida por el registro S10 en decimas de segundo. Para hacer que tu modem sea mas   
       resistente, puedes anadir la siguiente secuencia "send-expect" a la cadena de llamada:                             
                                                                                                                          
                 set dial "...... ATS10=10 OK ......"                                                                     
                                                                                                                          
                                                                                                                          
       Mira en el manual de tu modem para mas detalles.                                                                   
11.8.  No ocurre nada despues del mensaje Login OK                                                                        
       En versiones anteriores a FreeBSD 2.2.5, una vez estaba la conexion establecida, ppp espera a que el remoto inicie 
       la negociacion LCP (Line Control Protocol). Muchos proveedores de Internet no iniciaran la negociacion esperando   
       que sea el cliente el que lo haga. Para forzar al ppp a iniciar el LCP, usa la siguiente linea:                    
                                                                                                                          
                 set openmode active                                                                                      
                                                                                                                          
                                                                                                                          
       Nota: Normalmente no hay problemas si las dos partes inician la negocioacion LCP, ya que el modo abierto (open     
       mode) esta activo por defecto. De todas maneras, la siguiente seccion explica cuando pueden haber problemas.       
11.9.  Sigo teniendo errores sobre el parametro magic                                                                     
       Ocasionalmente, justo despues de la conexion, puedes ver mensajes en el log referentes a "magic number is the      
       same". Algunas veces, estos mensajes son inofensivos, y otras veces uno de los dos extremos finaliza la conexion.  
       Algunas implementaciones de ppp no pueden solucionar este problema, y, aunque parezca que la conexion esta         
       establecida, veras repetidas peticiones y aceptaciones de configuracion en el archivo de log hasta que una de las  
       dos partes cierra la conexion.                                                                                     
                                                                                                                          
       Esto ocurre normalmente en servidores con disco lentos que tienen problemas para gestionar eficientemente los      
       puertos serie. Tambien existen informes de problemas en conexiones mediante slip. La razon es que en el tiempo que 
       tarda el servidor en salir del getty y ejecutar el ppp, el cliente manda los paquetes de inicio LCP. Al estar el   
       ECHO todavia activo en el puerto del servidor, el cliente ppp lo unico que ve son sus propios paquetes             
       "reflejados" por el servidor.                                                                                      
                                                                                                                          
       Una parte de la negociacion LCP es establecer un numero magico para cada una de los dos extremos de las conexiones 
       para que los "reflejos" puedan ser detectados. El protocolo dice que cuando el remoto intenta negociar el mismo    
       "magic number", se debe enviar un NAK para seleccionar un nuevo "magic number". Durante el periodo de tiempo que   
       el servidor tiene el ECHO activado en el puerto, el cliente ppp envia paquetes LCP, ve que el mismo "magic" vuelve 
       en el paquete reflejado y lo da como no valido (envia NAK). Este todavia ve el paquete reflajado con NAK (lo que   
       significa que el ppp debe cambiar su "magic"). Esto produce un enorme numero de cambios de "magic number" que son  
       introducidos en el buffer tty del servidor. Tan pronto como el ppp arranca en el servidor, es bombardeado con      
       cambios de "magic numbers" e inmediatamente decide que ya ha realizado el numero suficiente de negociaciones LCP y 
       corta la conexion. Mientras tanto, el cliente, que ya no ve los paquetes reflejados, recibe sin problemas la       
       desconexion del servidor y tambien cierra la conexion.                                                             
                                                                                                                          
       Esto puede ser resuelto permitiendo que el remoto inicie la negociacion, poniendo la siguiente linea en el archivo 
       ppp.conf:                                                                                                          
                                                                                                                          
                 set openmode passive                                                                                     
                                                                                                                          
                                                                                                                          
       Esto indica al ppp que espere a que el servidor comience la negociacion LCP. Es posible que algunos servidores     
       nunca inicien la negociacion. Si este es el caso, puedes hacer algo como:                                          
                                                                                                                          
                 set openmode active 3                                                                                    
                                                                                                                          
                                                                                                                          
       Esto le indica al ppp que sea pasivo durante 3 segundos, y despues comience a enviar peticiones LCP. Si el remoto  
       envia peticiones durante este periodo, ppp respondera inmediatamente sin esperar los 3 segundos establecidos.      
11.10. Las negociaciones LCP continuan hasta que se cierra la conexion                                                    
       Existe actualmente un problema de implementacion en ppp en la que no asocia las respuestas LCP, CCP & IPCP con sus 
       peticiones originales. Como resultado, si una implementacion ppp es mas lenta durante 6 segundos que la remota, la 
       remota enviara dos peticiones de configuracion LCP adicionales. Esto es fatal.                                     
                                                                                                                          
       Considera dos implementaciones, A y B. A empieza a enviar peticiones LCP inmediatamente despues de conectar y B    
       tarda 7 segundos en arrancar. Cuando B arranca, A ha enviado 3 peticiones LCP. Estamos asumiendo que la linea      
       tiene el ECHO desactivado, si no, veriamos los problemas de "magic number" descritos en el apartado anterior. B    
       envia un REQ, y a continuacion envia un ACK al primer REQ de A. Esto resulta en que A entra en modo OPENED y envia 
       un ACK (el primero) a B. Mientras, B devuelve dos ACKs mas en respuesta a los dos REQs adicionales enviados por A  
       antes de que B arrancase .B recibe el primer ACK de A y entra en modo OPENED. A recibe el segundo ACK de B y       
       vuelve al estado REQ-SENT, enviando otro (el cuarto) REQ. Entonces recibe el tercer ACK y entra en modo OPENED.    
       Mientras, B recibe el cuarto REQ de A, produciendo que vuelva de nuevo al estado ACK-SENT y enviando otro (el      
       segundo) REQ y (cuarto) ACK. A recibe el REQ, entra en modo REQ-SENT y envia otro REQ. Inmediatamente recibe el    
       siguiente ACK y entra en OPENED.                                                                                   
                                                                                                                          
       Esto pasa hasta que una de las partes piensa que ya ha realizado suficientes reintentos y corta la conexion.       
                                                                                                                          
       La mejor manera de evitar esto es configurar una de las partes de manera pasiva - que es, hacer que una de las     
       partes espere a que la otra comience la negociacion. Esto puede realizarse con el comando:                         
                                                                                                                          
                 set openmode passive                                                                                     
                                                                                                                          
                                                                                                                          
       Se debe tener cuidado con esta opcion. Tambien se puede usar:                                                      
                                                                                                                          
               set stopped N                                                                                              
                                                                                                                          
                                                                                                                          
       para limitar el numero de veces que ppp espera a que el remoto comience la negociacion. Alternativamente, puedes   
       user el comando:                                                                                                   
                                                                                                                          
                 set openmode active N                                                                                    
                                                                                                                          
                                                                                                                          
       donde N es el numero de segundos que espera antes de empezar la negociacion. Mira en el manual para mas detalles.  
11.11. Ppp se bloquea al conectar                                                                                         
       Antes de la version 2.2.5 era posible que la conexion se corte nada mas iniciarse debido a un problema en la       
       negociacion de compresion Predictor1. Esto solo pasa si las dos partes intentan negociar con diferentes protocolos 
       de control de compresion (CCP). Este problema ya esta corregido, pero si estas usando una version antigua de ppp,  
       el problema puede solucionarse con la linea                                                                        
                                                                                                                          
                 disable pred1                                                                                            
                                                                                                                          
11.12. Ppp se bloqua al abrir un shell de test                                                                            
       Cuando ejecutas el comando shell o !, ppp ejecuta un shell (o si has pasado argumentos, ppp ejecutara esos         
       argumentos). Ppp esperara a que se complete el comando antes de continuar. Si intentas usar la conexion ppp        
       mientras se ejecuta el comando, parecera que la conexion se ha colgado. Esto es por que ppp esta esperando a que   
       se complete la ejecucion del comando.                                                                              
                                                                                                                          
       Si quieres ejecutar comandos como este, usa el comando !bg en su lugar. Esto ejecutara el comando en background, y 
       ppp continua sin problemas con la conexion.                                                                        
11.13. Ppp sobre un cable null-modem no funciona                                                                          
       No hay manera que ppp detecte automaticamente que una conexion directa se ha cortado. Es debido a las lineas que   
       se usan en un cable serie null-modem. Cuando usamos este tipo de conexion, LQR deberia estar siempre activada con  
       el comando                                                                                                         
                                                                                                                          
                 enable lqr                                                                                               
                                                                                                                          
                                                                                                                          
       LQR es aceptado por defecto si es negociado por el remoto.                                                         
11.14. ?Por que llama sin motivo el ppp en modo -auto?                                                                    
       Si ppp llama inesperadamente, debes determinar la causa, y poner filtros (dfilters) para prevenir esas llamadas.   
                                                                                                                          
       Para determinar la causa, usa la siguiente linea:                                                                  
                                                                                                                          
                 set log +tcp/ip                                                                                          
                                                                                                                          
                                                                                                                          
       Esto guardara todo el trafico que pase a traves de la conexion. La proxima vez que se realice una llamada no       
       deseada, podras ver la causa convenientemente guardada.                                                            
                                                                                                                          
       Ahora puedes desactivar las llamadas producidas por esa causa. Usualmente, este tipo de problemas se debe a        
       consultas de DNS. Para prevenir que las consultas de DNS puedan establecer conexiones usa la siguiente linea (esto 
       no hara que los paquetes de DNS queden parados cuando la conexion esta establecida):                               
                                                                                                                          
                 set dfilter 1 deny udp src eq 53                                                                         
                 set dfilter 2 deny udp dst eq 53                                                                         
                 set dfilter 3 permit 0/0 0/0                                                                             
                                                                                                                          
                                                                                                                          
       Esto no siempre es aconsejable, ya que puede afectar a la capacidad de realizar conexiones bajo demanda - muchos   
       programas necesitan hacer una consulta al DNS antes de poder realizar cualquier operacion.                         
                                                                                                                          
       En el caso del DNS, deberias determinar que es lo que esta intentando realizar esas consultas de DNS. Muchas       
       veces, sendmail es el culpable. Debes asegurarte configurar el sendmail de manera que no realice ninguna consulta  
       al DNS. Mira la seccion Configuracion de correo para tener mas detalles acerca de como crear una archivo propio de 
       configuracion de sendmail. Tambien deberias anadir la siguiente linea en tu archivo .mc:                           
                                                                                                                          
                 define(`confDELIVERY_MODE', `d')dnl                                                                      
                                                                                                                          
                                                                                                                          
       Esto hara que sendmail encole todo el correo hasta que no se procese la cola (usualmente, sendmail es invocado con 
       "-bd -q30m", indicandole que procese la cola cada 30 minutos) o hasta que se ejecuta el comando "sendmail -q" (por 
       ejemplo, desde el archivo ppp.linup).                                                                              
11.15. ?Que significan estos errores CCP?                                                                                 
       Sigo viendo los siguientes errores en el archivo de log:                                                           
                                                                                                                          
                 CCP: CcpSendConfigReq                                                                                    
                 CCP: Received Terminate Ack (1) state = Req-Sent (6)                                                     
                                                                                                                          
                                                                                                                          
       Esto es porque ppp esta intentando negociar compresion Predictor1, y el remoto no quiere negociar ningun tipo de   
       compresion. Estos mensajes son sin importancia, pero si quieres eliminarlos, puedes desactivar la compresion       
       Predictor1 localmente:                                                                                             
                                                                                                                          
                 disable pred1                                                                                            
                                                                                                                          
11.16. PPP se cuelga durante transferencia de archivos con errores I/OP                                                   
       En la version FreeBSD 2.2.2 y anteriores, habia un problema en el driver tun que no permitia paquetes entrantes    
       con un tamano mayor que el MTU del interface. La recepcion de un paquete mayor que el MTU resulta en un error IO   
       que es logueado via syslogd.                                                                                       
                                                                                                                          
       La especificacion PPP dice que un MRU de 1500 siempre deberia ser aceptada como minimo, a pesar de lo que se       
       negocie mediante LCP, de todas maneras, es posible que hayas disminuido el MTU por debajo de 1500 y tu proveedor   
       te este enviando paquetes de 1500, haciendo que tu conexion se bloquee.                                            
                                                                                                                          
       El problema puede solucionarse haciendo que el tamano del MTU nunca sea inferior a 1500 bajo FreeBSD 2.2.2 y       
       anteriores.                                                                                                        
11.17. ?Por que ppp no loguea la velocidad de la conexion?                                                                
       Para loguear todas las lineas de "conversacion" de tu modem, debes activar la siguiente opcion:                    
                                                                                                                          
                 set log +connect                                                                                         
                                                                                                                          
                                                                                                                          
       Esto hara que ppp loguee todo hasta la ultima cadena "expect" pedida.                                              
                                                                                                                          
       Si quieres ver la velocidad de tu conexion y usas PAP o CHAP (y por lo tanto no tienes nada que "chatear" despues  
       del CONNECT en el script de marcado), debes estar seguro de indicarle al ppp que espera la linea "CONNECT con algo 
       como esto:                                                                                                         
                                                                                                                          
                 set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n" 
                                                                                                                          
                                                                                                                          
       Aqui, tenemos nuestro CONNECT, enviamos nada, y esperamos un salto de linea, forzando al ppp que lea la respuesta  
       del CONNECT.                                                                                                       
11.18. Ppp ignora el caracter `\' en mi chat script                                                                       
       PPP lee cada linea de los archivos de configuracion para poder interpretar cadenas como set phone "123 456 789"    
       correctamente. Para especificar un caracter ``"'', debes usar la contrabarra (``\'').                              
                                                                                                                          
       Cuando el interprete lee cada argumento, reinterpreta el argumento para buscar alguna secuencia especial de escape 
       como ``\P'' o ``\T''. Como resultado de esta doble lectura, recuerda que has de usar el numero correcto de escapes 
       (contrabarras).                                                                                                    
                                                                                                                          
       Si quieres enviar un caracter ``\'' a tu modem, necesitas hacer algo como:                                         
                                                                                                                          
                 set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"                                                                 
                                                                                                                          
                                                                                                                          
       resultando en la siguiente secuencia:                                                                              
                                                                                                                          
                 ATZ                                                                                                      
                 OK                                                                                                       
                 AT\X                                                                                                     
                 OK                                                                                                       
                                                                                                                          
                                                                                                                          
       o                                                                                                                  
                                                                                                                          
                 set phone 1234567                                                                                        
                 set dial "\"\" ATZ OK ATDT\\T"                                                                           
                                                                                                                          
                                                                                                                          
       resultando en la siguiente secuencia:                                                                              
                                                                                                                          
                 ATZ                                                                                                      
                 OK                                                                                                       
                 ATDT1234567                                                                                              
                                                                                                                          
11.19. Ppp produce un seg-fault, pero no veo el archivo ppp.core                                                          
       Ppp (o cualquier otro programa de este tipo), nunca deberian hacer un core dump. Por que ppp funciona con un id de 
       usuario 0, el sistema operativo no escribira la imagen del core en disco. Si ppp termina con errores de            
       "segmentation violation" o cualquier otra senal que normalmente causa un core dumped, y quieres poder hacer un     
       debug de ese core, asegurate de usar la ultima version de ppp, y haz lo siguiente:                                 
                                                                                                                          
                 $ tar xfz ppp-*.src.tar.gz                                                                               
                 $ cd ppp*/ppp                                                                                            
                 $ echo STRIP= >>Makefile                                                                                 
                 $ echo CFLAGS+=-g >>Makefile                                                                             
                 $ make clean all                                                                                         
                 $ su                                                                                                     
                 # make install                                                                                           
                 # chmod 555 /usr/sbin/ppp                                                                                
                                                                                                                          
                                                                                                                          
       Ahora tendras instalada una version "debuggable" de ppp. Tendras que ser root para poder ejecutar ppp ya que todos 
       sus privilegios han sido revocados. Cuando arranques ppp, acuerdate del directorio en el que te encuentras.        
                                                                                                                          
       Ahora, cuando ppp recibe una violacion de segmentacion , creara un archivo core llamado ppp.core. A continuacion , 
       deberias hacer lo siguiente:                                                                                       
                                                                                                                          
                 $ su                                                                                                     
                 # gdb /usr/sbin/ppp ppp.core                                                                             
                 (gdb) bt                                                                                                 
                 .....                                                                                                    
                 (gdb) f 0                                                                                                
                 .....                                                                                                    
                 (gdb) i args                                                                                             
                 .....                                                                                                    
                 (gdb) l                                                                                                  
                 .....                                                                                                    
                                                                                                                          
                                                                                                                          
       Toda esta informacion puede hacer posible diagnosticar el problema. Si estas familiarizado con gdb, puedes         
       encontrar otras pistas como que causo el dump y las direcciones y valores de las variables mas relevantes.         
11.20. El proceso que fuerza una llamada en modo auto nunca funciona                                                      
       Este es un problema conocido cuando ppp esta configurado para negociar una IP dinamica local con el remoto. Este   
       problema ha sido solucionado en la ultima version - busca en el man la palabra iface.                              
                                                                                                                          
       El problema era que cuando el programa inicial llama a connect(2), el IP del interface tun es asignado al punto    
       final del socket. El kernel crea el primer paquete saliente y establece la conexion. Si, como resultado de la      
       asignacion dinamica de IP, la direccion del interface es cambiada, el punto final del socket original sera         
       invalido. Los siguientes paquetes enviados al remoto normalmente seran descartados. Aun si no lo son, cualquier    
       respuesta no sera enrutada hacia la maquina de origen por que la direccion IP de la maquina de origen ha cambiado. 
                                                                                                                          
       Hay varias maneras teoricas de solucionar este problema. Lo mejor seria que el remoto reasignase la misma IP si    
       fuese posible :-) La version actual de ppp hace esto, pero otras muchas implementaciones no.                       
                                                                                                                          
       El metodo mas sencillo desde nuestra parte, seria no cambiar nunca la IP del interface tun, pero por el contrario, 
       cambiar todos los paquetes salientes de manera que la ip de origen es cambiada del IP del interface a la IP        
       negociada, instantaneamente. Esto es, esencialmente, lo que hacen libalias(3) y el parametro -alias de ppp.        
                                                                                                                          
       Otra alternativa (y probablemente la mas eficaz) es implementar una llamada al sistema que cambie todos los        
       sockets de una IP a otra. Ppp deberia usar esta llamada para modificar los sockets de todos los programas          
       existentes cuando una nueva direccion IP es negociada. La misma llamada de sistema podria ser usada para clientes  
       dhcp cuando son forzados a rehacer sus sockets.                                                                    
                                                                                                                          
       Una tercera opcion es permitir que un interface se active sin IP. Los paquetes salientes tendrian un IP de         
       255.255.255.255 hasta que el primer SIOCAIFADDR ioctl este hecho. Esto permitiria que ppp cambiase el IP de        
       origen, pero solo si el socket es 255.255.255.255 y solo el IP y el checksum necesitan cambiar. Esto, de todas     
       maneras, requiere tocar el kernel para que puede enviar paquetes incorrectos a un interface mal configurado.       
11.21. ?Porque muchos juegos no funcionan con el parametro -alias?                                                        
       La razon por la que muchos de los juegos no funcionan es por que la maquina externa intentara abrir una conexion o 
       enviar paquetes UDP (no solicitados) a la maquina interna. El software "alias" no sabe que esos paquetes debrin    
       enviarse a la maquina interna.                                                                                     
                                                                                                                          
       Para que las cosas funcionen, asegurate que la unica cosa que esta funcionando es el software con el que tienes    
       problemas, entonces ejecuta tcpdump en el interface tun del gateway o ejecuta el log tcp/ip del ppp ("set log      
       +tcp/ip" en el gateway.                                                                                            
                                                                                                                          
       Cuando arrancas el software que no funciona, deberis ver paquetes que pasan a traves del gateway. Cuando algo      
       vuelve del exterior, sera rechazado (ese es el problema). Apunta el numero de puerto de esos paquetes y cierra el  
       software que no funciona. Haz esto varias veces para comprobar si el numero de puerto se repite. Si es asi, la     
       siguiente linea en el archivo de configuracion del ppp /etc/ppp/ppp.conf hara que las cosas funcionen:             
                                                                                                                          
                alias port proto internalmachine:port port                                                                
                                                                                                                          
                                                                                                                          
       donde "proto" puede ser "tcp" o "udp", "internalmachine" es la maquina a la que quieres que los paquetes sean      
       enviados y "port" es el numero de puerto de destino de los paquetes.                                               
                                                                                                                          
       No podras usar ese software en otras maquinas sin modificar el comando anterior, y ejecutar el software            
       simultaneamente en dos maquinas internas no sera posible - despues de todo, el mundo exterior esta viendo a toda   
       tu red como una sola maquina.                                                                                      
                                                                                                                          
       Si los numeros de puertos no se repiten, hay tres opciones mas:                                                    
                                                                                                                          
       1) Desarrollar el soporte en libalias. Ejemplos de estos "casos especiales" los puedes encontrar en                
       /usr/src/lib/libalias/alias_*.c (alias_ftp.c es un buen prototipo). Esto usualmente supone leer ciertos paquetes   
       salientes conocidos, identificando la instruccion que le indica a la maquina exterior que inicie una conexion con  
       la maquina interna en un puerto especifico (aleatorio) y configurar un "ruta" en la tabla de alias para que los    
       paquetes siguientes sepan donde ir.                                                                                
                                                                                                                          
       Esta es la solucion mas dificil, pero es la mejor y hara que el software funcione con multiples maquinas.          
                                                                                                                          
       2) Usar un proxy. La aplicacion debe soportar socks5 por ejemplo, o (como en el caso del "cvsup") deberia tener    
       una opcion "pasiva" que evita que el remoto intente abrir conexiones con la maquina local.                         
                                                                                                                          
       3) Redireccionar todo el trafico a la maquina interna usando "alias addr". Esta es la solucion mas sencilla.       
11.22. ?Ha hecho alguien una lista de puertos utiles?                                                                     
       Todavia no, pero se podria hacer, si hay interes. En cada ejemplo, internal debe ser reemplazado por la direccion  
       IP de la maquina que va a estar jugando.                                                                           
                                                                                                                          
         * Quake                                                                                                          
                                                                                                                          
           alias port udp internal:6112 6112                                                                              
                                                                                                                          
           Alternativamente, quizas estes interesado en mirar en el www.battle.netsoporte de Quake a traves de proxy">.   
                                                                                                                          
         * Quake 2                                                                                                        
                                                                                                                          
           alias port udp internal:27901 27910                                                                            
                                                                                                                          
         * Red Alert                                                                                                      
                                                                                                                          
           alias port udp internal:8675 8675                                                                              
                                                                                                                          
           alias port udp internal:5009 5009                                                                              
                                                                                                                          
         * Half Life                                                                                                      
                                                                                                                          
           alias port udp internal:27005 27015                                                                            
                                                                                                                          
         * PCAnywhere 8.0                                                                                                 
                                                                                                                          
           alias port udp internal:5632 5632                                                                              
                                                                                                                          
           alias port tcp internal:5631 5631                                                                              
11.23. ?Que son los errores FCS?                                                                                          
       FCS significa Frame Check Sequence. Cada paquete ppp tiene un checksum anadido para asegurar que los datos que se  
       reciben son los datos que han sido enviados. Si el FCS de un paquete entrante es incorrecto, el paquete es         
       rechazado y se incremente el contador HDLC FCS. Los valores de error HDLC se pueden visualizar usando el comando   
       show hdlc.                                                                                                         
                                                                                                                          
       Si tu conexion es mala (o si tu driver serie esta rechazando paquetes), veras errores FCS ocasionales. En general  
       no tienes porque preocuparte de ellos. Si tienes un modem externo, asegurate que el cable esta correctamente       
       aislado de interferencias - esto deberia erradicar el problema.                                                    
                                                                                                                          
       Si tu conexion se corta tan pronto como has conectado y ves gran cantidad de errores FCS, puede ser por que ti     
       conexion no es de 8 bits. Asegurate de que tu modem no esta usando control de flujo (XON/XOFF) por software. Si tu 
       conexion de datos debe usar control de flujo por software, usa el comando set accmap 0x000a0000 para indicar al    
       ppp que "escape" los caracteres ^Q y ^S.                                                                           
                                                                                                                          
       Otra razon para ver muchos errores FCS puede ser que el remoto haya dejado de "hablar" PPP. Deberis activar el log 
       asincrono para determinar si los datos entrantes son de un login o un prompt de shell. Si tienes un prompt de      
       shell en el extremo de la conexion, es posible terminar el ppp sin cortar la conexion usando el comando close clp  
       (usando el comando term podras conectar de nuevo con el shell de la maquina remota.                                
                                                                                                                          
       Si no hay nada en el log que indique por que se ha terminado la conexion, deberis preguntar al administrador del   
       sistema remoto porque ha terminado la sesion.                                                                      
11.24. Nada de esto me ayuda - Estoy desesperado !                                                                        
       Si todo falla, envia toda la informacion que puedas, incluyendo los archivos de configuracion, como arrancas el    
       ppp, las partes relevantes del archivo de log y la salida del comando netstat -rn (antes y despues de la conexion) 
       a la lista de distribucion FreeBSD-questions@FreeBSD.org, a la lista de FreeBSD en castellano o al grupo de news   
       comp.unix.bsd.FreeBSD.misc y alguien te ayudara a solucionar los problemas.                                        

                       Capitulo 12. Comunicaciones serie

   Esta seccion responde las preguntas mas frecuentes sobre las
   comunicaciones serie con FreeBSD. PPP y SLIP se tratan en la seccion
   Networking.

   12.1. ?Como se si FreeBSD ha encontrado mis puertos serie?

   12.2. ?Como se si FreeBSD ha encontrado mi modem interno?

   12.3. He actualizado a 2.0.5 y mi tty0X no existen!

   12.4. ?Como accedo a los puertos serie en FreeBSD?

   12.5. ?Como activo el soporte de tarjetas serie multipuerto?

   12.6. ?Puede manejar FreeBSD tarjetas multipuerto compartiendo irq?

   12.7. ?Puedo cambiar los parametros serie por defecto para un puerto?

   12.8. ?Como puedo activar logins de entrada en mi modem?

   12.9. ?Como puedo conectar un dumb terminal a un FreeBSD?

   12.10. ?Porque no puedo ejecutar tip o cu?

   12.11. Mi modem hayes no esta soportado. ?Que puedo hacer?

   12.12. ?Como puedo introducir estos comandos AT?

   12.13. El simbolo @ no funciona correctamente!

   12.14. ?Como puedo llamar desde la linea de comandos?

   12.15. ?Tengo que teclear la velocidad cada vez que hago esto?

   12.16. Accedo a diferentes hosts a traves de un servidor de terminales.

   12.17. ?Puede tip intentar mas de una linea para cada lugar?

   12.18. ?Porque tengo que teclea CTRL+P dos veces para enviar CTRL+P una
   vez?

   12.19. De repente, todo lo que tecleo es en mayusculas

   12.20. ?Como puedo hacer transferecia de archivos con tip?

   12.21. ?Como puedo usar zmodem con tip?

   12.22. FreeBSD parece que no puede encontrar mis puertos series aun cuando
   la configuracion es correcta.

12.1.  ?Como se si FreeBSD ha encontrado mis puertos serie?                        
       Cuando el kernel de FreeBSD arranca, testeara los puertos serie del sistema 
       que esten configurados en el kernel. Puedes estar atento a los mensajes de  
       la consola o ejecutar el comando:                                           
                                                                                   
               dmesg | grep sio                                                    
                                                                                   
                                                                                   
       una vez el sistema este en funcionamiento.                                  
                                                                                   
       Aqui tienes un ejemplo del resultado de la ejecucion del comando:           
                                                                                   
               sio0 at 0x3f8-0x3ff irq 4 on isa                                    
               sio0: type 16550A                                                   
               sio1 at 0x2f8-0x2ff irq 3 on isa                                    
               sio1: type 16550A                                                   
                                                                                   
                                                                                   
       Esto muestra dos puertos serie. El primero en la irq 4 usando la direccion  
       0x3f8, y tiene una UART 16550A. El segundo usa el mismo tipo de chip pero   
       esta en la irq 3 y usa la direccion 0x2f8. Los modems internos son tratados 
       como puertos serie, exceptuando que siempre tienen un modem adjuntado al    
       puerto.                                                                     
                                                                                   
       El kernel GENERIC incluye soporte para dos puertos serie usando la misma    
       irq y direccion que en el ejemplo anterior. Si estas opciones no son        
       correctar para tu sistema, o si has anadido modems internos o tienes mas    
       puertos serie de los que estan configurados en el kernel, solo tienes que   
       reconfigurar el kernel. Mira en la seccion about building a kernel para mas 
       detalles.                                                                   
12.2.  ?Como se si FreeBSD ha encontrado mi modem interno?                         
       Respondido en la seccion anterior.                                          
12.3.  He actualizado a 2.0.5 y mi tty0X no existen!                               
       No te preocupes, han sido integrados en los dispositivos ttydX. Tendras que 
       modificar algunos archivos antiguos de configuracion.                       
12.4.  ?Como accedo a los puertos serie en FreeBSD?                                
       El tercer puerto serie, sio2 (conocido como COM3 en DOS), esta en           
       /dev/cuaa2 para dispositivos de salida (dial-out) y en /dev/ttyd2 para      
       dispositivos de entrada (dial-in). Cual es la diferencia entre estas dos    
       clases de dispositivos?.                                                    
                                                                                   
       Usas los ttydX para los entrantes. Al abrir /dev/ttydX en "blocking mode",  
       un proceso esperara para que el dispositivo cuaaX correspondiente se vuelva 
       inactivo. Cuando abres un dispositivo cuaaX, se asegura de que el puerto    
       serie no esta en uso por un dispositivo ttydX. Si el puerto esta            
       disponible, se lo "roba" al dispositivo ttydX. Al mismo tiempo, el          
       dispositivo cuaaXX no se preocupa de la deteccion de portadora. Con este    
       esquema, y un modem en respuesta automatica, puedes recibir usuarios        
       remotos y puedes hacer conexiones externas con el mismo modem, mientras el  
       sistema se preocupa de evitar los posible conflictos.                       
12.5.  ?Como activo el soporte de tarjetas serie multipuerto?                      
       Otra vez, en la seccion de configuracion del kernel tienes la informacion.  
       Para una tarjeta multipuerto, pon una linea sio para cada puerto serie de   
       la tarjeta en el archivo de configuracion del kernel. Especifica la irq y   
       vector solo en una de las lineas. Todos los puertos de la tarjeta           
       compartiran la misma irq. Por consistencia, usa el ultimo puerto serie para 
       especificar la irq. De la misma manera, especifica la opcion COM_MULTIPORT. 
                                                                                   
       El siguiente ejemplo es para una tarjeta AST 4-port en la irq 7:            
                                                                                   
               options "COM_MULTIPORT"                                             
               device sio4 at isa? port 0x2a0 tty flags 0x781                      
               device sio5 at isa? port 0x2a8 tty flags 0x781                      
               device sio6 at isa? port 0x2b0 tty flags 0x781                      
               device sio7 at isa? port 0x2b8 tty flags 0x781 irq 7 vector siointr 
                                                                                   
                                                                                   
       Los flags indican que el puerto master tiene un numero menor de 7 (0x700),  
       los diagnosticos estan activados durante el testeo (0x080), y los puertos   
       comparten una irq (0x001).                                                  
12.6.  ?Puede manejar FreeBSD tarjetas multipuerto compartiendo irq?               
       Todavia no. Tendras que usar una irq diferente para cada tarjeta.           
12.7.  ?Puedo cambiar los parametros serie por defecto para un puerto?             
       El dispositivo ttydX (o cuaaX) es el que querras abrir para tus             
       aplicaciones. Cuando un proceso abre el dispositivo, tendra una serie de    
       configuraciones I/O por defecto. Puedes ver estas configuraciones con el    
       comando:                                                                    
                                                                                   
               stty -a -f /dev/ttyd1                                               
                                                                                   
                                                                                   
       Cuando le cambias la configuracion a este dispositivo, este cambio se       
       mantiene hasta que el dispositivo se cierra. Cuando se reabre, vuelve a la  
       configuracion por defecto. Para hacer cambios sobre la configuracion por    
       defecto, puedes abrir y ajustar las opciones del "estado inicial" del       
       dispositivo. Por ejemplo, para poner el dispositivo tty5 en modo CLOCAL, 8  
       bits, y contro del flujo XON/XOFF, haz                                      
                                                                                   
               stty -f /dev/ttyid5 clocal cs8 ixon ixoff                           
                                                                                   
                                                                                   
       Un buen lugar para hacer esto es en /etc/rc.serial. Ahora, una aplicacion   
       tendra esta configuracion por defecto cuando abra el puerto ttyd5.          
                                                                                   
       Tambien puedes prevenir o limitar ciertos cambios que pretenda hacer una    
       aplicacion. Para ello, ajusta el "lock state" del dispostivo. Por ejemplo,  
       para bloquear la velocidad del puerto ttyd5 a 57600 bps, haz:               
                                                                                   
               stty -f /dev/ttyld5 57600                                           
                                                                                   
                                                                                   
       Ahora, una aplicacion que abre ttyd5 e intenta cambiar la velocidad del     
       puerto no podra hacerlo.                                                    
                                                                                   
       Naturalmente, deberias hacer que el estado inicial y el estado de bloqueo   
       sean solo de escritura para el usuario root. El script MAKEDEV NO hace esto 
       cuando crea el dispositivo.                                                 
12.8.  ?Como puedo activar logins de entrada en mi modem?                          
       Quieres hacerte proveedor de Internet, eh?. Primero, necesitaras uno o mas  
       modems que puedan responder automaticamente. Tu modem necesitara activar el 
       carrier-detect solo cuando detecte una portadora y no tenerla activada      
       continuamente. Necesitara cortar la comunicacion y resetearse el mismo      
       cuando la linea DTR pase de on a off. Probablemente usaria RTS/CTS para el  
       control de flujo. Finalmente, debe usar una velocidad constante entre el    
       computador y el mismo, pero deberia negociar la velocidad entre el mismo y  
       el modem remoto.                                                            
                                                                                   
       Para muchos modems compatibles Hayes, este comando creara estas             
       configuraciones y las grabara en la memoria no volatil:                     
                                                                                   
               AT &C1 &D3 &K3 &Q6 S0=1 &W                                          
                                                                                   
                                                                                   
       Mira la seccion enviar comandos AT para saber como enviar estas             
       configuraciones al modem sin necesidad de un programa terminal de DOS.      
                                                                                   
       A continuacion, anade una linea en el archivo /etc/ttys para el modem. Este 
       archivo lista todos los puertos en los que el sistema operativo esperara    
       los logins. La linea seria como esta:                                       
                                                                                   
               ttyd1 "/usr/libexec/getty std.57600" dialup on insecure             
                                                                                   
                                                                                   
       Esta linea indica que el segundo puerto serie /dev/ttyd1 tiene un modem     
       conectado, la velocidad es de 57600 bps y sin paridad (std.57600. El tipo   
       de terminal para este puerto es "dialup". El puerto esta "on" y es inseguro 
       (lo que significa que los logins como root no son permitidos).              
                                                                                   
       Muchos usuarios, ponen un sus archivos .profile o .login un prompt para el  
       tipo de terminal. El ejemplo muestra el puerto como inseguro. Para ser root 
       en ese puerto, hacer el login como un usuario normal, y ejecutar el comando 
       su. Si en lugar de inseguro, el terminal es seguro (secure), puedes hacer   
       login como root directamente.                                               
                                                                                   
       Despues de modificar el archivo /etc/ttys, necesitas lanzar una senal HUP   
       al proceso init:                                                            
                                                                                   
               kill -HUP 1                                                         
                                                                                   
                                                                                   
       Esto fuerza al proceso init a releer el archivo /etc/ttys. El proceso init  
       arrancara los procesos getty en todos los puertos configurados como "on".   
       Puedes ver si los logins estan disponibles en los puertos tecleando:        
                                                                                   
               ps -ax | grep '[t]tyd1'                                             
                                                                                   
                                                                                   
       deberias ver algo como:                                                     
                                                                                   
               747 ??  I      0:00.04 /usr/libexec/getty std.57600 ttyd1           
                                                                                   
12.9.  ?Como puedo conectar un dumb terminal a un FreeBSD?                         
       Si estas usando otro computador como terminal en tu sistema FreeBSD, usa un 
       cable null modem entre los dos puertos serie. Si ya estas usando un         
       terminal, mira en las instrucciones del mismo.                              
                                                                                   
       A continuacion, modifica el archivo /etc/ttys Por ejemplo, si estas         
       instalando un terminal WYSE-50 en el quinto puerto serie, usa una linea     
       como esta:                                                                  
                                                                                   
               ttyd4 "/usr/libexec/getty std.38400" wyse50 on secure               
                                                                                   
                                                                                   
       Este ejemplo muestra que el puerto /dev/ttyd4 tiene un terminal Wyse50      
       conectado a 38400 bps sin paridad y los logins de root son permitidos.      
12.10. ?Porque no puedo ejecutar tip o cu?                                         
       En tu sistema, los programas tip y cu son probablemente ejecutables solo    
       por uucp y el grupo dialer. Puedes usar el grupo dialer para controlar      
       quien tiene acceso al modem o sistemas remotos. Solo tienes que anadirte tu 
       mismo al grupo dialer.                                                      
                                                                                   
       Alternativamente, puedes dejar que todos los usuarios de tu sistema         
       ejecuten tip y cu tecleando:                                                
                                                                                   
               # chmod 4511 /usr/bin/cu                                            
               # chmod 4511 /usr/bin/tip                                           
                                                                                   
12.11. Mi modem hayes no esta soportado. ?Que puedo hacer?                         
       Actualmente, el man de tip esta anticuado. Hay un dialer Hayes generico.    
       Solo usa ``at=hayes'' en tu archivo /etc/remote.                            
                                                                                   
       El driver Hayes no es tan desarrollado como para reconocer algunas de las   
       caracteristicas avanzadas de los modems modernos, mensajes como BUSY, NO    
       DIALTONE o CONNECT 115200 lo pueden confundir. Deberias anular estos        
       mensajes cuando uses tip (utilizando la cadena ATX0&W).                     
                                                                                   
       Tambien, el timeout de llamada para tip esta en 60 segundos. Tu modem       
       deberia usar algo menor, o tip puede pensar que hay un problema de          
       comunicacion. Intenta con ATS7=45&W.                                        
12.12. ?Como puedo introducir estos comandos AT?                                   
       Haz lo que se llama una entrada directa en el archivo /etc/remote. Por      
       ejemplo, si tu modem esta conectado al primer puerto serie, /dev/cuaa0,     
       escribe la siguiente linea:                                                 
                                                                                   
               cuaa0:dv=/dev/cuaa0:br#19200:pa=none                                
                                                                                   
                                                                                   
       Usa la velocidad mas alta que soporte tu modem en la seccion br. A          
       continuacion teclea tip cuaa0 y estaras conectado al modem.                 
                                                                                   
       Si no existe el dispositivo /dev/cuaa0 en tu sistema , teclea lo siguiente: 
                                                                                   
               # cd /dev                                                           
               # ./MAKEDEV cuaa0                                                   
                                                                                   
                                                                                   
       O usa el comando cu como root con los siguientes parametros:                
                                                                                   
               # cu -l``line'' -s``speed''                                         
                                                                                   
                                                                                   
       con line siendo el puerto serie (por ejemplo /dev/cuaa0>) y speed siendo la 
       velocidad (por ejemplo 57600. Cuando termines de entrar los comandos AT,    
       pulsa la tecla . para salir.                                                
12.13. El simbolo @ no funciona correctamente!                                     
       El simbolo @ en la opcion de numeros de telefono indica a tip que busque en 
       el archivo phone(5) un numero de telefono determinado. Pero el simbolo <@>  
       es tambien un caracter especial en otros archivos y opciones como           
       /etc/remote. Pon una contrabarra junto al caracter:                         
                                                                                   
               pn=\@                                                               
                                                                                   
12.14. ?Como puedo llamar desde la linea de comandos?                              
       Pon lo que se llama una entrada generica en el archivo /etc/remote. Por     
       ejemplo:                                                                    
                                                                                   
               tip115200|Dial any phone number at 115200 bps:\                     
               :dv=/dev/cuaa0:br#115200:at=hayes:pa=none:du:                       
               tip57600|Dial any phone number at 57600 bps:\                       
               :dv=/dev/cuaa0:br#57600:at=hayes:pa=none:du:                        
                                                                                   
                                                                                   
       Entonces puedes hacer cosas como tip -115200 5551234. Si prefieres usar cu  
       antes que tip, usa una entrada generica de cu:                              
                                                                                   
               cu115200|Use cu to dial any number at 115200bps:\                   
               :dv=/dev/cuaa1:br#57600:at=hayes:pa=none:du:                        
                                                                                   
                                                                                   
       y teclea ``cu 5551234 -s 115200''.                                          
12.15. ?Tengo que teclear la velocidad cada vez que hago esto?                     
       Pon una entrada para tip1200 o cu1200, pero puedes usar la velocidad que    
       mejor se amolde a tus necesidades. tip piensa que una buena velocidad por   
       defecto es 1200 bps ya que busca una entrada tip1200. No tienes por que     
       usar 1200 bps.                                                              
12.16. Accedo a diferentes hosts a traves de un servidor de terminales.            
       En lugar de esperar a que estes conectado y teclear CONNECT <host> cada     
       vez, usa la opcion cm de tip. Por ejemplo, estas entradas en el archivo     
       /etc/remote:                                                                
                                                                                   
               pain|pain.deep13.com|Forrester's machine:\                          
               :cm=CONNECT pain\n:tc=deep13:                                       
               muffin|muffin.deep13.com|Frank's machine:\                          
               :cm=CONNECT muffin\n:tc=deep13:                                     
               deep13:Gizmonics Institute terminal server:\                        
               :dv=/dev/cua02:br#38400:at=hayes:du:pa=none:pn=5551234:             
                                                                                   
                                                                                   
       Esto hara que puedas teclear tip pain o tip muffin para conectarte a las    
       maquinas pain o muffin.                                                     
12.17. ?Puede tip intentar mas de una linea para cada lugar?                       
       Este es un problema habitual en universidades con diferentes lineas de      
       modem y unos cientos de usuarios intentado usarlas...                       
                                                                                   
       Haz una entrada para tu universidad en el archivo /etc/remote y usa \@ para 
       la opcion pn:                                                               
                                                                                   
               big-university:\                                                    
               :pn=\@:tc=dialout                                                   
               dialout:\                                                           
               :dv=/dev/cuaa3:br#9600:at=courier:du:pa=none:                       
                                                                                   
                                                                                   
       Entonces, lista los numeros de telefono de la universidad en el archivo     
       /etc/phones:                                                                
                                                                                   
               big-university 5551111                                              
               big-university 5551112                                              
               big-university 5551113                                              
               big-university 5551114                                              
                                                                                   
                                                                                   
       tip intentara cada uno de estos numeros en el orden en el que esten         
       listados. Si quieres que se realicen reintentos, ejecuta tip en una bucle   
       while.                                                                      
12.18. ?Porque tengo que teclea CTRL+P dos veces para enviar CTRL+P una vez?       
       CTRL+P es el caracter por defecto de "forzar", usado para indicarle al      
       programa tip que el proximo caracter es un dato literal. Puedes configurar  
       el caracter "forzar" a cualquier otro caracter con el escape ~s, el cual    
       significa "poner una variable".                                             
                                                                                   
       Teclea ~sforce=<single-char> seguido de una nueva linea. <single-char> es   
       cualquier caracter simple. Si dejas libre <single-char> entonces el         
       caracter de forzar es el caracter nul, al cual puedes acceder tecleando     
       CTRL+2 o CTRL+SPACE. Un valor mas adecuado para <single-char> es            
       SHIFT+CTRL+6, el cual solo es usado en algunos servidores de terminales.    
                                                                                   
       Puedes tener el caracter de forzar donde quieras, especificando lo          
       siguiente en tu archivo $HOME/.tiprc                                        
                                                                                   
               force=<single-char>                                                 
                                                                                   
12.19. De repente, todo lo que tecleo es en mayusculas                             
       Has debido pulsar CTRL+A, tip tiene este caracter especial para gente que   
       tenga la tecla caps-lock estropeada. Usa ~s como en la seccion anterior y   
       pon la variable "raisechar" a un valor razonable. De hecho, puedes ponerla  
       al mismo valor que que el caracter de forzar, si no esperas usar estas      
       caracteristicas.                                                            
                                                                                   
       Aqui hay un ejemplo del archivo .tiprc perfecto para usuarios de Emacs que  
       necesiten teclear CTRL+2 y CTRL+A muchas veces:                             
                                                                                   
               force=^^                                                            
               raisechar=^^                                                        
                                                                                   
                                                                                   
       El simbolo ^^ es SHIFT+CTRL+6.                                              
12.20. ?Como puedo hacer transferecia de archivos con tip?                         
       Si estas conectado con otro sistema UNIX, puedes enviar y recibir archivos  
       con ~p (put) y ~t (take). Estos comandos ejecutan cat y echo en el sistema  
       remoto para aceptar y enviar archivos. La sintaxis es:                      
                                                                                   
               ~p <local-file> [<remote-file>]                                     
               ~t <remote-file> [<local-file>]                                     
                                                                                   
                                                                                   
       No hay chequeo de errores, por lo que es mejor usar otro protocolo como     
       zmodem.                                                                     
12.21. ?Como puedo usar zmodem con tip?                                            
       Primero, instala uno de los programas zmodem de la coleccion de ports (por  
       ejemplo lrzsz y rzsz).                                                      
                                                                                   
       Para recibir archivos, inicia el programa de envio en la parte remota. A    
       continuacion, pulsa enter y teclea ~C rz'' (or ``~C lrz'' si instalaste     
       lrzsz) para empezar a recibir localmente.                                   
                                                                                   
       Para enviar archivos, inicia el programa de recepcion en la parte remota. A 
       continuacion pulsa enter y teclea ~C sz <files>'' (o ~C lsz <files>) para   
       enviarlos al sistema remoto.                                                
12.22. FreeBSD parece que no puede encontrar mis puertos series aun cuando la      
       configuracion es correcta.                                                  
       Las placas bases y tarjetas con UARTs de Acer no son detectadas             
       correctamente por FreeBSD durante la fase de deteccion serie. Obten un      
       parche de www.lemis.com para solucionar el problema.                        

                         Capitulo 13. Preguntas varias

   13.1. FreeBSD usa mas espacio de swap que Linux. Porque?

   13.2. ?Porque usar (que son) a.out y ELF como formatos ejecutables?

   13.3. ?Porque chmod no puede cambiar los permisos de los links?

   13.4. ?Porque estan los nombres de usuario restringidos a 8 caracteres?

   13.5. ?Puedo ejecutar binarios DOS bajo FreeBSD?

   13.6. ?Que es sup, y como lo uso?

   13.7. ?Existen herramientas de ahorro de energia en FreeBSD?

   13.8. ?Que significa "MFC"?

   13.9. ?Que significa "BSD"?

   13.1. FreeBSD usa mas espacio de swap que Linux. Porque?                   
         No lo hace. Deberias pensar "Porque mi swap parece lleno?". Si esto  
         es lo que realmente querias decir, es por que poniendo los datos en  
         swap en luar de descartarlos, hace que sea mas rapido recuperarlos   
         que si el paginador tuviese que ir a traves del sistema de archivos  
         y usar bloques sin modificar desde un ejecutable.                    
                                                                              
         La cantidad actual de paginas que puedes tener en el core en una     
         sola vez no es reducida; las paginas sin usar son desplazadas como   
         sea necesario.                                                       
   13.2. ?Porque usar (que son) a.out y ELF como formatos ejecutables?        
         Para entender por que FreeBSD usa el formato a.out, debes saber      
         primero un poco sobre los tres formatos dominantes actualmente en    
         UNIX:                                                                
                                                                              
           * a.out                                                            
                                                                              
             El antiguo y clasico formato de objeto. Usa una corta y compacta 
             cabecera con un numero magico en el inicio que es usado para     
             caracterizar el formato (mira en a.out(5) para mas detalles).    
             Contiene tres segmentos cargados: .text, .data y .bss mas una    
             tabla de simbolos y una tabla de cadenas de caracteres.          
                                                                              
           * COFF                                                             
                                                                              
             El formato de objeto SVR3. La cabecera comprime una seccion de   
             tablas, de manera que puedas tener mas de una sola seccion       
             .test, .data y .bss                                              
                                                                              
           * ELF                                                              
                                                                              
             El sucesor de COFF, ofreciendo multiples secciones y valores     
             posibles de 32 o 64 bits. Un problema importante: ELF fue        
             disenado con la presuncion de que solo existiria un unico ABI    
             por arquitectura de sistema. Esta presuncion actualmente es      
             incorrecta, incluso en el mundo comercial (el cual tiene al      
             menos tres ABIs: SVR4, Solaris y SCO).                           
                                                                              
             FreeBSD intenta solucionar este problema de manera que provee de 
             una utilidad para marcar un ejecutable ELF con informacion sobre 
             el ABI con el que es compatible. Para mas informacion, mira el   
             man de brandelf.                                                 
                                                                              
         FreeBSD viene del sistema clasico y tradicionalmente ha utilizado el 
         formato a.out, una tecnologia probada y testeada a traves de muchas  
         generaciones de releases de BSD. Tambien es posible construir y      
         ejecutar binarios nativos ELF (y kernels) en sistemas FreeBSD.       
         FreeBSD inicialmente se resistio al salto de cambiar a ELF como su   
         formato por defecto. Porque?, bien, cuando el mundo Linux hizo su    
         transicion a ELF no era nada facil abandonar el formato ejecutable   
         a.out debido a su inflexible mecanismo de tablas basadas en          
         librerias compartidas. Esto hizo muy dificil para los fabricantes y  
         desarrolladores la creacion de librerias compartidas. A partir del   
         momento en el que se ofrecieron una serie de herramientas que        
         ofrecian la solucion al problema de las librerias compartidas, el    
         coste de la migracion fue aceptado como necesario y la transicion se 
         hizo.                                                                
                                                                              
         En el caso de FreeBSD, el mecanismo de librerias compartidas esta    
         mas basado en el estilo de SunOS, mucho mas sencillo de usar. De     
         todas maneras, empezando con la version 3.0, FreeBSD soportara       
         oficialmente binarios ELF como el formato por defecto. Aunque        
         pensamos que el formato ejecutable a.out nos ha servidor muy bien,   
         la gente de GNU, que hacen las herramientas de compilacion que       
         usamos, ha dejado de dar soporte para el formato a.out. Esto nos ha  
         forzado a mantener dos versiones divergentes del compilador y        
         lincador.                                                            
   13.3. ?Porque chmod no puede cambiar los permisos de los links?            
         Tienes que usar -H o -L junto con la opcion -R para que funcione.    
         Para mas informacion, mira la pagina de chmod y de symlink.          
                                                                              
         CUIDADO la opcion -R hace un chmod RECURSIVO. Ten cuidado aal        
         especificar directorios o symlinks con chmod. Si quieres cambiar los 
         permisos de un directorio referenciado por un symlink, usa chmod sin 
         ninguna opcion y sigue el symlink con una barra /. Por ejemplo, si   
         foo es un symlink al directorio bar, y quieres cambiar los permisos  
         de foo /actualmente bar), deberias hacer algo como esto:             
                                                                              
                   chmod 555 foo/                                             
                                                                              
                                                                              
         Con la barra, chmod seguira el symlink, foo, para cambiar los        
         permisos del directorio bar.                                         
   13.4. ?Porque estan los nombres de usuario restringidos a 8 caracteres?    
         Pensaras que es facil y suficiente con cambiar UT_NAMESIZE y         
         reconstruir el kernel, y todo volvera a funcionar.                   
         Desafortunadamente hay aplicaciones y programas (incluyendo          
         herramientas de sistema) que tienen en el propio codigo (no siempre  
         8 o 9, pero si 15 o 20) en estructuras, buffers... y romperia los    
         clientes de NIS de Sun y sin duda existirian otros problemas         
         interactuando con otros sistemas UNIX.                               
                                                                              
         En FreeBSD 3.0 y superiores, se ha incrementado el numero maxmimo de 
         caracteres a 16 y todas esas utilidades con longitud de caracteres   
         prefijada han sido encontradas y arregladas. El hecho de que este    
         cambio afectase a muchas areas del sistema es el motivo por el que   
         el cambio no se ha hecho hasta la version 3.0.                       
                                                                              
         Si eres absolutamente cuidadoso y quieres arreglas tu mismo este     
         problema en versiones anteriores, edita el archivo                   
         /usr/include/utmp.h y cambia el parametro UT_NAMESIZE a la longitud  
         que desees. Tambien debes editar el archivo /usr/include/sys/param.h 
         y poner el valor de MAXLOGNAME al mismo que UT_NAMESIZE. Finalmente, 
         recompila los fuentes, no te olvides que el contenido de             
         /usr/include es actualizado cada vez!. En su lugar, cambia los       
         archivos apropiados en /usr/src/..                                   
   13.5. ?Puedo ejecutar binarios DOS bajo FreeBSD?                           
         Si, empezando en la version 3.0 puedes usar la emulacion DOS rundos  
         de BSDI, la cual ha sido integrada y mejorada. Envia un mail a la    
         Lista de discusion de emulacion en FreeBSD si estas interesado en    
         participar en la evolucion de esta caracteristica.                   
                                                                              
         Para sistemas pre-3.0 hay una pequena utilidad llamada pcemu en la   
         coleccion de puertos que emula un 8088 y suficientes servicios de    
         BIOS para ejecutar aplicaciones de modo texto. Requiere el sistema   
         de X Window.                                                         
   13.6. ?Que es sup, y como lo uso?                                          
         SUP significa Software Update Protocol, y fue desarrollado por CMU   
         para mantener sus arboles de desarrollo sincronizados. Nosotros lo   
         usabamos para manterner el servidor central sincronizado con otros   
         servidores remotos.                                                  
                                                                              
         SUP no es amigo del ancho de banda, y ha sido retirado. El metodo    
         actual recomendado para mantener tus fuentes actualizados es CVSup   
   13.7. ?Existen herramientas de ahorro de energia en FreeBSD?               
         FreeBSD usa la instruccion HLT (halt) cuando el sistema esta (idle)  
         para reducir el consumo de energia. Si tienes la opcion APM          
         (Automatic Power Management) configurado, FreeBSD puede poner la cpu 
         en modo de baja energia.                                             
   13.8. ?Que significa "MFC"?                                                
         MFC es un acronimo para "Merges From -CURRENT". Es usado en los logs 
         de CVS para indicar que un cambio se ha migrado de la rama CURRENT a 
         la rama STABLE.                                                      
   13.9. ?Que significa "BSD"?                                                
         Pertenece a un lenguaje secreto que solo sus miembros conoces. No    
         tiene traduccion literal, pero basta con decir que su traduccion     
         esta entre, "Equipo de Formula-1", "Los Pinguinos son un buen        
         aperitivo", y "Tenermos mejor sentido del humor que Linux" :-)       
                                                                              
         Seriamente, BSD es un acronimo de "Berkeley Software Distribution",  
         el cual es el nombre que el CSRG de Berkeley (Computer Systems       
         Research Group) escogio para sus distribuciones de Unix.             

                Capitulo 14. Solo para hackers serios de FreeBSD

   14.1. ?Que son SNAPs y RELEASEs?

   14.2. ?Como puedo hacerme mi propia release personalizada?

   14.3. ?Como creo discos de instalacion personalizados?

   14.4. ``make world'' destruye mis binarios instalados.

   14.5. Cuando mi sistema arranca, dice (bus speed defaulted).

   14.6. ?Puedo seguir la rama current con acceso limitado a Internet?

   14.7. ?Como partir la distribucion en archivos de 240k?

   14.8. ?He escrito una extension del kernel, a quien la envio?

   14.9. ?Como se detectan e inicializan las tarjetas ISA y PnP?

   14.10. ?Soporta FreeBSD arquitecturas diferentes a x86?

   14.11. Necesito un numero de dispositivo para un driver propio

   14.12. Alternativas a la politica de directorios

   14.13. Obtener todo lo posible de un "kernel panic"

   14.14. dlsym() no funciona con ejecutables ELF!

   14.15. Incrementando o reduciendo el espacio de direcciones del kernel

14.1.  ?Que son SNAPs y RELEASEs?                                                                             
       Hay actualmente tres ramas activas/semi-activas en el desarrollo de FreeBSD y en su CVS Repository:    
                                                                                                              
         * RELENG_2_2 AKA 2.2-stable AKA "2.2 branch"                                                         
                                                                                                              
         * RELENG_3 AKA 3.x-stable AKA "3.0 branch"                                                           
                                                                                                              
         * HEAD AKA -current AKA 4.0-current                                                                  
                                                                                                              
       HEAD no es una rama actual, como las otras dos, es simplemente una constante simbolica para la version 
       de desarrollo actual a la cual nos referimos simplemente como -current.                                
                                                                                                              
       Actualmente, -current es el desarrollo de la version 4.0 y la rama 3.0-stable es RELENG_3, separada de 
       -current en Enero de 1999.                                                                             
14.2.  ?Como puedo hacerme mi propia release personalizada?                                                   
       Para hacer una release necesitas hacer tres cosas: primero, necesitas usar un kernel con el driver vn  
       configurado. Anade esto a tu archivo de configuracion del kernel y crea un nuevo kernel:               
                                                                                                              
                 pseudo-device vn         #Vnode driver (turns a file into a device)                          
                                                                                                              
                                                                                                              
       Segundo, debes tener las herramientas del CVS a mano. Para hacer esto, puedes usar CVSUP pero en tu    
       supfile pon el nombre de la release a cvs y borra cualquier tag campo de fecha:                        
                                                                                                              
               *default prefix=/home/ncvs                                                                     
               *default base=/a                                                                               
               *default host=cvsup.FreeBSD.org                                                                
               *default release=cvs                                                                           
               *default delete compress use-rel-suffix                                                        
                                                                                                              
               ## Main Source Tree                                                                            
               src-all                                                                                        
               src-eBones                                                                                     
               src-secure                                                                                     
                                                                                                              
               # Other stuff                                                                                  
               ports-all                                                                                      
               www                                                                                            
               doc-all                                                                                        
                                                                                                              
                                                                                                              
       A continuacion ejecuta cvsup -g supfile para tener todos los bits correctos en tu computador.          
                                                                                                              
       Finalmente, necesitas una buena cantidad de espacio vacio para crear en el la release. Digamos que     
       esta en /algun/disco/grande y en el ejemplo anterior has dejado los archivos del CVS en /home/ncvs:    
                                                                                                              
               setenv CVSROOT /home/ncvs        # or export CVSROOT=/home/ncvs                                
               cd /usr/src/release                                                                            
               make release BUILDNAME=3.0-MY-SNAP CHROOTDIR=/algun/disco/grande/release                       
                                                                                                              
                                                                                                              
       Una release completa sera creada en /algun/disco/grande/ y tendras una instalacion completa de tipo    
       FTP en /algun/disco/grande/R/ftp cuando acabes. Si quieres crear tu SNAP usando otra rama de           
       desarrollo diferente de -current, puedes anadir RELEASETAG=SOMETAG a la linea de comando anterior de   
       creacion de la release. Por ejemplo, RELEASETAG=RELENG_2_2 crearia un snapshot 2.2 GAMMA.              
14.3.  ?Como creo discos de instalacion personalizados?                                                       
       El proceso completo de creacacion de discos de instalacion y archivos fuentes y binarios esta          
       automatizado por varios targets en /usr/src/release/Makefile. La informacion alli contenida deberia    
       ser suficiente para que puedas empezar. Falta decir que este proceso necesita la ejecucion del comando 
       "make world" y quizas te use mucho tiempo y espacio en disco.                                          
14.4.  ``make world'' destruye mis binarios instalados.                                                       
       Si, esta es la idea general; como su nombre sugiere, "make world" rehace todos los binarios del        
       sistema, de manera que puedas estar seguro de tener un entorno limpio y consistente al final (que es   
       por lo que tarda tanto).                                                                               
                                                                                                              
       Si la variable de entorno DESTDIR esta definida mientras se ejecuta make world o make install, los     
       binarios creados nuevamente seran depositados en un arbol de directorios identico al instalado, y a    
       partir de ${DESTDIR}. Algunas combinaciones aleatorias de modificaciones de librerias compartidas y    
       programas pueden causar que falle el make world.                                                       
14.5.  Cuando mi sistema arranca, dice (bus speed defaulted).                                                 
       Las controladoras SCSI Adaptec 1542 permiten al usuario configurar su velocidad de acceso al bus en    
       software. Versiones anteriores del driver de la 1542 intentaban determinar la velocidad mas alta       
       factible y configurar la Adaptec a esta. Nos hemos encontrado con que esto hace fallar el sistema de   
       algunos usuarios, por lo que tienes que definir la opcion de configuracion del kernel TUNE_1542 para   
       que esto ocurra. En algunos sistemas puede que puede hacer que los discos vayan mas rapidos, pero en   
       otros puede que los datos queden corrompidos.                                                          
14.6.  ?Puedo seguir la rama current con acceso limitado a Internet?                                          
       Si, puedes hacerlo sin bajarte todo el codigo fuente usando la utilidad CTM.                           
14.7.  ?Como partir la distribucion en archivos de 240k?                                                      
       Los sistemas BSD mas modernos tienen una opcion -b para partir que les permite partir los archivos en  
       tamanos arbitrarios.                                                                                   
                                                                                                              
       Aqui hay un ejemplo de /usr/src/Makefile.                                                              
                                                                                                              
               bin-tarball:                                                                                   
               (cd ${DISTDIR}; \                                                                              
               tar cf - . \                                                                                   
               gzip --no-name -9 -c | \                                                                       
               split -b 240640 - \                                                                            
               ${RELEASEDIR}/tarballs/bindist/bin_tgz.)                                                       
                                                                                                              
14.8.  ?He escrito una extension del kernel, a quien la envio?                                                
       Por favor, mira en como enviar codigo.                                                                 
                                                                                                              
       Y gracias por pensar en nosotros!                                                                      
14.9.  ?Como se detectan e inicializan las tarjetas ISA y PnP?                                                
       Brevemente, hay unos cuantos puertos de entrada/salida a los que todas las tarjetas PnP responden      
       cuando el computador pregunta si hay alguien ahi. Asi, cuando comienza la rutina de prueba de PnP,     
       pregunta si hay alguna tarjeta PnP presente y todas las tarjetas responden con su numero de modelo a   
       una lectura I/O del mismo puerto. Asi el codigo de prueba puede conocer el ID de cada tarjeta          
       (asignado por Microsoft/Intel).                                                                        
                                                                                                              
       Los ID's son dos campos de 32 bits (2^64) + 8 bits de checksum. Los primeros 32 bits son el            
       identificador del fabricante. No se ha dicho publicamente, pero parece estar asumido que diferentes    
       tipos de tarjeta del mismo fabricante pueden tener diferentes id's de fabricante. La idea de necesitar 
       32 bits solo para los fabricantes parece un poco excesiva.                                             
                                                                                                              
       La parte baja de 32 bits son un numero de serie, direccion ethernet, algo que haga a la tarjeta unica. 
       El fabricante no debe producir nunca una segunda tarjeta que tenga los mismos 32 bits de la parte      
       baja, aunque los 32 bits de la parte alta sean diferentes. Asi puedes tener multiples tarjetas del     
       mismo tipo en la misma maquina y los 64 bits seran unicos para cada tarjeta.                           
                                                                                                              
       Los grupos de 32 bits nunca pueden ser todos cero. Esto permite mostrar todos los bits no-cero durante 
       la busqueda binaria inicial.                                                                           
                                                                                                              
       Una vez el sistema ha identificado todos los ID's de las tarjetas presentes, reactivaraa cada tarjeta, 
       una tras otra (a traves de los mismos puertos I/O), y encontrara los recursos que cada tarjeta         
       necesita, que opciones de interrupcion estan disponibles, etc. Se realiza un escaneo sobre todas y     
       cada una de las tarjetas presentes para conocer esta informacion.                                      
                                                                                                              
       Esta informacion se combina con la informacion de los archivos ECU del disco y con las BIOS MLB. El    
       soporte PnP de ECU y las BIOS para hardware en el MLB usualmente es sintetico, y los perifericos no    
       hacen PnP genuino. De todas maneras, examinando la informacion del BIOS mas la informacion ECU, la     
       rutina de prueba puede causar que los dispositivos que no son PnP puedan evitar a esos dispositivos    
       que el codigo de prueba no puede volver a posicionar.                                                  
                                                                                                              
       Asi, los dispositivos PnP son visitados una vez mas y se les asigna su I/O, DMA, IRQ, direcciones del  
       mapa de memoria. Los dispositivos apareceran en esas direcciones y permaneceran en ellas hasta que se  
       vuelva a reinicializar la maquina.                                                                     
                                                                                                              
       Todo el proceso se ha simplificado mucho, pero espero que hayas podido hacerte una idea del proceso.   
14.10. ?Soporta FreeBSD arquitecturas diferentes a x86?                                                       
       Diferentes grupos de personas han expresado su interes en trabajar en un port multi-arquitectura de    
       FreeBSD y FreeBSD/AXP (ALPHA) es un ejemplo de ese esfuerzo realizado, ahora disponible en forma de    
       3.0 SNAPshot release en ftp://ftp.FreeBSD.org/pub/FreeBSD/alpha. El port de ALPHA funciona actualmente 
       en diferentes tipos de maquinas ALPHA, entre ellas, AlphaStation, AXPpci, PC164, Miata y Multia. Este  
       port todavia no se considera una release completa y no lo sera hasta que exista una coleccion completa 
       de herramientas de instalacion y una distribucion completa en cdrom para instalacio, incluyendo un     
       numero razonable de ports y packages funcionales. FreeBSD/AXP debe considerarse software de calidad    
       BETA en estos momentos. Para mas informacion del proyecto, subscribete a la                            
       <FreeBSD-alpha@FreeBSD.org> lista de correo.                                                           
                                                                                                              
       Tambien se ha expresado interes en un port de FreeBSD para arquitectura SPARC. Subscribete a           
       <FreeBSD-sparc@FreeBSD.org> la lista si estas interesado en participar en el proyecto. Para            
       discusiones generales en nuevas arquitecturas, participa en la lista <FreeBSD-platforms@FreeBSD.org>.  
14.11. Necesito un numero de dispositivo para un driver propio                                                
       Esto depende de si quieres hacer que el driver este publicamente disponible. Si la respuesta es        
       afirmativa, por favor, envianos una copia del codigo fuente del driver y las modificaciones apropiadas 
       del archivo files.i386, un ejemplo de configuracion y el codigo apropiado de MAKEDEV para crear        
       cualquier archivo especial que use tu dispositivo. Puedes enviar todo lo necesario a                   
       <FreeBSD-hackers@FreeBSD.org>.                                                                         
14.12. Alternativas a la politica de directorios                                                              
       En respuesta a esta pregunta de politicas alternativas para los directorios, el esquema que esta       
       actualmente en uso no ha cambiado desde que lo escribi en 1983. Escribi esa politica para el sistema   
       de archivos rapido original, y nunca se ha revisado. Trabaja bien manteniendo los grupos de cilindros. 
       Como muchos de vosotros habreis notado, el rendimiento es muy pobre con "find". Muchos sistemas de     
       archivos son creados desde archivos que fueron creados por una primera busqueda en profundidad         
       (tambien conocido como ftw). Estos directorios terminan esparcidos a traves de los grupos de           
       cilindros. Si conociesemos el numero total de directorios a crear, la solucion seria crear (total /    
       fs_ncg) por grupo de cilindros antes de moverlos. Obviamente, tendriamos que crear algun tipo de       
       heuristica para adivinar este numero. Usando un numero pequeno fijo (como puede ser 10) haria de orden 
       de magnitud. Para diferencial restores de operaciones normales (cuando el algoritmo actual es          
       probablemente mas sensible), podris usar el clustering hasta 10 si fueran todos hechos dentro de una   
       ventana de diez segundos. De cualquier manera, mi conclusion es que este es un area para la            
       experimentacion.                                                                                       
                                                                                                              
       Kirk McKusick, Septiembre 1998                                                                         
14.13. Obtener todo lo posible de un "kernel panic"                                                           
       [Esta seccion fue extraida de un mensaje escrito por Bill Paul en la lista FreeBSD-current por         
       Dag-Erling Coidan Smo/rgrav, quien a fijado algunos errores y anadido algunos comentarios entre        
       corchetes]                                                                                             
                                                                                                              
       From: Bill Paul <wpaul@skynet.ctr.columbia.edu>                                                        
               Subject: Re: the fs fun never stops                                                            
               To: ben@rosengart.com                                                                          
               Date: Sun, 20 Sep 1998 15:22:50 -0400 (EDT)                                                    
               Cc: current@FreeBSD.org                                                                        
                                                                                                              
                                                                                                              
       [<ben@rosengart.com> envio el siguiente panic]                                                         
                                                                                                              
       > Fatal trap 12: page fault while in kernel mode                                                       
               > fault virtual address   = 0x40                                                               
               > fault code              = supervisor read, page not present                                  
               > instruction pointer     = 0x8:0xf014a7e5                                                     
                                               ^^^^^^^^^^                                                     
               > stack pointer           = 0x10:0xf4ed6f24                                                    
               > frame pointer           = 0x10:0xf4ed6f28                                                    
               > code segment            = base 0x0, limit 0xfffff, type 0x1b                                 
               >                         = DPL 0, pres 1, def32 1, gran 1                                     
               > processor eflags        = interrupt enabled, resume, IOPL = 0                                
               > current process         = 80 (mount)                                                         
               > interrupt mask          =                                                                    
               > trap number             = 12                                                                 
               > panic: page fault                                                                            
                                                                                                              
                                                                                                              
       [Cuando] ves un mensaje como este, no es suficiente con solo reproducirlo y enviarlo. El valor del     
       puntero de instrucciones que he marcado arriba es importante; desafortunadamente, depende de la        
       configuracion. En otras palabras, el valor varia dependiendo de la imaden de kernel exacta que se use. 
       Si estas usando el kernel GENERIC de uno de los snapshots, entonces es posible que alguien pueda       
       seguir la funcion problematica, pero si estas usando un kernel personalizado, entonces solo tu puedes  
       decirnos donde ha ocurrido el fallo.                                                                   
                                                                                                              
       Tendrias que hacer lo siguiente:                                                                       
                                                                                                              
         * Anotar el valor del puntero de la instruccion. Ten en cuenta la parte 0x8: al inicio no es         
           significante en este caso: es la parte 0xf0xxxxxx la que queremos.                                 
                                                                                                              
         * Cuando el sistema rearranca, haz lo siguiente:                                                     
                                                                                                              
                         % nm /kernel.that.caused.the.panic | grep f0xxxxxx                                   
                                                                                                              
                                                                                                              
           donde f0xxxxxx es el valor del puntero de la instruccion. El problema es que no obtendras una      
           busqueda exacta ya que los simbolos en la tabla de simbolos del kernel son para los puntos de      
           entrada de las funciones y la direccion del puntero de la instruccion estara en algun lugar dentro 
           de una funcion, no al principio. Si no obtienes un resultado exacto, omite el ultimo digito del    
           valor del puntero de la instruccion e intentalo otra vez, por ejemplo:                             
                                                                                                              
                         % nm /kernel.that.caused.the.panic | grep f0xxxxx                                    
                                                                                                              
                                                                                                              
           Si esto no da ningun resultado, elimina otro digito. Repite la operacion hasta que obtengas algun  
           tipo de salida. El resultado sera una lista de posibles funciones que causan el panic. Este no es  
           un sistema muy exacto de busqueda de errores, pero es mejor que nada.                              
                                                                                                              
       Veo gente que constantemente envia mensajes de panics como este, pero raramente veo que alguien se     
       tome el tiempo de buscar la coincidencia entre el puntero de instruccion y una funcion en la tabla de  
       simbolos del kernel.                                                                                   
                                                                                                              
       La mejor manera de hacer el seguimiento de la causa de un panic es capturar un "crash dump", usando    
       gdb(1) para hacer una traza del "crash dump". Por supuesto, esto depende de que gdb(1) funcione        
       correctamente en -current, lo que no puedo garantizar (recuerdo que alguien ha comentado que el nuevo  
       gdb(1) en formato ELF no manejaba bien los "dumps" de un crash del kernel; alguien deberia mirar esto  
       antes de que la 3.0 salga del estado beta).                                                            
                                                                                                              
       En cualquier caso, el metodo que normalmente uso es este:                                              
                                                                                                              
         * Crear un archivo de configuracion de kernel, opcionalmente anadiendo 'options DDB' si piensas que  
           necesitas el debugger del kernel por algun motivo. (Uso esto principalmente para configurar puntos 
           de salida si sospecho que existe alguna condicion que crea un loop infinito).                      
                                                                                                              
         * Usar config -g KERNELCONFIG para crear el directorio de configuracion del kernel.                  
                                                                                                              
         * cd /sys/compile/KERNELCONFIG; make                                                                 
                                                                                                              
         * Esperar a que el kernel termine de compilar.                                                       
                                                                                                              
         * cp kernel kernel.debug                                                                             
                                                                                                              
         * strip -d kernel                                                                                    
                                                                                                              
         * mv kernel /kernel.orig/                                                                            
                                                                                                              
         * cp kernel /                                                                                        
                                                                                                              
         * reboot                                                                                             
                                                                                                              
       [Nota: ahora que los kernels de FreeBSD 3.x son ELF por defecto debes usar strip -g en lugar de strip  
       -d. Si por algun motivo tu kernel es aun a.out, usa strip -aout -d.]                                   
                                                                                                              
       Ten en cuenta que TU NO QUIERES ARRANCAR CON UN KERNEL QUE TIENE TODOS LOS SIMBOLOS DE DEBUG EN EL. Un 
       kernel compilado con -g puede llegar facilmente a los 10MB de tamano. No tienes que arrancar esta iman 
       masiva, solo lo necesitas para poder usar despues gdb(1) (gdb(1) quiere la tabla de simbolos). Al      
       contrario, quieres mantener una copia de la imagen completa y crear una segunda imagen con los         
       simbolos de debug desactivados usando strip -d. Es esta segunda imagen la que quieres arrancar.        
                                                                                                              
       Para asegurarte de capturar un "crash dump", necesitas editar el archivo /etc/rc.conf y apuntar        
       dumpdev a tu particion de swap. Esto hara que el script rc(8) use el comando dumpon(8) para activar    
       los "crash dumps". Tambien puedes ejecutar manualmente dumpon(8). Despues de un panic, el "crash dump" 
       puede ser recuperado usando savecore(8); si dumpdev esta en /etc/rc.conf, el script rc(8) ejecutara    
       savecore(8) automaticamente y pondra el "crash dump" en /var/crash.                                    
                                                                                                              
       NOTA: los "crash dumps" de FreeBSD suelen tener el mismo tamano que la cantidad total de memoria       
       fisica del sistema. Esto significa que si tienes 64MB de RAM, obtendras un "crash dump" de 64MB.       
       Debido a esto, tienes que asegurarte de tener suficiente espacio libre en /var/crash. Alternativamente 
       puedes ejecutar savecore(8) manualmente y hacer la recuparacion en otro directorio donde tengas mas    
       espacio libre. Es posible limitar el tamano del "crash dump" usando options MAXMEM=(foo) para indicar  
       la cantidad de memoria que el kernel puede ocupar. Por ejemplo, si tienes 128MB de RAM, puedes limitar 
       el uso de memoria del kernel a 16MB para que el "crash dump" sea de 16MB y no de 128MB.                
                                                                                                              
       Una vez hayas recuperado el "crash dump", puedes obtener una traza del stack con gdb(1) de la manera   
       siguiente:                                                                                             
                                                                                                              
                 % gdb -k /sys/compile/KERNELCONFIG/kernel.debug /var/crash/vmcore.0                          
                 (gdb) where                                                                                  
                                                                                                              
                                                                                                              
       Es posible que aparezcan muchas lineas de informacion: es una buena idea usar el comando script(1)     
       para capturarlas todas. Usando la imagen del kernel con todos los simbolos de debug deberi mostrar la  
       linea exacta de codigo fuente del kernel donde ha ocurrido el panic. Normalmente, tienes que leer la   
       traza del stack de abajo hacia arriba para poder conocer la secuencia exacta de eventos que han        
       provocado el crash. Tambien puedes usar gdb(1) para mostrar los contenidos de las diferentes variables 
       o estructuras para examinar el estado del sistema en el momento del crash.                             
                                                                                                              
       Ahora, si eres realmente curioso y tienes un segundo computador, puedes configurar gdb(1) para hacer   
       un debug remoto de manera que puedes usar gdb(1) en un sistema para revisar el kernel de otro sistema, 
       de la misma manera que lo harias en la maquina local.                                                  
                                                                                                              
       [Bill anade: "Olvide mencionar una cosa: si tienes DDB activado, puedes forzar un panic (y un crash    
       dump) tecleando "panic" en el prompt del ddb. Es posible que el debugger se pare durante la fase del   
       panic. Si esto ocurre, teclea "continue" y el crash dump finalizara"]                                  
14.14. dlsym() no funciona con ejecutables ELF!                                                               
       Las herramientas ELF no hacen por defecto que los simbolos definidos en un ejecutable sean visibles    
       por el linker dinamico. Consecuentemente, dlsym() buscara en datos obtenidos desde llamadas a          
       dlopen(NULL, flags), lo que provoca que no se encuentren esos simbolos.                                
                                                                                                              
       Si quieres buscar, usando dlsym() simbolos presentes en el ejecutable principal de un proceso,         
       necesitas linkar el ejecutable usando la opcion -export-dynamic en el linkador ELF.                    
14.15. Incrementando o reduciendo el espacio de direcciones del kernel                                        
       Por defecto, el espacio de direcciones del kernel es de 256MB en FreeBSD 3.x y 1GB en FreeBSD 4.x. Si  
       gestionas un servidor de red muy cargado (por ejemplo, servidores FTP o HTTP con mucho trafico), es    
       posible que notes que 256MB no es suficiente.                                                          
                                                                                                              
       Asi que... como incremento el espacio de direcciones?. Hay dos aspectos a tener en cuenta. Primero,    
       necesitas indicarle al kernel que reserve una mayor parte del espacio de direcciones para el mismo.    
       Segundo, ya que el kernel se carga al inicio del espacio de direcciones, necesitas disminuir la        
       direccion de carga.                                                                                    
                                                                                                              
       El primer aspecto lo solucionamos incrementando el valor de NKPDE en src/sys/i386/include/pmap.h. Esta 
       es una entrada de ejemplo para 1GB de espacio de direcciones:                                          
                                                                                                              
                 #ifndef NKPDE                                                                                
                 #ifdef SMP                                                                                   
                 #define NKPDE                   254     /* addressable number of page tables/pde's */        
                 #else                                                                                        
                 #define NKPDE                   255     /* addressable number of page tables/pde's */        
                 #endif  /* SMP */                                                                            
                 #endif                                                                                       
                                                                                                              
                                                                                                              
       Para encontrar el valor correcto de NKPDE, divide el espacio de direcciones deseado (en megabytes) por 
       cuatro, despues resta uno por UP y dos por SMP.                                                        
                                                                                                              
       Para solucionar el segundo aspecto, necesitas calcular la direccion correcta de carga: simplemente     
       resta el tamano del espacio de direcciones (en bytes) de 0x100100000; el resultado es 0xc0100000 para  
       1GB de espacio de direcciones. Ajusta LOAD_ADDRESS en src/sys/i386/conf/Makefile.i386 a ese valor; a   
       continuacion pon el contador al inicio de la seccion listado en src/sys/i386/conf/kernel.script al     
       mismo valor, como sigue:                                                                               
                                                                                                              
                 OUTPUT_FORMAT("elf32-i386", "elf32-i386", "elf32-i386")                                      
                 OUTPUT_ARCH(i386)                                                                            
                 ENTRY(btext)                                                                                 
                 SEARCH_DIR(/usr/lib); SEARCH_DIR(/usr/obj/elf/home/src/tmp/usr/i386-unknown-FreeBSDelf/lib); 
                 SECTIONS                                                                                     
                 {                                                                                            
                   /* Read-only sections, merged into text segment: */                                        
                   . = 0xc0100000 + SIZEOF_HEADERS;                                                           
                   .interp     : { *(.interp)    }                                                            
                                                                                                              
                                                                                                              
       Reconfigura y compila el kernel. Probablemente tengas problemas con top(1), ps(1) y programas asi      
       haciendo un make world deberin solucionarse esos problemas (o una recompilacion manual de libkvm, ps y 
       top despues de copiar el pmap.h parcheado a /usr/include/vm/.                                          
                                                                                                              
       NOTA: el tamano del espacio de direcciones debe ser un multiplo de cuatro megabytes.                   
                                                                                                              
       [David Greenman anade: Pienso que el espacio de direcciones del kernel necesita ser una potencia de 2, 
       pero no estoy totalmente seguro.]                                                                      

                          Capitulo 15. AGRADECIMIENTOS

       Si ves algun problema o error en esta FAQ, o quieres enviar
       informacion para que sea anadida, por favor, envia
       un mail a la direccion faq-es@es.FreeBSD.org. Apreciamos tu
       informacion e interes, y no podemos hacer una FAQ mejor
       sin tu ayuda.

                                         FreeBSD Spanish Documentation Project.
     

   Cristobal Talavera (cristobal@es.FreeBSD.org)

           Por haber obtenido la libertad :)

   David Casademunt (david@es.FreeBSD.org)

           No hay hardware que se le resista.

   Nik Clayton (nik@FreeBSD.org)

           Gracias a su ayuda todo esto ha sido posible.

   Nexus Comunicacaciones (www.ncsa.es)

           Por mantener el mirror y darme las facilidades para hacer todo
           esto.

   Oscar Colet (oscarc@abaforum.es)

           Por aguantar lo que tiene que aguantar.

   Jordan Hubbard

           Actualizaciones y entradas ocasionales.

   Doug White

           Recopilaciones y respuestas en FreeBSD-questions.

   Joerg Wunsch

           Recopilaciones y respuestas en las news.

   Garrett Wollman

           Redes.

   Jim Lowe

           Informacion sobre multicast.

   Peter da Silva

           "Machaca de las teclas" de FreeBSD FAQ

   The FreeBSD Team

           De todo.

   y para todos los que hemos olvidado, disculpas y muchas gracias por todo!.

   Jesus Rodriguez jesusr@FreeBSD.org
