Heim > System-Tutorial > LINUX > Hauptteil

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

WBOY
Freigeben: 2024-03-29 08:16:12
nach vorne
851 Leute haben es durchsucht

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
Nach dem Login kopieren

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)
Nach dem Login kopieren

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/
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

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
Nach dem Login kopieren

(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
Nach dem Login kopieren

配置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
Nach dem Login kopieren

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

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

开始编译内核。

$ make bzImage –j4 ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
$ make dtbs
Nach dem Login kopieren

(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
Nach dem Login kopieren

运行结果与实验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!

Verwandte Etiketten:
Quelle:itcool.net
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!