Comment compiler votre propre noyau Linux

Compiler votre propre noyau Linux est l'une de ces choses techniques et geek, non? Nous avons déjà couvert quelques raisons pour lesquelles vous pourriez vouloir faire ceci - maintenant est le temps de l'essayer vous-même!

Compiler votre propre noyau Linux est l'une de ces choses techniques et geek, non?  Nous avons déjà couvert quelques raisons pour lesquelles vous pourriez vouloir faire ceci - maintenant est le temps de l'essayer vous-même!
Publicité

Avec l'installation de Gentoo Gentoo: une distribution Linux où vous compilez votre propre logiciel optimisé Gentoo: une distribution Linux où vous compilez votre propre logiciel optimisé Le nombre de façons différentes de faire fonctionner Linux est stupéfiant, car il y a beaucoup de choix à faire. faire le tour. Bien qu'il existe de nombreuses distributions qui reposent sur le .deb ... Lire la suite, la compilation de votre propre noyau Linux est l'une de ces choses qui sont considérées comme très geek et technique. Nous avons déjà couvert quelques raisons. 3 Raisons pour lesquelles vous pourriez vouloir compiler votre propre noyau [Linux] 3 raisons pour lesquelles vous pourriez vouloir compiler votre propre noyau [Linux] Les systèmes Linux sont si ridiculement flexibles et configurables, c'est carrément fou. Une grande partie de la flexibilité de Linux est due à sa structure modulaire. Chaque composant du système et chaque programme est divisé ... Lisez plus pourquoi vous pourriez vouloir faire ceci. Avant de vous guider à travers les étapes, voici un bref aperçu de quelques concepts importants.

Qu'est-ce qu'un noyau?

En bref, c'est une partie vitale de votre système d'exploitation, sinon le plus important. Un système d'exploitation est chargé de laisser fonctionner vos programmes, en leur permettant d'accéder à votre matériel. Cependant, c'est le noyau. Le noyau Linux: une explication aux termes de Layman Le noyau Linux: une explication aux termes de Layman Il n'y a qu'une seule chose de fait que les distributions Linux ont en commun: le noyau Linux. Mais même si on en parle souvent, beaucoup de gens ne savent pas exactement ce qu'il fait. Lire la suite qui porte réellement tous ces emplois.

Le noyau Linux est spécial en ce qu'il peut être fait sur mesure pour s'adapter au matériel que vous possédez. Comparez cela avec le noyau Windows NT, qui sera généralement le même sur tous les ordinateurs. Pour ce faire, le noyau doit passer par un processus appelé compilation.

Qu'est-ce que la compilation?

Généralement, les programmes sont écrits dans un format lisible par l'homme. Cela facilite la création de logiciels pour les utilisateurs. Par exemple, le noyau Linux est écrit principalement dans un langage de programmation appelé C. Cependant, les ordinateurs ne peuvent pas comprendre cela. Ils reconnaissent seulement un langage compliqué appelé code machine . Pour ce faire, les lignes de texte doivent être traduites Comment compiler et installer les fichiers TAR GZ et TAR BZ2 dans Ubuntu Linux Comment compiler et installer les fichiers TAR GZ et TAR BZ2 dans Ubuntu Linux Lire la suite en utilisant un logiciel spécial appelé compilateur .

Différents compilateurs sont utilisés pour convertir différents langages de programmation. Par exemple, GCC est un compilateur qui traduit le code C en code machine (entre autres). Mais ce n'est pas tout ce qu'ils font - les compilateurs peuvent également optimiser le code traduit pour des machines spécifiques. Parallèlement à cela, ils peuvent également supprimer les fonctionnalités indésirables des programmes tout en le faisant.

Habituellement, ce processus est déjà fait pour beaucoup de logiciels. Au lieu de cela, les gens téléchargent les instructions binaires converties, qui fonctionnent hors de la boîte. Par exemple, le navigateur Web Utilisez-vous le meilleur navigateur Web pour Linux en 2016? Utilisez-vous le meilleur navigateur Web pour Linux en 2016? L'utilisation du «mauvais» navigateur peut entraîner beaucoup de maux de tête inutiles, une perte de productivité et même la perte de données. Quel navigateur est le meilleur pour votre ordinateur Linux? Découvrons-le. Lire la suite que vous exécutez en ce moment est déjà compilé. C'est parce que compiler quelque chose peut être un peu compliqué et prendre du temps. Pensez-y comme traduire un gros livre dans une langue étrangère.

En bref, compiler le noyau signifie convertir son code en quelque chose qui fonctionnera réellement sur votre ordinateur .

Obtention des sources du noyau

Vous ne pouvez pas faire un feu sans carburant. De même, vous ne pouvez pas compiler des programmes si vous n'avez pas le code en premier lieu. La méthode est généralement la même pour la plupart des systèmes d'exploitation Linux, à quelques exceptions près. Beaucoup d'entre eux fournissent leurs propres sources de noyau personnalisées. Vous devriez essayer et utiliser cela si vous le pouvez. Par exemple, si vous utilisez un système d'exploitation basé sur Debian tel qu'Ubuntu, vous devriez installer les sources en utilisant ces commandes:

