1 准备工作
1.1 安装依赖工具
sudo apt-get update && sudo apt-get install build-essential git bc flex libncurses5-dev libssl-dev device-tree-compiler

1.2 安装arm交叉编译工具链
sudo apt install gcc-arm-linux-gnueabihf

安装之后,在终端输入arm-linux- gnueabihf- 后按TAB键,出现下列命令,表示安装成功。

1.3 安装qemu-system-arm
sudo apt install qemu-system-arm

安装完毕后,在终端输入: qemu- 后按TAB键,弹出下列命令证明安装成功。

2 u-boot配置编译
2.1 下载u-boot
wget http://ftp.denx.de/pub/u-boot/u-boot-2023.10.tar.bz2
2.2 配置u-boot
解压并进入u-boot。
tar -xvf u-boot-2023.10.tar.bz2 && cd u-boot-2023.10
使用vexpress-ca9x4的默认配置进行配置。
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- vexpress_ca9x4_defconfig

2.3 修改u-boot
qemu模拟开发板,无法将u-boot环境变量固化到flash,所以每次启动需要重新设置环境变量,为了方便可以将相关环境变量写死在源码里,具体为include/configs/vexpress_common.h中的CFG_EXTRA_ENV_SETTINGS宏。
修改define CFG_EXTRA_ENV_SETTINGS 如下。其中10.211.55.10为QEMU模拟的开发板的IP,10.211.55.100为宿主系统ubuntu24.04的IP,需要根据实际环境IP进行修改。
#define CFG_EXTRA_ENV_SETTINGS \
"ipaddr=10.211.55.10\0" \
"serverip=10.211.55.100\0" \
"bootcmd=tftp 0x60003000 uImage; \
tftp 0x61000000 vexpress-v2p-ca9.dtb; \
bootm 0x60003000 - 0x61000000\0" \
"bootargs=root=/dev/nfs rw \
nfsroot=10.211.55.100:/nfs/rootfs,nfsvers=4 init=/linuxrc \
ip=10.211.55.10 console=ttyAMA0\0"
2.4 编译u-boot
make ARCH=arm CROSS_COMPILE=arm-linux-gnue

1万+

被折叠的 条评论
为什么被折叠?



