Cómo compilar su propio kernel de Linux

Compilar tu propio kernel de Linux es una de esas cosas geek, técnicas, ¿verdad? Ya hemos explicado algunas razones por las que podría querer hacer esto: ¡ahora es el momento de probarlo usted mismo!

Compilar tu propio kernel de Linux es una de esas cosas geek, técnicas, ¿verdad?  Ya hemos explicado algunas razones por las que podría querer hacer esto: ¡ahora es el momento de probarlo usted mismo!
Anuncio

Junto con la instalación de Gentoo Gentoo: una distribución de Linux donde compila su propio software optimizado Gentoo: una distribución de Linux donde compila su propio software optimizado El asombroso número de formas diferentes en que se puede ejecutar Linux es asombroso, ya que hay muchas opciones para andar. Si bien hay muchas distribuciones que se basan en .deb ... Leer más, la compilación de su propio kernel de Linux es una de esas cosas que se considera muy geek y técnica. Ya hemos cubierto algunas razones 3 Razones por las que podría querer compilar su propio Kernel [Linux] 3 Razones por las cuales podría querer compilar su propio Kernel [Linux] Los sistemas Linux son tan ridículamente flexibles y configurables, es completamente loco. Una gran parte de por qué Linux es tan flexible se debe a su estructura modular. Cada componente del sistema y programa se divide ... Leer más por qué es posible que desee hacer esto. Antes de seguir los pasos, aquí hay una breve descripción de algunos conceptos importantes.

¿Qué es un Kernel?

En resumen, es una parte vital de tu sistema operativo, si no el más importante. Un sistema operativo es responsable de permitir que sus programas funcionen, al permitirles acceder a su hardware. Sin embargo, es el kernel El kernel de Linux: una explicación en términos de Layman El kernel de Linux: una explicación en términos de Layman Sólo hay una cosa de facto que las distribuciones de Linux tienen en común: el kernel de Linux. Pero a pesar de que a menudo se habla, muchas personas realmente no saben exactamente lo que hace. Lea más que realmente lleva a cabo todos estos trabajos.

El kernel de Linux es especial, ya que puede ser hecho a medida para adaptarse al hardware que posee. Contraste esto con el kernel de Windows NT, que generalmente será el mismo en todas las computadoras. Para hacer esto, el kernel debe pasar por un proceso llamado compilación.

¿Qué está compilando?

En general, los programas están escritos en un formato legible por humanos. Esto hace que sea más fácil para las personas crear software. Por ejemplo, el kernel de Linux está escrito principalmente en un lenguaje de programación llamado C. Sin embargo, las computadoras no pueden entender esto. Solo reconocen un lenguaje complicado llamado código de máquina . Para hacerlo, las líneas de texto deben ser traducidas. Cómo compilar e instalar archivos TAR GZ y TAR BZ2 en Ubuntu Linux Cómo compilar e instalar archivos TAR GZ y TAR BZ2 en Ubuntu Linux Leer más usando una pieza especial de software llamada compilador

Se usan diferentes compiladores para convertir diferentes lenguajes de programación. Por ejemplo, GCC es un compilador que traduce el código C en código máquina (entre otros). Pero eso no es todo lo que hacen: los compiladores también pueden optimizar el código traducido para máquinas específicas. Junto con esto, también pueden eliminar las características no deseadas de los programas mientras lo hacen.

Por lo general, este proceso ya está hecho para un montón de software. En cambio, las personas descargan las instrucciones binarias convertidas, que funcionan de la caja. Por ejemplo, el navegador web ¿Está utilizando el mejor navegador web para Linux en 2016? ¿Está utilizando el mejor navegador web para Linux en 2016? Usar el navegador "incorrecto" puede provocar muchos dolores de cabeza innecesarios, productividad desperdiciada e incluso pérdida de datos. Entonces, ¿qué navegador es el mejor para su computadora con Linux? Vamos a averiguar. Leer más que está ejecutando en este momento ya está compilado. Esto es porque compilar algo puede ser un poco complicado y consumir mucho tiempo. Piense que es como traducir un libro grande a un idioma extranjero.

En resumen, compilar el kernel significa convertir su código en algo que realmente se ejecutará en su computadora .

Obtención de fuentes de kernel

No puedes hacer un fuego sin combustible. Del mismo modo, no puede compilar programas si no tiene el código para ello en primer lugar. El método generalmente es el mismo para la mayoría de los sistemas operativos Linux con algunas excepciones. Muchos de ellos suministran sus propias fuentes de kernel personalizadas. Deberías probar y usar eso si puedes. Por ejemplo, si está utilizando un sistema operativo basado en Debian como Ubuntu, debe instalar las fuentes con estos comandos:

