ubuntu kernel
Le terme noyau est défini comme suit dans Wikipédia :
Un noyau de système d’exploitation (abrégé noyau, ou kernel en anglais), est la partie fondamentale de certains 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.
Sous Ubuntu, le noyau pré-installé est linux, il est de type 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. Dans la suite du document, c'est ce type qui sera supposé utilisé par défaut.
- server : le noyau est compilé avec les options nécessaires à une utilisation sur un serveur.
- 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.
- rt (real-time) : 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 kernel en cours d'utilisation
Pour connaître la version de son noyau Linux, son nom, la version du compilateur utilisé, taper dans une console la commande suivante :
cat /proc/version
Pour connaître seulement la version du noyau :
uname -r
Lister les kernel installés
Au fil des mises à jour plusieurs kernel se retrouvent installés sur une machine, pour connaître la liste des kernel installés, taper dans un terminal :
dpkg -l | grep -Ei "linux-headers|linux-image"
Installer une autre version de kernel
Le noyau Linux est en constante évolution. 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).
- Rendez-vous sur le site correspondant à la version de kernel voulue: soit packages.ubuntu.com (kernels stables, par défaut de toutes les versions d'Ubuntu), soit 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-<version>_<version>_all.deb
-
linux-headers-<version>-generic_<version>_<votre_architecture>.deb
-
linux-image-<version>-generic_<version>_<votre_architecture>.deb
-
linux-image-extra-<version>-generic_<version>_<votre_architecture>.deb
(optionnel, mais généralement requis pour les tests)
-
Si votre système est 64bit, <votre_architecture> est amd64. Si votre système est 32bit, <votre_architecture> est i386.
- 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 (sudo update-grub)
- Redémarrez le PC. Le menu GRUB vous permettra de choisir le nouveau noyau.
Remarques:
- Ne pas installer un kernel d'une 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.
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 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 :
- depuis les dépôts sources :
- depuis kernel.org :
Suppression des anciens noyaux
Si le menu GRUB propose plusieurs kernels (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 deux noyaux : le dernier noyau et l'avant-dernier.
Vérifier d'abord quel noyau est utilisé à l'aide de la commande :
uname -r
Lister ensuite l'ensemble des noyaux installés grâce à :
dpkg -l | grep -Ei "linux-headers|linux-image"
Sur 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 cette 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 cette exemple).
Pour désinstaller un noyau Linux, il suffit de désinstaller les 3 ou 4 paquets correspondants à la version voulue :
-
linux-headers-<version>_<version>_all.deb
-
linux-headers-<version>-generic_<version>_<votre_architecture>.deb
-
linux-image-<version>-generic_<version>_<votre_architecture>.deb
-
linux-image-extra-<version>-generic_<version>_<votre_architecture>.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
Répéter l'opération autant de fois qu'il y'a de noyaux à supprimer.
Redémarrer le PC. Le menu GRUB ne proposera plus le ou les noyaux supprimés.
Autre façon de nettoyer pleins de noyaux d'un seul coup : en fait tous sauf le noyau courant (faire attention à bien avoir démarré sur le dernier noyau installé) :
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]+.*::')
Si la liste est cohérente, on supprime en utilisant le résultat en paramètre de la commande 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]+.*::'))
Logiciel pour kernel
- KernelCheck (site)(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 version d'ubuntu )
- Ketchup (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.
Paramètres du noyau
Il est possible de passer différents paramètres au noyau Linux :
Avec un live-CD ou un live-USB : au démarrage
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.
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. |
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 ici |
pci=nomsi | http://forum.ubuntu-fr.org/viewtopic.php?pid=1969900#p1969900 |
nomodeset | (depuis Karmic) désactive le KMS qui cause problème avec certaines vieilles cartes graphiques. |
Autres options | La touche « F1 » propose d'autres options. Voir aussi cette liste des paramètres de noyau |
Il suffit de démarrer Boot-Repair, cliquer sur "Options avancées", puis sur l'onglet "Options de GRUB" :
- La case "Ajouter une option au noyau" permet d'ajouter une option de la liste.
- Pour ajouter d'autres 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 exempleGRUB_CMDLINE_LINUX_DEFAULT="paramètre1 paramètre2"
).
Cliquer sur le bouton "Appliquer" pour prendre en compte les changements.
Attention: ne fonctionne pas depuis un liveCD/liveUSB. Editer le fichier /etc/default/grub, ajouter les paramètres souhaités à la ligne GRUB_CMDLINE_LINUX_DEFAULT
(par exemple GRUB_CMDLINE_LINUX_DEFAULT="paramètre1 paramètre2"
), puis mettre à jour GRUB1), et redémarrer l'ordinateur.
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 « Installation : Options de sauvetage ».2)
- résoudre des soucis avec votre touchpad (options i8042.nomux=1 et/ou i8042.reset=1 et/ou i8042.nopnp)
- optimiser le démarrage du système en ajoutant l'option
profile
.
Pour connaître les différents paramètres possibles, consultez les pages Doc anglophone et kernel.org.
Documentation officielle
La documentation officielle sur le noyau Linux est maintenue sur le site kernel.org. Vous pouvez la consulter en suivant 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 :
Voir aussi
- (en) Page Launchpad de l'Ubuntu Kernel Team
- (en) Page Launchpad du projet Linux pour Ubuntu
- (en) Noyaux précompilé pour Ubuntu sur kernel.ubuntu.com
Contributeurs principaux : draco31.fr mydjey
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. We’ll take you through the steps you need to compile your own customised kernel for performance, specialised use and simply to learn how the plumbing works
Back in the mid-1990s, recompiling the kernel was something of a necessity, and it was also a good test that a user had mastered the basics of administering Linux. These days, the stock kernel that comes with most distros has much improved, removing the necessity of kernel recompilation for basic use. However, there are cases where it’s well worth becoming familiar with this area of tweaking your system. For one thing, it’s a must if you want to access the latest and greatest kernel improvements, hot off the press, so to speak. It’s also a good way of understanding how the kernel and other fundamental parts of a Linux system actually work. It can also be useful when troubleshooting: the newest kernel might bug-fix the problem you’re having. On the other hand, an older kernel might be the workaround that you need.
We’ll start you off with a simple example that begins with fetching the source archive for the kernel that you are currently running, proceeding through to configuration, compilation and installation. Following this, we’ll go through some examples that are a bit more specialist. Most of the examples are for Debian-derived distros, but we’ve deliberately kept things as neutral as possible and added some notes for how to handle things on Red Hat-based distros such as Fedora.
Once the kernel is complete, you can add it to the system using the standard packaging toolsInstall prerequisites
Begin by fetching the tools needed to create a suitable build environment. Enter ‘sudo apt-get install fakeroot crash kexec- tools makedumpfile kernel-wedge git-core libncurses5 python libncurses5-dev kernel- package libelf-dev binutils-dev’ followed by ‘sudo apt-get build-dep linux-image’.
Fetch the kernel (source archive)
If you need the latest kernel, use Git to fetch it (see later step), but we are going to use the standard package tools in the first example. Use ‘apt-get source linux-image-$(uname -r)’ to install the source for the currently running kernel.
Examine the source directory
You should now have a source directory in the current directory. Move into it using the cd command. Note that there is an archived (tar.gz) copy as well. In addition, there is a diff file that contains the Ubuntu-specific additions to the standard kernel source tree.
Generate a .config file
The (hidden) file ‘.config’, located in the source code directory, tells the compiler what to build. The configuration file for each installed kernel is stored in the /boot directory, but you can capture the configuration of the current kernel (a good starting point) by typing ‘make oldconfig’.
Edit .config
Open up .config in a text editor. Note that there are thousands of options, and this approach is best if you know exactly what settings you would like to edit. It’s a good idea to search for ‘CONFIG_LOCALVERSION’ to add a small identifying string for your custom kernel.
Turn off debugging
One way to speed things up and produce smaller files is to turn off debugging.
It’s a specialist feature and mainly used by developers. You can use xconfig for this. Set ‘CONFIG_DEBUG_INFO:’ to ‘n’.
Invoke xconfig
Type ‘make xconfig’ to launch the GUI config file editor. It’s a good way to gain an overview, and it offers information for most of the options. Run ‘sudo apt-get install libqt4-core libqt4-dev libqt4-gui’ if it complains about not being able to find Qt.
Prepare Debian scripts
Some required scripts lose their execution privileges due to how apt-get works. Rectify this by typing ‘chmod -R u+x debian/ scripts/*’ and then ‘chmod u+x debian/rules’.
Recreating the Source Tree
If you mess things up and want to start from scratch, delete the source directory. Backup your .config file first, if needed. Then run “tar xzf” on the source archive to unpack it. Move into the directory and type “zcat ../[name of diff archive] | patch -p1” to add the Ubuntu patches into the source tree.
Compile the kernel
Tell the build environment how many cores you want to use with ‘export CONCURRENCY_LEVEL=[number of cores]’. Begin the build process with ‘fakeroot make- kpkg –initrd –append-to-version=-luad kernel- image kernel-headers’, which takes about an hour on a Core Duo 2.7GHz system.
Install kernel
Warning: This is stage where you actually make some changes to your machine. Using our method means that we can install our custom kernel just like any other package. Type ‘sudo dpkg -i linux-image[version].deb’ and then, ‘sudo dpkg -i linux-headers-[version].deb’.