Sous Linux, la transplantation de noyau fait référence au transfert de code de programme d'une plate-forme matérielle à une autre plate-forme matérielle pour s'exécuter sur une autre ; la transplantation de noyau Linux comprend trois niveaux, à savoir la transplantation au niveau de l'architecture et le portage au niveau du SOC et du portage au niveau de la carte mère.
L'environnement d'exploitation de ce tutoriel : système linux7.3, ordinateur Dell G3.
La soi-disant transplantation consiste à transférer le code du programme d'un environnement d'exploitation à un autre environnement d'exploitation. Pour la transplantation de noyau, cela implique principalement de passer d'une plate-forme matérielle à une exécution sur une autre plate-forme matérielle.
La transplantation du noyau Linux sur une carte cible comprend trois niveaux, à savoir la transplantation au niveau de l'architecture, la transplantation au niveau du SoC et la transplantation au niveau de la carte mère.
Le portage au niveau de l'architecture fait référence au portage des noyaux Linux sur différentes plates-formes d'architecture. Par exemple, un travail de portage spécifique est requis pour chaque architecture sur différentes architectures telles que ARM, MIPS et PPC. L'émergence d'une nouvelle architecture nécessite une migration à ce niveau.
La transplantation au niveau SoC fait référence à la transplantation du noyau Linux sur une plate-forme de processeur SoC spécifique. Par exemple, les deux processeurs du cœur IP ARM920T, S3C2410 et AT91RM9200, nécessitent un travail de transplantation spécifique au SoC.
La transplantation au niveau de la carte mère fait référence à la transplantation du noyau Linux sur une carte mère cible spécifique. Par exemple, sur la carte cible FS2410, un travail de transplantation spécifique à la carte mère est requis.
Nous discutons ici de la transplantation au niveau de la carte mère, en ajoutant principalement l'initialisation de la carte de développement et le code du pilote. La majeure partie de ce code est liée à l'architecture et est gérée selon différentes architectures dans le répertoire arch.
Le noyau Linux 2.6 prend déjà en charge une variété de cartes matérielles pour le processeur S3C2410, telles que SMDK2410, Simtec-BAST, IPAQ-H1940, Thorcom-VR1000, etc. On peut se référer à la carte de référence SMDK2410 pour transplanter le noyau de la carte de développement.
S3C2410 est un système sur puce. La puce du processeur dispose de contrôleurs pour les interfaces périphériques telles que les ports série et l'écran LCD. De cette façon, la plupart des pilotes de périphériques de la carte de référence peuvent être utilisés directement. Mais tous les périphériques externes ne sont pas identiques. Différentes cartes de développement peuvent utiliser différentes puces d'interface SDRAM, Flash, Ethernet, etc. Cela nécessite de modifier ou de développer des pilotes basés sur le matériel.
Par exemple, le pilote du port série est l'un des pilotes de périphérique typiques, et ce pilote ne nécessite presque aucune modification. Cependant, si vous utilisez la méthode de configuration du noyau 2.4, vous ne pouvez pas obtenir les informations de la console série. Dans le noyau 2.6, les nœuds de périphérique correspondants du périphérique série dans le répertoire /dev sont /dev/ttySAC0, /dev/ttySAC1, etc. Par conséquent, si vous utilisez l'ancien périphérique de port série ttyS0, vous n'obtiendrez pas d'informations d'impression sur la console. Ce problème peut désormais être facilement résolu en modifiant le paramètre de console des paramètres de ligne de commande du noyau en console = ttySAC0,115200.
Une fois que le noyau prend déjà en charge le processeur S3C2410, il n'est fondamentalement pas nécessaire de modifier le code pour faire fonctionner le noyau. Cependant, dans certains cas, nous devons effectuer une transplantation au niveau du pilote pour différents périphériques, au moins l'adresse matérielle et le numéro d'interruption peuvent être différents. Par exemple, il est parfois nécessaire de transplanter des pilotes pour des périphériques tels que des puces réseau et des puces Nand Flash.
Recommandations associées : "Tutoriel vidéo Linux"
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!