Guía de configuración del núcleo en Gentoo

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


Este documento tiene la finalidad de presentar conceptos sobre la configuración manual del núcleo y detallar algunos de los problemas de configuración más comunes.

Introducción

Gentoo ofrece dos formas para que los usuarios puedan gestionar la instalación, configuración y actualización del núcleo: la automática (con genkernel) y la manual. Aunque el método se puede verse como más fácil para la mayoría de los usuarios, hay un gran número de razones por las cuales una gran proporción de usuarios Gentoo escogen configurar sus núcleos manualmente:

  1. Mayor flexibilidad
  2. Menores tamaños (del núcleo)
  3. Menores tiempos de compilación
  4. La experiencia del aprendizaje
  5. Aburrimiento severo
  6. Conocimiento absoluto de la configuración del núcleo, o
  7. Completo control

Esta guía no cubre el método automático (genkernel). Si genkernel es el método preferido para gestionar las cuestiones relacionadas con el núcleo, eche un vistazo al artículo sobre Genkernel para más detalles.

Esta guía no persigue documentar el proceso de configuración manual desde el principio hasta el final. El proceso de configuración depende en mayor medida del sentido común y un grado de conocimiento técnico relativamente alto acerca del sistema que se está utilizando. En lugar de esto, se presentan los conceptos de la configuración manual y detallan los problemas más comunes a los que se enfrentan los usuarios.

Nota
Esta guía documento está escrito tomando en cuenta las versiones más recientes del núcleo, para las arquitecturas de computadora más comunes. Algunos detalles pueden ser distintos para núcleos más antiguos o para arquitecturas más exóticas, sin embargo, la mayor parte del contenido seguirá siendo relevante.

En este punto asumiremos que se dispone de las fuentes del núcleo Linux desempaquetadas en el disco duro (usualmente en algún lugar bajo /usr/src) y se supone que se debe saber como entrar en la configuración menuconfig y cómo navegar a través de su sistema de menús basado en ncurses. Si el usuario no tiene estos conocimiento, hay otros documentos disponibles que le pueden ayudar. Se deben leer los siguientes artículos antes de volver a esta guía:

Conceptos de configuración

Lo básico

El proceso general es realmente simple: se presentan una serie de opciones categorizadas en menús individuales y submenús y se selecciona el soporte hardware deseado y las características relevantes del núcleo aplicadas al sistema.

El núcleo incluye una configuración por defecto que se presenta la primera vez que se lanza menuconfig en un conjunto particular de fuentes. Los valores por defecto normalmente son amplios y adecuados, lo que significa que la mayoría de los usuarios tendrán que realizar pocos cambios a la configuración base. Si se decide deshabilitar una opción que estaba habilitada por defecto, se debe asegurar que se tiene una buena comprensión relativamente bien lo que hace la opción y las consecuencias que pueden acarrear su deshabilitación.

La primera vez que se se configura el núcleo Linux, se debe ser conservador, no muy aventurero, y en la medida de los posible, realizar las menor cantidad de modificaciones a los ajustes por defecto. Recuerde también que hay ciertas partes en el ajuste de un sistema que deben ser personalizadas para que el sistema arranque.

Incluidas frente a modulares

La mayoría de las opciones de configuración tienen tres estados: se puede evitar su construcción (N), se pueden construir para formar parte integral del núcleo (Y) o construidas como un módulo (M). Los módulos se almacenan externamente en el sistema de ficheros, mientras que las opciones incluidas forman parte de la propia imagen del núcleo.

Hay una diferencia importante entre opciones incluidas y modulares: con pocas excepciones, el núcleo no hace ningún intento de cargar módulos externos cuando el sistema los necesita, esto se deja por cuenta del usuario para que decida cuándo a cuándo no se se prefiere utilizar debe cargar un módulo. Mientras que otras partes del sistema puedan cargar módulos bajo demanda, se recomienda que construya las opciones de soporte de hardware y características del núcleo incluidas. El núcleo puede entonces asegurar que la funcionalidad y soporte de hardware estén disponibles cuando hagan falta. Esto se hace definiendo todas las características del sistema a (Y). Para que esta configuración sea coherente también es necesario incluir soporte para el firmware en el núcleo. Para más detalles, consultar el artículo sobre firmware en Linux.

