| 
 | 
|  | 
| 
 | 
| Este documento está disponible en los siguientes idiomas: English Castellano ChineseGB Deutsch Francais Italiano Nederlands Turkce | 
| 
 ![[Photo of the Author]](../../common/images/PhilipGroot.jpg)  por Philip de Groot <philipg(at)authors.linuxfocus.org> Sobre el autor: Espero recibir mi doctorado de la Universiteit van Nijmegen durante este año. Mi tesis es sobre lo que llamamos chemometrics. Actualmente trabajo en tecnología informática aplicada a la biología, en el Centro Médico Académico en Amsterdam, Holanda. Además mantengo mi propia página para novatos de Linux (en holandés): es una de las muchas iniciativas de y para la comunidad linnuxera. Me encanta trabajar con Linux y habitualmente escribo mis experiencias. Taducido al español por: Javier Gómez Sierras <jgomsi(at)obelix.umh.es> Contenidos: 
 | 
| Compila tu propio núcleo de Linux![[illustratie]](../../common/images/illustration209.gif)  Resumen: 
 Dentro de poco averiguarás que tú también puedes obtener, configurar, compilar, e instalar tu propio núcleo. | 
El artículo está estructurado como sigue. Primero habla de dónde puedes encontras el código fuente en Internet, y cómo instalar el código fuente, seguido de la configuración gráfica usando las capturas de pantalla. Una vez que el núcleo está configurado debe ser compilado, pero incluso un núcleo recien compilado no está todavía listo para usar. Primero, el nuevo núcleo debe ser instalado con el gestor de arranque 'lilo', y antes de usar 'lilo' tienes que crear el fichero '/etc/lilo.conf'. También puedes copiar el núcleo compilado a una partición desde la que puedas arrancar Linux con un programa para DOS/Windows llamado 'loadlin'. Además hay un montón de puntos específicos que deben ser tratados, como el soporte para PCMCIA ya que es necesario para portátiles. Las PCMCIA, unas pequeñas tarjetas para insertar parecidas a una tarjeta de crédito de gran grosor y que a menudo se encargan de la conexión a la red, están soportadas por el núcleo internamente desde los núcleos de la serie 2.4.x. Antiguos núcleos pueden soportar tarjetas PCMCIA a través de una compilación e instalación distinta. SuSE tiene otro problema, el soporte para sonido a través de los drivers ALSA. Estos drivers no son parte del núcleo y deben ser compilados e instalados por separado, porque los drivers originales habitualmente ya no funcionan. Para poner peor las cosas, cambiar de una serie del núcleo a otra, digamos de la 2.2 a la 2.4, puede venir acompañado de problemas con ciertas utilidades del núcleo, las llamadas 'modutils'. Estas contienen el código necesrio para cargar un módulo del núcleo: La figura 3 explica que es un módulo. Algunas veces el nuevo núcleo no sabe qué hacer con las viejas 'modutils', por lo que tienes que compilar e instalar una versión más reciente de modutils. Problemas como estos son raros pero ocurren, y es necesario mencionarlos con antelación.
Pero, si sigues fielmente el prodimiento de este artículo no hay casi nada que pueda fallar. Se añade el nuevo núcleo a 'lilo', o se copia a la partición de 'loadlin'. Por lo tanto, en caso de emergencia, todavía puedes reiniciar con el núcleo original. Entonces, trabajando con el núcleo original puedes intentar solventar el problema con el nuevo núcleo. Incluso aunque pudieses tener problemas con las nuevas 'modutils' del núcleo todavía sería posible reiniciar con el antiguo núcleo y entonces arreglar el problema compilando e instalándolas por separado: todas las nuevas versiones de 'modutils' son compablibles hacia atrás con las antiguas versiones del núcleo, por lo que las nuevas 'modutils' funcionan bien con antiguos núcleos.
El código fuente del núcleo qeu está en tú máquina ahora mismo se encuentra en el directorio '/usr/src/linux/'. Es una buena idea poner este código fuente en particular a salvo, por ejemplo renombrando el directorio linux así:
cd /usr/src mv linux linux-2.2.19 (si es el código fuente original del 2.2.19).
cd /usr/src
cp ~/linux-2.4.6.tar.bz2 ( asumiento que el tarball lo descargaste  )
                         ( a tu directorio personal ('~')           )
bzip2 -d linux-2.4.6.tar.bz2 (puede que tarde un rato               )
tar -xvf linux-2.4.6.tar
mv linux linux-2.4.6
ln -s /usr/src/linux-2.4.6 /usr/src/linux
    cd /usr/src/linux make xconfig (ver Figura 1)

| Figura 1: | La interfaz gráfica para definir tu núcleo de Linux después del comando 'make xconfig'. | 
Este es el menú principal usado para definir el núcleo. Para hacer esto debes pulsar en las diferenctes opciones. Pulsar en 'Save and Exit' guarda tus opciones al disco, y una vez que hayas terminado puedes finalmente compilar e instalar el núcleo (como en la Figura 40). Pero aún no hemos llegado.
Los ejemplos, por supuesto, pueden no comprender todo el hardware que puedas tener. Sin embargo, deberían clarificar cómo manejar tu hardware en concreto, y cómo buscar en el propio núcleo para averiguar si tu hardware está soportado.

    
| Figura 2: | Selección de 'code maturity level options'. | 
    Figura 3: Support for loadable modules.
    (de ahora en adelante las capturas de pantalla estarán enlazadas,
    puedes abrirlas en una ventana nueva para echarles un vistazo)
     Los módulos son trozos del código del núcleo, p. ej., drivers,
    que se compilan por separado pero idealmente al mismo tiempo que
    se compila el propio núcleo. Por lo tanto, este código no es parte
    del núcleo, pero se puede cargar y por lo tanto estar disponible
    cuando lo necesitas. La recomendación general es compilar el
    código del núcleo como módulo siempre que sea posible, porque esto
    da lugar a un núcleo pequeño y estable. Una advertencia: nunca
    compiles el sistema de ficheros como un núcleo, ver Figura 32. Si
    cometes este error y compilas el sistema de ficheros como un
    módulo, el núcleo que obtengas no podrá leer su propio sistema de
    ficheros. Entonces, el núcleo no podrá siquiera cargar sus propios
    ficheros de configuración, algo que es obviamente un prerequisito
    para arrancar correctamente linux. Puedes comprobar que
    escasamente uso los módulos: me gusta que mi núcleo pueda hablar
    directamente con todo el hardware sin tener que cargar módulos,
    pero esta es sólo mi preferencia.
    Figura 4: Seleccionando processor type and features.
    Aquí tienes que elegir el tipo de procesador que tienes, e indicar
    si hay que aplicar varias opciones. En general las opciones
    '/dev/cpu' son bastante avanzadas y no deberíar ser seleccionadas
    por la mayoría de usuarios. 'High Memory Support' es necesario
    sólo si tu ordenador tiene más de 1 gigabyte de RAM (no espacio de
    disco). La mayoría de ordenadores tienen de 64 a 512 megabytes de
    ram (y de 8 a 60 Gb de disco duro), por lo que 'High Memory
    Support' no se marca habitualmente. Tienes que activar la opción
    'Math Emulation' si usas linux en un equipo 386 o 486SX. Estos
    antiguos equipos carecen del coprocesador matemático que linux les
    supone, por lo que en este caso debes seleccionar 'Math
    Emulation'. Virtualmente todo los procesadores modernos tienen un
    coprocesador incluido, por lo que habitualmente puedes dejar esta
    opción sin marcar. La opción 'MRTT' permite una comunicación más
    rápida entre un bus PCI y uno AGP. Puesto que todos los equipos
    modernos tienen su tarjeta de video en un bus AGP o PCI deberías
    marcar 'MTRR': en cualquier caso, siempre es seguro habilitar esta
    opción incluso si tu equipo no usa el bus PCI o AGP para la
    tarjeta de vídeo. Symmetric multi-processing support (SMP)
    [soporte para multiproceso simétrico] se
    aplica únicamente a las placas base con dos procesarores Pentium
    II. SMP se asegura de que el núcleo carga ambos procesadores
    optimamente. La última opción (APIC) también se aplica
    habitualmente a los sistemas multiprocesador, y normalmente no se
    activa.
