Published on

QEMU编译运行u-boot

Authors

环境

  • deepin

安装QEMU

sudo apt install qemu-system-arm

安装交叉编译工具

sudo apt install gcc-arm-linux-gnueabi

或者从https://releases.linaro.org/components/toolchain/binaries/ 下载

编译u-boot

下载

http://ftp.denx.de/pub/u-boot/

wget https://ftp.denx.de/pub/u-boot/u-boot-2024.07.tar.bz2
tar -xf u-boot-2024.07.tar.bz2

编译

cd u-boot/
# 配置编译平台和工具链
export ARCH=arm CROSS_COMPILE=arm-linux-gnueabi-
#或 运行make命令的时候指定环境变量。make CROSS_COMPILE=arm-linux-gnueabi- ARCH=arm vexpress_ca9x4_defconfig

编译

# 加载板子信息 configs/
make vexpress_ca9x4_defconfig

会生成一个配置好的.config文件,在uboot的根目录下

出现错误:

  YACC    scripts/kconfig/zconf.tab.c
/bin/sh: 1: bison: not found

缺少bison程序

sudo apt install bison

出现错误:

  YACC    scripts/kconfig/zconf.tab.c
  LEX     scripts/kconfig/zconf.lex.c
/bin/sh: 1: flex: not found

缺少flex程序

sudo apt install flex
  LEX     scripts/kconfig/zconf.lex.c
  HOSTCC  scripts/kconfig/zconf.tab.o
  HOSTLD  scripts/kconfig/conf
#
# configuration written to .config
#

显示这个,则配置完成了。

2线程编译

make -j2 

启动

qemu-system-arm -M vexpress-a9 -m 512M -kernel u-boot -nographic -no-reboot

内存要给够512MB,否则会报无法启动uboot

成功画面 打印这个,则启动成功。