0% encontró este documento útil (0 votos)
57 vistas18 páginas

Compilar Linux Kernel

No es de mi autoría

Cargado por

EFRAIN
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
57 vistas18 páginas

Compilar Linux Kernel

No es de mi autoría

Cargado por

EFRAIN
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

N° Contenido N° Página

00 ¿Quién creo el Kernel Linux y qué es? 03


01 Elementos necesarios para realizar este proceso. 04
02 Instalar los Pre-Requisitos (paso 01). 04

03 Descargar Código fuente del Kernel (paso 02). 05 - 06


Descomprimir el fichero con las fuentes del
04 07
Kernel (paso 03).
05 Entrar en el direcotrio (paso 04). 07
06 Copiar configuración del Kernel actual (paso 05). 08
07 Configurar el Kernel a nuestra medida (paso 06). 09 - 14
08 Compilar el Kernel (paso 07). 14
09 Instalación de los módulos (paso 08). 15
10 Instalación del Kernel (paso 09). 15
11 Reinicio y termino (paso 10). 16
12 Conclusión y Bibliografía. 17
¿Quien creo el Kernel Linux y qué es?
Linux comienza en 1991 como un proyecto personal del
estudiante finlandés Linus Torvalds: crear un nuevo núcleo de
sistema operativo libre. El núcleo (kernel) Linux resultante ha
estado marcado por un crecimiento constante a lo largo de su
historia. Desde el lanzamiento inicial de su código fuente en 1991,
ha crecido de una pequeña cantidad de archivos C bajo una
licencia que prohíbe la distribución comercial, a la versión 5.6 en
2020 con más de 33,14 millones de líneas de código fuente, sin
contar comentarios,​ bajo la GNU General Public License v2.2​.

El kernel de Linux® es el elemento principal de los sistemas


operativos (SO) Linux, y es la interfaz fundamental entre el
hardware de una computadora y sus procesos. Los comunica entre
sí y gestiona los recursos de la manera más eficiente posible.

Se llama kernel porque se encuentra dentro del sistema


operativo, al igual que las semillas de las frutas con cáscara dura,
y controla todas las funciones principales del hardware, ya sea
un teléfono, una computadora portátil, un servidor o cualquier
otro tipo de equipo.

GNU/Linux es un kernel libre y abierto


03
1.- ELEMENTOS NECESARIOS PARA 2.- INSTALAR LOS PRE-REQUISITOS (PASO 1)
REALIZAR ESTE PROCESO.
Antes de comenzar la compilación del kernel y su
1. Un PC con GNU/Linux personalización, deberemos tener instalados una
(Debian/Ubuntu preferiblemente). serie de paquetes en el sistema. Para ello, si estamos
2. Conexión a Internet. en una distribución de tipo Debian/Ubuntu
3. Usar los comados por la Konsola. ejecutaremos e instalaremos los siguientes paquetes
de una sola vez:

Comado:

XX@debian:~$ sudo apt-get -y install build-essential libncurses-


dev libncurses-dev flex bc bison openssl libssl-dev dkms libelf-dev
libudev-dev libpci-dev libiberty-dev autoconf

04
3.- DESCARGAR CÓDIGO FUENTE DEL
KERNEL (PASO 2)

Aunque la compilación se puede hacer


como un usuario normal, mi manía
(desde hace ya bastante tiempo) es la
de hacer todo el proceso
directamente con root. Para ello, nos
cambiaremos de usuario utilizado el
siguiente comando:

Recordar que al pasar al se Root o


super usuario en la konsola el simbolo
de comando $, pasa a ser #
XX@debian:~$ sudo su - root

05
Descarga el Kernel que más te acomode

Descargaremos la versión que


queremos de kernel de su web
oficial:

[Link]

En este caso descargaremos la


versión 5.11.16 estable
Copiaremos la dirección de
descarga para descargarlo
directamente en consola con
wget.

Con el link copiado, podremos


descargarlo desde consola con el
siguiente comando (también puede
ser descargado gráficamente desde
el navegador, por supuesto)

Comado:
XX@debian:~# wget "[Link]
06
4.- DESCOMPRIMIR EL FICHERO CON LAS FUENTES DEL KERNEL (PASO 3)
Ahora descomprimiremos el fichero del kernel con el siguiente comando y esperaremos que termine:

Comado:

XX@debian:~# tar avxf [Link]

5.- ENTRAR EN EL DIRECTORIO (PASO 4)

Ahora entraremos dentro del directorio creado al descomprimir el kernel:

Comado:

XX@debian:~# cd linux-5.11.16/