Figura 5:
    General Kernel Options [Opciones generales del núcleo].
    Aquí se le especifican ciertas opciones generales al núcleo.
    Todo el mundo siempre selecciona Ñetworking support' porque
    siempre se necesita, p.ej., para Internet. Linux está fuertemente
    orientado a Internet y no puede funcionar correctamente sin las
    redes. Además, el soporte para redes también se necesita para
    muchas otras acciones que no parecen tener mucho que ver con las
    redes. Es incluso posible que el núcleo no compile sin el soporte
    para redes. Resumiendo: incluye el soporte para redes. Todos los
    equipos modernos usan el bus PCI, por lo que selecionamos estas
    opciones también. El texto en gris 'PCMCIA/CardBus support'
    muestra que esta opción no está disponible, porque antes hemos
    indicado que no queremos usar código experimental (ver Figura
    2.). Si usas un portátil necesitas el soporte para PCMCIA/CardBus
    en el núcleo para permitir el uso de la red o un módem (ver
    también más abajo bajo el nombre 'pcmcia support
    (laptops)'). 'System V IPC' permite a los programas comunicarse y
    sincronizarse, 'BSD process accounting' guarda p.ej., el código de
    error cuando los procesos terminan, y 'Sysctl support' permite a
    los programas modificar ciertas opciones del núcleo sin tener que
    recompilar el núcleo o reniciar el sistema. Estas opciones se
    sueler dejar activadas. Las distribuciones modernas de linux tiene
    su 'kernel core (/proc/kcore/) format' seleccionado como ÉLF':
    este es el formato estándar de varias librerías de sistema, p.ej.,
    código que está disponible para el sistema y usado por
    programas. ÉLF' es el sucesor del obsoleto formato á.out', y
    similar a los ficheros .dll de windows. Todas los programas
    modernos de linux usan las librerías ELF, pero desafortunadamente
    algunos programas más antiguos también precisan de soporte para el
    formato á.out'. Un ejemplo es 'Word Perfect 8 para XWindows':
    esta aplicación nativa de XWindows/Linux sólo está disponible en
    el formato á.out', así que 'xwp' simplemente no funcionará sin el
    soporte para el formato á.out'. Incluye á.out' como módulo. En
    principio no lo uso, pero resulta útil tener el código disponible
    si eres un usuario habitual de java, python, o el emulador de DOS
    DOSEMU. He seleccionado 'Power Management support' y Ádvanced
    Power Management BIOS support' (no se muestran en la Figura
    5). Estas dos opciones son lo mínimo que se necesita en una
    placa base ATX moderna para permitir al núcleo apagar el ordenador
    automaticamente cuando se cierre linux. Las otras funciones de
    control de energía se desactivan porque no suelen funcionar bajo
    XWindows (que es lo que uso cuando estoy en linux). KDE y Gnome
    tienen sus propias funciones de gestión estándar de energía que
    puedes seleccionar.
    Figura 6: Configurando Memory Technology Devices.
    Necesitas esta opción para hacer que linux pueda leer por ejemplo
    tarjetas flash. Las tarjetas flash se usan habitualmente en
    cámaras digitales. Con esta opción linux puede leer tarjetas flash
    (desde el hardware necesario) y copiar las fotos como ficheros
    .jpg al disco. A menos que sepas que lo necesitas yo no marcaría
    esta opción: si descubres que la necesitas siempre la puedes
    añadir más tarde
Figura
    7: Configurando el parallel port [puerto paralelo].
    Antes de que exisitiese la tecnología USB el puerto paralelo se
    usaba comunmente para conectar impresoras y escáners al
    ordenador. Mi impresora se conecta al puerto paralelo, así que
    quiero que este puerto esté disponible en linux. Ten en cuenta que
    configurar el puerto paralelo no es lo mismo que configurar el
    sistema de impresión: esto se hace después, en la Figura 28.
    Figura 8: Configurando Plug & Play.
    Casi todo el mundo tiene un sistema 'Plug & Play' y por lo
    tanto y quiere soporte para ello. Activar esta opción permite al
    núcleo configurar los dispositivos 'Plug & Play' y que estén
    disponibles en el sistema. Algunas veces es necesario activar la
    opción 'Plug & Play OS' en la BIOS, porque de otra manera
    linux (y también Windows) no pueden configurar los dispositivos
    'Plug & Play'. La opción ÍSA Plug & Play support' se
    refiere a las tarjetas ISA que son 'Plug & Play' pero usan el
    bus ISA. Un ejemplo es la sound blaster AWE64. El bus ISA nunca
    tuvo un estándar 'Plug & Play', lo que hace difícil configurar
    estas tarjetas. Hace tiempo, antes del núcleo 2.4.x, los usuarios
    de linux tenían que llamar al programa ísapnp' (paquete
    isapnptools, rpm -qil isapnptools para ver los ficheros) durante
    el proceso de arranque.
    ísapnp' leia el fichero '/etc/isapnp.conf'. Este fichero contenía
    todos los puertos, direcciones e interrupciones usadas por las
    diferentes tarjetas. Si la información en '/etc/isapnp.conf' no
    era correcta, o si no se hacía la llamada a ísapnp', la tarjeta
    no estaba accesible para linux y el modem, tarjeta de red o
    tarjeta de sonido no funcionaba. Al seleccionar la opción ÍSA
    Plug & Play support' se reemplaza el antiguo procedimiento: el
    fichero '/etc/isapnp.conf' ya no se usa. En vez de esto, las
    configuraciones se detectan automaticamente. En la SuSE 7.1 tuve
    que renombrar el fichero '/etc/isapnp.conf' a p.ej.,
    '/etc/isapnp.conf.old' después de compilar el 2.4.x, porque tanto
    el núcleo como ísapnp' reclamaban los mismo recursos, con
    desastrosas consecuencias. El problema es que SuSE 7.1 (y
    versiones antiguas) activan automaticamente ísapnp' durante el
    arranque, incluso aunque el núcleo ya tenga el soporte
    necesario. Esto sin embargo es únicamente relevante para equipos
    Linux antiguos, los nuevos no usan isapnp por defecto.
