LinuxParty
Érase una vez, la idea de actualizar el kernel de Linux envió miedo a través de los corazones de muchos usuarios. En aquel entonces, el proceso de actualización del kernel requería muchos pasos e incluso más tiempo. Ahora, la instalación de un nuevo kernel se puede manejar fácilmente con administradores de paquetes como apt. Con la adición de ciertos repositorios, incluso puede instalar fácilmente kernels experimentales o específicos (como kernels en tiempo real para la producción de audio) sin sudar.
Teniendo en cuenta lo fácil que es actualizar su kernel, ¿por qué se molestaría en compilar uno usted mismo? Aquí hay algunas razones posibles:
- Simplemente quieres saber cómo se hace.
- Debe habilitar o deshabilitar opciones específicas en un kernel que simplemente no están disponibles a través de las opciones estándar.
- Desea habilitar el soporte de hardware que podría no encontrarse en el kernel estándar.
- Estás usando una distribución que requiere que compiles el kernel.
- Eres un estudiante y esto es una tarea.
Independientemente de por qué, saber cómo compilar un kernel de Linux es muy útil e incluso puede verse como un derecho de paso. Cuando compilé por primera vez un nuevo kernel de Linux (hace mucho, mucho tiempo) y logré arrancar desde dicho kernel, sentí una cierta emoción recorriendo mi sistema (que se aplastó rápidamente la próxima vez que lo intenté y fallé).
Dicho esto, repasemos el proceso de compilación de un kernel de Linux. Estaré demostrando en Ubuntu 16.04 Server. Después de ejecutar una actualización de sudo apt estándar , el kernel instalado es 4.4.0-121. Quiero actualizar al kernel 6.3. Cuidémonos de eso.
Una palabra de advertencia: le recomiendo que practique este procedimiento en una máquina virtual. Al trabajar con una máquina virtual, siempre puede crear una instantánea y solucionar cualquier problema con facilidad. NO actualice el kernel de esta manera en una máquina de producción... no hasta que sepa lo que está haciendo.
Descargando el kernel
Lo primero que debe hacer es descargar el archivo fuente del kernel. Esto se puede hacer encontrando la URL del kernel que desea descargar (desde Kernel.org ). Una vez que tenga la URL, descargue el archivo fuente con el siguiente comando (lo demostraré con el kernel 6.3):
wget https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/snapshot/linux-6.3.tar.gz
Mientras se descarga ese archivo, hay algunos bits que cuidar.
Requisitos de instalación:
Deberías logearse como root para hacer el proceso si quieres, si no tendrás que tener al menos un usuario "sudo" (o hacer el suyo usuario sudoer) para tal propósito y poner delante "sudo" de todas las instrucciones que requieran permisos de administrador.
- Cómo crear un usuario de Sudo en Ubuntu, RHEL, Fedora, Debian, CentOS, Rocky y AlmaLinux
- Cómo mostrar asteriscos al escribir la contraseña de Sudo en Linux
- 10 configuraciones útiles de Sudoers para configurar 'sudo' en Linux
Use el sistema de paquetes de su distribución, consulta: Equivalencias entre DEB y RPM, y también APT y YUM para Linux
Para compilar el kernel, primero necesitaremos instalar algunos requisitos. Esto se puede hacer con un solo comando:
sudo apt-get install git fakeroot build-essential ncurses-dev xz-utils libssl-dev bc flex libelf-dev bison flex flex-dev
Tenga en cuenta: necesitará al menos 12 GB de espacio libre en su disco local para completar el proceso de compilación del kernel. Así que asegúrate de tener suficiente espacio.
Extrayendo la fuente
Desde el directorio que alberga nuestro kernel recién descargado, extraiga el código fuente del kernel con el comando:
tar xvfz linux-6.3.tar.gz
Cambie al directorio recién creado con el comand:
cd linux-6.3
Configurando el núcleo
Antes de compilar el kernel, primero debemos configurar qué módulos incluir. En realidad, hay una manera muy fácil de hacer esto. Con un solo comando, puede copiar el archivo de configuración del núcleo actual y luego usar el comando probado y verdadero menuconfig para realizar los cambios necesarios. Para hacer esto, emita el comando:
cp -v /boot/config-$(uname -r) .config
Ahora que tiene un archivo de configuración, emita el comando make menuconfig . Este comando abrirá una herramienta de configuración ( Figura 1 ) que le permite revisar todos los módulos disponibles y habilitar o deshabilitar lo que necesita o no necesita.
Para configurar el kernel y adaptarlo al hardware específico tienes dos opiones, "make xconfig", si vas a usarlo desde un entorno gráfico (KDE, GNOME o cualquier otro parecido o similar) o si estás en un entorno no gráfico, en consola de texto deberás usar "make menuconfig"
Requerirás tener instalado algunos paquetes como "flex", prueba escribiendo:
make xconfig
También puedes usar: make menuconfig
make menuconfig
Make menuconfig en acción.
Por orden y coherencia, yo prefiero usar "make menuconfig", pero para gusto los colores...
Es muy posible que deshabilite una parte crítica del kernel, así que siga el menú de configuración con cuidado. Si no está seguro acerca de una opción, déjela en paz. O, mejor aún, quédese con la configuración que acabamos de copiar del kernel en ejecución (como sabemos que funciona). Una vez que haya revisado toda la lista (es bastante larga), ¡estará listo para compilar!
Una tercera forma de configurar el kernel de linux es usar "make config". El obsoleto modelo que (todavía) se puede usar si no quiere o puede usar las librerías ncurses para hacer el menuconfig o está en un entorno gráfico para usar xconfig
Compilando e instalando
Ahora es el momento de compilar el núcleo. El primer paso es compilar usando el comando make . Entonces emita make y luego responda las preguntas necesarias ( Figura 2 ). Las preguntas que se hagan estarán determinadas por el kernel desde el que se está actualizando y el kernel al que se está actualizando. Confía en mí cuando digo que hay un montón de preguntas que responder, así que tómate suficiente tiempo aquí.
Para compilar el kernel escribimos "make"
make
Compilando el kernel de Linux. (Comienzo)
Después de responder la letanía de preguntas, puede instalar los módulos que ha habilitado con el comando:
make modules_install
Una vez más, este comando llevará algún tiempo, así que siéntese y observe la salida, o haga otra cosa (ya que no requerirá su entrada). Lo más probable es que desee emprender otra tarea (a menos que realmente disfrute ver la salida pasar volando en una terminal).
Ahora instalamos el kernel con el comando:
make install
Nuevamente, otro comando que llevará una cantidad significativa de tiempo. De hecho, el comando make install tardará incluso más que el comando make modules_install . Vaya a almorzar, configure un enrutador, instale Linux en algunos servidores o tome una siesta.
Habilitar el kernel para el arranque
Una vez que se completa el comando make install , es hora de habilitar el kernel para el arranque. Para hacer esto, emita el comando:
update-initramfs -c -k 6.3
Por supuesto, sustituiría el número de kernel anterior por el kernel que ha compilado. Cuando se complete ese comando, actualice grub con el comando:
sudo update-grub
Ahora debería poder reiniciar su sistema y seleccionar el kernel recién instalado.
¡Felicidades!
¡Has compilado un kernel de Linux! Es un proceso que puede llevar algún tiempo; pero, al final, tendrá un kernel personalizado para su distribución de Linux, así como una habilidad importante que muchos administradores de Linux tienden a pasar por alto.
-
Linux
- Predicciones de Linux para 2025
- Elementary OS 8: una distribución de Linux para usuarios de Windows y macOS
- Renombrar multiples archivos masivamente en Linux (quitar espacios, cambiar mayúsculas) a la vez en Linux
- He utilizado Linux durante 30 años. Aquí hay 5 razones por las que nunca cambiaré a Windows o MacOS
- Montar un directorio remoto, vía NFS, en Linux
- Mis predicciones sobre Linux para 2025: será un buen año
- ¿Por qué Torvalds eliminó a los encargados rusos del mantenimiento del núcleo de Linux?
- 10 cosas que siempre hago después de instalar Linux (y por qué tú también deberías hacerlo)
- 7 cosas que nunca hago después de instalar Linux (y por qué tú tampoco deberías)
- Detección de Intrusos: Snort, Base, MySQL, y Apache2 en Ubuntu Linux 7.10
- ¿Por qué no más personas usan Linux en el escritorio? Tengo una teoría que quizás no te guste.
- Los países occidentales ricos lideran la expansión mundial del petróleo y el gas
- Systemd 256.1 aborda la queja de que 'systemd-tmpfiles' podría eliminar inesperadamente su directorio /home
- Por qué un kernel Linux de distribución 'congelada' no es la mejor opción para la seguridad
- RebornOS es una versión hermosa y fácil de usar de Arch Linux con abundantes opciones de escritorio