Compilar Linux a medida de tu hardware

Tengo un portatil con Debian 12 y i3wm, me va perfecto para lo que requiero de el, pero siempre esta bien mirar de sacar más rendimiento. Celeron 3350, 120Gb ssd y 6Gg de ram.
Ayer me pico la curiosidad y le pregunte a chatgpt. Para compilar el kernel.

¡Perfecto! Vamos a hacer una compilación más rápida y personalizada del kernel, reduciendo lo que no necesitas y optimizándolo para tu Intel Celeron. Usaremos una herramienta muy útil: make localmodconfig.

:brain: ¿Qué es make localmodconfig?

Este comando crea una configuración mínima del kernel basada en los módulos actualmente cargados en tu sistema. Es ideal si quieres un kernel solo con soporte para el hardware que estás usando.
:white_check_mark: Requisitos previos

Asegúrate de tener instalado lo siguiente:

sudo apt install build-essential libncurses-dev bison flex libssl-dev libelf-dev bc git fakeroot rsync

:brick: PASOS DETALLADOS PARA COMPILAR UN KERNEL MINIMAL PARA CELERON

  1. :inbox_tray: Descargar y preparar el kernel

cd /usr/src
sudo wget https://cdn.kernel.org/pub/linux/kernel/v6.x/linux-6.1.37.tar.xz
sudo tar -xf linux-6.1.37.tar.xz
cd linux-6.1.37

  1. :open_file_folder: Usar la configuración del kernel actual

cp /boot/config-$(uname -r) .config

  1. :chart_decreasing: Reducir configuración con localmodconfig

Este comando escanea todos los módulos cargados y genera una configuración mínima basada en eso:

make localmodconfig

⚠️ Este paso puede pedirte que confirmes algunos cambios (responde y o presiona ENTER para aceptar por defecto).

Esto desactiva los drivers que no estás usando actualmente, haciendo la compilación mucho más rápida.
4. :brain: Ajustar para Intel Celeron (opcional pero recomendado)

Lanza el menú de configuración:

make menuconfig

Cambia lo siguiente:
➤ Processor type and features

Processor family: selecciona Intel Atom o Generic x86 (depende del modelo exacto de Celeron).

Desactiva otras arquitecturas si están activadas (AMD, etc.).

Desactiva opciones como "NUMA support" (útil en servidores, innecesario aquí).

➤ Opcional: desactiva soporte para sistemas de archivos que no uses (ReiserFS, HFS, etc.)
5. :brick: Compilar el kernel optimizado

make -j2 deb-pkg LOCALVERSION=-celeron

Este paso tarda de 45 a 90 minutos en un Celeron dual-core.
6. :package: Instalar el nuevo kernel

cd ..
sudo dpkg -i linux-image-6.1.37-celeron_.deb linux-headers-6.1.37-celeron_.deb

  1. :repeat_button: Actualizar GRUB y reiniciar

sudo update-grub
sudo reboot

Después del reinicio:

uname -r

Debe mostrar algo como: 6.1.37-celeron
:puzzle_piece: ¿Quieres más personalización?

Puedo ayudarte con:

Un .config preajustado para tu modelo exacto de Celeron (si me das el resultado de lscpu)

Incluir solo ciertos sistemas de archivos o módulos

Hacer que todo esté embebido en el kernel sin módulos externos (monolítico)

¿Te gustaría avanzar con alguno de esos ajustes?

3 Me gusta

Lo malo, es que si me decido a hacerlo, esa maquina con 2 núcleos, hacerla trabajar durante 90m, si no es algo más compilando el código, puede pillar un buen calentón :sob:
Aunque podría caber la posibilidad, que el trabajo duro lo realizara, otra maquina, no se si sería factible?

Buenas, he movido el tema a la categoría Principiantes que me parece mas correcta.
Un saludo : ) .

No debería estar en Principiantes puesto que compilar el kernel (Linux) no es algo dedicado para quienes están comenzando en el sistema GNU con Linux.

Como esto no alcanza a ser un curso, sino la presentación de un comentario de algo personal (la petición a ChatGPT a cerca de la modificación del kernel (Linux) para si mismo) lo he movido a off-topic, pues no resuelve nada en otra categoría.

2 Me gusta

Espero no haber incumplido ninguna norma del foro, simplemente quería exponer el tema, para ver puntos de vista y si a alguien le puede ayudar, pues mejor que mejor.

Para nada, que tengas un muy buen día colega. :slight_smile:

3 Me gusta

Bien, no estaba muy seguro como categorizarlo tampoco… Aunque Cursos sé que no es.
Gracias por tu aporte.

SInceramente, lo hallo fascinante, es por esto que los OS abiertos son superiores, podemos sacar un mejor rendimiento, de forma mas personal para cada dispositivo, increible.

Me parece interesante como primer paso. Pero si ya van a entrar a la configuración del kernel, también seria prudente ir desactivando todas las características que no necesitas. Como desactivar los drivers de nvidia si no tienes una, y así con otros elementos que no son parte del computador.

Para ello eso empleas https://wiki.gentoo.org/wiki/Distcc (compilar empleando otras computadoras), y le limitas la cantidad de núcleos locales a 1. Así el trabajo lo hace otras maquinas en red.

lefelipe
Si te fijas bien en el tuto, en el apartado 4, “Aquí se hace referencia a lo que comentas” se lanza el comando make menuconfig aquí entras en la configuración del kernel y puedes desactivar todos aquellos apartados que no necesites o no tengas ese hardware en la maquina en cuestión.
Evidentemente se ha de ir con extremo cuidado, para no desactivar opciones, que se requieran.
Gracias por la idea de la wiki de Gentoo, lo mirare.