07
6.- COPIAR CONFIGURACIÓN DEL KERNEL ACTUAL (PASO 5)

Realizar la configuración desde 0 de las opciones es casi una opción "imposible" incluso para usuarios
con nivel alto de conocimiento de GNU/Linux. Por eso, lo habitual es partir de una configuración
funcional del kernel y a partir de ella ir eliminando elementos innecesarios o añadir aquellos que se
necesitan. En este ejemplo, el kernel que estamos usando en Debian es 4.19.0-6-amd64 y lo que queremos
hacer es compilar e instalar el 5.11.16 usando el comando:

XX@debian:~# uname -a
Linux debian 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux

Para copiar la configuración del kernel y sus módulos actuales, nos situaremos dentro del
directorio del kernel que hemos bajado y ejecutaremos el siguiente comando. Con este comando
tendremos un fichero llamado .config con la misma configuración del kernel que estamos usando
ahora mismo el comando:

XX@debian:~# /linux-5.11.16# cp /boot/config-$(uname -r) .config

08
7.- CONFIGURAR EL KERNEL A NUESTRA MEDIDA (PASO 6)

Este paso sin suda es el mas importante de todos. Aquí es cuando seleccionamos que
opciones queremos soporte nuestro kernel o cuales queremos que no. Cuales queremos
integrar dentro del kernel o cuales queremos que estén como módulos.

Aunque hay varias formas de mostrar la configuración del kernel, la mas habitual esa usar
"make menuconfig" desde un terminal, ya que su uso es muy cómodo, rápido y realmente
sencillo de usar con las flechas , el tabulador y la barra espaciadora.

Por defecto, al lanzar "make menuconfig", leerá el fichero .config en el directorio de las fuentes
del kernel. Por tanto, como ya hemos copiado el fichero del kernel actual (ver punto anterior) al
fichero .config, tan solo debemos ejecutar el siguiente comando:

Comado:

XX@debian:~# /linux-5.11.16# make menuconfig

09
.config - Linux/x86 5.11.16 Kernel configuration

10 Pantalla principal de configuración del Kernel


Por ejemplo, si queremos tener soporte de NTFS de escritura en particiones NTFS, deberemos navegar
por los menús hasta encontrar la opción. En concreto, esta opción está en: File Systems --->
DOS/FAT/EXFAT/NT Filesystems:
.config - Linux/x86 5.11.16 Kernel configuration

11
Activar soporte escritura para NTFS
Para activar la opción de escritura NTFS, debemos seleccionarlo y pulsar la tecla
espaciadora. Existen 2 opciones (*=integrado en kernel o M=módulo). Si es algo que se
va a usar muy de continuo, se recomienda integrarlo directamente en el kernel. Si es
una característica que se va a usar de forma muy esporádica, se recomienda compilarlo
como módulo. Hay que tener en cuenta que algunas opciones solamente deja integrado
en el kernel ó como módulo. Una vez que hemos customizado nuestro kernel a medida,
pulsaremos "save" y guardaremos la configuración como .config. Lo ideal es (la primera
vez) dedicarle mucho tiempo a la customización del kernel, ya que posiblemente el 60-
70% de los módulos a compilar, o las opciones a incluir dentro del kernel jamás
vayamos a usarlas.

Otra de las diferencias de añadir una nueva opción como módulo o integrado en el
kernel es que si lo integramos en el kernel, hay que recompilar todo si ó si. Si
tenemos la opción de ponerlo como módulo, solamente habrá que recompilar los
módulos e instalarlos, ahorrando así muchísimo tiempo de compilación.

Ver la imágen el la siguiente página...


12
.config - Linux/x86 5.11.16 Kernel configuration

13 Integrar soporte de escritura NTFS en Kernel


Una vez que hemos realizado la configuración, es recomendable guardar la configuración con un
nombre identificativo en algún lugar "seguro" por si tenemos que recuperar esas misma configuración o
sobretodo para cuando volvamos a compilar un kernel mas nuevo. Por ejemplo, copiaremos la
configuración así.

Comado:

XX@debian:~# /linux-5.11.16# cp .config config-5.11.16-custom

8.- COMPILAR EL KERNEL (PASO 7)


Una vez tenemos nuestra configuración hecha, deberemos ejecutar el siguiente comando, e ir a relajarse,
porque la compilación tarda bastante. Principalmente la compilación se demora por la cantidad de
módulos y opciones a compilar y por el hardware que estemos usando. para compilar ejecutaremos lo
siguiente.

Comado:

XX@debian:~# /linux-5.11.16# make

