GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo compilar el kernel de Linux desde el origen para crear un kernel personalizado

El kernel de Linux es la fuerza vital de toda la familia de sistemas operativos Linux, incluidos Ubuntu, CentOS y Fedora.

En su mayor parte, no necesita compilar el kernel, ya que se instala de forma predeterminada cuando instala el sistema operativo. Además, cuando se realiza una actualización crítica del kernel, puede usar yum o apt-get para actualizar el kernel en su sistema Linux.

Sin embargo, puede encontrar ciertas situaciones en las que puede tener para compilar kernel desde la fuente. Las siguientes son algunas situaciones en las que puede tener que compilar Kernel en su sistema Linux.

  • Para habilitar funciones experimentales que no forman parte del núcleo predeterminado.
  • Para habilitar la compatibilidad con un nuevo hardware que actualmente no es compatible con el kernel predeterminado.
  • Para depurar el kernel
  • O, solo para aprender cómo funciona el kernel, es posible que desee explorar el código fuente del kernel y compilarlo por su cuenta.

En este tutorial, explicaremos cómo compilar el kernel de Linux desde el código fuente.

Además, tenga en cuenta que si solo desea compilar un controlador, no necesita compilar el kernel. Solo necesita el paquete linux-headers del kernel.

1. Descargue el kernel estable más reciente

El primer paso es descargar el kernel estable más reciente de kernel.org.

# cd /usr/src/

# wget https://www.kernel.org/pub/linux/kernel/v3.x/linux-3.9.3.tar.xz

2. Descomprime el código fuente del kernel

El segundo paso es descomprimir el archivo fuente del núcleo para su compilación.

# tar -xvJf linux-3.9.3.tar.xz

3. Configurar el Núcleo

El kernel contiene casi 3000 opciones de configuración. Para hacer que el kernel sea utilizado por la mayoría de las personas en la mayoría del hardware, la distribución de Linux como Ubuntu, Fedora, Debian, RedHat, CentOS, etc., generalmente incluirá soporte para la mayoría del hardware común. Puede tomar cualquiera de las configuraciones de la distribución y, además, puede agregar su propia configuración, o puede configurar el kernel desde cero, o puede usar la configuración predeterminada proporcionada por el kernel.

# cd linux-3.9.3

# make menuconfig

Make menuconfig lanzará una interfaz de usuario basada en texto con opciones de configuración predeterminadas, como se muestra en la figura. Debería haber instalado los paquetes "libncurses y libncurses-devel" para que este comando funcione.

Usaremos la configuración predeterminada proporcionada por el kernel. Así que seleccione "Guardar" y guarde la configuración con el nombre de archivo ".config".

El siguiente es un ejemplo del archivo “.config”:

CONFIG_MMU=y
CONFIG_NEED_DMA_MAP_STATE=y
CONFIG_NEED_SG_DMA_LENGTH=y
CONFIG_GENERIC_ISA_DMA=y
CONFIG_GENERIC_BUG=y
CONFIG_GENERIC_HWEIGHT=y

4. Compile el kernel de Linux

Compile el kernel principal:

# make

Compile los módulos del kernel:

# make modules

Instale los módulos del kernel:

# make modules_install

En este punto, debería ver un directorio llamado /lib/modules/3.9.3/ en su sistema.

5. Instale el nuevo núcleo

Instale el nuevo kernel en el sistema:

# make install

El comando make install creará los siguientes archivos en el directorio /boot.

  • vmlinuz-3.9.3 – El núcleo real
  • System.map-3.9.3 – Los símbolos exportados por el kernel
  • initrd.img-3.9.3:la imagen initrd es un sistema de archivos raíz temporal que se utiliza durante el proceso de arranque
  • config-3.9.3:el archivo de configuración del kernel

El comando "make install" también actualizará grub.cfg de forma predeterminada. Así que no necesitamos editar manualmente el archivo grub.cfg.

6. Inicie Linux en el nuevo Kernel

Para usar el nuevo núcleo que acaba de compilar, reinicie el sistema.

# reboot

Dado que, en grub.cfg, el nuevo kernel se agrega como arranque predeterminado, el sistema arrancará desde el nuevo kernel. En caso de que tenga problemas con el nuevo kernel, puede seleccionar el antiguo kernel desde el menú de grub durante el arranque y puede usar su sistema como de costumbre.

Una vez que el sistema esté activo, use el comando uname para verificar que la nueva versión del kernel de Linux esté instalada.

$ uname -r
3.9.3

Linux
  1. Cómo instalar y configurar Nginx desde el origen en Linux

  2. Cómo compilar e instalar software desde el código fuente en Linux

  3. ¿Cómo cargar módulos del kernel de Linux desde el código C?

  4. ¿Es posible compilar una distribución de Darwin desde la fuente, como se puede compilar una distribución de Linux?

  5. ¿Cómo hacer un Linux de arranque mínimo (solo con terminal) a partir del código fuente del kernel?

Cómo compilar Nginx desde la fuente en CentOS 7

Cómo instalar un programa desde la fuente en Linux

Cómo compilar paquetes Debian desde el código fuente

Cómo instalar software desde la fuente en Linux

Cómo compilar PHP7.0/PHP7.1 desde la fuente en Arch Linux

Cómo construir el kernel de Linux desde cero