Figura 9:
    Configurando block devices.
    Virtualmente todo el mundo querrá usar la disquetera, así que la
    opción de arriba está activada (o, en mi caso, seleccionada como
    un módulo). En las peticiones para acceder a la disquetera el
    núcleo carga automaticamente el módulo necesario, siempre y cuando
    el fichero '/etc/modules.conf' o '/etc/conf.modules' esté
    correctamente configurado en tu distribución como es
    habitual. Como usuario no deberías tener ningún problema si has
    seleccionado las opciones correctas en la Figura 3. Para acceder a
    la disquetera el núcleo debe ser, por supuesto, capaz de leer el
    sistema de archivos del disquete. Por lo tanto también debes
    copiar la Figura 32 correctamente. Las otras opciones pueden ser
    importantes si usas un sistema de almacenamiento IDE a través del
    puerto paralelo, pero normalmente están desactivadas. Una posible
    excepción es 'loopback device support'. Antes de grabar CDs en
    linux usualmente se hace una imágen del CD, y el 'loopback device'
    es necesario para mirar el contenido de la imagen. He seleccionado
    esta opción (quinta línea desde abajo) como un módulo (no aparece
    en la Figura 9).
Figura
    10: Configurando multiple devices.
    Los usuarios comunes de linux normalmente no necesitan soporte
    para raid o LVM. 'Raid' implica que el sistema utiliza dos o más
    discos para guardar la información en paralelo. Si un disco se
    rompe el otro sigue en marcha, y el sistema sigue en
    funcionamiento. LVM hace posible añadir un disco duro de forma que
    una partición existente parece que se agrande. En la práctica esto
    significa que no tienes que reparticionar o copiar una partición
    pequeña a una más grande. Las rutas a ficheros siguen siendo las
    mismas también. Esta posibilidad es muy útil, pero habitualmente
    la mayoría de usuarios comunes no la necesitarán.
Figura
    11: Configurando networking options.
    Necesitas la opción 'Packet Socket' para comunicarte con los
    elementos de red sin implementar un protocolo de red en el
    núcleo. Aquí puedo ser escueto: seleccionala siempre. La mayoría
    del resto de opciones no hay que activarlas, a menos que necesites
    su soporte especifico. Por ejemplo, he seleccionado Ñetwork
    packet filtering (replaces ipchains)' porque uso el cortafuegos
    estándar de SuSE. Un cortafuegos proteje tu ordenador de ataques
    del exterior, p.ej., a través de Internet, al menos cuando has
    configurado el cortafuegos correctamente. Protección de
    cortafuegos a nivel de núcleo es obviamente algo muy
    ventajoso. Otras opciones para configurar ñetwork packet
    filtering' se explican en la Figura 12. Necesitas Únix domain
    sockets' para establecer conexiones de red, pero también a otras
    aplicaciones: XWindows usa automaticamente sockets Unix, así que
    no puedes usar XWindows sin esta opción. Actívala siempre. 'TCP/IP
    networking' contiene los protocolos necesarios para Internet, y
    también para las redes internas. Normalmente vas a necesitar
    activar el soporte para TCP/IP. En caso de duda al seleccionar
    alguna opción en particular, prueba con los textos de ayuda. Si no
    consigues aclararte siempre es posible incluir el soporte, y
    entonces quitarlo más tarde durante las pruebas. Compilar ciertas
    opciones como módulos es también una buena posibilidad.
    Figura 12: Configurando IP netfilter
    (cortafuegos).
    Para el funcionamiento correcto de su cortafuegos SuSE Linux
    necesita compatibilidad hacia atrás para ipchains. De esta manera,
    para SuSE selecciono esta opción. Si usas un cortafuegos en otras
    distribuciones o instalaciones, consulta el manual.
Figura
    13: Configurando telephony support.
    Esto sólo lo necesitas si tienes una tarjeta telefónica en tu
    ordenador, p.ej., para hacer llamadas a través de Internet. La
    mayoría de usuarios comunes no necesitan esta opción.
    Figura 14: Configurando ATA, IDE, MFM, RLL support
    (protocolos de comunicación para discos duros).
    Casi todo el mundo necesita estos protocolos, con la única
    excepción de aquellos pocos sistemas que sólo tienen discos SCSI
    y ningún otro tipo de disco. Por lo tanto, la mayoría de usuarios
    deben elegir esta opción. Pulsando el la línea de debajo aparece
    un sub menú con otra serie de opciones. De estas hablamos más
    abajo. Debido a su importantcia no hay una sino tres capturas de
    pantalla. Selecciona con cuidado: tienen una importancia extrema.
    Figura 15: Configurando ATA, IDE, MFM, RLL support:
    captura 1.
    La opción superior es necesaria para todos aquellos que
    interactuen con su hardware a través del interfaz IDE/ATAPI. Esto
    incluye los discos duros, pero también unidades de cinta,
    discos ZIP, y lectores y grabadores de CD. Basicamente, todos los
    ordenadores modernos usan el interfaz IDE/ATAPI, y por lo tanto
    esta opción está activada. La opción ínclude IDE/ATA-2 DISK
    support' se necesita para soportar el disco duro del equipo. Por
    eso, esta opción también tienes que estar activada, excepto si
    tienes un equipo sólo con SCSI.
    Figura 16: Configurando ATA, IDE, MFM, RLL support:
    captura 2.
    La opción ínclude IDE/ATAPI CDROM support' se selecciona
    habitualmente si tienes un dispositivo CDROM ATAPI. Sin embargo,
    a las grabadoras de CD ATAPI se accede mediante la emulación
    SCSI. La emulación SCSI se puede usar para acceder tanto al lector
    de CD como a la grabadora. Sin embargo, puedes tener problemas si
    montas tus CDs a través de la emulación SCSI, como mensajes de
    error al montar el CD, o al iniciar el reproductor de CD para
    escuchar un CD de música. La mejor solución es activar ambas
    opciones ínclude IDE/ATAPI CDROM support' y 'SCSI emulation
    support' como se muestra en la Figura 16. El dispositivo que
    necesita emulación SCSI, habitualmente la grabadora, se puede
    definir en '/etc/lilo.conf' añadiendo la línea
    áppend="hdd=ide-scsi"': de esto hablamos más abajo bajo la
    cabecera 'Configuración de Lilo'. Como tengo una unidad ZIP
    interno que se comunica con la placa base a través del interfaz
    ATAPI, he seleccionado la opción ínclude IDE/ATAPI FLOPPY
    support'. Se necesita la misma opción para acceder a otros
    dispositivos similares a disqueteras, como una unidad LS120. La
    mayoría de las placas base utilizan 'PCI IDE' para acceder a los
    discos duros, CDROMs y disqueteras, y por lo tanto esta opción
    está activada habitualmente. De la misma manera las dos
    posibilidades de activar DMA. DMA le da a tu hardware acceso
    directo a la memoria interna del ordenador, sin la intervención
    del procesador. Como resultado de esto se puede acceder a los
    discos IDE más rápido. Activa esta opción. La opción 'sharing PCI
    IDE interrupts support' está desactivada porque lo más normal es
    que no la necesites. Cierto, algunas controladoras IDE permiten
    compartir interrupciones con otro dispositivo del ordenador, por
    ejemplo con una tarjeta de red exótica. Desafortunadamente,
    compartir interrupciones IDE disminuye el rendimiento de los
    discos compartidos, por lo que normalmente sólo quieres compartir
    interrupciones cuando es la única manera de solucionar ciertos
    problemas serios de hardware.
    Figura 17: Configurando ATA, IDE, MFM, RLL support:
    screenshot 3.
    Mi placa base tiene un chipset Pentium II e Intel, por lo que por
    supuesto quiero usar el soporte específico para este chipset
    particular. Cuando configures las opciones de tu propio núcleo
    verás otros chipsets que no se muestran en la Figura 17.