sudo apt-get update sudo apt-get install linux-source 

Comment compiler votre propre Linux Linux Debian Linux Source

Vous pouvez également installer différentes versions de ce paquet (par exemple linux-source-4.8.0 ) si vous le souhaitez. Vous trouverez les fichiers installés dans le répertoire / usr / src /, alors naviguez là, et regardez le contenu:

 cd /usr/src/ ls 

Vous verrez un fichier qui se termine par .tar.bz2 . C'est la source que vous utiliserez. Extrayez-le avec cette commande:

 sudo tar xjvf linux-source-4.4.0.tar.bz2 

Assurez-vous de remplacer le fichier par le nom correct, bien sûr. Le fichier sera assez gros, donc le processus prendra un peu de temps!

Méthode alternative

Si vous le souhaitez, vous pouvez obtenir vos sources sur le site officiel de Linux Kernel. Je recommande ceci seulement si votre système d'exploitation Linux ne les fournit pas. Sélectionnez la version que vous voulez et téléchargez-la. Si vous suivez cette route, vous devez le télécharger dans un dossier vide. De cette façon, si vous voulez compiler plus de noyaux à l'avenir, vous aurez un bon dossier pour les organiser.

Comment compiler vos propres sources de noyau de vanille Linux Kernel

Après avoir fait cela, extraire le fichier avec cette commande:

 tar xJvf linux-4.9.11.tar.xz 

Comment compiler votre propre source Linux de Linux Kernel Vanilla

Assurez-vous que vous utilisez le nom de fichier correspondant à la version que vous avez téléchargée!

Personnalisez le noyau

C'est l'étape où vous pouvez choisir les parties du noyau dont vous voulez vous débarrasser. Par exemple, le noyau est livré avec beaucoup de pilotes différents pour une variété de périphériques. Si vous n'avez pas besoin de ce support, se débarrasser d'eux peut donner des avantages de vitesse, avec un noyau plus petit.

Conditions préalables

Avant de continuer, vous devez installer quelques programmes qui vous permettront de le personnaliser et de le compiler.

Sur les systèmes basés sur Debian, vous avez besoin du package build-essential, entre autres:

 sudo apt-get install build-essential gcc libncurses5-dev libssl-dev 

Le paquet libncurses5-dev facilitera la configuration du noyau, alors assurez-vous de l'installer. D'autres systèmes d'exploitation Linux auront un programme similaire, mais cela peut être sous un nom différent. Par exemple, si vous utilisez Fedora 5 Raisons d'utiliser Pure Distro Open Source, Fedora 5 raisons d'utiliser Pure Open Source Distro, Fedora Fedora n'est pas aussi connu que Ubuntu, et a la réputation d'être difficile à utiliser. Mais si cela est vrai, pourquoi tant de gens continuent d'utiliser Fedora? Lire la suite, ça s'appelle ncurses .

S'il n'est pas déjà installé, vous aurez également besoin de la collection de compilateurs GNU (GCC). C'est l'outil responsable de la traduction du code source brut en quelque chose de compréhensible pour les ordinateurs. C'est-à-dire, compiler.

Après avoir installé ces programmes, ouvrez votre terminal pour que vous soyez dans le dossier source Linux extrait. Par exemple, si vous utilisiez la méthode linux-source, vous feriez ceci:

 cd /usr/src/linux-source-4.4.0 

Fichier de configuration du noyau

Avant de compiler le noyau, vous devez indiquer à GCC comment vous voulez le faire. Pour ce faire, utilisez un outil de ligne de commande appelé make . Tapez cette commande:

 sudo make localmodconfig 

Cela crée un fichier appelé .config, qui indique à GCC ce qu'il faut compiler à partir des sources du noyau. La commande make localmodconfig détecte les composants du noyau en cours d'exécution et les marque pour la compilation. Si le noyau est dans un dossier que vous possédez, vous n'aurez pas besoin de sudo pour fonctionner.

Vous pouvez rencontrer des messages comme celui ci-dessous. Appuyez simplement sur la touche Entrée pour les ignorer - ce sont généralement de nouvelles fonctionnalités du noyau.

Comment compiler votre propre noyau Linux Make Localmodconfig New

Cependant, localmodconfig n'est pas parfait! Si vous n'utilisez pas actuellement certaines parties de votre ordinateur, il se peut qu'il ne détecte pas tout ce qu'il prend en charge. En tant que tel, vous devez les activer manuellement. Vous pouvez également ignorer cette étape entièrement et utiliser la commande suivante à la place. Cela compilera le nouveau noyau avec les mêmes options que celles que vous utilisez actuellement.

Si vous préférez cela, mais utilisez la commande localmodconifg avant, faites ceci:

 sudo make clean 

Cela vous donnera une construction propre. Vous devriez également utiliser cette commande si vous avez déjà compilé un noyau avec ces sources.

Autre configuration

