【ZYNQ Linux移植】1-前期准备
0 写在前面
这是一个系列博客,详细介绍如何在 ZYNQ 与 ZYNQ MPSoC 平台上如何移植 Linux 系统。目前网络上的大部分教程都是全程基于 Petalinux 的开发,虽然这样简化了开发流程,但对于初学者深入理解掌握 Linux 是不利的,所以,有了这个系列的博客,从几乎为 0 开始教大家怎么移植 Linux 系统。
本人的软件与环境版本:
Windows 的 Vivado 与 Vitis 版本:2020.2(前期学习 ZYNQ7020 跟随正点原子安装);
Ubuntu版本:18.04.2;
虚拟机上的Vivado、Vitis 与 Petalinux 版本:2020.1(前期学习 ZYNQ MPSoC 跟随 Alinx 安装)。
1 设备树模板(Vitis用)
这里直接给出 Xilinx 官方仓库的超链接,选择与自己电脑 Vivado 与 Vitis版本相对应的下载即可。
2 u-boot源码
u-boot 本质上是一种 bootloader 软件,bootloader 是基于特定硬件平台实现的。因此,几乎不可能为所有的嵌入式系统建立一个通用的 bootloader,不同的处理器架构都有不同的 bootloader。
u-boot官方提供了一个大致的框架,u-boot的官方源码可以在超链接中下载获取。但需要注意的是,uboot 官方的 uboot 源码是给半导体厂商准备的,半导体厂商会下载 uboot 官方的 uboot 源码,然后将自家相应的芯片移植进去,这个移植工作对于我们开发者而言,复杂且没有必要。
Xilinx 有自己维护的 u-boot,可以通过在 Xilinx 的官方 github 仓库 搜索到。这里直接给出超链接。
选择最适合自己的版本进行下载。(建议是与导出 xsa 的 Vivado版本同年或更早的版本)
把下载好的 u-boot 压缩包放在虚拟机的一个地方(建议新建一个文件夹后续,所有的下载移植相关文件都放在这):
因为前面 git-hub 下载的是 .zip
文件,这里使用命令进行解压,也可直接右键解压:
unzip u-boot-xlnx-xlnx_rebase_v2020.01.zip
解压出来里面的文件结构如下:
3 内核源码
内核源码与 u-boot 同理,我们直接去下载 Xilinx 维护的内核源码即可。
同样是选择最适合自己的版本进行下载。(建议是与前面的 u-boot 保持年份一致)比如我上面下载的是2020.1版本的 u-boot,这里就下载 v5.4 版本的内核(因为 v5.4 是 2020 年出的)。
下载好后,转移到虚拟机上,进行解压:
unzip linux-xlnx-xlnx_rebase_v5.4.zip
解压出来里面的文件结构如下:
4 根文件系统
后续会展示三种根文件系统的移植,一是使用 Petalinux 生成根文件系统;二是 Debian 系统;三是 Ubuntu 系统。其中使用 Petalinux 依赖于其安装和配置时使用的包,如果大家已经完成了 Petalinux 的安装以及相应的配置,就可以直接使用,这里就不做过多介绍了。
4.1 Debian系统
前往站点下载 Debian 系统。
我这里选择的是发布于 2018 年底的 debian-9.6 系统:
不过这个站点不是特别快,用国内网大概率会下载失败,建议大家挂上梯子下载。
由于我们下载的事一个 .tar.xz
文件,需要用以下命令进行解压:
tar -xvf debian-9.6-minimal-armel-2018-11-11.tar.xz
这里额外提一点,.tar.gz
文件是用以下命名解压:
tar -xzvf file.tar.xz
打开后进入,是下面这个样子:
最前面的是根文件系统的压缩包,我们需要继续解压缩,注意这里是 .tar
文件,且其解压出来后直接就是根文件系统的那十几个文件夹,所以用以下命令先在上一目录创建一个文件夹,再解压:
mkdir ../debian96
tar -xvf armel-rootfs-debian-stretch.tar -C ../debian96
这里也解释一下另外两个文件的用处:
1,image-builder.project 是镜像构建工具的配置文件,用于定义如何构建自定义的 Debian 系统镜像;(我们用不到这个文件);
2,user_password 是文件系统登录的默认用户名与密码,也不需要特意去记忆,因为到时候移植成功后登录,它会有提示:
解压出来的根文件系统如下图所示:
4.2 Ubuntu系统
前往站点下载 Ubuntu 系统。
我这里选择的是 18.04.5 的版本。
点进去后,点击 “release” ,进入下载页面:
这里需要注意,有两个版本,arm64
结尾的是给 64 位处理器用的,ZYNQ MP系列器件选择这个。如果使用的是ZYNQ-7000系列,则选择 armhf
结尾的。我这个系列的演示都是基于ZYNQ MPSoC 系列的 ZU3EG。
下载移到虚拟机后,与 debian 类似,使用以下命令先创建一个文件夹,再解压:
mkdir ubuntu
tar -xzvf ubuntu-base-18.04.5-base-arm64.tar.gz -C ./ubuntu
解压出来的根文件系统如下图所示:
5 我使用的版本文件分享
如果大家只是想用跟我一个版本的相关文件,可以使用以下网盘链接获取:
链接: https://pan.baidu.com/s/1-q5BB59xfkpdOdW2fssjcQ?pwd=dfpw 提取码: dfpw