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 | ||
doc:systeme:noyau:compiler [19/03/2014 14:03] captnfab images HS |
doc:systeme:noyau:compiler [18/05/2017 21:10] (Version actuelle) naguam [Compiler un noyau] |
||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
====== Compiler un noyau ====== | ====== Compiler un noyau ====== | ||
+ | |||
+ | |||
+ | * Objet : Compiler un noyau | ||
+ | * Niveau requis : {{tag>avisé}} | ||
+ | * Commentaires : //Compiler un noyau signifie de traduire le code d'un noyau (kernel). // | ||
+ | * Suivi : {{tag>à-tester}} | ||
+ | * Création par [[user>neo]] le 17-05-2010 | ||
+ | * Testé par <...> le <...> | ||
+ | * Commentaires sur le forum : [[http://debian-facile.org/viewtopic.php?id=2600 | Lien vers le forum concernant ce tuto]]((N'hésitez pas à y faire part de vos remarques, succès, améliorations ou échecs !)) | ||
+ | |||
+ | Vous pouvez aussi tenter, si cela ne marche pas, ce tutoriel [[doc:systeme:kernel:compiler|Compiler un kernel sous debian]] | ||
+ | |||
+ | ===== Introduction ===== | ||
Compiler un noyau, cela signifie de traduire le code d'un noyau (kernel) dans un langage interprétable par le processeur. | Compiler un noyau, cela signifie de traduire le code d'un noyau (kernel) dans un langage interprétable par le processeur. | ||
Ligne 25: | Ligne 38: | ||
===== Installer le nécessaire à la compilation du noyau. ===== | ===== Installer le nécessaire à la compilation du noyau. ===== | ||
- | # apt-get update | + | <code root>apt-get update</code> |
- | puis | + | |
- | # apt-get install build-essential fakeroot kernel-package libncurses5-dev | + | puis |
+ | <code root>apt-get install build-essential fakeroot kernel-package libncurses5-dev</code> | ||
Il faut maintenant installer le paquet du noyau que l'on veut compiler, si vous avez plusieurs dépôts, utiliser apt-cache search linux-source, pour voir les différentes version disponible, puis installer. | Il faut maintenant installer le paquet du noyau que l'on veut compiler, si vous avez plusieurs dépôts, utiliser apt-cache search linux-source, pour voir les différentes version disponible, puis installer. | ||
- | {{http://images.debian-facile.org/manuel/searchn.png|}} | + | {{/manuel/searchn.png|}} |
- | {{http://images.debian-facile.org/manuel/installn.png|}} | + | {{/manuel/installn.png|}} |
L'archive linux-source s'installe par défaut dans /usr/src. | L'archive linux-source s'installe par défaut dans /usr/src. | ||
Ligne 43: | Ligne 57: | ||
Le nécessaire est installé, on va maintenant créer un répertoire nommé compil dans /home et s'y placer pour décompresser l'archive du noyau. | Le nécessaire est installé, on va maintenant créer un répertoire nommé compil dans /home et s'y placer pour décompresser l'archive du noyau. | ||
- | $ mkdir compil && cd compil | + | <code user>mkdir compil && cd compil</code> |
Puis, une fois dans le répertoire compil, décompressez l'archive se trouvant dans /usr/src | Puis, une fois dans le répertoire compil, décompressez l'archive se trouvant dans /usr/src | ||
- | $ tar xvf /usr/src/linux-source-2.6.24-rc5.tar.bz2 | + | <code user>tar xvf /usr/src/linux-source-2.6.24-rc5.tar.bz2</code> |
- | {{http://images.debian-facile.org/manuel/mkd.png|}} | + | {{/manuel/mkd.png|}} |
Puis, rendez-vous dans le dossier décompressé | Puis, rendez-vous dans le dossier décompressé | ||
- | $ cd linux-source-2.6.24-rc5 \\ | + | <code user>cd linux-source-2.6.24-rc5</code> |
- | {{http://images.debian-facile.org/manuel/cdlin.png|}} | + | {{/manuel/cdlin.png|}} |
Nous allons maintenant copier le fichier .config de votre noyau actuel se trouvant dans le répertoire /boot | Nous allons maintenant copier le fichier .config de votre noyau actuel se trouvant dans le répertoire /boot | ||
- | $ cp /boot/config-$(uname -r) .config | + | <code user>cp /boot/config-$(uname -r) .config</code> |
Saisissez la commande: | Saisissez la commande: | ||
- | $ make oldconfig | + | <code user>make oldconfig</code> |
Cette commande permet d'adapter une configuration d'une précédente version du noyau à une nouvelle en vous posant des questions sur les nouvelles fonctionnalités à configurer au besoin. | Cette commande permet d'adapter une configuration d'une précédente version du noyau à une nouvelle en vous posant des questions sur les nouvelles fonctionnalités à configurer au besoin. | ||
Ligne 73: | Ligne 87: | ||
Une fois terminé, vous pouvez lancer l'utilitaire de configuration du noyau : | Une fois terminé, vous pouvez lancer l'utilitaire de configuration du noyau : | ||
- | $ make menuconfig | + | <code user>make menuconfig</code> |
Vous pouvez faire le tour des options à configurer, vous pouvez vous aidez de ce site | Vous pouvez faire le tour des options à configurer, vous pouvez vous aidez de ce site | ||
* [[http://casteyde.christian.free.fr/system/linux/guide/online/a12863.html|Options du noyau]] | * [[http://casteyde.christian.free.fr/system/linux/guide/online/a12863.html|Options du noyau]] | ||
- | Pour personnaliser votre noyau. L'activation ou désactivation d'options se fait via la touche ''[espace]'' de votre clavier et le déplacement avec les flèches de direction. | + | Pour personnaliser votre noyau. L'activation ou désactivation d'options se fait via la touche <key>Espace</key> de votre clavier et le déplacement avec les flèches de direction. |
- si < > --> l'option sera désactivée. | - si < > --> l'option sera désactivée. | ||
- si <*> --> l'option sera compilée en dur. | - si <*> --> l'option sera compilée en dur. | ||
- si <M> --> l'option sera configurée en module. | - si <M> --> l'option sera configurée en module. | ||
- | Si vous connaissez bien votre matèriel, mettez en dur les options concernant votre matèriel, il suffit ensuite de sélectionner : | + | Si vous connaissez bien votre matériel, mettez en dur les options le concernant, il suffit ensuite de sélectionner : |
Save an Alternate Configuration File | Save an Alternate Configuration File | ||
Validez --> Validez ''OK'' --> Validez ''exit'' | Validez --> Validez ''OK'' --> Validez ''exit'' | ||
Ligne 91: | Ligne 105: | ||
Pour rappel, ''kernel_headers'' (ou, une fois installé, ''linux-headers-2.6.24'') permet de construire des modules pour le pilote graphique ou autres pilotes via module-assistant. | Pour rappel, ''kernel_headers'' (ou, une fois installé, ''linux-headers-2.6.24'') permet de construire des modules pour le pilote graphique ou autres pilotes via module-assistant. | ||
- | $ fakeroot make-kpkg --initrd --append-to-version=-perso kernel_image kernel_headers | + | <code user>fakeroot make-kpkg --initrd --append-to-version=-perso kernel_image kernel_headers</code> |
Vous pouvez changer ''-perso'' par autre chose, cette option se rajoute à la fin du nom du noyau --> | Vous pouvez changer ''-perso'' par autre chose, cette option se rajoute à la fin du nom du noyau --> | ||
Ligne 105: | Ligne 119: | ||
Editer le fichier ''/etc/kernel-pkg.conf'' : | Editer le fichier ''/etc/kernel-pkg.conf'' : | ||
- | # nano /etc/kernel-pkg.conf | + | <code root>nano /etc/kernel-pkg.conf</code> |
Et ajouter à la fin : | Et ajouter à la fin : | ||
Ligne 124: | Ligne 138: | ||
Si vous n'avez pas ajouter ''ROOT_CMD=fakeroot'', saisissez la commande : | Si vous n'avez pas ajouter ''ROOT_CMD=fakeroot'', saisissez la commande : | ||
- | $ fakeroot make-kpkg --us --uc --initrd --append-to-version=-perso buildpackage | + | <code user>fakeroot make-kpkg --us --uc --initrd --append-to-version=-perso buildpackage</code> |
Si vous avez ajoutez ROOT_CMD=fakeroot, saisissez la commande : | Si vous avez ajoutez ROOT_CMD=fakeroot, saisissez la commande : | ||
- | $ make-kpkg --us --uc --initrd --append-to-version=-perso buildpackage | + | <code user>make-kpkg --us --uc --initrd --append-to-version=-perso buildpackage</code> |
Et validez. | Et validez. | ||
Ligne 136: | Ligne 150: | ||
===== Installation des paquets .deb ===== | ===== Installation des paquets .deb ===== | ||
- | Lorsque la compilation est terminé, vous pouvez installer les paquets ''.deb'' créés dans le répertoire ''~/compil'' | + | Lorsque la compilation est terminée, vous pouvez installer les paquets ''.deb'' créés dans le répertoire ''~/compil'' |
Pour revenir dans le répertoire ''compil'', saisissez : | Pour revenir dans le répertoire ''compil'', saisissez : | ||
- | $ cd .. | + | <code user>cd ..</code> |
Vous y trouverez les paquets ".deb" créés. | Vous y trouverez les paquets ".deb" créés. | ||
- | Vous pouvez maintenant passez en ''root'' pour les installer avec la commande ''dpkg -i'' . | + | Vous pouvez maintenant passer en ''root'' pour les installer avec la commande ''dpkg -i'' . |
===== Nettoyage avant une seconde compilation ===== | ===== Nettoyage avant une seconde compilation ===== | ||
Ligne 148: | Ligne 162: | ||
Si vous recompilez une deuxième fois le noyau, __pour nettoyer le répertoire__ et effacer les fichiers créés par la précédente compilation, pensez à exécuter cette commande (avec ou sans ''fakeroot'' selon l'astuce précédente) : | Si vous recompilez une deuxième fois le noyau, __pour nettoyer le répertoire__ et effacer les fichiers créés par la précédente compilation, pensez à exécuter cette commande (avec ou sans ''fakeroot'' selon l'astuce précédente) : | ||
- | $ fakeroot make-kpkg clean | + | <code user>fakeroot make-kpkg clean</code> |
N'oubliez pas le ''man'' en ligne de commandes pour voir les différentes options : | N'oubliez pas le ''man'' en ligne de commandes pour voir les différentes options : | ||
- | $ man make-kpkg | + | <code user>man make-kpkg</code> |
===== Option --initrd ===== | ===== Option --initrd ===== | ||
Ligne 171: | Ligne 185: | ||
Merci à : \\ | Merci à : \\ | ||
- | ''engil''// pour sa relecture et ses suggestions/rectifications généreuses, ainsi que pour le procédé de configuration afin d'accélérer la compilation finale !// \\ | + | ''engil''// pour sa relecture et ses suggestions/rectifications généreuses, ainsi que pour le procédé de configuration afin d'accélérer la compilation finale !// \\ |
- | ''juddix''// pour ses suggestions avisées,// \\ | + | |
+ | ''juddix''// pour ses suggestions avisées,// \\ | ||
+ | |||
''captnfab''// pour son aide toujours claire !// \\ | ''captnfab''// pour son aide toujours claire !// \\ |