  Kernel-Como
  Brian Ward, bri@blah.math.tu-graz.ac.at
  Traduccin de Juan Jos Amor, jjamor@ls.fi.upm.es
  Revisin 2.1, 22 de Diciembre de 1996

  Lo que sigue es una gua detallada de la configuracin del ncleo,
  cubriendo detalles de compilacin y de actualizaciones.  El traductor
  ha intentado respetar el documento original, aunque no ha podido evi
  tar aadir cosas de su propia cosecha, sobre todo en lo que respecta a
  opciones an no documentadas.
  ______________________________________________________________________

  ndice General:

  1.      Introduccin

  1.1.    Lea esto primero!

  1.2.    Sobre el estilo

  2.      Preguntas y respuestas importantes

  2.1.    Pero, qu hace el ncleo?

  2.2.    Por qu puedo necesitar actualizar el ncleo?

  2.3.    Qu hardware nuevo soportan los nuevos ncleos?

  2.3.1.  Anexo de la revisin.

  2.4.    Qu versin de gcc  y libc  necesito?

  2.5.    Qu es un mdulo cargable?

  2.6.    Cunto espacio en disco necesito?

  2.7.    Cunto se tarda en compilar?

  3.      Cmo configurar el ncleo.

  3.1.    Obtencin de los fuentes.

  3.2.    Descompresin de los fuentes

  3.3.    Configuracin del ncleo

  3.3.1.  Anexo de la revisin 2.1.

  3.4.    Continuacin

  3.4.1.  Emulacin de coprocesador ( Kernel math emulation )

  3.4.2.  Soporte de discos IDE y MFM/RLL normales ( Normal (MFM/RLL)
  disk and IDE disk/cdrom support )

  3.4.3.  Soporte de redes ( Networking support )

  3.4.4.  Limitar memoria a 16 Mb ( Limit memory to low 16MB )

  3.4.5.  Comunicacin entre procesos System V  ( System V IPC )

  3.4.6.  Tipo de CPU (386, 486, Pentium, PPro) ( Processor type (386,
  486, Pentium, PPro ) )

  3.4.7.  Soporte SCSI ( SCSI support )

  3.4.8.  Soportes de tarjetas de red ( Network device support )

  3.4.9.  Sistemas de ficheros ( Filesystems )

  3.4.9.1.        Pero no s qu sistemas de ficheros necesito!

  3.4.10. Manejadores de tipo carcter ( Character devices )

  3.4.11. Tarjeta de sonido ( Sound card )

  3.4.12. Otras opciones de configuracin

  3.4.13. Kernel hacking

  3.5.    Y ahora qu? (El fichero Makefile ).

  4.      Compilacin del ncleo

  4.1.    Limpieza y dependencias

  4.2.    El momento de compilar

  4.3.    Otras opciones del ` make '

  4.4.    Instalacin del ncleo

  5.      Parchear el ncleo

  5.1.    Aplicacin de un parche

  5.2.    Si algo va mal

  5.3.    Limpieza de ficheros .orig

  5.4.    Otros parches

  6.      Paquetes adicionales

  6.1.    kbd

  6.2.    util-linux

  6.3.    hdparm

  7.      Problemas tpicos

  7.1.    make clean

  7.2.    Ncleos muy lentos o muy grandes

  7.3.    El ncleo no compila

  7.4.    El nuevo ncleo no parece arrancar

  7.5.    Se olvid ejecutar LILO , y el sistema ya no arranca

  7.6.    Mensaje de aviso: ` warning: bdflush not running '

  7.7.    Salen mensajes sobre smbolos no definidos, y no compila

  7.8.    No consigo que me detecte mi CD-ROM IDE/ATAPI

  7.9.    Salen mensajes sobre cosas de encaminamiento obsoletas

  7.10.   La funcin de cortafuegos no funciona en el ncleo 1.2.0

  7.11.   Mensaje: `` Not a compressed kernel Image file ''

  7.12.   Hay problemas con la consola al pasarse a la 1.3.x

  7.13.   Algunas cosas no compilan despus de la actualizacin

  8.      Notas sobre la actualizacin a la versin 2.0.x

  9.      Mdulos

  9.1.    Instalacin de las utilidades asociadas

  9.2.    Mdulos distribuidos con el ncleo 1.2.2

  10.     Otras opciones de configuracin.

  10.1.   Opciones generales

  10.2.   Opciones de red

  11.     Consejos y trucos

  11.1.   Redireccin de la salida de compilacin o parcheado.

  11.2.   Instalacin condicional del ncleo

  11.3.   Actualizaciones del ncleo

  12.     Otros documentos COMO  que pueden serle tiles

  13.     Miscelnea

  13.1.   El autor

  13.2.   Pendiente de hacer

  13.3.   Colaboraciones

  13.4.   Notas sobre el Copyright, Licencia y Todo Eso

  14.     Anexo: El INSFLUG
  ______________________________________________________________________

  1.  Introduccin

  Esta es la versin 0.75 del documento ``Kernel-HOWTO'' original. La de
  la traduccin es la 2.1 Debe Vd. leer este documento? Bien, veamos si
  tiene alguno de los siguientes sntomas:

    ``Jo! El dosemu-0.99.9 requiere el ncleo 1.8.193 y yo estoy an
     con el 1.2.3''

    Hay un manejador (driver) que slo est en los ncleos ms
     recientes y Vd. lo necesita.

    Vd. realmente no tiene ni idea de cmo se compila el ncleo.

    Vd. lo ha intentado pero no le ha funcionado.

  1.1.  Lea esto primero!

  Algunos de los ejemplos aqu puestos suponen que se tiene el tar de
  GNU, as como find y xargs. Son casi estndares, pero por si acaso...
  Tambin se asume que conoce la organizacin del sistema de ficheros;
  si no lo conoce, copie la salida del comando mount en condiciones
  normales (o el fichero /etc/fstab si puede acceder a l). Esta
  informacin es importante, y no cambiar a menos que reparticione el
  disco, aada uno nuevo, reinstale el sistema o similar.

  La ltima versin de produccin del ncleo que se conoce ahora mismo
  es la 2.0.10 (-- 2.0.27 es la ltima versin estable al da de hoy, 22
  de Diciembre de 1996.--) , de manera que nuestros ejemplos irn para
  esa versin.

  Se intenta que tampoco dependa mucho de esto, pero si Vd. usa una
  versin distinta habr siempre algunas diferencias, ya que el ncleo
  est en continuo desarrollo. Esto no debe crear problemas, si acaso un
  ligero despiste al principio.

  Hay dos versiones de las fuentes del ncleo de Linux: las de
  produccin y las de desarrollo. Las versiones de produccin empezaron
  a numerarse en la 1.0.x y siempre se nombran con nmero par.  As, se
  pas de las 1.0.x a las 1.2.x y de sta a la 2.0.x (por no ir a la
  1.4.x ;) ).

  Estas versiones se consideran estables y libres de errores (hasta el
  momento). Las versiones de desarrollo se numeran en impar (1.1.x,
  1.3.x, 2.1.x...) y son de prueba, con lo que posiblemente tengan
  muchos fallos.

  1.2.  Sobre el estilo

  El texto con el aspecto de esta frase se corresponder con las cosas
  que deban aparecer en la pantalla, un fichero o algo que pueda ser
  tecleado como opciones de comandos (si est utilizando la versin
  ASCII de este documento, no ver diferencia alguna). Los comandos son
  entrecomillados (con ` ') lo que causa un problema con la puntuacin:
  al acabar frases con un comando, el estilo americano pone el punto
  dentro de las comillas, lo que confundir a algn lector creyendo que
  hay que teclear tambin el punto (algo de sentido comn, aunque en
  realidad pretenden que el ``sentido comn'' sea solo el estilo
  americano de puntuacin). Esto se soluciona no poniendo tal punto,
  aunque no sea correcto ortogrficamente. Por ejemplo, pondremos `make
  config' y no `make config.'

  2.  Preguntas y respuestas importantes

  2.1.  Pero, qu hace el ncleo?

  El ncleo de Unix acta como intermediario entre sus programas y el
  ordenador. En primer lugar, gestiona la memoria de todos los programas
  o procesos, y se asegura de que se reparten los ciclos del procesador.
  Adems, proporciona una interfaz portable para que los programas
  hablen fcilmente con su hardware.

  Realmente, el ncleo hace ms cosas, pero las anteriores son las ms
  importantes.

  2.2.  Por qu puedo necesitar actualizar el ncleo?

  Los ncleos nuevos normalmente ofrecen la posibilidad de entenderse
  con ms accesorios hardware (o sea, incluyen ms manejadores), se
  ejecutan ms rpidamente, son ms estables o corrigen errores de otras
  versiones. Mucha gente se actualiza el ncleo para poder usar nuevos
  manejadores que necesitan o librarse de ``bugs'' de la versin que
  usaban.

  2.3.  Qu hardware nuevo soportan los nuevos ncleos?

  Vanse el documento Hardware-HOWTO, el fichero config.in de las
  fuentes o simplemente ver lo que hay cuando haga `make config'.  Esto
  le mostrar lo soportado por la distribucin estndar, pero no todo,
  pues algunos son mdulos cargables en ejecucin (como manejadores de
  PCMCIA) y se mantienen y distribuyen por vas distintas.

  2.3.1.  Anexo de la revisin.

  Actualmente, muy pocos mdulos (los no-oficiales) no estn incluidos
  en los fuentes oficiales del kernel. Prcticamente, todos los
  controladores son modularizables.

  He aqu un extracto de lo que aparece en
  /usr/src/linux/Documentation/modules.txt, algo que se debe leer: (--
  Hoy mismo se liberar una traduccin.  --) :

               La mayoria de los sistemas de ficheros:

               minix, xiafs, msdos, umsdos, sysv, isofs, hpfs, smbfs, nfs.

                Soporte SCSI de medio nivel (requeridos por controladores SCSI de
                alto y bajo nivel)

               La mayoria de los controladores SCSI de bajo nivel: (i.e. aha1542, in2000)
               Todos los controladores SCSI de alto nivel: disk, tape, cdrom, generic.

               La mayoria de los controladores ethernet: (demasiados para enumerarlos todos, ver:
                            /usr/src/linux/Documentation/networking/net-modules.txt)

               La mayoria de los controladores de CDROM (propietarios):
                       aztcd:     Aztech,Orchid,Okano,Wearnes
                       cm206:     Philips/LMS CM206
                       gscd:      Goldstar GCDR-420
                       mcd, mcdx: Mitsumi LU005, FX001
                       optcd:     Optics Storage Dolphin 8000AT
                       sjcd:      Sanyo CDR-H94A
                       sbpcd:     Matsushita/Panasonic CR52x, CR56x, CD200,
                                  Longshine LCS-7260, TEAC CD-55A
                       sonycd535: Sony CDU-531/535, CDU-510/515

               Y un monton de modulos, como:
                       lp: impresora p. paralelo
                       binfmt_elf: cargador elf
                       binfmt_java: cargador java
                       isp16: interfaz cdrom
                       serial: interfaz serial (tty)

  2.4.  Qu versin de gcc  y libc  necesito?

  Linus recomienda una en el fichero README de las fuentes del ncleo.
  Si no la tiene, probablemente tenga que actualizarse las libreras
  libc, algo que tampoco es difcil.

  2.5.  Qu es un mdulo cargable?

  Hay partes del cdigo del ncleo que no se enlazan directamente en el
  ncleo. Se compilan por separado y luego se incorporan al ncleo que
  ya est corriendo. Es la forma preferida de usar algunos manejadores
  como los de dispositivos PCMCIA o de cintas QIC-80/40 (--  Hoy en da
  la tendencia es modulizar todos los controladores posibles, salvo
  aquellos estrictamente necesarios para arrancar (ext2, ide, o SCSI,
  segn el caso), aunque siempre se puede hacer una imagen initrd y se
  sigue pudiendo arrancar con LILO. kerneld se encargar de cargarlos y
  descargarlos por nosotros cuando el sistema los necesite o no.  --) .

  2.6.  Cunto espacio en disco necesito?

  Depende de su configuracin. La versin 2.0.10 del ncleo ocupa,
  comprimida, 6 megabytes, pero al descomprimir ocupar unos 24 MB.
  Pero aqu no acaba la cosa: para compilar se necesita espacio para
  ficheros temporales, dependiendo de la configuracin que se elija. Por
  ejemplo, en un 386, con manejador de red de 3Com y cinco sistemas de
  ficheros supone 30 MB. Si a esto aadimos las fuentes comprimidas,
  sern 36 MB. En otro sistema con menos cosas puede ocupar menos.
  Adems, un ncleo nuevo tendr por lo general muchos ms ficheros que
  el antiguo, con lo que debe asegurarse de que hay espacio de disco
  suficiente (adems, con los precios que tienen ahora los discos, me
  puedo permitir el recomendarle que se compre un disco nuevo para el
  Linux).

  2.7.  Cunto se tarda en compilar?

  Para mucha gente, se tarda ``muchsimo''. La velocidad del sistema y
  la cantidad de memoria son determinantes. En un 486DX4/100 con 16 MB,
  se tarda unos 20 minutos en compilar el ncleo v1.2 con cinco sistemas
  de ficheros, soporte de red y manejadores de tarjetas de sonido. En un
  386DX/40 con 8 MB de RAM se tarda una hora y media. Por lo general se
  recomienda prepararse un caf o ver la televisin (o lo que se le
  ocurra (-- O ponerse a hacer cualquier cosa; para eso estamos en
  multitarea :-) --) )  mientras se compila el ncleo. Otra posibilidad
  es compilarlo en un PC ms rpido que el suyo, de algn amigo.

  3.  Cmo configurar el ncleo.

  3.1.  Obtencin de los fuentes.

  Se pueden obtener las fuentes por FTP annimo de
  ftp://ftp.funet.fi/pub/OS/Linux/PEOPLE/Linus/, en un ``mirror'' (-- En
  Espaa contamos con el veloz y magnfico ftp://sunsite.rediris.es--) o
  en otros servidores.  Tpicamente tienen el nombre linux-x.y.z.tar.gz,
  donde x.y.z es el nmero de versin. Las versiones se encuentran en
  directorios v1.1, v1.2 y v1.3 (-- Y 2.0 y 2.1--) . El nmero mayor es
  el de la ltima versin, en este caso versin de desarrollo. Le
  sugerimos que utilice un servidor ``mirror'' de ftp.funet.fi, por
  ejemplo:

    EE.UU.: ftp://tsx-11.mit.edu/pub/linux/sources/system

    EE.UU.: ftp://sunsite.unc.edu/pub/Linux/kernel

    Inglaterra: ftp://sunsite.doc.ic.ac.uk/pub/unix/Linux/sunsite.unc-
     mirror/kernel/

    Austria: ftp://fvkma.tu-graz.ac.at/pub/linux/linus

    Alemania:
     ftp://ftp.Germany.EU.net/pub/os/Linux/Local.EUnet/Kernel/Linus

    Alemania: ftp://ftp.dfv.rwth-aachen.de/pub/linux/kernel

    Francia: ftp://ftp.ibp.fr/pub/linux/sources/system/patches

    Australia: tp://kirk.bond.edu.au/pub/OS/Linux/kernel

    Espaa: ftp://sunsite.rediris.es/pub/linux/kernel/sources

  Si no tiene acceso FTP, encontrar una lista de BBS con lo mismo en el
  grupo comp.os.linux.announce de USENET News.

  3.2.  Descompresin de los fuentes

  Entre en la cuenta root y vaya al directorio /usr/src.  Si instal las
  fuentes cuando instal Linux, habr aqu un directorio linux, con las
  fuentes antiguas. Si quiere preservar esas fuentes (y tiene espacio de
  sobra), renombre (con mv) ese directorio a linux-x.y.z (la versin
  actual x.y.z la puede obtener con el comando uname -r).  Es importante
  que antes de descomprimir las nuevas fuentes no haya ningn directorio
  /usr/src/linux.

  Ahora, en /usr/src, descomprima las fuentes con

       tar xvfzp linux-x.y.z.tar.gz

  (si slo tiene un fichero .tar, sin .gz, elimine la z del comando
  tar). Los contenidos del fichero se expandirn en /usr/src/linux. Vaya
  ahora a ese directorio y lea el fichero README. Encontrar una seccin
  ``INSTALLING the kernel''. Siga las instrucciones que all se digan
  (aunque en las siguientes lneas le diremos cmo tiene que hacer casi
  todo esto).

  3.3.  Configuracin del ncleo

  Nota: Este texto es parcialmente una repeticin de lo que hay en el
  fichero README de las fuentes.

  El comando

       make config

  invocado en el directorio /usr/src/linux inicia un programa shell-
  script de configuracin que le preguntar bastantes cosas.  Requiere
  que est instalado bash, con lo que debe existir /bin/bash, /bin/sh o
  la variable $BASH.

  3.3.1.  Anexo de la revisin 2.1.

  Si los fuentes que posee son superiores al 2.0.x, existen dos mtodos
  bastante ms agradables e interactivos de llevar a cabo la
  configuracin; invocando desde modo texto, en el mismo directorio
  mencionado anteriormente

       make menuconfig

  Iniciar un colorido programa (escrito con lxdialog) muy agradable y
  bastante ms funcional que el make config a secas, para llevar a cabo
  la configuracin del kernel.

  Observar que su uso es bastante intuitivo; las opciones con un < >
  indican la posibilidad de modularizar; si en ella presionamos M la
  seleccionaremos como mdulo. Si presionamos ESPACIO aparecer un *
  indicando que ser incluido en el kernel. Finalmente, si presionamos N
  lo deseleccionaremos.

  Las opciones marcadas con [ ] no son modularizables.

  Si Vd. es un fan de las X, entonces puede arrancar desde un xterm el
  script equivalente, ejecutando

       make xconfig

  Aparecer ante sus ojos un maravilloso y grfico programa de seleccin
  y configuracin del kernel bajo X Window ;-).

  Aqu seguro que sabr manejarse a golpe de ratn sin problema alguno;
  las opciones modularizables tendrn tres casillas posibles a rellenar:
  y indica que se incluir en la parte monoltica del kernel; m que lo
  har como mdulo, y n que no ser seleccionado.

  3.4.  Continuacin

  Ahora  (-- Lo que sigue est dirigido a los usuarios (masoquistas?
  del make config, si emplea make menuconfig o make xconfig encontrar
  mucho ms intuitiva la configuracin, si bien debe leer a continuacin
  qu significan las opciones.--) se trata de contestar las preguntas,
  normalmente con s (`y')  o no (`n'). Los manejadores de dispositivos
  incorporan, adems, la opcin de mdulo (`m'), opcin interesante
  puesto que no incorpora el manejador al ncleo en tiempo de
  compilacin, sino que se hace durante la ejecucin del mismo, cuando
  sea necesario (por ejemplo, cargar el mdulo PPP solo cuando vayamos a
  usar el mdem).

  Algunas otras opciones obvias o poco importantes no son descritas
  aqu.  Vea la seccin ``'' para descripciones de otras muchas.

  Adems, cuando configure el ncleo 2.0.x, podr poner la opcin `?',
  lo que le dar una breve descripcin de la misma.

  3.4.1.  Emulacin de coprocesador ( Kernel math emulation )

  Si no tiene coprocesador matemtico (o un 486), debe contestar `y' a
  esto.  Si tiene coprocesador y contesta `y' la emulacin ser
  instalada pero no usada; funcionar, pero le ocupar memoria
  innecesariamente. Adems, he odo que la emulacin es lenta, lo que se
  traducir en unas pesadas X-Window.

  3.4.2.  and IDE disk/cdrom support ) Soporte de discos IDE y MFM/RLL
  normales ( Normal (MFM/RLL) disk

  Normalmente necesitar este soporte, pues es el de los discos
  habituales en los PCs. Este manejador no gestiona discos SCSI, para
  eso est la opcin especfica que luego veremos.

  Ahora se le preguntar si quiere usar ``old disk-only'' y manejadores
  ``new IDE''. Tiene que elegir uno de ellos. La diferencia principal es
  que el nuevo (new IDE) maneja controladoras secundarias y CD-ROMs
  IDE/ATAPI, hasta cuatro dispositivos, pero ocupa 4 KB ms que el
  antiguo. Se supone que los nuevos manejadores mejoran tambin
  velocidad y fiabilidad, en especial si dispone de dispositivos EIDE.

  3.4.3.  Soporte de redes ( Networking support )

  En principio, contestara afirmativamente si la mquina estuviera en
  una red local o conectada a la Internet con SLIP/PPP. Sin embargo,
  muchos programas, como ocurre con el sistema X Window, requieren el
  soporte de red, as que lo mejor es contestar `y' siempre. Despus se
  le preguntar si quiere soporte TCP/IP: conteste afirmativamente aun
  no estando seguro.

  3.4.4.  Limitar memoria a 16 Mb ( Limit memory to low 16MB )

  Hay controladores de DMA en 386 con problemas para direccionar ms de
  16 MB de RAM. Contestar `y' en el caso (raro) de que tenga uno de
  stos.

  3.4.5.  Comunicacin entre procesos System V  ( System V IPC )

  Una de las mejores definiciones del IPC est en el glosario del libro
  del Perl. Curiosamente, los programadores de Perl suelen usar IPC para
  comunicar sus procesos, as como muchas otras aplicaciones (como DOOM,
  sobre todo), por lo que no es buena idea contestar `n' si no se est
  seguro de lo que hace.

  3.4.6.  486, Pentium, PPro ) ) Tipo de CPU (386, 486, Pentium, PPro) (
  Processor type (386,

  Nota: En anteriores ncleos, la opcin era "Usar el parmetro -m486 en
  el compilador" (Use -m486 flag for 486-specific optimizations)

  Tradicionalmente, esto era una optimizacin compatible con todos los
  chips, aunque ms rpido en la CPU elegida (y en todo caso, ocupaba
  algo ms). Actualmente, esto puede no ser cierto, con lo que deber
  elegir siempre la CPU que tenga (aunque la versin de 386 funcionar
  en todas las mquinas).

  3.4.7.  Soporte SCSI ( SCSI support )

  Si tiene dispositivos SCSI, conteste `y'. Se le preguntarn entonces
  ms cosas: soporte de CD-ROM, discos y qu clase de adaptador utiliza.
  Vea el documento SCSI-HOWTO para ms detalle.

  3.4.8.  Soportes de tarjetas de red ( Network device support )

  Si tiene tarjeta de red, o quiere usar PPP, SLIP o PLIP (puerto
  paralelo usado para conectarse a Internet), conteste afirmativamente.
  El script le preguntar ahora qu tarjeta tiene y qu protocolo usar.

  3.4.9.  Sistemas de ficheros ( Filesystems )

  El programa le preguntar si quiere soporte para los siguientes
  sistemas de ficheros:

  Standard (minix) - Las nuevas distribuciones no crean sistemas Minix,
  y mucha gente no las usa para nada, pero puede convenir elegirla.
  Algunos ``discos de rescate'' usan el sistema Minix como formato de
  sus disquetes, ya que da menos problemas.

  Extended fs - Fue la primera versin del sistema extendido, pero ya no
  se usa. No necesita seleccionarla.

  Second extended - Este es el sistema ms usado. Seguramente lo usar
  Vd. tambin. Seleccione `y'. (-- Ojo con seleccionarlo como mdulo;
  aunque se puede, el sistema de ficheros en el que est su particin /
  debe estar incluido el el kernel no-modularmente, ya que de lo
  contrario no podr arrancar.--)

  xiafs filesystem - Hace mucho pudo ser usado, pero ahora mismo no
  conocemos a nadie que lo utilice.

  msdos - Seleccinelo si quiere acceder desde Linux a sus particiones
  de MS-DOS o quiere montar disquetes de ese sistema.

  umsdos - Este sistema permite aadir a un sistema MS-DOS las
  caractersticas tpicas de Unix como nombres largos o enlaces. Sirve
  para quienes quieran instalar Linux en la particin DOS, pero nada
  ms.

  /proc - Uno de los grandes inventos desde la leche condensada.  (una
  idea robada descaradamente a Bell Labs, si no me equivoco) No se trata
  de algo que se guarde en el disco, sino de una interfaz por medio de
  ficheros con la tabla de procesos del ncleo, usada por programas como
  `ps'. Pruebe a teclear `cat /proc/meminfo' o `cat /proc/devices'.
  Algunos shells (rc, concretamente) hacen uso de /proc/self/fd (en
  lugar de /dev/fd) para E/S. Debe contestar afirmativamente a la
  pregunta: muchas utilidades de Linux lo necesitan.

  NFS - Si su mquina est en red y quiere acceder a sistemas de
  ficheros remotos con NFS, conteste `y' a esta pregunta.

  ISO9660 - Tpico en los CD-ROMs. Si tiene un CD-ROM, seleccione esta
  opcin.

  OS/2 HPFS - En el momento de escribir esto, el soporte HPFS es de slo
  lectura. (-- Y por lo que se ``oye'', as se quedar...--)

  System V and Coherent - para particiones de sistemas Coherent y System
  V (otras variantes de Unix para PC).

  Adiciones desde la edicin del Howto original (Rev. 2.1):

  quota support - Seleccinelo si quiere administrar el espacio que
  consumen en disco los usuarios del sistema; necesitar adems las
  utilidades quotas-1.55, disponibles en:

  ftp://ftp.funet.fi/pub/Linux/kernel/src/subsystems/quota/all.tar.gz

  Tenga en cuenta que este tipo de control restrictivo slo funcionar
  sobre sistemas de ficheros ext2.

  mandatory lock support: Cambia el algoritmo para proporcionar un
  sistema de bloqueos ms seguro, a fin de evitar la corrupcin de
  ficheros por parte de las aplicaciones en los accesos a disco
  simultneo. Esto puede interesar probable y nicamente cuando se usen
  grandes bases de datos o dedique su sistema Linux a servidor de
  ficheros. Tenga en cuenta que deber tener servidores (samba, mars-
  nwe, etc...) que soporten esta nueva caracterstica.

  vfat. En conjuncin con el sistema de fichero fat o msdos nos
  permitir acceso a las particiones de w95, con soporte de nombres
  ``largos'' y dems. En el momento de escribir esto, se desconoce si
  soportar la ``nueva'' fat32 del recin aparecido w95-OSR2.

  SMB filesystem support: En conjuncin con el paquete samba (--  Cuyo
  COMO est disponible en castellano, mire en la seccin ``'' para ms
  informacin.--) nos permitir montar volmenes compartidos por
  clientes de red NetBios.

  SMB w95 bug workaround - :-) qu decir... corrije un bug que
  experimentan los volmenes exportados por servidores w95.

  Amiga FFS support - Soporte para el sistema de ficheros Fast File
  System de Amiga.

  UFS filesystem support - Soporte para el Unix FileSystem, empleado por
  algunos *nixes BSD, como SunOS, FreeBSD, NetBSD, NeXTstep.  Permite
  montar dichas particiones o disquetes en modo de slo lectura.

  Esta opcin contiene otras dos opciones adicionales relacionadas con
  las tablas de particin de los discos segn provengan de uno u otro
  *nix.  Escoja el men en lnea help para mayor informacin.

  NCP filesystem support - Permite montar volmenes NetWare.  Necesitar
  programas cliente para llevarlo a cabo, no obstante.
  root filesystem on NFS - necesario para estaciones de trabajo sin
  disco duro, que arranquen por red y monten todo su sistema de ficheros
  por NFS.

  BOOTP support - Si su caso es el anterior, y arranca por red, este
  protocolo le permitir obtener su IP dinmicamente, usando el
  protocolo BOOTP. (Siempre que su tarjeta de red incorpore una ROM que
  lo permita).

  RARP support - Idem de lo anterior, en este caso usando el protocolo
  RARP.

  Sys V and Coherent filesystem support permitir montar particiones de
  otros *nixes System V, como SCO Unix, Xenix y Coherent. Lea la ayuda
  asociada.

  Actualmente, hay un mdulo no oficial que permite acceso a sistemas de
  ficheros NTFS, usados por wNT, su autor es Martin von Lwis,
  loewis@informatik.hu-berlin.de. Su nivel de soporte es ciertamente
  rudimentario todava, pero siempre es bueno saberlo...

  ms informacin en http://www.informatik.hu-berlin.de:80/~loewis/ntfs

  3.4.9.1.  Pero no s qu sistemas de ficheros necesito!

  De acuerdo, teclee `mount'. La salida ser como esta:

        blah# mount
        /dev/hda1 on / type ext2 (defaults)
        /dev/hda3 on /usr type ext2 (defaults)
        none on /proc type proc (defaults)
        /dev/fd0 on /mnt type msdos (defaults)

  Observe cada lnea; la palabra que sigue a `type' es el tipo de
  sistema usado. En este ejemplo, los sistemas raz (/) y /usr usan el
  sistema ``second extended'', adems usamos sistema ``proc'' y hay
  montado un disquete MS-DOS.

  Para saber qu sistemas de ficheros usa en el ncleo actual puede
  teclear `cat /proc/filesystems' siempre y cuando tenga al menos
  soporte proc.

  Otros sistemas de ficheros ms raramente usados ocupan tambin mucho.
  Quizs le interese meterlos como mdulos (vea la correspondiente
  seccin, y vea tambin la seccin ``'' para saber por qu no se
  recomiendan ncleos que ocupen mucho).

  3.4.10.  Manejadores de tipo carcter ( Character devices )

  Aqu se activan los manejadores para impresoras (por puerto paralelo),
  ratones de bus, ratones PS/2 (usado tambin en muchos trackballs de
  los porttiles), algunos manejadores de cintas y otros.  Conteste
  segn su hardware.

  Nota: ``Selection'' es un programa que le permite usar el ratn para
  cortar y pegar texto entre consolas virtuales, fuera de las X-Window.
  Actualmente no es una opcin de configuracin, sino un estndar.

  Nota 2: `Selection' est bastante obsoleto. Es mucho mejor el programa
  ``gpm'' (-- General Purpose Mouse support, Soporte Genrico para
  Ratones--) puesto que hace cosas como manejar diversos protocolos de
  ratones, etc.

  3.4.11.  Tarjeta de sonido ( Sound card )

  Si siente gran necesidad de or el ladrido del `biff', conteste `y' y
  despus otro programa de configuracin le preguntar acerca de la
  tarjeta de sonido que tiene. Una observacin: cuando le pregunte si
  quiere instalar la versin completa del manejador, conteste `n' y
  ahorrar memoria, aunque tendr que elegir qu caractersticas desea
  incluir. Le recomiendo aqu que lea el Sonido-Como (-- Disponible en
  castellano, obviamente--)

  donde encontrar mucha ms informacin.

  3.4.12.  Otras opciones de configuracin

  No todas las opciones se han listado ya que cambian mucho y otras son
  completamente evidentes (por ejemplo, el soporte 3Com 3C509). Hay una
  lista ms extensa en el siguiente URL de Axel Boldt, axel@uni-
  paderborn.de:

  http://math-www.uni-paderborn.de/~axel/config_help.html

  o por FTP annimo en:

  ftp://sunsite.unc.edu/pub/Linux/kernel/config/krnl_cnfg_hlp.x.yz.tgz

  donde x.yz se refiere a la versin del ncleo.  En las ltimas
  versiones (2.0.x) se incluyen estos documentos entre los ficheros de
  las fuentes del ncleo (directorio Documentation/...).

  3.4.13.  Kernel hacking

  Traduccin del fichero README de Linus:

  La configuracin ``kernel hacking'' suele dar lugar a un ncleo ms
  grande y/o lento, y puede hacerlo menos estable al configurar algunas
  rutinas especiales para encontrar errores del ncleo (kmalloc()).
  Para un ncleo de ``produccin'' deber contestar `n' a la pregunta.

  3.5.  Y ahora qu? (El fichero Makefile ).

  Tras hacer make config, un mensaje le dir que ya est preparado el
  ncleo y que ``revise el fichero Makefile para opciones adicionales'',
  etc.

  Por tanto, veamos el Makefile. Probablemente no tendr que cambiar
  nada, pero debe mirarse. Sus opciones podrn cambiarse con el comando
  `rdev' una vez que el ncleo est compilado.

  4.  Compilacin del ncleo

  4.1.  Limpieza y dependencias

  Cuando se termina de configurar, se le instar a ejecutar `make dep' y
  `clean'. Haga `make dep', lo que preparar las dependencias en poco
  tiempo, a menos que su PC sea muy lento. Cuando acabe, haga `make
  clean'. Esto elimina ficheros objetos y dems de la versin anterior.
  No olvidar este paso.

  4.2.  El momento de compilar

  Despus de preparar dependencias, puede ejecutar `make zImage' o `make
  zdisk' (esta es la parte que tarda ms tiempo). `make zImage'
  compilar el ncleo y lo dejar comprimido en arch/i386/boot/zImage
  junto a otros ficheros. Con `make zdisk' el nuevo ncleo se copiar
  adems en el disquete que est puesto en la disquetera ``A:''.
  `zdisk' es interesante para probar ncleos; si explota (o simplemente
  no hace nada) se quita el disquete de la disquetera y podr arrancar
  el ncleo antiguo. Adems sirve para arrancar si borr accidentalmente
  el ncleo del disco duro. Tambin puede usarlo para instalar nuevos
  sistemas simplemente volcando el contenido de un disco en otro (``
  todo esto y ms !! Ahora, cunto pagara?'').

  Los ncleos recientes estn comprimidos, con una `z' comenzando su
  nombre. Un ncleo comprimido se descomprime automticamente al ser
  ejecutado.

  4.3.  Otras opciones del ` make '

  Con `make mrproper' har una limpieza mucho ms ``intensa''.  Suele
  hacer falta cuando se actualiza (parchea) el ncleo. Pero esta opcin
  borra tambin su fichero de configuracin del ncleo, as que guarde
  una copia del correspondiente fichero .config si cree que le interesa.

  La opcin `make oldconfig' intentar configurar el ncleo con un
  fichero de configuracin anterior (-- A partir del 2.0.xx no es
  necesario, make recuerda la ltima configuracin--)

  evitando todo el proceso del `make config'. Si no ha compilado
  anteriormente el ncleo o no tiene un fichero de configuracin
  anterior, no lo elija pues normalmente querr algo que se salga de la
  configuracin por defecto.

  Para compilacin con mdulos, vea la seccin correspondiente.

  4.4.  Instalacin del ncleo

  Una vez que tenga un nuevo ncleo que parezca funcionar como desea,
  ser el momento de instalarlo. Casi todo el mundo utiliza LILO (LInux
  LOader)  para esto. Con `make zlilo' se instalar el ncleo ejecutando
  LILO, quedando listo para rearrancar, pero esto solo funcionar si
  LILO est bien configurado para su sistema: el ncleo es /vmlinuz,
  LILO est en /sbin y la configuracin de LILO (/etc/lilo.conf) es
  coherente con lo anterior.

  En otro caso, necesitar usar LILO directamente. Hay un paquete que lo
  instala de manera adecuada, pero su fichero de configuracin tiende a
  confundir a la gente. Observe el fichero de configuracin (estar en
  /etc/lilo.conf o en /etc/lilo/config para versiones ms antiguas), y
  vea cul es la configuracin actual. El fichero de configuracin ser
  como ste:

       image = /vmlinuz
               label = Linux
               root = /dev/hda1
               ...

  La lnea `image =' apunta al ncleo instalado actualmente. Casi
  siempre es /vmlinuz. `label' es el identificador usado para
  seleccionar qu sistema arrancar, y `root' es el disco o particin a
  usar para el directorio raz. Haga una copia de seguridad de su
  antiguo ncleo y copie en /vmlinuz o donde diga el fichero anterior el
  fichero zImage que haya generado el proceso de compilacin.  Ahora,
  ejecute LILO (en sistemas modernos, ser simplemente teclear `lilo'.
  En sistemas antiguos, habr que poner `/etc/lilo/install' o
  `/etc/lilo/lilo -C /etc/lilo/config'.)

  Si quiere saber ms sobre la configuracin de LILO, o no tiene LILO,
  obtenga la versin ms reciente de su servidor FTP favorito y siga las
  instrucciones que le acompaan.

  Para arrancar uno de sus antiguos ncleos, copie las lneas anteriores
  incluyendo `image = xxx' al principio del fichero de configuracin de
  LILO, y cambie `image = xxx' por `image = yyy' donde `yyy' es el
  nombre de camino completo al fichero de la copia de seguridad
  guardada. Ahora, cambie `label = zzz' por `label = linux-backup' y
  reejecute LILO. Puede ser que necesite poner una lnea en el fichero
  con `delay=x' donde x son las centsimas de segundo que LILO esperar
  antes de arrancar con la primera opcin, de modo que pueda
  interrumpirse (con la tecla SHIFT) y seleccionarse qu ncleo desea
  arrancar (tecleando la etiqueta (label) asignada).

  Inciso de la revisin 2.1

  Una forma muy cmoda de llevar todo el tema del LILO, si lo tenemos
  instalado, y las compilaciones, etc, es aadir lo siguiente en el
  /etc/lilo.conf:

       image=/vmlinuz
               label=ultimo
               root=/dev/hd[loquesea]
               read-only
               append = ""
       image=/vmlinuz.old
               label=anterior
               root=/dev/hd[loquesea]
               read-only
               append = ""

  Al compilar, si lo hacemos con la secuencia de comandos

       # make dep; make clean; make zlilo; make modules; make modules_install

  el make zlilo renombrar la anterior imagen del kernel a /vmlinuz.old
  , dejando la nueva como /vmlinuz, e instalar LILO, a continuacin con
  lo cual lo hacemos todo automgicamente.

  La rdenes make modules; make modules_install compilarn los mdulos
  que hayamos seleccionado, y los instalarn. No olvidar ejecutar depmod
  -a en cuanto hayamos arrancado con dicho ncleo.

  En caso de que estemos compilando por segunda vez una misma versin de
  ncleo, y hayamos variado el nmero de mdulos a compilar, es posible
  que la ejecutar make dep nos encontremos con un mensaje de error; esto
  se debe a que los antiguos mdulos que no hayamos compilado ahora no
  son borrados. Pueden borrarse tranquilamente.

  5.  Parchear el ncleo

  5.1.  Aplicacin de un parche

  Las actualizaciones incrementales del ncleo se distribuyen como
  parches (-- No tomar con sentido peyorativo el trmino ``parche'', no
  se trata de un ``remiendo'', o ``chapuza'', lo que hacemos al
  ``parchear'' es modificar directamente los fuentes del ncleo,
  incluyendo las variaciones que se hayan introducido.ver el comando
  diff y patch para ms referencias.--) Por ejemplo, si tiene la versin
  1.1.45 y ve que existe un parche `patch46.gz', con ese fichero podr
  actualizarse a la 1.1.46.  Debera antes de nada guardar una copia del
  rbol de directorios de las fuentes del ncleo actual (haciendo `make
  clean', luego `tar cvfz antiguas-fuentes.tar.gz linux' desde el
  directorio /usr/src).

  Ahora, supongamos que tiene `patch46.gz' en /usr/src. Vaya a ese
  directorio y escriba

       zcat patch46.gz | patch -p0

  (o bien

       patch -p0 < patch46

  si ya estaba descomprimido). Ver rpida (o lentamente, depende del
  ordenador) una serie de mensajes que le dicen que se intentan aplicar
  los cambios, cules tienen xito y cules no.  Normalmente, esto ir
  bien y no habr que preocuparse de tanto mensaje, aunque con la opcin
  -s solo saldrn los mensajes de error.

  Inciso de la revisin 2.1:

  No es infrecuente que haya que borrar el rbol de los fuentes entero y
  reinstalarlos de nuevo; muchas veces, se tiene un .tar.gz con los
  fuentes ms un montn de parches; para evitarse el tener que parchear
  uno a uno, puede invocar lo siguiente desde la lnea de comandos:
  (asumo que tratamos de parchear p. ej. con parches a partir del 2.0.20
  hasta el 2.0.27, usamos bash y estamos en /usr/src, teclee pwd para
  cerciorarse).

       # for i in patch-2.0.2[1234567].gz; do
       >zcat $i | patch -p0
       >done

  Investigue por su cuenta, ver qu potencia hay en la lnea de
  comandos *nix...

  fin del inciso

  Para ver qu partes no se han modificado correctamente, busque los
  ficheros .rej en el directorio de las fuentes. Si se usan algunas
  versiones de patch (antiguas, sobre todo) esos ficheros tendrn
  extensin `#'. Con el comando find encontrar fcilmente los ficheros:

       find . -name '*.rej' -print

  imprime todos los ficheros .rej que estn en el directorio actual o
  subdirectorios.

  Si todo ha ido bien, haga `make clean', `config' y `dep' como se
  describi en las secciones ``'' y ``''.

  Hay algunas opciones ms en el comando patch. Con -s, como hemos
  dicho, se suprimen todos los mensajes salvo los errores. Si guarda las
  fuentes del ncleo en otro lugar que no sea /usr/src/linux, con patch
  -p1 se parchearn las cosas limpiamente. Otras opciones de inters se
  encuentran bien documentadas en las pginas man.

  5.2.  Si algo va mal

  El problema ms comn es que una ejecucin de patch intente modificar
  el fichero `config.in' y no parezca quedar bien, porque haya hecho
  cambios en l de acuerdo con su mquina. Este problema sucede con
  versiones antiguas. Para corregirlo, busque el fichero config.in.rej,
  y vea qu tiene el parche originado. Los cambios suelen ir marcados
  con `+' o `-' al principio de las lneas.  Edtelo, recordando si las
  opciones estaban puestas a Y o a N, y ejecute

       patch -p0 < config.in.rej

  y si no tiene fallos, puede continuar con el resto del proceso. El
  fichero config.in.rej permanecer, aunque puede borrarlo.

  Si encuentra otros problemas, puede que haya aplicado un parche fuera
  de orden. Si el programa patch responde con

       previously applied patch detected: Assume -R?

  probablemente estar intentando aplicar un parche anterior a su
  versin actual. Si responde `y', intentar degradar sus fuentes, y
  normalmente fallar, obligndole a preparar un nuevo rbol de fuentes.

  Para anular el efecto de un parche, use `patch -R' con el parche
  original.

  Lo mejor ante un problema es reinstalar un rbol de fuentes limpio y
  empezar de nuevo.

  5.3.  Limpieza de ficheros .orig

  Despus de algunos parches, los ficheros .orig empezarn a abultar
  mucho. Por ejemplo, si estamos ya con el ncleo 1.1.51 y empezamos con
  el 1.1.48, borrar los .orig nos ahorrara medio megabyte. Con

  find .-name '*.orig' -exec rm -f {} ';'

  se automatizar esa limpieza. En versiones que usen el # en lugar de
  .rej, sustituya el .orig por un `~'.

  Una forma mejor de hacer esto es usar xargs de GNU:

  find .-name '*.orig' | xargs rm

  o el mtodo ``ms seguro pero ms pesado'':

  find . -name '*.orig' -print0 | xargs --null rm --

  5.4.  Otros parches

  Hay otros parches (los llamaremos ``no estndares'') que si se
  aplican, probablemente provocarn que los parches de Linus no
  funcionen correctamente, teniendo que retroceder, corregir las fuentes
  o el parche, instalar de nuevo las fuentes, o una combinacin de lo
  anterior.

  inciso de la R. 2.1: Existe una pgina con informacin centralizada
  sobre este tipo de parches en:

  http://www.ecsnet.com/html/linux_21_upatch.html

  Este es un buen sitio para buscar si necesita soporte para algn
  dispositivo esotrico o implementacin reciente. Tenga en cuenta, no
  obstante, que la mayora sern para el kernel actual de desarrollo,
  aunque puedan aplicarse algunos ( eiste otra pgina en la misma
  localizacin citada anteriormente) en el kernel de produccin.

  fin del inciso

  Por ejemplo, el autor utilizaba el parche `noblink' que anula el
  parpadeo del cursor en las consolas virtuales. Este parche se
  actualiza (o actualizaba) frecuentemente para los nuevos ncleos. Como
  ahora muchos manejadores se pueden cargar como mdulos, los parches ya
  son menos necesarios.

  6.  Paquetes adicionales

  El ncleo de Linux tiene ms caractersticas no documentadas en el
  cdigo; stas se utilizan normalmente va parches no estndares.
  Algunas caractersticas se listan a continuacin.

  6.1.  kbd

  La consola de Linux tiene ms prestaciones que las conocidas, como
  cambiar las fuentes, cambiar el modo de vdeo, etc. El paquete kbd
  tiene programas que permiten al usuario hacer esto, junto con nuevas
  fuentes de texto y mapas de teclado, y se encuentra disponible en los
  mismos sitios donde estn las fuentes del ncleo.

  6.2.  util-linux

  Rik Faith, faith@cs.unc.edu recopil una gran coleccin de utilidades
  de Linux conocidas como `util-linux', que ahora mantiene Nicolai
  Langfeldt, util-linux@math.uio.no. Se encuentran en
  ftp://sunsite.unc.edu/pub/Linux/system/Misc, con programas como
  setterm, rdev y ctrlaltdel, importantes para el ncleo. Como dice Rik,
  no lo instale sin pensarlo, instalarlo todo sin necesidad puede
  causarle despus algunos problemas.

  6.3.  hdparm

  Son programas hechos con el ncleo oficial, para optimizar y jugar con
  con los parmetros del disco duro, distribuyndose por separado.

  7.  Problemas tpicos

  7.1.  make clean

  Si su nuevo ncleo hace cosas raras, puede ser que se le olvidara
  hacer `make clean' antes de compilar. Los sntomas suelen ser extraos
  cuelgues, problemas de E/S... asegrese tambin de hacer `make dep'.

  7.2.  Ncleos muy lentos o muy grandes

  Si su ncleo consume mucha memoria, o la compilacin se hace eterna
  incluso con su nuevo 786DX6/440, probablemente se deber a haber
  elegido demasiados manejadores, sistemas de ficheros, etc. a soportar
  en el sistema. Si no los va a usar, no los incluya, puesto que
  consumen memoria.  Lo tpico en estos casos es que se recurre
  demasiado al intercambio con el disco, lo que se aprecia en un ruido
  `excesivo' del disco duro.

  Puede ver cunta memoria ocupa su ncleo comparando los valores
  obtenidos al ver el fichero /proc/meminfo, o con el comando dmesg o el
  log de los mensajes del ncleo, donde ver algo parecido a esto:

       Memory: 15124k/16384k available (552k kernel code, 384k reserved, 324k data)

  En mi 386 (con pocos drivers configurados) sale:

       Memory: 7000k/8192k available (496k kernel code, 384k reserved, 312k data)

  7.3.  El ncleo no compila

  Si no compila, puede ser por un fallo de parcheo, u otro tipo de
  corrupcin en los ficheros fuente. Adems, la versin de gcc puede no
  ser correcta o los propios ficheros de #include. Asegrese que los
  enlaces simblicos necesarios (descritos en el fichero README de
  Linus) existen. En general, cuando un ncleo estndar no se puede
  compilar, es porque hay algn problema serio en el sistema, y ser
  necesario reinstalar algunos programas.

  Tambin puede suceder que le den errores compilando el ncleo 1.2.x
  con un gcc ELF (2.6.3 o superior). Se puede intentan arreglar
  aadiendo las siguientes lneas al fichero arch/i386/Makefile:

       AS=/usr/i486-linuxaout/bin/as
       LD=/usr/i486-linuxaout/bin/ld -m i386linux
       CC=gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include

  Ahora, haga `make dep' y `make zimage' de nuevo.

  En algunos casos muy raros el gcc romper con un mensaje similar a
  ``xxx exited with signal 15''. En este caso la solucin puede estar en
  desactivar la cach de segundo nivel, pensar en un fallo hardware de
  la memoria... o reinstalar de nuevo el gcc.

  7.4.  El nuevo ncleo no parece arrancar

  No se ejecut LILO, o no est bien configurado. A veces, se ponen
  errores como `boot = /dev/hda1' en lugar de `boot = /dev/hda'.

  7.5.  Se olvid ejecutar LILO , y el sistema ya no arranca

  Vaya problema! Lo mejor que puede hacerse ahora es arrancar con un
  disquete y preparar otro disquete para arrancar Linux (con `make
  zdisk' se hizo uno). Necesita saber qu sistema de ficheros raz (/)
  tiene, dnde est y su tipo (por ejemplo, ext2 o minix). En este
  ejemplo, tambin hay que saber dnde estn los ficheros de /usr, en
  otra particin.

  En el siguiente ejemplo, / es /dev/hda1, y el sistema con las fuentes
  del ncleo es /dev/hda3, montado como /usr normalmente. Ambos son
  sistemas ext2. La imagen compilada estar en el sistema de las
  fuentes.

  La idea es que si hay un fichero zImage correcto, puede salvarse en un
  disquete. Otra posibilidad (que funcionar mejor o peor, segn el
  caso) se ver en otro ejemplo.

  En primer lugar, arranque con un disquete de instalacin o de rescate,
  y monte el sistema de ficheros que contenga el ncleo a usar:

        mkdir /mnt
        mount -t ext2 /dev/hda3 /mnt

  Si mkdir le dice que el directorio ya existe, no hay problema.  Ahora,
  pase al directorio donde est el ncleo compilado. Vea que

       /mnt + /usr/src/linux/arch/i386/boot - /usr = /mnt/src/linux/arch/i386/boot

  Ponga un disco con formato en la unidad ``A:'' (que no sea el disquete
  con el que ha arrancado) y copie el ncleo a l:

        cd /mnt/src/linux/arch/i386/boot
        dd if=zImage of=/dev/fd0
        rdev /dev/fd0 /dev/hda1

  vaya a / y desmonte el sistema de ficheros:

        cd /
        umount /mnt

  Ahora puede rearrancar el sistema desde el disquete. No olvide
  ejecutar LILO!

  Como se ha dicho, hay otra alternativa. Si el ncleo est en el
  directorio raz (por ejemplo /vmlinuz), puede usarlo para un disquete
  de arranque. Suponiendo las condiciones anteriores, haramos los
  cambios siguientes en el ejemplo anterior: /dev/hda3 por /dev/hda1 (el
  sistema raz), /mnt/src/linux por /mnt, y `if=zImage' por
  `if=vmlinuz'. El resto puede ignorarse.

  Usar LILO con discos grandes (de ms de 1024 cilindros) puede dar
  problemas. Le recomendamos que lea el mini-HOWTO sobre LILO para ms
  informacin. (-- As como el Discos-Grandes-mini-Como, disponible en
  castellano, ver seccin ``''.--)

  7.6.  Mensaje de aviso: ` warning: bdflush not running '

  Es un problema muy importante. Desde la versin 1.0 del ncleo (20 de
  Abril de 1994), hay un programa, `update' que, peridicamente, vuelca
  al disco la cach de buffers del sistema. Obtenga las fuentes de
  `bdflush' (est donde se distribuyen las fuentes del ncleo) e
  instlelas (quizs deba usar mientras lo hace el ncleo antiguo).
  Despus del rearranque, se instalar en memoria como `update' y ya no
  habr ms avisos.

  7.7.  Salen mensajes sobre smbolos no definidos, y no compila

  Esto ser probablemente porque tenga un compilador ELF (gcc 2.6.3 y
  posteriores) y las fuentes 1.2.x o anteriores. Habitualmente esto se
  corrige aadiendo las siguientes lneas al archivo arch/i386/Makefile:

       AS=/usr/i486-linuxaout/bin/as
       LD=/usr/i486-linuxaout/bin/ld -m i386linux
       CC=gcc -b i486-linuxaout -D__KERNEL__ -I$(TOPDIR)/include

  Esto permitir compilar el ncleo 1.2.x con libreras a.out.

  7.8.  No consigo que me detecte mi CD-ROM IDE/ATAPI

  Mucha gente tiene este problema, siendo las causas muy diversas.

  El error ms comn es tener el dispositivo en una interfaz IDE sin
  compaa de otro disco, para lo que debe ser configurado como
  ``maestro'' (master) o ``nico'' (single), nunca como ``esclavo''
  (slave).

  Creative Labs est poniendo interfaces IDE en sus tarjetas de sonido.
  Sin embargo, esto es un problema cuando se tienen ya dos interfaces
  IDE en la placa, en la IRQ 15. Entonces se suele configurar el IDE de
  la tarjeta de sonido en la IRQ 11, y los ncleos 1.2.x no saben
  manejar esto (tener, en la prctica, tres IDE).

  En las versiones 1.3.x se empieza a intentar soportar esto, pero est
  en desarrollo y en todo caso no incluye autodeteccin. Para
  utilizarlo, pues, deber hacer algunas cosas.
  Si no tiene segunda IDE en placa, cambie los ``jumpers'' de la tarjeta
  de sonido referentes a la interfaz IDE para que ocupen la IRQ 15
  (segunda interfaz). Esto debera funcionar.

  Si por el contrario hay en total tres interfaces, obtenga un ncleo
  1.3.x (por ejemplo, el 1.3.57 lo incluye) y lea el documento
  drivers/block/README.ide, donde encontrar ms informacin.

  7.9.  Salen mensajes sobre cosas de encaminamiento obsoletas

  Consiga nuevas versiones de los programas `route' y otros que
  manipulan tablas de encaminamiento. El fichero
  /usr/include/linux/route.h tiene cambios al respecto.

  7.10.  La funcin de cortafuegos no funciona en el ncleo 1.2.0

  Actualcese al menos a la 1.2.1.

  7.11.  Mensaje: `` Not a compressed kernel Image file ''

  No utilice el fichero vmlinux creado en /usr/src/linux para arrancar,
  sino el mencionado zImage.

  7.12.  Hay problemas con la consola al pasarse a la 1.3.x

  Ponga `linux' en la entrada `console' del fichero /etc/termcap.
  Adems, deber hacer una entrada en terminfo.

  7.13.  Algunas cosas no compilan despus de la actualizacin

  El ncleo incluye ciertos ficheros #include (acaban en referencian con
  la lnea:

       #include <linux/xyzzy.h>

  Normalmente, hay un enlace simblico `linux' de
  /usr/include al directorio /usr/src/linux/include/linux.  Si no existe
  tal enlace, o apunta a un lugar incorrecto, muchas cosas compilarn
  mal. Por ejemplo, el problema es obvio si borr las fuentes del ncleo
  porque le ocupaban mucho. Otro problema puede tener relacin con los
  permisos de los ficheros, tal vez debido a un umask de la cuenta root
  que obligue a crear los ficheros ocultos a otros usuarios por defecto.
  Puede solucionar esto con el comando chmod, pero ser ms cmodo
  descomprimir las fuentes del ncleo aadiendo la opcin -p (preservar
  modo)  al comando tar:

       blah# tar zxvpf linux.x.y.z.tar.gz linux/include

  Nota: Con ``make config'' se crea el enlace /usr/src/linux si no
  existe.

  8.  Notas sobre la actualizacin a la versin 2.0.x

  La versin 2.0.x se instala de manera algo diferente a otras
  versiones, y requiere actualizar software auxiliar. El fichero
  Documentation/Changes de las fuentes contiene informacin muy
  importante sobre esto, como lo referente a los paquetes que debe
  actualizar (gcc, libc...).

  9.  Mdulos

  Los mdulos del ncleo cargables le permitirn simplificar la
  configuracin del ncleo y ahorrar memoria. Sirven para aadir
  dinmicamente nuevos soportes de sistemas de ficheros o manejadores, a
  un ncleo que ya est corriendo.

  9.1.  Instalacin de las utilidades asociadas

  Estas utilidades estn disponibles all donde est el ncleo, como
  modules-x.y.z.tar.gz. Elija el que corresponda a su ncleo.
  Descomprmalo con `tar zxvf modules-x.y.z.tar.gz', cambie al
  directorio que crea (modules-x.y.z), lase el fichero README, y siga
  las instrucciones de instalacin (normalmente, tan simple como `make
  install'). Con ello tendr las utilidades insmod, rmmod, ksyms, lsmod,
  genksyms, modprobe y depmod en /sbin.  Si lo desea, puede probar el
  manejador ejemplo ``hw'' con insmod; lea el fichero INSTALL para ms
  detalle.

  insmod inserta un mdulo en el ncleo arrancado. Generalmente los
  mdulos son ficheros .o; el manejador ejemplo es drv_hello.o, con lo
  que para insertarlo se usara `insmod drv_hello.o'. Para ver los
  mdulos cargados, pruebe lsmod. La salida ser como sta:

        blah# lsmod
        Module:#pages:Used by:
        drv_hello1

  `drv_hello' es el nombre del mdulo, que usa una pgina (4k) de
  memoria, y no hay mdulos que dependan de l en este momento. Para
  quitar el mdulo, teclee `rmmod drv_hello'. Vea que rmmod necesita el
  nombre del mdulo, no del fichero. Ese nombre lo obtiene al listar los
  mdulos instalados. Las otras utilidades de mdulos se encuentran
  documentadas en los manuales on-line.

  Inciso de la revisin 2.1

  Tres cosas relativas a mdulos:

    Siempre que compile un kernel nuevo, y sus correspondientes mdulos
     (con make modules; make modules_install tras los make dep; make
     clean; make zImage (-- O make zlilo, si usa LILO como gestor de
     arranque.--)
      lo primero que ha de hacer al arrancar con el mismo, para computar
     las dependencias entre mdulos, es invocar el comando

       depmod -a

    Desde la aparicin de kerneld, el andar insertando y retirando
     mdulos de memoria a mano no se estila mucho, en su lugar es
     kerneld quien se encarga de esto. Para hacer uso de l, asegrese
     de responder s al soporte kerneld durante la configuracin del
     ncleo, y llmelo desde los scripts de inicializacin del sistema,
     que estn tpicamente en /etc/rc.d/rc.x.

     Sigue pudiendo cargar mdulos a voluntad; el comando recomendado es
     modprobe modulo, que tendr en cuenta las dependencias entre
     mdulos, cargando todos los necesarios (como por ejemplo el mdulo
     slhc en el caso de que queramos cargar el mdulo ppp.)

     Atencin: El soporte de compresin CCP (bsd_comp) no est includo
     en esto debido a problemas de copyright, por lo que deberemos
     cargarlo a mano; o bien ejecutamos la orden modprobe bsd_comp
     cuando queramos cargar ppp, o bien lo insertamos despus de haber
     cargado ppp y slhc, con por ejemplo, modprobe ppp.

     Lea el fichero /usr/src/linux/Documentation/modules.txt, disponible
     en castellano en http://www.insflug.org/pub/online/modulos.txt para
     profundizar sobre este tema, as como sobre el tercero de los
     tems:

    /etc/modules.conf o /etc/conf.modules. Lea el anterior fichero
     (modulos.txt).

  9.2.  Mdulos distribuidos con el ncleo 1.2.2

  Algunos sistemas de ficheros, manejadores SCSI y de tarjetas de red,
  as como otras utilidades son cargables como mdulos. Para usarlos, lo
  primero, no incluirlos en el ncleo principal (al compilarlo, no decir
  que `s' al manejador correspondiente durante el `make config').
  Luego se arranca ese ncleo (-- Esto es obsoleto en el caso de los
  ncleos 2.0.x, recurdelo; con los 2.0.x puede compilarlo todo
  seguido, y arrancar posteriormente, ejecutar depmod -a y estar todo
  listo.  --) y se entra de nuevo en /usr/src/linux para hacer `make
  modules', lo que compilar mdulos para todas aquellas opciones que no
  se eligieron durante el `make config', y los dejar en
  /usr/src/linux/modules. Puede ahora ejecutar `make modules_install'
  que los instalar en /lib/modules/x.y.z siendo x.y.z la versin del
  ncleo.

  Esto es especialmente til con los sistemas de ficheros que, como
  minix o msdos, no se usan normalmente. As, cuando se quiera leer un
  disquete MSDOS, primero se cargara el mdulo con insmod (-- Mejor
  modprobe, que como hemos comentado, tendr en cuenta las dependencias
  entre mdulos que ha generado depmod -a, cargndolos todos.--) y se
  descargara al finalizar. Esto ahorrar unos 50K de memoria en la
  operacin normal del ncleo. Notar que el sistema Minix siempre deber
  estar dentro del ncleo (no como mdulo) si se quiere hacer un
  disquete de rescate con l.

  10.  Otras opciones de configuracin.

  Esta seccin contiene informacin sobre otras opciones de
  configuracin que se ofrecen durante `make config'.

  10.1.  Opciones generales

  Normal floppy disk support (soporte de floppy normal): es exactamente
  eso. Lea el fichero drivers/block/README.fd, es importante para
  usuarios de IBM Thinkpad.

  XT harddisk support (soporte de disco duro de XT): interesante si
  quiere usar una controladora XT de 8 bits.

  PCI bios support(soporte de Bios PCI): si tiene PCI, puede
  interesarle. Vaya con cuidado: algunas placas PCI antiguas pueden
  colgar al sistema con esta opcin. Ms informacin al respecto se
  encontrar en el documento PCI-HOWTO.

  Kernel support for ELF binaries (soporte para binarios ELF): ELF es un
  intento de uniformizar arquitecturas y sistemas operativos.  Linux
  tambin pretende conseguirlo (-- De hecho, es el estndar actual para
  todo el software en Linux. Podr seguir ejecutando sus (posiblemente
  obsoletos) antiguos binarios a.out, dotando al kernel, --modularmente,
  por ejemplo-- de soporte para los mismos.--) .

  Set version information on all symbols for modules (mantener
  informacin de versin en los smbolos de los mdulos): en el pasado,
  los mdulos se recompilaban con cada nuevo ncleo. Si responde
  afirmativamente, podr usar mdulos de otra versin. Para ms detalle,
  consulte el fichero README.modules.

  Enable loadable module support Responda que s a esto si pretende
  hacer uso de los mdulos cargables en tiempo de ejecucin.

  Kernel daemon support (e.g. autoload for modules)Esto es absolutamente
  necesario si pretende hacer uso de kerneld. En breve se dispondr de
  una versin en castellano del Kerneld Mini-HOWTO. Ver seccin ``''.

  10.2.  Opciones de red

  Se describen en el documento NET-2-HOWTO (o NET-algo-HOWTO).

  11.  Consejos y trucos

  11.1.  Redireccin de la salida de compilacin o parcheado.

  Si le interesa tener ``logs'' de lo que hagan los comandos `make' o
  `patch', puede hacerlo redirigiendo su salida a un fichero. Primero,
  debe saber qu shell est utilizando (con el comando `grep root
  /etc/passwd' puede saberlo, buscando en el resultado algo as como
  `/bin/csh' o `/bin/sh'). Una vez localizado, si utiliza sh o bash,
  puede redirigir la salida de un comando como `make' con:

       (comando) 2>&1 | tee (fich)

  La lnea anterior pondr la salida de `(comando)' en el fichero
  `(fich)'.

  Si se trata de csh o tcsh, teclee,

        (comando) |& tee (fich)

  Para rc (shell que raramente usar) se tecleara,

        (comando) >[2=1] | tee (fich)

  11.2.  Instalacin condicional del ncleo

  Hay ms mtodos para probar un nuevo ncleo que no sea usar un
  disquete. A diferencia de otros Unix, LILO puede arrancar cualquier
  fichero con el ncleo que se encuentre en el disco (-- As como montar
  particiones de disco distintas segn se le indique, con lo cual
  podemos tener varias instalaciones distintas y poder arrancar con una
  y otra, incluso compartiendo alguna de ellas.--) (siempre y cuando
  ste est por debajo de los 1024 cilindros, lea la documentacin de
  LILO para ms detalle).  Puede tener al final de /etc/lilo.conf una
  lnea parecida a sta:

   image = /usr/src/linux/arch/i386/zImage
   label = nuevo_nucleo

  lo que le permitir seleccionar en el arranque (habiendo ejecutado
  antes lilo para reconfigurar) el nuevo_nucleo en lugar del habitual
  que ser probablemente /vmlinuz. Para poder hacer esta seleccin hay
  que mantener pulsada la tecla SHIFT al arrancar, para que aparezca el
  prompt de LILO que le permita teclear la etiqueta (nuevo_nucleo u
  otra)  del ncleo elegido.

  Si desea tener varios fuentes de ncleos distintos en el disco
  (cuidado!, le puede suponer muchos megas), lo normal es tener cada
  versin x.y.z en el directorio /usr/src/linux-x.y.z y ``seleccionar''
  o activar cada ncleo sin ms que redefinir el enlace simblico
  /usr/src/linux apuntando al directorio que desee (por ejemplo, yo hice
  `ln -sf /usr/src/linux-1.2.3 /usr/src/linux' en su momento).
  Asegrese que /usr/src/linux no es ya un directorio, sino como mucho
  antiguos enlaces simblicos. De otro modo, el resultado del anterior
  comando no ser el esperado.

  11.3.  Actualizaciones del ncleo

  Russell Nelson, nelson@crynwr.com lleva una lista que resume los
  cambios en las nuevas versiones del ncleo. Son breves pero
  interesantes antes de decidirse por instalar una nueva versin. Se
  puede encontrar por FTP annimo en ftp://ftp.emlist.com/pub/kchanges o
  a travs del URL:

  http://www.crynwr.com/kchanges

  12.  Otros documentos COMO  que pueden serle tiles

    Sonido-Como (-- Aquellos cuyo nombre incluya la palabra ``Como''
     estn disponibles traducidos.--) : tarjetas de sonido y utilidades

    SCSI-HOWTO: todo sobre controladores y dispositivos SCSI

    NET-2-HOWTO: todo sobre redes

    PPP-Como: redes con PPP concretamente

    PCMCIA-HOWTO: acerca de manejadores para porttiles

    ELF-HOWTO: ELF: qu es, cmo migrar...

    Hardware-HOWTO: revisin del hardware soportado por Linux

  13.  Miscelnea

  13.1.  El autor

  El autor y encargado de mantener el original de este documento en
  Ingls es Brian Ward bri@blah.math.tu-graz.ac.at. Envenme cualquier
  comentario, aadidos o correcciones que considere oportunos. En
  particular, lo que ms me interesa son las correcciones. Si quiere
  agradecerme de alguna forma especial que haya escrito este documento,
  siempre podr enviarme ordenadores o CD-ROMs que no use, o simplemente
  una bonita postal de su zona...

  Puede ver mi pgina principal de WWW en los URLs:

  http://www.math.psu.edu/ward/

  http://blah.tu-graz.ac.at/~ward/

  Aunque intento atender en lo posible el correo, recuerde que sin
  embargo recibo muchos mensajes diarios, lo que har que pueda pasar
  tiempo antes de contestar su mensaje. Especialmente, si me enva
  alguna consulta, trate de ser lo ms claro y detallado posible en su
  mensaje. Por ejemplo, si se trata de hardware que no funcione, trate
  de explicarme con el mximo detalle la configuracin de que se trata.
  No se preocupe si hace preguntas simples, puesto que si no se la
  pregunta a nadie nunca tendra respuesta!. Agradecer tambin las
  sugerencias.

  Si me escribe y no obtiene respuesta en mucho tiempo (digamos, ms de
  tres semanas), puede que accidentalmente haya borrado su mensaje (lo
  siento, intntelo de nuevo).

  Recibo muchos mensajes sobre cosas que realmente son problemas de
  hardware. Est bien, pero tenga en cuenta que yo no conozco todo el
  hardware existente en el mundo y no siempre puedo ayudarle.
  Personalmente, uso mquinas con discos IDE y SCSI, CD-ROMs SCSI,
  tarjetas de red 3Com y WD, ratones serie, placas base con PCI,
  controladoras SCSI NCR 810, CPUs AMD 386DX40 con coprocesador Cyrix,
  procesadores AMD 5x86, 486DX4 y tambin de Intel (todo esto es una
  lista de lo que conozco, pero ciertamente no es una recomendacin para
  su equipo, aunque si quiere, puede preguntarme :-) ).

  La versin -0.1 se escribi el 3 de Octubre de 1994. Este documento
  est disponible en SGML, PostScript, TeX, roff y ASCII.

  Nota del traductor: Al igual que el autor original, me pongo a su
  disposicin para resolver problemas que estn en mi mano, y sobre
  todo, aceptar sugerencias sobre esta traduccin, perteneciente al
  proyecto LUCAS (LinUx en CAStellano) coordinado por Ramn Gutirrez.
  Actualmente, se han preparado versiones SGML, HTML y ASCII.

  Nota de la revisin 2.1: Ver la seccin ``''. Me sumo a las propuestas
  anteriores. A partir de esta revisin, este COMO est disponible en
  SGML, HTML, ASCII, PostScript, DVI, LyX, y cualquier otro formato
  soportado por linuxdoc-sgml. Le recomiendo encarecidamente que si
  piensa imprimirlo, lo haga con las versiones .dvi o .ps, la calidad no
  tiene color en comparacin con las otras versiones para imprimir. Y al
  fin y al cabo, me he tomado el trabajo de revisarlo precisamente por
  esto :-), asi como actualizarlo un poco.

  El traductor, Juan Jos Amor, jjamor@ls.fi.upm.es se encuentra
  disponible por correo electrnico y tambin en el WWW:

  http://lml.ls.fi.upm.es/~jjamor.

  13.2.  Pendiente de hacer

  La seccin ``'' es pequea. Espero poderla agrandar gracias a sus
  sugerencias.

  Lo mismo para la seccin ``''.

  Hay que aadir ms informacin acerca de recuperacin de cuelgues y
  errores.

  13.3.  Colaboraciones

  Se incluy una pequea parte del README de Linus (acerca de las
  opciones de ``kernel hacking''). (Gracias, Linus!).

  uc@brian.lunetix.de (Ulrich Callmeier): patch -s y xargs.

  quinlan@yggdrasil.com (Daniel Quinlan): muchas correcciones y
  aadidos.

  nat@nataa.frmug.fr.net (Nat Makarevitch): mrproper, tar -p.

  boldt@math.ucsb.edu (Axel Boldt): recopil descripciones de
  configuraciones del ncleo en la red, luego me envi la lista.

  lembark@wrkhors.psyber.com (Steve Lembark): sobre mltiples formas de
  arrancar.

  kbriggs@earwax.pd.uwa.edu.au (Keith Briggs): algunas correcciones y
  sugerencias.

  mailto:rmcguire@freenet.columbus.oh.us (Ryan McGuire): adiciones
  realizables.

  dumas@excalibur.ibp.fr (Eric Dumas): traduccin al Francs.

  simazaki@yu-gate.yamanashi.ac.jp (Yasutada Shimazaki): traduccin al
  Japons.

  jjamor@lml.ls.fi.upm.es (Juan Jos Amor Iglesias): traduccin al
  Castellano. ;-)

  donahue@tiber.nist.gov (Michael J Donahue): errores tipogrficos,
  ganador de la ``sliced bread (-- Proviene de la popular expresin
  anglosajona ``... it's the best thing since sliced bread'', algo as
  como (literalmente) ``... es lo mejor que se ha inventado desde las
  tostadas'', suele utilizarse para expresar ``... es lo mejor que haya
  parido mente humana''.--) competition''.

  rms@gnu.ai.mit.edu (Richard Stallman):  concepto sobre la
  documentacin de libre distribucin.

  dak@Pool.Informatik.RWTH-Aachen.DE (David Kastrup): El tema del NFS.

  La gente que me ha enviado correo con preguntas y problemas tambin me
  ha sido de extrema ayuda.

  13.4.  Notas sobre el Copyright, Licencia y Todo Eso

  Nota del traductor: Aunque se traducen las notas siguientes, se copian
  tambin intactas para respetar los trminos de la Licencia.

       ===========Copyright notice, License, and all that stuff ==================

       Copyright (c) Brian Ward, 1994-1996.
       Permission is granted to make and distribute copies of this manual provided
       the copyright notice and this permission notice are preserved on all
       copies.

       Permission is granted to copy and distribute modified versions of this
       manual under the conditions for verbatim copying, provided that the derived
       work is distributed under the terms of a permission notice identical to
       this one. Translations fall under the catagory of ``modified versions.''

       Warranty: None.

       Recommendations
       :
       Commercial redistribution is allowed and encouraged; however, it is
       strongly recommended that the redistributor contact the author before the
       redistribution, in the interest of keeping things up-to-date (you could
       send me a copy of the thing you're making while you're at it). Translators
       are also advised to contact the author before translating. The printed
       version looks nicer. Recycle.

       =============================================================================

  Copyright  Brian Ward, 1994, 1995.

  Se concede permiso para realizar y distribuir copias de este
  documento, siempre proporcionando esta nota y la del Copyright en
  todas las copias.

  Se concede permiso para copiar y distribuir versiones modificadas de
  este documento, bajo las condiciones propuestas para copias completas.
  Las traducciones se incluyen en la categora de ``versiones
  modificadas''.

  Garantas: Ninguna.

  Recomendaciones: Se permite y recomienda redistribuir comercialmente
  este documento; sin embargo, se sugiere que el distribuidor contacte
  antes con el autor, con el fin de mantener las cosas al da. Con este
  mismo propsito se recomienda tambin a los traductores que contacten
  con el autor.

  14.  Anexo: El INSFLUG

  El INSFLUG forma parte del grupo internacional Linux Documentation
  Project, encargndose de las traducciones al castellano de los Howtos
  (Comos), as como la produccin de documentos originales en aquellos
  casos en los que no existe anlogo en ingls.

  En el INSFLUG se orienta preferentemente a la traduccin de documentos
  breves, como los COMOs y PUFs (Preguntas de Uso Frecuente, las FAQs.
  :) ), etc.

  Dirjase a la sede del INSFLUG para ms informacin al respecto.

  En la sede del INSFLUG encontrar siempre las ltimas versiones de las
  traducciones:  www.insflug.org. Asegrese de comprobar cul es la
  ltima versin disponible en el Insflug antes de bajar un documento de
  un servidor rplica.

  Se proporciona tambin una lista de los servidores rplica (mirror)
  del Insflug ms cercanos a Vd., e informacin relativa a otros
  recursos en castellano.

  Francisco Jos Montilla, pacopepe@insflug.org.

