QEMU + armv8 模拟器搭建,启动bios, kernel

目的:搭建一个armv8的测试环境,跑自己的bootloader(类似于ATF + uboot)

问题:如何模拟armv8开发板,如何让自己的BL能被load,如何使自己的BL能有输出

 

第一部分: 使用QEMU 启动自定义BIOS方法

使用命令:

qemu-system-aarch64 -machine virt,secure=on -cpu cortex-a57 -nographic -m 1057 -smp 2 -bios filename

 

命令解释:

qemu-system-aarch64:armv8 QEMU模拟工具

-machine virt,secure=on: 设备类型为虚拟,目前不知道为什么“secure=on”必须设置,否则我的测试平台测试中一直没有输出

-cpu cortex-a57: 模拟a57

-nographic:  不支持graphic

-m 1057:内存大小

-smp 2: CPU 个数

-bios filename: 自己需要测试的bios bin file

 

 

注意事项:

  1. qemu-system-aarch64 需要使用较高的版本,目前发现3.0 可以工作,2.5不能工作(目前是下载最新QEMU代码自己基于linaro gcc编译得到)
  2. 只能模拟最高arm a57
  3. 模拟串口型号为pl01

 

 

测试环境:

Linux jun-VirtualBox 4.15.0-47-generic #50~16.04.1-Ubuntu SMP Fri Mar 15 16:06:21 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

 

基于ATF改写的bare metal 测试代码演示

qemu-system-aarch64 -machine virt,secure=on -cpu cortex-a57 -nographic -m 1057 -smp 2 -bios ~/code/mytest/bl1.bin
NOTICE:  Booting Trusted Firmware
NOTICE:  BL1: this is my own BIOS test
 

编译基本方法

1. atf: make plat=qemu bl1

2. qemu:参见网上的方法,我使用的是optee整体来编译

参见:Optee 官网
https://github.com/OP-TEE/manifest

make -f toolchain.mk toochains (下载arm gcc编译器总是不成功,自己从linaro官网上下的 )

make -f qemu_v8.mk all 

make -f qemu_v8.mk run

 

第二部分: 使用QEMU 启动kernel方法

使用命令:

qemu-system-aarch64 -machine virt -cpu cortex-a57 -machine type=virt -nographic -m 2048 -smp 2 -kernel Image -initrd rootfs_my.cpio.gz -append 'rdinit=/stest console=ttyAMA0 root=/dev/ram'

说明:

  1. rootfs_my.cpio.gz是自己通过cpio, gzip生成的,命令比如echo stest | cpio -o -H newc | gzip > ../rootfs.cpio.gz
  2. stest 就是自己通过linaro gcc 7.3 编译的一个简单main程序
  3. Image使用的kernel 4.19. "make defconfig | make"
  4. 编译器都是使用的linaro gcc, ARCH=arm64

 

参考:

模拟arm

https://blog.csdn.net/member82/article/details/80880182

从零使用qemu模拟器搭建arm运行环境

https://blog.csdn.net/member82/article/details/80864238

https://blog.csdn.net/dddddttttt/article/details/80792762 (使用Qemu运行ARMv8的OP-TEE)

 

模拟arm64

https://blog.csdn.net/snail_coder/article/details/82935081

(qemu模拟arm64一直卡住不动) 

https://blog.csdn.net/weixin_43572000/article/details/85267499

 

资源:

qemu下载网页:https://www.qemu.org/download/

你可能感兴趣的:(QEMU)