Figura 18:
    Configurando SCSI support.
    Si tienes una tarjeta SCSI debes seleccionar, por supuesto, las
    opciones que necesitas. La captura sólo muestra las opciones que
    necesitas para tu grabadora ATAPI si has seleccionado 'SCSI
    emulation support' (Figura 16).
Figura
    19: Configurando I2O device support.
    Debes seleccionar esta opción si tienes un interfaz I2O en tu
    ordenador. La mayoría de gente no lo tiene, y si este es tu caso
    simplemente desactiva la opción.
Figura
    20: Configurando network device support.
    Nunca he sido capaz de compilar un núcleo sin network
    device support (soporte para dispositivos de red). Por lo tanto
    deberías seleccionar esta opción. También deberías seleccionar el
    driver dummy (dummy = falso), como parte del núcleo o como
    módulo. Linux necesita un driver falso incluso aunque en realidad
    la red física no existea, como es el caso de muchos usuarios
    caseros. Incluso cuando hay una red linux usa frecuentemente el
    driver dummy. En este menú puedes seleccionar el tipo de red y la
    tarjeta de red, como se muestra en el ejemplo de la Figura 21. Ten
    en cuenta que hay que hacer otras cosas aparte si quieres acceder
    a internet a través de un módem: debes activar el soporte ppp
    eligiendo 'PPP support for async serial ports' (para puertos COM)
    o 'PPP support for sync tty ports' (para conexiones rápidas a
    través de p.ej, un adaptador SyncLink). Si olvidas hacer esto el
    núcleo te dirá que el módulo ppp no existe, aunque lo hayas
    creado, un mensaje de error que no ayuda a encontrar el problema
    real. Puedes elegir ambos métodos de compresión sin problemas: si
    el núcleo los necesita se usarán, si no los necesita, no.
    Figura 21: Configurando ethernet device.
    Mi tarjeta ethernet es una tarjeta 3COM /100 MBit que usa el
    chipset 3c509/3c529. Como no tengo ninguna conexión física con una
    red (tengo una tarjeta de red, pero estoy conectado a la red a
    través de un módem) compilo este driver como un módulo, por si
    acaso necesito la tarjeta en un futuro. Por supuesto debes
    seleccionar el tipo de red y tarjeta de tu equipo. Además, debes
    configurar la conexión de red con un programa de configuración de
    linux, como puede ser 'yast2' en SuSE.
Figura
    22: Configurando amateur radio support.
    Selecciona esta opción si quieres usar el soporte para
    radioaficionado, y activa el driver necesario. La mayoría de gente
    no usa esta opción.
Figura
    23: Configurando support for infrared (wireless)
    communication.
    Activa la opción de comunicación infrarroja si tienes un
    dispositivo inalámbrico, p.ej., un ratón inalámbrico o un teclado
    inalámbrico. La mayoría de ordenadores de escritorio no los tienen
    y no necesitan la opción.
Figura
    24: Configurando ISDN support.
    Aquí tienes que seleccionar el soporte para la tarjeta ISDN que
    tengas en tu equipo. Es importante conocer qué tarjeta tienes,
    incluido el chipset: necesitas esta información para seleccionar
    el driver correcto.
Figura
    25: Configurando old CDROM drivers.
    En los antiguos equipos 486 e incluso 386 el CDROM no se conectaba
    a través de la controladora del disco duro IDE (ATAPI), sino a
    través de una tarjeta de sonido o una tarjeta especial. Al usar estos
    antiguos CDs es necesario seleccionar el driver
    correspondiente. Esta opción ha sido reemplazada en los equipos
    modernos, y por lo tanto es supérflua.
Figura
    26: Configurando input core support.
    Esta opción se refiere a una de las novedades más importantes de
    la serie 2.4.x del núcleo: el soporte para USB. Input core support
    es la capa entre el núcleo y algunos dispositivos USB. La Figura
    38 muestra varios dispositivos USB que puedes seleccionar, y el
    texto de ayuda de alguno de estos indica los que necesitan ínput
    core support': ver Figura 38. Debes activar aquí ínput core support'
    si uno de tus dispositivos USB lo necesita. Todas las placas base
    modernas tienen una conexión USB, así que por norma deberías
    activarlo. Pero, para ser honesto, se que no necesitaré soporte
    USB en mi sistema por lo que lo he desactivado.
Figura
    27: Configurando character devices: captura 1.
    La opción de arriba ('virtual terminal') activa la posibilidad de
    abrir un xterm (usando XWindows) o usar el modo texto para
    entrar. Normalmente esta opción está siempre activada. La segunda
    opción ('support for console on virtual terminal') le dice al
    núcleo dónde debería enviar los mensajes, como avisos sobre la
    falta de un módulo o su funcionamiento incorrecto, problemas con
    el propio núcleo, y mensajes de inicio. Bajo XWindows nomalmente
    se habilita una ventana especial a parte para los mensajes del
    núcleo, pero en el modo texto van tipicamente al primer terminal
    virtual ('CTRL+ALT+F1'). Deja esta opción activada. También puedes
    elegir enviar estos mensajes al puerto serie, p.ej., a la
    impresora o a otro terminal (la cuarta opción). Para enviar los
    menajes a la impresora debes activar también el puerto mediante
    la tercera opción. De igual manera, debes activar este puesto si
    quieres usarlo para un 'serial mouse' (ratón serie). De nuevo,
    normalmente la tercera opción ('standard/generic (8250/16550 and
    compatible UARTs) serial support') está activada. En mi equipo he
    elegido compilar esto como un módulo. La razón es que durante el
    arranque SuSE se queja de la falta del módulo 'serial support', e
    incluir el soporte como módulo es una manera elegante de evitar el
    mensaje asegurándonos que el módulo existe. Configurar los
    'character devices' es extremadamente importante. Si no lo haces
    correctamente puedes acabar con un sistema que no funcione. Por lo
    tanto las figuras de la 28 a la 30 ahondan en una cuantas opciones
    más.
    