Para otras partes de la configuración, la construcción integral es un requisito absoluto. Por ejemplo, si la partición raíz es un sistema de ficheros btrfs, el sistema no puede arrancar si se construye btrfs como un módulo. El sistema debería buscar en la partición raíz para cargar el módulo btrfs (ya que los módulos se almacenan en la partición raíz), sin embargo no puede buscar en la partición raíz ¡A menos que se haya cargado el soporte para btrfs!. Si no se ha construido btrfs integrado en el núcleo, entonces el proceso de inicio no podrá encontrar el dispositivo raíz.

Lea el artículo sobre los módulos del núcleo para más información e instrucciones acerca de cómo usar menuconfig para configurar el núcleo.

Soporte del hardware

Aparte de detectar el tipo de arquitectura del sistema, la herramienta de configuración no hace ningún intento para identificar qué hardware está presente en el sistema. Aunque hay una configuración por defecto con algo de soporte para el hardware, los usuarios seguramente tendrán que encontrar y seleccionar las opciones de configuración relevantes para la configuración de hardware de cada sistema.

Para seleccionar las opciones de configuración apropiadas se requiere conocer los componentes internos del equipo y de los conectados al mismo. En la mayoría de los casos, estos componentes se pueden identificar sin tener que abrir la caja del equipo. Para identificar la mayoría de componentes, el usuario necesita conocer el chipset utilizado por cada dispositivo en lugar del nombre que le ha dado el fabricante a su producto. Muchas tarjetas de expansión se venden con cierto nombre de marca sin embargo utilizan un chipset de otro fabricante.

Existen algunas herramientas disponibles para ayudar a los usuarios a determinar qué opciones de configuración del núcleo utilizar. La orden lspci (parte del paquete sys-apps/pciutils) identificará su hardware PCI y AGP, incluyendo componentes construidos en la propia placa base. La orden lsusb (del paquete sys-apps/usbutils) identificará varios de los dispositivos conectados a los puertos USB del sistema.

La situación es algo confusa por la variación de grados de estandarización en el mundo del hardware. A menos que el usuario seleccione una desviación extrema de la configuración por defecto, los discos IDE deberían "sencillamente funcionar" al igual que el teclado y ratón PS/2 o USB. También se ofrece soporte básico para una pantalla VGA. Sin embargo, algunos dispositivos, tales como adaptadores Ethernet prácticamente no tienen estandarización. Para estos adaptadores los usuarios tendrán que identificar el chipset Ethernet y seleccionar el soporte apropiado de hardware para la tarjeta específica para poder obtener acceso a la red.

Además, debido a que algunas cosas apenas funcionan con la configuración por defecto, tal vez se necesite seleccionar opciones más especializadas para obtener el potencial pleno del sistema. Por ejemplo, si no se ha habilitado el soporte para el chipset IDE apropiado, los discos IDE funcionarán muy lentamente.

Es recomendable configurar los controladores que necesitan firmware como módulos para cargar de forma más fácil el firmware desde el disco. Algunos de los grupos comunes que se deben incluir aquí son los controladores de GPU y de red (cuando no estén utilizando un NFS o un rootfs similar basado en red).

Características del núcleo

Además del soporte de hardware, los usuarios deben considerar la características del software que se necesitarán en el núcleo. Un ejemplo importante de este tipo de característica es el soporte para sistemas de ficheros: los usuarios deberán seleccionar soporte para los sistemas de ficheros que utilizan en sus discos duros así como cualquier otro sistema de ficheros que vayan a utilizar en dispositivos de almacenamiento externo (por ejemplo VFAT en discos USB).

