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.
A kernel with math-emulation compiled in will still use the coprocessor if one is present: the math emulation will just never get used in that case. The kernel will be slightly larger, but will work on different machines regardless of whether they have a math coprocessor or not.
The “kernel hacking” configuration details usually result in a bigger or slower kernel (or both), and can even make the kernel less stable by configuring some routines to actively try to break bad code to find kernel problems (kmalloc()). Thus you should probably answer ‘n’ to the questions for “development”, “experimental”, or “debugging” features.
La possession de pilotes inutiles peut rendre votre noyau énorme et causer des problèmes inattendus. Il confond les autres contrôleurs en activant une carte contrôleur qui n'existe pas.
Le noyau sur lequel la compilation d'émuration mathématique est compilée continuera à être utilisé dans les cas avec des coprocesseurs, auquel cas l'émuration mathématique ne fonctionnera pas. Le noyau est un peu plus grand, mais il fonctionne sur une variété de machines avec ou sans coprocesseur mathématique.
Le paramètre "kernel hacking" a généralement pour effet de rendre le noyau énorme, de le ralentir, ou les deux. Cela réduit également la stabilité du noyau car le processus de transformation en chaussures tente activement de casser le mauvais code afin de trouver le problème du noyau (kmalloc ()). Par conséquent, vous devez répondre «n2» aux questions sur les fonctionnalités «développement», «expérimental» et «débogage».
À 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