Figura
    28: Configurando  los 'character devices': caputura
    2.
    Si quieres usar un xterm en tu máquina o desde una remota, por
    ejemplo a través de 'telnet' o 'ssh', debes activar la opción
    únix98 PTY support'. Puede parecer que un escritorio que no tiene
    conexión no necesita esta opción, pero varios procesos en segundo
    plano también usan esta opción. Por lo tanto, es una buena idea
    activar esta opción en cualquier caso, aunque sólo sea para evitar
    los mensajes de error (al menos en SuSE) durante el inicio. Todo
    el mundo que conecte una impresora a través del puerto paralelo
    necesita por supuesto 'Parallel printer support'. De todas formas,
    no todo el mundo necesita el puerto paralelo: las modernas
    impresoras USB no lo necesitan.
    Los mensajes del núcleo también pueden ir a la impresora en el
    puerto paralelo activando la opción 'Support for console on line
    printer': habitualmente, no lo usarás. Necesitas la opción
    'support for user-space parallel port device drivers' si tienes
    ciertos dispositivos que cuelgan del puerto paralelo, pero no es
    muy habitual. De igual manera, habitualmente no necesitas Í2C
    support': es necesario para ciertas tarjetas que manejan video,
    pero si descubres que lo necesitas siempre puedes añadirlo al
    núcleo más tarde, una vez que sabes que el núcleo funciona
    correctamente. Selecciona soporte para ratón y joystick cuando los
    uses, pero no todos los ratones usan este driver (ver más abajo,
    en la Figura 29). Las grabadoras de CD de hoy en día han dejado
    obsoletas a las unidades de cinta que necesitan 'QIC-02 Tape
    support', por lo tanto esta opción está habitualmente desactivada.
Figura
    29: Configurando los 'character devices': Ratón.
    No necesitas nada de esta opción si tienes un ratón de puerto
    serie, pero para todos los demás tipos de ratones debes configurar
    ciertos parámetros aquí. Si usas un ratón bus ORIGINAL debes
    seleccionar la opción de arriba, y debajo de ella el
    correspondiente tipo o marke del ratón bus. Muchos ordenadores hoy
    en día tienen otros tipo de ratones, normalmente (y erroneamente)
    llamados 'ratón bus (busmouse)' o ' ratón PS/2'. Estos ratones se
    conectan frecuentemente a '/dev/aux' y se conectan al equipo a
    través de un pequeño conector similar al los que se usan para
    los teclados. A menudo este tipo de ratón usa el teclado para
    conectarse al ordenador. Para hacer que estos ratones funcionen
    correctamente debes seleccionar las opciones mostradas en la
    Figura 29, 'mouse support (not serial and bus mice)' y 'PS/2 mouse
    (aka "auxiliary device" support)'.
Figura
    30: Configurando los 'character devices': captura
    3.
    Las opciones para configurar el núcleo entre la de la Figura 28 y
    la Figura 30 no se discuten aquí. Normalmente están
    desactivadas. La opción 'Ftape, the floppy tape device driver' se
    refiere al soporte para las unidades de cinta conectadas a través
    de la controladora de disquetera. Incluso aunque tengas tal
    unidad de cinta no es esencial compilar su soporte, al menos
    no la primera vez. Las otras opciones se refieren a las tarjetas
    de video 3D modernas. Si tienes una tarjeta de video que se
    conecta a través de un bus AGP, puedes activar el soporte para
    AGP, y también el driver específico para tu tarjeta de video (bajo
    '/dev/agpgart (AGP support)'). Ten en cuenta que es posible tener
    un núcleo que funcione correctamente si estas opciones, ¡pero no
    necesariamente! La gente que tenga una tarjeta de video integrada
    en su placa base, como el chipset intel i815, ¡DEBEN usar el
    driver del núcleo! Si no, XWindows 4.0 o superiores (usadas en la
    mayoría de distribuciones más recientes) no funcionará. Mi equipo
    tiene una tarjeta AGP, una NVidia TNT2, pero esta tarjeta no está
    soportada por un módulo específico del núcleo (NVidia se niega a
    compartir las especificaciones hardware, necesarias para
    desarrollar estos drivers).
    Desafortunadamente, en mi caso no tiene por lo tanto mucho sentido
    activar el soporte para AGP. A pesar de este problema particular,
    puedo usar XWindows 4.0 sin el driver del núcleo. 'Direct
    rendering support' es para una opción XWindows desde la versión
    4.0 para acelerar el rendimiento de los gráficos a través del
    núcleo. Para hacer uso de esta opción tu tarjeta de video
    específica debe estar soportada, y debes usar XFree86 4.0 o
    superior. Además debes activar también ÁGP support'. De toda
    maneras, puedes no seleccionar estas opciones con toda
    tranquilidad y obtener un núcleo de linux que funcione correctamente.
Figura
    31: Configurando los 'multimedia devices.
    Esta opción está activada si tienes una tarjeta que maneja video o
    radio. Como antes, esta opción no es esencial para el
    funcionamiento correcto del núcleo.
Figura
    32: Configurando los 'file systems': captura 1.
    Aquí puedes especificar los sistemas de ficheros que pueden ser
    leidos por el núcleo de linux. Quizá quieras hacer un núcleo de
    linux que pueda leer discos y disquetes de Windows, pero debes
    asegurarte de que el núcleo pueda leer el propio sistema de
    ficheros de linux, ext2, o el nuevo sistema de ficheros
    ReiserFS. Linux no podrá ni arrancar si no lo haces, porque
    entonces el núcleo no puede leer su propio disco de arranque (como
    se comentó antes cerca de la Figura 3). Para leer disquetes y
    discos DOS/Windows necesitas activar la opción 'DOS FAT support':
    sin embargo, para leer discos de Windows NT/Windows 2000 necesitas
    un driver específico de solo lectura que se puede seleccionar
    posteriormente en este menú. Para leer y también escribir discos y
    disquetes DOS/Windows necesitas la opción 'MSDOS fs
    support'. Virtualmente todo el mundo necesita esto, así que la
    mayoría de gente activa estas opciones. 'VFAT' es para el soporte
    de nombres de ficheros largos en Windows 95 o 98. Mi equipo es lo
    que se llama un equipo de arranque dual, en el cual puedo arrancar
    tanto Windows 98 como linux (usando el gestor de arranque de linux
    lilo, ver 'Configuring lilo'). Por lo tanto he activado
    'VFAT'. Necesitas incluir soporte para ISO 9660 leer CDs en
    formato estándar. Bajo esta está la opción 'Joliet extensions',
    que permite nombres de ficheros más largos que los de MS-DOS 8.3
    que es el límite en el estándar ISO 9660. Casi todo el mundo
    quiere leer los CDs de hoy en día, así que estas opciones
    normalmente están activadas. La Figura 33 clarifica algunas
    opciones adicionales, entre las que está el sistema de ficheros
    ext2 de linux.
