Maison > Tutoriel système > Linux > Objectif de l'expérience de développement de prototypes de produits de machines virtuelles polyvalentes : apprendre à compiler grâce à cette expérience

Objectif de l'expérience de développement de prototypes de produits de machines virtuelles polyvalentes : apprendre à compiler grâce à cette expérience

WBOY
Libérer: 2024-03-29 08:16:12
avant
913 Les gens l'ont consulté

Comment compiler et exécuter un noyau ARMLinux

1. Objectif de l'expérience

Grâce à cette expérience, apprenez à compiler une version ARM de l'image du noyau et à l'exécuter sur la machine virtuelle QEMU.

2. Étapes expérimentales

Afin d'accélérer le processus de développement, ARM fournit la plateforme de développement VersatileExpress. Les clients peuvent développer des prototypes de produits basés sur la plateforme VersatileExpress. En tant qu'apprenant individuel, il n'est pas nécessaire d'acheter la plateforme de développement VersatileExpress ou d'autres cartes de développement ARM. Vous pouvez utiliser QEMU pour simuler la plateforme de développementlinux et développer arm, ce qui peut également atteindre l'objectif d'apprentissage.

(1) Outils de planification

Téléchargez le package de codes ci-dessous.

(2) Compiler un système de fichiers minimal

Tout d’abord, compilez manuellement un système de fichiers minimal avec busybox.

$ cd busybox
$ export ARCH=arm
$ export CROSS_COMPILE=arm-linux-gnueabi-
$ make menuconfig
Copier après la connexion

Après avoir entré menuconfig, configurez-le en compilation statique.

Busybox Settings --->
 Build Options --->
 [*] Build BusyBox as a static binary (no shared libs)
Copier après la connexion

Une fois make&&makeinstall compilé, il y aura un répertoire "_install" dans le répertoire racine de busybox, qui stocke certains jeux de commandes requis par le système de fichiers compilé.

linux 开发arm_开发linux软件_开发linux系统

Copiez le répertoire _install dans le répertoire linux-4.0. Entrez dans le répertoire _install et créez d’abord etc, dev et d’autres répertoires.

#mkdir etc
#mkdir dev
#mkdir mnt
#mkdir –p etc/init.d/
Copier après la connexion

Créez un nouveau fichier rcS dans le répertoire _install/etc/init.d/ et écrivez le contenu suivant.

mkdir –p /proc
mkdir –p /tmp
mkdir -p /sys
mkdir –p /mnt
/bin/mount -a
mkdir -p /dev/pts
mount -t devpts devpts /dev/pts
echo /sbin/mdev > /proc/sys/kernel/hotplug
mdev –s
Copier après la connexion

La modification du fichier _install/etc/init.d/rcS nécessite des autorisations exécutables, qui peuvent être obtenues en utilisant la commande chmod, telle que "chmod+x_install/etc/init.d/rcS".

Créez un nouveau fichier fstab dans le répertoire _install/etc et écrivez le contenu suivant.

开发linux系统_linux 开发arm_开发linux软件

proc /proc proc defaults 0 0
tmpfs /tmp tmpfs defaults 0 0
sysfs /sys sysfs defaults 0 0
tmpfs /dev tmpfs defaults 0 0
debugfs /sys/kernel/debug debugfs defaults 0 0
Copier après la connexion

Créez un nouveau fichier inittab dans le répertoire _install/etc et écrivez le contenu suivant.

::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a –r
Copier après la connexion

Créez le nœud de périphérique suivant dans le répertoire _install/dev Linux development arm, les autorisations root sont alors requises.

$ cd _install/dev/
$ sudo mknod console c 5 1
$ sudo mknod null c 1 3
Copier après la connexion

(3) Compiler le noyau

开发linux系统_linux 开发arm_开发linux软件

$ cd linux-4.0
$ export ARCH=arm
$ export CROSS_COMPILE=arm-linux-gnueabi-
$ make vexpress_defconfig
$ make menuconfig
Copier après la connexion

配置initramfs,在initramfssourcefile中填入_install,并把Defaultkernelcommandstring清空。

General setup --->
 [*] Initial RAM filesystem and RAM disk (initramfs/initrd) support
 (_install) Initramfs source file(s)
Boot options -->
 ()Default kernel command string
Copier après la connexion

配置memorysplit为“3G/1Guser/kernelsplit”,并打开高档显存。

Kernel Features --->
Memory split (3G/1G user/kernel split) --->
[ *] High Memory Support
Copier après la connexion

开始编译内核。

$ make bzImage –j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
$ make dtbs
Copier après la connexion

(4)运行QEMU虚拟机

运行QEMU虚拟机来模拟4核Cortex-A9的VersatileExpress开发平台。

$ qemu-system-arm -M vexpress-a9 -smp 4 -m 200M -kernel arch/arm/boot/zImage -append "rdinit=/linuxrc console=ttyAMA0 loglevel=8" -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic
Copier après la connexion

运行结果与实验3相同。

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!

Étiquettes associées:
source:itcool.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal