文章目录
前言
- 安装和配置环境: Ubuntu 18.04.4
- 时间: 2020.10
安装u-boot-tools
- 介绍: 用来生成适应u-boot引导的镜像文件
- 命令
sudo apt install u-boot-tools
安装vim和gedit
1 介绍: 编辑文本工具
2. 命令
sudo apt install vim gedit
安装交叉编译器工具
- 介绍: 交叉编译是在一种计算机环境中编译程序,在另外一种环境下运行。或者说在一个平台上编译生成在另外一个平台上运行的可执行代码。
- ABI: 二进制应用程序接口(Application Binary interface(ABI) for the ARM Architecture)在计算机中,应用二进制接口描述应用程序和操作系统之间或其他应用程序的低级接口,涵盖了数据类型的大小、布局和对齐,调用约定。
- EABI: 嵌入式ABI
- 早期u-boot和linux编译可能使用的都是不是一个arm-linux-gcc版本。arm-none-gnueabi-linux比arm-linux-gcc在可移植性和兼容性上更好。
- 命令
sudo apt install gcc-arm-linux-gnueabi
sudo apt install g++-arm-linux-gnueabi
- 查看版本号
arm-linux-gnueabi-gcc -v
arm-linux-gnueabi-g++ -v
- 验证
- 在当前文件夹下面编写一个Hello.c的文件
arm-linux-gnueabi-gcc Hello.c -o Hello // 编译
readelf -h Hello
- 输出结果Machine 是ARM类型

安装Qemu和内核
方法一自动安装
sudo apt install qemu
qemu-img -V // 查看版本
方法二手动编译
- 安装
2. 安装依赖包
sudo apt install zlib1g-dev libglib2.0-0 libglib2.0-dev libsdl1.2-dev libpixman-1-dev libfdt-dev
3. 下载QEMU源码
git clone git://git.qemu-project.org/qemu.git
4. 切换稳定版本
git branch
git checkout v2.7.0
5. 编译配置
./configure --target-list=arm-softmmu --audio-drv-list=
6. 编译安装
make
make install
- 查看
qemu-system- // 按tab键 查看qemu支持的cpu架构
qemu-system-arm --version // 查看arm架构cpu的版本
qemu-system-arm -M help // 查看支持的开发版本
ARM express 开发板介绍
- Vexpress 系列开发板
- 全称: versatile express family, ARM 公司自己推出的开发板
- 主要用于SOC厂商设计,验证和测试自己的SOC芯片
- 采用主板+子板设计,主板提供各种外围接口,子板提供CPU运算
- Express 系列支持的CPU
- Cortex-A9: 处理器子板 Express A9x4(V2P-CA9x4)
- Cortex-A5: 处理器子板 Express A5x2(V2P-CA5x2s)
- Cortex-R5:
- Cortex-A15: 处理器子板 Express A15x2(V2P-CA15x2)
Linux内核下载安装编译
- Linux内核下载链接
- 解压并进入文件夹中
tar -xvf linux-5.8.12.tar.xz
cd linux-5.8.12
- 修改Makefile
vim Makefile
ARCH ?= arm
CROSS_COMPILE ?= arm-linux-gnueabi-
- 编译内核、模块、dtb文件
// 编译内核
make vexpress_defconfig
make zImage -j6
// 编译内核模块
make modules
// 编译dtb文件
make dtbs
// dtbs 让编译后的内核脱离主板的限制,不同开发板的配置都在自己的dtbs文件中
// ./arch/arm/boot/
- 验证
// linux-5.8.12e文件夹虾执行
qemu-system-arm -M vexpress-a9 -m 512M -kernel arch/arm/boot/zImage -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "console=ttyAMA0"
// -M vexpress-a9 选择使用开发板
// -m 512M 选择内存大小
// -kernel arch/arm/boot/zIamge 选择内核镜像位置
// -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb 选择dtb文件
// -nographic 非图形化显示
// -append "console=ttyAMA0" 虚拟开发板的串口
- 由于没有制作根文件系统,不能继续执行
- 退出
ps -a // 查找叫qemu-system-arm进程的PID
kill PID
- 制作启动脚本
touch boot.sh
sudo chmod 755 boot.sh
vim boot.sh
// output
qemu-system-arm -M vexpress-a9 -m 512M -kernel arch/arm/boot/zImage -dtb arch/arm/boot/dts/vexpress-v2p-ca9.dtb -nographic -append "console=ttyAMA0"
// 注意路径问题,可能需要修改
//运行
./boot.sh
使用busybox制作根文件系统
- 介绍:
- 文件系统: 对存

最低0.47元/天 解锁文章
1236

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



