Vous n'êtes pas identifié(e).
L'icône rouge permet de télécharger chaque page du wiki visitée au format PDF et la grise au format ODT →
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révision Les deux révisions suivantes | ||
doc:systeme:kernel:compiler [13/04/2021 16:22] jpt [3 Décompression et préparation des sources pour la compilation du kernel!] |
doc:systeme:kernel:compiler [18/06/2021 10:43] naguam [2 C'est parti! Prérequis!] |
||
---|---|---|---|
Ligne 30: | Ligne 30: | ||
Il nous faudra donc installer des dépendances nécessaires à la compilation (en root) | Il nous faudra donc installer des dépendances nécessaires à la compilation (en root) | ||
- | <code root>apt install build-essential fakeroot dpkg-dev perl libssl-dev bc gnupg dirmngr libncurses5-dev libelf-dev flex bison lsb-release rsync</code> | + | <code root>apt install build-essential fakeroot dpkg-dev perl libssl-dev bc gnupg dirmngr libncurses-dev libelf-dev flex bison lsb-release rsync dwarves</code> |
- | [[https://www.phoronix.com/scan.php?page=news_item&px=Linux-Now-Needs-Flex-Bison|Flex et Bison sont des dépendances nécessaires à partir du 4.16]] à cause d'une modification du [[http://www.tuxmachines.org/node/108705|kconfig pour la gestion]] du kernel dans un paquet pour snappy... Vive canonical (ironie :-/) | + | ''dwarves'' est nécessaire avec la configuration debian à partir de debian bullseye, et uniquement si vous laissez la partie debug activée dans la suite du tutoriel. |
- | Il est possible que la version de `libncurses` ne soit pas "5", dans ce cas il suffit de remplacer `libncurses5-dev` par `libncurses-dev` | + | Si vous avez les dépôts src dans votre sources.list et que, n'avoir que le minimum de dépendances ne vous importe pas, vous pouvez également faire (en root) |
+ | |||
+ | <code root>apt build-dep linux</code> | ||
+ | |||
+ | Cela installera les dépendances exactes du kernel packagé dans debian; dépendances choisies et utilisées par les mainteneurs. | ||
+ | |||
+ | Normalement ça s'accorde assez bien avec une configuration faite avec ''make olddefconfig'', que nous verrons plus tard dans le tutoriel. | ||
==== 2.2 Répertoire de compilation ==== | ==== 2.2 Répertoire de compilation ==== | ||
Ligne 129: | Ligne 135: | ||
Pour plus d'infos sur les options de configuration, les informations seront en bas de page. | Pour plus d'infos sur les options de configuration, les informations seront en bas de page. | ||
- | **Ensuite nous devons désactiver les clef du kernel car sinon nous aurons droit à une belle erreur de compilation** | + | **Ensuite nous devons désactiver les clefs du kernel car sinon nous aurons droit à une belle erreur de compilation** |
+ | |||
+ | En effet le kernel debian est signé avec les clefs debian. Reprendre leur configuration c'est tenter de réutiliser leurs clefs, sauf que comme c'est pas le même kernel avec les même sources, ça va poser problème. | ||
+ | |||
+ | Nous voulons donc générer de nouvelles clefs. La commande suivante permet donc de désactiver les actuelles, et au début de la compilation, deux validations (entrée pour une valeur par default) vous seront demandé et les nouvelles clef générées. | ||
<code user>./scripts/config -d CONFIG_MODULE_SIG_ALL -d CONFIG_MODULE_SIG_KEY -d CONFIG_SYSTEM_TRUSTED_KEYS</code> | <code user>./scripts/config -d CONFIG_MODULE_SIG_ALL -d CONFIG_MODULE_SIG_KEY -d CONFIG_SYSTEM_TRUSTED_KEYS</code> | ||
Ligne 163: | Ligne 173: | ||
==== 4.2 Toujours plus d'optimisation de temps en ne créant que les paquets nécessaires ==== | ==== 4.2 Toujours plus d'optimisation de temps en ne créant que les paquets nécessaires ==== | ||
- | Nous allons créer les paquets avec ''bindeb-pkg'', cela ne créer que les binaires les plus utiles (certains indispensables) si vous voulez les nouvelles sources reconstruites, il vous faut faire __**étape 4.1**__ | + | Nous allons créer les paquets avec ''bindeb-pkg'', cela ne va créer que les binaires les plus utiles (certains indispensables) si vous voulez les nouvelles sources reconstruites, il vous faut faire __**l'étape 4.1**__ |
Nous pouvons nous mettre à compiler | Nous pouvons nous mettre à compiler | ||
Ligne 189: | Ligne 199: | ||
<code user>cd ..</code> | <code user>cd ..</code> | ||
- | Ensuite, pour installer le kernel, nous devons au minimum installer l'image et les headers **mais je conseille d'installer tout les .deb créés si vous ne manquez pas d'espace de stockage.** (commandes suivantes faites en root) | + | Ensuite, pour installer le kernel, nous devons au minimum installer l'image et les headers **mais je conseille d'installer tous les .deb créés si vous ne manquez pas d'espace de stockage.** (commandes suivantes faites en root) |
<code root>dpkg -i *.deb</code> | <code root>dpkg -i *.deb</code> | ||
- | Pour Désinstaller: | + | Pour désinstaller: |
<code root>dpkg -P *.deb</code> | <code root>dpkg -P *.deb</code> | ||
Ligne 201: | Ligne 211: | ||
__Vous pouvez aussi désinstaller avec apt.__ | __Vous pouvez aussi désinstaller avec apt.__ | ||
- | <note warning>Moi, sur la plupart des machines sur lesquelles j'ai appliqué le tutoriel, j'avais ensuite un message au boot de ''pcspkr is already registered''. Du coup, j'ai dû le blacklister : <code root>echo "blacklist pcspkr" > /etc/modprobe.d/blacklist-pcspkr.conf</code> (de plus pcspkr est un module kernel qui sert seulement au beeps systeme en tty par exemple quand on fait retour trop loin pour supprimer du texte)</note> | + | <note warning>Moi, sur la plupart des machines sur lesquelles j'ai appliqué le tutoriel, j'avais ensuite un message au boot de ''pcspkr is already registered''. Du coup, j'ai dû le blacklister : <code root>echo "blacklist pcspkr" > /etc/modprobe.d/blacklist-pcspkr.conf</code> (de plus pcspkr est un module kernel qui sert seulement au beep système en tty par exemple quand on fait retour trop loin pour supprimer du texte)</note> |
==== Avertissement ==== | ==== Avertissement ==== | ||
Ligne 220: | Ligne 230: | ||
Il faut que je teste un peu plus, mais généralement, il ne reste que 2 noyaux installés. \\ | Il faut que je teste un peu plus, mais généralement, il ne reste que 2 noyaux installés. \\ | ||
- | N'installez jamais plusieurs version de noyaux sans vérifier que l'avant-dernier fonctionne, sinon... | + | N'installez jamais plusieurs versions de noyau sans vérifier que l'avant-dernier fonctionne, sinon... |
* désinstallez un noyau qui ne convient pas auparavant | * désinstallez un noyau qui ne convient pas auparavant | ||
* ou an//nul//ez ce script | * ou an//nul//ez ce script |