Cómo compilar tu propio kernel de Linux

Cómo compilar tu propio kernel de Linux / Linux

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 La gran cantidad de formas diferentes en que Linux puede ejecutarse es sorprendente, ya que hay muchas opciones para andar. Si bien hay muchas distribuciones que se basan en .deb ... Leer más, compilar su propio kernel de Linux es una de esas cosas que se consideran muy geek y técnicas. Ya hemos cubierto algunas razones 3 razones por las que puede querer compilar su propio kernel [Linux] 3 razones por las que puede querer compilar su propio kernel [Linux] Los sistemas Linux son tan ridículamente flexibles y configurables, que es absolutamente loco. Una gran parte de por qué Linux es tan flexible es debido a su estructura modular. Cada componente y programa del sistema se divide ... Lea más por qué podría querer hacer esto. Antes de que lo guiemos a través de los pasos, aquí hay una breve descripción de algunos conceptos importantes..

Que es un Kernel?

En resumen, es una parte vital de su sistema operativo, si no la más importante. Un sistema operativo es responsable de permitir que sus programas funcionen, permitiéndoles acceder a su hardware. Sin embargo, es el núcleo El kernel de Linux: una explicación en términos de Layman El kernel de Linux: una explicación en términos de Layman Hay una sola cosa de facto que las distribuciones de Linux tienen en común: el kernel de Linux. Pero aunque a menudo se habla de eso, muchas personas realmente no saben exactamente lo que hace. Leer más, que en realidad lleva a cabo todos estos trabajos.

El kernel de Linux es especial, ya que puede ser hecho a medida para que se ajuste al hardware que posee. Contrasta 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.

Lo que se está compilando?

Generalmente, 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 do. Sin embargo, las computadoras no pueden entender esto. Solo reconocen un lenguaje complicado llamado codigo de maquina. Para hacerlo, las líneas de texto deben traducirse 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 Lea más utilizando un programa especial llamado compilador.

Se utilizan diferentes compiladores para convertir diferentes lenguajes de programación. Por ejemplo, GCC es un compilador que traduce el código C en código de 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 funciones no deseadas de los programas mientras lo hacen.

Por lo general, este proceso ya está hecho para una gran cantidad de software. En su lugar, la gente descarga los convertidos binario Instrucciones, que funcionan fuera 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? El uso del navegador "incorrecto" puede ocasionar muchos dolores de cabeza innecesarios, pérdida de productividad e incluso pérdida de datos. Entonces, ¿qué navegador es el mejor para su computadora Linux? Vamos a averiguar. Leer más que está ejecutando en este momento ya está compilado. Esto se debe a que compilar algo puede ser un poco complicado y llevar mucho tiempo. Piensa que es como traducir un libro grande a una lengua extranjera..

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 se puede hacer fuego sin combustible. Del mismo modo, no puede compilar programas si no tiene el código para ello en primer lugar. El método es generalmente el mismo para la mayoría de los sistemas operativos Linux con algunas excepciones. Muchos de ellos suministran sus propias fuentes de kernel personalizadas. Debes intentar y usar eso si puedes. Por ejemplo, si estás usando un Sistema operativo basado en Debian como Ubuntu, deberías instalar las fuentes usando estos comandos:

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

También puede instalar diferentes versiones de este paquete (por ejemplo,. linux-source-4.8.0) Si te gusta. Encontrarás los archivos instalados en el / usr / src / directorio, así que navega hacia allí, y mira los contenidos:

cd / usr / src / ls 

Verás 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 en el sitio web oficial de Linux Kernel. Recomiendo esto solo si su sistema operativo Linux no los proporciona. Seleccione la versión que desee y descárguela. Si recorres esta ruta, debes descargarla en una carpeta vacía. De esta manera, si desea compilar más kernels en el futuro, tendrá una buena carpeta para mantenerlos organizados en.

Habiendo hecho esto, extraiga el archivo con este comando:

tar xjvf linux-4.9.11.tar.xz

Asegúrese de que está utilizando el nombre de archivo que coincide con la versión que descargó!

Personaliza el Kernel

Este es el paso en el que puede elegir las partes del kernel del que desea deshacerse. Por ejemplo, el núcleo se envía con muchos 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..

Prerrequisitos

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

En los sistemas basados ​​en Debian, necesita la esencial para la construcción paquete, entre otros:

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

