Version du noyau Linux 5.x (2/4)

https://www.kernel.org/doc/html/latest/admin-guide/README.html

Docs » The Linux kernel user’s and administrator’s guide » Linux kernel release 5.x < http://kernel.org/ >

Installing the kernel source

If you install the full sources, put the kernel tarball in a directory where you have permissions (e.g. your home directory) and unpack it:

Pour installer le code source complet, placez l'archive tar du noyau dans un répertoire sur lequel vous avez des autorisations (par exemple votre répertoire personnel) et décompressez-le.

xz -cd linux-5.x.tar.xz | tar xvf -

Replace “X” with the version number of the latest kernel.

Remplacez "X" par la dernière version du noyau.

Do NOT use the /usr/src/linux area! This area has a (usually incomplete) set of kernel headers that are used by the library header files. They should match the library, and not get messed up by whatever the kernel-du-jour happens to be.

absolument! N'utilisez pas la zone / usr / src / linux. Cette zone contient l'en-tête du noyau (généralement incomplet) et est utilisée par le fichier d'en-tête de la bibliothèque. Cela doit correspondre à la bibliothèque et ne doit pas être confondu avec ce que fait le dernier noyau.

You can also upgrade between 5.x releases by patching. Patches are distributed in the xz format. To install by patching, get all the newer patch files, enter the top level directory of the kernel source (linux-5.x) and execute:

Vous pouvez également mettre à niveau par patch à partir de la version 5.x. Le patch est distribué au format xz. Pour installer le correctif, récupérez le fichier de correctif méticuleux et exécutez ce qui suit dans le répertoire de niveau supérieur (linux-5.x) de la source du noyau.

xz -cd ../patch-5.x.xz | patch -p1

Replace “x” for all versions bigger than the version “x” of your current source tree, in_order, and you should be ok. You may want to remove the backup files (some-file-name~ or some-file-name.orig), and make sure that there are no failed patches (some-file-name# or some-file-name.rej). If there are, either you or I have made a mistake.

Veuillez spécifier tous les "x" plus grands que la version "x" du code source que vous utilisez actuellement, dans l'ordre selon vos besoins. Fichiers où vous avez supprimé le fichier de sauvegarde (les fichiers reçoivent "~" ou ".orig") et n'ont pas réussi à appliquer le correctif (les fichiers reçoivent "#" ou ".rej") Assurez-vous qu'il n'y a pas. Si tel est le cas, vous faites une erreur en moi.

Unlike patches for the 5.x kernels, patches for the 5.x.y kernels (also known as the -stable kernels) are not incremental but instead apply directly to the base 5.x kernel. For example, if your base kernel is 5.0 and you want to apply the 5.0.3 patch, you must not first apply the 5.0.1 and 5.0.2 patches. Similarly, if you are running kernel version 5.0.2 and want to jump to 5.0.3, you must first reverse the 5.0.2 patch (that is, patch -R) before applying the 5.0.3 patch. You can read more on this in Documentation/process/applying-patches.rst.

Contrairement aux correctifs pour le noyau 5.x, les correctifs pour le noyau 5.x.y (également connu sous le nom de noyau -stable) sont appliqués directement au noyau 5.x de base, pas de manière incrémentielle. Par exemple, si votre noyau de base est 5.0 et que vous souhaitez appliquer le correctif 5.0.3, n'appliquez pas d'abord les correctifs 5.0.1 et 5.0.2. De même, si vous exécutez la version 5.0.2 du noyau et que vous souhaitez passer à la version 5.0.3, vous devez d'abord revenir au patch 5.0.2 (c'est-à-dire patch-R) avant d'appliquer le patch 5.0.3. .. Voir Documentation / process / apply-patches.rst pour plus d'informations à ce sujet.

Alternatively, the script patch-kernel can be used to automate this process. It determines the current kernel version and applies any patches found:

Alternativement, un script patch-kernel peut être utilisé pour automatiser ce processus. Déterminez la version actuelle du noyau et appliquez le correctif approprié.

linux/scripts/patch-kernel linux

The first argument in the command above is the location of the kernel source. Patches are applied from the current directory, but an alternative directory can be specified as the second argument.

Le premier argument donné à la commande est l'emplacement de la source du noyau. Le correctif sera appliqué à partir du répertoire actuel, mais vous pouvez spécifier un autre répertoire comme deuxième argument.