Figura
    33: Configurando los file systems: captura 2.
    Los ficheros en el directorio '/proc' contienen información sobre
    el estado del sistema, p.ej., qué interrupciones están siendo
    usadas. Normalmente siempre se activa esta opción. 'Second extended
    fs support' es la opción relacionada con el sistema de ficheros estándar
    (todavía) de linux. DEBES compilar está opción en el núcleo (¡NUNCA
    como un módulo!). Las Figuras 32 y 33 no muestran la opción
    'ReiserFS' que también puede ser seleccionada aquí: el sucesor
    bendecido de ext2, ReiserFS gestiona mucho mejor el daño producido en
    el sistema de ficheros debido a fallos en el suminitro eléctrico y
    problemas similares. En este momento ReiserFS está todavía bajo
    desarollo y por lo tanto marcado como código experimental. Aun así
    la mayoría de distribuciones recientes ya soportan el uso de
    ReiserFS, pero incluso aunque ReiserFS se supone que reemplazará a
    éxt2' en el futuro no lo recomendaría como un sistema de ficheros
    para todas las particiones ahora mismo. Necesitas el ÚDF file
    system support' si usas (bajo Windows) el programa 'packetCD', que
    permite copiar ficheros de un CD al vuelo así como desde un disco
    duro lento. Es muy útil para intercambiar datos con otros
    PCs. También es posible leer estos "packet CDs" bajo linux
    montandolos con el sistema de ficheros údf', p.ej., con un
    comando como 'mount -t udf /dev/scd0 /cdrom'. Esta parte también
    contiene elementos como Ñetwork file systems' (sistemas de
    ficheros de red), 'partition types' (tipos de particiones) y
    Ñative language support' (soporte para lenguaje nativo). No
    necesitas Ñetwork File Systems' a menos que tu ordenador sea
    parte de una red grande, en cuyo caso necesitas activar ÑFS File
    System Support' y quizá también 'SMB file support', pero para un
    ordenador aislado no necesitas estas opciones. La opción
    'Partition Types' es bastante avanzada pero no necesaria para un
    uso efectivo del núcleo de linux. Es mejor desactviarla. Las
    Figuras 35 y 35 explican con más detalle Ñative Language
    Support'.
    Figura 34: Configurando ñative language support': captura
    1.
    En este menú seleccionas qué tabla de códigos debe usar linux para
    manejar los nombres de ficheros de DOS y Windows. Las tablas de
    códigos de la figura 34 son los usuales para nombres de ficheros
    de DOS. Las tablas NLS de la figura 35 son necesarios para usar
    nombres de ficheros largos. La opción superior de la figura 34,
    'Default NLS option', determina qué símbolos serán los estándar en
    linux. La figura 35 representa y explica la opción íso8859-15'.
    Figure 35: Configurando ñative language support': captura
    2.
    Necesitas la opción ÑLS ISO 8859-15' para reproducir
    correctamente FAT de Windows y las extensiones Joliet de los
    sistemas de ficheros de los CDs, algo que es siempre una buena
    idea. La selección ÑLS ISO 8859-15' es apropiada para las lenguas
    occidentales, e incluye el símbolo del euro. Por lo tanto esta
    tabla de códigos se compila casi siempre con el núcleo. La tabla
    ÑLS ISO 8859-1' es la tabla anterior de las lenguas occidentales
    pero sin el soporte para el símbolo del euro.
Figura
    36: Configurando los console drivers (drivers de consola).
    La opción 'VGA text console' permite habilitar el modo texto con
    una resolución VGA. Casi todo el mundo necesita esta opción, así
    que esta opción casi siempre está activada. Sólo unos pocos de los
    antiguos ordenadores 386 carecen de una tarjeta VGA compatible,
    mientras que los ordenadores modernos no tienen ni el más ligero
    problema con esta elección. La segunda opción, 'video mode
    selection support', hace posible seleccionar la resolución del
    modo texto durante el proceso de arranque. Esto es realmente útil
    si quieres tener más letras por línea, pero normalmente se deja
    desactivada. Las dos opciones finales son experimentales, y te
    aconsejo que nos las selecciones.
Figura
    37: Sound configuration (configuración del sonido).
    En esta sección se configura la tarjeta de sonido. Si tu
    distribución usa los drivers de sonido ALSA (como SuSE 6.3 y
    superiores), sobra con seleccionar 'sound card support' como
    MÓDULO. Los drivers ALSA se compilar y linkan más tarde (ver más
    abajo bajo el epígrafe 'SuSE y los drivers de sonido ALSA'). Si tu
    distribución usa los drivers de sonido estándars del núcleo debes
    seleccionar ahora el adecuado para tu tarjeta de
    sonido. Virtualmente todas las marcas de tarjetas de sonido se
    nombran aquí, así que en principio la selección del driver
    adecuado no es problema. Si tu tarjeta de sonido funciona con el
    núcleo estándar de tu distribución puedes usar también programas
    de configuración (como el 'yast2' de SuSE) para averiguar qué
    driver necesita especificamente tu tarjeta de sonido. Es
    tranquilizador saber que el sonido no es crítico: te quedas sin
    sonido si algo va mal aquí, pero el núcleo en sí funciona perfectamente.
Figura 38:
    Configurando ÚSB support'.
    Mi placa base tiene un puerto USB, pero no lo uso. Sin embargo, si
    desactivo el soporte para USB SuSE me da un mensaje de error
    durante el arranque. Por supuesto SuSE soporta USB y por lo tanto
    intenta cargar los módulos necesarios, por eso he seleccionado
    'Support for USB' como un módulo. Aunque este mensaje de error no
    es importante para mí, lo soluciono de una manera elegante
    compilando el driver necesario para los puertos USB de mi
    placa. Para hacer esto la opción mínima es poner 'y' en 'Preliminary
    USB device filesystem' y cargar el driver específico de
    USB. Puesto que mi placa Pentium II es bastante antigua he
    seleccionado el driver ÚHCI (Intel PIIX4, VIA, ...)' como un
    módulo. Pero, si tienes una placa base reciente con el chipset
    Intel debes seleccionar el módulo ÚHCI Alternate Driver (JE)
    support', mientras que p. ej., en un ordenador Compaq deberías
    elegir ÓHCI support' como módulo. En principio sólo necesitas uno
    de estos tres módulos, pero en caso de duda puedes elegir los
    tres. Tu distribución de linux descubrirá cuál de los tres
    necesita, y cargará automaticamente el correcto.
Habilitar simplemente los puertos USB de tu placa base no es suficiente, necesitas especificar también los drivers (módulos) del periférico USB que está conectado a tu ordenador. La lista que aparece bajo ÚSB Device Class drivers' tiene varias opciones. Lo que sigue es bastante sencillo y poco puede fallar: de todas maneras, en caso de duda lee la ayuda.
Figura
    39: Configurando 'kernel hacking'.
    Esta es fácil: ¡NO la selecciones!. Es una opción útil para
    programadores que quieren encontrar la razón por la que el núcleo
    falló o para leer la caché del disco duro: la opción no sirve de
    nada para un usuario común.

    
| Figura 40: | Save and Exit (guardar y salir). | 
    