Otro ejemplo de característica común del software es la funcionalidad avanzada de redes. Para hacer algún tipo de enrutamiento o trabajar con un cortafuegos, se deben incluir las opciones relevantes en la configuración del núcleo.

¿Preparado?

Ahora que se han presentado los conceptos, debería ser sencillo comenzar a identificar el hardware del sistema echando un vistazo a la interfaz de menuconfig y seleccionar las opciones requeridas para el núcleo del sistema.

El resto de esta guía debería clarificar algunas áreas comunes de confusión y proporcionar consejos para evitar problemas comunes que los usuarios encuentran a menudo. ¡Nuestros mejores deseos!

Problemas comunes y áreas de confusión

Los discos SATA son SCSI

La mayoría de sistemas de escritorio modernos incorporan dispositivos de almacenamiento (discos duros y discos CD/DVD) en un bus Serial ATA, en lugar del más antiguo tipo de bus IDE (cable plano).

El soporte SATA en Linux está implementado en una capa llamada libata, la cual se asienta debajo del subsistema SCSI. Debido a esto, los controladores SATA se encuentran en la sección de configuración de controladores SCSI. Además, los dispositivos de almacenamiento del sistema se tratan como dispositivos SCSI, lo cual significa que también se requerirá soporte para discos y cdroms SCSI. El primer disco duro SATA se denominará /dev/sda y el primer disco CD/DVD SATA se denominará /dev/sr0.

Aunque la mayoría de estos controladores son para dispositivos SATA, libata no diseñó para ser específica de SATA. Todos los controladores IDE comunes también se migrarán a libata en un futuro cercano y en ese momento, las consideraciones mencionadas anteriormente se podrán aplicar también a los usuarios de dispositivos IDE.

KERNEL Opciones de configuración para libata
Device Drivers  --->
   SCSI device support  --->
      <*> SCSI device support
      <*> SCSI disk support
      <*> SCSI CDROM support
 
      [ ] SCSI low-level drivers  --->
 
   <*> Serial ATA and Parallel ATA drivers (libata)  --->
Nota
Los chipsets no estándar se listan dentro de SCSI low-level drivers<//code> en la caja del núcleo Serial ATA and Parallel ATA drivers (libata) de arriba.

Controladores de anfitrión USB

USB es un bus ampliamente adoptado para conectar periféricos externos a una computadora. Una de las razones del éxito de USB es que es un protocolo estandarizado. Sin embargo, los dispositivos controladores de anfitrión (HCDs) implementados en la computadora anfitriona varían un poco. Hay cuatro tipos principales:

The information in this article is probably outdated. You can help the Gentoo community by verifying and updating this article.
  1. UHCI es el Interfaz Universal Controlador de Anfitriones (Universal Host Controller Interface). Ofrece soporte para USB 1.1 y normalmente se encuentra en placas base con un chipset VIA o Intel.
  2. OHCI es el Interfaz Abierto Controlador de Anfitriones (Open Host Controller Interface). Ofrece soporte para USB 1.1 y normalmente se encuentra en placas base con un chipset NVIDIA o SiS.
  3. EHCI es el Interfaz Controlador de Anfitriones Extendido (Extended Host Controller Interface). Es el único controlador de anfitriones común que soporta USB 2.0 y se puede encontrar normalmente en cualquier computador que soporte USB 2.0.
  4. XHCI es el Interfaz eXtensible Controlador de Anfitriones (eXtensible Host Controller Interface). Se trata del controlador para USB 3.0 y es compatible con USB 1.0, 1.1, 2.0, 3.0 y tasas de transferencia futuras. Habilite esta característica cuando la placa base ofrezca soporte para USB 3.0.

La mayoría de los sistemas incorporan dos de los tipos de interfaz arriba indicados: XHCI (USB 3.0) y EHCI (USB 2.0). Para utilizar dispositivos USB no es necesario seleccionar ambas opciones ya que XHCI es compatible con controladores USB más lentos. Los usuarios también pueden habilitar EHCI para tener una configuración segura "extra", ya que no tiene ningún impacto si no se dispone de los controladores USB 2.0.

