Ceci est un logiciel gratuit ; voir la source pour les conditions de copie. Il n'y a PAS
garantie ; même pour la QUALITÉ MARCHANDE ou l'APTITUDE À UN USAGE PARTICULIER.
Remarque : La chaîne d'outils du bras peut être téléchargée à partir d'ici : Répondez « ARM » pour la voir.
2. Définir l'objectif de compilation
Avant de configurer ou de compiler le noyau, vous devez d'abord déterminer l'architecture du processeur cible et les chaînes d'outils à utiliser lors de la compilation. Il s’agit des informations les plus élémentaires qui doivent être déterminées en premier.
Si vous compilez le noyau pour le PC que vous utilisez actuellement, il n'est pas nécessaire de le configurer.
Sinon, pour une formation Linux embarqué, vous devez la paramétrer clairement.
Ici, nous prenons le bras comme exemple pour illustrer.
Il existe deux méthodes de réglage ():
a) Changer le Makefile
Ouvrez le Makefile dans le répertoire racine des sources du noyau, modifiez les deux variables Makefile suivantes et enregistrez.
ARCHE :=bras
CROSS_COMPILE:=arm-linux-
Notez que le réglage de cross_compile suppose ici que le nom du programme gcc de la chaîne d'outils croisés utilisée est arm-linux-gcc. Si le nom gcc réel utilisé est quelque chose d'autre-gcc, alors remplissez simplement quelque chose d'autre. Quoi qu'il en soit, les trois dernières lettres de gcc doivent être omises du nom.
b) Chaque fois que vous exécutez la commande make, ces informations sont transmises via les paramètres de ligne de commande.
Il semble qu'il s'agisse de spécifier la valeur de la variable via l'argument de ligne de commande de l'outil make.
Par exemple
Lors de la configuration du noyau, utilisez
makeARCH=armCROSS_COMPILE=arm-linux-menuconfig
Utilisé lors de la compilation du noyau
makeARCH=armCROSS_COMPILE=arm-linux-
Notez qu'en fait, lors de la compilation du noyau du PC, même si l'utilisateur ne le définit pas explicitement, cela ne veut pas dire que ces deux éléments ne sont pas configurés. Car si l'utilisateur ne définit pas ces deux éléments, le Makefile en haut du code source du noyau (situé dans le répertoire racine du code source) générera les valeurs de ces deux variables via la méthode suivante.
SUBARCH :=$(shelluname-m|sed-es/i.86/i386/-es/sun4u/sparc64/
-es/arm.*/arm/-es/sa110/arm/
-es/s390x/s390/-es/parisc64/parisc/
-es/ppc.*/powerpc/-es/mips.*/mips/
-es/sh[234].*/sh/)
ARCH?=$(SOUS-ARCHE)
CROSS_COMPILE?=
Grâce au code précédent, ARCH est devenu l'arche du compilateur PC, c'est-à-dire SUBARCH. Pour cette raison, si la sortie d'uname-m sur le PC est ix86, la valeur d'ARCH devient i386.
La valeur de CROSS_COMPILE, si elle n'est pas configurée, est une chaîne vide. De cette façon, le nom du programme de chaîne d'outils utilisé n'a plus de préfixe comme arm-linux-, ce qui équivaut à utiliser gcc sur le PC.
Quelques mots supplémentaires à la fin, la valeur d'ARCH doit être davantage généralisée. Parce qu'il n'y a pas de répertoire i386 dans le répertoire arch du code source du noyau, ni de répertoire tel que sparc64.
Ainsi, une variable SRCARCH est construite dans le makefile au dernier étage et sa valeur est générée via le code suivant. De cette façon, la variable SRCARCH correspond enfin à un certain nom d'architecture dans le répertoire arch du code source du noyau.
SRCARCH :=$(ARCH)
ifeq($(ARCH),i386)
SRCARCH :=x86
endif
ifeq($(ARCH),x86_64)
SRCARCH :=x86
endif
ifeq($(ARCH),sparc64)
SRCARCH :=sparc
endif
ifeq($(ARCH),sh64)
SRCARCH :=sh
endif
3. Configurez le noyau
Le noyau a tellement de fonctions. De quelles parties avons-nous besoin, comment chaque partie est compilée (dans le noyau ou dans un module) et quels sont les paramètres de fonctionnement de chaque partie ? À cette fin, avant de commencer la compilation, nous devons créer une liste de configuration, la placer dans le répertoire racine des sources du noyau, la nommer fichier .config, puis compiler le noyau dont nous avons besoin en fonction de ce fichier .config.
Cependant, il y a trop d'éléments de configuration dans le noyau. Il est trop difficile de configurer Linux pour définir les variables d'environnement une par une. De plus, l'ensemble des éléments de configuration qui peuvent être configurés pour différentes architectures de processeur Explication détaillée de l'implémentation de l'interruption arm dans le noyau Linux est différent. Par exemple, l'élément de configuration indiquant si une certaine fonctionnalité fonctionnelle d'un certain processeur doit être prise en charge Explication détaillée de l'implémentation de l'interruption d'armement dans le noyau Linux est un élément de configuration lié à l'architecture du processeur. Le noyau fournit donc une méthode de configuration simple.
Prenons le bras comme exemple, la méthode spécifique est la suivante.
a) Selon notre architecture de processeur cible, dans le répertoire arch/arm/configs du code source du noyau, recherchez un fichier de configuration (tel que s3c2410_defconfig) le plus proche du système cible, copiez-le dans le répertoire racine du code source du noyau et nommez-le .config.
Notez que si vous compilez le noyau pour le PC actuel, il est préférable de copier le fichier suivant dans le répertoire racine source du noyau en tant que fichier de configuration initial. Ce fichier est le fichier de configuration utilisé lors de la compilation du noyau actuellement exécuté sur le PC.
/lib/modules/`uname-r`/build/.config
Quelques mots au fait, le fichier de configuration du noyau du PC a tellement de fonctions parmi lesquelles choisir. Vous ne le saurez pas si vous ne le compilez pas, vous ne le saurez que si vous le compilez. Le but des éditeurs Linux en faisant cela peut être de faire en sorte que le Linux qu'ils distribuent réponde aux différents besoins des utilisateurs.
b) Exécutez makemenuconfig pour apporter les modifications nécessaires à cette configuration, sélectionnez Enregistrer en quittant, et la nouvelle configuration sera mise à jour dans le fichier .config.
Remarque
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!