Pluto SDR是基于AD9363和Zynq7010/20的架构,其中Zynq具有双核Cortex A9,可以独立运行Linux。事实上,正常运作的Pluto SDR就是一直在运行Linux的,只不过是定制过的精简的嵌入式Linux,这个固件官方是直接提供的,本文就演示如何从源代码进行编译,得到用于Pluto SDR交叉编译的sysroot环境,并且可以自行调整Pluto SDR运行的Linux功能(默认的固件预装很少,有些Linux通常预装的库和命令都没有)。
声明:本文使用固件分支为v0.38,使用的Vivado/Vitis版本为2022.2,系统版本为Ubuntu20.04 LTS,内核版本为5.15-62,没有安装其他任何额外的软件或运行库,使用全新系统实测没有问题。若出现了本文没有涵盖的情况请参考官方安装文档。
环境准备
拉取固件源码
首先当然是拉取官方提供的固件源码:
git clone --recursive https://github.com/analogdevicesinc/plutosdr-fw.git
注意其中的--recursive
一定要有,否则拉取到的是不完整的,该仓库还引用了Linux kernel、Buildroot等的仓库,加了这个参数才能够完整的拉取下来,文件较大,约4.3GB。
拉取后运行如下命令查看拉取到的分支需要用什么版本的Vivado:
cd plutosdr-fw
grep -i REQUIRED_VIVADO_VERSION $(find ./ -name "adi*.tcl") | grep set
若输出的类似于下面这种,则代表需要Vivado 2022.2版本的Vitis。
set required_vivado_version "2022.2"
安装Vivado&Vitis
使用此链接下载Vitis 2022.2,或者在