sudo apt-get update sudo apt-get install linux-source 

Cómo compilar su propio kernel de Linux Debian Linux Source

También puede instalar diferentes versiones de este paquete (por ejemplo, linux-source-4.8.0 ) si lo desea. Encontrará los archivos instalados en el directorio / usr / src /, navegue hasta allí y vea los contenidos:

 cd /usr/src/ ls 

Verá un archivo que termina con .tar.bz2 . Esta es la fuente que usarás. Extraelo con este comando:

 sudo tar xjvf linux-source-4.4.0.tar.bz2 

Asegúrese de reemplazar el archivo con el nombre correcto, por supuesto. El archivo será bastante grande, por lo que el proceso tomará un poco de tiempo.

Método alternativo

Si lo desea, puede obtener sus fuentes del sitio web oficial de Kernel de Linux. Lo recomiendo solo si su sistema operativo Linux no los proporciona. Seleccione la versión que desea y descárguela. Si realiza esta ruta, debe descargarla a una carpeta vacía. De esta manera, si desea compilar más kernels en el futuro, tendrá una buena carpeta para mantenerlos organizados.

Cómo compilar sus propias fuentes de núcleo Kernel vainilla de Linux

Una vez hecho esto, extraiga el archivo con este comando:

 tar xJvf linux-4.9.11.tar.xz 

Cómo compilar su propio kernel Linux Vanilla Linux Source

¡Asegúrate de estar usando el nombre de archivo que coincida con la versión que descargaste!

Personaliza el Kernel

Este es el paso donde puede elegir de qué partes del kernel desea deshacerse. Por ejemplo, el núcleo se envía con una gran cantidad de controladores diferentes para una variedad de dispositivos. Si no necesita ese soporte, deshacerse de ellos puede generar algunos beneficios de velocidad, junto con un kernel más pequeño.

Requisitos previos

Antes de continuar, debe instalar algunos programas que le permitirán personalizarlo y compilarlo.

En los sistemas basados ​​en Debian, necesita el paquete build-essential, entre otros:

 sudo apt-get install build-essential gcc libncurses5-dev libssl-dev 

El paquete libncurses5-dev hará que sea más fácil configurar el núcleo, así que asegúrese de instalarlo. Otros sistemas operativos Linux tendrán un programa similar, pero esto puede estar bajo un nombre diferente. Por ejemplo, si usa Fedora 5 razones para usar Pure Open Source Distro, Fedora 5 Razones para usar Pure Open Source Distro, Fedora Fedora no es tan conocida como Ubuntu, y tiene una reputación de ser difícil de usar. Pero si esto es cierto, ¿por qué tanta gente continúa usando Fedora? Leer más, se llama ncurses .

Si no está instalado, también necesitará la Colección de compiladores de GNU (GCC). Esta es la herramienta responsable de traducir el código fuente en bruto a algo comprensible para las computadoras. Es decir, compilando.

Después de haber instalado estos programas, abra su terminal para que esté dentro de la carpeta de origen de Linux extraída. Por ejemplo, si usabas el método de fuente de Linux, harías esto:

 cd /usr/src/linux-source-4.4.0 

Archivo de configuración del kernel

Antes de compilar el kernel, debe decirle a GCC cómo quiere que se haga. Lo haces usando una herramienta de línea de comando llamada make . Escriba este comando:

 sudo make localmodconfig 

Esto crea un archivo llamado .config, que le dice a GCC qué compilar de las fuentes del kernel. El comando make localmodconfig detecta los componentes del kernel actualmente en ejecución y los marca para la compilación. Si el núcleo está dentro de una carpeta que posee, no necesitará sudo para que funcione.

Puede encontrar algunos mensajes como el siguiente. Simplemente presione la tecla Enter para omitirlos; generalmente son solo nuevas características del kernel.

Cómo compilar su propio kernel de Linux Make Localmodconfig New

Sin embargo, ¡Localmodconfig no es perfecto! Si actualmente no está utilizando algunas partes de su computadora, es posible que no detecte todas las funciones que admite. Como tal, necesita habilitarlos manualmente. Alternativamente, puede omitir este paso por completo y usar el siguiente comando en su lugar. Esto compilará el nuevo kernel con las mismas opciones que el que está utilizando actualmente.

Si lo prefiere, pero usó el comando localmodconifg antes, haga esto:

 sudo make clean 

Esto te dará una construcción limpia. También deberías usar este comando si has compilado un núcleo con estas fuentes antes.

Configuración adicional

