{{tag> système}} ---- ====== Le Noyau : cœur du système d'exploitation ====== Un [[wpfr>kernel|noyau de système d’exploitation]] (abrégé noyau, ou **kernel** en anglais), est la partie fondamentale de certains [[wpfr>Système_d%27exploitation|systèmes d’exploitation]]. Il gère les ressources de l’ordinateur et permet aux différents composants — matériels et logiciels — de communiquer entre eux. === Les types de noyaux === Sous Ubuntu, le noyau pré-installé est **[[linux]]**, il est de type [[wpfr>Noyau_monolithique#Noyaux_monolithiques_modulaires|monolithique modulaire]]. Pour Ubuntu, plusieurs types de noyaux pré-compilés sont proposés : * **generic** : le noyau est compilé avec les options nécessaires à une utilisation **//bureautique//** ou sur un **//serveur//**. Dans la suite du document, c'est ce type qui sera supposé utilisé par défaut. * **[[:kernel_32bits_pae|PAE]]** : ce noyau permet l'adressage de la mémoire au delà de la limite de 3,2 Go sous Ubuntu 32 bits. * **virtual** : le noyau est compilé avec les options nécessaires à une utilisation via une **//machine virtuelle//**. * **lowlatency** ([[:Linux-lowlatency|temps réel]]) : ce noyau est spécifique pour une utilisation **//temps réel//**. C'est le noyau installé par défaut sur [[:Ubuntu Studio]]. ===== Connaître la version du noyau en cours d'utilisation ===== * Pour connaître la version de son noyau Linux utilisé, son nom, la version du compilateur utilisé, taper dans un [[:terminal]] la [[:commande_shell|commande]] suivante: cat /proc/version * Pour connaître seulement la version du noyau en cours d'utilisation :uname -r ===== Lister les noyaux installés ===== Au fil des mises à jour plusieurs noyaux se retrouvent installés sur une machine, pour connaître la liste des noyaux installés, taper dans un [[:terminal]] : dpkg -l | grep -Ei "linux-(g|h|i|lo|si|t)" ===== Installer une autre version de noyau ===== Le noyau Linux est en constante évolution. Chaque nouvelle [[:versions|version d'Ubuntu]] inclut une nouvelle version du noyau Linux par rapport à la précédente. Si cela permet de corriger des bugs et de proposer de nouvelles fonctionnalités, il arrive que cela entraîne des régressions (dans le pire des cas, cela empêche de démarrer Ubuntu). Dans ce cas, vous pouvez être amené à installer d'autres versions du noyau Linux (plus récentes ou plus anciennes). Si dans une [[:lts|version LTS d'Ubuntu]] vous souhaitez utiliser de manière sécurisée le noyau d'une [[:versions|version d'Ubuntu]] stable supérieure, voir [[:ltsenablementstack|cette page]]. Installer et utiliser une autre version de noyau est à réserver aux utilisateurs avertis. * Ne pas installer un noyau d'une [[architecture_materielle|architecture]] différente de celui déjà pré-installé. * L'installation du noyau d'une autre version d'Ubuntu rend impossible l'installation des pilotes supplémentaires, qui seront toujours "activés" mais pas en cours d'utilisation. * La version du [[wpfr>xorg|serveur graphique]] pré-installée n'est pas forcément compatible avec d'autres noyaux. Sauf à savoir ce que vous faites, n'installez pas un nouveau noyau sans installer la version du [[wpfr>xorg|serveur graphique]] correspondante. ==== Installation simple ==== - Rendez-vous sur le site correspondant à la version de noyau voulue: soit [[http://packages.ubuntu.com/search?keywords=linux-generic|packages.ubuntu.com]] (kernels stables, par défaut de toutes les versions d'Ubuntu), soit [[http://kernel.ubuntu.com/~kernel-ppa/mainline/|kernel.ubuntu.com]] (version de développement, appelée "mainline", que les développeurs vous demanderont généralement de tester). - Téléchargez les 4 paquets composant le kernel voulu, généralement: * ''**linux-headers-****_****_all.deb**'' * ''**linux-headers-****-generic_****_****.deb**'' * ''**linux-image-****-generic_****_****.deb**'' * ''**linux-image-extra-****-generic_****_****.deb**'' (optionnel, mais généralement requis pour les tests)\\ Si votre système est 64bit, est amd64.\\ Si votre système est 32bit, est i386. - [[:tutoriel:comment_installer_un_paquet|Installez les paquets téléchargés]] (par exemple en double-cliquant dessus puis installer via la Logithèque) dans l'ordre ci-dessus. - Mettre à jour le menu [[:grub-pc|Grub]] (sudo update-grub) - Redémarrez l'ordinateur. Le menu [[:grub-pc|GRUB]] vous permettra de choisir le nouveau noyau. ==== Via les sources ==== Une autre possibilité, plus compliquée, est de télécharger les sources du noyau Linux soit depuis les dépôts, soit sur le site [[http://www.kernel.org/|kernel.org]] [en] et de les compiler vous-même. Pour ce faire, de nombreuses options doivent être définies si vous souhaitez avoir un support complet de votre matériel. Plusieurs outils sont disponibles pour vous assister dans cette tache, de même que plusieurs tutoriels : * [[:tutoriel:kernel_options|Choisir les options lors de la compilation du noyau]] * depuis les dépôts sources : * [[tutoriel:compiler_linux|Compiler son kernel]] * [[:tutoriel:comment_compiler_un_kernel_sur_mesure|Comment compiler un noyau sur mesure ?]] * depuis kernel.org : * [[:tutoriel:comment_compiler_un_kernel_de_kernel.org|Comment compiler un noyau de Kernel.org]] ===== Suppression des anciens noyaux ==== Si le menu [[:grub-pc|GRUB]] propose plusieurs versions de noyau, il est possible d'en désinstaller certains. La suppression des anciens noyaux permet de gagner de la place, mais cette manipulation demande de l'attention ! Il est prudent de **toujours conserver les deux derniers noyaux** car en cas d'impossibilité de démarrer sur le dernier noyau (une incompatibilité des pilotes par exemple), il restera toujours la possibilité d'utiliser le noyau précédent. ==== Méthode simple en ligne de commande==== La commande [[:apt-get#suppression_de_paquets|sudo apt-get autoremove]] permet de désinstaller les paquets qui ne sont plus nécessaires. Depuis [[:trusty|Ubuntu Trusty 14.04]], cette commande prend en charge les anciens noyaux sauf les 2 derniers. Il est donc très facile de supprimer les anciens noyaux autres que les 2 derniers en saisissant dans un [[:terminal]] la [[:commande_shell|commande]] : sudo apt-get autoremove --purge dans certains cas d'utilisation, cette commande peut supprimer tous les noyaux sauf le dernier installé, alors qu'elle devrait laisser les deux derniers installés ([[http://forum.ubuntu-fr.org/viewtopic.php?pid=21536374#p21536374|ce post]]). Heureusement, le terminal affiche les éléments qui seront supprimés et demande une validation (Souhaitez-vous continuer ? [O/n]) : il convient donc à cette étape de bien vérifier les noyaux qui sont prévus pour être supprimés avant d'accepter. Il est possible que cette méthode ne fonctionne pas si les noyaux sont marqués comme installés //manuellement//, ce même si vous effectuez normalement les mises-à-jour. Si la [[:commande_shell|commande]] suivante vous donne des résultats, vous êtes concerné :apt-mark showmanual | egrep 'linux-.*[0-9]' Ceci est probablement un bug ([[https://bugs.launchpad.net/ubuntu/+source/apt/+bug/1175637|celui-ci]] ?) mais peut être contourné temporairement lorsque vous souhaitez récupérer de l'espace, en marquant à nouveau tous les paquets relatifs au noyau comme installé en //automatique// avec cette [[:commande_shell|commande]]:sudo apt-mark auto $(apt-mark showmanual | egrep 'linux-.*[0-9]') Ensuite vous pouvez faire un nettoyage automatique comme indiqué précédemment. Attention : en cas de présence d'un grand nombre d'anciens noyaux, la mise à jour de Grub peut prendre énormément de temps. ====Méthode graphique==== * [[:deborphan|Gtkorfan]], application permettant de gérer graphiquement la commande [[:apt-get#suppression_de_paquets|apt-get autoremove]]. * [[:ubuntu_Tweak|Ubuntu-Tweak]], application permettant de nettoyer de nombreuses choses dans Ubuntu, entre autre, les noyaux inutiles. * Un [[:Gestionnaire de paquets]] comme par exemple [[:synaptic|Synaptic]] et supprimer complètement les paquets par groupes de 3 : * linux-headers-2.6.XX-YY * linux-headers-2.6.XX-YY-generic * linux-image-2.6.XX-YY-generic \\ Pour enlever, par exemple, les noyaux 2.6.32-22 et 2.6.32-23, sélectionner pour **suppression complète** les paquets suivants : * linux-headers-2.6.32-22 * linux-headers-2.6.32-22-generic * linux-image-2.6.32-22-generic * linux-headers-2.6.32-23 * linux-headers-2.6.32-23-generic * linux-image-2.6.32-23-generic \\ Lorsqu’on utilise un [[:gestionnaire de paquets]] pour enlever les images du noyau, la commande //update-grub// est invoquée automatiquement pour mettre à jour les fichiers de configuration de  [[:grub-pc|GRUB]] et par conséquent la liste des noyaux affichés dans le menu GRUB. Il n'est donc pas nécessaire de lancer manuellement la commande //update-grub//. ====Méthode depuis un terminal==== Utilisation en [[:commande_shell|lignes de commande]] depuis un [[:terminal]]: - Connaître la version du noyau en cours d'utilisation :uname -r - Lister ensuite l'ensemble des noyaux installés grâce à :dpkg -l | grep -Ei "linux-(g|h|i|lo|si|t)" Sur [[:quantal|Ubuntu 12.10]], en décembre 2012, le résultat de cette commande donne : linux-headers-3.5.0-18 3.5.0-18.29 linux-headers-3.5.0-18-generic 3.5.0-18.29 linux-headers-3.5.0-19 3.5.0-19.30 linux-headers-3.5.0-19-generic 3.5.0-19.30 linux-headers-3.5.0-20 3.5.0-20.31 linux-headers-3.5.0-20-generic 3.5.0-20.31 linux-headers-3.5.0-21 3.5.0-21.32 linux-headers-3.5.0-21-generic 3.5.0-21.32 linux-headers-generic 3.5.0.21.27 linux-headers-generic-pae 3.5.0.21.27 linux-image-3.5.0-17-generic 3.5.0-17.28 linux-image-3.5.0-18-generic 3.5.0-18.29 linux-image-3.5.0-19-generic 3.5.0-19.30 linux-image-3.5.0-20-generic 3.5.0-20.31 linux-image-3.5.0-21-generic 3.5.0-21.32 linux-image-extra-3.5.0-17-generic 3.5.0-17.28 linux-image-extra-3.5.0-18-generic 3.5.0-18.29 linux-image-extra-3.5.0-19-generic 3.5.0-19.30 linux-image-extra-3.5.0-20-generic 3.5.0-20.31 linux-image-extra-3.5.0-21-generic 3.5.0-21.32 linux-image-generic On pourrait donc dans cet exemple supprimer les noyaux //3.5.0-17//, //3.5.0-18// et //3.5.0-19// (**toujours** garder les deux derniers noyaux //3.5.0-20// et //3.5.0-21// dans cet exemple). - Pour désinstaller un noyau Linux, il suffit de désinstaller les 3 ou 4 paquets correspondants à la version voulue : * ''**linux-headers-****_****_all.deb**'' * ''**linux-headers-****-generic_****_****.deb**'' * ''**linux-image-****-generic_****_****.deb**'' * ''**linux-image-extra-****-generic_****_****.deb**'' \\ Par exemple pour désinstaller le noyau 3.5.0-17, la commande complète (à adapter) ressemble à quelque chose comme : sudo apt-get remove linux-headers-3.5.0-17 linux-headers-3.5.0-17-generic linux-image-3.5.0-17-generic linux-image-extra-3.5.0-17-generic --purge ou la même commande numero_noyau=3.5.0-17 && sudo apt-get remove linux-headers-$numero_noyau linux-headers-$numero_noyau-generic linux-image-$numero_noyau-generic linux-image-extra-$numero_noyau-generic --purge - Répéter l'opération autant de fois qu'il y'a de noyaux à supprimer. - Redémarrer le PC. Le menu [[:grub-pc|GRUB]] ne proposera plus le ou les noyaux supprimés. ==== Méthode permettant de conserver deux noyaux. ==== Installer le package **[[http://hoper.dnsalias.net/tdc/public/kclean.deb]]** Epurer par la commande **sudo kclean -k** pour conserver deux noyaux ou **sudo kclean** pour ne conserver que le noyau courant. ====Autre méthode depuis un terminal==== Autre façon de nettoyer pleins de noyaux d'un seul coup. Depuis un [[:terminal]], saisir les [[:commande_shell|commandes]] suivantes : - Lister les noyaux à supprimer : dpkg -l | awk '{print $2}' | grep -E "linux-(image|headers)-$(uname -r | cut -d- -f1).*" | grep -v $(uname -r | sed -r -e 's:-[a-z]+.*::') | cut -d- -f-4 | sort -t- -k3,4 | uniq | head -n-2 - Si la liste est cohérente, on supprime en utilisant le résultat en paramètre de la commande [[:apt-get#suppression_purge|apt-get purge]] :sudo apt-get purge $(dpkg -l | awk '{print $2}' | grep -E "linux-(image|headers)-$(uname -r | cut -d- -f1).*" | grep -v $(uname -r | sed -r -e 's:-[a-z]+.*::') | cut -d- -f-4 | sort -t- -k3,4 | uniq | head -n-2) - Redémarrer le PC. Le menu [[:grub-pc|GRUB]] ne proposera plus que deux noyaux. Si la [[:commande_shell|commande]] ci-dessus ne fonctionne pas, essayez celle ci : - Lister les vieux noyaux sauf un : dpkg -l | egrep 'linux-(image|headers)-[0-9]' | cut -d' ' -f3 | grep -v $(uname -r | cut -d- -f1,2) | cut -d- -f-4 | sort -t- -k3,4 | uniq | head -n-2 - Supprimer les anciens noyaux sauf un :sudo apt-get purge $(dpkg -l | egrep 'linux-(image|headers)-[0-9]' | cut -d' ' -f3 | grep -v $(uname -r | cut -d- -f1,2) | cut -d- -f-4 | sort -t- -k3,4 | uniq | head -n-2) - Redémarrer l'ordinateur. Le menu [[:grub-pc|GRUB]] ne proposera plus que deux noyaux. Il est possible « d'automatiser » ou en tous cas de faciliter la suppression des noyaux avec différents scripts (à noter que leurs fonctionnements n'est pas toujours éprouvé). Pour cela se tourner, par exemple, vers le script [[http://forum.ubuntu-fr.org/viewtopic.php?id=242358|kclean]].\\ Les contributeurs qui voudraient proposer leurs scripts sont invités à le faire **sur le forum et non sur cette page de doc**. ==== En Terminal avec purge-old-kernels ==== L'utilitaire est conçu spécifiquement pour supprimer les noyaux obsolètes, préserver automatiquement par défaut les 2 derniers noyaux, et ne jamais supprimer le noyau en cours de fonctionnement. purge-old-kernels est disponible sur les dépots officiels d'Ubuntu depuis la version 12.04 , dans un paquet d'utilitaires : * pour les versions d'Ubuntu inférieures à 16.04 , paquet **[[apt>bikeshed]]** * pour les versions d'Ubuntu 16.04 et supérieures , paquet **[[apt>byobu]]** sudo purge-old-kernels Pour plus d'informations sur la commande, voir leurs man respectifs : * http://manpages.ubuntu.com/manpages/trusty/man1/purge-old-kernels.1.html * http://manpages.ubuntu.com/manpages/xenial/man1/purge-old-kernels.1.html ==== Supprimer les old-dkms inutiles ==== Une fois les noyaux inutiles supprimés grâce à l'une des méthodes ci-dessus, il peut rester dans ''/boot'' de nombreux fichiers dont le nom se termine par ''old-dkms'' et qui ne correspondent à aucun des noyaux encore installés sur l'ordinateur. Attention, il vaut mieux garder ces fichiers tant que les noyaux correspondants sont encore installés. La commande : $ ls -1 /boot/config* retourne une liste indiquant quels noyaux sont installés: /boot/config-3.19.0-32-generic /boot/config-3.19.0-77-generic /boot/config-3.19.0-78-generic /boot/config-4.4.0-51-generic /boot/config-4.4.0-53-generic La commande : $ ls -1 /boot/*.old-dkms retourne la liste des fichiers old-dkms de tous les noyaux qui ont été installés, même s'ils ont été par la suite supprimés : /boot/initrd.img-3.16.0-38-generic.old-dkms /boot/initrd.img-3.19.0-32-generic.old-dkms /boot/initrd.img-3.19.0-58-generic.old-dkms /boot/initrd.img-3.19.0-59-generic.old-dkms /boot/initrd.img-3.19.0-61-generic.old-dkms /boot/initrd.img-3.19.0-64-generic.old-dkms /boot/initrd.img-3.19.0-65-generic.old-dkms /boot/initrd.img-3.19.0-68-generic.old-dkms /boot/initrd.img-3.19.0-69-generic.old-dkms /boot/initrd.img-3.19.0-71-generic.old-dkms /boot/initrd.img-3.19.0-73-generic.old-dkms /boot/initrd.img-3.19.0-74-generic.old-dkms /boot/initrd.img-3.19.0-75-generic.old-dkms /boot/initrd.img-4.2.0-35-generic.old-dkms /boot/initrd.img-4.2.0-36-generic.old-dkms /boot/initrd.img-4.2.0-38-generic.old-dkms /boot/initrd.img-4.2.0-41-generic.old-dkms /boot/initrd.img-4.2.0-42-generic.old-dkms /boot/initrd.img-4.4.0-18-generic.old-dkms /boot/initrd.img-4.4.0-21-generic.old-dkms /boot/initrd.img-4.4.0-22-generic.old-dkms /boot/initrd.img-4.4.0-24-generic.old-dkms /boot/initrd.img-4.4.0-28-generic.old-dkms /boot/initrd.img-4.4.0-31-generic.old-dkms /boot/initrd.img-4.4.0-34-generic.old-dkms /boot/initrd.img-4.4.0-36-generic.old-dkms /boot/initrd.img-4.4.0-38-generic.old-dkms /boot/initrd.img-4.4.0-42-generic.old-dkms /boot/initrd.img-4.4.0-45-generic.old-dkms /boot/initrd.img-4.4.0-47-generic.old-dkms Faire le tri entre ceux qui doivent être supprimés et ceux qui doivent être conservés, puis effectuer cette suppression, peut être fastidieux et source d'erreurs. Voici un script en python qui effectue ce travail pour vous : #!/usr/bin/env python3 # -*- coding:Utf-8 -*- from glob import glob from os import getuid, remove from sys import path # Ce script doit être exécuté avec les droits root : if getuid()!=0: print("use: sudo "+path[0]+"/"+__file__) exit(1) # Liste des fichiers config des noyaux installés : installes = glob('/boot/config-*') # Liste des fichiers .old-dkms qu'il ne faut pas supprimer : ecartes = [ "/boot/initrd.img-"+f[13:]+".old-dkms" for f in installes ] # Liste de tous les fichiers .old-dkms : tous = [ f for f in glob('/boot/initrd.img-*.old-dkms') ] # Liste des fichiers .old-dkms à supprimer : asupprimer = list(filter(lambda f:f not in ecartes,tous)) asupprimer.sort() # On supprime ! for f in asupprimer: remove(f) Nommez ce script ''clean_old_dkms.py'', puis rendez-le exécutable par : chmod +x clean_old_dkms.py Exécutez-le avec les droits root : sudo ./clean_old_dkms.py =====Logiciel pour noyau===== * ksplice ([[http://www.ksplice.com/|Oracle]]): Permet de patcher, de mettre à jour, et de changer de kernel **sans aucun reboot**. Après essais de KernelCheck, il s’avère que les noyaux proposés sont des kernel 2.6.xx seulement. Il est préférable d'aller sur le site directement pour le télécharger. * [[http://kcheck.sourceforge.net/|KernelCheck]] ([[http://www.webupd8.org/2010/12/how-to-compile-kernel-in-ubuntu-easy.html|deb]]), un programme qui compile et installe automatiquement le dernier noyau pour les distributions Debian Linux (Debian, Ubuntu, Mint, etc.) ( à utiliser de préférence avec la dernière [[:versions|version d'Ubuntu]] ) * Ketchup ([[https://linuxfr.org/news/ketchup-pour-garder-un-noyau-bien-%C3%A0-jour|linuxfr.org]]): Cet utilitaire peut mettre à jour les sources du noyau (ou installer) automatiquement. Il peut rechercher le nouveau noyau dans de nombreux arbres (vanille, rc, minuscules, mm, MJB, etc.) Il peut aussi télécharger automatiquement les correctifs nécessaires (et les appliquer ) pour créer la nouvelle version. * [[http://forum.ubuntu-fr.org/viewtopic.php?pid=21611581#p21611581|Script]]: Pour installer la dernière version **Release Candidate** ou la dernière version **Lowlatency** du noyau * [[http://www.teejeetech.in/p/ukuu-kernel-upgrade-utility.html|Ubuntu Kernel Upgrade Utility]] ([[https://code.launchpad.net/~teejee2008/+recipe/ukuu-daily|UKUU daily]]) Il s'agit d'un outil d'installation du dernier noyau Linux principal sur les distributions basées sur Ubuntu. ===== Paramètres du noyau ===== Il est possible de passer différents paramètres au noyau Linux : ====Modifier les paramètres du noyau pour une session-live==== **Avec un [[:live_cd|média d'installation]]:** au démarrage * si, en bas de l'écran, apparaît ce logo :\\ {{http://pix.tdct.org/upload/original/1445141358.jpg?200| }}\\ appuyer sur une touche pour faire apparaître le menu du [[:live_cd|média d'installation]]:\\ {{:installation/live_cd_maverick4.png?200|menuliveCD}}\\ puis appuyer sur la touche « F6 » Un menu apparaît qui offre certaines options (voir tableau ci-dessous). Si celle que vous souhaitez n'est pas dans le menu, appuyez sur la touche "Echap" et écrivez vos options à la fin de la ligne de texte. Elle permet d'ajouter manuellement des options de démarrage les unes à la suite des autres, ou éventuellement en supprimer. \\ * ou bien si le menu de [[:grub-pc|grub]] apparaît: \\ {{http://pix.toile-libre.org/upload/original/1353953772.png?200}}\\ appuyer sur la touche "e" (procédure détaillée pour l'option nomodeset dans [[http://forum.ubuntu-fr.org/viewtopic.php?pid=11528561#p11528561|ce post]]) Bien que cette grille soit présentée dans le paragraphe "session-live", elle est aussi disponible pour une session installée. La procédure fonctionne très bien. ^ Option ^ Signification ^ | rescue | Option de sauvetage de base | | irqpoll | Si votre CD-ROM se bloque vers le début de l'installation, essayez ça. (:!: Perte de performances possibles !) | | acpi=off | « Advanced Configuration and Power Interface ». C'est une gestion de l'énergie avancée, et il se peut que cela pose quelques problèmes durant la phase d'installation. Si vous bloquez en pleine installation sans raisons apparente, essayez ça. Peut aussi résoudre le problème de l'écran noir immédiatement après le choix 'essayer avant d'installer'| | pnpbios=off | « Plug And Play Bios ». Si vous bloquez en pleine installation sans raisons apparente, essayez ça. | | noapic | cette commande dit au noyau de ne pas utiliser le chip « APIC » //(Advanced Programmable Interrupt Controller)//. Certaines cartes-mère (anciennes) requièrent ce paramètre. | | nolapic | « Local APIC ». | | all_generic_ide | (d'autres variantes semblent exister, cf. Google ou autre !) si vous n'utilisez pas de SCSI ou SATA, et que vous avez un problème de démarrage ou d'emask, essayez ça… (n'est pas garanti de marcher à 100 %…). En particulier pour le message d'erreur "unable to find a medium containing a live file system"| | pci=nommconf | Erreur dans le dmesg //forcedeth : failed with error -22// On en parle [[http://forum.ubuntu-fr.org/viewtopic.php?id=138294|ici]] | | pci=nomsi | Voir [[http://forum.ubuntu-fr.org/viewtopic.php?pid=1969900#p1969900|ce post sur le forum]] | | nomodeset | Désactive le [[wpfr>Kernel-based_mode-setting|KMS]] qui gère le graphisme directement au niveau du noyau, mais qui cause problème avec certaines cartes graphiques. Peut aussi résoudre le problème de l'écran noir immédiatement après le choix 'essayer avant d'installer'. A installer si la trace indique "(14999 ticks this GP) idle=997/1400000001/0 softirq=1334/1334 fqs=14997"| | modprobe.blacklist=nouveau| Invalider les pilotes libres de haute qualité pour les cartes graphiques NVIDIA (portable MSI GL62) | |intel_idle.max_cstate=1| Pour les processeurs qui se bloquent aléatoirement avec carte graphique Intel Bay Trail. Afin de contourner ce [[https://bugzilla.kernel.org/show_bug.cgi?id=109051|bug]] Voir [[https://forum.ubuntu-fr.org/viewtopic.php?pid=21615635#p21615635|cette discussion]]| | … Autres options | La touche « F1 » propose d'autres options. Voir aussi [[https://www.kernel.org/doc/html/latest/admin-guide/kernel-parameters.html|cette liste des paramètres de noyau]]… | ^ ^ ^ Pour pouvoir **voir le dernier message avant que votre chargement ne plante** : supprimez l'option //quiet splash// de la ligne de commande, accessible par la touche **F6**. ==== Modifier les paramètres du noyau pour un système installé sur disque ==== Attention: certaines options peuvent empêcher votre ordinateur de démarrer. Si cela vous arrive, il vous sera nécessaire d'annuler la modification depuis un liveCD ou liveUSB. C'est pourquoi il est hautement recommandé d'effectuer cette opération depuis un liveCD/liveUSB contenant [[:Boot-Repair]]. === Graphiquement === Avant d'utiliser boot-repair, vérifier que la méthode décrite en seconde partie du paragraphe 6.1 n'est pas utilisable pour un dépannage ponctuel. Il suffit de démarrer [[:Boot-Repair]], cliquer sur "Options avancées", puis sur l'onglet "Options de GRUB" : {{http://pix.toile-libre.org/upload/img/1312243492.png}} * La case "Ajouter une option au noyau" permet d'ajouter une option de la liste. * Pour ajouter d'autres options (ou supprimer des options), il suffit de cliquer sur le bouton "Modifier le fichier de configuration de GRUB" et ajouter les paramètres souhaités à la ligne //GRUB_CMDLINE_LINUX_DEFAULT="(...)"//, par exemple : GRUB_CMDLINE_LINUX_DEFAULT="paramètre1 paramètre2" Cliquer sur le bouton "Appliquer" pour prendre en compte les changements.\\ \\ Ce choix n'est plus maintenant proposé. Il va falloir le faire de façon manuelle de cette façon: Voici comment se présente la nouvelle grille. {{:applications:boot..grub.png}} === Manuellement. === Paragraphe en cours de fabrication pour prendre en compte le désengagement de boot-repair pour les options moins fréquentes. A) La première partie nécessite d'utiliser le liveCD/liveUSB afin de faire un dépannage qui nécessitera d'être consolidé par la suite s'il est efficace. a1) Choisir "essayer ubuntu avant de l'installer". a2) Repérer la partition contenant la racine avec les commandes "df -h" et/ou "sudo fdisk -l". a3) Monter la partition ainsi détectée dans le répertoire /mnt sudo umount -v /dev/sdXN /mnt ### en prenant soin de mettre les bonnes valeurs pour XN On va d'abord la démonter au cas où elle serait montée ailleurs. Si elle n'est pas montée, il y aura une erreur qui sera normale. sudo mount -v /dev/sdXN /mnt ### en prenant soin de mettre les bonnes valeurs pour XN. Il ne doit absolument pas y avoir d'erreur de montage. a4) Editer le fichier /mnt/boot/grub/grub.cfg a5) Rechercher la première ligne contenant le texte " vmlinuz ". C'est assez loin dans le fichier. A ce jour en 150eme ligne. a6) Ajouter en fin de ligne l'option que que vous avez retenue pour faire votre correction. Vous pouvez aussi remplacer **quiet splash** par votre option. Exemple ci-dessous: linux /boot/vmlinuz-4.4.0-62-generic.efi.signed root=UUID=299d7644-ae32-43ff-b3db-16987328b52f ro MON-OPTION-A-ESSAYER a7) Sauver le fichier et booter. Si l'option testée est efficace, il faut la valider définitivement . B) Consolider l'option ajoutée afin qu'elle reste en permanence b1) [[:tutoriel:comment_editer_un_fichier|Editer le fichier]] **/etc/default/grub** pour y ajouter ou retirer les paramètres souhaités à la ligne //GRUB_CMDLINE_LINUX_DEFAULT="(...)"//, par exemple : GRUB_CMDLINE_LINUX_DEFAULT="paramètre1 paramètre2"Veiller aux guillemets : il n'y en a **pas entre** les paramètres.\\ \\ b2) Puis **mettre à jour GRUB** avec la [[:commande_shell|commande]] sudo update-grub b3) Enfin redémarrer l'ordinateur. ==== Exemples de configuration==== L'ajout de paramètres peut par exemple : * permettre de débloquer le boot depuis le Live CD sur les systèmes récalcitrants comme indiqué sur la page « **[[:rescue|Installation : Options de sauvetage]]** ».((\\ C'est le cas de certains portables où il faut ajouter des paramètres tels que **//''acpi=off''//**, **//''nolapic''//** ou **//''noacpi''//** pour permettre le boot.)) * résoudre des [[:touchpad#pointeur_fou|soucis avec votre touchpad]] (options **i8042.nomux=1** et/ou **i8042.reset=1** et/ou **i8042.nopnp**) * [[:optimisation#grub_profile|optimiser le démarrage du système]] en ajoutant l'option **//''profile''//**. Pour connaître les différents paramètres possibles, consultez les pages [[https://help.ubuntu.com/community/BootOptions|Doc anglophone]] et [[http://www.kernel.org/doc/Documentation/kernel-parameters.txt|kernel.org]]. ==== Configuration du noyau utilisé ==== Si vous avez besoin de vérifier que votre noyau a bien une configuration spécifique, [[/kernel#connaitre_la_version_du_noyau_en_cours_d_utilisation|sachant quel noyau vous utilisez]], pour l'ensemble des options, tapez ([[/console#optimiser_la_console_auto-completion|utiliser l'auto-complétion]]): cat /boot/config-3.13.0.53-generic et pour connaître une ou plusieurs options en particulier: par exemple pour connaître les options EXT4, tapez: cat /boot/config-3.13.0.53-generic | grep CONFIG_EXT4 ou plus simple: grep CONFIG_EXT4 /boot/config-$(uname -r) Cela peut-être utile pour vérifier des pré-requis à l'installation d'un service. ===== Documentation officielle ===== La documentation officielle sur le noyau Linux est maintenue sur le site kernel.org. Vous pouvez la consulter en suivant [[http://www.kernel.org/doc/|ce lien]] [en]. ===== Pages en rapport ===== Pour plus d'information sur les opérations sur le noyau (compilation, paramétrage ...), se reporter aux pages suivantes : {{backlinks>kernel}} *[[ubuntu_kernel_upgrade_utility|Ubuntu Kernel Upgrade Utility (UKUU)]] ===== Voir aussi ===== * **(en)** [[http://www.kernel.org|Site officiel du noyau Linux]] * **(en)** Page Launchpad de l'[[https://launchpad.net/~ubuntu-kernel-team|Ubuntu Kernel Team]] * **(en)** Page Launchpad du [[https://launchpad.net/ubuntu/+source/linux|projet Linux pour Ubuntu]] * **(en)** Noyaux précompilé pour Ubuntu sur [[http://kernel.ubuntu.com/~kernel-ppa/mainline/|kernel.ubuntu.com]] * **(en)** [[http://www.faqs.org/docs/kernel/|The Linux Kernel Module Programming Guide]] * **(en)** [[http://www.webupd8.org/2016/07/how-to-safely-remove-old-linux-kernels.html|How To Safely Remove Old Linux Kernels In Ubuntu Or Linux Mint]] -------- //Contributeurs principaux : [[:utilisateurs:draco31.fr]], [[:utilisateurs:mydjey]]. Contributeurs : [[:utilisateurs:wullfk]]