Cómo compilar el kernel Linux Real Time 5.10 para MX Linux 23

He instalado Debian 12 pero trae el Kernel 6 y este no me deja poner 75 Hz de frecuencia de actualización al monitor de 17" de mi Laptop Dell Inspiron 1750, puede ver sobre esto en:

Cómo poner 75 Hz (frecuencia de actualización) al monitor (de una laptop de 17" o a un monitor externo) usando Linux
https://facilitarelsoftwarelibre.blogspot.com/2023/11/como-poner-75-hz-al-monitor-usando-linux.html

Aclaro que el Kernel 6 si deja poner 75 Hz en los monitores externos pero NO en mi laptop, por eso voy a compilar un Kernel 5.10 que si deja (los Kernel anteriores también dejan)

Este Kernel Real Time yo lo uso para hacer música, vea:

Cómo instalar y usar Jack Audio Connection Kit (JACK) + Ardour y sus plugins con un Kernel de Tiempo Real en MX Linux 21 (basado en Debian 11)
https://facilitarelsoftwarelibre.blogspot.com/2020/10/instalar-realtime-kernel-en-mx-linux.html

Nota: Estos pasos usted los puede modificar para compilar otra versión de Kernel.

Requisitos de compilación

40 GB de espacio en Disco

Buscando un Kernel antiguo pero actualizado

Necesito descargar un a esta fecha 2024-06-24 Kernel y para ver cual es el más antiguo y es el 4.19:

Longterm release kernels
https://www.kernel.org/category/releases.html


Longterm release kernels

Version Maintainer                        Released Projected EOL

6.6 Greg Kroah-Hartman & Sasha Levin 2023-10-29 Dec, 2026

6.1 Greg Kroah-Hartman & Sasha Levin 2022-12-11 Dec, 2026

5.15 Greg Kroah-Hartman & Sasha Levin 2021-10-31 Dec, 2026

5.10 Greg Kroah-Hartman & Sasha Levin 2020-12-13 Dec, 2026

5.4 Greg Kroah-Hartman & Sasha Levin 2019-11-24 Dec, 2025

4.19 Greg Kroah-Hartman & Sasha Levin 2018-10-22 Dec, 2024





Por qué descargar un Kernel antiguo para compilarlo?

Porque puede que tengan un ordenador antiguo  y quiera que rinda mejor, ejemplo tengo un ordenador que fue comprado en el año 2008 y quiero usar MX Linux 23 a esta fecha que hago este tutorial Junio del 2024, entonces necesito un Kernel lo más antiguo que se pueda instalar en este MX Linux 23 porque debe saber usted que un Kernel lo que tiene de importante es que funcionen el hardware de su ordenador y que sea seguro (esté actualizado). Nota: Los Kernel tienen una fecha en que ya no se les dará más soporte, y a este Kernel 5.10 también le pasará lo mismo, pero viejo no quiere decir que no sirva sino que no estará actualizado para alguna vulnerabilidad que se pueda encontrar en el futuro, pero yo lo veo de esta forma, mientras una persona no navegue en paginas malas estará seguro así sea que use un Kernel sin las ultimas actualizaciones (recomiendo en ese caso  cuando se termine el soporte es posible que yo lo siga usando y usaré: https://www.mywot.com/download u otro semejante) ademas que no hay que andar instalando cosas que no estemos seguros que sean seguras o no.

Nota: No puedo instalar un Kernel anterior al 5.10 porque es posible que no funcione bien en MX Linux 23, por el tiempo en que fueron liberados ambos encajan más.

Buscando un parche Real Time

Me voy a descargar un parche Real Time desde:

https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/

debo saber si hay uno 5.10:



Si usted es curioso y desea saber cómo obtuve este enlace pues es desde:

https://www.kernel.org/


ese link es este:

https://www.kernel.org/pub/

pero al dar clic ese enlace se convierte en:

https://mirrors.edge.kernel.org/pub/

y allí clic a:


y allí clic a Kernel:


y allí clic a projects:


y allí clic a rt (Real Time):


y clic a al versión

5.10

y veo que si  hay uno y entro allí:

https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/5.10/




y copio el enlace del parche:

https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/5.10/patch-5.10.218-rt110.patch.xz

Nota: Este enlace con el paso del tiempo es muy posible que ya no esté porque o lo habrán actualizado o habrá salido del soporte.

Entonces como sé que existe el parche Real Time, entonces ahora si busco el Kernel correspondiente, pues es obvio que si hay un parche para ese Kernel entonces habrá el Kernel (por eso no hago la busqueda de primero el Kernel y luego del parque, porque es posible que el parche no haya para alguna versión de Kernel entonces por gusto perdería el tiempo)

Buscando el Kernel 5.10

Como ya tengo el enlace del Kernel, entro en:

https://mirrors.edge.kernel.org/pub/linux/kernel/

busco allí uno 5x


y voy a buscar el Kernel con las siguientes palabras:

linux-5.10.

con 

Crtl + F

buscaré el más actual:



y copio aquí el nombre y la descripción:

linux-5.10.220.tar.xz                              21-Jun-2024 13:03    115M

la versión 220 es la más actualizada con la fecha 24 de junio 2024 entonces esa la utilizaré, copio el enlace:

https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.10.220.tar.xz


DESCARGA DE AMBOS

Recomiendo que lo descarguen dentro de una carpeta para este caso con algun nombre que la identifique, en mi caso yo lo hago en la ruta que he creado: /home/wachin/Dev/kernel5.10/, allí dentro pongo en la terminal:

wget -c https://mirrors.edge.kernel.org/pub/linux/kernel/projects/rt/5.10/patch-5.10.218-rt110.patch.xz
wget -c https://mirrors.edge.kernel.org/pub/linux/kernel/v5.x/linux-5.10.220.tar.xz


Extracción y parchado del Kernel

Se puede descomprimir el Kernel con clic derecho y extraer aquí:



o también desde la terminal con:

tar xJvf linux-5.10.220.tar.xz

como sea que usted descomprima el archivo debe que darle así:



debo entrar allí en una terminal con:

cd linux-5.10.220

si lo descomprimió desde la terminal y con clic derecho abrir terminal aquí, como sea que lo haya hecho hay que poner lo siguiente:

xzcat ../patch-5.10.218-rt110.patch.xz | patch -p1

Nota: Este comando usted para otro kernel lo debe de editar (cambiar toda la ruta hasta la extensión del nombre del parche)



De Enter y se parchará



Ahora debo copiar el archivo de configuración del Kernel del Sistema, poner en la terminal:

cp /boot/config-`uname -r` .config


En la siguiente imagen tuve que por motivos que tenía que irme apagar la PC entonces entré otra vez y volvi a entrar allí desde una terminal:



y lo podemos ver copiado con  Ctrl + H:


Añadir el nombre del Mantenedor o Responsable a su Sistema para que se compile con ese nombre (Opcional)

Esto es totalmente opcional, no es necesario para compilar el Kernel

Para hacer esto ponga en una terminal lo siguiente (teniendo instalado Gedit u otro editor pero debe cambiar el nombre en la terminal):

gedit ~/.bashrc 

allí debe llegar hasta abajo y con enter hacerse un espacio::


 y allí debe de poner lo siguiente:

DEBEMAIL="your.email.address@example.org"
DEBFULLNAME="Firstname Lastname"
export DEBEMAIL DEBFULLNAME

y cambiar con sus datos, a mi me queda así:

 

ahora cierro el editor de texto y salgo de sesión y vuelvo a entrar. Con esto una vez instalado el Kernel al revisarlo en Synaptic se verá allí su nombre y su correo.

Instalando las dependencias

Instalar:

sudo apt-get install gcc build-essential libncurses5-dev fakeroot wget xz-utils \
	flex bison libssl-dev autoconf automake cmake dwarves openssl libelf-dev \
	libudev-dev libpci-dev libiberty-dev bc python3-sphinx lzop lzma \
	lzma-dev libmpc-dev u-boot-tools gettext rsync

y luego abrir con clic derecho una terminal en el directorio del codigo fuente:


y poner:

make menuconfig



y aparecerá el menú:



Nota: La ventana de la terminal hágala más larga para que aparezcan bien las opciones

Explicación de la ayuda.- Allí dice en inglés:

Arrow keys navigate the menu.  <Enter> selects submenus ---> (or empty submenus ----). 
Highlighted letters are hotkeys.  Pressing <Y> includes, <N> excludes, <M> modularizes features.
Press <Esc><Esc> to exit, <?> for Help, </> for Search.  Legend: [*] built-in  [ ] excluded
<M> module  < > module capable

Cuya traducción significa:

Las teclas de flecha se usan para navegar por el menú. <Enter> selecciona submenús ---> (o submenús vacíos ----).
Las letras resaltadas son teclas de acceso rápido. Presionar <Y> incluye, <N> excluye, <M> modulariza características.
Presione <Esc><Esc> para salir, <?> para Ayuda, </> para Buscar. Leyenda: [*] incorporado [ ] excluido
<M> módulo < > compatible con módulo

Nota: Una de las cosas importantes que dice es que para entrar en alguna opción que tenga sub opciones dar Enter, y para salir Esc dos veces.

El consejo que les doy es que no usen la tecla "Espacio" pues esa es para cambiar las opciones, y usted podría sin querer cambiar algo del Kernel y luego no sabría que cambió. Exepto que sepa lo que estuviera haciendo.

CONFIGURAR EL TIEMPO REAL

Verificar las configuraciones Real Time según el tutorial:


Debe ver si están las siguientes marcadas para convertirlo en un Kernel Real Time:
# Enabled CCONFIG_NO_HZ_IDLE
 -> General setup
  -> Timers subsystem
   -> Timer tick handling (Full dynticks system (tickless))
    (X) Idle dynticks system (tickless idle)

# Enabled CONFIG_HIGH_RES_TIMERS
 -> General setup
  -> Timers subsystem
   [*] High Resolution Timer Support

# Enabled CONFIG_PREEMPT_RT
 -> General setup  -> Preemption Model (Fully Preemptible Kernel (Real-Time))
   (X) Fully Preemptible Kernel (Real-Time) (Nota:los nombres pueden variar por la versión del Kernel)  # Enabled CONFIG_HZ_1000 
 -> Processor type and features
  -> Timer frequency (1000 HZ)
   (X) 1000 HZ

# Enabled CPU_FREQ_DEFAULT_GOV_PERFORMANCE
 ->  Power management and ACPI options
  -> CPU Frequency scaling
    -> Default CPUFreq governor
     (X) performance
 
Para facilidad de entender qué es lo que se hace les pongo unas capturas de pantalla, además de que las opciones pueden variar de versión de Kernel


# Enabled CCONFIG_NO_HZ_IDLE

 -> General setup




  -> Timers subsystem




   Timer tick handling (Idle dynticks system (tickless idle))  ---> 



aparece así:




y doy flecha abajo y aplasto la barra espaciadora para poner:

    (X) Idle dynticks system (tickless idle)

y se sale automáticamente a la ventana anterior pero si se aplicó el cambio, si usted lo que ver, ingrese otra vez allí y verá que ya está marcado:




 Y así mismo con las demás opciones, con la siguiente solo debo ir atrás con Esc dos veces y si está bien:

# Enabled CONFIG_HIGH_RES_TIMERS

 -> General setup
  -> Timers subsystem
   [*] High Resolution Timer Support




por defecto está bien.

# Enabled CONFIG_PREEMPT_RT

 -> General setup

 -> Preemption Model (Voluntary Kernel Preemption (Desktop))  ---> 




al entrar con Enter está en Voluntary Kernel Preemption:




debo dejarla en:

   (X) Fully Preemptible Kernel (Real-Time)




y como atutomáticamente se pone la opcion anterior, al volver a entarr se puede ver que ya está activa esa opción


Para la siguiente me voy atrás dando ESC ESC, ESC ESC

 # Enabled CONFIG_HZ_1000 

 -> Processor type and features


  -> Timer frequency


está por defecto en 250 Hz, debe quedar en 1000:

 -> Timer frequency (1000 HZ)

 entre y con la flecla abajo marquela y de barra espaciadora

salga

y así queda:





# Enabled CPU_FREQ_DEFAULT_GOV_PERFORMANCE

 ->  Power management and ACPI options

  -> CPU Frequency scaling


    -> Default CPUFreq governor




dejarlo en:

     (X) performance


Dar ESC hasta ir al inicio. 

Si usted sin querer llegue hasta salirse:



allí dice:

 Do you wish to save your new configuration?             │  

                    │  (Press <ESC><ESC> to continue kernel configuration.) 

que traducido:

¿Desea guardar su nueva configuración? │

 │ (Presione <ESC><ESC> para continuar con la configuración del kernel).

le doy Enter pues está en YES

y me dice que las configuraciones han sido escritas al archivo:

.config

 y luego volver a poner el comando: 

make menuconfig

Nota: Además puede verificar si el Kernel tiene soporte exFAT en el siguiente tutorial



Compinado el Kernel etiquetandolo

Es posible Compilar el Kernel y ponerle una etiqueta como descripción. En el siguiente ejemplo en LOCALVERSION= está la etiqueta debian11:

make deb-pkg LOCALVERSION=-debian12 KDEB_PKGVERSION=$(make kernelversion)-1


si se pone eso en la terminal con esa etiqueta será compilado el Kernel y eso aparecerá en el deb

yo le voy a poner así  (debe ser sin ningún espacio) para saber que fue compilado en Debian 11 y que es un Kernel Real Time

y doy ENTER


y ahora si a esperar un buen rato hasta que termine la compilación, pueden ser horas

cuando ya fueron generados automáticamente los deb estarán en el directorio anterior de donde lo compilamos:


 y para instalarlos sugiero hacer lo siguiente: 

INSTALACIÓN DE LOS DEB DEL KERNEL

Sólo necesitamos dos los que tienen en el nombre headers e image, menos el archivo que contiene dbg y el que contiene libc-dev, así que lo mejor es que cojamos esos dos y los pongamos dentro de otra carpeta y cuando los tengamos allí instalarlos con:

sudo dpkg -i *.deb


 

Requerimientos para instalar en otro Linux recién instalado

Si estos deb los quiere instalar en otro Linux debe instalar el paquete gcc:

sudo apto install gcc dkms

 pues sino no se podrá instalar

luego reiniciar

 

Eligiendo el Kernel RT

Al iniciar el Sistema Operativo de clic en la opción Avanzada del Grub y allí elija el kernel que hemos compilado


Probando si coge mi tarjeta SD

Quería probar los dos puesto que mi laptop Dell Inspiron 1750 tiene una tarjeta lectora de Memorias SD y funciona bien, que bueno (es que a veces esa tarjetal lectora no funciona en algún Kernel y sin ella no puedo usarla y para mi es imprescindible)

 Lo estoy probando y hasta el momento me funciona bien

Dios les bendiga


CONSULTAS

No se puede montar partición exFAT en algún tipo de Linux porque el Kernel u otro no tiene soporte
https://facilitarelsoftwarelibre.blogspot.com/2023/02/no-se-puede-montar-particion-exfat-en-kernel-linux.html

Compilando Kernel de AV Linux en MX Linux 21 de (32 bits y 64 bits)
https://facilitarelsoftwarelibre.blogspot.com/2022/04/compilando-kernel-de-av-linux-en-mx.html

Debian build fail due debian/certs/debian-uefi-certs.pem #54
https://github.com/Frogging-Family/linux-tkg/issues/54



No hay comentarios.:

Publicar un comentario

Sobre mi


 Hola, soy Washington Indacochea Delgado (Wachín), la siguiente es la historia de cómo empecé a usar Ubuntu. Todo empezó hace muchos años atrás en el año 2007 cuando estaba haciendo un deber y eran como las once de la noche y estaba en la computadora en Windows XP que se había puesto muy lento, demasiado, y había estado lidiando tratando de hacer el deber desde las ocho de la noche y el deber era para el siguiente día y yo ya quería dormir, y seguí tratando de usar la computadora para terminar el deber pero no pude, y ya era pasado de las doce casi la una (luego supe que tenía un virus) y tuve que irme a dormir y yo quedé muy frustrado por lo sucedido, ¡tanto tiempo allí con esa maquina lentísima y sin poder avanzar en la tarea! ¡fue algo horrible! todo funcionaba en camara lenta, era desesperante y sin poder hacer nada y con el apuro de terminar un deber importante para la mañana siguiente (no lo pude entregar).
  Al siguiente día en la noche en la iglesia había el culto de oración, yo fui y allí le pedí a Dios que me ayudará para nunca más volver a pasar por algo así por los virus. Luego pasó medía semana y mi hermano (estudiante de informática, muy inteligente) me dió un CD con el Sistema Operativo Ubuntu 7.10 (Gutsy Gibbon liberado en Octubre del 2007), y el me dijo que a éste no le afectaban los virus, y el me enseñó a instalarlo y me explicó como usarlo. Y desde allí empecé a practicar en este sistema operativo Ubuntu y poco a poco avanzando y leyendo en los foros en español y en inglés (allí hay más información). Pero usaba en ese tiempo más Windows que Ubuntu y ya para el año 2012 cuando hice mi tesis de Ingeniería en Alimentos usaba más Ubuntu (estaba probando los sabores https://kubuntu.org, https://ubuntustudio.org, y me había quedo usando Ubuntu Studio), sin embargo en ese año para hacer mi tesis utilicé Windows porque decía entre mi: "No sea que luego no me acepten mi tesis presentándola en formato odt del LibreOffice o algo me reclamen, o tenga luego yo que pasar de odt a doc, habiendo mucha posibilidad que se mueva algo del formato y tenga que corregirlo lo cual sería horas y horas", pero desde que terminé mi tesis estaba usando casi en su totalidad Ubuntu Studio (soy una persona musical y este UbuntuStudio es también para eso, usa un Kernel de baja latencia). Bien, a la fecha puedo decir que estoy libre de los virus, pero eso si frecuentemente actualizo el Sistema Operativo pues como ya sabrán los que usan Linux esa es la manera de protegerse de posibles ataques. Y también añado que desde el año 2020 estoy usando MX Linux porque Ubuntu dejó de dar soporte a 32 bits y con ello también UbuntuStudio. A continuación les dejo con varios vídeos sobre el tema de porqué Linux es más seguro:


[Aalto Talk with Linus Torvalds (Subtitulado)] min 31:52 sobre el Kernel.

Nota: Estas ultimas dos de Red Hat las puede ver con subtítulos en español si les da clic en la Tuerca y allí lo selecciona entre los varios idiomas que tiene.
Si usted quiere saber las vulnerabilidades que van encontrando en Ubuntu puede revisar esta página:

Ubuntu security notices (usn)

está sobre entendido que una vez que las encuentren las arreglarán y el parche se lo enviarán en las actualizaciones.
Puede leer también:

SecurityTeam - Ubuntu Wiki


 A mediados del 2018 estoy usando Xubuntu 18.04 de 32 bits por la razón de que Ubuntu Studio ha dejado de dar soporte a 32 bits, no obstante para hacer música estoy usando Jack Audio Connection Kit pues he aprendido a configurarlo.

También lea sobre la Historia de esta página

Proyecto Facilitar el Software Libre en el Ecuador: Historia
https://facilitarelsoftwarelibre.blogspot.com/2019/08/historia-de-esta-pagina.html

Que Dios les bendiga