往期文章
Linux系统移植一:移植U-BOOT 添加自己的板子并编译(非petalinux版)
Linux系统移植二:生成fsbl引导文件并制作BOOT.bin
Linux系统移植三:移植Kernel生成zImage和dtb文件
Linux系统移植四:Petalinux使用本地sstate-cache加速构建根文件系统
启动开发板
之前的文章中我们已经移植好所有Linux系统需要的文件了,现在回看一下移植思路
接下来我们讲SD卡分为两个区,然后讲前三篇博客中编译好的镜像文件改名,放入FAT分区,讲第四篇中生成的rootfs.tar.gz解压至EXT4分区
sudo tar -zxvf rootfs.tar.gz -C <EXT4分区路径>
sync
启动开发板,设置SD卡启动,配置好串口,开启电源,成功启动!
程序测试
Hello World
来个最经典的 Hello World
,Ubuntu 里用 Vscode 新建一个 hello.c
文件
#include <stdio.h>
int main(void){
printf("Hello World!\r\n");
return 0;
}
配置交叉编译环境,编译 arm-linux-gnueabihf-gcc hello.c -o hello
file hello
查看一下信息,发现是可以运行在ARM的32位可执行文件
scp 命令拷贝到开发板,运行 ./hello
,成功打印 Hello World!
结束语
看到自定义的Linux系统在ZYNQ上跑起来了,很是欣慰,除了根文件系统是用Petalinux加速构建的,其他都没有用到Petalinux
整个过程走一遍,让我更好地理解了Linux的构建和启动过程,收获满满,也为后续搞驱动开发、自定义IP设计和调用打好了基础
Linux系统移植系列博客到此就结束了,我是爱学习的诸葛铁锤,下期见,see you!