Make sure you have no stale .o files and dependencies lying around:

Assurez-vous qu'il n'y a pas de dépendances sur l'ancien fichier .o.

cd linux
make mrproper

You should now have the sources correctly installed.

Le code source doit maintenant être installé correctement.

Software requirements

Compiling and running the 5.x kernels requires up-to-date versions of various software packages. Consult Documentation/process/changes.rst for the minimum version numbers required and how to get updates for these packages. Beware that using excessively old versions of these packages can cause indirect errors that are very difficult to track down, so don’t assume that you can just update packages when obvious problems arise during build or operation.

De nouvelles versions de divers progiciels sont nécessaires pour compiler et exécuter le noyau 5.x. Voir Documentation / process / changes.rst pour les versions minimales requises et comment mettre à jour ces packages. Sachez que l'utilisation de versions très anciennes de ces packages peut provoquer des erreurs picturales indirectes très difficiles à suivre. En outre, il n'est pas toujours possible de mettre à jour un package s'il existe un problème évident lors de la génération ou de l'opération.

Build directory for the kernel

When compiling the kernel, all output files will per default be stored together with the kernel source code. Using the option make O=output/dir allows you to specify an alternate place for the output files (including .config). Example:

Lors de la compilation du noyau, par défaut, tous les produits sont stockés avec le code source du noyau. Vous pouvez également spécifier le fichier produit (y compris .config) comme emplacement différent en spécifiant l'option make O = output / dir. Par exemple;

cd /usr/src/linux-5.x
make O=/home/name/build/kernel menuconfig
make O=/home/name/build/kernel
sudo make O=/home/name/build/kernel modules_install install

Please note: If the O=output/dir option is used, then it must be used for all invocations of make.

Remarque: si vous utilisez l'option O = output / dir, elle doit être appliquée à tous les appels.

Configuring the kernel

Do not skip this step even if you are only upgrading one minor version. New configuration options are added in each release, and odd problems will turn up if the configuration files are not set up as expected. If you want to carry your existing configuration to a new version with minimal work, use make oldconfig, which will only ask you for the answers to new questions.

Ne sautez pas cette étape, même si vous donnez une version mineure. Chaque version ajoute une nouvelle option de configuration. Et si le fichier de configuration n'est pas configuré comme prévu, des problèmes étranges surviennent. Si vous souhaitez migrer vers une version plus récente avec la plus petite configuration, utilisez make oldconfig. Cela demandera des réponses à de nouvelles questions.

Alternative configuration commands are:

Les autres commandes de réglage sont les suivantes.

"make config"      Plain text interface.
Interface de texte brut.
"make menuconfig"  Text based color menus, radiolists & dialogs.
Menu texte avec couleur, boutons radio et boîtes de dialogue
"make nconfig"     Enhanced text based color menus.
Texte étendu avec menu de couleurs
"make xconfig"     Qt based configuration tool.
Menu Paramètres dans Qt
"make gconfig"     GTK+ based configuration tool.
                   GTK+Menu de réglage dans
"make oldconfig"   Default all questions based on the contents of
                   your existing ./.config file and asking about
                   new config symbols.
Courant./Basé sur le contenu du fichier de configuration
Un paramètre qui interroge tous les symboles dans le nouveau paramètre.
"make olddefconfig"
                   Like above, but sets new symbols to their default
                   values without prompting.
Similaire à ce qui précède, mais sans confirmation du nouveau symbole
Appliquez la valeur par défaut.
"make defconfig"   Create a ./.config file by using the default
                   symbol values from either arch/$ARCH/defconfig
                   or arch/$ARCH/configs/${PLATFORM}_defconfig,
                   depending on the architecture.
                   ,Générez un fichier de configuration avec les paramètres par défaut.
Il est nécessaire de spécifier l'architecture, l'arc/$ARCH/defconfig
Ou arc/$ARCH/configs/${PLATFORM}_defconfig,
Est utilisé.
"make ${PLATFORM}_defconfig"
                   Create a ./.config file by using the default
                   symbol values from
                   arch/$ARCH/configs/${PLATFORM}_defconfig.
                   Use "make help" to get a list of all available
                   platforms of your architecture.
                   arch/$ARCH/configs/${PLATFORM}_defconfig.Retourner à
                   .Générez un fichier de configuration avec les valeurs par défaut.
