QEMU 从0起步实战
章节一 版本选择
1.BusyBox 1.29.3
2.buildroot Latest stable release: 2018.08.2
3.glibc 2.28
2018-08-01: glibc 2.28 released.
4.kernel longterm: 4.9.135 2018-10-20
Version | Maintainer | Released | Projected EOL |
---|---|---|---|
4.19 | Greg Kroah-Hartman | 2018-10-22 | Dec, 2020 |
4.14 | Greg Kroah-Hartman | 2017-11-12 | Jan, 2020 |
4.9 | Greg Kroah-Hartman | 2016-12-11 | Jan, 2023 |
4.4 | Greg Kroah-Hartman | 2016-01-10 | Feb, 2022 |
3.16 | Ben Hutchings | 2014-08-03 | Apr, 2020 |
5 QEMU 3.0.0
6.binutils-2.31.1
7.linux主机 18.04LTS
Linux machine 4.15.0-36-generic #39-Ubuntu SMP Mon Sep 24 16:19:09 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
8.gcc 8.2.0 Jul 14, 2018
QEMU编译后支持的ARM 官方 板子有四种:
Linux 内核支持 ARM 官方板子有两类:
从 mach 列表可以看出:
从 arm/configs 也可以看出:
UBOOT 支持 6种板子:
综合评估:QEMU uboot 内核 同时支持 的只有 vexpress 板子
米尔是ARM 的官方代理,我们看看 vexpress 是啥玩意:
http://www.myir-tech.com/product/juno.htm
可以同时看到 juno 板子和 Versatile Express 字样,都是ARM官方的开发板,juno 是ARMv8 的,Juno ARM开发平台(ADP)是一款 ARMv8-A 软件开发平台,它包括 Juno Versatile Express 开发板和一个从 Linaro 获得的 ARMv8-A 参考软件端口
综上:Versatile 就是 Versatile Express 的简写,Versatile Express是ARM官方的内核评估板,我们就选择这个板子。
JUNNO 板子 在 linaro 网站也有相关内容
https://www.linaro.org/engineering/projects/armv8/
arm 官方网站也有:
https://community.arm.com/dev-platforms/w/docs/305/supported-platforms#juno
但UBOOT又又好几种:
vexpress_aemv8a_dram_defconfig vexpress_aemv8a_semi_defconfig vexpress_ca5x2_defconfig
vexpress_aemv8a_juno_defconfig vexpress_ca15_tc2_defconfig vexpress_ca9x4_defconfig
其中 vexpress_aemv8a 相关的都是ARMV8架构,我们不需要
剩下的有A15_TC2板子、四核A9的板子以及双核A5的板子,基于我们一开始就选择了A15,所以只有A15_TC2选择了。
查一下 vexpress_ca15_tc2
https://archlinuxarm.org/platforms/armv7/arm/versatile-express
非常惊喜地发现以下内容,TC2 是双核 A15+3核A7 的组合,而TC1 是双核A15,TC1才是最适合我们的板子,但UBOOT内没有,我们得基于TC2修改。
(看来网上大多数人在搭建QEMU时都选择A9是正确的,因为A9在QEMU 和 UBOOT内都有默认的配置文件;A15虽然也有,但UBOOT内是大小核心组合,知识有限,可能稍微麻烦)
再看看 内核和 UBOOT 对 QEMU 的支持:
首先内核表示不并支持:
uboot 表示大力支持: