一、前期准备
1. 带电源的 Xilinx ZCU102 评估套件 .
2. 10 类 SD 卡(内存>8 GB).
3. 以太网电缆(用于 Internet 连接、apt-get 指令安装软件包以及供用户试用 Webserver 演示)、Micro USB 转标准 USB 数据线.
4. 4K或1080P显示器和 DisplayPort 电缆(注意如果是DP转HDMI,要使用有源转接器).
5. USB 3.0 连接器或 USB 2.0 微型电缆到标准 USB 母头适配器,USB集线器连接 USB 鼠标、USB 键盘或集成鼠标的 USB 键盘等.
6. 用于zcu102的ubuntu桌面镜像文件,官方下载链接Ubuntu_Desktop_Release_2018_3.
其包含以下文件/文件夹:
7. 为了防止出错,xilinx的相关软件版本皆为2018.3(注意查看petalinux部署环境支持的ubuntu版本,本人使用的是ubuntu16.04.3).8. 问题不决,重启解决(reboot).
二、将预构建镜像烧录到SD卡中
1. 准备 SD 卡.
2. 在下载好的\Ubuntu_Desktop_Release_2018_3\Ready_to_test_images目录中找到“ ZCU102_UbuntuDesktop_2018_3.img ” .
3. 使用镜像烧录软件将ZCU102_UbuntuDesktop_2018_3.img文件解压到 SD 卡.
烧录方法:windows10下使用balenaEtcher烧录
4. 烧录完成后会产生两个分区,其中一个是文件系统(在windows系统下不可见),另外一个分区中有两个文件(image.ub和BOOT.bin) .
5. 注意:上述产生的两个文件(image.ub和BOOT.bin) 需要在后续步骤中被替换掉.
三、使用 Petalinux 2018.3 制作 Linux 镜像
注意:此部分是为了生成 Linux 镜像文件(image.ub和BOOT.bin),用于替换上个部分烧录后产生的(image.ub和BOOT.bin).
1. 准备.hdf文件
方式一: 使用Ubuntu_Desktop_Release_2018_3中已经提供design_1_wrapper.hdf文件
方式二: 根据提供的.tcl脚本使用vivado2018.3 制作.hdf文件,步骤如下:
(1) 启动 Vivado Design Suite 2018.3(在 Linux 上)
(2) 在Vivado欢迎屏幕的TCL控制台,将目录更改为/ Ubuntu_Desktop_Release_2018_3 /Hardware,其中project.tcl文件存在.
cd /home/...你的路径/Ubuntu_Desktop_Release_2018_3/Hardware source project.tcl
此 TCL 脚本将执行以下操作
- 自动创建 Vivado 项目.
- 创建新的模块设计并自动填充 Zynq UltraScale+ MPSoC PS 系统、所需的组件和连接.
- 为 ZCU102 板配置 Zynq UltraScale+ MPSoC PS 系统.
(3) 创建wrap器,
(4) 导出design_1_wrapper.hdf文件
该过程完成后,将在/Ubuntu_Desktop_Release_2018_3/Hardwar e 目录下生成design_1_wrapper.hdf
2. 开始制作
(1) 使用以下命令创建 Petalinux 项目
petalinux-create -t project –s <path to the downloaded zcu102 bsp>/xilinx-zcu102-v2018.3-final.bsp
(2) 将目录更改为创建的 Petalinux 项目
cd <petalinux-project>
(3) 将design_1_wrapper.hdf文件复制到新建的项目下
petalinux-config --get-hw-description
(4) 在弹出的界面上进行如下设置
earlycon clk_ignore_unused earlyprintk root=/dev/mmcblk0p2 rw rootwait cma=1024M
(5) 保存并退出向导
(6) 等到 PetaLinux 重新配置项目,清理现有的引导加载程序映像。这是为了确保与新硬件设计同步重新创建引导加载程序
petalinux-build -c bootloader -x distclean
(7) 配置内核,步骤如下:
petalinux-config -c kernel
【注意: Device Drivers->USB support and enable all required classes (不要选Disable External Hub,即前面不是*号,为空)】
(8) 输入以下命令以构建 Linux 映像
petalinux-build
(9) 等待项目构建完成,使用以下命令创建 BOOT.bin
petalinux-package --boot --fsbl images/linux/zynqmp_fsbl.elf --u-boot images/linux/u-boot.elf
如果设计包含PL部分,执行以下指令:
petalinux-package --boot --fsbl images/linux/zynqmp_fsbl.elf --fpga images/linux/system.bit --pmufw images/linux/pmufw.elf --atf images/linux/bl31.elf --u-boot images/linux/u-boot.elf --force
(10) 移动到文件夹images/linux/并将BOOT.BIN和image.ub文件复制到SD卡的boot分区
(11) 如果对HDF文件进行了修改再次编译,执行以下指令在重复操作步骤3、6、8、9
petalinux-build -x mrproper
四、ZCU102 电路板设置
- 将 Micro USB 线连接到 ZCU102 Board Micro USB 端口 J83,另一端连接到主机 PC 上的开放 USB 端口。该电缆将用于 UART over USB 通信.
- 将网线一端连接到ZCU102连接器J73,另一端连接到主机的以太网插座.
- 将 SD 卡插入 SD 卡插槽 J100.
- 如图所示设置 SW6 开关。这将启动设置配置为从 SD 启动(zcu102 v1.1模式如下)
- 将 12V 电源连接到 ZCU102 6 针 Molex 连接器.
- 检查 USB 连接器附近的跳线
特别是J7跳线必须插入USB才能工作!(有关正确的跳线配置,请参见照片).
五、会遇到的问题
1. SD卡启动后DONE灯一直为红色
其实红灯显示也无妨,因为其没有包含PL端设计,红灯亮表示:没有进入PL端程序
只要通过端口能查到进入系统即可
2. 显示器没有显示
(1) 可能原因1:DP转HDMI转接口不是无源的
(2) 可能原因2:显示器与ZCU102不匹配(此可能性不大)
(3) 可能原因3:没有正确进入启动程序
在终端中进行指令重启
reboot
3. 键盘鼠标无效
再次检查 USB 连接器附近的跳线
特别是J7跳线必须插入USB才能工作
4. 不能连接网络
(1) 情况一:zcu102只能ping通自己,不能在主机上ping通zcu102的IP
可能原因:zcu102网络与主机(你的电脑)的网络不是在同一个网段
(2) 情况二: zcu102不能访问外网
可能原因:未对zcu102中的ubuntu系统的网路进行配置
解决方法:按照ubuntu网络配置的方法设置网络为自动分配IP地址模式或固定IP地址模式
可参考如下博客:
六、参考资料
1. 官方参考:Zynq UltraScale+ MPSoC Ubuntu part 2 - Building and Running the Ubuntu Desktop From Sources