Dentro de la carpeta fuente del kernel, hay un archivo llamado .config . Esto es lo que utilizará GCC para elegir qué compilar. En lugar de editarlo manualmente (no recomendado), en su lugar utilizará algunas herramientas de terminal. Esto hará que seleccionar opciones de compilación sea mucho más fácil.

Habiendo hecho esto, afínalo más:

 sudo make nconfig 

Verás un menú colorido emergente. Este es el menú de configuración del kernel. Para navegar, use las teclas de flecha. Puede presionar la tecla de la flecha hacia la derecha para expandir las entradas con un signo -> junto a ellas. Navegue fuera de estos submenús presionando la tecla de flecha izquierda .

Cómo compilar su propio kernel de Linux Make Nconfig

Puede alternar entradas de menú que tienen el signo o [] al lado de ellas presionando la barra espaciadora. Esto recorrerá las diferentes opciones de menú. Si ve un * o M adentro, ese componente específico del kernel será compilado. La única diferencia entre ellos es que la opción M se cargará cuando sea necesario. Esto puede ser útil si está compilando un controlador, por ejemplo, que no se usará con frecuencia.

Si desea saber más sobre lo que hace un interruptor específico, presione F2 sobre él. Verá una descripción útil de lo que está compilando.

Cómo compilar su propio kernel de Linux Make Nconfig F2

Una vez que haya terminado, presione el botón F9 para guardar y salir.

Cómo compilar su propio kernel de Linux Make Nconfig Save

Compilando e Instalando el Kernel

Ahora que ha creado un archivo make personalizado, deberá compilar Cómo compilar e instalar los archivos TAR GZ y TAR BZ2 en Ubuntu Linux Cómo compilar e instalar los archivos TAR GZ y TAR BZ2 en Ubuntu Linux Lea más sobre kernel. Escriba este comando:

 sudo make -j$(nproc --all) 

No necesitará sudo si descargó las fuentes del núcleo de la web. La segunda parte del comando ayuda a acelerar el tiempo de compilación del núcleo, aprovechando todos sus núcleos de CPU. ¿Qué es un núcleo de procesador? [MakeUseOf Explains] ¿Qué es un núcleo de procesador? [Explicaciones de MakeUseOf] Cada computadora tiene un procesador, ya sea un profesional de eficiencia pequeño o un centro neurálgico de alto rendimiento, o de lo contrario no podría funcionar. Por supuesto, el procesador, también llamado CPU o Procesamiento Central ... Leer más. Puede deshacerse de esto, o cambiar el número a otra cosa (por ejemplo, -j2 ), si desea usar su computadora para otras tareas sin demasiados inconvenientes. Sin embargo, esto también hará que la compilación sea más lenta.

Este proceso puede y tomará mucho tiempo. Cuanto menos elija compilar, más corto será. Aun así, es probable que tengas que ser paciente.

Después, escribe este comando para terminar de compilar el resto del kernel:

 sudo make modules_install 

Para usar realmente este núcleo, necesitarás ingresar este comando:

 sudo make install 

Esto copiará automáticamente el kernel en su carpeta / boot y generará los archivos apropiados para que funcione.

Cambio de kernels con GRUB

Si reinicias después de instalar tu nuevo kernel, ¡es posible que tu sistema no funcione ! Esto generalmente se debe a un kernel compilado incorrectamente (es decir, que no es compatible con su computadora lo suficiente). Caso en cuestión, mi propia computadora portátil. En caso de que esto ocurra, recomiendo editar GRUB Cómo personalizar el gestor de arranque GRUB usando BURG [Ubuntu] Cómo personalizar el gestor de arranque GRUB usando BURG [Ubuntu] Leer más para que pueda volver a los núcleos anteriores. Para hacer esto, usa este comando:

 sudo nano /etc/default/grub 

Cómo compilar su propio kernel de Linux Ubuntu GRUB

Coloque un signo # delante de las líneas GRUB_HIDDEN_TIMEOUT y GRUB_HIDDEN_TIMEOUT_QUIET . Luego, guarde estos cambios ejecutando este comando:

 sudo grub-mkconfig -o /boot/grub/grub.cfg 

Cómo compilar su propio menú Kernel de Linux GRUB

Ahora, si reinicia su computadora, podrá cambiar a un kernel anterior si el nuevo no funciona. Simplemente vaya a la opción de menú Opciones avanzadas y seleccione el kernel que desea arrancar. Si todo sale bien, ¡enhorabuena! Estarás usando el núcleo que compiló usted mismo.

¿Estás interesado en compilar más kernels? ¿Otros programas? ¿Lo encuentras valioso?

Créditos de las imágenes: chombosan / Shutterstock

In this article