首頁  >  文章  >  系統教程  >  Versatile虛擬機產品原型開發實驗目的透過本實驗學習如何編譯

Versatile虛擬機產品原型開發實驗目的透過本實驗學習如何編譯

WBOY
WBOY轉載
2024-03-29 08:16:12877瀏覽

怎麼編譯和運行一個ARMLinux核心

1.實驗目的

透過本實驗學習怎麼編譯一個ARM版本的核心鏡像,並在QEMU虛擬機器上運作。

2.實驗步驟

為了加速開發流程紅帽linux系統下載,ARM公司提供了VersatileExpress開發平台。顧客可以基於VersatileExpress平台進行產品原型開發。身為個人學習者,沒有必要去選購VersatileExpress開發平台或其他ARM開發板,完全可以透過QEMU來模擬開發平台linux 開發arm,同樣可以達到學習的目的。

(1)打算工具

下載如下程式碼包。

(2)編譯最小檔案系統

首先借助busybox手動編譯一個最小檔案系統。

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

步入menuconfig以後,就設定成靜態編譯。

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

在make&&makeinstall編譯完成後,在busybox根目錄下會有一個「_install」目錄,該目錄儲存了編譯好的檔案系統須要的一些指令集合。

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

#把_install目錄複製到linux-4.0目錄下。步入_install目錄,先建立etc、dev等目錄。

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

在_install/etc/init.d/目錄下新建一個rcS文件,並寫入以下內容。

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

更改_install/etc/init.d/rcS檔案必須可執行權限,可使用chmod指令來實現,例如「chmod x_install/etc/init.d/rcS」。

在_install/etc目錄中新建一個fstab文件,並寫入以下內容。

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

在_install/etc目錄中新建一個inittab文件,並寫入以下內容。

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

在_install/dev目錄中建立以下設備節點linux 開發arm,這時須要root權限。

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

(3)編譯核心

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

以上是Versatile虛擬機產品原型開發實驗目的透過本實驗學習如何編譯的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:itcool.net。如有侵權,請聯絡admin@php.cn刪除