los libncurses5-dev El paquete facilitará la configuración del kernel, así que asegúrese de instalarlo. Otros sistemas operativos Linux tendrán un programa similar, pero esto puede tener un nombre diferente. Por ejemplo, si está usando Fedora 5 Razones para usar el Distro de código abierto puro, Fedora 5 Razones para usar el Distro de código abierto puro, Fedora no es tan conocido como Ubuntu, y tiene la reputación de ser difícil de usar. Pero si esto es cierto, ¿por qué tantas personas siguen usando Fedora? Leer más, se llama ncurses.

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

Una vez instalados estos programas, abre tu terminal para que estés dentro la carpeta fuente extraída de Linux. Por ejemplo, si usaste el fuente de linux Método, 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 desea que se haga. Lo haces usando una herramienta de línea de comandos llamada hacer. Escriba en este comando:

sudo make localmodconfig 

Esto crea un archivo llamado .configuración, que le dice a GCC qué compilar de las fuentes del kernel. los hacer localmodconfig El comando detecta los componentes del kernel que se están ejecutando actualmente y los marca para compilarlos. Si el kernel está dentro de una carpeta que posee, no necesitará sudo para que funcione.

Puedes encontrarte con algunos mensajes como el de abajo. Solo presiona el Entrar Clave para omitirlos: normalmente son solo nuevas características del kernel..

Sin embargo, localmodconfig no es perfecto.! Si actualmente no está utilizando algunas partes de su computadora, es posible que no detecte todas las cosas que admite. Como tal, necesitas 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á usando actualmente.

Si prefieres eso, pero usaste el comando localmodconifg antes, haz esto:

sudo hacer limpio 

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

Configuración adicional

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

Habiendo hecho esto, afínalo aún más:

sudo hacer nconfig 

Verás un colorido menú emergente. Este es el menú de configuración del kernel. Para navegar alrededor, use las teclas de flecha. Puede presionar el Correcto tecla de flecha para expandir las entradas con una -> firmar junto a ellos. Navegue fuera de estos submenús presionando izquierda Tecla de flecha.

Puede alternar las entradas del menú que tienen <> o [] Firme al lado de ellos presionando la barra espaciadora. Esto hará un ciclo a través de las diferentes opciones de menú. Si ves un * o METRO En el interior, ese componente específico del kernel será compilado. La única diferencia entre ellos es que la METRO La opción se cargará cuando sea necesario. Esto puede ser útil si está compilando un controlador, por ejemplo, que no se usará a menudo.

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

Una vez que hayas terminado, presiona el F9 botón para guardar y salir.

Compilando e instalando el kernel

Ahora que ha creado un archivo de creación personalizado, deberá compilar 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 Lea más sobre el kernel. Escriba en este comando:

sudo make -j $ (nproc --todo) 

Vas a no necesita sudo Si ha descargado las fuentes del núcleo desde la web. La segunda parte del comando ayuda a acelerar el tiempo de compilación del kernel, aprovechando todos los núcleos de su CPU ¿Qué es un núcleo de procesador? [MakeUseOf explica] ¿Qué es un núcleo de procesador? [MakeUseOf Explica] Cada computadora tiene un procesador, ya sea un profesional de pequeña eficiencia o una gran potencia 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 utilizar su computadora para otras tareas sin demasiados contratiempos. Sin embargo, esto también hará que la compilación sea más lenta.!

Este proceso puede y va a tomar mucho tiempo. Cuanto menos elijas compilar, más corto será. Aun así, probablemente tengas que ser paciente..

Luego, escriba este comando para terminar de compilar el resto del kernel:

sudo make modules_install 

Para usar este kernel, deberás ingresar este comando:

sudo make install 

Esto copiará automáticamente el kernel a su /bota Carpeta y generar los archivos adecuados para que funcione..

Cambio de núcleos utilizando GRUB

Si reinicia después de instalar su nuevo kernel, su sistema podría no funcionar! Esto generalmente se debe a un kernel mal compilado (es decir, no es compatible con tu computadora). Caso en cuestión, mi propia computadora portátil. En caso de que esto suceda, recomiendo editar GRUB Cómo personalizar el cargador de arranque GRUB con BURG [Ubuntu] Cómo personalizar el cargador de arranque GRUB con BURG [Ubuntu] Lea más para que pueda volver a los núcleos anteriores. Para hacer esto, usa este comando:

sudo nano / etc / default / grub 

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

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

Ahora, si reinicia su computadora, podrá cambiar a un kernel anterior si la nueva no funciona. Simplemente ve a la Opciones avanzadas menú y seleccione el kernel que desea arrancar. Si todo sale bien, felicidades! Estarás usando el kernel que compilaste por ti mismo..

¿Está interesado en compilar más núcleos? ¿Otros programas? ¿Le parece que vale la pena??

Créditos de la imagen: chombosan / Shutterstock

Explorar más sobre: ​​Linux.