开发环境
-
ubuntu 20.04
-
VMware Workstation Pro 16
-
基于qemu(模拟器),vexpress-a9 平台
-
搭建 u-boot-2022.10 (当前最新版本)
准备工作
-
u-boot下载,下载最新稳定版本,当前为 u-boot-2022.10,因为是qemu 模拟器,可以尝试最新u-boot 版本的学习与工程验证
-
u-boot 下载地址 ftp://ftp.denx.de/pub/u-boot/
-
arm gcc 交叉编译工具链,这里使用最新的:gcc-linaro-13.0.0-2022.10-x86_64_arm-linux-gnueabihf.tar.xz,下载地址 https://snapshots.linaro.org/gnu-toolchain/13.0-2022.10-1/arm-linux-gnueabihf/
安装qemu
- 安装在 虚拟机的ubuntu 20.04 上,当然有条件,可以直接安装在ubuntu 主机上
$ sudo apt-get install qemu
$ sudo apt-get install qemu-system
$ qemu-system-arm -M help /* 查看支持的板子的列表 */
- 使用 vexpress-a9 平台,这是arm 平台
编译 u-boot
- 进入
u-boot-2022.10
目录,ls configs
查看当前所有的板级支持的Kconfig 默认配置
-
这里选择
vexpress_ca9x4_defconfig
,这个是qemuvexpress-a9
开发板的默认配置 -
开发板配置命令
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- vexpress_ca9x4_defconfig
-
编译命令
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4
-
默认编译通过,生成了 u-boot elf 文件, u-boot.bin 二进制文件等
启动 qemu
-
qemu 启动时需要 u-boot 这个 elf 文件,而不是 u-boot.bin 二进制文件
-
在 u-boot-2022.10 开启 qemu 运行 u-boot
qemu-system-arm -M vexpress-a9 -kernel u-boot --nographic
开启 qemu 进入 u-boot
- 成功进入 u-boot 命令行,可以进行 u-boot 的学习研究了,基于虚拟的 qemu 开发板,方便了开发与调试平台无关的程序
退出 qemu u-boot
-
如需要更新程序,需要退出 qemu u-boot,这里有个快捷键:
Ctrl + a
组合键按下,再松开,紧接着再按下 x 键,就可以退出 qemu了。 -
注意是:
Ctrl + a
组合键按下后,要松开,再按下 x 键, 而不是CTRL + a + x
组合键,我开始 Ctrl + a 按下后,没有松开,再按 x 键,没有退出 qemu
小结
-
看来 qemu 运行 u-boot 是个比较简单方便的事情,对于学习了解 u-boot,会非常的方便,实际的开发板,需要反复烧写程序,而 qemu 仿真运行,非常高效
-
研究Linux,需要深入了解 u-boot 的引导流程,前期一些平台无关的验证操作,可以使用 qemu 进行验证