Si no se seleccionan las opciones relevantes que correspondan a los tipos HCD USB que se disponen en el sistema, se puede experimentar el caso de puertos 'muertos'. Este caso se puede detectar si se enchufa un dispositivo USB que funciona sin embargo se observa que no está recibiendo energía o no responde de ninguna forma.

Un excelente truco es utilizar lspci (del paquete sys-apps/pciutils) que hace que sea relativamente sencillo detectar los HCDs que están disponibles en el sistema. Sin tener en cuenta el controlador SATA que también aparece, es sencillo determinar que este sistema requiere soporte EHCI y XHCI:

root #lspci -v | grep HCI
00:14.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB xHCI (rev 04) (prog-if 30 [XHCI])
00:1a.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #2 (rev 04) (prog-if 20 [EHCI])
00:1d.0 USB controller: Intel Corporation 8 Series/C220 Series Chipset Family USB EHCI #1 (rev 04) (prog-if 20 [EHCI])
00:1f.2 SATA controller: Intel Corporation 8 Series/C220 Series Chipset Family 6-port SATA Controller 1 [AHCI mode] (rev 04) (prog-if 01 [AHCI 1.0])

Seleccione los HCDs presentes en el sistema. En general, se pueden seleccionar las tres opciones para un soporte máximo o en caso de que no se esté seguro de cuál es la opción correcta:

Device Drivers  --->
   USB support  --->
      <*> Support for Host-side USB
      ---   USB Host Controller Drivers
      <*>   xHCI HCD (USB 3.0) support
      <*>   EHCI HCD (USB 2.0) support
      < >   OHCI HCD  (USB 1.1) support
      < >   UHCI HCD (most Intel and VIA) support

En la versión 3.12.13 de núcleo y posteriores, se tiene que habilitar OHCI support for PCI-bus USB controllers (USB_OHCI_HCD_PCI) si el controlador es un OHCI y se utiliza un ratón o teclado USB.

Sistemas multiprocesador, hyper-threading y de múltiples núcleos de procesamiento

Muchos sistemas de computación están basados en múltiples procesadores pero no siempre de una forma inmediatamente obvia.

  • Muchas CPUs de Intel soportan una tecnología que ellos llaman hyper-threading. Esta tecnología habilita el hecho de que el sistema vea una sola CPU como si fuesen dos procesadores lógicos.
  • La mayoría de las CPUs Intel/AMD contienen varios procesadores físicos dentro del mismo chip. Se conocen como procesadores multinúcleo.
  • Algunos sistema de alto rendimiento tienen de hecho múltiples procesadores físicos instalados en placas base especializadas para proporcionar un aumento significativo del rendimiento sobre un sistema uniprocesador. Los usuarios del sistema probablemente sabrán si tienen uno de estos sistemas, ya que no son nada baratos.

En todos estos casos se deben seleccionar las opciones apropiadas del núcleo para obtener el rendimiento óptimo con estas configuraciones:

KERNEL Configuración para soporte de multiprocesamiento
Processor type and features  --->
 [*] Symmetric multi-processing support
 [*]   SMT (Hyperthreading) aware nice priority and policy support
 [*]   Multi-core scheduler support (NEW)

La siguiente opción únicamente habilita las características de gestión de la energía, sin embargo, puede ser también un requisito para que todas las CPUs estén disponibles en el sistema:

KERNEL Gestión de la energía en sistemas multiprocesador
Power management and ACPI options  --->
 [*] ACPI (Advanced Configuration and Power Interface) Support

Soporte para memoria alta en x86

Debido a limitaciones en el espacio de direcciones de 32 bits de la arquitectura x86, un núcleo con la configuración por defecto solo puede soportar hasta 896MB RAM. Si el sistema tiene más memoria, solo serán visibles los primeros 896MB, a menos que se haya habilitado el soporte para memoria alta.