Quelle plate-forme est valide dans l'architecture cible est
                   "make help"Vous pouvez l'obtenir à.
"make allyesconfig"
                   Create a ./.config file by setting symbol
                   values to 'y' as much as possible.
Définir autant que possible"y"Et alors.Générez un fichier de configuration.
"make allmodconfig"
                   Create a ./.config file by setting symbol
                   values to 'm' as much as possible.
Définir autant que possible"m"Et alors.Générez un fichier de configuration.
"make allnoconfig" Create a ./.config file by setting symbol
                   values to 'n' as much as possible.
Définir autant que possible"n"Et alors.Générez un fichier de configuration.
"make randconfig"  Create a ./.config file by setting symbol
                   values to random values.
Paramètres aléatoires.Générez un fichier de configuration.
"make localmodconfig" Create a config based on current config and
                      loaded modules (lsmod). Disables any module
                      option that is not needed for the loaded modules.

Configuration actuelle et modules chargés(lsmod)Sur la base du
D'autres non nécessaires au module chargé pour générer la configuration
Désactivez l'option du module.

                      To create a localmodconfig for another machine,
                      store the lsmod of that machine into a file
                      and pass it in as a LSMOD parameter.

Pour créer un localmodconfig sur une autre machine
Enregistrer en tant que lsmod généré sur une autre machine
Veuillez le transmettre en tant que paramètre LSMOD.

              target$ lsmod > /tmp/mylsmod
              target$ scp /tmp/mylsmod host:/tmp

              host$ make LSMOD=/tmp/mylsmod localmodconfig

                      The above also works when cross compiling.

Cela fonctionnera avec la compilation croisée.

"make localyesconfig" Similar to localmodconfig, except it will convert
                      all module options to built in (=y) options.

Similaire à localmodconfig, mais
Tous les modules convertis sont intégrés(=y)l'option est
Sera précisé.
"make kvmconfig"   Enable additional options for kvm guest kernel support.
Activez des options supplémentaires pour la prise en charge du noyau invité kvm.
"make xenconfig"   Enable additional options for xen dom0 guest kernel
                   support.
dom0 Activer des options supplémentaires pour la prise en charge du noyau invité.
"make tinyconfig"  Configure the tiniest possible kernel.
Réglez sur le réglage minimum possible.

You can find more information on using the Linux kernel config tools in Documentation/kbuild/kconfig.rst.

Voir Documentation / kbuild / kconfig.rst pour plus d'informations sur l'utilisation des outils de configuration du noyau Linux.

NOTES on make config:

  • Having unnecessary drivers will make the kernel bigger, and can under some circumstances lead to problems: probing for a nonexistent controller card may confuse your other controllers.

À l'origine, il fait partie du code source du noyau Linux, il sera donc traité comme GPLv2 (reconnaissance qu'il devrait l'être).

https://www.kernel.org/doc/html/latest/index.html

Licensing documentation

The following describes the license of the Linux kernel source code (GPLv2), how to properly mark the license of individual files in the source tree, as well as links to the full license text.

https://www.kernel.org/doc/html/latest/process/license-rules.html#kernel-licensing

Recommended Posts

Version du noyau Linux 5.x (2/4)
Version du noyau Linux 5.x (3/4)
Version du noyau Linux 5.x (4/4)
Version du noyau Linux 5.x (1/4)
Inu x Memo
Compilation du noyau Linux (Linux 5.x sur Ubuntu 20.04)
À propos des paramètres du noyau Linux
Vérifiez la version du noyau Linux
À propos du processus que le noyau Linux gère le microcode x86
Compilation du noyau Linux pour DE10nano
Noyau Linux auto-construit avec clang
[Reconstruction du noyau LINUX] Mise à jour (4.18.0 → 5.8.8)
Documentation relative au modèle de mémoire du noyau Linux
Noyau Linux, son rapport d'histoire de 29 ans
Essayez le mécanisme de verrouillage du noyau Linux
[Linux] [module du noyau] Créer kthread dans le module du noyau
Linux
analyse de la source linux (noyau): appel système
Assembleur X86 sous Linux (lien avec C)