14
9.- INSTALACIÓN DE LOS MÓDULOS (PASO 8)
Una vez finalizada la compilación del kernel y los módulos, es hora de instalar los módulos con el siguiente comando:

XX@debian:~# /linux-5.11.16# make modules_install

10.- INSTALACIÓN DEL KERNEL (PASO 9) - Tras instalar los módulos, instalaremos el kernel con el siguiente comando:

XX@debian:~# /linux-5.11.16# make install


sh ./arch/x86/boot/[Link] 5.11.16 arch/x86/boot/bzImage \
[Link] "/boot"
run-parts: executing /etc/kernel/postinst.d/apt-auto-removal 5.11.16 /boot/vmlinuz-5.11.16
run-parts: executing /etc/kernel/postinst.d/dkms 5.11.16 /boot/vmlinuz-5.11.16
run-parts: executing /etc/kernel/postinst.d/initramfs-tools 5.11.16 /boot/vmlinuz-5.11.16
update-initramfs: Generating /boot/[Link]-5.11.16
run-parts: executing /etc/kernel/postinst.d/zz-update-grub 5.11.16 /boot/vmlinuz-5.11.16
Generando un fichero de configuración de grub...
Found background image: /usr/share/images/desktop-base/[Link]
Encontrada imagen de linux: /boot/vmlinuz-5.11.16
Encontrada imagen de memoria inicial: /boot/[Link]-5.11.16
Encontrada imagen de linux: /boot/vmlinuz-4.19.0-6-amd64
Encontrada imagen de memoria inicial: /boot/[Link]-4.19.0-6-amd64
hecho

15
11.- REINICIAR y TERMINO (PASO 10)

Una vez terminado el paso N° 9 vamos al último paso que queda el cual es reiniciar y arrancar GNU/Linux
y... cruzar los dedos! ... no querrás ver un Kernel Panic!.

Por eso es recomendable no borrar los kernels antiguos y tener siempre varios kernels (aunque sean
viejos) que funcionen correctamente.

Notas:
1.- Con estos pasos siguiendolos al pie de la letra se podrá configurar de forma eficiente el kernel, siempre hay
margenes en los cuales la compilación no resulte como lo esperamos (de error), pero, es por eso que debemos tomar
las precauciones del caso haciendo un respaldo de todo lo que tenemos antes de la compilación, además de mantener
los kernel antiguos guardados para restaurar el sistema en caso de ver el Kernel Panic!...

2.- Se hace mención que este manual se preparo para los usuarios de Linux o Linuxeros con el apoyo de un tutorial
extraido desde internet de la web de Raúl Prieto Fernandez y del cual me apoye en su momento para poder compilar el
Kernel en mi equipo personal con muy buenos resultados (por lo menos en mi equipo resulto) y dejo su web en la
siguiente página en bibliografía por si alguno de los usuarios quiere revisarla.

3.- Este manual no es apto para los usuario que solo quieran usar su equipo (PC o Laptop)
con Linux sin tener demasiadas complicaciones o que no quiera usar la konsola.

16
conclusión:
Este manual o tutorial es realizado en apoyo a los usuarios de las distribuciones GNU/Linux para que puedan
compilar su Kernel de la forma más práctica posible y así cooperar con los usuarios de Linux menos avanzados, para
que vayan practicando las diferentes alternativas de; trabajar, perfecionar, mejorar, dejar a punto y a gusto personal su
Distribución Linux o también llamdo “sitema operativo Linux”.

Cabe mencionar como en todo mis manuales o tutoriales, se informa que este es de distribución completamente gratuita
por lo cual se puede usar, compartir o distribuir solamente de la misma manera a todo el que lo quiera usar.

También se menciona que está prohibido cobrar bajo ninguna circunstancia por este manual, ya que está apoyado en la
ley del Copyleft con el objetivo de propiciar el libre uso y distribución de está y todas mis obra.

Se deja constancia que este manual tampoco (NO) infringe ninguna ley internacional por derecho de autor o
copyright.
Por lo tanto los usuarios que decidan usarlo o distribuirlo deben mantener y usar las mismas condiciones que acá se
mencionan.

Bilbiografía - web utlizadas:


1. Kernel Descarga : [Link]
2. ¿Qué es el Kernel de Linux? : [Link]
3. Núcleo Kernel : [Link]
4. Linus Torvalds :[Link]
5. Como compilar el Kernel Linux 10p : [Link]
17
Pensamiento para reflexionar

“Debes asumir la responsabilidad personal.


No puedes cambiar las circunstancias, las
estaciones o el viento,
pero puedes cambiarte a ti mismo...
Eso es algo de lo que Tú estás a cargo”.

También podría gustarte