Nota
Esta limitación es específica a la arquitectura x86 (IA32). Las demás arquitecturas soportan naturalmente grandes cantidades de memoria, sin requerir afinamientos en la configuración.

El soporte para la memoria alta no está activado por defecto porque introduce un pequeño costo en términos de rendimiento. No se distraiga por esto, ¡Esta carga es insignificante en comparación con el aumento del rendimiento por disponer de la memoria adicional!

Elija la opción de 4GB a menos que su sistema tenga instalados más de 4GB de RAM

KERNEL Habilitar el soporte de memoria alta en x86
Processor type and features  --->
 High Memory Support  --->
  (X) 4GB
  ( ) 64GB

Módulos del núcleo comprimidos

A partir de la versión 3.18.x (y posteriores) es posible realizar la compresión de módulos del núcleo. Están disponibles Los formatos de compresión gzip y xz compression. Es importante hacer emerge de sys-apps/kmod con los ajustes USE apropiados antes de construir un núcleo con módulos comprimidos:

ARCHIVO /etc/portage/package.use/kmodHabilitar el soporte para compresión para kmod
sys-apps/kmod lzma zlib

Haga emerge de nuevo de sys-apps/kmod:

root #emerge --ask --oneshot --changed-use sys-apps/kmod

Habilite al compresión de módulos y seleccione un método de compresión preferido:

KERNEL Habilite la compresión de módulos
Enable loadable module support --->
  [*]   Compress modules on installation
  Compression algorithm ()  --->
    <X> GZIP
        XZ
KERNEL Enable module compression
[*] Enable loadable module support --->
  Module compression mode () --->
    ( ) None
    (X) GZIP
    ( ) XZ
    ( ) ZSTD

Normalmente make modules_install lanza depmod. Si sys-apps/kmod no tiene definidos los ajustes USE apropiados (lea el paso concerniente a package.use de arriba) , la primera línea se lanzó, entonces las lista de dependencias estará vacía. El sistema por tanto, no podrá cargar ningún módulo que que se construyera como módulo comprimido.

Una vez se haya recompilado kmod, lance de nuevo depmod como solución a este problema:

root #depmod -a
root #modprobe <module_name>

Notación corta para la configuración del núcleo

Introducción

Cuando se lee sobre la configuración del núcleo, a menudo los ajustes se describen como CONFIG_<algo>. Esta notación corta es lo que realmente utiliza internamente el núcleo, y es lo que se encuentra en el fichero de configuración del núcleo (bien esté en /usr/src/linux/.config o en el fichero autogenerado /proc/config.gz). Desde luego, el hecho de utilizar la notación corta no sería muy útil si no se puede traducir a la localización real en la configuración del núcleo. La herramienta make menuconfig permite hacer precisamente esto.

Traducir CONFIG_FOO a la localización real de la configuración

Supongamos que se necesita habilitar la característica CONFIG_TMPFS_XATTR. Lance el menú de configuración del núcleo (make menuconfig) y pulse la tecla /. Esto abrirá una caja de búsqueda. Teclee CONFIG_TMPFS_XATTR.

Lo siguiente es una salida del resultado de esta búsqueda:

KERNEL Resultado de buscar "CONFIG_TMPFS_XATTR" en menuconfig
Symbol: TMPFS_XATTR [=n]
Type  : boolean
Prompt: Tmpfs extended attributes
  Defined at fs/Kconfig:138
  Depends on: TMPFS [=y]
  Location:
    -> File systems
      -> Pseudo filesystems
(1)     -> Virtual memory file system support (former shm fs) (TMPFS [=y])
  Selected by: TMPFS_POSIX_ACL [=n] && TMPFS [=y]

Esta salida ofrece un montón de información interesante.

