Heim >System-Tutorial >LINUX >Zweck des Experiments zur Entwicklung von Produktprototypen für vielseitige virtuelle Maschinen: Lernen Sie durch dieses Experiment, wie man kompiliert

Zweck des Experiments zur Entwicklung von Produktprototypen für vielseitige virtuelle Maschinen: Lernen Sie durch dieses Experiment, wie man kompiliert

WBOY
WBOYnach vorne
2024-03-29 08:16:12883Durchsuche

So kompilieren und führen Sie einen ARMLinux-Kernel aus

1. Versuchszweck

Durch dieses Experiment erfahren Sie, wie Sie eine ARM-Version des Kernel-Images kompilieren und auf der virtuellen QEMU-Maschine ausführen.

2. Experimentelle Schritte

Um den Entwicklungsprozess zu beschleunigen, stellt ARM die VersatileExpress-Entwicklungsplattform bereit. Kunden können Produktprototypen auf Basis der VersatileExpress-Plattform entwickeln. Als einzelner Lernender ist es nicht erforderlich, die VersatileExpress-Entwicklungsplattform oder andere ARM-Entwicklungsboards zu kaufen. Sie können QEMU verwenden, um die Entwicklungsplattform Linux zu simulieren und Arm zu entwickeln, wodurch auch der Lernzweck erreicht werden kann. (1) Planungstools

Laden Sie das Codepaket unten herunter.

(2) Minimales Dateisystem kompilieren

Kompilieren Sie zunächst manuell ein minimales Dateisystem mit Busybox.

$ cd busybox
$ export ARCH=arm
$ export CROSS_COMPILE=arm-linux-gnueabi-
$ make menuconfig

Nachdem Sie menuconfig eingegeben haben, konfigurieren Sie es für die statische Kompilierung.

Busybox Settings --->
 Build Options --->
 [*] Build BusyBox as a static binary (no shared libs)

Nachdem make&&makeinstall kompiliert wurde, gibt es im Stammverzeichnis der Busybox ein Verzeichnis „_install“, in dem einige Befehlssätze gespeichert sind, die für das kompilierte Dateisystem erforderlich sind.

linux 开发arm_开发linux软件_开发linux系统Kopieren Sie das Verzeichnis _install in das Verzeichnis linux-4.0. Gehen Sie in das Verzeichnis _install und erstellen Sie zunächst die Verzeichnisse etc, dev und andere.

#mkdir etc
#mkdir dev
#mkdir mnt
#mkdir –p etc/init.d/

Erstellen Sie eine neue rcS-Datei im Verzeichnis _install/etc/init.d/ und schreiben Sie den folgenden Inhalt.

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

Das Ändern der Datei _install/etc/init.d/rcS erfordert ausführbare Berechtigungen, die mit dem Befehl chmod erreicht werden können, z. B. „chmod+x_install/etc/init.d/rcS“.

Erstellen Sie eine neue fstab-Datei im Verzeichnis _install/etc und schreiben Sie den folgenden Inhalt.

开发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

Erstellen Sie eine neue inittab-Datei im Verzeichnis _install/etc und schreiben Sie den folgenden Inhalt.

::sysinit:/etc/init.d/rcS
::respawn:-/bin/sh
::askfirst:-/bin/sh
::ctrlaltdel:/bin/umount -a –r

Erstellen Sie den folgenden Geräteknoten im Verzeichnis _install/dev

Linux-Entwicklungsarm

, dann sind Root-Berechtigungen erforderlich.

$ cd _install/dev/
$ sudo mknod console c 5 1
$ sudo mknod null c 1 3

(3) Kernel kompilieren

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

$ cd linux-4.0
$ export ARCH=arm
$ export CROSS_COMPILE=arm-linux-gnueabi-
$ make vexpress_defconfig
$ make menuconfig

配置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

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

Kernel Features --->
Memory split (3G/1G user/kernel split) --->
[ *] High Memory Support

开始编译内核。

$ make bzImage –j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
$ make dtbs

(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

运行结果与实验3相同。

Das obige ist der detaillierte Inhalt vonZweck des Experiments zur Entwicklung von Produktprototypen für vielseitige virtuelle Maschinen: Lernen Sie durch dieses Experiment, wie man kompiliert. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Dieser Artikel ist reproduziert unter:itcool.net. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen