142 lines
4.1 KiB
Markdown
142 lines
4.1 KiB
Markdown
# Compilation de kernel pour VM Debian avec processeur Intel
|
||
|
||
Récupération, décompression des sources du Kernel linux sur kernel.org, optimisation des réglages pour utilisation dans une VM.
|
||
|
||
## Prérequis
|
||
|
||
- Hyperviseur Proxmox
|
||
- Machine hôte avec processeur Intel
|
||
- Système d’exploitation pour VM sous Debian
|
||
- Disposer du fichier de configuration noyeau de type Cloud
|
||
|
||
## Usage
|
||
|
||
```bash
|
||
sudo bash kernel.sh [branch] [version] [compile]
|
||
```
|
||
|
||
- branch : la branche majeur du kernel
|
||
- version : la version du kernel à utiliser
|
||
- compile : **optionnel**, utilisé pour passer la récupération des sources et leur décompression
|
||
|
||
Exemple :
|
||
|
||
```bash
|
||
sudo bash kernel.sh 6.x 6.8.1
|
||
```
|
||
|
||
## Résultats
|
||
|
||
- linux-headers-6.8.1-clang-amd64_6.8.1-1_amd64.deb : 8.5 Mo
|
||
- linux-image-6.8.1-clang-amd64-dbg_6.8.1-1_amd64.deb : 194 Mo
|
||
- linux-image-6.8.1-clang-amd64_6.8.1-1_amd64.deb : 22 Mo
|
||
- linux-libc-dev_6.8.1-1_amd64.deb : 1.3 Mo
|
||
|
||
## TODO
|
||
|
||
- ~~voir s'il est possible d'optimiser encore plus les disable/enable en restant stable~~
|
||
- ~~trouver comment rendre compatible le kernel pour une VM avec drivers Nvidia~~
|
||
- ajouter le test de la signature du kernel après téléchargement
|
||
|
||
## CHANGELOG
|
||
|
||
### 2024-05-07
|
||
|
||
- Ajout de CONFIG_MULTIUSER, CONFIG_TASKSTATS et CONFIG_TASK_XACCT pour Victoria Metrics
|
||
|
||
### 2024-05-06
|
||
|
||
- Ajout de CONFIG_TASK_IO_ACCOUNTING pour Victoria Metrics
|
||
|
||
### 2024-04-29
|
||
|
||
- Corrections bug de copier/coller (manque d'appel de doDownload & doUncompress)
|
||
- Suppression du paramètre STEPS
|
||
- Ajout du paramètre TARGET (afin de spécifier une distribution cible, ex: debian)
|
||
- Cibles de compilation: debian, ubuntu
|
||
- Corrections pour la compilation à destination d'Ubuntu
|
||
|
||
### 2024-04-26
|
||
|
||
- Gestion des versions du kernel
|
||
- Tag dans le nom du kernel définissant sécurisé/non sécurisé
|
||
|
||
### 2024-04-19
|
||
|
||
- Ajustements de la configuration RCU
|
||
- Ajustement des options de sécurité
|
||
|
||
### 2024-04-09
|
||
|
||
- Mise en place de dossiers spécifiques _(configs, options, patches)_
|
||
- Renommage de 'more uarch' et 'cloud-amd64'
|
||
- Déplacement des options dans des fichiers spécifiques _(lisibilité du code et maintenance)_
|
||
- Corrections cosmétiques _(indentations, espaces...)_
|
||
|
||
### 2024-03-20
|
||
|
||
- Suppression du 'Fast Kernel Headers' _(provoque de nombreuses erreurs de compilation)_
|
||
- Corrections de flags _(empêchant notamement l'exécution de dmesg)_
|
||
- Corrections de chemins
|
||
|
||
### 2024-03-19
|
||
|
||
- Corrections mineures
|
||
- Déplacement du dépôt
|
||
- Modification du répertoire de contruction (build)
|
||
|
||
### 2024-03-16
|
||
|
||
- Mise à jour Kernel 6.8.1
|
||
- Utilisation par défaut de Clang (fonctionnel y compris pour Nvidia)
|
||
- Désactication des mitigations par défaut
|
||
|
||
### 2024-03-11
|
||
|
||
- Mise à jour Kernel 6.8
|
||
- Mise à jour de la configuration du patch 'more uarch' (6.8-rc4+)
|
||
|
||
### 2024-03-02
|
||
|
||
- Modularisation des options par variable de conditionnement
|
||
- Ajout du 'Fast Kernel Headers' _(désactivé pour le moment)_
|
||
- Ajustment des options permettant l'installation de pilote Nvidia
|
||
- IPv6 remis (sinon certains conteneurs déconnent)
|
||
|
||
### 2024-02-23
|
||
|
||
- Correction de problèmes de configuration produisant un kernel défaillant
|
||
|
||
### 2024-02-22
|
||
|
||
- Mise à jour de la configuration du patch 'more uarch' (6.1.79-6.8-rc3)
|
||
- Compilation en modules par défaut
|
||
|
||
### 2024-02-10
|
||
|
||
- Mise à jour de la configuration cloud du kernel (config-cloud-amd64 v6.6.9)
|
||
- Retour au compilateur GCC par défaut (compatibilité)
|
||
- Correction de bugs liés aux **\_ACL** et **\_XATTR** (réactivation des options)
|
||
- Intégration des _crypto_ dans le kernel
|
||
|
||
### 2024-01-07
|
||
|
||
- Mise à jour de la configuration cloud du kernel (config-cloud-amd64 v6.5.13)
|
||
- Mise à jour du patch pour ajouter des configurations processeurs (more-uarches-for-kernel.patch)
|
||
- Mise à jour et optimisation du script (kernel.sh)
|
||
- Passage de GCC à CLang pour les compilations
|
||
|
||
### 2023-11-30
|
||
|
||
- Amélioration des sélections dans les options (enable/disable)
|
||
- Ajout d'un flag TESTING conditionnant l'appel de la fonction doDefaultsTesting _(pour tester d'autres options...)_
|
||
|
||
### 2023-11-24
|
||
|
||
- Correction de bugs liés aux disable/enable _(options du .config)_
|
||
- Test ok avec v6.6.1 et v6.6.2 du kernel sur VM Debian sous Proxmox
|
||
|
||
### 2023-11-22
|
||
|
||
- Commit initial
|