Rumah  >  Artikel  >  Tutorial sistem  >  Tujuan percubaan pembangunan prototaip produk mesin maya serba boleh: belajar cara menyusun melalui percubaan ini

Tujuan percubaan pembangunan prototaip produk mesin maya serba boleh: belajar cara menyusun melalui percubaan ini

WBOY
WBOYke hadapan
2024-03-29 08:16:12848semak imbas

Bagaimana untuk menyusun dan menjalankan kernel ARMLinux

1. Tujuan percubaan

Melalui percubaan ini, pelajari cara menyusun versi ARM imej kernel dan jalankannya pada mesin maya QEMU.

2. Langkah percubaan

Untuk mempercepatkan proses pembangunan, ARM menyediakan platform pembangunan VersatileExpress. Pelanggan boleh membangunkan prototaip produk berdasarkan platform VersatileExpress. Sebagai pelajar individu, tidak perlu membeli platform pembangunan VersatileExpress atau papan pembangunan ARM lain Anda boleh menggunakan QEMU untuk mensimulasikan platform pembangunanlinux dan membangunkan lengan, yang juga boleh mencapai tujuan pembelajaran.

(1) Alat Perancang

Muat turun pakej kod di bawah.

(2) Susun sistem fail minimum

Pertama, susun sistem fail minimum secara manual dengan kotak sibuk.

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

Selepas memasukkan menuconfig, konfigurasikannya kepada kompilasi statik.

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

Selepas make&&makeinstall disusun, akan ada direktori "_install" dalam direktori root busybox, yang menyimpan beberapa set arahan yang diperlukan oleh sistem fail yang disusun.

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

Salin direktori _install ke direktori linux-4.0. Langkah ke dalam direktori _install dan mula-mula buat dll, dev dan direktori lain.

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

Buat fail rcS baharu dalam direktori _install/etc/init.d/ dan tulis kandungan berikut.

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

Menukar fail _install/etc/init.d/rcS memerlukan kebenaran boleh laku, yang boleh dicapai dengan menggunakan arahan chmod, seperti "chmod+x_install/etc/init.d/rcS".

Buat fail fstab baharu dalam direktori _install/etc dan tulis kandungan berikut.

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

Buat fail inittab baharu dalam direktori _install/etc dan tulis kandungan berikut.

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

Buat nod peranti berikut dalam direktori _install/dev Linux development arm, kemudian kebenaran root diperlukan.

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

(3) Susun kernel

开发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相同。

Atas ialah kandungan terperinci Tujuan percubaan pembangunan prototaip produk mesin maya serba boleh: belajar cara menyusun melalui percubaan ini. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:itcool.net. Jika ada pelanggaran, sila hubungi admin@php.cn Padam