make dep make clean (para núcleos antiguos) make bzImage make modules make modules_installLa figura 40 ya indicó la necesidad del comando 'make dep'. Por supuesto ejecutamos estos comandos en el directorio del código fuente de linux, normalmente '/usr/src/linux'. Los núcleos de la serie 2.0.x o anteriores también necesitaban el comando 'make clean', que borraba ficheros antiguos antes de la compilación de un nuevo núcleo. El comando 'make clean' impedía extraños mensajes de error que eran difíciles de solucionar, pero que estaban causados presumiblemente por ficheros objeto (.o) antiguos que no eran sobreescritos. El comando 'make bzImage' compila el nuevo núcleo, pero todavía no lo instala. También puedes compilar el núcleo con otros comandos 'make', p.ej., 'make bzlilo' o 'make zImage', pero estos comandos pueden darte problemas inesperados. La mayoría de los núcleos son demasiado grandes como para permitir un 'make zImage' ejecutado correctamente: obtienes un mensaje de error durante la compilación, y acabas sin un núcleo. Con el comando 'make bzlilo' todo debe estar configurado correctamente el ficheros como '/etc/lilo.conf', pero este no es siempre el caso. Por lo tanto es más seguro evitar estos últimos comandos. El comando 'make modules' compila los módulos: se instalan con el comando 'make modules_install'. Este comando pone los módulos en el directorio '/lib/modules/2.4.6/' si la versión actual de núcleo es la 2.4.6: cambia cuando compilas otra versión del núcleo. De esta manera los módulos correspondientes a una versión en concreto del núcleo acaban automaticamente en un directorio específico, por lo tanto evitando conflictos con módulos obsoletos y problemas similares. Durante el arranque el núcleo de linux sabe en qué directorio puede encontrar los módulos correctos. Pero, los ficheros en '/lib/modules/2.4.6/' son sobreescritos y módulos antiguos permanecen si ya habías compilado el núcleo 2.4.6 antes y lo recompilas de nuevo. Entonces, puede que antiguos módulos sigan estando por ahí aunque ya no sean necesarios en el nuevo núcleo. Normalmente esto no es un problema, pero es siempre una buena idea tomarse el tiempo necesario para borrar los módulos antiguos antes de instalar los nuevos.
Para evitar problemas al instalar el núcleo también te debes asegurar de que la configuración de lilo '/etc/lilo.conf' es la correcta, y debes copiar el núcleo y el fichero 'System.map' en el lugar correcto. Después de todo esto también tienes que ejecutar el comando 'lilo'. Una alternativa es el uso de 'loadlin', que permite arrancar un núcleo de linux bajo Dos/Windows. Ambas opciones son comentadas más abajo.
boot = /dev/hda vga = normal read-only menu-scheme = Wg:kw:Wg:Wg lba32 prompt timeout = 300 message = /boot/message other = /dev/hda1 label = win98 image = /boot/bzImage label = linux-2.4.6 root = /dev/hda3 append = "parport=0x378,7 hdd=ide-scsi" image = /boot/vmlinuz.suse label = suse root = /dev/hda3 append = "hdd=ide-scsi" initrd = /boot/initrd.suse
El contenido detallado del fichero lilo.conf puede diferir del que se muestra arriba tanto entre equipos como distribuciones. Por lo tanto no voy a comentar paso a paso este fichero. Las 8 líneas superiores están correctamente configuradas y no es necesario que las modifiques, normalmente. El comando 'boot' en la primera línea indica el disco duro físico del que se arranca, esto es, 'boot' apunta a donde se encuentra el 'master boot record'. En mi caso arranco de /dev/hda, el primer disco duro físico. La opción 'vga' indica que el arranque usa el modo texto estándar VGA, con 80x25 caracteres. La opción 'read-only' significa que el proceso de arranque primero monta la partición de linux como sólo lectura. Durante el arranque de linux se requean las particiones en busca de errores: sólo después de esto se vuelven a montar con las opciones de lectura y escritura. La línea 'menu-scheme' establece los colores del menú de arranque de 'lilo' en modo texto. Con 'lda32' se posibilita el arrancar el sistema operativo después del cilindro 1024, siempre y cuando esto esté soportado por la BIOS. Todos los equipos modernos suportan 'lba32'. Los problemas con esta opción se pueden solucionar mediante una actualización de la BIOS, algo que es casi una necesidad con los grandes discos duros disponibles hoy en día. El comando 'prompt' fuerza a 'lilo' a mostrar un prompt que permite al usuario elegir el sistema operativo deseado. La opción 'timeout' establece el número de milisegundos que 'lilo' espera a que se teclee algo en el prompt antes de arrancar el sistema operativo por defecto. Si 'lilo.conf' no estable un sistema operativo por defecto, como en el ejemplo, el proceso de arranque inicia el primer sistema operativo que encuentra. En mi caso este es Windows98, así que la gente que no conoce linux todavía al final obtendrán un entorno Windows. La opción 'message' muestra un mensaje mientras se ejecuta 'lilo'. En SuSE es Tux, el estupendo pingüino mascota de linux, con (por supuesto) el texto 'SuSE Linux 7.1'. Puedes ver este mensaje escribiendo 'xv /boot/message' o 'gv /boot/message' (algunas veces incluso 'gimp /boot/message') : 'xv' y 'gv' (ghostview) son programas shareware con los que puedes ver varios tipos de formatos de imágenes. Ten siempre en cuenta que el fichero /boot/message no existe en los sistemas que no tienen una pantalla de login gráfica (p.ej. distribuciones antiguas), en este caso el 'boot message' es simplemente un mensaje de texto. En principio es posible mostrar tu propia imagen favorita durante el arranque, pero no he probado todavía esta posibilidad. Todas las opciones de 'lilo' están por supuesto documentadas en las páginas man, a las que puedes acceder a través de los comandos 'man lilo' y 'man lilo.conf'.
Las otras opciones gestionan el arranque de varios sistemas operativos. Como mucho puedes arrancar dieciseis sistemas operativos o núcleos distintos. Normalmente esto es suficiente. Seleccionas el sistema operativo con la línea 'label='. Lo normal con Windows98 (y también anteriores versiones de Windows y DOS, pero no Windows NT o Windows 2000) es tenerlo en la primera partición primaria. Por lo tanto estos sistemas operativos únicamente necesitan una línea óther' y una línea 'label'. La segunda sección, desde ímage=/boot/bzImage', inicia el nuevo núcleo con la etiqueta (label) 'linux-2.4.6'. Mi directorio raiz de linux es '/dev/hda3'. La línea áppend = "parport=0x378,7 hdd=ide-scsi"' le dice al núcleo la dirección y la interrupción para el puerto paralelo (port 0x378, interrupt 7), y especifica que mi grabadora 'hdd' debe ser manejada mediante emulación SCSI. El nombre de la grabadora depende del equipo: en el mio está en 'hdd', pero en el tuyo puede ser otro nombre. El uso de una interrupción es mayormente cuestión de gustos personales. Una interrupción acelera la impresión, pero puedes no incluir este comando si no tienes una interrupción disponible para el puerto paralelo (impresora). Por defecto en linux se usa el lento método de 'polling', que permite al núcleo usar el puerto paralelo sin una interrupción. La última sección, desde ímage = /boot/vmlinuz.suse', contiene la configuración de lilo que se realizó durante el proceso de configuración de SuSE: he añadido la línea append="hdd=ide-scsi" a mano. El fichero 'boot/vmlinuz.suse' es el núcleo estándar que viene con la distribución. Preferiblemente, deberías guardar este núcleo SIEMPRE para las emergencias. La línea ínitrd = /boot/initrd.suse' afecta únicamente a la instalación estándar del núcleo: especifica la carga de lo que se conoce como imagen 'ramdisk', un disco virtual que se carga en memoria (o memoria de acceso aleatorio - random access memory -, RAM). El 'ramdisk' contiene los módulos necesarios para el arranque correcto de linux: un núcleo de una distribución tiene, por supuesto, que ser capaz de acceder a una enorme variedad de hardware, algo que es sólo posible usando muchos módulos.
Espero que ahora esté claro dónde debes guardar el nuevo núcleo antes de ejecutar lilo. En este ejemplo, los comandos exactos son:
cp /usr/src/linux/arch/i386/boot/bzImage /boot cp /usr/src/linux/System.map /boot/System.map-2.4.6 liloEn SuSE 7.3 también puedes ejecutar el segundo comando así:
cp /usr/src/linux/System.map /boot( el System.map original ya ha sido renombrado )
rpm -bb /usr/src/packages/SPECS/alsa.spec cd /usr/src/packages/BUILD/alsa/alsa-driver-<version number>/ ./configure make installLa primera línea instala el código fuente, incluidos los drivers, en el directorio '/usr/src/packages/BUILD/'. Además las librerías de ALSA y las utilidades se compilan directamente como ficheros rpm. Desafortunadamente, los drivers no se compilan por defecto. Debes compilarlos e instalarlos por separado a mano usando los dos comandos de arriba. El comando './configure' encuentra las configuraciones y ficheros necesarios en tu sistema y los pone en un fichero de configuración. El comando 'make install' compila todos los drivers de ALSA y los instala a la vez para que puedan ser usados por el núcleo en el directorio '/lib/modules/2.4.6/misc/'. Ahora, al arrancar SuSE el driver de sonido deseado se instala automaticamente. Tengo que admitir que el procedimiento sugerido aquí es algo cutre, pero debes saber exactamente lo que estas haciendo para encontrar los drivers necesarios e incluir el soporte de sonido en un nuevo núcleo de manera más directa.
Si no usas SuSE, o si quieres usar una verción más reciente de los drivers de ALSA, puedes descargar estos drivers y las librerías y utilidades correspondientes de http://www.alsa-project.org. La página de inicio de este sitio muestra las últimas noticias sobre el proyecto ALSA (p.ej., la integración en febrero de 2002 de los drivers de ALSA con la rama de código fuente oficial de la serie 2.5 del núcleo) y enlaces a varios ficheros para su descarga. Abajo mostraré cómo compilar los drivers de ALSA: puedes seguir los mismos pasos para las librerías y las utilidades. Desempaqueta los drivers en un directorio conveniente, p.ej., '/usr/local/'. Entra en este directorio, en este caso '/usr/local/alsa-driver-<version-number>/' y ejecuta los comandos de arriba empezando por './configure'. Es posible que tengas que realizar algunos pasos adicionales para que los drivers funcionen si tu distribución no usa los drivers de ALSA como estándar. Desafortunadamente, estos problemas están fuera del alcance de este bastante extenso documento, pero puedes encontrar más ayuda en la FAQ (Frequently Asked Questions - Preguntas Frecuentes) de ALSA que también puedes descargar.
cp /etc/rc.d/pcmcia /etc/rc.d/pcmcia.SuSE cp ~/pcmcia-cs-3.1.?.tar.gz /usr/src cd /usr/src tar -zxf ./pcmcia-cs-3.1.?.tar.gz make config make all make install cp /etc/rc.d/pcmcia.SuSE /etc/rc.d/pcmciaLa primera y la última línea solucionan un problema específico de SuSE. El script de inicialización de pcmcia de SuSE es borrado con el comando 'make install', lo que hace que el script falle en SuSE. El problema se soluciona copiando el original de nuevo después del 'make install'. Si has sobreescrito por error el script original de SuSE debes reinstalar el paquete pcmcia de nuevo empezando con la parte á1', copiar el script original a otro fichero, executar 'make install' otra vez, y finalmente reemplazar el fichero con el script original.
Para obtener el nuevo fichero rpm para el soporte para pcmcia
    en SuSE debes hacer lo siguiente:
    
