El primer pas és comprovar els fitxers descarregats i descomprimir el codi font del kernel. Tal com es mostra a continuació:
Un cop descomprimit, accedim al directori del kernel i carreguem la configuració per defecte basada en el kernel actual amb la comanda:
Ara editem el fitxer .config per habilitar opcions importants com BPF, CPU Frequency Governors i paràmetres de seguretat (SELinux, SMACK). Aquest pas és clau per personalitzar el comportament del kernel.
També configurem les opcions de xarxa, com els planificadors de cua i els algoritmes de congestió TCP (CUBIC, BBR, etc.), així com el suport per IPv6.
Afegim un missatge personalitzat al procés d’arrencada modificant el fitxer init/main.c i aplicant el patch amb:
Després, utilitzem make menuconfig per ajustar paràmetres addicionals i afegir una versió local al kernel.
Un cop modificat amb l’old menu config creem un patch personalitzat per a l’arrencada del kernel.
Apliquem la diferencia del patch al main.c
Un cop fet el patch i l’old menu config, canviarem alguns parametres.
Al obrir el menú principal de make menuconfig, on podem personalitzar la configuració del kernel abans de compilar-lo. Aquí es mostren les categories principals com General setup, Processor type and features, Networking support, Security options i altres, que permeten habilitar o deshabilitar funcionalitats segons les necessitats.
En aquest apartat del menú General setup podem afegir una versió local al kernel amb l’opció Local version – append to kernel release. Això permet identificar fàcilment el kernel personalitzat afegint un sufix al nom de la versió.
En aquesta finestra s’introdueix el sufix que s’afegirà a la versió del kernel. En aquest cas s’ha escrit -custom-perf, que permet identificar fàcilment el kernel personalitzat quan es mostri a GRUB o en comandes com uname -r.
En aquest apartat de Networking options es configuren les opcions de xarxa del kernel. Aquí s’han habilitat funcionalitats com TCP/IP networking i IP multicasting, juntament amb altres protocols i interfícies relacionades amb sockets, seguretat i transformacions.
En aquest apartat es configuren els algoritmes de control de congestió TCP. S’han habilitat diverses opcions com CUBIC (per defecte) i BBR TCP com a mòdul, que millora el rendiment en xarxes amb alta latència i ample de banda.
En aquesta finestra es guarda la configuració del kernel en un fitxer. S’ha indicat .config com a nom, que és el fitxer per defecte on es desa tota la configuració seleccionada amb menuconfig.
En aquesta imatge s’està editant el fitxer /etc/default/grub per modificar la configuració del carregador GRUB. Aquí es poden ajustar paràmetres com el temps d’espera i l’estil del menú abans d’actualitzar la configuració amb update-grub.
En aquesta imatge s’ha executat la comanda update-grub després de modificar el fitxer de configuració. El sistema genera el fitxer de GRUB i detecta les imatges del kernel disponibles. Finalment, es mostra la comanda make-kpkg –initrd kernel_image kernel_headers, que s’utilitza per compilar el kernel i crear els paquets .deb per a la seva instal·lació.
Un cop acabat fem instalem els paquets deb i reinciem el sistema, entrant amb el nou kernel.
Per comprovar els canvis fets i que s’hagin aplicat podem executar les següents comandes:
Com es pot les configuracions s’han aplicat.