Entry Description
Symbol: TMPFS_XATTR [=n] This identifies the kernel configuration entry being searched for. It also shows that this setting is currently not enabled ([=n]).
Type: boolean The setting searched for is a boolean (which means it can be one of two options: enabled or disabled). Some settings are numbers or strings.
Prompt: Tmpfs extended attributes This is the text found in the make menuconfig entry that controls the variable (TMPFS_XATTR) in the .config file. It is essentially the variable name in a more human readable format.
Depends on: TMPFS [=y] Before this entry can be seen CONFIG_TMPFS must be enabled. In this case it is already done (hence the [=y]) but if this is not the case, first look for (and enable) CONFIG_TMPFS.
Location: ... This is the location in the make menuconfig structure where the setting can be found. Remember, the setting to look for is Tmpfs extended attributes.
Selected by: TMPFS_POSIX_ACL [=n] && TMPFS [=y] If the settings described here are both enabled (in this case the first one is not), then CONFIG_TMPFS_XATTR will be automatically enabled and will not be possible to be disabled until one of these settings is de-selected.

Con esta información, se debería poder traducir de forma fácil cualquier requerimiento CONFIG_* que se encuentre. Resumiendo, esto significa que un usuario debe:

  1. Habilitar los ajustes en el campo Depends on
  2. Navegar a dónde indique Location:
  3. Activar el valor indicado por Prompt:
Consejo
Observar el número entre paréntesis, los usuarios pueden saltar a esa opción o tan cerca como sea posible para los menús habilitados pulsando el número mientras se está realizando la búsqueda. En el ejemplo de arriba, al pulsar la tecla 1 del teclado, se saltará a esa opción o cerca de ella.

Otra documentación sobre la configuración del núcleo

Hasta ahora se han mostrado conceptos generales y problemas específicos relacionados con la configuración del núcleo, se dejan los detalles precisos para que sea el propio usuario el que los descrubra. Sin embargo, otras partes de la documentación Gentoo proporcionan detalles especializados para la materia que nos ocupa.

Estos documentos pueden ser de ayuda a la hora de configurar áreas específicas del núcleo. Aunque esta advertencia ya se ha mencionado en esta guía, se debe recordar que los usuarios que son noveles en la configuración del núcleo no deben arriesgarse cuando intenten configurar sus núcleos. Deben comenzar obteniendo un sistema básico funcionando. El soporte para el audio, la impresión, etc. siempre se puede añadir más tarde.

Tener un núcleo básico operativo ayudará a los usuarios en los pasos para realizar una configuración futura debido a que el usuario detectará qué está rompiendo el sistema y qué no. Es siempre recomendable guardar una configuración básica del núcleo (que funcione correctamente) en una carpeta distinta a la carpeta que contiene los fuentes del núcleo antes de intentar añadir nuevas características o hardware.

  • En el artículo sobre ALSA se detallan las opciones de configuración necesarias para dar soporte a una tarjeta de sonido. Observe que ALSA es una excepción al esquema de no construir las cosas como módulos: ALSA es de hecho más sencillo de configurar cuando los componentes son modulares.
  • La guía del enrutador IPv6 describe cómo configurar el núcleo para enrutar usando el esquema de direccionamiento de redes de próxima generación.
  • Si se van a usar los controladores gráficos de código cerrado de NVIDIA para obtener mejor rendimiento gráfico 3D, la Guía NVIDIA muestra las opciones que deben y no deben seleccionarse en el sistema.
  • Entre otras cosas, la guía de gestión de energía explica cómo configurar el núcleo para ajustar la frecuencia de la CPU y para activar la funcionalidad de suspensión e hibernación.

Si se está corriendo un sistema PowerPC, las Preguntas Frecuentes de PPC tiene algunas secciones sobre la configuración del núcleo para PPC.

  • La guía de impresión lista las opciones del núcleo necesarias para ofrecer soporte a la impresión en Linux.
  • La guía USB detalla los ajustes de configuración necesaria para utilizar dispositivos USB comunes como teclados, ratones, dispositivos de almacenamiento e impresoras USB.

Solución de problemas

Cambios de configuración que no tienen efecto