Dans le dossier source du noyau, il y a un fichier appelé .config . C'est ce que GCC utilisera pour choisir ce qu'il faut compiler. Au lieu de l'éditer manuellement (non recommandé), vous utiliserez plutôt quelques outils de terminal. Cela rendra la sélection des options de compilation beaucoup plus facile.

Après avoir fait cela, affinez-le plus loin:

 sudo make nconfig 

Vous verrez un menu coloré apparaître. C'est le menu de configuration du noyau. Pour naviguer, utilisez les touches fléchées. Vous pouvez appuyer sur la touche fléchée droite pour développer les entrées avec un signe -> à côté d'elles. Naviguez hors de ces sous-menus en appuyant sur la touche fléchée gauche .

Comment compiler votre propre noyau Linux Make Nconfig

Vous pouvez basculer entre les entrées de menu qui ont le signe ou [] à côté d'eux en appuyant sur la barre d'espace. Cela fera défiler les différentes options de menu. Si vous voyez un * ou un M à l' intérieur, ce composant spécifique du noyau sera compilé. La seule différence entre eux est que l'option M sera chargée quand elle sera nécessaire. Cela peut être utile si vous compilez un pilote par exemple, qui ne sera pas souvent utilisé.

Si vous voulez en savoir plus sur ce qu'un commutateur spécifique fait, appuyez sur F2 dessus. Vous verrez une description utile de ce que vous compilez.

Comment compiler votre propre noyau Linux Make Nconfig F2

Une fois que vous avez terminé, appuyez sur le bouton F9 pour sauvegarder et quitter.

Comment compiler votre propre noyau Linux Make Nconfig Enregistrer

Compiler et installer le noyau

Maintenant que vous avez créé un fichier make personnalisé, vous devrez compiler Comment compiler et installer les fichiers TAR GZ et TAR BZ2 dans Ubuntu Linux Comment compiler et installer les fichiers TAR GZ et TAR BZ2 dans Ubuntu Linux Lisez plus le noyau. Tapez cette commande:

 sudo make -j$(nproc --all) 

Vous n'aurez pas besoin de sudo si vous avez téléchargé les sources du noyau sur le web. La deuxième partie de la commande permet d'accélérer le temps de compilation du noyau, en tirant parti de tous vos cœurs de processeur. Qu'est-ce qu'un cœur de processeur? [MakeUseOf explique] Qu'est-ce qu'un noyau de processeur? [MakeUseOf Explique] Chaque ordinateur a un processeur, que ce soit un petit pro de l'efficacité ou une grande puissance de performance, ou bien il ne pourrait pas fonctionner. Bien sûr, le processeur, aussi appelé CPU ou Central Processing ... Lire la suite. Vous pouvez vous en débarrasser, ou changer le numéro en quelque chose d'autre (par exemple -j2 ), si vous voulez utiliser votre ordinateur pour d'autres tâches sans trop de hoquets. Cependant, cela rendra la compilation plus lente!

Ce processus peut et va prendre beaucoup de temps. Moins vous choisissez de compiler, plus il sera court. Même ainsi, vous devrez probablement être patient.

Ensuite, tapez cette commande pour terminer la compilation du reste du noyau:

 sudo make modules_install 

Pour utiliser réellement ce noyau, vous devez entrer cette commande:

 sudo make install 

Cela va automatiquement copier le noyau dans votre dossier / boot et générer les fichiers appropriés pour le faire fonctionner.

Changement de noyau à l'aide de GRUB

Si vous redémarrez après l'installation de votre nouveau noyau, votre système pourrait ne pas fonctionner ! Ceci est généralement dû à un noyau mal compilé (c'est-à-dire, ne supportant pas suffisamment votre ordinateur). Affaire au point, mon propre ordinateur portable. Juste au cas où cela se produirait, je recommande de modifier GRUB Comment Personnaliser le chargeur de démarrage GRUB en utilisant BURG [Ubuntu] Comment personnaliser le chargeur de démarrage GRUB en utilisant BURG [Ubuntu] Lire la suite afin qu'il puisse revenir aux noyaux plus anciens. Pour ce faire, utilisez cette commande:

 sudo nano /etc/default/grub 

Comment compiler votre propre noyau Linux Ubuntu GRUB

Placez un signe # devant les lignes GRUB_HIDDEN_TIMEOUT et GRUB_HIDDEN_TIMEOUT_QUIET . Ensuite, enregistrez ces modifications en exécutant cette commande:

 sudo grub-mkconfig -o /boot/grub/grub.cfg 

Comment compiler votre propre menu GRUB Linux Kernel

Maintenant, si vous redémarrez votre ordinateur, vous serez en mesure de passer à un noyau plus ancien si votre nouveau ne fonctionne pas. Allez simplement dans l'élément de menu Options avancées et sélectionnez le noyau que vous voulez démarrer. Si tout se passe bien, félicitations! Vous utiliserez le noyau que vous avez compilé par vous-même.

Êtes-vous intéressé à compiler plus de noyaux? D'autres programmes? Trouvez-vous cela intéressant?

Crédits image: chombosan / Shutterstock

In this article