rpm -i /cdrom/suse/zq1/pcmcia-3.1.?.spm cd /usr/src/packages rpm -bb ./SPECS/pcmcia-3.1.?.spec cd /RPMS/i386/ rpm -i --force ./pcmcia-3.1.?.rpm SuSEconfigEn la primera línea asumo que instalarás los drivers pcmcia desde el sexto o séptimo CD y que el lector de CD ya está montado en /cdrom. El comando 'rpm -i' instala el código fuente y el comando 'rpm -bb' compila el fichero rpm pcmcia. Después instala este fichero en particular como haces con todos los ficheros rpm. Fíjate que tienes que usar la opción '--force' porque de otra manera el programa rpm te dirá (correctamente) que 'pcmcia' ya está instalado, y por lo tanto ignorará el nuevo fichero. Como siempre, tienes que ejecutar el programa SuSEconfig (ten en cuenta las MAYÚSCULAS y las minúsculas) cuando has instalado ficheros rpm a mano en SuSE, para activar los cambios de la configuración. Lo último lo realizan automaticamente los programas de configuración de SuSE YaST o YaST2 después de haber instalado o modificado nuevos paquetes. Entonces, ya no es necesario hacer la activación a mano.
Para poder usar el soporte pcmcia correctamente debes activar ñetwork support' durante la compilación, pero debes desactivar todos los otros drivers para tarjetas de red. Y, como ya ha sido comentado con la figura 11, debes, por supuesto, activar también 'TCP/IP support' si quieres usar Internet.
insmod (que instala un módulo), rmmod (que borra un módulo, y) lsmod (mostar todos los módulos en uso),entre muchos otros. Con comandos como 'man lsmod' puedes averiguar cómo funcionan los distintos comandos, algo que no voy a tratar aquí.
Compilar e instalar 'modutils' es algo sencillo. Simplemente haz:
cd /usr/src
cp ~/modutils-2.4.6.tar.bz2 . ( asumiendo que el fichero está en tu )
                              ( directorio personal, '~'            )
bzip2 -d modutils-2.4.6.tar.bz2 ( unzip: puede tardar un poco       )
tar -xvf modutils-2.4.6.tar
cd modutils-2.4.6 ( ir al directorio en el que 'modutils' ha        )
                  ( sido desempaquetado                             )
./configure (encontrar la configuración específica del sistema      )
make ( compilar 'modutils': puesto que es pequeño la compilación    )
     ( puede ser sorprendentemente rápida                           )
make install (instalar 'modutils' en el directorio '/sbin/'         )
    Esto es todo lo que tienes que hacer para tener 'modutils'
    listo. Fíjate de nuevo que en este ejemplo 'modutils' tiene el
    mismo número de versión que el número del núcleo, pero esto no
    siempre es el caso.
    
     
Otra forma de inspeccionar los mensajes de arranque del núcleo es con el comando 'dmesg'. Simplemente ejecutando este comando se muestran los mensajes que aparecieron (y desaparecieron) por pantalla anteriormente. Enviarlos a un fichero, con 'dmesg > temp', te permite leer los mensajes de error a tu ritmo (con 'more temp', o tu editor favorito).
Si todavía tuvieses problemas y no supieses como solucionarlos, podrías usar varias de las listas y sitios web sobre linux donde puedes realizar preguntas. Estos existen en diferentes idiomas, no solo en inglés. Después de un tiempo razonablemente corto normalmente obtienes una respuesta que te permite solucionar tu problema. La mejor manera de encontrar estas listas y sitios web es con un buscador.
| 
 | 
| Contactar con el equipo de LinuFocus © Philip de Groot, FDL LinuxFocus.org | Información sobre la traducción: 
 | 
2003-03-17, generated by lfparser version 2.34