Es muy común que los usuarios hagan algún cambio de configuración, pero que comenten un pequeño error en el proceso de iniciar el nuevo núcleo que están configurando. Arrancan con una imagen del núcleo que no es la que se acaba de configurar, observan que el problema que intentaban solucionar todavía está ahí y concluyen que el cambio de configuración no era la solución del problema.

El proceso de compilar e instalar núcleos está fuera del alcance de este documento. Se puede consultar la guía de actualización para obtener unas directrices generales. Resumiendo: el proceso para obtener un núcleo modificado es el siguiente:

  1. configurar
  2. compilar
  3. montar /boot (si no está ya montado)
  4. copiar la nueva imagen del núcleo a /boot
  5. asegurarse de que el cargador de arranque hará referencia al nuevo núcleo
  6. reiniciar

Si alguno de las fases finales no se ha realizado, entonces los cambias no tendrán el efecto deseado.

  1. configure
  2. compile
  3. mount /boot (if not already mounted)
  4. copy new kernel image to /boot
  5. make sure the bootloader will reference the new kernel
  6. reboot

If one of those final stages has been missed, then the changes will not properly take effect.

Es posible verificar que el núcleo con el que se ha arrancado es el mismo que el nuevo núcleo compilado en el disco duro. Esto se puede realizar examinando la fecha y hora de la compilación del núcleo. Asumiendo que la arquitectura del sistema es x86 y que los fuentes del núcleo están instaladas en /usr/src/linux, se puede utilizar la siguiente orden:

root #uname -v
#4 SMP PREEMPT Sáb Jul 15 08:49:26 BST 2006

La orden anterior mostrará la fecha y hora en que se compiló el núcleo que ha arrancado.

root #ls -l /usr/src/linux/arch/i386/boot/bzImage
-rw-r--r-- 1 dsd users 1504118 Jul 15 08:49 /usr/src/linux/arch/i386/boot/bzImage

La orden de arriba muestra la fecha y la hora en que se compiló por última vez la imagen del núcleo en el disco duro.

Si las marcas de tiempo de las dos órdenes anteriores difieren en más de dos minutos, indica que se ha cometido un error en la reinstalación del núcleo y que el sistema no se ha iniciado desde la nueva imagen modificada del núcleo.

Los módulos no se cargan automáticamente

Como se ha mencionado anteriormente en este documento, el sistema de configuración del núcleo experimenta un gran cambio en su comportamiento cuando se selecciona la compilación de un componente como módulo (M) en vez de integrarlo (Y). Vale la pena repetir esto porque muchos usuarios caen en esta trampa.

Cuando se selecciona un componente como integrado, el código forma parte de la imagen del núcleo (bzImage). Cuando el núcleo necesita utilizar ese componente se puede inicializar y cargar automáticamente sin intervención por parte del usuario.

Cuando se selecciona un componente como módulo, el código se construye como un archivo de módulo del núcleo aparte instalado en el sistema de ficheros. En general, cuando el núcleo necesita usar ese componente, no podrá encontrarlo. Con algunas excepciones, el núcleo no hace esfuerzo alguno para cargar estos módulos. Esa tarea queda en manos del usuario.

Si se está construyendo soporte para una tarjeta de red como un módulo y se observa que no es accesible, es probablemente debido a que el módulo no se ha cargado. Esto se debe hacer manualmente o se debe configurar el sistema para cargar el módulo de forma automática durante el inicio.

A menos que un usuario tenga razones para hacerlo de otra manera, se puede ahorrar algo de tiempo construyendo estos componentes de manera integrada en la imagen del núcleo, de modo que éste pueda configurar estos pequeños ajustes por si mismo.

Ver también



This page is based on a document formerly found on our main website gentoo.org.
The following people contributed to the original document: Daniel Drake, Curtis Napier, Justin Robinson, Lukasz Damentko, Jonathan Smith, nightmorph
They are listed here because wiki history does not allow for any external attribution. If you edit the wiki article, please do not add yourself here; your contributions are recorded on each article's associated history page.