1. QEMU模拟ARM开发环境搭建与U-Boot参数持久化实践
在嵌入式开发中,经常需要在x86主机上模拟ARM环境进行开发和调试。QEMU作为一款功能强大的开源模拟器,可以完美模拟各种ARM开发板。本文将详细介绍如何使用QEMU搭建完整的ARM开发环境,包括U-Boot引导、Linux内核加载和根文件系统挂载,并重点解决U-Boot环境变量持久化的问题。
1.1 环境准备与工具链安装
首先需要准备以下组件:
- QEMU模拟器(建议版本5.1.0或更高)
- ARM交叉编译工具链
- U-Boot源码(本文使用2016.03版本)
- Linux内核源码(本文使用4.4.240版本)
- 根文件系统(本文使用ext3格式)
安装ARM交叉编译工具链(以Ubuntu为例):
bash复制sudo apt-get install gcc-arm-linux-gnueabi g++-arm-linux-gnueabi
编译QEMU(如果使用系统自带版本可跳过):
bash复制wget https://download.qemu.org/qemu-5.1.0.tar.xz
tar xvf qemu-5.1.0.tar.xz
cd qemu-5.1.0
./configure --target-list=arm-softmmu
make -j$(nproc)
sudo make install
提示:建议将编译好的qemu-system-arm添加到PATH环境变量中,方便后续使用。
1.2 源码编译与镜像准备
1.2.1 编译U-Boot
bash复制wget ftp://ftp.denx.de/pub/u-boot/u-boot-2016.03.tar.bz2
tar xvf u-boot-2016.03.tar.bz2
cd u-boot-2016.03
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress_ca9x4_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- -j$(nproc)
编译完成后会生成u-boot.bin文件,这是我们将要加载的U-Boot镜像。
1.2.2 编译Linux内核
bash复制wget https://cdn.kernel.org/pub/linux/kernel/v4.x/linux-4.4.240.tar.xz
tar xvf linux-4.4.240.tar.xz
cd linux-4.4.240
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- vexpress_defconfig
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabi- zImage dtbs -j$(nproc)
``
