Kernel

Compilació i personalització del Kernel Linux

El primer pas és comprovar els fitxers descarregats i descomprimir el codi font del kernel. Tal com es mostra a continuació:

1

Un cop descomprimit, accedim al directori del kernel i carreguem la configuració per defecte basada en el kernel actual amb la comanda:

2

3

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.

4

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:

5

Després, utilitzem make menuconfig per ajustar paràmetres addicionals i afegir una versió local al kernel.

6

7

8

9

10

11

12

Un cop modificat amb l’old menu config creem un patch personalitzat per a l’arrencada del kernel.

13

Apliquem la diferencia del patch al main.c

14

15

Un cop fet el patch i l’old menu config, canviarem alguns parametres.

16

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.

17

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ó.

18

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.

19

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.

20

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.

21

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.

22

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.

23

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ó.

24

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:

25

26

Com es pot les configuracions s’han aplicat.

← Torna a l’índex