:::: MENU ::::

How to compile and install its own Linux kernelComment compiler et installer son propre noyau Linux

  • Mar 06 / 2014
  • 0
Linux

How to compile and install its own Linux kernelComment compiler et installer son propre noyau Linux

The Linux Kernel is the operating system kernel. It is the core of the system and provide an interface between the hardware and the software layers.

Most of Linux distributions are coming with a pre-compiled and ready-to-use kernel for most of standard usage. However, some functionalities are sometimes missing in the kernel to allow the execution of specific functions or the support of some hardware (cards, …). In these cases, you will need to use the source code of the needed kernel, recompile it and reinstall it to replace the existing one. All the official soruces of the different kernels are available for free on the website kernel.org.

I will show you here how to modify the source code, compile and install your own kernel for your system (command-lines provided are working under Debian/Ubuntu based system, you will probably need to adapt them depending on the system you are running).

Pre-requisites

In a first time, check that you got the different packages necessary for the operation:

Once these packages are correctly installed, you can go on the official website to retrieve the source and the configuration files for the kernel you want to use: http://www.kernel.org. In our example, we will use the kernel on version 3.13.5 (latest stable version available today).

Let’s move to the /usr/src directory and then download the kernel archive that we will uncompress immediately:

Kernel sources are now uncompressed in the /usr/src/linux-3.13.5 folder and we can go ahead with its configuration.

Configuration

Let’s move in the directory you just created and start with the use of command make menuconfig to launch the configuration tool:

At this time, you can activate any feature you want on the kernel. For example:

  • To activate the virtualization and its specific functions, move on Virtualization and then press the Space bar to get access to the different available functionalitiesuis  (that you can activate/deactivate as you want)
  • To activate the modules support, move on Enable loadable module support and choose the modules you want to enable by pressing the Space bar (activated items will be checked)

kernel_01

Once you’re done with this configuration, choose Exit and confirm the save of your configuration. This one will be saved in the current directory under the .config file (that you can manually edit with a simple text editor if necessary).

Compilation

Now that the kernel is configured, you will have to compile it so that it can be used on your system. For that, you will need to execute several commands for the different compilation steps:

  • Dependencies compilation (now useless with latest versions)
  • Kernel image compilation
  • Modules compilation
  • Modules installation

At this time, your kernel has been compiled and is ready to be set up on your system.

Installation

To install your own kernel, you just need to execute the command-line below:

This command will create the following files in the /boot start directory:

  • vmlinuz-3.13.5 : the current kernel
  • config-3.13.5 : the kernel configuration file
  • System.map-3.13.5 : the symbol table exported by the kernel
  • initrd.img-3.13.5 : the root file used temporarily during the boot process

This command should update automatically the Grub configuration file (grub.cfg). You won’t need to perform the update manually.

If it’s not done automatically, you can execute it manually with the command-line below:

Checking

In order to check that your kernel has correctly been loaded and is used, you need to reboot your system. Once restarted, you can check which kernel is used with the uname command:

You are now using your own kernel with the functionalities you wanted.Le noyau de Linux est le noyau du système d’exploitation, il est le coeur du système et permet de fournir une interface avec le matériel pour les couches logicielles.

Une grande majorité des distributions Linux est fournie avec un noyau pre-compilé et prêt à l’emploi pour la plupart des usages standards. Cependant, il manque parfois certaines fonctionnalités au noyau pour permettre l’exécution de certaines fonctions spécifiques ou encore pour le support de certains matériels. Il faut alors utiliser le code source du noyau voulu, le recompiler et le réinstaller pour remplacer celui qui est déjà installé. Toutes les sources officielles de noyau sont disponibles sur le site kernel.org.

Nous allons donc voir ici comment modifier les sources, compiler et installer son propre noyau sur son système (les lignes de commandes fournies sont pour un système basé Debian/Ubuntu, il vous faudra donc les adapter si vous utilisez un autre système).

Pré-requis

Dans un premier temps, il faut vérifier la présence des paquets nécessaires à l’opération :

Une fois ces paquets installés, vous pouvez aller sur le site officiel pour récupérer les sources et les fichiers de configuration du noyau que vous souhaitez utiliser : http://www.kernel.org. Pour notre exemple, nous allons utiliser le noyau en version 3.13.5 (dernière version stable disponible à ce jour).

Nous nous plaçons dans le répertoire /usr/src puis nous téléchargeons l’archive du noyau que nous décompressons immédiatement :

Les sources du noyau sont donc maintenant décompressées dans le dossier /usr/src/linux-3.13.5 et nous pouvons donc passer à sa configuration.

Configuration

On se déplace dans le dossier contenant les sources et nous utilisons la commande make menuconfig pour démarrer la configuration:

Vous pouvez alors à ce moment activer les fonctionnalités que vous souhaitez sur le noyau. Par exemple :

  • Pour activer la virtualisation et ses fonctions spécifiques, déplacez vous sur Virtualization puis appuyez sur la touche Espace pour avoir accès aux différentes possibilités (que vous pouvez activer/désactiver selon vos besoins)
  • Pour activer le support des modules, déplacez-vous sur Enable loadable module support et activez les modules souhaités en utilisant la touche Espace (les éléments activés seront cochés)

kernel_01

Une fois la configuration terminée, choisissez Exit et acceptez la sauvegarde de votre configuration. Celle-ci est enregistrée dans le répertoire courant sous le fichier .config (que vous pouvez éditer manuellement également si nécessaire avec un simple éditeur de texte).

Compilation

Maintenant que le noyau est configuré, il faut le compiler pour qu’il puisse être utilisé sur votre système. Pour cela, il vous faudra exécuter différentes commandes pour les différentes étapes de compilation :

  • Compilation des dépendances (désormais inutile sur les dernières versions)
  • Compilation de l’image du noyau
  • Compilation des modules
  • Installation des modules

A ce moment, votre noyau a été compilé et est prêt à être installé sur votre système.

Installation

Pour installer votre nouveau noyau, il vous suffit d’exécuter la commande suivante :

Cette commande va avoir pour effet de créer les fichiers suivants dans le répertoire de démarrage /boot :

  • vmlinuz-3.13.5 : le noyau actuel
  • config-3.13.5 : le fichier de configuration du noyau
  • System.map-3.13.5 : la table de symboles exportée par le noyau
  • initrd.img-3.13.5 : le fichier racine utilisée temporairement pendant le processus de démarrage

Cette commande doit également mettre à jour automatiquement le fichier de configuration de Grub (grub.cfg), vous n’avez donc pas à le mettre à jour manuellement.

Le cas échéant, vous pouvez exécuter cette mise à jour manuellement avec la commande suivante :

Vérification

Afin de vérifier que votre noyau a bien été chargé, et qu’il est utilisé, vous pouvez redémarrer votre système et effectuer la vérification grâce à la commande uname qui vous permettra de récupérer l’information :

Vous utilisez maintenant votre nouveau noyau avec les fonctionnalités souhaitées activées.

Leave a comment

You must be logged in to post a comment.

Question ? Contact