# 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-04-29 - Suppression du paramètre STEPS - Ajout du paramètre TARGET (afin de spécifier une distribution cible, ex: debian) - Cibles de compilation: debian, 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